[hibernate-commits] Hibernate SVN: r14154 - core/trunk/documentation/manual/translations/es-ES/content.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Sat Oct 27 08:56:51 EDT 2007


Author: xhuang at jboss.com
Date: 2007-10-27 08:56:49 -0400 (Sat, 27 Oct 2007)
New Revision: 14154

Modified:
   core/trunk/documentation/manual/translations/es-ES/content/architecture.po
   core/trunk/documentation/manual/translations/es-ES/content/association_mapping.po
   core/trunk/documentation/manual/translations/es-ES/content/basic_mapping.po
   core/trunk/documentation/manual/translations/es-ES/content/batch.po
   core/trunk/documentation/manual/translations/es-ES/content/best_practices.po
   core/trunk/documentation/manual/translations/es-ES/content/collection_mapping.po
   core/trunk/documentation/manual/translations/es-ES/content/component_mapping.po
   core/trunk/documentation/manual/translations/es-ES/content/configuration.po
   core/trunk/documentation/manual/translations/es-ES/content/events.po
   core/trunk/documentation/manual/translations/es-ES/content/example_mappings.po
   core/trunk/documentation/manual/translations/es-ES/content/example_parentchild.po
   core/trunk/documentation/manual/translations/es-ES/content/example_weblog.po
   core/trunk/documentation/manual/translations/es-ES/content/filters.po
   core/trunk/documentation/manual/translations/es-ES/content/inheritance_mapping.po
   core/trunk/documentation/manual/translations/es-ES/content/performance.po
   core/trunk/documentation/manual/translations/es-ES/content/persistent_classes.po
   core/trunk/documentation/manual/translations/es-ES/content/preface.po
   core/trunk/documentation/manual/translations/es-ES/content/query_criteria.po
   core/trunk/documentation/manual/translations/es-ES/content/query_hql.po
   core/trunk/documentation/manual/translations/es-ES/content/query_sql.po
   core/trunk/documentation/manual/translations/es-ES/content/session_api.po
   core/trunk/documentation/manual/translations/es-ES/content/toolset_guide.po
   core/trunk/documentation/manual/translations/es-ES/content/transactions.po
   core/trunk/documentation/manual/translations/es-ES/content/tutorial.po
   core/trunk/documentation/manual/translations/es-ES/content/xml.po
Log:
PO generated via es-ES XML and English XML

Modified: core/trunk/documentation/manual/translations/es-ES/content/architecture.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/architecture.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/architecture.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,216 +1,580 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:21
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: architecture.xml:21
+#, no-c-format
 msgid "Architecture"
 msgstr "Arquitectura"
 
-#: index.docbook:24
+#. Tag: title
+#: architecture.xml:24
+#, no-c-format
 msgid "Overview"
-msgstr "Visi&#x00f3;n General"
+msgstr "Visión General"
 
-#: index.docbook:26
+#. Tag: para
+#: architecture.xml:26
+#, no-c-format
 msgid "A (very) high-level view of the Hibernate architecture:"
-msgstr "Una visi&#x00f3;n a (muy) alto nivel de la arquitectura de Hibernate:"
+msgstr "Una visión a (muy) alto nivel de la arquitectura de Hibernate:"
 
-#: index.docbook:39
-msgid "This diagram shows Hibernate using the database and configuration data to provide persistence services (and persistent objects) to the application."
-msgstr "Este diagrama muestra a Hibernate usando la base de datos y los datos de configuraci&#x00f3;n para proveer servicios de persistencia (y objetos persistentes) a la aplicaci&#x00f3;n."
+#. Tag: para
+#: architecture.xml:39
+#, no-c-format
+msgid ""
+"This diagram shows Hibernate using the database and configuration data to "
+"provide persistence services (and persistent objects) to the application."
+msgstr ""
+"Este diagrama muestra a Hibernate usando la base de datos y los datos de "
+"configuración para proveer servicios de persistencia (y objetos "
+"persistentes) a la aplicación."
 
-#: index.docbook:44
-msgid "We would like to show a more detailed view of the runtime architecture. Unfortunately, Hibernate is flexible and supports several approaches. We will show the two extremes. The \"lite\" architecture has the application provide its own JDBC connections and manage its own transactions. This approach uses a minimal subset of Hibernate's APIs:"
-msgstr "Nos gustar&#x00ed;a mostrar una vista m&#x00e1;s detallada de la arquitectura de tiempo de ejecuci&#x00f3;n. Desafortunadamente, Hibernate es flexible y soporta diferentes enfoques. Mostraremos los dos extremos. En la arquitectura \"sencilla\", es la aplicaci&#x00f3;n la que provee su propias conexiones JDBC y gestiona sus propias transacciones. Este enfoque usa un m&#x00ed;nimo subconjunto de la API de Hibernate:"
+#. Tag: para
+#: architecture.xml:44
+#, no-c-format
+msgid ""
+"We would like to show a more detailed view of the runtime architecture. "
+"Unfortunately, Hibernate is flexible and supports several approaches. We "
+"will show the two extremes. The \"lite\" architecture has the application "
+"provide its own JDBC connections and manage its own transactions. This "
+"approach uses a minimal subset of Hibernate's APIs:"
+msgstr ""
+"Nos gustaría mostrar una vista más detallada de la arquitectura de tiempo de "
+"ejecución. Desafortunadamente, Hibernate es flexible y soporta diferentes "
+"enfoques. Mostraremos los dos extremos. En la arquitectura \"sencilla\", es "
+"la aplicación la que provee su propias conexiones JDBC y gestiona sus "
+"propias transacciones. Este enfoque usa un mínimo subconjunto de la API de "
+"Hibernate:"
 
-#: index.docbook:61
-msgid "The \"full cream\" architecture abstracts the application away from the underlying JDBC/JTA APIs and lets Hibernate take care of the details."
-msgstr "La arquitectura \"full cream\" abstrae a la aplicaci&#x00f3;n de las APIs de JDBC/JTA y deja que Hibernate se encargue de los detalles."
+#. Tag: para
+#: architecture.xml:61
+#, no-c-format
+msgid ""
+"The \"full cream\" architecture abstracts the application away from the "
+"underlying JDBC/JTA APIs and lets Hibernate take care of the details."
+msgstr ""
+"La arquitectura \"full cream\" abstrae a la aplicación de las APIs de JDBC/"
+"JTA y deja que Hibernate se encargue de los detalles."
 
-#: index.docbook:75
+#. Tag: para
+#: architecture.xml:75
+#, fuzzy, no-c-format
 msgid "Heres some definitions of the objects in the diagrams:"
-msgstr "He aqu&#x00ed; algunas definiciones de los objetos en los diagramas:"
+msgstr ""
+"He aquí algunas definiciones de los objetos en los diagramas: <placeholder-1/"
+">"
 
-#: index.docbook:80
+#. Tag: term
+#: architecture.xml:80
+#, no-c-format
 msgid "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
 msgstr "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
 
-#: index.docbook:82
-msgid "A threadsafe (immutable) cache of compiled mappings for a single database. A factory for <literal>Session</literal> and a client of <literal>ConnectionProvider</literal>. Might hold an optional (second-level) cache of data that is reusable between transactions, at a process- or cluster-level."
-msgstr "Cach&#x00e9; threadsafe (inmutable) de mapeos compilados para una sola base de datos. Es una f&#x00e1;brica de <literal>Session</literal> y un cliente de <literal>ConnectionProvider</literal>. Opcionalmente, puede mantener una cach&#x00e9; (de segundo nivel) de datos reusables entre transacciones, a un nivel de proceso o de cluster."
+#. Tag: para
+#: architecture.xml:82
+#, no-c-format
+msgid ""
+"A threadsafe (immutable) cache of compiled mappings for a single database. A "
+"factory for <literal>Session</literal> and a client of "
+"<literal>ConnectionProvider</literal>. Might hold an optional (second-level) "
+"cache of data that is reusable between transactions, at a process- or "
+"cluster-level."
+msgstr ""
+"Caché threadsafe (inmutable) de mapeos compilados para una sola base de "
+"datos. Es una fábrica de <literal>Session</literal> y un cliente de "
+"<literal>ConnectionProvider</literal>. Opcionalmente, puede mantener una "
+"caché (de segundo nivel) de datos reusables entre transacciones, a un nivel "
+"de proceso o de cluster."
 
-#: index.docbook:92
+#. Tag: term
+#: architecture.xml:92
+#, no-c-format
 msgid "Session (<literal>org.hibernate.Session</literal>)"
 msgstr "Session (<literal>org.hibernate.Session</literal>)"
 
-#: index.docbook:94
-msgid "A single-threaded, short-lived object representing a conversation between the application and the persistent store. Wraps a JDBC connection. Factory for <literal>Transaction</literal>. Holds a mandatory (first-level) cache of persistent objects, used when navigating the object graph or looking up objects by identifier."
-msgstr "Objeto mono-hebra, de corta vida que representa una conversaci&#x00f3;n entre la aplicaci&#x00f3;n y el almacenamiento persistente. Envuelve una conexi&#x00f3;n JDBC. Es una f&#x00e1;brica de <literal>Transaction</literal>. Mantiene una cach&#x00e9; requerida (de primer nivel) de objetos persistentes, usada mientras se navega el grafo de objetos o se recuperen objetos por identificador."
+#. Tag: para
+#: architecture.xml:94
+#, no-c-format
+msgid ""
+"A single-threaded, short-lived object representing a conversation between "
+"the application and the persistent store. Wraps a JDBC connection. Factory "
+"for <literal>Transaction</literal>. Holds a mandatory (first-level) cache of "
+"persistent objects, used when navigating the object graph or looking up "
+"objects by identifier."
+msgstr ""
+"Objeto mono-hebra, de corta vida que representa una conversación entre la "
+"aplicación y el almacenamiento persistente. Envuelve una conexión JDBC. Es "
+"una fábrica de <literal>Transaction</literal>. Mantiene una caché requerida "
+"(de primer nivel) de objetos persistentes, usada mientras se navega el grafo "
+"de objetos o se recuperen objetos por identificador."
 
-#: index.docbook:104
+#. Tag: term
+#: architecture.xml:104
+#, no-c-format
 msgid "Persistent objects and collections"
 msgstr "Objetos y colecciones persistentes"
 
-#: index.docbook:106
-msgid "Short-lived, single threaded objects containing persistent state and business function. These might be ordinary JavaBeans/POJOs, the only special thing about them is that they are currently associated with (exactly one) <literal>Session</literal>. As soon as the <literal>Session</literal> is closed, they will be detached and free to use in any application layer (e.g. directly as data transfer objects to and from presentation)."
-msgstr "Objetos de corta vida, mono-hebra conteniendo estado persistente y funci&#x00f3;nalidad de negocio. Estos pueden ser JavaBeans/POJOs (Plain Old Java Objects, o sea, cualquier objeto Java), la &#x00fa;nica cosa especial en ellos es que estan asociados actualmente con una (y s&#x00f3;lo una) <literal>Session</literal>. Tan pronto como la <literal>Session</literal> sea cerrada, ser&#x00e1;n separados y estar&#x00e1;n libres para ser usados en cualquier capa de aplicaci&#x00f3;n. (por ejemplo, directamente como objetos de transferencia de datos hacia y desde la capa de presentaci&#x00f3;n)."
+#. Tag: para
+#: architecture.xml:106
+#, no-c-format
+msgid ""
+"Short-lived, single threaded objects containing persistent state and "
+"business function. These might be ordinary JavaBeans/POJOs, the only special "
+"thing about them is that they are currently associated with (exactly one) "
+"<literal>Session</literal>. As soon as the <literal>Session</literal> is "
+"closed, they will be detached and free to use in any application layer (e.g. "
+"directly as data transfer objects to and from presentation)."
+msgstr ""
+"Objetos de corta vida, mono-hebra conteniendo estado persistente y "
+"funciónalidad de negocio. Estos pueden ser JavaBeans/POJOs (Plain Old Java "
+"Objects, o sea, cualquier objeto Java), la única cosa especial en ellos es "
+"que estan asociados actualmente con una (y sólo una) <literal>Session</"
+"literal>. Tan pronto como la <literal>Session</literal> sea cerrada, serán "
+"separados y estarán libres para ser usados en cualquier capa de aplicación. "
+"(por ejemplo, directamente como objetos de transferencia de datos hacia y "
+"desde la capa de presentación)."
 
-#: index.docbook:117
+#. Tag: term
+#: architecture.xml:117
+#, no-c-format
 msgid "Transient and detached objects and collections"
 msgstr "Objetos y colecciones transitorios y separados"
 
-#: index.docbook:119
-msgid "Instances of persistent classes that are not currently associated with a <literal>Session</literal>. They may have been instantiated by the application and not (yet) persisted or they may have been instantiated by a closed <literal>Session</literal>."
-msgstr "Instancias de clases persistentes que no estan acutualmente asociadas con una <literal>Session</literal>. Pueden haber sido instanciadas por la aplicaci&#x00f3;n y (a&#x00fa;n) no haber sido hechas persistentes, o pueden haber sido instanciadas por una <literal>Session</literal> cerrada."
+#. Tag: para
+#: architecture.xml:119
+#, no-c-format
+msgid ""
+"Instances of persistent classes that are not currently associated with a "
+"<literal>Session</literal>. They may have been instantiated by the "
+"application and not (yet) persisted or they may have been instantiated by a "
+"closed <literal>Session</literal>."
+msgstr ""
+"Instancias de clases persistentes que no estan acutualmente asociadas con "
+"una <literal>Session</literal>. Pueden haber sido instanciadas por la "
+"aplicación y (aún) no haber sido hechas persistentes, o pueden haber sido "
+"instanciadas por una <literal>Session</literal> cerrada."
 
-#: index.docbook:128
+#. Tag: term
+#: architecture.xml:128
+#, no-c-format
 msgid "Transaction (<literal>org.hibernate.Transaction</literal>)"
 msgstr "Transaction (<literal>org.hibernate.Transaction</literal>)"
 
-#: index.docbook:130
-msgid "(Optional) A single-threaded, short-lived object used by the application to specify atomic units of work. Abstracts application from underlying JDBC, JTA or CORBA transaction. A <literal>Session</literal> might span several <literal>Transaction</literal>s in some cases. However, transaction demarcation, either using the underlying API or <literal>Transaction</literal>, is never optional!"
-msgstr "(Opcional) Un objeto de corta vida, mono-hebra, usado por la aplicaci&#x00f3;n para especificar unidades at&#x00f3;micas de trabajo. Abstrae a la aplicaci&#x00f3;n de las subyacentes transacciones JDBC, JTA o CORBA. En algunos casos, una <literal>Session</literal> puede extenderse sobre varias <literal>Transaction</literal>s. Sin embargo, la demarcaci&#x00f3;n de la transacci&#x00f3;n, ya sea usando la API subyacente o <literal>Transaction</literal>, nunca es opcional!"
+#. Tag: para
+#: architecture.xml:130
+#, no-c-format
+msgid ""
+"(Optional) A single-threaded, short-lived object used by the application to "
+"specify atomic units of work. Abstracts application from underlying JDBC, "
+"JTA or CORBA transaction. A <literal>Session</literal> might span several "
+"<literal>Transaction</literal>s in some cases. However, transaction "
+"demarcation, either using the underlying API or <literal>Transaction</"
+"literal>, is never optional!"
+msgstr ""
+"(Opcional) Un objeto de corta vida, mono-hebra, usado por la aplicación para "
+"especificar unidades atómicas de trabajo. Abstrae a la aplicación de las "
+"subyacentes transacciones JDBC, JTA o CORBA. En algunos casos, una "
+"<literal>Session</literal> puede extenderse sobre varias "
+"<literal>Transaction</literal>s. Sin embargo, la demarcación de la "
+"transacción, ya sea usando la API subyacente o <literal>Transaction</"
+"literal>, nunca es opcional!"
 
-#: index.docbook:141
-msgid "ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</literal>)"
-msgstr "ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</literal>)"
+#. Tag: term
+#: architecture.xml:141
+#, no-c-format
+msgid ""
+"ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</"
+"literal>)"
+msgstr ""
+"ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</"
+"literal>)"
 
-#: index.docbook:143
-msgid "(Optional) A factory for (and pool of) JDBC connections. Abstracts application from underlying <literal>Datasource</literal> or <literal>DriverManager</literal>. Not exposed to application, but can be extended/implemented by the developer."
-msgstr "(Opcional) Una f&#x00e1;brica (y pool) de conexiones JDBC. Abstrae a la aplicaci&#x00f3;n del <literal>Datasource</literal> o <literal>DriverManager</literal> subyacente. No se expone a la aplicaci&#x00f3;n, pero puede ser extendido/implementado por el desarrollador."
+#. Tag: para
+#: architecture.xml:143
+#, no-c-format
+msgid ""
+"(Optional) A factory for (and pool of) JDBC connections. Abstracts "
+"application from underlying <literal>Datasource</literal> or "
+"<literal>DriverManager</literal>. Not exposed to application, but can be "
+"extended/implemented by the developer."
+msgstr ""
+"(Opcional) Una fábrica (y pool) de conexiones JDBC. Abstrae a la aplicación "
+"del <literal>Datasource</literal> o <literal>DriverManager</literal> "
+"subyacente. No se expone a la aplicación, pero puede ser extendido/"
+"implementado por el desarrollador."
 
-#: index.docbook:151
-msgid "TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
-msgstr "TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
+#. Tag: term
+#: architecture.xml:151
+#, no-c-format
+msgid ""
+"TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
+msgstr ""
+"TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
 
-#: index.docbook:153
-msgid "(Optional) A factory for <literal>Transaction</literal> instances. Not exposed to the application, but can be extended/implemented by the developer."
-msgstr "(Opcional) Una f&#x00e1;brica de instancias de <literal>Transaction</literal>. No se expone a la aplicaci&#x00f3;n, pero puede ser extendido/implementado por el desarrollador."
+#. Tag: para
+#: architecture.xml:153
+#, no-c-format
+msgid ""
+"(Optional) A factory for <literal>Transaction</literal> instances. Not "
+"exposed to the application, but can be extended/implemented by the developer."
+msgstr ""
+"(Opcional) Una fábrica de instancias de <literal>Transaction</literal>. No "
+"se expone a la aplicación, pero puede ser extendido/implementado por el "
+"desarrollador."
 
-#: index.docbook:160
+#. Tag: emphasis
+#: architecture.xml:160
+#, no-c-format
 msgid "Extension Interfaces"
-msgstr "Interfaces de Extensi&#x00f3;n"
+msgstr "Interfaces de Extensión"
 
-#: index.docbook:162
-msgid "Hibernate offers many optional extension interfaces you can implement to customize the behavior of your persistence layer. See the API documentation for details."
-msgstr "Hibernate ofrece muchas interfaces de extensi&#x00f3;n opcional que puedes implementar para modificar a medida el comportamiento de tu capa de persistencia. Para m&#x00e1;s detalles, mira la documentaci&#x00f3;n de la API."
+#. Tag: para
+#: architecture.xml:162
+#, no-c-format
+msgid ""
+"Hibernate offers many optional extension interfaces you can implement to "
+"customize the behavior of your persistence layer. See the API documentation "
+"for details."
+msgstr ""
+"Hibernate ofrece muchas interfaces de extensión opcional que puedes "
+"implementar para modificar a medida el comportamiento de tu capa de "
+"persistencia. Para más detalles, mira la documentación de la API."
 
-#: index.docbook:171
-msgid "Given a \"lite\" architecture, the application bypasses the <literal>Transaction</literal>/<literal>TransactionFactory</literal> and/or <literal>ConnectionProvider</literal> APIs to talk to JTA or JDBC directly."
-msgstr "Dada una arquitectura \"sencilla\", la aplicaci&#x00f3;n pasa por alto las APIs de <literal>Transaction</literal>/<literal>TransactionFactory</literal> y/o <literal>ConnectionProvider</literal>, para hablar directamente a JTA o JDBC."
+#. Tag: para
+#: architecture.xml:171
+#, no-c-format
+msgid ""
+"Given a \"lite\" architecture, the application bypasses the "
+"<literal>Transaction</literal>/<literal>TransactionFactory</literal> and/or "
+"<literal>ConnectionProvider</literal> APIs to talk to JTA or JDBC directly."
+msgstr ""
+"Dada una arquitectura \"sencilla\", la aplicación pasa por alto las APIs de "
+"<literal>Transaction</literal>/<literal>TransactionFactory</literal> y/o "
+"<literal>ConnectionProvider</literal>, para hablar directamente a JTA o JDBC."
 
-#: index.docbook:179
+#. Tag: title
+#: architecture.xml:179
+#, no-c-format
 msgid "Instance states"
 msgstr "Estados de instancia"
 
-#: index.docbook:180
-msgid "An instance of a persistent classes may be in one of three different states, which are defined with respect to a <emphasis>persistence context</emphasis>. The Hibernate <literal>Session</literal> object is the persistence context:"
-msgstr "Una instancia de una clase persistente puede estar en uno de tres estados diferentes, definidos respecto de su <emphasis>contexto de persistencia</emphasis>. El objeto <literal>Session</literal> de Hibernate es el contexto de persistencia:"
+#. Tag: para
+#: architecture.xml:180
+#, no-c-format
+msgid ""
+"An instance of a persistent classes may be in one of three different states, "
+"which are defined with respect to a <emphasis>persistence context</"
+"emphasis>. The Hibernate <literal>Session</literal> object is the "
+"persistence context:"
+msgstr ""
+"Una instancia de una clase persistente puede estar en uno de tres estados "
+"diferentes, definidos respecto de su <emphasis>contexto de persistencia</"
+"emphasis>. El objeto <literal>Session</literal> de Hibernate es el contexto "
+"de persistencia:"
 
-#: index.docbook:188
+#. Tag: term
+#: architecture.xml:188
+#, no-c-format
 msgid "transient"
 msgstr "transitorio"
 
-#: index.docbook:190
-msgid "The instance is not, and has never been associated with any persistence context. It has no persistent identity (primary key value)."
-msgstr "La instancia no est&#x00e1; y nunca estuvo asociada con un contexto de persistencia. No tiene identidad persistente (valor de clave primaria)."
+#. Tag: para
+#: architecture.xml:190
+#, no-c-format
+msgid ""
+"The instance is not, and has never been associated with any persistence "
+"context. It has no persistent identity (primary key value)."
+msgstr ""
+"La instancia no está y nunca estuvo asociada con un contexto de "
+"persistencia. No tiene identidad persistente (valor de clave primaria)."
 
-#: index.docbook:198
+#. Tag: term
+#: architecture.xml:198
+#, no-c-format
 msgid "persistent"
 msgstr "persistente"
 
-#: index.docbook:200
-msgid "The instance is currently associated with a persistence context. It has a persistent identity (primary key value) and, perhaps, a corresponding row in the database. For a particular persistence context, Hibernate <emphasis>guarantees</emphasis> that persistent identity is equivalent to Java identity (in-memory location of the object)."
-msgstr "La instancia est&#x00e1; actualmente asociada con un contexto de persistencia. Tiene una identidad persistente (valor de clave primaria) y, quiz&#x00e1;s, una fila correspondiente en la base de datos. Para un contexto de persistencia en particular, Hibernate <emphasis>garantiza</emphasis> que la identidad persistente es equivalente a la identidad Java (localizaci&#x00f3;n en memoria del objeto)."
+#. Tag: para
+#: architecture.xml:200
+#, no-c-format
+msgid ""
+"The instance is currently associated with a persistence context. It has a "
+"persistent identity (primary key value) and, perhaps, a corresponding row in "
+"the database. For a particular persistence context, Hibernate "
+"<emphasis>guarantees</emphasis> that persistent identity is equivalent to "
+"Java identity (in-memory location of the object)."
+msgstr ""
+"La instancia está actualmente asociada con un contexto de persistencia. "
+"Tiene una identidad persistente (valor de clave primaria) y, quizás, una "
+"fila correspondiente en la base de datos. Para un contexto de persistencia "
+"en particular, Hibernate <emphasis>garantiza</emphasis> que la identidad "
+"persistente es equivalente a la identidad Java (localización en memoria del "
+"objeto)."
 
-#: index.docbook:212
+#. Tag: term
+#: architecture.xml:212
+#, no-c-format
 msgid "detached"
 msgstr "separado"
 
-#: index.docbook:214
-msgid "The instance was once associated with a persistence context, but that context was closed, or the instance was serialized to another process. It has a persistent identity and, perhaps, a corrsponding row in the database. For detached instances, Hibernate makes no guarantees about the relationship between persistent identity and Java identity."
-msgstr "La instancia estuvo una vez asociada con un contexto de persistencia, pero ese contexto fue cerrado, o la instancia fue serializada a otro proceso. Tiene una identidad persistente y, quiz&#x00e1;s, una fila correspondiente en la base de datos. Para las instancias separadas, Hibernate no establece ninguna garant&#x00ed;a sobre la relaci&#x00f3;n entre identidad persistente e identidad Java."
+#. Tag: para
+#: architecture.xml:214
+#, no-c-format
+msgid ""
+"The instance was once associated with a persistence context, but that "
+"context was closed, or the instance was serialized to another process. It "
+"has a persistent identity and, perhaps, a corrsponding row in the database. "
+"For detached instances, Hibernate makes no guarantees about the relationship "
+"between persistent identity and Java identity."
+msgstr ""
+"La instancia estuvo una vez asociada con un contexto de persistencia, pero "
+"ese contexto fue cerrado, o la instancia fue serializada a otro proceso. "
+"Tiene una identidad persistente y, quizás, una fila correspondiente en la "
+"base de datos. Para las instancias separadas, Hibernate no establece ninguna "
+"garantía sobre la relación entre identidad persistente e identidad Java."
 
-#: index.docbook:229
+#. Tag: title
+#: architecture.xml:229
+#, no-c-format
 msgid "JMX Integration"
-msgstr "Integraci&#x00f3;n JMX"
+msgstr "Integración JMX"
 
-#: index.docbook:231
-msgid "JMX is the J2EE standard for management of Java components. Hibernate may be managed via a JMX standard service. We provide an MBean implementation in the distribution, <literal>org.hibernate.jmx.HibernateService</literal>."
-msgstr "JMX es el est&#x00e1;ndar J2EE para la gesti&#x00f3;n de componentes Java. Hibernate puede ser gestionado por medio de un servicio est&#x00e1;ndar JMX. Proveemos una implementaci&#x00f3;n de MBean en la distribuci&#x00f3;n, <literal>org.hibernate.jmx.HibernateService</literal>."
+#. Tag: para
+#: architecture.xml:231
+#, no-c-format
+msgid ""
+"JMX is the J2EE standard for management of Java components. Hibernate may be "
+"managed via a JMX standard service. We provide an MBean implementation in "
+"the distribution, <literal>org.hibernate.jmx.HibernateService</literal>."
+msgstr ""
+"JMX es el estándar J2EE para la gestión de componentes Java. Hibernate puede "
+"ser gestionado por medio de un servicio estándar JMX. Proveemos una "
+"implementación de MBean en la distribución, <literal>org.hibernate.jmx."
+"HibernateService</literal>."
 
-#: index.docbook:237
-msgid "For an example how to deploy Hibernate as a JMX service on the JBoss Application Server, please see the JBoss User Guide. On JBoss AS, you also get these benefits if you deploy using JMX:"
-msgstr "Para ejemplo de c&#x00f3;mo desplegar Hibernate como un servicio JMX en un Servidor de Aplicaciones JBoss, por favor, mira la Gu&#x00ed;a del Usuario de JBoss. En JBoss AS, tienes adem&#x00e1;s estos beneficios si despliegas usando JMX:"
+#. Tag: para
+#: architecture.xml:237
+#, no-c-format
+msgid ""
+"For an example how to deploy Hibernate as a JMX service on the JBoss "
+"Application Server, please see the JBoss User Guide. On JBoss AS, you also "
+"get these benefits if you deploy using JMX:"
+msgstr ""
+"Para ejemplo de cómo desplegar Hibernate como un servicio JMX en un Servidor "
+"de Aplicaciones JBoss, por favor, mira la Guía del Usuario de JBoss. En "
+"JBoss AS, tienes además estos beneficios si despliegas usando JMX:"
 
-#: index.docbook:245
-msgid "<emphasis>Session Management:</emphasis> The Hibernate <literal>Session</literal>'s life cycle can be automatically bound to the scope of a JTA transaction. This means you no longer have to manually open and close the <literal>Session</literal>, this becomes the job of a JBoss EJB interceptor. You also don't have to worry about transaction demarcation in your code anymore (unless you'd like to write a portable persistence layer of course, use the optional Hibernate <literal>Transaction</literal> API for this). You call the <literal>HibernateContext</literal> to access a <literal>Session</literal>."
-msgstr "<emphasis>Gesti&#x00f3;n de Sesi&#x00f3;n:</emphasis> El ciclo de vida de la <literal>Session</literal> de Hibernate puede estar autom&#x00e1;ticamente ligado al &#x00e1;mbito de una transacci&#x00f3;n JTA. Esto significa que ya no tienes que abrir ni cerrar la <literal>Session</literal> manualmente, esto pasa a ser trabajo de un interceptor EJB de JBoss. Adem&#x00e1;s tampoco tienes que preocuparte m&#x00e1;s de la demarcaci&#x00f3;n de la transacci&#x00f3;n (a menos que que quieras escribir una capa de persitencia portable, por supuesto, usa la API de <literal>Transaction</literal> de Hibernate para esto). Para acceder a una <literal>Session</literal> llama al <literal>HibernateContext</literal>."
+#. Tag: para
+#: architecture.xml:245
+#, no-c-format
+msgid ""
+"<emphasis>Session Management:</emphasis> The Hibernate <literal>Session</"
+"literal>'s life cycle can be automatically bound to the scope of a JTA "
+"transaction. This means you no longer have to manually open and close the "
+"<literal>Session</literal>, this becomes the job of a JBoss EJB interceptor. "
+"You also don't have to worry about transaction demarcation in your code "
+"anymore (unless you'd like to write a portable persistence layer of course, "
+"use the optional Hibernate <literal>Transaction</literal> API for this). You "
+"call the <literal>HibernateContext</literal> to access a <literal>Session</"
+"literal>."
+msgstr ""
+"<emphasis>Gestión de Sesión:</emphasis> El ciclo de vida de la "
+"<literal>Session</literal> de Hibernate puede estar automáticamente ligado "
+"al ámbito de una transacción JTA. Esto significa que ya no tienes que abrir "
+"ni cerrar la <literal>Session</literal> manualmente, esto pasa a ser trabajo "
+"de un interceptor EJB de JBoss. Además tampoco tienes que preocuparte más de "
+"la demarcación de la transacción (a menos que que quieras escribir una capa "
+"de persitencia portable, por supuesto, usa la API de <literal>Transaction</"
+"literal> de Hibernate para esto). Para acceder a una <literal>Session</"
+"literal> llama al <literal>HibernateContext</literal>."
 
-#: index.docbook:257
-msgid "<emphasis>HAR deployment:</emphasis> Usually you deploy the Hibernate JMX service using a JBoss service deployment descriptor (in an EAR and/or SAR file), it supports all the usual configuration options of a Hibernate <literal>SessionFactory</literal>. However, you still have to name all your mapping files in the deployment descriptor. If you decide to use the optional HAR deployment, JBoss will automatically detect all mapping files in your HAR file."
-msgstr "<emphasis>Despliegue de HAR:</emphasis> Usualmente despliegas el servicio JMX de Hibernate usando un descriptor de despliegue de servicio de JBoss (en un fichero EAR y/o SAR), que soporta todas las opciones de configuraci&#x00f3;n usuales de una <literal>SessionFactory</literal> de Hibernate. Sin embargo, todav&#x00ed;a tienes que nombrar todos tus ficheros de mapeo en el descriptor de despliegue. Si decides usar el depliegue de HAR opcional, JBoss detectar&#x00e1; autom&#x00e1;ticamente todos los ficheros de mapeo en tu fichero HAR."
+#. Tag: para
+#: architecture.xml:257
+#, no-c-format
+msgid ""
+"<emphasis>HAR deployment:</emphasis> Usually you deploy the Hibernate JMX "
+"service using a JBoss service deployment descriptor (in an EAR and/or SAR "
+"file), it supports all the usual configuration options of a Hibernate "
+"<literal>SessionFactory</literal>. However, you still have to name all your "
+"mapping files in the deployment descriptor. If you decide to use the "
+"optional HAR deployment, JBoss will automatically detect all mapping files "
+"in your HAR file."
+msgstr ""
+"<emphasis>Despliegue de HAR:</emphasis> Usualmente despliegas el servicio "
+"JMX de Hibernate usando un descriptor de despliegue de servicio de JBoss (en "
+"un fichero EAR y/o SAR), que soporta todas las opciones de configuración "
+"usuales de una <literal>SessionFactory</literal> de Hibernate. Sin embargo, "
+"todavía tienes que nombrar todos tus ficheros de mapeo en el descriptor de "
+"despliegue. Si decides usar el depliegue de HAR opcional, JBoss detectará "
+"automáticamente todos los ficheros de mapeo en tu fichero HAR."
 
-#: index.docbook:268
-msgid "Consult the JBoss AS user guide for more information about these options."
-msgstr "Para m&#x00e1;s informaci&#x00f3;n sobre estas opciones, consulta la Gu&#x00ed;a de Usuario del JBoss AS."
+#. Tag: para
+#: architecture.xml:268
+#, no-c-format
+msgid ""
+"Consult the JBoss AS user guide for more information about these options."
+msgstr ""
+"Para más información sobre estas opciones, consulta la Guía de Usuario del "
+"JBoss AS."
 
-#: index.docbook:272
-msgid "Another feature available as a JMX service are runtime Hibernate statistics. See <xref linkend=\"configuration-optional-statistics\"/>."
-msgstr "Otra funcionalidad disponible como un servicio JMX son las estad&#x00ed;sticas en tiempo de ejecuci&#x00f3;n de Hibernate. Mira <xref linkend=\"configuration-optional-statistics\"/>."
+#. Tag: para
+#: architecture.xml:272
+#, no-c-format
+msgid ""
+"Another feature available as a JMX service are runtime Hibernate statistics. "
+"See <xref linkend=\"configuration-optional-statistics\"/>."
+msgstr ""
+"Otra funcionalidad disponible como un servicio JMX son las estadísticas en "
+"tiempo de ejecución de Hibernate. Mira <xref linkend=\"configuration-"
+"optional-statistics\"/>."
 
-#: index.docbook:279
+#. Tag: title
+#: architecture.xml:279
+#, no-c-format
 msgid "JCA Support"
 msgstr "Soporte JCA:"
 
-#: index.docbook:280
-msgid "Hibernate may also be configured as a JCA connector. Please see the website for more details. Please note that Hibernate JCA support is still considered experimental."
-msgstr "Hiberate puede adem&#x00e1;s ser configurado como un conector JCA. Por favor mira el sitio web para m&#x00e1;s detalles. Por favor ten en cuenta que el soporte de JCA de Hibernate est&#x00e1; a&#x00fa;n considerado experimental."
+#. Tag: para
+#: architecture.xml:280
+#, no-c-format
+msgid ""
+"Hibernate may also be configured as a JCA connector. Please see the website "
+"for more details. Please note that Hibernate JCA support is still considered "
+"experimental."
+msgstr ""
+"Hiberate puede además ser configurado como un conector JCA. Por favor mira "
+"el sitio web para más detalles. Por favor ten en cuenta que el soporte de "
+"JCA de Hibernate está aún considerado experimental."
 
-#: index.docbook:287
+#. Tag: title
+#: architecture.xml:287
+#, no-c-format
 msgid "Contextual Sessions"
-msgstr ""
+msgstr "translator-credits"
 
-#: index.docbook:288
-msgid "Most applications using Hibernate need some form of \"contextual\" sessions, where a given session is in effect throughout the scope of a given context. However, across applications the definition of what constitutes a context is typically different; and different contexts define different scopes to the notion of current. Applications using Hibernate prior to version 3.0 tended to utilize either home-grown <literal>ThreadLocal</literal>-based contextual sessions, helper classes such as <literal>HibernateUtil</literal>, or utilized third-party frameworks (such as Spring or Pico) which provided proxy/interception-based contextual sessions."
+#. Tag: para
+#: architecture.xml:288
+#, no-c-format
+msgid ""
+"Most applications using Hibernate need some form of \"contextual\" sessions, "
+"where a given session is in effect throughout the scope of a given context. "
+"However, across applications the definition of what constitutes a context is "
+"typically different; and different contexts define different scopes to the "
+"notion of current. Applications using Hibernate prior to version 3.0 tended "
+"to utilize either home-grown <literal>ThreadLocal</literal>-based contextual "
+"sessions, helper classes such as <literal>HibernateUtil</literal>, or "
+"utilized third-party frameworks (such as Spring or Pico) which provided "
+"proxy/interception-based contextual sessions."
 msgstr ""
 
-#: index.docbook:297
-msgid "Starting with version 3.0.1, Hibernate added the <literal>SessionFactory.getCurrentSession()</literal> method. Initially, this assumed usage of <literal>JTA</literal> transactions, where the <literal>JTA</literal> transaction defined both the scope and context of a current session. The Hibernate team maintains that, given the maturity of the numerous stand-alone <literal>JTA TransactionManager</literal> implementations out there, most (if not all) applications should be using <literal>JTA</literal> transaction management whether or not they are deployed into a <literal>J2EE</literal> container. Based on that, the <literal>JTA</literal>-based contextual sessions is all you should ever need to use."
+#. Tag: para
+#: architecture.xml:297
+#, no-c-format
+msgid ""
+"Starting with version 3.0.1, Hibernate added the <literal>SessionFactory."
+"getCurrentSession()</literal> method. Initially, this assumed usage of "
+"<literal>JTA</literal> transactions, where the <literal>JTA</literal> "
+"transaction defined both the scope and context of a current session. The "
+"Hibernate team maintains that, given the maturity of the numerous stand-"
+"alone <literal>JTA TransactionManager</literal> implementations out there, "
+"most (if not all) applications should be using <literal>JTA</literal> "
+"transaction management whether or not they are deployed into a "
+"<literal>J2EE</literal> container. Based on that, the <literal>JTA</literal>-"
+"based contextual sessions is all you should ever need to use."
 msgstr ""
 
-#: index.docbook:307
-msgid "However, as of version 3.1, the processing behind <literal>SessionFactory.getCurrentSession()</literal> is now pluggable. To that end, a new extension interface (<literal>org.hibernate.context.CurrentSessionContext</literal>) and a new configuration parameter (<literal>hibernate.current_session_context_class</literal>) have been added to allow pluggability of the scope and context of defining current sessions."
+#. Tag: para
+#: architecture.xml:307
+#, no-c-format
+msgid ""
+"However, as of version 3.1, the processing behind <literal>SessionFactory."
+"getCurrentSession()</literal> is now pluggable. To that end, a new extension "
+"interface (<literal>org.hibernate.context.CurrentSessionContext</literal>) "
+"and a new configuration parameter (<literal>hibernate."
+"current_session_context_class</literal>) have been added to allow "
+"pluggability of the scope and context of defining current sessions."
 msgstr ""
 
-#: index.docbook:314
-msgid "See the Javadocs for the <literal>org.hibernate.context.CurrentSessionContext</literal> interface for a detailed discussion of its contract. It defines a single method, <literal>currentSession()</literal>, by which the implementation is responsible for tracking the current contextual session. Out-of-the-box, Hibernate comes with three implementations of this interface."
+#. Tag: para
+#: architecture.xml:314
+#, no-c-format
+msgid ""
+"See the Javadocs for the <literal>org.hibernate.context."
+"CurrentSessionContext</literal> interface for a detailed discussion of its "
+"contract. It defines a single method, <literal>currentSession()</literal>, "
+"by which the implementation is responsible for tracking the current "
+"contextual session. Out-of-the-box, Hibernate comes with three "
+"implementations of this interface."
 msgstr ""
 
-#: index.docbook:324
-msgid "<literal>org.hibernate.context.JTASessionContext</literal> - current sessions are tracked and scoped by a <literal>JTA</literal> transaction. The processing here is exactly the same as in the older JTA-only approach. See the Javadocs for details."
+#. Tag: para
+#: architecture.xml:324
+#, no-c-format
+msgid ""
+"<literal>org.hibernate.context.JTASessionContext</literal> - current "
+"sessions are tracked and scoped by a <literal>JTA</literal> transaction. The "
+"processing here is exactly the same as in the older JTA-only approach. See "
+"the Javadocs for details."
 msgstr ""
 
-#: index.docbook:332
-msgid "<literal>org.hibernate.context.ThreadLocalSessionContext</literal> - current sessions are tracked by thread of execution. Again, see the Javadocs for details."
+#. Tag: para
+#: architecture.xml:332
+#, no-c-format
+msgid ""
+"<literal>org.hibernate.context.ThreadLocalSessionContext</literal> - current "
+"sessions are tracked by thread of execution. Again, see the Javadocs for "
+"details."
 msgstr ""
 
-#: index.docbook:338
-msgid "<literal>org.hibernate.context.ManagedSessionContext</literal> - current sessions are tracked by thread of execution. However, you are responsible to bind and unbind a <literal>Session</literal> instance with static methods on this class, it does never open, flush, or close a <literal>Session</literal>."
+#. Tag: para
+#: architecture.xml:338
+#, no-c-format
+msgid ""
+"<literal>org.hibernate.context.ManagedSessionContext</literal> - current "
+"sessions are tracked by thread of execution. However, you are responsible to "
+"bind and unbind a <literal>Session</literal> instance with static methods on "
+"this class, it does never open, flush, or close a <literal>Session</literal>."
 msgstr ""
 
-#: index.docbook:347
-msgid "The first two implementations provide a \"one session - one database transaction\" programming model, also known and used as <emphasis>session-per-request</emphasis>. The beginning and end of a Hibernate session is defined by the duration of a database transaction. If you use programatic transaction demarcation in plain JSE without JTA, you are adviced to use the Hibernate <literal>Transaction</literal> API to hide the underlying transaction system from your code. If you use JTA, use the JTA interfaces to demarcate transactions. If you execute in an EJB container that supports CMT, transaction boundaries are defined declaratively and you don't need any transaction or session demarcation operations in your code. Refer to <xref linkend=\"transactions\"/> for more information and code examples."
+#. Tag: para
+#: architecture.xml:347
+#, no-c-format
+msgid ""
+"The first two implementations provide a \"one session - one database "
+"transaction\" programming model, also known and used as <emphasis>session-"
+"per-request</emphasis>. The beginning and end of a Hibernate session is "
+"defined by the duration of a database transaction. If you use programatic "
+"transaction demarcation in plain JSE without JTA, you are adviced to use the "
+"Hibernate <literal>Transaction</literal> API to hide the underlying "
+"transaction system from your code. If you use JTA, use the JTA interfaces to "
+"demarcate transactions. If you execute in an EJB container that supports "
+"CMT, transaction boundaries are defined declaratively and you don't need any "
+"transaction or session demarcation operations in your code. Refer to <xref "
+"linkend=\"transactions\"/> for more information and code examples."
 msgstr ""
 
-#: index.docbook:359
-msgid "The <literal>hibernate.current_session_context_class</literal> configuration parameter defines which <literal>org.hibernate.context.CurrentSessionContext</literal> implementation should be used. Note that for backwards compatibility, if this config param is not set but a <literal>org.hibernate.transaction.TransactionManagerLookup</literal> is configured, Hibernate will use the <literal>org.hibernate.context.JTASessionContext</literal>. Typically, the value of this parameter would just name the implementation class to use; for the three out-of-the-box implementations, however, there are three corresponding short names, \"jta\", \"thread\", and \"managed\"."
+#. Tag: para
+#: architecture.xml:359
+#, no-c-format
+msgid ""
+"The <literal>hibernate.current_session_context_class</literal> configuration "
+"parameter defines which <literal>org.hibernate.context."
+"CurrentSessionContext</literal> implementation should be used. Note that for "
+"backwards compatibility, if this config param is not set but a <literal>org."
+"hibernate.transaction.TransactionManagerLookup</literal> is configured, "
+"Hibernate will use the <literal>org.hibernate.context.JTASessionContext</"
+"literal>. Typically, the value of this parameter would just name the "
+"implementation class to use; for the three out-of-the-box implementations, "
+"however, there are three corresponding short names, \"jta\", \"thread\", and "
+"\"managed\"."
 msgstr ""
-
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
-
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
-

Modified: core/trunk/documentation/manual/translations/es-ES/content/association_mapping.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/association_mapping.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/association_mapping.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,881 +1,873 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:6
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: association_mapping.xml:6
+#, no-c-format
 msgid "Association Mappings"
-msgstr "Mapeos de Asociaci&#x00f3;n"
+msgstr "Mapeos de Asociación"
 
-#: index.docbook:9
+#. Tag: title
+#: association_mapping.xml:9
+#, no-c-format
 msgid "Introduction"
-msgstr "Introducci&#x00f3;n"
+msgstr "Introducción"
 
-#: index.docbook:11
-msgid "Association mappings are the often most difficult thing to get right. In this section we'll go through the canonical cases one by one, starting with unidirectional mappings, and then considering the bidirectional cases. We'll use <literal>Person</literal> and <literal>Address</literal> in all the examples."
-msgstr "Los mapeos de asociaci&#x00f3;n son frecuentemente las cosas mas dif&#x00ed;ciles de hacer correctamente. En esta secci&#x00f3;n iremos a trav&#x00e9;s de los casos can&#x00f3;nicos uno a uno, comenzando con los mapeos unidireccionales, y considerando luego los casos bidireccionales. Usaremos <literal>Person</literal> y <literal>Address</literal> en todos los ejemplos."
+#. Tag: para
+#: association_mapping.xml:11
+#, no-c-format
+msgid ""
+"Association mappings are the often most difficult thing to get right. In "
+"this section we'll go through the canonical cases one by one, starting with "
+"unidirectional mappings, and then considering the bidirectional cases. We'll "
+"use <literal>Person</literal> and <literal>Address</literal> in all the "
+"examples."
+msgstr ""
+"Los mapeos de asociación son frecuentemente las cosas mas difíciles de hacer "
+"correctamente. En esta sección iremos a través de los casos canónicos uno a "
+"uno, comenzando con los mapeos unidireccionales, y considerando luego los "
+"casos bidireccionales. Usaremos <literal>Person</literal> y "
+"<literal>Address</literal> en todos los ejemplos."
 
-#: index.docbook:19
-msgid "We'll classify associations by whether or not they map to an intervening join table, and by multiplicity."
-msgstr "Clasificaremos las asociaciones por cuanto mapeen o no a una tabla de uni&#x00f3;n interviniente, y por su multiplicidad."
+#. Tag: para
+#: association_mapping.xml:19
+#, no-c-format
+msgid ""
+"We'll classify associations by whether or not they map to an intervening "
+"join table, and by multiplicity."
+msgstr ""
+"Clasificaremos las asociaciones por cuanto mapeen o no a una tabla de unión "
+"interviniente, y por su multiplicidad."
 
-#: index.docbook:24
-msgid "Nullable foreign keys are not considered good practice in traditional data modelling, so all our examples use not null foreign keys. This is not a requirement of Hibernate, and the mappings will all work if you drop the nullability constraints."
-msgstr "Las claves for&#x00e1;neas que aceptan valores nulos (en adelante, nullables) no son consideradas una buena pr&#x00e1;ctica en el modelado tradicional de datos, as&#x00ed; que todos nuestros ejemplos usan claves for&#x00e1;neas no nullables. Esto no es un requerimiento de Hibernate, y todos los mapeos funcionar&#x00e1;n si quitas las restricciones de nulabilidad."
+#. Tag: para
+#: association_mapping.xml:24
+#, no-c-format
+msgid ""
+"Nullable foreign keys are not considered good practice in traditional data "
+"modelling, so all our examples use not null foreign keys. This is not a "
+"requirement of Hibernate, and the mappings will all work if you drop the "
+"nullability constraints."
+msgstr ""
+"Las claves foráneas que aceptan valores nulos (en adelante, nullables) no "
+"son consideradas una buena práctica en el modelado tradicional de datos, así "
+"que todos nuestros ejemplos usan claves foráneas no nullables. Esto no es un "
+"requerimiento de Hibernate, y todos los mapeos funcionarán si quitas las "
+"restricciones de nulabilidad."
 
-#: index.docbook:34
+#. Tag: title
+#: association_mapping.xml:34
+#, no-c-format
 msgid "Unidirectional associations"
 msgstr "Asociaciones Unidireccionales"
 
-#: index.docbook:37, index.docbook:108
+#. Tag: title
+#: association_mapping.xml:37 association_mapping.xml:108
+#, no-c-format
 msgid "many to one"
 msgstr "muchos a uno"
 
-#: index.docbook:39
-msgid "A <emphasis>unidirectional many-to-one association</emphasis> is the most common kind of unidirectional association."
-msgstr "Una <emphasis>asociaci&#x00f3;n unidireccional muchos-a-uno</emphasis> es el tipo m&#x00e1;s com&#x00fa;n de asociaciones unidireccionales."
+#. Tag: para
+#: association_mapping.xml:39
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional many-to-one association</emphasis> is the most "
+"common kind of unidirectional association."
+msgstr ""
+"Una <emphasis>asociación unidireccional muchos-a-uno</emphasis> es el tipo "
+"más común de asociaciones unidireccionales."
 
-#: index.docbook:44
+#. Tag: programlisting
+#: association_mapping.xml:44
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <many-to-one name=\"address\" \n"
-      "        column=\"addressId\"\n"
-      "        not-null=\"true\"/>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Person\">\n"
+"    <id name=\"id\" column=\"personId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <many-to-one name=\"address\" \n"
+"        column=\"addressId\"\n"
+"        not-null=\"true\"/>\n"
+"</class>\n"
+"\n"
+"<class name=\"Address\">\n"
+"    <id name=\"id\" column=\"addressId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <many-to-one name=\"address\" \n"
-      "        column=\"addressId\"\n"
-      "        not-null=\"true\"/>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "</class>]]>"
 
-#: index.docbook:45, index.docbook:161
+#. Tag: programlisting
+#: association_mapping.xml:45 association_mapping.xml:161
+#, no-c-format
 msgid ""
-      "<![CDATA[\n"
-      "create table Person ( personId bigint not null primary key, addressId bigint not null )\n"
-      "create table Address ( addressId bigint not null primary key )\n"
-      "        ]]>"
+"<![CDATA[\n"
+"create table Person ( personId bigint not null primary key, addressId bigint "
+"not null )\n"
+"create table Address ( addressId bigint not null primary key )\n"
+"        ]]>"
 msgstr ""
-      "<![CDATA[\n"
-      "create table Person ( personId bigint not null primary key, addressId bigint not null )\n"
-      "create table Address ( addressId bigint not null primary key )\n"
-      "        ]]>"
 
-#: index.docbook:50, index.docbook:121, index.docbook:185, index.docbook:225
+#. Tag: title
+#: association_mapping.xml:50 association_mapping.xml:121
+#: association_mapping.xml:185 association_mapping.xml:225
+#, no-c-format
 msgid "one to one"
 msgstr "uno a uno"
 
-#: index.docbook:52
-msgid "A <emphasis>unidirectional one-to-one association on a foreign key</emphasis> is almost identical. The only difference is the column unique constraint."
-msgstr "Una <emphasis>asociaci&#x00f3;n unidireccional uno-a-uno en una clave primaria</emphasis> es casi id&#x00e9;ntica. La &#x00fa;nica diferencia es la restricci&#x00f3;n de unicidad de la columna."
+#. Tag: para
+#: association_mapping.xml:52
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional one-to-one association on a foreign key</"
+"emphasis> is almost identical. The only difference is the column unique "
+"constraint."
+msgstr ""
+"Una <emphasis>asociación unidireccional uno-a-uno en una clave primaria</"
+"emphasis> es casi idéntica. La única diferencia es la restricción de "
+"unicidad de la columna."
 
-#: index.docbook:57
+#. Tag: programlisting
+#: association_mapping.xml:57
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <many-to-one name=\"address\" \n"
-      "        column=\"addressId\" \n"
-      "        unique=\"true\"\n"
-      "        not-null=\"true\"/>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Person\">\n"
+"    <id name=\"id\" column=\"personId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <many-to-one name=\"address\" \n"
+"        column=\"addressId\" \n"
+"        unique=\"true\"\n"
+"        not-null=\"true\"/>\n"
+"</class>\n"
+"\n"
+"<class name=\"Address\">\n"
+"    <id name=\"id\" column=\"addressId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <many-to-one name=\"address\" \n"
-      "        column=\"addressId\" \n"
-      "        unique=\"true\"\n"
-      "        not-null=\"true\"/>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "</class>]]>"
 
-#: index.docbook:58, index.docbook:193
+#. Tag: programlisting
+#: association_mapping.xml:58 association_mapping.xml:193
+#, no-c-format
 msgid ""
-      "<![CDATA[\n"
-      "create table Person ( personId bigint not null primary key, addressId bigint not null unique )\n"
-      "create table Address ( addressId bigint not null primary key )\n"
-      "        ]]>"
+"<![CDATA[\n"
+"create table Person ( personId bigint not null primary key, addressId bigint "
+"not null unique )\n"
+"create table Address ( addressId bigint not null primary key )\n"
+"        ]]>"
 msgstr ""
-      "<![CDATA[\n"
-      "create table Person ( personId bigint not null primary key, addressId bigint not null unique )\n"
-      "create table Address ( addressId bigint not null primary key )\n"
-      "        ]]>"
 
-#: index.docbook:60
-msgid "A <emphasis>unidirectional one-to-one association on a primary key</emphasis> usually uses a special id generator. (Notice that we've reversed the direction of the association in this example.)"
-msgstr "Usualmente, una <emphasis>asociaci&#x00f3;n unidireccional uno-a-uno en una clave primaria</emphasis> usa un generador de id especial. (Observa que hemos invertido el sentido de la asociaci&#x00f3;n en este ejemplo)."
+#. Tag: para
+#: association_mapping.xml:60
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional one-to-one association on a primary key</"
+"emphasis> usually uses a special id generator. (Notice that we've reversed "
+"the direction of the association in this example.)"
+msgstr ""
+"Usualmente, una <emphasis>asociación unidireccional uno-a-uno en una clave "
+"primaria</emphasis> usa un generador de id especial. (Observa que hemos "
+"invertido el sentido de la asociación en este ejemplo)."
 
-#: index.docbook:66
+#. Tag: programlisting
+#: association_mapping.xml:66
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"foreign\">\n"
-      "            <param name=\"property\">person</param>\n"
-      "        </generator>\n"
-      "    </id>\n"
-      "    <one-to-one name=\"person\" constrained=\"true\"/>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Person\">\n"
+"    <id name=\"id\" column=\"personId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"</class>\n"
+"\n"
+"<class name=\"Address\">\n"
+"    <id name=\"id\" column=\"personId\">\n"
+"        <generator class=\"foreign\">\n"
+"            <param name=\"property\">person</param>\n"
+"        </generator>\n"
+"    </id>\n"
+"    <one-to-one name=\"person\" constrained=\"true\"/>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"foreign\">\n"
-      "            <param name=\"property\">person</param>\n"
-      "        </generator>\n"
-      "    </id>\n"
-      "    <one-to-one name=\"person\" constrained=\"true\"/>\n"
-      "</class>]]>"
 
-#: index.docbook:67, index.docbook:201
+#. Tag: programlisting
+#: association_mapping.xml:67 association_mapping.xml:201
+#, no-c-format
 msgid ""
-      "<![CDATA[\n"
-      "create table Person ( personId bigint not null primary key )\n"
-      "create table Address ( personId bigint not null primary key )\n"
-      "        ]]>"
+"<![CDATA[\n"
+"create table Person ( personId bigint not null primary key )\n"
+"create table Address ( personId bigint not null primary key )\n"
+"        ]]>"
 msgstr ""
-      "<![CDATA[\n"
-      "create table Person ( personId bigint not null primary key )\n"
-      "create table Address ( personId bigint not null primary key )\n"
-      "        ]]>"
 
-#: index.docbook:72, index.docbook:94
+#. Tag: title
+#: association_mapping.xml:72 association_mapping.xml:94
+#, no-c-format
 msgid "one to many"
 msgstr "uno a muchos"
 
-#: index.docbook:74
-msgid "A <emphasis>unidirectional one-to-many association on a foreign key</emphasis> is a very unusual case, and is not really recommended."
-msgstr "Una <emphasis>asociaci&#x00f3;n unidireccional uno-a-muchos en una clave for&#x00e1;nea</emphasis> es un caso muy inusual, y realmente no est&#x00e1; recomendada."
+#. Tag: para
+#: association_mapping.xml:74
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional one-to-many association on a foreign key</"
+"emphasis> is a very unusual case, and is not really recommended."
+msgstr ""
+"Una <emphasis>asociación unidireccional uno-a-muchos en una clave foránea</"
+"emphasis> es un caso muy inusual, y realmente no está recomendada."
 
-#: index.docbook:79
+#. Tag: programlisting
+#: association_mapping.xml:79
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <set name=\"addresses\">\n"
-      "        <key column=\"personId\" \n"
-      "            not-null=\"true\"/>\n"
-      "        <one-to-many class=\"Address\"/>\n"
-      "    </set>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Person\">\n"
+"    <id name=\"id\" column=\"personId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <set name=\"addresses\">\n"
+"        <key column=\"personId\" \n"
+"            not-null=\"true\"/>\n"
+"        <one-to-many class=\"Address\"/>\n"
+"    </set>\n"
+"</class>\n"
+"\n"
+"<class name=\"Address\">\n"
+"    <id name=\"id\" column=\"addressId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <set name=\"addresses\">\n"
-      "        <key column=\"personId\" \n"
-      "            not-null=\"true\"/>\n"
-      "        <one-to-many class=\"Address\"/>\n"
-      "    </set>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "</class>]]>"
 
-#: index.docbook:80
+#. Tag: programlisting
+#: association_mapping.xml:80
+#, no-c-format
 msgid ""
-      "<![CDATA[\n"
-      "create table Person ( personId bigint not null primary key )\n"
-      "create table Address ( addressId bigint not null primary key, personId bigint not null )\n"
-      "        ]]>"
+"<![CDATA[\n"
+"create table Person ( personId bigint not null primary key )\n"
+"create table Address ( addressId bigint not null primary key, personId "
+"bigint not null )\n"
+"        ]]>"
 msgstr ""
-      "<![CDATA[\n"
-      "create table Person ( personId bigint not null primary key )\n"
-      "create table Address ( addressId bigint not null primary key, personId bigint not null )\n"
-      "        ]]>"
 
-#: index.docbook:82
+#. Tag: para
+#: association_mapping.xml:82
+#, no-c-format
 msgid "We think it's better to use a join table for this kind of association."
-msgstr "Creemos que es mejor usar una tabla de uni&#x00f3;n para este tipo de asociaci&#x00f3;n."
+msgstr ""
+"Creemos que es mejor usar una tabla de unión para este tipo de asociación."
 
-#: index.docbook:91
+#. Tag: title
+#: association_mapping.xml:91
+#, no-c-format
 msgid "Unidirectional associations with join tables"
-msgstr "Asociaciones unidireccionales con tablas de uni&#x00f3;n"
+msgstr "Asociaciones unidireccionales con tablas de unión"
 
-#: index.docbook:96
-msgid "A <emphasis>unidirectional one-to-many association on a join table</emphasis> is much preferred. Notice that by specifying <literal>unique=\"true\"</literal>, we have changed the multiplicity from many-to-many to one-to-many."
-msgstr "Una <emphasis>asociaci&#x00f3;n unidireccional uno-a-muchos en una tabla de uni&#x00f3;n</emphasis> es m&#x00e1;s preferible. Observa que especificando <literal>unique=\"true\"</literal>, hemos cambiado la multiplicidad de muchos-a-muchos a uno-a-muchos."
+#. Tag: para
+#: association_mapping.xml:96
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional one-to-many association on a join table</"
+"emphasis> is much preferred. Notice that by specifying <literal>unique=\"true"
+"\"</literal>, we have changed the multiplicity from many-to-many to one-to-"
+"many."
+msgstr ""
+"Una <emphasis>asociación unidireccional uno-a-muchos en una tabla de unión</"
+"emphasis> es más preferible. Observa que especificando <literal>unique=\"true"
+"\"</literal>, hemos cambiado la multiplicidad de muchos-a-muchos a uno-a-"
+"muchos."
 
-#: index.docbook:102
+#. Tag: programlisting
+#: association_mapping.xml:102
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <set name=\"addresses\" table=\"PersonAddress\">\n"
-      "        <key column=\"personId\"/>\n"
-      "        <many-to-many column=\"addressId\"\n"
-      "            unique=\"true\"\n"
-      "            class=\"Address\"/>\n"
-      "    </set>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Person\">\n"
+"    <id name=\"id\" column=\"personId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <set name=\"addresses\" table=\"PersonAddress\">\n"
+"        <key column=\"personId\"/>\n"
+"        <many-to-many column=\"addressId\"\n"
+"            unique=\"true\"\n"
+"            class=\"Address\"/>\n"
+"    </set>\n"
+"</class>\n"
+"\n"
+"<class name=\"Address\">\n"
+"    <id name=\"id\" column=\"addressId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <set name=\"addresses\" table=\"PersonAddress\">\n"
-      "        <key column=\"personId\"/>\n"
-      "        <many-to-many column=\"addressId\"\n"
-      "            unique=\"true\"\n"
-      "            class=\"Address\"/>\n"
-      "    </set>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "</class>]]>"
 
-#: index.docbook:103
+#. Tag: programlisting
+#: association_mapping.xml:103
+#, no-c-format
 msgid ""
-      "<![CDATA[\n"
-      "create table Person ( personId bigint not null primary key )\n"
-      "create table PersonAddress ( personId not null, addressId bigint not null primary key )\n"
-      "create table Address ( addressId bigint not null primary key )\n"
-      "        ]]>"
+"<![CDATA[\n"
+"create table Person ( personId bigint not null primary key )\n"
+"create table PersonAddress ( personId not null, addressId bigint not null "
+"primary key )\n"
+"create table Address ( addressId bigint not null primary key )\n"
+"        ]]>"
 msgstr ""
-      "<![CDATA[\n"
-      "create table Person ( personId bigint not null primary key )\n"
-      "create table PersonAddress ( personId not null, addressId bigint not null primary key )\n"
-      "create table Address ( addressId bigint not null primary key )\n"
-      "        ]]>"
 
-#: index.docbook:110
-msgid "A <emphasis>unidirectional many-to-one association on a join table</emphasis> is quite common when the association is optional."
-msgstr "Una <emphasis>asociaci&#x00f3;n unidireccional muchos-a-uno en una tabla de uni&#x00f3;n</emphasis> es bastante com&#x00fa;n cuando la asociaci&#x00f3;n es opcional."
+#. Tag: para
+#: association_mapping.xml:110
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional many-to-one association on a join table</"
+"emphasis> is quite common when the association is optional."
+msgstr ""
+"Una <emphasis>asociación unidireccional muchos-a-uno en una tabla de unión</"
+"emphasis> es bastante común cuando la asociación es opcional."
 
-#: index.docbook:115
+#. Tag: programlisting
+#: association_mapping.xml:115
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <join table=\"PersonAddress\" \n"
-      "        optional=\"true\">\n"
-      "        <key column=\"personId\" unique=\"true\"/>\n"
-      "        <many-to-one name=\"address\"\n"
-      "            column=\"addressId\" \n"
-      "            not-null=\"true\"/>\n"
-      "    </join>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Person\">\n"
+"    <id name=\"id\" column=\"personId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <join table=\"PersonAddress\" \n"
+"        optional=\"true\">\n"
+"        <key column=\"personId\" unique=\"true\"/>\n"
+"        <many-to-one name=\"address\"\n"
+"            column=\"addressId\" \n"
+"            not-null=\"true\"/>\n"
+"    </join>\n"
+"</class>\n"
+"\n"
+"<class name=\"Address\">\n"
+"    <id name=\"id\" column=\"addressId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <join table=\"PersonAddress\" \n"
-      "        optional=\"true\">\n"
-      "        <key column=\"personId\" unique=\"true\"/>\n"
-      "        <many-to-one name=\"address\"\n"
-      "            column=\"addressId\" \n"
-      "            not-null=\"true\"/>\n"
-      "    </join>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "</class>]]>"
 
-#: index.docbook:116
+#. Tag: programlisting
+#: association_mapping.xml:116
+#, no-c-format
 msgid ""
-      "<![CDATA[\n"
-      "create table Person ( personId bigint not null primary key )\n"
-      "create table PersonAddress ( personId bigint not null primary key, addressId bigint not null )\n"
-      "create table Address ( addressId bigint not null primary key )\n"
-      "        ]]>"
+"<![CDATA[\n"
+"create table Person ( personId bigint not null primary key )\n"
+"create table PersonAddress ( personId bigint not null primary key, addressId "
+"bigint not null )\n"
+"create table Address ( addressId bigint not null primary key )\n"
+"        ]]>"
 msgstr ""
-      "<![CDATA[\n"
-      "create table Person ( personId bigint not null primary key )\n"
-      "create table PersonAddress ( personId bigint not null primary key, addressId bigint not null )\n"
-      "create table Address ( addressId bigint not null primary key )\n"
-      "        ]]>"
 
-#: index.docbook:123
-msgid "A <emphasis>unidirectional one-to-one association on a join table</emphasis> is extremely unusual, but possible."
-msgstr "Una <emphasis>asociaci&#x00f3;n unidireccional uno-a-uno en una tabla de uni&#x00f3;n</emphasis> es inusual en extremo, pero posible."
+#. Tag: para
+#: association_mapping.xml:123
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional one-to-one association on a join table</emphasis> "
+"is extremely unusual, but possible."
+msgstr ""
+"Una <emphasis>asociación unidireccional uno-a-uno en una tabla de unión</"
+"emphasis> es inusual en extremo, pero posible."
 
-#: index.docbook:128
+#. Tag: programlisting
+#: association_mapping.xml:128
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <join table=\"PersonAddress\" \n"
-      "        optional=\"true\">\n"
-      "        <key column=\"personId\" \n"
-      "            unique=\"true\"/>\n"
-      "        <many-to-one name=\"address\"\n"
-      "            column=\"addressId\" \n"
-      "            not-null=\"true\"\n"
-      "            unique=\"true\"/>\n"
-      "    </join>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Person\">\n"
+"    <id name=\"id\" column=\"personId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <join table=\"PersonAddress\" \n"
+"        optional=\"true\">\n"
+"        <key column=\"personId\" \n"
+"            unique=\"true\"/>\n"
+"        <many-to-one name=\"address\"\n"
+"            column=\"addressId\" \n"
+"            not-null=\"true\"\n"
+"            unique=\"true\"/>\n"
+"    </join>\n"
+"</class>\n"
+"\n"
+"<class name=\"Address\">\n"
+"    <id name=\"id\" column=\"addressId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <join table=\"PersonAddress\" \n"
-      "        optional=\"true\">\n"
-      "        <key column=\"personId\" \n"
-      "            unique=\"true\"/>\n"
-      "        <many-to-one name=\"address\"\n"
-      "            column=\"addressId\" \n"
-      "            not-null=\"true\"\n"
-      "            unique=\"true\"/>\n"
-      "    </join>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "</class>]]>"
 
-#: index.docbook:129, index.docbook:233
+#. Tag: programlisting
+#: association_mapping.xml:129 association_mapping.xml:233
+#, no-c-format
 msgid ""
-      "<![CDATA[\n"
-      "create table Person ( personId bigint not null primary key )\n"
-      "create table PersonAddress ( personId bigint not null primary key, addressId bigint not null unique )\n"
-      "create table Address ( addressId bigint not null primary key )\n"
-      "        ]]>"
+"<![CDATA[\n"
+"create table Person ( personId bigint not null primary key )\n"
+"create table PersonAddress ( personId bigint not null primary key, addressId "
+"bigint not null unique )\n"
+"create table Address ( addressId bigint not null primary key )\n"
+"        ]]>"
 msgstr ""
-      "<![CDATA[\n"
-      "create table Person ( personId bigint not null primary key )\n"
-      "create table PersonAddress ( personId bigint not null primary key, addressId bigint not null unique )\n"
-      "create table Address ( addressId bigint not null primary key )\n"
-      "        ]]>"
 
-#: index.docbook:134, index.docbook:238
+#. Tag: title
+#: association_mapping.xml:134 association_mapping.xml:238
+#, no-c-format
 msgid "many to many"
 msgstr "muchos a muchos"
 
-#: index.docbook:136
-msgid "Finally, we have a <emphasis>unidirectional many-to-many association</emphasis>."
-msgstr "Finalmente, tenemos una <emphasis>asociaci&#x00f3;n unidireccional muchos-a-muchos</emphasis>"
+#. Tag: para
+#: association_mapping.xml:136
+#, no-c-format
+msgid ""
+"Finally, we have a <emphasis>unidirectional many-to-many association</"
+"emphasis>."
+msgstr ""
+"Finalmente, tenemos una <emphasis>asociación unidireccional muchos-a-muchos</"
+"emphasis>"
 
-#: index.docbook:140
+#. Tag: programlisting
+#: association_mapping.xml:140
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <set name=\"addresses\" table=\"PersonAddress\">\n"
-      "        <key column=\"personId\"/>\n"
-      "        <many-to-many column=\"addressId\"\n"
-      "            class=\"Address\"/>\n"
-      "    </set>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Person\">\n"
+"    <id name=\"id\" column=\"personId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <set name=\"addresses\" table=\"PersonAddress\">\n"
+"        <key column=\"personId\"/>\n"
+"        <many-to-many column=\"addressId\"\n"
+"            class=\"Address\"/>\n"
+"    </set>\n"
+"</class>\n"
+"\n"
+"<class name=\"Address\">\n"
+"    <id name=\"id\" column=\"addressId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <set name=\"addresses\" table=\"PersonAddress\">\n"
-      "        <key column=\"personId\"/>\n"
-      "        <many-to-many column=\"addressId\"\n"
-      "            class=\"Address\"/>\n"
-      "    </set>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "</class>]]>"
 
-#: index.docbook:141, index.docbook:246
+#. Tag: programlisting
+#: association_mapping.xml:141 association_mapping.xml:246
+#, no-c-format
 msgid ""
-      "<![CDATA[\n"
-      "create table Person ( personId bigint not null primary key )\n"
-      "create table PersonAddress ( personId bigint not null, addressId bigint not null, primary key (personId, addressId) )\n"
-      "create table Address ( addressId bigint not null primary key )\n"
-      "        ]]>"
+"<![CDATA[\n"
+"create table Person ( personId bigint not null primary key )\n"
+"create table PersonAddress ( personId bigint not null, addressId bigint not "
+"null, primary key (personId, addressId) )\n"
+"create table Address ( addressId bigint not null primary key )\n"
+"        ]]>"
 msgstr ""
-      "<![CDATA[\n"
-      "create table Person ( personId bigint not null primary key )\n"
-      "create table PersonAddress ( personId bigint not null, addressId bigint not null, primary key (personId, addressId) )\n"
-      "create table Address ( addressId bigint not null primary key )\n"
-      "        ]]>"
 
-#: index.docbook:148
+#. Tag: title
+#: association_mapping.xml:148
+#, no-c-format
 msgid "Bidirectional associations"
 msgstr "Asociaciones Bidireccionales"
 
-#: index.docbook:151, index.docbook:211
+#. Tag: title
+#: association_mapping.xml:151 association_mapping.xml:211
+#, no-c-format
 msgid "one to many / many to one"
 msgstr "uno a muchos / muchos a uno"
 
-#: index.docbook:153
-msgid "A <emphasis>bidirectional many-to-one association</emphasis> is the most common kind of association. (This is the standard parent/child relationship.)"
-msgstr "Una <emphasis>asociaci&#x00f3;n bidireccional muchos-a-uno</emphasis> es el tipo m&#x00e1;s com&#x00fa;n de asociaci&#x00f3;n. (Esta es la relaci&#x00f3;n est&#x00e1;ndar padre/hijo.)"
+#. Tag: para
+#: association_mapping.xml:153
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional many-to-one association</emphasis> is the most "
+"common kind of association. (This is the standard parent/child relationship.)"
+msgstr ""
+"Una <emphasis>asociación bidireccional muchos-a-uno</emphasis> es el tipo "
+"más común de asociación. (Esta es la relación estándar padre/hijo.)"
 
-#: index.docbook:159
+#. Tag: programlisting
+#: association_mapping.xml:159
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <many-to-one name=\"address\" \n"
-      "        column=\"addressId\"\n"
-      "        not-null=\"true\"/>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <set name=\"people\" inverse=\"true\">\n"
-      "        <key column=\"addressId\"/>\n"
-      "        <one-to-many class=\"Person\"/>\n"
-      "    </set>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Person\">\n"
+"    <id name=\"id\" column=\"personId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <many-to-one name=\"address\" \n"
+"        column=\"addressId\"\n"
+"        not-null=\"true\"/>\n"
+"</class>\n"
+"\n"
+"<class name=\"Address\">\n"
+"    <id name=\"id\" column=\"addressId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <set name=\"people\" inverse=\"true\">\n"
+"        <key column=\"addressId\"/>\n"
+"        <one-to-many class=\"Person\"/>\n"
+"    </set>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <many-to-one name=\"address\" \n"
-      "        column=\"addressId\"\n"
-      "        not-null=\"true\"/>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <set name=\"people\" inverse=\"true\">\n"
-      "        <key column=\"addressId\"/>\n"
-      "        <one-to-many class=\"Person\"/>\n"
-      "    </set>\n"
-      "</class>]]>"
 
-#: index.docbook:163
-msgid "If you use a <literal>List</literal> (or other indexed collection) you need to set the <literal>key</literal> column of the foreign key to <literal>not null</literal>, and let Hibernate manage the association from the collections side to maintain the index of each element (making the other side virtually inverse by setting <literal>update=\"false\"</literal> and <literal>insert=\"false\"</literal>):"
-msgstr "uno a uno"
+#. Tag: para
+#: association_mapping.xml:163
+#, no-c-format
+msgid ""
+"If you use a <literal>List</literal> (or other indexed collection) you need "
+"to set the <literal>key</literal> column of the foreign key to <literal>not "
+"null</literal>, and let Hibernate manage the association from the "
+"collections side to maintain the index of each element (making the other "
+"side virtually inverse by setting <literal>update=\"false\"</literal> and "
+"<literal>insert=\"false\"</literal>):"
+msgstr ""
+"UNTRANSLATED! If you use a <literal>List</literal> (or other indexed "
+"collection) you need to set the <literal>key</literal> column of the foreign "
+"key to <literal>not null</literal>, and let Hibernate manage the association "
+"from the collections side to maintain the index of each element (making the "
+"other side virtually inverse by setting <literal>update=\"false\"</literal> "
+"and <literal>insert=\"false\"</literal>):"
 
-#: index.docbook:171
+#. Tag: programlisting
+#: association_mapping.xml:171
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "   <id name=\"id\"/>\n"
-      "   ...\n"
-      "   <many-to-one name=\"address\"\n"
-      "      column=\"addressId\"\n"
-      "      not-null=\"true\"\n"
-      "      insert=\"false\"\n"
-      "      update=\"false\"/>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "   <id name=\"id\"/>\n"
-      "   ...\n"
-      "   <list name=\"people\">\n"
-      "      <key column=\"addressId\" not-null=\"true\"/>\n"
-      "      <list-index column=\"peopleIdx\"/>\n"
-      "      <one-to-many class=\"Person\"/>\n"
-      "   </list>\n"
-      "</class>]]>"
-msgstr "Una <emphasis>asociaci&#x00f3;n bidireccional uno-a-uno en una clave for&#x00e1;nea</emphasis> es bastante com&#x00fa;n."
+"<![CDATA[<class name=\"Person\">\n"
+"   <id name=\"id\"/>\n"
+"   ...\n"
+"   <many-to-one name=\"address\"\n"
+"      column=\"addressId\"\n"
+"      not-null=\"true\"\n"
+"      insert=\"false\"\n"
+"      update=\"false\"/>\n"
+"</class>\n"
+"\n"
+"<class name=\"Address\">\n"
+"   <id name=\"id\"/>\n"
+"   ...\n"
+"   <list name=\"people\">\n"
+"      <key column=\"addressId\" not-null=\"true\"/>\n"
+"      <list-index column=\"peopleIdx\"/>\n"
+"      <one-to-many class=\"Person\"/>\n"
+"   </list>\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:173
-msgid "It is important that you define <literal>not-null=\"true\"</literal> on the <literal>&lt;key&gt;</literal> element of the collection mapping if the underlying foreign key column is <literal>NOT NULL</literal>. Don't only declare <literal>not-null=\"true\"</literal> on a possible nested <literal>&lt;column&gt;</literal> element, but on the <literal>&lt;key&gt;</literal> element."
+#. Tag: para
+#: association_mapping.xml:173
+#, no-c-format
+msgid ""
+"It is important that you define <literal>not-null=\"true\"</literal> on the "
+"<literal>&lt;key&gt;</literal> element of the collection mapping if the "
+"underlying foreign key column is <literal>NOT NULL</literal>. Don't only "
+"declare <literal>not-null=\"true\"</literal> on a possible nested "
+"<literal>&lt;column&gt;</literal> element, but on the <literal>&lt;key&gt;</"
+"literal> element."
 msgstr ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <many-to-one name=\"address\" \n"
-      "        column=\"addressId\" \n"
-      "        unique=\"true\"\n"
-      "        not-null=\"true\"/>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "   <one-to-one name=\"person\" \n"
-      "        property-ref=\"address\"/>\n"
-      "</class>]]>"
+"UNTRANSLATED! It is important that you define <literal>not-null=\"true\"</"
+"literal> on the <literal>&lt;key&gt;</literal> element of the collection "
+"mapping if the underlying foreign key column is <literal>NOT NULL</literal>. "
+"Don't only declare <literal>not-null=\"true\"</literal> on a possible nested "
+"<literal>&lt;column&gt;</literal> element, but on the <literal>&lt;key&gt;</"
+"literal> element."
 
-#: index.docbook:187
-msgid "A <emphasis>bidirectional one-to-one association on a foreign key</emphasis> is quite common."
-msgstr "Una <emphasis>asociaci&#x00f3;n bidireccional uno-a-uno en una clave primaria</emphasis> usa el generador de id especial."
+#. Tag: para
+#: association_mapping.xml:187
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional one-to-one association on a foreign key</emphasis> "
+"is quite common."
+msgstr ""
+"Una <emphasis>asociación bidireccional uno-a-uno en una clave foránea</"
+"emphasis> es bastante común."
 
-#: index.docbook:192
+#. Tag: programlisting
+#: association_mapping.xml:192
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <many-to-one name=\"address\" \n"
-      "        column=\"addressId\" \n"
-      "        unique=\"true\"\n"
-      "        not-null=\"true\"/>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "   <one-to-one name=\"person\" \n"
-      "        property-ref=\"address\"/>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Person\">\n"
+"    <id name=\"id\" column=\"personId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <many-to-one name=\"address\" \n"
+"        column=\"addressId\" \n"
+"        unique=\"true\"\n"
+"        not-null=\"true\"/>\n"
+"</class>\n"
+"\n"
+"<class name=\"Address\">\n"
+"    <id name=\"id\" column=\"addressId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"   <one-to-one name=\"person\" \n"
+"        property-ref=\"address\"/>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <one-to-one name=\"address\"/>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"foreign\">\n"
-      "            <param name=\"property\">person</param>\n"
-      "        </generator>\n"
-      "    </id>\n"
-      "    <one-to-one name=\"person\" \n"
-      "        constrained=\"true\"/>\n"
-      "</class>]]>"
 
-#: index.docbook:195
-msgid "A <emphasis>bidirectional one-to-one association on a primary key</emphasis> uses the special id generator."
-msgstr "Asociaciones bidireccionales con tablas de uni&#x00f3;n"
+#. Tag: para
+#: association_mapping.xml:195
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional one-to-one association on a primary key</emphasis> "
+"uses the special id generator."
+msgstr ""
+"Una <emphasis>asociación bidireccional uno-a-uno en una clave primaria</"
+"emphasis> usa el generador de id especial."
 
-#: index.docbook:200
+#. Tag: programlisting
+#: association_mapping.xml:200
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <one-to-one name=\"address\"/>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"foreign\">\n"
-      "            <param name=\"property\">person</param>\n"
-      "        </generator>\n"
-      "    </id>\n"
-      "    <one-to-one name=\"person\" \n"
-      "        constrained=\"true\"/>\n"
-      "</class>]]>"
-msgstr "uno a muchos / muchos a uno"
+"<![CDATA[<class name=\"Person\">\n"
+"    <id name=\"id\" column=\"personId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <one-to-one name=\"address\"/>\n"
+"</class>\n"
+"\n"
+"<class name=\"Address\">\n"
+"    <id name=\"id\" column=\"personId\">\n"
+"        <generator class=\"foreign\">\n"
+"            <param name=\"property\">person</param>\n"
+"        </generator>\n"
+"    </id>\n"
+"    <one-to-one name=\"person\" \n"
+"        constrained=\"true\"/>\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:208
+#. Tag: title
+#: association_mapping.xml:208
+#, no-c-format
 msgid "Bidirectional associations with join tables"
+msgstr "Asociaciones bidireccionales con tablas de unión"
+
+#. Tag: para
+#: association_mapping.xml:213
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional one-to-many association on a join table</"
+"emphasis>. Note that the <literal>inverse=\"true\"</literal> can go on "
+"either end of the association, on the collection, or on the join."
 msgstr ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <set name=\"addresses\" \n"
-      "        table=\"PersonAddress\">\n"
-      "        <key column=\"personId\"/>\n"
-      "        <many-to-many column=\"addressId\"\n"
-      "            unique=\"true\"\n"
-      "            class=\"Address\"/>\n"
-      "    </set>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <join table=\"PersonAddress\" \n"
-      "        inverse=\"true\" \n"
-      "        optional=\"true\">\n"
-      "        <key column=\"addressId\"/>\n"
-      "        <many-to-one name=\"person\"\n"
-      "            column=\"personId\"\n"
-      "            not-null=\"true\"/>\n"
-      "    </join>\n"
-      "</class>]]>"
+"Una <emphasis>asociación bidireccional uno-a-muchos en una tabla de unión</"
+"emphasis>. Observa que el <literal>inverse=\"true\"</literal> puede ir a "
+"cualquier lado de la asociación, en la colección, o en la unión."
 
-#: index.docbook:213
-msgid "A <emphasis>bidirectional one-to-many association on a join table</emphasis>. Note that the <literal>inverse=\"true\"</literal> can go on either end of the association, on the collection, or on the join."
-msgstr "uno a uno"
+#. Tag: programlisting
+#: association_mapping.xml:219
+#, no-c-format
+msgid ""
+"<![CDATA[<class name=\"Person\">\n"
+"    <id name=\"id\" column=\"personId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <set name=\"addresses\" \n"
+"        table=\"PersonAddress\">\n"
+"        <key column=\"personId\"/>\n"
+"        <many-to-many column=\"addressId\"\n"
+"            unique=\"true\"\n"
+"            class=\"Address\"/>\n"
+"    </set>\n"
+"</class>\n"
+"\n"
+"<class name=\"Address\">\n"
+"    <id name=\"id\" column=\"addressId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <join table=\"PersonAddress\" \n"
+"        inverse=\"true\" \n"
+"        optional=\"true\">\n"
+"        <key column=\"addressId\"/>\n"
+"        <many-to-one name=\"person\"\n"
+"            column=\"personId\"\n"
+"            not-null=\"true\"/>\n"
+"    </join>\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:219
+#. Tag: programlisting
+#: association_mapping.xml:220
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <set name=\"addresses\" \n"
-      "        table=\"PersonAddress\">\n"
-      "        <key column=\"personId\"/>\n"
-      "        <many-to-many column=\"addressId\"\n"
-      "            unique=\"true\"\n"
-      "            class=\"Address\"/>\n"
-      "    </set>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <join table=\"PersonAddress\" \n"
-      "        inverse=\"true\" \n"
-      "        optional=\"true\">\n"
-      "        <key column=\"addressId\"/>\n"
-      "        <many-to-one name=\"person\"\n"
-      "            column=\"personId\"\n"
-      "            not-null=\"true\"/>\n"
-      "    </join>\n"
-      "</class>]]>"
-msgstr "Una <emphasis>asociaci&#x00f3;n bidireccional uno-a-uno en una tabla de uni&#x00f3;n</emphasis> es inusual en extremo, pero posible."
+"<![CDATA[\n"
+"create table Person ( personId bigint not null primary key )\n"
+"create table PersonAddress ( personId bigint not null, addressId bigint not "
+"null primary key )\n"
+"create table Address ( addressId bigint not null primary key )\n"
+"        ]]>"
+msgstr ""
 
-#: index.docbook:220
+#. Tag: para
+#: association_mapping.xml:227
+#, no-c-format
 msgid ""
-      "<![CDATA[\n"
-      "create table Person ( personId bigint not null primary key )\n"
-      "create table PersonAddress ( personId bigint not null, addressId bigint not null primary key )\n"
-      "create table Address ( addressId bigint not null primary key )\n"
-      "        ]]>"
+"A <emphasis>bidirectional one-to-one association on a join table</emphasis> "
+"is extremely unusual, but possible."
 msgstr ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <join table=\"PersonAddress\" \n"
-      "        optional=\"true\">\n"
-      "        <key column=\"personId\" \n"
-      "            unique=\"true\"/>\n"
-      "        <many-to-one name=\"address\"\n"
-      "            column=\"addressId\" \n"
-      "            not-null=\"true\"\n"
-      "            unique=\"true\"/>\n"
-      "    </join>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <join table=\"PersonAddress\" \n"
-      "        optional=\"true\"\n"
-      "        inverse=\"true\">\n"
-      "        <key column=\"addressId\" \n"
-      "            unique=\"true\"/>\n"
-      "        <many-to-one name=\"address\"\n"
-      "            column=\"personId\" \n"
-      "            not-null=\"true\"\n"
-      "            unique=\"true\"/>\n"
-      "    </join>\n"
-      "</class>]]>"
+"Una <emphasis>asociación bidireccional uno-a-uno en una tabla de unión</"
+"emphasis> es inusual en extremo, pero posible."
 
-#: index.docbook:227
-msgid "A <emphasis>bidirectional one-to-one association on a join table</emphasis> is extremely unusual, but possible."
-msgstr "muchos a muchos"
-
-#: index.docbook:232
+#. Tag: programlisting
+#: association_mapping.xml:232
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <join table=\"PersonAddress\" \n"
-      "        optional=\"true\">\n"
-      "        <key column=\"personId\" \n"
-      "            unique=\"true\"/>\n"
-      "        <many-to-one name=\"address\"\n"
-      "            column=\"addressId\" \n"
-      "            not-null=\"true\"\n"
-      "            unique=\"true\"/>\n"
-      "    </join>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <join table=\"PersonAddress\" \n"
-      "        optional=\"true\"\n"
-      "        inverse=\"true\">\n"
-      "        <key column=\"addressId\" \n"
-      "            unique=\"true\"/>\n"
-      "        <many-to-one name=\"person\"\n"
-      "            column=\"personId\" \n"
-      "            not-null=\"true\"\n"
-      "            unique=\"true\"/>\n"
-      "    </join>\n"
-      "</class>]]>"
-msgstr "Finalmente, tenemos una <emphasis>asociaci&#x00f3;n bidireccional muchos-a-muchos</emphasis>."
+"<![CDATA[<class name=\"Person\">\n"
+"    <id name=\"id\" column=\"personId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <join table=\"PersonAddress\" \n"
+"        optional=\"true\">\n"
+"        <key column=\"personId\" \n"
+"            unique=\"true\"/>\n"
+"        <many-to-one name=\"address\"\n"
+"            column=\"addressId\" \n"
+"            not-null=\"true\"\n"
+"            unique=\"true\"/>\n"
+"    </join>\n"
+"</class>\n"
+"\n"
+"<class name=\"Address\">\n"
+"    <id name=\"id\" column=\"addressId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <join table=\"PersonAddress\" \n"
+"        optional=\"true\"\n"
+"        inverse=\"true\">\n"
+"        <key column=\"addressId\" \n"
+"            unique=\"true\"/>\n"
+"        <many-to-one name=\"person\"\n"
+"            column=\"personId\" \n"
+"            not-null=\"true\"\n"
+"            unique=\"true\"/>\n"
+"    </join>\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:240
-msgid "Finally, we have a <emphasis>bidirectional many-to-many association</emphasis>."
+#. Tag: para
+#: association_mapping.xml:240
+#, no-c-format
+msgid ""
+"Finally, we have a <emphasis>bidirectional many-to-many association</"
+"emphasis>."
 msgstr ""
+"Finalmente, tenemos una <emphasis>asociación bidireccional muchos-a-muchos</"
+"emphasis>."
 
-#: index.docbook:244
+#. Tag: programlisting
+#: association_mapping.xml:244
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\" column=\"personId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <set name=\"addresses\" table=\"PersonAddress\">\n"
-      "        <key column=\"personId\"/>\n"
-      "        <many-to-many column=\"addressId\"\n"
-      "            class=\"Address\"/>\n"
-      "    </set>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "    <id name=\"id\" column=\"addressId\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <set name=\"people\" inverse=\"true\" table=\"PersonAddress\">\n"
-      "        <key column=\"addressId\"/>\n"
-      "        <many-to-many column=\"personId\"\n"
-      "            class=\"Person\"/>\n"
-      "    </set>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Person\">\n"
+"    <id name=\"id\" column=\"personId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <set name=\"addresses\" table=\"PersonAddress\">\n"
+"        <key column=\"personId\"/>\n"
+"        <many-to-many column=\"addressId\"\n"
+"            class=\"Address\"/>\n"
+"    </set>\n"
+"</class>\n"
+"\n"
+"<class name=\"Address\">\n"
+"    <id name=\"id\" column=\"addressId\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <set name=\"people\" inverse=\"true\" table=\"PersonAddress\">\n"
+"        <key column=\"addressId\"/>\n"
+"        <many-to-many column=\"personId\"\n"
+"            class=\"Person\"/>\n"
+"    </set>\n"
+"</class>]]>"
 msgstr ""
 
-#: index.docbook:253
+#. Tag: title
+#: association_mapping.xml:253
+#, no-c-format
 msgid "More complex association mappings"
-msgstr ""
+msgstr "translator-credits"
 
-#: index.docbook:255
-msgid "More complex association joins are <emphasis>extremely</emphasis> rare. Hibernate makes it possible to handle more complex situations using SQL fragments embedded in the mapping document. For example, if a table with historical account information data defines <literal>accountNumber</literal>, <literal>effectiveEndDate</literal> and <literal>effectiveStartDate</literal>columns, mapped as follows:"
+#. Tag: para
+#: association_mapping.xml:255
+#, no-c-format
+msgid ""
+"More complex association joins are <emphasis>extremely</emphasis> rare. "
+"Hibernate makes it possible to handle more complex situations using SQL "
+"fragments embedded in the mapping document. For example, if a table with "
+"historical account information data defines <literal>accountNumber</"
+"literal>, <literal>effectiveEndDate</literal> and "
+"<literal>effectiveStartDate</literal>columns, mapped as follows:"
 msgstr ""
 
-#: index.docbook:264
+#. Tag: programlisting
+#: association_mapping.xml:264
+#, no-c-format
 msgid ""
-      "<![CDATA[<properties name=\"currentAccountKey\">\n"
-      "    <property name=\"accountNumber\" type=\"string\" not-null=\"true\"/>\n"
-      "    <property name=\"currentAccount\" type=\"boolean\">\n"
-      "        <formula>case when effectiveEndDate is null then 1 else 0 end</formula>\n"
-      "    </property>\n"
-      "</properties>\n"
-      "<property name=\"effectiveEndDate\" type=\"date\"/>\n"
-      "<property name=\"effectiveStateDate\" type=\"date\" not-null=\"true\"/>]]>"
+"<![CDATA[<properties name=\"currentAccountKey\">\n"
+"    <property name=\"accountNumber\" type=\"string\" not-null=\"true\"/>\n"
+"    <property name=\"currentAccount\" type=\"boolean\">\n"
+"        <formula>case when effectiveEndDate is null then 1 else 0 end</"
+"formula>\n"
+"    </property>\n"
+"</properties>\n"
+"<property name=\"effectiveEndDate\" type=\"date\"/>\n"
+"<property name=\"effectiveStateDate\" type=\"date\" not-null=\"true\"/>]]>"
 msgstr ""
 
-#: index.docbook:266
-msgid "Then we can map an association to the <emphasis>current</emphasis> instance (the one with null <literal>effectiveEndDate</literal>) using:"
+#. Tag: para
+#: association_mapping.xml:266
+#, no-c-format
+msgid ""
+"Then we can map an association to the <emphasis>current</emphasis> instance "
+"(the one with null <literal>effectiveEndDate</literal>) using:"
 msgstr ""
 
-#: index.docbook:271
+#. Tag: programlisting
+#: association_mapping.xml:271
+#, no-c-format
 msgid ""
-      "<![CDATA[<many-to-one name=\"currentAccountInfo\" \n"
-      "        property-ref=\"currentAccountKey\"\n"
-      "        class=\"AccountInfo\">\n"
-      "    <column name=\"accountNumber\"/>\n"
-      "    <formula>'1'</formula>\n"
-      "</many-to-one>]]>"
+"<![CDATA[<many-to-one name=\"currentAccountInfo\" \n"
+"        property-ref=\"currentAccountKey\"\n"
+"        class=\"AccountInfo\">\n"
+"    <column name=\"accountNumber\"/>\n"
+"    <formula>'1'</formula>\n"
+"</many-to-one>]]>"
 msgstr ""
 
-#: index.docbook:273
-msgid "In a more complex example, imagine that the association between <literal>Employee</literal> and <literal>Organization</literal> is maintained in an <literal>Employment</literal> table full of historical employment data. Then an association to the employee's <emphasis>most recent</emphasis> employer (the one with the most recent <literal>startDate</literal>) might be mapped this way:"
+#. Tag: para
+#: association_mapping.xml:273
+#, no-c-format
+msgid ""
+"In a more complex example, imagine that the association between "
+"<literal>Employee</literal> and <literal>Organization</literal> is "
+"maintained in an <literal>Employment</literal> table full of historical "
+"employment data. Then an association to the employee's <emphasis>most "
+"recent</emphasis> employer (the one with the most recent <literal>startDate</"
+"literal>) might be mapped this way:"
 msgstr ""
 
-#: index.docbook:281
+#. Tag: programlisting
+#: association_mapping.xml:281
+#, no-c-format
 msgid ""
-      "<![CDATA[<join>\n"
-      "    <key column=\"employeeId\"/>\n"
-      "    <subselect>\n"
-      "        select employeeId, orgId \n"
-      "        from Employments \n"
-      "        group by orgId \n"
-      "        having startDate = max(startDate)\n"
-      "    </subselect>\n"
-      "    <many-to-one name=\"mostRecentEmployer\" \n"
-      "            class=\"Organization\" \n"
-      "            column=\"orgId\"/>\n"
-      "</join>]]>"
+"<![CDATA[<join>\n"
+"    <key column=\"employeeId\"/>\n"
+"    <subselect>\n"
+"        select employeeId, orgId \n"
+"        from Employments \n"
+"        group by orgId \n"
+"        having startDate = max(startDate)\n"
+"    </subselect>\n"
+"    <many-to-one name=\"mostRecentEmployer\" \n"
+"            class=\"Organization\" \n"
+"            column=\"orgId\"/>\n"
+"</join>]]>"
 msgstr ""
 
-#: index.docbook:283
-msgid "You can get quite creative with this functionality, but it is usually more practical to handle these kinds of cases using HQL or a criteria query."
+#. Tag: para
+#: association_mapping.xml:283
+#, no-c-format
+msgid ""
+"You can get quite creative with this functionality, but it is usually more "
+"practical to handle these kinds of cases using HQL or a criteria query."
 msgstr ""
-
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
-
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
-

Modified: core/trunk/documentation/manual/translations/es-ES/content/basic_mapping.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/basic_mapping.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/basic_mapping.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,3067 +1,5724 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:5
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: basic_mapping.xml:5
+#, no-c-format
 msgid "Basic O/R Mapping"
-msgstr "Mapeo O/R B&#x00e1;sico"
+msgstr "Mapeo O/R Básico"
 
-#: index.docbook:8
+#. Tag: title
+#: basic_mapping.xml:8
+#, no-c-format
 msgid "Mapping declaration"
-msgstr "Declaraci&#x00f3;n de mapeo"
+msgstr "Declaración de mapeo"
 
-#: index.docbook:10
-msgid "Object/relational mappings are usually defined in an XML document. The mapping document is designed to be readable and hand-editable. The mapping language is Java-centric, meaning that mappings are constructed around persistent class declarations, not table declarations."
-msgstr "Los mapeos objeto/relacional se definen usualmente en un documento XML. El documento de mapeo est&#x00e1; dise&#x00f1;ado para ser le&#x00ed;ble y editable a mano. El lenguaje de mapeo es Java-c&#x00e9;ntrico, o sea que los mapeos se construyen alrededor de declaraciones de clases persistentes, no declaraciones de tablas."
+#. Tag: para
+#: basic_mapping.xml:10
+#, no-c-format
+msgid ""
+"Object/relational mappings are usually defined in an XML document. The "
+"mapping document is designed to be readable and hand-editable. The mapping "
+"language is Java-centric, meaning that mappings are constructed around "
+"persistent class declarations, not table declarations."
+msgstr ""
+"Los mapeos objeto/relacional se definen usualmente en un documento XML. El "
+"documento de mapeo está diseñado para ser leíble y editable a mano. El "
+"lenguaje de mapeo es Java-céntrico, o sea que los mapeos se construyen "
+"alrededor de declaraciones de clases persistentes, no declaraciones de "
+"tablas."
 
-#: index.docbook:17
-msgid "Note that, even though many Hibernate users choose to write the XML by hand, a number of tools exist to generate the mapping document, including XDoclet, Middlegen and AndroMDA."
-msgstr "Observa que, incluso aunque muchos usuarios de Hibernate eligen escribir el XML a mano, existe una cantidad de herramientas para generar el documento de mapeo, incluyendo XDoclet, Middlegen y AndroMDA."
+#. Tag: para
+#: basic_mapping.xml:17
+#, no-c-format
+msgid ""
+"Note that, even though many Hibernate users choose to write the XML by hand, "
+"a number of tools exist to generate the mapping document, including XDoclet, "
+"Middlegen and AndroMDA."
+msgstr ""
+"Observa que, incluso aunque muchos usuarios de Hibernate eligen escribir el "
+"XML a mano, existe una cantidad de herramientas para generar el documento de "
+"mapeo, incluyendo XDoclet, Middlegen y AndroMDA."
 
-#: index.docbook:23
+#. Tag: para
+#: basic_mapping.xml:23
+#, no-c-format
 msgid "Lets kick off with an example mapping:"
 msgstr "Comencemos por un mapeo de ejemplo:"
 
-#: index.docbook:27
+#. Tag: programlisting
+#: basic_mapping.xml:27
+#, no-c-format
 msgid ""
-      "<![CDATA[<?xml version=\"1.0\"?>\n"
-      "<!DOCTYPE hibernate-mapping PUBLIC\n"
-      "      \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
-      "          \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
-      "\n"
-      "<hibernate-mapping package=\"eg\">\n"
-      "\n"
-      "        <class name=\"Cat\"\n"
-      "            table=\"cats\"\n"
-      "            discriminator-value=\"C\">\n"
-      "\n"
-      "                <id name=\"id\">\n"
-      "                        <generator class=\"native\"/>\n"
-      "                </id>\n"
-      "\n"
-      "                <discriminator column=\"subclass\"\n"
-      "                     type=\"character\"/>\n"
-      "\n"
-      "                <property name=\"weight\"/>\n"
-      "\n"
-      "                <property name=\"birthdate\"\n"
-      "                    type=\"date\"\n"
-      "                    not-null=\"true\"\n"
-      "                    update=\"false\"/>\n"
-      "\n"
-      "                <property name=\"color\"\n"
-      "                    type=\"eg.types.ColorUserType\"\n"
-      "                    not-null=\"true\"\n"
-      "                    update=\"false\"/>\n"
-      "\n"
-      "                <property name=\"sex\"\n"
-      "                    not-null=\"true\"\n"
-      "                    update=\"false\"/>\n"
-      "\n"
-      "                <property name=\"litterId\"\n"
-      "                    column=\"litterId\"\n"
-      "                    update=\"false\"/>\n"
-      "\n"
-      "                <many-to-one name=\"mother\"\n"
-      "                    column=\"mother_id\"\n"
-      "                    update=\"false\"/>\n"
-      "\n"
-      "                <set name=\"kittens\"\n"
-      "                    inverse=\"true\"\n"
-      "                    order-by=\"litter_id\">\n"
-      "                        <key column=\"mother_id\"/>\n"
-      "                        <one-to-many class=\"Cat\"/>\n"
-      "                </set>\n"
-      "\n"
-      "                <subclass name=\"DomesticCat\"\n"
-      "                    discriminator-value=\"D\">\n"
-      "\n"
-      "                        <property name=\"name\"\n"
-      "                            type=\"string\"/>\n"
-      "\n"
-      "                </subclass>\n"
-      "\n"
-      "        </class>\n"
-      "\n"
-      "        <class name=\"Dog\">\n"
-      "                <!-- mapping for Dog could go here -->\n"
-      "        </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
+"<![CDATA[<?xml version=\"1.0\"?>\n"
+"<!DOCTYPE hibernate-mapping PUBLIC\n"
+"      \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+"          \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+"\n"
+"<hibernate-mapping package=\"eg\">\n"
+"\n"
+"        <class name=\"Cat\"\n"
+"            table=\"cats\"\n"
+"            discriminator-value=\"C\">\n"
+"\n"
+"                <id name=\"id\">\n"
+"                        <generator class=\"native\"/>\n"
+"                </id>\n"
+"\n"
+"                <discriminator column=\"subclass\"\n"
+"                     type=\"character\"/>\n"
+"\n"
+"                <property name=\"weight\"/>\n"
+"\n"
+"                <property name=\"birthdate\"\n"
+"                    type=\"date\"\n"
+"                    not-null=\"true\"\n"
+"                    update=\"false\"/>\n"
+"\n"
+"                <property name=\"color\"\n"
+"                    type=\"eg.types.ColorUserType\"\n"
+"                    not-null=\"true\"\n"
+"                    update=\"false\"/>\n"
+"\n"
+"                <property name=\"sex\"\n"
+"                    not-null=\"true\"\n"
+"                    update=\"false\"/>\n"
+"\n"
+"                <property name=\"litterId\"\n"
+"                    column=\"litterId\"\n"
+"                    update=\"false\"/>\n"
+"\n"
+"                <many-to-one name=\"mother\"\n"
+"                    column=\"mother_id\"\n"
+"                    update=\"false\"/>\n"
+"\n"
+"                <set name=\"kittens\"\n"
+"                    inverse=\"true\"\n"
+"                    order-by=\"litter_id\">\n"
+"                        <key column=\"mother_id\"/>\n"
+"                        <one-to-many class=\"Cat\"/>\n"
+"                </set>\n"
+"\n"
+"                <subclass name=\"DomesticCat\"\n"
+"                    discriminator-value=\"D\">\n"
+"\n"
+"                        <property name=\"name\"\n"
+"                            type=\"string\"/>\n"
+"\n"
+"                </subclass>\n"
+"\n"
+"        </class>\n"
+"\n"
+"        <class name=\"Dog\">\n"
+"                <!-- mapping for Dog could go here -->\n"
+"        </class>\n"
+"\n"
+"</hibernate-mapping>]]>"
 msgstr ""
-      "<![CDATA[<?xml version=\"1.0\"?>\n"
-      "<!DOCTYPE hibernate-mapping PUBLIC\n"
-      "      \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
-      "          \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
-      "\n"
-      "<hibernate-mapping package=\"eg\">\n"
-      "\n"
-      "        <class name=\"Cat\" \n"
-      "            table=\"cats\"\n"
-      "            discriminator-value=\"C\">\n"
-      "                \n"
-      "                <id name=\"id\">\n"
-      "                        <generator class=\"native\"/>\n"
-      "                </id>\n"
-      "\n"
-      "                <discriminator column=\"subclass\" \n"
-      "                     type=\"character\"/>\n"
-      "\n"
-      "                <property name=\"weight\"/>\n"
-      "\n"
-      "                <property name=\"birthdate\"\n"
-      "                    type=\"date\" \n"
-      "                    not-null=\"true\" \n"
-      "                    update=\"false\"/>\n"
-      "\n"
-      "                <property name=\"color\"\n"
-      "                    type=\"eg.types.ColorUserType\"\n"
-      "                    not-null=\"true\"\n"
-      "                    update=\"false\"/>\n"
-      "\n"
-      "                <property name=\"sex\"\n"
-      "                    not-null=\"true\" \n"
-      "                    update=\"false\"/>\n"
-      "\n"
-      "                <property name=\"litterId\"\n"
-      "                    column=\"litterId\"\n"
-      "                    update=\"false\"/>\n"
-      "\n"
-      "                <many-to-one name=\"mother\"\n"
-      "                    column=\"mother_id\"\n"
-      "                    update=\"false\"/>\n"
-      "\n"
-      "                <set name=\"kittens\"\n"
-      "                    inverse=\"true\"\n"
-      "                    order-by=\"litter_id\">\n"
-      "                        <key column=\"mother_id\"/>\n"
-      "                        <one-to-many class=\"Cat\"/>\n"
-      "                </set>\n"
-      "\n"
-      "                <subclass name=\"DomesticCat\"\n"
-      "                    discriminator-value=\"D\">\n"
-      "\n"
-      "                        <property name=\"name\" \n"
-      "                            type=\"string\"/>\n"
-      "\n"
-      "                </subclass>\n"
-      "\n"
-      "        </class>\n"
-      "\n"
-      "        <class name=\"Dog\">\n"
-      "                <!-- mapping for Dog could go here -->\n"
-      "        </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
 
-#: index.docbook:29
-msgid "We will now discuss the content of the mapping document. We will only describe the document elements and attributes that are used by Hibernate at runtime. The mapping document also contains some extra optional attributes and elements that affect the database schemas exported by the schema export tool. (For example the <literal> not-null</literal> attribute.)"
-msgstr "Discutiremos ahora el contenido del documento de mapeo. Describiremos s&#x00f3;lo los elementos y atributos que son usados por Hibernate en tiempo de ejecuci&#x00f3;n. El documento de mapeo contiene adem&#x00e1;s algunos atributos y elementos extra opcionales que afectan los esquemas de base de datos exportados por la herramienta de exportaci&#x00f3;n de esquemas. (Por ejemplo, el atributo <literal>not-null</literal>.)"
+#. Tag: para
+#: basic_mapping.xml:29
+#, no-c-format
+msgid ""
+"We will now discuss the content of the mapping document. We will only "
+"describe the document elements and attributes that are used by Hibernate at "
+"runtime. The mapping document also contains some extra optional attributes "
+"and elements that affect the database schemas exported by the schema export "
+"tool. (For example the <literal> not-null</literal> attribute.)"
+msgstr ""
+"Discutiremos ahora el contenido del documento de mapeo. Describiremos sólo "
+"los elementos y atributos que son usados por Hibernate en tiempo de "
+"ejecución. El documento de mapeo contiene además algunos atributos y "
+"elementos extra opcionales que afectan los esquemas de base de datos "
+"exportados por la herramienta de exportación de esquemas. (Por ejemplo, el "
+"atributo <literal>not-null</literal>.)"
 
-#: index.docbook:40
+#. Tag: title
+#: basic_mapping.xml:40
+#, no-c-format
 msgid "Doctype"
 msgstr "Doctype"
 
-#: index.docbook:42
-msgid "All XML mappings should declare the doctype shown. The actual DTD may be found at the URL above, in the directory <literal>hibernate-x.x.x/src/org/hibernate </literal> or in <literal>hibernate3.jar</literal>. Hibernate will always look for the DTD in its classpath first. If you experience lookups of the DTD using an Internet connection, check your DTD declaration against the contents of your claspath."
-msgstr "Todos los mapeos XML deben declarar el doctype mostrado. El DTD actual puede ser encontrado en el URL mencionado arriba, en el directorio <literal>hibernate-x.x.x/src/org/hibernate</literal>, o en <literal>hibernate3.jar</literal>. Hibernate siempre buscar&#x00e1; el DTD primero en el classpath. Si experimentas b&#x00fa;squedas del DTD usando una conexi&#x00f3;n de Internet, chequea tu declaraci&#x00f3;n de DTD contra la contenida en el classpath."
+#. Tag: para
+#: basic_mapping.xml:42
+#, no-c-format
+msgid ""
+"All XML mappings should declare the doctype shown. The actual DTD may be "
+"found at the URL above, in the directory <literal>hibernate-x.x.x/src/org/"
+"hibernate </literal> or in <literal>hibernate3.jar</literal>. Hibernate will "
+"always look for the DTD in its classpath first. If you experience lookups of "
+"the DTD using an Internet connection, check your DTD declaration against the "
+"contents of your claspath."
+msgstr ""
+"Todos los mapeos XML deben declarar el doctype mostrado. El DTD actual puede "
+"ser encontrado en el URL mencionado arriba, en el directorio "
+"<literal>hibernate-x.x.x/src/org/hibernate</literal>, o en "
+"<literal>hibernate3.jar</literal>. Hibernate siempre buscará el DTD primero "
+"en el classpath. Si experimentas búsquedas del DTD usando una conexión de "
+"Internet, chequea tu declaración de DTD contra la contenida en el classpath."
 
-#: index.docbook:52
+#. Tag: title
+#: basic_mapping.xml:52
+#, no-c-format
 msgid "EntityResolver"
-msgstr "hibernate-mapping"
+msgstr "UNTRANSLATED! EntityResolver"
 
-#: index.docbook:53
-msgid "As mentioned previously, Hibernate will first attempt to resolve DTDs in its classpath. The manner in which it does this is by registering a custom <literal>org.xml.sax.EntityResolver</literal> implementation with the SAXReader it uses to read in the xml files. This custom <literal>EntityResolver</literal> recognizes two different systemId namespaces."
-msgstr "Este elemento tiene muchos atributos opcionales. Los atributos <literal>schema</literal> y <literal>catalog</literal> especifican que las tablas a las que se refiere en el mapeo pertenecen al esquema y/o cat&#x00e1;logo mencionado(s). De especificarse, los nombres de tablas ser&#x00e1;n cualificados por el nombre de esquema y cat&#x00e1;logo dados. De omitirse, los nombres de tablas no ser&#x00e1;n cualificados. El atributo <literal>default-cascade</literal> especifica qu&#x00e9; estilo de cascada debe asumirse para las propiedades y colecciones que no especifican un atributo <literal>cascade</literal>. El atributo <literal>auto-import</literal> nos permite usar nombres de clase sin cualificar en el lenguaje de consulta, por defecto."
+#. Tag: para
+#: basic_mapping.xml:53
+#, no-c-format
+msgid ""
+"As mentioned previously, Hibernate will first attempt to resolve DTDs in its "
+"classpath. The manner in which it does this is by registering a custom "
+"<literal>org.xml.sax.EntityResolver</literal> implementation with the "
+"SAXReader it uses to read in the xml files. This custom "
+"<literal>EntityResolver</literal> recognizes two different systemId "
+"namespaces."
+msgstr ""
+"As mentioned previously, Hibernate will first attempt to resolve DTDs in its "
+"classpath. The manner in which it does this is by registering a custom "
+"<literal>org.xml.sax.EntityResolver</literal> implementation with the "
+"SAXReader it uses to read in the xml files. This custom "
+"<literal>EntityResolver</literal> recognizes two different systemId "
+"namespaces."
 
-#: index.docbook:61
-msgid "a <literal>hibernate namespace</literal> is recognized whenever the resolver encounteres a systemId starting with <literal>http://hibernate.sourceforge.net/</literal>; the resolver attempts to resolve these entities via the classlaoder which loaded the Hibernate classes."
+#. Tag: para
+#: basic_mapping.xml:61
+#, no-c-format
+msgid ""
+"a <literal>hibernate namespace</literal> is recognized whenever the resolver "
+"encounteres a systemId starting with <literal>http://hibernate.sourceforge."
+"net/</literal>; the resolver attempts to resolve these entities via the "
+"classlaoder which loaded the Hibernate classes."
 msgstr ""
-      "<![CDATA[<hibernate-mapping\n"
-      "         schema=\"schemaName\"\n"
-      "         catalog=\"catalogName\"\n"
-      "         default-cascade=\"cascade_style\"\n"
-      "         default-access=\"field|property|ClassName\"\n"
-      "         default-lazy=\"true|false\"\n"
-      "         auto-import=\"true|false\"\n"
-      "         package=\"package.name\"\n"
-      " />]]>"
+"a <literal>hibernate namespace</literal> is recognized whenever the resolver "
+"encounteres a systemId starting with <literal>http://hibernate.sourceforge."
+"net/</literal>; the resolver attempts to resolve these entities via the "
+"classlaoder which loaded the Hibernate classes."
 
-#: index.docbook:70
-msgid "a <literal>user namespace</literal> is recognized whenever the resolver encounteres a systemId using a <literal>classpath://</literal> URL protocol; the resolver will attempt to resolve these entities via (1) the current thread context classloader and (2) the classloader which loaded the Hibernate classes."
-msgstr "<literal>schema</literal> (opcional): El nombre de un esquema de la base de datos."
+#. Tag: para
+#: basic_mapping.xml:70
+#, no-c-format
+msgid ""
+"a <literal>user namespace</literal> is recognized whenever the resolver "
+"encounteres a systemId using a <literal>classpath://</literal> URL protocol; "
+"the resolver will attempt to resolve these entities via (1) the current "
+"thread context classloader and (2) the classloader which loaded the "
+"Hibernate classes."
+msgstr ""
+"a <literal>user namespace</literal> is recognized whenever the resolver "
+"encounteres a systemId using a <literal>classpath://</literal> URL protocol; "
+"the resolver will attempt to resolve these entities via (1) the current "
+"thread context classloader and (2) the classloader which loaded the "
+"Hibernate classes."
 
-#: index.docbook:79
+#. Tag: para
+#: basic_mapping.xml:79
+#, no-c-format
 msgid "An example of utilizing user namespacing:"
-msgstr "<literal>catalog</literal> (opcional): El nombre de un cat&#x00e1;logo de la base de datos."
+msgstr "An example of utilizing user namespacing:"
 
-#: index.docbook:82
+#. Tag: programlisting
+#: basic_mapping.xml:82
+#, no-c-format
 msgid ""
-      "<![CDATA[<?xml version=\"1.0\"?>\n"
-      "<!DOCTYPE hibernate-mapping PUBLIC\n"
-      "        \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
-      "        \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\" [\n"
-      "    <!ENTITY types SYSTEM \"classpath://your/domain/types.xml\">\n"
-      "]>\n"
-      "\n"
-      "<hibernate-mapping package=\"your.domain\">\n"
-      "    <class name=\"MyEntity\">\n"
-      "        <id name=\"id\" type=\"my-custom-id-type\">\n"
-      "            ...\n"
-      "        </id>\n"
-      "    <class>\n"
-      "    &types;\n"
-      "</hibernate-mapping>]]>"
-msgstr "<literal>default-cascade</literal> (opcional - por defecto a <literal>none</literal>): Un estilo de cascada por defecto."
+"<![CDATA[<?xml version=\"1.0\"?>\n"
+"<!DOCTYPE hibernate-mapping PUBLIC\n"
+"        \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+"        \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\" [\n"
+"    <!ENTITY types SYSTEM \"classpath://your/domain/types.xml\">\n"
+"]>\n"
+"\n"
+"<hibernate-mapping package=\"your.domain\">\n"
+"    <class name=\"MyEntity\">\n"
+"        <id name=\"id\" type=\"my-custom-id-type\">\n"
+"            ...\n"
+"        </id>\n"
+"    <class>\n"
+"    &types;\n"
+"</hibernate-mapping>]]>"
+msgstr ""
 
-#: index.docbook:83
-msgid "Where <literal>types.xml</literal> is a resource in the <literal>your.domain</literal> package and contains a custom <xref linkend=\"mapping-types-custom\"/>typedef."
-msgstr "<literal>default-access</literal> (opcional - por defecto a <literal>property</literal>): La estrategia que Hibernate debe usar para acceder a todas las propiedades. Puede ser una implementaci&#x00f3;n personalizada de <literal>PropertyAccessor</literal>."
+#. Tag: para
+#: basic_mapping.xml:83
+#, no-c-format
+msgid ""
+"Where <literal>types.xml</literal> is a resource in the <literal>your."
+"domain</literal> package and contains a custom <link linkend=\"mapping-types-"
+"custom\">typedef</link>."
+msgstr ""
+"Where <literal>types.xml</literal> is a resource in the <literal>your."
+"domain</literal> package and contains a custom <link linkend=\"mapping-types-"
+"custom\">typedef</link>."
 
-#: index.docbook:91
+#. Tag: title
+#: basic_mapping.xml:91
+#, no-c-format
 msgid "hibernate-mapping"
-msgstr "<literal>default-lazy</literal> (opcional - por defecto a <literal>true</literal>): El valor por defecto para los atributos <literal>lazy</literal> de mapeos de clase y colleci&#x00f3;n no especificados."
+msgstr "hibernate-mapping"
 
-#: index.docbook:93
-msgid "This element has several optional attributes. The <literal>schema</literal> and <literal>catalog</literal> attributes specify that tables referred to in this mapping belong to the named schema and/or catalog. If specified, tablenames will be qualified by the given schema and catalog names. If missing, tablenames will be unqualified. The <literal>default-cascade</literal> attribute specifies what cascade style should be assumed for properties and collections which do not specify a <literal>cascade</literal> attribute. The <literal>auto-import</literal> attribute lets us use unqualified class names in the query language, by default."
-msgstr "<literal>auto-import</literal> (opcional - por defecto a <literal>true</literal>): Especifica si podemos usar nombres de clases no cualificados (de clases en este mapeo) en el lenguaje de consulta."
+#. Tag: para
+#: basic_mapping.xml:93
+#, no-c-format
+msgid ""
+"This element has several optional attributes. The <literal>schema</literal> "
+"and <literal>catalog</literal> attributes specify that tables referred to in "
+"this mapping belong to the named schema and/or catalog. If specified, "
+"tablenames will be qualified by the given schema and catalog names. If "
+"missing, tablenames will be unqualified. The <literal>default-cascade</"
+"literal> attribute specifies what cascade style should be assumed for "
+"properties and collections which do not specify a <literal>cascade</literal> "
+"attribute. The <literal>auto-import</literal> attribute lets us use "
+"unqualified class names in the query language, by default."
+msgstr ""
+"Este elemento tiene muchos atributos opcionales. Los atributos "
+"<literal>schema</literal> y <literal>catalog</literal> especifican que las "
+"tablas a las que se refiere en el mapeo pertenecen al esquema y/o catálogo "
+"mencionado(s). De especificarse, los nombres de tablas serán cualificados "
+"por el nombre de esquema y catálogo dados. De omitirse, los nombres de "
+"tablas no serán cualificados. El atributo <literal>default-cascade</literal> "
+"especifica qué estilo de cascada debe asumirse para las propiedades y "
+"colecciones que no especifican un atributo <literal>cascade</literal>. El "
+"atributo <literal>auto-import</literal> nos permite usar nombres de clase "
+"sin cualificar en el lenguaje de consulta, por defecto."
 
-#: index.docbook:114
+#. Tag: programlisting
+#: basic_mapping.xml:114
+#, no-c-format
 msgid ""
-      "<![CDATA[<hibernate-mapping\n"
-      "         schema=\"schemaName\"\n"
-      "         catalog=\"catalogName\"\n"
-      "         default-cascade=\"cascade_style\"\n"
-      "         default-access=\"field|property|ClassName\"\n"
-      "         default-lazy=\"true|false\"\n"
-      "         auto-import=\"true|false\"\n"
-      "         package=\"package.name\"\n"
-      " />]]>"
-msgstr "<literal>package</literal> (opcional): Especifica un prefijo de paquete a asumir para los nombres no cualificados de clase en el documento de mapeo."
+"<![CDATA[<hibernate-mapping\n"
+"         schema=\"schemaName\"\n"
+"         catalog=\"catalogName\"\n"
+"         default-cascade=\"cascade_style\"\n"
+"         default-access=\"field|property|ClassName\"\n"
+"         default-lazy=\"true|false\"\n"
+"         auto-import=\"true|false\"\n"
+"         package=\"package.name\"\n"
+" />]]>"
+msgstr ""
 
-#: index.docbook:117
+#. Tag: para
+#: basic_mapping.xml:117
+#, no-c-format
 msgid "<literal>schema</literal> (optional): The name of a database schema."
-msgstr "Si tienes dos clases persistentes con el mismo nombre (sin cualificar), debes establecer <literal>auto-import=\"false\"</literal>. Hibernate lanzar&#x00e1; una excepci&#x00f3;n si intentas asignar dos clases al mismo nombre \"importado\"."
+msgstr ""
+"<literal>schema</literal> (opcional): El nombre de un esquema de la base de "
+"datos."
 
-#: index.docbook:122
+#. Tag: para
+#: basic_mapping.xml:122
+#, no-c-format
 msgid "<literal>catalog</literal> (optional): The name of a database catalog."
-msgstr "Observa que el elemento <literal>hibernate-mapping</literal> te permite anidar muchos mapeos <literal>&lt;class&gt;</literal> persistentes, como se muestra arriba. Sin embargo, es una buena pr&#x00e1;ctica (y se espera de algunas herramientas) mapear s&#x00f3;lo a una sola clase persistente (o a una sola jerarqu&#x00ed;a de clases) en un fichero de mapeo y nombrarlo despu&#x00e9;s de la superclase persistente; por ejemplo, <literal>Cat.hbm.xml</literal>, <literal>Dog.hbm.xml</literal>, o, si se usa herencia, <literal>Animal.hbm.xml</literal>."
+msgstr ""
+"<literal>catalog</literal> (opcional): El nombre de un catálogo de la base "
+"de datos."
 
-#: index.docbook:127
-msgid "<literal>default-cascade</literal> (optional - defaults to <literal>none</literal>): A default cascade style."
-msgstr "<title>class</title>"
+#. Tag: para
+#: basic_mapping.xml:127
+#, no-c-format
+msgid ""
+"<literal>default-cascade</literal> (optional - defaults to <literal>none</"
+"literal>): A default cascade style."
+msgstr ""
+"<literal>default-cascade</literal> (opcional - por defecto a <literal>none</"
+"literal>): Un estilo de cascada por defecto."
 
-#: index.docbook:133
-msgid "<literal>default-access</literal> (optional - defaults to <literal>property</literal>): The strategy Hibernate should use for accessing all properties. Can be a custom implementation of <literal>PropertyAccessor</literal>."
-msgstr "Puedes declarar una clase persistente usando el elemento <literal>class</literal>:"
+#. Tag: para
+#: basic_mapping.xml:133
+#, no-c-format
+msgid ""
+"<literal>default-access</literal> (optional - defaults to <literal>property</"
+"literal>): The strategy Hibernate should use for accessing all properties. "
+"Can be a custom implementation of <literal>PropertyAccessor</literal>."
+msgstr ""
+"<literal>default-access</literal> (opcional - por defecto a "
+"<literal>property</literal>): La estrategia que Hibernate debe usar para "
+"acceder a todas las propiedades. Puede ser una implementación personalizada "
+"de <literal>PropertyAccessor</literal>."
 
-#: index.docbook:140
-msgid "<literal>default-lazy</literal> (optional - defaults to <literal>true</literal>): The default value for unspecifed <literal>lazy</literal> attributes of class and collection mappings."
+#. Tag: para
+#: basic_mapping.xml:140
+#, no-c-format
+msgid ""
+"<literal>default-lazy</literal> (optional - defaults to <literal>true</"
+"literal>): The default value for unspecifed <literal>lazy</literal> "
+"attributes of class and collection mappings."
 msgstr ""
-      "<![CDATA[<class\n"
-      "        name=\"ClassName\"\n"
-      "        table=\"tableName\"\n"
-      "        discriminator-value=\"discriminator_value\"\n"
-      "        mutable=\"true|false\"\n"
-      "        schema=\"owner\"\n"
-      "        catalog=\"catalog\"\n"
-      "        proxy=\"ProxyInterface\"\n"
-      "        dynamic-update=\"true|false\"\n"
-      "        dynamic-insert=\"true|false\"\n"
-      "        select-before-update=\"true|false\"\n"
-      "        polymorphism=\"implicit|explicit\"\n"
-      "        where=\"arbitrary sql where condition\"\n"
-      "        persister=\"PersisterClass\"\n"
-      "        batch-size=\"N\"\n"
-      "        optimistic-lock=\"none|version|dirty|all\"\n"
-      "        lazy=\"true|false\"\n"
-      "        entity-name=\"EntityName\"\n"
-      "        check=\"arbitrary sql check condition\"\n"
-      "        rowid=\"rowid\"\n"
-      "        subselect=\"SQL expression\"\n"
-      "        abstract=\"true|false\"\n"
-      "        node=\"element-name\"\n"
-      "/>]]>"
+"<literal>default-lazy</literal> (opcional - por defecto a <literal>true</"
+"literal>): El valor por defecto para los atributos <literal>lazy</literal> "
+"de mapeos de clase y colleción no especificados."
 
-#: index.docbook:147
-msgid "<literal>auto-import</literal> (optional - defaults to <literal>true</literal>): Specifies whether we can use unqualified class names (of classes in this mapping) in the query language."
-msgstr "<literal>name</literal> (opcional): El nombre completamente cualificado de la clase Java persistente (o interface). Si este atributo es omitido, se asume que el mapeo es para una entidad non-POJO."
+#. Tag: para
+#: basic_mapping.xml:147
+#, no-c-format
+msgid ""
+"<literal>auto-import</literal> (optional - defaults to <literal>true</"
+"literal>): Specifies whether we can use unqualified class names (of classes "
+"in this mapping) in the query language."
+msgstr ""
+"<literal>auto-import</literal> (opcional - por defecto a <literal>true</"
+"literal>): Especifica si podemos usar nombres de clases no cualificados (de "
+"clases en este mapeo) en el lenguaje de consulta."
 
-#: index.docbook:154
-msgid "<literal>package</literal> (optional): Specifies a package prefix to assume for unqualified class names in the mapping document."
-msgstr "<literal>table</literal> (opcional - por defecto al nombre no cualificado de la clase): El nombre de su tabla en base de datos."
+#. Tag: para
+#: basic_mapping.xml:154
+#, no-c-format
+msgid ""
+"<literal>package</literal> (optional): Specifies a package prefix to assume "
+"for unqualified class names in the mapping document."
+msgstr ""
+"<literal>package</literal> (opcional): Especifica un prefijo de paquete a "
+"asumir para los nombres no cualificados de clase en el documento de mapeo."
 
-#: index.docbook:162
-msgid "If you have two persistent classes with the same (unqualified) name, you should set <literal>auto-import=\"false\"</literal>. Hibernate will throw an exception if you attempt to assign two classes to the same \"imported\" name."
-msgstr "<literal>discriminator-value</literal> (opcional - por defecto al nombre de la clase): Un valor que distingue subclases individuales, usado para el comportamiento polim&#x00f3;rfico. Los valores aceptables incluyen <literal>null</literal> y <literal>not null</literal>."
+#. Tag: para
+#: basic_mapping.xml:162
+#, no-c-format
+msgid ""
+"If you have two persistent classes with the same (unqualified) name, you "
+"should set <literal>auto-import=\"false\"</literal>. Hibernate will throw an "
+"exception if you attempt to assign two classes to the same \"imported\" name."
+msgstr ""
+"Si tienes dos clases persistentes con el mismo nombre (sin cualificar), "
+"debes establecer <literal>auto-import=\"false\"</literal>. Hibernate lanzará "
+"una excepción si intentas asignar dos clases al mismo nombre \"importado\"."
 
-#: index.docbook:168
-msgid "Note that the <literal>hibernate-mapping</literal> element allows you to nest several persistent <literal>&lt;class&gt;</literal> mappings, as shown above. It is however good practice (and expected by some tools) to map only a single persistent class (or a single class hierarchy) in one mapping file and name it after the persistent superclass, e.g. <literal>Cat.hbm.xml</literal>, <literal>Dog.hbm.xml</literal>, or if using inheritance, <literal>Animal.hbm.xml</literal>."
-msgstr "<literal>mutable</literal> (opcional, por defecto a <literal>true</literal>): Especifica que las instancias de la clase (no) son mutables."
+#. Tag: para
+#: basic_mapping.xml:168
+#, no-c-format
+msgid ""
+"Note that the <literal>hibernate-mapping</literal> element allows you to "
+"nest several persistent <literal>&lt;class&gt;</literal> mappings, as shown "
+"above. It is however good practice (and expected by some tools) to map only "
+"a single persistent class (or a single class hierarchy) in one mapping file "
+"and name it after the persistent superclass, e.g. <literal>Cat.hbm.xml</"
+"literal>, <literal>Dog.hbm.xml</literal>, or if using inheritance, "
+"<literal>Animal.hbm.xml</literal>."
+msgstr ""
+"Observa que el elemento <literal>hibernate-mapping</literal> te permite "
+"anidar muchos mapeos <literal>&lt;class&gt;</literal> persistentes, como se "
+"muestra arriba. Sin embargo, es una buena práctica (y se espera de algunas "
+"herramientas) mapear sólo a una sola clase persistente (o a una sola "
+"jerarquía de clases) en un fichero de mapeo y nombrarlo después de la "
+"superclase persistente; por ejemplo, <literal>Cat.hbm.xml</literal>, "
+"<literal>Dog.hbm.xml</literal>, o, si se usa herencia, <literal>Animal.hbm."
+"xml</literal>."
 
-#: index.docbook:181
+#. Tag: title
+#: basic_mapping.xml:181
+#, no-c-format
 msgid "<title>class</title>"
-msgstr "<literal>schema</literal> (opcional): Sobreescribe el nombre de esquema especificado por el elemento ra&#x00ed;z <literal>&lt;hibernate-mapping&gt;</literal>."
+msgstr ""
 
-#: index.docbook:183
-msgid "You may declare a persistent class using the <literal>class</literal> element:"
-msgstr "<literal>catalog</literal> (opcional): Sobreescribe el nombre de cat&#x00e1;logo especificado por el elemento ra&#x00ed;z <literal>&lt;hibernate-mapping&gt;</literal>."
+#. Tag: para
+#: basic_mapping.xml:183
+#, no-c-format
+msgid ""
+"You may declare a persistent class using the <literal>class</literal> "
+"element:"
+msgstr ""
+"Puedes declarar una clase persistente usando el elemento <literal>class</"
+"literal>:"
 
-#: index.docbook:211
+#. Tag: programlisting
+#: basic_mapping.xml:211
+#, no-c-format
 msgid ""
-      "<![CDATA[<class\n"
-      "        name=\"ClassName\"\n"
-      "        table=\"tableName\"\n"
-      "        discriminator-value=\"discriminator_value\"\n"
-      "        mutable=\"true|false\"\n"
-      "        schema=\"owner\"\n"
-      "        catalog=\"catalog\"\n"
-      "        proxy=\"ProxyInterface\"\n"
-      "        dynamic-update=\"true|false\"\n"
-      "        dynamic-insert=\"true|false\"\n"
-      "        select-before-update=\"true|false\"\n"
-      "        polymorphism=\"implicit|explicit\"\n"
-      "        where=\"arbitrary sql where condition\"\n"
-      "        persister=\"PersisterClass\"\n"
-      "        batch-size=\"N\"\n"
-      "        optimistic-lock=\"none|version|dirty|all\"\n"
-      "        lazy=\"true|false\"\n"
-      "        entity-name=\"EntityName\"\n"
-      "        check=\"arbitrary sql check condition\"\n"
-      "        rowid=\"rowid\"\n"
-      "        subselect=\"SQL expression\"\n"
-      "        abstract=\"true|false\"\n"
-      "        node=\"element-name\"\n"
-      "/>]]>"
-msgstr "<literal>proxy</literal> (opcional): Especifica una interface a usar para proxies de inicializaci&#x00f3;n perezosa. Puedes especificar el nombre mismo de la clase."
+"<![CDATA[<class\n"
+"        name=\"ClassName\"\n"
+"        table=\"tableName\"\n"
+"        discriminator-value=\"discriminator_value\"\n"
+"        mutable=\"true|false\"\n"
+"        schema=\"owner\"\n"
+"        catalog=\"catalog\"\n"
+"        proxy=\"ProxyInterface\"\n"
+"        dynamic-update=\"true|false\"\n"
+"        dynamic-insert=\"true|false\"\n"
+"        select-before-update=\"true|false\"\n"
+"        polymorphism=\"implicit|explicit\"\n"
+"        where=\"arbitrary sql where condition\"\n"
+"        persister=\"PersisterClass\"\n"
+"        batch-size=\"N\"\n"
+"        optimistic-lock=\"none|version|dirty|all\"\n"
+"        lazy=\"true|false\"\n"
+"        entity-name=\"EntityName\"\n"
+"        check=\"arbitrary sql check condition\"\n"
+"        rowid=\"rowid\"\n"
+"        subselect=\"SQL expression\"\n"
+"        abstract=\"true|false\"\n"
+"        node=\"element-name\"\n"
+"/>]]>"
+msgstr ""
 
-#: index.docbook:214
-msgid "<literal>name</literal> (optional): The fully qualified Java class name of the persistent class (or interface). If this attribute is missing, it is assumed that the mapping is for a non-POJO entity."
-msgstr "<literal>dynamic-update</literal> (opcional, por defecto a <literal>false</literal>): Especifica que el SQL <literal>UPDATE</literal> debe ser generado en tiempo de ejecuci&#x00f3;n y contener solamente aquellas columnas cuyo valor haya cambiado."
+#. Tag: para
+#: basic_mapping.xml:214
+#, no-c-format
+msgid ""
+"<literal>name</literal> (optional): The fully qualified Java class name of "
+"the persistent class (or interface). If this attribute is missing, it is "
+"assumed that the mapping is for a non-POJO entity."
+msgstr ""
+"<literal>name</literal> (opcional): El nombre completamente cualificado de "
+"la clase Java persistente (o interface). Si este atributo es omitido, se "
+"asume que el mapeo es para una entidad non-POJO."
 
-#: index.docbook:221
-msgid "<literal>table</literal> (optional - defaults to the unqualified class name): The name of its database table."
-msgstr "<literal>dynamic-insert</literal> (opcional, por defecto a <literal>false</literal>): Especifica que el SQL <literal>INSERT</literal> debe ser generado en tiempo de ejecuci&#x00f3;n y contener solamente aquellas columnas cuyo valores no son nulos."
+#. Tag: para
+#: basic_mapping.xml:221
+#, no-c-format
+msgid ""
+"<literal>table</literal> (optional - defaults to the unqualified class "
+"name): The name of its database table."
+msgstr ""
+"<literal>table</literal> (opcional - por defecto al nombre no cualificado de "
+"la clase): El nombre de su tabla en base de datos."
 
-#: index.docbook:227
-msgid "<literal>discriminator-value</literal> (optional - defaults to the class name): A value that distiguishes individual subclasses, used for polymorphic behaviour. Acceptable values include <literal>null</literal> and <literal>not null</literal>."
-msgstr "<literal>select-before-update</literal> (opcional, por defecto a <literal>false</literal>): Especifica que Hibernate <emphasis>nunca</emphasis> debe realizar un SQL <literal>UPDATE</literal> a menos que se tenga certeza que un objeto haya sido modificado realmente. En ciertos casos, (realmente, s&#x00f3;lo cuando un objeto transitorio ha sido asociado con una sesi&#x00f3;n nueva usando <literal>update()</literal>), esto significa que Hibernate realizar&#x00e1; una SQL <literal>SELECT</literal> extra para determinar si un <literal>UPDATE</literal> es realmente requerido."
+#. Tag: para
+#: basic_mapping.xml:227
+#, no-c-format
+msgid ""
+"<literal>discriminator-value</literal> (optional - defaults to the class "
+"name): A value that distiguishes individual subclasses, used for polymorphic "
+"behaviour. Acceptable values include <literal>null</literal> and "
+"<literal>not null</literal>."
+msgstr ""
+"<literal>discriminator-value</literal> (opcional - por defecto al nombre de "
+"la clase): Un valor que distingue subclases individuales, usado para el "
+"comportamiento polimórfico. Los valores aceptables incluyen <literal>null</"
+"literal> y <literal>not null</literal>."
 
-#: index.docbook:234
-msgid "<literal>mutable</literal> (optional, defaults to <literal>true</literal>): Specifies that instances of the class are (not) mutable."
-msgstr "<literal>polymorphism</literal> (opcional, por defecto a <literal>implicit</literal>): Determina si se usa polimorfismo de consulta impl&#x00ed;cito o expl&#x00ed;cito."
+#. Tag: para
+#: basic_mapping.xml:234
+#, no-c-format
+msgid ""
+"<literal>mutable</literal> (optional, defaults to <literal>true</literal>): "
+"Specifies that instances of the class are (not) mutable."
+msgstr ""
+"<literal>mutable</literal> (opcional, por defecto a <literal>true</"
+"literal>): Especifica que las instancias de la clase (no) son mutables."
 
-#: index.docbook:240, index.docbook:2204
-msgid "<literal>schema</literal> (optional): Override the schema name specified by the root <literal>&lt;hibernate-mapping&gt;</literal> element."
-msgstr "<literal>where</literal> (opcional) especifica una condici&#x00f3;n SQL <literal>WHERE</literal> arbitraria paraa ser usada al recuperar objetos de esta clase."
+#. Tag: para
+#: basic_mapping.xml:240 basic_mapping.xml:2204
+#, fuzzy, no-c-format
+msgid ""
+"<literal>schema</literal> (optional): Override the schema name specified by "
+"the root <literal>&lt;hibernate-mapping&gt;</literal> element."
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>schema</literal> (opcional): Sobreescribe el nombre de esquema "
+"especificado por el elemento raíz <literal>&lt;hibernate-mapping&gt;</"
+"literal>.\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>schema</literal> (opcional): Sobrescribe el nombre de esquema "
+"especificado por el elemento raíz <literal>&lt;hibernate-mapping&gt;</"
+"literal>."
 
-#: index.docbook:246, index.docbook:2210
-msgid "<literal>catalog</literal> (optional): Override the catalog name specified by the root <literal>&lt;hibernate-mapping&gt;</literal> element."
-msgstr "<literal>persister</literal> (opcional): Especifica un <literal>ClassPersister</literal> personalizado."
+#. Tag: para
+#: basic_mapping.xml:246 basic_mapping.xml:2210
+#, fuzzy, no-c-format
+msgid ""
+"<literal>catalog</literal> (optional): Override the catalog name specified "
+"by the root <literal>&lt;hibernate-mapping&gt;</literal> element."
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>catalog</literal> (opcional): Sobreescribe el nombre de catálogo "
+"especificado por el elemento raíz <literal>&lt;hibernate-mapping&gt;</"
+"literal>.\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>catalog</literal> (opcional): Sobrescribe el nombre de catálogo "
+"especificado por el elemento raíz <literal>&lt;hibernate-mapping&gt;</"
+"literal>."
 
-#: index.docbook:252
-msgid "<literal>proxy</literal> (optional): Specifies an interface to use for lazy initializing proxies. You may specify the name of the class itself."
-msgstr "<literal>batch-size</literal> (opcional, por defecto a <literal>1</literal>) especifica un \"tama&#x00f1;o de lote\" para traer instancias de esta clase por identificador."
+#. Tag: para
+#: basic_mapping.xml:252
+#, no-c-format
+msgid ""
+"<literal>proxy</literal> (optional): Specifies an interface to use for lazy "
+"initializing proxies. You may specify the name of the class itself."
+msgstr ""
+"<literal>proxy</literal> (opcional): Especifica una interface a usar para "
+"proxies de inicialización perezosa. Puedes especificar el nombre mismo de la "
+"clase."
 
-#: index.docbook:258
-msgid "<literal>dynamic-update</literal> (optional, defaults to <literal>false</literal>): Specifies that <literal>UPDATE</literal> SQL should be generated at runtime and contain only those columns whose values have changed."
-msgstr "<literal>optimistic-lock</literal> (opcional, por defecto a <literal>version</literal>): Determina la estrategia optimista de bloqueo."
+#. Tag: para
+#: basic_mapping.xml:258
+#, no-c-format
+msgid ""
+"<literal>dynamic-update</literal> (optional, defaults to <literal>false</"
+"literal>): Specifies that <literal>UPDATE</literal> SQL should be generated "
+"at runtime and contain only those columns whose values have changed."
+msgstr ""
+"<literal>dynamic-update</literal> (opcional, por defecto a <literal>false</"
+"literal>): Especifica que el SQL <literal>UPDATE</literal> debe ser generado "
+"en tiempo de ejecución y contener solamente aquellas columnas cuyo valor "
+"haya cambiado."
 
-#: index.docbook:265
-msgid "<literal>dynamic-insert</literal> (optional, defaults to <literal>false</literal>): Specifies that <literal>INSERT</literal> SQL should be generated at runtime and contain only the columns whose values are not null."
-msgstr "<literal>lazy</literal> (opcional): La recuperaci&#x00f3;n perezosa puede ser deshabilitada por completo estableciendo <literal>lazy=\"false\"</literal>."
+#. Tag: para
+#: basic_mapping.xml:265
+#, no-c-format
+msgid ""
+"<literal>dynamic-insert</literal> (optional, defaults to <literal>false</"
+"literal>): Specifies that <literal>INSERT</literal> SQL should be generated "
+"at runtime and contain only the columns whose values are not null."
+msgstr ""
+"<literal>dynamic-insert</literal> (opcional, por defecto a <literal>false</"
+"literal>): Especifica que el SQL <literal>INSERT</literal> debe ser generado "
+"en tiempo de ejecución y contener solamente aquellas columnas cuyo valores "
+"no son nulos."
 
-#: index.docbook:272
-msgid "<literal>select-before-update</literal> (optional, defaults to <literal>false</literal>): Specifies that Hibernate should <emphasis>never</emphasis> perform an SQL <literal>UPDATE</literal> unless it is certain that an object is actually modified. In certain cases (actually, only when a transient object has been associated with a new session using <literal>update()</literal>), this means that Hibernate will perform an extra SQL <literal>SELECT</literal> to determine if an <literal>UPDATE</literal> is actually required."
-msgstr "<literal>entity-name</literal> (opcional): Hibernate3 permite que una clase sea mapeada varias veces (potencialmente a tablas diferentes), y permite que los mapeos de entidad sean representados por Maps o XML al nivel de Java. En estos casos, debes proveer un nombre expl&#x00ed;cito arbitrario para la entidad. Para m&#x00e1;s informaci&#x00f3;n, mira <xref linkend=\"persistent-classes-dynamicmodels\"/> y <xref linkend=\"xml\"/>."
+#. Tag: para
+#: basic_mapping.xml:272
+#, no-c-format
+msgid ""
+"<literal>select-before-update</literal> (optional, defaults to "
+"<literal>false</literal>): Specifies that Hibernate should <emphasis>never</"
+"emphasis> perform an SQL <literal>UPDATE</literal> unless it is certain that "
+"an object is actually modified. In certain cases (actually, only when a "
+"transient object has been associated with a new session using <literal>update"
+"()</literal>), this means that Hibernate will perform an extra SQL "
+"<literal>SELECT</literal> to determine if an <literal>UPDATE</literal> is "
+"actually required."
+msgstr ""
+"<literal>select-before-update</literal> (opcional, por defecto a "
+"<literal>false</literal>): Especifica que Hibernate <emphasis>nunca</"
+"emphasis> debe realizar un SQL <literal>UPDATE</literal> a menos que se "
+"tenga certeza que un objeto haya sido modificado realmente. En ciertos "
+"casos, (realmente, sólo cuando un objeto transitorio ha sido asociado con "
+"una sesión nueva usando <literal>update()</literal>), esto significa que "
+"Hibernate realizará una SQL <literal>SELECT</literal> extra para determinar "
+"si un <literal>UPDATE</literal> es realmente requerido."
 
-#: index.docbook:282
-msgid "<literal>polymorphism</literal> (optional, defaults to <literal>implicit</literal>): Determines whether implicit or explicit query polymorphism is used."
-msgstr "<literal>check</literal> (opcional): Una expresi&#x00f3;n SQL usada para generar una restricci&#x00f3;n <emphasis>check</emphasis> multi-fila para la generaci&#x00f3;n autom&#x00e1;tica de esquema."
+#. Tag: para
+#: basic_mapping.xml:282
+#, no-c-format
+msgid ""
+"<literal>polymorphism</literal> (optional, defaults to <literal>implicit</"
+"literal>): Determines whether implicit or explicit query polymorphism is "
+"used."
+msgstr ""
+"<literal>polymorphism</literal> (opcional, por defecto a <literal>implicit</"
+"literal>): Determina si se usa polimorfismo de consulta implícito o "
+"explícito."
 
-#: index.docbook:288
-msgid "<literal>where</literal> (optional) specify an arbitrary SQL <literal>WHERE</literal> condition to be used when retrieving objects of this class"
-msgstr "<literal>rowid</literal> (opcional): Hibernate puede usar los llamados ROWIDs en las bases de datos que los soporten. Por ejemplo, en Oracle, Hibernate puede usar la columna extra <literal>rowid</literal> para actualizaciones r&#x00e1;pidas si estableces esta opci&#x00f3;n a <literal>rowid</literal>. Un ROWID es un detalle de implementaci&#x00f3;n y representa la posici&#x00f3;n f&#x00ed;sica de la tupla almacenada."
+#. Tag: para
+#: basic_mapping.xml:288
+#, no-c-format
+msgid ""
+"<literal>where</literal> (optional) specify an arbitrary SQL <literal>WHERE</"
+"literal> condition to be used when retrieving objects of this class"
+msgstr ""
+"<literal>where</literal> (opcional) especifica una condición SQL "
+"<literal>WHERE</literal> arbitraria paraa ser usada al recuperar objetos de "
+"esta clase."
 
-#: index.docbook:294
-msgid "<literal>persister</literal> (optional): Specifies a custom <literal>ClassPersister</literal>."
-msgstr "<literal>subselect</literal> (opcional): Mapea una entidad inmutable y de s&#x00f3;lo lectura a una subselect de base de datos. Es &#x00fa;til si quieres tener una vista en vez de una tabla base, pero no tienes vistas. Mira debajo para m&#x00e1;s informaci&#x00f3;n."
+#. Tag: para
+#: basic_mapping.xml:294
+#, no-c-format
+msgid ""
+"<literal>persister</literal> (optional): Specifies a custom "
+"<literal>ClassPersister</literal>."
+msgstr ""
+"<literal>persister</literal> (opcional): Especifica un "
+"<literal>ClassPersister</literal> personalizado."
 
-#: index.docbook:299
-msgid "<literal>batch-size</literal> (optional, defaults to <literal>1</literal>) specify a \"batch size\" for fetching instances of this class by identifier."
-msgstr "<literal>abstract</literal> (opcional): Usado para marcar superclases abstractas en jerarqu&#x00ed;as <literal>&lt;union-subclass&gt;</literal>."
+#. Tag: para
+#: basic_mapping.xml:299
+#, no-c-format
+msgid ""
+"<literal>batch-size</literal> (optional, defaults to <literal>1</literal>) "
+"specify a \"batch size\" for fetching instances of this class by identifier."
+msgstr ""
+"<literal>batch-size</literal> (opcional, por defecto a <literal>1</literal>) "
+"especifica un \"tamaño de lote\" para traer instancias de esta clase por "
+"identificador."
 
-#: index.docbook:305
-msgid "<literal>optimistic-lock</literal> (optional, defaults to <literal>version</literal>): Determines the optimistic locking strategy."
-msgstr "Es perfectamente aceptable que la clase persistente mencionada sea una interface. Entonces declarar&#x00ed;as clases que implementan esa interface usando el elemento <literal>&lt;subclass&gt;</literal>. Puedes persistir cualquier clase interna <emphasis>est&#x00e1;tica</emphasis>. Debes especificar el nombre de la clase usando la forma est&#x00e1;ndar. Por ejemplo, <literal>eg.Foo$Bar</literal>."
+#. Tag: para
+#: basic_mapping.xml:305
+#, no-c-format
+msgid ""
+"<literal>optimistic-lock</literal> (optional, defaults to <literal>version</"
+"literal>): Determines the optimistic locking strategy."
+msgstr ""
+"<literal>optimistic-lock</literal> (opcional, por defecto a "
+"<literal>version</literal>): Determina la estrategia optimista de bloqueo."
 
-#: index.docbook:311
-msgid "<literal>lazy</literal> (optional): Lazy fetching may be completely disabled by setting <literal>lazy=\"false\"</literal>."
-msgstr "Las clases inmutables, <literal>mutable=\"false\"</literal>, no pueden ser actualizadas o borradas por la aplicaci&#x00f3;n. Esto permite a Hibernate hacer ciertas optimizaciones menores de rendimiento."
+#. Tag: para
+#: basic_mapping.xml:311
+#, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional): Lazy fetching may be completely disabled "
+"by setting <literal>lazy=\"false\"</literal>."
+msgstr ""
+"<literal>lazy</literal> (opcional): La recuperación perezosa puede ser "
+"deshabilitada por completo estableciendo <literal>lazy=\"false\"</literal>."
 
-#: index.docbook:317
-msgid "<literal>entity-name</literal> (optional, defaults to the class name): Hibernate3 allows a class to be mapped multiple times (to different tables, potentially), and allows entity mappings that are represented by Maps or XML at the Java level. In these cases, you should provide an explicit arbitrary name for the entity. See <xref linkend=\"persistent-classes-dynamicmodels\"/> and <xref linkend=\"xml\"/> for more information."
-msgstr "El atributo opcional <literal>proxy</literal> habilita la inicializaci&#x00f3;n postergada de instancias persistentes de la clase. Hibernate inicialmente retornar&#x00e1; proxies CGLIB que implementan la interface mencionada. El objeto persistente real ser&#x00e1; cargado cuando se invoque un m&#x00e9;todo del proxy. Mira \"Proxies para Inicializaci&#x00f3;n Postergada\" debajo."
+#. Tag: para
+#: basic_mapping.xml:317
+#, no-c-format
+msgid ""
+"<literal>entity-name</literal> (optional, defaults to the class name): "
+"Hibernate3 allows a class to be mapped multiple times (to different tables, "
+"potentially), and allows entity mappings that are represented by Maps or XML "
+"at the Java level. In these cases, you should provide an explicit arbitrary "
+"name for the entity. See <xref linkend=\"persistent-classes-dynamicmodels\"/"
+"> and <xref linkend=\"xml\"/> for more information."
+msgstr ""
+"<literal>entity-name</literal> (opcional): Hibernate3 permite que una clase "
+"sea mapeada varias veces (potencialmente a tablas diferentes), y permite que "
+"los mapeos de entidad sean representados por Maps o XML al nivel de Java. En "
+"estos casos, debes proveer un nombre explícito arbitrario para la entidad. "
+"Para más información, mira <xref linkend=\"persistent-classes-dynamicmodels"
+"\"/> y <xref linkend=\"xml\"/>."
 
-#: index.docbook:327
-msgid "<literal>check</literal> (optional): A SQL expression used to generate a multi-row <emphasis>check</emphasis> constraint for automatic schema generation."
-msgstr "Por polimorfismo <emphasis>impl&#x00ed;cito</emphasis> se entiende que las instancias de la clase ser&#x00e1;n devueltas por una consulta que mencione cualquier superclase, o interface implementada, o la clase misma; y que las instancias de cualquier subclase de la clase ser&#x00e1;n devueltas por una clase que mencione a la clase en s&#x00ed;. Por polimorfismo <emphasis>expl&#x00ed;cito</emphasis> se entiende que instancias de la clase ser&#x00e1;n devueltas s&#x00f3;lo por consultas que mencionen expl&#x00ed;citamente la clase; y que las consultas que mencionen la clase devolver&#x00e1;n s&#x00f3;lo instancias de subclases mapeadas dentro de esta declaraci&#x00f3;n <literal>&lt;class&gt;</literal> como una <literal>&lt;subclass&gt;</literal> o <literal>&lt;joined-subclass&gt;</literal>. Para la mayor&#x00ed;a de los prop&#x00f3;sitos el defecto, <literal>polymorphism=\"implicit\"</literal>, resulta apropiado. El polimorfismo expl&#x00ed;cito es &#x00fa;til cuando !
 dos clases diferentes est&#x00e1;n mapeadas a la misma tabla (esto permite tener una clase \"liviana\" que contenga un subconjunto de columnas de la tabla)."
+#. Tag: para
+#: basic_mapping.xml:327
+#, no-c-format
+msgid ""
+"<literal>check</literal> (optional): A SQL expression used to generate a "
+"multi-row <emphasis>check</emphasis> constraint for automatic schema "
+"generation."
+msgstr ""
+"<literal>check</literal> (opcional): Una expresión SQL usada para generar "
+"una restricción <emphasis>check</emphasis> multi-fila para la generación "
+"automática de esquema."
 
-#: index.docbook:333
-msgid "<literal>rowid</literal> (optional): Hibernate can use so called ROWIDs on databases which support. E.g. on Oracle, Hibernate can use the <literal>rowid</literal> extra column for fast updates if you set this option to <literal>rowid</literal>. A ROWID is an implementation detail and represents the physical location of a stored tuple."
-msgstr "El atributo <literal>persister</literal> te permite personalizar la estrategia de persistencia para la clase. Puedes, por ejemplo, especificar tu propia subclase de <literal>org.hibernate.persister.EntityPersister</literal> o incluso puedes proveer una implementaci&#x00f3;n completamente nueva de la interface <literal>org.hibernate.persister.ClassPersister</literal> que implemente la persistencia por medio, por ejemplo, de llamadas a procedimientos almacenados, serializaci&#x00f3;n a ficheros planos o LDAP. Para un ejemplo simple (de persistencia a una <literal>Hashtable</literal>) mira <literal>org.hibernate.test.CustomPersister</literal>."
+#. Tag: para
+#: basic_mapping.xml:333
+#, no-c-format
+msgid ""
+"<literal>rowid</literal> (optional): Hibernate can use so called ROWIDs on "
+"databases which support. E.g. on Oracle, Hibernate can use the "
+"<literal>rowid</literal> extra column for fast updates if you set this "
+"option to <literal>rowid</literal>. A ROWID is an implementation detail and "
+"represents the physical location of a stored tuple."
+msgstr ""
+"<literal>rowid</literal> (opcional): Hibernate puede usar los llamados "
+"ROWIDs en las bases de datos que los soporten. Por ejemplo, en Oracle, "
+"Hibernate puede usar la columna extra <literal>rowid</literal> para "
+"actualizaciones rápidas si estableces esta opción a <literal>rowid</"
+"literal>. Un ROWID es un detalle de implementación y representa la posición "
+"física de la tupla almacenada."
 
-#: index.docbook:341
-msgid "<literal>subselect</literal> (optional): Maps an immutable and read-only entity to a database subselect. Useful if you want to have a view instead of a base table, but don't. See below for more information."
-msgstr "Observa que los valores de <literal>dynamic-update</literal> y <literal>dynamic-insert</literal> no son heredados por las subclases y por lo tanto deben especificarse en los elementos <literal>&lt;subclass&gt;</literal> o <literal>&lt;joined-subclass&gt;</literal>. Estos ajustes pueden incrementar el rendimiento en algunos casos, pero podr&#x00ed;an mermarlo en otros. Ten juicio en su uso."
+#. Tag: para
+#: basic_mapping.xml:341
+#, no-c-format
+msgid ""
+"<literal>subselect</literal> (optional): Maps an immutable and read-only "
+"entity to a database subselect. Useful if you want to have a view instead of "
+"a base table, but don't. See below for more information."
+msgstr ""
+"<literal>subselect</literal> (opcional): Mapea una entidad inmutable y de "
+"sólo lectura a una subselect de base de datos. Es útil si quieres tener una "
+"vista en vez de una tabla base, pero no tienes vistas. Mira debajo para más "
+"información."
 
-#: index.docbook:348
-msgid "<literal>abstract</literal> (optional): Used to mark abstract superclasses in <literal>&lt;union-subclass&gt;</literal> hierarchies."
-msgstr "Generalmente el uso de <literal>select-before-update</literal> disminuir&#x00e1; el rendimiento. Es muy &#x00fa;til prevenir que se llame innecesariamente a un disparador de actualizaci&#x00f3;n de base de datos al volver a unir un grafo de instancias separadas a una <literal>Session</literal>."
+#. Tag: para
+#: basic_mapping.xml:348
+#, no-c-format
+msgid ""
+"<literal>abstract</literal> (optional): Used to mark abstract superclasses "
+"in <literal>&lt;union-subclass&gt;</literal> hierarchies."
+msgstr ""
+"<literal>abstract</literal> (opcional): Usado para marcar superclases "
+"abstractas en jerarquías <literal>&lt;union-subclass&gt;</literal>."
 
-#: index.docbook:356
-msgid "It is perfectly acceptable for the named persistent class to be an interface. You would then declare implementing classes of that interface using the <literal>&lt;subclass&gt;</literal> element. You may persist any <emphasis>static</emphasis> inner class. You should specify the class name using the standard form ie. <literal>eg.Foo$Bar</literal>."
-msgstr "Si habilitas <literal>dynamic-update</literal>, tendr&#x00e1;s opci&#x00f3;n de estrategias de bloqueo optimistas:"
+#. Tag: para
+#: basic_mapping.xml:356
+#, no-c-format
+msgid ""
+"It is perfectly acceptable for the named persistent class to be an "
+"interface. You would then declare implementing classes of that interface "
+"using the <literal>&lt;subclass&gt;</literal> element. You may persist any "
+"<emphasis>static</emphasis> inner class. You should specify the class name "
+"using the standard form ie. <literal>eg.Foo$Bar</literal>."
+msgstr ""
+"Es perfectamente aceptable que la clase persistente mencionada sea una "
+"interface. Entonces declararías clases que implementan esa interface usando "
+"el elemento <literal>&lt;subclass&gt;</literal>. Puedes persistir cualquier "
+"clase interna <emphasis>estática</emphasis>. Debes especificar el nombre de "
+"la clase usando la forma estándar. Por ejemplo, <literal>eg.Foo$Bar</"
+"literal>."
 
-#: index.docbook:363
-msgid "Immutable classes, <literal>mutable=\"false\"</literal>, may not be updated or deleted by the application. This allows Hibernate to make some minor performance optimizations."
-msgstr "<literal>version</literal> chequea las columnas de versi&#x00f3;n/timestamp"
+#. Tag: para
+#: basic_mapping.xml:363
+#, no-c-format
+msgid ""
+"Immutable classes, <literal>mutable=\"false\"</literal>, may not be updated "
+"or deleted by the application. This allows Hibernate to make some minor "
+"performance optimizations."
+msgstr ""
+"Las clases inmutables, <literal>mutable=\"false\"</literal>, no pueden ser "
+"actualizadas o borradas por la aplicación. Esto permite a Hibernate hacer "
+"ciertas optimizaciones menores de rendimiento."
 
-#: index.docbook:368
-msgid "The optional <literal>proxy</literal> attribute enables lazy initialization of persistent instances of the class. Hibernate will initially return CGLIB proxies which implement the named interface. The actual persistent object will be loaded when a method of the proxy is invoked. See \"Initializing collections and proxies\" below."
-msgstr "<literal>all</literal> chequea todas las columnas"
+#. Tag: para
+#: basic_mapping.xml:368
+#, no-c-format
+msgid ""
+"The optional <literal>proxy</literal> attribute enables lazy initialization "
+"of persistent instances of the class. Hibernate will initially return CGLIB "
+"proxies which implement the named interface. The actual persistent object "
+"will be loaded when a method of the proxy is invoked. See \"Initializing "
+"collections and proxies\" below."
+msgstr ""
+"El atributo opcional <literal>proxy</literal> habilita la inicialización "
+"postergada de instancias persistentes de la clase. Hibernate inicialmente "
+"retornará proxies CGLIB que implementan la interface mencionada. El objeto "
+"persistente real será cargado cuando se invoque un método del proxy. Mira "
+"\"Proxies para Inicialización Postergada\" debajo."
 
-#: index.docbook:375
-msgid "<emphasis>Implicit</emphasis> polymorphism means that instances of the class will be returned by a query that names any superclass or implemented interface or the class and that instances of any subclass of the class will be returned by a query that names the class itself. <emphasis>Explicit</emphasis> polymorphism means that class instances will be returned only by queries that explicitly name that class and that queries that name the class will return only instances of subclasses mapped inside this <literal>&lt;class&gt;</literal> declaration as a <literal>&lt;subclass&gt;</literal> or <literal>&lt;joined-subclass&gt;</literal>. For most purposes the default, <literal>polymorphism=\"implicit\"</literal>, is appropriate. Explicit polymorphism is useful when two different classes are mapped to the same table (this allows a \"lightweight\" class that contains a subset of the table columns)."
-msgstr "<literal>dirty</literal> chequea las columnas modificadas, permitiendo algunas actualizaciones concurrentes"
+#. Tag: para
+#: basic_mapping.xml:375
+#, no-c-format
+msgid ""
+"<emphasis>Implicit</emphasis> polymorphism means that instances of the class "
+"will be returned by a query that names any superclass or implemented "
+"interface or the class and that instances of any subclass of the class will "
+"be returned by a query that names the class itself. <emphasis>Explicit</"
+"emphasis> polymorphism means that class instances will be returned only by "
+"queries that explicitly name that class and that queries that name the class "
+"will return only instances of subclasses mapped inside this <literal>&lt;"
+"class&gt;</literal> declaration as a <literal>&lt;subclass&gt;</literal> or "
+"<literal>&lt;joined-subclass&gt;</literal>. For most purposes the default, "
+"<literal>polymorphism=\"implicit\"</literal>, is appropriate. Explicit "
+"polymorphism is useful when two different classes are mapped to the same "
+"table (this allows a \"lightweight\" class that contains a subset of the "
+"table columns)."
+msgstr ""
+"Por polimorfismo <emphasis>implícito</emphasis> se entiende que las "
+"instancias de la clase serán devueltas por una consulta que mencione "
+"cualquier superclase, o interface implementada, o la clase misma; y que las "
+"instancias de cualquier subclase de la clase serán devueltas por una clase "
+"que mencione a la clase en sí. Por polimorfismo <emphasis>explícito</"
+"emphasis> se entiende que instancias de la clase serán devueltas sólo por "
+"consultas que mencionen explícitamente la clase; y que las consultas que "
+"mencionen la clase devolverán sólo instancias de subclases mapeadas dentro "
+"de esta declaración <literal>&lt;class&gt;</literal> como una <literal>&lt;"
+"subclass&gt;</literal> o <literal>&lt;joined-subclass&gt;</literal>. Para la "
+"mayoría de los propósitos el defecto, <literal>polymorphism=\"implicit\"</"
+"literal>, resulta apropiado. El polimorfismo explícito es útil cuando dos "
+"clases diferentes están mapeadas a la misma tabla (esto permite tener una "
+"clase \"liviana\" que contenga un subconjunto de columnas de la tabla)."
 
-#: index.docbook:387
-msgid "The <literal>persister</literal> attribute lets you customize the persistence strategy used for the class. You may, for example, specify your own subclass of <literal>org.hibernate.persister.EntityPersister</literal> or you might even provide a completely new implementation of the interface <literal>org.hibernate.persister.ClassPersister</literal> that implements persistence via, for example, stored procedure calls, serialization to flat files or LDAP. See <literal>org.hibernate.test.CustomPersister</literal> for a simple example (of \"persistence\" to a <literal>Hashtable</literal>)."
-msgstr "<literal>none</literal> no usa bloqueo optimista"
+#. Tag: para
+#: basic_mapping.xml:387
+#, no-c-format
+msgid ""
+"The <literal>persister</literal> attribute lets you customize the "
+"persistence strategy used for the class. You may, for example, specify your "
+"own subclass of <literal>org.hibernate.persister.EntityPersister</literal> "
+"or you might even provide a completely new implementation of the interface "
+"<literal>org.hibernate.persister.ClassPersister</literal> that implements "
+"persistence via, for example, stored procedure calls, serialization to flat "
+"files or LDAP. See <literal>org.hibernate.test.CustomPersister</literal> for "
+"a simple example (of \"persistence\" to a <literal>Hashtable</literal>)."
+msgstr ""
+"El atributo <literal>persister</literal> te permite personalizar la "
+"estrategia de persistencia para la clase. Puedes, por ejemplo, especificar "
+"tu propia subclase de <literal>org.hibernate.persister.EntityPersister</"
+"literal> o incluso puedes proveer una implementación completamente nueva de "
+"la interface <literal>org.hibernate.persister.ClassPersister</literal> que "
+"implemente la persistencia por medio, por ejemplo, de llamadas a "
+"procedimientos almacenados, serialización a ficheros planos o LDAP. Para un "
+"ejemplo simple (de persistencia a una <literal>Hashtable</literal>) mira "
+"<literal>org.hibernate.test.CustomPersister</literal>."
 
-#: index.docbook:398
-msgid "Note that the <literal>dynamic-update</literal> and <literal>dynamic-insert</literal> settings are not inherited by subclasses and so may also be specified on the <literal>&lt;subclass&gt;</literal> or <literal>&lt;joined-subclass&gt;</literal> elements. These settings may increase performance in some cases, but might actually decrease performance in others. Use judiciously."
-msgstr "Recomendamos <emphasis>muy</emphasis> fuertemente que uses columnas de versi&#x00f3;n/timestamp para bloqueo optimista con Hibernate. Esta es la estrategia &#x00f3;ptima con respecto al rendimiento y es la &#x00fa;nica estrategia que maneja correctamente las modificaciones hechas a las instancias separadas. (por ejemplo, cuando se usa <literal>Session.merge()</literal>)."
+#. Tag: para
+#: basic_mapping.xml:398
+#, no-c-format
+msgid ""
+"Note that the <literal>dynamic-update</literal> and <literal>dynamic-insert</"
+"literal> settings are not inherited by subclasses and so may also be "
+"specified on the <literal>&lt;subclass&gt;</literal> or <literal>&lt;joined-"
+"subclass&gt;</literal> elements. These settings may increase performance in "
+"some cases, but might actually decrease performance in others. Use "
+"judiciously."
+msgstr ""
+"Observa que los valores de <literal>dynamic-update</literal> y "
+"<literal>dynamic-insert</literal> no son heredados por las subclases y por "
+"lo tanto deben especificarse en los elementos <literal>&lt;subclass&gt;</"
+"literal> o <literal>&lt;joined-subclass&gt;</literal>. Estos ajustes pueden "
+"incrementar el rendimiento en algunos casos, pero podrían mermarlo en otros. "
+"Ten juicio en su uso."
 
-#: index.docbook:406
-msgid "Use of <literal>select-before-update</literal> will usually decrease performance. It is very useful to prevent a database update trigger being called unnecessarily if you reattach a graph of detached instances to a <literal>Session</literal>."
-msgstr "Para un mapeo de Hibernate, no hay diferencia entre una vista y una tabla base. Como se supone esto es transparente a nivel de base de datos (observa que algunos DBMS no soportan correctamente las vistas, especialmente con las actualizaciones). A veces quieres usar una vista, pero no puedes crear una en la base de datos (por ejemplo, con un esquema heredado). En este caso, puedes mapear una entidad inmutable de s&#x00f3;lo lectura a una expresi&#x00f3;n de subconsulta SQL dada."
+#. Tag: para
+#: basic_mapping.xml:406
+#, no-c-format
+msgid ""
+"Use of <literal>select-before-update</literal> will usually decrease "
+"performance. It is very useful to prevent a database update trigger being "
+"called unnecessarily if you reattach a graph of detached instances to a "
+"<literal>Session</literal>."
+msgstr ""
+"Generalmente el uso de <literal>select-before-update</literal> disminuirá el "
+"rendimiento. Es muy útil prevenir que se llame innecesariamente a un "
+"disparador de actualización de base de datos al volver a unir un grafo de "
+"instancias separadas a una <literal>Session</literal>."
 
-#: index.docbook:412
-msgid "If you enable <literal>dynamic-update</literal>, you will have a choice of optimistic locking strategies:"
+#. Tag: para
+#: basic_mapping.xml:412
+#, no-c-format
+msgid ""
+"If you enable <literal>dynamic-update</literal>, you will have a choice of "
+"optimistic locking strategies:"
 msgstr ""
-      "<![CDATA[<class name=\"Summary\">\n"
-      "    <subselect>\n"
-      "        select item.name, max(bid.amount), count(*)\n"
-      "        from item\n"
-      "        join bid on bid.item_id = item.id\n"
-      "        group by item.name\n"
-      "    </subselect>\n"
-      "    <synchronize table=\"item\"/>\n"
-      "    <synchronize table=\"bid\"/>\n"
-      "    <id name=\"name\"/>\n"
-      "    ...\n"
-      "</class>]]>"
+"Si habilitas <literal>dynamic-update</literal>, tendrás opción de "
+"estrategias de bloqueo optimistas:"
 
-#: index.docbook:418
+#. Tag: para
+#: basic_mapping.xml:418
+#, no-c-format
 msgid "<literal>version</literal> check the version/timestamp columns"
-msgstr "Declara las tablas con las que sincronizar esta entidad, asegurando que el auto-flush ocurre correctamente, y que las consultas contra la entidad derivada no devuelven datos desactualizados. El <literal>&lt;subselect&gt;</literal> est&#x00e1; disponible tanto como un atributo o como un elemento anidado de mapeo."
+msgstr "<literal>version</literal> chequea las columnas de versión/timestamp"
 
-#: index.docbook:423
+#. Tag: para
+#: basic_mapping.xml:423
+#, no-c-format
 msgid "<literal>all</literal> check all columns"
-msgstr "<title>id</title>"
+msgstr "<literal>all</literal> chequea todas las columnas"
 
-#: index.docbook:428
-msgid "<literal>dirty</literal> check the changed columns, allowing some concurrent updates"
-msgstr "Las clases mapeadas <emphasis>deben</emphasis> declarar la columna de clave primaria de la tabla de la base de datos. En la mayor&#x00ed;a de los casos tendr&#x00e1; tambi&#x00e9;n una propiedad estilo Javabeans que tenga el identificador &#x00fa;nico de una instancia. El elemento <literal>&lt;id&gt;</literal> define el mapeo de esa propiedad a la columna de clave primaria."
+#. Tag: para
+#: basic_mapping.xml:428
+#, no-c-format
+msgid ""
+"<literal>dirty</literal> check the changed columns, allowing some concurrent "
+"updates"
+msgstr ""
+"<literal>dirty</literal> chequea las columnas modificadas, permitiendo "
+"algunas actualizaciones concurrentes"
 
-#: index.docbook:433
+#. Tag: para
+#: basic_mapping.xml:433
+#, no-c-format
 msgid "<literal>none</literal> do not use optimistic locking"
+msgstr "<literal>none</literal> no usa bloqueo optimista"
+
+#. Tag: para
+#: basic_mapping.xml:438
+#, no-c-format
+msgid ""
+"We <emphasis>very</emphasis> strongly recommend that you use version/"
+"timestamp columns for optimistic locking with Hibernate. This is the optimal "
+"strategy with respect to performance and is the only strategy that correctly "
+"handles modifications made to detached instances (ie. when <literal>Session."
+"merge()</literal> is used)."
 msgstr ""
-      "<![CDATA[<id\n"
-      "        name=\"propertyName\"\n"
-      "        type=\"typename\"\n"
-      "        column=\"column_name\"\n"
-      "        unsaved-value=\"null|any|none|undefined|id_value\"\n"
-      "        access=\"field|property|ClassName\"\n"
-      "        node=\"element-name|@attribute-name|element/@attribute|.\">\n"
-      "\n"
-      "        <generator class=\"generatorClass\"/>\n"
-      "</id>]]>"
+"Recomendamos <emphasis>muy</emphasis> fuertemente que uses columnas de "
+"versión/timestamp para bloqueo optimista con Hibernate. Esta es la "
+"estrategia óptima con respecto al rendimiento y es la única estrategia que "
+"maneja correctamente las modificaciones hechas a las instancias separadas. "
+"(por ejemplo, cuando se usa <literal>Session.merge()</literal>)."
 
-#: index.docbook:438
-msgid "We <emphasis>very</emphasis> strongly recommend that you use version/timestamp columns for optimistic locking with Hibernate. This is the optimal strategy with respect to performance and is the only strategy that correctly handles modifications made to detached instances (ie. when <literal>Session.merge()</literal> is used)."
-msgstr "<literal>name</literal> (opcional): El nombre de la propiedad del indentificador."
+#. Tag: para
+#: basic_mapping.xml:445
+#, no-c-format
+msgid ""
+"There is no difference between a view and a base table for a Hibernate "
+"mapping, as expected this is transparent at the database level (note that "
+"some DBMS don't support views properly, especially with updates). Sometimes "
+"you want to use a view, but can't create one in the database (ie. with a "
+"legacy schema). In this case, you can map an immutable and read-only entity "
+"to a given SQL subselect expression:"
+msgstr ""
+"Para un mapeo de Hibernate, no hay diferencia entre una vista y una tabla "
+"base. Como se supone esto es transparente a nivel de base de datos (observa "
+"que algunos DBMS no soportan correctamente las vistas, especialmente con las "
+"actualizaciones). A veces quieres usar una vista, pero no puedes crear una "
+"en la base de datos (por ejemplo, con un esquema heredado). En este caso, "
+"puedes mapear una entidad inmutable de sólo lectura a una expresión de "
+"subconsulta SQL dada."
 
-#: index.docbook:445
-msgid "There is no difference between a view and a base table for a Hibernate mapping, as expected this is transparent at the database level (note that some DBMS don't support views properly, especially with updates). Sometimes you want to use a view, but can't create one in the database (ie. with a legacy schema). In this case, you can map an immutable and read-only entity to a given SQL subselect expression:"
-msgstr "<literal>type</literal> (opcional): Un nombre que indica el tipo Hibernate."
+#. Tag: programlisting
+#: basic_mapping.xml:453
+#, no-c-format
+msgid ""
+"<![CDATA[<class name=\"Summary\">\n"
+"    <subselect>\n"
+"        select item.name, max(bid.amount), count(*)\n"
+"        from item\n"
+"        join bid on bid.item_id = item.id\n"
+"        group by item.name\n"
+"    </subselect>\n"
+"    <synchronize table=\"item\"/>\n"
+"    <synchronize table=\"bid\"/>\n"
+"    <id name=\"name\"/>\n"
+"    ...\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:453
+#. Tag: para
+#: basic_mapping.xml:455
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Summary\">\n"
-      "    <subselect>\n"
-      "        select item.name, max(bid.amount), count(*)\n"
-      "        from item\n"
-      "        join bid on bid.item_id = item.id\n"
-      "        group by item.name\n"
-      "    </subselect>\n"
-      "    <synchronize table=\"item\"/>\n"
-      "    <synchronize table=\"bid\"/>\n"
-      "    <id name=\"name\"/>\n"
-      "    ...\n"
-      "</class>]]>"
-msgstr "<literal>column</literal> (opcional - por defecto al nombre de la propiedad): El nombre de la columna de clave primaria."
+"Declare the tables to synchronize this entity with, ensuring that auto-flush "
+"happens correctly, and that queries against the derived entity do not return "
+"stale data. The <literal>&lt;subselect&gt;</literal> is available as both as "
+"an attribute and a nested mapping element."
+msgstr ""
+"Declara las tablas con las que sincronizar esta entidad, asegurando que el "
+"auto-flush ocurre correctamente, y que las consultas contra la entidad "
+"derivada no devuelven datos desactualizados. El <literal>&lt;subselect&gt;</"
+"literal> está disponible tanto como un atributo o como un elemento anidado "
+"de mapeo."
 
-#: index.docbook:455
-msgid "Declare the tables to synchronize this entity with, ensuring that auto-flush happens correctly, and that queries against the derived entity do not return stale data. The <literal>&lt;subselect&gt;</literal> is available as both as an attribute and a nested mapping element."
-msgstr "<literal>unsaved-value</literal> (opcional - por defecto al valor \"sensible\"): Una valor de la propiedad identificadora que indica que una instancia est&#x00e1; reci&#x00e9;n instanciada (sin salvar), distingui&#x00e9;ndola de instancias separadas que fueran salvadas o cargadas en una sesi&#x00f3;n previa."
-
-#: index.docbook:465
+#. Tag: title
+#: basic_mapping.xml:465
+#, no-c-format
 msgid "<title>id</title>"
-msgstr "<literal>access</literal> (opcional - por defecto a <literal>property</literal>): La estrategia que Hibernate debe usar para acceder al valor de la propiedad."
+msgstr ""
 
-#: index.docbook:467
-msgid "Mapped classes <emphasis>must</emphasis> declare the primary key column of the database table. Most classes will also have a JavaBeans-style property holding the unique identifier of an instance. The <literal>&lt;id&gt;</literal> element defines the mapping from that property to the primary key column."
-msgstr "Si se omite el atributo <literal>name</literal>, se asume que la clase no tiene propiedad identificadora."
+#. Tag: para
+#: basic_mapping.xml:467
+#, no-c-format
+msgid ""
+"Mapped classes <emphasis>must</emphasis> declare the primary key column of "
+"the database table. Most classes will also have a JavaBeans-style property "
+"holding the unique identifier of an instance. The <literal>&lt;id&gt;</"
+"literal> element defines the mapping from that property to the primary key "
+"column."
+msgstr ""
+"Las clases mapeadas <emphasis>deben</emphasis> declarar la columna de clave "
+"primaria de la tabla de la base de datos. En la mayoría de los casos tendrá "
+"también una propiedad estilo Javabeans que tenga el identificador único de "
+"una instancia. El elemento <literal>&lt;id&gt;</literal> define el mapeo de "
+"esa propiedad a la columna de clave primaria."
 
-#: index.docbook:482
+#. Tag: programlisting
+#: basic_mapping.xml:482
+#, no-c-format
 msgid ""
-      "<![CDATA[<id\n"
-      "        name=\"propertyName\"\n"
-      "        type=\"typename\"\n"
-      "        column=\"column_name\"\n"
-      "        unsaved-value=\"null|any|none|undefined|id_value\"\n"
-      "        access=\"field|property|ClassName\">\n"
-      "        node=\"element-name|@attribute-name|element/@attribute|.\"\n"
-      "\n"
-      "        <generator class=\"generatorClass\"/>\n"
-      "</id>]]>"
-msgstr "El atributo <literal>unsaved-value</literal> es importante! Si la propiedad identificadora de tu clase no tiene por defecto el valor por defecto normal de Java (null o cero), entonces debes especificar el valor por defecto real."
+"<![CDATA[<id\n"
+"        name=\"propertyName\"\n"
+"        type=\"typename\"\n"
+"        column=\"column_name\"\n"
+"        unsaved-value=\"null|any|none|undefined|id_value\"\n"
+"        access=\"field|property|ClassName\">\n"
+"        node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+"\n"
+"        <generator class=\"generatorClass\"/>\n"
+"</id>]]>"
+msgstr ""
 
-#: index.docbook:485
-msgid "<literal>name</literal> (optional): The name of the identifier property."
-msgstr "Hay una declaraci&#x00f3;n <literal>&lt;composite-id&gt;</literal> alternativa para permitir acceso a datos heredados con claves compuestas. Desalentamos fuertemente su uso para cualquier otra cosa."
+#. Tag: para
+#: basic_mapping.xml:485
+#, no-c-format
+msgid ""
+"<literal>name</literal> (optional): The name of the identifier property."
+msgstr ""
+"<literal>name</literal> (opcional): El nombre de la propiedad del "
+"indentificador."
 
-#: index.docbook:490
-msgid "<literal>type</literal> (optional): A name that indicates the Hibernate type."
-msgstr "Generator"
+#. Tag: para
+#: basic_mapping.xml:490
+#, no-c-format
+msgid ""
+"<literal>type</literal> (optional): A name that indicates the Hibernate type."
+msgstr ""
+"<literal>type</literal> (opcional): Un nombre que indica el tipo Hibernate."
 
-#: index.docbook:495
-msgid "<literal>column</literal> (optional - defaults to the property name): The name of the primary key column."
-msgstr "El elemento hijo opcional <literal>&lt;generator&gt;</literal> nombra una clase Java usada en generar identificadores &#x00fa;nicos para instancias de la clase persistente. De requerirse alg&#x00fa;n par&#x00e1;metro para configurar o inicializar la instancia del generador, se pasa usando el elemento <literal>&lt;param&gt;</literal>."
+#. Tag: para
+#: basic_mapping.xml:495
+#, no-c-format
+msgid ""
+"<literal>column</literal> (optional - defaults to the property name): The "
+"name of the primary key column."
+msgstr ""
+"<literal>column</literal> (opcional - por defecto al nombre de la "
+"propiedad): El nombre de la columna de clave primaria."
 
-#: index.docbook:501
-msgid "<literal>unsaved-value</literal> (optional - defaults to a \"sensible\" value): An identifier property value that indicates that an instance is newly instantiated (unsaved), distinguishing it from detached instances that were saved or loaded in a previous session."
+#. Tag: para
+#: basic_mapping.xml:501
+#, no-c-format
+msgid ""
+"<literal>unsaved-value</literal> (optional - defaults to a \"sensible\" "
+"value): An identifier property value that indicates that an instance is "
+"newly instantiated (unsaved), distinguishing it from detached instances that "
+"were saved or loaded in a previous session."
 msgstr ""
-      "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
-      "        <generator class=\"org.hibernate.id.TableHiLoGenerator\">\n"
-      "                <param name=\"table\">uid_table</param>\n"
-      "                <param name=\"column\">next_hi_value_column</param>\n"
-      "        </generator>\n"
-      "</id>]]>"
+"<literal>unsaved-value</literal> (opcional - por defecto al valor \"sensible"
+"\"): Una valor de la propiedad identificadora que indica que una instancia "
+"está recién instanciada (sin salvar), distinguiéndola de instancias "
+"separadas que fueran salvadas o cargadas en una sesión previa."
 
-#: index.docbook:509, index.docbook:1017, index.docbook:1156, index.docbook:1238, index.docbook:1345, index.docbook:1534, index.docbook:1708, index.docbook:1878, index.docbook:2457
-msgid "<literal>access</literal> (optional - defaults to <literal>property</literal>): The strategy Hibernate should use for accessing the property value."
-msgstr "Todos los generadores implementan la interface <literal>org.hibernate.id.IdentifierGenerator</literal>. Esta es una interface muy simple; algunas aplicaciones pueden escoger proveer sus propias implementaciones especializadas. Sin embargo, Hibernate provee un rango de implementaciones prefabricadas. Hay nombres alias de atajo para los generadores prefabricados:"
+#. Tag: para
+#: basic_mapping.xml:509 basic_mapping.xml:1017 basic_mapping.xml:1156
+#: basic_mapping.xml:1238 basic_mapping.xml:1345 basic_mapping.xml:1534
+#: basic_mapping.xml:1708 basic_mapping.xml:1878 basic_mapping.xml:2457
+#, fuzzy, no-c-format
+msgid ""
+"<literal>access</literal> (optional - defaults to <literal>property</"
+"literal>): The strategy Hibernate should use for accessing the property "
+"value."
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>access</literal> (opcional - por defecto a <literal>property</"
+"literal>): La estrategia que Hibernate debe usar para acceder al valor de la "
+"propiedad.\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>access</literal> (optional - defaults to <literal>property</"
+"literal>): The strategy Hibernate should use for accessing the property "
+"value.\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>access</literal> (opcional - por defecto a <literal>property</"
+"literal>): La estrategia que Hibernate debe usar para acceder al valor de la "
+"propiedad.\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>access</literal> (opcional - por defecto a <literal>property</"
+"literal>): La estrategia que Hibernate debe usar para acceder al valor de la "
+"propiedad.\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>access</literal> (opcional - por defecto a <literal>property</"
+"literal>): La estrategia que Hibernate debe usar para acceder al valor de la "
+"propiedad.\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>access</literal> (opcional - por defecto a <literal>property</"
+"literal>): La estrategia que Hibernate debe usar para acceder al valor de la "
+"propiedad.\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>access</literal> (opcional - por defecto a <literal>property</"
+"literal>): La estrategia que Hibernate debe usar para acceder al valor de la "
+"propiedad.\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>access</literal> (opcional - por defecto a <literal>property</"
+"literal>): La estrategia que Hibernate debe usar para acceder al valor de la "
+"propiedad.\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>access</literal> (opcional - por defecto a <literal>property</"
+"literal>): La estrategia que Hibernate debe usar para acceder al valor de la "
+"propiedad."
 
-#: index.docbook:517
-msgid "If the <literal>name</literal> attribute is missing, it is assumed that the class has no identifier property."
-msgstr "increment"
+#. Tag: para
+#: basic_mapping.xml:517
+#, no-c-format
+msgid ""
+"If the <literal>name</literal> attribute is missing, it is assumed that the "
+"class has no identifier property."
+msgstr ""
+"Si se omite el atributo <literal>name</literal>, se asume que la clase no "
+"tiene propiedad identificadora."
 
-#: index.docbook:522
-msgid "The <literal>unsaved-value</literal> attribute is almost never needed in Hibernate3."
-msgstr "genera indentificadores de tipo <literal>long</literal>, <literal>short</literal> o <literal>int</literal> que s&#x00f3;lo son &#x00fa;nicos cuando ning&#x00fa;n otro proceso est&#x00e1; insertando datos en la misma tabla. <emphasis>No usar en un cluster.</emphasis>"
+#. Tag: para
+#: basic_mapping.xml:522
+#, no-c-format
+msgid ""
+"The <literal>unsaved-value</literal> attribute is almost never needed in "
+"Hibernate3."
+msgstr ""
+"El atributo <literal>unsaved-value</literal> es importante! Si la propiedad "
+"identificadora de tu clase no tiene por defecto el valor por defecto normal "
+"de Java (null o cero), entonces debes especificar el valor por defecto real."
 
-#: index.docbook:526
-msgid "There is an alternative <literal>&lt;composite-id&gt;</literal> declaration to allow access to legacy data with composite keys. We strongly discourage its use for anything else."
-msgstr "identity"
+#. Tag: para
+#: basic_mapping.xml:526
+#, no-c-format
+msgid ""
+"There is an alternative <literal>&lt;composite-id&gt;</literal> declaration "
+"to allow access to legacy data with composite keys. We strongly discourage "
+"its use for anything else."
+msgstr ""
+"Hay una declaración <literal>&lt;composite-id&gt;</literal> alternativa para "
+"permitir acceso a datos heredados con claves compuestas. Desalentamos "
+"fuertemente su uso para cualquier otra cosa."
 
-#: index.docbook:532
+#. Tag: title
+#: basic_mapping.xml:532
+#, no-c-format
 msgid "Generator"
-msgstr "soporta columnas de identidad en DB2, MySQL, MS SQL Server, Sybase y HypersonicSQL. El identificador devuelto es de tipo <literal>long</literal>, <literal>short</literal> o <literal>int</literal>."
+msgstr "Generator"
 
-#: index.docbook:534
-msgid "The optional <literal>&lt;generator&gt;</literal> child element names a Java class used to generate unique identifiers for instances of the persistent class. If any parameters are required to configure or initialize the generator instance, they are passed using the <literal>&lt;param&gt;</literal> element."
-msgstr "sequence"
+#. Tag: para
+#: basic_mapping.xml:534
+#, no-c-format
+msgid ""
+"The optional <literal>&lt;generator&gt;</literal> child element names a Java "
+"class used to generate unique identifiers for instances of the persistent "
+"class. If any parameters are required to configure or initialize the "
+"generator instance, they are passed using the <literal>&lt;param&gt;</"
+"literal> element."
+msgstr ""
+"El elemento hijo opcional <literal>&lt;generator&gt;</literal> nombra una "
+"clase Java usada en generar identificadores únicos para instancias de la "
+"clase persistente. De requerirse algún parámetro para configurar o "
+"inicializar la instancia del generador, se pasa usando el elemento "
+"<literal>&lt;param&gt;</literal>."
 
-#: index.docbook:541
+#. Tag: programlisting
+#: basic_mapping.xml:541
+#, no-c-format
 msgid ""
-      "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
-      "        <generator class=\"org.hibernate.id.TableHiLoGenerator\">\n"
-      "                <param name=\"table\">uid_table</param>\n"
-      "                <param name=\"column\">next_hi_value_column</param>\n"
-      "        </generator>\n"
-      "</id>]]>"
-msgstr "usa una secuencia en DB2, PostgreSQL, Oracle, SAP DB, McKoi o un generador en Interbase. El identificador devuelto es de tipo <literal>long</literal>, <literal>short</literal> o <literal>int</literal>."
+"<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
+"        <generator class=\"org.hibernate.id.TableHiLoGenerator\">\n"
+"                <param name=\"table\">uid_table</param>\n"
+"                <param name=\"column\">next_hi_value_column</param>\n"
+"        </generator>\n"
+"</id>]]>"
+msgstr ""
 
-#: index.docbook:543
-msgid "All generators implement the interface <literal>org.hibernate.id.IdentifierGenerator</literal>. This is a very simple interface; some applications may choose to provide their own specialized implementations. However, Hibernate provides a range of built-in implementations. There are shortcut names for the built-in generators:"
-msgstr "hilo"
+#. Tag: para
+#: basic_mapping.xml:543
+#, fuzzy, no-c-format
+msgid ""
+"All generators implement the interface <literal>org.hibernate.id."
+"IdentifierGenerator</literal>. This is a very simple interface; some "
+"applications may choose to provide their own specialized implementations. "
+"However, Hibernate provides a range of built-in implementations. There are "
+"shortcut names for the built-in generators:"
+msgstr ""
+"Todos los generadores implementan la interface <literal>org.hibernate.id."
+"IdentifierGenerator</literal>. Esta es una interface muy simple; algunas "
+"aplicaciones pueden escoger proveer sus propias implementaciones "
+"especializadas. Sin embargo, Hibernate provee un rango de implementaciones "
+"prefabricadas. Hay nombres alias de atajo para los generadores "
+"prefabricados: <placeholder-1/>"
 
-#: index.docbook:551
+#. Tag: literal
+#: basic_mapping.xml:551
+#, no-c-format
 msgid "increment"
-msgstr "usa un algoritmo alto/bajo para generar eficientemente identificadores de tipo <literal>long</literal>, <literal>short</literal> o <literal>int</literal>, dada una tabla y columna como fuente de valores altos (por defecto <literal>hibernate_unique_key</literal> y <literal>next_hi</literal> respectivamente). El algoritmo alto/bajo genera identificadores que son &#x00fa;nicos s&#x00f3;lo para una base de datos particular."
+msgstr "increment"
 
-#: index.docbook:553
-msgid "generates identifiers of type <literal>long</literal>, <literal>short</literal> or <literal>int</literal> that are unique only when no other process is inserting data into the same table. <emphasis>Do not use in a cluster.</emphasis>"
-msgstr "seqhilo"
+#. Tag: para
+#: basic_mapping.xml:553
+#, no-c-format
+msgid ""
+"generates identifiers of type <literal>long</literal>, <literal>short</"
+"literal> or <literal>int</literal> that are unique only when no other "
+"process is inserting data into the same table. <emphasis>Do not use in a "
+"cluster.</emphasis>"
+msgstr ""
+"genera indentificadores de tipo <literal>long</literal>, <literal>short</"
+"literal> o <literal>int</literal> que sólo son únicos cuando ningún otro "
+"proceso está insertando datos en la misma tabla. <emphasis>No usar en un "
+"cluster.</emphasis>"
 
-#: index.docbook:562
+#. Tag: literal
+#: basic_mapping.xml:562
+#, no-c-format
 msgid "identity"
-msgstr "usa un algoritmo alto/bajo para generar eficientemente identificadores de tipo <literal>long</literal>, <literal>short</literal> o <literal>int</literal>, dada una secuencia de base de datos."
+msgstr "identity"
 
-#: index.docbook:564
-msgid "supports identity columns in DB2, MySQL, MS SQL Server, Sybase and HypersonicSQL. The returned identifier is of type <literal>long</literal>, <literal>short</literal> or <literal>int</literal>."
-msgstr "uuid"
+#. Tag: para
+#: basic_mapping.xml:564
+#, no-c-format
+msgid ""
+"supports identity columns in DB2, MySQL, MS SQL Server, Sybase and "
+"HypersonicSQL. The returned identifier is of type <literal>long</literal>, "
+"<literal>short</literal> or <literal>int</literal>."
+msgstr ""
+"soporta columnas de identidad en DB2, MySQL, MS SQL Server, Sybase y "
+"HypersonicSQL. El identificador devuelto es de tipo <literal>long</literal>, "
+"<literal>short</literal> o <literal>int</literal>."
 
-#: index.docbook:572
+#. Tag: literal
+#: basic_mapping.xml:572
+#, no-c-format
 msgid "sequence"
-msgstr "usa un algoritmo UUID de 128 bits para generar identificadore de tipo cadena, &#x00fa;nicos en una ref (se usa la direcc&#x00f3;n IP). El UUID se codifica como una cadena hexadecimal de 32 d&#x00ed;gitos de largo."
+msgstr "sequence"
 
-#: index.docbook:574
-msgid "uses a sequence in DB2, PostgreSQL, Oracle, SAP DB, McKoi or a generator in Interbase. The returned identifier is of type <literal>long</literal>, <literal>short</literal> or <literal>int</literal>"
-msgstr "guid"
+#. Tag: para
+#: basic_mapping.xml:574
+#, no-c-format
+msgid ""
+"uses a sequence in DB2, PostgreSQL, Oracle, SAP DB, McKoi or a generator in "
+"Interbase. The returned identifier is of type <literal>long</literal>, "
+"<literal>short</literal> or <literal>int</literal>"
+msgstr ""
+"usa una secuencia en DB2, PostgreSQL, Oracle, SAP DB, McKoi o un generador "
+"en Interbase. El identificador devuelto es de tipo <literal>long</literal>, "
+"<literal>short</literal> o <literal>int</literal>."
 
-#: index.docbook:582
+#. Tag: literal
+#: basic_mapping.xml:582
+#, no-c-format
 msgid "hilo"
-msgstr "usa una cadena GUID generada por base de datos en MS SQL Server y MySQL."
+msgstr "hilo"
 
-#: index.docbook:584
-msgid "uses a hi/lo algorithm to efficiently generate identifiers of type <literal>long</literal>, <literal>short</literal> or <literal>int</literal>, given a table and column (by default <literal>hibernate_unique_key</literal> and <literal>next_hi</literal> respectively) as a source of hi values. The hi/lo algorithm generates identifiers that are unique only for a particular database."
-msgstr "native"
+#. Tag: para
+#: basic_mapping.xml:584
+#, no-c-format
+msgid ""
+"uses a hi/lo algorithm to efficiently generate identifiers of type "
+"<literal>long</literal>, <literal>short</literal> or <literal>int</literal>, "
+"given a table and column (by default <literal>hibernate_unique_key</literal> "
+"and <literal>next_hi</literal> respectively) as a source of hi values. The "
+"hi/lo algorithm generates identifiers that are unique only for a particular "
+"database."
+msgstr ""
+"usa un algoritmo alto/bajo para generar eficientemente identificadores de "
+"tipo <literal>long</literal>, <literal>short</literal> o <literal>int</"
+"literal>, dada una tabla y columna como fuente de valores altos (por defecto "
+"<literal>hibernate_unique_key</literal> y <literal>next_hi</literal> "
+"respectivamente). El algoritmo alto/bajo genera identificadores que son "
+"únicos sólo para una base de datos particular."
 
-#: index.docbook:594
+#. Tag: literal
+#: basic_mapping.xml:594
+#, no-c-format
 msgid "seqhilo"
-msgstr "selecciona <literal>identity</literal>, <literal>sequence</literal> o <literal>hilo</literal> dependiendo de las capacidades de la base de datos subyacente."
+msgstr "seqhilo"
 
-#: index.docbook:596
-msgid "uses a hi/lo algorithm to efficiently generate identifiers of type <literal>long</literal>, <literal>short</literal> or <literal>int</literal>, given a named database sequence."
-msgstr "assigned"
+#. Tag: para
+#: basic_mapping.xml:596
+#, no-c-format
+msgid ""
+"uses a hi/lo algorithm to efficiently generate identifiers of type "
+"<literal>long</literal>, <literal>short</literal> or <literal>int</literal>, "
+"given a named database sequence."
+msgstr ""
+"usa un algoritmo alto/bajo para generar eficientemente identificadores de "
+"tipo <literal>long</literal>, <literal>short</literal> o <literal>int</"
+"literal>, dada una secuencia de base de datos."
 
-#: index.docbook:604
+#. Tag: literal
+#: basic_mapping.xml:604
+#, no-c-format
 msgid "uuid"
-msgstr "deja a la aplicaci&#x00f3;n asignar un identificador al objeto antes de que se llame a <literal>save()</literal>. Esta es la estrategia por defecto si no se especifica un elemento <literal>&lt;generator&gt;</literal>."
+msgstr "uuid"
 
-#: index.docbook:606
-msgid "uses a 128-bit UUID algorithm to generate identifiers of type string, unique within a network (the IP address is used). The UUID is encoded as a string of hexadecimal digits of length 32."
-msgstr "select"
+#. Tag: para
+#: basic_mapping.xml:606
+#, no-c-format
+msgid ""
+"uses a 128-bit UUID algorithm to generate identifiers of type string, unique "
+"within a network (the IP address is used). The UUID is encoded as a string "
+"of hexadecimal digits of length 32."
+msgstr ""
+"usa un algoritmo UUID de 128 bits para generar identificadore de tipo "
+"cadena, únicos en una ref (se usa la direccón IP). El UUID se codifica como "
+"una cadena hexadecimal de 32 dígitos de largo."
 
-#: index.docbook:614
+#. Tag: literal
+#: basic_mapping.xml:614
+#, no-c-format
 msgid "guid"
-msgstr "recupera una clave primaria asignada por un disparador de base de datos seleccionando la fila por alguna clave &#x00fa;nica y recuperando el valor de la clave primaria."
+msgstr "guid"
 
-#: index.docbook:616
+#. Tag: para
+#: basic_mapping.xml:616
+#, no-c-format
 msgid "uses a database-generated GUID string on MS SQL Server and MySQL."
-msgstr "foreign"
+msgstr ""
+"usa una cadena GUID generada por base de datos en MS SQL Server y MySQL."
 
-#: index.docbook:622
+#. Tag: literal
+#: basic_mapping.xml:622
+#, no-c-format
 msgid "native"
-msgstr "usa el identificador de otro objeto asociado. Generalmente usado en conjunc&#x00f3;n a una asociac&#x00f3;n de clave primaria <literal>&lt;uno-a-uno&gt;</literal>"
+msgstr "native"
 
-#: index.docbook:624
-msgid "picks <literal>identity</literal>, <literal>sequence</literal> or <literal>hilo</literal> depending upon the capabilities of the underlying database."
-msgstr "Algoritmo alto/bajo"
+#. Tag: para
+#: basic_mapping.xml:624
+#, no-c-format
+msgid ""
+"picks <literal>identity</literal>, <literal>sequence</literal> or "
+"<literal>hilo</literal> depending upon the capabilities of the underlying "
+"database."
+msgstr ""
+"selecciona <literal>identity</literal>, <literal>sequence</literal> o "
+"<literal>hilo</literal> dependiendo de las capacidades de la base de datos "
+"subyacente."
 
-#: index.docbook:632
+#. Tag: literal
+#: basic_mapping.xml:632
+#, no-c-format
 msgid "assigned"
-msgstr "Los generadores <literal>hilo</literal> y <literal>seqhilo</literal> proveen dos implementaciones alternativas del algoritmo alto/bajo, un enfoque favorito en generaci&#x00f3;n de identificadores. La primera implementaci&#x00f3;n requiere de una tabla \"especial\" de base de datos para tener el siguiente valor \"alto\" disponible. La segunda usa una secuencia del estilo de Oracle (donde se soporte)."
+msgstr "assigned"
 
-#: index.docbook:634
-msgid "lets the application to assign an identifier to the object before <literal>save()</literal> is called. This is the default strategy if no <literal>&lt;generator&gt;</literal> element is specified."
+#. Tag: para
+#: basic_mapping.xml:634
+#, no-c-format
+msgid ""
+"lets the application to assign an identifier to the object before "
+"<literal>save()</literal> is called. This is the default strategy if no "
+"<literal>&lt;generator&gt;</literal> element is specified."
 msgstr ""
-      "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
-      "        <generator class=\"hilo\">\n"
-      "                <param name=\"table\">hi_value</param>\n"
-      "                <param name=\"column\">next_value</param>\n"
-      "                <param name=\"max_lo\">100</param>\n"
-      "        </generator>\n"
-      "</id>]]>"
+"deja a la aplicación asignar un identificador al objeto antes de que se "
+"llame a <literal>save()</literal>. Esta es la estrategia por defecto si no "
+"se especifica un elemento <literal>&lt;generator&gt;</literal>."
 
-#: index.docbook:642
+#. Tag: literal
+#: basic_mapping.xml:642
+#, no-c-format
 msgid "select"
+msgstr "select"
+
+#. Tag: para
+#: basic_mapping.xml:644
+#, no-c-format
+msgid ""
+"retrieves a primary key assigned by a database trigger by selecting the row "
+"by some unique key and retrieving the primary key value."
 msgstr ""
-      "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
-      "        <generator class=\"seqhilo\">\n"
-      "                <param name=\"sequence\">hi_value</param>\n"
-      "                <param name=\"max_lo\">100</param>\n"
-      "        </generator>\n"
-      "</id>]]>"
+"recupera una clave primaria asignada por un disparador de base de datos "
+"seleccionando la fila por alguna clave única y recuperando el valor de la "
+"clave primaria."
 
-#: index.docbook:644
-msgid "retrieves a primary key assigned by a database trigger by selecting the row by some unique key and retrieving the primary key value."
-msgstr "Desafortunadamente, no puedes usar <literal>hilo</literal> cuando le proveas tu propia <literal>Connection</literal> a Hibernate. Cuando Hibernate est&#x00e1; usando un datasource del servidor de aplicaciones para obtener conexiones alistadas con JTA, debes configurar correctamente el <literal>hibernate.transaction.manager_lookup_class</literal>."
-
-#: index.docbook:651
+#. Tag: literal
+#: basic_mapping.xml:651
+#, no-c-format
 msgid "foreign"
-msgstr "Algoritmo UUID"
+msgstr "foreign"
 
-#: index.docbook:653
-msgid "uses the identifier of another associated object. Usually used in conjunction with a <literal>&lt;one-to-one&gt;</literal> primary key association."
-msgstr "El UUID contiene: la direcci&#x00f3;n IP, el instante de arranque de la JVM (con una precisi&#x00f3;n de un cuarto de segundo), el tiempo de sistema y un valor de contador (&#x00fa;nico en la JVM). No es posible obtener una direcci&#x00f3;n MAC o una direcci&#x00f3;n de memoria desde c&#x00f3;digo Java, as&#x00ed; que esto es lo mejor que podemos hacer sin usar JNI."
+#. Tag: para
+#: basic_mapping.xml:653
+#, no-c-format
+msgid ""
+"uses the identifier of another associated object. Usually used in "
+"conjunction with a <literal>&lt;one-to-one&gt;</literal> primary key "
+"association."
+msgstr ""
+"usa el identificador de otro objeto asociado. Generalmente usado en "
+"conjuncón a una asociacón de clave primaria <literal>&lt;uno-a-uno&gt;</"
+"literal>"
 
-#: index.docbook:660
+#. Tag: literal
+#: basic_mapping.xml:660
+#, no-c-format
 msgid "sequence-identity"
-msgstr "Columnas de identidad y secuencias"
+msgstr "UNTRANSLATED! sequence-identity"
 
-#: index.docbook:662
-msgid "a specialized sequence generation strategy which utilizes a database sequence for the actual value generation, but combines this with JDBC3 getGeneratedKeys to actually return the generated identifier value as part of the insert statement execution. This strategy is only known to be supported on Oracle 10g drivers targetted for JDK 1.4. Note comments on these insert statements are disabled due to a bug in the Oracle drivers."
-msgstr "Para las bases de datos que soportan columnas de identidad (DB2, MySQL, Sybase, MS SQL), puedes usar generaci&#x00f3;n de claves <literal>identity</literal>. Para las bases de datos que soportan secuencias (DB2, Oracle, PostgreSQL, Interbase, McKoi, SAP DB) puedes usar la generaci&#x00f3;n de claves del estilo <literal>sequence</literal>. Ambas estrategias requieren dos consultas SQL para insertar un nuevo objeto."
+#. Tag: para
+#: basic_mapping.xml:662
+#, no-c-format
+msgid ""
+"a specialized sequence generation strategy which utilizes a database "
+"sequence for the actual value generation, but combines this with JDBC3 "
+"getGeneratedKeys to actually return the generated identifier value as part "
+"of the insert statement execution. This strategy is only known to be "
+"supported on Oracle 10g drivers targetted for JDK 1.4. Note comments on "
+"these insert statements are disabled due to a bug in the Oracle drivers."
+msgstr ""
+"a specialized sequence generation strategy which utilizes a database "
+"sequence for the actual value generation, but combines this with JDBC3 "
+"getGeneratedKeys to actually return the generated identifier value as part "
+"of the insert statement execution. This strategy is only known to be "
+"supported on Oracle 10g drivers targetted for JDK 1.4. Note comments on "
+"these insert statements are disabled due to a bug in the Oracle drivers."
 
-#: index.docbook:679
+#. Tag: title
+#: basic_mapping.xml:679
+#, no-c-format
 msgid "Hi/lo algorithm"
+msgstr "Algoritmo alto/bajo"
+
+#. Tag: para
+#: basic_mapping.xml:680
+#, no-c-format
+msgid ""
+"The <literal>hilo</literal> and <literal>seqhilo</literal> generators "
+"provide two alternate implementations of the hi/lo algorithm, a favorite "
+"approach to identifier generation. The first implementation requires a "
+"\"special\" database table to hold the next available \"hi\" value. The "
+"second uses an Oracle-style sequence (where supported)."
 msgstr ""
-      "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\">\n"
-      "        <generator class=\"sequence\">\n"
-      "                <param name=\"sequence\">person_id_sequence</param>\n"
-      "        </generator>\n"
-      "</id>]]>"
+"Los generadores <literal>hilo</literal> y <literal>seqhilo</literal> proveen "
+"dos implementaciones alternativas del algoritmo alto/bajo, un enfoque "
+"favorito en generación de identificadores. La primera implementación "
+"requiere de una tabla \"especial\" de base de datos para tener el siguiente "
+"valor \"alto\" disponible. La segunda usa una secuencia del estilo de Oracle "
+"(donde se soporte)."
 
-#: index.docbook:680
-msgid "The <literal>hilo</literal> and <literal>seqhilo</literal> generators provide two alternate implementations of the hi/lo algorithm, a favorite approach to identifier generation. The first implementation requires a \"special\" database table to hold the next available \"hi\" value. The second uses an Oracle-style sequence (where supported)."
+#. Tag: programlisting
+#: basic_mapping.xml:687
+#, no-c-format
+msgid ""
+"<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
+"        <generator class=\"hilo\">\n"
+"                <param name=\"table\">hi_value</param>\n"
+"                <param name=\"column\">next_value</param>\n"
+"                <param name=\"max_lo\">100</param>\n"
+"        </generator>\n"
+"</id>]]>"
 msgstr ""
-      "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\" unsaved-value=\"0\">\n"
-      "        <generator class=\"identity\"/>\n"
-      "</id>]]>"
 
-#: index.docbook:687
+#. Tag: programlisting
+#: basic_mapping.xml:689
+#, no-c-format
 msgid ""
-      "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
-      "        <generator class=\"hilo\">\n"
-      "                <param name=\"table\">hi_value</param>\n"
-      "                <param name=\"column\">next_value</param>\n"
-      "                <param name=\"max_lo\">100</param>\n"
-      "        </generator>\n"
-      "</id>]]>"
-msgstr "Para desarrollos multiplataforma, la estrategia <literal>native</literal> eiligir&#x00e1; de entre las estrategias <literal>identity</literal>, <literal>sequence</literal> y <literal>hilo</literal>, dependiendo de las capacidades de la base de datos subyacentes."
+"<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
+"        <generator class=\"seqhilo\">\n"
+"                <param name=\"sequence\">hi_value</param>\n"
+"                <param name=\"max_lo\">100</param>\n"
+"        </generator>\n"
+"</id>]]>"
+msgstr ""
 
-#: index.docbook:689
+#. Tag: para
+#: basic_mapping.xml:691
+#, no-c-format
 msgid ""
-      "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
-      "        <generator class=\"seqhilo\">\n"
-      "                <param name=\"sequence\">hi_value</param>\n"
-      "                <param name=\"max_lo\">100</param>\n"
-      "        </generator>\n"
-      "</id>]]>"
-msgstr "Identificadores asignados"
+"Unfortunately, you can't use <literal>hilo</literal> when supplying your own "
+"<literal>Connection</literal> to Hibernate. When Hibernate is using an "
+"application server datasource to obtain connections enlisted with JTA, you "
+"must properly configure the <literal>hibernate.transaction."
+"manager_lookup_class</literal>."
+msgstr ""
+"Desafortunadamente, no puedes usar <literal>hilo</literal> cuando le proveas "
+"tu propia <literal>Connection</literal> a Hibernate. Cuando Hibernate está "
+"usando un datasource del servidor de aplicaciones para obtener conexiones "
+"alistadas con JTA, debes configurar correctamente el <literal>hibernate."
+"transaction.manager_lookup_class</literal>."
 
-#: index.docbook:691
-msgid "Unfortunately, you can't use <literal>hilo</literal> when supplying your own <literal>Connection</literal> to Hibernate. When Hibernate is using an application server datasource to obtain connections enlisted with JTA, you must properly configure the <literal>hibernate.transaction.manager_lookup_class</literal>."
-msgstr "Si quieres que la aplicaci&#x00f3;n asigne los identificadores (en contraposici&#x00f3;n a que los genere Hibernate), puedes usar el generador <literal>assigned</literal>. Este generador especial usar&#x00e1; el valor identificador ya asignado a la propiedad identificadora del objeto. Este generador se usa cuandola clave primaria es una clave natural en vez de una clave sustituta. Este es el comportamiento por defecto si no especificas un elemento <literal>&lt;generator&gt;</literal>."
-
-#: index.docbook:700
+#. Tag: title
+#: basic_mapping.xml:700
+#, no-c-format
 msgid "UUID algorithm"
-msgstr "Elegir el generador <literal>assigned</literal> hace que Hibernate use <literal>unsaved-value=\"undefined\"</literal>, forzando a Hibernate a ir a la base de datos para determinar si una instancia es transitoria o separada, a menos que haya una propiedad de versi&#x00f3;n o timestamp, o que tu definas <literal>Interceptor.isUnsaved()</literal>."
+msgstr "Algoritmo UUID"
 
-#: index.docbook:701
-msgid "The UUID contains: IP address, startup time of the JVM (accurate to a quarter second), system time and a counter value (unique within the JVM). It's not possible to obtain a MAC address or memory address from Java code, so this is the best we can do without using JNI."
-msgstr "Claves primarias asignadas por disparadores"
+#. Tag: para
+#: basic_mapping.xml:701
+#, no-c-format
+msgid ""
+"The UUID contains: IP address, startup time of the JVM (accurate to a "
+"quarter second), system time and a counter value (unique within the JVM). "
+"It's not possible to obtain a MAC address or memory address from Java code, "
+"so this is the best we can do without using JNI."
+msgstr ""
+"El UUID contiene: la dirección IP, el instante de arranque de la JVM (con "
+"una precisión de un cuarto de segundo), el tiempo de sistema y un valor de "
+"contador (único en la JVM). No es posible obtener una dirección MAC o una "
+"dirección de memoria desde código Java, así que esto es lo mejor que podemos "
+"hacer sin usar JNI."
 
-#: index.docbook:710
+#. Tag: title
+#: basic_mapping.xml:710
+#, no-c-format
 msgid "Identity columns and sequences"
-msgstr "Para esquemas heredados solamente (Hibernate no genera DDL con disparadores)."
+msgstr "Columnas de identidad y secuencias"
 
-#: index.docbook:711
-msgid "For databases which support identity columns (DB2, MySQL, Sybase, MS SQL), you may use <literal>identity</literal> key generation. For databases that support sequences (DB2, Oracle, PostgreSQL, Interbase, McKoi, SAP DB) you may use <literal>sequence</literal> style key generation. Both these strategies require two SQL queries to insert a new object."
+#. Tag: para
+#: basic_mapping.xml:711
+#, no-c-format
+msgid ""
+"For databases which support identity columns (DB2, MySQL, Sybase, MS SQL), "
+"you may use <literal>identity</literal> key generation. For databases that "
+"support sequences (DB2, Oracle, PostgreSQL, Interbase, McKoi, SAP DB) you "
+"may use <literal>sequence</literal> style key generation. Both these "
+"strategies require two SQL queries to insert a new object."
 msgstr ""
-      "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\">\n"
-      "        <generator class=\"select\">\n"
-      "                <param name=\"key\">socialSecurityNumber</param>\n"
-      "        </generator>\n"
-      "</id>]]>"
+"Para las bases de datos que soportan columnas de identidad (DB2, MySQL, "
+"Sybase, MS SQL), puedes usar generación de claves <literal>identity</"
+"literal>. Para las bases de datos que soportan secuencias (DB2, Oracle, "
+"PostgreSQL, Interbase, McKoi, SAP DB) puedes usar la generación de claves "
+"del estilo <literal>sequence</literal>. Ambas estrategias requieren dos "
+"consultas SQL para insertar un nuevo objeto."
 
-#: index.docbook:719
+#. Tag: programlisting
+#: basic_mapping.xml:719
+#, no-c-format
 msgid ""
-      "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\">\n"
-      "        <generator class=\"sequence\">\n"
-      "                <param name=\"sequence\">person_id_sequence</param>\n"
-      "        </generator>\n"
-      "</id>]]>"
-msgstr "En el ejemplo de arriba, hay una propiedad &#x00e1;nica llamada <literal>socialSecurityNumber</literal> definida por la clase, como una clave natural, y una clave sustituta llamada <literal>person_id</literal> cuyo valor es generado por un disparador."
+"<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\">\n"
+"        <generator class=\"sequence\">\n"
+"                <param name=\"sequence\">person_id_sequence</param>\n"
+"        </generator>\n"
+"</id>]]>"
+msgstr ""
 
-#: index.docbook:721
+#. Tag: programlisting
+#: basic_mapping.xml:721
+#, no-c-format
 msgid ""
-      "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\" unsaved-value=\"0\">\n"
-      "        <generator class=\"identity\"/>\n"
-      "</id>]]>"
-msgstr "composite-id"
+"<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\" unsaved-value=\"0"
+"\">\n"
+"        <generator class=\"identity\"/>\n"
+"</id>]]>"
+msgstr ""
 
-#: index.docbook:723
-msgid "For cross-platform development, the <literal>native</literal> strategy will choose from the <literal>identity</literal>, <literal>sequence</literal> and <literal>hilo</literal> strategies, dependant upon the capabilities of the underlying database."
+#. Tag: para
+#: basic_mapping.xml:723
+#, no-c-format
+msgid ""
+"For cross-platform development, the <literal>native</literal> strategy will "
+"choose from the <literal>identity</literal>, <literal>sequence</literal> and "
+"<literal>hilo</literal> strategies, dependant upon the capabilities of the "
+"underlying database."
 msgstr ""
-      "<![CDATA[<composite-id\n"
-      "        name=\"propertyName\"\n"
-      "        class=\"ClassName\"\n"
-      "        unsaved-value=\"undefined|any|none\"\n"
-      "        access=\"field|property|ClassName\"\n"
-      "        node=\"element-name|.\">\n"
-      "\n"
-      "        <key-property name=\"propertyName\" type=\"typename\" column=\"column_name\"/>\n"
-      "        <key-many-to-one name=\"propertyName class=\"ClassName\" column=\"column_name\"/>\n"
-      "        ......\n"
-      "</composite-id>]]>"
+"Para desarrollos multiplataforma, la estrategia <literal>native</literal> "
+"eiligirá de entre las estrategias <literal>identity</literal>, "
+"<literal>sequence</literal> y <literal>hilo</literal>, dependiendo de las "
+"capacidades de la base de datos subyacentes."
 
-#: index.docbook:732
+#. Tag: title
+#: basic_mapping.xml:732
+#, no-c-format
 msgid "Assigned identifiers"
-msgstr "Para una tabla con clave compuesta, puedes mapear m&#x00fa;ltiples propiedades de la clase como propiedades identificadoras. El elemento <literal>&lt;composite-id&gt;</literal> acepta los mapeos de propiedad <literal>&lt;key-property&gt;</literal> y los mapeos <literal>&lt;key-many-to-one&gt;</literal> como elementos hijo."
+msgstr "Identificadores asignados"
 
-#: index.docbook:733
-msgid "If you want the application to assign identifiers (as opposed to having Hibernate generate them), you may use the <literal>assigned</literal> generator. This special generator will use the identifier value already assigned to the object's identifier property. This generator is used when the primary key is a natural key instead of a surrogate key. This is the default behavior if you do no specify a <literal>&lt;generator&gt;</literal> element."
+#. Tag: para
+#: basic_mapping.xml:733
+#, no-c-format
+msgid ""
+"If you want the application to assign identifiers (as opposed to having "
+"Hibernate generate them), you may use the <literal>assigned</literal> "
+"generator. This special generator will use the identifier value already "
+"assigned to the object's identifier property. This generator is used when "
+"the primary key is a natural key instead of a surrogate key. This is the "
+"default behavior if you do no specify a <literal>&lt;generator&gt;</literal> "
+"element."
 msgstr ""
-      "<![CDATA[<composite-id>\n"
-      "        <key-property name=\"medicareNumber\"/>\n"
-      "        <key-property name=\"dependent\"/>\n"
-      "</composite-id>]]>"
+"Si quieres que la aplicación asigne los identificadores (en contraposición a "
+"que los genere Hibernate), puedes usar el generador <literal>assigned</"
+"literal>. Este generador especial usará el valor identificador ya asignado a "
+"la propiedad identificadora del objeto. Este generador se usa cuandola clave "
+"primaria es una clave natural en vez de una clave sustituta. Este es el "
+"comportamiento por defecto si no especificas un elemento <literal>&lt;"
+"generator&gt;</literal>."
 
-#: index.docbook:742
-msgid "Choosing the <literal>assigned</literal> generator makes Hibernate use <literal>unsaved-value=\"undefined\"</literal>, forcing Hibernate to go to the database to determine if an instance is transient or detached, unless there is a version or timestamp property, or you define <literal>Interceptor.isUnsaved()</literal>."
-msgstr "Tu clase persistente <emphasis>debe</emphasis> sobreescribir <literal>equals()</literal> y <literal>hashCode()</literal> para implementar igualdad de identificador compuesto. Debe tambi&#x00e9;n implementar <literal>Serializable</literal>."
+#. Tag: para
+#: basic_mapping.xml:742
+#, no-c-format
+msgid ""
+"Choosing the <literal>assigned</literal> generator makes Hibernate use "
+"<literal>unsaved-value=\"undefined\"</literal>, forcing Hibernate to go to "
+"the database to determine if an instance is transient or detached, unless "
+"there is a version or timestamp property, or you define <literal>Interceptor."
+"isUnsaved()</literal>."
+msgstr ""
+"Elegir el generador <literal>assigned</literal> hace que Hibernate use "
+"<literal>unsaved-value=\"undefined\"</literal>, forzando a Hibernate a ir a "
+"la base de datos para determinar si una instancia es transitoria o separada, "
+"a menos que haya una propiedad de versión o timestamp, o que tu definas "
+"<literal>Interceptor.isUnsaved()</literal>."
 
-#: index.docbook:752
+#. Tag: title
+#: basic_mapping.xml:752
+#, no-c-format
 msgid "Primary keys assigned by triggers"
-msgstr "Desafortunadamente, este enfoque de identificadores compuestos significa que un objeto persistente es su propio identificador. No existe otra \"asa\" conveniente m&#x00e1;s que el objeto mismo. Debes instanciar una instancia de la clase misma y poblar sus propiedades identificadoras antes que puedas <literal>load()</literal> el estado persistente asociado a una clave compuesta. Describiremos un enfoque mucho m&#x00e1;s conveniente donde el identificador compuesto est&#x00e1; implementado como una clase separada en <xref linkend=\"components-compositeid\"/>. Los atributos descriptos debajo solamente se aplican a este enfoque alternativo:"
+msgstr "Claves primarias asignadas por disparadores"
 
-#: index.docbook:753
-msgid "For legacy schemas only (Hibernate does not generate DDL with triggers)."
-msgstr "<literal>name</literal> (opcional): Una propiedad de tipo componente que tiene el identificador compuesto (ver siguiente secci&#x00f3;n)."
+#. Tag: para
+#: basic_mapping.xml:753
+#, no-c-format
+msgid ""
+"For legacy schemas only (Hibernate does not generate DDL with triggers)."
+msgstr ""
+"Para esquemas heredados solamente (Hibernate no genera DDL con disparadores)."
 
-#: index.docbook:757
+#. Tag: programlisting
+#: basic_mapping.xml:757
+#, no-c-format
 msgid ""
-      "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\">\n"
-      "        <generator class=\"select\">\n"
-      "                <param name=\"key\">socialSecurityNumber</param>\n"
-      "        </generator>\n"
-      "</id>]]>"
-msgstr "<literal>class</literal> (opcional - por defecto al tipo de la propiedad determinado por reflecci&#x00f3;n): La clase del componente usado como identificador compuesto (ver siguiente secci&#x00f3;n)."
+"<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\">\n"
+"        <generator class=\"select\">\n"
+"                <param name=\"key\">socialSecurityNumber</param>\n"
+"        </generator>\n"
+"</id>]]>"
+msgstr ""
 
-#: index.docbook:759
-msgid "In the above example, there is a unique valued property named <literal>socialSecurityNumber</literal> defined by the class, as a natural key, and a surrogate key named <literal>person_id</literal> whose value is generated by a trigger."
-msgstr "<literal>unsaved-value</literal> (opcional - por defecto a <literal>undefined</literal>): Indica que las instancias transitorias deben ser consideradas como reci&#x00e9;n instanciadas, si se establece a <literal>any</literal>, o separadas, si se establece a <literal>none</literal>. Lo mejor Indicates that transient instances should be considered newly instantiated, if set to <literal>any</literal>, or detached, if set to <literal>none</literal>. Lo mejor en todos los casos es dejar el valor por defecto."
+#. Tag: para
+#: basic_mapping.xml:759
+#, no-c-format
+msgid ""
+"In the above example, there is a unique valued property named "
+"<literal>socialSecurityNumber</literal> defined by the class, as a natural "
+"key, and a surrogate key named <literal>person_id</literal> whose value is "
+"generated by a trigger."
+msgstr ""
+"En el ejemplo de arriba, hay una propiedad ánica llamada "
+"<literal>socialSecurityNumber</literal> definida por la clase, como una "
+"clave natural, y una clave sustituta llamada <literal>person_id</literal> "
+"cuyo valor es generado por un disparador."
 
-#: index.docbook:771
+#. Tag: title
+#: basic_mapping.xml:771
+#, no-c-format
 msgid "Enhanced identifier generators"
-msgstr "discriminator"
+msgstr "Enhanced identifier generators"
 
-#: index.docbook:773
-msgid "Starting with release 3.2.3, there are 2 new generators which represent a re-thinking of 2 different aspects of identifier generation. The first aspect is database portability; the second is optimization (not having to query the database for every request for a new identifier value). These two new generators are intended to take the place of some of the named generators described above (starting in 3.3.x); however, they are included in the current releases and can be referenced by FQN."
-msgstr "El elemento <literal>&lt;discriminator&gt;</literal> es requerido para la persistencia polim&#x00f3;rfica usando la estrategia de mapeo de tabla-por-jerarqu&#x00ed;a-de-clases y declara una columna discriminadora de la tabla. La columna discriminidora contiene valores de marca que le dicen a la capa de persistencia qu&#x00e9; subclase instanciar para una fila en particular. Un conjunto restringido de tipos puede ser usado: <literal>string</literal>, <literal>character</literal>, <literal>integer</literal>, <literal>byte</literal>, <literal>short</literal>, <literal>boolean</literal>, <literal>yes_no</literal>, <literal>true_false</literal>."
+#. Tag: para
+#: basic_mapping.xml:773
+#, no-c-format
+msgid ""
+"Starting with release 3.2.3, there are 2 new generators which represent a re-"
+"thinking of 2 different aspects of identifier generation. The first aspect "
+"is database portability; the second is optimization (not having to query the "
+"database for every request for a new identifier value). These two new "
+"generators are intended to take the place of some of the named generators "
+"described above (starting in 3.3.x); however, they are included in the "
+"current releases and can be referenced by FQN."
+msgstr ""
+"Starting with release 3.2.3, there are 2 new generators which represent a re-"
+"thinking of 2 different aspects of identifier generation. The first aspect "
+"is database portability; the second is optimization (not having to query the "
+"database for every request for a new identifier value). These two new "
+"generators are intended to take the place of some of the named generators "
+"described above (starting in 3.3.x); however, they are included in the "
+"current releases and can be referenced by FQN."
 
-#: index.docbook:781
-msgid "The first of these new generators is <literal>org.hibernate.id.enhanced.SequenceStyleGenerator</literal> which is intended firstly as a replacement for the <literal>sequence</literal> generator and secondly as a better portability generator than <literal>native</literal> (because <literal>native</literal> (generally) chooses between <literal>identity</literal> and <literal>sequence</literal> which have largely different semantics which can cause subtle isssues in applications eyeing portability). <literal>org.hibernate.id.enhanced.SequenceStyleGenerator</literal> however achieves portability in a different manner. It chooses between using a table or a sequence in the database to store its incrementing values depending on the capabilities of the dialect being used. The difference between this and <literal>native</literal> is that table-based and sequence-based storage have the same exact semantic (in fact sequences are exactly what Hibernate tries to emmulate with its!
  table-based generators). This generator has a number of configuration parameters:"
+#. Tag: para
+#: basic_mapping.xml:781
+#, fuzzy, no-c-format
+msgid ""
+"The first of these new generators is <literal>org.hibernate.id.enhanced."
+"SequenceStyleGenerator</literal> which is intended firstly as a replacement "
+"for the <literal>sequence</literal> generator and secondly as a better "
+"portability generator than <literal>native</literal> (because "
+"<literal>native</literal> (generally) chooses between <literal>identity</"
+"literal> and <literal>sequence</literal> which have largely different "
+"semantics which can cause subtle isssues in applications eyeing "
+"portability). <literal>org.hibernate.id.enhanced.SequenceStyleGenerator</"
+"literal> however achieves portability in a different manner. It chooses "
+"between using a table or a sequence in the database to store its "
+"incrementing values depending on the capabilities of the dialect being used. "
+"The difference between this and <literal>native</literal> is that table-"
+"based and sequence-based storage have the same exact semantic (in fact "
+"sequences are exactly what Hibernate tries to emmulate with its table-based "
+"generators). This generator has a number of configuration parameters:"
 msgstr ""
-      "<![CDATA[<discriminator\n"
-      "        column=\"discriminator_column\"\n"
-      "        type=\"discriminator_type\"\n"
-      "        force=\"true|false\"\n"
-      "        insert=\"true|false\"\n"
-      "        formula=\"arbitrary sql expression\"\n"
-      "/>]]>"
+"The first of these new generators is <literal>org.hibernate.id.enhanced."
+"SequenceStyleGenerator</literal> which is intended firstly as a replacement "
+"for the <literal>sequence</literal> generator and secondly as a better "
+"portability generator than <literal>native</literal> (because "
+"<literal>native</literal> (generally) chooses between <literal>identity</"
+"literal> and <literal>sequence</literal> which have largely different "
+"semantics which can cause subtle isssues in applications eyeing "
+"portability). <literal>org.hibernate.id.enhanced.SequenceStyleGenerator</"
+"literal> however achieves portability in a different manner. It chooses "
+"between using a table or a sequence in the database to store its "
+"incrementing values depending on the capabilities of the dialect being used. "
+"The difference between this and <literal>native</literal> is that table-"
+"based and sequence-based storage have the same exact semantic (in fact "
+"sequences are exactly what Hibernate tries to emmulate with its table-based "
+"generators). This generator has a number of configuration parameters: "
+"<placeholder-1/>"
 
-#: index.docbook:795
-msgid "<literal>sequence_name</literal> (optional, defaults to <literal>hibernate_sequence</literal>): The name of the sequence (or table) to be used."
-msgstr "<literal>column</literal> (opcional - por defecto a <literal>class</literal>) el nombre de la columna discriminadora."
+#. Tag: para
+#: basic_mapping.xml:795
+#, no-c-format
+msgid ""
+"<literal>sequence_name</literal> (optional, defaults to "
+"<literal>hibernate_sequence</literal>): The name of the sequence (or table) "
+"to be used."
+msgstr ""
+"<literal>sequence_name</literal> (optional, defaults to "
+"<literal>hibernate_sequence</literal>): The name of the sequence (or table) "
+"to be used."
 
-#: index.docbook:801
-msgid "<literal>initial_value</literal> (optional, defaults to <literal>1</literal>): The initial value to be retrieved from the sequence/table. In sequence creation terms, this is analogous to the clause typical named \"STARTS WITH\"."
-msgstr "<literal>type</literal> (opcional - por defecto a <literal>string</literal>) un nombre que indique el tipo Hibernate"
+#. Tag: para
+#: basic_mapping.xml:801
+#, no-c-format
+msgid ""
+"<literal>initial_value</literal> (optional, defaults to <literal>1</"
+"literal>): The initial value to be retrieved from the sequence/table. In "
+"sequence creation terms, this is analogous to the clause typical named "
+"\"STARTS WITH\"."
+msgstr ""
+"<literal>initial_value</literal> (optional, defaults to <literal>1</"
+"literal>): The initial value to be retrieved from the sequence/table. In "
+"sequence creation terms, this is analogous to the clause typical named "
+"\"STARTS WITH\"."
 
-#: index.docbook:808
-msgid "<literal>increment_size</literal> (optional, defaults to <literal>1</literal>): The value by which subsequent calls to the sequence/table should differ. In sequence creation terms, this is analogous to the clause typical named \"INCREMENT BY\"."
-msgstr "<literal>force</literal> (optconal - por defecto a <literal>false</literal>) \"fuerza\" a Hibernate a especificar valores discriminadores permitidos incluso cuando se recuperan todas las instancias de la clase ra&#x00ed;z."
+#. Tag: para
+#: basic_mapping.xml:808
+#, no-c-format
+msgid ""
+"<literal>increment_size</literal> (optional, defaults to <literal>1</"
+"literal>): The value by which subsequent calls to the sequence/table should "
+"differ. In sequence creation terms, this is analogous to the clause typical "
+"named \"INCREMENT BY\"."
+msgstr ""
+"<literal>increment_size</literal> (optional, defaults to <literal>1</"
+"literal>): The value by which subsequent calls to the sequence/table should "
+"differ. In sequence creation terms, this is analogous to the clause typical "
+"named \"INCREMENT BY\"."
 
-#: index.docbook:815
-msgid "<literal>force_table_use</literal> (optional, defaults to <literal>false</literal>): Should we force the use of a table as the backing structure even though the dialect might support sequence?"
-msgstr "<literal>insert</literal> (opcional - por defecto a <literal>true</literal>) establezca este a <literal>false</literal> si tu columna discriminadora es tambi&#x00e9;n parte de un identificador mapeado compuesto. (Le dice a Hibernate que no incluya la columna en los SQL <literal>INSERT</literal>s.)"
+#. Tag: para
+#: basic_mapping.xml:815
+#, no-c-format
+msgid ""
+"<literal>force_table_use</literal> (optional, defaults to <literal>false</"
+"literal>): Should we force the use of a table as the backing structure even "
+"though the dialect might support sequence?"
+msgstr ""
+"<literal>force_table_use</literal> (optional, defaults to <literal>false</"
+"literal>): Should we force the use of a table as the backing structure even "
+"though the dialect might support sequence?"
 
-#: index.docbook:822
-msgid "<literal>value_column</literal> (optional, defaults to <literal>next_val</literal>): Only relevant for table structures! The name of the column on the table which is used to hold the value."
-msgstr "<literal>formula</literal> (opcional) una expresi&#x00f3;n SQL arbitraria que es ejecutada cuando un tipo tenga que ser evaluado. Permite dicriminaci&#x00f3;n basada en el contenido."
+#. Tag: para
+#: basic_mapping.xml:822
+#, no-c-format
+msgid ""
+"<literal>value_column</literal> (optional, defaults to <literal>next_val</"
+"literal>): Only relevant for table structures! The name of the column on the "
+"table which is used to hold the value."
+msgstr ""
+"<literal>value_column</literal> (optional, defaults to <literal>next_val</"
+"literal>): Only relevant for table structures! The name of the column on the "
+"table which is used to hold the value."
 
-#: index.docbook:829
-msgid "<literal>optimizer</literal> (optional, defaults to <literal>none</literal>): See"
-msgstr "Los valores reales de la columna discriminadora est&#x00e1;n especificados por el atributo <literal>discriminator-value</literal> de los elementos <literal>&lt;class&gt;</literal> y <literal>&lt;subclass&gt;</literal>."
+#. Tag: para
+#: basic_mapping.xml:829
+#, fuzzy, no-c-format
+msgid ""
+"<literal>optimizer</literal> (optional, defaults to <literal>none</"
+"literal>): See"
+msgstr ""
+"<literal>cascade</literal> (opcional- por defecto a <literal>none</"
+"literal>): el estilo de cascada."
 
-#: index.docbook:836
-msgid "The second of these new generators is <literal>org.hibernate.id.enhanced.TableGenerator</literal> which is intended firstly as a replacement for the <literal>table</literal> generator (although it actually functions much more like <literal>org.hibernate.id.MultipleHiLoPerTableGenerator</literal>) and secondly as a re-implementation of <literal>org.hibernate.id.MultipleHiLoPerTableGenerator</literal> utilizing the notion of pluggable optimiziers. Essentially this generator defines a table capable of holding a number of different increment values simultaneously by using multiple distinctly keyed rows. This generator has a number of configuration parameters:"
-msgstr "El atributo <literal>force</literal> es (s&#x00f3;lo) &#x00fa;til si la tabla contiene filas con valores discriminadores \"extra\" que no est&#x00e1;n mapeados a la clase persistente. Generalmente este no es el caso."
+#. Tag: para
+#: basic_mapping.xml:836
+#, fuzzy, no-c-format
+msgid ""
+"The second of these new generators is <literal>org.hibernate.id.enhanced."
+"TableGenerator</literal> which is intended firstly as a replacement for the "
+"<literal>table</literal> generator (although it actually functions much more "
+"like <literal>org.hibernate.id.MultipleHiLoPerTableGenerator</literal>) and "
+"secondly as a re-implementation of <literal>org.hibernate.id."
+"MultipleHiLoPerTableGenerator</literal> utilizing the notion of pluggable "
+"optimiziers. Essentially this generator defines a table capable of holding a "
+"number of different increment values simultaneously by using multiple "
+"distinctly keyed rows. This generator has a number of configuration "
+"parameters:"
+msgstr ""
+"The second of these new generators is <literal>org.hibernate.id.enhanced."
+"TableGenerator</literal> which is intended firstly as a replacement for the "
+"<literal>table</literal> generator (although it actually functions much more "
+"like <literal>org.hibernate.id.MultipleHiLoPerTableGenerator</literal>) and "
+"secondly as a re-implementation of <literal>org.hibernate.id."
+"MultipleHiLoPerTableGenerator</literal> utilizing the notion of pluggable "
+"optimiziers. Essentially this generator defines a table capable of holding a "
+"number of different increment values simultaneously by using multiple "
+"distinctly keyed rows. This generator has a number of configuration "
+"parameters: <placeholder-1/>"
 
-#: index.docbook:846
-msgid "<literal>table_name</literal> (optional, defaults to <literal>hibernate_sequences</literal>): The name of the table to be used."
-msgstr "Usando el atributo <literal>formula</literal> puedes declarar una expresi&#x00f3;n SQL arbitraria que ser&#x00e1; usada para evaluar el tipo de una fila:"
+#. Tag: para
+#: basic_mapping.xml:846
+#, no-c-format
+msgid ""
+"<literal>table_name</literal> (optional, defaults to "
+"<literal>hibernate_sequences</literal>): The name of the table to be used."
+msgstr ""
+"<literal>table_name</literal> (optional, defaults to "
+"<literal>hibernate_sequences</literal>): The name of the table to be used."
 
-#: index.docbook:852
-msgid "<literal>value_column_name</literal> (optional, defaults to <literal>next_val</literal>): The name of the column on the table which is used to hold the value."
+#. Tag: para
+#: basic_mapping.xml:852
+#, no-c-format
+msgid ""
+"<literal>value_column_name</literal> (optional, defaults to "
+"<literal>next_val</literal>): The name of the column on the table which is "
+"used to hold the value."
 msgstr ""
-      "<![CDATA[<discriminator\n"
-      "    formula=\"case when CLASS_TYPE in ('a', 'b', 'c') then 0 else 1 end\"\n"
-      "    type=\"integer\"/>]]>"
+"<literal>value_column_name</literal> (optional, defaults to "
+"<literal>next_val</literal>): The name of the column on the table which is "
+"used to hold the value."
 
-#: index.docbook:858
-msgid "<literal>segment_column_name</literal> (optional, defaults to <literal>sequence_name</literal>): The name of the column on the table which is used to hold the \"segement key\". This is the value which distinctly identifies which increment value to use."
-msgstr "version (opcional)"
+#. Tag: para
+#: basic_mapping.xml:858
+#, no-c-format
+msgid ""
+"<literal>segment_column_name</literal> (optional, defaults to "
+"<literal>sequence_name</literal>): The name of the column on the table which "
+"is used to hold the \"segement key\". This is the value which distinctly "
+"identifies which increment value to use."
+msgstr ""
+"<literal>segment_column_name</literal> (optional, defaults to "
+"<literal>sequence_name</literal>): The name of the column on the table which "
+"is used to hold the \"segement key\". This is the value which distinctly "
+"identifies which increment value to use."
 
-#: index.docbook:865
-msgid "<literal>segment_value</literal> (optional, defaults to <literal>default</literal>): The \"segment key\" value for the segment from which we want to pull increment values for this generator."
-msgstr "El elemento <literal>&lt;version&gt;</literal> es opcional e indica que la tabla contiene datos versionados. Esto es particularmente &#x00fa;til si planeas usar <emphasis>transacciones largas</emphasis> (ver debajo)."
+#. Tag: para
+#: basic_mapping.xml:865
+#, no-c-format
+msgid ""
+"<literal>segment_value</literal> (optional, defaults to <literal>default</"
+"literal>): The \"segment key\" value for the segment from which we want to "
+"pull increment values for this generator."
+msgstr ""
+"<literal>segment_value</literal> (optional, defaults to <literal>default</"
+"literal>): The \"segment key\" value for the segment from which we want to "
+"pull increment values for this generator."
 
-#: index.docbook:872
-msgid "<literal>segment_value_length</literal> (optional, defaults to <literal>255</literal>): Used for schema generation; the column size to create this segment key column."
+#. Tag: para
+#: basic_mapping.xml:872
+#, no-c-format
+msgid ""
+"<literal>segment_value_length</literal> (optional, defaults to <literal>255</"
+"literal>): Used for schema generation; the column size to create this "
+"segment key column."
 msgstr ""
-      "<![CDATA[<version\n"
-      "        column=\"version_column\"\n"
-      "        name=\"propertyName\"\n"
-      "        type=\"typename\"\n"
-      "        access=\"field|property|ClassName\"\n"
-      "        unsaved-value=\"null|negative|undefined\"\n"
-      "        node=\"element-name|@attribute-name|element/@attribute|.\"\n"
-      "/>]]>"
+"<literal>segment_value_length</literal> (optional, defaults to <literal>255</"
+"literal>): Used for schema generation; the column size to create this "
+"segment key column."
 
-#: index.docbook:878
-msgid "<literal>initial_value</literal> (optional, defaults to <literal>1</literal>): The initial value to be retrieved from the table."
-msgstr "<literal>column</literal> (opcional - por defecto al nombre de la propiedad): El nombre de la columna que tiene el n&#x00fa;mero de versi&#x00f3;n."
+#. Tag: para
+#: basic_mapping.xml:878
+#, no-c-format
+msgid ""
+"<literal>initial_value</literal> (optional, defaults to <literal>1</"
+"literal>): The initial value to be retrieved from the table."
+msgstr ""
+"<literal>initial_value</literal> (optional, defaults to <literal>1</"
+"literal>): The initial value to be retrieved from the table."
 
-#: index.docbook:884
-msgid "<literal>increment_size</literal> (optional, defaults to <literal>1</literal>): The value by which subsequent calls to the table should differ."
-msgstr "<literal>name</literal>: El nombre de una propiedad de la clase persistente."
+#. Tag: para
+#: basic_mapping.xml:884
+#, no-c-format
+msgid ""
+"<literal>increment_size</literal> (optional, defaults to <literal>1</"
+"literal>): The value by which subsequent calls to the table should differ."
+msgstr ""
+"<literal>increment_size</literal> (optional, defaults to <literal>1</"
+"literal>): The value by which subsequent calls to the table should differ."
 
-#: index.docbook:890
-msgid "<literal>optimizer</literal> (optional, defaults to <literal></literal>): See"
-msgstr "<literal>type</literal> (opcional - por defecto a <literal>integer</literal>): El tipo del n&#x00fa;.mero de vesi&#x00f3;n."
+#. Tag: para
+#: basic_mapping.xml:890
+#, fuzzy, no-c-format
+msgid ""
+"<literal>optimizer</literal> (optional, defaults to <literal></literal>): See"
+msgstr ""
+"<literal>cascade</literal> (opcional- por defecto a <literal>none</"
+"literal>): el estilo de cascada."
 
-#: index.docbook:900
+#. Tag: title
+#: basic_mapping.xml:900
+#, no-c-format
 msgid "Identifier generator optimization"
-msgstr "<literal>access</literal> (opcional - por defecto a <literal>property</literal>): La estrategia que Hibernate debe usar para acceder al valor de la propiedad."
+msgstr "Identifier generator optimization"
 
-#: index.docbook:901
-msgid "For identifier generators which store values in the database, it is inefficient for them to hit the database on each and every call to generate a new identifier value. Instead, you'd ideally want to group a bunch of them in memory and only hit the database when you have exhausted your in-memory value group. This is the role of the pluggable optimizers. Currently only the two enhanced generators (<xref linkend=\"mapping-declaration-id-enhanced\"/> support this notion."
-msgstr "<literal>unsaved-value</literal> (opcional - por defecto a <literal>undefined</literal>): Un valor de la propiedad de versi&#x00f3;n que indica que una instancia est&#x00e1; reci&#x00e9;n instanciada (sin guardar), distingui&#x00e9;ndola de instancias separadas que fueran guardadas o cargadas en una sesi&#x00f3;n previa. (<literal>undefined</literal> especifica que debe usarse el valor de la propiedad identificadora.)"
+#. Tag: para
+#: basic_mapping.xml:901
+#, fuzzy, no-c-format
+msgid ""
+"For identifier generators which store values in the database, it is "
+"inefficient for them to hit the database on each and every call to generate "
+"a new identifier value. Instead, you'd ideally want to group a bunch of them "
+"in memory and only hit the database when you have exhausted your in-memory "
+"value group. This is the role of the pluggable optimizers. Currently only "
+"the two enhanced generators (<xref linkend=\"mapping-declaration-id-enhanced"
+"\"/> support this notion."
+msgstr ""
+"For identifier generators which store values in the database, it is "
+"inefficient for them to hit the database on each and every call to generate "
+"a new identifier value. Instead, you'd ideally want to group a bunch of them "
+"in memory and only hit the database when you have exhausted your in-memory "
+"value group. This is the role of the pluggable optimizers. Currently only "
+"the two enhanced generators (<xref linkend=\"mapping-declaration-id-enhanced"
+"\"/> support this notion. <placeholder-1/>"
 
-#: index.docbook:909
-msgid "<literal>none</literal> (generally this is the default if no optimizer was specified): This says to not perform any optimizations, and hit the database each and every request."
-msgstr "Los n&#x00fa;meros de versi&#x00f3;n deben ser de tipo <literal>long</literal>, <literal>integer</literal>, <literal>short</literal>, <literal>timestamp</literal> o <literal>calendar</literal> de Hibernate."
+#. Tag: para
+#: basic_mapping.xml:909
+#, no-c-format
+msgid ""
+"<literal>none</literal> (generally this is the default if no optimizer was "
+"specified): This says to not perform any optimizations, and hit the database "
+"each and every request."
+msgstr ""
+"<literal>none</literal> (generally this is the default if no optimizer was "
+"specified): This says to not perform any optimizations, and hit the database "
+"each and every request."
 
-#: index.docbook:915
-msgid "<literal>hilo</literal>: applies a hi/lo algorithm around the database retrieved values. The values from the database for this optimizer are expected to be sequential. The values retrieved from the database structure for this optimizer indicates the \"group number\"; the <literal>increment_size</literal> is multiplied by that value in memory to define a group \"hi value\"."
-msgstr "Una propiedad de versi&#x00f3;n o timestamp nunca debe ser nula para una instancia separada, de modo que Hibernate detectar&#x00e1; cualquier instancia con una versi&#x00f3;n o timestamp nulo como transitoria, sin importar qu&#x00e9; otras estrategias <literal>unsaved-value</literal> se hayan especificado. <emphasis>Declarar una propiedad de vers&#x00f3;n o timestamp nulable es una forma f&#x00e1;cil de evitar cualquier problema con la re-uni&#x00f3;n transitiva en Hibernate, especialmente &#x00fa;til para que usa identificadores asignados o claves compuestas!</emphasis>"
+#. Tag: para
+#: basic_mapping.xml:915
+#, no-c-format
+msgid ""
+"<literal>hilo</literal>: applies a hi/lo algorithm around the database "
+"retrieved values. The values from the database for this optimizer are "
+"expected to be sequential. The values retrieved from the database structure "
+"for this optimizer indicates the \"group number\"; the "
+"<literal>increment_size</literal> is multiplied by that value in memory to "
+"define a group \"hi value\"."
+msgstr ""
+"<literal>hilo</literal>: applies a hi/lo algorithm around the database "
+"retrieved values. The values from the database for this optimizer are "
+"expected to be sequential. The values retrieved from the database structure "
+"for this optimizer indicates the \"group number\"; the "
+"<literal>increment_size</literal> is multiplied by that value in memory to "
+"define a group \"hi value\"."
 
-#: index.docbook:924
-msgid "<literal>pooled</literal>: like was discussed for <literal>hilo</literal>, this optimizers attempts to minimize the number of hits to the database. Here, however, we simply store the starting value for the \"next group\" into the database structure rather than a sequential value in combination with an in-memory grouping algorithm. <literal>increment_size</literal> here refers to the values coming from the database."
-msgstr "timestamp (opcional)"
+#. Tag: para
+#: basic_mapping.xml:924
+#, no-c-format
+msgid ""
+"<literal>pooled</literal>: like was discussed for <literal>hilo</literal>, "
+"this optimizers attempts to minimize the number of hits to the database. "
+"Here, however, we simply store the starting value for the \"next group\" "
+"into the database structure rather than a sequential value in combination "
+"with an in-memory grouping algorithm. <literal>increment_size</literal> here "
+"refers to the values coming from the database."
+msgstr ""
+"<literal>pooled</literal>: like was discussed for <literal>hilo</literal>, "
+"this optimizers attempts to minimize the number of hits to the database. "
+"Here, however, we simply store the starting value for the \"next group\" "
+"into the database structure rather than a sequential value in combination "
+"with an in-memory grouping algorithm. <literal>increment_size</literal> here "
+"refers to the values coming from the database."
 
-#: index.docbook:937
+#. Tag: title
+#: basic_mapping.xml:937
+#, no-c-format
 msgid "composite-id"
-msgstr "El elemento opcional <literal>&lt;timestamp&gt;</literal> indica que la tabla contiene datos con sellos de tiempo. Esto esta concebido como una alternativa al versionado. Los timestamps (sellos de tiempo) son por su naturaleza una implementaci&#x00f3;n menos segura de bloqueo optimista. Sin embrago, a veces la aplicaci&#x00f3;n puede usar los timestamps en otras formas."
+msgstr "composite-id"
 
-#: index.docbook:939
+#. Tag: programlisting
+#: basic_mapping.xml:939
+#, no-c-format
 msgid ""
-      "<![CDATA[<composite-id\n"
-      "        name=\"propertyName\"\n"
-      "        class=\"ClassName\"\n"
-      "        mapped=\"true|false\"\n"
-      "        access=\"field|property|ClassName\">\n"
-      "        node=\"element-name|.\"\n"
-      "\n"
-      "        <key-property name=\"propertyName\" type=\"typename\" column=\"column_name\"/>\n"
-      "        <key-many-to-one name=\"propertyName class=\"ClassName\" column=\"column_name\"/>\n"
-      "        ......\n"
-      "</composite-id>]]>"
+"<![CDATA[<composite-id\n"
+"        name=\"propertyName\"\n"
+"        class=\"ClassName\"\n"
+"        mapped=\"true|false\"\n"
+"        access=\"field|property|ClassName\">\n"
+"        node=\"element-name|.\"\n"
+"\n"
+"        <key-property name=\"propertyName\" type=\"typename\" column="
+"\"column_name\"/>\n"
+"        <key-many-to-one name=\"propertyName class=\"ClassName\" column="
+"\"column_name\"/>\n"
+"        ......\n"
+"</composite-id>]]>"
 msgstr ""
-      "<![CDATA[<timestamp\n"
-      "        column=\"timestamp_column\"\n"
-      "        name=\"propertyName\"\n"
-      "        access=\"field|property|ClassName\"\n"
-      "        unsaved-value=\"null|undefined\"\n"
-      "        node=\"element-name|@attribute-name|element/@attribute|.\"\n"
-      "/>]]>"
 
-#: index.docbook:941
-msgid "For a table with a composite key, you may map multiple properties of the class as identifier properties. The <literal>&lt;composite-id&gt;</literal> element accepts <literal>&lt;key-property&gt;</literal> property mappings and <literal>&lt;key-many-to-one&gt;</literal> mappings as child elements."
-msgstr "<literal>column</literal> (opcional - por defecto al nombre de la propiedad): El nombre de una columna que tiene el timestamp."
+#. Tag: para
+#: basic_mapping.xml:941
+#, no-c-format
+msgid ""
+"For a table with a composite key, you may map multiple properties of the "
+"class as identifier properties. The <literal>&lt;composite-id&gt;</literal> "
+"element accepts <literal>&lt;key-property&gt;</literal> property mappings "
+"and <literal>&lt;key-many-to-one&gt;</literal> mappings as child elements."
+msgstr ""
+"Para una tabla con clave compuesta, puedes mapear múltiples propiedades de "
+"la clase como propiedades identificadoras. El elemento <literal>&lt;"
+"composite-id&gt;</literal> acepta los mapeos de propiedad <literal>&lt;key-"
+"property&gt;</literal> y los mapeos <literal>&lt;key-many-to-one&gt;</"
+"literal> como elementos hijo."
 
-#: index.docbook:948
+#. Tag: programlisting
+#: basic_mapping.xml:948
+#, no-c-format
 msgid ""
-      "<![CDATA[<composite-id>\n"
-      "        <key-property name=\"medicareNumber\"/>\n"
-      "        <key-property name=\"dependent\"/>\n"
-      "</composite-id>]]>"
-msgstr "<literal>name</literal>: El nombre de una propiedad del estilo JavaBeans de tipo Java <literal>Date</literal> o <literal>Timestamp</literal> de la clase persistente."
+"<![CDATA[<composite-id>\n"
+"        <key-property name=\"medicareNumber\"/>\n"
+"        <key-property name=\"dependent\"/>\n"
+"</composite-id>]]>"
+msgstr ""
 
-#: index.docbook:950
-msgid "Your persistent class <emphasis>must</emphasis> override <literal>equals()</literal> and <literal>hashCode()</literal> to implement composite identifier equality. It must also implements <literal>Serializable</literal>."
-msgstr "<literal>access</literal> (opcional - por defecto a <literal>property</literal>): La estrategia que Hibernate debe usar para acceder al valor de la propiedad."
+#. Tag: para
+#: basic_mapping.xml:950
+#, no-c-format
+msgid ""
+"Your persistent class <emphasis>must</emphasis> override <literal>equals()</"
+"literal> and <literal>hashCode()</literal> to implement composite identifier "
+"equality. It must also implements <literal>Serializable</literal>."
+msgstr ""
+"Tu clase persistente <emphasis>debe</emphasis> sobreescribir <literal>equals"
+"()</literal> y <literal>hashCode()</literal> para implementar igualdad de "
+"identificador compuesto. Debe también implementar <literal>Serializable</"
+"literal>."
 
-#: index.docbook:956
-msgid "Unfortunately, this approach to composite identifiers means that a persistent object is its own identifier. There is no convenient \"handle\" other than the object itself. You must instantiate an instance of the persistent class itself and populate its identifier properties before you can <literal>load()</literal> the persistent state associated with a composite key. We call this approach an <emphasis>embedded</emphasis> composite identifier, and discourage it for serious applications."
-msgstr "<literal>unsaved-value</literal> (opcional - por defecto a <literal>null</literal>): Un valor de propiedad de versi&#x00f3;n que indica que una instancia est&#x00e1; reci&#x00e9;n instanciada (sin guardar), distingui&#x00e9;ndola de instancias separadas que hayan sido guardadas o cargadas en una sesi&#x00f3;n previa. (<literal>undefined</literal> especifica que debe usarse el valor de la propiedad identificadora.)"
+#. Tag: para
+#: basic_mapping.xml:956
+#, no-c-format
+msgid ""
+"Unfortunately, this approach to composite identifiers means that a "
+"persistent object is its own identifier. There is no convenient \"handle\" "
+"other than the object itself. You must instantiate an instance of the "
+"persistent class itself and populate its identifier properties before you "
+"can <literal>load()</literal> the persistent state associated with a "
+"composite key. We call this approach an <emphasis>embedded</emphasis> "
+"composite identifier, and discourage it for serious applications."
+msgstr ""
+"Desafortunadamente, este enfoque de identificadores compuestos significa que "
+"un objeto persistente es su propio identificador. No existe otra \"asa\" "
+"conveniente más que el objeto mismo. Debes instanciar una instancia de la "
+"clase misma y poblar sus propiedades identificadoras antes que puedas "
+"<literal>load()</literal> el estado persistente asociado a una clave "
+"compuesta. Describiremos un enfoque mucho más conveniente donde el "
+"identificador compuesto está implementado como una clase separada en <xref "
+"linkend=\"components-compositeid\"/>. Los atributos descriptos debajo "
+"solamente se aplican a este enfoque alternativo:"
 
-#: index.docbook:965
-msgid "A second approach is what we call a <emphasis>mapped</emphasis> composite identifier, where the identifier properties named inside the <literal>&lt;composite-id&gt;</literal> element are duplicated on both the persistent class and a separate identifier class."
-msgstr "Note that <literal>&lt;timestamp&gt;</literal> is equivalent to <literal>&lt;version type=\"timestamp\"&gt;</literal>."
+#. Tag: para
+#: basic_mapping.xml:965
+#, no-c-format
+msgid ""
+"A second approach is what we call a <emphasis>mapped</emphasis> composite "
+"identifier, where the identifier properties named inside the <literal>&lt;"
+"composite-id&gt;</literal> element are duplicated on both the persistent "
+"class and a separate identifier class."
+msgstr ""
+"A second approach is what we call a <emphasis>mapped</emphasis> composite "
+"identifier, where the identifier properties named inside the <literal>&lt;"
+"composite-id&gt;</literal> element are duplicated on both the persistent "
+"class and a separate identifier class."
 
-#: index.docbook:971
+#. Tag: programlisting
+#: basic_mapping.xml:971
+#, no-c-format
 msgid ""
-      "<![CDATA[<composite-id class=\"MedicareId\" mapped=\"true\">\n"
-      "        <key-property name=\"medicareNumber\"/>\n"
-      "        <key-property name=\"dependent\"/>\n"
-      "</composite-id>]]>"
-msgstr "property"
+"<![CDATA[<composite-id class=\"MedicareId\" mapped=\"true\">\n"
+"        <key-property name=\"medicareNumber\"/>\n"
+"        <key-property name=\"dependent\"/>\n"
+"</composite-id>]]>"
+msgstr ""
 
-#: index.docbook:973
-msgid "In this example, both the composite identifier class, <literal>MedicareId</literal>, and the entity class itself have properties named <literal>medicareNumber</literal> and <literal>dependent</literal>. The identifier class must override <literal>equals()</literal> and <literal>hashCode()</literal> and implement. <literal>Serializable</literal>. The disadvantage of this approach is quite obvious&mdash;code duplication."
-msgstr "El elemento <literal>&lt;property&gt;</literal> declara una propiedad persistente estilo JavaBean de la clase."
+#. Tag: para
+#: basic_mapping.xml:973
+#, no-c-format
+msgid ""
+"In this example, both the composite identifier class, <literal>MedicareId</"
+"literal>, and the entity class itself have properties named "
+"<literal>medicareNumber</literal> and <literal>dependent</literal>. The "
+"identifier class must override <literal>equals()</literal> and "
+"<literal>hashCode()</literal> and implement. <literal>Serializable</"
+"literal>. The disadvantage of this approach is quite obvious&mdash;code "
+"duplication."
+msgstr ""
+"In this example, both the composite identifier class, <literal>MedicareId</"
+"literal>, and the entity class itself have properties named "
+"<literal>medicareNumber</literal> and <literal>dependent</literal>. The "
+"identifier class must override <literal>equals()</literal> and "
+"<literal>hashCode()</literal> and implement. <literal>Serializable</"
+"literal>. The disadvantage of this approach is quite obvious&mdash;code "
+"duplication."
 
-#: index.docbook:982
-msgid "The following attributes are used to specify a mapped composite identifier:"
+#. Tag: para
+#: basic_mapping.xml:982
+#, no-c-format
+msgid ""
+"The following attributes are used to specify a mapped composite identifier:"
 msgstr ""
-      "<![CDATA[<property\n"
-      "        name=\"propertyName\"\n"
-      "        column=\"column_name\"\n"
-      "        type=\"typename\"\n"
-      "        update=\"true|false\"\n"
-      "        insert=\"true|false\"\n"
-      "        formula=\"arbitrary SQL expression\"\n"
-      "        access=\"field|property|ClassName\"\n"
-      "        lazy=\"true|false\"\n"
-      "        unique=\"true|false\"\n"
-      "        not-null=\"true|false\"\n"
-      "        optimistic-lock=\"true|false\"\n"
-      "        node=\"element-name|@attribute-name|element/@attribute|.\"\n"
-      "        index=\"index_name\"\n"
-      "        unique_key=\"unique_key_id\"\n"
-      "        length=\"L\"\n"
-      "        precision=\"P\"\n"
-      "        scale=\"S\"\n"
-      "/>]]>"
+"The following attributes are used to specify a mapped composite identifier:"
 
-#: index.docbook:988
-msgid "<literal>mapped</literal> (optional, defaults to <literal>false</literal>): indicates that a mapped composite identifier is used, and that the contained property mappings refer to both the entity class and the composite identifier class."
-msgstr "<literal>name</literal>: el nombre de la propiedad, con la letra inicial en min&#x00fa;sculas."
+#. Tag: para
+#: basic_mapping.xml:988
+#, no-c-format
+msgid ""
+"<literal>mapped</literal> (optional, defaults to <literal>false</literal>): "
+"indicates that a mapped composite identifier is used, and that the contained "
+"property mappings refer to both the entity class and the composite "
+"identifier class."
+msgstr ""
+"<literal>mapped</literal> (optional, defaults to <literal>false</literal>): "
+"indicates that a mapped composite identifier is used, and that the contained "
+"property mappings refer to both the entity class and the composite "
+"identifier class."
 
-#: index.docbook:996
-msgid "<literal>class</literal> (optional, but required for a mapped composite identifier): The class used as a composite identifier."
-msgstr "<literal>column</literal> (opcional - por defecto al nombre de la propiedad): el nombre de la columna de tabla de base de datos mapeada. Esto puede tambi&#x00e9;n ser especificado con elemento(s) <literal>&lt;column&gt;</literal> anidado(s)."
+#. Tag: para
+#: basic_mapping.xml:996
+#, no-c-format
+msgid ""
+"<literal>class</literal> (optional, but required for a mapped composite "
+"identifier): The class used as a composite identifier."
+msgstr ""
+"<literal>class</literal> (optional, but required for a mapped composite "
+"identifier): The class used as a composite identifier."
 
-#: index.docbook:1003
-msgid "We will describe a third, even more convenient approach where the composite identifier is implemented as a component class in <xref linkend=\"components-compositeid\"/>. The attributes described below apply only to this alternative approach:"
-msgstr "<literal>type</literal> (opcional): un nombre que indica el nobre Hibernate."
+#. Tag: para
+#: basic_mapping.xml:1003
+#, no-c-format
+msgid ""
+"We will describe a third, even more convenient approach where the composite "
+"identifier is implemented as a component class in <xref linkend=\"components-"
+"compositeid\"/>. The attributes described below apply only to this "
+"alternative approach:"
+msgstr ""
+"We will describe a third, even more convenient approach where the composite "
+"identifier is implemented as a component class in <xref linkend=\"components-"
+"compositeid\"/>. The attributes described below apply only to this "
+"alternative approach:"
 
-#: index.docbook:1011
-msgid "<literal>name</literal> (optional, required for this approach): A property of component type that holds the composite identifier (see chapter 9)."
-msgstr "<literal>update, insert</literal> (opcional - por defecto a <literal>true</literal>) : especifica que las columnas mapeadas deben ser inclu&#x00ed;das en las sentencias SQL <literal>UPDATE</literal> y/o <literal>INSERT</literal> . Especificando ambas a <literal>false</literal> permite una propiedad \"derivada\" cuyo valor es inicializado desde alguna otra propiedad que mapee a la misma columna (o columnas) o por un disparador u otra aplicaci&#x00f3;n."
+#. Tag: para
+#: basic_mapping.xml:1011
+#, no-c-format
+msgid ""
+"<literal>name</literal> (optional, required for this approach): A property "
+"of component type that holds the composite identifier (see chapter 9)."
+msgstr ""
+"<literal>name</literal> (opcional): Una propiedad de tipo componente que "
+"tiene el identificador compuesto (ver siguiente sección)."
 
-#: index.docbook:1023
-msgid "<literal>class</literal> (optional - defaults to the property type determined by reflection): The component class used as a composite identifier (see next section)."
-msgstr "<literal>access</literal> (opcional - por defecto a <literal>property</literal>): La estrategia que Hibernate debe usar para acceder al valor de la propiedad."
+#. Tag: para
+#: basic_mapping.xml:1023
+#, no-c-format
+msgid ""
+"<literal>class</literal> (optional - defaults to the property type "
+"determined by reflection): The component class used as a composite "
+"identifier (see next section)."
+msgstr ""
+"<literal>class</literal> (opcional - por defecto al tipo de la propiedad "
+"determinado por reflección): La clase del componente usado como "
+"identificador compuesto (ver siguiente sección)."
 
-#: index.docbook:1030
-msgid "This third approach, an <emphasis>identifier component</emphasis> is the one we recommend for almost all applications."
-msgstr "<literal>lazy</literal> (opcional - por defecto a <literal>false</literal>): Especifica que esta propiedad debe ser tra&#x00ed;da perezosamente cuando la variable de instancia sea accedida por primera vez (requiere instrumentaci&#x00f3;n en tiempo de compilaci&#x00f3;n)."
+#. Tag: para
+#: basic_mapping.xml:1030
+#, no-c-format
+msgid ""
+"This third approach, an <emphasis>identifier component</emphasis> is the one "
+"we recommend for almost all applications."
+msgstr ""
+"This third approach, an <emphasis>identifier component</emphasis> is the one "
+"we recommend for almost all applications."
 
-#: index.docbook:1038
+#. Tag: title
+#: basic_mapping.xml:1038
+#, no-c-format
 msgid "discriminator"
-msgstr "<literal>unique</literal> (opcional): Habilita la generaci&#x00f3; DDL de una restricci&#x00f3;n de unicidad para las columnas. Adem&#x00e1;s, permite que &#x00e9;sta sea un blanco objetivo de una <literal>property-ref</literal>."
+msgstr "discriminator"
 
-#: index.docbook:1040
-msgid "The <literal>&lt;discriminator&gt;</literal> element is required for polymorphic persistence using the table-per-class-hierarchy mapping strategy and declares a discriminator column of the table. The discriminator column contains marker values that tell the persistence layer what subclass to instantiate for a particular row. A restricted set of types may be used: <literal>string</literal>, <literal>character</literal>, <literal>integer</literal>, <literal>byte</literal>, <literal>short</literal>, <literal>boolean</literal>, <literal>yes_no</literal>, <literal>true_false</literal>."
-msgstr "<literal>not-null</literal> (opcional): Habilita la generaci&#x00f3; DDL de una restricci&#x00f3;n de nulabilidad para las columnas."
+#. Tag: para
+#: basic_mapping.xml:1040
+#, no-c-format
+msgid ""
+"The <literal>&lt;discriminator&gt;</literal> element is required for "
+"polymorphic persistence using the table-per-class-hierarchy mapping strategy "
+"and declares a discriminator column of the table. The discriminator column "
+"contains marker values that tell the persistence layer what subclass to "
+"instantiate for a particular row. A restricted set of types may be used: "
+"<literal>string</literal>, <literal>character</literal>, <literal>integer</"
+"literal>, <literal>byte</literal>, <literal>short</literal>, "
+"<literal>boolean</literal>, <literal>yes_no</literal>, <literal>true_false</"
+"literal>."
+msgstr ""
+"El elemento <literal>&lt;discriminator&gt;</literal> es requerido para la "
+"persistencia polimórfica usando la estrategia de mapeo de tabla-por-"
+"jerarquía-de-clases y declara una columna discriminadora de la tabla. La "
+"columna discriminidora contiene valores de marca que le dicen a la capa de "
+"persistencia qué subclase instanciar para una fila en particular. Un "
+"conjunto restringido de tipos puede ser usado: <literal>string</literal>, "
+"<literal>character</literal>, <literal>integer</literal>, <literal>byte</"
+"literal>, <literal>short</literal>, <literal>boolean</literal>, "
+"<literal>yes_no</literal>, <literal>true_false</literal>."
 
-#: index.docbook:1058
+#. Tag: programlisting
+#: basic_mapping.xml:1058
+#, no-c-format
 msgid ""
-      "<![CDATA[<discriminator\n"
-      "        column=\"discriminator_column\"\n"
-      "        type=\"discriminator_type\"\n"
-      "        force=\"true|false\"\n"
-      "        insert=\"true|false\"\n"
-      "        formula=\"arbitrary sql expression\"\n"
-      "/>]]>"
-msgstr "<literal>optimistic-lock</literal> (opcional - por defecto a <literal>true</literal>): Especifica que las actualizaciones a esta propiedad requieran o no de la obtenci&#x000f3;n de un bloqueo optimista. En otras palabras, determina si debe ocurrir un incremento de versi&#x00f3;n cuando la propiedad este sucia (desactualizada)."
+"<![CDATA[<discriminator\n"
+"        column=\"discriminator_column\"\n"
+"        type=\"discriminator_type\"\n"
+"        force=\"true|false\"\n"
+"        insert=\"true|false\"\n"
+"        formula=\"arbitrary sql expression\"\n"
+"/>]]>"
+msgstr ""
 
-#: index.docbook:1061
-msgid "<literal>column</literal> (optional - defaults to <literal>class</literal>) the name of the discriminator column."
-msgstr "<emphasis>typename</emphasis> puede ser:"
+#. Tag: para
+#: basic_mapping.xml:1061
+#, no-c-format
+msgid ""
+"<literal>column</literal> (optional - defaults to <literal>class</literal>) "
+"the name of the discriminator column."
+msgstr ""
+"<literal>column</literal> (opcional - por defecto a <literal>class</"
+"literal>) el nombre de la columna discriminadora."
 
-#: index.docbook:1067
-msgid "<literal>type</literal> (optional - defaults to <literal>string</literal>) a name that indicates the Hibernate type"
-msgstr "El nombre de un tipo b&#x00e1;sico Hibernate (por ejemplo, <literal>integer, string, character, date, timestamp, float, binary, serializable, object, blob</literal>)."
+#. Tag: para
+#: basic_mapping.xml:1067
+#, no-c-format
+msgid ""
+"<literal>type</literal> (optional - defaults to <literal>string</literal>) a "
+"name that indicates the Hibernate type"
+msgstr ""
+"<literal>type</literal> (opcional - por defecto a <literal>string</literal>) "
+"un nombre que indique el tipo Hibernate"
 
-#: index.docbook:1073
-msgid "<literal>force</literal> (optional - defaults to <literal>false</literal>) \"force\" Hibernate to specify allowed discriminator values even when retrieving all instances of the root class."
-msgstr "El nombre de una clase Java de tipo b&#x00e1;sico (por ejemplo, <literal>int, float, char, java.lang.String, java.util.Date, java.lang.Integer, java.sql.Clob</literal>)."
+#. Tag: para
+#: basic_mapping.xml:1073
+#, no-c-format
+msgid ""
+"<literal>force</literal> (optional - defaults to <literal>false</literal>) "
+"\"force\" Hibernate to specify allowed discriminator values even when "
+"retrieving all instances of the root class."
+msgstr ""
+"<literal>force</literal> (optconal - por defecto a <literal>false</literal>) "
+"\"fuerza\" a Hibernate a especificar valores discriminadores permitidos "
+"incluso cuando se recuperan todas las instancias de la clase raíz."
 
-#: index.docbook:1080
-msgid "<literal>insert</literal> (optional - defaults to <literal>true</literal>) set this to <literal>false</literal> if your discriminator column is also part of a mapped composite identifier. (Tells Hibernate to not include the column in SQL <literal>INSERT</literal>s.)"
-msgstr "El nombre de una clase Java serializable."
+#. Tag: para
+#: basic_mapping.xml:1080
+#, no-c-format
+msgid ""
+"<literal>insert</literal> (optional - defaults to <literal>true</literal>) "
+"set this to <literal>false</literal> if your discriminator column is also "
+"part of a mapped composite identifier. (Tells Hibernate to not include the "
+"column in SQL <literal>INSERT</literal>s.)"
+msgstr ""
+"<literal>insert</literal> (opcional - por defecto a <literal>true</literal>) "
+"establezca este a <literal>false</literal> si tu columna discriminadora es "
+"también parte de un identificador mapeado compuesto. (Le dice a Hibernate "
+"que no incluya la columna en los SQL <literal>INSERT</literal>s.)"
 
-#: index.docbook:1088
-msgid "<literal>formula</literal> (optional) an arbitrary SQL expression that is executed when a type has to be evaluated. Allows content-based discrimination."
-msgstr "El nombre de un tipo personalizado (por ejemplo, <literal>com.illflow.type.MyCustomType</literal>)."
+#. Tag: para
+#: basic_mapping.xml:1088
+#, no-c-format
+msgid ""
+"<literal>formula</literal> (optional) an arbitrary SQL expression that is "
+"executed when a type has to be evaluated. Allows content-based "
+"discrimination."
+msgstr ""
+"<literal>formula</literal> (opcional) una expresión SQL arbitraria que es "
+"ejecutada cuando un tipo tenga que ser evaluado. Permite dicriminación "
+"basada en el contenido."
 
-#: index.docbook:1096
-msgid "Actual values of the discriminator column are specified by the <literal>discriminator-value</literal> attribute of the <literal>&lt;class&gt;</literal> and <literal>&lt;subclass&gt;</literal> elements."
-msgstr "Si no especificas un tipo, Hibernate usar&#x00e1; reflecci&#x00f3;n sobre la propiedad mencionada para deducir el tipo Hibernate correcto. Hibernate intentar&#x00e1; interpretar el nombre de la clase de retorno del getter de la propiedad usando las reglas 2, 3 y 4 en ese orden. Sin embargo, esto no siempre suficiente. En ciertos casos, necesitar&#x00e1;s a&#x00fa;n el atributo <literal>type</literal>. (Por ejemplo, para distinguir entre <literal>Hibernate.DATE</literal> y <literal>Hibernate.TIMESTAMP</literal>, o especificar un tipo personalizado.)"
+#. Tag: para
+#: basic_mapping.xml:1096
+#, no-c-format
+msgid ""
+"Actual values of the discriminator column are specified by the "
+"<literal>discriminator-value</literal> attribute of the <literal>&lt;"
+"class&gt;</literal> and <literal>&lt;subclass&gt;</literal> elements."
+msgstr ""
+"Los valores reales de la columna discriminadora están especificados por el "
+"atributo <literal>discriminator-value</literal> de los elementos "
+"<literal>&lt;class&gt;</literal> y <literal>&lt;subclass&gt;</literal>."
 
-#: index.docbook:1102
-msgid "The <literal>force</literal> attribute is (only) useful if the table contains rows with \"extra\" discriminator values that are not mapped to a persistent class. This will not usually be the case."
-msgstr "El atributo <literal>access</literal> te deja controlar c&#x00f3;mo Hibernate acceder&#x00e1; a la propiedad en tiempo de ejecuci&#x00f3;n. Por defecto, Hibernate llamar&#x00e1; al par de getter/setter de la propiedad. Si especificas <literal>access=\"field\"</literal>, Hibernate se saltar&#x00e1; el par get/set y acceder&#x00e1; al campo directamente usando reflecci&#x00f3;n. Puedes especificar tu propia estrategia de acceso a la propiedad mencionando una clase que implemente la interface <literal>org.hibernate.property.PropertyAccessor</literal>."
+#. Tag: para
+#: basic_mapping.xml:1102
+#, no-c-format
+msgid ""
+"The <literal>force</literal> attribute is (only) useful if the table "
+"contains rows with \"extra\" discriminator values that are not mapped to a "
+"persistent class. This will not usually be the case."
+msgstr ""
+"El atributo <literal>force</literal> es (sólo) útil si la tabla contiene "
+"filas con valores discriminadores \"extra\" que no están mapeados a la clase "
+"persistente. Generalmente este no es el caso."
 
-#: index.docbook:1108
-msgid "Using the <literal>formula</literal> attribute you can declare an arbitrary SQL expression that will be used to evaluate the type of a row:"
-msgstr "Una aspecto especialmente poderoso son las propiedades derivadas. Estas propiedades son por definici&#x00f3;n de s&#x00f3;lo lectura, el valor de la propiedad es computado en tiempo de carga. Tu declaras la computaci&#x00f3;n como una expresi&#x00f3;n SQL, y &#x00e9;sta se traduce a cl&#x00e1;usula de subconsulta <literal>SELECT</literal> en la consulta SQL que cargue una instancia:"
+#. Tag: para
+#: basic_mapping.xml:1108
+#, no-c-format
+msgid ""
+"Using the <literal>formula</literal> attribute you can declare an arbitrary "
+"SQL expression that will be used to evaluate the type of a row:"
+msgstr ""
+"Usando el atributo <literal>formula</literal> puedes declarar una expresión "
+"SQL arbitraria que será usada para evaluar el tipo de una fila:"
 
-#: index.docbook:1113
+#. Tag: programlisting
+#: basic_mapping.xml:1113
+#, no-c-format
 msgid ""
-      "<![CDATA[<discriminator\n"
-      "    formula=\"case when CLASS_TYPE in ('a', 'b', 'c') then 0 else 1 end\"\n"
-      "    type=\"integer\"/>]]>"
+"<![CDATA[<discriminator\n"
+"    formula=\"case when CLASS_TYPE in ('a', 'b', 'c') then 0 else 1 end\"\n"
+"    type=\"integer\"/>]]>"
 msgstr ""
-      "<![CDATA[\n"
-      "<property name=\"totalPrice\"\n"
-      "    formula=\"( SELECT SUM (li.quantity*p.price) FROM LineItem li, Product p\n"
-      "                WHERE li.productId = p.productId\n"
-      "                AND li.customerId = customerId\n"
-      "                AND li.orderNumber = orderNumber )\"/>]]>"
 
-#: index.docbook:1118
+#. Tag: title
+#: basic_mapping.xml:1118
+#, no-c-format
 msgid "version (optional)"
-msgstr "Observa que puedes referenciar la propia tabla de las entidades sin declarar un alias o una columna particular (<literal>customerId</literal> en el ejemplo dado). Observa adem&#x00e1;s que puedes usar el elemento anidado de mapeo <literal>&lt;formula&gt;</literal> si no te gusta usar el atributo."
+msgstr "version (opcional)"
 
-#: index.docbook:1120
-msgid "The <literal>&lt;version&gt;</literal> element is optional and indicates that the table contains versioned data. This is particularly useful if you plan to use <emphasis>long transactions</emphasis> (see below)."
-msgstr "many-to-one"
+#. Tag: para
+#: basic_mapping.xml:1120
+#, no-c-format
+msgid ""
+"The <literal>&lt;version&gt;</literal> element is optional and indicates "
+"that the table contains versioned data. This is particularly useful if you "
+"plan to use <emphasis>long transactions</emphasis> (see below)."
+msgstr ""
+"El elemento <literal>&lt;version&gt;</literal> es opcional e indica que la "
+"tabla contiene datos versionados. Esto es particularmente útil si planeas "
+"usar <emphasis>transacciones largas</emphasis> (ver debajo)."
 
-#: index.docbook:1136
+#. Tag: programlisting
+#: basic_mapping.xml:1136
+#, no-c-format
 msgid ""
-      "<![CDATA[<version\n"
-      "        column=\"version_column\"\n"
-      "        name=\"propertyName\"\n"
-      "        type=\"typename\"\n"
-      "        access=\"field|property|ClassName\"\n"
-      "        unsaved-value=\"null|negative|undefined\"\n"
-      "        generated=\"never|always\"\n"
-      "        insert=\"true|false\"\n"
-      "        node=\"element-name|@attribute-name|element/@attribute|.\"\n"
-      "/>]]>"
-msgstr "Una asociaci&#x00f3;n ordinaria a otra clase persistente se declara usando el elemento <literal>many-to-one</literal>. El modelo relacional es una asociaci&#x00f3;n muchos-a-uno: una clave for&#x00e1;nea en una tabla est&#x00e1; referenciando la columna (o columnas) de la clave primaria de la tabla objetivo."
+"<![CDATA[<version\n"
+"        column=\"version_column\"\n"
+"        name=\"propertyName\"\n"
+"        type=\"typename\"\n"
+"        access=\"field|property|ClassName\"\n"
+"        unsaved-value=\"null|negative|undefined\"\n"
+"        generated=\"never|always\"\n"
+"        insert=\"true|false\"\n"
+"        node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+"/>]]>"
+msgstr ""
 
-#: index.docbook:1139
-msgid "<literal>column</literal> (optional - defaults to the property name): The name of the column holding the version number."
+#. Tag: para
+#: basic_mapping.xml:1139
+#, no-c-format
+msgid ""
+"<literal>column</literal> (optional - defaults to the property name): The "
+"name of the column holding the version number."
 msgstr ""
-      "<![CDATA[<many-to-one\n"
-      "        name=\"propertyName\"\n"
-      "        column=\"column_name\"\n"
-      "        class=\"ClassName\"\n"
-      "        cascade=\"cascade_style\"\n"
-      "        fetch=\"join|select\"\n"
-      "        update=\"true|false\"\n"
-      "        insert=\"true|false\"\n"
-      "        property-ref=\"propertyNameFromAssociatedClass\"\n"
-      "        access=\"field|property|ClassName\"\n"
-      "        unique=\"true|false\"\n"
-      "        not-null=\"true|false\"\n"
-      "        optimistic-lock=\"true|false\"\n"
-      "        lazy=\"true|proxy|false\"\n"
-      "        not-found=\"ignore|exception\"\n"
-      "        entity-name=\"EntityName\"\n"
-      "        formula=\"cualquier expresi&#x00f3;n SQL\"\n"
-      "        node=\"element-name|@attribute-name|element/@attribute|.\"\n"
-      "        embed-xml=\"true|false\"\n"
-      "        index=\"index_name\"\n"
-      "        unique_key=\"unique_key_id\"\n"
-      "        foreign-key=\"foreign_key_name\"\n"
-      "/>]]>"
+"<literal>column</literal> (opcional - por defecto al nombre de la "
+"propiedad): El nombre de la columna que tiene el número de versión."
 
-#: index.docbook:1145
-msgid "<literal>name</literal>: The name of a property of the persistent class."
-msgstr "<literal>name</literal>: El nombre de la propiedad."
+#. Tag: para
+#: basic_mapping.xml:1145
+#, no-c-format
+msgid ""
+"<literal>name</literal>: The name of a property of the persistent class."
+msgstr ""
+"<literal>name</literal>: El nombre de una propiedad de la clase persistente."
 
-#: index.docbook:1150
-msgid "<literal>type</literal> (optional - defaults to <literal>integer</literal>): The type of the version number."
-msgstr "<literal>column</literal> (opcional): El nombre de la columna clave for&#x00e1;nea. Tambi&#x00e9;n puede ser especificado por uno o varios elementos anidados <literal>&lt;column&gt;</literal>."
+#. Tag: para
+#: basic_mapping.xml:1150
+#, no-c-format
+msgid ""
+"<literal>type</literal> (optional - defaults to <literal>integer</literal>): "
+"The type of the version number."
+msgstr ""
+"<literal>type</literal> (opcional - por defecto a <literal>integer</"
+"literal>): El tipo del nú.mero de vesión."
 
-#: index.docbook:1162
-msgid "<literal>unsaved-value</literal> (optional - defaults to <literal>undefined</literal>): A version property value that indicates that an instance is newly instantiated (unsaved), distinguishing it from detached instances that were saved or loaded in a previous session. (<literal>undefined</literal> specifies that the identifier property value should be used.)"
-msgstr "<literal>cascade</literal> (opcional): Especifica qu&#x00e9; operaciones deben ir en cascada desde el objeto padre al objeto asociado"
+#. Tag: para
+#: basic_mapping.xml:1162
+#, no-c-format
+msgid ""
+"<literal>unsaved-value</literal> (optional - defaults to <literal>undefined</"
+"literal>): A version property value that indicates that an instance is newly "
+"instantiated (unsaved), distinguishing it from detached instances that were "
+"saved or loaded in a previous session. (<literal>undefined</literal> "
+"specifies that the identifier property value should be used.)"
+msgstr ""
+"<literal>unsaved-value</literal> (opcional - por defecto a "
+"<literal>undefined</literal>): Un valor de la propiedad de versión que "
+"indica que una instancia está recién instanciada (sin guardar), "
+"distinguiéndola de instancias separadas que fueran guardadas o cargadas en "
+"una sesión previa. (<literal>undefined</literal> especifica que debe usarse "
+"el valor de la propiedad identificadora.)"
 
-#: index.docbook:1171
-msgid "<literal>generated</literal> (optional - defaults to <literal>never</literal>): Specifies that this version property value is actually generated by the database. See the discussion of <xref linkend=\"mapping-generated\"/>generated properties."
-msgstr "<literal>fetch</literal> (opcional - por defecto a 1<literal>select</literal>): Escoge entre recuperaci&#x00f3;n outer-join o por selecci&#x00f3;n secuencial."
+#. Tag: para
+#: basic_mapping.xml:1171
+#, no-c-format
+msgid ""
+"<literal>generated</literal> (optional - defaults to <literal>never</"
+"literal>): Specifies that this version property value is actually generated "
+"by the database. See the discussion of <link linkend=\"mapping-generated"
+"\">generated properties</link>."
+msgstr ""
+"UNTRANSLATED! <literal>generated</literal> (optional - defaults to "
+"<literal>never</literal>): Specifies that this version property value is "
+"actually generated by the database. See the discussion of <link linkend="
+"\"mapping-generated\">generated properties</link>."
 
-#: index.docbook:1178
-msgid "<literal>insert</literal> (optional - defaults to <literal>true</literal>): Specifies whether the version column should be included in SQL insert statements. May be set to <literal>false</literal> if and only if the database column is defined with a default value of <literal>0</literal>."
-msgstr "<literal>update, insert</literal> (opcional - por defecto a <literal>true</literal>) especifica que las columnas mapeadas deben ser inclu&#x00ed;das en las sentencias SQL <literal>UPDATE</literal> y/o <literal>INSERT</literal>. Establecer ambas a <literal>false</literal> permite una asociaci&#x00f3;n puramente \"derivada\" cuyo valor es inicializado desde alguna otra propiedad que mapea a las misma columna (o columnas), o por un disparador, o por otra aplicaci&#x00f3;n."
+#. Tag: para
+#: basic_mapping.xml:1178
+#, no-c-format
+msgid ""
+"<literal>insert</literal> (optional - defaults to <literal>true</literal>): "
+"Specifies whether the version column should be included in SQL insert "
+"statements. May be set to <literal>false</literal> if and only if the "
+"database column is defined with a default value of <literal>0</literal>."
+msgstr ""
+"UNTRANSLATED! <literal>insert</literal> (optional - defaults to "
+"<literal>true</literal>): Specifies whether the version column should be "
+"included in SQL insert statements. May be set to <literal>false</literal> if "
+"and only if the database column is defined with a default value of "
+"<literal>0</literal>."
 
-#: index.docbook:1188
-msgid "Version numbers may be of Hibernate type <literal>long</literal>, <literal>integer</literal>, <literal>short</literal>, <literal>timestamp</literal> or <literal>calendar</literal>."
-msgstr "<literal>property-ref</literal>: (opcional) El nombre de la propiedad de la clase asociada que est&#x00e1; unida a la clave for&#x00e1;nea. Si no se especifica, se usa la clave primaria de la clase asociada."
+#. Tag: para
+#: basic_mapping.xml:1188
+#, no-c-format
+msgid ""
+"Version numbers may be of Hibernate type <literal>long</literal>, "
+"<literal>integer</literal>, <literal>short</literal>, <literal>timestamp</"
+"literal> or <literal>calendar</literal>."
+msgstr ""
+"Los números de versión deben ser de tipo <literal>long</literal>, "
+"<literal>integer</literal>, <literal>short</literal>, <literal>timestamp</"
+"literal> o <literal>calendar</literal> de Hibernate."
 
-#: index.docbook:1193
-msgid "A version or timestamp property should never be null for a detached instance, so Hibernate will detect any instance with a null version or timestamp as transient, no matter what other <literal>unsaved-value</literal> strategies are specified. <emphasis>Declaring a nullable version or timestamp property is an easy way to avoid any problems with transitive reattachment in Hibernate, especially useful for people using assigned identifiers or composite keys!</emphasis>"
-msgstr "<literal>access</literal> (opcional - por defecto a <literal>property</literal>): La estrategia que Hibernate debe usar para acceder al valor de la propiedad."
+#. Tag: para
+#: basic_mapping.xml:1193
+#, no-c-format
+msgid ""
+"A version or timestamp property should never be null for a detached "
+"instance, so Hibernate will detect any instance with a null version or "
+"timestamp as transient, no matter what other <literal>unsaved-value</"
+"literal> strategies are specified. <emphasis>Declaring a nullable version or "
+"timestamp property is an easy way to avoid any problems with transitive "
+"reattachment in Hibernate, especially useful for people using assigned "
+"identifiers or composite keys!</emphasis>"
+msgstr ""
+"Una propiedad de versión o timestamp nunca debe ser nula para una instancia "
+"separada, de modo que Hibernate detectará cualquier instancia con una "
+"versión o timestamp nulo como transitoria, sin importar qué otras "
+"estrategias <literal>unsaved-value</literal> se hayan especificado. "
+"<emphasis>Declarar una propiedad de versón o timestamp nulable es una forma "
+"fácil de evitar cualquier problema con la re-unión transitiva en Hibernate, "
+"especialmente útil para que usa identificadores asignados o claves "
+"compuestas!</emphasis>"
 
-#: index.docbook:1204
+#. Tag: title
+#: basic_mapping.xml:1204
+#, no-c-format
 msgid "timestamp (optional)"
-msgstr "<literal>unique</literal> (opcional): Habilita la generaci&#x00f3;n DDL de una restricci&#x00f3;n de unicidad para la columna de clave for&#x00e1;nea. Adem&#x00e1;s, permite que &#x00e9;sta sea el objetivo de una <literal>property-ref</literal>. Esto hace efectivamente la multiplicidad de la asociaci&#x00f3;n uno a uno."
+msgstr "timestamp (opcional)"
 
-#: index.docbook:1206
-msgid "The optional <literal>&lt;timestamp&gt;</literal> element indicates that the table contains timestamped data. This is intended as an alternative to versioning. Timestamps are by nature a less safe implementation of optimistic locking. However, sometimes the application might use the timestamps in other ways."
-msgstr "<literal>not-null</literal> (opcional): Habilita la generaci&#x00f3;n DDL de una restricci&#x00f3;n de nulabilidad para las columnas de clave for&#x00e1;nea."
+#. Tag: para
+#: basic_mapping.xml:1206
+#, no-c-format
+msgid ""
+"The optional <literal>&lt;timestamp&gt;</literal> element indicates that the "
+"table contains timestamped data. This is intended as an alternative to "
+"versioning. Timestamps are by nature a less safe implementation of "
+"optimistic locking. However, sometimes the application might use the "
+"timestamps in other ways."
+msgstr ""
+"El elemento opcional <literal>&lt;timestamp&gt;</literal> indica que la "
+"tabla contiene datos con sellos de tiempo. Esto esta concebido como una "
+"alternativa al versionado. Los timestamps (sellos de tiempo) son por su "
+"naturaleza una implementación menos segura de bloqueo optimista. Sin "
+"embrago, a veces la aplicación puede usar los timestamps en otras formas."
 
-#: index.docbook:1222
+#. Tag: programlisting
+#: basic_mapping.xml:1222
+#, no-c-format
 msgid ""
-      "<![CDATA[<timestamp\n"
-      "        column=\"timestamp_column\"\n"
-      "        name=\"propertyName\"\n"
-      "        access=\"field|property|ClassName\"\n"
-      "        unsaved-value=\"null|undefined\"\n"
-      "        source=\"vm|db\"\n"
-      "        generated=\"never|always\"\n"
-      "        node=\"element-name|@attribute-name|element/@attribute|.\"\n"
-      "/>]]>"
-msgstr "<literal>optimistic-lock</literal> (opcional - por defecto a <literal>true</literal>): Especifica que las actualizaciones a esta propiedad requieran o no la obtenci&#x00f3;n del bloqueo optimista. En otras palabras, determina si debe darse un incremento de versi&#x00f3;n cuando esta propiedad est&#x00e9; desactualizada."
+"<![CDATA[<timestamp\n"
+"        column=\"timestamp_column\"\n"
+"        name=\"propertyName\"\n"
+"        access=\"field|property|ClassName\"\n"
+"        unsaved-value=\"null|undefined\"\n"
+"        source=\"vm|db\"\n"
+"        generated=\"never|always\"\n"
+"        node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+"/>]]>"
+msgstr ""
 
-#: index.docbook:1225
-msgid "<literal>column</literal> (optional - defaults to the property name): The name of a column holding the timestamp."
-msgstr "<literal>lazy</literal> (opcional - por defecto a <literal>proxy</literal>): Por defecto, las asociaciones de punto &#x00fa;nico van con proxies. <literal>lazy=\"true\"</literal> especifica que esta propiedad debe ser tra&#x00ed;da perezosamente cuando la variable de instancia sea accedida por primera vez (requiere instrumentaci&#x00f3;n del bytecode en tiempo de compilaci&#x00f3;n). <literal>lazy=\"false\"</literal> especifica que la asociaci&#x00f3;n siempre ser&#x00e1; recuperada tempranamente."
+#. Tag: para
+#: basic_mapping.xml:1225
+#, no-c-format
+msgid ""
+"<literal>column</literal> (optional - defaults to the property name): The "
+"name of a column holding the timestamp."
+msgstr ""
+"<literal>column</literal> (opcional - por defecto al nombre de la "
+"propiedad): El nombre de una columna que tiene el timestamp."
 
-#: index.docbook:1231
-msgid "<literal>name</literal>: The name of a JavaBeans style property of Java type <literal>Date</literal> or <literal>Timestamp</literal> of the persistent class."
-msgstr "<literal>not-found</literal> (opcional - por defecto a <literal>exception</literal>): Especifica c&#x00f3;mo deben manejarse las claves for&#x00e1;neas que referencien filas inexistentes: <literal>ignore</literal> tratar&#x00e1; una fila perdida como una asociaci&#x00f3;n nula."
+#. Tag: para
+#: basic_mapping.xml:1231
+#, no-c-format
+msgid ""
+"<literal>name</literal>: The name of a JavaBeans style property of Java type "
+"<literal>Date</literal> or <literal>Timestamp</literal> of the persistent "
+"class."
+msgstr ""
+"<literal>name</literal>: El nombre de una propiedad del estilo JavaBeans de "
+"tipo Java <literal>Date</literal> o <literal>Timestamp</literal> de la clase "
+"persistente."
 
-#: index.docbook:1244
-msgid "<literal>unsaved-value</literal> (optional - defaults to <literal>null</literal>): A version property value that indicates that an instance is newly instantiated (unsaved), distinguishing it from detached instances that were saved or loaded in a previous session. (<literal>undefined</literal> specifies that the identifier property value should be used.)"
-msgstr "<literal>formula</literal> (opcional): una expresi&#x00f3;n SQL que define el valor para una clave for&#x00e1;nea <emphasis>computada</emphasis>."
+#. Tag: para
+#: basic_mapping.xml:1244
+#, no-c-format
+msgid ""
+"<literal>unsaved-value</literal> (optional - defaults to <literal>null</"
+"literal>): A version property value that indicates that an instance is newly "
+"instantiated (unsaved), distinguishing it from detached instances that were "
+"saved or loaded in a previous session. (<literal>undefined</literal> "
+"specifies that the identifier property value should be used.)"
+msgstr ""
+"<literal>unsaved-value</literal> (opcional - por defecto a <literal>null</"
+"literal>): Un valor de propiedad de versión que indica que una instancia "
+"está recién instanciada (sin guardar), distinguiéndola de instancias "
+"separadas que hayan sido guardadas o cargadas en una sesión previa. "
+"(<literal>undefined</literal> especifica que debe usarse el valor de la "
+"propiedad identificadora.)"
 
-#: index.docbook:1253
-msgid "<literal>source</literal> (optional - defaults to <literal>vm</literal>): From where should Hibernate retrieve the timestamp value? From the database, or from the current JVM? Database-based timestamps incur an overhead because Hibernate must hit the database in order to determine the \"next value\", but will be safer for use in clustered environments. Note also, that not all <literal>Dialect</literal>s are known to support retrieving of the database's current timestamp, while others might be unsafe for usage in locking due to lack of precision (Oracle 8 for example)."
-msgstr "Establecer el valor del atributo <literal>cascade</literal> a cualquier valor significativo distinto de <literal>none</literal> propagar&#x00e1; ciertas operaciones al objeto asociado. Los valores significativos son los nombres de las operaciones b&#x00e1;sicas de Hibernate, <literal>persist, merge, delete, save-update, evict, replicate, lock, refresh</literal>, as&#x00ed; como los valores especiales <literal>delete-orphan</literal> y <literal>all</literal> y combinaciones de operaciones separadas por coma, por ejemplo, <literal>cascade=\"persist,merge,evict\"</literal> o <literal>cascade=\"all,delete-orphan\"</literal>. Para una explicaci&#x00f3;n completa, ver <xref linkend=\"objectstate-transitive\"/>."
+#. Tag: para
+#: basic_mapping.xml:1253
+#, no-c-format
+msgid ""
+"<literal>source</literal> (optional - defaults to <literal>vm</literal>): "
+"From where should Hibernate retrieve the timestamp value? From the database, "
+"or from the current JVM? Database-based timestamps incur an overhead because "
+"Hibernate must hit the database in order to determine the \"next value\", "
+"but will be safer for use in clustered environments. Note also, that not all "
+"<literal>Dialect</literal>s are known to support retrieving of the "
+"database's current timestamp, while others might be unsafe for usage in "
+"locking due to lack of precision (Oracle 8 for example)."
+msgstr ""
+"UNTRANSLATED! <literal>source</literal> (optional - defaults to <literal>vm</"
+"literal>): From where should Hibernate retrieve the timestamp value? From "
+"the database, or from the current JVM? Database-based timestamps incur an "
+"overhead because Hibernate must hit the database in order to determine the "
+"\"next value\", but will be safer for use in clustered environments. Note "
+"also, that not all <literal>Dialect</literal>s are known to support "
+"retrieving of the database's current timestamp, while others might be unsafe "
+"for usage in locking due to lack of precision (Oracle 8 for example)."
 
-#: index.docbook:1265
-msgid "<literal>generated</literal> (optional - defaults to <literal>never</literal>): Specifies that this timestamp property value is actually generated by the database. See the discussion of <xref linkend=\"mapping-generated\"/>generated properties."
-msgstr "Una declaraci&#x00f3;n t&#x00ed;pica <literal>muchos-a-uno</literal> se parece a esto:"
+#. Tag: para
+#: basic_mapping.xml:1265
+#, no-c-format
+msgid ""
+"<literal>generated</literal> (optional - defaults to <literal>never</"
+"literal>): Specifies that this timestamp property value is actually "
+"generated by the database. See the discussion of <link linkend=\"mapping-"
+"generated\">generated properties</link>."
+msgstr ""
+"UNTRANSLATED! <literal>generated</literal> (optional - defaults to "
+"<literal>never</literal>): Specifies that this timestamp property value is "
+"actually generated by the database. See the discussion of <link linkend="
+"\"mapping-generated\">generated properties</link>."
 
-#: index.docbook:1274
-msgid "Note that <literal>&lt;timestamp&gt;</literal> is equivalent to <literal>&lt;version type=\"timestamp\"&gt;</literal>. And <literal>&lt;timestamp source=\"db\"&gt;</literal> is equivalent to <literal>&lt;version type=\"dbtimestamp\"&gt;</literal>"
-msgstr "<![CDATA[<many-to-one name=\"product\" class=\"Product\" column=\"PRODUCT_ID\"/>]]>"
+#. Tag: para
+#: basic_mapping.xml:1274
+#, no-c-format
+msgid ""
+"Note that <literal>&lt;timestamp&gt;</literal> is equivalent to <literal>&lt;"
+"version type=\"timestamp\"&gt;</literal>. And <literal>&lt;timestamp source="
+"\"db\"&gt;</literal> is equivalent to <literal>&lt;version type=\"dbtimestamp"
+"\"&gt;</literal>"
+msgstr ""
+"Note that <literal>&lt;timestamp&gt;</literal> is equivalent to <literal>&lt;"
+"version type=\"timestamp\"&gt;</literal>."
 
-#: index.docbook:1284
+#. Tag: title
+#: basic_mapping.xml:1284
+#, no-c-format
 msgid "property"
-msgstr "El atributo <literal>property-ref</literal> debe ser usado solamente para el mapeo de datos heredados donde una clave for&#x00e1;nea referencia una clave &#x00fa;nica de la tabla asociada, distinta de la clave primaria. Este es un modelo relacional feo. Por ejemplo, sup&#x00f3;n que la clase <literal>Product</literal> tuviera un n&#x00fa;mero &#x00fa;nico serial que no es la clave primaria. (El atributo <literal>unique</literal> controla la generaci&#x00f3;n de DDL con la herramienta SchemaExport.)"
+msgstr "property"
 
-#: index.docbook:1286
-msgid "The <literal>&lt;property&gt;</literal> element declares a persistent, JavaBean style property of the class."
-msgstr "<![CDATA[<property name=\"serialNumber\" unique=\"true\" type=\"string\" column=\"SERIAL_NUMBER\"/>]]>"
+#. Tag: para
+#: basic_mapping.xml:1286
+#, no-c-format
+msgid ""
+"The <literal>&lt;property&gt;</literal> element declares a persistent, "
+"JavaBean style property of the class."
+msgstr ""
+"El elemento <literal>&lt;property&gt;</literal> declara una propiedad "
+"persistente estilo JavaBean de la clase."
 
-#: index.docbook:1308
+#. Tag: programlisting
+#: basic_mapping.xml:1308
+#, no-c-format
 msgid ""
-      "<![CDATA[<property\n"
-      "        name=\"propertyName\"\n"
-      "        column=\"column_name\"\n"
-      "        type=\"typename\"\n"
-      "        update=\"true|false\"\n"
-      "        insert=\"true|false\"\n"
-      "        formula=\"arbitrary SQL expression\"\n"
-      "        access=\"field|property|ClassName\"\n"
-      "        lazy=\"true|false\"\n"
-      "        unique=\"true|false\"\n"
-      "        not-null=\"true|false\"\n"
-      "        optimistic-lock=\"true|false\"\n"
-      "        generated=\"never|insert|always\"\n"
-      "        node=\"element-name|@attribute-name|element/@attribute|.\"\n"
-      "        index=\"index_name\"\n"
-      "        unique_key=\"unique_key_id\"\n"
-      "        length=\"L\"\n"
-      "        precision=\"P\"\n"
-      "        scale=\"S\"\n"
-      "/>]]>"
-msgstr "Entonces el mapeo para <literal>OrderItem</literal> deber&#x00ed;a usar:"
+"<![CDATA[<property\n"
+"        name=\"propertyName\"\n"
+"        column=\"column_name\"\n"
+"        type=\"typename\"\n"
+"        update=\"true|false\"\n"
+"        insert=\"true|false\"\n"
+"        formula=\"arbitrary SQL expression\"\n"
+"        access=\"field|property|ClassName\"\n"
+"        lazy=\"true|false\"\n"
+"        unique=\"true|false\"\n"
+"        not-null=\"true|false\"\n"
+"        optimistic-lock=\"true|false\"\n"
+"        generated=\"never|insert|always\"\n"
+"        node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+"        index=\"index_name\"\n"
+"        unique_key=\"unique_key_id\"\n"
+"        length=\"L\"\n"
+"        precision=\"P\"\n"
+"        scale=\"S\"\n"
+"/>]]>"
+msgstr ""
 
-#: index.docbook:1311
-msgid "<literal>name</literal>: the name of the property, with an initial lowercase letter."
-msgstr "<![CDATA[<many-to-one name=\"product\" property-ref=\"serialNumber\" column=\"PRODUCT_SERIAL_NUMBER\"/>]]>"
+#. Tag: para
+#: basic_mapping.xml:1311
+#, no-c-format
+msgid ""
+"<literal>name</literal>: the name of the property, with an initial lowercase "
+"letter."
+msgstr ""
+"<literal>name</literal>: el nombre de la propiedad, con la letra inicial en "
+"minúsculas."
 
-#: index.docbook:1317
-msgid "<literal>column</literal> (optional - defaults to the property name): the name of the mapped database table column. This may also be specified by nested <literal>&lt;column&gt;</literal> element(s)."
-msgstr "Sin embargo, esto no esta ciertamente alentado."
+#. Tag: para
+#: basic_mapping.xml:1317
+#, no-c-format
+msgid ""
+"<literal>column</literal> (optional - defaults to the property name): the "
+"name of the mapped database table column. This may also be specified by "
+"nested <literal>&lt;column&gt;</literal> element(s)."
+msgstr ""
+"<literal>column</literal> (opcional - por defecto al nombre de la "
+"propiedad): el nombre de la columna de tabla de base de datos mapeada. Esto "
+"puede también ser especificado con elemento(s) <literal>&lt;column&gt;</"
+"literal> anidado(s)."
 
-#: index.docbook:1324
-msgid "<literal>type</literal> (optional): a name that indicates the Hibernate type."
-msgstr "Si la clave &#x00fa;nica referenciada abarca m&#x00fa;ltiples propiedades de la entidad asociada, debes mapear las propiedades dentro de un elemento <literal>&lt;properties&gt;</literal>."
+#. Tag: para
+#: basic_mapping.xml:1324
+#, no-c-format
+msgid ""
+"<literal>type</literal> (optional): a name that indicates the Hibernate type."
+msgstr ""
+"<literal>type</literal> (opcional): un nombre que indica el nobre Hibernate."
 
-#: index.docbook:1329
-msgid "<literal>update, insert</literal> (optional - defaults to <literal>true</literal>) : specifies that the mapped columns should be included in SQL <literal>UPDATE</literal> and/or <literal>INSERT</literal> statements. Setting both to <literal>false</literal> allows a pure \"derived\" property whose value is initialized from some other property that maps to the same colum(s) or by a trigger or other application."
-msgstr "one-to-one"
+#. Tag: para
+#: basic_mapping.xml:1329
+#, no-c-format
+msgid ""
+"<literal>update, insert</literal> (optional - defaults to <literal>true</"
+"literal>) : specifies that the mapped columns should be included in SQL "
+"<literal>UPDATE</literal> and/or <literal>INSERT</literal> statements. "
+"Setting both to <literal>false</literal> allows a pure \"derived\" property "
+"whose value is initialized from some other property that maps to the same "
+"colum(s) or by a trigger or other application."
+msgstr ""
+"<literal>update, insert</literal> (opcional - por defecto a <literal>true</"
+"literal>) : especifica que las columnas mapeadas deben ser incluídas en las "
+"sentencias SQL <literal>UPDATE</literal> y/o <literal>INSERT</literal> . "
+"Especificando ambas a <literal>false</literal> permite una propiedad "
+"\"derivada\" cuyo valor es inicializado desde alguna otra propiedad que "
+"mapee a la misma columna (o columnas) o por un disparador u otra aplicación."
 
-#: index.docbook:1338
-msgid "<literal>formula</literal> (optional): an SQL expression that defines the value for a <emphasis>computed</emphasis> property. Computed properties do not have a column mapping of their own."
-msgstr "Una asociaci&#x00f3;n uno-a-uno a otra clase persistente se declara usando un elemento <literal>one-to-one</literal>."
+#. Tag: para
+#: basic_mapping.xml:1338
+#, no-c-format
+msgid ""
+"<literal>formula</literal> (optional): an SQL expression that defines the "
+"value for a <emphasis>computed</emphasis> property. Computed properties do "
+"not have a column mapping of their own."
+msgstr ""
+"<literal>formula</literal> (opcional): una expresión SQL que define el valor "
+"para una propiedad <emphasis>computada</emphasis>. Las propiedades "
+"computadas no tienen una columna mapeada propia."
 
-#: index.docbook:1351
-msgid "<literal>lazy</literal> (optional - defaults to <literal>false</literal>): Specifies that this property should be fetched lazily when the instance variable is first accessed (requires build-time bytecode instrumentation)."
-msgstr "<literal>name</literal>: El nombre de la propiedad."
+#. Tag: para
+#: basic_mapping.xml:1351
+#, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional - defaults to <literal>false</literal>): "
+"Specifies that this property should be fetched lazily when the instance "
+"variable is first accessed (requires build-time bytecode instrumentation)."
+msgstr ""
+"<literal>lazy</literal> (opcional - por defecto a <literal>false</literal>): "
+"Especifica que esta propiedad debe ser traída perezosamente cuando la "
+"variable de instancia sea accedida por primera vez (requiere instrumentación "
+"en tiempo de compilación)."
 
-#: index.docbook:1358
-msgid "<literal>unique</literal> (optional): Enable the DDL generation of a unique constraint for the columns. Also, allow this to be the target of a <literal>property-ref</literal>."
-msgstr "<literal>class</literal> (opcional - por defecto al tipo de la propiedad determinado por reflecci&#x00f3;n): El nombre de la clase asociada."
+#. Tag: para
+#: basic_mapping.xml:1358
+#, no-c-format
+msgid ""
+"<literal>unique</literal> (optional): Enable the DDL generation of a unique "
+"constraint for the columns. Also, allow this to be the target of a "
+"<literal>property-ref</literal>."
+msgstr ""
+"<literal>unique</literal> (opcional): Habilita la generació DDL de una "
+"restricción de unicidad para las columnas. Además, permite que ésta sea un "
+"blanco objetivo de una <literal>property-ref</literal>."
 
-#: index.docbook:1365
-msgid "<literal>not-null</literal> (optional): Enable the DDL generation of a nullability constraint for the columns."
-msgstr "<literal>cascade</literal> (opcional) especifica qu&#x00e9; operaciones deben ir en cascada desde el objeto padre al objeto asociado."
+#. Tag: para
+#: basic_mapping.xml:1365
+#, no-c-format
+msgid ""
+"<literal>not-null</literal> (optional): Enable the DDL generation of a "
+"nullability constraint for the columns."
+msgstr ""
+"<literal>not-null</literal> (opcional): Habilita la generació DDL de una "
+"restricción de nulabilidad para las columnas."
 
-#: index.docbook:1371
-msgid "<literal>optimistic-lock</literal> (optional - defaults to <literal>true</literal>): Specifies that updates to this property do or do not require acquisition of the optimistic lock. In other words, determines if a version increment should occur when this property is dirty."
-msgstr "<literal>constrained</literal> (opcional) especifica que una restricci&#x00f3;n de clave for&#x00e1;nea de la tabla mapeada referencia a la tabla de la clase asociada. Esta opci&#x00f3;n afecta el orden en que van en cascada <literal>save()</literal> y <literal>delete()</literal>, y determina cu&#x00e1;ndo la asociaci&#x00f3;n pueden ser virtualizados por proxies (es tambi&#x00e9;n usado por la herramienta de exportaci&#x00f3;n de esquemas)."
+#. Tag: para
+#: basic_mapping.xml:1371
+#, no-c-format
+msgid ""
+"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
+"literal>): Specifies that updates to this property do or do not require "
+"acquisition of the optimistic lock. In other words, determines if a version "
+"increment should occur when this property is dirty."
+msgstr ""
+"<literal>optimistic-lock</literal> (opcional - por defecto a <literal>true</"
+"literal>): Especifica que las actualizaciones a esta propiedad requieran o "
+"no de la obtención de un bloqueo optimista. En otras palabras, determina si "
+"debe ocurrir un incremento de versión cuando la propiedad este sucia "
+"(desactualizada)."
 
-#: index.docbook:1379
-msgid "<literal>generated</literal> (optional - defaults to <literal>never</literal>): Specifies that this property value is actually generated by the database. See the discussion of <xref linkend=\"mapping-generated\"/>generated properties."
-msgstr "<literal>fetch</literal> (opcional - por defecto <literal>select</literal>): Elige entre recuperaci&#x00f3;n outer-join o recuperaci&#x00f3;n por consulta secuencial."
+#. Tag: para
+#: basic_mapping.xml:1379
+#, no-c-format
+msgid ""
+"<literal>generated</literal> (optional - defaults to <literal>never</"
+"literal>): Specifies that this property value is actually generated by the "
+"database. See the discussion of <link linkend=\"mapping-generated"
+"\">generated properties</link>."
+msgstr ""
+"UNTRANSLATED! <literal>generated</literal> (optional - defaults to "
+"<literal>never</literal>): Specifies that this property value is actually "
+"generated by the database. See the discussion of <link linkend=\"mapping-"
+"generated\">generated properties</link>."
 
-#: index.docbook:1388
+#. Tag: para
+#: basic_mapping.xml:1388
+#, no-c-format
 msgid "<emphasis>typename</emphasis> could be:"
-msgstr "<literal>property-ref</literal>: (opcional) El nombre de una propiedad de la clase asociada que est&#x00e9; unida a la clave primaria de esta clase. Si no se especifica, se usa la clave primaria de la clase asociada."
+msgstr "<emphasis>typename</emphasis> puede ser:"
 
-#: index.docbook:1394
-msgid "The name of a Hibernate basic type (eg. <literal>integer, string, character, date, timestamp, float, binary, serializable, object, blob</literal>)."
-msgstr "<literal>access</literal> (opcional - por defecto a <literal>property</literal>): La estrategia que Hibernate debe usar para acceder al valor de la propiedad."
+#. Tag: para
+#: basic_mapping.xml:1394
+#, no-c-format
+msgid ""
+"The name of a Hibernate basic type (eg. <literal>integer, string, character, "
+"date, timestamp, float, binary, serializable, object, blob</literal>)."
+msgstr ""
+"El nombre de un tipo básico Hibernate (por ejemplo, <literal>integer, "
+"string, character, date, timestamp, float, binary, serializable, object, "
+"blob</literal>)."
 
-#: index.docbook:1400
-msgid "The name of a Java class with a default basic type (eg. <literal>int, float, char, java.lang.String, java.util.Date, java.lang.Integer, java.sql.Clob</literal>)."
-msgstr "<literal>formula</literal> (opcional): Casi todas las asociaciones uno-a-uno mapean a la clave primaria de la entidad propietaria. En el raro caso en que este no sea el caso, puedes especificar alguna otra columna, o columnas, o expresi&#x00f3;n para unir usando una f&#x00f3;rmula SQL. (Para un ejemplo ver <literal>org.hibernate.test.onetooneformula</literal>)."
+#. Tag: para
+#: basic_mapping.xml:1400
+#, no-c-format
+msgid ""
+"The name of a Java class with a default basic type (eg. <literal>int, float, "
+"char, java.lang.String, java.util.Date, java.lang.Integer, java.sql.Clob</"
+"literal>)."
+msgstr ""
+"El nombre de una clase Java de tipo básico (por ejemplo, <literal>int, "
+"float, char, java.lang.String, java.util.Date, java.lang.Integer, java.sql."
+"Clob</literal>)."
 
-#: index.docbook:1406
+#. Tag: para
+#: basic_mapping.xml:1406
+#, no-c-format
 msgid "The name of a serializable Java class."
-msgstr "<literal>lazy</literal> (opcional - por defecto a <literal>proxy</literal>): Por defecto, las asociaciones de punto &#x00fa;nico van con proxies. <literal>lazy=\"true\"</literal> especifica que esta propiedad debe ser tra&#x00ed;da perezosamente cuando la variable de instancia sea accedida por primera vez (requiere instrumentaci&#x00f3;n del bytecode en tiempo de compilaci&#x00f3;n). <literal>lazy=\"false\"</literal> especifica que la asociaci&#x00f3;n siempre ser&#x00e1; recuperada tempranamente. <emphasis>Observa que si <literal>constrained=\"false\"</literal>, la aplicaci&#x00f3;n de proxies es imposible e Hibernate traer&#x00e1; temprano la asociaci&#x00f3;n!</emphasis>"
+msgstr "El nombre de una clase Java serializable."
 
-#: index.docbook:1411
-msgid "The class name of a custom type (eg. <literal>com.illflow.type.MyCustomType</literal>)."
-msgstr "Hay dos variedades de asociaciones uno-a-uno:"
+#. Tag: para
+#: basic_mapping.xml:1411
+#, no-c-format
+msgid ""
+"The class name of a custom type (eg. <literal>com.illflow.type.MyCustomType</"
+"literal>)."
+msgstr ""
+"El nombre de un tipo personalizado (por ejemplo, <literal>com.illflow.type."
+"MyCustomType</literal>)."
 
-#: index.docbook:1417
-msgid "If you do not specify a type, Hibernate will use reflection upon the named property to take a guess at the correct Hibernate type. Hibernate will try to interpret the name of the return class of the property getter using rules 2, 3, 4 in that order. However, this is not always enough. In certain cases you will still need the <literal>type</literal> attribute. (For example, to distinguish between <literal>Hibernate.DATE</literal> and <literal>Hibernate.TIMESTAMP</literal>, or to specify a custom type.)"
-msgstr "asociaciones de clave primaria"
+#. Tag: para
+#: basic_mapping.xml:1417
+#, no-c-format
+msgid ""
+"If you do not specify a type, Hibernate will use reflection upon the named "
+"property to take a guess at the correct Hibernate type. Hibernate will try "
+"to interpret the name of the return class of the property getter using rules "
+"2, 3, 4 in that order. However, this is not always enough. In certain cases "
+"you will still need the <literal>type</literal> attribute. (For example, to "
+"distinguish between <literal>Hibernate.DATE</literal> and <literal>Hibernate."
+"TIMESTAMP</literal>, or to specify a custom type.)"
+msgstr ""
+"Si no especificas un tipo, Hibernate usará reflección sobre la propiedad "
+"mencionada para deducir el tipo Hibernate correcto. Hibernate intentará "
+"interpretar el nombre de la clase de retorno del getter de la propiedad "
+"usando las reglas 2, 3 y 4 en ese orden. Sin embargo, esto no siempre "
+"suficiente. En ciertos casos, necesitarás aún el atributo <literal>type</"
+"literal>. (Por ejemplo, para distinguir entre <literal>Hibernate.DATE</"
+"literal> y <literal>Hibernate.TIMESTAMP</literal>, o especificar un tipo "
+"personalizado.)"
 
-#: index.docbook:1427
-msgid "The <literal>access</literal> attribute lets you control how Hibernate will access the property at runtime. By default, Hibernate will call the property get/set pair. If you specify <literal>access=\"field\"</literal>, Hibernate will bypass the get/set pair and access the field directly, using reflection. You may specify your own strategy for property access by naming a class that implements the interface <literal>org.hibernate.property.PropertyAccessor</literal>."
-msgstr "asociaciones de clave for&#x00e1;neas &#x00fa;nica"
+#. Tag: para
+#: basic_mapping.xml:1427
+#, no-c-format
+msgid ""
+"The <literal>access</literal> attribute lets you control how Hibernate will "
+"access the property at runtime. By default, Hibernate will call the property "
+"get/set pair. If you specify <literal>access=\"field\"</literal>, Hibernate "
+"will bypass the get/set pair and access the field directly, using "
+"reflection. You may specify your own strategy for property access by naming "
+"a class that implements the interface <literal>org.hibernate.property."
+"PropertyAccessor</literal>."
+msgstr ""
+"El atributo <literal>access</literal> te deja controlar cómo Hibernate "
+"accederá a la propiedad en tiempo de ejecución. Por defecto, Hibernate "
+"llamará al par de getter/setter de la propiedad. Si especificas "
+"<literal>access=\"field\"</literal>, Hibernate se saltará el par get/set y "
+"accederá al campo directamente usando reflección. Puedes especificar tu "
+"propia estrategia de acceso a la propiedad mencionando una clase que "
+"implemente la interface <literal>org.hibernate.property.PropertyAccessor</"
+"literal>."
 
-#: index.docbook:1436
-msgid "An especially powerful feature are derived properties. These properties are by definition read-only, the property value is computed at load time. You declare the computation as a SQL expression, this translates to a <literal>SELECT</literal> clause subquery in the SQL query that loads an instance:"
-msgstr "Las asociaciones de clave primaria no necesitan una columna de tabla extra; si dos filas est&#x00e1;n relacionadas por la asociaci&#x00f3;n entonces las dos filas de tablas comparten el mismo valor de clave primaria. Por lo tanto, si quieres que dos objetos est&#x00e9;n relacionados por una asociaci&#x00f3;n de clave primaria, debes asegurarte que se les asigne el mismo valor de identificador!"
+#. Tag: para
+#: basic_mapping.xml:1436
+#, no-c-format
+msgid ""
+"An especially powerful feature are derived properties. These properties are "
+"by definition read-only, the property value is computed at load time. You "
+"declare the computation as a SQL expression, this translates to a "
+"<literal>SELECT</literal> clause subquery in the SQL query that loads an "
+"instance:"
+msgstr ""
+"Una aspecto especialmente poderoso son las propiedades derivadas. Estas "
+"propiedades son por definición de sólo lectura, el valor de la propiedad es "
+"computado en tiempo de carga. Tu declaras la computación como una expresión "
+"SQL, y ésta se traduce a cláusula de subconsulta <literal>SELECT</literal> "
+"en la consulta SQL que cargue una instancia:"
 
-#: index.docbook:1443
+#. Tag: programlisting
+#: basic_mapping.xml:1443
+#, no-c-format
 msgid ""
-      "<![CDATA[\n"
-      "<property name=\"totalPrice\"\n"
-      "    formula=\"( SELECT SUM (li.quantity*p.price) FROM LineItem li, Product p\n"
-      "                WHERE li.productId = p.productId\n"
-      "                AND li.customerId = customerId\n"
-      "                AND li.orderNumber = orderNumber )\"/>]]>"
-msgstr "Para una asociaci&#x00f3;n de clave primaria, a&#x00f1;ade los siguientes mapeos a <literal>Employee</literal> y <literal>Person</literal>, respectivamente."
+"<![CDATA[\n"
+"<property name=\"totalPrice\"\n"
+"    formula=\"( SELECT SUM (li.quantity*p.price) FROM LineItem li, Product "
+"p\n"
+"                WHERE li.productId = p.productId\n"
+"                AND li.customerId = customerId\n"
+"                AND li.orderNumber = orderNumber )\"/>]]>"
+msgstr ""
 
-#: index.docbook:1445
-msgid "Note that you can reference the entities own table by not declaring an alias on a particular column (<literal>customerId</literal> in the given example). Also note that you can use the nested <literal>&lt;formula&gt;</literal> mapping element if you don't like to use the attribute."
-msgstr "<![CDATA[<one-to-one name=\"person\" class=\"Person\"/>]]>"
+#. Tag: para
+#: basic_mapping.xml:1445
+#, no-c-format
+msgid ""
+"Note that you can reference the entities own table by not declaring an alias "
+"on a particular column (<literal>customerId</literal> in the given example). "
+"Also note that you can use the nested <literal>&lt;formula&gt;</literal> "
+"mapping element if you don't like to use the attribute."
+msgstr ""
+"Observa que puedes referenciar la propia tabla de las entidades sin declarar "
+"un alias o una columna particular (<literal>customerId</literal> en el "
+"ejemplo dado). Observa además que puedes usar el elemento anidado de mapeo "
+"<literal>&lt;formula&gt;</literal> si no te gusta usar el atributo."
 
-#: index.docbook:1455
+#. Tag: title
+#: basic_mapping.xml:1455
+#, no-c-format
 msgid "many-to-one"
-msgstr "<![CDATA[<one-to-one name=\"employee\" class=\"Employee\" constrained=\"true\"/>]]>"
+msgstr "many-to-one"
 
-#: index.docbook:1457
-msgid "An ordinary association to another persistent class is declared using a <literal>many-to-one</literal> element. The relational model is a many-to-one association: a foreign key in one table is referencing the primary key column(s) of the target table."
-msgstr "Ahora debemos asegurarnos que las claves primarias de las filas relacionadas en las tablas PERSON y EMPLOYEE sean iguales. Usamos una estrategia especial de generaci&#x00f3;n de identificador de Hibernate llamada <literal>foreign</literal>:"
+#. Tag: para
+#: basic_mapping.xml:1457
+#, no-c-format
+msgid ""
+"An ordinary association to another persistent class is declared using a "
+"<literal>many-to-one</literal> element. The relational model is a many-to-"
+"one association: a foreign key in one table is referencing the primary key "
+"column(s) of the target table."
+msgstr ""
+"Una asociación ordinaria a otra clase persistente se declara usando el "
+"elemento <literal>many-to-one</literal>. El modelo relacional es una "
+"asociación muchos-a-uno: una clave foránea en una tabla está referenciando "
+"la columna (o columnas) de la clave primaria de la tabla objetivo."
 
-#: index.docbook:1485
+#. Tag: programlisting
+#: basic_mapping.xml:1485
+#, no-c-format
 msgid ""
-      "<![CDATA[<many-to-one\n"
-      "        name=\"propertyName\"\n"
-      "        column=\"column_name\"\n"
-      "        class=\"ClassName\"\n"
-      "        cascade=\"cascade_style\"\n"
-      "        fetch=\"join|select\"\n"
-      "        update=\"true|false\"\n"
-      "        insert=\"true|false\"\n"
-      "        property-ref=\"propertyNameFromAssociatedClass\"\n"
-      "        access=\"field|property|ClassName\"\n"
-      "        unique=\"true|false\"\n"
-      "        not-null=\"true|false\"\n"
-      "        optimistic-lock=\"true|false\"\n"
-      "        lazy=\"proxy|no-proxy|false\"\n"
-      "        not-found=\"ignore|exception\"\n"
-      "        entity-name=\"EntityName\"\n"
-      "        formula=\"arbitrary SQL expression\"\n"
-      "        node=\"element-name|@attribute-name|element/@attribute|.\"\n"
-      "        embed-xml=\"true|false\"\n"
-      "        index=\"index_name\"\n"
-      "        unique_key=\"unique_key_id\"\n"
-      "        foreign-key=\"foreign_key_name\"\n"
-      "/>]]>"
+"<![CDATA[<many-to-one\n"
+"        name=\"propertyName\"\n"
+"        column=\"column_name\"\n"
+"        class=\"ClassName\"\n"
+"        cascade=\"cascade_style\"\n"
+"        fetch=\"join|select\"\n"
+"        update=\"true|false\"\n"
+"        insert=\"true|false\"\n"
+"        property-ref=\"propertyNameFromAssociatedClass\"\n"
+"        access=\"field|property|ClassName\"\n"
+"        unique=\"true|false\"\n"
+"        not-null=\"true|false\"\n"
+"        optimistic-lock=\"true|false\"\n"
+"        lazy=\"proxy|no-proxy|false\"\n"
+"        not-found=\"ignore|exception\"\n"
+"        entity-name=\"EntityName\"\n"
+"        formula=\"arbitrary SQL expression\"\n"
+"        node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+"        embed-xml=\"true|false\"\n"
+"        index=\"index_name\"\n"
+"        unique_key=\"unique_key_id\"\n"
+"        foreign-key=\"foreign_key_name\"\n"
+"/>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"person\" table=\"PERSON\">\n"
-      "    <id name=\"id\" column=\"PERSON_ID\">\n"
-      "        <generator class=\"foreign\">\n"
-      "            <param name=\"property\">employee</param>\n"
-      "        </generator>\n"
-      "    </id>\n"
-      "    ...\n"
-      "    <one-to-one name=\"employee\"\n"
-      "        class=\"Employee\"\n"
-      "        constrained=\"true\"/>\n"
-      "</class>]]>"
 
-#: index.docbook:1488, index.docbook:1669, index.docbook:1855
+#. Tag: para
+#: basic_mapping.xml:1488 basic_mapping.xml:1669 basic_mapping.xml:1855
+#, no-c-format
 msgid "<literal>name</literal>: The name of the property."
-msgstr "A una instancia reci&#x00e9;n salvada de <literal>Person</literal> se le asigna entonces el mismo valor de clave primaria con que la instancia <literal>Employee</literal> referida por la propiedad <literal>employee</literal> de esta <literal>Person</literal>."
+msgstr "<literal>name</literal>: El nombre de la propiedad."
 
-#: index.docbook:1493, index.docbook:2284
-msgid "<literal>column</literal> (optional): The name of the foreign key column. This may also be specified by nested <literal>&lt;column&gt;</literal> element(s)."
-msgstr "Alternativamente, una clave for&#x00e1;nea con una restricci&#x00f3;n de unicidad, desde <literal>Employee</literal> a <literal>Person</literal>, puede ser expresada como:"
+#. Tag: para
+#: basic_mapping.xml:1493 basic_mapping.xml:2284
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column</literal> (optional): The name of the foreign key column. "
+"This may also be specified by nested <literal>&lt;column&gt;</literal> "
+"element(s)."
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>column</literal> (opcional): El nombre de la columna clave foránea. "
+"También puede ser especificado por uno o varios elementos anidados "
+"<literal>&lt;column&gt;</literal>.\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>column</literal> (opcional): El nombre de columna de la clave "
+"foránea. Puede ser también especificado por elemento(s) anidado(s) "
+"<literal>&lt;column&gt;</literal>."
 
-#: index.docbook:1500, index.docbook:1674
-msgid "<literal>class</literal> (optional - defaults to the property type determined by reflection): The name of the associated class."
-msgstr "<![CDATA[<many-to-one name=\"person\" class=\"Person\" column=\"PERSON_ID\" unique=\"true\"/>]]>"
+#. Tag: para
+#: basic_mapping.xml:1500 basic_mapping.xml:1674
+#, no-c-format
+msgid ""
+"<literal>class</literal> (optional - defaults to the property type "
+"determined by reflection): The name of the associated class."
+msgstr ""
+"<literal>class</literal> (opcional - por defecto al tipo de la propiedad "
+"determinado por reflección): El nombre de la clase asociada."
 
-#: index.docbook:1506
-msgid "<literal>cascade</literal> (optional): Specifies which operations should be cascaded from the parent object to the associated object."
-msgstr "Y esta asociaci&#x00f3;n puede hacerse bidireccional agregando lo siguiente al mapeo de <literal>Person</literal> :"
+#. Tag: para
+#: basic_mapping.xml:1506
+#, no-c-format
+msgid ""
+"<literal>cascade</literal> (optional): Specifies which operations should be "
+"cascaded from the parent object to the associated object."
+msgstr ""
+"<literal>cascade</literal> (opcional): Especifica qué operaciones deben ir "
+"en cascada desde el objeto padre al objeto asociado"
 
-#: index.docbook:1512, index.docbook:1695
-msgid "<literal>fetch</literal> (optional - defaults to <literal>select</literal>): Chooses between outer-join fetching or sequential select fetching."
-msgstr "<![CDATA[<one-to-one name=\"employee\" class=\"Employee\" property-ref=\"person\"/>]]>"
+#. Tag: para
+#: basic_mapping.xml:1512 basic_mapping.xml:1695
+#, fuzzy, no-c-format
+msgid ""
+"<literal>fetch</literal> (optional - defaults to <literal>select</literal>): "
+"Chooses between outer-join fetching or sequential select fetching."
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>fetch</literal> (opcional - por defecto a 1<literal>select</"
+"literal>): Escoge entre recuperación outer-join o por selección secuencial.\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>fetch</literal> (opcional - por defecto <literal>select</literal>): "
+"Elige entre recuperación outer-join o recuperación por consulta secuencial."
 
-#: index.docbook:1518
-msgid "<literal>update, insert</literal> (optional - defaults to <literal>true</literal>) specifies that the mapped columns should be included in SQL <literal>UPDATE</literal> and/or <literal>INSERT</literal> statements. Setting both to <literal>false</literal> allows a pure \"derived\" association whose value is initialized from some other property that maps to the same colum(s) or by a trigger or other application."
-msgstr "natural-id"
+#. Tag: para
+#: basic_mapping.xml:1518
+#, no-c-format
+msgid ""
+"<literal>update, insert</literal> (optional - defaults to <literal>true</"
+"literal>) specifies that the mapped columns should be included in SQL "
+"<literal>UPDATE</literal> and/or <literal>INSERT</literal> statements. "
+"Setting both to <literal>false</literal> allows a pure \"derived\" "
+"association whose value is initialized from some other property that maps to "
+"the same colum(s) or by a trigger or other application."
+msgstr ""
+"<literal>update, insert</literal> (opcional - por defecto a <literal>true</"
+"literal>) especifica que las columnas mapeadas deben ser incluídas en las "
+"sentencias SQL <literal>UPDATE</literal> y/o <literal>INSERT</literal>. "
+"Establecer ambas a <literal>false</literal> permite una asociación puramente "
+"\"derivada\" cuyo valor es inicializado desde alguna otra propiedad que "
+"mapea a las misma columna (o columnas), o por un disparador, o por otra "
+"aplicación."
 
-#: index.docbook:1527
-msgid "<literal>property-ref</literal>: (optional) The name of a property of the associated class that is joined to this foreign key. If not specified, the primary key of the associated class is used."
+#. Tag: para
+#: basic_mapping.xml:1527
+#, no-c-format
+msgid ""
+"<literal>property-ref</literal>: (optional) The name of a property of the "
+"associated class that is joined to this foreign key. If not specified, the "
+"primary key of the associated class is used."
 msgstr ""
-      "<![CDATA[<natural-id mutable=\"true|false\"/>\n"
-      "        <property ... />\n"
-      "        <many-to-one ... />\n"
-      "        ......\n"
-      "</natural-id>]]>"
+"<literal>property-ref</literal>: (opcional) El nombre de la propiedad de la "
+"clase asociada que está unida a la clave foránea. Si no se especifica, se "
+"usa la clave primaria de la clase asociada."
 
-#: index.docbook:1540
-msgid "<literal>unique</literal> (optional): Enable the DDL generation of a unique constraint for the foreign-key column. Also, allow this to be the target of a <literal>property-ref</literal>. This makes the association multiplicity effectively one to one."
-msgstr "Recomendamos fuertemente que implementes <literal>equals()</literal> y <literal>hashCode()</literal> para comparar las propiedades de clave natural de la entidad."
+#. Tag: para
+#: basic_mapping.xml:1540
+#, no-c-format
+msgid ""
+"<literal>unique</literal> (optional): Enable the DDL generation of a unique "
+"constraint for the foreign-key column. Also, allow this to be the target of "
+"a <literal>property-ref</literal>. This makes the association multiplicity "
+"effectively one to one."
+msgstr ""
+"<literal>unique</literal> (opcional): Habilita la generación DDL de una "
+"restricción de unicidad para la columna de clave foránea. Además, permite "
+"que ésta sea el objetivo de una <literal>property-ref</literal>. Esto hace "
+"efectivamente la multiplicidad de la asociación uno a uno."
 
-#: index.docbook:1548
-msgid "<literal>not-null</literal> (optional): Enable the DDL generation of a nullability constraint for the foreign key columns."
-msgstr "Este mapeo no est&#x00e1; concebido para usar con entidades con claves primarias naturales."
+#. Tag: para
+#: basic_mapping.xml:1548
+#, no-c-format
+msgid ""
+"<literal>not-null</literal> (optional): Enable the DDL generation of a "
+"nullability constraint for the foreign key columns."
+msgstr ""
+"<literal>not-null</literal> (opcional): Habilita la generación DDL de una "
+"restricción de nulabilidad para las columnas de clave foránea."
 
-#: index.docbook:1554
-msgid "<literal>optimistic-lock</literal> (optional - defaults to <literal>true</literal>): Specifies that updates to this property do or do not require acquisition of the optimistic lock. In other words, dertermines if a version increment should occur when this property is dirty."
-msgstr "<literal>mutable</literal> (opcional, por defecto a <literal>false</literal>): Por defecto, se asume que las propiedades de identificadores naturales son inmutables (constantes)."
+#. Tag: para
+#: basic_mapping.xml:1554
+#, no-c-format
+msgid ""
+"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
+"literal>): Specifies that updates to this property do or do not require "
+"acquisition of the optimistic lock. In other words, dertermines if a version "
+"increment should occur when this property is dirty."
+msgstr ""
+"<literal>optimistic-lock</literal> (opcional - por defecto a <literal>true</"
+"literal>): Especifica que las actualizaciones a esta propiedad requieran o "
+"no la obtención del bloqueo optimista. En otras palabras, determina si debe "
+"darse un incremento de versión cuando esta propiedad esté desactualizada."
 
-#: index.docbook:1562
-msgid "<literal>lazy</literal> (optional - defaults to <literal>proxy</literal>): By default, single point associations are proxied. <literal>lazy=\"no-proxy\"</literal> specifies that the property should be fetched lazily when the instance variable is first accessed (requires build-time bytecode instrumentation). <literal>lazy=\"false\"</literal> specifies that the association will always be eagerly fetched."
-msgstr "component, dynamic-component"
+#. Tag: para
+#: basic_mapping.xml:1562
+#, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional - defaults to <literal>proxy</literal>): "
+"By default, single point associations are proxied. <literal>lazy=\"no-proxy"
+"\"</literal> specifies that the property should be fetched lazily when the "
+"instance variable is first accessed (requires build-time bytecode "
+"instrumentation). <literal>lazy=\"false\"</literal> specifies that the "
+"association will always be eagerly fetched."
+msgstr ""
+"<literal>lazy</literal> (opcional - por defecto a <literal>proxy</literal>): "
+"Por defecto, las asociaciones de punto único van con proxies. <literal>lazy="
+"\"true\"</literal> especifica que esta propiedad debe ser traída "
+"perezosamente cuando la variable de instancia sea accedida por primera vez "
+"(requiere instrumentación del bytecode en tiempo de compilación). "
+"<literal>lazy=\"false\"</literal> especifica que la asociación siempre será "
+"recuperada tempranamente."
 
-#: index.docbook:1572
-msgid "<literal>not-found</literal> (optional - defaults to <literal>exception</literal>): Specifies how foreign keys that reference missing rows will be handled: <literal>ignore</literal> will treat a missing row as a null association."
-msgstr "El elemento <literal>&lt;component&gt;</literal> mapea propiedades de un objeto hijo a columnas de la tabla de la clase padre. Los componentes pueden a su vez declarar sus propias propiedades, componentes o colecciones. Ver debajo \"Componentes\"."
+#. Tag: para
+#: basic_mapping.xml:1572
+#, no-c-format
+msgid ""
+"<literal>not-found</literal> (optional - defaults to <literal>exception</"
+"literal>): Specifies how foreign keys that reference missing rows will be "
+"handled: <literal>ignore</literal> will treat a missing row as a null "
+"association."
+msgstr ""
+"<literal>not-found</literal> (opcional - por defecto a <literal>exception</"
+"literal>): Especifica cómo deben manejarse las claves foráneas que "
+"referencien filas inexistentes: <literal>ignore</literal> tratará una fila "
+"perdida como una asociación nula."
 
-#: index.docbook:1579, index.docbook:1733
-msgid "<literal>entity-name</literal> (optional): The entity name of the associated class."
+#. Tag: para
+#: basic_mapping.xml:1579 basic_mapping.xml:1733
+#, fuzzy, no-c-format
+msgid ""
+"<literal>entity-name</literal> (optional): The entity name of the associated "
+"class."
 msgstr ""
-      "<![CDATA[<component \n"
-      "        name=\"propertyName\" \n"
-      "        class=\"className\"\n"
-      "        insert=\"true|false\"\n"
-      "        update=\"true|false\"\n"
-      "        access=\"field|property|ClassName\"\n"
-      "        lazy=\"true|false\"\n"
-      "        optimistic-lock=\"true|false\"\n"
-      "        unique=\"true|false\"\n"
-      "        node=\"element-name|.\"\n"
-      ">\n"
-      "        \n"
-      "        <property ...../>\n"
-      "        <many-to-one .... />\n"
-      "        ........\n"
-      "</component>]]>"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>entity-name</literal> (opcional): El nombre de entidad de la clase "
+"asociada.\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>entity-name</literal> (optional): The entity name of the associated "
+"class."
 
-#: index.docbook:1585
-msgid "<literal>formula</literal> (optional): an SQL expression that defines the value for a <emphasis>computed</emphasis> foreign key."
-msgstr "<literal>name</literal>: El nombre de la propiedad."
+#. Tag: para
+#: basic_mapping.xml:1585
+#, no-c-format
+msgid ""
+"<literal>formula</literal> (optional): an SQL expression that defines the "
+"value for a <emphasis>computed</emphasis> foreign key."
+msgstr ""
+"<literal>formula</literal> (opcional): una expresión SQL que define el valor "
+"para una clave foránea <emphasis>computada</emphasis>."
 
-#: index.docbook:1592
-msgid "Setting a value of the <literal>cascade</literal> attribute to any meaningful value other than <literal>none</literal> will propagate certain operations to the associated object. The meaningful values are the names of Hibernate's basic operations, <literal>persist, merge, delete, save-update, evict, replicate, lock, refresh</literal>, as well as the special values <literal>delete-orphan</literal> and <literal>all</literal> and comma-separated combinations of operation names, for example, <literal>cascade=\"persist,merge,evict\"</literal> or <literal>cascade=\"all,delete-orphan\"</literal>. See <xref linkend=\"objectstate-transitive\"/> for a full explanation. Note that single valued associations (many-to-one and one-to-one associations) do not support orphan delete."
-msgstr "<literal>class</literal> (opcional - por defecto al tipo de la propiedad determinado por reflecci&#x00f3;n): El nombre de la clase del componente (hijo)."
+#. Tag: para
+#: basic_mapping.xml:1592
+#, no-c-format
+msgid ""
+"Setting a value of the <literal>cascade</literal> attribute to any "
+"meaningful value other than <literal>none</literal> will propagate certain "
+"operations to the associated object. The meaningful values are the names of "
+"Hibernate's basic operations, <literal>persist, merge, delete, save-update, "
+"evict, replicate, lock, refresh</literal>, as well as the special values "
+"<literal>delete-orphan</literal> and <literal>all</literal> and comma-"
+"separated combinations of operation names, for example, <literal>cascade="
+"\"persist,merge,evict\"</literal> or <literal>cascade=\"all,delete-orphan\"</"
+"literal>. See <xref linkend=\"objectstate-transitive\"/> for a full "
+"explanation. Note that single valued associations (many-to-one and one-to-"
+"one associations) do not support orphan delete."
+msgstr ""
+"Establecer el valor del atributo <literal>cascade</literal> a cualquier "
+"valor significativo distinto de <literal>none</literal> propagará ciertas "
+"operaciones al objeto asociado. Los valores significativos son los nombres "
+"de las operaciones básicas de Hibernate, <literal>persist, merge, delete, "
+"save-update, evict, replicate, lock, refresh</literal>, así como los valores "
+"especiales <literal>delete-orphan</literal> y <literal>all</literal> y "
+"combinaciones de operaciones separadas por coma, por ejemplo, "
+"<literal>cascade=\"persist,merge,evict\"</literal> o <literal>cascade=\"all,"
+"delete-orphan\"</literal>. Para una explicación completa, ver <xref linkend="
+"\"objectstate-transitive\"/>."
 
-#: index.docbook:1605
-msgid "A typical <literal>many-to-one</literal> declaration looks as simple as this:"
-msgstr "<literal>insert</literal>: Aparecen las columnas mapeadas en <literal>INSERT</literal>s SQL?"
+#. Tag: para
+#: basic_mapping.xml:1605
+#, no-c-format
+msgid ""
+"A typical <literal>many-to-one</literal> declaration looks as simple as this:"
+msgstr ""
+"Una declaración típica <literal>muchos-a-uno</literal> se parece a esto:"
 
-#: index.docbook:1609
-msgid "<![CDATA[<many-to-one name=\"product\" class=\"Product\" column=\"PRODUCT_ID\"/>]]>"
-msgstr "<literal>update</literal>: Aparecen las columnas mapeadas en <literal>UPDATE</literal>s SQL?"
+#. Tag: programlisting
+#: basic_mapping.xml:1609
+#, no-c-format
+msgid ""
+"<![CDATA[<many-to-one name=\"product\" class=\"Product\" column=\"PRODUCT_ID"
+"\"/>]]>"
+msgstr ""
 
-#: index.docbook:1611
-msgid "The <literal>property-ref</literal> attribute should only be used for mapping legacy data where a foreign key refers to a unique key of the associated table other than the primary key. This is an ugly relational model. For example, suppose the <literal>Product</literal> class had a unique serial number, that is not the primary key. (The <literal>unique</literal> attribute controls Hibernate's DDL generation with the SchemaExport tool.)"
-msgstr "<literal>access</literal> (opcional - por defecto a <literal>property</literal>): La estrategia que Hibernate debe usar para acceder al valor de la propiedad."
+#. Tag: para
+#: basic_mapping.xml:1611
+#, no-c-format
+msgid ""
+"The <literal>property-ref</literal> attribute should only be used for "
+"mapping legacy data where a foreign key refers to a unique key of the "
+"associated table other than the primary key. This is an ugly relational "
+"model. For example, suppose the <literal>Product</literal> class had a "
+"unique serial number, that is not the primary key. (The <literal>unique</"
+"literal> attribute controls Hibernate's DDL generation with the SchemaExport "
+"tool.)"
+msgstr ""
+"El atributo <literal>property-ref</literal> debe ser usado solamente para el "
+"mapeo de datos heredados donde una clave foránea referencia una clave única "
+"de la tabla asociada, distinta de la clave primaria. Este es un modelo "
+"relacional feo. Por ejemplo, supón que la clase <literal>Product</literal> "
+"tuviera un número único serial que no es la clave primaria. (El atributo "
+"<literal>unique</literal> controla la generación de DDL con la herramienta "
+"SchemaExport.)"
 
-#: index.docbook:1620
-msgid "<![CDATA[<property name=\"serialNumber\" unique=\"true\" type=\"string\" column=\"SERIAL_NUMBER\"/>]]>"
-msgstr "<literal>lazy</literal> (opcional - por defecto a <literal>false</literal>): Especifica que este componente debe ser recuperado perezosamente cuando la variable de instancia sea accedida por primera vez (requiere instrumentaci&#x00f3;n de bytecode en tiempo de compilaci&#x00f3;n)."
+#. Tag: programlisting
+#: basic_mapping.xml:1620
+#, no-c-format
+msgid ""
+"<![CDATA[<property name=\"serialNumber\" unique=\"true\" type=\"string\" "
+"column=\"SERIAL_NUMBER\"/>]]>"
+msgstr ""
 
-#: index.docbook:1622
+#. Tag: para
+#: basic_mapping.xml:1622
+#, no-c-format
 msgid "Then the mapping for <literal>OrderItem</literal> might use:"
-msgstr "<literal>optimistic-lock</literal> (opcional - por defecto a <literal>true</literal>): Especifica si las actualizaciones de este componente requieren o no la adquisici&#x00f3;n de un bloqueo optimista. En otras palabras, determina si debe ocurrir un incremento de versi&#x00f3;n cuando esta propiedad est&#x00e1; desactualizada."
+msgstr "Entonces el mapeo para <literal>OrderItem</literal> debería usar:"
 
-#: index.docbook:1626
-msgid "<![CDATA[<many-to-one name=\"product\" property-ref=\"serialNumber\" column=\"PRODUCT_SERIAL_NUMBER\"/>]]>"
-msgstr "<literal>unique</literal> (opcional - por defecto a <literal>false</literal>): Especifica que existe una restricci&#x00f3;n de unicidad sobre todas las columnas mapeadas del componente."
+#. Tag: programlisting
+#: basic_mapping.xml:1626
+#, no-c-format
+msgid ""
+"<![CDATA[<many-to-one name=\"product\" property-ref=\"serialNumber\" column="
+"\"PRODUCT_SERIAL_NUMBER\"/>]]>"
+msgstr ""
 
-#: index.docbook:1628
+#. Tag: para
+#: basic_mapping.xml:1628
+#, no-c-format
 msgid "This is certainly not encouraged, however."
-msgstr "Las etiquetas hijas <literal>&lt;property&gt;</literal> mapean propiedades de la clase hija columnas de la tabla."
+msgstr "Sin embargo, esto no esta ciertamente alentado."
 
-#: index.docbook:1632
-msgid "If the referenced unique key comprises multiple properties of the associated entity, you should map the referenced properties inside a named <literal>&lt;properties&gt;</literal> element."
-msgstr "El elemento <literal>&lt;component&gt;</literal> permite un subelemento <literal>&lt;parent&gt;</literal> que mapea una propiedad de la clase del componente como una referencia de regreso a la entidad contenedora."
+#. Tag: para
+#: basic_mapping.xml:1632
+#, no-c-format
+msgid ""
+"If the referenced unique key comprises multiple properties of the associated "
+"entity, you should map the referenced properties inside a named <literal>&lt;"
+"properties&gt;</literal> element."
+msgstr ""
+"Si la clave única referenciada abarca múltiples propiedades de la entidad "
+"asociada, debes mapear las propiedades dentro de un elemento <literal>&lt;"
+"properties&gt;</literal>."
 
-#: index.docbook:1637
-msgid "If the referenced unique key is the property of a component, you may specify a property path:"
-msgstr "El elemento <literal>&lt;dynamic-component&gt;</literal> permite que un <literal>Map</literal> sea mapeado como un componente, donde los nombres de las propiedades se corresponden a las claves del mapa, ver <xref linkend=\"components-dynamic\"/>."
+#. Tag: para
+#: basic_mapping.xml:1637
+#, no-c-format
+msgid ""
+"If the referenced unique key is the property of a component, you may specify "
+"a property path:"
+msgstr ""
+"UNTRANSLATED! If the referenced unique key is the property of a component, "
+"you may specify a property path:"
 
-#: index.docbook:1641
-msgid "<![CDATA[<many-to-one name=\"owner\" property-ref=\"identity.ssn\" column=\"OWNER_SSN\"/>]]>"
-msgstr "properties"
+#. Tag: programlisting
+#: basic_mapping.xml:1641
+#, no-c-format
+msgid ""
+"<![CDATA[<many-to-one name=\"owner\" property-ref=\"identity.ssn\" column="
+"\"OWNER_SSN\"/>]]>"
+msgstr ""
 
-#: index.docbook:1646
+#. Tag: title
+#: basic_mapping.xml:1646
+#, no-c-format
 msgid "one-to-one"
-msgstr "El elemento <literal>&lt;properties&gt;</literal> permite la definici&#x00f3;n de un grupo de propiedades l&#x00f3;gico con nombre de una clase. El uso m&#x00e1;s importante de la contrucci&#x00f3;n es que permite que una combinaci&#x00f3;n de propiedades sea objetivo de una <literal>property-ref</literal>. Es tambi&#x00e9;n una forma conveniente de definir una restricci&#x00f3;n de unicidad multicolumna."
+msgstr "one-to-one"
 
-#: index.docbook:1648
-msgid "A one-to-one association to another persistent class is declared using a <literal>one-to-one</literal> element."
+#. Tag: para
+#: basic_mapping.xml:1648
+#, no-c-format
+msgid ""
+"A one-to-one association to another persistent class is declared using a "
+"<literal>one-to-one</literal> element."
 msgstr ""
-      "<![CDATA[<properties \n"
-      "        name=\"logicalName\" \n"
-      "        insert=\"true|false\"\n"
-      "        update=\"true|false\"\n"
-      "        optimistic-lock=\"true|false\"\n"
-      "        unique=\"true|false\"\n"
-      ">\n"
-      "        \n"
-      "        <property ...../>\n"
-      "        <many-to-one .... />\n"
-      "        ........\n"
-      "</properties>]]>"
+"Una asociación uno-a-uno a otra clase persistente se declara usando un "
+"elemento <literal>one-to-one</literal>."
 
-#: index.docbook:1666
+#. Tag: programlisting
+#: basic_mapping.xml:1666
+#, no-c-format
 msgid ""
-      "<![CDATA[<one-to-one\n"
-      "        name=\"propertyName\"\n"
-      "        class=\"ClassName\"\n"
-      "        cascade=\"cascade_style\"\n"
-      "        constrained=\"true|false\"\n"
-      "        fetch=\"join|select\"\n"
-      "        property-ref=\"propertyNameFromAssociatedClass\"\n"
-      "        access=\"field|property|ClassName\"\n"
-      "        formula=\"any SQL expression\"\n"
-      "        lazy=\"proxy|no-proxy|false\"\n"
-      "        entity-name=\"EntityName\"\n"
-      "        node=\"element-name|@attribute-name|element/@attribute|.\"\n"
-      "        embed-xml=\"true|false\"\n"
-      "        foreign-key=\"foreign_key_name\"\n"
-      "/>]]>"
-msgstr "<literal>name</literal>: El nombre l&#x00f3;gico del agrupamiento - <emphasis>no</emphasis> un nombre de propiedad real."
+"<![CDATA[<one-to-one\n"
+"        name=\"propertyName\"\n"
+"        class=\"ClassName\"\n"
+"        cascade=\"cascade_style\"\n"
+"        constrained=\"true|false\"\n"
+"        fetch=\"join|select\"\n"
+"        property-ref=\"propertyNameFromAssociatedClass\"\n"
+"        access=\"field|property|ClassName\"\n"
+"        formula=\"any SQL expression\"\n"
+"        lazy=\"proxy|no-proxy|false\"\n"
+"        entity-name=\"EntityName\"\n"
+"        node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+"        embed-xml=\"true|false\"\n"
+"        foreign-key=\"foreign_key_name\"\n"
+"/>]]>"
+msgstr ""
 
-#: index.docbook:1680
-msgid "<literal>cascade</literal> (optional) specifies which operations should be cascaded from the parent object to the associated object."
-msgstr "<literal>optimistic-lock</literal> (opcional - por defecto a <literal>true</literal>): Especifica si las actualizaciones de estas propiedades requieren o no de la adquisici&#x00f3;n de un bloqueo optimista. En otras palabras, determina si debe ocurrir un incremento de versi&#x00f3;n cuando estas propiedades est&#x00e1;n desactualizadas."
+#. Tag: para
+#: basic_mapping.xml:1680
+#, no-c-format
+msgid ""
+"<literal>cascade</literal> (optional) specifies which operations should be "
+"cascaded from the parent object to the associated object."
+msgstr ""
+"<literal>cascade</literal> (opcional) especifica qué operaciones deben ir en "
+"cascada desde el objeto padre al objeto asociado."
 
-#: index.docbook:1686
-msgid "<literal>constrained</literal> (optional) specifies that a foreign key constraint on the primary key of the mapped table references the table of the associated class. This option affects the order in which <literal>save()</literal> and <literal>delete()</literal> are cascaded, and determines whether the association may be proxied (it is also used by the schema export tool)."
-msgstr "<literal>unique</literal> (opcional - por defecto a <literal>false</literal>): Especifica que existe una restricci&#x00f3;n de unicidad sobre todas las columnas mapeadas del componente."
+#. Tag: para
+#: basic_mapping.xml:1686
+#, no-c-format
+msgid ""
+"<literal>constrained</literal> (optional) specifies that a foreign key "
+"constraint on the primary key of the mapped table references the table of "
+"the associated class. This option affects the order in which <literal>save()"
+"</literal> and <literal>delete()</literal> are cascaded, and determines "
+"whether the association may be proxied (it is also used by the schema export "
+"tool)."
+msgstr ""
+"<literal>constrained</literal> (opcional) especifica que una restricción de "
+"clave foránea de la tabla mapeada referencia a la tabla de la clase "
+"asociada. Esta opción afecta el orden en que van en cascada <literal>save()</"
+"literal> y <literal>delete()</literal>, y determina cuándo la asociación "
+"pueden ser virtualizados por proxies (es también usado por la herramienta de "
+"exportación de esquemas)."
 
-#: index.docbook:1701
-msgid "<literal>property-ref</literal>: (optional) The name of a property of the associated class that is joined to the primary key of this class. If not specified, the primary key of the associated class is used."
+#. Tag: para
+#: basic_mapping.xml:1701
+#, no-c-format
+msgid ""
+"<literal>property-ref</literal>: (optional) The name of a property of the "
+"associated class that is joined to the primary key of this class. If not "
+"specified, the primary key of the associated class is used."
 msgstr ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"personNumber\"/>\n"
-      "    ...\n"
-      "    <properties name=\"name\" \n"
-      "            unique=\"true\" update=\"false\">\n"
-      "        <property name=\"firstName\"/>\n"
-      "        <property name=\"initial\"/>\n"
-      "        <property name=\"lastName\"/>\n"
-      "    </properties>\n"
-      "</class>]]>"
+"<literal>property-ref</literal>: (opcional) El nombre de una propiedad de la "
+"clase asociada que esté unida a la clave primaria de esta clase. Si no se "
+"especifica, se usa la clave primaria de la clase asociada."
 
-#: index.docbook:1714
-msgid "<literal>formula</literal> (optional): Almost all one to one associations map to the primary key of the owning entity. In the rare case that this is not the case, you may specify a some other column, columns or expression to join on using an SQL formula. (See <literal>org.hibernate.test.onetooneformula</literal> for an example.)"
+#. Tag: para
+#: basic_mapping.xml:1714
+#, no-c-format
+msgid ""
+"<literal>formula</literal> (optional): Almost all one to one associations "
+"map to the primary key of the owning entity. In the rare case that this is "
+"not the case, you may specify a some other column, columns or expression to "
+"join on using an SQL formula. (See <literal>org.hibernate.test."
+"onetooneformula</literal> for an example.)"
 msgstr ""
-      "<![CDATA[<many-to-one name=\"person\" \n"
-      "         class=\"Person\" property-ref=\"name\">\n"
-      "    <column name=\"firstName\"/>\n"
-      "    <column name=\"initial\"/>\n"
-      "    <column name=\"lastName\"/>\n"
-      "</many-to-one>]]>"
+"<literal>formula</literal> (opcional): Casi todas las asociaciones uno-a-uno "
+"mapean a la clave primaria de la entidad propietaria. En el raro caso en que "
+"este no sea el caso, puedes especificar alguna otra columna, o columnas, o "
+"expresión para unir usando una fórmula SQL. (Para un ejemplo ver "
+"<literal>org.hibernate.test.onetooneformula</literal>)."
 
-#: index.docbook:1722
-msgid "<literal>lazy</literal> (optional - defaults to <literal>proxy</literal>): By default, single point associations are proxied. <literal>lazy=\"no-proxy\"</literal> specifies that the property should be fetched lazily when the instance variable is first accessed (requires build-time bytecode instrumentation). <literal>lazy=\"false\"</literal> specifies that the association will always be eagerly fetched. <emphasis>Note that if <literal>constrained=\"false\"</literal>, proxying is impossible and Hibernate will eager fetch the association!</emphasis>"
-msgstr "No recomendamos el uso de este tipo de cosas fuera del contexto del mapeo de datos heredados."
+#. Tag: para
+#: basic_mapping.xml:1722
+#, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional - defaults to <literal>proxy</literal>): "
+"By default, single point associations are proxied. <literal>lazy=\"no-proxy"
+"\"</literal> specifies that the property should be fetched lazily when the "
+"instance variable is first accessed (requires build-time bytecode "
+"instrumentation). <literal>lazy=\"false\"</literal> specifies that the "
+"association will always be eagerly fetched. <emphasis>Note that if "
+"<literal>constrained=\"false\"</literal>, proxying is impossible and "
+"Hibernate will eager fetch the association!</emphasis>"
+msgstr ""
+"<literal>lazy</literal> (opcional - por defecto a <literal>proxy</literal>): "
+"Por defecto, las asociaciones de punto único van con proxies. <literal>lazy="
+"\"true\"</literal> especifica que esta propiedad debe ser traída "
+"perezosamente cuando la variable de instancia sea accedida por primera vez "
+"(requiere instrumentación del bytecode en tiempo de compilación). "
+"<literal>lazy=\"false\"</literal> especifica que la asociación siempre será "
+"recuperada tempranamente. <emphasis>Observa que si <literal>constrained="
+"\"false\"</literal>, la aplicación de proxies es imposible e Hibernate "
+"traerá temprano la asociación!</emphasis>"
 
-#: index.docbook:1740
+#. Tag: para
+#: basic_mapping.xml:1740
+#, no-c-format
 msgid "There are two varieties of one-to-one association:"
-msgstr "Finalmente, la persistencia polim&#x00f3;rfica requiere la declaraci&#x00f3;n de la clase persistente ra&#x00ed;z. Para la estrategia de mapeo tabla-por-jerarqu&#x00ed;a-de-clases, se usa la declaraci&#x00f3;n de <literal>&lt;subclass&gt;</literal>."
+msgstr "Hay dos variedades de asociaciones uno-a-uno:"
 
-#: index.docbook:1744
+#. Tag: para
+#: basic_mapping.xml:1744
+#, no-c-format
 msgid "primary key associations"
-msgstr ""
-      "<![CDATA[<subclass\n"
-      "        name=\"ClassName\"\n"
-      "        discriminator-value=\"discriminator_value\"\n"
-      "        proxy=\"ProxyInterface\"\n"
-      "        lazy=\"true|false\"\n"
-      "        dynamic-update=\"true|false\"\n"
-      "        dynamic-insert=\"true|false\"\n"
-      "        entity-name=\"EntityName\"\n"
-      "        node=\"element-name\">\n"
-      "\n"
-      "        <property .... />\n"
-      "        .....\n"
-      "</subclass>]]>"
+msgstr "asociaciones de clave primaria"
 
-#: index.docbook:1747
+#. Tag: para
+#: basic_mapping.xml:1747
+#, no-c-format
 msgid "unique foreign key associations"
-msgstr "<literal>name</literal>: El nombre de clase cualificado completamente de la subclase."
+msgstr "asociaciones de clave foráneas única"
 
-#: index.docbook:1752
-msgid "Primary key associations don't need an extra table column; if two rows are related by the association then the two table rows share the same primary key value. So if you want two objects to be related by a primary key association, you must make sure that they are assigned the same identifier value!"
-msgstr "<literal>discriminator-value</literal> (opcional - por defecto al nombre de la clase): Un valor que distingue a subclases individuales."
+#. Tag: para
+#: basic_mapping.xml:1752
+#, no-c-format
+msgid ""
+"Primary key associations don't need an extra table column; if two rows are "
+"related by the association then the two table rows share the same primary "
+"key value. So if you want two objects to be related by a primary key "
+"association, you must make sure that they are assigned the same identifier "
+"value!"
+msgstr ""
+"Las asociaciones de clave primaria no necesitan una columna de tabla extra; "
+"si dos filas están relacionadas por la asociación entonces las dos filas de "
+"tablas comparten el mismo valor de clave primaria. Por lo tanto, si quieres "
+"que dos objetos estén relacionados por una asociación de clave primaria, "
+"debes asegurarte que se les asigne el mismo valor de identificador!"
 
-#: index.docbook:1759
-msgid "For a primary key association, add the following mappings to <literal>Employee</literal> and <literal>Person</literal>, respectively."
-msgstr "<literal>proxy</literal> (opcional): Especifica una clase o interface a usar para proxies de inicializaci&#x00f3;n perezosa."
+#. Tag: para
+#: basic_mapping.xml:1759
+#, no-c-format
+msgid ""
+"For a primary key association, add the following mappings to "
+"<literal>Employee</literal> and <literal>Person</literal>, respectively."
+msgstr ""
+"Para una asociación de clave primaria, añade los siguientes mapeos a "
+"<literal>Employee</literal> y <literal>Person</literal>, respectivamente."
 
-#: index.docbook:1764
+#. Tag: programlisting
+#: basic_mapping.xml:1764
+#, no-c-format
 msgid "<![CDATA[<one-to-one name=\"person\" class=\"Person\"/>]]>"
-msgstr "<literal>lazy</literal> (opcional, por defecto a <literal>true</literal>): Establecer <literal>lazy=\"false\"</literal> deshabilita el uso de recuperaci&#x00f3;n perezosa."
+msgstr ""
 
-#: index.docbook:1765
-msgid "<![CDATA[<one-to-one name=\"employee\" class=\"Employee\" constrained=\"true\"/>]]>"
-msgstr "Cada subclase debe declarar sus propias propiedades persistentes y subclases. Se asume que las propiedades <literal>&lt;version&gt;</literal> y <literal>&lt;id&gt;</literal> son heredadas de la clase ra&#x00ed;z. Cada subclase en una jerarqu&#x00ed;a debe definir un <literal>discriminator-value</literal> &#x00fa;nico. Si no se especifica ninguno, se usa el nombre completamente cualificado de clase Java."
+#. Tag: programlisting
+#: basic_mapping.xml:1765
+#, no-c-format
+msgid ""
+"<![CDATA[<one-to-one name=\"employee\" class=\"Employee\" constrained=\"true"
+"\"/>]]>"
+msgstr ""
 
-#: index.docbook:1767
-msgid "Now we must ensure that the primary keys of related rows in the PERSON and EMPLOYEE tables are equal. We use a special Hibernate identifier generation strategy called <literal>foreign</literal>:"
-msgstr "Es posible definir mapeos <literal>subclass</literal>, <literal>union-subclass</literal>, y <literal>joined-subclass</literal> en documentos de mapeo separados, directamente debajo de <literal>hibernate-mapping</literal>. Esto te permite extender una jerarqu&#x00ed;a de clases con s&#x00f3;lo agregar un nuevo fichero de mapeo. Debes especificar un atributo <literal>extends</literal> en el mapeo de la subclase, mencionando una superclase previamente mapeada. Nota: Previamente esta funcionalidad hac&#x00ed;a importante el orden de los documentos de mapeo. Desde Hibernate3, el orden de los ficheros de mapeo no importa cuando se usa la palabra reservada extends. El orden dentro de un mismo fichero de mapeo todav&#x00ed;a necesita ser definido como superclases antes de subclases."
+#. Tag: para
+#: basic_mapping.xml:1767
+#, no-c-format
+msgid ""
+"Now we must ensure that the primary keys of related rows in the PERSON and "
+"EMPLOYEE tables are equal. We use a special Hibernate identifier generation "
+"strategy called <literal>foreign</literal>:"
+msgstr ""
+"Ahora debemos asegurarnos que las claves primarias de las filas relacionadas "
+"en las tablas PERSON y EMPLOYEE sean iguales. Usamos una estrategia especial "
+"de generación de identificador de Hibernate llamada <literal>foreign</"
+"literal>:"
 
-#: index.docbook:1773
+#. Tag: programlisting
+#: basic_mapping.xml:1773
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"person\" table=\"PERSON\">\n"
-      "    <id name=\"id\" column=\"PERSON_ID\">\n"
-      "        <generator class=\"foreign\">\n"
-      "            <param name=\"property\">employee</param>\n"
-      "        </generator>\n"
-      "    </id>\n"
-      "    ...\n"
-      "    <one-to-one name=\"employee\"\n"
-      "        class=\"Employee\"\n"
-      "        constrained=\"true\"/>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"person\" table=\"PERSON\">\n"
+"    <id name=\"id\" column=\"PERSON_ID\">\n"
+"        <generator class=\"foreign\">\n"
+"            <param name=\"property\">employee</param>\n"
+"        </generator>\n"
+"    </id>\n"
+"    ...\n"
+"    <one-to-one name=\"employee\"\n"
+"        class=\"Employee\"\n"
+"        constrained=\"true\"/>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[\n"
-      "<hibernate-mapping>\n"
-      "    <subclass name=\"DomesticCat\" extends=\"Cat\" discriminator-value=\"D\">\n"
-      "         <property name=\"name\" type=\"string\"/>\n"
-      "    </subclass>\n"
-      "</hibernate-mapping>]]>"
 
-#: index.docbook:1775
-msgid "A newly saved instance of <literal>Person</literal> is then assigned the same primary key value as the <literal>Employee</literal> instance refered with the <literal>employee</literal> property of that <literal>Person</literal>."
-msgstr "Para informaci&#x00f3;n acerca de mapeos de herencia, ver <xref linkend=\"inheritance\"/>."
+#. Tag: para
+#: basic_mapping.xml:1775
+#, no-c-format
+msgid ""
+"A newly saved instance of <literal>Person</literal> is then assigned the "
+"same primary key value as the <literal>Employee</literal> instance refered "
+"with the <literal>employee</literal> property of that <literal>Person</"
+"literal>."
+msgstr ""
+"A una instancia recién salvada de <literal>Person</literal> se le asigna "
+"entonces el mismo valor de clave primaria con que la instancia "
+"<literal>Employee</literal> referida por la propiedad <literal>employee</"
+"literal> de esta <literal>Person</literal>."
 
-#: index.docbook:1781
-msgid "Alternatively, a foreign key with a unique constraint, from <literal>Employee</literal> to <literal>Person</literal>, may be expressed as:"
-msgstr "joined-subclass"
+#. Tag: para
+#: basic_mapping.xml:1781
+#, no-c-format
+msgid ""
+"Alternatively, a foreign key with a unique constraint, from "
+"<literal>Employee</literal> to <literal>Person</literal>, may be expressed "
+"as:"
+msgstr ""
+"Alternativamente, una clave foránea con una restricción de unicidad, desde "
+"<literal>Employee</literal> a <literal>Person</literal>, puede ser expresada "
+"como:"
 
-#: index.docbook:1786
-msgid "<![CDATA[<many-to-one name=\"person\" class=\"Person\" column=\"PERSON_ID\" unique=\"true\"/>]]>"
-msgstr "Alternativamente, cada subclase puede ser mapeada a su propia tabla (estrategia de mapeo tabla-por-subclase). El estado heredado se recupera uniendo con la tabla de la superclase. Usamos el elemento <literal>&lt;joined-subclass&gt;</literal>."
+#. Tag: programlisting
+#: basic_mapping.xml:1786
+#, no-c-format
+msgid ""
+"<![CDATA[<many-to-one name=\"person\" class=\"Person\" column=\"PERSON_ID\" "
+"unique=\"true\"/>]]>"
+msgstr ""
 
-#: index.docbook:1788
-msgid "And this association may be made bidirectional by adding the following to the <literal>Person</literal> mapping:"
+#. Tag: para
+#: basic_mapping.xml:1788
+#, no-c-format
+msgid ""
+"And this association may be made bidirectional by adding the following to "
+"the <literal>Person</literal> mapping:"
 msgstr ""
-      "<![CDATA[<joined-subclass\n"
-      "        name=\"ClassName\"\n"
-      "        table=\"tablename\"\n"
-      "        proxy=\"ProxyInterface\"\n"
-      "        lazy=\"true|false\"\n"
-      "        dynamic-update=\"true|false\"\n"
-      "        dynamic-insert=\"true|false\"\n"
-      "        schema=\"schema\"\n"
-      "        catalog=\"catalog\"\n"
-      "        extends=\"SuperclassName\"\n"
-      "        persister=\"ClassName\"\n"
-      "        subselect=\"SQL expression\"\n"
-      "        entity-name=\"EntityName\"\n"
-      "        node=\"element-name\">\n"
-      "\n"
-      "        <key .... >\n"
-      "\n"
-      "        <property .... />\n"
-      "        .....\n"
-      "</joined-subclass>]]>"
+"Y esta asociación puede hacerse bidireccional agregando lo siguiente al "
+"mapeo de <literal>Person</literal> :"
 
-#: index.docbook:1793
-msgid "<![CDATA[<one-to-one name=\"employee\" class=\"Employee\" property-ref=\"person\"/>]]>"
-msgstr "<literal>name</literal>: El nombre de clase completamente cualificado de la subclase."
+#. Tag: programlisting
+#: basic_mapping.xml:1793
+#, no-c-format
+msgid ""
+"<![CDATA[<one-to-one name=\"employee\" class=\"Employee\" property-ref="
+"\"person\"/>]]>"
+msgstr ""
 
-#: index.docbook:1798
+#. Tag: title
+#: basic_mapping.xml:1798
+#, no-c-format
 msgid "natural-id"
-msgstr "<literal>table</literal>: El nombre de tabla de la subclase."
+msgstr "natural-id"
 
-#: index.docbook:1800
+#. Tag: programlisting
+#: basic_mapping.xml:1800
+#, no-c-format
 msgid ""
-      "<![CDATA[<natural-id mutable=\"true|false\"/>\n"
-      "        <property ... />\n"
-      "        <many-to-one ... />\n"
-      "        ......\n"
-      "</natural-id>]]>"
-msgstr "<literal>proxy</literal> (opcional): Especifica una clase o interface a usar para proxies de inicializac&#x00f3;n perezosa."
+"<![CDATA[<natural-id mutable=\"true|false\"/>\n"
+"        <property ... />\n"
+"        <many-to-one ... />\n"
+"        ......\n"
+"</natural-id>]]>"
+msgstr ""
 
-#: index.docbook:1802
-msgid "Even though we recommend the use of surrogate keys as primary keys, you should still try to identify natural keys for all entities. A natural key is a property or combination of properties that is unique and non-null. If it is also immutable, even better. Map the properties of the natural key inside the <literal>&lt;natural-id&gt;</literal> element. Hibernate will generate the necessary unique key and nullability constraints, and your mapping will be more self-documenting."
-msgstr "<literal>lazy</literal> (opcional, por defecto a <literal>true</literal>): Establecer <literal>lazy=\"false\"</literal> deshabilita el uso de recuperaci&#x00f3;n perezosa."
+#. Tag: para
+#: basic_mapping.xml:1802
+#, no-c-format
+msgid ""
+"Even though we recommend the use of surrogate keys as primary keys, you "
+"should still try to identify natural keys for all entities. A natural key is "
+"a property or combination of properties that is unique and non-null. If it "
+"is also immutable, even better. Map the properties of the natural key inside "
+"the <literal>&lt;natural-id&gt;</literal> element. Hibernate will generate "
+"the necessary unique key and nullability constraints, and your mapping will "
+"be more self-documenting."
+msgstr ""
+"Aunque recomendamos el uso de claves delegadas como claves primarias, "
+"todavía debes intentar identificar claves naturales para todas las "
+"entidades. Una clave natural es una propiedad o combinación de propiedades "
+"que es única y no nula. Si además es inmutable, mejor aún. Mapea las "
+"propiedades de la clave natural dentro del elemento <literal>&lt;natural-"
+"id&gt;</literal>. Hibernate generará las restricciones de clave única y "
+"nulabilidad necesarias, y tu mapeo será más auto-documentado."
 
-#: index.docbook:1811
-msgid "We strongly recommend that you implement <literal>equals()</literal> and <literal>hashCode()</literal> to compare the natural key properties of the entity."
-msgstr "No se requiere de una columna discriminadora para esta estrategia de mapeo. Cada subclase debe, sin embargo, declarar una columna de tabla que tenga el identificador del objeto usando el elemento <literal>&lt;key&gt;</literal>. El mapeo del comienzo del cap&#x00ed;tulo deber&#x00ed;a ser reescrito como:"
+#. Tag: para
+#: basic_mapping.xml:1811
+#, no-c-format
+msgid ""
+"We strongly recommend that you implement <literal>equals()</literal> and "
+"<literal>hashCode()</literal> to compare the natural key properties of the "
+"entity."
+msgstr ""
+"Recomendamos fuertemente que implementes <literal>equals()</literal> y "
+"<literal>hashCode()</literal> para comparar las propiedades de clave natural "
+"de la entidad."
 
-#: index.docbook:1816
-msgid "This mapping is not intended for use with entities with natural primary keys."
+#. Tag: para
+#: basic_mapping.xml:1816
+#, no-c-format
+msgid ""
+"This mapping is not intended for use with entities with natural primary keys."
 msgstr ""
-      "<![CDATA[<?xml version=\"1.0\"?>\n"
-      "<!DOCTYPE hibernate-mapping PUBLIC\n"
-      "        \"-//Hibernate/Hibernate Mapping DTD//EN\"\n"
-      "        \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
-      "\n"
-      "<hibernate-mapping package=\"eg\">\n"
-      "\n"
-      "        <class name=\"Cat\" table=\"CATS\">\n"
-      "                <id name=\"id\" column=\"uid\" type=\"long\">\n"
-      "                        <generator class=\"hilo\"/>\n"
-      "                </id>\n"
-      "                <property name=\"birthdate\" type=\"date\"/>\n"
-      "                <property name=\"color\" not-null=\"true\"/>\n"
-      "                <property name=\"sex\" not-null=\"true\"/>\n"
-      "                <property name=\"weight\"/>\n"
-      "                <many-to-one name=\"mate\"/>\n"
-      "                <set name=\"kittens\">\n"
-      "                        <key column=\"MOTHER\"/>\n"
-      "                        <one-to-many class=\"Cat\"/>\n"
-      "                </set>\n"
-      "                <joined-subclass name=\"DomesticCat\" table=\"DOMESTIC_CATS\">\n"
-      "                    <key column=\"CAT\"/>\n"
-      "                    <property name=\"name\" type=\"string\"/>\n"
-      "                </joined-subclass>\n"
-      "        </class>\n"
-      "\n"
-      "        <class name=\"eg.Dog\">\n"
-      "                <!-- mapping for Dog could go here -->\n"
-      "        </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
+"Este mapeo no está concebido para usar con entidades con claves primarias "
+"naturales."
 
-#: index.docbook:1822
-msgid "<literal>mutable</literal> (optional, defaults to <literal>false</literal>): By default, natural identifier properties as assumed to be immutable (constant)."
-msgstr "Para informaci&#x00f3;n acerca de mapeos de herencia, ver <xref linkend=\"inheritance\"/>."
+#. Tag: para
+#: basic_mapping.xml:1822
+#, no-c-format
+msgid ""
+"<literal>mutable</literal> (optional, defaults to <literal>false</literal>): "
+"By default, natural identifier properties as assumed to be immutable "
+"(constant)."
+msgstr ""
+"<literal>mutable</literal> (opcional, por defecto a <literal>false</"
+"literal>): Por defecto, se asume que las propiedades de identificadores "
+"naturales son inmutables (constantes)."
 
-#: index.docbook:1832
+#. Tag: title
+#: basic_mapping.xml:1832
+#, no-c-format
 msgid "component, dynamic-component"
-msgstr "union-subclass"
+msgstr "component, dynamic-component"
 
-#: index.docbook:1834
-msgid "The <literal>&lt;component&gt;</literal> element maps properties of a child object to columns of the table of a parent class. Components may, in turn, declare their own properties, components or collections. See \"Components\" below."
-msgstr "Una tercera opci&#x00f3;n es mapear s&#x00f3;lo las clases concretas de una jerarqu&#x00ed;a de clases a tablas, (la estrategia tabla-por-clase-concreta) donde cada tabla define todo el estado persistente de la clase, incluyendo el estado heredado. En Hibernate, no es absolutamente necesario mapear dichas jerarqu&#x00ed;as de herencia. Puedes simplemente mapear cada clase con una declaraci&#x00f3;n <literal>&lt;class&gt;</literal> separada. Sin embargo, si deseas usar asociaciones polim&#x00f3;rficas (por ejemplo, una asociaci&#x00f3;n a la superclase de tu jerarqu&#x00ed;a), debes usar el mapeo <literal>&lt;union-subclass&gt;</literal>."
+#. Tag: para
+#: basic_mapping.xml:1834
+#, no-c-format
+msgid ""
+"The <literal>&lt;component&gt;</literal> element maps properties of a child "
+"object to columns of the table of a parent class. Components may, in turn, "
+"declare their own properties, components or collections. See \"Components\" "
+"below."
+msgstr ""
+"El elemento <literal>&lt;component&gt;</literal> mapea propiedades de un "
+"objeto hijo a columnas de la tabla de la clase padre. Los componentes pueden "
+"a su vez declarar sus propias propiedades, componentes o colecciones. Ver "
+"debajo \"Componentes\"."
 
-#: index.docbook:1852
+#. Tag: programlisting
+#: basic_mapping.xml:1852
+#, no-c-format
 msgid ""
-      "<![CDATA[<component\n"
-      "        name=\"propertyName\"\n"
-      "        class=\"className\"\n"
-      "        insert=\"true|false\"\n"
-      "        update=\"true|false\"\n"
-      "        access=\"field|property|ClassName\"\n"
-      "        lazy=\"true|false\"\n"
-      "        optimistic-lock=\"true|false\"\n"
-      "        unique=\"true|false\"\n"
-      "        node=\"element-name|.\"\n"
-      ">\n"
-      "\n"
-      "        <property ...../>\n"
-      "        <many-to-one .... />\n"
-      "        ........\n"
-      "</component>]]>"
+"<![CDATA[<component\n"
+"        name=\"propertyName\"\n"
+"        class=\"className\"\n"
+"        insert=\"true|false\"\n"
+"        update=\"true|false\"\n"
+"        access=\"field|property|ClassName\"\n"
+"        lazy=\"true|false\"\n"
+"        optimistic-lock=\"true|false\"\n"
+"        unique=\"true|false\"\n"
+"        node=\"element-name|.\"\n"
+">\n"
+"\n"
+"        <property ...../>\n"
+"        <many-to-one .... />\n"
+"        ........\n"
+"</component>]]>"
 msgstr ""
-      "<![CDATA[<union-subclass\n"
-      "        name=\"ClassName\"\n"
-      "        table=\"tablename\"\n"
-      "        proxy=\"ProxyInterface\"\n"
-      "        lazy=\"true|false\"\n"
-      "        dynamic-update=\"true|false\"\n"
-      "        dynamic-insert=\"true|false\"\n"
-      "        schema=\"schema\"\n"
-      "        catalog=\"catalog\"\n"
-      "        extends=\"SuperclassName\"\n"
-      "        abstract=\"true|false\"\n"
-      "        persister=\"ClassName\"\n"
-      "        subselect=\"SQL expression\"\n"
-      "        entity-name=\"EntityName\"\n"
-      "        node=\"element-name\">\n"
-      "\n"
-      "        <property .... />\n"
-      "        .....\n"
-      "</union-subclass>]]>"
 
-#: index.docbook:1860
-msgid "<literal>class</literal> (optional - defaults to the property type determined by reflection): The name of the component (child) class."
-msgstr "<literal>table</literal>: El nombre de tabla de la subclase."
+#. Tag: para
+#: basic_mapping.xml:1860
+#, no-c-format
+msgid ""
+"<literal>class</literal> (optional - defaults to the property type "
+"determined by reflection): The name of the component (child) class."
+msgstr ""
+"<literal>class</literal> (opcional - por defecto al tipo de la propiedad "
+"determinado por reflección): El nombre de la clase del componente (hijo)."
 
-#: index.docbook:1866, index.docbook:1955
-msgid "<literal>insert</literal>: Do the mapped columns appear in SQL <literal>INSERT</literal>s?"
-msgstr "<literal>proxy</literal> (optional): Especifica una clase o interface a usar para proxies de inicializac&#x00f3;n perezosa."
+#. Tag: para
+#: basic_mapping.xml:1866 basic_mapping.xml:1955
+#, no-c-format
+msgid ""
+"<literal>insert</literal>: Do the mapped columns appear in SQL "
+"<literal>INSERT</literal>s?"
+msgstr ""
+"<literal>insert</literal>: Aparecen las columnas mapeadas en "
+"<literal>INSERT</literal>s SQL?"
 
-#: index.docbook:1872, index.docbook:1961
-msgid "<literal>update</literal>: Do the mapped columns appear in SQL <literal>UPDATE</literal>s?"
-msgstr "<literal>lazy</literal> (opcional, por defecto a <literal>true</literal>): Establecer <literal>lazy=\"false\"</literal> deshabilita el uso de recuperaci&#x00f3;n perezosa."
+#. Tag: para
+#: basic_mapping.xml:1872 basic_mapping.xml:1961
+#, no-c-format
+msgid ""
+"<literal>update</literal>: Do the mapped columns appear in SQL "
+"<literal>UPDATE</literal>s?"
+msgstr ""
+"<literal>update</literal>: Aparecen las columnas mapeadas en "
+"<literal>UPDATE</literal>s SQL?"
 
-#: index.docbook:1884
-msgid "<literal>lazy</literal> (optional - defaults to <literal>false</literal>): Specifies that this component should be fetched lazily when the instance variable is first accessed (requires build-time bytecode instrumentation)."
-msgstr "Para informaci&#x00f3;n acerca de mapeos de herencia, ver <xref linkend=\"inheritance\"/>."
+#. Tag: para
+#: basic_mapping.xml:1884
+#, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional - defaults to <literal>false</literal>): "
+"Specifies that this component should be fetched lazily when the instance "
+"variable is first accessed (requires build-time bytecode instrumentation)."
+msgstr ""
+"<literal>lazy</literal> (opcional - por defecto a <literal>false</literal>): "
+"Especifica que este componente debe ser recuperado perezosamente cuando la "
+"variable de instancia sea accedida por primera vez (requiere instrumentación "
+"de bytecode en tiempo de compilación)."
 
-#: index.docbook:1891
-msgid "<literal>optimistic-lock</literal> (optional - defaults to <literal>true</literal>): Specifies that updates to this component do or do not require acquisition of the optimistic lock. In other words, determines if a version increment should occur when this property is dirty."
-msgstr "join"
+#. Tag: para
+#: basic_mapping.xml:1891
+#, no-c-format
+msgid ""
+"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
+"literal>): Specifies that updates to this component do or do not require "
+"acquisition of the optimistic lock. In other words, determines if a version "
+"increment should occur when this property is dirty."
+msgstr ""
+"<literal>optimistic-lock</literal> (opcional - por defecto a <literal>true</"
+"literal>): Especifica si las actualizaciones de este componente requieren o "
+"no la adquisición de un bloqueo optimista. En otras palabras, determina si "
+"debe ocurrir un incremento de versión cuando esta propiedad está "
+"desactualizada."
 
-#: index.docbook:1899, index.docbook:1975
-msgid "<literal>unique</literal> (optional - defaults to <literal>false</literal>): Specifies that a unique constraint exists upon all mapped columns of the component."
-msgstr "Usando el elemento <literal>&lt;join&gt;</literal>, es posible mapear propiedades de una clase a varias tablas."
+#. Tag: para
+#: basic_mapping.xml:1899 basic_mapping.xml:1975
+#, no-c-format
+msgid ""
+"<literal>unique</literal> (optional - defaults to <literal>false</literal>): "
+"Specifies that a unique constraint exists upon all mapped columns of the "
+"component."
+msgstr ""
+"<literal>unique</literal> (opcional - por defecto a <literal>false</"
+"literal>): Especifica que existe una restricción de unicidad sobre todas las "
+"columnas mapeadas del componente."
 
-#: index.docbook:1908
-msgid "The child <literal>&lt;property&gt;</literal> tags map properties of the child class to table columns."
+#. Tag: para
+#: basic_mapping.xml:1908
+#, no-c-format
+msgid ""
+"The child <literal>&lt;property&gt;</literal> tags map properties of the "
+"child class to table columns."
 msgstr ""
-      "<![CDATA[<join\n"
-      "        table=\"tablename\"\n"
-      "        schema=\"owner\"\n"
-      "        catalog=\"catalog\"\n"
-      "        fetch=\"join|select\"\n"
-      "        inverse=\"true|false\"\n"
-      "        optional=\"true|false\">\n"
-      "        \n"
-      "        <key ... />\n"
-      "        \n"
-      "        <property ... />\n"
-      "        ...\n"
-      "</join>]]>"
+"Las etiquetas hijas <literal>&lt;property&gt;</literal> mapean propiedades "
+"de la clase hija columnas de la tabla."
 
-#: index.docbook:1913
-msgid "The <literal>&lt;component&gt;</literal> element allows a <literal>&lt;parent&gt;</literal> subelement that maps a property of the component class as a reference back to the containing entity."
-msgstr "<literal>table</literal>: El nombre de la clase unida."
+#. Tag: para
+#: basic_mapping.xml:1913
+#, no-c-format
+msgid ""
+"The <literal>&lt;component&gt;</literal> element allows a <literal>&lt;"
+"parent&gt;</literal> subelement that maps a property of the component class "
+"as a reference back to the containing entity."
+msgstr ""
+"El elemento <literal>&lt;component&gt;</literal> permite un subelemento "
+"<literal>&lt;parent&gt;</literal> que mapea una propiedad de la clase del "
+"componente como una referencia de regreso a la entidad contenedora."
 
-#: index.docbook:1919
-msgid "The <literal>&lt;dynamic-component&gt;</literal> element allows a <literal>Map</literal> to be mapped as a component, where the property names refer to keys of the map, see <xref linkend=\"components-dynamic\"/>."
-msgstr "<literal>schema</literal> (opcional): Sobrescribe el nombre de esquema especificado por el elemento ra&#x00ed;z <literal>&lt;hibernate-mapping&gt;</literal>."
+#. Tag: para
+#: basic_mapping.xml:1919
+#, no-c-format
+msgid ""
+"The <literal>&lt;dynamic-component&gt;</literal> element allows a "
+"<literal>Map</literal> to be mapped as a component, where the property names "
+"refer to keys of the map, see <xref linkend=\"components-dynamic\"/>."
+msgstr ""
+"El elemento <literal>&lt;dynamic-component&gt;</literal> permite que un "
+"<literal>Map</literal> sea mapeado como un componente, donde los nombres de "
+"las propiedades se corresponden a las claves del mapa, ver <xref linkend="
+"\"components-dynamic\"/>."
 
-#: index.docbook:1928
+#. Tag: title
+#: basic_mapping.xml:1928
+#, no-c-format
 msgid "properties"
-msgstr "<literal>catalog</literal> (opcional): Sobrescribe el nombre de cat&#x00e1;logo especificado por el elemento ra&#x00ed;z <literal>&lt;hibernate-mapping&gt;</literal>."
+msgstr "properties"
 
-#: index.docbook:1930
-msgid "The <literal>&lt;properties&gt;</literal> element allows the definition of a named, logical grouping of properties of a class. The most important use of the construct is that it allows a combination of properties to be the target of a <literal>property-ref</literal>. It is also a convenient way to define a multi-column unique constraint."
-msgstr "<literal>fetch</literal> (opcional - por defecto a <literal>join</literal>): Si se establece a <literal>join</literal>, por defecto, Hibernate usar&#x00e1; una uni&#x00f3;n interior (inner join) para recuperar un <literal>&lt;join&gt;</literal> definido por una clase o sus superclases y una uni&#x00f3;n externa (outer join) para un <literal>&lt;join&gt;</literal> definido por una subclase. Si se establece a <literal>select</literal>, entonces Hibernate usar&#x00e1; una select secuencial para un <literal>&lt;join&gt;</literal> definido en una subclase, que ser&#x00e1; publicada s&#x00f3;lo si una fila resulta representar una instancia de la subclase. Las uniones interiores todav&#x00ed;a ser&#x00e1;n usados para recuperar un <literal>&lt;join&gt;</literal> definido por la clase y sus superclases."
+#. Tag: para
+#: basic_mapping.xml:1930
+#, no-c-format
+msgid ""
+"The <literal>&lt;properties&gt;</literal> element allows the definition of a "
+"named, logical grouping of properties of a class. The most important use of "
+"the construct is that it allows a combination of properties to be the target "
+"of a <literal>property-ref</literal>. It is also a convenient way to define "
+"a multi-column unique constraint."
+msgstr ""
+"El elemento <literal>&lt;properties&gt;</literal> permite la definición de "
+"un grupo de propiedades lógico con nombre de una clase. El uso más "
+"importante de la contrucción es que permite que una combinación de "
+"propiedades sea objetivo de una <literal>property-ref</literal>. Es también "
+"una forma conveniente de definir una restricción de unicidad multicolumna."
 
-#: index.docbook:1946
+#. Tag: programlisting
+#: basic_mapping.xml:1946
+#, no-c-format
 msgid ""
-      "<![CDATA[<properties\n"
-      "        name=\"logicalName\"\n"
-      "        insert=\"true|false\"\n"
-      "        update=\"true|false\"\n"
-      "        optimistic-lock=\"true|false\"\n"
-      "        unique=\"true|false\"\n"
-      ">\n"
-      "\n"
-      "        <property ...../>\n"
-      "        <many-to-one .... />\n"
-      "        ........\n"
-      "</properties>]]>"
-msgstr "<literal>inverse</literal> (opcional - por defecto a <literal>false</literal>): De habilitarse, Hibernate no intentar&#x00e1; insertar o actualizar las propiedades definidas por esta uni&#x00f3;n."
+"<![CDATA[<properties\n"
+"        name=\"logicalName\"\n"
+"        insert=\"true|false\"\n"
+"        update=\"true|false\"\n"
+"        optimistic-lock=\"true|false\"\n"
+"        unique=\"true|false\"\n"
+">\n"
+"\n"
+"        <property ...../>\n"
+"        <many-to-one .... />\n"
+"        ........\n"
+"</properties>]]>"
+msgstr ""
 
-#: index.docbook:1949
-msgid "<literal>name</literal>: The logical name of the grouping - <emphasis>not</emphasis> an actual property name."
-msgstr "<literal>optional</literal> (opcional - por defecto a <literal>false</literal>): De habilitarse, Hibernate insertar&#x00e1; una fila s&#x00f3;lo si las propiedades definidas por esta uni&#x00f3;n son no nulas y siempre usar&#x00e1; una uni&#x00f3;n externa para recuperar las propiedades."
+#. Tag: para
+#: basic_mapping.xml:1949
+#, no-c-format
+msgid ""
+"<literal>name</literal>: The logical name of the grouping - <emphasis>not</"
+"emphasis> an actual property name."
+msgstr ""
+"<literal>name</literal>: El nombre lógico del agrupamiento - <emphasis>no</"
+"emphasis> un nombre de propiedad real."
 
-#: index.docbook:1967
-msgid "<literal>optimistic-lock</literal> (optional - defaults to <literal>true</literal>): Specifies that updates to these properties do or do not require acquisition of the optimistic lock. In other words, determines if a version increment should occur when these properties are dirty."
-msgstr "Esta funcionalidad es a menudo solamente &#x00fa;til para modelos de datos heredados; recomendamos menos tablas que clases un modelo de dominio m&#x00e1;s granularizado. Sin embargo, es &#x00fa;til para cambiar entre estrategias de mapeo de herencias en una misma jerarqu&#x00ed;a, como se explica luego."
+#. Tag: para
+#: basic_mapping.xml:1967
+#, no-c-format
+msgid ""
+"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
+"literal>): Specifies that updates to these properties do or do not require "
+"acquisition of the optimistic lock. In other words, determines if a version "
+"increment should occur when these properties are dirty."
+msgstr ""
+"<literal>optimistic-lock</literal> (opcional - por defecto a <literal>true</"
+"literal>): Especifica si las actualizaciones de estas propiedades requieren "
+"o no de la adquisición de un bloqueo optimista. En otras palabras, determina "
+"si debe ocurrir un incremento de versión cuando estas propiedades están "
+"desactualizadas."
 
-#: index.docbook:1984
-msgid "For example, if we have the following <literal>&lt;properties&gt;</literal> mapping:"
-msgstr "Hasta ahora hemos visto el elemento <literal>&lt;key&gt;</literal> pocas veces. Aparece en cualquier sitio en que el elemento padre de mapeo defina una uni&#x00f3;n a una nueva tabla, y define la clave for&#x00e1;nea en la tabla unida, que referencia la clave primaria de la tabla original."
+#. Tag: para
+#: basic_mapping.xml:1984
+#, no-c-format
+msgid ""
+"For example, if we have the following <literal>&lt;properties&gt;</literal> "
+"mapping:"
+msgstr ""
+"Por ejemplo, si tenemos el siguiente mapeo de <literal>&lt;properties&gt;</"
+"literal>:"
 
-#: index.docbook:1988
+#. Tag: programlisting
+#: basic_mapping.xml:1988
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"personNumber\"/>\n"
-      "    ...\n"
-      "    <properties name=\"name\"\n"
-      "            unique=\"true\" update=\"false\">\n"
-      "        <property name=\"firstName\"/>\n"
-      "        <property name=\"initial\"/>\n"
-      "        <property name=\"lastName\"/>\n"
-      "    </properties>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Person\">\n"
+"    <id name=\"personNumber\"/>\n"
+"    ...\n"
+"    <properties name=\"name\"\n"
+"            unique=\"true\" update=\"false\">\n"
+"        <property name=\"firstName\"/>\n"
+"        <property name=\"initial\"/>\n"
+"        <property name=\"lastName\"/>\n"
+"    </properties>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<key\n"
-      "        column=\"columnname\"\n"
-      "        on-delete=\"noaction|cascade\"\n"
-      "        property-ref=\"propertyName\"\n"
-      "        not-null=\"true|false\"\n"
-      "        update=\"true|false\"\n"
-      "        unique=\"true|false\"\n"
-      "/>]]>"
 
-#: index.docbook:1990
-msgid "Then we might have some legacy data association which refers to this unique key of the <literal>Person</literal> table, instead of to the primary key:"
-msgstr "<literal>column</literal> (opcional): El nombre de columna de la clave for&#x00e1;nea. Puede ser tambi&#x00e9;n especificado por elemento(s) anidado(s) <literal>&lt;column&gt;</literal>."
+#. Tag: para
+#: basic_mapping.xml:1990
+#, no-c-format
+msgid ""
+"Then we might have some legacy data association which refers to this unique "
+"key of the <literal>Person</literal> table, instead of to the primary key:"
+msgstr ""
+"Entonces puede que tengamos alguna asociación de datos heredados que se "
+"refiera a esta clave única de la tabla de <literal>Person</literal>, en vez "
+"de la clave primaria:"
 
-#: index.docbook:1995
+#. Tag: programlisting
+#: basic_mapping.xml:1995
+#, no-c-format
 msgid ""
-      "<![CDATA[<many-to-one name=\"person\"\n"
-      "         class=\"Person\" property-ref=\"name\">\n"
-      "    <column name=\"firstName\"/>\n"
-      "    <column name=\"initial\"/>\n"
-      "    <column name=\"lastName\"/>\n"
-      "</many-to-one>]]>"
-msgstr "<literal>on-delete</literal> (opcional, por defecto a <literal>noaction</literal>): Especifica si la restricci&#x00f3;n de clave for&#x00e1;nea tiene el borrado en cascada habilitado a nivel de base de datos."
+"<![CDATA[<many-to-one name=\"person\"\n"
+"         class=\"Person\" property-ref=\"name\">\n"
+"    <column name=\"firstName\"/>\n"
+"    <column name=\"initial\"/>\n"
+"    <column name=\"lastName\"/>\n"
+"</many-to-one>]]>"
+msgstr ""
 
-#: index.docbook:1997
-msgid "We don't recommend the use of this kind of thing outside the context of mapping legacy data."
-msgstr "<literal>property-ref</literal> (opcional): Especifica que la clave for&#x00e1;nea referencia columnas que no son del la clave primaria de la tabla original. (Provisto para datos heredados.)"
+#. Tag: para
+#: basic_mapping.xml:1997
+#, no-c-format
+msgid ""
+"We don't recommend the use of this kind of thing outside the context of "
+"mapping legacy data."
+msgstr ""
+"No recomendamos el uso de este tipo de cosas fuera del contexto del mapeo de "
+"datos heredados."
 
-#: index.docbook:2005
+#. Tag: title
+#: basic_mapping.xml:2005
+#, no-c-format
 msgid "subclass"
-msgstr "<literal>not-null</literal> (opcional): Especifica que las columnas de la clave for&#x00e1;nea son no nulables (esto est&#x00e1; implicado si la clave for&#x00e1;nea es tambi&#x00e9;n parte de la clave primaria)."
+msgstr "subclass"
 
-#: index.docbook:2007
-msgid "Finally, polymorphic persistence requires the declaration of each subclass of the root persistent class. For the table-per-class-hierarchy mapping strategy, the <literal>&lt;subclass&gt;</literal> declaration is used."
-msgstr "<literal>update</literal> (opcional): Especifica que la clave for&#x00e1;nea nunca debe ser actualizada (esto est&#x00e1; implicado si la clave for&#x00e1;nea es tambi&#x00e9;n parte de la clave primaria)."
+#. Tag: para
+#: basic_mapping.xml:2007
+#, no-c-format
+msgid ""
+"Finally, polymorphic persistence requires the declaration of each subclass "
+"of the root persistent class. For the table-per-class-hierarchy mapping "
+"strategy, the <literal>&lt;subclass&gt;</literal> declaration is used."
+msgstr ""
+"Finalmente, la persistencia polimórfica requiere la declaración de la clase "
+"persistente raíz. Para la estrategia de mapeo tabla-por-jerarquía-de-clases, "
+"se usa la declaración de <literal>&lt;subclass&gt;</literal>."
 
-#: index.docbook:2020
+#. Tag: programlisting
+#: basic_mapping.xml:2020
+#, no-c-format
 msgid ""
-      "<![CDATA[<subclass\n"
-      "        name=\"ClassName\"\n"
-      "        discriminator-value=\"discriminator_value\"\n"
-      "        proxy=\"ProxyInterface\"\n"
-      "        lazy=\"true|false\"\n"
-      "        dynamic-update=\"true|false\"\n"
-      "        dynamic-insert=\"true|false\"\n"
-      "        entity-name=\"EntityName\"\n"
-      "        node=\"element-name\"\n"
-      "        extends=\"SuperclassName\">\n"
-      "\n"
-      "        <property .... />\n"
-      "        .....\n"
-      "</subclass>]]>"
-msgstr "<literal>unique</literal> (opcional): Especifica que la clave for&#x00e1;nea debe tener una restricci&#x00f3;n de unicidad (esto est&#x00e1; implicado si la clave for&#x00e1;nea es tambi&#x00e9;n la clave primaria)."
+"<![CDATA[<subclass\n"
+"        name=\"ClassName\"\n"
+"        discriminator-value=\"discriminator_value\"\n"
+"        proxy=\"ProxyInterface\"\n"
+"        lazy=\"true|false\"\n"
+"        dynamic-update=\"true|false\"\n"
+"        dynamic-insert=\"true|false\"\n"
+"        entity-name=\"EntityName\"\n"
+"        node=\"element-name\"\n"
+"        extends=\"SuperclassName\">\n"
+"\n"
+"        <property .... />\n"
+"        .....\n"
+"</subclass>]]>"
+msgstr ""
 
-#: index.docbook:2023, index.docbook:2081, index.docbook:2144
-msgid "<literal>name</literal>: The fully qualified class name of the subclass."
-msgstr "Recomendamos que, para los sistemas en donde el rendimiento sea importante, todas las claves deben ser definidas <literal>on-delete=\"cascade\"</literal>, e Hibernate usar&#x00e1; una restricci&#x00f3;n <literal>ON CASCADE DELETE</literal> a nivel de base de datos, en vez de muchas sentencias <literal>DELETE</literal> individuales. Ten en cuenta que esta funcionalidad se salta la habitual estrategia de bloqueo optimista de Hibernate para datos versionados."
+#. Tag: para
+#: basic_mapping.xml:2023 basic_mapping.xml:2081 basic_mapping.xml:2144
+#, fuzzy, no-c-format
+msgid ""
+"<literal>name</literal>: The fully qualified class name of the subclass."
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>name</literal>: El nombre de clase cualificado completamente de la "
+"subclase.\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>name</literal>: El nombre de clase completamente cualificado de la "
+"subclase.\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>name</literal>: El nombre de clase completamente cualificado de la "
+"subclase."
 
-#: index.docbook:2028
-msgid "<literal>discriminator-value</literal> (optional - defaults to the class name): A value that distiguishes individual subclasses."
-msgstr "Los atributos <literal>not-null</literal> y <literal>update</literal> son &#x00fa;tiles al mapear una asociaci&#x00f3;n uno a muchos unidireccional. Si mapeas una uno a muchos unidireccional a una clave for&#x00e1;nea no nulable, <emphasis>debes</emphasis> declarar la columna clave usando <literal>&lt;key not-null=\"true\"&gt;</literal>."
+#. Tag: para
+#: basic_mapping.xml:2028
+#, no-c-format
+msgid ""
+"<literal>discriminator-value</literal> (optional - defaults to the class "
+"name): A value that distiguishes individual subclasses."
+msgstr ""
+"<literal>discriminator-value</literal> (opcional - por defecto al nombre de "
+"la clase): Un valor que distingue a subclases individuales."
 
-#: index.docbook:2034, index.docbook:2091, index.docbook:2154
-msgid "<literal>proxy</literal> (optional): Specifies a class or interface to use for lazy initializing proxies."
-msgstr "los elementos column y formula"
+#. Tag: para
+#: basic_mapping.xml:2034 basic_mapping.xml:2091 basic_mapping.xml:2154
+#, fuzzy, no-c-format
+msgid ""
+"<literal>proxy</literal> (optional): Specifies a class or interface to use "
+"for lazy initializing proxies."
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>proxy</literal> (opcional): Especifica una clase o interface a usar "
+"para proxies de inicialización perezosa.\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>proxy</literal> (opcional): Especifica una clase o interface a usar "
+"para proxies de inicializacón perezosa.\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<literal>proxy</literal> (optional): Especifica una clase o interface a usar "
+"para proxies de inicializacón perezosa."
 
-#: index.docbook:2040, index.docbook:2097, index.docbook:2160
-msgid "<literal>lazy</literal> (optional, defaults to <literal>true</literal>): Setting <literal>lazy=\"false\"</literal> disables the use of lazy fetching."
-msgstr "Cualquier elemento de mapeo que acepte un atributo <literal>column</literal> aceptar&#x00e1; alternativamente un subelemento <literal>&lt;column&gt;</literal>. De forma similar, <literal>&lt;formula&gt;</literal> es una alternativa al atributo <literal>formula</literal>."
+#. Tag: para
+#: basic_mapping.xml:2040 basic_mapping.xml:2097 basic_mapping.xml:2160
+#, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional, defaults to <literal>true</literal>): "
+"Setting <literal>lazy=\"false\"</literal> disables the use of lazy fetching."
+msgstr ""
+"<literal>lazy</literal> (opcional, por defecto a <literal>true</literal>): "
+"Establecer <literal>lazy=\"false\"</literal> deshabilita el uso de "
+"recuperación perezosa."
 
-#: index.docbook:2048
-msgid "Each subclass should declare its own persistent properties and subclasses. <literal>&lt;version&gt;</literal> and <literal>&lt;id&gt;</literal> properties are assumed to be inherited from the root class. Each subclass in a heirarchy must define a unique <literal>discriminator-value</literal>. If none is specified, the fully qualified Java class name is used."
+#. Tag: para
+#: basic_mapping.xml:2048
+#, no-c-format
+msgid ""
+"Each subclass should declare its own persistent properties and subclasses. "
+"<literal>&lt;version&gt;</literal> and <literal>&lt;id&gt;</literal> "
+"properties are assumed to be inherited from the root class. Each subclass in "
+"a heirarchy must define a unique <literal>discriminator-value</literal>. If "
+"none is specified, the fully qualified Java class name is used."
 msgstr ""
-      "<![CDATA[<column\n"
-      "        name=\"column_name\"\n"
-      "        length=\"N\"\n"
-      "        precision=\"N\"\n"
-      "        scale=\"N\"\n"
-      "        not-null=\"true|false\"\n"
-      "        unique=\"true|false\"\n"
-      "        unique-key=\"multicolumn_unique_key_name\"\n"
-      "        index=\"index_name\"\n"
-      "        sql-type=\"sql_type_name\"\n"
-      "        check=\"SQL expression\"/>]]>"
+"UNTRANSLATED! Each subclass should declare its own persistent properties and "
+"subclasses. <literal>&lt;version&gt;</literal> and <literal>&lt;id&gt;</"
+"literal> properties are assumed to be inherited from the root class. Each "
+"subclass in a heirarchy must define a unique <literal>discriminator-value</"
+"literal>. If none is specified, the fully qualified Java class name is used."
 
-#: index.docbook:2056, index.docbook:2114, index.docbook:2172
-msgid "For information about inheritance mappings, see <xref linkend=\"inheritance\"/>."
-msgstr "<![CDATA[<formula>expresi&#x00f3;n SQL</formula>]]>"
+#. Tag: para
+#: basic_mapping.xml:2056 basic_mapping.xml:2114 basic_mapping.xml:2172
+#, no-c-format
+msgid ""
+"For information about inheritance mappings, see <xref linkend=\"inheritance"
+"\"/>."
+msgstr ""
+"Para información acerca de mapeos de herencia, ver <xref linkend="
+"\"inheritance\"/>."
 
-#: index.docbook:2063
+#. Tag: title
+#: basic_mapping.xml:2063
+#, no-c-format
 msgid "joined-subclass"
-msgstr "Los atributos <literal>column</literal> y <literal>formula</literal> pueden incluso ser combinados dentro del mismo mapeo de propiedad o asociaci&#x00f3;n para expresar, por ejemplo, condiciones de uni&#x00f3;n ex&#x00f3;ticas."
+msgstr "joined-subclass"
 
-#: index.docbook:2065
-msgid "Alternatively, each subclass may be mapped to its own table (table-per-subclass mapping strategy). Inherited state is retrieved by joining with the table of the superclass. We use the <literal>&lt;joined-subclass&gt;</literal> element."
+#. Tag: para
+#: basic_mapping.xml:2065
+#, no-c-format
+msgid ""
+"Alternatively, each subclass may be mapped to its own table (table-per-"
+"subclass mapping strategy). Inherited state is retrieved by joining with the "
+"table of the superclass. We use the <literal>&lt;joined-subclass&gt;</"
+"literal> element."
 msgstr ""
-      "<![CDATA[<many-to-one name=\"homeAddress\" class=\"Address\"\n"
-      "        insert=\"false\" update=\"false\">\n"
-      "    <column name=\"person_id\" not-null=\"true\" length=\"10\"/>\n"
-      "    <formula>'MAILING'</formula>\n"
-      "</many-to-one>]]>"
+"Alternativamente, cada subclase puede ser mapeada a su propia tabla "
+"(estrategia de mapeo tabla-por-subclase). El estado heredado se recupera "
+"uniendo con la tabla de la superclase. Usamos el elemento <literal>&lt;"
+"joined-subclass&gt;</literal>."
 
-#: index.docbook:2078
+#. Tag: programlisting
+#: basic_mapping.xml:2078
+#, no-c-format
 msgid ""
-      "<![CDATA[<joined-subclass\n"
-      "        name=\"ClassName\"\n"
-      "        table=\"tablename\"\n"
-      "        proxy=\"ProxyInterface\"\n"
-      "        lazy=\"true|false\"\n"
-      "        dynamic-update=\"true|false\"\n"
-      "        dynamic-insert=\"true|false\"\n"
-      "        schema=\"schema\"\n"
-      "        catalog=\"catalog\"\n"
-      "        extends=\"SuperclassName\"\n"
-      "        persister=\"ClassName\"\n"
-      "        subselect=\"SQL expression\"\n"
-      "        entity-name=\"EntityName\"\n"
-      "        node=\"element-name\">\n"
-      "\n"
-      "        <key .... >\n"
-      "\n"
-      "        <property .... />\n"
-      "        .....\n"
-      "</joined-subclass>]]>"
-msgstr "import"
+"<![CDATA[<joined-subclass\n"
+"        name=\"ClassName\"\n"
+"        table=\"tablename\"\n"
+"        proxy=\"ProxyInterface\"\n"
+"        lazy=\"true|false\"\n"
+"        dynamic-update=\"true|false\"\n"
+"        dynamic-insert=\"true|false\"\n"
+"        schema=\"schema\"\n"
+"        catalog=\"catalog\"\n"
+"        extends=\"SuperclassName\"\n"
+"        persister=\"ClassName\"\n"
+"        subselect=\"SQL expression\"\n"
+"        entity-name=\"EntityName\"\n"
+"        node=\"element-name\">\n"
+"\n"
+"        <key .... >\n"
+"\n"
+"        <property .... />\n"
+"        .....\n"
+"</joined-subclass>]]>"
+msgstr ""
 
-#: index.docbook:2086, index.docbook:2149
+#. Tag: para
+#: basic_mapping.xml:2086 basic_mapping.xml:2149
+#, no-c-format
 msgid "<literal>table</literal>: The name of the subclass table."
-msgstr "<![CDATA[<import class=\"java.lang.Object\" rename=\"Universe\"/>]]>"
+msgstr "<literal>table</literal>: El nombre de tabla de la subclase."
 
-#: index.docbook:2105
-msgid "No discriminator column is required for this mapping strategy. Each subclass must, however, declare a table column holding the object identifier using the <literal>&lt;key&gt;</literal> element. The mapping at the start of the chapter would be re-written as:"
-msgstr "<literal>rename</literal> (opcional - por defecto al nombre de clase sin cualificar): Un nombre que ser&#x00e1; usado en el leguaje de consulta."
+#. Tag: para
+#: basic_mapping.xml:2105
+#, no-c-format
+msgid ""
+"No discriminator column is required for this mapping strategy. Each subclass "
+"must, however, declare a table column holding the object identifier using "
+"the <literal>&lt;key&gt;</literal> element. The mapping at the start of the "
+"chapter would be re-written as:"
+msgstr ""
+"No se requiere de una columna discriminadora para esta estrategia de mapeo. "
+"Cada subclase debe, sin embargo, declarar una columna de tabla que tenga el "
+"identificador del objeto usando el elemento <literal>&lt;key&gt;</literal>. "
+"El mapeo del comienzo del capítulo debería ser reescrito como:"
 
-#: index.docbook:2112
+#. Tag: programlisting
+#: basic_mapping.xml:2112
+#, no-c-format
 msgid ""
-      "<![CDATA[<?xml version=\"1.0\"?>\n"
-      "<!DOCTYPE hibernate-mapping PUBLIC\n"
-      "        \"-//Hibernate/Hibernate Mapping DTD//EN\"\n"
-      "        \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
-      "\n"
-      "<hibernate-mapping package=\"eg\">\n"
-      "\n"
-      "        <class name=\"Cat\" table=\"CATS\">\n"
-      "                <id name=\"id\" column=\"uid\" type=\"long\">\n"
-      "                        <generator class=\"hilo\"/>\n"
-      "                </id>\n"
-      "                <property name=\"birthdate\" type=\"date\"/>\n"
-      "                <property name=\"color\" not-null=\"true\"/>\n"
-      "                <property name=\"sex\" not-null=\"true\"/>\n"
-      "                <property name=\"weight\"/>\n"
-      "                <many-to-one name=\"mate\"/>\n"
-      "                <set name=\"kittens\">\n"
-      "                        <key column=\"MOTHER\"/>\n"
-      "                        <one-to-many class=\"Cat\"/>\n"
-      "                </set>\n"
-      "                <joined-subclass name=\"DomesticCat\" table=\"DOMESTIC_CATS\">\n"
-      "                    <key column=\"CAT\"/>\n"
-      "                    <property name=\"name\" type=\"string\"/>\n"
-      "                </joined-subclass>\n"
-      "        </class>\n"
-      "\n"
-      "        <class name=\"eg.Dog\">\n"
-      "                <!-- mapping for Dog could go here -->\n"
-      "        </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
-msgstr "<title>any</title>"
+"<![CDATA[<?xml version=\"1.0\"?>\n"
+"<!DOCTYPE hibernate-mapping PUBLIC\n"
+"        \"-//Hibernate/Hibernate Mapping DTD//EN\"\n"
+"        \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+"\n"
+"<hibernate-mapping package=\"eg\">\n"
+"\n"
+"        <class name=\"Cat\" table=\"CATS\">\n"
+"                <id name=\"id\" column=\"uid\" type=\"long\">\n"
+"                        <generator class=\"hilo\"/>\n"
+"                </id>\n"
+"                <property name=\"birthdate\" type=\"date\"/>\n"
+"                <property name=\"color\" not-null=\"true\"/>\n"
+"                <property name=\"sex\" not-null=\"true\"/>\n"
+"                <property name=\"weight\"/>\n"
+"                <many-to-one name=\"mate\"/>\n"
+"                <set name=\"kittens\">\n"
+"                        <key column=\"MOTHER\"/>\n"
+"                        <one-to-many class=\"Cat\"/>\n"
+"                </set>\n"
+"                <joined-subclass name=\"DomesticCat\" table=\"DOMESTIC_CATS"
+"\">\n"
+"                    <key column=\"CAT\"/>\n"
+"                    <property name=\"name\" type=\"string\"/>\n"
+"                </joined-subclass>\n"
+"        </class>\n"
+"\n"
+"        <class name=\"eg.Dog\">\n"
+"                <!-- mapping for Dog could go here -->\n"
+"        </class>\n"
+"\n"
+"</hibernate-mapping>]]>"
+msgstr ""
 
-#: index.docbook:2121
+#. Tag: title
+#: basic_mapping.xml:2121
+#, no-c-format
 msgid "union-subclass"
-msgstr "El atributo <literal>meta-type</literal> permite a la aplicaci&#x00f3;n especificar un tipo personalizado que mapee columnas de base de datos a clases persistentes que tengan propiedades identificadoras del tipo especificado por <literal>id-type</literal>. Debes especificar el mapeo de valores del meta-type a nombres de clase."
+msgstr "union-subclass"
 
-#: index.docbook:2123
-msgid "A third option is to map only the concrete classes of an inheritance hierarchy to tables, (the table-per-concrete-class strategy) where each table defines all persistent state of the class, including inherited state. In Hibernate, it is not absolutely necessary to explicitly map such inheritance hierarchies. You can simply map each class with a separate <literal>&lt;class&gt;</literal> declaration. However, if you wish use polymorphic associations (e.g. an association to the superclass of your hierarchy), you need to use the <literal>&lt;union-subclass&gt;</literal> mapping."
+#. Tag: para
+#: basic_mapping.xml:2123
+#, no-c-format
+msgid ""
+"A third option is to map only the concrete classes of an inheritance "
+"hierarchy to tables, (the table-per-concrete-class strategy) where each "
+"table defines all persistent state of the class, including inherited state. "
+"In Hibernate, it is not absolutely necessary to explicitly map such "
+"inheritance hierarchies. You can simply map each class with a separate "
+"<literal>&lt;class&gt;</literal> declaration. However, if you wish use "
+"polymorphic associations (e.g. an association to the superclass of your "
+"hierarchy), you need to use the <literal>&lt;union-subclass&gt;</literal> "
+"mapping."
 msgstr ""
-      "<![CDATA[<any name=\"being\" id-type=\"long\" meta-type=\"string\">\n"
-      "    <meta-value value=\"TBL_ANIMAL\" class=\"Animal\"/>\n"
-      "    <meta-value value=\"TBL_HUMAN\" class=\"Human\"/>\n"
-      "    <meta-value value=\"TBL_ALIEN\" class=\"Alien\"/>\n"
-      "    <column name=\"table_name\"/>\n"
-      "    <column name=\"id\"/>\n"
-      "</any>]]>"
+"Una tercera opción es mapear sólo las clases concretas de una jerarquía de "
+"clases a tablas, (la estrategia tabla-por-clase-concreta) donde cada tabla "
+"define todo el estado persistente de la clase, incluyendo el estado "
+"heredado. En Hibernate, no es absolutamente necesario mapear dichas "
+"jerarquías de herencia. Puedes simplemente mapear cada clase con una "
+"declaración <literal>&lt;class&gt;</literal> separada. Sin embargo, si "
+"deseas usar asociaciones polimórficas (por ejemplo, una asociación a la "
+"superclase de tu jerarquía), debes usar el mapeo <literal>&lt;union-"
+"subclass&gt;</literal>."
 
-#: index.docbook:2141
+#. Tag: programlisting
+#: basic_mapping.xml:2141
+#, no-c-format
 msgid ""
-      "<![CDATA[<union-subclass\n"
-      "        name=\"ClassName\"\n"
-      "        table=\"tablename\"\n"
-      "        proxy=\"ProxyInterface\"\n"
-      "        lazy=\"true|false\"\n"
-      "        dynamic-update=\"true|false\"\n"
-      "        dynamic-insert=\"true|false\"\n"
-      "        schema=\"schema\"\n"
-      "        catalog=\"catalog\"\n"
-      "        extends=\"SuperclassName\"\n"
-      "        abstract=\"true|false\"\n"
-      "        persister=\"ClassName\"\n"
-      "        subselect=\"SQL expression\"\n"
-      "        entity-name=\"EntityName\"\n"
-      "        node=\"element-name\">\n"
-      "\n"
-      "        <property .... />\n"
-      "        .....\n"
-      "</union-subclass>]]>"
+"<![CDATA[<union-subclass\n"
+"        name=\"ClassName\"\n"
+"        table=\"tablename\"\n"
+"        proxy=\"ProxyInterface\"\n"
+"        lazy=\"true|false\"\n"
+"        dynamic-update=\"true|false\"\n"
+"        dynamic-insert=\"true|false\"\n"
+"        schema=\"schema\"\n"
+"        catalog=\"catalog\"\n"
+"        extends=\"SuperclassName\"\n"
+"        abstract=\"true|false\"\n"
+"        persister=\"ClassName\"\n"
+"        subselect=\"SQL expression\"\n"
+"        entity-name=\"EntityName\"\n"
+"        node=\"element-name\">\n"
+"\n"
+"        <property .... />\n"
+"        .....\n"
+"</union-subclass>]]>"
 msgstr ""
-      "<![CDATA[<any\n"
-      "        name=\"propertyName\"\n"
-      "        id-type=\"idtypename\"\n"
-      "        meta-type=\"metatypename\"\n"
-      "        cascade=\"cascade_style\"\n"
-      "        access=\"field|property|ClassName\"\n"
-      "        optimistic-lock=\"true|false\"\n"
-      ">\n"
-      "        <meta-value ... />\n"
-      "        <meta-value ... />\n"
-      "        .....\n"
-      "        <column .... />\n"
-      "        <column .... />\n"
-      "        .....\n"
-      "</any>]]>"
 
-#: index.docbook:2168
-msgid "No discriminator column or key column is required for this mapping strategy."
-msgstr "<literal>access</literal> (opcional - por defecto a <literal>property</literal>): La estrategia que Hibernate debe usar para acceder al valor de la propiedad."
+#. Tag: para
+#: basic_mapping.xml:2168
+#, no-c-format
+msgid ""
+"No discriminator column or key column is required for this mapping strategy."
+msgstr ""
+"No se requiere columna o columna clave discriminadora para esta estrategia "
+"de mapeo."
 
-#: index.docbook:2179
+#. Tag: title
+#: basic_mapping.xml:2179
+#, no-c-format
 msgid "join"
-msgstr "Tipos de Hibernate"
+msgstr "join"
 
-#: index.docbook:2181
-msgid "Using the <literal>&lt;join&gt;</literal> element, it is possible to map properties of one class to several tables, when there's a 1-to-1 relationship between the tables."
-msgstr "Entidades y Valores"
+#. Tag: para
+#: basic_mapping.xml:2181
+#, no-c-format
+msgid ""
+"Using the <literal>&lt;join&gt;</literal> element, it is possible to map "
+"properties of one class to several tables, when there's a 1-to-1 "
+"relationship between the tables."
+msgstr ""
+"Usando el elemento <literal>&lt;join&gt;</literal>, es posible mapear "
+"propiedades de una clase a varias tablas."
 
-#: index.docbook:2195
+#. Tag: programlisting
+#: basic_mapping.xml:2195
+#, no-c-format
 msgid ""
-      "<![CDATA[<join\n"
-      "        table=\"tablename\"\n"
-      "        schema=\"owner\"\n"
-      "        catalog=\"catalog\"\n"
-      "        fetch=\"join|select\"\n"
-      "        inverse=\"true|false\"\n"
-      "        optional=\"true|false\">\n"
-      "\n"
-      "        <key ... />\n"
-      "\n"
-      "        <property ... />\n"
-      "        ...\n"
-      "</join>]]>"
-msgstr "Para entender el comportamiento de varios objetos a nivel de lenguaje Java con respecto al servicio de persistencia, necesitamos clasificarlos en dos grupos:"
+"<![CDATA[<join\n"
+"        table=\"tablename\"\n"
+"        schema=\"owner\"\n"
+"        catalog=\"catalog\"\n"
+"        fetch=\"join|select\"\n"
+"        inverse=\"true|false\"\n"
+"        optional=\"true|false\">\n"
+"\n"
+"        <key ... />\n"
+"\n"
+"        <property ... />\n"
+"        ...\n"
+"</join>]]>"
+msgstr ""
 
-#: index.docbook:2199
+#. Tag: para
+#: basic_mapping.xml:2199
+#, no-c-format
 msgid "<literal>table</literal>: The name of the joined table."
-msgstr "Una <emphasis>entidad</emphasis> existe independientemente de cualquier otros objetos que referencien a la entidad. Contrasta esto con el model habitual de Java donde un objeto desreferenciado es recolectado como basura. Las entidades deben ser salvadas y borradas expl&#x00ed;citamente (excepto que las grabaciones y borrados puedan ser <emphasis>tratados en cascada</emphasis> desde una entidad padre a sus hijos). Esto es diferente al modelo de persistencia de objetos por alcance - y se corresponde m&#x00e1;s de cerca a c&#x00f3;mo los objetos de aplicaci&#x00f3;n son usados habitualmente en grandes sistemas. Las entidades soportan referencias circulares y compartidas, que tambi&#x00e9; pueden ser versionadas."
+msgstr "<literal>table</literal>: El nombre de la clase unida."
 
-#: index.docbook:2216
-msgid "<literal>fetch</literal> (optional - defaults to <literal>join</literal>): If set to <literal>join</literal>, the default, Hibernate will use an inner join to retrieve a <literal>&lt;join&gt;</literal> defined by a class or its superclasses and an outer join for a <literal>&lt;join&gt;</literal> defined by a subclass. If set to <literal>select</literal> then Hibernate will use a sequential select for a <literal>&lt;join&gt;</literal> defined on a subclass, which will be issued only if a row turns out to represent an instance of the subclass. Inner joins will still be used to retrieve a <literal>&lt;join&gt;</literal> defined by the class and its superclasses."
-msgstr "Volveremos a visitar ambos conceptos a lo largo de la documentaci&#x00f3;n."
+#. Tag: para
+#: basic_mapping.xml:2216
+#, no-c-format
+msgid ""
+"<literal>fetch</literal> (optional - defaults to <literal>join</literal>): "
+"If set to <literal>join</literal>, the default, Hibernate will use an inner "
+"join to retrieve a <literal>&lt;join&gt;</literal> defined by a class or its "
+"superclasses and an outer join for a <literal>&lt;join&gt;</literal> defined "
+"by a subclass. If set to <literal>select</literal> then Hibernate will use a "
+"sequential select for a <literal>&lt;join&gt;</literal> defined on a "
+"subclass, which will be issued only if a row turns out to represent an "
+"instance of the subclass. Inner joins will still be used to retrieve a "
+"<literal>&lt;join&gt;</literal> defined by the class and its superclasses."
+msgstr ""
+"<literal>fetch</literal> (opcional - por defecto a <literal>join</literal>): "
+"Si se establece a <literal>join</literal>, por defecto, Hibernate usará una "
+"unión interior (inner join) para recuperar un <literal>&lt;join&gt;</"
+"literal> definido por una clase o sus superclases y una unión externa (outer "
+"join) para un <literal>&lt;join&gt;</literal> definido por una subclase. Si "
+"se establece a <literal>select</literal>, entonces Hibernate usará una "
+"select secuencial para un <literal>&lt;join&gt;</literal> definido en una "
+"subclase, que será publicada sólo si una fila resulta representar una "
+"instancia de la subclase. Las uniones interiores todavía serán usados para "
+"recuperar un <literal>&lt;join&gt;</literal> definido por la clase y sus "
+"superclases."
 
-#: index.docbook:2229
-msgid "<literal>inverse</literal> (optional - defaults to <literal>false</literal>): If enabled, Hibernate will not try to insert or update the properties defined by this join."
-msgstr "EL desaf&#x00ed;o es mapear el sistema de tipos de Java (y la definici&#x00f3;n de entidades y tipos de valor de los desarrolladores) al sistema de tipos de SQL/base de datos. EL puente entre ambos sistemas es provisto por Hibernate: para las entidades usamos <literal>&lt;class&gt;</literal>, <literal>&lt;subclass&gt;</literal>, etc. Para los tipos de valor usamos <literal>&lt;property&gt;</literal>, <literal>&lt;component&gt;</literal>, etc, usualmente con un atributo <literal>type</literal>. El valor de este atributo es el nombre de un <emphasis>tipo de mapeo</emphasis> de Hibernate. Hibernate provee de f&#x00e1;brica muchos mapeos (para tipos de valores del JDK est&#x00e1;ndar). Puedes escribir tus propios mapeos de tipo, as&#x00ed; como implementar tus estrategias de conversi&#x00f3;n personalizadas, como veremos luego."
+#. Tag: para
+#: basic_mapping.xml:2229
+#, no-c-format
+msgid ""
+"<literal>inverse</literal> (optional - defaults to <literal>false</"
+"literal>): If enabled, Hibernate will not try to insert or update the "
+"properties defined by this join."
+msgstr ""
+"<literal>inverse</literal> (opcional - por defecto a <literal>false</"
+"literal>): De habilitarse, Hibernate no intentará insertar o actualizar las "
+"propiedades definidas por esta unión."
 
-#: index.docbook:2236
-msgid "<literal>optional</literal> (optional - defaults to <literal>false</literal>): If enabled, Hibernate will insert a row only if the properties defined by this join are non-null and will always use an outer join to retrieve the properties."
-msgstr "Todos los tipos prefabricados de Hibernate soportan sem&#x00e1;ntica de nulos excepto las colecciones."
+#. Tag: para
+#: basic_mapping.xml:2236
+#, no-c-format
+msgid ""
+"<literal>optional</literal> (optional - defaults to <literal>false</"
+"literal>): If enabled, Hibernate will insert a row only if the properties "
+"defined by this join are non-null and will always use an outer join to "
+"retrieve the properties."
+msgstr ""
+"<literal>optional</literal> (opcional - por defecto a <literal>false</"
+"literal>): De habilitarse, Hibernate insertará una fila sólo si las "
+"propiedades definidas por esta unión son no nulas y siempre usará una unión "
+"externa para recuperar las propiedades."
 
-#: index.docbook:2245
-msgid "For example, the address information for a person can be mapped to a separate table (while preserving value type semantics for all properties):"
-msgstr "Tipos de valores b&#x00e1;sicos"
+#. Tag: para
+#: basic_mapping.xml:2245
+#, no-c-format
+msgid ""
+"For example, the address information for a person can be mapped to a "
+"separate table (while preserving value type semantics for all properties):"
+msgstr ""
+"Por ejemplo, la información domiciliaria de una persona puede ser mapeada a "
+"una tabla separada (preservando a la vez la semántica de tipo de valor para "
+"todas las propiedades):"
 
-#: index.docbook:2250
+#. Tag: programlisting
+#: basic_mapping.xml:2250
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\"\n"
-      "    table=\"PERSON\">\n"
-      "\n"
-      "    <id name=\"id\" column=\"PERSON_ID\">...</id>\n"
-      "\n"
-      "    <join table=\"ADDRESS\">\n"
-      "        <key column=\"ADDRESS_ID\"/>\n"
-      "        <property name=\"address\"/>\n"
-      "        <property name=\"zip\"/>\n"
-      "        <property name=\"country\"/>\n"
-      "    </join>\n"
-      "    ...]]>"
-msgstr "Los <emphasis>tipos de mapeo b&#x00e1;sicos</emphasis> prefabricados pueden ser categorizado a grandes rasgos en:"
+"<![CDATA[<class name=\"Person\"\n"
+"    table=\"PERSON\">\n"
+"\n"
+"    <id name=\"id\" column=\"PERSON_ID\">...</id>\n"
+"\n"
+"    <join table=\"ADDRESS\">\n"
+"        <key column=\"ADDRESS_ID\"/>\n"
+"        <property name=\"address\"/>\n"
+"        <property name=\"zip\"/>\n"
+"        <property name=\"country\"/>\n"
+"    </join>\n"
+"    ...]]>"
+msgstr ""
 
-#: index.docbook:2252
-msgid "This feature is often only useful for legacy data models, we recommend fewer tables than classes and a fine-grained domain model. However, it is useful for switching between inheritance mapping strategies in a single hierarchy, as explained later."
-msgstr "integer, long, short, float, double, character, byte, boolean, yes_no, true_false"
+#. Tag: para
+#: basic_mapping.xml:2252
+#, no-c-format
+msgid ""
+"This feature is often only useful for legacy data models, we recommend fewer "
+"tables than classes and a fine-grained domain model. However, it is useful "
+"for switching between inheritance mapping strategies in a single hierarchy, "
+"as explained later."
+msgstr ""
+"Esta funcionalidad es a menudo solamente útil para modelos de datos "
+"heredados; recomendamos menos tablas que clases un modelo de dominio más "
+"granularizado. Sin embargo, es útil para cambiar entre estrategias de mapeo "
+"de herencias en una misma jerarquía, como se explica luego."
 
-#: index.docbook:2262
+#. Tag: title
+#: basic_mapping.xml:2262
+#, no-c-format
 msgid "<title>key</title>"
-msgstr "Mapeos de tipos primitivos de Java o clases de envoltura a la tipos de columna SQL (espec&#x00ed;cifica del vendedor). <literal>boolean, yes_no</literal> y <literal>true_false</literal> son codificaciones alternativas a <literal>boolean</literal> de Java o <literal>java.lang.Boolean</literal>."
+msgstr ""
 
-#: index.docbook:2264
-msgid "We've seen the <literal>&lt;key&gt;</literal> element crop up a few times now. It appears anywhere the parent mapping element defines a join to a new table, and defines the foreign key in the joined table, that references the primary key of the original table."
-msgstr "string"
+#. Tag: para
+#: basic_mapping.xml:2264
+#, no-c-format
+msgid ""
+"We've seen the <literal>&lt;key&gt;</literal> element crop up a few times "
+"now. It appears anywhere the parent mapping element defines a join to a new "
+"table, and defines the foreign key in the joined table, that references the "
+"primary key of the original table."
+msgstr ""
+"Hasta ahora hemos visto el elemento <literal>&lt;key&gt;</literal> pocas "
+"veces. Aparece en cualquier sitio en que el elemento padre de mapeo defina "
+"una unión a una nueva tabla, y define la clave foránea en la tabla unida, "
+"que referencia la clave primaria de la tabla original."
 
-#: index.docbook:2280
+#. Tag: programlisting
+#: basic_mapping.xml:2280
+#, no-c-format
 msgid ""
-      "<![CDATA[<key\n"
-      "        column=\"columnname\"\n"
-      "        on-delete=\"noaction|cascade\"\n"
-      "        property-ref=\"propertyName\"\n"
-      "        not-null=\"true|false\"\n"
-      "        update=\"true|false\"\n"
-      "        unique=\"true|false\"\n"
-      "/>]]>"
-msgstr "Un mapeo del tipo <literal>java.lang.String</literal> a <literal>VARCHAR</literal> (u Oracle <literal>VAARCHAR2</literal>)."
+"<![CDATA[<key\n"
+"        column=\"columnname\"\n"
+"        on-delete=\"noaction|cascade\"\n"
+"        property-ref=\"propertyName\"\n"
+"        not-null=\"true|false\"\n"
+"        update=\"true|false\"\n"
+"        unique=\"true|false\"\n"
+"/>]]>"
+msgstr ""
 
-#: index.docbook:2291
-msgid "<literal>on-delete</literal> (optional, defaults to <literal>noaction</literal>): Specifies whether the foreign key constraint has database-level cascade delete enabled."
-msgstr "Mapeos de tipo desde <literal>java.util.Date</literal> y sus subclases a tipos SQL <literal>DATE</literal>, <literal>TIME</literal> y <literal>TIMESTAMP</literal> (o equivalente)."
+#. Tag: para
+#: basic_mapping.xml:2291
+#, no-c-format
+msgid ""
+"<literal>on-delete</literal> (optional, defaults to <literal>noaction</"
+"literal>): Specifies whether the foreign key constraint has database-level "
+"cascade delete enabled."
+msgstr ""
+"<literal>on-delete</literal> (opcional, por defecto a <literal>noaction</"
+"literal>): Especifica si la restricción de clave foránea tiene el borrado en "
+"cascada habilitado a nivel de base de datos."
 
-#: index.docbook:2298
-msgid "<literal>property-ref</literal> (optional): Specifies that the foreign key refers to columns that are not the primary key of the orginal table. (Provided for legacy data.)"
-msgstr "calendar, calendar_date"
+#. Tag: para
+#: basic_mapping.xml:2298
+#, no-c-format
+msgid ""
+"<literal>property-ref</literal> (optional): Specifies that the foreign key "
+"refers to columns that are not the primary key of the orginal table. "
+"(Provided for legacy data.)"
+msgstr ""
+"<literal>property-ref</literal> (opcional): Especifica que la clave foránea "
+"referencia columnas que no son del la clave primaria de la tabla original. "
+"(Provisto para datos heredados.)"
 
-#: index.docbook:2305
-msgid "<literal>not-null</literal> (optional): Specifies that the foreign key columns are not nullable (this is implied whenever the foreign key is also part of the primary key)."
-msgstr "Mapeos de tipo desde <literal>java.util.Date</literal> y sus subclases a tipos SQL <literal>TIMESTAMP</literal> y <literal>DATE</literal> (o equivalente)."
+#. Tag: para
+#: basic_mapping.xml:2305
+#, no-c-format
+msgid ""
+"<literal>not-null</literal> (optional): Specifies that the foreign key "
+"columns are not nullable (this is implied whenever the foreign key is also "
+"part of the primary key)."
+msgstr ""
+"<literal>not-null</literal> (opcional): Especifica que las columnas de la "
+"clave foránea son no nulables (esto está implicado si la clave foránea es "
+"también parte de la clave primaria)."
 
-#: index.docbook:2312
-msgid "<literal>update</literal> (optional): Specifies that the foreign key should never be updated (this is implied whenever the foreign key is also part of the primary key)."
-msgstr "big_decimal, big_integer"
+#. Tag: para
+#: basic_mapping.xml:2312
+#, no-c-format
+msgid ""
+"<literal>update</literal> (optional): Specifies that the foreign key should "
+"never be updated (this is implied whenever the foreign key is also part of "
+"the primary key)."
+msgstr ""
+"<literal>update</literal> (opcional): Especifica que la clave foránea nunca "
+"debe ser actualizada (esto está implicado si la clave foránea es también "
+"parte de la clave primaria)."
 
-#: index.docbook:2319
-msgid "<literal>unique</literal> (optional): Specifies that the foreign key should have a unique constraint (this is implied whenever the foreign key is also the primary key)."
-msgstr "Mapeos de tipo desde <literal>java.math.BigDecimal</literal> y <literal>java.math.BigInteger</literal> a <literal>NUMERIC</literal> (o <literal>NUMBER</literal> de Oracle)."
+#. Tag: para
+#: basic_mapping.xml:2319
+#, no-c-format
+msgid ""
+"<literal>unique</literal> (optional): Specifies that the foreign key should "
+"have a unique constraint (this is implied whenever the foreign key is also "
+"the primary key)."
+msgstr ""
+"<literal>unique</literal> (opcional): Especifica que la clave foránea debe "
+"tener una restricción de unicidad (esto está implicado si la clave foránea "
+"es también la clave primaria)."
 
-#: index.docbook:2327
-msgid "We recommend that for systems where delete performance is important, all keys should be defined <literal>on-delete=\"cascade\"</literal>, and Hibernate will use a database-level <literal>ON CASCADE DELETE</literal> constraint, instead of many individual <literal>DELETE</literal> statements. Be aware that this feature bypasses Hibernate's usual optimistic locking strategy for versioned data."
-msgstr "locale, timezone, currency"
+#. Tag: para
+#: basic_mapping.xml:2327
+#, no-c-format
+msgid ""
+"We recommend that for systems where delete performance is important, all "
+"keys should be defined <literal>on-delete=\"cascade\"</literal>, and "
+"Hibernate will use a database-level <literal>ON CASCADE DELETE</literal> "
+"constraint, instead of many individual <literal>DELETE</literal> statements. "
+"Be aware that this feature bypasses Hibernate's usual optimistic locking "
+"strategy for versioned data."
+msgstr ""
+"Recomendamos que, para los sistemas en donde el rendimiento sea importante, "
+"todas las claves deben ser definidas <literal>on-delete=\"cascade\"</"
+"literal>, e Hibernate usará una restricción <literal>ON CASCADE DELETE</"
+"literal> a nivel de base de datos, en vez de muchas sentencias "
+"<literal>DELETE</literal> individuales. Ten en cuenta que esta funcionalidad "
+"se salta la habitual estrategia de bloqueo optimista de Hibernate para datos "
+"versionados."
 
-#: index.docbook:2335
-msgid "The <literal>not-null</literal> and <literal>update</literal> attributes are useful when mapping a unidirectional one to many association. If you map a unidirectional one to many to a non-nullable foreign key, you <emphasis>must</emphasis> declare the key column using <literal>&lt;key not-null=\"true\"&gt;</literal>."
-msgstr "Mapeos de tipo desde <literal>java.util.Locale</literal>, <literal>java.util.TimeZone</literal> y <literal>java.util.Currency</literal> a <literal>VARCHAR</literal> (o <literal>VARCHAR2</literal> de Oracle). Las instancias de <literal>Locale</literal> y <literal>Currency</literal> son mapeadas a sus c&#x00f3;digos ISO. Las instancias de <literal>TimeZone</literal> son mapeadas a sus <literal>ID</literal>."
+#. Tag: para
+#: basic_mapping.xml:2335
+#, no-c-format
+msgid ""
+"The <literal>not-null</literal> and <literal>update</literal> attributes are "
+"useful when mapping a unidirectional one to many association. If you map a "
+"unidirectional one to many to a non-nullable foreign key, you "
+"<emphasis>must</emphasis> declare the key column using <literal>&lt;key not-"
+"null=\"true\"&gt;</literal>."
+msgstr ""
+"Los atributos <literal>not-null</literal> y <literal>update</literal> son "
+"útiles al mapear una asociación uno a muchos unidireccional. Si mapeas una "
+"uno a muchos unidireccional a una clave foránea no nulable, <emphasis>debes</"
+"emphasis> declarar la columna clave usando <literal>&lt;key not-null=\"true"
+"\"&gt;</literal>."
 
-#: index.docbook:2345
+#. Tag: title
+#: basic_mapping.xml:2345
+#, no-c-format
 msgid "column and formula elements"
-msgstr "<literal>class</literal>"
+msgstr "los elementos column y formula"
 
-#: index.docbook:2346
-msgid "Any mapping element which accepts a <literal>column</literal> attribute will alternatively accept a <literal>&lt;column&gt;</literal> subelement. Likewise, <literal>&lt;formula&gt;</literal> is an alternative to the <literal>formula</literal> attribute."
-msgstr "Un mapeo de tipo <literal>java.lang.Class</literal> a <literal>VARCHAR</literal> (o <literal>VARCHAR2</literal> de Oracle). Una <literal>Class</literal> es mapeara a su nombre completamente cualificado."
+#. Tag: para
+#: basic_mapping.xml:2346
+#, no-c-format
+msgid ""
+"Any mapping element which accepts a <literal>column</literal> attribute will "
+"alternatively accept a <literal>&lt;column&gt;</literal> subelement. "
+"Likewise, <literal>&lt;formula&gt;</literal> is an alternative to the "
+"<literal>formula</literal> attribute."
+msgstr ""
+"Cualquier elemento de mapeo que acepte un atributo <literal>column</literal> "
+"aceptará alternativamente un subelemento <literal>&lt;column&gt;</literal>. "
+"De forma similar, <literal>&lt;formula&gt;</literal> es una alternativa al "
+"atributo <literal>formula</literal>."
 
-#: index.docbook:2352
+#. Tag: programlisting
+#: basic_mapping.xml:2352
+#, no-c-format
 msgid ""
-      "<![CDATA[<column\n"
-      "        name=\"column_name\"\n"
-      "        length=\"N\"\n"
-      "        precision=\"N\"\n"
-      "        scale=\"N\"\n"
-      "        not-null=\"true|false\"\n"
-      "        unique=\"true|false\"\n"
-      "        unique-key=\"multicolumn_unique_key_name\"\n"
-      "        index=\"index_name\"\n"
-      "        sql-type=\"sql_type_name\"\n"
-      "        check=\"SQL expression\"\n"
-      "        default=\"SQL expression\"/>]]>"
-msgstr "binary"
+"<![CDATA[<column\n"
+"        name=\"column_name\"\n"
+"        length=\"N\"\n"
+"        precision=\"N\"\n"
+"        scale=\"N\"\n"
+"        not-null=\"true|false\"\n"
+"        unique=\"true|false\"\n"
+"        unique-key=\"multicolumn_unique_key_name\"\n"
+"        index=\"index_name\"\n"
+"        sql-type=\"sql_type_name\"\n"
+"        check=\"SQL expression\"\n"
+"        default=\"SQL expression\"/>]]>"
+msgstr ""
 
-#: index.docbook:2354
+#. Tag: programlisting
+#: basic_mapping.xml:2354
+#, no-c-format
 msgid "<![CDATA[<formula>SQL expression</formula>]]>"
-msgstr "Mapea arreglos de bytes a un tipo binario SQL apropiado."
+msgstr ""
 
-#: index.docbook:2356
-msgid "<literal>column</literal> and <literal>formula</literal> attributes may even be combined within the same property or association mapping to express, for example, exotic join conditions."
-msgstr "text"
+#. Tag: para
+#: basic_mapping.xml:2356
+#, no-c-format
+msgid ""
+"<literal>column</literal> and <literal>formula</literal> attributes may even "
+"be combined within the same property or association mapping to express, for "
+"example, exotic join conditions."
+msgstr ""
+"Los atributos <literal>column</literal> y <literal>formula</literal> pueden "
+"incluso ser combinados dentro del mismo mapeo de propiedad o asociación para "
+"expresar, por ejemplo, condiciones de unión exóticas."
 
-#: index.docbook:2362
+#. Tag: programlisting
+#: basic_mapping.xml:2362
+#, no-c-format
 msgid ""
-      "<![CDATA[<many-to-one name=\"homeAddress\" class=\"Address\"\n"
-      "        insert=\"false\" update=\"false\">\n"
-      "    <column name=\"person_id\" not-null=\"true\" length=\"10\"/>\n"
-      "    <formula>'MAILING'</formula>\n"
-      "</many-to-one>]]>"
-msgstr "Mapea cadenas largas Java al tipo SQL <literal>CLOB</literal> o <literal>TEXT</literal>."
+"<![CDATA[<many-to-one name=\"homeAddress\" class=\"Address\"\n"
+"        insert=\"false\" update=\"false\">\n"
+"    <column name=\"person_id\" not-null=\"true\" length=\"10\"/>\n"
+"    <formula>'MAILING'</formula>\n"
+"</many-to-one>]]>"
+msgstr ""
 
-#: index.docbook:2367
+#. Tag: title
+#: basic_mapping.xml:2367
+#, no-c-format
 msgid "import"
-msgstr "serializable"
+msgstr "import"
 
-#: index.docbook:2369
-msgid "Suppose your application has two persistent classes with the same name, and you don't want to specify the fully qualified (package) name in Hibernate queries. Classes may be \"imported\" explicitly, rather than relying upon <literal>auto-import=\"true\"</literal>. You may even import classes and interfaces that are not explicitly mapped."
-msgstr "Mapea tipos serializables Java a un tipo binario SQL apropiado. Puedes adem&#x00e1;s indicar el tipo <literal>serializable</literal> de Hibernate con el nombre de una clase o interface serializable Java que no sea por defecto un tipo b&#x00e1;sico."
+#. Tag: para
+#: basic_mapping.xml:2369
+#, no-c-format
+msgid ""
+"Suppose your application has two persistent classes with the same name, and "
+"you don't want to specify the fully qualified (package) name in Hibernate "
+"queries. Classes may be \"imported\" explicitly, rather than relying upon "
+"<literal>auto-import=\"true\"</literal>. You may even import classes and "
+"interfaces that are not explicitly mapped."
+msgstr ""
+"Supón que tu aplicación tiene dos clases persistentes con el mismo nombre, y "
+"no quieres especificar el nombre completamenta cualificado (paquete) en las "
+"consultas Hibernate. Las clases pueden ser \"importadas\" explícitamente, en "
+"vez de confiar en <literal>auto-import=\"true\"</literal>. Puedes incluso "
+"importar clases e interfaces que no estén mapeadas explícitamente."
 
-#: index.docbook:2376
+#. Tag: programlisting
+#: basic_mapping.xml:2376
+#, no-c-format
 msgid "<![CDATA[<import class=\"java.lang.Object\" rename=\"Universe\"/>]]>"
-msgstr "clob, blob"
+msgstr ""
 
-#: index.docbook:2383
+#. Tag: programlisting
+#: basic_mapping.xml:2383
+#, no-c-format
 msgid ""
-      "<![CDATA[<import\n"
-      "        class=\"ClassName\"\n"
-      "        rename=\"ShortName\"\n"
-      "/>]]>"
-msgstr "Mapeos de tipo para las clases JDBC <literal>java.sql.Clob</literal> y <literal>java.sql.Blob</literal>. Estos tipos pueden ser inconvenientes para algunas aplicaciones, pues el objeto blob o clob no puede ser reusado fuera de una transacci&#x00f3;n (Adem&#x00e1;s, el soporte del driver suele ser malo e inconsistente)."
+"<![CDATA[<import\n"
+"        class=\"ClassName\"\n"
+"        rename=\"ShortName\"\n"
+"/>]]>"
+msgstr ""
 
-#: index.docbook:2386
-msgid "<literal>class</literal>: The fully qualified class name of of any Java class."
-msgstr "Los identificadores &#x00fa;nicos de entidades y collecciones pueden ser de cualquier tipo b&#x00e1;sico excepto <literal>binary</literal>, <literal>blob</literal> y <literal>clob</literal>. (Los identificadores compuestos est&#x00e1;n tambi&#x00e9;n permitidos, ver debajo.)"
+#. Tag: para
+#: basic_mapping.xml:2386
+#, no-c-format
+msgid ""
+"<literal>class</literal>: The fully qualified class name of of any Java "
+"class."
+msgstr ""
+"<literal>class</literal>: El nombre de clase completamente cualificado de "
+"cualquier clase Java."
 
-#: index.docbook:2391
-msgid "<literal>rename</literal> (optional - defaults to the unqualified class name): A name that may be used in the query language."
-msgstr "Los tipos de valor b&#x00e1;sicos tienen sus constantes <literal>Type</literal> correspondientes definidas en <literal>org.hibernate.Hibernate</literal>. Por ejemplo, <literal>Hibernate.STRING</literal> representa el tipo <literal>string</literal>."
+#. Tag: para
+#: basic_mapping.xml:2391
+#, no-c-format
+msgid ""
+"<literal>rename</literal> (optional - defaults to the unqualified class "
+"name): A name that may be used in the query language."
+msgstr ""
+"<literal>rename</literal> (opcional - por defecto al nombre de clase sin "
+"cualificar): Un nombre que será usado en el leguaje de consulta."
 
-#: index.docbook:2402
+#. Tag: title
+#: basic_mapping.xml:2402
+#, no-c-format
 msgid "<title>any</title>"
-msgstr "Tipos de valor personalizados"
+msgstr ""
 
-#: index.docbook:2404
-msgid "There is one further type of property mapping. The <literal>&lt;any&gt;</literal> mapping element defines a polymorphic association to classes from multiple tables. This type of mapping always requires more than one column. The first column holds the type of the associated entity. The remaining columns hold the identifier. It is impossible to specify a foreign key constraint for this kind of association, so this is most certainly not meant as the usual way of mapping (polymorphic) associations. You should use this only in very special cases (eg. audit logs, user session data, etc)."
-msgstr "Es relativamente f&#x00e1;cil para los desarrolladores crear sus propios tipos de valor. Por ejemplo, podr&#x00ed;as querer persistir propiedades del tipo <literal>java.lang.BigInteger</literal> a columnas <literal>VARCHAR</literal>. Hibernate no provee un tipo de f&#x00e1;brica para esto. Pero los tipos personalizados no est&#x00e1;n limitados a mapear una propiedad (o elemento de colecci&#x00f3;n) a una sola columna de tabla. As&#x00ed;, por ejemplo, podr&#x00ed;as tener una propiedad Java <literal>getName()</literal>/<literal>setName()</literal> de tipo <literal>java.lang.String</literal> que fuera persistida a las columnas <literal>FIRST_NAME</literal>, <literal>INITIAL</literal>, <literal>SURNAME</literal>."
+#. Tag: para
+#: basic_mapping.xml:2404
+#, no-c-format
+msgid ""
+"There is one further type of property mapping. The <literal>&lt;any&gt;</"
+"literal> mapping element defines a polymorphic association to classes from "
+"multiple tables. This type of mapping always requires more than one column. "
+"The first column holds the type of the associated entity. The remaining "
+"columns hold the identifier. It is impossible to specify a foreign key "
+"constraint for this kind of association, so this is most certainly not meant "
+"as the usual way of mapping (polymorphic) associations. You should use this "
+"only in very special cases (eg. audit logs, user session data, etc)."
+msgstr ""
+"Hay un tipo más de mapeo de propiedad. El elemento de mapeo <literal>&lt;"
+"any&gt;</literal> define una asociacián polimórfica a clases desde múltiples "
+"tablas. Este tipo de mapeo siempre requiere más de una columna. La primera "
+"columna contiene el tipo de la entidad asociada. Las columnas restantes "
+"contienen el identificador. Es imposible especificar una restricción de "
+"clave foránea para este tipo de asociación, por lo que esto ciertamente no "
+"está concebido como la forma habitual de mapear asociaciones (polimórficas). "
+"Sólo debes usar esto en casos muy especiales (por ejemplo, trazas de "
+"auditoréa, datos de sesión de usuario, etc)."
 
-#: index.docbook:2414
-msgid "The <literal>meta-type</literal> attribute lets the application specify a custom type that maps database column values to persistent classes which have identifier properties of the type specified by <literal>id-type</literal>. You must specify the mapping from values of the meta-type to class names."
-msgstr "Para implementar un tipo personalizado, implementa bien <literal>org.hibernate.UserType</literal> o <literal>org.hibernate.CompositeUserType</literal> y declara las propiedades usando el nombre de clase completamente cualificado del tipo. Revisa <literal>org.hibernate.test.DoubleStringType</literal> para ver qu&#x00e9; tipo de cosas son posibles."
+#. Tag: para
+#: basic_mapping.xml:2414
+#, no-c-format
+msgid ""
+"The <literal>meta-type</literal> attribute lets the application specify a "
+"custom type that maps database column values to persistent classes which "
+"have identifier properties of the type specified by <literal>id-type</"
+"literal>. You must specify the mapping from values of the meta-type to class "
+"names."
+msgstr ""
+"El atributo <literal>meta-type</literal> permite a la aplicación especificar "
+"un tipo personalizado que mapee columnas de base de datos a clases "
+"persistentes que tengan propiedades identificadoras del tipo especificado "
+"por <literal>id-type</literal>. Debes especificar el mapeo de valores del "
+"meta-type a nombres de clase."
 
-#: index.docbook:2421
+#. Tag: programlisting
+#: basic_mapping.xml:2421
+#, no-c-format
 msgid ""
-      "<![CDATA[<any name=\"being\" id-type=\"long\" meta-type=\"string\">\n"
-      "    <meta-value value=\"TBL_ANIMAL\" class=\"Animal\"/>\n"
-      "    <meta-value value=\"TBL_HUMAN\" class=\"Human\"/>\n"
-      "    <meta-value value=\"TBL_ALIEN\" class=\"Alien\"/>\n"
-      "    <column name=\"table_name\"/>\n"
-      "    <column name=\"id\"/>\n"
-      "</any>]]>"
+"<![CDATA[<any name=\"being\" id-type=\"long\" meta-type=\"string\">\n"
+"    <meta-value value=\"TBL_ANIMAL\" class=\"Animal\"/>\n"
+"    <meta-value value=\"TBL_HUMAN\" class=\"Human\"/>\n"
+"    <meta-value value=\"TBL_ALIEN\" class=\"Alien\"/>\n"
+"    <column name=\"table_name\"/>\n"
+"    <column name=\"id\"/>\n"
+"</any>]]>"
 msgstr ""
-      "<![CDATA[<property name=\"twoStrings\" type=\"org.hibernate.test.DoubleStringType\">\n"
-      "    <column name=\"first_string\"/>\n"
-      "    <column name=\"second_string\"/>\n"
-      "</property>]]>"
 
-#: index.docbook:2432
+#. Tag: programlisting
+#: basic_mapping.xml:2432
+#, no-c-format
 msgid ""
-      "<![CDATA[<any\n"
-      "        name=\"propertyName\"\n"
-      "        id-type=\"idtypename\"\n"
-      "        meta-type=\"metatypename\"\n"
-      "        cascade=\"cascade_style\"\n"
-      "        access=\"field|property|ClassName\"\n"
-      "        optimistic-lock=\"true|false\"\n"
-      ">\n"
-      "        <meta-value ... />\n"
-      "        <meta-value ... />\n"
-      "        .....\n"
-      "        <column .... />\n"
-      "        <column .... />\n"
-      "        .....\n"
-      "</any>]]>"
-msgstr "Observa el uso de etiquetas <literal>&lt;column&gt;</literal> para mapear una propiedad a m&#x00fa;ltiples columnas."
+"<![CDATA[<any\n"
+"        name=\"propertyName\"\n"
+"        id-type=\"idtypename\"\n"
+"        meta-type=\"metatypename\"\n"
+"        cascade=\"cascade_style\"\n"
+"        access=\"field|property|ClassName\"\n"
+"        optimistic-lock=\"true|false\"\n"
+">\n"
+"        <meta-value ... />\n"
+"        <meta-value ... />\n"
+"        .....\n"
+"        <column .... />\n"
+"        <column .... />\n"
+"        .....\n"
+"</any>]]>"
+msgstr ""
 
-#: index.docbook:2435
+#. Tag: para
+#: basic_mapping.xml:2435
+#, no-c-format
 msgid "<literal>name</literal>: the property name."
-msgstr "Las interfaces <literal>CompositeUserType</literal>, <literal>EnhancedUserType</literal>, <literal>UserCollectionType</literal>, y <literal>UserVersionType</literal> proveen soporte a usos m&#x00e1;s especializados."
+msgstr "<literal>name</literal>: el nombre de la propiedad."
 
-#: index.docbook:2440
+#. Tag: para
+#: basic_mapping.xml:2440
+#, no-c-format
 msgid "<literal>id-type</literal>: the identifier type."
-msgstr "Puedes incluso proveer de par&#x00e1;metros a un <literal>UserType</literal> en el fichero de mapeo. Para hacer esto, tu <literal>UserType</literal> debe implementar la interface <literal>org.hibernate.usertype.ParameterizedType</literal>. Para proveer de par&#x00e1;metros a tu tipo personalizado, puedes usar el elemento <literal>&lt;type&gt;</literal> en tus ficheros de mapeo."
+msgstr "<literal>id-type</literal>: el tipo del identificador."
 
-#: index.docbook:2445
-msgid "<literal>meta-type</literal> (optional - defaults to <literal>string</literal>): Any type that is allowed for a discriminator mapping."
+#. Tag: para
+#: basic_mapping.xml:2445
+#, no-c-format
+msgid ""
+"<literal>meta-type</literal> (optional - defaults to <literal>string</"
+"literal>): Any type that is allowed for a discriminator mapping."
 msgstr ""
-      "<![CDATA[<property name=\"priority\">\n"
-      "    <type name=\"com.mycompany.usertypes.DefaultValueIntegerType\">\n"
-      "        <param name=\"default\">0</param>\n"
-      "    </type>\n"
-      "</property>]]>"
+"<literal>meta-type</literal> (opcional - por defecto a <literal>string</"
+"literal>): Cualquier tipo que sea permitido para un mapeo de discriminador."
 
-#: index.docbook:2451
-msgid "<literal>cascade</literal> (optional- defaults to <literal>none</literal>): the cascade style."
-msgstr "Ahora el <literal>UserType</literal> puede recuperar el valor del par&#x00e1;metro llamado <literal>default</literal> del objeto <literal>Properties</literal> que se le pasa."
+#. Tag: para
+#: basic_mapping.xml:2451
+#, no-c-format
+msgid ""
+"<literal>cascade</literal> (optional- defaults to <literal>none</literal>): "
+"the cascade style."
+msgstr ""
+"<literal>cascade</literal> (opcional- por defecto a <literal>none</"
+"literal>): el estilo de cascada."
 
-#: index.docbook:2463
-msgid "<literal>optimistic-lock</literal> (optional - defaults to <literal>true</literal>): Specifies that updates to this property do or do not require acquisition of the optimistic lock. In other words, define if a version increment should occur if this property is dirty."
+#. Tag: para
+#: basic_mapping.xml:2463
+#, no-c-format
+msgid ""
+"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
+"literal>): Specifies that updates to this property do or do not require "
+"acquisition of the optimistic lock. In other words, define if a version "
+"increment should occur if this property is dirty."
 msgstr ""
-      "<![CDATA[<typedef class=\"com.mycompany.usertypes.DefaultValueIntegerType\" name=\"default_zero\">\n"
-      "    <param name=\"default\">0</param>\n"
-      "</typedef>]]>"
+"<literal>optimistic-lock</literal> (opcional - por defecto a <literal>true</"
+"literal>): Especifica si las actualizaciones de esta propiedad requieren o "
+"no de la adquisición del bloqueo optimista. En otras palabras, determina si "
+"debe ocurrir un incremento de versión cuando esta propiedad está "
+"desactualizada."
 
-#: index.docbook:2478
+#. Tag: title
+#: basic_mapping.xml:2478
+#, no-c-format
 msgid "Hibernate Types"
-msgstr "<![CDATA[<property name=\"priority\" type=\"default_zero\"/>]]>"
+msgstr "Tipos de Hibernate"
 
-#: index.docbook:2481
+#. Tag: title
+#: basic_mapping.xml:2481
+#, no-c-format
 msgid "Entities and values"
-msgstr "tambi&#x00e9;n es posible sobrescribir los par&#x00e1;metros provistos en un typedef sobre una base caso por caso usando par&#x00e1;metros de tipo en el mapeo de la propiedad."
+msgstr "Entidades y Valores"
 
-#: index.docbook:2483
-msgid "To understand the behaviour of various Java language-level objects with respect to the persistence service, we need to classify them into two groups:"
-msgstr "Aunque el rico espectro de tipos prefabricados y soporte de componentes de Hibernate significa que raramente <emphasis>necesites</emphasis> usar un tipo personalizado; sin embargo se considera una buena forma usar tipos personalizados para clases (no-entidades) que aparezcan frecuentemente en tu aplicaci&#x00f3;n. Por ejemplo, una clase <literal>MonetaryAmount</literal> es una buena candidata para un <literal>CompositeUserType</literal>, incluso cuando puede ser facilmente mapeada como un componente. Un motivo para esto es la abstracci&#x00f3;n. Con un tipo personalizado, tus documentos de mapeo estar&#x00e1; impermeabilizados contra posibles cambios futuros en la forma de representar valores monetarios."
+#. Tag: para
+#: basic_mapping.xml:2483
+#, no-c-format
+msgid ""
+"To understand the behaviour of various Java language-level objects with "
+"respect to the persistence service, we need to classify them into two groups:"
+msgstr ""
+"Para entender el comportamiento de varios objetos a nivel de lenguaje Java "
+"con respecto al servicio de persistencia, necesitamos clasificarlos en dos "
+"grupos:"
 
-#: index.docbook:2488
-msgid "An <emphasis>entity</emphasis> exists independently of any other objects holding references to the entity. Contrast this with the usual Java model where an unreferenced object is garbage collected. Entities must be explicitly saved and deleted (except that saves and deletions may be <emphasis>cascaded</emphasis> from a parent entity to its children). This is different from the ODMG model of object persistence by reachablity - and corresponds more closely to how application objects are usually used in large systems. Entities support circular and shared references. They may also be versioned."
-msgstr "Mapeando una clase m&#x00e1;s de una vez"
+#. Tag: para
+#: basic_mapping.xml:2488
+#, no-c-format
+msgid ""
+"An <emphasis>entity</emphasis> exists independently of any other objects "
+"holding references to the entity. Contrast this with the usual Java model "
+"where an unreferenced object is garbage collected. Entities must be "
+"explicitly saved and deleted (except that saves and deletions may be "
+"<emphasis>cascaded</emphasis> from a parent entity to its children). This is "
+"different from the ODMG model of object persistence by reachablity - and "
+"corresponds more closely to how application objects are usually used in "
+"large systems. Entities support circular and shared references. They may "
+"also be versioned."
+msgstr ""
+"Una <emphasis>entidad</emphasis> existe independientemente de cualquier "
+"otros objetos que referencien a la entidad. Contrasta esto con el model "
+"habitual de Java donde un objeto desreferenciado es recolectado como basura. "
+"Las entidades deben ser salvadas y borradas explícitamente (excepto que las "
+"grabaciones y borrados puedan ser <emphasis>tratados en cascada</emphasis> "
+"desde una entidad padre a sus hijos). Esto es diferente al modelo de "
+"persistencia de objetos por alcance - y se corresponde más de cerca a cómo "
+"los objetos de aplicación son usados habitualmente en grandes sistemas. Las "
+"entidades soportan referencias circulares y compartidas, que tambié pueden "
+"ser versionadas."
 
-#: index.docbook:2499
-msgid "An entity's persistent state consists of references to other entities and instances of <emphasis>value</emphasis> types. Values are primitives, collections (not what's inside a collection), components and certain immutable objects. Unlike entities, values (in particular collections and components) <emphasis>are</emphasis> persisted and deleted by reachability. Since value objects (and primitives) are persisted and deleted along with their containing entity they may not be independently versioned. Values have no independent identity, so they cannot be shared by two entities or collections."
-msgstr "Es posible proveer m&#x00e1;s de un mapeo para una clase persistente en particular. En este caso debes especificar un <emphasis>nombre de entidad</emphasis> para desambiguar entr las instancias de las dos entidades mapeadas. (Por defectom, el nombre de la entidad es el mismo que el nombre de la clase.) Hibernate te deja especificar el nombre de entidad al trabajar con objetos persistentes, al escribir consultas, o al mapear asociaciones a la entidad mencionada."
+#. Tag: para
+#: basic_mapping.xml:2499
+#, no-c-format
+msgid ""
+"An entity's persistent state consists of references to other entities and "
+"instances of <emphasis>value</emphasis> types. Values are primitives, "
+"collections (not what's inside a collection), components and certain "
+"immutable objects. Unlike entities, values (in particular collections and "
+"components) <emphasis>are</emphasis> persisted and deleted by reachability. "
+"Since value objects (and primitives) are persisted and deleted along with "
+"their containing entity they may not be independently versioned. Values have "
+"no independent identity, so they cannot be shared by two entities or "
+"collections."
+msgstr ""
+"El estado persistente de una entidad consiste en referencias a otras "
+"entidades e instancias de tipo <emphasis>valor</emphasis>. Los valores son "
+"primitivos, colecciones (no lo que está dentro de la colección), componentes "
+"y ciertos objetos inmutables. A diferencia de las entidades, los valores (en "
+"particular las colecciones y los componentes) <emphasis>son</emphasis> "
+"hechos persitentes y borrados por alcance. Como los objetos valor (y "
+"primitivos) son persistidos y borrados junto a sus entidades contenedoras, "
+"no pueden ser versionados independientemente. Los valores no tienen "
+"identidad independiente, por los que no pueden ser compartidos por dos "
+"entidades o colleciones."
 
-#: index.docbook:2510
-msgid "Up until now, we've been using the term \"persistent class\" to refer to entities. We will continue to do that. Strictly speaking, however, not all user-defined classes with persistent state are entities. A <emphasis>component</emphasis> is a user defined class with value semantics. A Java property of type <literal>java.lang.String</literal> also has value semantics. Given this definition, we can say that all types (classes) provided by the JDK have value type semantics in Java, while user-defined types may be mapped with entity or value type semantics. This decision is up to the application developer. A good hint for an entity class in a domain model are shared references to a single instance of that class, while composition or aggregation usually translates to a value type."
+#. Tag: para
+#: basic_mapping.xml:2510
+#, no-c-format
+msgid ""
+"Up until now, we've been using the term \"persistent class\" to refer to "
+"entities. We will continue to do that. Strictly speaking, however, not all "
+"user-defined classes with persistent state are entities. A "
+"<emphasis>component</emphasis> is a user defined class with value semantics. "
+"A Java property of type <literal>java.lang.String</literal> also has value "
+"semantics. Given this definition, we can say that all types (classes) "
+"provided by the JDK have value type semantics in Java, while user-defined "
+"types may be mapped with entity or value type semantics. This decision is up "
+"to the application developer. A good hint for an entity class in a domain "
+"model are shared references to a single instance of that class, while "
+"composition or aggregation usually translates to a value type."
 msgstr ""
-      "<![CDATA[<class name=\"Contract\" table=\"Contracts\" \n"
-      "        entity-name=\"CurrentContract\">\n"
-      "    ...\n"
-      "    <set name=\"history\" inverse=\"true\" \n"
-      "            order-by=\"effectiveEndDate desc\">\n"
-      "        <key column=\"currentContractId\"/>\n"
-      "        <one-to-many entity-name=\"HistoricalContract\"/>\n"
-      "    </set>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Contract\" table=\"ContractHistory\" \n"
-      "        entity-name=\"HistoricalContract\">\n"
-      "    ...\n"
-      "    <many-to-one name=\"currentContract\" \n"
-      "            column=\"currentContractId\" \n"
-      "            entity-name=\"CurrentContract\"/>\n"
-      "</class>]]>"
+"Hasta ahora, hemos estado usando el término \"clase persistente\" para "
+"referirnos a entidades. Continuaremos haciéndolo. Hablando estrictamente, "
+"sin embargo, no todas la clases con estado persistente definidas por el "
+"usuario son entidades. Un <emphasis>componente</emphasis> es una clase "
+"definida por el usuario con semántica de valor. Una propiedad Java de tipo "
+"<literal>java.lang.String</literal> también tiene semántica de valor. Dada "
+"esta definición, podemos decir que todos los tipo (clases) provistos por el "
+"JDK tienen una semántica de tipo valor en Java, mientras que los tipos "
+"definidos por el usuario pueden ser mapeados con semántica de tipo valor o "
+"de entidad. La desición corre por cuenta del desarrollador de la aplicación. "
+"Un buen consejo para una clase entidad en un modelo de dominio son las "
+"referencias compartidas a una sola instancia de esa clase, mientras que la "
+"composición o agregación usualmente se traducen a un tipo de valor."
 
-#: index.docbook:2524
+#. Tag: para
+#: basic_mapping.xml:2524
+#, no-c-format
 msgid "We'll revisit both concepts throughout the documentation."
-msgstr "Observa c&#x00f3;mo las asociaciones ahora se especifican usando <literal>entity-name</literal> en vez de <literal>class</literal>."
+msgstr "Volveremos a visitar ambos conceptos a lo largo de la documentación."
 
-#: index.docbook:2528
-msgid "The challenge is to map the Java type system (and the developers' definition of entities and value types) to the SQL/database type system. The bridge between both systems is provided by Hibernate: for entities we use <literal>&lt;class&gt;</literal>, <literal>&lt;subclass&gt;</literal> and so on. For value types we use <literal>&lt;property&gt;</literal>, <literal>&lt;component&gt;</literal>, etc, usually with a <literal>type</literal> attribute. The value of this attribute is the name of a Hibernate <emphasis>mapping type</emphasis>. Hibernate provides many mappings (for standard JDK value types) out of the box. You can write your own mapping types and implement your custom conversion strategies as well, as you'll see later."
-msgstr "identificadores SQL encomillados"
+#. Tag: para
+#: basic_mapping.xml:2528
+#, no-c-format
+msgid ""
+"The challenge is to map the Java type system (and the developers' definition "
+"of entities and value types) to the SQL/database type system. The bridge "
+"between both systems is provided by Hibernate: for entities we use "
+"<literal>&lt;class&gt;</literal>, <literal>&lt;subclass&gt;</literal> and so "
+"on. For value types we use <literal>&lt;property&gt;</literal>, <literal>&lt;"
+"component&gt;</literal>, etc, usually with a <literal>type</literal> "
+"attribute. The value of this attribute is the name of a Hibernate "
+"<emphasis>mapping type</emphasis>. Hibernate provides many mappings (for "
+"standard JDK value types) out of the box. You can write your own mapping "
+"types and implement your custom conversion strategies as well, as you'll see "
+"later."
+msgstr ""
+"EL desafío es mapear el sistema de tipos de Java (y la definición de "
+"entidades y tipos de valor de los desarrolladores) al sistema de tipos de "
+"SQL/base de datos. EL puente entre ambos sistemas es provisto por Hibernate: "
+"para las entidades usamos <literal>&lt;class&gt;</literal>, <literal>&lt;"
+"subclass&gt;</literal>, etc. Para los tipos de valor usamos <literal>&lt;"
+"property&gt;</literal>, <literal>&lt;component&gt;</literal>, etc, "
+"usualmente con un atributo <literal>type</literal>. El valor de este "
+"atributo es el nombre de un <emphasis>tipo de mapeo</emphasis> de Hibernate. "
+"Hibernate provee de fábrica muchos mapeos (para tipos de valores del JDK "
+"estándar). Puedes escribir tus propios mapeos de tipo, así como implementar "
+"tus estrategias de conversión personalizadas, como veremos luego."
 
-#: index.docbook:2541
+#. Tag: para
+#: basic_mapping.xml:2541
+#, no-c-format
 msgid "All built-in Hibernate types except collections support null semantics."
-msgstr "Puedes forzar a Hibernate a encomillar un identificador en el SQL generado encerrando el nombre de tabla o columna entre backticks en el documento de mapeo. Hibernate usar&#x00e1; el estilo de encomillado para el <literal>Dialect</literal> SQL (usualmente comillas dobles, excepto corchetes para SQL Server y backsticks para MySQL)."
+msgstr ""
+"Todos los tipos prefabricados de Hibernate soportan semántica de nulos "
+"excepto las colecciones."
 
-#: index.docbook:2548
+#. Tag: title
+#: basic_mapping.xml:2548
+#, no-c-format
 msgid "Basic value types"
+msgstr "Tipos de valores básicos"
+
+#. Tag: para
+#: basic_mapping.xml:2550
+#, fuzzy, no-c-format
+msgid ""
+"The built-in <emphasis>basic mapping types</emphasis> may be roughly "
+"categorized into"
 msgstr ""
-      "<![CDATA[<class name=\"LineItem\" table=\"`Line Item`\">\n"
-      "    <id name=\"id\" column=\"`Item Id`\"/><generator class=\"assigned\"/></id>\n"
-      "    <property name=\"itemNumber\" column=\"`Item #`\"/>\n"
-      "    ...\n"
-      "</class>]]>"
+"Los <emphasis>tipos de mapeo básicos</emphasis> prefabricados pueden ser "
+"categorizado a grandes rasgos en: <placeholder-1/>"
 
-#: index.docbook:2550
-msgid "The built-in <emphasis>basic mapping types</emphasis> may be roughly categorized into"
-msgstr "Alternativas de metadatos"
+#. Tag: literal
+#: basic_mapping.xml:2555
+#, no-c-format
+msgid ""
+"integer, long, short, float, double, character, byte, boolean, yes_no, "
+"true_false"
+msgstr ""
+"integer, long, short, float, double, character, byte, boolean, yes_no, "
+"true_false"
 
-#: index.docbook:2555
-msgid "integer, long, short, float, double, character, byte, boolean, yes_no, true_false"
-msgstr "XML no es para todos, as&#x00e1; que hay algunas formas alternativas de definir metadatos de mapeo O/R en Hibernate."
+#. Tag: para
+#: basic_mapping.xml:2558
+#, no-c-format
+msgid ""
+"Type mappings from Java primitives or wrapper classes to appropriate (vendor-"
+"specific) SQL column types. <literal>boolean, yes_no</literal> and "
+"<literal>true_false</literal> are all alternative encodings for a Java "
+"<literal>boolean</literal> or <literal>java.lang.Boolean</literal>."
+msgstr ""
+"Mapeos de tipos primitivos de Java o clases de envoltura a la tipos de "
+"columna SQL (especícifica del vendedor). <literal>boolean, yes_no</literal> "
+"y <literal>true_false</literal> son codificaciones alternativas a "
+"<literal>boolean</literal> de Java o <literal>java.lang.Boolean</literal>."
 
-#: index.docbook:2558
-msgid "Type mappings from Java primitives or wrapper classes to appropriate (vendor-specific) SQL column types. <literal>boolean, yes_no</literal> and <literal>true_false</literal> are all alternative encodings for a Java <literal>boolean</literal> or <literal>java.lang.Boolean</literal>."
-msgstr "Usando marcado de XDoclet"
-
-#: index.docbook:2567
+#. Tag: literal
+#: basic_mapping.xml:2567
+#, no-c-format
 msgid "string"
-msgstr "Muchos usuarios de Hibernate prefieren embeber la informaci&#x00f3;n de mapeo directamente en el c&#x00f3;digo fuente usando las <literal>@hibernate.etiquetas</literal> XDoclet. No cubriremos este enfoque en este documento, pues estrictamente es considerado parte de XDoclet. Sin embargo, inclu&#x00ed;mos el siguiente ejemplo de la clase <literal>Cat</literal> con mapeos XDoclet."
+msgstr "string"
 
-#: index.docbook:2569
-msgid "A type mapping from <literal>java.lang.String</literal> to <literal>VARCHAR</literal> (or Oracle <literal>VARCHAR2</literal>)."
+#. Tag: para
+#: basic_mapping.xml:2569
+#, no-c-format
+msgid ""
+"A type mapping from <literal>java.lang.String</literal> to <literal>VARCHAR</"
+"literal> (or Oracle <literal>VARCHAR2</literal>)."
 msgstr ""
-      "<![CDATA[package eg;\n"
-      "import java.util.Set;\n"
-      "import java.util.Date;\n"
-      "\n"
-      "/**\n"
-      " * @hibernate.class\n"
-      " *  table=\"CATS\"\n"
-      " */\n"
-      "public class Cat {\n"
-      "    private Long id; // identifier\n"
-      "    private Date birthdate;\n"
-      "    private Cat mother;\n"
-      "    private Set kittens\n"
-      "    private Color color;\n"
-      "    private char sex;\n"
-      "    private float weight;\n"
-      "\n"
-      "    /*\n"
-      "     * @hibernate.id\n"
-      "     *  generator-class=\"native\"\n"
-      "     *  column=\"CAT_ID\"\n"
-      "     */\n"
-      "    public Long getId() {\n"
-      "        return id;\n"
-      "    }\n"
-      "    private void setId(Long id) {\n"
-      "        this.id=id;\n"
-      "    }\n"
-      "\n"
-      "    /**\n"
-      "     * @hibernate.many-to-one\n"
-      "     *  column=\"PARENT_ID\"\n"
-      "     */\n"
-      "    public Cat getMother() {\n"
-      "        return mother;\n"
-      "    }\n"
-      "    void setMother(Cat mother) {\n"
-      "        this.mother = mother;\n"
-      "    }\n"
-      "\n"
-      "    /**\n"
-      "     * @hibernate.property\n"
-      "     *  column=\"BIRTH_DATE\"\n"
-      "     */\n"
-      "    public Date getBirthdate() {\n"
-      "        return birthdate;\n"
-      "    }\n"
-      "    void setBirthdate(Date date) {\n"
-      "        birthdate = date;\n"
-      "    }\n"
-      "    /**\n"
-      "     * @hibernate.property\n"
-      "     *  column=\"WEIGHT\"\n"
-      "     */\n"
-      "    public float getWeight() {\n"
-      "        return weight;\n"
-      "    }\n"
-      "    void setWeight(float weight) {\n"
-      "        this.weight = weight;\n"
-      "    }\n"
-      "\n"
-      "    /**\n"
-      "     * @hibernate.property\n"
-      "     *  column=\"COLOR\"\n"
-      "     *  not-null=\"true\"\n"
-      "     */\n"
-      "    public Color getColor() {\n"
-      "        return color;\n"
-      "    }\n"
-      "    void setColor(Color color) {\n"
-      "        this.color = color;\n"
-      "    }\n"
-      "    /**\n"
-      "     * @hibernate.set\n"
-      "     *  inverse=\"true\"\n"
-      "     *  order-by=\"BIRTH_DATE\"\n"
-      "     * @hibernate.collection-key\n"
-      "     *  column=\"PARENT_ID\"\n"
-      "     * @hibernate.collection-one-to-many\n"
-      "     */\n"
-      "    public Set getKittens() {\n"
-      "        return kittens;\n"
-      "    }\n"
-      "    void setKittens(Set kittens) {\n"
-      "        this.kittens = kittens;\n"
-      "    }\n"
-      "    // addKitten not needed by Hibernate\n"
-      "    public void addKitten(Cat kitten) {\n"
-      "        kittens.add(kitten);\n"
-      "    }\n"
-      "\n"
-      "    /**\n"
-      "     * @hibernate.property\n"
-      "     *  column=\"SEX\"\n"
-      "     *  not-null=\"true\"\n"
-      "     *  update=\"false\"\n"
-      "     */\n"
-      "    public char getSex() {\n"
-      "        return sex;\n"
-      "    }\n"
-      "    void setSex(char sex) {\n"
-      "        this.sex=sex;\n"
-      "    }\n"
-      "}]]>"
+"Un mapeo del tipo <literal>java.lang.String</literal> a <literal>VARCHAR</"
+"literal> (u Oracle <literal>VAARCHAR2</literal>)."
 
-#: index.docbook:2576
+#. Tag: literal
+#: basic_mapping.xml:2576
+#, no-c-format
 msgid "date, time, timestamp"
-msgstr "Para m&#x00e1;s ejemplos de XDoclet e Hibernate ver en el sitio web de Hibernate."
+msgstr "date, time, timestamp"
 
-#: index.docbook:2578
-msgid "Type mappings from <literal>java.util.Date</literal> and its subclasses to SQL types <literal>DATE</literal>, <literal>TIME</literal> and <literal>TIMESTAMP</literal> (or equivalent)."
-msgstr "Usando anotaciones JDK 5.0"
+#. Tag: para
+#: basic_mapping.xml:2578
+#, no-c-format
+msgid ""
+"Type mappings from <literal>java.util.Date</literal> and its subclasses to "
+"SQL types <literal>DATE</literal>, <literal>TIME</literal> and "
+"<literal>TIMESTAMP</literal> (or equivalent)."
+msgstr ""
+"Mapeos de tipo desde <literal>java.util.Date</literal> y sus subclases a "
+"tipos SQL <literal>DATE</literal>, <literal>TIME</literal> y "
+"<literal>TIMESTAMP</literal> (o equivalente)."
 
-#: index.docbook:2586
+#. Tag: literal
+#: basic_mapping.xml:2586
+#, no-c-format
 msgid "calendar, calendar_date"
-msgstr "El JDK 5.0 introdujo anotaciones del estilo XDoclet a nivel del lenguaje, con chequeo seguro de tipos en tiempo de compilaci&#x00f3;n. Este mecanismo es m&#x00e1;s potente y que las anotaciones XDoclet, y mejor soportado por herramientas e IDEs. IntelliJ IDEA, por ejemplo, soporta auto-compleci&#x00f3;n y resaltado de sintaxis de anotaciones JDK 5.0. La nueva revisi&#x00f3;n de la especificaci&#x00f3;n de EJB (JSR-220) usa anotaciones JDK 5.0 como el mecanismo primario de metadatos para beans de entidad. Hibernate3 implementa el <literal>EntityManager</literal> del JSR-220 (la API de persistencia), y el soporte para metadatos de mapeo est&#x00e1; disponible v&#x00ed;a el paquete <emphasis>Hibernate Annotations</emphasis>, como una descarga por separado. Tanto metadatos de EJB3 (JSR-220) como de Hibernate3 est&#x00e1;n soportados."
+msgstr "calendar, calendar_date"
 
-#: index.docbook:2588
-msgid "Type mappings from <literal>java.util.Calendar</literal> to SQL types <literal>TIMESTAMP</literal> and <literal>DATE</literal> (or equivalent)."
-msgstr "Este es un ejemplo de una clase POJO anotada como un bean de entidad EJB:"
+#. Tag: para
+#: basic_mapping.xml:2588
+#, no-c-format
+msgid ""
+"Type mappings from <literal>java.util.Calendar</literal> to SQL types "
+"<literal>TIMESTAMP</literal> and <literal>DATE</literal> (or equivalent)."
+msgstr ""
+"Mapeos de tipo desde <literal>java.util.Date</literal> y sus subclases a "
+"tipos SQL <literal>TIMESTAMP</literal> y <literal>DATE</literal> (o "
+"equivalente)."
 
-#: index.docbook:2596
+#. Tag: literal
+#: basic_mapping.xml:2596
+#, no-c-format
 msgid "big_decimal, big_integer"
+msgstr "big_decimal, big_integer"
+
+#. Tag: para
+#: basic_mapping.xml:2598
+#, no-c-format
+msgid ""
+"Type mappings from <literal>java.math.BigDecimal</literal> and <literal>java."
+"math.BigInteger</literal> to <literal>NUMERIC</literal> (or Oracle "
+"<literal>NUMBER</literal>)."
 msgstr ""
-      "<![CDATA[@Entity(access = AccessType.FIELD)\n"
-      "public class Customer implements Serializable {\n"
-      "\n"
-      "    @Id;\n"
-      "    Long id;\n"
-      "\n"
-      "    String firstName;\n"
-      "    String lastName;\n"
-      "    Date birthday;\n"
-      "\n"
-      "    @Transient\n"
-      "    Integer age;\n"
-      "\n"
-      "    @Embedded\n"
-      "    private Address homeAddress;\n"
-      "\n"
-      "    @OneToMany(cascade=CascadeType.ALL)\n"
-      "\n"
-      "    @JoinColumn(name=\"CUSTOMER_ID\")\n"
-      "    Set<Order> orders;\n"
-      "\n"
-      "    // Getter/setter and business methods\n"
-      "}]]>"
+"Mapeos de tipo desde <literal>java.math.BigDecimal</literal> y <literal>java."
+"math.BigInteger</literal> a <literal>NUMERIC</literal> (o <literal>NUMBER</"
+"literal> de Oracle)."
 
-#: index.docbook:2598
-msgid "Type mappings from <literal>java.math.BigDecimal</literal> and <literal>java.math.BigInteger</literal> to <literal>NUMERIC</literal> (or Oracle <literal>NUMBER</literal>)."
-msgstr "Ten en cuenta que el soporte a anotaciones JDK 5.0 (y JSR-220) es todav&#x00ed;a un trabajo en progreso y no completado. Por favor, para m&#x00e1;s detalles refi&#x00e9;rete al modulo de Anotaciones de Hibernate."
-
-#: index.docbook:2606
+#. Tag: literal
+#: basic_mapping.xml:2606
+#, no-c-format
 msgid "locale, timezone, currency"
-msgstr ""
+msgstr "locale, timezone, currency"
 
-#: index.docbook:2608
-msgid "Type mappings from <literal>java.util.Locale</literal>, <literal>java.util.TimeZone</literal> and <literal>java.util.Currency</literal> to <literal>VARCHAR</literal> (or Oracle <literal>VARCHAR2</literal>). Instances of <literal>Locale</literal> and <literal>Currency</literal> are mapped to their ISO codes. Instances of <literal>TimeZone</literal> are mapped to their <literal>ID</literal>."
+#. Tag: para
+#: basic_mapping.xml:2608
+#, no-c-format
+msgid ""
+"Type mappings from <literal>java.util.Locale</literal>, <literal>java.util."
+"TimeZone</literal> and <literal>java.util.Currency</literal> to "
+"<literal>VARCHAR</literal> (or Oracle <literal>VARCHAR2</literal>). "
+"Instances of <literal>Locale</literal> and <literal>Currency</literal> are "
+"mapped to their ISO codes. Instances of <literal>TimeZone</literal> are "
+"mapped to their <literal>ID</literal>."
 msgstr ""
+"Mapeos de tipo desde <literal>java.util.Locale</literal>, <literal>java.util."
+"TimeZone</literal> y <literal>java.util.Currency</literal> a "
+"<literal>VARCHAR</literal> (o <literal>VARCHAR2</literal> de Oracle). Las "
+"instancias de <literal>Locale</literal> y <literal>Currency</literal> son "
+"mapeadas a sus códigos ISO. Las instancias de <literal>TimeZone</literal> "
+"son mapeadas a sus <literal>ID</literal>."
 
-#: index.docbook:2620
+#. Tag: literal
+#: basic_mapping.xml:2620
+#, fuzzy, no-c-format
 msgid "<literal>class</literal>"
-msgstr ""
+msgstr "<literal>all</literal> chequea todas las columnas"
 
-#: index.docbook:2622
-msgid "A type mapping from <literal>java.lang.Class</literal> to <literal>VARCHAR</literal> (or Oracle <literal>VARCHAR2</literal>). A <literal>Class</literal> is mapped to its fully qualified name."
+#. Tag: para
+#: basic_mapping.xml:2622
+#, no-c-format
+msgid ""
+"A type mapping from <literal>java.lang.Class</literal> to <literal>VARCHAR</"
+"literal> (or Oracle <literal>VARCHAR2</literal>). A <literal>Class</literal> "
+"is mapped to its fully qualified name."
 msgstr ""
+"Un mapeo de tipo <literal>java.lang.Class</literal> a <literal>VARCHAR</"
+"literal> (o <literal>VARCHAR2</literal> de Oracle). Una <literal>Class</"
+"literal> es mapeara a su nombre completamente cualificado."
 
-#: index.docbook:2630
+#. Tag: literal
+#: basic_mapping.xml:2630
+#, no-c-format
 msgid "binary"
-msgstr ""
+msgstr "binary"
 
-#: index.docbook:2632
+#. Tag: para
+#: basic_mapping.xml:2632
+#, no-c-format
 msgid "Maps byte arrays to an appropriate SQL binary type."
-msgstr ""
+msgstr "Mapea arreglos de bytes a un tipo binario SQL apropiado."
 
-#: index.docbook:2638
+#. Tag: literal
+#: basic_mapping.xml:2638
+#, no-c-format
 msgid "text"
-msgstr ""
+msgstr "text"
 
-#: index.docbook:2640
-msgid "Maps long Java strings to a SQL <literal>CLOB</literal> or <literal>TEXT</literal> type."
+#. Tag: para
+#: basic_mapping.xml:2640
+#, no-c-format
+msgid ""
+"Maps long Java strings to a SQL <literal>CLOB</literal> or <literal>TEXT</"
+"literal> type."
 msgstr ""
+"Mapea cadenas largas Java al tipo SQL <literal>CLOB</literal> o "
+"<literal>TEXT</literal>."
 
-#: index.docbook:2647
+#. Tag: literal
+#: basic_mapping.xml:2647
+#, no-c-format
 msgid "serializable"
-msgstr ""
+msgstr "serializable"
 
-#: index.docbook:2649
-msgid "Maps serializable Java types to an appropriate SQL binary type. You may also indicate the Hibernate type <literal>serializable</literal> with the name of a serializable Java class or interface that does not default to a basic type."
+#. Tag: para
+#: basic_mapping.xml:2649
+#, no-c-format
+msgid ""
+"Maps serializable Java types to an appropriate SQL binary type. You may also "
+"indicate the Hibernate type <literal>serializable</literal> with the name of "
+"a serializable Java class or interface that does not default to a basic type."
 msgstr ""
+"Mapea tipos serializables Java a un tipo binario SQL apropiado. Puedes "
+"además indicar el tipo <literal>serializable</literal> de Hibernate con el "
+"nombre de una clase o interface serializable Java que no sea por defecto un "
+"tipo básico."
 
-#: index.docbook:2658
+#. Tag: literal
+#: basic_mapping.xml:2658
+#, no-c-format
 msgid "clob, blob"
-msgstr ""
+msgstr "clob, blob"
 
-#: index.docbook:2660
-msgid "Type mappings for the JDBC classes <literal>java.sql.Clob</literal> and <literal>java.sql.Blob</literal>. These types may be inconvenient for some applications, since the blob or clob object may not be reused outside of a transaction. (Furthermore, driver support is patchy and inconsistent.)"
+#. Tag: para
+#: basic_mapping.xml:2660
+#, no-c-format
+msgid ""
+"Type mappings for the JDBC classes <literal>java.sql.Clob</literal> and "
+"<literal>java.sql.Blob</literal>. These types may be inconvenient for some "
+"applications, since the blob or clob object may not be reused outside of a "
+"transaction. (Furthermore, driver support is patchy and inconsistent.)"
 msgstr ""
+"Mapeos de tipo para las clases JDBC <literal>java.sql.Clob</literal> y "
+"<literal>java.sql.Blob</literal>. Estos tipos pueden ser inconvenientes para "
+"algunas aplicaciones, pues el objeto blob o clob no puede ser reusado fuera "
+"de una transacción (Además, el soporte del driver suele ser malo e "
+"inconsistente)."
 
-#: index.docbook:2670
-msgid "imm_date, imm_time, imm_timestamp, imm_calendar, imm_calendar_date, imm_serializable, imm_binary"
+#. Tag: literal
+#: basic_mapping.xml:2670
+#, no-c-format
+msgid ""
+"imm_date, imm_time, imm_timestamp, imm_calendar, imm_calendar_date, "
+"imm_serializable, imm_binary"
 msgstr ""
+"UNTRANSLATED! imm_date, imm_time, imm_timestamp, imm_calendar, "
+"imm_calendar_date, imm_serializable, imm_binary"
 
-#: index.docbook:2674
-msgid "Type mappings for what are usually considered mutable Java types, where Hibernate makes certain optimizations appropriate only for immutable Java types, and the application treats the object as immutable. For example, you should not call <literal>Date.setTime()</literal> for an instance mapped as <literal>imm_timestamp</literal>. To change the value of the property, and have that change made persistent, the application must assign a new (nonidentical) object to the property."
+#. Tag: para
+#: basic_mapping.xml:2674
+#, no-c-format
+msgid ""
+"Type mappings for what are usually considered mutable Java types, where "
+"Hibernate makes certain optimizations appropriate only for immutable Java "
+"types, and the application treats the object as immutable. For example, you "
+"should not call <literal>Date.setTime()</literal> for an instance mapped as "
+"<literal>imm_timestamp</literal>. To change the value of the property, and "
+"have that change made persistent, the application must assign a new "
+"(nonidentical) object to the property."
 msgstr ""
+"Type mappings for what are usually considered mutable Java types, where "
+"Hibernate makes certain optimizations appropriate only for immutable Java "
+"types, and the application treats the object as immutable. For example, you "
+"should not call <literal>Date.setTime()</literal> for an instance mapped as "
+"<literal>imm_timestamp</literal>. To change the value of the property, and "
+"have that change made persistent, the application must assign a new "
+"(nonidentical) object to the property."
 
-#: index.docbook:2689
-msgid "Unique identifiers of entities and collections may be of any basic type except <literal>binary</literal>, <literal>blob</literal> and <literal>clob</literal>. (Composite identifiers are also allowed, see below.)"
+#. Tag: para
+#: basic_mapping.xml:2689
+#, no-c-format
+msgid ""
+"Unique identifiers of entities and collections may be of any basic type "
+"except <literal>binary</literal>, <literal>blob</literal> and <literal>clob</"
+"literal>. (Composite identifiers are also allowed, see below.)"
 msgstr ""
+"Los identificadores únicos de entidades y collecciones pueden ser de "
+"cualquier tipo básico excepto <literal>binary</literal>, <literal>blob</"
+"literal> y <literal>clob</literal>. (Los identificadores compuestos están "
+"también permitidos, ver debajo.)"
 
-#: index.docbook:2695
-msgid "The basic value types have corresponding <literal>Type</literal> constants defined on <literal>org.hibernate.Hibernate</literal>. For example, <literal>Hibernate.STRING</literal> represents the <literal>string</literal> type."
+#. Tag: para
+#: basic_mapping.xml:2695
+#, no-c-format
+msgid ""
+"The basic value types have corresponding <literal>Type</literal> constants "
+"defined on <literal>org.hibernate.Hibernate</literal>. For example, "
+"<literal>Hibernate.STRING</literal> represents the <literal>string</literal> "
+"type."
 msgstr ""
+"Los tipos de valor básicos tienen sus constantes <literal>Type</literal> "
+"correspondientes definidas en <literal>org.hibernate.Hibernate</literal>. "
+"Por ejemplo, <literal>Hibernate.STRING</literal> representa el tipo "
+"<literal>string</literal>."
 
-#: index.docbook:2704
+#. Tag: title
+#: basic_mapping.xml:2704
+#, no-c-format
 msgid "Custom value types"
-msgstr ""
+msgstr "Tipos de valor personalizados"
 
-#: index.docbook:2706
-msgid "It is relatively easy for developers to create their own value types. For example, you might want to persist properties of type <literal>java.lang.BigInteger</literal> to <literal>VARCHAR</literal> columns. Hibernate does not provide a built-in type for this. But custom types are not limited to mapping a property (or collection element) to a single table column. So, for example, you might have a Java property <literal>getName()</literal>/<literal>setName()</literal> of type <literal>java.lang.String</literal> that is persisted to the columns <literal>FIRST_NAME</literal>, <literal>INITIAL</literal>, <literal>SURNAME</literal>."
+#. Tag: para
+#: basic_mapping.xml:2706
+#, no-c-format
+msgid ""
+"It is relatively easy for developers to create their own value types. For "
+"example, you might want to persist properties of type <literal>java.lang."
+"BigInteger</literal> to <literal>VARCHAR</literal> columns. Hibernate does "
+"not provide a built-in type for this. But custom types are not limited to "
+"mapping a property (or collection element) to a single table column. So, for "
+"example, you might have a Java property <literal>getName()</literal>/"
+"<literal>setName()</literal> of type <literal>java.lang.String</literal> "
+"that is persisted to the columns <literal>FIRST_NAME</literal>, "
+"<literal>INITIAL</literal>, <literal>SURNAME</literal>."
 msgstr ""
+"Es relativamente fácil para los desarrolladores crear sus propios tipos de "
+"valor. Por ejemplo, podrías querer persistir propiedades del tipo "
+"<literal>java.lang.BigInteger</literal> a columnas <literal>VARCHAR</"
+"literal>. Hibernate no provee un tipo de fábrica para esto. Pero los tipos "
+"personalizados no están limitados a mapear una propiedad (o elemento de "
+"colección) a una sola columna de tabla. Así, por ejemplo, podrías tener una "
+"propiedad Java <literal>getName()</literal>/<literal>setName()</literal> de "
+"tipo <literal>java.lang.String</literal> que fuera persistida a las columnas "
+"<literal>FIRST_NAME</literal>, <literal>INITIAL</literal>, <literal>SURNAME</"
+"literal>."
 
-#: index.docbook:2717
-msgid "To implement a custom type, implement either <literal>org.hibernate.UserType</literal> or <literal>org.hibernate.CompositeUserType</literal> and declare properties using the fully qualified classname of the type. Check out <literal>org.hibernate.test.DoubleStringType</literal> to see the kind of things that are possible."
+#. Tag: para
+#: basic_mapping.xml:2717
+#, no-c-format
+msgid ""
+"To implement a custom type, implement either <literal>org.hibernate."
+"UserType</literal> or <literal>org.hibernate.CompositeUserType</literal> and "
+"declare properties using the fully qualified classname of the type. Check "
+"out <literal>org.hibernate.test.DoubleStringType</literal> to see the kind "
+"of things that are possible."
 msgstr ""
+"Para implementar un tipo personalizado, implementa bien <literal>org."
+"hibernate.UserType</literal> o <literal>org.hibernate.CompositeUserType</"
+"literal> y declara las propiedades usando el nombre de clase completamente "
+"cualificado del tipo. Revisa <literal>org.hibernate.test.DoubleStringType</"
+"literal> para ver qué tipo de cosas son posibles."
 
-#: index.docbook:2725
+#. Tag: programlisting
+#: basic_mapping.xml:2725
+#, no-c-format
 msgid ""
-      "<![CDATA[<property name=\"twoStrings\" type=\"org.hibernate.test.DoubleStringType\">\n"
-      "    <column name=\"first_string\"/>\n"
-      "    <column name=\"second_string\"/>\n"
-      "</property>]]>"
+"<![CDATA[<property name=\"twoStrings\" type=\"org.hibernate.test."
+"DoubleStringType\">\n"
+"    <column name=\"first_string\"/>\n"
+"    <column name=\"second_string\"/>\n"
+"</property>]]>"
 msgstr ""
 
-#: index.docbook:2727
-msgid "Notice the use of <literal>&lt;column&gt;</literal> tags to map a property to multiple columns."
+#. Tag: para
+#: basic_mapping.xml:2727
+#, no-c-format
+msgid ""
+"Notice the use of <literal>&lt;column&gt;</literal> tags to map a property "
+"to multiple columns."
 msgstr ""
+"Observa el uso de etiquetas <literal>&lt;column&gt;</literal> para mapear "
+"una propiedad a múltiples columnas."
 
-#: index.docbook:2732
-msgid "The <literal>CompositeUserType</literal>, <literal>EnhancedUserType</literal>, <literal>UserCollectionType</literal>, and <literal>UserVersionType</literal> interfaces provide support for more specialized uses."
+#. Tag: para
+#: basic_mapping.xml:2732
+#, no-c-format
+msgid ""
+"The <literal>CompositeUserType</literal>, <literal>EnhancedUserType</"
+"literal>, <literal>UserCollectionType</literal>, and "
+"<literal>UserVersionType</literal> interfaces provide support for more "
+"specialized uses."
 msgstr ""
+"Las interfaces <literal>CompositeUserType</literal>, "
+"<literal>EnhancedUserType</literal>, <literal>UserCollectionType</literal>, "
+"y <literal>UserVersionType</literal> proveen soporte a usos más "
+"especializados."
 
-#: index.docbook:2738
-msgid "You may even supply parameters to a <literal>UserType</literal> in the mapping file. To do this, your <literal>UserType</literal> must implement the <literal>org.hibernate.usertype.ParameterizedType</literal> interface. To supply parameters to your custom type, you can use the <literal>&lt;type&gt;</literal> element in your mapping files."
+#. Tag: para
+#: basic_mapping.xml:2738
+#, no-c-format
+msgid ""
+"You may even supply parameters to a <literal>UserType</literal> in the "
+"mapping file. To do this, your <literal>UserType</literal> must implement "
+"the <literal>org.hibernate.usertype.ParameterizedType</literal> interface. "
+"To supply parameters to your custom type, you can use the <literal>&lt;"
+"type&gt;</literal> element in your mapping files."
 msgstr ""
+"Puedes incluso proveer de parámetros a un <literal>UserType</literal> en el "
+"fichero de mapeo. Para hacer esto, tu <literal>UserType</literal> debe "
+"implementar la interface <literal>org.hibernate.usertype.ParameterizedType</"
+"literal>. Para proveer de parámetros a tu tipo personalizado, puedes usar el "
+"elemento <literal>&lt;type&gt;</literal> en tus ficheros de mapeo."
 
-#: index.docbook:2746
+#. Tag: programlisting
+#: basic_mapping.xml:2746
+#, no-c-format
 msgid ""
-      "<![CDATA[<property name=\"priority\">\n"
-      "    <type name=\"com.mycompany.usertypes.DefaultValueIntegerType\">\n"
-      "        <param name=\"default\">0</param>\n"
-      "    </type>\n"
-      "</property>]]>"
+"<![CDATA[<property name=\"priority\">\n"
+"    <type name=\"com.mycompany.usertypes.DefaultValueIntegerType\">\n"
+"        <param name=\"default\">0</param>\n"
+"    </type>\n"
+"</property>]]>"
 msgstr ""
 
-#: index.docbook:2748
-msgid "The <literal>UserType</literal> can now retrieve the value for the parameter named <literal>default</literal> from the <literal>Properties</literal> object passed to it."
+#. Tag: para
+#: basic_mapping.xml:2748
+#, no-c-format
+msgid ""
+"The <literal>UserType</literal> can now retrieve the value for the parameter "
+"named <literal>default</literal> from the <literal>Properties</literal> "
+"object passed to it."
 msgstr ""
+"Ahora el <literal>UserType</literal> puede recuperar el valor del parámetro "
+"llamado <literal>default</literal> del objeto <literal>Properties</literal> "
+"que se le pasa."
 
-#: index.docbook:2753
-msgid "If you use a certain <literal>UserType</literal> very often, it may be useful to define a shorter name for it. You can do this using the <literal>&lt;typedef&gt;</literal> element. Typedefs assign a name to a custom type, and may also contain a list of default parameter values if the type is parameterized."
+#. Tag: para
+#: basic_mapping.xml:2753
+#, no-c-format
+msgid ""
+"If you use a certain <literal>UserType</literal> very often, it may be "
+"useful to define a shorter name for it. You can do this using the "
+"<literal>&lt;typedef&gt;</literal> element. Typedefs assign a name to a "
+"custom type, and may also contain a list of default parameter values if the "
+"type is parameterized."
 msgstr ""
+"Si usas cierto <literal>UserType</literal> muy frecuentemente, puede ser "
+"útil definir un nombre corto para é. Puedes hacer esto usando el elemento "
+"<literal>&lt;typedef&gt;</literal>. Los typedefs asignan un nombre a un tipo "
+"personalizado, y pueden también contener una lista de valores por defecto de "
+"parámetros si el tipo fuese parametrizado."
 
-#: index.docbook:2760
+#. Tag: programlisting
+#: basic_mapping.xml:2760
+#, no-c-format
 msgid ""
-      "<![CDATA[<typedef class=\"com.mycompany.usertypes.DefaultValueIntegerType\" name=\"default_zero\">\n"
-      "    <param name=\"default\">0</param>\n"
-      "</typedef>]]>"
+"<![CDATA[<typedef class=\"com.mycompany.usertypes.DefaultValueIntegerType\" "
+"name=\"default_zero\">\n"
+"    <param name=\"default\">0</param>\n"
+"</typedef>]]>"
 msgstr ""
 
-#: index.docbook:2762
+#. Tag: programlisting
+#: basic_mapping.xml:2762
+#, no-c-format
 msgid "<![CDATA[<property name=\"priority\" type=\"default_zero\"/>]]>"
 msgstr ""
 
-#: index.docbook:2764
-msgid "It is also possible to override the parameters supplied in a typedef on a case-by-case basis by using type parameters on the property mapping."
+#. Tag: para
+#: basic_mapping.xml:2764
+#, no-c-format
+msgid ""
+"It is also possible to override the parameters supplied in a typedef on a "
+"case-by-case basis by using type parameters on the property mapping."
 msgstr ""
+"también es posible sobrescribir los parámetros provistos en un typedef sobre "
+"una base caso por caso usando parámetros de tipo en el mapeo de la propiedad."
 
-#: index.docbook:2769
-msgid "Even though Hibernate's rich range of built-in types and support for components means you will very rarely <emphasis>need</emphasis> to use a custom type, it is nevertheless considered good form to use custom types for (non-entity) classes that occur frequently in your application. For example, a <literal>MonetaryAmount</literal> class is a good candidate for a <literal>CompositeUserType</literal>, even though it could easily be mapped as a component. One motivation for this is abstraction. With a custom type, your mapping documents would be future-proofed against possible changes in your way of representing monetary values."
+#. Tag: para
+#: basic_mapping.xml:2769
+#, no-c-format
+msgid ""
+"Even though Hibernate's rich range of built-in types and support for "
+"components means you will very rarely <emphasis>need</emphasis> to use a "
+"custom type, it is nevertheless considered good form to use custom types for "
+"(non-entity) classes that occur frequently in your application. For example, "
+"a <literal>MonetaryAmount</literal> class is a good candidate for a "
+"<literal>CompositeUserType</literal>, even though it could easily be mapped "
+"as a component. One motivation for this is abstraction. With a custom type, "
+"your mapping documents would be future-proofed against possible changes in "
+"your way of representing monetary values."
 msgstr ""
+"Aunque el rico espectro de tipos prefabricados y soporte de componentes de "
+"Hibernate significa que raramente <emphasis>necesites</emphasis> usar un "
+"tipo personalizado; sin embargo se considera una buena forma usar tipos "
+"personalizados para clases (no-entidades) que aparezcan frecuentemente en tu "
+"aplicación. Por ejemplo, una clase <literal>MonetaryAmount</literal> es una "
+"buena candidata para un <literal>CompositeUserType</literal>, incluso cuando "
+"puede ser facilmente mapeada como un componente. Un motivo para esto es la "
+"abstracción. Con un tipo personalizado, tus documentos de mapeo estará "
+"impermeabilizados contra posibles cambios futuros en la forma de representar "
+"valores monetarios."
 
-#: index.docbook:2785
+#. Tag: title
+#: basic_mapping.xml:2785
+#, no-c-format
 msgid "Mapping a class more than once"
-msgstr ""
+msgstr "Mapeando una clase más de una vez"
 
-#: index.docbook:2786
-msgid "It is possible to provide more than one mapping for a particular persistent class. In this case you must specify an <emphasis>entity name</emphasis> do disambiguate between instances of the two mapped entities. (By default, the entity name is the same as the class name.) Hibernate lets you specify the entity name when working with persistent objects, when writing queries, or when mapping associations to the named entity."
+#. Tag: para
+#: basic_mapping.xml:2786
+#, no-c-format
+msgid ""
+"It is possible to provide more than one mapping for a particular persistent "
+"class. In this case you must specify an <emphasis>entity name</emphasis> do "
+"disambiguate between instances of the two mapped entities. (By default, the "
+"entity name is the same as the class name.) Hibernate lets you specify the "
+"entity name when working with persistent objects, when writing queries, or "
+"when mapping associations to the named entity."
 msgstr ""
+"Es posible proveer más de un mapeo para una clase persistente en particular. "
+"En este caso debes especificar un <emphasis>nombre de entidad</emphasis> "
+"para desambiguar entr las instancias de las dos entidades mapeadas. (Por "
+"defectom, el nombre de la entidad es el mismo que el nombre de la clase.) "
+"Hibernate te deja especificar el nombre de entidad al trabajar con objetos "
+"persistentes, al escribir consultas, o al mapear asociaciones a la entidad "
+"mencionada."
 
-#: index.docbook:2794
+#. Tag: programlisting
+#: basic_mapping.xml:2794
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Contract\" table=\"Contracts\"\n"
-      "        entity-name=\"CurrentContract\">\n"
-      "    ...\n"
-      "    <set name=\"history\" inverse=\"true\"\n"
-      "            order-by=\"effectiveEndDate desc\">\n"
-      "        <key column=\"currentContractId\"/>\n"
-      "        <one-to-many entity-name=\"HistoricalContract\"/>\n"
-      "    </set>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Contract\" table=\"ContractHistory\"\n"
-      "        entity-name=\"HistoricalContract\">\n"
-      "    ...\n"
-      "    <many-to-one name=\"currentContract\"\n"
-      "            column=\"currentContractId\"\n"
-      "            entity-name=\"CurrentContract\"/>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Contract\" table=\"Contracts\"\n"
+"        entity-name=\"CurrentContract\">\n"
+"    ...\n"
+"    <set name=\"history\" inverse=\"true\"\n"
+"            order-by=\"effectiveEndDate desc\">\n"
+"        <key column=\"currentContractId\"/>\n"
+"        <one-to-many entity-name=\"HistoricalContract\"/>\n"
+"    </set>\n"
+"</class>\n"
+"\n"
+"<class name=\"Contract\" table=\"ContractHistory\"\n"
+"        entity-name=\"HistoricalContract\">\n"
+"    ...\n"
+"    <many-to-one name=\"currentContract\"\n"
+"            column=\"currentContractId\"\n"
+"            entity-name=\"CurrentContract\"/>\n"
+"</class>]]>"
 msgstr ""
 
-#: index.docbook:2796
-msgid "Notice how associations are now specified using <literal>entity-name</literal> instead of <literal>class</literal>."
+#. Tag: para
+#: basic_mapping.xml:2796
+#, no-c-format
+msgid ""
+"Notice how associations are now specified using <literal>entity-name</"
+"literal> instead of <literal>class</literal>."
 msgstr ""
+"Observa cómo las asociaciones ahora se especifican usando <literal>entity-"
+"name</literal> en vez de <literal>class</literal>."
 
-#: index.docbook:2804
+#. Tag: title
+#: basic_mapping.xml:2804
+#, no-c-format
 msgid "SQL quoted identifiers"
-msgstr ""
+msgstr "identificadores SQL encomillados"
 
-#: index.docbook:2805
-msgid "You may force Hibernate to quote an identifier in the generated SQL by enclosing the table or column name in backticks in the mapping document. Hibernate will use the correct quotation style for the SQL <literal>Dialect</literal> (usually double quotes, but brackets for SQL Server and backticks for MySQL)."
+#. Tag: para
+#: basic_mapping.xml:2805
+#, no-c-format
+msgid ""
+"You may force Hibernate to quote an identifier in the generated SQL by "
+"enclosing the table or column name in backticks in the mapping document. "
+"Hibernate will use the correct quotation style for the SQL <literal>Dialect</"
+"literal> (usually double quotes, but brackets for SQL Server and backticks "
+"for MySQL)."
 msgstr ""
+"Puedes forzar a Hibernate a encomillar un identificador en el SQL generado "
+"encerrando el nombre de tabla o columna entre backticks en el documento de "
+"mapeo. Hibernate usará el estilo de encomillado para el <literal>Dialect</"
+"literal> SQL (usualmente comillas dobles, excepto corchetes para SQL Server "
+"y backsticks para MySQL)."
 
-#: index.docbook:2812
+#. Tag: programlisting
+#: basic_mapping.xml:2812
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"LineItem\" table=\"`Line Item`\">\n"
-      "    <id name=\"id\" column=\"`Item Id`\"/><generator class=\"assigned\"/></id>\n"
-      "    <property name=\"itemNumber\" column=\"`Item #`\"/>\n"
-      "    ...\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"LineItem\" table=\"`Line Item`\">\n"
+"    <id name=\"id\" column=\"`Item Id`\"/><generator class=\"assigned\"/></"
+"id>\n"
+"    <property name=\"itemNumber\" column=\"`Item #`\"/>\n"
+"    ...\n"
+"</class>]]>"
 msgstr ""
 
-#: index.docbook:2818
+#. Tag: title
+#: basic_mapping.xml:2818
+#, no-c-format
 msgid "Metadata alternatives"
-msgstr ""
+msgstr "Alternativas de metadatos"
 
-#: index.docbook:2820
-msgid "XML isn't for everyone, and so there are some alternative ways to define O/R mapping metadata in Hibernate."
+#. Tag: para
+#: basic_mapping.xml:2820
+#, no-c-format
+msgid ""
+"XML isn't for everyone, and so there are some alternative ways to define O/R "
+"mapping metadata in Hibernate."
 msgstr ""
+"XML no es para todos, asá que hay algunas formas alternativas de definir "
+"metadatos de mapeo O/R en Hibernate."
 
-#: index.docbook:2825
+#. Tag: title
+#: basic_mapping.xml:2825
+#, no-c-format
 msgid "Using XDoclet markup"
-msgstr ""
+msgstr "Usando marcado de XDoclet"
 
-#: index.docbook:2827
-msgid "Many Hibernate users prefer to embed mapping information directly in sourcecode using XDoclet <literal>@hibernate.tags</literal>. We will not cover this approach in this document, since strictly it is considered part of XDoclet. However, we include the following example of the <literal>Cat</literal> class with XDoclet mappings."
+#. Tag: para
+#: basic_mapping.xml:2827
+#, no-c-format
+msgid ""
+"Many Hibernate users prefer to embed mapping information directly in "
+"sourcecode using XDoclet <literal>@hibernate.tags</literal>. We will not "
+"cover this approach in this document, since strictly it is considered part "
+"of XDoclet. However, we include the following example of the <literal>Cat</"
+"literal> class with XDoclet mappings."
 msgstr ""
+"Muchos usuarios de Hibernate prefieren embeber la información de mapeo "
+"directamente en el código fuente usando las <literal>@hibernate.etiquetas</"
+"literal> XDoclet. No cubriremos este enfoque en este documento, pues "
+"estrictamente es considerado parte de XDoclet. Sin embargo, incluímos el "
+"siguiente ejemplo de la clase <literal>Cat</literal> con mapeos XDoclet."
 
-#: index.docbook:2834
+#. Tag: programlisting
+#: basic_mapping.xml:2834
+#, no-c-format
 msgid ""
-      "<![CDATA[package eg;\n"
-      "import java.util.Set;\n"
-      "import java.util.Date;\n"
-      "\n"
-      "/**\n"
-      " * @hibernate.class\n"
-      " *  table=\"CATS\"\n"
-      " */\n"
-      "public class Cat {\n"
-      "    private Long id; // identifier\n"
-      "    private Date birthdate;\n"
-      "    private Cat mother;\n"
-      "    private Set kittens\n"
-      "    private Color color;\n"
-      "    private char sex;\n"
-      "    private float weight;\n"
-      "\n"
-      "    /*\n"
-      "     * @hibernate.id\n"
-      "     *  generator-class=\"native\"\n"
-      "     *  column=\"CAT_ID\"\n"
-      "     */\n"
-      "    public Long getId() {\n"
-      "        return id;\n"
-      "    }\n"
-      "    private void setId(Long id) {\n"
-      "        this.id=id;\n"
-      "    }\n"
-      "\n"
-      "    /**\n"
-      "     * @hibernate.many-to-one\n"
-      "     *  column=\"PARENT_ID\"\n"
-      "     */\n"
-      "    public Cat getMother() {\n"
-      "        return mother;\n"
-      "    }\n"
-      "    void setMother(Cat mother) {\n"
-      "        this.mother = mother;\n"
-      "    }\n"
-      "\n"
-      "    /**\n"
-      "     * @hibernate.property\n"
-      "     *  column=\"BIRTH_DATE\"\n"
-      "     */\n"
-      "    public Date getBirthdate() {\n"
-      "        return birthdate;\n"
-      "    }\n"
-      "    void setBirthdate(Date date) {\n"
-      "        birthdate = date;\n"
-      "    }\n"
-      "    /**\n"
-      "     * @hibernate.property\n"
-      "     *  column=\"WEIGHT\"\n"
-      "     */\n"
-      "    public float getWeight() {\n"
-      "        return weight;\n"
-      "    }\n"
-      "    void setWeight(float weight) {\n"
-      "        this.weight = weight;\n"
-      "    }\n"
-      "\n"
-      "    /**\n"
-      "     * @hibernate.property\n"
-      "     *  column=\"COLOR\"\n"
-      "     *  not-null=\"true\"\n"
-      "     */\n"
-      "    public Color getColor() {\n"
-      "        return color;\n"
-      "    }\n"
-      "    void setColor(Color color) {\n"
-      "        this.color = color;\n"
-      "    }\n"
-      "    /**\n"
-      "     * @hibernate.set\n"
-      "     *  inverse=\"true\"\n"
-      "     *  order-by=\"BIRTH_DATE\"\n"
-      "     * @hibernate.collection-key\n"
-      "     *  column=\"PARENT_ID\"\n"
-      "     * @hibernate.collection-one-to-many\n"
-      "     */\n"
-      "    public Set getKittens() {\n"
-      "        return kittens;\n"
-      "    }\n"
-      "    void setKittens(Set kittens) {\n"
-      "        this.kittens = kittens;\n"
-      "    }\n"
-      "    // addKitten not needed by Hibernate\n"
-      "    public void addKitten(Cat kitten) {\n"
-      "        kittens.add(kitten);\n"
-      "    }\n"
-      "\n"
-      "    /**\n"
-      "     * @hibernate.property\n"
-      "     *  column=\"SEX\"\n"
-      "     *  not-null=\"true\"\n"
-      "     *  update=\"false\"\n"
-      "     */\n"
-      "    public char getSex() {\n"
-      "        return sex;\n"
-      "    }\n"
-      "    void setSex(char sex) {\n"
-      "        this.sex=sex;\n"
-      "    }\n"
-      "}]]>"
+"<![CDATA[package eg;\n"
+"import java.util.Set;\n"
+"import java.util.Date;\n"
+"\n"
+"/**\n"
+" * @hibernate.class\n"
+" *  table=\"CATS\"\n"
+" */\n"
+"public class Cat {\n"
+"    private Long id; // identifier\n"
+"    private Date birthdate;\n"
+"    private Cat mother;\n"
+"    private Set kittens\n"
+"    private Color color;\n"
+"    private char sex;\n"
+"    private float weight;\n"
+"\n"
+"    /*\n"
+"     * @hibernate.id\n"
+"     *  generator-class=\"native\"\n"
+"     *  column=\"CAT_ID\"\n"
+"     */\n"
+"    public Long getId() {\n"
+"        return id;\n"
+"    }\n"
+"    private void setId(Long id) {\n"
+"        this.id=id;\n"
+"    }\n"
+"\n"
+"    /**\n"
+"     * @hibernate.many-to-one\n"
+"     *  column=\"PARENT_ID\"\n"
+"     */\n"
+"    public Cat getMother() {\n"
+"        return mother;\n"
+"    }\n"
+"    void setMother(Cat mother) {\n"
+"        this.mother = mother;\n"
+"    }\n"
+"\n"
+"    /**\n"
+"     * @hibernate.property\n"
+"     *  column=\"BIRTH_DATE\"\n"
+"     */\n"
+"    public Date getBirthdate() {\n"
+"        return birthdate;\n"
+"    }\n"
+"    void setBirthdate(Date date) {\n"
+"        birthdate = date;\n"
+"    }\n"
+"    /**\n"
+"     * @hibernate.property\n"
+"     *  column=\"WEIGHT\"\n"
+"     */\n"
+"    public float getWeight() {\n"
+"        return weight;\n"
+"    }\n"
+"    void setWeight(float weight) {\n"
+"        this.weight = weight;\n"
+"    }\n"
+"\n"
+"    /**\n"
+"     * @hibernate.property\n"
+"     *  column=\"COLOR\"\n"
+"     *  not-null=\"true\"\n"
+"     */\n"
+"    public Color getColor() {\n"
+"        return color;\n"
+"    }\n"
+"    void setColor(Color color) {\n"
+"        this.color = color;\n"
+"    }\n"
+"    /**\n"
+"     * @hibernate.set\n"
+"     *  inverse=\"true\"\n"
+"     *  order-by=\"BIRTH_DATE\"\n"
+"     * @hibernate.collection-key\n"
+"     *  column=\"PARENT_ID\"\n"
+"     * @hibernate.collection-one-to-many\n"
+"     */\n"
+"    public Set getKittens() {\n"
+"        return kittens;\n"
+"    }\n"
+"    void setKittens(Set kittens) {\n"
+"        this.kittens = kittens;\n"
+"    }\n"
+"    // addKitten not needed by Hibernate\n"
+"    public void addKitten(Cat kitten) {\n"
+"        kittens.add(kitten);\n"
+"    }\n"
+"\n"
+"    /**\n"
+"     * @hibernate.property\n"
+"     *  column=\"SEX\"\n"
+"     *  not-null=\"true\"\n"
+"     *  update=\"false\"\n"
+"     */\n"
+"    public char getSex() {\n"
+"        return sex;\n"
+"    }\n"
+"    void setSex(char sex) {\n"
+"        this.sex=sex;\n"
+"    }\n"
+"}]]>"
 msgstr ""
 
-#: index.docbook:2836
+#. Tag: para
+#: basic_mapping.xml:2836
+#, no-c-format
 msgid "See the Hibernate web site for more examples of XDoclet and Hibernate."
 msgstr ""
+"Para más ejemplos de XDoclet e Hibernate ver en el sitio web de Hibernate."
 
-#: index.docbook:2843
+#. Tag: title
+#: basic_mapping.xml:2843
+#, no-c-format
 msgid "Using JDK 5.0 Annotations"
-msgstr ""
+msgstr "Usando anotaciones JDK 5.0"
 
-#: index.docbook:2845
-msgid "JDK 5.0 introduced XDoclet-style annotations at the language level, type-safe and checked at compile time. This mechnism is more powerful than XDoclet annotations and better supported by tools and IDEs. IntelliJ IDEA, for example, supports auto-completion and syntax highlighting of JDK 5.0 annotations. The new revision of the EJB specification (JSR-220) uses JDK 5.0 annotations as the primary metadata mechanism for entity beans. Hibernate3 implements the <literal>EntityManager</literal> of JSR-220 (the persistence API), support for mapping metadata is available via the <emphasis>Hibernate Annotations</emphasis> package, as a separate download. Both EJB3 (JSR-220) and Hibernate3 metadata is supported."
+#. Tag: para
+#: basic_mapping.xml:2845
+#, no-c-format
+msgid ""
+"JDK 5.0 introduced XDoclet-style annotations at the language level, type-"
+"safe and checked at compile time. This mechnism is more powerful than "
+"XDoclet annotations and better supported by tools and IDEs. IntelliJ IDEA, "
+"for example, supports auto-completion and syntax highlighting of JDK 5.0 "
+"annotations. The new revision of the EJB specification (JSR-220) uses JDK "
+"5.0 annotations as the primary metadata mechanism for entity beans. "
+"Hibernate3 implements the <literal>EntityManager</literal> of JSR-220 (the "
+"persistence API), support for mapping metadata is available via the "
+"<emphasis>Hibernate Annotations</emphasis> package, as a separate download. "
+"Both EJB3 (JSR-220) and Hibernate3 metadata is supported."
 msgstr ""
+"El JDK 5.0 introdujo anotaciones del estilo XDoclet a nivel del lenguaje, "
+"con chequeo seguro de tipos en tiempo de compilación. Este mecanismo es más "
+"potente y que las anotaciones XDoclet, y mejor soportado por herramientas e "
+"IDEs. IntelliJ IDEA, por ejemplo, soporta auto-compleción y resaltado de "
+"sintaxis de anotaciones JDK 5.0. La nueva revisión de la especificación de "
+"EJB (JSR-220) usa anotaciones JDK 5.0 como el mecanismo primario de "
+"metadatos para beans de entidad. Hibernate3 implementa el "
+"<literal>EntityManager</literal> del JSR-220 (la API de persistencia), y el "
+"soporte para metadatos de mapeo está disponible vía el paquete "
+"<emphasis>Hibernate Annotations</emphasis>, como una descarga por separado. "
+"Tanto metadatos de EJB3 (JSR-220) como de Hibernate3 están soportados."
 
-#: index.docbook:2856
+#. Tag: para
+#: basic_mapping.xml:2856
+#, no-c-format
 msgid "This is an example of a POJO class annotated as an EJB entity bean:"
 msgstr ""
+"Este es un ejemplo de una clase POJO anotada como un bean de entidad EJB:"
 
-#: index.docbook:2860
+#. Tag: programlisting
+#: basic_mapping.xml:2860
+#, no-c-format
 msgid ""
-      "<![CDATA[@Entity(access = AccessType.FIELD)\n"
-      "public class Customer implements Serializable {\n"
-      "\n"
-      "    @Id;\n"
-      "    Long id;\n"
-      "\n"
-      "    String firstName;\n"
-      "    String lastName;\n"
-      "    Date birthday;\n"
-      "\n"
-      "    @Transient\n"
-      "    Integer age;\n"
-      "\n"
-      "    @Embedded\n"
-      "    private Address homeAddress;\n"
-      "\n"
-      "    @OneToMany(cascade=CascadeType.ALL)\n"
-      "    @JoinColumn(name=\"CUSTOMER_ID\")\n"
-      "    Set<Order> orders;\n"
-      "\n"
-      "    // Getter/setter and business methods\n"
-      "}]]>"
+"<![CDATA[@Entity(access = AccessType.FIELD)\n"
+"public class Customer implements Serializable {\n"
+"\n"
+"    @Id;\n"
+"    Long id;\n"
+"\n"
+"    String firstName;\n"
+"    String lastName;\n"
+"    Date birthday;\n"
+"\n"
+"    @Transient\n"
+"    Integer age;\n"
+"\n"
+"    @Embedded\n"
+"    private Address homeAddress;\n"
+"\n"
+"    @OneToMany(cascade=CascadeType.ALL)\n"
+"    @JoinColumn(name=\"CUSTOMER_ID\")\n"
+"    Set<Order> orders;\n"
+"\n"
+"    // Getter/setter and business methods\n"
+"}]]>"
 msgstr ""
 
-#: index.docbook:2862
-msgid "Note that support for JDK 5.0 Annotations (and JSR-220) is still work in progress and not completed. Please refer to the Hibernate Annotations module for more details."
+#. Tag: para
+#: basic_mapping.xml:2862
+#, no-c-format
+msgid ""
+"Note that support for JDK 5.0 Annotations (and JSR-220) is still work in "
+"progress and not completed. Please refer to the Hibernate Annotations module "
+"for more details."
 msgstr ""
+"Ten en cuenta que el soporte a anotaciones JDK 5.0 (y JSR-220) es todavía un "
+"trabajo en progreso y no completado. Por favor, para más detalles refiérete "
+"al modulo de Anotaciones de Hibernate."
 
-#: index.docbook:2871
+#. Tag: title
+#: basic_mapping.xml:2871
+#, no-c-format
 msgid "Generated Properties"
-msgstr ""
+msgstr "translator-credits"
 
-#: index.docbook:2872
-msgid "Generated properties are properties which have their values generated by the database. Typically, Hibernate applications needed to <literal>refresh</literal> objects which contain any properties for which the database was generating values. Marking properties as generated, however, lets the application delegate this responsibility to Hibernate. Essentially, whenever Hibernate issues an SQL INSERT or UPDATE for an entity which has defined generated properties, it immediately issues a select afterwards to retrieve the generated values."
+#. Tag: para
+#: basic_mapping.xml:2872
+#, no-c-format
+msgid ""
+"Generated properties are properties which have their values generated by the "
+"database. Typically, Hibernate applications needed to <literal>refresh</"
+"literal> objects which contain any properties for which the database was "
+"generating values. Marking properties as generated, however, lets the "
+"application delegate this responsibility to Hibernate. Essentially, whenever "
+"Hibernate issues an SQL INSERT or UPDATE for an entity which has defined "
+"generated properties, it immediately issues a select afterwards to retrieve "
+"the generated values."
 msgstr ""
 
-#: index.docbook:2881
-msgid "Properties marked as generated must additionally be non-insertable and non-updateable. Only <xref linkend=\"mapping-declaration-version\"/>versions, <xref linkend=\"mapping-declaration-timestamp\"/>timestamps, and <xref linkend=\"mapping-declaration-property\"/>simple properties can be marked as generated."
+#. Tag: para
+#: basic_mapping.xml:2881
+#, no-c-format
+msgid ""
+"Properties marked as generated must additionally be non-insertable and non-"
+"updateable. Only <link linkend=\"mapping-declaration-version\">versions</"
+"link>, <link linkend=\"mapping-declaration-timestamp\">timestamps</link>, "
+"and <link linkend=\"mapping-declaration-property\">simple properties</link> "
+"can be marked as generated."
 msgstr ""
 
-#: index.docbook:2888
-msgid "<literal>never</literal> (the default) - means that the given property value is not generated within the database."
+#. Tag: para
+#: basic_mapping.xml:2888
+#, no-c-format
+msgid ""
+"<literal>never</literal> (the default) - means that the given property value "
+"is not generated within the database."
 msgstr ""
 
-#: index.docbook:2892
-msgid "<literal>insert</literal> - states that the given property value is generated on insert, but is not regenerated on subsequent updates. Things like created-date would fall into this category. Note that even thought <xref linkend=\"mapping-declaration-version\"/>version and <xref linkend=\"mapping-declaration-timestamp\"/>timestamp properties can be marked as generated, this option is not available there..."
+#. Tag: para
+#: basic_mapping.xml:2892
+#, no-c-format
+msgid ""
+"<literal>insert</literal> - states that the given property value is "
+"generated on insert, but is not regenerated on subsequent updates. Things "
+"like created-date would fall into this category. Note that even thought "
+"<link linkend=\"mapping-declaration-version\">version</link> and <link "
+"linkend=\"mapping-declaration-timestamp\">timestamp</link> properties can be "
+"marked as generated, this option is not available there..."
 msgstr ""
 
-#: index.docbook:2900
-msgid "<literal>always</literal> - states that the property value is generated both on insert and on update."
+#. Tag: para
+#: basic_mapping.xml:2900
+#, no-c-format
+msgid ""
+"<literal>always</literal> - states that the property value is generated both "
+"on insert and on update."
 msgstr ""
 
-#: index.docbook:2907
+#. Tag: title
+#: basic_mapping.xml:2907
+#, no-c-format
 msgid "Auxiliary Database Objects"
 msgstr ""
 
-#: index.docbook:2908
-msgid "Allows CREATE and DROP of arbitrary database objects, in conjunction with Hibernate's schema evolution tools, to provide the ability to fully define a user schema within the Hibernate mapping files. Although designed specifically for creating and dropping things like triggers or stored procedures, really any SQL command that can be run via a <literal>java.sql.Statement.execute()</literal> method is valid here (ALTERs, INSERTS, etc). There are essentially two modes for defining auxiliary database objects..."
+#. Tag: para
+#: basic_mapping.xml:2908
+#, no-c-format
+msgid ""
+"Allows CREATE and DROP of arbitrary database objects, in conjunction with "
+"Hibernate's schema evolution tools, to provide the ability to fully define a "
+"user schema within the Hibernate mapping files. Although designed "
+"specifically for creating and dropping things like triggers or stored "
+"procedures, really any SQL command that can be run via a <literal>java.sql."
+"Statement.execute()</literal> method is valid here (ALTERs, INSERTS, etc). "
+"There are essentially two modes for defining auxiliary database objects..."
 msgstr ""
 
-#: index.docbook:2917
-msgid "The first mode is to explicitly list the CREATE and DROP commands out in the mapping file:"
+#. Tag: para
+#: basic_mapping.xml:2917
+#, no-c-format
+msgid ""
+"The first mode is to explicitly list the CREATE and DROP commands out in the "
+"mapping file:"
 msgstr ""
 
-#: index.docbook:2921
+#. Tag: programlisting
+#: basic_mapping.xml:2921
+#, no-c-format
 msgid ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "    ...\n"
-      "    <database-object>\n"
-      "        <create>CREATE TRIGGER my_trigger ...</create>\n"
-      "        <drop>DROP TRIGGER my_trigger</drop>\n"
-      "    </database-object>\n"
-      "</hibernate-mapping>]]>"
+"<![CDATA[<hibernate-mapping>\n"
+"    ...\n"
+"    <database-object>\n"
+"        <create>CREATE TRIGGER my_trigger ...</create>\n"
+"        <drop>DROP TRIGGER my_trigger</drop>\n"
+"    </database-object>\n"
+"</hibernate-mapping>]]>"
 msgstr ""
 
-#: index.docbook:2922
-msgid "The second mode is to supply a custom class which knows how to construct the CREATE and DROP commands. This custom class must implement the <literal>org.hibernate.mapping.AuxiliaryDatabaseObject</literal> interface."
+#. Tag: para
+#: basic_mapping.xml:2922
+#, no-c-format
+msgid ""
+"The second mode is to supply a custom class which knows how to construct the "
+"CREATE and DROP commands. This custom class must implement the <literal>org."
+"hibernate.mapping.AuxiliaryDatabaseObject</literal> interface."
 msgstr ""
 
-#: index.docbook:2927
+#. Tag: programlisting
+#: basic_mapping.xml:2927
+#, no-c-format
 msgid ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "    ...\n"
-      "    <database-object>\n"
-      "        <definition class=\"MyTriggerDefinition\"/>\n"
-      "    </database-object>\n"
-      "</hibernate-mapping>]]>"
+"<![CDATA[<hibernate-mapping>\n"
+"    ...\n"
+"    <database-object>\n"
+"        <definition class=\"MyTriggerDefinition\"/>\n"
+"    </database-object>\n"
+"</hibernate-mapping>]]>"
 msgstr ""
 
-#: index.docbook:2928
-msgid "Additionally, these database objects can be optionally scoped such that they only apply when certain dialects are used."
+#. Tag: para
+#: basic_mapping.xml:2928
+#, no-c-format
+msgid ""
+"Additionally, these database objects can be optionally scoped such that they "
+"only apply when certain dialects are used."
 msgstr ""
 
-#: index.docbook:2932
+#. Tag: programlisting
+#: basic_mapping.xml:2932
+#, no-c-format
 msgid ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "    ...\n"
-      "    <database-object>\n"
-      "        <definition class=\"MyTriggerDefinition\"/>\n"
-      "        <dialect-scope name=\"org.hibernate.dialect.Oracle9Dialect\"/>\n"
-      "        <dialect-scope name=\"org.hibernate.dialect.OracleDialect\"/>\n"
-      "    </database-object>\n"
-      "</hibernate-mapping>]]>"
+"<![CDATA[<hibernate-mapping>\n"
+"    ...\n"
+"    <database-object>\n"
+"        <definition class=\"MyTriggerDefinition\"/>\n"
+"        <dialect-scope name=\"org.hibernate.dialect.Oracle9Dialect\"/>\n"
+"        <dialect-scope name=\"org.hibernate.dialect.OracleDialect\"/>\n"
+"    </database-object>\n"
+"</hibernate-mapping>]]>"
 msgstr ""
 
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
+#~ msgid "class"
+#~ msgstr "class"
 
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
+#~ msgid "id"
+#~ msgstr "id"
 
+#~ msgid ""
+#~ "<literal>optimizer</literal> (optional, defaults to <literal>none</"
+#~ "literal>): See <xref linkend=\"mapping-declaration-id-enhanced-optimizers"
+#~ "\"/>"
+#~ msgstr ""
+#~ "<literal>optimizer</literal> (optional, defaults to <literal>none</"
+#~ "literal>): See <xref linkend=\"mapping-declaration-id-enhanced-optimizers"
+#~ "\"/>"
+
+#~ msgid ""
+#~ "<literal>optimizer</literal> (optional, defaults to <literal/>): See "
+#~ "<xref linkend=\"mapping-declaration-id-enhanced-optimizers\"/>"
+#~ msgstr ""
+#~ "<literal>optimizer</literal> (optional, defaults to <literal/>): See "
+#~ "<xref linkend=\"mapping-declaration-id-enhanced-optimizers\"/>"
+
+#~ msgid "key"
+#~ msgstr "key"
+
+#~ msgid "any"
+#~ msgstr "any"

Modified: core/trunk/documentation/manual/translations/es-ES/content/batch.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/batch.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/batch.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,342 +1,606 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:5
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: batch.xml:5
+#, no-c-format
 msgid "Batch processing"
 msgstr "Procesamiento por lotes"
 
-#: index.docbook:7
-msgid "A naive approach to inserting 100 000 rows in the database using Hibernate might look like this:"
-msgstr "Un enfoque ingenuo para insertar 100.000 filas en la base de datos usando Hibernate podría verse así:"
+#. Tag: para
+#: batch.xml:7
+#, no-c-format
+msgid ""
+"A naive approach to inserting 100 000 rows in the database using Hibernate "
+"might look like this:"
+msgstr ""
+"Un enfoque ingenuo para insertar 100.000 filas en la base de datos usando "
+"Hibernate podría verse así:"
 
-#: index.docbook:12
+#. Tag: programlisting
+#: batch.xml:12
+#, no-c-format
 msgid ""
-      "<![CDATA[Session session = sessionFactory.openSession();\n"
-      "Transaction tx = session.beginTransaction();\n"
-      "for ( int i=0; i<100000; i++ ) {\n"
-      "    Customer customer = new Customer(.....);\n"
-      "    session.save(customer);\n"
-      "}\n"
-      "tx.commit();\n"
-      "session.close();]]>"
+"<![CDATA[Session session = sessionFactory.openSession();\n"
+"Transaction tx = session.beginTransaction();\n"
+"for ( int i=0; i<100000; i++ ) {\n"
+"    Customer customer = new Customer(.....);\n"
+"    session.save(customer);\n"
+"}\n"
+"tx.commit();\n"
+"session.close();]]>"
 msgstr ""
-      "<![CDATA[Session session = sessionFactory.openSession();\n"
-      "Transaction tx = session.beginTransaction();\n"
-      "for ( int i=0; i<100000; i++ ) {\n"
-      "    Customer customer = new Customer(.....);\n"
-      "    session.save(customer);\n"
-      "}\n"
-      "tx.commit();\n"
-      "session.close();]]>"
 
-#: index.docbook:14
-msgid "This would fall over with an <literal>OutOfMemoryException</literal> somewhere around the 50 000th row. That's because Hibernate caches all the newly inserted <literal>Customer</literal> instances in the session-level cache."
-msgstr "Esto podría caer sobre una <literal>OutOfMemoryException</literal> en algún sitio cerca de la fila 50.000. Esto es porque Hibernate tiene en caché todas las instancias de <literal>Customer</literal> recién instanciadas en el caché de nivel de sesión."
+#. Tag: para
+#: batch.xml:14
+#, no-c-format
+msgid ""
+"This would fall over with an <literal>OutOfMemoryException</literal> "
+"somewhere around the 50 000th row. That's because Hibernate caches all the "
+"newly inserted <literal>Customer</literal> instances in the session-level "
+"cache."
+msgstr ""
+"Esto podría caer sobre una <literal>OutOfMemoryException</literal> en algún "
+"sitio cerca de la fila 50.000. Esto es porque Hibernate tiene en caché todas "
+"las instancias de <literal>Customer</literal> recién instanciadas en el "
+"caché de nivel de sesión."
 
-#: index.docbook:20
-msgid "In this chapter we'll show you how to avoid this problem. First, however, if you are doing batch processing, it is absolutely critical that you enable the use of JDBC batching, if you intend to achieve reasonable performance. Set the JDBC batch size to a reasonable number (say, 10-50):"
-msgstr "En este capítulo te mostraremos cómo evitar este problema. Primero, sin embargo, si estás haciendo procesamiento por lotes (batch processing), es absolutamente crítico que habilites el uso de loteo JDBC, si pretendes lograr un rendimiento razonable. Establece el tamaño de lote JDBC a un número razonable (digamos 10-50):"
+#. Tag: para
+#: batch.xml:20
+#, no-c-format
+msgid ""
+"In this chapter we'll show you how to avoid this problem. First, however, if "
+"you are doing batch processing, it is absolutely critical that you enable "
+"the use of JDBC batching, if you intend to achieve reasonable performance. "
+"Set the JDBC batch size to a reasonable number (say, 10-50):"
+msgstr ""
+"En este capítulo te mostraremos cómo evitar este problema. Primero, sin "
+"embargo, si estás haciendo procesamiento por lotes (batch processing), es "
+"absolutamente crítico que habilites el uso de loteo JDBC, si pretendes "
+"lograr un rendimiento razonable. Establece el tamaño de lote JDBC a un "
+"número razonable (digamos 10-50):"
 
-#: index.docbook:27
+#. Tag: programlisting
+#: batch.xml:27
+#, no-c-format
 msgid "<![CDATA[hibernate.jdbc.batch_size 20]]>"
-msgstr "<![CDATA[hibernate.jdbc.batch_size 20]]>"
+msgstr ""
 
-#: index.docbook:29
-msgid "Note that Hibernate disables insert batching at the JDBC level transparently if you use an <literal>identiy</literal> identifier generator."
-msgstr "Podrías además querer hacer este tipo de trabajo en un proceso donde la interacción con el caché de segundo nivel esté completamente deshabilitado:"
+#. Tag: para
+#: batch.xml:29
+#, no-c-format
+msgid ""
+"Note that Hibernate disables insert batching at the JDBC level transparently "
+"if you use an <literal>identiy</literal> identifier generator."
+msgstr ""
+"UNTRANSLATED! Note that Hibernate disables insert batching at the JDBC level "
+"transparently if you use an <literal>identiy</literal> identifier generator."
 
-#: index.docbook:34
-msgid "You also might like to do this kind of work in a process where interaction with the second-level cache is completely disabled:"
-msgstr "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
+#. Tag: para
+#: batch.xml:34
+#, no-c-format
+msgid ""
+"You also might like to do this kind of work in a process where interaction "
+"with the second-level cache is completely disabled:"
+msgstr ""
+"Podrías además querer hacer este tipo de trabajo en un proceso donde la "
+"interacción con el caché de segundo nivel esté completamente deshabilitado:"
 
-#: index.docbook:39
+#. Tag: programlisting
+#: batch.xml:39
+#, no-c-format
 msgid "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
-msgstr "Inserciones en lote"
+msgstr ""
 
-#: index.docbook:41
-msgid "However, this is not absolutely necessary, since we can explicitly set the <literal>CacheMode</literal> to disable interaction with the second-level cache."
-msgstr "Al hacer persistentes objetos nuevos, debes limpiar con <literal>flush()</literal> y llamar a <literal>clear()</literal> en la sesión regularmente, para controlar el tamaño del caché de primer nivel."
+#. Tag: para
+#: batch.xml:41
+#, no-c-format
+msgid ""
+"However, this is not absolutely necessary, since we can explicitly set the "
+"<literal>CacheMode</literal> to disable interaction with the second-level "
+"cache."
+msgstr ""
+"UNTRANSLATED! However, this is not absolutely necessary, since we can "
+"explicitly set the <literal>CacheMode</literal> to disable interaction with "
+"the second-level cache."
 
-#: index.docbook:47
+#. Tag: title
+#: batch.xml:47
+#, no-c-format
 msgid "Batch inserts"
+msgstr "Inserciones en lote"
+
+#. Tag: para
+#: batch.xml:49
+#, no-c-format
+msgid ""
+"When making new objects persistent, you must <literal>flush()</literal> and "
+"then <literal>clear()</literal> the session regularly, to control the size "
+"of the first-level cache."
 msgstr ""
-      "<![CDATA[Session session = sessionFactory.openSession();\n"
-      "Transaction tx = session.beginTransaction();\n"
-      "   \n"
-      "for ( int i=0; i<100000; i++ ) {\n"
-      "    Customer customer = new Customer(.....);\n"
-      "    session.save(customer);\n"
-      "    if ( i % 20 == 0 ) { //20, same as the JDBC batch size\n"
-      "        //flush a batch of inserts and release memory:\n"
-      "        session.flush();\n"
-      "        session.clear();\n"
-      "    }\n"
-      "}\n"
-      "   \n"
-      "tx.commit();\n"
-      "session.close();]]>"
+"Al hacer persistentes objetos nuevos, debes limpiar con <literal>flush()</"
+"literal> y llamar a <literal>clear()</literal> en la sesión regularmente, "
+"para controlar el tamaño del caché de primer nivel."
 
-#: index.docbook:49
-msgid "When making new objects persistent, you must <literal>flush()</literal> and then <literal>clear()</literal> the session regularly, to control the size of the first-level cache."
+#. Tag: programlisting
+#: batch.xml:55
+#, no-c-format
+msgid ""
+"<![CDATA[Session session = sessionFactory.openSession();\n"
+"Transaction tx = session.beginTransaction();\n"
+"   \n"
+"for ( int i=0; i<100000; i++ ) {\n"
+"    Customer customer = new Customer(.....);\n"
+"    session.save(customer);\n"
+"    if ( i % 20 == 0 ) { //20, same as the JDBC batch size\n"
+"        //flush a batch of inserts and release memory:\n"
+"        session.flush();\n"
+"        session.clear();\n"
+"    }\n"
+"}\n"
+"   \n"
+"tx.commit();\n"
+"session.close();]]>"
+msgstr ""
+
+#. Tag: title
+#: batch.xml:60
+#, no-c-format
+msgid "Batch updates"
 msgstr "Actualizaciones en lote"
 
-#: index.docbook:55
+#. Tag: para
+#: batch.xml:62
+#, no-c-format
 msgid ""
-      "<![CDATA[Session session = sessionFactory.openSession();\n"
-      "Transaction tx = session.beginTransaction();\n"
-      "   \n"
-      "for ( int i=0; i<100000; i++ ) {\n"
-      "    Customer customer = new Customer(.....);\n"
-      "    session.save(customer);\n"
-      "    if ( i % 20 == 0 ) { //20, same as the JDBC batch size\n"
-      "        //flush a batch of inserts and release memory:\n"
-      "        session.flush();\n"
-      "        session.clear();\n"
-      "    }\n"
-      "}\n"
-      "   \n"
-      "tx.commit();\n"
-      "session.close();]]>"
-msgstr "Para recuperar y actualizar datos se aplican las mismas ideas. Adicionalmente, necesitas usar <literal>scroll()</literal> para sacar ventaja de los cursores del lado del servidor en consultas que devuelvan muchas filas de datos."
-
-#: index.docbook:60
-msgid "Batch updates"
+"For retrieving and updating data the same ideas apply. In addition, you need "
+"to use <literal>scroll()</literal> to take advantage of server-side cursors "
+"for queries that return many rows of data."
 msgstr ""
-      "<![CDATA[Session session = sessionFactory.openSession();\n"
-      "Transaction tx = session.beginTransaction();\n"
-      "   \n"
-      "ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
-      "    .setCacheMode(CacheMode.IGNORE)\n"
-      "    .scroll(ScrollMode.FORWARD_ONLY);\n"
-      "int count=0;\n"
-      "while ( customers.next() ) {\n"
-      "    Customer customer = (Customer) customers.get(0);\n"
-      "    customer.updateStuff(...);\n"
-      "    if ( ++count % 20 == 0 ) {\n"
-      "        //flush a batch of updates and release memory:\n"
-      "        session.flush();\n"
-      "        session.clear();\n"
-      "    }\n"
-      "}\n"
-      "   \n"
-      "tx.commit();\n"
-      "session.close();]]>"
+"Para recuperar y actualizar datos se aplican las mismas ideas. "
+"Adicionalmente, necesitas usar <literal>scroll()</literal> para sacar "
+"ventaja de los cursores del lado del servidor en consultas que devuelvan "
+"muchas filas de datos."
 
-#: index.docbook:62
-msgid "For retrieving and updating data the same ideas apply. In addition, you need to use <literal>scroll()</literal> to take advantage of server-side cursors for queries that return many rows of data."
-msgstr "update/delete en masa"
-
-#: index.docbook:68
+#. Tag: programlisting
+#: batch.xml:68
+#, no-c-format
 msgid ""
-      "<![CDATA[Session session = sessionFactory.openSession();\n"
-      "Transaction tx = session.beginTransaction();\n"
-      "   \n"
-      "ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
-      "    .setCacheMode(CacheMode.IGNORE)\n"
-      "    .scroll(ScrollMode.FORWARD_ONLY);\n"
-      "int count=0;\n"
-      "while ( customers.next() ) {\n"
-      "    Customer customer = (Customer) customers.get(0);\n"
-      "    customer.updateStuff(...);\n"
-      "    if ( ++count % 20 == 0 ) {\n"
-      "        //flush a batch of updates and release memory:\n"
-      "        session.flush();\n"
-      "        session.clear();\n"
-      "    }\n"
-      "}\n"
-      "   \n"
-      "tx.commit();\n"
-      "session.close();]]>"
-msgstr "Como ya se ha discutido, el mapeo objeto/relacional automático y transparente se refiere al manejo de estado de objetos. Esto implica que el estado del objeto está disponible en memoria, por lo tanto actualizar o borrar (usando <literal>UPDATE</literal> y <literal>DELETE</literal> de SQL) datos directamente en la base de datos no afectará el estado en memoria. Sin embargo, Hibernate provee métodos para la ejecución de sentencias del estilo de <literal>UPDATE</literal> y <literal>DELETE</literal> de SQL que se realizan a través del Lenguaje de Consulta de Hibernate (Hibernate Query Language o <xref linkend=\"queryhql\"/>HQL)."
+"<![CDATA[Session session = sessionFactory.openSession();\n"
+"Transaction tx = session.beginTransaction();\n"
+"   \n"
+"ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
+"    .setCacheMode(CacheMode.IGNORE)\n"
+"    .scroll(ScrollMode.FORWARD_ONLY);\n"
+"int count=0;\n"
+"while ( customers.next() ) {\n"
+"    Customer customer = (Customer) customers.get(0);\n"
+"    customer.updateStuff(...);\n"
+"    if ( ++count % 20 == 0 ) {\n"
+"        //flush a batch of updates and release memory:\n"
+"        session.flush();\n"
+"        session.clear();\n"
+"    }\n"
+"}\n"
+"   \n"
+"tx.commit();\n"
+"session.close();]]>"
+msgstr ""
 
-#: index.docbook:73
+#. Tag: title
+#: batch.xml:73
+#, no-c-format
 msgid "The StatelessSession interface"
-msgstr "La pseudo-sintáxis para sentencias <literal>UPDATE</literal> y <literal>DELETE</literal> es: <literal>( UPDATE | DELETE ) FROM? ClassName (WHERE WHERE_CONDITIONS)?</literal>. Algunos puntos a tener en cuenta:"
+msgstr "UNTRANSLATED! The StatelessSession interface"
 
-#: index.docbook:74
-msgid "Alternatively, Hibernate provides a command-oriented API that may be used for streaming data to and from the database in the form of detached objects. A <literal>StatelessSession</literal> has no persistence context associated with it and does not provide many of the higher-level life cycle semantics. In particular, a stateless session does not implement a first-level cache nor interact with any second-level or query cache. It does not implement transactional write-behind or automatic dirty checking. Operations performed using a stateless session do not ever cascade to associated instances. Collections are ignored by a stateless session. Operations performed via a stateless session bypass Hibernate's event model and interceptors. Stateless sessions are vulnerable to data aliasing effects, due to the lack of a first-level cache. A stateless session is a lower-level abstraction, much closer to the underlying JDBC."
-msgstr "En la cláusula-from, la palabra clave FROM es opcional"
+#. Tag: para
+#: batch.xml:74
+#, no-c-format
+msgid ""
+"Alternatively, Hibernate provides a command-oriented API that may be used "
+"for streaming data to and from the database in the form of detached objects. "
+"A <literal>StatelessSession</literal> has no persistence context associated "
+"with it and does not provide many of the higher-level life cycle semantics. "
+"In particular, a stateless session does not implement a first-level cache "
+"nor interact with any second-level or query cache. It does not implement "
+"transactional write-behind or automatic dirty checking. Operations performed "
+"using a stateless session do not ever cascade to associated instances. "
+"Collections are ignored by a stateless session. Operations performed via a "
+"stateless session bypass Hibernate's event model and interceptors. Stateless "
+"sessions are vulnerable to data aliasing effects, due to the lack of a first-"
+"level cache. A stateless session is a lower-level abstraction, much closer "
+"to the underlying JDBC."
+msgstr ""
+"Alternatively, Hibernate provides a command-oriented API that may be used "
+"for streaming data to and from the database in the form of detached objects. "
+"A <literal>StatelessSession</literal> has no persistence context associated "
+"with it and does not provide many of the higher-level life cycle semantics. "
+"In particular, a stateless session does not implement a first-level cache "
+"nor interact with any second-level or query cache. It does not implement "
+"transactional write-behind or automatic dirty checking. Operations performed "
+"using a stateless session do not ever cascade to associated instances. "
+"Collections are ignored by a stateless session. Operations performed via a "
+"stateless session bypass Hibernate's event model and interceptors. Stateless "
+"sessions are vulnerable to data aliasing effects, due to the lack of a first-"
+"level cache. A stateless session is a lower-level abstraction, much closer "
+"to the underlying JDBC."
 
-#: index.docbook:89
+#. Tag: programlisting
+#: batch.xml:89
+#, no-c-format
 msgid ""
-      "<![CDATA[StatelessSession session = sessionFactory.openStatelessSession();\n"
-      "Transaction tx = session.beginTransaction();\n"
-      "   \n"
-      "ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
-      "    .scroll(ScrollMode.FORWARD_ONLY);\n"
-      "while ( customers.next() ) {\n"
-      "    Customer customer = (Customer) customers.get(0);\n"
-      "    customer.updateStuff(...);\n"
-      "    session.update(customer);\n"
-      "}\n"
-      "   \n"
-      "tx.commit();\n"
-      "session.close();]]>"
-msgstr "Puede haber sólo una clase mencionada en la cláusula-from, y <emphasis>no puede</emphasis> tener un alias."
+"<![CDATA[StatelessSession session = sessionFactory.openStatelessSession();\n"
+"Transaction tx = session.beginTransaction();\n"
+"   \n"
+"ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
+"    .scroll(ScrollMode.FORWARD_ONLY);\n"
+"while ( customers.next() ) {\n"
+"    Customer customer = (Customer) customers.get(0);\n"
+"    customer.updateStuff(...);\n"
+"    session.update(customer);\n"
+"}\n"
+"   \n"
+"tx.commit();\n"
+"session.close();]]>"
+msgstr ""
 
-#: index.docbook:91
-msgid "Note that in this code example, the <literal>Customer</literal> instances returned by the query are immediately detached. They are never associated with any persistence context."
-msgstr "No puede especificarse ningún join (bien implícito o explícito) en una consulta masiva de HQL. Pueden usarse subconsultas en la cláusula-where."
+#. Tag: para
+#: batch.xml:91
+#, no-c-format
+msgid ""
+"Note that in this code example, the <literal>Customer</literal> instances "
+"returned by the query are immediately detached. They are never associated "
+"with any persistence context."
+msgstr ""
+"Note that in this code example, the <literal>Customer</literal> instances "
+"returned by the query are immediately detached. They are never associated "
+"with any persistence context."
 
-#: index.docbook:97
-msgid "The <literal>insert(), update()</literal> and <literal>delete()</literal> operations defined by the <literal>StatelessSession</literal> interface are considered to be direct database row-level operations, which result in immediate execution of a SQL <literal>INSERT, UPDATE</literal> or <literal>DELETE</literal> respectively. Thus, they have very different semantics to the <literal>save(), saveOrUpdate()</literal> and <literal>delete()</literal> operations defined by the <literal>Session</literal> interface."
-msgstr "La cláusula-where es también opcional."
+#. Tag: para
+#: batch.xml:97
+#, no-c-format
+msgid ""
+"The <literal>insert(), update()</literal> and <literal>delete()</literal> "
+"operations defined by the <literal>StatelessSession</literal> interface are "
+"considered to be direct database row-level operations, which result in "
+"immediate execution of a SQL <literal>INSERT, UPDATE</literal> or "
+"<literal>DELETE</literal> respectively. Thus, they have very different "
+"semantics to the <literal>save(), saveOrUpdate()</literal> and "
+"<literal>delete()</literal> operations defined by the <literal>Session</"
+"literal> interface."
+msgstr ""
+"The <literal>insert(), update()</literal> and <literal>delete()</literal> "
+"operations defined by the <literal>StatelessSession</literal> interface are "
+"considered to be direct database row-level operations, which result in "
+"immediate execution of a SQL <literal>INSERT, UPDATE</literal> or "
+"<literal>DELETE</literal> respectively. Thus, they have very different "
+"semantics to the <literal>save(), saveOrUpdate()</literal> and "
+"<literal>delete()</literal> operations defined by the <literal>Session</"
+"literal> interface."
 
-#: index.docbook:110
+#. Tag: title
+#: batch.xml:110
+#, no-c-format
 msgid "DML-style operations"
-msgstr "Como un ejemplo, para ejecutar un <literal>UPDATE</literal> HQL, usa el método <literal>Query.executeUpdate()</literal>:"
+msgstr "update/delete en masa"
 
-#: index.docbook:112
-msgid "As already discussed, automatic and transparent object/relational mapping is concerned with the management of object state. This implies that the object state is available in memory, hence manipulating (using the SQL <literal>Data Manipulation Language</literal> (DML) statements: <literal>INSERT</literal>, <literal>UPDATE</literal>, <literal>DELETE</literal>) data directly in the database will not affect in-memory state. However, Hibernate provides methods for bulk SQL-style DML statement execution which are performed through the Hibernate Query Language (<xref linkend=\"queryhql\"/>HQL)."
+#. Tag: para
+#: batch.xml:112
+#, no-c-format
+msgid ""
+"As already discussed, automatic and transparent object/relational mapping is "
+"concerned with the management of object state. This implies that the object "
+"state is available in memory, hence manipulating (using the SQL "
+"<literal>Data Manipulation Language</literal> (DML) statements: "
+"<literal>INSERT</literal>, <literal>UPDATE</literal>, <literal>DELETE</"
+"literal>) data directly in the database will not affect in-memory state. "
+"However, Hibernate provides methods for bulk SQL-style DML statement "
+"execution which are performed through the Hibernate Query Language (<link "
+"linkend=\"queryhql\">HQL</link>)."
 msgstr ""
-      "<![CDATA[Session session = sessionFactory.openSession();\n"
-      "        Transaction tx = session.beginTransaction();\n"
-      "\n"
-      "        String hqlUpdate = \"update Customer set name = :newName where name = :oldName\";\n"
-      "        int updatedEntities = s.createQuery( hqlUpdate )\n"
-      "                            .setString( \"newName\", newName )\n"
-      "                            .setString( \"oldName\", oldName )\n"
-      "                            .executeUpdate();\n"
-      "        tx.commit();\n"
-      "        session.close();]]>"
+"Como ya se ha discutido, el mapeo objeto/relacional automático y "
+"transparente se refiere al manejo de estado de objetos. Esto implica que el "
+"estado del objeto está disponible en memoria, por lo tanto actualizar o "
+"borrar (usando <literal>UPDATE</literal> y <literal>DELETE</literal> de SQL) "
+"datos directamente en la base de datos no afectará el estado en memoria. Sin "
+"embargo, Hibernate provee métodos para la ejecución de sentencias del estilo "
+"de <literal>UPDATE</literal> y <literal>DELETE</literal> de SQL que se "
+"realizan a través del Lenguaje de Consulta de Hibernate (Hibernate Query "
+"Language o <xref linkend=\"queryhql\">HQL</xref>)."
 
-#: index.docbook:122
-msgid "The pseudo-syntax for <literal>UPDATE</literal> and <literal>DELETE</literal> statements is: <literal>( UPDATE | DELETE ) FROM? EntityName (WHERE where_conditions)?</literal>. Some points to note:"
-msgstr "Para ejecutar un <literal>DELETE</literal> HQL, usa el mismo método <literal>Query.executeUpdate()</literal> (el método está nombrado para aquellos familiarizados con <literal>PreparedStatement.executeUpdate()</literal> de JDBC):"
+#. Tag: para
+#: batch.xml:122
+#, no-c-format
+msgid ""
+"The pseudo-syntax for <literal>UPDATE</literal> and <literal>DELETE</"
+"literal> statements is: <literal>( UPDATE | DELETE ) FROM? EntityName (WHERE "
+"where_conditions)?</literal>. Some points to note:"
+msgstr ""
+"La pseudo-sintáxis para sentencias <literal>UPDATE</literal> y "
+"<literal>DELETE</literal> es: <literal>( UPDATE | DELETE ) FROM? ClassName "
+"(WHERE WHERE_CONDITIONS)?</literal>. Algunos puntos a tener en cuenta:"
 
-#: index.docbook:130
+#. Tag: para
+#: batch.xml:130
+#, no-c-format
 msgid "In the from-clause, the FROM keyword is optional"
+msgstr "En la cláusula-from, la palabra clave FROM es opcional"
+
+#. Tag: para
+#: batch.xml:135
+#, no-c-format
+msgid ""
+"There can only be a single entity named in the from-clause; it can "
+"optionally be aliased. If the entity name is aliased, then any property "
+"references must be qualified using that alias; if the entity name is not "
+"aliased, then it is illegal for any property references to be qualified."
 msgstr ""
-      "<![CDATA[Session session = sessionFactory.openSession();\n"
-      "        Transaction tx = session.beginTransaction();\n"
-      "\n"
-      "        String hqlDelete = \"delete Customer where name = :oldName\";\n"
-      "        int deletedEntities = s.createQuery( hqlDelete )\n"
-      "                            .setString( \"oldName\", oldName )\n"
-      "                            .executeUpdate();\n"
-      "        tx.commit();\n"
-      "        session.close();]]>"
+"There can only be a single entity named in the from-clause; it can "
+"optionally be aliased. If the entity name is aliased, then any property "
+"references must be qualified using that alias; if the entity name is not "
+"aliased, then it is illegal for any property references to be qualified."
 
-#: index.docbook:135
-msgid "There can only be a single entity named in the from-clause; it can optionally be aliased. If the entity name is aliased, then any property references must be qualified using that alias; if the entity name is not aliased, then it is illegal for any property references to be qualified."
-msgstr "El valor <literal>int</literal> devuelto por el método <literal>Query.executeUpdate()</literal> indica el número de entidades afectadas por la operación. Considera que esto puede o no correlacionarse al número de filas afectadas en la base de datos. Una operación masiva HQL podría resultar en que se ejecuten múltiples sentencias de SQL reales, para joined-subclass, por ejemplo. El número devuelto indica el número de entidades reales afectadas por la sentencia. Volviendo al ejemplo de joined-subclass, un borrado contra una de las subclases puede resultar realmente en borrados contra no sólo la tabla a la que está mapeada esa subclase, sino también la tabla \"raíz\" y potencialmente tablas de joined-subclass más debajo en la jerarquía de herencia."
+#. Tag: para
+#: batch.xml:143
+#, no-c-format
+msgid ""
+"No <link linkend=\"queryhql-joins-forms\">joins</link> (either implicit or "
+"explicit) can be specified in a bulk HQL query. Sub-queries may be used in "
+"the where-clause; the subqueries, themselves, may contain joins."
+msgstr ""
+"No <link linkend=\"queryhql-joins-forms\">joins</link> (either implicit or "
+"explicit) can be specified in a bulk HQL query. Sub-queries may be used in "
+"the where-clause; the subqueries, themselves, may contain joins."
 
-#: index.docbook:143
-msgid "No <xref linkend=\"queryhql-joins-forms\"/>joins (either implicit or explicit) can be specified in a bulk HQL query. Sub-queries may be used in the where-clause; the subqueries, themselves, may contain joins."
-msgstr "Ten en cuenta que existen actualmente unas pocas limitaciones con las operaciones HQL masivas, que serán atendidas en lanzamientos futuros; consulta la hoja de ruta de JIRA para más detalles."
-
-#: index.docbook:150
+#. Tag: para
+#: batch.xml:150
+#, no-c-format
 msgid "The where-clause is also optional."
-msgstr ""
+msgstr "La cláusula-where es también opcional."
 
-#: index.docbook:156
-msgid "As an example, to execute an HQL <literal>UPDATE</literal>, use the <literal>Query.executeUpdate()</literal> method (the method is named for those familiar with JDBC's <literal>PreparedStatement.executeUpdate()</literal>):"
+#. Tag: para
+#: batch.xml:156
+#, no-c-format
+msgid ""
+"As an example, to execute an HQL <literal>UPDATE</literal>, use the "
+"<literal>Query.executeUpdate()</literal> method (the method is named for "
+"those familiar with JDBC's <literal>PreparedStatement.executeUpdate()</"
+"literal>):"
 msgstr ""
+"Como un ejemplo, para ejecutar un <literal>UPDATE</literal> HQL, usa el "
+"método <literal>Query.executeUpdate()</literal>(the method is named for "
+"those familiar with JDBC's <literal>PreparedStatement.executeUpdate()</"
+"literal>):"
 
-#: index.docbook:162
+#. Tag: programlisting
+#: batch.xml:162
+#, no-c-format
 msgid ""
-      "<![CDATA[Session session = sessionFactory.openSession();\n"
-      "Transaction tx = session.beginTransaction();\n"
-      "\n"
-      "String hqlUpdate = \"update Customer c set c.name = :newName where c.name = :oldName\";\n"
-      "// or String hqlUpdate = \"update Customer set name = :newName where name = :oldName\";\n"
-      "int updatedEntities = s.createQuery( hqlUpdate )\n"
-      "        .setString( \"newName\", newName )\n"
-      "        .setString( \"oldName\", oldName )\n"
-      "        .executeUpdate();\n"
-      "tx.commit();\n"
-      "session.close();]]>"
+"<![CDATA[Session session = sessionFactory.openSession();\n"
+"Transaction tx = session.beginTransaction();\n"
+"\n"
+"String hqlUpdate = \"update Customer c set c.name = :newName where c.name = :"
+"oldName\";\n"
+"// or String hqlUpdate = \"update Customer set name = :newName where name = :"
+"oldName\";\n"
+"int updatedEntities = s.createQuery( hqlUpdate )\n"
+"        .setString( \"newName\", newName )\n"
+"        .setString( \"oldName\", oldName )\n"
+"        .executeUpdate();\n"
+"tx.commit();\n"
+"session.close();]]>"
 msgstr ""
 
-#: index.docbook:164
-msgid "HQL <literal>UPDATE</literal> statements, by default do not effect the <xref linkend=\"mapping-declaration-version\"/>version or the <xref linkend=\"mapping-declaration-timestamp\"/>timestamp property values for the affected entities; this is in keeping with the EJB3 specification. However, you can force Hibernate to properly reset the <literal>version</literal> or <literal>timestamp</literal> property values through the use of a <literal>versioned update</literal>. This is achieved by adding the <literal>VERSIONED</literal> keyword after the <literal>UPDATE</literal> keyword."
+#. Tag: para
+#: batch.xml:164
+#, no-c-format
+msgid ""
+"HQL <literal>UPDATE</literal> statements, by default do not effect the <link "
+"linkend=\"mapping-declaration-version\">version</link> or the <link linkend="
+"\"mapping-declaration-timestamp\">timestamp</link> property values for the "
+"affected entities; this is in keeping with the EJB3 specification. However, "
+"you can force Hibernate to properly reset the <literal>version</literal> or "
+"<literal>timestamp</literal> property values through the use of a "
+"<literal>versioned update</literal>. This is achieved by adding the "
+"<literal>VERSIONED</literal> keyword after the <literal>UPDATE</literal> "
+"keyword."
 msgstr ""
+"HQL <literal>UPDATE</literal> statements, by default do not effect the <link "
+"linkend=\"mapping-declaration-version\">version</link> or the <link linkend="
+"\"mapping-declaration-timestamp\">timestamp</link> property values for the "
+"affected entities; this is in keeping with the EJB3 specification. However, "
+"you can force Hibernate to properly reset the <literal>version</literal> or "
+"<literal>timestamp</literal> property values through the use of a "
+"<literal>versioned update</literal>. This is achieved by adding the "
+"<literal>VERSIONED</literal> keyword after the <literal>UPDATE</literal> "
+"keyword."
 
-#: index.docbook:174
+#. Tag: programlisting
+#: batch.xml:174
+#, no-c-format
 msgid ""
-      "<![CDATA[Session session = sessionFactory.openSession();\n"
-      "Transaction tx = session.beginTransaction();\n"
-      "String hqlVersionedUpdate = \"update versioned Customer set name = :newName where name = :oldName\";\n"
-      "int updatedEntities = s.createQuery( hqlUpdate )\n"
-      "        .setString( \"newName\", newName )\n"
-      "        .setString( \"oldName\", oldName )\n"
-      "        .executeUpdate();\n"
-      "tx.commit();\n"
-      "session.close();]]>"
+"<![CDATA[Session session = sessionFactory.openSession();\n"
+"Transaction tx = session.beginTransaction();\n"
+"String hqlVersionedUpdate = \"update versioned Customer set name = :newName "
+"where name = :oldName\";\n"
+"int updatedEntities = s.createQuery( hqlUpdate )\n"
+"        .setString( \"newName\", newName )\n"
+"        .setString( \"oldName\", oldName )\n"
+"        .executeUpdate();\n"
+"tx.commit();\n"
+"session.close();]]>"
 msgstr ""
 
-#: index.docbook:176
-msgid "Note that custom version types (<literal>org.hibernate.usertype.UserVersionType</literal>) are not allowed in conjunction with a <literal>update versioned</literal> statement."
+#. Tag: para
+#: batch.xml:176
+#, no-c-format
+msgid ""
+"Note that custom version types (<literal>org.hibernate.usertype."
+"UserVersionType</literal>) are not allowed in conjunction with a "
+"<literal>update versioned</literal> statement."
 msgstr ""
+"Note that custom version types (<literal>org.hibernate.usertype."
+"UserVersionType</literal>) are not allowed in conjunction with a "
+"<literal>update versioned</literal> statement."
 
-#: index.docbook:181
-msgid "To execute an HQL <literal>DELETE</literal>, use the same <literal>Query.executeUpdate()</literal> method:"
+#. Tag: para
+#: batch.xml:181
+#, no-c-format
+msgid ""
+"To execute an HQL <literal>DELETE</literal>, use the same <literal>Query."
+"executeUpdate()</literal> method:"
 msgstr ""
+"Para ejecutar un <literal>DELETE</literal> HQL, usa el mismo método "
+"<literal>Query.executeUpdate()</literal>:"
 
-#: index.docbook:186
+#. Tag: programlisting
+#: batch.xml:186
+#, no-c-format
 msgid ""
-      "<![CDATA[Session session = sessionFactory.openSession();\n"
-      "Transaction tx = session.beginTransaction();\n"
-      "\n"
-      "String hqlDelete = \"delete Customer c where c.name = :oldName\";\n"
-      "// or String hqlDelete = \"delete Customer where name = :oldName\";\n"
-      "int deletedEntities = s.createQuery( hqlDelete )\n"
-      "        .setString( \"oldName\", oldName )\n"
-      "        .executeUpdate();\n"
-      "tx.commit();\n"
-      "session.close();]]>"
+"<![CDATA[Session session = sessionFactory.openSession();\n"
+"Transaction tx = session.beginTransaction();\n"
+"\n"
+"String hqlDelete = \"delete Customer c where c.name = :oldName\";\n"
+"// or String hqlDelete = \"delete Customer where name = :oldName\";\n"
+"int deletedEntities = s.createQuery( hqlDelete )\n"
+"        .setString( \"oldName\", oldName )\n"
+"        .executeUpdate();\n"
+"tx.commit();\n"
+"session.close();]]>"
 msgstr ""
 
-#: index.docbook:188
-msgid "The <literal>int</literal> value returned by the <literal>Query.executeUpdate()</literal> method indicate the number of entities effected by the operation. Consider this may or may not correlate to the number of rows effected in the database. An HQL bulk operation might result in multiple actual SQL statements being executed, for joined-subclass, for example. The returned number indicates the number of actual entities affected by the statement. Going back to the example of joined-subclass, a delete against one of the subclasses may actually result in deletes against not just the table to which that subclass is mapped, but also the \"root\" table and potentially joined-subclass tables further down the inheritence hierarchy."
+#. Tag: para
+#: batch.xml:188
+#, no-c-format
+msgid ""
+"The <literal>int</literal> value returned by the <literal>Query.executeUpdate"
+"()</literal> method indicate the number of entities effected by the "
+"operation. Consider this may or may not correlate to the number of rows "
+"effected in the database. An HQL bulk operation might result in multiple "
+"actual SQL statements being executed, for joined-subclass, for example. The "
+"returned number indicates the number of actual entities affected by the "
+"statement. Going back to the example of joined-subclass, a delete against "
+"one of the subclasses may actually result in deletes against not just the "
+"table to which that subclass is mapped, but also the \"root\" table and "
+"potentially joined-subclass tables further down the inheritence hierarchy."
 msgstr ""
+"El valor <literal>int</literal> devuelto por el método <literal>Query."
+"executeUpdate()</literal> indica el número de entidades afectadas por la "
+"operación. Considera que esto puede o no correlacionarse al número de filas "
+"afectadas en la base de datos. Una operación masiva HQL podría resultar en "
+"que se ejecuten múltiples sentencias de SQL reales, para joined-subclass, "
+"por ejemplo. El número devuelto indica el número de entidades reales "
+"afectadas por la sentencia. Volviendo al ejemplo de joined-subclass, un "
+"borrado contra una de las subclases puede resultar realmente en borrados "
+"contra no sólo la tabla a la que está mapeada esa subclase, sino también la "
+"tabla \"raíz\" y potencialmente tablas de joined-subclass más debajo en la "
+"jerarquía de herencia."
 
-#: index.docbook:199
-msgid "The pseudo-syntax for <literal>INSERT</literal> statements is: <literal>INSERT INTO EntityName properties_list select_statement</literal>. Some points to note:"
+#. Tag: para
+#: batch.xml:199
+#, no-c-format
+msgid ""
+"The pseudo-syntax for <literal>INSERT</literal> statements is: "
+"<literal>INSERT INTO EntityName properties_list select_statement</literal>. "
+"Some points to note:"
 msgstr ""
+"Ten en cuenta que existen actualmente unas pocas limitaciones con las "
+"operaciones HQL masivas, que serán atendidas en lanzamientos futuros; "
+"consulta la hoja de ruta de JIRA para más detalles."
 
-#: index.docbook:207
-msgid "Only the INSERT INTO ... SELECT ... form is supported; not the INSERT INTO ... VALUES ... form."
-msgstr ""
+#. Tag: para
+#: batch.xml:207
+#, no-c-format
+msgid ""
+"Only the INSERT INTO ... SELECT ... form is supported; not the INSERT "
+"INTO ... VALUES ... form."
+msgstr "translator-credits"
 
-#: index.docbook:210
-msgid "The properties_list is analogous to the <literal>column speficiation</literal> in the SQL <literal>INSERT</literal> statement. For entities involved in mapped inheritence, only properties directly defined on that given class-level can be used in the properties_list. Superclass properties are not allowed; and subclass properties do not make sense. In other words, <literal>INSERT</literal> statements are inherently non-polymorphic."
+#. Tag: para
+#: batch.xml:210
+#, no-c-format
+msgid ""
+"The properties_list is analogous to the <literal>column speficiation</"
+"literal> in the SQL <literal>INSERT</literal> statement. For entities "
+"involved in mapped inheritence, only properties directly defined on that "
+"given class-level can be used in the properties_list. Superclass properties "
+"are not allowed; and subclass properties do not make sense. In other words, "
+"<literal>INSERT</literal> statements are inherently non-polymorphic."
 msgstr ""
 
-#: index.docbook:220
-msgid "select_statement can be any valid HQL select query, with the caveat that the return types must match the types expected by the insert. Currently, this is checked during query compilation rather than allowing the check to relegate to the database. Note however that this might cause problems between Hibernate <literal>Type</literal>s which are <emphasis>equivalent</emphasis> as opposed to <emphasis>equal</emphasis>. This might cause issues with mismatches between a property defined as a <literal>org.hibernate.type.DateType</literal> and a property defined as a <literal>org.hibernate.type.TimestampType</literal>, even though the database might not make a distinction or might be able to handle the conversion."
+#. Tag: para
+#: batch.xml:220
+#, no-c-format
+msgid ""
+"select_statement can be any valid HQL select query, with the caveat that the "
+"return types must match the types expected by the insert. Currently, this is "
+"checked during query compilation rather than allowing the check to relegate "
+"to the database. Note however that this might cause problems between "
+"Hibernate <literal>Type</literal>s which are <emphasis>equivalent</emphasis> "
+"as opposed to <emphasis>equal</emphasis>. This might cause issues with "
+"mismatches between a property defined as a <literal>org.hibernate.type."
+"DateType</literal> and a property defined as a <literal>org.hibernate.type."
+"TimestampType</literal>, even though the database might not make a "
+"distinction or might be able to handle the conversion."
 msgstr ""
 
-#: index.docbook:232
-msgid "For the id property, the insert statement gives you two options. You can either explicitly specify the id property in the properties_list (in which case its value is taken from the corresponding select expression) or omit it from the properties_list (in which case a generated value is used). This later option is only available when using id generators that operate in the database; attempting to use this option with any \"in memory\" type generators will cause an exception during parsing. Note that for the purposes of this discussion, in-database generators are considered to be <literal>org.hibernate.id.SequenceGenerator</literal> (and its subclasses) and any implementors of <literal>org.hibernate.id.PostInsertIdentifierGenerator</literal>. The most notable exception here is <literal>org.hibernate.id.TableHiLoGenerator</literal>, which cannot be used because it does not expose a selectable way to get its values."
+#. Tag: para
+#: batch.xml:232
+#, no-c-format
+msgid ""
+"For the id property, the insert statement gives you two options. You can "
+"either explicitly specify the id property in the properties_list (in which "
+"case its value is taken from the corresponding select expression) or omit it "
+"from the properties_list (in which case a generated value is used). This "
+"later option is only available when using id generators that operate in the "
+"database; attempting to use this option with any \"in memory\" type "
+"generators will cause an exception during parsing. Note that for the "
+"purposes of this discussion, in-database generators are considered to be "
+"<literal>org.hibernate.id.SequenceGenerator</literal> (and its subclasses) "
+"and any implementors of <literal>org.hibernate.id."
+"PostInsertIdentifierGenerator</literal>. The most notable exception here is "
+"<literal>org.hibernate.id.TableHiLoGenerator</literal>, which cannot be used "
+"because it does not expose a selectable way to get its values."
 msgstr ""
 
-#: index.docbook:247
-msgid "For properties mapped as either <literal>version</literal> or <literal>timestamp</literal>, the insert statement gives you two options. You can either specify the property in the properties_list (in which case its value is taken from the corresponding select expressions) or omit it from the properties_list (in which case the <literal>seed value</literal> defined by the <literal>org.hibernate.type.VersionType</literal> is used)."
+#. Tag: para
+#: batch.xml:247
+#, no-c-format
+msgid ""
+"For properties mapped as either <literal>version</literal> or "
+"<literal>timestamp</literal>, the insert statement gives you two options. "
+"You can either specify the property in the properties_list (in which case "
+"its value is taken from the corresponding select expressions) or omit it "
+"from the properties_list (in which case the <literal>seed value</literal> "
+"defined by the <literal>org.hibernate.type.VersionType</literal> is used)."
 msgstr ""
 
-#: index.docbook:257
+#. Tag: para
+#: batch.xml:257
+#, no-c-format
 msgid "An example HQL <literal>INSERT</literal> statement execution:"
 msgstr ""
 
-#: index.docbook:261
+#. Tag: programlisting
+#: batch.xml:261
+#, no-c-format
 msgid ""
-      "<![CDATA[Session session = sessionFactory.openSession();\n"
-      "Transaction tx = session.beginTransaction();\n"
-      "\n"
-      "String hqlInsert = \"insert into DelinquentAccount (id, name) select c.id, c.name from Customer c where ...\";\n"
-      "int createdEntities = s.createQuery( hqlInsert )\n"
-      "        .executeUpdate();\n"
-      "tx.commit();\n"
-      "session.close();]]>"
+"<![CDATA[Session session = sessionFactory.openSession();\n"
+"Transaction tx = session.beginTransaction();\n"
+"\n"
+"String hqlInsert = \"insert into DelinquentAccount (id, name) select c.id, c."
+"name from Customer c where ...\";\n"
+"int createdEntities = s.createQuery( hqlInsert )\n"
+"        .executeUpdate();\n"
+"tx.commit();\n"
+"session.close();]]>"
 msgstr ""
-
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
-
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
-

Modified: core/trunk/documentation/manual/translations/es-ES/content/best_practices.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/best_practices.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/best_practices.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,168 +1,460 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:5
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: best_practices.xml:5
+#, no-c-format
 msgid "Best Practices"
-msgstr "Mejores Pr&#x00e1;cticas"
+msgstr "Mejores Prácticas"
 
-#: index.docbook:9
-msgid "Write fine-grained classes and map them using <literal>&lt;component&gt;</literal>."
-msgstr "Escribe clase finamente granularizadas y mapealas usando <literal>&lt;component&gt;</literal>."
+#. Tag: term
+#: best_practices.xml:9
+#, no-c-format
+msgid ""
+"Write fine-grained classes and map them using <literal>&lt;component&gt;</"
+"literal>."
+msgstr ""
+"Escribe clase finamente granularizadas y mapealas usando <literal>&lt;"
+"component&gt;</literal>."
 
-#: index.docbook:11
-msgid "Use an <literal>Address</literal> class to encapsulate <literal>street</literal>, <literal>suburb</literal>, <literal>state</literal>, <literal>postcode</literal>. This encourages code reuse and simplifies refactoring."
-msgstr "Usa una clase <literal>Direcci&#x00f3;n</literal> para encapsular <literal>calle</literal>, <literal>distrito</literal>, <literal>estado</literal>, <literal>c&#x00f3;digo postal</literal>. Esto alienta la reutilizaci&#x00f3;n de c&#x00f3;digo y simplifica el refactoring."
+#. Tag: para
+#: best_practices.xml:11
+#, no-c-format
+msgid ""
+"Use an <literal>Address</literal> class to encapsulate <literal>street</"
+"literal>, <literal>suburb</literal>, <literal>state</literal>, "
+"<literal>postcode</literal>. This encourages code reuse and simplifies "
+"refactoring."
+msgstr ""
+"Usa una clase <literal>Dirección</literal> para encapsular <literal>calle</"
+"literal>, <literal>distrito</literal>, <literal>estado</literal>, "
+"<literal>código postal</literal>. Esto alienta la reutilización de código y "
+"simplifica el refactoring."
 
-#: index.docbook:19
+#. Tag: term
+#: best_practices.xml:19
+#, no-c-format
 msgid "Declare identifier properties on persistent classes."
 msgstr "Declara las propiedades identificadoras en clases persistentes."
 
-#: index.docbook:21
-msgid "Hibernate makes identifier properties optional. There are all sorts of reasons why you should use them. We recommend that identifiers be 'synthetic' (generated, with no business meaning)."
-msgstr "Hibernate hace opcionales las propiedades identificadoras. Existen todo tipo de razones por las que debes usarlas. Recomendamos que los identificadores sean 'sint&#x00e9;ticos' (generados, sin ning&#x00fa;n significado de negocio)."
+#. Tag: para
+#: best_practices.xml:21
+#, no-c-format
+msgid ""
+"Hibernate makes identifier properties optional. There are all sorts of "
+"reasons why you should use them. We recommend that identifiers be "
+"'synthetic' (generated, with no business meaning)."
+msgstr ""
+"Hibernate hace opcionales las propiedades identificadoras. Existen todo tipo "
+"de razones por las que debes usarlas. Recomendamos que los identificadores "
+"sean 'sintéticos' (generados, sin ningún significado de negocio)."
 
-#: index.docbook:29
+#. Tag: term
+#: best_practices.xml:29
+#, no-c-format
 msgid "Identify natural keys."
 msgstr "Identifica las claves naturales."
 
-#: index.docbook:31
-msgid "Identify natural keys for all entities, and map them using <literal>&lt;natural-id&gt;</literal>. Implement <literal>equals()</literal> and <literal>hashCode()</literal> to compare the properties that make up the natural key."
-msgstr "Identifica las claves naturales de todas las entidades, y mapealas usando <literal>&lt;natural-id&gt;</literal>. Implementa <literal>equals()</literal> y <literal>hashCode()</literal> para comparar las propiedades que componen la clave natural."
+#. Tag: para
+#: best_practices.xml:31
+#, no-c-format
+msgid ""
+"Identify natural keys for all entities, and map them using <literal>&lt;"
+"natural-id&gt;</literal>. Implement <literal>equals()</literal> and "
+"<literal>hashCode()</literal> to compare the properties that make up the "
+"natural key."
+msgstr ""
+"Identifica las claves naturales de todas las entidades, y mapealas usando "
+"<literal>&lt;natural-id&gt;</literal>. Implementa <literal>equals()</"
+"literal> y <literal>hashCode()</literal> para comparar las propiedades que "
+"componen la clave natural."
 
-#: index.docbook:39
+#. Tag: term
+#: best_practices.xml:39
+#, no-c-format
 msgid "Place each class mapping in its own file."
 msgstr "Coloca cada mapeo de clase en su propio fichero."
 
-#: index.docbook:41
-msgid "Don't use a single monolithic mapping document. Map <literal>com.eg.Foo</literal> in the file <literal>com/eg/Foo.hbm.xml</literal>. This makes particularly good sense in a team environment."
-msgstr "No uses un solo documento monol&#x00ed;tico de mapeo. Mapea <literal>com.eg.Foo</literal> en el fichero <literal>com/eg/Foo.hbm.xml</literal>. Esto tiene sentido particularmente en un ambiente de equipo."
+#. Tag: para
+#: best_practices.xml:41
+#, no-c-format
+msgid ""
+"Don't use a single monolithic mapping document. Map <literal>com.eg.Foo</"
+"literal> in the file <literal>com/eg/Foo.hbm.xml</literal>. This makes "
+"particularly good sense in a team environment."
+msgstr ""
+"No uses un solo documento monolítico de mapeo. Mapea <literal>com.eg.Foo</"
+"literal> en el fichero <literal>com/eg/Foo.hbm.xml</literal>. Esto tiene "
+"sentido particularmente en un ambiente de equipo."
 
-#: index.docbook:49
+#. Tag: term
+#: best_practices.xml:49
+#, no-c-format
 msgid "Load mappings as resources."
 msgstr "Carga los mapeos como recursos."
 
-#: index.docbook:51
+#. Tag: para
+#: best_practices.xml:51
+#, no-c-format
 msgid "Deploy the mappings along with the classes they map."
 msgstr "Despliega los mapeos junto a las clases que mapean."
 
-#: index.docbook:57
+#. Tag: term
+#: best_practices.xml:57
+#, no-c-format
 msgid "Consider externalising query strings."
 msgstr "Considera externalizar las cadenas de consulta."
 
-#: index.docbook:59
-msgid "This is a good practice if your queries call non-ANSI-standard SQL functions. Externalising the query strings to mapping files will make the application more portable."
-msgstr "Esta es una buena pr&#x00e1;ctica si tus consultas llaman a funciones SQL que no son del est&#x00e1;ndar ANSI. Externalizar las cadenas de consulta a ficheros de mapeo har&#x00e1; la aplicaci&#x00f3;n m&#x00e1;s portable."
+#. Tag: para
+#: best_practices.xml:59
+#, no-c-format
+msgid ""
+"This is a good practice if your queries call non-ANSI-standard SQL "
+"functions. Externalising the query strings to mapping files will make the "
+"application more portable."
+msgstr ""
+"Esta es una buena práctica si tus consultas llaman a funciones SQL que no "
+"son del estándar ANSI. Externalizar las cadenas de consulta a ficheros de "
+"mapeo hará la aplicación más portable."
 
-#: index.docbook:67
+#. Tag: term
+#: best_practices.xml:67
+#, no-c-format
 msgid "Use bind variables."
 msgstr "Usa variables de ligado."
 
-#: index.docbook:69
-msgid "As in JDBC, always replace non-constant values by \"?\". Never use string manipulation to bind a non-constant value in a query! Even better, consider using named parameters in queries."
-msgstr "Igual que en JDBC, siempre remplaza valores no constantes con \"?\". &#x00a1;Nunca uses manipulaci&#x00f3;n de cadenas para ligar un valor no constante en una consulta! Incluso mejor, considera usar par&#x00e1;metros con nombre en las consultas."
+#. Tag: para
+#: best_practices.xml:69
+#, no-c-format
+msgid ""
+"As in JDBC, always replace non-constant values by \"?\". Never use string "
+"manipulation to bind a non-constant value in a query! Even better, consider "
+"using named parameters in queries."
+msgstr ""
+"Igual que en JDBC, siempre remplaza valores no constantes con \"?\". ¡Nunca "
+"uses manipulación de cadenas para ligar un valor no constante en una "
+"consulta! Incluso mejor, considera usar parámetros con nombre en las "
+"consultas."
 
-#: index.docbook:77
+#. Tag: term
+#: best_practices.xml:77
+#, no-c-format
 msgid "Don't manage your own JDBC connections."
 msgstr "No manejes tus propias conexiones JDBC."
 
-#: index.docbook:79
-msgid "Hibernate lets the application manage JDBC connections. This approach should be considered a last-resort. If you can't use the built-in connections providers, consider providing your own implementation of <literal>org.hibernate.connection.ConnectionProvider</literal>."
-msgstr "Hibernate deja a la aplicaci&#x00f3;n administre las conexiones JDBC. Este enfoque debe considerarse como &#x00fa;ltimo recurso. Si no puedes usar los provedores de conexi&#x00f3;n prefabricados, considera prover tu propia implementaci&#x00f3;n de <literal>org.hibernate.connection.ConnectionProvider</literal>."
+#. Tag: para
+#: best_practices.xml:79
+#, no-c-format
+msgid ""
+"Hibernate lets the application manage JDBC connections. This approach should "
+"be considered a last-resort. If you can't use the built-in connections "
+"providers, consider providing your own implementation of <literal>org."
+"hibernate.connection.ConnectionProvider</literal>."
+msgstr ""
+"Hibernate deja a la aplicación administre las conexiones JDBC. Este enfoque "
+"debe considerarse como último recurso. Si no puedes usar los provedores de "
+"conexión prefabricados, considera prover tu propia implementación de "
+"<literal>org.hibernate.connection.ConnectionProvider</literal>."
 
-#: index.docbook:87
+#. Tag: term
+#: best_practices.xml:87
+#, no-c-format
 msgid "Consider using a custom type."
 msgstr "Considera usar un tipo personalizado."
 
-#: index.docbook:89
-msgid "Suppose you have a Java type, say from some library, that needs to be persisted but doesn't provide the accessors needed to map it as a component. You should consider implementing <literal>org.hibernate.UserType</literal>. This approach frees the application code from implementing transformations to / from a Hibernate type."
-msgstr "Sup&#x00f3;n que tienes un tipo Java, digamos de alguna biblioteca, que necesita hacerse persistente pero no provee los m&#x00e9;todos de acceso necesarios para mapearlo como un componente. Debes considerar implementar <literal>org.hibernate.UserType</literal>. Este enfoque libera al c&#x00f3;digo de aplicaci&#x00f3;n de implementar transformaciones a / desde un tipo Hibernate."
+#. Tag: para
+#: best_practices.xml:89
+#, no-c-format
+msgid ""
+"Suppose you have a Java type, say from some library, that needs to be "
+"persisted but doesn't provide the accessors needed to map it as a component. "
+"You should consider implementing <literal>org.hibernate.UserType</literal>. "
+"This approach frees the application code from implementing transformations "
+"to / from a Hibernate type."
+msgstr ""
+"Supón que tienes un tipo Java, digamos de alguna biblioteca, que necesita "
+"hacerse persistente pero no provee los métodos de acceso necesarios para "
+"mapearlo como un componente. Debes considerar implementar <literal>org."
+"hibernate.UserType</literal>. Este enfoque libera al código de aplicación de "
+"implementar transformaciones a / desde un tipo Hibernate."
 
-#: index.docbook:98
+#. Tag: term
+#: best_practices.xml:98
+#, no-c-format
 msgid "Use hand-coded JDBC in bottlenecks."
 msgstr "Usa JDBC codificado a mano en cuellos de botella."
 
-#: index.docbook:100
-msgid "In performance-critical areas of the system, some kinds of operations might benefit from direct JDBC. But please, wait until you <emphasis>know</emphasis> something is a bottleneck. And don't assume that direct JDBC is necessarily faster. If you need to use direct JDBC, it might be worth opening a Hibernate <literal>Session</literal> and using that JDBC connection. That way you can still use the same transaction strategy and underlying connection provider."
-msgstr "En &#x00e1;reas del sistema de rendimiento cr&#x00ed;tico, algunos tipos de operaciones podr&#x00ed;an beneficiarse del JDBC directo. Pero por favor, espero hasta que <emphasis>sepas</emphasis> que algo es un cuello de botella. Y no asumas que el JDBC directo es necesariamente m&#x00e1;s r&#x00e1;pido. Si necesitas usar JDBC directo, podr&#x00ed;a ser valioso abrir una <literal>Session</literal> de Hibernate y usar esa conexi&#x00f3;n JDBC. De esta forma puedes usar a&#x00fa;n la misma estrategia de transacci&#x00f3;n y el mismo proveedor de conexiones subyacente."
+#. Tag: para
+#: best_practices.xml:100
+#, no-c-format
+msgid ""
+"In performance-critical areas of the system, some kinds of operations might "
+"benefit from direct JDBC. But please, wait until you <emphasis>know</"
+"emphasis> something is a bottleneck. And don't assume that direct JDBC is "
+"necessarily faster. If you need to use direct JDBC, it might be worth "
+"opening a Hibernate <literal>Session</literal> and using that JDBC "
+"connection. That way you can still use the same transaction strategy and "
+"underlying connection provider."
+msgstr ""
+"En áreas del sistema de rendimiento crítico, algunos tipos de operaciones "
+"podrían beneficiarse del JDBC directo. Pero por favor, espero hasta que "
+"<emphasis>sepas</emphasis> que algo es un cuello de botella. Y no asumas que "
+"el JDBC directo es necesariamente más rápido. Si necesitas usar JDBC "
+"directo, podría ser valioso abrir una <literal>Session</literal> de "
+"Hibernate y usar esa conexión JDBC. De esta forma puedes usar aún la misma "
+"estrategia de transacción y el mismo proveedor de conexiones subyacente."
 
-#: index.docbook:110
+#. Tag: term
+#: best_practices.xml:110
+#, no-c-format
 msgid "Understand <literal>Session</literal> flushing."
 msgstr "Comprende la limpieza (flushing) de <literal>Session</literal>."
 
-#: index.docbook:112
-msgid "From time to time the Session synchronizes its persistent state with the database. Performance will be affected if this process occurs too often. You may sometimes minimize unnecessary flushing by disabling automatic flushing or even by changing the order of queries and other operations within a particular transaction."
-msgstr "De vez en cuando la sesi&#x00f3;n sincroniza su estado persistente con la base de datos. El rendimiento se ver&#x00e1; afectado si este proceso ocurre demasiado frecuentemente. A veces puedes minimizar limpieza innecesaria deshabilitando la limpieza autom&#x00e1;tica o incluso cambiando el orden de las consultas u otras operaciones en una transacci&#x00f3;n en particular."
+#. Tag: para
+#: best_practices.xml:112
+#, no-c-format
+msgid ""
+"From time to time the Session synchronizes its persistent state with the "
+"database. Performance will be affected if this process occurs too often. You "
+"may sometimes minimize unnecessary flushing by disabling automatic flushing "
+"or even by changing the order of queries and other operations within a "
+"particular transaction."
+msgstr ""
+"De vez en cuando la sesión sincroniza su estado persistente con la base de "
+"datos. El rendimiento se verá afectado si este proceso ocurre demasiado "
+"frecuentemente. A veces puedes minimizar limpieza innecesaria deshabilitando "
+"la limpieza automática o incluso cambiando el orden de las consultas u otras "
+"operaciones en una transacción en particular."
 
-#: index.docbook:121
+#. Tag: term
+#: best_practices.xml:121
+#, no-c-format
 msgid "In a three tiered architecture, consider using detached objects."
-msgstr "En una aplicaci&#x00f3;n en tres gradas, considera usar objetos separados."
+msgstr "En una aplicación en tres gradas, considera usar objetos separados."
 
-#: index.docbook:123
-msgid "When using a servlet / session bean architecture, you could pass persistent objects loaded in the session bean to and from the servlet / JSP layer. Use a new session to service each request. Use <literal>Session.merge()</literal> or <literal>Session.saveOrUpdate()</literal> to synchronize objects with the database."
-msgstr "Al usar una arquitectura de servlet / sesi&#x00f3;n, puedes pasar objetos persistentes en el bean de sesi&#x00f3;n hacia y desde la capa de servlet / JSP. Usa una sesi&#x00f3;n nueva para atender el servicio de cada petici&#x00f3;n. Usa <literal>Session.merge()</literal> o <literal>Session.saveOrUpdate()</literal> para sincronizar los objetos con la base de datos."
+#. Tag: para
+#: best_practices.xml:123
+#, no-c-format
+msgid ""
+"When using a servlet / session bean architecture, you could pass persistent "
+"objects loaded in the session bean to and from the servlet / JSP layer. Use "
+"a new session to service each request. Use <literal>Session.merge()</"
+"literal> or <literal>Session.saveOrUpdate()</literal> to synchronize objects "
+"with the database."
+msgstr ""
+"Al usar una arquitectura de servlet / sesión, puedes pasar objetos "
+"persistentes en el bean de sesión hacia y desde la capa de servlet / JSP. "
+"Usa una sesión nueva para atender el servicio de cada petición. Usa "
+"<literal>Session.merge()</literal> o <literal>Session.saveOrUpdate()</"
+"literal> para sincronizar los objetos con la base de datos."
 
-#: index.docbook:132
+#. Tag: term
+#: best_practices.xml:132
+#, no-c-format
 msgid "In a two tiered architecture, consider using long persistence contexts."
-msgstr "En una arquitectura en dos gradas, considera usar contexto de persistencia largos."
+msgstr ""
+"En una arquitectura en dos gradas, considera usar contexto de persistencia "
+"largos."
 
-#: index.docbook:134
-msgid "Database Transactions have to be as short as possible for best scalability. However, it is often neccessary to implement long running <emphasis>application transactions</emphasis>, a single unit-of-work from the point of view of a user. An application transaction might span several client request/response cycles. It is common to use detached objects to implement application transactions. An alternative, extremely appropriate in two tiered architecture, is to maintain a single open persistence contact (session) for the whole life cycle of the application transaction and simply disconnect from the JDBC connection at the end of each request and reconnect at the beginning of the subsequent request. Never share a single session across more than one application transaction, or you will be working with stale data."
-msgstr "Las transacciones de base de datos tienen que ser tan cortas como sea posible. Sin embargo, frecuentemente es necesario implementar <emphasis>transacciones de aplicaci&#x00f3;n</emphasis> ejecut&#x00e1;ndose en largo, una sola unidad de trabajo desde el punto de vista de un usuario. Una transacci&#x00f3;n de aplicaci&#x00f3;n puede abarcar muchos ciclos petici&#x00f3;n/respuesta del cliente. Es com&#x00fa;n usar objetos separados para implementar transacciones de aplicaci&#x00f3;n. Una alternativa, extremadamente apropiada en arquitecturas en dos gradas, es mantener un solo contacto de persistencia abierto (sesi&#x00f3;n) para todo el ciclo de vida de la transacci&#x00f3;n de aplicaci&#x00f3;n y simplemente desconectar de la conexi&#x00f3;n JDBC al final de cada petici&#x00f3;n, y reconectar al comienzo de la petici&#x00f3;n subsecuente. Nunca compartas una &#x00fa;nica sesi&#x00f3;n a trav&#x00e9;s de m&#x00e1;s de una transacci&#x00f3;n de aplicaci&#x00f3;n, o est!
 ar&#x00e1;s trabajando con datos añejos."
+#. Tag: para
+#: best_practices.xml:134
+#, no-c-format
+msgid ""
+"Database Transactions have to be as short as possible for best scalability. "
+"However, it is often neccessary to implement long running "
+"<emphasis>application transactions</emphasis>, a single unit-of-work from "
+"the point of view of a user. An application transaction might span several "
+"client request/response cycles. It is common to use detached objects to "
+"implement application transactions. An alternative, extremely appropriate in "
+"two tiered architecture, is to maintain a single open persistence contact "
+"(session) for the whole life cycle of the application transaction and simply "
+"disconnect from the JDBC connection at the end of each request and reconnect "
+"at the beginning of the subsequent request. Never share a single session "
+"across more than one application transaction, or you will be working with "
+"stale data."
+msgstr ""
+"Las transacciones de base de datos tienen que ser tan cortas como sea "
+"posible. Sin embargo, frecuentemente es necesario implementar "
+"<emphasis>transacciones de aplicación</emphasis> ejecutándose en largo, una "
+"sola unidad de trabajo desde el punto de vista de un usuario. Una "
+"transacción de aplicación puede abarcar muchos ciclos petición/respuesta del "
+"cliente. Es común usar objetos separados para implementar transacciones de "
+"aplicación. Una alternativa, extremadamente apropiada en arquitecturas en "
+"dos gradas, es mantener un solo contacto de persistencia abierto (sesión) "
+"para todo el ciclo de vida de la transacción de aplicación y simplemente "
+"desconectar de la conexión JDBC al final de cada petición, y reconectar al "
+"comienzo de la petición subsecuente. Nunca compartas una única sesión a "
+"través de más de una transacción de aplicación, o estarás trabajando con "
+"datos añejos."
 
-#: index.docbook:148
+#. Tag: term
+#: best_practices.xml:148
+#, no-c-format
 msgid "Don't treat exceptions as recoverable."
 msgstr "No trates la excepciones como recuperables."
 
-#: index.docbook:150
-msgid "This is more of a necessary practice than a \"best\" practice. When an exception occurs, roll back the <literal>Transaction</literal> and close the <literal>Session</literal>. If you don't, Hibernate can't guarantee that in-memory state accurately represents persistent state. As a special case of this, do not use <literal>Session.load()</literal> to determine if an instance with the given identifier exists on the database; use <literal>Session.get()</literal> or a query instead."
-msgstr "Esto es m&#x00e1;s una pr&#x00e1;ctica necesaria que una \"mejor\" pr&#x00e1;ctica. Cuando ocurra una excepci&#x00f3;n, deshaz (rollback) la <literal>Transaction</literal> y cierra la <literal>Session</literal>. Si no lo haces, Hibernate no puede garantizar que el estado en memoria representa con exactitud el estado persistente. Como un caso especial de esto, no uses <literal>Session.load()</literal> para determinar si una instancia con el identificador dado existe en la base de datos. En cambio, usa <literal>Session.get()</literal> o una consulta."
+#. Tag: para
+#: best_practices.xml:150
+#, no-c-format
+msgid ""
+"This is more of a necessary practice than a \"best\" practice. When an "
+"exception occurs, roll back the <literal>Transaction</literal> and close the "
+"<literal>Session</literal>. If you don't, Hibernate can't guarantee that in-"
+"memory state accurately represents persistent state. As a special case of "
+"this, do not use <literal>Session.load()</literal> to determine if an "
+"instance with the given identifier exists on the database; use "
+"<literal>Session.get()</literal> or a query instead."
+msgstr ""
+"Esto es más una práctica necesaria que una \"mejor\" práctica. Cuando ocurra "
+"una excepción, deshaz (rollback) la <literal>Transaction</literal> y cierra "
+"la <literal>Session</literal>. Si no lo haces, Hibernate no puede garantizar "
+"que el estado en memoria representa con exactitud el estado persistente. "
+"Como un caso especial de esto, no uses <literal>Session.load()</literal> "
+"para determinar si una instancia con el identificador dado existe en la base "
+"de datos. En cambio, usa <literal>Session.get()</literal> o una consulta."
 
-#: index.docbook:160
+#. Tag: term
+#: best_practices.xml:160
+#, no-c-format
 msgid "Prefer lazy fetching for associations."
-msgstr "Prefiere la recuperaci&#x00f3;n perezosa para las asociaciones."
+msgstr "Prefiere la recuperación perezosa para las asociaciones."
 
-#: index.docbook:162
-msgid "Use eager fetching sparingly. Use proxies and lazy collections for most associations to classes that are not likely to be completely held in the second-level cache. For associations to cached classes, where there is an a extremely high probability of a cache hit, explicitly disable eager fetching using <literal>lazy=\"false\"</literal>. When an join fetching is appropriate to a particular use case, use a query with a <literal>left join fetch</literal>."
-msgstr "Usa escasamente la recuperaci&#x00f3;n temprana. Usa proxies y colecciones perezosas para la mayor&#x00ed;a de asociaciones a clases probablemente no est&#x00e9;n mantenidas en el cach&#x00e9; de segundo nivel. Para las asociaciones a clases en cach&#x00e9;, donde hay una probabilidad de acceso a cach&#x00e9; extremadamente alta, deshabilita expl&#x00ed;citamente la recuperaci&#x00f3;n temprana usando <literal>lazy=\"false\"</literal>. Cuando sea apropiada la recuperaci&#x00f3;n por uni&#x00f3;n (join fetching) para un caso de uso en particular, usa una consulta con un <literal>left join fetch</literal>."
+#. Tag: para
+#: best_practices.xml:162
+#, no-c-format
+msgid ""
+"Use eager fetching sparingly. Use proxies and lazy collections for most "
+"associations to classes that are not likely to be completely held in the "
+"second-level cache. For associations to cached classes, where there is an a "
+"extremely high probability of a cache hit, explicitly disable eager fetching "
+"using <literal>lazy=\"false\"</literal>. When an join fetching is "
+"appropriate to a particular use case, use a query with a <literal>left join "
+"fetch</literal>."
+msgstr ""
+"Usa escasamente la recuperación temprana. Usa proxies y colecciones "
+"perezosas para la mayoría de asociaciones a clases probablemente no estén "
+"mantenidas en el caché de segundo nivel. Para las asociaciones a clases en "
+"caché, donde hay una probabilidad de acceso a caché extremadamente alta, "
+"deshabilita explícitamente la recuperación temprana usando <literal>lazy="
+"\"false\"</literal>. Cuando sea apropiada la recuperación por unión (join "
+"fetching) para un caso de uso en particular, usa una consulta con un "
+"<literal>left join fetch</literal>."
 
-#: index.docbook:172
-msgid "Use the <emphasis>open session in view</emphasis> pattern, or a disciplined <emphasis>assembly phase</emphasis> to avoid problems with unfetched data."
-msgstr "Usa el patr&#x00f3;n <emphasis>sesi&#x00f3;n abierta en vista</emphasis>, o una <emphasis>fase de ensamblado</emphasis> disciplinada para evitar problemas con datos no recuperados."
+#. Tag: term
+#: best_practices.xml:172
+#, no-c-format
+msgid ""
+"Use the <emphasis>open session in view</emphasis> pattern, or a disciplined "
+"<emphasis>assembly phase</emphasis> to avoid problems with unfetched data."
+msgstr ""
+"Usa el patrón <emphasis>sesión abierta en vista</emphasis>, o una "
+"<emphasis>fase de ensamblado</emphasis> disciplinada para evitar problemas "
+"con datos no recuperados."
 
-#: index.docbook:177
-msgid "Hibernate frees the developer from writing tedious <emphasis>Data Transfer Objects</emphasis> (DTO). In a traditional EJB architecture, DTOs serve dual purposes: first, they work around the problem that entity beans are not serializable; second, they implicitly define an assembly phase where all data to be used by the view is fetched and marshalled into the DTOs before returning control to the presentation tier. Hibernate eliminates the first purpose. However, you will still need an assembly phase (think of your business methods as having a strict contract with the presentation tier about what data is available in the detached objects) unless you are prepared to hold the persistence context (the session) open across the view rendering process. This is not a limitation of Hibernate! It is a fundamental requirement of safe transactional data access."
-msgstr "Hibernate liberal al desarrollador de escribir <emphasis>Objetos de Transferencia de Datos (Data Transfer Objects)</emphasis> (DTO). En una arquitectura tradicional de EJB, los DTOs tienen un prop&#x00f3;sito doble: primero, atacan el problema que los beans de entidad no son serializables. Segundo, definen impl&#x00ed;citamente una fase de ensamblado cuando se recuperan y se forman (marshalling) todos los datos a usar por la vista en los DTOs antes de devolver el control a la grada de presentaci&#x00f3;n. Hibernate elimina el primer prop&#x00f3;sito. Sin embargo, a&#x00fa;n necesitas una fase de ensamblado (piensa en tus m&#x00e9;todos de negocio como si tuviesen un contrato estricto con la grada de presentaci&#x00f3;n sobre qu&#x00e9; datos est&#x00e1;n disponibles en los objetos separados) a menos que est&#x00e9;s preparado para tener el contexto de persistencia (la sesi&#x00f3;n) abierto a trav&#x00e9;s del proceso de renderizaci&#x00f3;n de la vista. &#x00a1;Est!
 a no es una limitaci&#x00f3;n de Hibernate! Es un requerimiento fundamental de acceso seguro a datos transaccionales."
+#. Tag: para
+#: best_practices.xml:177
+#, no-c-format
+msgid ""
+"Hibernate frees the developer from writing tedious <emphasis>Data Transfer "
+"Objects</emphasis> (DTO). In a traditional EJB architecture, DTOs serve dual "
+"purposes: first, they work around the problem that entity beans are not "
+"serializable; second, they implicitly define an assembly phase where all "
+"data to be used by the view is fetched and marshalled into the DTOs before "
+"returning control to the presentation tier. Hibernate eliminates the first "
+"purpose. However, you will still need an assembly phase (think of your "
+"business methods as having a strict contract with the presentation tier "
+"about what data is available in the detached objects) unless you are "
+"prepared to hold the persistence context (the session) open across the view "
+"rendering process. This is not a limitation of Hibernate! It is a "
+"fundamental requirement of safe transactional data access."
+msgstr ""
+"Hibernate liberal al desarrollador de escribir <emphasis>Objetos de "
+"Transferencia de Datos (Data Transfer Objects)</emphasis> (DTO). En una "
+"arquitectura tradicional de EJB, los DTOs tienen un propósito doble: "
+"primero, atacan el problema que los beans de entidad no son serializables. "
+"Segundo, definen implícitamente una fase de ensamblado cuando se recuperan y "
+"se forman (marshalling) todos los datos a usar por la vista en los DTOs "
+"antes de devolver el control a la grada de presentación. Hibernate elimina "
+"el primer propósito. Sin embargo, aún necesitas una fase de ensamblado "
+"(piensa en tus métodos de negocio como si tuviesen un contrato estricto con "
+"la grada de presentación sobre qué datos están disponibles en los objetos "
+"separados) a menos que estés preparado para tener el contexto de "
+"persistencia (la sesión) abierto a través del proceso de renderización de la "
+"vista. ¡Esta no es una limitación de Hibernate! Es un requerimiento "
+"fundamental de acceso seguro a datos transaccionales."
 
-#: index.docbook:191
+#. Tag: term
+#: best_practices.xml:191
+#, no-c-format
 msgid "Consider abstracting your business logic from Hibernate."
-msgstr "Considera abstraer tu l&#x00f3;gica de negocio de Hibernate"
+msgstr "Considera abstraer tu lógica de negocio de Hibernate"
 
-#: index.docbook:193
-msgid "Hide (Hibernate) data-access code behind an interface. Combine the <emphasis>DAO</emphasis> and <emphasis>Thread Local Session</emphasis> patterns. You can even have some classes persisted by handcoded JDBC, associated to Hibernate via a <literal>UserType</literal>. (This advice is intended for \"sufficiently large\" applications; it is not appropriate for an application with five tables!)"
-msgstr "Oculta el c&#x00f3;digo de acceso a datos (Hibernate) detr&#x00e1;s de una interface. Combina los patrones <emphasis>DAO</emphasis> y <emphasis>Sesi&#x00f3;n de Hebra Local</emphasis>. Incluso puedes tener algunas clases hechas persistentes por JDBC escrito a mano, asociadas a Hibernate por medio de un <literal>UserType</literal>. (Este consejo est&#x00e1; pensado para aplicaciones \"suficientemente grandes\"; &#x00a1;no es apropiado para una aplicaci&#x00f3;n con cinco tablas!)"
+#. Tag: para
+#: best_practices.xml:193
+#, no-c-format
+msgid ""
+"Hide (Hibernate) data-access code behind an interface. Combine the "
+"<emphasis>DAO</emphasis> and <emphasis>Thread Local Session</emphasis> "
+"patterns. You can even have some classes persisted by handcoded JDBC, "
+"associated to Hibernate via a <literal>UserType</literal>. (This advice is "
+"intended for \"sufficiently large\" applications; it is not appropriate for "
+"an application with five tables!)"
+msgstr ""
+"Oculta el código de acceso a datos (Hibernate) detrás de una interface. "
+"Combina los patrones <emphasis>DAO</emphasis> y <emphasis>Sesión de Hebra "
+"Local</emphasis>. Incluso puedes tener algunas clases hechas persistentes "
+"por JDBC escrito a mano, asociadas a Hibernate por medio de un "
+"<literal>UserType</literal>. (Este consejo está pensado para aplicaciones "
+"\"suficientemente grandes\"; ¡no es apropiado para una aplicación con cinco "
+"tablas!)"
 
-#: index.docbook:203
+#. Tag: term
+#: best_practices.xml:203
+#, no-c-format
 msgid "Don't use exotic association mappings."
-msgstr "No uses mapeos de asociaci&#x00f3;n ex&#x00f3;ticos."
+msgstr "No uses mapeos de asociación exóticos."
 
-#: index.docbook:205
-msgid "Good usecases for a real many-to-many associations are rare. Most of the time you need additional information stored in the \"link table\". In this case, it is much better to use two one-to-many associations to an intermediate link class. In fact, we think that most associations are one-to-many and many-to-one, you should be careful when using any other association style and ask yourself if it is really neccessary."
-msgstr "Son raros los casos de uso de asociaciones reales muchos-a-muchos. La mayor parte del tiempo necesitas informaci&#x00f3;n adicional almacenada en una \"tabla de enlace\". En este caso, es mucho mejor usar dos asociaciones uno-a-muchos a una clase de enlace intermedia. De hecho, pensamos que la mayor&#x00ed;a de asociaciones son uno-a-muchos y muchos-a-uno, debes ser cuidadoso al usr cualquier otro estilo de asociaci&#x00f3;n y preguntarte si es realmente necesario."
+#. Tag: para
+#: best_practices.xml:205
+#, no-c-format
+msgid ""
+"Good usecases for a real many-to-many associations are rare. Most of the "
+"time you need additional information stored in the \"link table\". In this "
+"case, it is much better to use two one-to-many associations to an "
+"intermediate link class. In fact, we think that most associations are one-to-"
+"many and many-to-one, you should be careful when using any other association "
+"style and ask yourself if it is really neccessary."
+msgstr ""
+"Son raros los casos de uso de asociaciones reales muchos-a-muchos. La mayor "
+"parte del tiempo necesitas información adicional almacenada en una \"tabla "
+"de enlace\". En este caso, es mucho mejor usar dos asociaciones uno-a-muchos "
+"a una clase de enlace intermedia. De hecho, pensamos que la mayoría de "
+"asociaciones son uno-a-muchos y muchos-a-uno, debes ser cuidadoso al usr "
+"cualquier otro estilo de asociación y preguntarte si es realmente necesario."
 
-#: index.docbook:215
+#. Tag: term
+#: best_practices.xml:215
+#, no-c-format
 msgid "Prefer bidirectional associations."
 msgstr "Prefiere las asociaciones bidireccionales."
 
-#: index.docbook:217
-msgid "Unidirectional associations are more difficult to query. In a large application, almost all associations must be navigable in both directions in queries."
-msgstr "Las asociaciones unidireccionales son m&#x00e1;s dif&#x00ed;ciles de consultar. En una aplicaci&#x00f3;n grande, casi todas las asociaciones deben ser navegables en ambas direcciones en consultas."
-
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
-
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
-
+#. Tag: para
+#: best_practices.xml:217
+#, no-c-format
+msgid ""
+"Unidirectional associations are more difficult to query. In a large "
+"application, almost all associations must be navigable in both directions in "
+"queries."
+msgstr ""
+"Las asociaciones unidireccionales son más difíciles de consultar. En una "
+"aplicación grande, casi todas las asociaciones deben ser navegables en ambas "
+"direcciones en consultas."

Modified: core/trunk/documentation/manual/translations/es-ES/content/collection_mapping.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/collection_mapping.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/collection_mapping.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,1285 +1,1931 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:5
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: collection_mapping.xml:5
+#, no-c-format
 msgid "Collection Mapping"
 msgstr "Mapeo de Colecciones"
 
-#: index.docbook:8
+#. Tag: title
+#: collection_mapping.xml:8
+#, no-c-format
 msgid "Persistent collections"
 msgstr "Colecciones persistentes"
 
-#: index.docbook:10
-msgid "Hibernate requires that persistent collection-valued fields be declared as an interface type, for example:"
-msgstr "Hibernate requiere que los campos valuados en colecci&#x00f3;n persistentes sean declarados como un tipo de interface, por ejemplo:"
+#. Tag: para
+#: collection_mapping.xml:10
+#, no-c-format
+msgid ""
+"Hibernate requires that persistent collection-valued fields be declared as "
+"an interface type, for example:"
+msgstr ""
+"Hibernate requiere que los campos valuados en colección persistentes sean "
+"declarados como un tipo de interface, por ejemplo:"
 
-#: index.docbook:15
+#. Tag: programlisting
+#: collection_mapping.xml:15
+#, no-c-format
 msgid ""
-      "<![CDATA[public class Product {\n"
-      "    private String serialNumber;\n"
-      "    private Set parts = new HashSet();\n"
-      "    \n"
-      "    public Set getParts() { return parts; }\n"
-      "    void setParts(Set parts) { this.parts = parts; }\n"
-      "    public String getSerialNumber() { return serialNumber; }\n"
-      "    void setSerialNumber(String sn) { serialNumber = sn; }\n"
-      "}]]>"
+"<![CDATA[public class Product {\n"
+"    private String serialNumber;\n"
+"    private Set parts = new HashSet();\n"
+"    \n"
+"    public Set getParts() { return parts; }\n"
+"    void setParts(Set parts) { this.parts = parts; }\n"
+"    public String getSerialNumber() { return serialNumber; }\n"
+"    void setSerialNumber(String sn) { serialNumber = sn; }\n"
+"}]]>"
 msgstr ""
-      "<![CDATA[public class Product {\n"
-      "    private String serialNumber;\n"
-      "    private Set parts = new HashSet();\n"
-      "    \n"
-      "    public Set getParts() { return parts; }\n"
-      "    void setParts(Set parts) { this.parts = parts; }\n"
-      "    public String getSerialNumber() { return serialNumber; }\n"
-      "    void setSerialNumber(String sn) { serialNumber = sn; }\n"
-      "}]]>"
 
-#: index.docbook:17
-msgid "The actual interface might be <literal>java.util.Set</literal>, <literal>java.util.Collection</literal>, <literal>java.util.List</literal>, <literal>java.util.Map</literal>, <literal>java.util.SortedSet</literal>, <literal>java.util.SortedMap</literal> or ... anything you like! (Where \"anything you like\" means you will have to write an implementation of <literal>org.hibernate.usertype.UserCollectionType</literal>.)"
-msgstr "La interface real podr&#x00ed;a ser <literal>java.util.Set</literal>, <literal>java.util.Collection</literal>, <literal>java.util.List</literal>, <literal>java.util.Map</literal>, <literal>java.util.SortedSet</literal>, <literal>java.util.SortedMap</literal> o ... lo que te guste! (Donde \"lo que te guste\" significa que tendr&#x00e1;s que escribir una implementaci&#x00f3;n de <literal>org.hibernate.usertype.UserCollectionType</literal>.)"
+#. Tag: para
+#: collection_mapping.xml:17
+#, no-c-format
+msgid ""
+"The actual interface might be <literal>java.util.Set</literal>, "
+"<literal>java.util.Collection</literal>, <literal>java.util.List</literal>, "
+"<literal>java.util.Map</literal>, <literal>java.util.SortedSet</literal>, "
+"<literal>java.util.SortedMap</literal> or ... anything you like! (Where "
+"\"anything you like\" means you will have to write an implementation of "
+"<literal>org.hibernate.usertype.UserCollectionType</literal>.)"
+msgstr ""
+"La interface real podría ser <literal>java.util.Set</literal>, <literal>java."
+"util.Collection</literal>, <literal>java.util.List</literal>, <literal>java."
+"util.Map</literal>, <literal>java.util.SortedSet</literal>, <literal>java."
+"util.SortedMap</literal> o ... lo que te guste! (Donde \"lo que te guste\" "
+"significa que tendrás que escribir una implementación de <literal>org."
+"hibernate.usertype.UserCollectionType</literal>.)"
 
-#: index.docbook:26
-msgid "Notice how we initialized the instance variable with an instance of <literal>HashSet</literal>. This is the best way to initialize collection valued properties of newly instantiated (non-persistent) instances. When you make the instance persistent - by calling <literal>persist()</literal>, for example - Hibernate will actually replace the <literal>HashSet</literal> with an instance of Hibernate's own implementation of <literal>Set</literal>. Watch out for errors like this:"
-msgstr "Nota c&#x00f3;mo hemos inicializado la variable de instancia de <literal>HashSet</literal>. Esta es la mejor forma de inicializar propiedades valuadas en colecci&#x00f3;n de instancias reci&#x00e9;n instanciadas (no persistentes). Cuando haces persistente la instancia - llamando a <literal>persist()</literal>, por ejemplo - Hibernate realmente remplazar&#x00e1; el <literal>HashSet</literal> con una instancia de una implementaci&#x00f3;n de <literal>Set</literal> propia de Hibernate. Observa errores como este:"
+#. Tag: para
+#: collection_mapping.xml:26
+#, no-c-format
+msgid ""
+"Notice how we initialized the instance variable with an instance of "
+"<literal>HashSet</literal>. This is the best way to initialize collection "
+"valued properties of newly instantiated (non-persistent) instances. When you "
+"make the instance persistent - by calling <literal>persist()</literal>, for "
+"example - Hibernate will actually replace the <literal>HashSet</literal> "
+"with an instance of Hibernate's own implementation of <literal>Set</"
+"literal>. Watch out for errors like this:"
+msgstr ""
+"Nota cómo hemos inicializado la variable de instancia de <literal>HashSet</"
+"literal>. Esta es la mejor forma de inicializar propiedades valuadas en "
+"colección de instancias recién instanciadas (no persistentes). Cuando haces "
+"persistente la instancia - llamando a <literal>persist()</literal>, por "
+"ejemplo - Hibernate realmente remplazará el <literal>HashSet</literal> con "
+"una instancia de una implementación de <literal>Set</literal> propia de "
+"Hibernate. Observa errores como este:"
 
-#: index.docbook:36
+#. Tag: programlisting
+#: collection_mapping.xml:36
+#, no-c-format
 msgid ""
-      "<![CDATA[Cat cat = new DomesticCat();\n"
-      "Cat kitten = new DomesticCat();\n"
-      "....\n"
-      "Set kittens = new HashSet();\n"
-      "kittens.add(kitten);\n"
-      "cat.setKittens(kittens);\n"
-      "session.persist(cat);\n"
-      "kittens = cat.getKittens(); // Okay, kittens collection is a Set\n"
-      "(HashSet) cat.getKittens(); // Error!]]>"
+"<![CDATA[Cat cat = new DomesticCat();\n"
+"Cat kitten = new DomesticCat();\n"
+"....\n"
+"Set kittens = new HashSet();\n"
+"kittens.add(kitten);\n"
+"cat.setKittens(kittens);\n"
+"session.persist(cat);\n"
+"kittens = cat.getKittens(); // Okay, kittens collection is a Set\n"
+"(HashSet) cat.getKittens(); // Error!]]>"
 msgstr ""
-      "<![CDATA[Cat cat = new DomesticCat();\n"
-      "Cat kitten = new DomesticCat();\n"
-      "....\n"
-      "Set kittens = new HashSet();\n"
-      "kittens.add(kitten);\n"
-      "cat.setKittens(kittens);\n"
-      "session.persist(cat);\n"
-      "kittens = cat.getKittens(); // Okay, kittens collection is a Set\n"
-      "(HashSet) cat.getKittens(); // Error!]]>"
 
-#: index.docbook:38
-msgid "The persistent collections injected by Hibernate behave like <literal>HashMap</literal>, <literal>HashSet</literal>, <literal>TreeMap</literal>, <literal>TreeSet</literal> or <literal>ArrayList</literal>, depending upon the interface type."
-msgstr "Las colecciones persistentes inyectadas por Hibernate se comportan como <literal>HashMap</literal>, <literal>HashSet</literal>, <literal>TreeMap</literal>, <literal>TreeSet</literal> o <literal>ArrayList</literal>, dependiendo del tipo de interface."
+#. Tag: para
+#: collection_mapping.xml:38
+#, no-c-format
+msgid ""
+"The persistent collections injected by Hibernate behave like "
+"<literal>HashMap</literal>, <literal>HashSet</literal>, <literal>TreeMap</"
+"literal>, <literal>TreeSet</literal> or <literal>ArrayList</literal>, "
+"depending upon the interface type."
+msgstr ""
+"Las colecciones persistentes inyectadas por Hibernate se comportan como "
+"<literal>HashMap</literal>, <literal>HashSet</literal>, <literal>TreeMap</"
+"literal>, <literal>TreeSet</literal> o <literal>ArrayList</literal>, "
+"dependiendo del tipo de interface."
 
-#: index.docbook:45
-msgid "Collections instances have the usual behavior of value types. They are automatically persisted when referenced by a persistent object and automatically deleted when unreferenced. If a collection is passed from one persistent object to another, its elements might be moved from one table to another. Two entities may not share a reference to the same collection instance. Due to the underlying relational model, collection-valued properties do not support null value semantics; Hibernate does not distinguish between a null collection reference and an empty collection."
-msgstr "Las instancias de colecciones tienen el comportamiento usual de tipos de valor. Son autom&#x00e1;ticamente persistidas al ser referenciadas por un objeto persistente y autom&#x00e1;ticamente borradas al desreferenciarse. Si una colecci&#x00f3;n es pasada de un objeto persistente a otro, sus elementos ser&#x00ed;an movidos de una tabla a otra. Dos entidades pueden no compartir una referencia a la misma instancia de colecci&#x00f3;n. Debido al modelo relacional subyacente, las propiedades valuadas en colecci&#x00f3;n no soportan la sem&#x00e1;ntica de valor nulo. Hibernate no distingue entre una referencia de colecci&#x00f3;n nula y una colecci&#x00f3;n vac&#x00ed;a."
+#. Tag: para
+#: collection_mapping.xml:45
+#, no-c-format
+msgid ""
+"Collections instances have the usual behavior of value types. They are "
+"automatically persisted when referenced by a persistent object and "
+"automatically deleted when unreferenced. If a collection is passed from one "
+"persistent object to another, its elements might be moved from one table to "
+"another. Two entities may not share a reference to the same collection "
+"instance. Due to the underlying relational model, collection-valued "
+"properties do not support null value semantics; Hibernate does not "
+"distinguish between a null collection reference and an empty collection."
+msgstr ""
+"Las instancias de colecciones tienen el comportamiento usual de tipos de "
+"valor. Son automáticamente persistidas al ser referenciadas por un objeto "
+"persistente y automáticamente borradas al desreferenciarse. Si una colección "
+"es pasada de un objeto persistente a otro, sus elementos serían movidos de "
+"una tabla a otra. Dos entidades pueden no compartir una referencia a la "
+"misma instancia de colección. Debido al modelo relacional subyacente, las "
+"propiedades valuadas en colección no soportan la semántica de valor nulo. "
+"Hibernate no distingue entre una referencia de colección nula y una "
+"colección vacía."
 
-#: index.docbook:56
-msgid "You shouldn't have to worry much about any of this. Use persistent collections the same way you use ordinary Java collections. Just make sure you understand the semantics of bidirectional associations (discussed later)."
-msgstr "No debes tener que preocuparte demasiado por esto. Usa las colecciones persistentes de la misma forma en que usas colecciones de Java ordinarias. S&#x00f3;lo aseg&#x00fa;rate que entiendes la sem&#x00e1;ntica de las asociaciones bidireccionales (discutida luego)."
+#. Tag: para
+#: collection_mapping.xml:56
+#, no-c-format
+msgid ""
+"You shouldn't have to worry much about any of this. Use persistent "
+"collections the same way you use ordinary Java collections. Just make sure "
+"you understand the semantics of bidirectional associations (discussed later)."
+msgstr ""
+"No debes tener que preocuparte demasiado por esto. Usa las colecciones "
+"persistentes de la misma forma en que usas colecciones de Java ordinarias. "
+"Sólo asegúrate que entiendes la semántica de las asociaciones "
+"bidireccionales (discutida luego)."
 
-#: index.docbook:65
+#. Tag: title
+#: collection_mapping.xml:65
+#, no-c-format
 msgid "Collection mappings"
-msgstr "Mapeos de colecci&#x00f3;n"
+msgstr "Mapeos de colección"
 
-#: index.docbook:67
-msgid "The Hibernate mapping element used for mapping a collection depends upon the type of the interface. For example, a <literal>&lt;set&gt;</literal> element is used for mapping properties of type <literal>Set</literal>."
-msgstr "El elemento de mapeo de Hibernate usado para mapear una colecci&#x00f3;n depende del tipo de la interface. Por ejemplom un elemento <literal>&lt;set&gt;</literal> se usa para mapear propiedades de tipo <literal>Set</literal>."
+#. Tag: para
+#: collection_mapping.xml:67
+#, no-c-format
+msgid ""
+"The Hibernate mapping element used for mapping a collection depends upon the "
+"type of the interface. For example, a <literal>&lt;set&gt;</literal> element "
+"is used for mapping properties of type <literal>Set</literal>."
+msgstr ""
+"El elemento de mapeo de Hibernate usado para mapear una colección depende "
+"del tipo de la interface. Por ejemplom un elemento <literal>&lt;set&gt;</"
+"literal> se usa para mapear propiedades de tipo <literal>Set</literal>."
 
-#: index.docbook:73
+#. Tag: programlisting
+#: collection_mapping.xml:73
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Product\">\n"
-      "    <id name=\"serialNumber\" column=\"productSerialNumber\"/>\n"
-      "    <set name=\"parts\">\n"
-      "        <key column=\"productSerialNumber\" not-null=\"true\"/>\n"
-      "        <one-to-many class=\"Part\"/>\n"
-      "    </set>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Product\">\n"
+"    <id name=\"serialNumber\" column=\"productSerialNumber\"/>\n"
+"    <set name=\"parts\">\n"
+"        <key column=\"productSerialNumber\" not-null=\"true\"/>\n"
+"        <one-to-many class=\"Part\"/>\n"
+"    </set>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"Product\">\n"
-      "    <id name=\"serialNumber\" column=\"productSerialNumber\"/>\n"
-      "    <set name=\"parts\">\n"
-      "        <key column=\"productSerialNumber\" not-null=\"true\"/>\n"
-      "        <one-to-many class=\"Part\"/>\n"
-      "    </set>\n"
-      "</class>]]>"
 
-#: index.docbook:75
-msgid "Apart from <literal>&lt;set&gt;</literal>, there is also <literal>&lt;list&gt;</literal>, <literal>&lt;map&gt;</literal>, <literal>&lt;bag&gt;</literal>, <literal>&lt;array&gt;</literal> and <literal>&lt;primitive-array&gt;</literal> mapping elements. The <literal>&lt;map&gt;</literal> element is representative:"
-msgstr "Aparte de <literal>&lt;set&gt;</literal>, existen adem&#x00e1;s los elementos de mapeo <literal>&lt;list&gt;</literal>, <literal>&lt;map&gt;</literal>, <literal>&lt;bag&gt;</literal>, <literal>&lt;array&gt;</literal> y <literal>&lt;primitive-array&gt;</literal>. El elemento <literal>&lt;map&gt;</literal> es representativo:"
+#. Tag: para
+#: collection_mapping.xml:75
+#, no-c-format
+msgid ""
+"Apart from <literal>&lt;set&gt;</literal>, there is also <literal>&lt;"
+"list&gt;</literal>, <literal>&lt;map&gt;</literal>, <literal>&lt;bag&gt;</"
+"literal>, <literal>&lt;array&gt;</literal> and <literal>&lt;primitive-"
+"array&gt;</literal> mapping elements. The <literal>&lt;map&gt;</literal> "
+"element is representative:"
+msgstr ""
+"Aparte de <literal>&lt;set&gt;</literal>, existen además los elementos de "
+"mapeo <literal>&lt;list&gt;</literal>, <literal>&lt;map&gt;</literal>, "
+"<literal>&lt;bag&gt;</literal>, <literal>&lt;array&gt;</literal> y "
+"<literal>&lt;primitive-array&gt;</literal>. El elemento <literal>&lt;map&gt;"
+"</literal> es representativo:"
 
-#: index.docbook:100
+#. Tag: programlisting
+#: collection_mapping.xml:100
+#, no-c-format
 msgid ""
-      "<![CDATA[<map\n"
-      "    name=\"propertyName\"\n"
-      "    table=\"table_name\"\n"
-      "    schema=\"schema_name\"\n"
-      "    lazy=\"true|extra|false\"\n"
-      "    inverse=\"true|false\"\n"
-      "    cascade=\"all|none|save-update|delete|all-delete-orphan|delete-orphan\"\n"
-      "    sort=\"unsorted|natural|comparatorClass\"\n"
-      "    order-by=\"column_name asc|desc\"\n"
-      "    where=\"arbitrary sql where condition\"\n"
-      "    fetch=\"join|select|subselect\"\n"
-      "    batch-size=\"N\"\n"
-      "    access=\"field|property|ClassName\"\n"
-      "    optimistic-lock=\"true|false\"\n"
-      "    mutable=\"true|false\"\n"
-      "    node=\"element-name|.\"\n"
-      "    embed-xml=\"true|false\"\n"
-      ">\n"
-      "\n"
-      "    <key .... />\n"
-      "    <map-key .... />\n"
-      "    <element .... />\n"
-      "</map>]]>"
+"<![CDATA[<map\n"
+"    name=\"propertyName\"\n"
+"    table=\"table_name\"\n"
+"    schema=\"schema_name\"\n"
+"    lazy=\"true|extra|false\"\n"
+"    inverse=\"true|false\"\n"
+"    cascade=\"all|none|save-update|delete|all-delete-orphan|delete-orphan\"\n"
+"    sort=\"unsorted|natural|comparatorClass\"\n"
+"    order-by=\"column_name asc|desc\"\n"
+"    where=\"arbitrary sql where condition\"\n"
+"    fetch=\"join|select|subselect\"\n"
+"    batch-size=\"N\"\n"
+"    access=\"field|property|ClassName\"\n"
+"    optimistic-lock=\"true|false\"\n"
+"    mutable=\"true|false\"\n"
+"    node=\"element-name|.\"\n"
+"    embed-xml=\"true|false\"\n"
+">\n"
+"\n"
+"    <key .... />\n"
+"    <map-key .... />\n"
+"    <element .... />\n"
+"</map>]]>"
 msgstr ""
-      "<![CDATA[<map\n"
-      "    name=\"propertyName\"\n"
-      "    table=\"table_name\"\n"
-      "    schema=\"schema_name\"\n"
-      "    lazy=\"true|false\"\n"
-      "    inverse=\"true|false\"\n"
-      "    cascade=\"all|none|save-update|delete|all-delete-orphan\"\n"
-      "    sort=\"unsorted|natural|comparatorClass\"\n"
-      "    order-by=\"column_name asc|desc\"\n"
-      "    where=\"arbitrary sql where condition\"\n"
-      "    fetch=\"join|select|subselect\"\n"
-      "    batch-size=\"N\"\n"
-      "    access=\"field|property|ClassName\"\n"
-      "    optimistic-lock=\"true|false\"\n"
-      "    node=\"element-name|.\"\n"
-      "    embed-xml=\"true|false\"\n"
-      ">\n"
-      "\n"
-      "    <key .... />\n"
-      "    <map-key .... />\n"
-      "    <element .... />\n"
-      "</map>]]>"
 
-#: index.docbook:103
+#. Tag: para
+#: collection_mapping.xml:103
+#, no-c-format
 msgid "<literal>name</literal> the collection property name"
-msgstr "<literal>name</literal> el nombre de la propiedad de colecci&#x00f3;n"
+msgstr "<literal>name</literal> el nombre de la propiedad de colección"
 
-#: index.docbook:108
-msgid "<literal>table</literal> (optional - defaults to property name) the name of the collection table (not used for one-to-many associations)"
-msgstr "<literal>table</literal> (opcional - por defecto al nombre de la propiedad) el nombre de la tabla de colecii&#x00f3;n (no usado para asociaciones uno-a-muchos)"
+#. Tag: para
+#: collection_mapping.xml:108
+#, no-c-format
+msgid ""
+"<literal>table</literal> (optional - defaults to property name) the name of "
+"the collection table (not used for one-to-many associations)"
+msgstr ""
+"<literal>table</literal> (opcional - por defecto al nombre de la propiedad) "
+"el nombre de la tabla de coleciión (no usado para asociaciones uno-a-muchos)"
 
-#: index.docbook:114
-msgid "<literal>schema</literal> (optional) the name of a table schema to override the schema declared on the root element"
-msgstr "<literal>schema</literal> (opcional) el nombre de un esquema de tablas para sobrescribir el esquema declarado en el elemento ra&#x00ed;z"
+#. Tag: para
+#: collection_mapping.xml:114
+#, no-c-format
+msgid ""
+"<literal>schema</literal> (optional) the name of a table schema to override "
+"the schema declared on the root element"
+msgstr ""
+"<literal>schema</literal> (opcional) el nombre de un esquema de tablas para "
+"sobrescribir el esquema declarado en el elemento raíz"
 
-#: index.docbook:120
-msgid "<literal>lazy</literal> (optional - defaults to <literal>true</literal>) may be used to disable lazy fetching and specify that the association is always eagerly fetched, or to enable \"extra-lazy\" fetching where most operations do not initialize the collection (suitable for very large collections)"
-msgstr "<literal>lazy</literal> (opcional - por defecto a <literal>true</literal>) puede ser usado para deshabilitar la recuperaci&#x00f3;n perezosa y especificar que la asociaci&#x00f3;n es siempre recuperada tempranamente (no disponible para arrays)"
+#. Tag: para
+#: collection_mapping.xml:120
+#, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional - defaults to <literal>true</literal>) may "
+"be used to disable lazy fetching and specify that the association is always "
+"eagerly fetched, or to enable \"extra-lazy\" fetching where most operations "
+"do not initialize the collection (suitable for very large collections)"
+msgstr ""
+"<literal>lazy</literal> (opcional - por defecto a <literal>true</literal>) "
+"puede ser usado para deshabilitar la recuperación perezosa y especificar que "
+"la asociación es siempre recuperada tempranamente (no disponible para arrays)"
 
-#: index.docbook:129
-msgid "<literal>inverse</literal> (optional - defaults to <literal>false</literal>) mark this collection as the \"inverse\" end of a bidirectional association"
-msgstr "<literal>inverse</literal> (opcional - por defecto a <literal>false</literal>) marca esta colecci&#x00f3;n como el extremo \"inverso\" de una asociaci&#x00f3;n bidireccional."
+#. Tag: para
+#: collection_mapping.xml:129
+#, no-c-format
+msgid ""
+"<literal>inverse</literal> (optional - defaults to <literal>false</literal>) "
+"mark this collection as the \"inverse\" end of a bidirectional association"
+msgstr ""
+"<literal>inverse</literal> (opcional - por defecto a <literal>false</"
+"literal>) marca esta colección como el extremo \"inverso\" de una asociación "
+"bidireccional."
 
-#: index.docbook:135
-msgid "<literal>cascade</literal> (optional - defaults to <literal>none</literal>) enable operations to cascade to child entities"
-msgstr "<literal>cascade</literal> (opcional - por defecto a <literal>none</literal>) habilita operaciones en cascada a entidades hijas"
+#. Tag: para
+#: collection_mapping.xml:135
+#, no-c-format
+msgid ""
+"<literal>cascade</literal> (optional - defaults to <literal>none</literal>) "
+"enable operations to cascade to child entities"
+msgstr ""
+"<literal>cascade</literal> (opcional - por defecto a <literal>none</"
+"literal>) habilita operaciones en cascada a entidades hijas"
 
-#: index.docbook:141
-msgid "<literal>sort</literal> (optional) specify a sorted collection with <literal>natural</literal> sort order, or a given comparator class"
-msgstr "<literal>sort</literal> (opcional) especifica una colecci&#x00f3;n con ordenamiento <literal>natural</literal>, o una clase comparadora dada"
+#. Tag: para
+#: collection_mapping.xml:141
+#, no-c-format
+msgid ""
+"<literal>sort</literal> (optional) specify a sorted collection with "
+"<literal>natural</literal> sort order, or a given comparator class"
+msgstr ""
+"<literal>sort</literal> (opcional) especifica una colección con ordenamiento "
+"<literal>natural</literal>, o una clase comparadora dada"
 
-#: index.docbook:147
-msgid "<literal>order-by</literal> (optional, JDK1.4 only) specify a table column (or columns) that define the iteration order of the <literal>Map</literal>, <literal>Set</literal> or bag, together with an optional <literal>asc</literal> or <literal>desc</literal>"
-msgstr "<literal>order-by</literal> (opcional, s&#x00f3;lo JDK1.4) especifica una columna de tabla (o columnas) que definen el orden de iteraci&#x00f3;n del <literal>Map</literal>, <literal>Set</literal> o bag, junto a un <literal>asc</literal> o <literal>desc</literal> opcional."
+#. Tag: para
+#: collection_mapping.xml:147
+#, no-c-format
+msgid ""
+"<literal>order-by</literal> (optional, JDK1.4 only) specify a table column "
+"(or columns) that define the iteration order of the <literal>Map</literal>, "
+"<literal>Set</literal> or bag, together with an optional <literal>asc</"
+"literal> or <literal>desc</literal>"
+msgstr ""
+"<literal>order-by</literal> (opcional, sólo JDK1.4) especifica una columna "
+"de tabla (o columnas) que definen el orden de iteración del <literal>Map</"
+"literal>, <literal>Set</literal> o bag, junto a un <literal>asc</literal> o "
+"<literal>desc</literal> opcional."
 
-#: index.docbook:154
-msgid "<literal>where</literal> (optional) specify an arbitrary SQL <literal>WHERE</literal> condition to be used when retrieving or removing the collection (useful if the collection should contain only a subset of the available data)"
-msgstr "<literal>where</literal> (opcional) especifica una condici&#x00f3;n <literal>WHERE</literal> de SQL arbitrario para ser usada al recuperar o quitar la colecci&#x00f3;n (&#x00fa;til si la colecci&#x00f3;n debe contener s&#x00f3;lo un subconjunto de los datos disponibles)"
+#. Tag: para
+#: collection_mapping.xml:154
+#, no-c-format
+msgid ""
+"<literal>where</literal> (optional) specify an arbitrary SQL <literal>WHERE</"
+"literal> condition to be used when retrieving or removing the collection "
+"(useful if the collection should contain only a subset of the available data)"
+msgstr ""
+"<literal>where</literal> (opcional) especifica una condición <literal>WHERE</"
+"literal> de SQL arbitrario para ser usada al recuperar o quitar la colección "
+"(útil si la colección debe contener sólo un subconjunto de los datos "
+"disponibles)"
 
-#: index.docbook:161
-msgid "<literal>fetch</literal> (optional, defaults to <literal>select</literal>) Choose between outer-join fetching, fetching by sequential select, and fetching by sequential subselect."
-msgstr "<literal>fetch</literal> (opcional, por defecto a <literal>select</literal>) Elige entre recuperaci&#x00f3;n por uni&#x00f3;n externa (outer-join), recuperar por selecci&#x00f3;n secuencial, y recuperaci&#x00f3;n por subselecci&#x00f3;n secuencial."
+#. Tag: para
+#: collection_mapping.xml:161
+#, no-c-format
+msgid ""
+"<literal>fetch</literal> (optional, defaults to <literal>select</literal>) "
+"Choose between outer-join fetching, fetching by sequential select, and "
+"fetching by sequential subselect."
+msgstr ""
+"<literal>fetch</literal> (opcional, por defecto a <literal>select</literal>) "
+"Elige entre recuperación por unión externa (outer-join), recuperar por "
+"selección secuencial, y recuperación por subselección secuencial."
 
-#: index.docbook:168
-msgid "<literal>batch-size</literal> (optional, defaults to <literal>1</literal>) specify a \"batch size\" for lazily fetching instances of this collection."
-msgstr "<literal>batch-size</literal> (opcional, por defecto a <literal>1</literal>) especifica un \"tama&#x00f1;o de lote\" para la recuperar perezosamente instancias de esta colecci&#x00f3;n."
+#. Tag: para
+#: collection_mapping.xml:168
+#, no-c-format
+msgid ""
+"<literal>batch-size</literal> (optional, defaults to <literal>1</literal>) "
+"specify a \"batch size\" for lazily fetching instances of this collection."
+msgstr ""
+"<literal>batch-size</literal> (opcional, por defecto a <literal>1</literal>) "
+"especifica un \"tamaño de lote\" para la recuperar perezosamente instancias "
+"de esta colección."
 
-#: index.docbook:174
-msgid "<literal>access</literal> (optional - defaults to <literal>property</literal>): The strategy Hibernate should use for accessing the collection property value."
-msgstr "<literal>access</literal> (opcional - por defecto a <literal>property</literal>): La estrategia que debe usar Hibernate para acceder al valor de la propiedad."
+#. Tag: para
+#: collection_mapping.xml:174
+#, no-c-format
+msgid ""
+"<literal>access</literal> (optional - defaults to <literal>property</"
+"literal>): The strategy Hibernate should use for accessing the collection "
+"property value."
+msgstr ""
+"<literal>access</literal> (opcional - por defecto a <literal>property</"
+"literal>): La estrategia que debe usar Hibernate para acceder al valor de la "
+"propiedad."
 
-#: index.docbook:180
-msgid "<literal>optimistic-lock</literal> (optional - defaults to <literal>true</literal>): Species that changes to the state of the collection results in increment of the owning entity's version. (For one to many associations, it is often reasonable to disable this setting.)"
-msgstr "<literal>optimistic-lock</literal> (opcional - por defecto a <literal>true</literal>): Especifica que los cambios de estado de la colecci&#x00f3;n resultan en incrementos de versi&#x00f3;n de la entidad due&#x00f1;a. (Para asociaciones uno a muchos, frecuentemente es razonable deshabilitar esta opci&#x00f3;n.)"
+#. Tag: para
+#: collection_mapping.xml:180
+#, no-c-format
+msgid ""
+"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
+"literal>): Species that changes to the state of the collection results in "
+"increment of the owning entity's version. (For one to many associations, it "
+"is often reasonable to disable this setting.)"
+msgstr ""
+"<literal>optimistic-lock</literal> (opcional - por defecto a <literal>true</"
+"literal>): Especifica que los cambios de estado de la colección resultan en "
+"incrementos de versión de la entidad dueña. (Para asociaciones uno a muchos, "
+"frecuentemente es razonable deshabilitar esta opción.)"
 
-#: index.docbook:188
-msgid "<literal>mutable</literal> (optional - defaults to <literal>true</literal>): A value of <literal>false</literal> specifies that the elements of the collection never change (a minor performance optimization in some cases)."
-msgstr "Claves for&#x00e1;neas de collecci&#x00f3;n"
+#. Tag: para
+#: collection_mapping.xml:188
+#, no-c-format
+msgid ""
+"<literal>mutable</literal> (optional - defaults to <literal>true</literal>): "
+"A value of <literal>false</literal> specifies that the elements of the "
+"collection never change (a minor performance optimization in some cases)."
+msgstr ""
+"<literal>mutable</literal> (optional - defaults to <literal>true</literal>): "
+"A value of <literal>false</literal> specifies that the elements of the "
+"collection never change (a minor performance optimization in some cases)."
 
-#: index.docbook:198
+#. Tag: title
+#: collection_mapping.xml:198
+#, no-c-format
 msgid "Collection foreign keys"
-msgstr "Las instancias de colecci&#x00f3;n se distinguen en la base de datos por la clave for&#x00e1;nea de la entidad que posee la colecci&#x00f3;n. Se hace referencia a esta clave for&#x00e1;nea como la <emphasis>columna clave de colecci&#x00f3;n</emphasis> (o columnas) de la tabla de colecci&#x00f3;n. La columna clave de la colecci&#x00f3;n es mapeada por el elemento <literal>&lt;key&gt;</literal>."
+msgstr "Claves foráneas de collección"
 
-#: index.docbook:200
-msgid "Collection instances are distinguished in the database by the foreign key of the entity that owns the collection. This foreign key is referred to as the <emphasis>collection key column</emphasis> (or columns) of the collection table. The collection key column is mapped by the <literal>&lt;key&gt;</literal> element."
-msgstr "Puede haber una restricci&#x00f3;n de nulabilidad sobre la columna de clave for&#x00e1;nea. Para la mayor&#x00ed;a de colecciones, esto est&#x00e1; implicado. Para asociaciones unidireccionales uno a muchos, la columna de clave for&#x00e1;nea es nulable por defecto, de modo que podr&#x00ed;as necesitar especificar <literal>not-null=\"true\"</literal>."
+#. Tag: para
+#: collection_mapping.xml:200
+#, no-c-format
+msgid ""
+"Collection instances are distinguished in the database by the foreign key of "
+"the entity that owns the collection. This foreign key is referred to as the "
+"<emphasis>collection key column</emphasis> (or columns) of the collection "
+"table. The collection key column is mapped by the <literal>&lt;key&gt;</"
+"literal> element."
+msgstr ""
+"Las instancias de colección se distinguen en la base de datos por la clave "
+"foránea de la entidad que posee la colección. Se hace referencia a esta "
+"clave foránea como la <emphasis>columna clave de colección</emphasis> (o "
+"columnas) de la tabla de colección. La columna clave de la colección es "
+"mapeada por el elemento <literal>&lt;key&gt;</literal>."
 
-#: index.docbook:208
-msgid "There may be a nullability constraint on the foreign key column. For most collections, this is implied. For unidirectional one to many associations, the foreign key column is nullable by default, so you might need to specify <literal>not-null=\"true\"</literal>."
-msgstr "<![CDATA[<key column=\"productSerialNumber\" not-null=\"true\"/>]]>"
+#. Tag: para
+#: collection_mapping.xml:208
+#, no-c-format
+msgid ""
+"There may be a nullability constraint on the foreign key column. For most "
+"collections, this is implied. For unidirectional one to many associations, "
+"the foreign key column is nullable by default, so you might need to specify "
+"<literal>not-null=\"true\"</literal>."
+msgstr ""
+"Puede haber una restricción de nulabilidad sobre la columna de clave "
+"foránea. Para la mayoría de colecciones, esto está implicado. Para "
+"asociaciones unidireccionales uno a muchos, la columna de clave foránea es "
+"nulable por defecto, de modo que podrías necesitar especificar <literal>not-"
+"null=\"true\"</literal>."
 
-#: index.docbook:215
+#. Tag: programlisting
+#: collection_mapping.xml:215
+#, no-c-format
 msgid "<![CDATA[<key column=\"productSerialNumber\" not-null=\"true\"/>]]>"
-msgstr "La restricci&#x00f3;n de clave for&#x00e1;nea puede usar <literal>ON DELETE CASCADE</literal>."
+msgstr ""
 
-#: index.docbook:217
-msgid "The foreign key constraint may use <literal>ON DELETE CASCADE</literal>."
-msgstr "<![CDATA[<key column=\"productSerialNumber\" on-delete=\"cascade\"/>]]>"
+#. Tag: para
+#: collection_mapping.xml:217
+#, no-c-format
+msgid ""
+"The foreign key constraint may use <literal>ON DELETE CASCADE</literal>."
+msgstr ""
+"La restricción de clave foránea puede usar <literal>ON DELETE CASCADE</"
+"literal>."
 
-#: index.docbook:221
+#. Tag: programlisting
+#: collection_mapping.xml:221
+#, no-c-format
 msgid "<![CDATA[<key column=\"productSerialNumber\" on-delete=\"cascade\"/>]]>"
-msgstr "Mira el cap&#x00ed;tulo anterior por una definici&#x00f3;n completa del elemento <literal>&lt;key&gt;</literal>."
+msgstr ""
 
-#: index.docbook:223
-msgid "See the previous chapter for a full definition of the <literal>&lt;key&gt;</literal> element."
-msgstr "Elementos de collecci&#x00f3;n"
+#. Tag: para
+#: collection_mapping.xml:223
+#, no-c-format
+msgid ""
+"See the previous chapter for a full definition of the <literal>&lt;key&gt;</"
+"literal> element."
+msgstr ""
+"Mira el capítulo anterior por una definición completa del elemento "
+"<literal>&lt;key&gt;</literal>."
 
-#: index.docbook:231
+#. Tag: title
+#: collection_mapping.xml:231
+#, no-c-format
 msgid "Collection elements"
-msgstr "Las colecciones pueden contener casi cualquier tipo de Hibernate, incluyendo todos los tipos b&#x00e1;sicos, componentes, y por supuesto, referencias a otras entidades. Esta es una distinci&#x00f3;n importante: un objeto en una colecci&#x00f3;n puede ser manejado con una sem&#x00e1;ntica de \"valor\" (su ciclo de vida depende completamente del propietario de la colecci&#x00f3;n) o podr&#x00ed;a ser una referencia a otra entidad, con su propio ciclo de vida. En el &#x00fa;ltimo caso, s&#x00f3;lo el estado del \"enlace\" entre los dos objetos se considera mantenido por la colecci&#x00f3;n."
+msgstr "Elementos de collección"
 
-#: index.docbook:233
-msgid "Collections may contain almost any other Hibernate type, including all basic types, custom types, components, and of course, references to other entities. This is an important distinction: an object in a collection might be handled with \"value\" semantics (its life cycle fully depends on the collection owner) or it might be a reference to another entity, with its own life cycle. In the latter case, only the \"link\" between the two objects is considered to be state held by the collection."
-msgstr "Se hace referencia al tipo contenido como el <emphasis>tipo de elemento de la colecci&#x00f3;n</emphasis>. Los elementos de colecci&#x00f3;n son mapeados por <literal>&lt;element&gt;</literal> o <literal>&lt;composite-element&gt;</literal>, o en el caso de referencias de entidades, con <literal>&lt;one-to-many&gt;</literal> o <literal>&lt;many-to-many&gt;</literal>. Las dos primeras mapean elementos con sem&#x00e1;ntica de valor, los dos siguientes son usados para mapear asociaciones de entidades."
+#. Tag: para
+#: collection_mapping.xml:233
+#, no-c-format
+msgid ""
+"Collections may contain almost any other Hibernate type, including all basic "
+"types, custom types, components, and of course, references to other "
+"entities. This is an important distinction: an object in a collection might "
+"be handled with \"value\" semantics (its life cycle fully depends on the "
+"collection owner) or it might be a reference to another entity, with its own "
+"life cycle. In the latter case, only the \"link\" between the two objects is "
+"considered to be state held by the collection."
+msgstr ""
+"Las colecciones pueden contener casi cualquier tipo de Hibernate, incluyendo "
+"todos los tipos básicos, componentes, y por supuesto, referencias a otras "
+"entidades. Esta es una distinción importante: un objeto en una colección "
+"puede ser manejado con una semántica de \"valor\" (su ciclo de vida depende "
+"completamente del propietario de la colección) o podría ser una referencia a "
+"otra entidad, con su propio ciclo de vida. En el último caso, sólo el estado "
+"del \"enlace\" entre los dos objetos se considera mantenido por la colección."
 
-#: index.docbook:242
-msgid "The contained type is referred to as the <emphasis>collection element type</emphasis>. Collection elements are mapped by <literal>&lt;element&gt;</literal> or <literal>&lt;composite-element&gt;</literal>, or in the case of entity references, with <literal>&lt;one-to-many&gt;</literal> or <literal>&lt;many-to-many&gt;</literal>. The first two map elements with value semantics, the next two are used to map entity associations."
-msgstr "Colecciones indexadas"
+#. Tag: para
+#: collection_mapping.xml:242
+#, no-c-format
+msgid ""
+"The contained type is referred to as the <emphasis>collection element type</"
+"emphasis>. Collection elements are mapped by <literal>&lt;element&gt;</"
+"literal> or <literal>&lt;composite-element&gt;</literal>, or in the case of "
+"entity references, with <literal>&lt;one-to-many&gt;</literal> or "
+"<literal>&lt;many-to-many&gt;</literal>. The first two map elements with "
+"value semantics, the next two are used to map entity associations."
+msgstr ""
+"Se hace referencia al tipo contenido como el <emphasis>tipo de elemento de "
+"la colección</emphasis>. Los elementos de colección son mapeados por "
+"<literal>&lt;element&gt;</literal> o <literal>&lt;composite-element&gt;</"
+"literal>, o en el caso de referencias de entidades, con <literal>&lt;one-to-"
+"many&gt;</literal> o <literal>&lt;many-to-many&gt;</literal>. Las dos "
+"primeras mapean elementos con semántica de valor, los dos siguientes son "
+"usados para mapear asociaciones de entidades."
 
-#: index.docbook:254
+#. Tag: title
+#: collection_mapping.xml:254
+#, no-c-format
 msgid "Indexed collections"
-msgstr "Todos los mapeos de colecci&#x00f3;n, excepto aquellos con sem&#x00e1;ntica de set o bag, necesitan una <emphasis>columna &#x00ed;ndice</emphasis> en la tabla de colecci&#x00f3;n, una columna que mapea a un &#x00ed;ndice de array, o &#x00ed;ndice de <literal>List</literal>, o clave de <literal>Map</literal>. El &#x00ed;ndice de un <literal>Map</literal> puede ser de cualquier tipo b&#x00e1;sico, mapeado con <literal>&lt;map-key&gt;</literal>, o puede ser una referencia de entidad, mapeada con <literal>&lt;map-key-many-to-many&gt;</literal>, o puede ser un tipo compuesto, mapeado con <literal>&lt;composite-map-key&gt;</literal>. El &#x00ed;ndice de un array o lista es siempre de tipo <literal>integer</literal> y se mapea usando el elemento <literal>&lt;list-index&gt;</literal>. La columna mapeada contiene enteros secuenciales (numerados desde cero, por defecto)."
+msgstr "Colecciones indexadas"
 
-#: index.docbook:256
-msgid "All collection mappings, except those with set and bag semantics, need an <emphasis>index column</emphasis> in the collection table - a column that maps to an array index, or <literal>List</literal> index, or <literal>Map</literal> key. The index of a <literal>Map</literal> may be of any basic type, mapped with <literal>&lt;map-key&gt;</literal>, it may be an entity reference mapped with <literal>&lt;map-key-many-to-many&gt;</literal>, or it may be a composite type, mapped with <literal>&lt;composite-map-key&gt;</literal>. The index of an array or list is always of type <literal>integer</literal> and is mapped using the <literal>&lt;list-index&gt;</literal> element. The mapped column contains sequential integers (numbered from zero, by default)."
+#. Tag: para
+#: collection_mapping.xml:256
+#, no-c-format
+msgid ""
+"All collection mappings, except those with set and bag semantics, need an "
+"<emphasis>index column</emphasis> in the collection table - a column that "
+"maps to an array index, or <literal>List</literal> index, or <literal>Map</"
+"literal> key. The index of a <literal>Map</literal> may be of any basic "
+"type, mapped with <literal>&lt;map-key&gt;</literal>, it may be an entity "
+"reference mapped with <literal>&lt;map-key-many-to-many&gt;</literal>, or it "
+"may be a composite type, mapped with <literal>&lt;composite-map-key&gt;</"
+"literal>. The index of an array or list is always of type <literal>integer</"
+"literal> and is mapped using the <literal>&lt;list-index&gt;</literal> "
+"element. The mapped column contains sequential integers (numbered from zero, "
+"by default)."
 msgstr ""
-      "<programlistingco> <areaspec> <area id=\"index1\" coords=\"2 45\"/> <area id=\"index2\" coords=\"3 45\"/> </areaspec> <programlisting><![CDATA[<list-index \n"
-      "        column=\"column_name\"\n"
-      "        base=\"0|1|...\"/>]]></programlisting> <calloutlist> <callout arearefs=\"index1\"> <para> <literal>column_name</literal> (requerido): El nombre de la columna que tiene los valores &#x00ed;ndice de la colecci&#x00f3;n. </para> </callout> <callout arearefs=\"index1\"> <para> <literal>base</literal> (opcional, por defecto a <literal>0</literal>): El valor de la columna &#x00ed;ndice que corresponde al primer elemento de la lista o array. </para> </callout> </calloutlist> </programlistingco> <programlistingco> <areaspec> <area id=\"mapkey1\" coords=\"2 45\"/> <area id=\"mapkey2\" coords=\"3 45\"/> <area id=\"mapkey3\" coords=\"4 45\"/> </areaspec> <programlisting><![CDATA[<map-key \n"
-      "        column=\"column_name\"\n"
-      "        formula=\"any SQL expression\"\n"
-      "        type=\"type_name\"\n"
-      "        node=\"@attribute-name\"\n"
-      "        length=\"N\"/>]]></programlisting> <calloutlist> <callout arearefs=\"mapkey1\"> <para> <literal>column</literal> (opcional): El nombre de la columna que tiene los valores &#x00ed;ndice de la colecci&#x00f3;n. </para> </callout> <callout arearefs=\"mapkey2\"> <para> <literal>formula</literal> (opcional): Una f&#x00f3;rmula SQL usada para evaluar la clave del mapa. </para> </callout> <callout arearefs=\"mapkey3\"> <para> <literal>type</literal> (requerido): el tipo de las claves del mapa. </para> </callout> </calloutlist> </programlistingco> <programlistingco> <areaspec> <area id=\"indexmanytomany1\" coords=\"2 45\"/> <area id=\"indexmanytomany2\" coords=\"3 45\"/> <area id=\"indexmanytomany3\" coords=\"3 45\"/> </areaspec> <programlisting><![CDATA[<map-key-many-to-many\n"
-      "        column=\"column_name\"\n"
-      "        formula=\"any SQL expression\"\n"
-      "        class=\"ClassName\"\n"
-      "/>]]></programlisting> <calloutlist> <callout arearefs=\"indexmanytomany1\"> <para> <literal>column</literal> (opcional): El nombre de la columna clave for&#x00e1;nea para los valores &#x00ed;ndice de la colecci&#x00f3;n. </para> </callout> <callout arearefs=\"indexmanytomany2\"> <para> <literal>formula</literal> (opcional): Una f&#x00f3;rmula SQL usada para evaluar la clave for&#x00e1;nea de la clave del mapa. </para> </callout> <callout arearefs=\"indexmanytomany3\"> <para> <literal>class</literal> (requerido): La clase de entidad usada como clave del mapa. </para> </callout> </calloutlist> </programlistingco>"
+"Todos los mapeos de colección, excepto aquellos con semántica de set o bag, "
+"necesitan una <emphasis>columna índice</emphasis> en la tabla de colección, "
+"una columna que mapea a un índice de array, o índice de <literal>List</"
+"literal>, o clave de <literal>Map</literal>. El índice de un <literal>Map</"
+"literal> puede ser de cualquier tipo básico, mapeado con <literal>&lt;map-"
+"key&gt;</literal>, o puede ser una referencia de entidad, mapeada con "
+"<literal>&lt;map-key-many-to-many&gt;</literal>, o puede ser un tipo "
+"compuesto, mapeado con <literal>&lt;composite-map-key&gt;</literal>. El "
+"índice de un array o lista es siempre de tipo <literal>integer</literal> y "
+"se mapea usando el elemento <literal>&lt;list-index&gt;</literal>. La "
+"columna mapeada contiene enteros secuenciales (numerados desde cero, por "
+"defecto)."
 
-#: index.docbook:267
+#. Tag: sect2
+#: collection_mapping.xml:267
+#, no-c-format
 msgid ""
-      "<programlistingco> <areaspec> <area id=\"index1\" coords=\"2 45\"/> <area id=\"index2\" coords=\"3 45\"/> </areaspec> <programlisting><![CDATA[<list-index \n"
-      "        column=\"column_name\"\n"
-      "        base=\"0|1|...\"/>]]></programlisting> <calloutlist> <callout arearefs=\"index1\"> <para> <literal>column_name</literal> (required): The name of the column holding the collection index values. </para> </callout> <callout arearefs=\"index1\"> <para> <literal>base</literal> (optional, defaults to <literal>0</literal>): The value of the index column that corresponds to the first element of the list or array. </para> </callout> </calloutlist> </programlistingco> <programlistingco> <areaspec> <area id=\"mapkey1\" coords=\"2 45\"/> <area id=\"mapkey2\" coords=\"3 45\"/> <area id=\"mapkey3\" coords=\"4 45\"/> </areaspec> <programlisting><![CDATA[<map-key \n"
-      "        column=\"column_name\"\n"
-      "        formula=\"any SQL expression\"\n"
-      "        type=\"type_name\"\n"
-      "        node=\"@attribute-name\"\n"
-      "        length=\"N\"/>]]></programlisting> <calloutlist> <callout arearefs=\"mapkey1\"> <para> <literal>column</literal> (optional): The name of the column holding the collection index values. </para> </callout> <callout arearefs=\"mapkey2\"> <para> <literal>formula</literal> (optional): A SQL formula used to evaluate the key of the map. </para> </callout> <callout arearefs=\"mapkey3\"> <para> <literal>type</literal> (reguired): The type of the map keys. </para> </callout> </calloutlist> </programlistingco> <programlistingco> <areaspec> <area id=\"indexmanytomany1\" coords=\"2 45\"/> <area id=\"indexmanytomany2\" coords=\"3 45\"/> <area id=\"indexmanytomany3\" coords=\"3 45\"/> </areaspec> <programlisting><![CDATA[<map-key-many-to-many\n"
-      "        column=\"column_name\"\n"
-      "        formula=\"any SQL expression\"\n"
-      "        class=\"ClassName\"\n"
-      "/>]]></programlisting> <calloutlist> <callout arearefs=\"indexmanytomany1\"> <para> <literal>column</literal> (optional): The name of the foreign key column for the collection index values. </para> </callout> <callout arearefs=\"indexmanytomany2\"> <para> <literal>formula</literal> (optional): A SQL formula used to evaluate the foreign key of the map key. </para> </callout> <callout arearefs=\"indexmanytomany3\"> <para> <literal>class</literal> (required): The entity class used as the map key. </para> </callout> </calloutlist> </programlistingco>"
-msgstr "Si tu tabla no tiene una columna &#x00ed;ndice, y deseas a&#x00fa;n usar <literal>List</literal> como tipo de propiedad, debes mapear la propiedad como un <emphasis>&lt;bag&gt;</emphasis> de Hibernate. Un bag (bolsa) no retiene su orden al ser recuperado de la base de datos, pero puede ser ordenado o clasificado opcionalmente."
+"<programlistingco> <areaspec> <area id=\"index1\" coords=\"2 45\"/> <area id="
+"\"index2\" coords=\"3 45\"/> </areaspec> <programlisting><![CDATA[<list-"
+"index \n"
+"        column=\"column_name\"\n"
+"        base=\"0|1|...\"/>]]></programlisting> <calloutlist> <callout "
+"arearefs=\"index1\"> <para> <literal>column_name</literal> (required): The "
+"name of the column holding the collection index values. </para> </callout> "
+"<callout arearefs=\"index1\"> <para> <literal>base</literal> (optional, "
+"defaults to <literal>0</literal>): The value of the index column that "
+"corresponds to the first element of the list or array. </para> </callout> </"
+"calloutlist> </programlistingco> <programlistingco> <areaspec> <area id="
+"\"mapkey1\" coords=\"2 45\"/> <area id=\"mapkey2\" coords=\"3 45\"/> <area "
+"id=\"mapkey3\" coords=\"4 45\"/> </areaspec> <programlisting><![CDATA[<map-"
+"key \n"
+"        column=\"column_name\"\n"
+"        formula=\"any SQL expression\"\n"
+"        type=\"type_name\"\n"
+"        node=\"@attribute-name\"\n"
+"        length=\"N\"/>]]></programlisting> <calloutlist> <callout arearefs="
+"\"mapkey1\"> <para> <literal>column</literal> (optional): The name of the "
+"column holding the collection index values. </para> </callout> <callout "
+"arearefs=\"mapkey2\"> <para> <literal>formula</literal> (optional): A SQL "
+"formula used to evaluate the key of the map. </para> </callout> <callout "
+"arearefs=\"mapkey3\"> <para> <literal>type</literal> (reguired): The type of "
+"the map keys. </para> </callout> </calloutlist> </programlistingco> "
+"<programlistingco> <areaspec> <area id=\"indexmanytomany1\" coords=\"2 45\"/"
+"> <area id=\"indexmanytomany2\" coords=\"3 45\"/> <area id=\"indexmanytomany3"
+"\" coords=\"3 45\"/> </areaspec> <programlisting><![CDATA[<map-key-many-to-"
+"many\n"
+"        column=\"column_name\"\n"
+"        formula=\"any SQL expression\"\n"
+"        class=\"ClassName\"\n"
+"/>]]></programlisting> <calloutlist> <callout arearefs=\"indexmanytomany1\"> "
+"<para> <literal>column</literal> (optional): The name of the foreign key "
+"column for the collection index values. </para> </callout> <callout arearefs="
+"\"indexmanytomany2\"> <para> <literal>formula</literal> (optional): A SQL "
+"formula used to evaluate the foreign key of the map key. </para> </callout> "
+"<callout arearefs=\"indexmanytomany3\"> <para> <literal>class</literal> "
+"(required): The entity class used as the map key. </para> </callout> </"
+"calloutlist> </programlistingco>"
+msgstr ""
 
-#: index.docbook:348
-msgid "If your table doesn't have an index column, and you still wish to use <literal>List</literal> as the property type, you should map the property as a Hibernate <emphasis>&lt;bag&gt;</emphasis>. A bag does not retain its order when it is retrieved from the database, but it may be optionally sorted or ordered."
-msgstr "Hay absolutamente un rango de mapeos que pueden ser generados para colecciones, cubriendo muchos modelos relacionales comunes. Te sugerimos que experimentes con la herramienta de generaci&#x00f3;n de esquemas para obtener una idea de c&#x00f3;mo varias declaraciones de mapeo se traducen a tablas de base de datos."
+#. Tag: para
+#: collection_mapping.xml:348
+#, no-c-format
+msgid ""
+"If your table doesn't have an index column, and you still wish to use "
+"<literal>List</literal> as the property type, you should map the property as "
+"a Hibernate <emphasis>&lt;bag&gt;</emphasis>. A bag does not retain its "
+"order when it is retrieved from the database, but it may be optionally "
+"sorted or ordered."
+msgstr ""
+"Si tu tabla no tiene una columna índice, y deseas aún usar <literal>List</"
+"literal> como tipo de propiedad, debes mapear la propiedad como un "
+"<emphasis>&lt;bag&gt;</emphasis> de Hibernate. Un bag (bolsa) no retiene su "
+"orden al ser recuperado de la base de datos, pero puede ser ordenado o "
+"clasificado opcionalmente."
 
-#: index.docbook:357
-msgid "There are quite a range of mappings that can be generated for collections, covering many common relational models. We suggest you experiment with the schema generation tool to get a feeling for how various mapping declarations translate to database tables."
-msgstr "Colecciones de valores y asociaciones muchos-a-muchos"
+#. Tag: para
+#: collection_mapping.xml:357
+#, no-c-format
+msgid ""
+"There are quite a range of mappings that can be generated for collections, "
+"covering many common relational models. We suggest you experiment with the "
+"schema generation tool to get a feeling for how various mapping declarations "
+"translate to database tables."
+msgstr ""
+"Hay absolutamente un rango de mapeos que pueden ser generados para "
+"colecciones, cubriendo muchos modelos relacionales comunes. Te sugerimos que "
+"experimentes con la herramienta de generación de esquemas para obtener una "
+"idea de cómo varias declaraciones de mapeo se traducen a tablas de base de "
+"datos."
 
-#: index.docbook:364
+#. Tag: title
+#: collection_mapping.xml:364
+#, no-c-format
 msgid "Collections of values and many-to-many associations"
-msgstr "Cualquier colecci&#x00f3;n de valores o asociaci&#x00f3;n muchos a muchos requiere una <emphasis>tabla de colecci&#x00f3;n</emphasis> dedicada con una columna o columnas de clave for&#x00e1;nea, <emphasis>columna de elemento de colecci&#x00f3;n</emphasis> o columnas y posiblemente una columna o columnas &#x00ed;ndice."
+msgstr "Colecciones de valores y asociaciones muchos-a-muchos"
 
-#: index.docbook:366
-msgid "Any collection of values or many-to-many association requires a dedicated <emphasis>collection table</emphasis> with a foreign key column or columns, <emphasis>collection element column</emphasis> or columns and possibly an index column or columns."
-msgstr "Para una colecci&#x00f3;n de valores, usamos la etiqueta <literal>&lt;element&gt;</literal>."
+#. Tag: para
+#: collection_mapping.xml:366
+#, no-c-format
+msgid ""
+"Any collection of values or many-to-many association requires a dedicated "
+"<emphasis>collection table</emphasis> with a foreign key column or columns, "
+"<emphasis>collection element column</emphasis> or columns and possibly an "
+"index column or columns."
+msgstr ""
+"Cualquier colección de valores o asociación muchos a muchos requiere una "
+"<emphasis>tabla de colección</emphasis> dedicada con una columna o columnas "
+"de clave foránea, <emphasis>columna de elemento de colección</emphasis> o "
+"columnas y posiblemente una columna o columnas índice."
 
-#: index.docbook:373
-msgid "For a collection of values, we use the <literal>&lt;element&gt;</literal> tag."
+#. Tag: para
+#: collection_mapping.xml:373
+#, no-c-format
+msgid ""
+"For a collection of values, we use the <literal>&lt;element&gt;</literal> "
+"tag."
 msgstr ""
-      "<programlistingco> <areaspec> <area id=\"element1b\" coords=\"2 50\"/> <area id=\"element2b\" coords=\"3 50\"/> <area id=\"element3b\" coords=\"4 50\"/> </areaspec> <programlisting><![CDATA[<element\n"
-      "        column=\"column_name\"\n"
-      "        formula=\"any SQL expression\"\n"
-      "        type=\"typename\"\n"
-      "        length=\"L\"\n"
-      "        precision=\"P\"\n"
-      "        scale=\"S\"\n"
-      "        not-null=\"true|false\"\n"
-      "        unique=\"true|false\"\n"
-      "        node=\"element-name\"\n"
-      "/>]]></programlisting> <calloutlist> <callout arearefs=\"element1b\"> <para> <literal>column</literal> (opcional): El nombre de la columna que tiene los valores de los elementos de la colecci&#x00f3;n. </para> </callout> <callout arearefs=\"element2b\"> <para> <literal>formula</literal> (opcional): Una f&#x00f3;rmula SQL usada para evaluar el elemento. </para> </callout> <callout arearefs=\"element3b\"> <para> <literal>type</literal> (requerido): El tipo del elemento de colecci&#x00f3;n. </para> </callout> </calloutlist> </programlistingco> <para> Una <emphasis>asociaci&#x00f3;n muchos-a-muchos</emphasis> se especifica usando el elemento <literal>&lt;many-to-many&gt;</literal>. </para> <programlistingco> <areaspec> <area id=\"manytomany1\" coords=\"2 60\"/> <area id=\"manytomany2\" coords=\"3 60\"/> <area id=\"manytomany3\" coords=\"4 60\"/> <area id=\"manytomany4\" coords=\"5 60\"/> <area id=\"manytomany5\" coords=\"6 60\"/> <area id=\"manytomany6\" coords=\"7 60\"/!
 > <area id=\"manytomany7\" coords=\"8 60\"/> </areaspec> <programlisting><![CDATA[<many-to-many\n"
-      "        column=\"column_name\"\n"
-      "        formula=\"any SQL expression\"\n"
-      "        class=\"ClassName\"\n"
-      "        fetch=\"select|join\"\n"
-      "        unique=\"true|false\"\n"
-      "        not-found=\"ignore|exception\"\n"
-      "        entity-name=\"EntityName\"\n"
-      "        node=\"element-name\"\n"
-      "        embed-xml=\"true|false\"\n"
-      "    />]]></programlisting> <calloutlist> <callout arearefs=\"manytomany1\"> <para> <literal>column</literal> (opcional): El nombre de la columna de clave for&#x00e1;nea del elemento. </para> </callout> <callout arearefs=\"manytomany2\"> <para> <literal>formula</literal> (opcional): Una f&#x00f3;rmula SQL opcional usada para evaluar el valor de clave for&#x00e1;nea del elemento. </para> </callout> <callout arearefs=\"manytomany3\"> <para> <literal>class</literal> (requerido): El nombre de la clase asociada. </para> </callout> <callout arearefs=\"manytomany4\"> <para> <literal>fetch</literal> (opcional - por defecto a <literal>join</literal>): habilita la recuperaci&#x00f3;n por uni&#x00f3;n externa o selecci&#x00f3;n secuencial para esta asociaci&#x00f3;n. Este es un caso especial; para una recuperaci&#x00f3;n completamente temprana (en un solo <literal>SELECT</literal>) de una entidad y sus relaciones muchos-a-muchos a otras entidades, deber&#x00ed;as habilitar la re!
 cuperaci&#x00f3;n <literal>join</literal> no s&#x00f3;lo de la colecci&#x00f3;n misma, sino tambi&#x00e9;n con este atributo en el elemento anidado <literal>&lt;many-to-many&gt;</literal>. </para> </callout> <callout arearefs=\"manytomany5\"> <para> <literal>unique</literal> (opcional): Habilita la generaci&#x00f3;n DDL de una restricci&#x00f3;n de unicidad para la columna clave for&#x00e1;nea. Esto hace la multiplicidad de la asociaci&#x00f3;n efectivamente uno a muchos. </para> </callout> <callout arearefs=\"manytomany6\"> <para> <literal>not-found</literal> (opcional - por defecto a <literal>exception</literal>): Especifica c&#x00f3;mo ser&#x00e1;n manejadas las claves for&#x00e1;neas que referencian filas perdidas: <literal>ignore</literal> tratar&#x00e1; una fila perdida como una asociaci&#x00f3;n nula. </para> </callout> <callout arearefs=\"manytomany7\"> <para> <literal>entity-name</literal> (opcional): El nombre de entidad de la clase asociada, como una alternativa !
 a <literal>class</literal>. </para> </callout> </calloutlist> </progra
mlistingco>"
+"Para una colección de valores, usamos la etiqueta <literal>&lt;element&gt;</"
+"literal>."
 
-#: index.docbook:375
+#. Tag: sect2
+#: collection_mapping.xml:375
+#, no-c-format
 msgid ""
-      "<programlistingco> <areaspec> <area id=\"element1b\" coords=\"2 50\"/> <area id=\"element2b\" coords=\"3 50\"/> <area id=\"element3b\" coords=\"4 50\"/> </areaspec> <programlisting><![CDATA[<element\n"
-      "        column=\"column_name\"\n"
-      "        formula=\"any SQL expression\"\n"
-      "        type=\"typename\"\n"
-      "        length=\"L\"\n"
-      "        precision=\"P\"\n"
-      "        scale=\"S\"\n"
-      "        not-null=\"true|false\"\n"
-      "        unique=\"true|false\"\n"
-      "        node=\"element-name\"\n"
-      "/>]]></programlisting> <calloutlist> <callout arearefs=\"element1b\"> <para> <literal>column</literal> (optional): The name of the column holding the collection element values. </para> </callout> <callout arearefs=\"element2b\"> <para> <literal>formula</literal> (optional): An SQL formula used to evaluate the element. </para> </callout> <callout arearefs=\"element3b\"> <para> <literal>type</literal> (required): The type of the collection element. </para> </callout> </calloutlist> </programlistingco> <para> A <emphasis>many-to-many association</emphasis> is specified using the <literal>&lt;many-to-many&gt;</literal> element. </para> <programlistingco> <areaspec> <area id=\"manytomany1\" coords=\"2 60\"/> <area id=\"manytomany2\" coords=\"3 60\"/> <area id=\"manytomany3\" coords=\"4 60\"/> <area id=\"manytomany4\" coords=\"5 60\"/> <area id=\"manytomany5\" coords=\"6 60\"/> <area id=\"manytomany6\" coords=\"7 60\"/> <area id=\"manytomany7\" coords=\"8 60\"/> <area id=\!
 "manytomany8\" coords=\"9 60\"/> </areaspec> <programlisting><![CDATA[<many-to-many\n"
-      "        column=\"column_name\"\n"
-      "        formula=\"any SQL expression\"\n"
-      "        class=\"ClassName\"\n"
-      "        fetch=\"select|join\"\n"
-      "        unique=\"true|false\"\n"
-      "        not-found=\"ignore|exception\"\n"
-      "        entity-name=\"EntityName\"\n"
-      "        property-ref=\"propertyNameFromAssociatedClass\"\n"
-      "        node=\"element-name\"\n"
-      "        embed-xml=\"true|false\"\n"
-      "    />]]></programlisting> <calloutlist> <callout arearefs=\"manytomany1\"> <para> <literal>column</literal> (optional): The name of the element foreign key column. </para> </callout> <callout arearefs=\"manytomany2\"> <para> <literal>formula</literal> (optional): An SQL formula used to evaluate the element foreign key value. </para> </callout> <callout arearefs=\"manytomany3\"> <para> <literal>class</literal> (required): The name of the associated class. </para> </callout> <callout arearefs=\"manytomany4\"> <para> <literal>fetch</literal> (optional - defaults to <literal>join</literal>): enables outer-join or sequential select fetching for this association. This is a special case; for full eager fetching (in a single <literal>SELECT</literal>) of an entity and its many-to-many relationships to other entities, you would enable <literal>join</literal> fetching not only of the collection itself, but also with this attribute on the <literal>&lt;many-to-many&gt;</literal!
 > nested element. </para> </callout> <callout arearefs=\"manytomany5\"> <para> <literal>unique</literal> (optional): Enable the DDL generation of a unique constraint for the foreign-key column. This makes the association multiplicity effectively one to many. </para> </callout> <callout arearefs=\"manytomany6\"> <para> <literal>not-found</literal> (optional - defaults to <literal>exception</literal>): Specifies how foreign keys that reference missing rows will be handled: <literal>ignore</literal> will treat a missing row as a null association. </para> </callout> <callout arearefs=\"manytomany7\"> <para> <literal>entity-name</literal> (optional): The entity name of the associated class, as an alternative to <literal>class</literal>. </para> </callout> <callout arearefs=\"manytomany8\"> <para> <literal>property-ref</literal>: (optional) The name of a property of the associated class that is joined to this foreign key. If not specified, the primary key of the associated class !
 is used. </para> </callout> </calloutlist> </programlistingco>"
+"<programlistingco> <areaspec> <area id=\"element1b\" coords=\"2 50\"/> <area "
+"id=\"element2b\" coords=\"3 50\"/> <area id=\"element3b\" coords=\"4 50\"/> "
+"</areaspec> <programlisting><![CDATA[<element\n"
+"        column=\"column_name\"\n"
+"        formula=\"any SQL expression\"\n"
+"        type=\"typename\"\n"
+"        length=\"L\"\n"
+"        precision=\"P\"\n"
+"        scale=\"S\"\n"
+"        not-null=\"true|false\"\n"
+"        unique=\"true|false\"\n"
+"        node=\"element-name\"\n"
+"/>]]></programlisting> <calloutlist> <callout arearefs=\"element1b\"> <para> "
+"<literal>column</literal> (optional): The name of the column holding the "
+"collection element values. </para> </callout> <callout arearefs=\"element2b"
+"\"> <para> <literal>formula</literal> (optional): An SQL formula used to "
+"evaluate the element. </para> </callout> <callout arearefs=\"element3b\"> "
+"<para> <literal>type</literal> (required): The type of the collection "
+"element. </para> </callout> </calloutlist> </programlistingco> <para> A "
+"<emphasis>many-to-many association</emphasis> is specified using the "
+"<literal>&lt;many-to-many&gt;</literal> element. </para> <programlistingco> "
+"<areaspec> <area id=\"manytomany1\" coords=\"2 60\"/> <area id=\"manytomany2"
+"\" coords=\"3 60\"/> <area id=\"manytomany3\" coords=\"4 60\"/> <area id="
+"\"manytomany4\" coords=\"5 60\"/> <area id=\"manytomany5\" coords=\"6 60\"/> "
+"<area id=\"manytomany6\" coords=\"7 60\"/> <area id=\"manytomany7\" coords="
+"\"8 60\"/> <area id=\"manytomany8\" coords=\"9 60\"/> </areaspec> "
+"<programlisting><![CDATA[<many-to-many\n"
+"        column=\"column_name\"\n"
+"        formula=\"any SQL expression\"\n"
+"        class=\"ClassName\"\n"
+"        fetch=\"select|join\"\n"
+"        unique=\"true|false\"\n"
+"        not-found=\"ignore|exception\"\n"
+"        entity-name=\"EntityName\"\n"
+"        property-ref=\"propertyNameFromAssociatedClass\"\n"
+"        node=\"element-name\"\n"
+"        embed-xml=\"true|false\"\n"
+"    />]]></programlisting> <calloutlist> <callout arearefs=\"manytomany1\"> "
+"<para> <literal>column</literal> (optional): The name of the element foreign "
+"key column. </para> </callout> <callout arearefs=\"manytomany2\"> <para> "
+"<literal>formula</literal> (optional): An SQL formula used to evaluate the "
+"element foreign key value. </para> </callout> <callout arearefs=\"manytomany3"
+"\"> <para> <literal>class</literal> (required): The name of the associated "
+"class. </para> </callout> <callout arearefs=\"manytomany4\"> <para> "
+"<literal>fetch</literal> (optional - defaults to <literal>join</literal>): "
+"enables outer-join or sequential select fetching for this association. This "
+"is a special case; for full eager fetching (in a single <literal>SELECT</"
+"literal>) of an entity and its many-to-many relationships to other entities, "
+"you would enable <literal>join</literal> fetching not only of the collection "
+"itself, but also with this attribute on the <literal>&lt;many-to-many&gt;</"
+"literal> nested element. </para> </callout> <callout arearefs=\"manytomany5"
+"\"> <para> <literal>unique</literal> (optional): Enable the DDL generation "
+"of a unique constraint for the foreign-key column. This makes the "
+"association multiplicity effectively one to many. </para> </callout> "
+"<callout arearefs=\"manytomany6\"> <para> <literal>not-found</literal> "
+"(optional - defaults to <literal>exception</literal>): Specifies how foreign "
+"keys that reference missing rows will be handled: <literal>ignore</literal> "
+"will treat a missing row as a null association. </para> </callout> <callout "
+"arearefs=\"manytomany7\"> <para> <literal>entity-name</literal> (optional): "
+"The entity name of the associated class, as an alternative to "
+"<literal>class</literal>. </para> </callout> <callout arearefs=\"manytomany8"
+"\"> <para> <literal>property-ref</literal>: (optional) The name of a "
+"property of the associated class that is joined to this foreign key. If not "
+"specified, the primary key of the associated class is used. </para> </"
+"callout> </calloutlist> </programlistingco>"
+msgstr ""
+
+#. Tag: para
+#: collection_mapping.xml:480
+#, no-c-format
+msgid "Some examples, first, a set of strings:"
 msgstr "Algunos ejemplos, primero, un conjunto de cadenas:"
 
-#: index.docbook:480
-msgid "Some examples, first, a set of strings:"
+#. Tag: programlisting
+#: collection_mapping.xml:484
+#, no-c-format
+msgid ""
+"<![CDATA[<set name=\"names\" table=\"person_names\">\n"
+"    <key column=\"person_id\"/>\n"
+"    <element column=\"person_name\" type=\"string\"/>\n"
+"</set>]]>"
 msgstr ""
-      "<![CDATA[<set name=\"names\" table=\"person_names\">\n"
-      "    <key column=\"person_id\"/>\n"
-      "    <element column=\"person_name\" type=\"string\"/>\n"
-      "</set>]]>"
 
-#: index.docbook:484
+#. Tag: para
+#: collection_mapping.xml:486
+#, no-c-format
 msgid ""
-      "<![CDATA[<set name=\"names\" table=\"person_names\">\n"
-      "    <key column=\"person_id\"/>\n"
-      "    <element column=\"person_name\" type=\"string\"/>\n"
-      "</set>]]>"
-msgstr "Un bag conteniendo enteros (con un orden de iteraci&#x00f3;n determinado por el atributo <literal>order-by</literal>):"
-
-#: index.docbook:486
-msgid "A bag containing integers (with an iteration order determined by the <literal>order-by</literal> attribute):"
+"A bag containing integers (with an iteration order determined by the "
+"<literal>order-by</literal> attribute):"
 msgstr ""
-      "<![CDATA[<bag name=\"sizes\" \n"
-      "        table=\"item_sizes\" \n"
-      "        order-by=\"size asc\">\n"
-      "    <key column=\"item_id\"/>\n"
-      "    <element column=\"size\" type=\"integer\"/>\n"
-      "</bag>]]>"
+"Un bag conteniendo enteros (con un orden de iteración determinado por el "
+"atributo <literal>order-by</literal>):"
 
-#: index.docbook:491
+#. Tag: programlisting
+#: collection_mapping.xml:491
+#, no-c-format
 msgid ""
-      "<![CDATA[<bag name=\"sizes\" \n"
-      "        table=\"item_sizes\" \n"
-      "        order-by=\"size asc\">\n"
-      "    <key column=\"item_id\"/>\n"
-      "    <element column=\"size\" type=\"integer\"/>\n"
-      "</bag>]]>"
-msgstr "Un array de entidades - en este caso, una asociaci&#x00f3;n muchos a muchos:"
+"<![CDATA[<bag name=\"sizes\" \n"
+"        table=\"item_sizes\" \n"
+"        order-by=\"size asc\">\n"
+"    <key column=\"item_id\"/>\n"
+"    <element column=\"size\" type=\"integer\"/>\n"
+"</bag>]]>"
+msgstr ""
 
-#: index.docbook:493
+#. Tag: para
+#: collection_mapping.xml:493
+#, no-c-format
 msgid "An array of entities - in this case, a many to many association:"
-msgstr ""
-      "<![CDATA[<array name=\"addresses\" \n"
-      "        table=\"PersonAddress\" \n"
-      "        cascade=\"persist\">\n"
-      "    <key column=\"personId\"/>\n"
-      "    <list-index column=\"sortOrder\"/>\n"
-      "    <many-to-many column=\"addressId\" class=\"Address\"/>\n"
-      "</array>]]>"
+msgstr "Un array de entidades - en este caso, una asociación muchos a muchos:"
 
-#: index.docbook:497
+#. Tag: programlisting
+#: collection_mapping.xml:497
+#, no-c-format
 msgid ""
-      "<![CDATA[<array name=\"addresses\" \n"
-      "        table=\"PersonAddress\" \n"
-      "        cascade=\"persist\">\n"
-      "    <key column=\"personId\"/>\n"
-      "    <list-index column=\"sortOrder\"/>\n"
-      "    <many-to-many column=\"addressId\" class=\"Address\"/>\n"
-      "</array>]]>"
-msgstr "Un mapa de &#x00ed;ndices de cadenas a fechas:"
+"<![CDATA[<array name=\"addresses\" \n"
+"        table=\"PersonAddress\" \n"
+"        cascade=\"persist\">\n"
+"    <key column=\"personId\"/>\n"
+"    <list-index column=\"sortOrder\"/>\n"
+"    <many-to-many column=\"addressId\" class=\"Address\"/>\n"
+"</array>]]>"
+msgstr ""
 
-#: index.docbook:499
+#. Tag: para
+#: collection_mapping.xml:499
+#, no-c-format
 msgid "A map from string indices to dates:"
-msgstr ""
-      "<![CDATA[<map name=\"holidays\" \n"
-      "        table=\"holidays\" \n"
-      "        schema=\"dbo\" \n"
-      "        order-by=\"hol_name asc\">\n"
-      "    <key column=\"id\"/>\n"
-      "    <map-key column=\"hol_name\" type=\"string\"/>\n"
-      "    <element column=\"hol_date\" type=\"date\"/>\n"
-      "</map>]]>"
+msgstr "Un mapa de índices de cadenas a fechas:"
 
-#: index.docbook:503
+#. Tag: programlisting
+#: collection_mapping.xml:503
+#, no-c-format
 msgid ""
-      "<![CDATA[<map name=\"holidays\" \n"
-      "        table=\"holidays\" \n"
-      "        schema=\"dbo\" \n"
-      "        order-by=\"hol_name asc\">\n"
-      "    <key column=\"id\"/>\n"
-      "    <map-key column=\"hol_name\" type=\"string\"/>\n"
-      "    <element column=\"hol_date\" type=\"date\"/>\n"
-      "</map>]]>"
-msgstr "Una lista de componentes (discutidos en el pr&#x00f3;ximo cap&#x00ed;tulo):"
+"<![CDATA[<map name=\"holidays\" \n"
+"        table=\"holidays\" \n"
+"        schema=\"dbo\" \n"
+"        order-by=\"hol_name asc\">\n"
+"    <key column=\"id\"/>\n"
+"    <map-key column=\"hol_name\" type=\"string\"/>\n"
+"    <element column=\"hol_date\" type=\"date\"/>\n"
+"</map>]]>"
+msgstr ""
 
-#: index.docbook:505
+#. Tag: para
+#: collection_mapping.xml:505
+#, no-c-format
 msgid "A list of components (discussed in the next chapter):"
-msgstr ""
-      "<![CDATA[<list name=\"carComponents\" \n"
-      "        table=\"CarComponents\">\n"
-      "    <key column=\"carId\"/>\n"
-      "    <list-index column=\"sortOrder\"/>\n"
-      "    <composite-element class=\"CarComponent\">\n"
-      "        <property name=\"price\"/>\n"
-      "        <property name=\"type\"/>\n"
-      "        <property name=\"serialNumber\" column=\"serialNum\"/>\n"
-      "    </composite-element>\n"
-      "</list>]]>"
+msgstr "Una lista de componentes (discutidos en el próximo capítulo):"
 
-#: index.docbook:509
+#. Tag: programlisting
+#: collection_mapping.xml:509
+#, no-c-format
 msgid ""
-      "<![CDATA[<list name=\"carComponents\" \n"
-      "        table=\"CarComponents\">\n"
-      "    <key column=\"carId\"/>\n"
-      "    <list-index column=\"sortOrder\"/>\n"
-      "    <composite-element class=\"CarComponent\">\n"
-      "        <property name=\"price\"/>\n"
-      "        <property name=\"type\"/>\n"
-      "        <property name=\"serialNumber\" column=\"serialNum\"/>\n"
-      "    </composite-element>\n"
-      "</list>]]>"
-msgstr "Asociaciones uno-a-muchos"
+"<![CDATA[<list name=\"carComponents\" \n"
+"        table=\"CarComponents\">\n"
+"    <key column=\"carId\"/>\n"
+"    <list-index column=\"sortOrder\"/>\n"
+"    <composite-element class=\"CarComponent\">\n"
+"        <property name=\"price\"/>\n"
+"        <property name=\"type\"/>\n"
+"        <property name=\"serialNumber\" column=\"serialNum\"/>\n"
+"    </composite-element>\n"
+"</list>]]>"
+msgstr ""
 
-#: index.docbook:514
+#. Tag: title
+#: collection_mapping.xml:514
+#, no-c-format
 msgid "One-to-many associations"
-msgstr "Una <emphasis>asociaci&#x00f3;n uno a muchos</emphasis> enlaza las tablas de dos clases por medio de una clave for&#x00e1;nea, sin intervenci&#x00f3;n de tabla de colecci&#x00f3;n alguna. Este mapeo pierde cierta sem&#x00e1;ntica de colecciones Java normales:"
+msgstr "Asociaciones uno-a-muchos"
 
-#: index.docbook:516
-msgid "A <emphasis>one to many association</emphasis> links the tables of two classes via a foreign key, with no intervening collection table. This mapping loses certain semantics of normal Java collections:"
-msgstr "Una instancia de la clase entidad contenida no puede pertenecer a m&#x00e1;s de una instancia de la colecci&#x00f3;n."
+#. Tag: para
+#: collection_mapping.xml:516
+#, no-c-format
+msgid ""
+"A <emphasis>one to many association</emphasis> links the tables of two "
+"classes via a foreign key, with no intervening collection table. This "
+"mapping loses certain semantics of normal Java collections:"
+msgstr ""
+"Una <emphasis>asociación uno a muchos</emphasis> enlaza las tablas de dos "
+"clases por medio de una clave foránea, sin intervención de tabla de "
+"colección alguna. Este mapeo pierde cierta semántica de colecciones Java "
+"normales:"
 
-#: index.docbook:524
-msgid "An instance of the contained entity class may not belong to more than one instance of the collection"
-msgstr "Una instancia de la clase entidad contenida no puede aparecer en m&#x00e1;s de un valor del &#x00ed;ndice de colecci&#x00f3;n."
+#. Tag: para
+#: collection_mapping.xml:524
+#, no-c-format
+msgid ""
+"An instance of the contained entity class may not belong to more than one "
+"instance of the collection"
+msgstr ""
+"Una instancia de la clase entidad contenida no puede pertenecer a más de una "
+"instancia de la colección."
 
-#: index.docbook:530
-msgid "An instance of the contained entity class may not appear at more than one value of the collection index"
-msgstr "Una asociaci&#x00f3;n de <literal>Product</literal> a <literal>Part</literal> requiere la existencia de una columna clave for&#x00e1;nea y posiblemente una columna &#x00ed;ndice a la tabla <literal>Part</literal>. Una etiqueta <literal>&lt;one-to-many&gt;</literal> indica que &#x00e9;sta es una asociaci&#x00f3;n uno a muchos."
+#. Tag: para
+#: collection_mapping.xml:530
+#, no-c-format
+msgid ""
+"An instance of the contained entity class may not appear at more than one "
+"value of the collection index"
+msgstr ""
+"Una instancia de la clase entidad contenida no puede aparecer en más de un "
+"valor del índice de colección."
 
-#: index.docbook:537
-msgid "An association from <literal>Product</literal> to <literal>Part</literal> requires existence of a foreign key column and possibly an index column to the <literal>Part</literal> table. A <literal>&lt;one-to-many&gt;</literal> tag indicates that this is a one to many association."
+#. Tag: para
+#: collection_mapping.xml:537
+#, no-c-format
+msgid ""
+"An association from <literal>Product</literal> to <literal>Part</literal> "
+"requires existence of a foreign key column and possibly an index column to "
+"the <literal>Part</literal> table. A <literal>&lt;one-to-many&gt;</literal> "
+"tag indicates that this is a one to many association."
 msgstr ""
-      "<![CDATA[<one-to-many \n"
-      "        class=\"ClassName\"\n"
-      "        not-found=\"ignore|exception\"\n"
-      "        entity-name=\"EntityName\"\n"
-      "        node=\"element-name\"\n"
-      "        embed-xml=\"true|false\"\n"
-      "    />]]>"
+"Una asociación de <literal>Product</literal> a <literal>Part</literal> "
+"requiere la existencia de una columna clave foránea y posiblemente una "
+"columna índice a la tabla <literal>Part</literal>. Una etiqueta <literal>&lt;"
+"one-to-many&gt;</literal> indica que ésta es una asociación uno a muchos."
 
-#: index.docbook:550
+#. Tag: programlisting
+#: collection_mapping.xml:550
+#, no-c-format
 msgid ""
-      "<![CDATA[<one-to-many \n"
-      "        class=\"ClassName\"\n"
-      "        not-found=\"ignore|exception\"\n"
-      "        entity-name=\"EntityName\"\n"
-      "        node=\"element-name\"\n"
-      "        embed-xml=\"true|false\"\n"
-      "    />]]>"
-msgstr "<literal>class</literal> (requerido): El nombre de la clase asociada."
+"<![CDATA[<one-to-many \n"
+"        class=\"ClassName\"\n"
+"        not-found=\"ignore|exception\"\n"
+"        entity-name=\"EntityName\"\n"
+"        node=\"element-name\"\n"
+"        embed-xml=\"true|false\"\n"
+"    />]]>"
+msgstr ""
 
-#: index.docbook:553
+#. Tag: para
+#: collection_mapping.xml:553
+#, no-c-format
 msgid "<literal>class</literal> (required): The name of the associated class."
-msgstr "<literal>not-found</literal> (opcional - por defecto a <literal>exception</literal>): Especifica c&#x00f3;mo ser&#x00e1;n manejados los identificadores en cach&#x00e9; que referencien filas perdidas: <literal>ignore</literal> tratar&#x00e1; una fila perdida como una asociaci&#x00f3;n nula."
+msgstr "<literal>class</literal> (requerido): El nombre de la clase asociada."
 
-#: index.docbook:558
-msgid "<literal>not-found</literal> (optional - defaults to <literal>exception</literal>): Specifies how cached identifiers that reference missing rows will be handled: <literal>ignore</literal> will treat a missing row as a null association."
-msgstr "<literal>entity-name</literal> (opcional): El nombre de entidad de la clase asociada, como una alternativa a <literal>class</literal>."
+#. Tag: para
+#: collection_mapping.xml:558
+#, no-c-format
+msgid ""
+"<literal>not-found</literal> (optional - defaults to <literal>exception</"
+"literal>): Specifies how cached identifiers that reference missing rows will "
+"be handled: <literal>ignore</literal> will treat a missing row as a null "
+"association."
+msgstr ""
+"<literal>not-found</literal> (opcional - por defecto a <literal>exception</"
+"literal>): Especifica cómo serán manejados los identificadores en caché que "
+"referencien filas perdidas: <literal>ignore</literal> tratará una fila "
+"perdida como una asociación nula."
 
-#: index.docbook:565
-msgid "<literal>entity-name</literal> (optional): The entity name of the associated class, as an alternative to <literal>class</literal>."
-msgstr "Observa que el elemento <literal>&lt;one-to-many&gt;</literal> no necesita declarar ninguna columna. Ni es necesario especificar el nombre de <literal>table</literal> en ning&#x00fa;n sitio."
+#. Tag: para
+#: collection_mapping.xml:565
+#, no-c-format
+msgid ""
+"<literal>entity-name</literal> (optional): The entity name of the associated "
+"class, as an alternative to <literal>class</literal>."
+msgstr ""
+"<literal>entity-name</literal> (opcional): El nombre de entidad de la clase "
+"asociada, como una alternativa a <literal>class</literal>."
 
-#: index.docbook:573
-msgid "Notice that the <literal>&lt;one-to-many&gt;</literal> element does not need to declare any columns. Nor is it necessary to specify the <literal>table</literal> name anywhere."
-msgstr "<emphasis>Nota muy importante:</emphasis> Si la columna clave for&#x00e1;nea de una asociaci&#x00f3;n <literal>&lt;one-to-many&gt;</literal> es declarada <literal>NOT NULL</literal>, debes declarar el mapeo de <literal>&lt;key&gt;</literal> <literal>not-null=\"true\"</literal> o <emphasis>usar una asociaci&#x00f3;n bidireccional</emphasis> con el mapeo de colecci&#x00f3;n marcado <literal>inverse=\"true\"</literal>. Ver la discusi&#x00f3;n sobre asociaciones bidireccionales m&#x00e1;s adelante en este cap&#x00ed;tulo."
+#. Tag: para
+#: collection_mapping.xml:573
+#, no-c-format
+msgid ""
+"Notice that the <literal>&lt;one-to-many&gt;</literal> element does not need "
+"to declare any columns. Nor is it necessary to specify the <literal>table</"
+"literal> name anywhere."
+msgstr ""
+"Observa que el elemento <literal>&lt;one-to-many&gt;</literal> no necesita "
+"declarar ninguna columna. Ni es necesario especificar el nombre de "
+"<literal>table</literal> en ningún sitio."
 
-#: index.docbook:579
-msgid "<emphasis>Very important note:</emphasis> If the foreign key column of a <literal>&lt;one-to-many&gt;</literal> association is declared <literal>NOT NULL</literal>, you must declare the <literal>&lt;key&gt;</literal> mapping <literal>not-null=\"true\"</literal> or <emphasis>use a bidirectional association</emphasis> with the collection mapping marked <literal>inverse=\"true\"</literal>. See the discussion of bidirectional associations later in this chapter."
-msgstr "Este ejemplo muestra un mapa de entidades <literal>Part</literal> por nombre (donde <literal>partName</literal> es una propiedad persistente de <literal>Part</literal>). Observa el uso de un &#x00ed;ndice basado en f&#x00f3;rmula."
+#. Tag: para
+#: collection_mapping.xml:579
+#, no-c-format
+msgid ""
+"<emphasis>Very important note:</emphasis> If the foreign key column of a "
+"<literal>&lt;one-to-many&gt;</literal> association is declared <literal>NOT "
+"NULL</literal>, you must declare the <literal>&lt;key&gt;</literal> mapping "
+"<literal>not-null=\"true\"</literal> or <emphasis>use a bidirectional "
+"association</emphasis> with the collection mapping marked <literal>inverse="
+"\"true\"</literal>. See the discussion of bidirectional associations later "
+"in this chapter."
+msgstr ""
+"<emphasis>Nota muy importante:</emphasis> Si la columna clave foránea de una "
+"asociación <literal>&lt;one-to-many&gt;</literal> es declarada <literal>NOT "
+"NULL</literal>, debes declarar el mapeo de <literal>&lt;key&gt;</"
+"literal><literal>not-null=\"true\"</literal> o <emphasis>usar una asociación "
+"bidireccional</emphasis> con el mapeo de colección marcado <literal>inverse="
+"\"true\"</literal>. Ver la discusión sobre asociaciones bidireccionales más "
+"adelante en este capítulo."
 
-#: index.docbook:588
-msgid "This example shows a map of <literal>Part</literal> entities by name (where <literal>partName</literal> is a persistent property of <literal>Part</literal>). Notice the use of a formula-based index."
+#. Tag: para
+#: collection_mapping.xml:588
+#, no-c-format
+msgid ""
+"This example shows a map of <literal>Part</literal> entities by name (where "
+"<literal>partName</literal> is a persistent property of <literal>Part</"
+"literal>). Notice the use of a formula-based index."
 msgstr ""
-      "<![CDATA[<map name=\"parts\"\n"
-      "        cascade=\"all\">\n"
-      "    <key column=\"productId\" not-null=\"true\"/>\n"
-      "    <map-key formula=\"partName\"/>\n"
-      "    <one-to-many class=\"Part\"/>\n"
-      "</map>]]>"
+"Este ejemplo muestra un mapa de entidades <literal>Part</literal> por nombre "
+"(donde <literal>partName</literal> es una propiedad persistente de "
+"<literal>Part</literal>). Observa el uso de un índice basado en fórmula."
 
-#: index.docbook:594
+#. Tag: programlisting
+#: collection_mapping.xml:594
+#, no-c-format
 msgid ""
-      "<![CDATA[<map name=\"parts\"\n"
-      "        cascade=\"all\">\n"
-      "    <key column=\"productId\" not-null=\"true\"/>\n"
-      "    <map-key formula=\"partName\"/>\n"
-      "    <one-to-many class=\"Part\"/>\n"
-      "</map>]]>"
-msgstr "Mapeos de colecci&#x00f3;n avanzados"
+"<![CDATA[<map name=\"parts\"\n"
+"        cascade=\"all\">\n"
+"    <key column=\"productId\" not-null=\"true\"/>\n"
+"    <map-key formula=\"partName\"/>\n"
+"    <one-to-many class=\"Part\"/>\n"
+"</map>]]>"
+msgstr ""
 
-#: index.docbook:600
+#. Tag: title
+#: collection_mapping.xml:600
+#, no-c-format
 msgid "Advanced collection mappings"
-msgstr "Colecciones ordenadas"
+msgstr "Mapeos de colección avanzados"
 
-#: index.docbook:603
+#. Tag: title
+#: collection_mapping.xml:603
+#, no-c-format
 msgid "Sorted collections"
-msgstr "Hibernate soporta colecciones implementando <literal>java.util.SortedMap</literal> y <literal>java.util.SortedSet</literal>. Debes especificar un comparador en el fichero de mapeo:"
+msgstr "Colecciones ordenadas"
 
-#: index.docbook:605
-msgid "Hibernate supports collections implementing <literal>java.util.SortedMap</literal> and <literal>java.util.SortedSet</literal>. You must specify a comparator in the mapping file:"
+#. Tag: para
+#: collection_mapping.xml:605
+#, no-c-format
+msgid ""
+"Hibernate supports collections implementing <literal>java.util.SortedMap</"
+"literal> and <literal>java.util.SortedSet</literal>. You must specify a "
+"comparator in the mapping file:"
 msgstr ""
-      "<![CDATA[<set name=\"aliases\" \n"
-      "            table=\"person_aliases\" \n"
-      "            sort=\"natural\">\n"
-      "    <key column=\"person\"/>\n"
-      "    <element column=\"name\" type=\"string\"/>\n"
-      "</set>\n"
-      "\n"
-      "<map name=\"holidays\" sort=\"my.custom.HolidayComparator\">\n"
-      "    <key column=\"year_id\"/>\n"
-      "    <map-key column=\"hol_name\" type=\"string\"/>\n"
-      "    <element column=\"hol_date\" type=\"date\"/>\n"
-      "</map>]]>"
+"Hibernate soporta colecciones implementando <literal>java.util.SortedMap</"
+"literal> y <literal>java.util.SortedSet</literal>. Debes especificar un "
+"comparador en el fichero de mapeo:"
 
-#: index.docbook:610
+#. Tag: programlisting
+#: collection_mapping.xml:610
+#, no-c-format
 msgid ""
-      "<![CDATA[<set name=\"aliases\" \n"
-      "            table=\"person_aliases\" \n"
-      "            sort=\"natural\">\n"
-      "    <key column=\"person\"/>\n"
-      "    <element column=\"name\" type=\"string\"/>\n"
-      "</set>\n"
-      "\n"
-      "<map name=\"holidays\" sort=\"my.custom.HolidayComparator\">\n"
-      "    <key column=\"year_id\"/>\n"
-      "    <map-key column=\"hol_name\" type=\"string\"/>\n"
-      "    <element column=\"hol_date\" type=\"date\"/>\n"
-      "</map>]]>"
-msgstr "Los valores permitidos del atributo <literal>sort</literal> son <literal>unsorted</literal>, <literal>natural</literal> y el nombre de una clase que implemente <literal>java.util.Comparator</literal>."
+"<![CDATA[<set name=\"aliases\" \n"
+"            table=\"person_aliases\" \n"
+"            sort=\"natural\">\n"
+"    <key column=\"person\"/>\n"
+"    <element column=\"name\" type=\"string\"/>\n"
+"</set>\n"
+"\n"
+"<map name=\"holidays\" sort=\"my.custom.HolidayComparator\">\n"
+"    <key column=\"year_id\"/>\n"
+"    <map-key column=\"hol_name\" type=\"string\"/>\n"
+"    <element column=\"hol_date\" type=\"date\"/>\n"
+"</map>]]>"
+msgstr ""
 
-#: index.docbook:612
-msgid "Allowed values of the <literal>sort</literal> attribute are <literal>unsorted</literal>, <literal>natural</literal> and the name of a class implementing <literal>java.util.Comparator</literal>."
-msgstr "Las colecciones ordenadas realmente se comportan como <literal>java.util.TreeSet</literal> o <literal>java.util.TreeMap</literal>."
+#. Tag: para
+#: collection_mapping.xml:612
+#, no-c-format
+msgid ""
+"Allowed values of the <literal>sort</literal> attribute are "
+"<literal>unsorted</literal>, <literal>natural</literal> and the name of a "
+"class implementing <literal>java.util.Comparator</literal>."
+msgstr ""
+"Los valores permitidos del atributo <literal>sort</literal> son "
+"<literal>unsorted</literal>, <literal>natural</literal> y el nombre de una "
+"clase que implemente <literal>java.util.Comparator</literal>."
 
-#: index.docbook:618
-msgid "Sorted collections actually behave like <literal>java.util.TreeSet</literal> or <literal>java.util.TreeMap</literal>."
-msgstr "Si quieres que la misma base de datos ordene los elementos de colecci&#x00f3;n usa el atributo <literal>order-by</literal> de los mapeos <literal>set</literal>, <literal>bag</literal> o <literal>map</literal>. Esta soluci&#x00f3;n est&#x00e1; disponible s&#x00f3;lo bajo el JDK 1.4 o superior (est&#x00e1; implementado usando <literal>LinkedHashSet</literal> o <literal>LinkedHashMap</literal>). Esto realiza la ordenaci&#x00f3;n en la consulta SQL, no en memoria."
+#. Tag: para
+#: collection_mapping.xml:618
+#, no-c-format
+msgid ""
+"Sorted collections actually behave like <literal>java.util.TreeSet</literal> "
+"or <literal>java.util.TreeMap</literal>."
+msgstr ""
+"Las colecciones ordenadas realmente se comportan como <literal>java.util."
+"TreeSet</literal> o <literal>java.util.TreeMap</literal>."
 
-#: index.docbook:623
-msgid "If you want the database itself to order the collection elements use the <literal>order-by</literal> attribute of <literal>set</literal>, <literal>bag</literal> or <literal>map</literal> mappings. This solution is only available under JDK 1.4 or higher (it is implemented using <literal>LinkedHashSet</literal> or <literal>LinkedHashMap</literal>). This performs the ordering in the SQL query, not in memory."
+#. Tag: para
+#: collection_mapping.xml:623
+#, no-c-format
+msgid ""
+"If you want the database itself to order the collection elements use the "
+"<literal>order-by</literal> attribute of <literal>set</literal>, "
+"<literal>bag</literal> or <literal>map</literal> mappings. This solution is "
+"only available under JDK 1.4 or higher (it is implemented using "
+"<literal>LinkedHashSet</literal> or <literal>LinkedHashMap</literal>). This "
+"performs the ordering in the SQL query, not in memory."
 msgstr ""
-      "<![CDATA[<set name=\"aliases\" table=\"person_aliases\" order-by=\"lower(name) asc\">\n"
-      "    <key column=\"person\"/>\n"
-      "    <element column=\"name\" type=\"string\"/>\n"
-      "</set>\n"
-      "\n"
-      "<map name=\"holidays\" order-by=\"hol_date, hol_name\">\n"
-      "    <key column=\"year_id\"/>\n"
-      "    <map-key column=\"hol_name\" type=\"string\"/>\n"
-      "    <element column=\"hol_date type=\"date\"/>\n"
-      "</map>]]>"
+"Si quieres que la misma base de datos ordene los elementos de colección usa "
+"el atributo <literal>order-by</literal> de los mapeos <literal>set</"
+"literal>, <literal>bag</literal> o <literal>map</literal>. Esta solución "
+"está disponible sólo bajo el JDK 1.4 o superior (está implementado usando "
+"<literal>LinkedHashSet</literal> o <literal>LinkedHashMap</literal>). Esto "
+"realiza la ordenación en la consulta SQL, no en memoria."
 
-#: index.docbook:632
+#. Tag: programlisting
+#: collection_mapping.xml:632
+#, no-c-format
 msgid ""
-      "<![CDATA[<set name=\"aliases\" table=\"person_aliases\" order-by=\"lower(name) asc\">\n"
-      "    <key column=\"person\"/>\n"
-      "    <element column=\"name\" type=\"string\"/>\n"
-      "</set>\n"
-      "\n"
-      "<map name=\"holidays\" order-by=\"hol_date, hol_name\">\n"
-      "    <key column=\"year_id\"/>\n"
-      "    <map-key column=\"hol_name\" type=\"string\"/>\n"
-      "    <element column=\"hol_date type=\"date\"/>\n"
-      "</map>]]>"
-msgstr "Observa que el valor del atributo <literal>order-by</literal> es una ordenaci&#x00f3;n SQL, no una ordenaci&#x00f3;n HQL!"
+"<![CDATA[<set name=\"aliases\" table=\"person_aliases\" order-by=\"lower"
+"(name) asc\">\n"
+"    <key column=\"person\"/>\n"
+"    <element column=\"name\" type=\"string\"/>\n"
+"</set>\n"
+"\n"
+"<map name=\"holidays\" order-by=\"hol_date, hol_name\">\n"
+"    <key column=\"year_id\"/>\n"
+"    <map-key column=\"hol_name\" type=\"string\"/>\n"
+"    <element column=\"hol_date type=\"date\"/>\n"
+"</map>]]>"
+msgstr ""
 
-#: index.docbook:634
-msgid "Note that the value of the <literal>order-by</literal> attribute is an SQL ordering, not a HQL ordering!"
-msgstr "Las asociaciones pueden incluso ser ordenadas por alg&#x00fa;n criterio arbitrario en tiempo de ejecuci&#x00f3;n usando un <literal>filter()</literal> de colecci&#x00f3;n."
+#. Tag: para
+#: collection_mapping.xml:634
+#, no-c-format
+msgid ""
+"Note that the value of the <literal>order-by</literal> attribute is an SQL "
+"ordering, not a HQL ordering!"
+msgstr ""
+"Observa que el valor del atributo <literal>order-by</literal> es una "
+"ordenación SQL, no una ordenación HQL!"
 
-#: index.docbook:639
-msgid "Associations may even be sorted by some arbitrary criteria at runtime using a collection <literal>filter()</literal>."
-msgstr "<![CDATA[sortedUsers = s.createFilter( group.getUsers(), \"order by this.name\" ).list();]]>"
+#. Tag: para
+#: collection_mapping.xml:639
+#, no-c-format
+msgid ""
+"Associations may even be sorted by some arbitrary criteria at runtime using "
+"a collection <literal>filter()</literal>."
+msgstr ""
+"Las asociaciones pueden incluso ser ordenadas por algún criterio arbitrario "
+"en tiempo de ejecución usando un <literal>filter()</literal> de colección."
 
-#: index.docbook:644
-msgid "<![CDATA[sortedUsers = s.createFilter( group.getUsers(), \"order by this.name\" ).list();]]>"
-msgstr "Asociaciones bidireccionales"
+#. Tag: programlisting
+#: collection_mapping.xml:644
+#, no-c-format
+msgid ""
+"<![CDATA[sortedUsers = s.createFilter( group.getUsers(), \"order by this.name"
+"\" ).list();]]>"
+msgstr ""
 
-#: index.docbook:649
+#. Tag: title
+#: collection_mapping.xml:649
+#, no-c-format
 msgid "Bidirectional associations"
-msgstr "Una <emphasis>asociaci&#x00f3;n bidireccional</emphasis> permite la nevegaci&#x00f3;n desde ambos \"extremos\" de la asociaci&#x00f3;n. Son soportados dos tipos de asociaci&#x00f3;n bidireccional:"
+msgstr "Asociaciones bidireccionales"
 
-#: index.docbook:651
-msgid "A <emphasis>bidirectional association</emphasis> allows navigation from both \"ends\" of the association. Two kinds of bidirectional association are supported:"
-msgstr "uno-a-muchos"
+#. Tag: para
+#: collection_mapping.xml:651
+#, fuzzy, no-c-format
+msgid ""
+"A <emphasis>bidirectional association</emphasis> allows navigation from both "
+"\"ends\" of the association. Two kinds of bidirectional association are "
+"supported:"
+msgstr ""
+"Una <emphasis>asociación bidireccional</emphasis> permite la nevegación "
+"desde ambos \"extremos\" de la asociación. Son soportados dos tipos de "
+"asociación bidireccional: <placeholder-1/>"
 
-#: index.docbook:658
+#. Tag: term
+#: collection_mapping.xml:658
+#, no-c-format
 msgid "one-to-many"
-msgstr "set o bag valorados en un extremo, monovaluados al otro"
+msgstr "uno-a-muchos"
 
-#: index.docbook:660
+#. Tag: para
+#: collection_mapping.xml:660
+#, no-c-format
 msgid "set or bag valued at one end, single-valued at the other"
-msgstr "muchos-a-muchos"
+msgstr "set o bag valorados en un extremo, monovaluados al otro"
 
-#: index.docbook:666
+#. Tag: term
+#: collection_mapping.xml:666
+#, no-c-format
 msgid "many-to-many"
-msgstr "set o bag valorados a ambos extremos"
+msgstr "muchos-a-muchos"
 
-#: index.docbook:668
+#. Tag: para
+#: collection_mapping.xml:668
+#, no-c-format
 msgid "set or bag valued at both ends"
-msgstr "Puedes especificar una asociaci&#x00f3;n bidireccional muchos-a-muchos simplemente mapeando dos asociaciones muchos-a-muchos a la misma tabla de base de datos y declarando un extremo como <emphasis>inverse</emphasis> (cu&#x00e1;l de ellos es tu elecci&#x00f3;n, pero no puede ser una colecci&#x00f3;n indexada)."
+msgstr "set o bag valorados a ambos extremos"
 
-#: index.docbook:677
-msgid "You may specify a bidirectional many-to-many association simply by mapping two many-to-many associations to the same database table and declaring one end as <emphasis>inverse</emphasis> (which one is your choice, but it can not be an indexed collection)."
-msgstr "He aqu&#x00ed; un ejemplo de una asociaci&#x00f3;n bidireccional muchos-a-muchos; cada categor&#x00ed;a puede tener muchos &#x00ed;tems y cada &#x00ed;tem puede estar en muchas categor&#x00ed;as:"
+#. Tag: para
+#: collection_mapping.xml:677
+#, no-c-format
+msgid ""
+"You may specify a bidirectional many-to-many association simply by mapping "
+"two many-to-many associations to the same database table and declaring one "
+"end as <emphasis>inverse</emphasis> (which one is your choice, but it can "
+"not be an indexed collection)."
+msgstr ""
+"Puedes especificar una asociación bidireccional muchos-a-muchos simplemente "
+"mapeando dos asociaciones muchos-a-muchos a la misma tabla de base de datos "
+"y declarando un extremo como <emphasis>inverse</emphasis> (cuál de ellos es "
+"tu elección, pero no puede ser una colección indexada)."
 
-#: index.docbook:684
-msgid "Here's an example of a bidirectional many-to-many association; each category can have many items and each item can be in many categories:"
+#. Tag: para
+#: collection_mapping.xml:684
+#, no-c-format
+msgid ""
+"Here's an example of a bidirectional many-to-many association; each category "
+"can have many items and each item can be in many categories:"
 msgstr ""
-      "<![CDATA[<class name=\"Category\">\n"
-      "    <id name=\"id\" column=\"CATEGORY_ID\"/>\n"
-      "    ...\n"
-      "    <bag name=\"items\" table=\"CATEGORY_ITEM\">\n"
-      "        <key column=\"CATEGORY_ID\"/>\n"
-      "        <many-to-many class=\"Item\" column=\"ITEM_ID\"/>\n"
-      "    </bag>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Item\">\n"
-      "    <id name=\"id\" column=\"ITEM_ID\"/>
-\n"
-      "    ...\n"
-      "\n"
-      "    <!-- inverse end -->\n"
-      "    <bag name=\"categories\" table=\"CATEGORY_ITEM\" inverse=\"true\">\n"
-      "        <key column=\"ITEM_ID\"/>\n"
-      "        <many-to-many class=\"Category\" column=\"CATEGORY_ID\"/>\n"
-      "    </bag>\n"
-      "</class>]]>"
+"He aquí un ejemplo de una asociación bidireccional muchos-a-muchos; cada "
+"categoría puede tener muchos ítems y cada ítem puede estar en muchas "
+"categorías:"
 
-#: index.docbook:689
+#. Tag: programlisting
+#: collection_mapping.xml:689
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Category\">\n"
-      "    <id name=\"id\" column=\"CATEGORY_ID\"/>\n"
-      "    ...\n"
-      "    <bag name=\"items\" table=\"CATEGORY_ITEM\">\n"
-      "        <key column=\"CATEGORY_ID\"/>\n"
-      "        <many-to-many class=\"Item\" column=\"ITEM_ID\"/>\n"
-      "    </bag>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Item\">\n"
-      "    <id name=\"id\" column=\"ITEM_ID\"/>\n"
-      "    ...\n"
-      "\n"
-      "    <!-- inverse end -->\n"
-      "    <bag name=\"categories\" table=\"CATEGORY_ITEM\" inverse=\"true\">\n"
-      "        <key column=\"ITEM_ID\"/>\n"
-      "        <many-to-many class=\"Category\" column=\"CATEGORY_ID\"/>\n"
-      "    </bag>\n"
-      "</class>]]>"
-msgstr "Los cambios hechos s&#x00f3;lo al extremo inverso de la asociaci&#x00f3;n <emphasis>no</emphasis> son persistidos. Esto significa que Hibernate tiene dos representaciones en memoria para cada asociaci&#x00f3;n bidireccional, una enlaza de A a B y otra enlaza de B a A. Esto es m&#x00e1;s f&#x00e1;cil de entender si piensas en el modelo de objetos de Java y c&#x00f3;mo creamos una relaci&#x00f3;n muchos-a-muchos en Java:"
+"<![CDATA[<class name=\"Category\">\n"
+"    <id name=\"id\" column=\"CATEGORY_ID\"/>\n"
+"    ...\n"
+"    <bag name=\"items\" table=\"CATEGORY_ITEM\">\n"
+"        <key column=\"CATEGORY_ID\"/>\n"
+"        <many-to-many class=\"Item\" column=\"ITEM_ID\"/>\n"
+"    </bag>\n"
+"</class>\n"
+"\n"
+"<class name=\"Item\">\n"
+"    <id name=\"id\" column=\"ITEM_ID\"/>\n"
+"    ...\n"
+"\n"
+"    <!-- inverse end -->\n"
+"    <bag name=\"categories\" table=\"CATEGORY_ITEM\" inverse=\"true\">\n"
+"        <key column=\"ITEM_ID\"/>\n"
+"        <many-to-many class=\"Category\" column=\"CATEGORY_ID\"/>\n"
+"    </bag>\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:691
-msgid "Changes made only to the inverse end of the association are <emphasis>not</emphasis> persisted. This means that Hibernate has two representations in memory for every bidirectional association, one link from A to B and another link from B to A. This is easier to understand if you think about the Java object model and how we create a many-to-many relationship in Java:"
+#. Tag: para
+#: collection_mapping.xml:691
+#, no-c-format
+msgid ""
+"Changes made only to the inverse end of the association are <emphasis>not</"
+"emphasis> persisted. This means that Hibernate has two representations in "
+"memory for every bidirectional association, one link from A to B and another "
+"link from B to A. This is easier to understand if you think about the Java "
+"object model and how we create a many-to-many relationship in Java:"
 msgstr ""
-      "<![CDATA[\n"
-      "category.getItems().add(item);          // The category now \"knows\" about the relationship\n"
-      "item.getCategories().add(category);     // The item now \"knows\" about the relationship\n"
-      "\n"
-      "session.persist(item);                   // The relationship won't be saved!\n"
-      "session.persist(category);               // The relationship will be saved]]>"
+"Los cambios hechos sólo al extremo inverso de la asociación <emphasis>no</"
+"emphasis> son persistidos. Esto significa que Hibernate tiene dos "
+"representaciones en memoria para cada asociación bidireccional, una enlaza "
+"de A a B y otra enlaza de B a A. Esto es más fácil de entender si piensas en "
+"el modelo de objetos de Java y cómo creamos una relación muchos-a-muchos en "
+"Java:"
 
-#: index.docbook:699
+#. Tag: programlisting
+#: collection_mapping.xml:699
+#, no-c-format
 msgid ""
-      "<![CDATA[\n"
-      "category.getItems().add(item);          // The category now \"knows\" about the relationship\n"
-      "item.getCategories().add(category);     // The item now \"knows\" about the relationship\n"
-      "\n"
-      "session.persist(item);                   // The relationship won't be saved!\n"
-      "session.persist(category);               // The relationship will be saved]]>"
-msgstr "El lado no-inverso se usa para salvar la representaci&#x00f3;n en memoria a la base de datos."
+"<![CDATA[\n"
+"category.getItems().add(item);          // The category now \"knows\" about "
+"the relationship\n"
+"item.getCategories().add(category);     // The item now \"knows\" about the "
+"relationship\n"
+"\n"
+"session.persist(item);                   // The relationship won't be "
+"saved!\n"
+"session.persist(category);               // The relationship will be saved]]>"
+msgstr ""
 
-#: index.docbook:701
-msgid "The non-inverse side is used to save the in-memory representation to the database."
-msgstr "Puedes definir una asociaci&#x00f3;n bidireccional uno-a-muchos mapeando una asociaci&#x00f3;n uno-a-muchos a la misma columna (o columnas) de tabla como una asociaci&#x00f3;n muchos-a-uno y declarando el extremo multivaluado <literal>inverse=\"true\"</literal>."
+#. Tag: para
+#: collection_mapping.xml:701
+#, no-c-format
+msgid ""
+"The non-inverse side is used to save the in-memory representation to the "
+"database."
+msgstr ""
+"El lado no-inverso se usa para salvar la representación en memoria a la base "
+"de datos."
 
-#: index.docbook:705
-msgid "You may define a bidirectional one-to-many association by mapping a one-to-many association to the same table column(s) as a many-to-one association and declaring the many-valued end <literal>inverse=\"true\"</literal>."
+#. Tag: para
+#: collection_mapping.xml:705
+#, no-c-format
+msgid ""
+"You may define a bidirectional one-to-many association by mapping a one-to-"
+"many association to the same table column(s) as a many-to-one association "
+"and declaring the many-valued end <literal>inverse=\"true\"</literal>."
 msgstr ""
-      "<![CDATA[<class name=\"Parent\">\n"
-      "    <id name=\"id\" column=\"parent_id\"/>\n"
-      "    ....\n"
-      "    <set name=\"children\" inverse=\"true\">\n"
-      "        <key column=\"parent_id\"/>\n"
-      "        <one-to-many class=\"Child\"/>\n"
-      "    </set>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"eg.Child\">\n"
-      "    <id name=\"id\" column=\"id\"/>\n"
-      "    ....\n"
-      "    <many-to-one name=\"parent\" \n"
-      "        class=\"Parent\" \n"
-      "        column=\"parent_id\"\n"
-      "        not-null=\"true\"/>\n"
-      "</class>]]>"
+"Puedes definir una asociación bidireccional uno-a-muchos mapeando una "
+"asociación uno-a-muchos a la misma columna (o columnas) de tabla como una "
+"asociación muchos-a-uno y declarando el extremo multivaluado "
+"<literal>inverse=\"true\"</literal>."
 
-#: index.docbook:711
+#. Tag: programlisting
+#: collection_mapping.xml:711
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Parent\">\n"
-      "    <id name=\"id\" column=\"parent_id\"/>\n"
-      "    ....\n"
-      "    <set name=\"children\" inverse=\"true\">\n"
-      "        <key column=\"parent_id\"/>\n"
-      "        <one-to-many class=\"Child\"/>\n"
-      "    </set>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Child\">\n"
-      "    <id name=\"id\" column=\"child_id\"/>\n"
-      "    ....\n"
-      "    <many-to-one name=\"parent\" \n"
-      "        class=\"Parent\" \n"
-      "        column=\"parent_id\"\n"
-      "        not-null=\"true\"/>\n"
-      "</class>]]>"
-msgstr "Mapear un extremo de una asociaci&#x00f3;n con <literal>inverse=\"true\"</literal> no afecta la operaci&#x00f3;n de cascadas; &#x00e9;stos son conceptos ortogonales!"
+"<![CDATA[<class name=\"Parent\">\n"
+"    <id name=\"id\" column=\"parent_id\"/>\n"
+"    ....\n"
+"    <set name=\"children\" inverse=\"true\">\n"
+"        <key column=\"parent_id\"/>\n"
+"        <one-to-many class=\"Child\"/>\n"
+"    </set>\n"
+"</class>\n"
+"\n"
+"<class name=\"Child\">\n"
+"    <id name=\"id\" column=\"child_id\"/>\n"
+"    ....\n"
+"    <many-to-one name=\"parent\" \n"
+"        class=\"Parent\" \n"
+"        column=\"parent_id\"\n"
+"        not-null=\"true\"/>\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:713
-msgid "Mapping one end of an association with <literal>inverse=\"true\"</literal> doesn't affect the operation of cascades, these are orthogonal concepts!"
-msgstr "Asociaciones bidireccionales con colecciones indexadas"
+#. Tag: para
+#: collection_mapping.xml:713
+#, no-c-format
+msgid ""
+"Mapping one end of an association with <literal>inverse=\"true\"</literal> "
+"doesn't affect the operation of cascades, these are orthogonal concepts!"
+msgstr ""
+"Mapear un extremo de una asociación con <literal>inverse=\"true\"</literal> "
+"no afecta la operación de cascadas; éstos son conceptos ortogonales!"
 
-#: index.docbook:721
+#. Tag: title
+#: collection_mapping.xml:721
+#, no-c-format
 msgid "Bidirectional associations with indexed collections"
-msgstr "Requiere especial consideraci&#x00f3;n una asociaci&#x00f3;n bidireccional donde un extremo est&#x00e9; representado como una <literal>&lt;list&gt;</literal> o <literal>&lt;map&gt;</literal>. Si hay una propiedad de la clase hija que mapee a la columna &#x00ed;ndice, no hay problema, podemos seguir usando <literal>inverse=\"true\"</literal> en el mapeo de la colecci&#x00f3;n:"
+msgstr "Asociaciones bidireccionales con colecciones indexadas"
 
-#: index.docbook:722
-msgid "A bidirectional association where one end is represented as a <literal>&lt;list&gt;</literal> or <literal>&lt;map&gt;</literal> requires special consideration. If there is a property of the child class which maps to the index column, no problem, we can continue using <literal>inverse=\"true\"</literal> on the collection mapping:"
+#. Tag: para
+#: collection_mapping.xml:722
+#, no-c-format
+msgid ""
+"A bidirectional association where one end is represented as a <literal>&lt;"
+"list&gt;</literal> or <literal>&lt;map&gt;</literal> requires special "
+"consideration. If there is a property of the child class which maps to the "
+"index column, no problem, we can continue using <literal>inverse=\"true\"</"
+"literal> on the collection mapping:"
 msgstr ""
-      "<![CDATA[<class name=\"Parent\">\n"
-      "    <id name=\"id\" column=\"parent_id\"/>\n"
-      "    ....\n"
-      "    <map name=\"children\" inverse=\"true\">\n"
-      "        <key column=\"parent_id\"/>\n"
-      "        <map-key column=\"name\" \n"
-      "            type=\"string\"/>\n"
-      "        <one-to-many class=\"Child\"/>\n"
-      "    </map>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Child\">\n"
-      "    <id name=\"id\" column=\"child_id\"/>\n"
-      "    ....\n"
-      "    <property name=\"name\" \n"
-      "        not-null=\"true\"/>\n"
-      "    <many-to-one name=\"parent\" \n"
-      "        class=\"Parent\" \n"
-      "        column=\"parent_id\"\n"
-      "        not-null=\"true\"/>\n"
-      "</class>]]>"
+"Requiere especial consideración una asociación bidireccional donde un "
+"extremo esté representado como una <literal>&lt;list&gt;</literal> o "
+"<literal>&lt;map&gt;</literal>. Si hay una propiedad de la clase hija que "
+"mapee a la columna índice, no hay problema, podemos seguir usando "
+"<literal>inverse=\"true\"</literal> en el mapeo de la colección:"
 
-#: index.docbook:729
+#. Tag: programlisting
+#: collection_mapping.xml:729
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Parent\">\n"
-      "    <id name=\"id\" column=\"parent_id\"/>\n"
-      "    ....\n"
-      "    <map name=\"children\" inverse=\"true\">\n"
-      "        <key column=\"parent_id\"/>\n"
-      "        <map-key column=\"name\" \n"
-      "            type=\"string\"/>\n"
-      "        <one-to-many class=\"Child\"/>\n"
-      "    </map>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Child\">\n"
-      "    <id name=\"id\" column=\"child_id\"/>\n"
-      "    ....\n"
-      "    <property name=\"name\" \n"
-      "        not-null=\"true\"/>\n"
-      "    <many-to-one name=\"parent\" \n"
-      "        class=\"Parent\" \n"
-      "        column=\"parent_id\"\n"
-      "        not-null=\"true\"/>\n"
-      "</class>]]>"
-msgstr "Pero, si no existe tal proiedad en la clase hija, no podemos pensar en la asociaci&#x00f3;n como verdaderamente bidireccional (hay informaci&#x00f3;n en un extremo de la asociaci&#x00f3;n que no est&#x00e1; disponible en el otro extremo). En este caso, no podemos mapear la colecci&#x00f3;n con <literal>inverse=\"true\"</literal>. En cambio, podr&#x00ed;amos usar el siguiente mapeo:"
+"<![CDATA[<class name=\"Parent\">\n"
+"    <id name=\"id\" column=\"parent_id\"/>\n"
+"    ....\n"
+"    <map name=\"children\" inverse=\"true\">\n"
+"        <key column=\"parent_id\"/>\n"
+"        <map-key column=\"name\" \n"
+"            type=\"string\"/>\n"
+"        <one-to-many class=\"Child\"/>\n"
+"    </map>\n"
+"</class>\n"
+"\n"
+"<class name=\"Child\">\n"
+"    <id name=\"id\" column=\"child_id\"/>\n"
+"    ....\n"
+"    <property name=\"name\" \n"
+"        not-null=\"true\"/>\n"
+"    <many-to-one name=\"parent\" \n"
+"        class=\"Parent\" \n"
+"        column=\"parent_id\"\n"
+"        not-null=\"true\"/>\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:731
-msgid "But, if there is no such property on the child class, we can't think of the association as truly bidirectional (there is information available at one end of the association that is not available at the other end). In this case, we can't map the collection <literal>inverse=\"true\"</literal>. Instead, we could use the following mapping:"
+#. Tag: para
+#: collection_mapping.xml:731
+#, no-c-format
+msgid ""
+"But, if there is no such property on the child class, we can't think of the "
+"association as truly bidirectional (there is information available at one "
+"end of the association that is not available at the other end). In this "
+"case, we can't map the collection <literal>inverse=\"true\"</literal>. "
+"Instead, we could use the following mapping:"
 msgstr ""
-      "<![CDATA[<class name=\"Parent\">\n"
-      "    <id name=\"id\" column=\"parent_id\"/>\n"
-      "    ....\n"
-      "    <map name=\"children\">\n"
-      "        <key column=\"parent_id\"\n"
-      "            not-null=\"true\"/>\n"
-      "        <map-key column=\"name\" \n"
-      "            type=\"string\"/>\n"
-      "        <one-to-many class=\"Child\"/>\n"
-      "    </map>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Child\">\n"
-      "    <id name=\"id\" column=\"child_id\"/>\n"
-      "    ....\n"
-      "    <many-to-one name=\"parent\" \n"
-      "        class=\"Parent\" \n"
-      "        column=\"parent_id\"\n"
-      "        insert=\"false\"\n"
-      "        update=\"false\"\n"
-      "        not-null=\"true\"/>\n"
-      "</class>]]>"
+"Pero, si no existe tal proiedad en la clase hija, no podemos pensar en la "
+"asociación como verdaderamente bidireccional (hay información en un extremo "
+"de la asociación que no está disponible en el otro extremo). En este caso, "
+"no podemos mapear la colección con <literal>inverse=\"true\"</literal>. En "
+"cambio, podríamos usar el siguiente mapeo:"
 
-#: index.docbook:738
+#. Tag: programlisting
+#: collection_mapping.xml:738
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Parent\">\n"
-      "    <id name=\"id\" column=\"parent_id\"/>\n"
-      "    ....\n"
-      "    <map name=\"children\">\n"
-      "        <key column=\"parent_id\"\n"
-      "            not-null=\"true\"/>\n"
-      "        <map-key column=\"name\" \n"
-      "            type=\"string\"/>\n"
-      "        <one-to-many class=\"Child\"/>\n"
-      "    </map>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Child\">\n"
-      "    <id name=\"id\" column=\"child_id\"/>\n"
-      "    ....\n"
-      "    <many-to-one name=\"parent\" \n"
-      "        class=\"Parent\" \n"
-      "        column=\"parent_id\"\n"
-      "        insert=\"false\"\n"
-      "        update=\"false\"\n"
-      "        not-null=\"true\"/>\n"
-      "</class>]]>"
-msgstr "Nota que, en este mapeo, el extremo de la asociaci&#x00f3;n valuado en colecci&#x00f3;n es responsable de las actualizaciones a la clave for&#x00e1;nea."
+"<![CDATA[<class name=\"Parent\">\n"
+"    <id name=\"id\" column=\"parent_id\"/>\n"
+"    ....\n"
+"    <map name=\"children\">\n"
+"        <key column=\"parent_id\"\n"
+"            not-null=\"true\"/>\n"
+"        <map-key column=\"name\" \n"
+"            type=\"string\"/>\n"
+"        <one-to-many class=\"Child\"/>\n"
+"    </map>\n"
+"</class>\n"
+"\n"
+"<class name=\"Child\">\n"
+"    <id name=\"id\" column=\"child_id\"/>\n"
+"    ....\n"
+"    <many-to-one name=\"parent\" \n"
+"        class=\"Parent\" \n"
+"        column=\"parent_id\"\n"
+"        insert=\"false\"\n"
+"        update=\"false\"\n"
+"        not-null=\"true\"/>\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:740
-msgid "Note that in this mapping, the collection-valued end of the association is responsible for updates to the foreign key. TODO: Does this really result in some unnecessary update statements?"
-msgstr "Asociaciones ternarias"
+#. Tag: para
+#: collection_mapping.xml:740
+#, no-c-format
+msgid ""
+"Note that in this mapping, the collection-valued end of the association is "
+"responsible for updates to the foreign key. TODO: Does this really result in "
+"some unnecessary update statements?"
+msgstr ""
+"Nota que, en este mapeo, el extremo de la asociación valuado en colección es "
+"responsable de las actualizaciones a la clave foránea."
 
-#: index.docbook:748
+#. Tag: title
+#: collection_mapping.xml:748
+#, no-c-format
 msgid "Ternary associations"
-msgstr "Hay tres enfoques posibles para mapear una asociaci&#x00f3;n ternaria. Una es usar un <literal>Map</literal> con una asociaci&#x00f3;n como su &#x00ed;ndice:"
+msgstr "Asociaciones ternarias"
 
-#: index.docbook:750
-msgid "There are three possible approaches to mapping a ternary association. One is to use a <literal>Map</literal> with an association as its index:"
+#. Tag: para
+#: collection_mapping.xml:750
+#, no-c-format
+msgid ""
+"There are three possible approaches to mapping a ternary association. One is "
+"to use a <literal>Map</literal> with an association as its index:"
 msgstr ""
-      "<![CDATA[<map name=\"contracts\">\n"
-      "    <key column=\"employer_id\" not-null=\"true\"/>\n"
-      "    <map-key-many-to-many column=\"employee_id\" class=\"Employee\"/>\n"
-      "    <one-to-many class=\"Contract\"/>\n"
-      "</map>]]>"
+"Hay tres enfoques posibles para mapear una asociación ternaria. Una es usar "
+"un <literal>Map</literal> con una asociación como su índice:"
 
-#: index.docbook:755
+#. Tag: programlisting
+#: collection_mapping.xml:755
+#, no-c-format
 msgid ""
-      "<![CDATA[<map name=\"contracts\">\n"
-      "    <key column=\"employer_id\" not-null=\"true\"/>\n"
-      "    <map-key-many-to-many column=\"employee_id\" class=\"Employee\"/>\n"
-      "    <one-to-many class=\"Contract\"/>\n"
-      "</map>]]>"
+"<![CDATA[<map name=\"contracts\">\n"
+"    <key column=\"employer_id\" not-null=\"true\"/>\n"
+"    <map-key-many-to-many column=\"employee_id\" class=\"Employee\"/>\n"
+"    <one-to-many class=\"Contract\"/>\n"
+"</map>]]>"
 msgstr ""
-      "<![CDATA[<map name=\"connections\">\n"
-      "    <key column=\"incoming_node_id\"/>\n"
-      "    <map-key-many-to-many column=\"outgoing_node_id\" class=\"Node\"/>\n"
-      "    <many-to-many column=\"connection_id\" class=\"Connection\"/>\n"
-      "</map>]]>"
 
-#: index.docbook:757
+#. Tag: programlisting
+#: collection_mapping.xml:757
+#, no-c-format
 msgid ""
-      "<![CDATA[<map name=\"connections\">\n"
-      "    <key column=\"incoming_node_id\"/>\n"
-      "    <map-key-many-to-many column=\"outgoing_node_id\" class=\"Node\"/>\n"
-      "    <many-to-many column=\"connection_id\" class=\"Connection\"/>\n"
-      "</map>]]>"
-msgstr "Un segundo enfoque es simplemente remodelar la asociaci&#x00f3;n como una clase de entidad. Este es el enfoque que usamos m&#x00e1;s comunmente."
+"<![CDATA[<map name=\"connections\">\n"
+"    <key column=\"incoming_node_id\"/>\n"
+"    <map-key-many-to-many column=\"outgoing_node_id\" class=\"Node\"/>\n"
+"    <many-to-many column=\"connection_id\" class=\"Connection\"/>\n"
+"</map>]]>"
+msgstr ""
 
-#: index.docbook:759
-msgid "A second approach is to simply remodel the association as an entity class. This is the approach we use most commonly."
-msgstr "Una alternativa final es usar elementos compuestos, que discutiremos m&#x00e1;s adelante."
+#. Tag: para
+#: collection_mapping.xml:759
+#, no-c-format
+msgid ""
+"A second approach is to simply remodel the association as an entity class. "
+"This is the approach we use most commonly."
+msgstr ""
+"Un segundo enfoque es simplemente remodelar la asociación como una clase de "
+"entidad. Este es el enfoque que usamos más comunmente."
 
-#: index.docbook:764
-msgid "A final alternative is to use composite elements, which we will discuss later."
-msgstr "Usando un &lt;idbag&gt;"
+#. Tag: para
+#: collection_mapping.xml:764
+#, no-c-format
+msgid ""
+"A final alternative is to use composite elements, which we will discuss "
+"later."
+msgstr ""
+"Una alternativa final es usar elementos compuestos, que discutiremos más "
+"adelante."
 
-#: index.docbook:771
+#. Tag: literal
+#: collection_mapping.xml:771
+#, no-c-format
 msgid "Using an &lt;idbag&gt;"
-msgstr "Si has adoptado completamente nuestra visi&#x00f3;n de que las claves compuestas son una cosa mala y que las entidades deben tener identificadores sit&#x00e9;ticos (claves delegadas), entonces podr&#x00ed;as encontrar un poco raro que todas las asociaciones muchos a muchos y las colecciones de valores que hemos mostrado hasta ahora mapeen a tablas con claves compuestas! Ahora, este punto es discutible; una tabla de pura asociaci&#x00f3;n no parece beneficiarse demasiado de una clave delegada (aunque s&#x00ed; <emphasis>podr&#x00ed;a</emphasis> una colecci&#x00f3;n de valores compuestos). Sin embargo, Hibernate provee una funcionalidad que te permite mapear asociaciones muchos a muchos y colecciones de valores a una tabla con una clave delegada."
+msgstr "Usando un &lt;idbag&gt;"
 
-#: index.docbook:773
-msgid "If you've fully embraced our view that composite keys are a bad thing and that entities should have synthetic identifiers (surrogate keys), then you might find it a bit odd that the many to many associations and collections of values that we've shown so far all map to tables with composite keys! Now, this point is quite arguable; a pure association table doesn't seem to benefit much from a surrogate key (though a collection of composite values <emphasis>might</emphasis>). Nevertheless, Hibernate provides a feature that allows you to map many to many associations and collections of values to a table with a surrogate key."
-msgstr "El elemento <literal>&lt;idbag&gt;</literal> te permite mapear una <literal>List</literal> (o <literal>Collection</literal>) con sem&#x00e1;ntica de bag."
+#. Tag: para
+#: collection_mapping.xml:773
+#, no-c-format
+msgid ""
+"If you've fully embraced our view that composite keys are a bad thing and "
+"that entities should have synthetic identifiers (surrogate keys), then you "
+"might find it a bit odd that the many to many associations and collections "
+"of values that we've shown so far all map to tables with composite keys! "
+"Now, this point is quite arguable; a pure association table doesn't seem to "
+"benefit much from a surrogate key (though a collection of composite values "
+"<emphasis>might</emphasis>). Nevertheless, Hibernate provides a feature that "
+"allows you to map many to many associations and collections of values to a "
+"table with a surrogate key."
+msgstr ""
+"Si has adoptado completamente nuestra visión de que las claves compuestas "
+"son una cosa mala y que las entidades deben tener identificadores sitéticos "
+"(claves delegadas), entonces podrías encontrar un poco raro que todas las "
+"asociaciones muchos a muchos y las colecciones de valores que hemos mostrado "
+"hasta ahora mapeen a tablas con claves compuestas! Ahora, este punto es "
+"discutible; una tabla de pura asociación no parece beneficiarse demasiado de "
+"una clave delegada (aunque sí <emphasis>podría</emphasis> una colección de "
+"valores compuestos). Sin embargo, Hibernate provee una funcionalidad que te "
+"permite mapear asociaciones muchos a muchos y colecciones de valores a una "
+"tabla con una clave delegada."
 
-#: index.docbook:784
-msgid "The <literal>&lt;idbag&gt;</literal> element lets you map a <literal>List</literal> (or <literal>Collection</literal>) with bag semantics."
+#. Tag: para
+#: collection_mapping.xml:784
+#, no-c-format
+msgid ""
+"The <literal>&lt;idbag&gt;</literal> element lets you map a <literal>List</"
+"literal> (or <literal>Collection</literal>) with bag semantics."
 msgstr ""
-      "<![CDATA[<idbag name=\"lovers\" table=\"LOVERS\">\n"
-      "    <collection-id column=\"ID\" type=\"long\">\n"
-      "        <generator class=\"sequence\"/>\n"
-      "    </collection-id>\n"
-      "    <key column=\"PERSON1\"/>\n"
-      "    <many-to-many column=\"PERSON2\" class=\"Person\" fetch=\"join\"/>\n"
-      "</idbag>]]>"
+"El elemento <literal>&lt;idbag&gt;</literal> te permite mapear una "
+"<literal>List</literal> (o <literal>Collection</literal>) con semántica de "
+"bag."
 
-#: index.docbook:789
+#. Tag: programlisting
+#: collection_mapping.xml:789
+#, no-c-format
 msgid ""
-      "<![CDATA[<idbag name=\"lovers\" table=\"LOVERS\">\n"
-      "    <collection-id column=\"ID\" type=\"long\">\n"
-      "        <generator class=\"sequence\"/>\n"
-      "    </collection-id>\n"
-      "    <key column=\"PERSON1\"/>\n"
-      "    <many-to-many column=\"PERSON2\" class=\"Person\" fetch=\"join\"/>\n"
-      "</idbag>]]>"
-msgstr "Como puedes ver, un <literal>&lt;idbag&gt;</literal> tiene un generador de id sint&#x00e9;tico, igual que una clase de entidad! Una clave delegada diferente se asigna a cada fila de la colecci&#x00f3;n. Hibernate no provee ning&#x00fa;n mecanismo para descubrir el valor de clave delegada de una fila en particular, sin embargo."
+"<![CDATA[<idbag name=\"lovers\" table=\"LOVERS\">\n"
+"    <collection-id column=\"ID\" type=\"long\">\n"
+"        <generator class=\"sequence\"/>\n"
+"    </collection-id>\n"
+"    <key column=\"PERSON1\"/>\n"
+"    <many-to-many column=\"PERSON2\" class=\"Person\" fetch=\"join\"/>\n"
+"</idbag>]]>"
+msgstr ""
 
-#: index.docbook:791
-msgid "As you can see, an <literal>&lt;idbag&gt;</literal> has a synthetic id generator, just like an entity class! A different surrogate key is assigned to each collection row. Hibernate does not provide any mechanism to discover the surrogate key value of a particular row, however."
-msgstr "Observa que el rendimiento de actualizaci&#x00f3;n de un <literal>&lt;idbag&gt;</literal> es <emphasis>mucho</emphasis> mejor que el de un <literal>&lt;bag&gt;</literal> regular! Hibernate puede localizar filas individuales eficientemente y actualizarlas o borrarlas individualmente, igual que si fuese una lista, mapa o conjunto."
+#. Tag: para
+#: collection_mapping.xml:791
+#, no-c-format
+msgid ""
+"As you can see, an <literal>&lt;idbag&gt;</literal> has a synthetic id "
+"generator, just like an entity class! A different surrogate key is assigned "
+"to each collection row. Hibernate does not provide any mechanism to discover "
+"the surrogate key value of a particular row, however."
+msgstr ""
+"Como puedes ver, un <literal>&lt;idbag&gt;</literal> tiene un generador de "
+"id sintético, igual que una clase de entidad! Una clave delegada diferente "
+"se asigna a cada fila de la colección. Hibernate no provee ningún mecanismo "
+"para descubrir el valor de clave delegada de una fila en particular, sin "
+"embargo."
 
-#: index.docbook:798
-msgid "Note that the update performance of an <literal>&lt;idbag&gt;</literal> is <emphasis>much</emphasis> better than a regular <literal>&lt;bag&gt;</literal>! Hibernate can locate individual rows efficiently and update or delete them individually, just like a list, map or set."
-msgstr "En la implementaci&#x00f3;n actual, la estrategia de generaci&#x00f3;n de identificador <literal>native</literal> no est&#x00e1; soportada para identificadores de colecciones <literal>&lt;idbag&gt;</literal>."
+#. Tag: para
+#: collection_mapping.xml:798
+#, no-c-format
+msgid ""
+"Note that the update performance of an <literal>&lt;idbag&gt;</literal> is "
+"<emphasis>much</emphasis> better than a regular <literal>&lt;bag&gt;</"
+"literal>! Hibernate can locate individual rows efficiently and update or "
+"delete them individually, just like a list, map or set."
+msgstr ""
+"Observa que el rendimiento de actualización de un <literal>&lt;idbag&gt;</"
+"literal> es <emphasis>mucho</emphasis> mejor que el de un <literal>&lt;"
+"bag&gt;</literal> regular! Hibernate puede localizar filas individuales "
+"eficientemente y actualizarlas o borrarlas individualmente, igual que si "
+"fuese una lista, mapa o conjunto."
 
-#: index.docbook:805
-msgid "In the current implementation, the <literal>native</literal> identifier generation strategy is not supported for <literal>&lt;idbag&gt;</literal> collection identifiers."
-msgstr "Ejemplos de colecci&#x00f3;n"
+#. Tag: para
+#: collection_mapping.xml:805
+#, no-c-format
+msgid ""
+"In the current implementation, the <literal>native</literal> identifier "
+"generation strategy is not supported for <literal>&lt;idbag&gt;</literal> "
+"collection identifiers."
+msgstr ""
+"En la implementación actual, la estrategia de generación de identificador "
+"<literal>native</literal> no está soportada para identificadores de "
+"colecciones <literal>&lt;idbag&gt;</literal>."
 
-#: index.docbook:829
+#. Tag: title
+#: collection_mapping.xml:829
+#, no-c-format
 msgid "Collection examples"
-msgstr "Las secciones previas son bastantes confusas. As&#x00ed; que miremos un ejemplo. Esta clase:"
+msgstr "Ejemplos de colección"
 
-#: index.docbook:831
-msgid "The previous sections are pretty confusing. So lets look at an example. This class:"
+#. Tag: para
+#: collection_mapping.xml:831
+#, no-c-format
+msgid ""
+"The previous sections are pretty confusing. So lets look at an example. This "
+"class:"
 msgstr ""
-      "<![CDATA[package eg;\n"
-      "import java.util.Set;\n"
-      "\n"
-      "public class Parent {\n"
-      "    private long id;\n"
-      "    private Set children;\n"
-      "\n"
-      "    public long getId() { return id; }\n"
-      "    private void setId(long id) { this.id=id; }\n"
-      "\n"
-      "    private Set getChildren() { return children; }\n"
-      "    private void setChildren(Set children) { this.children=children; }\n"
-      "\n"
-      "    ....\n"
-      "    ....\n"
-      "}]]>"
+"Las secciones previas son bastantes confusas. Así que miremos un ejemplo. "
+"Esta clase:"
 
-#: index.docbook:836
+#. Tag: programlisting
+#: collection_mapping.xml:836
+#, no-c-format
 msgid ""
-      "<![CDATA[package eg;\n"
-      "import java.util.Set;\n"
-      "\n"
-      "public class Parent {\n"
-      "    private long id;\n"
-      "    private Set children;\n"
-      "\n"
-      "    public long getId() { return id; }\n"
-      "    private void setId(long id) { this.id=id; }\n"
-      "\n"
-      "    private Set getChildren() { return children; }\n"
-      "    private void setChildren(Set children) { this.children=children; }\n"
-      "\n"
-      "    ....\n"
-      "    ....\n"
-      "}]]>"
-msgstr "tiene una colecci&#x00f3;n de instancias de <literal>Child</literal>. Si cada hijo tiene como mucho un padre, el mapeo m&#x00e1;s natural es una asociaci&#x00f3;n uno-a-muchos:"
+"<![CDATA[package eg;\n"
+"import java.util.Set;\n"
+"\n"
+"public class Parent {\n"
+"    private long id;\n"
+"    private Set children;\n"
+"\n"
+"    public long getId() { return id; }\n"
+"    private void setId(long id) { this.id=id; }\n"
+"\n"
+"    private Set getChildren() { return children; }\n"
+"    private void setChildren(Set children) { this.children=children; }\n"
+"\n"
+"    ....\n"
+"    ....\n"
+"}]]>"
+msgstr ""
 
-#: index.docbook:838
-msgid "has a collection of <literal>Child</literal> instances. If each child has at most one parent, the most natural mapping is a one-to-many association:"
+#. Tag: para
+#: collection_mapping.xml:838
+#, no-c-format
+msgid ""
+"has a collection of <literal>Child</literal> instances. If each child has at "
+"most one parent, the most natural mapping is a one-to-many association:"
 msgstr ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "\n"
-      "    <class name=\"Parent\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\"/>\n"
-      "        </id>\n"
-      "        <set name=\"children\">\n"
-      "            <key column=\"parent_id\"/>\n"
-      "            <one-to-many class=\"Child\"/>\n"
-      "        </set>\n"
-      "    </class>\n"
-      "\n"
-      "    <class name=\"Child\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\"/>\n"
-      "        </id>\n"
-      "        <property name=\"name\"/>\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
+"tiene una colección de instancias de <literal>Child</literal>. Si cada hijo "
+"tiene como mucho un padre, el mapeo más natural es una asociación uno-a-"
+"muchos:"
 
-#: index.docbook:844
+#. Tag: programlisting
+#: collection_mapping.xml:844
+#, no-c-format
 msgid ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "\n"
-      "    <class name=\"Parent\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\"/>\n"
-      "        </id>\n"
-      "        <set name=\"children\">\n"
-      "            <key column=\"parent_id\"/>\n"
-      "            <one-to-many class=\"Child\"/>\n"
-      "        </set>\n"
-      "    </class>\n"
-      "\n"
-      "    <class name=\"Child\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\"/>\n"
-      "        </id>\n"
-      "        <property name=\"name\"/>\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
+"<![CDATA[<hibernate-mapping>\n"
+"\n"
+"    <class name=\"Parent\">\n"
+"        <id name=\"id\">\n"
+"            <generator class=\"sequence\"/>\n"
+"        </id>\n"
+"        <set name=\"children\">\n"
+"            <key column=\"parent_id\"/>\n"
+"            <one-to-many class=\"Child\"/>\n"
+"        </set>\n"
+"    </class>\n"
+"\n"
+"    <class name=\"Child\">\n"
+"        <id name=\"id\">\n"
+"            <generator class=\"sequence\"/>\n"
+"        </id>\n"
+"        <property name=\"name\"/>\n"
+"    </class>\n"
+"\n"
+"</hibernate-mapping>]]>"
+msgstr ""
+
+#. Tag: para
+#: collection_mapping.xml:846
+#, no-c-format
+msgid "This maps to the following table definitions:"
 msgstr "Esto mapea a las siguientes definiciones de tablas:"
 
-#: index.docbook:846
-msgid "This maps to the following table definitions:"
+#. Tag: programlisting
+#: collection_mapping.xml:850
+#, no-c-format
+msgid ""
+"<![CDATA[create table parent ( id bigint not null primary key )\n"
+"create table child ( id bigint not null primary key, name varchar(255), "
+"parent_id bigint )\n"
+"alter table child add constraint childfk0 (parent_id) references parent]]>"
 msgstr ""
-      "<![CDATA[create table parent ( id bigint not null primary key )\n"
-      "create table child ( id bigint not null primary key, name varchar(255), parent_id bigint )\n"
-      "alter table child add constraint childfk0 (parent_id) references parent]]>"
 
-#: index.docbook:850
+#. Tag: para
+#: collection_mapping.xml:852
+#, no-c-format
 msgid ""
-      "<![CDATA[create table parent ( id bigint not null primary key )\n"
-      "create table child ( id bigint not null primary key, name varchar(255), parent_id bigint )\n"
-      "alter table child add constraint childfk0 (parent_id) references parent]]>"
-msgstr "Si el padre es <emphasis>requerido</emphasis>, usa una asociaci&#x00f3;n bidireccional uno-a-muchos:"
-
-#: index.docbook:852
-msgid "If the parent is <emphasis>required</emphasis>, use a bidirectional one-to-many association:"
+"If the parent is <emphasis>required</emphasis>, use a bidirectional one-to-"
+"many association:"
 msgstr ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "\n"
-      "    <class name=\"Parent\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\"/>\n"
-      "        </id>\n"
-      "        <set name=\"children\" inverse=\"true\">\n"
-      "            <key column=\"parent_id\"/>\n"
-      "            <one-to-many class=\"Child\"/>\n"
-      "        </set>\n"
-      "    </class>\n"
-      "\n"
-      "    <class name=\"Child\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\"/>\n"
-      "        </id>\n"
-      "        <property name=\"name\"/>\n"
-      "        <many-to-one name=\"parent\" class=\"Parent\" column=\"parent_id\" not-null=\"true\"/>\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
+"Si el padre es <emphasis>requerido</emphasis>, usa una asociación "
+"bidireccional uno-a-muchos:"
 
-#: index.docbook:857
+#. Tag: programlisting
+#: collection_mapping.xml:857
+#, no-c-format
 msgid ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "\n"
-      "    <class name=\"Parent\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\"/>\n"
-      "        </id>\n"
-      "        <set name=\"children\" inverse=\"true\">\n"
-      "            <key column=\"parent_id\"/>\n"
-      "            <one-to-many class=\"Child\"/>\n"
-      "        </set>\n"
-      "    </class>\n"
-      "\n"
-      "    <class name=\"Child\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\"/>\n"
-      "        </id>\n"
-      "        <property name=\"name\"/>\n"
-      "        <many-to-one name=\"parent\" class=\"Parent\" column=\"parent_id\" not-null=\"true\"/>\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
-msgstr "Observa la restricci&#x00f3;n <literal>NOT NULL</literal>:"
+"<![CDATA[<hibernate-mapping>\n"
+"\n"
+"    <class name=\"Parent\">\n"
+"        <id name=\"id\">\n"
+"            <generator class=\"sequence\"/>\n"
+"        </id>\n"
+"        <set name=\"children\" inverse=\"true\">\n"
+"            <key column=\"parent_id\"/>\n"
+"            <one-to-many class=\"Child\"/>\n"
+"        </set>\n"
+"    </class>\n"
+"\n"
+"    <class name=\"Child\">\n"
+"        <id name=\"id\">\n"
+"            <generator class=\"sequence\"/>\n"
+"        </id>\n"
+"        <property name=\"name\"/>\n"
+"        <many-to-one name=\"parent\" class=\"Parent\" column=\"parent_id\" "
+"not-null=\"true\"/>\n"
+"    </class>\n"
+"\n"
+"</hibernate-mapping>]]>"
+msgstr ""
 
-#: index.docbook:859
+#. Tag: para
+#: collection_mapping.xml:859
+#, no-c-format
 msgid "Notice the <literal>NOT NULL</literal> constraint:"
+msgstr "Observa la restricción <literal>NOT NULL</literal>:"
+
+#. Tag: programlisting
+#: collection_mapping.xml:863
+#, no-c-format
+msgid ""
+"<![CDATA[create table parent ( id bigint not null primary key )\n"
+"create table child ( id bigint not null\n"
+"                     primary key,\n"
+"                     name varchar(255),\n"
+"                     parent_id bigint not null )\n"
+"alter table child add constraint childfk0 (parent_id) references parent]]>"
 msgstr ""
-      "<![CDATA[create table parent ( id bigint not null primary key )\n"
-      "create table child ( id bigint not null\n"
-      "                     primary key,\n"
-      "                     name varchar(255),\n"
-      "                     parent_id bigint not null )\n"
-      "alter table child add constraint childfk0 (parent_id) references parent]]>"
 
-#: index.docbook:863
+#. Tag: para
+#: collection_mapping.xml:865
+#, no-c-format
 msgid ""
-      "<![CDATA[create table parent ( id bigint not null primary key )\n"
-      "create table child ( id bigint not null\n"
-      "                     primary key,\n"
-      "                     name varchar(255),\n"
-      "                     parent_id bigint not null )\n"
-      "alter table child add constraint childfk0 (parent_id) references parent]]>"
-msgstr "Alternativamente, si absolutamente insistes que esta asociaci&#x00f3;n debe ser unidireccional, puedes declarar la restricci&#x00f3;n <literal>NOT NULL</literal> en el mapeo de <literal>&lt;key&gt;</literal>:"
+"Alternatively, if you absolutely insist that this association should be "
+"unidirectional, you can declare the <literal>NOT NULL</literal> constraint "
+"on the <literal>&lt;key&gt;</literal> mapping:"
+msgstr ""
+"Alternativamente, si absolutamente insistes que esta asociación debe ser "
+"unidireccional, puedes declarar la restricción <literal>NOT NULL</literal> "
+"en el mapeo de <literal>&lt;key&gt;</literal>:"
 
-#: index.docbook:865
-msgid "Alternatively, if you absolutely insist that this association should be unidirectional, you can declare the <literal>NOT NULL</literal> constraint on the <literal>&lt;key&gt;</literal> mapping:"
+#. Tag: programlisting
+#: collection_mapping.xml:871
+#, no-c-format
+msgid ""
+"<![CDATA[<hibernate-mapping>\n"
+"\n"
+"    <class name=\"Parent\">\n"
+"        <id name=\"id\">\n"
+"            <generator class=\"sequence\"/>\n"
+"        </id>\n"
+"        <set name=\"children\">\n"
+"            <key column=\"parent_id\" not-null=\"true\"/>\n"
+"            <one-to-many class=\"Child\"/>\n"
+"        </set>\n"
+"    </class>\n"
+"\n"
+"    <class name=\"Child\">\n"
+"        <id name=\"id\">\n"
+"            <generator class=\"sequence\"/>\n"
+"        </id>\n"
+"        <property name=\"name\"/>\n"
+"    </class>\n"
+"\n"
+"</hibernate-mapping>]]>"
 msgstr ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "\n"
-      "    <class name=\"Parent\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\"/>\n"
-      "        </id>\n"
-      "        <set name=\"children\">\n"
-      "            <key column=\"parent_id\" not-null=\"true\"/>\n"
-      "            <one-to-many class=\"Child\"/>\n"
-      "        </set>\n"
-      "    </class>\n"
-      "\n"
-      "    <class name=\"Child\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\"/>\n"
-      "        </id>\n"
-      "        <property name=\"name\"/>\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
 
-#: index.docbook:871
+#. Tag: para
+#: collection_mapping.xml:873
+#, no-c-format
 msgid ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "\n"
-      "    <class name=\"Parent\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\"/>\n"
-      "        </id>\n"
-      "        <set name=\"children\">\n"
-      "            <key column=\"parent_id\" not-null=\"true\"/>\n"
-      "            <one-to-many class=\"Child\"/>\n"
-      "        </set>\n"
-      "    </class>\n"
-      "\n"
-      "    <class name=\"Child\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\"/>\n"
-      "        </id>\n"
-      "        <property name=\"name\"/>\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
-msgstr "En la otra mano, si un hijo pudiera tener m&#x00fa;ltiples padres, ser&#x00ed;a apropiada una asociaci&#x00f3;n muchos-a-muchos:"
+"On the other hand, if a child might have multiple parents, a many-to-many "
+"association is appropriate:"
+msgstr ""
+"En la otra mano, si un hijo pudiera tener múltiples padres, sería apropiada "
+"una asociación muchos-a-muchos:"
 
-#: index.docbook:873
-msgid "On the other hand, if a child might have multiple parents, a many-to-many association is appropriate:"
+#. Tag: programlisting
+#: collection_mapping.xml:878
+#, no-c-format
+msgid ""
+"<![CDATA[<hibernate-mapping>\n"
+"\n"
+"    <class name=\"Parent\">\n"
+"        <id name=\"id\">\n"
+"            <generator class=\"sequence\"/>\n"
+"        </id>\n"
+"        <set name=\"children\" table=\"childset\">\n"
+"            <key column=\"parent_id\"/>\n"
+"            <many-to-many class=\"Child\" column=\"child_id\"/>\n"
+"        </set>\n"
+"    </class>\n"
+"\n"
+"    <class name=\"Child\">\n"
+"        <id name=\"id\">\n"
+"            <generator class=\"sequence\"/>\n"
+"        </id>\n"
+"        <property name=\"name\"/>\n"
+"    </class>\n"
+"\n"
+"</hibernate-mapping>]]>"
 msgstr ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "\n"
-      "    <class name=\"Parent\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\"/>\n"
-      "        </id>\n"
-      "        <set name=\"children\" table=\"childset\">\n"
-      "            <key column=\"parent_id\"/>\n"
-      "            <many-to-many class=\"Child\" column=\"child_id\"/>\n"
-      "        </set>\n"
-      "    </class>\n"
-      "\n"
-      "    <class name=\"Child\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\"/>\n"
-      "        </id>\n"
-      "        <property name=\"name\"/>\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
 
-#: index.docbook:878
-msgid ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "\n"
-      "    <class name=\"Parent\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\"/>\n"
-      "        </id>\n"
-      "        <set name=\"children\" table=\"childset\">\n"
-      "            <key column=\"parent_id\"/>\n"
-      "            <many-to-many class=\"Child\" column=\"child_id\"/>\n"
-      "        </set>\n"
-      "    </class>\n"
-      "\n"
-      "    <class name=\"Child\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\"/>\n"
-      "        </id>\n"
-      "        <property name=\"name\"/>\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
+#. Tag: para
+#: collection_mapping.xml:880
+#, no-c-format
+msgid "Table definitions:"
 msgstr "Definiciones de tabla:"
 
-#: index.docbook:880
-msgid "Table definitions:"
+#. Tag: programlisting
+#: collection_mapping.xml:884
+#, no-c-format
+msgid ""
+"<![CDATA[create table parent ( id bigint not null primary key )\n"
+"create table child ( id bigint not null primary key, name varchar(255) )\n"
+"create table childset ( parent_id bigint not null,\n"
+"                        child_id bigint not null,\n"
+"                        primary key ( parent_id, child_id ) )\n"
+"alter table childset add constraint childsetfk0 (parent_id) references "
+"parent\n"
+"alter table childset add constraint childsetfk1 (child_id) references child]]"
+">"
 msgstr ""
-      "<![CDATA[create table parent ( id bigint not null primary key )\n"
-      "create table child ( id bigint not null primary key, name varchar(255) )\n"
-      "create table childset ( parent_id bigint not null,\n"
-      "                        child_id bigint not null,\n"
-      "                        primary key ( parent_id, child_id ) )\n"
-      "alter table childset add constraint childsetfk0 (parent_id) references parent\n"
-      "alter table childset add constraint childsetfk1 (child_id) references child]]>"
 
-#: index.docbook:884
+#. Tag: para
+#: collection_mapping.xml:886
+#, no-c-format
 msgid ""
-      "<![CDATA[create table parent ( id bigint not null primary key )\n"
-      "create table child ( id bigint not null primary key, name varchar(255) )\n"
-      "create table childset ( parent_id bigint not null,\n"
-      "                        child_id bigint not null,\n"
-      "                        primary key ( parent_id, child_id ) )\n"
-      "alter table childset add constraint childsetfk0 (parent_id) references parent\n"
-      "alter table childset add constraint childsetfk1 (child_id) references child]]>"
-msgstr "Para m&#x00e1;s ejemplos y un paseo completo a trav&#x00e9;s del mapeo de relaciones padre/hijo, ver <xref linkend=\"example-parentchild\"/>."
+"For more examples and a complete walk-through a parent/child relationship "
+"mapping, see <xref linkend=\"example-parentchild\"/>."
+msgstr ""
+"Para más ejemplos y un paseo completo a través del mapeo de relaciones padre/"
+"hijo, ver <xref linkend=\"example-parentchild\"/>."
 
-#: index.docbook:886
-msgid "For more examples and a complete walk-through a parent/child relationship mapping, see <xref linkend=\"example-parentchild\"/>."
-msgstr "Son posibles mapeos de asociaci&#x00f3;n a&#x00fa;n m&#x00e1;s complejos. Catalogaremos todas las posibilidades en el pr&#x00f3;ximo cap&#x00ed;tulo."
-
-#: index.docbook:891
-msgid "Even more exotic association mappings are possible, we will catalog all possibilities in the next chapter."
+#. Tag: para
+#: collection_mapping.xml:891
+#, no-c-format
+msgid ""
+"Even more exotic association mappings are possible, we will catalog all "
+"possibilities in the next chapter."
 msgstr ""
+"Son posibles mapeos de asociación aún más complejos. Catalogaremos todas las "
+"posibilidades en el próximo capítulo."
 
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
+#~ msgid ""
+#~ "<literal>column_name</literal> (required): The name of the column holding "
+#~ "the collection index values."
+#~ msgstr ""
+#~ "<literal>column_name</literal> (requerido): El nombre de la columna que "
+#~ "tiene los valores índice de la colección."
 
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
+#~ msgid ""
+#~ "<literal>base</literal> (optional, defaults to <literal>0</literal>): The "
+#~ "value of the index column that corresponds to the first element of the "
+#~ "list or array."
+#~ msgstr ""
+#~ "<literal>base</literal> (opcional, por defecto a <literal>0</literal>): "
+#~ "El valor de la columna índice que corresponde al primer elemento de la "
+#~ "lista o array."
 
+#~ msgid ""
+#~ "<literal>column</literal> (optional): The name of the column holding the "
+#~ "collection index values."
+#~ msgstr ""
+#~ "<literal>column</literal> (opcional): El nombre de la columna que tiene "
+#~ "los valores índice de la colección."
+
+#~ msgid ""
+#~ "<literal>formula</literal> (optional): A SQL formula used to evaluate the "
+#~ "key of the map."
+#~ msgstr ""
+#~ "<literal>formula</literal> (opcional): Una fórmula SQL usada para evaluar "
+#~ "la clave del mapa."
+
+#~ msgid "<literal>type</literal> (reguired): The type of the map keys."
+#~ msgstr ""
+#~ "<literal>type</literal> (requerido): el tipo de las claves del mapa."
+
+#~ msgid ""
+#~ "<literal>column</literal> (optional): The name of the foreign key column "
+#~ "for the collection index values."
+#~ msgstr ""
+#~ "<literal>column</literal> (opcional): El nombre de la columna clave "
+#~ "foránea para los valores índice de la colección."
+
+#~ msgid ""
+#~ "<literal>formula</literal> (optional): A SQL formula used to evaluate the "
+#~ "foreign key of the map key."
+#~ msgstr ""
+#~ "<literal>formula</literal> (opcional): Una fórmula SQL usada para evaluar "
+#~ "la clave foránea de la clave del mapa."
+
+#~ msgid ""
+#~ "<literal>class</literal> (required): The entity class used as the map key."
+#~ msgstr ""
+#~ "<literal>class</literal> (requerido): La clase de entidad usada como "
+#~ "clave del mapa."
+
+#~ msgid ""
+#~ "<literal>column</literal> (optional): The name of the column holding the "
+#~ "collection element values."
+#~ msgstr ""
+#~ "<literal>column</literal> (opcional): El nombre de la columna que tiene "
+#~ "los valores de los elementos de la colección."
+
+#~ msgid ""
+#~ "<literal>formula</literal> (optional): An SQL formula used to evaluate "
+#~ "the element."
+#~ msgstr ""
+#~ "<literal>formula</literal> (opcional): Una fórmula SQL usada para evaluar "
+#~ "el elemento."
+
+#~ msgid ""
+#~ "<literal>type</literal> (required): The type of the collection element."
+#~ msgstr ""
+#~ "<literal>type</literal> (requerido): El tipo del elemento de colección."
+
+#~ msgid ""
+#~ "A <emphasis>many-to-many association</emphasis> is specified using the "
+#~ "<literal>&lt;many-to-many&gt;</literal> element."
+#~ msgstr ""
+#~ "Una <emphasis>asociación muchos-a-muchos</emphasis> se especifica usando "
+#~ "el elemento <literal>&lt;many-to-many&gt;</literal>."
+
+#~ msgid ""
+#~ "<literal>column</literal> (optional): The name of the element foreign key "
+#~ "column."
+#~ msgstr ""
+#~ "<literal>column</literal> (opcional): El nombre de la columna de clave "
+#~ "foránea del elemento."
+
+#~ msgid ""
+#~ "<literal>formula</literal> (optional): An SQL formula used to evaluate "
+#~ "the element foreign key value."
+#~ msgstr ""
+#~ "<literal>formula</literal> (opcional): Una fórmula SQL opcional usada "
+#~ "para evaluar el valor de clave foránea del elemento."
+
+#~ msgid ""
+#~ "<literal>fetch</literal> (optional - defaults to <literal>join</"
+#~ "literal>): enables outer-join or sequential select fetching for this "
+#~ "association. This is a special case; for full eager fetching (in a single "
+#~ "<literal>SELECT</literal>) of an entity and its many-to-many "
+#~ "relationships to other entities, you would enable <literal>join</literal> "
+#~ "fetching not only of the collection itself, but also with this attribute "
+#~ "on the <literal>&lt;many-to-many&gt;</literal> nested element."
+#~ msgstr ""
+#~ "<literal>fetch</literal> (opcional - por defecto a <literal>join</"
+#~ "literal>): habilita la recuperación por unión externa o selección "
+#~ "secuencial para esta asociación. Este es un caso especial; para una "
+#~ "recuperación completamente temprana (en un solo <literal>SELECT</"
+#~ "literal>) de una entidad y sus relaciones muchos-a-muchos a otras "
+#~ "entidades, deberías habilitar la recuperación <literal>join</literal> no "
+#~ "sólo de la colección misma, sino también con este atributo en el elemento "
+#~ "anidado <literal>&lt;many-to-many&gt;</literal>."
+
+#~ msgid ""
+#~ "<literal>unique</literal> (optional): Enable the DDL generation of a "
+#~ "unique constraint for the foreign-key column. This makes the association "
+#~ "multiplicity effectively one to many."
+#~ msgstr ""
+#~ "<literal>unique</literal> (opcional): Habilita la generación DDL de una "
+#~ "restricción de unicidad para la columna clave foránea. Esto hace la "
+#~ "multiplicidad de la asociación efectivamente uno a muchos."
+
+#~ msgid ""
+#~ "<literal>not-found</literal> (optional - defaults to <literal>exception</"
+#~ "literal>): Specifies how foreign keys that reference missing rows will be "
+#~ "handled: <literal>ignore</literal> will treat a missing row as a null "
+#~ "association."
+#~ msgstr ""
+#~ "<literal>not-found</literal> (opcional - por defecto a "
+#~ "<literal>exception</literal>): Especifica cómo serán manejadas las claves "
+#~ "foráneas que referencian filas perdidas: <literal>ignore</literal> "
+#~ "tratará una fila perdida como una asociación nula."
+
+#~ msgid ""
+#~ "<literal>property-ref</literal>: (optional) The name of a property of the "
+#~ "associated class that is joined to this foreign key. If not specified, "
+#~ "the primary key of the associated class is used."
+#~ msgstr ""
+#~ "UNTRANSLATED! <literal>property-ref</literal>: (optional) The name of a "
+#~ "property of the associated class that is joined to this foreign key. If "
+#~ "not specified, the primary key of the associated class is used."

Modified: core/trunk/documentation/manual/translations/es-ES/content/component_mapping.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/component_mapping.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/component_mapping.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,532 +1,684 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:5
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: component_mapping.xml:5
+#, no-c-format
 msgid "Component Mapping"
 msgstr "Mapeo de Componentes"
 
-#: index.docbook:7
-msgid "The notion of a <emphasis>component</emphasis> is re-used in several different contexts, for different purposes, throughout Hibernate."
-msgstr "La noci&#x00f3;n de un <emphasis>componente</emphasis> es reusada en muchos contextos diferentes, para prop&#x00f3;sitos diferentes, a trav&#x00e9;s de Hibernate."
+#. Tag: para
+#: component_mapping.xml:7
+#, no-c-format
+msgid ""
+"The notion of a <emphasis>component</emphasis> is re-used in several "
+"different contexts, for different purposes, throughout Hibernate."
+msgstr ""
+"La noción de un <emphasis>componente</emphasis> es reusada en muchos "
+"contextos diferentes, para propósitos diferentes, a través de Hibernate."
 
-#: index.docbook:13
+#. Tag: title
+#: component_mapping.xml:13
+#, no-c-format
 msgid "Dependent objects"
 msgstr "Objetos dependientes"
 
-#: index.docbook:15
-msgid "A component is a contained object that is persisted as a value type, not an entity reference. The term \"component\" refers to the object-oriented notion of composition (not to architecture-level components). For example, you might model a person like this:"
-msgstr "Un componente es un objeto contenido que es persistido como un tipo de valor, no una referencia de entidad. El t&#x00e9;rmino \"componente\" hace referencia a la noci&#x00f3;n orientada a objetos de composici&#x00f3;n (no a componentes a nivel de arquitectura). Por ejemplo, podr&#x00ed;as modelar una persona como:"
+#. Tag: para
+#: component_mapping.xml:15
+#, no-c-format
+msgid ""
+"A component is a contained object that is persisted as a value type, not an "
+"entity reference. The term \"component\" refers to the object-oriented "
+"notion of composition (not to architecture-level components). For example, "
+"you might model a person like this:"
+msgstr ""
+"Un componente es un objeto contenido que es persistido como un tipo de "
+"valor, no una referencia de entidad. El término \"componente\" hace "
+"referencia a la noción orientada a objetos de composición (no a componentes "
+"a nivel de arquitectura). Por ejemplo, podrías modelar una persona como:"
 
-#: index.docbook:21
+#. Tag: programlisting
+#: component_mapping.xml:21
+#, no-c-format
 msgid ""
-      "<![CDATA[public class Person {\n"
-      "    private java.util.Date birthday;\n"
-      "    private Name name;\n"
-      "    private String key;\n"
-      "    public String getKey() {\n"
-      "        return key;\n"
-      "    }\n"
-      "    private void setKey(String key) {\n"
-      "        this.key=key;\n"
-      "    }\n"
-      "    public java.util.Date getBirthday() {\n"
-      "        return birthday;\n"
-      "    }\n"
-      "    public void setBirthday(java.util.Date birthday) {\n"
-      "        this.birthday = birthday;\n"
-      "    }\n"
-      "    public Name getName() {\n"
-      "        return name;\n"
-      "    }\n"
-      "    public void setName(Name name) {\n"
-      "        this.name = name;\n"
-      "    }\n"
-      "    ......\n"
-      "    ......\n"
-      "}]]>"
+"<![CDATA[public class Person {\n"
+"    private java.util.Date birthday;\n"
+"    private Name name;\n"
+"    private String key;\n"
+"    public String getKey() {\n"
+"        return key;\n"
+"    }\n"
+"    private void setKey(String key) {\n"
+"        this.key=key;\n"
+"    }\n"
+"    public java.util.Date getBirthday() {\n"
+"        return birthday;\n"
+"    }\n"
+"    public void setBirthday(java.util.Date birthday) {\n"
+"        this.birthday = birthday;\n"
+"    }\n"
+"    public Name getName() {\n"
+"        return name;\n"
+"    }\n"
+"    public void setName(Name name) {\n"
+"        this.name = name;\n"
+"    }\n"
+"    ......\n"
+"    ......\n"
+"}]]>"
 msgstr ""
-      "<![CDATA[public class Person {\n"
-      "    private java.util.Date birthday;\n"
-      "    private Name name;\n"
-      "    private String key;\n"
-      "    public String getKey() {\n"
-      "        return key;\n"
-      "    }\n"
-      "    private void setKey(String key) {\n"
-      "        this.key=key;\n"
-      "    }\n"
-      "    public java.util.Date getBirthday() {\n"
-      "        return birthday;\n"
-      "    }\n"
-      "    public void setBirthday(java.util.Date birthday) {\n"
-      "        this.birthday = birthday;\n"
-      "    }\n"
-      "    public Name getName() {\n"
-      "        return name;\n"
-      "    }\n"
-      "    public void setName(Name name) {\n"
-      "        this.name = name;\n"
-      "    }\n"
-      "    ......\n"
-      "    ......\n"
-      "}]]>"
 
-#: index.docbook:23
+#. Tag: programlisting
+#: component_mapping.xml:23
+#, no-c-format
 msgid ""
-      "<![CDATA[public class Name {\n"
-      "    char initial;\n"
-      "    String first;\n"
-      "    String last;\n"
-      "    public String getFirst() {\n"
-      "        return first;\n"
-      "    }\n"
-      "    void setFirst(String first) {\n"
-      "        this.first = first;\n"
-      "    }\n"
-      "    public String getLast() {\n"
-      "        return last;\n"
-      "    }\n"
-      "    void setLast(String last) {\n"
-      "        this.last = last;\n"
-      "    }\n"
-      "    public char getInitial() {\n"
-      "        return initial;\n"
-      "    }\n"
-      "    void setInitial(char initial) {\n"
-      "        this.initial = initial;\n"
-      "    }\n"
-      "}]]>"
+"<![CDATA[public class Name {\n"
+"    char initial;\n"
+"    String first;\n"
+"    String last;\n"
+"    public String getFirst() {\n"
+"        return first;\n"
+"    }\n"
+"    void setFirst(String first) {\n"
+"        this.first = first;\n"
+"    }\n"
+"    public String getLast() {\n"
+"        return last;\n"
+"    }\n"
+"    void setLast(String last) {\n"
+"        this.last = last;\n"
+"    }\n"
+"    public char getInitial() {\n"
+"        return initial;\n"
+"    }\n"
+"    void setInitial(char initial) {\n"
+"        this.initial = initial;\n"
+"    }\n"
+"}]]>"
 msgstr ""
-      "<![CDATA[public class Name {\n"
-      "    char initial;\n"
-      "    String first;\n"
-      "    String last;\n"
-      "    public String getFirst() {\n"
-      "        return first;\n"
-      "    }\n"
-      "    void setFirst(String first) {\n"
-      "        this.first = first;\n"
-      "    }\n"
-      "    public String getLast() {\n"
-      "        return last;\n"
-      "    }\n"
-      "    void setLast(String last) {\n"
-      "        this.last = last;\n"
-      "    }\n"
-      "    public char getInitial() {\n"
-      "        return initial;\n"
-      "    }\n"
-      "    void setInitial(char initial) {\n"
-      "        this.initial = initial;\n"
-      "    }\n"
-      "}]]>"
 
-#: index.docbook:25
-msgid "Now <literal>Name</literal> may be persisted as a component of <literal>Person</literal>. Notice that <literal>Name</literal> defines getter and setter methods for its persistent properties, but doesn't need to declare any interfaces or identifier properties."
-msgstr "Ahora <literal>Name</literal> puede ser persistido como un componente de <literal>Person</literal>. Observa que <literal>Name</literal> define m&#x00e9;todos getter y setter para sus propiedades persistentes, pero no necesita declarar ninguna interface ni propiedades identificadoras."
+#. Tag: para
+#: component_mapping.xml:25
+#, no-c-format
+msgid ""
+"Now <literal>Name</literal> may be persisted as a component of "
+"<literal>Person</literal>. Notice that <literal>Name</literal> defines "
+"getter and setter methods for its persistent properties, but doesn't need to "
+"declare any interfaces or identifier properties."
+msgstr ""
+"Ahora <literal>Name</literal> puede ser persistido como un componente de "
+"<literal>Person</literal>. Observa que <literal>Name</literal> define "
+"métodos getter y setter para sus propiedades persistentes, pero no necesita "
+"declarar ninguna interface ni propiedades identificadoras."
 
-#: index.docbook:32
+#. Tag: para
+#: component_mapping.xml:32
+#, no-c-format
 msgid "Our Hibernate mapping would look like:"
-msgstr "Nuestro mapeo de Hibernate se ver&#x00ed;a as&#x00ed;:"
+msgstr "Nuestro mapeo de Hibernate se vería así:"
 
-#: index.docbook:36
+#. Tag: programlisting
+#: component_mapping.xml:36
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
-      "    <id name=\"Key\" column=\"pid\" type=\"string\">\n"
-      "        <generator class=\"uuid\"/>\n"
-      "    </id>\n"
-      "    <property name=\"birthday\" type=\"date\"/>\n"
-      "    <component name=\"Name\" class=\"eg.Name\"> <!-- class attribute optional -->\n"
-      "        <property name=\"initial\"/>\n"
-      "        <property name=\"first\"/>\n"
-      "        <property name=\"last\"/>\n"
-      "    </component>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
+"    <id name=\"Key\" column=\"pid\" type=\"string\">\n"
+"        <generator class=\"uuid\"/>\n"
+"    </id>\n"
+"    <property name=\"birthday\" type=\"date\"/>\n"
+"    <component name=\"Name\" class=\"eg.Name\"> <!-- class attribute "
+"optional -->\n"
+"        <property name=\"initial\"/>\n"
+"        <property name=\"first\"/>\n"
+"        <property name=\"last\"/>\n"
+"    </component>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
-      "    <id name=\"Key\" column=\"pid\" type=\"string\">\n"
-      "        <generator class=\"uuid.hex\"/>\n"
-      "    </id>\n"
-      "    <property name=\"birthday\" type=\"date\"/>\n"
-      "    <component name=\"Name\" class=\"eg.Name\"> <!-- class attribute optional -->\n"
-      "        <property name=\"initial\"/>\n"
-      "        <property name=\"first\"/>\n"
-      "        <property name=\"last\"/>\n"
-      "    </component>\n"
-      "</class>]]>"
 
-#: index.docbook:38
-msgid "The person table would have the columns <literal>pid</literal>, <literal>birthday</literal>, <literal>initial</literal>, <literal>first</literal> and <literal>last</literal>."
-msgstr "La tabla person tendr&#x00ed;a las columnas <literal>pid</literal>, <literal>birthday</literal>, <literal>initial</literal>, <literal>first</literal> y <literal>last</literal>."
+#. Tag: para
+#: component_mapping.xml:38
+#, no-c-format
+msgid ""
+"The person table would have the columns <literal>pid</literal>, "
+"<literal>birthday</literal>, <literal>initial</literal>, <literal>first</"
+"literal> and <literal>last</literal>."
+msgstr ""
+"La tabla person tendría las columnas <literal>pid</literal>, "
+"<literal>birthday</literal>, <literal>initial</literal>, <literal>first</"
+"literal> y <literal>last</literal>."
 
-#: index.docbook:46
-msgid "Like all value types, components do not support shared references. In other words, two persons could have the same name, but the two person objects would contain two independent name ojects, only \"the same\" by value. The null value semantics of a component are <emphasis>ad hoc</emphasis>. When reloading the containing object, Hibernate will assume that if all component columns are null, then the entire component is null. This should be okay for most purposes."
-msgstr "Como todos los tipos de valor, los componentes no soportan referencias compartidas. En otras palabras, dos personas pueden tener el mismo nombre, pero los dos objetos persona contendr&#x00ed;an dos objetos nombre independientes, s&#x00f3;lo \"iguales\" en valor. La sem&#x00e1;ntica de valor nulo de un componente es <emphasis>ad hoc</emphasis>. Cuando se recargue el objeto contenedor, Hibernate asumir&#x00e1; que si todas las columnas del componente son nulas, el componente entero es nulo. Esto debe estar bien para la mayor&#x00ed;a de prop&#x00f3;sitos."
+#. Tag: para
+#: component_mapping.xml:46
+#, no-c-format
+msgid ""
+"Like all value types, components do not support shared references. In other "
+"words, two persons could have the same name, but the two person objects "
+"would contain two independent name ojects, only \"the same\" by value. The "
+"null value semantics of a component are <emphasis>ad hoc</emphasis>. When "
+"reloading the containing object, Hibernate will assume that if all component "
+"columns are null, then the entire component is null. This should be okay for "
+"most purposes."
+msgstr ""
+"Como todos los tipos de valor, los componentes no soportan referencias "
+"compartidas. En otras palabras, dos personas pueden tener el mismo nombre, "
+"pero los dos objetos persona contendrían dos objetos nombre independientes, "
+"sólo \"iguales\" en valor. La semántica de valor nulo de un componente es "
+"<emphasis>ad hoc</emphasis>. Cuando se recargue el objeto contenedor, "
+"Hibernate asumirá que si todas las columnas del componente son nulas, el "
+"componente entero es nulo. Esto debe estar bien para la mayoría de "
+"propósitos."
 
-#: index.docbook:55
-msgid "The properties of a component may be of any Hibernate type (collections, many-to-one associations, other components, etc). Nested components should <emphasis>not</emphasis> be considered an exotic usage. Hibernate is intended to support a very fine-grained object model."
-msgstr "Las propiedades de un componentes pueden ser de cualquier tipo de Hibernate (colecciones, muchos-a-uno, asociaciones, otros componentes, etc). Los componentes anidados <emphasis>no</emphasis> deben ser considerados un uso ex&#x00f3;tico. Hibernate est&#x00e1; concebido para soportar un modelo de objetos granularizado en fino."
+#. Tag: para
+#: component_mapping.xml:55
+#, no-c-format
+msgid ""
+"The properties of a component may be of any Hibernate type (collections, "
+"many-to-one associations, other components, etc). Nested components should "
+"<emphasis>not</emphasis> be considered an exotic usage. Hibernate is "
+"intended to support a very fine-grained object model."
+msgstr ""
+"Las propiedades de un componentes pueden ser de cualquier tipo de Hibernate "
+"(colecciones, muchos-a-uno, asociaciones, otros componentes, etc). Los "
+"componentes anidados <emphasis>no</emphasis> deben ser considerados un uso "
+"exótico. Hibernate está concebido para soportar un modelo de objetos "
+"granularizado en fino."
 
-#: index.docbook:62
-msgid "The <literal>&lt;component&gt;</literal> element allows a <literal>&lt;parent&gt;</literal> subelement that maps a property of the component class as a reference back to the containing entity."
-msgstr "El elemento <literal>&lt;component&gt;</literal> permite un subelemento <literal>&lt;parent&gt;</literal> que mapee una propiedad de la clase del componente como una referencia de regreso a la entidad contenedora."
+#. Tag: para
+#: component_mapping.xml:62
+#, no-c-format
+msgid ""
+"The <literal>&lt;component&gt;</literal> element allows a <literal>&lt;"
+"parent&gt;</literal> subelement that maps a property of the component class "
+"as a reference back to the containing entity."
+msgstr ""
+"El elemento <literal>&lt;component&gt;</literal> permite un subelemento "
+"<literal>&lt;parent&gt;</literal> que mapee una propiedad de la clase del "
+"componente como una referencia de regreso a la entidad contenedora."
 
-#: index.docbook:68
+#. Tag: programlisting
+#: component_mapping.xml:68
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
-      "    <id name=\"Key\" column=\"pid\" type=\"string\">\n"
-      "        <generator class=\"uuid\"/>\n"
-      "    </id>\n"
-      "    <property name=\"birthday\" type=\"date\"/>\n"
-      "    <component name=\"Name\" class=\"eg.Name\" unique=\"true\">\n"
-      "        <parent name=\"namedPerson\"/> <!-- reference back to the Person -->\n"
-      "        <property name=\"initial\"/>\n"
-      "        <property name=\"first\"/>\n"
-      "        <property name=\"last\"/>\n"
-      "    </component>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
+"    <id name=\"Key\" column=\"pid\" type=\"string\">\n"
+"        <generator class=\"uuid\"/>\n"
+"    </id>\n"
+"    <property name=\"birthday\" type=\"date\"/>\n"
+"    <component name=\"Name\" class=\"eg.Name\" unique=\"true\">\n"
+"        <parent name=\"namedPerson\"/> <!-- reference back to the Person --"
+">\n"
+"        <property name=\"initial\"/>\n"
+"        <property name=\"first\"/>\n"
+"        <property name=\"last\"/>\n"
+"    </component>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
-      "    <id name=\"Key\" column=\"pid\" type=\"string\">\n"
-      "        <generator class=\"uuid.hex\"/>\n"
-      "    </id>\n"
-      "    <property name=\"birthday\" type=\"date\"/>\n"
-      "    <component name=\"Name\" class=\"eg.Name\" unique=\"true\">\n"
-      "        <parent name=\"namedPerson\"/> <!-- reference back to the Person -->\n"
-      "        <property name=\"initial\"/>\n"
-      "        <property name=\"first\"/>\n"
-      "        <property name=\"last\"/>\n"
-      "    </component>\n"
-      "</class>]]>"
 
-#: index.docbook:73
+#. Tag: title
+#: component_mapping.xml:73
+#, no-c-format
 msgid "Collections of dependent objects"
 msgstr "Colecciones de objetos dependientes"
 
-#: index.docbook:75
-msgid "Collections of components are supported (eg. an array of type <literal>Name</literal>). Declare your component collection by replacing the <literal>&lt;element&gt;</literal> tag with a <literal>&lt;composite-element&gt;</literal> tag."
-msgstr "Las colecciones de componentes est&#x00e1;n soportadas (por ejemplo, un array de tipo <literal>Name</literal>). Declara tu colecci&#x00f3;n de componentes remplazando la etiqueta <literal>&lt;element&gt;</literal> por una etiqueta <literal>&lt;composite-element&gt;</literal>."
+#. Tag: para
+#: component_mapping.xml:75
+#, no-c-format
+msgid ""
+"Collections of components are supported (eg. an array of type <literal>Name</"
+"literal>). Declare your component collection by replacing the <literal>&lt;"
+"element&gt;</literal> tag with a <literal>&lt;composite-element&gt;</"
+"literal> tag."
+msgstr ""
+"Las colecciones de componentes están soportadas (por ejemplo, un array de "
+"tipo <literal>Name</literal>). Declara tu colección de componentes "
+"remplazando la etiqueta <literal>&lt;element&gt;</literal> por una etiqueta "
+"<literal>&lt;composite-element&gt;</literal>."
 
-#: index.docbook:82
+#. Tag: programlisting
+#: component_mapping.xml:82
+#, no-c-format
 msgid ""
-      "<![CDATA[<set name=\"someNames\" table=\"some_names\" lazy=\"true\">\n"
-      "    <key column=\"id\"/>\n"
-      "    <composite-element class=\"eg.Name\"> <!-- class attribute required -->\n"
-      "        <property name=\"initial\"/>\n"
-      "        <property name=\"first\"/>\n"
-      "        <property name=\"last\"/>\n"
-      "    </composite-element>\n"
-      "</set>]]>"
+"<![CDATA[<set name=\"someNames\" table=\"some_names\" lazy=\"true\">\n"
+"    <key column=\"id\"/>\n"
+"    <composite-element class=\"eg.Name\"> <!-- class attribute required -->\n"
+"        <property name=\"initial\"/>\n"
+"        <property name=\"first\"/>\n"
+"        <property name=\"last\"/>\n"
+"    </composite-element>\n"
+"</set>]]>"
 msgstr ""
-      "<![CDATA[<set name=\"someNames\" table=\"some_names\" lazy=\"true\">\n"
-      "    <key column=\"id\"/>\n"
-      "    <composite-element class=\"eg.Name\"> <!-- class attribute required -->\n"
-      "        <property name=\"initial\"/>\n"
-      "        <property name=\"first\"/>\n"
-      "        <property name=\"last\"/>\n"
-      "    </composite-element>\n"
-      "</set>]]>"
 
-#: index.docbook:84
-msgid "Note: if you define a <literal>Set</literal> of composite elements, it is very important to implement <literal>equals()</literal> and <literal>hashCode()</literal> correctly."
-msgstr "Nota: si defines un <literal>Set</literal> de elementos compuestos, es muy importante implementar <literal>equals()</literal> y <literal>hashCode()</literal> correctamente."
+#. Tag: para
+#: component_mapping.xml:84
+#, no-c-format
+msgid ""
+"Note: if you define a <literal>Set</literal> of composite elements, it is "
+"very important to implement <literal>equals()</literal> and <literal>hashCode"
+"()</literal> correctly."
+msgstr ""
+"Nota: si defines un <literal>Set</literal> de elementos compuestos, es muy "
+"importante implementar <literal>equals()</literal> y <literal>hashCode()</"
+"literal> correctamente."
 
-#: index.docbook:90
-msgid "Composite elements may contain components but not collections. If your composite element itself contains components, use the <literal>&lt;nested-composite-element&gt;</literal> tag. This is a pretty exotic case - a collection of components which themselves have components. By this stage you should be asking yourself if a one-to-many association is more appropriate. Try remodelling the composite element as an entity - but note that even though the Java model is the same, the relational model and persistence semantics are still slightly different."
-msgstr "Los elementos compuestos pueden contener componentes pero no colecciones. Si tu elemento compuesto contiene a su vez componentes, usa la etiqueta <literal>&lt;nested-composite-element&gt;</literal>. Este es un caso bastante ex&#x00f3;tico - una colecci&#x00f3;n de componentes que a su vez tienen componentes. A esta altura debes estar pregunt&#x00e1;ndote si una asociaci&#x00f3;n uno-a-muchos es m&#x00e1;s apropiada. Intenta remodelar el elemento compuesto como una entidad - pero observa que aunque el modelo Java es el mismo, el modelo relacional y la sem&#x00e1;ntica de persistencia siguen siendo ligeramente diferentes."
+#. Tag: para
+#: component_mapping.xml:90
+#, no-c-format
+msgid ""
+"Composite elements may contain components but not collections. If your "
+"composite element itself contains components, use the <literal>&lt;nested-"
+"composite-element&gt;</literal> tag. This is a pretty exotic case - a "
+"collection of components which themselves have components. By this stage you "
+"should be asking yourself if a one-to-many association is more appropriate. "
+"Try remodelling the composite element as an entity - but note that even "
+"though the Java model is the same, the relational model and persistence "
+"semantics are still slightly different."
+msgstr ""
+"Los elementos compuestos pueden contener componentes pero no colecciones. Si "
+"tu elemento compuesto contiene a su vez componentes, usa la etiqueta "
+"<literal>&lt;nested-composite-element&gt;</literal>. Este es un caso "
+"bastante exótico - una colección de componentes que a su vez tienen "
+"componentes. A esta altura debes estar preguntándote si una asociación uno-a-"
+"muchos es más apropiada. Intenta remodelar el elemento compuesto como una "
+"entidad - pero observa que aunque el modelo Java es el mismo, el modelo "
+"relacional y la semántica de persistencia siguen siendo ligeramente "
+"diferentes."
 
-#: index.docbook:102
-msgid "Please note that a composite element mapping doesn't support null-able properties if you're using a <literal>&lt;set&gt;</literal>. Hibernate has to use each columns value to identify a record when deleting objects (there is no separate primary key column in the composite element table), which is not possible with null values. You have to either use only not-null properties in a composite-element or choose a <literal>&lt;list&gt;</literal>, <literal>&lt;map&gt;</literal>, <literal>&lt;bag&gt;</literal> or <literal>&lt;idbag&gt;</literal>."
-msgstr "Por favor observa que un mapeo de elemento compuesto no soporta propiedades nulables si est&#x00e1;s usando un <literal>&lt;set&gt;</literal>. Hibernate tiene que usar cada columna para identificar un registro al borrar objetos (no hay una columna clave primaria separada en la tabla del elemento compuesto), lo que es imposible con valores nulos. Tienes que, o bien usar s&#x00f3;lo propiedades no nulas en un elemento compuesto o elegir un <literal>&lt;list&gt;</literal>, <literal>&lt;map&gt;</literal>, <literal>&lt;bag&gt;</literal> o <literal>&lt;idbag&gt;</literal>."
+#. Tag: para
+#: component_mapping.xml:102
+#, no-c-format
+msgid ""
+"Please note that a composite element mapping doesn't support null-able "
+"properties if you're using a <literal>&lt;set&gt;</literal>. Hibernate has "
+"to use each columns value to identify a record when deleting objects (there "
+"is no separate primary key column in the composite element table), which is "
+"not possible with null values. You have to either use only not-null "
+"properties in a composite-element or choose a <literal>&lt;list&gt;</"
+"literal>, <literal>&lt;map&gt;</literal>, <literal>&lt;bag&gt;</literal> or "
+"<literal>&lt;idbag&gt;</literal>."
+msgstr ""
+"Por favor observa que un mapeo de elemento compuesto no soporta propiedades "
+"nulables si estás usando un <literal>&lt;set&gt;</literal>. Hibernate tiene "
+"que usar cada columna para identificar un registro al borrar objetos (no hay "
+"una columna clave primaria separada en la tabla del elemento compuesto), lo "
+"que es imposible con valores nulos. Tienes que, o bien usar sólo propiedades "
+"no nulas en un elemento compuesto o elegir un <literal>&lt;list&gt;</"
+"literal>, <literal>&lt;map&gt;</literal>, <literal>&lt;bag&gt;</literal> o "
+"<literal>&lt;idbag&gt;</literal>."
 
-#: index.docbook:113
-msgid "A special case of a composite element is a composite element with a nested <literal>&lt;many-to-one&gt;</literal> element. A mapping like this allows you to map extra columns of a many-to-many association table to the composite element class. The following is a many-to-many association from <literal>Order</literal> to <literal>Item</literal> where <literal>purchaseDate</literal>, <literal>price</literal> and <literal>quantity</literal> are properties of the association:"
-msgstr "Un caso especial de un elemento compuesto es un elemento compuesto con un elemento anidado <literal>&lt;many-to-one&gt;</literal>. Un mapeo como este te permite mapear columnas extra de una tabla de asociaci&#x00f3;n muchos-a-muchos a la clase del elemento compuesto. La siguiente es una asociaci&#x00f3;n muchos-a-muchos de <literal>Order</literal> a <literal>Item</literal> donde <literal>purchaseDate</literal>, <literal>price</literal> y <literal>quantity</literal> son propiedades de la asociaci&#x00f3;n:"
+#. Tag: para
+#: component_mapping.xml:113
+#, no-c-format
+msgid ""
+"A special case of a composite element is a composite element with a nested "
+"<literal>&lt;many-to-one&gt;</literal> element. A mapping like this allows "
+"you to map extra columns of a many-to-many association table to the "
+"composite element class. The following is a many-to-many association from "
+"<literal>Order</literal> to <literal>Item</literal> where "
+"<literal>purchaseDate</literal>, <literal>price</literal> and "
+"<literal>quantity</literal> are properties of the association:"
+msgstr ""
+"Un caso especial de un elemento compuesto es un elemento compuesto con un "
+"elemento anidado <literal>&lt;many-to-one&gt;</literal>. Un mapeo como este "
+"te permite mapear columnas extra de una tabla de asociación muchos-a-muchos "
+"a la clase del elemento compuesto. La siguiente es una asociación muchos-a-"
+"muchos de <literal>Order</literal> a <literal>Item</literal> donde "
+"<literal>purchaseDate</literal>, <literal>price</literal> y "
+"<literal>quantity</literal> son propiedades de la asociación:"
 
-#: index.docbook:123
+#. Tag: programlisting
+#: component_mapping.xml:123
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"eg.Order\" .... >\n"
-      "    ....\n"
-      "    <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true\">\n"
-      "        <key column=\"order_id\">\n"
-      "        <composite-element class=\"eg.Purchase\">\n"
-      "            <property name=\"purchaseDate\"/>\n"
-      "            <property name=\"price\"/>\n"
-      "            <property name=\"quantity\"/>\n"
-      "            <many-to-one name=\"item\" class=\"eg.Item\"/> <!-- class attribute is optional -->\n"
-      "        </composite-element>\n"
-      "    </set>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"eg.Order\" .... >\n"
+"    ....\n"
+"    <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true\">\n"
+"        <key column=\"order_id\">\n"
+"        <composite-element class=\"eg.Purchase\">\n"
+"            <property name=\"purchaseDate\"/>\n"
+"            <property name=\"price\"/>\n"
+"            <property name=\"quantity\"/>\n"
+"            <many-to-one name=\"item\" class=\"eg.Item\"/> <!-- class "
+"attribute is optional -->\n"
+"        </composite-element>\n"
+"    </set>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"eg.Order\" .... >\n"
-      "    ....\n"
-      "    <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true\">\n"
-      "        <key column=\"order_id\">\n"
-      "        <composite-element class=\"eg.Purchase\">\n"
-      "            <property name=\"purchaseDate\"/>\n"
-      "            <property name=\"price\"/>\n"
-      "            <property name=\"quantity\"/>\n"
-      "            <many-to-one name=\"item\" class=\"eg.Item\"/> <!-- class attribute is optional -->\n"
-      "        </composite-element>\n"
-      "    </set>\n"
-      "</class>]]>"
 
-#: index.docbook:125
-msgid "Of course, there can't be a reference to the purchae on the other side, for bidirectional association navigation. Remember that components are value types and don't allow shared references. A single <literal>Purchase</literal> can be in the set of an <literal>Order</literal>, but it can't be referenced by the <literal>Item</literal> at the same time."
-msgstr "Por supuesto, no puede haber una referencia a la compra del otro lado para la navegaci&#x00f3;n bidireccional de la asociaci&#x00f3;n. Recuerda que los componentes son tipos de valor no permiten referencias compartidas. Una sola <literal>Purchase</literal> puede estar en el conjunto de una <literal>Order</literal>, pero no puede ser referenciada por el <literal>Item</literal> al mismo tiempo."
+#. Tag: para
+#: component_mapping.xml:125
+#, no-c-format
+msgid ""
+"Of course, there can't be a reference to the purchae on the other side, for "
+"bidirectional association navigation. Remember that components are value "
+"types and don't allow shared references. A single <literal>Purchase</"
+"literal> can be in the set of an <literal>Order</literal>, but it can't be "
+"referenced by the <literal>Item</literal> at the same time."
+msgstr ""
+"Por supuesto, no puede haber una referencia a la compra del otro lado para "
+"la navegación bidireccional de la asociación. Recuerda que los componentes "
+"son tipos de valor no permiten referencias compartidas. Una sola "
+"<literal>Purchase</literal> puede estar en el conjunto de una "
+"<literal>Order</literal>, pero no puede ser referenciada por el "
+"<literal>Item</literal> al mismo tiempo."
 
-#: index.docbook:133
+#. Tag: para
+#: component_mapping.xml:133
+#, no-c-format
 msgid "Even ternary (or quaternary, etc) associations are possible:"
 msgstr "Incluso son posibles las asociaciones ternarias (o cuaternarias, etc):"
 
-#: index.docbook:135
+#. Tag: programlisting
+#: component_mapping.xml:135
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"eg.Order\" .... >\n"
-      "    ....\n"
-      "    <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true\">\n"
-      "        <key column=\"order_id\">\n"
-      "        <composite-element class=\"eg.OrderLine\">\n"
-      "            <many-to-one name=\"purchaseDetails class=\"eg.Purchase\"/>\n"
-      "            <many-to-one name=\"item\" class=\"eg.Item\"/>\n"
-      "        </composite-element>\n"
-      "    </set>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"eg.Order\" .... >\n"
+"    ....\n"
+"    <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true\">\n"
+"        <key column=\"order_id\">\n"
+"        <composite-element class=\"eg.OrderLine\">\n"
+"            <many-to-one name=\"purchaseDetails class=\"eg.Purchase\"/>\n"
+"            <many-to-one name=\"item\" class=\"eg.Item\"/>\n"
+"        </composite-element>\n"
+"    </set>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"eg.Order\" .... >\n"
-      "    ....\n"
-      "    <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true\">\n"
-      "        <key column=\"order_id\">\n"
-      "        <composite-element class=\"eg.OrderLine\">\n"
-      "            <many-to-one name=\"purchaseDetails class=\"eg.Purchase\"/>\n"
-      "            <many-to-one name=\"item\" class=\"eg.Item\"/>\n"
-      "        </composite-element>\n"
-      "    </set>\n"
-      "</class>]]>"
 
-#: index.docbook:137
-msgid "Composite elements may appear in queries using the same syntax as associations to other entities."
-msgstr "Los elementos compuestos pueden aparecer en consultas usando la misma sint&#x00e1;xis que las asociaciones a otras entidades."
+#. Tag: para
+#: component_mapping.xml:137
+#, no-c-format
+msgid ""
+"Composite elements may appear in queries using the same syntax as "
+"associations to other entities."
+msgstr ""
+"Los elementos compuestos pueden aparecer en consultas usando la misma "
+"sintáxis que las asociaciones a otras entidades."
 
-#: index.docbook:145
+#. Tag: title
+#: component_mapping.xml:145
+#, no-c-format
 msgid "Components as Map indices"
-msgstr "Componentes como &#x00ed;ndices de Map"
+msgstr "Componentes como índices de Map"
 
-#: index.docbook:147
-msgid "The <literal>&lt;composite-map-key&gt;</literal> element lets you map a component class as the key of a <literal>Map</literal>. Make sure you override <literal>hashCode()</literal> and <literal>equals()</literal> correctly on the component class."
-msgstr "El elemento <literal>&lt;composite-map-key&gt;</literal> te permite mapear una clase componente como la clave de un <literal>Map</literal>. Aseg&#x00fa;rate que sobrescribes <literal>hashCode()</literal> y <literal>equals()</literal> correctamente en la clase componente."
+#. Tag: para
+#: component_mapping.xml:147
+#, no-c-format
+msgid ""
+"The <literal>&lt;composite-map-key&gt;</literal> element lets you map a "
+"component class as the key of a <literal>Map</literal>. Make sure you "
+"override <literal>hashCode()</literal> and <literal>equals()</literal> "
+"correctly on the component class."
+msgstr ""
+"El elemento <literal>&lt;composite-map-key&gt;</literal> te permite mapear "
+"una clase componente como la clave de un <literal>Map</literal>. Asegúrate "
+"que sobrescribes <literal>hashCode()</literal> y <literal>equals()</literal> "
+"correctamente en la clase componente."
 
-#: index.docbook:156
+#. Tag: title
+#: component_mapping.xml:156
+#, no-c-format
 msgid "Components as composite identifiers"
 msgstr "Componentes como identificadores compuestos"
 
-#: index.docbook:158
-msgid "You may use a component as an identifier of an entity class. Your component class must satisfy certain requirements:"
-msgstr "Puedes usar un componente como un identidicador de una clase entidad. Tu clase componente debe satisfacer ciertos requerimientos:"
+#. Tag: para
+#: component_mapping.xml:158
+#, no-c-format
+msgid ""
+"You may use a component as an identifier of an entity class. Your component "
+"class must satisfy certain requirements:"
+msgstr ""
+"Puedes usar un componente como un identidicador de una clase entidad. Tu "
+"clase componente debe satisfacer ciertos requerimientos:"
 
-#: index.docbook:165
+#. Tag: para
+#: component_mapping.xml:165
+#, no-c-format
 msgid "It must implement <literal>java.io.Serializable</literal>."
 msgstr "Debe implementar <literal>java.io.Serializable</literal>."
 
-#: index.docbook:170
-msgid "It must re-implement <literal>equals()</literal> and <literal>hashCode()</literal>, consistently with the database's notion of composite key equality."
-msgstr "Debe re-implementar <literal>equals()</literal> y <literal>hashCode()</literal>, consistentemente con la noci&#x00f3;n de base de datos de igualdad de clave compuesta."
+#. Tag: para
+#: component_mapping.xml:170
+#, no-c-format
+msgid ""
+"It must re-implement <literal>equals()</literal> and <literal>hashCode()</"
+"literal>, consistently with the database's notion of composite key equality."
+msgstr ""
+"Debe re-implementar <literal>equals()</literal> y <literal>hashCode()</"
+"literal>, consistentemente con la noción de base de datos de igualdad de "
+"clave compuesta."
 
-#: index.docbook:179
-msgid "Note: in Hibernate3, the second requirement is not an absolutely hard requirement of Hibernate. But do it anyway."
-msgstr "Nota: en Hibernat3, el segundo requerimiento no es absolutamente un requerimiento r&#x00ed;gido de Hibernate. Pero de todas formas, h&#x00e1;zlo."
+#. Tag: emphasis
+#: component_mapping.xml:179
+#, no-c-format
+msgid ""
+"Note: in Hibernate3, the second requirement is not an absolutely hard "
+"requirement of Hibernate. But do it anyway."
+msgstr ""
+"Nota: en Hibernat3, el segundo requerimiento no es absolutamente un "
+"requerimiento rígido de Hibernate. Pero de todas formas, házlo."
 
-#: index.docbook:183
-msgid "You can't use an <literal>IdentifierGenerator</literal> to generate composite keys. Instead the application must assign its own identifiers."
-msgstr "No puedes usar un <literal>IdentifierGenerator</literal> para generar claves compuestas. La aplicaci&#x00f3;n debe, en cambio, asignar sus propios identificadores."
+#. Tag: para
+#: component_mapping.xml:183
+#, no-c-format
+msgid ""
+"You can't use an <literal>IdentifierGenerator</literal> to generate "
+"composite keys. Instead the application must assign its own identifiers."
+msgstr ""
+"No puedes usar un <literal>IdentifierGenerator</literal> para generar claves "
+"compuestas. La aplicación debe, en cambio, asignar sus propios "
+"identificadores."
 
-#: index.docbook:188
-msgid "Use the <literal>&lt;composite-id&gt;</literal> tag (with nested <literal>&lt;key-property&gt;</literal> elements) in place of the usual <literal>&lt;id&gt;</literal> declaration. For example, the <literal>OrderLine</literal> class has a primary key that depends upon the (composite) primary key of <literal>Order</literal>."
-msgstr "Usa la etiqueta <literal>&lt;composite-id&gt;</literal> (con elementos anidados <literal>&lt;key-property&gt;</literal>) en lugar de la usual declaraci&#x00f3;n <literal>&lt;id&gt;</literal>. Por ejemplo, la clase <literal>OrderLine</literal> tiene una clave primaria que depende de la clave primaria (compuesta) de <literal>Order</literal>."
+#. Tag: para
+#: component_mapping.xml:188
+#, no-c-format
+msgid ""
+"Use the <literal>&lt;composite-id&gt;</literal> tag (with nested "
+"<literal>&lt;key-property&gt;</literal> elements) in place of the usual "
+"<literal>&lt;id&gt;</literal> declaration. For example, the "
+"<literal>OrderLine</literal> class has a primary key that depends upon the "
+"(composite) primary key of <literal>Order</literal>."
+msgstr ""
+"Usa la etiqueta <literal>&lt;composite-id&gt;</literal> (con elementos "
+"anidados <literal>&lt;key-property&gt;</literal>) en lugar de la usual "
+"declaración <literal>&lt;id&gt;</literal>. Por ejemplo, la clase "
+"<literal>OrderLine</literal> tiene una clave primaria que depende de la "
+"clave primaria (compuesta) de <literal>Order</literal>."
 
-#: index.docbook:196
+#. Tag: programlisting
+#: component_mapping.xml:196
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"OrderLine\">\n"
-      "    \n"
-      "    <composite-id name=\"id\" class=\"OrderLineId\">\n"
-      "        <key-property name=\"lineId\"/>\n"
-      "        <key-property name=\"orderId\"/>\n"
-      "        <key-property name=\"customerId\"/>\n"
-      "    </composite-id>\n"
-      "    \n"
-      "    <property name=\"name\"/>\n"
-      "    \n"
-      "    <many-to-one name=\"order\" class=\"Order\"\n"
-      "            insert=\"false\" update=\"false\">\n"
-      "        <column name=\"orderId\"/>\n"
-      "        <column name=\"customerId\"/>\n"
-      "    </many-to-one>\n"
-      "    ....\n"
-      "    \n"
-      "</class>]]>"
+"<![CDATA[<class name=\"OrderLine\">\n"
+"    \n"
+"    <composite-id name=\"id\" class=\"OrderLineId\">\n"
+"        <key-property name=\"lineId\"/>\n"
+"        <key-property name=\"orderId\"/>\n"
+"        <key-property name=\"customerId\"/>\n"
+"    </composite-id>\n"
+"    \n"
+"    <property name=\"name\"/>\n"
+"    \n"
+"    <many-to-one name=\"order\" class=\"Order\"\n"
+"            insert=\"false\" update=\"false\">\n"
+"        <column name=\"orderId\"/>\n"
+"        <column name=\"customerId\"/>\n"
+"    </many-to-one>\n"
+"    ....\n"
+"    \n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"OrderLine\">\n"
-      "    \n"
-      "    <composite-id name=\"id\" class=\"OrderLineId\">\n"
-      "        <key-property name=\"lineId\"/>\n"
-      "        <key-property name=\"orderId\"/>\n"
-      "        <key-property name=\"customerId\"/>\n"
-      "    </composite-id>\n"
-      "    \n"
-      "    <property name=\"name\"/>\n"
-      "    \n"
-      "    <many-to-one name=\"order\" class=\"Order\"\n"
-      "            insert=\"false\" update=\"false\">\n"
-      "        <column name=\"orderId\"/>\n"
-      "        <column name=\"customerId\"/>\n"
-      "    </many-to-one>\n"
-      "    ....\n"
-      "    \n"
-      "</class>]]>"
 
-#: index.docbook:198
-msgid "Now, any foreign keys referencing the <literal>OrderLine</literal> table are also composite. You must declare this in your mappings for other classes. An association to <literal>OrderLine</literal> would be mapped like this:"
-msgstr "Ahora, cualquier clave for&#x00e1;nea que referencie la tabla de <literal>OrderLine</literal> es tambi&#x00e9;n compuesta. Debes declarar esto en tus mapeos de otras clases. Una asociaci&#x00f3;n a <literal>OrderLine</literal> ser&#x00ed;a mapeado as&#x00ed;:"
+#. Tag: para
+#: component_mapping.xml:198
+#, no-c-format
+msgid ""
+"Now, any foreign keys referencing the <literal>OrderLine</literal> table are "
+"also composite. You must declare this in your mappings for other classes. An "
+"association to <literal>OrderLine</literal> would be mapped like this:"
+msgstr ""
+"Ahora, cualquier clave foránea que referencie la tabla de "
+"<literal>OrderLine</literal> es también compuesta. Debes declarar esto en "
+"tus mapeos de otras clases. Una asociación a <literal>OrderLine</literal> "
+"sería mapeado así:"
 
-#: index.docbook:204
+#. Tag: programlisting
+#: component_mapping.xml:204
+#, no-c-format
 msgid ""
-      "<![CDATA[<many-to-one name=\"orderLine\" class=\"OrderLine\">\n"
-      "<!-- the \"class\" attribute is optional, as usual -->\n"
-      "    <column name=\"lineId\"/>\n"
-      "    <column name=\"orderId\"/>\n"
-      "    <column name=\"customerId\"/>\n"
-      "</many-to-one>]]>"
+"<![CDATA[<many-to-one name=\"orderLine\" class=\"OrderLine\">\n"
+"<!-- the \"class\" attribute is optional, as usual -->\n"
+"    <column name=\"lineId\"/>\n"
+"    <column name=\"orderId\"/>\n"
+"    <column name=\"customerId\"/>\n"
+"</many-to-one>]]>"
 msgstr ""
-      "<![CDATA[<many-to-one name=\"orderLine\" class=\"OrderLine\">\n"
-      "<!-- the \"class\" attribute is optional, as usual -->\n"
-      "    <column name=\"lineId\"/>\n"
-      "    <column name=\"orderId\"/>\n"
-      "    <column name=\"customerId\"/>\n"
-      "</many-to-one>]]>"
 
-#: index.docbook:206
-msgid "(Note that the <literal>&lt;column&gt;</literal> tag is an alternative to the <literal>column</literal> attribute everywhere.)"
-msgstr "(Nota que la etiqueta <literal>&lt;column&gt;</literal> es una alternativa al atributo <literal>column</literal> en cualquier sitio.)"
+#. Tag: para
+#: component_mapping.xml:206
+#, no-c-format
+msgid ""
+"(Note that the <literal>&lt;column&gt;</literal> tag is an alternative to "
+"the <literal>column</literal> attribute everywhere.)"
+msgstr ""
+"(Nota que la etiqueta <literal>&lt;column&gt;</literal> es una alternativa "
+"al atributo <literal>column</literal> en cualquier sitio.)"
 
-#: index.docbook:211
-msgid "A <literal>many-to-many</literal> association to <literal>OrderLine</literal> also uses the composite foreign key:"
-msgstr "Una asociaci&#x00f3;n <literal>muchos-a-muchos</literal> a <literal>OrderLine</literal> tambi&#x00e9;n usa la clave for&#x00e1;nea compuesta:"
+#. Tag: para
+#: component_mapping.xml:211
+#, no-c-format
+msgid ""
+"A <literal>many-to-many</literal> association to <literal>OrderLine</"
+"literal> also uses the composite foreign key:"
+msgstr ""
+"Una asociación <literal>muchos-a-muchos</literal> a <literal>OrderLine</"
+"literal> también usa la clave foránea compuesta:"
 
-#: index.docbook:216
+#. Tag: programlisting
+#: component_mapping.xml:216
+#, no-c-format
 msgid ""
-      "<![CDATA[<set name=\"undeliveredOrderLines\">\n"
-      "    <key column name=\"warehouseId\"/>\n"
-      "    <many-to-many class=\"OrderLine\">\n"
-      "        <column name=\"lineId\"/>\n"
-      "        <column name=\"orderId\"/>\n"
-      "        <column name=\"customerId\"/>\n"
-      "    </many-to-many>\n"
-      "</set>]]>"
+"<![CDATA[<set name=\"undeliveredOrderLines\">\n"
+"    <key column name=\"warehouseId\"/>\n"
+"    <many-to-many class=\"OrderLine\">\n"
+"        <column name=\"lineId\"/>\n"
+"        <column name=\"orderId\"/>\n"
+"        <column name=\"customerId\"/>\n"
+"    </many-to-many>\n"
+"</set>]]>"
 msgstr ""
-      "<![CDATA[<set name=\"undeliveredOrderLines\">\n"
-      "    <key column name=\"warehouseId\"/>\n"
-      "    <many-to-many class=\"OrderLine\">\n"
-      "        <column name=\"lineId\"/>\n"
-      "        <column name=\"orderId\"/>\n"
-      "        <column name=\"customerId\"/>\n"
-      "    </many-to-many>\n"
-      "</set>]]>"
 
-#: index.docbook:218
-msgid "The collection of <literal>OrderLine</literal>s in <literal>Order</literal> would use:"
-msgstr "La colecci&#x00f3;n de <literal>OrderLine</literal>s en <literal>Order</literal> usar&#x00ed;a:"
+#. Tag: para
+#: component_mapping.xml:218
+#, no-c-format
+msgid ""
+"The collection of <literal>OrderLine</literal>s in <literal>Order</literal> "
+"would use:"
+msgstr ""
+"La colección de <literal>OrderLine</literal>s en <literal>Order</literal> "
+"usaría:"
 
-#: index.docbook:223
+#. Tag: programlisting
+#: component_mapping.xml:223
+#, no-c-format
 msgid ""
-      "<![CDATA[<set name=\"orderLines\" inverse=\"true\">\n"
-      "    <key>\n"
-      "        <column name=\"orderId\"/>\n"
-      "        <column name=\"customerId\"/>\n"
-      "    </key>\n"
-      "    <one-to-many class=\"OrderLine\"/>\n"
-      "</set>]]>"
+"<![CDATA[<set name=\"orderLines\" inverse=\"true\">\n"
+"    <key>\n"
+"        <column name=\"orderId\"/>\n"
+"        <column name=\"customerId\"/>\n"
+"    </key>\n"
+"    <one-to-many class=\"OrderLine\"/>\n"
+"</set>]]>"
 msgstr ""
-      "<![CDATA[<set name=\"orderLines\" inverse=\"true\">\n"
-      "    <key>\n"
-      "        <column name=\"orderId\"/>\n"
-      "        <column name=\"customerId\"/>\n"
-      "    </key>\n"
-      "    <one-to-many class=\"OrderLine\"/>\n"
-      "</set>]]>"
 
-#: index.docbook:225
-msgid "(The <literal>&lt;one-to-many&gt;</literal> element, as usual, declares no columns.)"
-msgstr "(El elemento <literal>&lt;one-to-many&gt;</literal>, como es usual, no declara columnas.)"
+#. Tag: para
+#: component_mapping.xml:225
+#, no-c-format
+msgid ""
+"(The <literal>&lt;one-to-many&gt;</literal> element, as usual, declares no "
+"columns.)"
+msgstr ""
+"(El elemento <literal>&lt;one-to-many&gt;</literal>, como es usual, no "
+"declara columnas.)"
 
-#: index.docbook:229
-msgid "If <literal>OrderLine</literal> itself owns a collection, it also has a composite foreign key."
-msgstr "Si <literal>OrderLine</literal> posee una colecci&#x00f3;n por s&#x00ed; misma, tiene tambi&#x00e9;n una clave for&#x00e1;nea compuesta."
+#. Tag: para
+#: component_mapping.xml:229
+#, no-c-format
+msgid ""
+"If <literal>OrderLine</literal> itself owns a collection, it also has a "
+"composite foreign key."
+msgstr ""
+"Si <literal>OrderLine</literal> posee una colección por sí misma, tiene "
+"también una clave foránea compuesta."
 
-#: index.docbook:234
+#. Tag: programlisting
+#: component_mapping.xml:234
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"OrderLine\">\n"
-      "    ....\n"
-      "    ....\n"
-      "    <list name=\"deliveryAttempts\">\n"
-      "        <key>   <!-- a collection inherits the composite key type -->\n"
-      "            <column name=\"lineId\"/>\n"
-      "            <column name=\"orderId\"/>\n"
-      "            <column name=\"customerId\"/>\n"
-      "        </key>\n"
-      "        <list-index column=\"attemptId\" base=\"1\"/>\n"
-      "        <composite-element class=\"DeliveryAttempt\">\n"
-      "            ...\n"
-      "        </composite-element>\n"
-      "    </set>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"OrderLine\">\n"
+"    ....\n"
+"    ....\n"
+"    <list name=\"deliveryAttempts\">\n"
+"        <key>   <!-- a collection inherits the composite key type -->\n"
+"            <column name=\"lineId\"/>\n"
+"            <column name=\"orderId\"/>\n"
+"            <column name=\"customerId\"/>\n"
+"        </key>\n"
+"        <list-index column=\"attemptId\" base=\"1\"/>\n"
+"        <composite-element class=\"DeliveryAttempt\">\n"
+"            ...\n"
+"        </composite-element>\n"
+"    </set>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"OrderLine\">\n"
-      "    ....\n"
-      "    ....\n"
-      "    <list name=\"deliveryAttempts\">\n"
-      "        <key>   <!-- a collection inherits the composite key type -->\n"
-      "            <column name=\"lineId\"/>\n"
-      "            <column name=\"orderId\"/>\n"
-      "            <column name=\"customerId\"/>\n"
-      "        </key>\n"
-      "        <list-index column=\"attemptId\" base=\"1\"/>\n"
-      "        <composite-element class=\"DeliveryAttempt\">\n"
-      "            ...\n"
-      "        </composite-element>\n"
-      "    </set>\n"
-      "</class>]]>"
 
-#: index.docbook:239
+#. Tag: title
+#: component_mapping.xml:239
+#, no-c-format
 msgid "Dynamic components"
-msgstr "Componentes din&#x00e1;micos"
+msgstr "Componentes dinámicos"
 
-#: index.docbook:241
+#. Tag: para
+#: component_mapping.xml:241
+#, no-c-format
 msgid "You may even map a property of type <literal>Map</literal>:"
 msgstr "Puedes incluso mapear una propiedad de tipo <literal>Map</literal>:"
 
-#: index.docbook:245
+#. Tag: programlisting
+#: component_mapping.xml:245
+#, no-c-format
 msgid ""
-      "<![CDATA[<dynamic-component name=\"userAttributes\">\n"
-      "    <property name=\"foo\" column=\"FOO\" type=\"string\"/>\n"
-      "    <property name=\"bar\" column=\"BAR\" type=\"integer\"/>\n"
-      "    <many-to-one name=\"baz\" class=\"Baz\" column=\"BAZ_ID\"/>\n"
-      "</dynamic-component>]]>"
+"<![CDATA[<dynamic-component name=\"userAttributes\">\n"
+"    <property name=\"foo\" column=\"FOO\" type=\"string\"/>\n"
+"    <property name=\"bar\" column=\"BAR\" type=\"integer\"/>\n"
+"    <many-to-one name=\"baz\" class=\"Baz\" column=\"BAZ_ID\"/>\n"
+"</dynamic-component>]]>"
 msgstr ""
-      "<![CDATA[<dynamic-component name=\"userAttributes\">\n"
-      "    <property name=\"foo\" column=\"FOO\" type=\"string\"/>\n"
-      "    <property name=\"bar\" column=\"BAR\" type=\"integer\"/>\n"
-      "    <many-to-one name=\"baz\" class=\"Baz\" column=\"BAZ_ID\"/>\n"
-      "</dynamic-component>]]>"
 
-#: index.docbook:247
-msgid "The semantics of a <literal>&lt;dynamic-component&gt;</literal> mapping are identical to <literal>&lt;component&gt;</literal>. The advantage of this kind of mapping is the ability to determine the actual properties of the bean at deployment time, just by editing the mapping document. Runtime manipulation of the mapping document is also possible, using a DOM parser. Even better, you can access (and change) Hibernate's configuration-time metamodel via the <literal>Configuration</literal> object."
-msgstr "La sem&#x00e1;ntica de un mapeo <literal>&lt;dynamic-component&gt;</literal> es &#x00ed;dentica a la de <literal>&lt;component&gt;</literal>. La ventaja de este tipo de mapeos es la habilidad para determinar las propiedades reales del bean en tiempo de despliegue, s&#x00f3;lo con editar el documento de mapeo. La manipulaci&#x00f3;n del documento de mapeo en tiempo de ejecuci&#x00f3;n es tambi&#x00e9;n posible, usando un analizador DOM. Incluso mejor, puedes acceder (y cambiar) el metamodelo de tiempo de configuraci&#x00f3;n de Hibernate por medio del objeto <literal>Configuration</literal>."
-
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
-
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
-
+#. Tag: para
+#: component_mapping.xml:247
+#, no-c-format
+msgid ""
+"The semantics of a <literal>&lt;dynamic-component&gt;</literal> mapping are "
+"identical to <literal>&lt;component&gt;</literal>. The advantage of this "
+"kind of mapping is the ability to determine the actual properties of the "
+"bean at deployment time, just by editing the mapping document. Runtime "
+"manipulation of the mapping document is also possible, using a DOM parser. "
+"Even better, you can access (and change) Hibernate's configuration-time "
+"metamodel via the <literal>Configuration</literal> object."
+msgstr ""
+"La semántica de un mapeo <literal>&lt;dynamic-component&gt;</literal> es "
+"ídentica a la de <literal>&lt;component&gt;</literal>. La ventaja de este "
+"tipo de mapeos es la habilidad para determinar las propiedades reales del "
+"bean en tiempo de despliegue, sólo con editar el documento de mapeo. La "
+"manipulación del documento de mapeo en tiempo de ejecución es también "
+"posible, usando un analizador DOM. Incluso mejor, puedes acceder (y cambiar) "
+"el metamodelo de tiempo de configuración de Hibernate por medio del objeto "
+"<literal>Configuration</literal>."

Modified: core/trunk/documentation/manual/translations/es-ES/content/configuration.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/configuration.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/configuration.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,1598 +1,3898 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:5
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: configuration.xml:5
+#, no-c-format
 msgid "Configuration"
-msgstr "Configuraci&#x00f3;n"
+msgstr "Configuración"
 
-#: index.docbook:7
-msgid "Because Hibernate is designed to operate in many different environments, there are a large number of configuration parameters. Fortunately, most have sensible default values and Hibernate is distributed with an example <literal>hibernate.properties</literal> file in <literal>etc/</literal> that shows the various options. Just put the example file in your classpath and customize it."
-msgstr "Debido a que Hibernate est&#x00e1; dise&#x00f1;ado para operar en muchos entornos diferentes, hay un gran n&#x00fa;mero de par&#x00e1;metros de configuraci&#x00f3;n. Afortunadamente, la mayor&#x00ed;a tiene valores por defecto sensibles e Hibernate se distribuye con un fichero <literal>hibernate.properties</literal> de ejemplo en <literal>etc/</literal> que muestra las diversas opciones. Tan s&#x00f3;lo pon el fichero de ejemplo en tu classpath y personal&#x00ed;zalo."
+#. Tag: para
+#: configuration.xml:7
+#, no-c-format
+msgid ""
+"Because Hibernate is designed to operate in many different environments, "
+"there are a large number of configuration parameters. Fortunately, most have "
+"sensible default values and Hibernate is distributed with an example "
+"<literal>hibernate.properties</literal> file in <literal>etc/</literal> that "
+"shows the various options. Just put the example file in your classpath and "
+"customize it."
+msgstr ""
+"Debido a que Hibernate está diseñado para operar en muchos entornos "
+"diferentes, hay un gran número de parámetros de configuración. "
+"Afortunadamente, la mayoría tiene valores por defecto sensibles e Hibernate "
+"se distribuye con un fichero <literal>hibernate.properties</literal> de "
+"ejemplo en <literal>etc/</literal> que muestra las diversas opciones. Tan "
+"sólo pon el fichero de ejemplo en tu classpath y personalízalo."
 
-#: index.docbook:16
+#. Tag: title
+#: configuration.xml:16
+#, no-c-format
 msgid "Programmatic configuration"
-msgstr "Configuraci&#x00f3;n program&#x00e1;tica"
+msgstr "Configuración programática"
 
-#: index.docbook:18
-msgid "An instance of <literal>org.hibernate.cfg.Configuration</literal> represents an entire set of mappings of an application's Java types to an SQL database. The <literal>Configuration</literal> is used to build an (immutable) <literal>SessionFactory</literal>. The mappings are compiled from various XML mapping files."
-msgstr "Una instancia de <literal>org.hibernate.cfg.Configuration</literal> representa un conjunto entero de mapeos de los tipos Java de una aplicaci&#x00f3;n a una base de datos SQL. La <literal>Configuration</literal> es usada para construir una <literal>SessionFactory</literal> (inmutable). Los mapeos se compilan de varios ficheros de mapeo XML."
+#. Tag: para
+#: configuration.xml:18
+#, no-c-format
+msgid ""
+"An instance of <literal>org.hibernate.cfg.Configuration</literal> represents "
+"an entire set of mappings of an application's Java types to an SQL database. "
+"The <literal>Configuration</literal> is used to build an (immutable) "
+"<literal>SessionFactory</literal>. The mappings are compiled from various "
+"XML mapping files."
+msgstr ""
+"Una instancia de <literal>org.hibernate.cfg.Configuration</literal> "
+"representa un conjunto entero de mapeos de los tipos Java de una aplicación "
+"a una base de datos SQL. La <literal>Configuration</literal> es usada para "
+"construir una <literal>SessionFactory</literal> (inmutable). Los mapeos se "
+"compilan de varios ficheros de mapeo XML."
 
-#: index.docbook:26
-msgid "You may obtain a <literal>Configuration</literal> instance by instantiating it directly and specifying XML mapping documents. If the mapping files are in the classpath, use <literal>addResource()</literal>:"
-msgstr "Puedes obtener una instancia de <literal>Configuration</literal> instanci&#x00e1;ndola directamente y especificando documentos de mapeo XML. Si los ficheros de mapeo est&#x00e1;n en el classpath, usa <literal>addResource()</literal>:"
+#. Tag: para
+#: configuration.xml:26
+#, no-c-format
+msgid ""
+"You may obtain a <literal>Configuration</literal> instance by instantiating "
+"it directly and specifying XML mapping documents. If the mapping files are "
+"in the classpath, use <literal>addResource()</literal>:"
+msgstr ""
+"Puedes obtener una instancia de <literal>Configuration</literal> "
+"instanciándola directamente y especificando documentos de mapeo XML. Si los "
+"ficheros de mapeo están en el classpath, usa <literal>addResource()</"
+"literal>:"
 
-#: index.docbook:32
+#. Tag: programlisting
+#: configuration.xml:32
+#, no-c-format
 msgid ""
-      "<![CDATA[Configuration cfg = new Configuration()\n"
-      "    .addResource(\"Item.hbm.xml\")\n"
-      "    .addResource(\"Bid.hbm.xml\");]]>"
+"<![CDATA[Configuration cfg = new Configuration()\n"
+"    .addResource(\"Item.hbm.xml\")\n"
+"    .addResource(\"Bid.hbm.xml\");]]>"
 msgstr ""
-      "<![CDATA[Configuration cfg = new Configuration()\n"
-      "    .addResource(\"Item.hbm.xml\")\n"
-      "    .addResource(\"Bid.hbm.xml\");]]>"
 
-#: index.docbook:34
-msgid "An alternative (sometimes better) way is to specify the mapped class, and let Hibernate find the mapping document for you:"
-msgstr "Una forma alternativa (a veces mejor) es especificar la clase mapeada, y dejar que Hibernate encuentre el documento de mapeo por ti:"
+#. Tag: para
+#: configuration.xml:34
+#, no-c-format
+msgid ""
+"An alternative (sometimes better) way is to specify the mapped class, and "
+"let Hibernate find the mapping document for you:"
+msgstr ""
+"Una forma alternativa (a veces mejor) es especificar la clase mapeada, y "
+"dejar que Hibernate encuentre el documento de mapeo por ti:"
 
-#: index.docbook:39
+#. Tag: programlisting
+#: configuration.xml:39
+#, no-c-format
 msgid ""
-      "<![CDATA[Configuration cfg = new Configuration()\n"
-      "    .addClass(org.hibernate.auction.Item.class)\n"
-      "    .addClass(org.hibernate.auction.Bid.class);]]>"
+"<![CDATA[Configuration cfg = new Configuration()\n"
+"    .addClass(org.hibernate.auction.Item.class)\n"
+"    .addClass(org.hibernate.auction.Bid.class);]]>"
 msgstr ""
-      "<![CDATA[Configuration cfg = new Configuration()\n"
-      "    .addClass(org.hibernate.auction.Item.class)\n"
-      "    .addClass(org.hibernate.auction.Bid.class);]]>"
 
-#: index.docbook:41
-msgid "Then Hibernate will look for mapping files named <literal>/org/hibernate/auction/Item.hbm.xml</literal> and <literal>/org/hibernate/auction/Bid.hbm.xml</literal> in the classpath. This approach eliminates any hardcoded filenames."
-msgstr "Entonces Hibernate buscar&#x00e1; ficheros de mapeo llamados <literal>/org/hibernate/auction/Item.hbm.xml</literal> y <literal>/org/hibernate/auction/Bid.hbm.xml</literal> en el classpath. Este enfoque elimina cualquier nombre de fichero en el c&#x00f3;digo."
+#. Tag: para
+#: configuration.xml:41
+#, no-c-format
+msgid ""
+"Then Hibernate will look for mapping files named <literal>/org/hibernate/"
+"auction/Item.hbm.xml</literal> and <literal>/org/hibernate/auction/Bid.hbm."
+"xml</literal> in the classpath. This approach eliminates any hardcoded "
+"filenames."
+msgstr ""
+"Entonces Hibernate buscará ficheros de mapeo llamados <literal>/org/"
+"hibernate/auction/Item.hbm.xml</literal> y <literal>/org/hibernate/auction/"
+"Bid.hbm.xml</literal> en el classpath. Este enfoque elimina cualquier nombre "
+"de fichero en el código."
 
-#: index.docbook:48
-msgid "A <literal>Configuration</literal> also allows you to specify configuration properties:"
-msgstr "Una <literal>Configuration</literal> tambi&#x00e9;n te permite especificar propiedades de configuraci&#x00f3;n:"
+#. Tag: para
+#: configuration.xml:48
+#, no-c-format
+msgid ""
+"A <literal>Configuration</literal> also allows you to specify configuration "
+"properties:"
+msgstr ""
+"Una <literal>Configuration</literal> también te permite especificar "
+"propiedades de configuración:"
 
-#: index.docbook:53
+#. Tag: programlisting
+#: configuration.xml:53
+#, no-c-format
 msgid ""
-      "<![CDATA[Configuration cfg = new Configuration()\n"
-      "    .addClass(org.hibernate.auction.Item.class)\n"
-      "    .addClass(org.hibernate.auction.Bid.class)\n"
-      "    .setProperty(\"hibernate.dialect\", \"org.hibernate.dialect.MySQLInnoDBDialect\")\n"
-      "    .setProperty(\"hibernate.connection.datasource\", \"java:comp/env/jdbc/test\")\n"
-      "    .setProperty(\"hibernate.order_updates\", \"true\");]]>"
+"<![CDATA[Configuration cfg = new Configuration()\n"
+"    .addClass(org.hibernate.auction.Item.class)\n"
+"    .addClass(org.hibernate.auction.Bid.class)\n"
+"    .setProperty(\"hibernate.dialect\", \"org.hibernate.dialect."
+"MySQLInnoDBDialect\")\n"
+"    .setProperty(\"hibernate.connection.datasource\", \"java:comp/env/jdbc/"
+"test\")\n"
+"    .setProperty(\"hibernate.order_updates\", \"true\");]]>"
 msgstr ""
-      "<![CDATA[Configuration cfg = new Configuration()\n"
-      "    .addClass(org.hibernate.auction.Item.class)\n"
-      "    .addClass(org.hibernate.auction.Bid.class)\n"
-      "    .setProperty(\"hibernate.dialect\", \"org.hibernate.dialect.MySQLInnoDBDialect\")\n"
-      "    .setProperty(\"hibernate.connection.datasource\", \"java:comp/env/jdbc/test\")\n"
-      "    .setProperty(\"hibernate.order_updates\", \"true\");]]>"
 
-#: index.docbook:55
-msgid "This is not the only way to pass configuration properties to Hibernate. The various options include:"
-msgstr "Esta no es la &#x00fa;nica forma de pasar propiedades de configuraci&#x00f3;n a Hibernate. La diversas opciones incluyen:"
+#. Tag: para
+#: configuration.xml:55
+#, no-c-format
+msgid ""
+"This is not the only way to pass configuration properties to Hibernate. The "
+"various options include:"
+msgstr ""
+"Esta no es la única forma de pasar propiedades de configuración a Hibernate. "
+"La diversas opciones incluyen:"
 
-#: index.docbook:62
-msgid "Pass an instance of <literal>java.util.Properties</literal> to <literal>Configuration.setProperties()</literal>."
-msgstr "Pasar una instancia de <literal>java.util.Properties</literal> a <literal>Configuration.setProperties()</literal>."
+#. Tag: para
+#: configuration.xml:62
+#, no-c-format
+msgid ""
+"Pass an instance of <literal>java.util.Properties</literal> to "
+"<literal>Configuration.setProperties()</literal>."
+msgstr ""
+"Pasar una instancia de <literal>java.util.Properties</literal> a "
+"<literal>Configuration.setProperties()</literal>."
 
-#: index.docbook:68
-msgid "Place <literal>hibernate.properties</literal> in a root directory of the classpath."
-msgstr "Colocar <literal>hibernate.properties</literal> en un directorio ra&#x00ed;z del classpath."
+#. Tag: para
+#: configuration.xml:68
+#, no-c-format
+msgid ""
+"Place <literal>hibernate.properties</literal> in a root directory of the "
+"classpath."
+msgstr ""
+"Colocar <literal>hibernate.properties</literal> en un directorio raíz del "
+"classpath."
 
-#: index.docbook:74
-msgid "Set <literal>System</literal> properties using <literal>java -Dproperty=value</literal>."
-msgstr "Establecer propiedades <literal>System</literal> usando <literal>java -Dproperty=value</literal>."
+#. Tag: para
+#: configuration.xml:74
+#, no-c-format
+msgid ""
+"Set <literal>System</literal> properties using <literal>java -"
+"Dproperty=value</literal>."
+msgstr ""
+"Establecer propiedades <literal>System</literal> usando <literal>java -"
+"Dproperty=value</literal>."
 
-#: index.docbook:80
-msgid "Include <literal>&lt;property&gt;</literal> elements in <literal>hibernate.cfg.xml</literal> (discussed later)."
-msgstr "Incluir elementos <literal>&lt;property&gt;</literal> en <literal>hibernate.cfg.xml</literal> (discutido luego)."
+#. Tag: para
+#: configuration.xml:80
+#, no-c-format
+msgid ""
+"Include <literal>&lt;property&gt;</literal> elements in <literal>hibernate."
+"cfg.xml</literal> (discussed later)."
+msgstr ""
+"Incluir elementos <literal>&lt;property&gt;</literal> en <literal>hibernate."
+"cfg.xml</literal> (discutido luego)."
 
-#: index.docbook:87
-msgid "<literal>hibernate.properties</literal> is the easiest approach if you want to get started quickly."
-msgstr "<literal>hibernate.properties</literal> es el enfoque m&#x00e1;s f&#x00e1;cil si quieres comenzar r&#x00e1;pido."
+#. Tag: para
+#: configuration.xml:87
+#, no-c-format
+msgid ""
+"<literal>hibernate.properties</literal> is the easiest approach if you want "
+"to get started quickly."
+msgstr ""
+"<literal>hibernate.properties</literal> es el enfoque más fácil si quieres "
+"comenzar rápido."
 
-#: index.docbook:92
-msgid "The <literal>Configuration</literal> is intended as a startup-time object, to be discarded once a <literal>SessionFactory</literal> is created."
-msgstr "La <literal>Configuration</literal> est&#x00e1; concebida como un objeto de tiempo de arranque, para ser descartado una vez que una <literal>SessionFactory</literal> es creada."
+#. Tag: para
+#: configuration.xml:92
+#, no-c-format
+msgid ""
+"The <literal>Configuration</literal> is intended as a startup-time object, "
+"to be discarded once a <literal>SessionFactory</literal> is created."
+msgstr ""
+"La <literal>Configuration</literal> está concebida como un objeto de tiempo "
+"de arranque, para ser descartado una vez que una <literal>SessionFactory</"
+"literal> es creada."
 
-#: index.docbook:100
+#. Tag: title
+#: configuration.xml:100
+#, no-c-format
 msgid "Obtaining a SessionFactory"
 msgstr "Obteniendo una SessionFactory"
 
-#: index.docbook:102
-msgid "When all mappings have been parsed by the <literal>Configuration</literal>, the application must obtain a factory for <literal>Session</literal> instances. This factory is intended to be shared by all application threads:"
-msgstr "Cuando todos los mapeos han sido parseados por la <literal>Configuration</literal>, la aplicaci&#x00f3;n debe obtener una f&#x00e1;brica de instancias de <literal>Session</literal>. Esta f&#x00e1;brica est&#x00e1; concebida para ser compartida por todas las hebras de aplicaci&#x00f3;n:"
+#. Tag: para
+#: configuration.xml:102
+#, no-c-format
+msgid ""
+"When all mappings have been parsed by the <literal>Configuration</literal>, "
+"the application must obtain a factory for <literal>Session</literal> "
+"instances. This factory is intended to be shared by all application threads:"
+msgstr ""
+"Cuando todos los mapeos han sido parseados por la <literal>Configuration</"
+"literal>, la aplicación debe obtener una fábrica de instancias de "
+"<literal>Session</literal>. Esta fábrica está concebida para ser compartida "
+"por todas las hebras de aplicación:"
 
-#: index.docbook:108
+#. Tag: programlisting
+#: configuration.xml:108
+#, no-c-format
 msgid "<![CDATA[SessionFactory sessions = cfg.buildSessionFactory();]]>"
-msgstr "<![CDATA[SessionFactory sessions = cfg.buildSessionFactory();]]>"
+msgstr ""
 
-#: index.docbook:110
-msgid "Hibernate does allow your application to instantiate more than one <literal>SessionFactory</literal>. This is useful if you are using more than one database."
-msgstr "Hibernate permite que tu aplicaci&#x00f3;n instancie m&#x00e1;s de una <literal>SessionFactory</literal>. Esto es &#x00fa;til si est&#x00e1;s usando m&#x00e1;s de una base de datos."
+#. Tag: para
+#: configuration.xml:110
+#, no-c-format
+msgid ""
+"Hibernate does allow your application to instantiate more than one "
+"<literal>SessionFactory</literal>. This is useful if you are using more than "
+"one database."
+msgstr ""
+"Hibernate permite que tu aplicación instancie más de una "
+"<literal>SessionFactory</literal>. Esto es útil si estás usando más de una "
+"base de datos."
 
-#: index.docbook:119
+#. Tag: title
+#: configuration.xml:119
+#, no-c-format
 msgid "JDBC connections"
 msgstr "Conexiones JDBC"
 
-#: index.docbook:121
-msgid "Usually, you want to have the <literal>SessionFactory</literal> create and pool JDBC connections for you. If you take this approach, opening a <literal>Session</literal> is as simple as:"
-msgstr "Usualmente, quieres que la <literal>SessionFactory</literal> cree y almacene en pool conexiones JDBC para ti. Si adoptas este enfoque, abrir una <literal>Session</literal> es tan simple como:"
+#. Tag: para
+#: configuration.xml:121
+#, no-c-format
+msgid ""
+"Usually, you want to have the <literal>SessionFactory</literal> create and "
+"pool JDBC connections for you. If you take this approach, opening a "
+"<literal>Session</literal> is as simple as:"
+msgstr ""
+"Usualmente, quieres que la <literal>SessionFactory</literal> cree y almacene "
+"en pool conexiones JDBC para ti. Si adoptas este enfoque, abrir una "
+"<literal>Session</literal> es tan simple como:"
 
-#: index.docbook:127
-msgid "<![CDATA[Session session = sessions.openSession(); // open a new Session]]>"
-msgstr "<![CDATA[Session session = sessions.openSession(); // open a new Session]]>"
+#. Tag: programlisting
+#: configuration.xml:127
+#, no-c-format
+msgid ""
+"<![CDATA[Session session = sessions.openSession(); // open a new Session]]>"
+msgstr ""
 
-#: index.docbook:129
-msgid "As soon as you do something that requires access to the database, a JDBC connection will be obtained from the pool."
-msgstr "En cuanto hagas algo que requiera acceso a la base de datos, se obtendr&#x00e1; una conexi&#x00f3;n JDBC del pool."
+#. Tag: para
+#: configuration.xml:129
+#, no-c-format
+msgid ""
+"As soon as you do something that requires access to the database, a JDBC "
+"connection will be obtained from the pool."
+msgstr ""
+"En cuanto hagas algo que requiera acceso a la base de datos, se obtendrá una "
+"conexión JDBC del pool."
 
-#: index.docbook:134
-msgid "For this to work, we need to pass some JDBC connection properties to Hibernate. All Hibernate property names and semantics are defined on the class <literal>org.hibernate.cfg.Environment</literal>. We will now describe the most important settings for JDBC connection configuration."
-msgstr "Para que esto funcione, necesitamos pasar algunas propiedades de conexi&#x00f3;n JDBC a Hibernate. Todos los nombres de propiedades y su sem&#x00e1;ntica est&#x00e1;n definidas en la clase <literal>org.hibernate.cfg.Environment</literal>. Describiremos ahora las configuraciones m&#x00e1;s importantes para la conexi&#x00f3;n JDBC."
+#. Tag: para
+#: configuration.xml:134
+#, no-c-format
+msgid ""
+"For this to work, we need to pass some JDBC connection properties to "
+"Hibernate. All Hibernate property names and semantics are defined on the "
+"class <literal>org.hibernate.cfg.Environment</literal>. We will now describe "
+"the most important settings for JDBC connection configuration."
+msgstr ""
+"Para que esto funcione, necesitamos pasar algunas propiedades de conexión "
+"JDBC a Hibernate. Todos los nombres de propiedades y su semántica están "
+"definidas en la clase <literal>org.hibernate.cfg.Environment</literal>. "
+"Describiremos ahora las configuraciones más importantes para la conexión "
+"JDBC."
 
-#: index.docbook:141
-msgid "Hibernate will obtain (and pool) connections using <literal>java.sql.DriverManager</literal> if you set the following properties:"
-msgstr "Hibernate obtendr&#x00e1; (y tendr&#x00e1; en pool) conexiones usando <literal>java.sql.DriverManager</literal> si configuras las siguientes propiedades:"
+#. Tag: para
+#: configuration.xml:141
+#, no-c-format
+msgid ""
+"Hibernate will obtain (and pool) connections using <literal>java.sql."
+"DriverManager</literal> if you set the following properties:"
+msgstr ""
+"Hibernate obtendrá (y tendrá en pool) conexiones usando <literal>java.sql."
+"DriverManager</literal> si configuras las siguientes propiedades:"
 
-#: index.docbook:147
+#. Tag: title
+#: configuration.xml:147
+#, no-c-format
 msgid "Hibernate JDBC Properties"
 msgstr "Propiedades JDBC de Hibernate"
 
-#: index.docbook:153, index.docbook:241, index.docbook:338, index.docbook:529, index.docbook:725, index.docbook:832, index.docbook:920
+#. Tag: entry
+#: configuration.xml:153 configuration.xml:241 configuration.xml:338
+#: configuration.xml:529 configuration.xml:725 configuration.xml:832
+#: configuration.xml:920
+#, no-c-format
 msgid "Property name"
 msgstr "Nombre de propiedad"
 
-#: index.docbook:154, index.docbook:242, index.docbook:339, index.docbook:530, index.docbook:726, index.docbook:833, index.docbook:921
+#. Tag: entry
+#: configuration.xml:154 configuration.xml:242 configuration.xml:339
+#: configuration.xml:530 configuration.xml:726 configuration.xml:833
+#: configuration.xml:921
+#, fuzzy, no-c-format
 msgid "Purpose"
-msgstr "Prop&#x00f3;sito"
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"Propósito\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"Propósito\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"Propósito\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"Propoósito\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"Propósito\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"Propósito\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"Propósito"
 
-#: index.docbook:160
+#. Tag: literal
+#: configuration.xml:160
+#, no-c-format
 msgid "hibernate.connection.driver_class"
 msgstr "hibernate.connection.driver_class"
 
-#: index.docbook:163
+#. Tag: emphasis
+#: configuration.xml:163
+#, no-c-format
 msgid "JDBC driver class"
 msgstr "clase del driver jdbc"
 
-#: index.docbook:168
+#. Tag: literal
+#: configuration.xml:168
+#, no-c-format
 msgid "hibernate.connection.url"
 msgstr "hibernate.connection.url"
 
-#: index.docbook:171
+#. Tag: emphasis
+#: configuration.xml:171
+#, no-c-format
 msgid "JDBC URL"
 msgstr "URL de jdbc"
 
-#: index.docbook:176, index.docbook:272
+#. Tag: literal
+#: configuration.xml:176 configuration.xml:272
+#, no-c-format
 msgid "hibernate.connection.username"
 msgstr "hibernate.connection.username"
 
-#: index.docbook:179
+#. Tag: emphasis
+#: configuration.xml:179
+#, no-c-format
 msgid "database user"
 msgstr "usuario de base de datos"
 
-#: index.docbook:184, index.docbook:280
+#. Tag: literal
+#: configuration.xml:184 configuration.xml:280
+#, no-c-format
 msgid "hibernate.connection.password"
 msgstr "hibernate.connection.password"
 
-#: index.docbook:187
+#. Tag: emphasis
+#: configuration.xml:187
+#, no-c-format
 msgid "database user password"
-msgstr "contrase&#x00f1;a del usuario de base de datos"
+msgstr "contraseña del usuario de base de datos"
 
-#: index.docbook:192
+#. Tag: literal
+#: configuration.xml:192
+#, no-c-format
 msgid "hibernate.connection.pool_size"
 msgstr "hibernate.connection.pool_size"
 
-#: index.docbook:195
+#. Tag: emphasis
+#: configuration.xml:195
+#, no-c-format
 msgid "maximum number of pooled connections"
-msgstr "n&#x00fa;mero m&#x00e1;ximo de conexiones manejadas por pooling"
+msgstr "número máximo de conexiones manejadas por pooling"
 
-#: index.docbook:202
-msgid "Hibernate's own connection pooling algorithm is however quite rudimentary. It is intended to help you get started and is <emphasis>not intended for use in a production system</emphasis> or even for performance testing. You should use a third party pool for best performance and stability. Just replace the <literal>hibernate.connection.pool_size</literal> property with connection pool specific settings. This will turn off Hibernate's internal pool. For example, you might like to use C3P0."
-msgstr "El algoritmo de pooling de conexiones propio de Hibernate es sin embargo algo rudimentario. Est&#x00e1; concebido para ayudarte a comenzar y <emphasis>no est&#x00e1; concebido para usar en un sistema de producci&#x00f3;n</emphasis> ni siquiera para pruebas de rendimiento. Debes usar un pool de terceros para un mejor rendimiento y estabilidad. S&#x00f3;lo remplaza la propiedad <literal>hibernate.connection.pool_size</literal> con configuraciones espec&#x00ed;ficas del pool de conexiones. Esto desactivar&#x00e1; el pool interno de Hibernate. Por ejemplo, podr&#x00ed;as querer usar C3P0."
+#. Tag: para
+#: configuration.xml:202
+#, no-c-format
+msgid ""
+"Hibernate's own connection pooling algorithm is however quite rudimentary. "
+"It is intended to help you get started and is <emphasis>not intended for use "
+"in a production system</emphasis> or even for performance testing. You "
+"should use a third party pool for best performance and stability. Just "
+"replace the <literal>hibernate.connection.pool_size</literal> property with "
+"connection pool specific settings. This will turn off Hibernate's internal "
+"pool. For example, you might like to use C3P0."
+msgstr ""
+"El algoritmo de pooling de conexiones propio de Hibernate es sin embargo "
+"algo rudimentario. Está concebido para ayudarte a comenzar y <emphasis>no "
+"está concebido para usar en un sistema de producción</emphasis> ni siquiera "
+"para pruebas de rendimiento. Debes usar un pool de terceros para un mejor "
+"rendimiento y estabilidad. Sólo remplaza la propiedad <literal>hibernate."
+"connection.pool_size</literal> con configuraciones específicas del pool de "
+"conexiones. Esto desactivará el pool interno de Hibernate. Por ejemplo, "
+"podrías querer usar C3P0."
 
-#: index.docbook:212
-msgid "C3P0 is an open source JDBC connection pool distributed along with Hibernate in the <literal>lib</literal> directory. Hibernate will use its <literal>C3P0ConnectionProvider</literal> for connection pooling if you set <literal>hibernate.c3p0.*</literal> properties. If you'd like to use Proxool refer to the packaged <literal>hibernate.properties</literal> and the Hibernate web site for more information."
-msgstr "C3P0 es un pool de conexiones JDBC de c&#x00f3;digo abierto distribuido junto a Hibernate en el directorio <literal>lib</literal>. Hibernate usar&#x00e1; su <literal>C3P0ConnectionProvider</literal> para pooling de conexiones si estableces propiedades <literal>hibernate.c3p0.*</literal>. Si quieres usar Proxool refi&#x00e9;rete al <literal>hibernate.properties</literal> empaquetado y al sitio web de Hibernate para m&#x00e1;s informaci&#x00f3;n."
+#. Tag: para
+#: configuration.xml:212
+#, no-c-format
+msgid ""
+"C3P0 is an open source JDBC connection pool distributed along with Hibernate "
+"in the <literal>lib</literal> directory. Hibernate will use its "
+"<literal>C3P0ConnectionProvider</literal> for connection pooling if you set "
+"<literal>hibernate.c3p0.*</literal> properties. If you'd like to use Proxool "
+"refer to the packaged <literal>hibernate.properties</literal> and the "
+"Hibernate web site for more information."
+msgstr ""
+"C3P0 es un pool de conexiones JDBC de código abierto distribuido junto a "
+"Hibernate en el directorio <literal>lib</literal>. Hibernate usará su "
+"<literal>C3P0ConnectionProvider</literal> para pooling de conexiones si "
+"estableces propiedades <literal>hibernate.c3p0.*</literal>. Si quieres usar "
+"Proxool refiérete al <literal>hibernate.properties</literal> empaquetado y "
+"al sitio web de Hibernate para más información."
 
-#: index.docbook:221
-msgid "Here is an example <literal>hibernate.properties</literal> file for C3P0:"
-msgstr "Aqu&#x00ed; hay un fichero <literal>hibernate.properties</literal> de ejemplo para C3P0:"
+#. Tag: para
+#: configuration.xml:221
+#, no-c-format
+msgid ""
+"Here is an example <literal>hibernate.properties</literal> file for C3P0:"
+msgstr ""
+"Aquí hay un fichero <literal>hibernate.properties</literal> de ejemplo para "
+"C3P0:"
 
-#: index.docbook:225
+#. Tag: programlisting
+#: configuration.xml:225
+#, no-c-format
 msgid ""
-      "<![CDATA[hibernate.connection.driver_class = org.postgresql.Driver\n"
-      "hibernate.connection.url = jdbc:postgresql://localhost/mydatabase\n"
-      "hibernate.connection.username = myuser\n"
-      "hibernate.connection.password = secret\n"
-      "hibernate.c3p0.min_size=5\n"
-      "hibernate.c3p0.max_size=20\n"
-      "hibernate.c3p0.timeout=1800\n"
-      "hibernate.c3p0.max_statements=50\n"
-      "hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]>"
+"<![CDATA[hibernate.connection.driver_class = org.postgresql.Driver\n"
+"hibernate.connection.url = jdbc:postgresql://localhost/mydatabase\n"
+"hibernate.connection.username = myuser\n"
+"hibernate.connection.password = secret\n"
+"hibernate.c3p0.min_size=5\n"
+"hibernate.c3p0.max_size=20\n"
+"hibernate.c3p0.timeout=1800\n"
+"hibernate.c3p0.max_statements=50\n"
+"hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]>"
 msgstr ""
-      "<![CDATA[hibernate.connection.driver_class = org.postgresql.Driver\n"
-      "hibernate.connection.url = jdbc:postgresql://localhost/mydatabase\n"
-      "hibernate.connection.username = myuser\n"
-      "hibernate.connection.password = secret\n"
-      "hibernate.c3p0.min_size=5\n"
-      "hibernate.c3p0.max_size=20\n"
-      "hibernate.c3p0.timeout=1800\n"
-      "hibernate.c3p0.max_statements=50\n"
-      "hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]>"
 
-#: index.docbook:227
-msgid "For use inside an application server, you should almost always configure Hibernate to obtain connections from an application server <literal>Datasource</literal> registered in JNDI. You'll need to set at least one of the following properties:"
-msgstr "Para su uso en un servidor de aplicaciones, casi siempre debes configurar Hibernate para que obtenga conexiones de un <literal>Datasource</literal> del servidor de aplicaciones registrado en JNDI. Necesitar&#x00e1;s establecer al menos una de las siguientes propiedades:"
+#. Tag: para
+#: configuration.xml:227
+#, no-c-format
+msgid ""
+"For use inside an application server, you should almost always configure "
+"Hibernate to obtain connections from an application server "
+"<literal>Datasource</literal> registered in JNDI. You'll need to set at "
+"least one of the following properties:"
+msgstr ""
+"Para su uso en un servidor de aplicaciones, casi siempre debes configurar "
+"Hibernate para que obtenga conexiones de un <literal>Datasource</literal> "
+"del servidor de aplicaciones registrado en JNDI. Necesitarás establecer al "
+"menos una de las siguientes propiedades:"
 
-#: index.docbook:235
+#. Tag: title
+#: configuration.xml:235
+#, no-c-format
 msgid "Hibernate Datasource Properties"
 msgstr "Propiedades de Datasource de Hibernate"
 
-#: index.docbook:248
+#. Tag: literal
+#: configuration.xml:248
+#, no-c-format
 msgid "hibernate.connection.datasource"
 msgstr "hibernate.connection.datasource"
 
-#: index.docbook:251
+#. Tag: emphasis
+#: configuration.xml:251
+#, no-c-format
 msgid "datasource JNDI name"
 msgstr "nombre del datasource JNDI"
 
-#: index.docbook:256
+#. Tag: literal
+#: configuration.xml:256
+#, no-c-format
 msgid "hibernate.jndi.url"
 msgstr "hibernate.jndi.url"
 
-#: index.docbook:258
+#. Tag: entry
+#: configuration.xml:258
+#, fuzzy, no-c-format
 msgid "<emphasis>URL of the JNDI provider</emphasis> (optional)"
-msgstr "<emphasis>URL del provedor JNDI</emphasis> (optional)"
+msgstr "URL del provedor JNDI"
 
-#: index.docbook:264
+#. Tag: literal
+#: configuration.xml:264
+#, no-c-format
 msgid "hibernate.jndi.class"
 msgstr "hibernate.jndi.class"
 
-#: index.docbook:266
-msgid "<emphasis>class of the JNDI <literal>InitialContextFactory</literal></emphasis> (optional)"
-msgstr "<emphasis>clase de la <literal>InitialContextFactory</literal> de JNDI</emphasis> (opcional)"
+#. Tag: entry
+#: configuration.xml:266
+#, no-c-format
+msgid ""
+"<emphasis>class of the JNDI <literal>InitialContextFactory</literal></"
+"emphasis> (optional)"
+msgstr ""
 
-#: index.docbook:274
+#. Tag: entry
+#: configuration.xml:274
+#, no-c-format
 msgid "<emphasis>database user</emphasis> (optional)"
-msgstr "<emphasis>usuario de base de datos</emphasis> (opcional)"
+msgstr ""
 
-#: index.docbook:282
+#. Tag: entry
+#: configuration.xml:282
+#, no-c-format
 msgid "<emphasis>database user password</emphasis> (optional)"
-msgstr "<emphasis>contrase&#x00f1;a del usuario de base de datos</emphasis> (opcional)"
+msgstr ""
 
-#: index.docbook:290
-msgid "Here's an example <literal>hibernate.properties</literal> file for an application server provided JNDI datasource:"
-msgstr "He aqu&#x00ed; un fichero <literal>hibernate.properties</literal> de ejemplo para un un datasource JNDI provisto por un servidor de aplicaciones."
+#. Tag: para
+#: configuration.xml:290
+#, no-c-format
+msgid ""
+"Here's an example <literal>hibernate.properties</literal> file for an "
+"application server provided JNDI datasource:"
+msgstr ""
+"He aquí un fichero <literal>hibernate.properties</literal> de ejemplo para "
+"un un datasource JNDI provisto por un servidor de aplicaciones."
 
-#: index.docbook:295
+#. Tag: programlisting
+#: configuration.xml:295
+#, no-c-format
 msgid ""
-      "<![CDATA[hibernate.connection.datasource = java:/comp/env/jdbc/test\n"
-      "hibernate.transaction.factory_class = \\\n"
-      "    org.hibernate.transaction.JTATransactionFactory\n"
-      "hibernate.transaction.manager_lookup_class = \\\n"
-      "    org.hibernate.transaction.JBossTransactionManagerLookup\n"
-      "hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]>"
+"<![CDATA[hibernate.connection.datasource = java:/comp/env/jdbc/test\n"
+"hibernate.transaction.factory_class = \\\n"
+"    org.hibernate.transaction.JTATransactionFactory\n"
+"hibernate.transaction.manager_lookup_class = \\\n"
+"    org.hibernate.transaction.JBossTransactionManagerLookup\n"
+"hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]>"
 msgstr ""
-      "<![CDATA[hibernate.connection.datasource = java:/comp/env/jdbc/test\n"
-      "hibernate.transaction.factory_class = \\\n"
-      "    org.hibernate.transaction.JTATransactionFactory\n"
-      "hibernate.transaction.manager_lookup_class = \\\n"
-      "    org.hibernate.transaction.JBossTransactionManagerLookup\n"
-      "hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]>"
 
-#: index.docbook:297
-msgid "JDBC connections obtained from a JNDI datasource will automatically participate in the container-managed transactions of the application server."
-msgstr "Las conexiones JDBC obtenidas de un datasource JNDI participar&#x00e1;n autom&#x00e1;ticamente en las transacciones del servidor de aplicaciones manejadas por contenedor."
+#. Tag: para
+#: configuration.xml:297
+#, no-c-format
+msgid ""
+"JDBC connections obtained from a JNDI datasource will automatically "
+"participate in the container-managed transactions of the application server."
+msgstr ""
+"Las conexiones JDBC obtenidas de un datasource JNDI participarán "
+"automáticamente en las transacciones del servidor de aplicaciones manejadas "
+"por contenedor."
 
-#: index.docbook:302
-msgid "Arbitrary connection properties may be given by prepending \"<literal>hibernate.connection</literal>\" to the property name. For example, you may specify a <literal>charSet</literal> using <literal>hibernate.connection.charSet</literal>."
-msgstr "Pueden darse propiedades de conexi&#x00f3;n arbitrarias anteponiendo \"<literal>hibernate.connnection</literal>\" al nombre de propiedad. Por ejemplo, puedes especificar un <literal>charSet</literal> usando <literal>hibernate.connection.charSet</literal>."
+#. Tag: para
+#: configuration.xml:302
+#, no-c-format
+msgid ""
+"Arbitrary connection properties may be given by prepending "
+"\"<literal>hibernate.connection</literal>\" to the property name. For "
+"example, you may specify a <literal>charSet</literal> using "
+"<literal>hibernate.connection.charSet</literal>."
+msgstr ""
+"Pueden darse propiedades de conexión arbitrarias anteponiendo "
+"\"<literal>hibernate.connnection</literal>\" al nombre de propiedad. Por "
+"ejemplo, puedes especificar un <literal>charSet</literal> usando "
+"<literal>hibernate.connection.charSet</literal>."
 
-#: index.docbook:308
-msgid "You may define your own plugin strategy for obtaining JDBC connections by implementing the interface <literal>org.hibernate.connection.ConnectionProvider</literal>. You may select a custom implementation by setting <literal>hibernate.connection.provider_class</literal>."
-msgstr "Puedes definir tu propia estrategia de plugin para obtener conexiones JDBC implementando la interface <literal>org.hibernate.connection.ConnectionProvider</literal>. Puedes seleccionar una implementaci&#x00f3;n personalizada estableciendo <literal>hibernate.connection.provider_class</literal>."
+#. Tag: para
+#: configuration.xml:308
+#, no-c-format
+msgid ""
+"You may define your own plugin strategy for obtaining JDBC connections by "
+"implementing the interface <literal>org.hibernate.connection."
+"ConnectionProvider</literal>. You may select a custom implementation by "
+"setting <literal>hibernate.connection.provider_class</literal>."
+msgstr ""
+"Puedes definir tu propia estrategia de plugin para obtener conexiones JDBC "
+"implementando la interface <literal>org.hibernate.connection."
+"ConnectionProvider</literal>. Puedes seleccionar una implementación "
+"personalizada estableciendo <literal>hibernate.connection.provider_class</"
+"literal>."
 
-#: index.docbook:317
+#. Tag: title
+#: configuration.xml:317
+#, no-c-format
 msgid "Optional configuration properties"
-msgstr "Par&#x00e1;metros de configuraci&#x00f3;n opcionales"
+msgstr "Parámetros de configuración opcionales"
 
-#: index.docbook:319
-msgid "There are a number of other properties that control the behaviour of Hibernate at runtime. All are optional and have reasonable default values."
-msgstr "Hay un n&#x00fa;mero de otras propiedades que controlan el comportamiento de Hibernate en tiempo de ejecuci&#x00f3;n. Todas son opcionales y tienen valores por defecto razonables."
+#. Tag: para
+#: configuration.xml:319
+#, no-c-format
+msgid ""
+"There are a number of other properties that control the behaviour of "
+"Hibernate at runtime. All are optional and have reasonable default values."
+msgstr ""
+"Hay un número de otras propiedades que controlan el comportamiento de "
+"Hibernate en tiempo de ejecución. Todas son opcionales y tienen valores por "
+"defecto razonables."
 
-#: index.docbook:324
-msgid "<emphasis>Warning: some of these properties are \"system-level\" only.</emphasis> System-level properties can be set only via <literal>java -Dproperty=value</literal> or <literal>hibernate.properties</literal>. They may <emphasis>not</emphasis> be set by the other techniques described above."
-msgstr "<emphasis>Advertencia: algunas de estas propiedades son de \"nivel-de-sistema\" solamente.</emphasis>. Las propiedades a nivel de sistema s&#x00f3;lo pueden ser establecidas por medio de <literal>java -Dproperty=value</literal> o <literal>hibernate.properties</literal>. <emphasis>No</emphasis> pueden establecerse por medio de las otras t&#x00e9;cnicas arriba descritas."
+#. Tag: para
+#: configuration.xml:324
+#, no-c-format
+msgid ""
+"<emphasis>Warning: some of these properties are \"system-level\" only.</"
+"emphasis> System-level properties can be set only via <literal>java -"
+"Dproperty=value</literal> or <literal>hibernate.properties</literal>. They "
+"may <emphasis>not</emphasis> be set by the other techniques described above."
+msgstr ""
+"<emphasis>Advertencia: algunas de estas propiedades son de \"nivel-de-sistema"
+"\" solamente.</emphasis>. Las propiedades a nivel de sistema sólo pueden ser "
+"establecidas por medio de <literal>java -Dproperty=value</literal> o "
+"<literal>hibernate.properties</literal>. <emphasis>No</emphasis> pueden "
+"establecerse por medio de las otras técnicas arriba descritas."
 
-#: index.docbook:332
+#. Tag: title
+#: configuration.xml:332
+#, no-c-format
 msgid "Hibernate Configuration Properties"
-msgstr "Propiedades de Configuraci&#x00f3;n de Hibernate"
+msgstr "Propiedades de Configuración de Hibernate"
 
-#: index.docbook:345
+#. Tag: literal
+#: configuration.xml:345
+#, no-c-format
 msgid "hibernate.dialect"
 msgstr "hibernate.dialect"
 
-#: index.docbook:347
-msgid "The classname of a Hibernate <literal>Dialect</literal> which allows Hibernate to generate SQL optimized for a particular relational database."
-msgstr "El nombre de clase de un <literal>Dialect</literal> de Hibernate que permite a Hibernate generar SQL optimizado para una base de datos relacional en particular."
+#. Tag: entry
+#: configuration.xml:347
+#, fuzzy, no-c-format
+msgid ""
+"The classname of a Hibernate <literal>Dialect</literal> which allows "
+"Hibernate to generate SQL optimized for a particular relational database."
+msgstr ""
+"El nombre de clase de un <placeholder-1/> de Hibernate que permite a "
+"Hibernate generar SQL optimizado para una base de datos relacional en "
+"particular. <placeholder-2/>"
 
-#: index.docbook:351
-msgid "<emphasis role=\"strong\">eg.</emphasis> <literal>full.classname.of.Dialect</literal>"
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>full.classname.of.Dialect</literal>"
+#. Tag: para
+#: configuration.xml:351
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">eg.</emphasis> <literal>full.classname.of.Dialect</"
+"literal>"
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
 
-#: index.docbook:359
+#. Tag: literal
+#: configuration.xml:359
+#, no-c-format
 msgid "hibernate.show_sql"
 msgstr "hibernate.show_sql"
 
-#: index.docbook:361
-msgid "Write all SQL statements to console. This is an alternative to setting the log category <literal>org.hibernate.SQL</literal> to <literal>debug</literal>."
-msgstr "Escribe todas las sentencias SQL a la consola."
+#. Tag: entry
+#: configuration.xml:361
+#, fuzzy, no-c-format
+msgid ""
+"Write all SQL statements to console. This is an alternative to setting the "
+"log category <literal>org.hibernate.SQL</literal> to <literal>debug</"
+"literal>."
+msgstr ""
+"Escribe todas las sentencias SQL a la consola. This is an alternative to "
+"setting the log category <placeholder-1/> to <placeholder-2/>. <placeholder-"
+"3/>"
 
-#: index.docbook:365, index.docbook:377, index.docbook:471, index.docbook:484, index.docbook:497, index.docbook:510, index.docbook:564, index.docbook:591, index.docbook:605, index.docbook:660, index.docbook:888, index.docbook:903, index.docbook:993
-msgid "<emphasis role=\"strong\">eg.</emphasis> <literal>true</literal> | <literal>false</literal>"
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>true</literal> | <literal>false</literal>"
+#. Tag: para
+#: configuration.xml:365 configuration.xml:377 configuration.xml:471
+#: configuration.xml:484 configuration.xml:497 configuration.xml:510
+#: configuration.xml:564 configuration.xml:591 configuration.xml:605
+#: configuration.xml:660 configuration.xml:888 configuration.xml:903
+#: configuration.xml:993
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">eg.</emphasis> <literal>true</literal> | "
+"<literal>false</literal>"
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
 
-#: index.docbook:373
+#. Tag: literal
+#: configuration.xml:373
+#, no-c-format
 msgid "hibernate.format_sql"
-msgstr "hibernate.default_schema"
+msgstr "hibernate.format_sql"
 
-#: index.docbook:375
+#. Tag: entry
+#: configuration.xml:375
+#, fuzzy, no-c-format
 msgid "Pretty print the SQL in the log and console."
-msgstr "Cualifica, en el SQL generado, los nombres de tabla sin cualificar con el esquema/tablespace dado."
+msgstr "Pretty print the SQL in the log and console. <placeholder-1/>"
 
-#: index.docbook:385
+#. Tag: literal
+#: configuration.xml:385
+#, no-c-format
 msgid "hibernate.default_schema"
-msgstr "hibernate.default_catalog"
+msgstr "hibernate.default_schema"
 
-#: index.docbook:387
-msgid "Qualify unqualified table names with the given schema/tablespace in generated SQL."
-msgstr "Cualifica, en el SQL generado, los nombres de tabla sin cualificar con el cat&#x00e1;logo dado."
+#. Tag: entry
+#: configuration.xml:387
+#, fuzzy, no-c-format
+msgid ""
+"Qualify unqualified table names with the given schema/tablespace in "
+"generated SQL."
+msgstr ""
+"Cualifica, en el SQL generado, los nombres de tabla sin cualificar con el "
+"esquema/tablespace dado. <placeholder-1/>"
 
-#: index.docbook:390
+#. Tag: para
+#: configuration.xml:390
+#, fuzzy, no-c-format
 msgid "<emphasis role=\"strong\">eg.</emphasis> <literal>SCHEMA_NAME</literal>"
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>CATALOG_NAME</literal>"
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
 
-#: index.docbook:398
+#. Tag: literal
+#: configuration.xml:398
+#, no-c-format
 msgid "hibernate.default_catalog"
-msgstr "hibernate.session_factory_name"
+msgstr "hibernate.default_catalog"
 
-#: index.docbook:400
-msgid "Qualify unqualified table names with the given catalog in generated SQL."
-msgstr "La <literal>SessionFactory</literal> ser&#x00e1; ligada a este nombre en JNDI autom&#x00e1;ticamente despu&#x00e9;s de ser creada."
+#. Tag: entry
+#: configuration.xml:400
+#, fuzzy, no-c-format
+msgid ""
+"Qualify unqualified table names with the given catalog in generated SQL."
+msgstr ""
+"Cualifica, en el SQL generado, los nombres de tabla sin cualificar con el "
+"catálogo dado. <placeholder-1/>"
 
-#: index.docbook:403
-msgid "<emphasis role=\"strong\">eg.</emphasis> <literal>CATALOG_NAME</literal>"
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>jndi/composite/name</literal>"
+#. Tag: para
+#: configuration.xml:403
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">eg.</emphasis> <literal>CATALOG_NAME</literal>"
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
 
-#: index.docbook:411
+#. Tag: literal
+#: configuration.xml:411
+#, no-c-format
 msgid "hibernate.session_factory_name"
-msgstr "hibernate.max_fetch_depth"
+msgstr "hibernate.session_factory_name"
 
-#: index.docbook:413
-msgid "The <literal>SessionFactory</literal> will be automatically bound to this name in JNDI after it has been created."
-msgstr "Establece una \"profundidad\" m&#x00e1;xima del &#x00e1;rbol de recuperaci&#x00f3;n por outer join para asociaciones de un extremo solo (uno-a-uno, muchos-a-uno). Un <literal>0</literal> deshabilita la recuperaci&#x00f3;n por outer join por defecto."
+#. Tag: entry
+#: configuration.xml:413
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>SessionFactory</literal> will be automatically bound to this "
+"name in JNDI after it has been created."
+msgstr ""
+"La <placeholder-1/> será ligada a este nombre en JNDI automáticamente "
+"después de ser creada. <placeholder-2/>"
 
-#: index.docbook:416, index.docbook:859
-msgid "<emphasis role=\"strong\">eg.</emphasis> <literal>jndi/composite/name</literal>"
-msgstr "<emphasis role=\"strong\">ej.</emphasis> valores recomendados entre <literal>0</literal> y <literal>3</literal>"
+#. Tag: para
+#: configuration.xml:416 configuration.xml:859
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">eg.</emphasis> <literal>jndi/composite/name</"
+"literal>"
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
 
-#: index.docbook:424
+#. Tag: literal
+#: configuration.xml:424
+#, no-c-format
 msgid "hibernate.max_fetch_depth"
-msgstr "hibernate.default_batch_fetch_size"
+msgstr "hibernate.max_fetch_depth"
 
-#: index.docbook:426
-msgid "Set a maximum \"depth\" for the outer join fetch tree for single-ended associations (one-to-one, many-to-one). A <literal>0</literal> disables default outer join fetching."
-msgstr "Establece un tama&#x00f1;o por defecto para la recuperaci&#x00f3;n en lote de asociaciones de Hibernate."
+#. Tag: entry
+#: configuration.xml:426
+#, fuzzy, no-c-format
+msgid ""
+"Set a maximum \"depth\" for the outer join fetch tree for single-ended "
+"associations (one-to-one, many-to-one). A <literal>0</literal> disables "
+"default outer join fetching."
+msgstr ""
+"Establece una \"profundidad\" máxima del árbol de recuperación por outer "
+"join para asociaciones de un extremo solo (uno-a-uno, muchos-a-uno). Un "
+"<placeholder-1/> deshabilita la recuperación por outer join por defecto. "
+"<placeholder-2/>"
 
-#: index.docbook:430
-msgid "<emphasis role=\"strong\">eg.</emphasis> recommended values between <literal>0</literal> and <literal>3</literal>"
-msgstr "<emphasis role=\"strong\">ej.</emphasis> valores recomendados <literal>4</literal>, <literal>8</literal>, <literal>16</literal>"
+#. Tag: para
+#: configuration.xml:430
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">eg.</emphasis> recommended values between "
+"<literal>0</literal> and <literal>3</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ej.</emphasis> valores recomendados entre "
+"<literal>0</literal> y <literal>3</literal>"
 
-#: index.docbook:439
+#. Tag: literal
+#: configuration.xml:439
+#, no-c-format
 msgid "hibernate.default_batch_fetch_size"
-msgstr "hibernate.default_entity_mode"
+msgstr "hibernate.default_batch_fetch_size"
 
-#: index.docbook:441
+#. Tag: entry
+#: configuration.xml:441
+#, fuzzy, no-c-format
 msgid "Set a default size for Hibernate batch fetching of associations."
-msgstr "Establece un modo por defecto de representaci&#x00f3;n de entidades para todas las sesiones abiertas por esta <literal>SessionFactory</literal>"
+msgstr ""
+"Establece un tamaño por defecto para la recuperación en lote de asociaciones "
+"de Hibernate. <placeholder-1/>"
 
-#: index.docbook:443
-msgid "<emphasis role=\"strong\">eg.</emphasis> recommended values <literal>4</literal>, <literal>8</literal>, <literal>16</literal>"
-msgstr "<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</literal>"
+#. Tag: para
+#: configuration.xml:443
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">eg.</emphasis> recommended values <literal>4</"
+"literal>, <literal>8</literal>, <literal>16</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ej.</emphasis> valores recomendados <literal>4</"
+"literal>, <literal>8</literal>, <literal>16</literal>"
 
-#: index.docbook:452
+#. Tag: literal
+#: configuration.xml:452
+#, no-c-format
 msgid "hibernate.default_entity_mode"
-msgstr "hibernate.order_updates"
+msgstr "hibernate.default_entity_mode"
 
-#: index.docbook:454
-msgid "Set a default mode for entity representation for all sessions opened from this <literal>SessionFactory</literal>"
-msgstr "Fuerza a Hibernate a ordenar las actualizaciones SQL por el valor de la clave primaria de los items a actualizar. Esto resultar&#x00e1; en menos bloqueos muertos de transacci&#x00f3;n en sistemas altamente concurrentes."
+#. Tag: entry
+#: configuration.xml:454
+#, fuzzy, no-c-format
+msgid ""
+"Set a default mode for entity representation for all sessions opened from "
+"this <literal>SessionFactory</literal>"
+msgstr ""
+"Establece un modo por defecto de representación de entidades para todas las "
+"sesiones abiertas por esta <placeholder-1/><placeholder-2/>"
 
-#: index.docbook:457
-msgid "<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</literal>"
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>true</literal> | <literal>false</literal>"
+#. Tag: para
+#: configuration.xml:457
+#, no-c-format
+msgid ""
+"<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</"
+"literal>"
+msgstr ""
+"<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</"
+"literal>"
 
-#: index.docbook:465
+#. Tag: literal
+#: configuration.xml:465
+#, no-c-format
 msgid "hibernate.order_updates"
-msgstr "hibernate.generate_statistics"
+msgstr "hibernate.order_updates"
 
-#: index.docbook:467
-msgid "Force Hibernate to order SQL updates by the primary key value of the items being updated. This will result in fewer transaction deadlocks in highly concurrent systems."
-msgstr "De habilitarse, Hibernate colectar&#x00e1; estad&#x00ed;sticas &#x00fa;tiles para la afinaci&#x00f3;n de rendimiento."
+#. Tag: entry
+#: configuration.xml:467
+#, fuzzy, no-c-format
+msgid ""
+"Force Hibernate to order SQL updates by the primary key value of the items "
+"being updated. This will result in fewer transaction deadlocks in highly "
+"concurrent systems."
+msgstr ""
+"Fuerza a Hibernate a ordenar las actualizaciones SQL por el valor de la "
+"clave primaria de los items a actualizar. Esto resultará en menos bloqueos "
+"muertos de transacción en sistemas altamente concurrentes. <placeholder-1/>"
 
-#: index.docbook:479
+#. Tag: literal
+#: configuration.xml:479
+#, no-c-format
 msgid "hibernate.generate_statistics"
-msgstr "hibernate.use_identifer_rollback"
+msgstr "hibernate.generate_statistics"
 
-#: index.docbook:481
-msgid "If enabled, Hibernate will collect statistics useful for performance tuning."
-msgstr "De habilitarse, las propiedades identificadoras generadas ser&#x00e1;n reseteadas a valores por defecto cuando los objetos sean borrados."
+#. Tag: entry
+#: configuration.xml:481
+#, fuzzy, no-c-format
+msgid ""
+"If enabled, Hibernate will collect statistics useful for performance tuning."
+msgstr ""
+"De habilitarse, Hibernate colectará estadísticas útiles para la afinación de "
+"rendimiento. <placeholder-1/>"
 
-#: index.docbook:492
+#. Tag: literal
+#: configuration.xml:492
+#, no-c-format
 msgid "hibernate.use_identifier_rollback"
-msgstr "hibernate.use_sql_comments"
+msgstr "hibernate.use_identifer_rollback"
 
-#: index.docbook:494
-msgid "If enabled, generated identifier properties will be reset to default values when objects are deleted."
-msgstr "De activarse, Hibernate generar&#x00e1; comentarios dentro del SQL, para una m&#x00e1;s f&#x00e1;cil depuraci&#x00f3;n, por defecto a <literal>false</literal>."
+#. Tag: entry
+#: configuration.xml:494
+#, fuzzy, no-c-format
+msgid ""
+"If enabled, generated identifier properties will be reset to default values "
+"when objects are deleted."
+msgstr ""
+"De habilitarse, las propiedades identificadoras generadas serán reseteadas a "
+"valores por defecto cuando los objetos sean borrados. <placeholder-1/>"
 
-#: index.docbook:505
+#. Tag: literal
+#: configuration.xml:505
+#, no-c-format
 msgid "hibernate.use_sql_comments"
-msgstr "Propiedades de JDBC y Conexiones de Hibernate"
+msgstr "hibernate.use_sql_comments"
 
-#: index.docbook:507
-msgid "If turned on, Hibernate will generate comments inside the SQL, for easier debugging, defaults to <literal>false</literal>."
-msgstr "Nombre de propiedad"
+#. Tag: entry
+#: configuration.xml:507
+#, fuzzy, no-c-format
+msgid ""
+"If turned on, Hibernate will generate comments inside the SQL, for easier "
+"debugging, defaults to <literal>false</literal>."
+msgstr ""
+"De activarse, Hibernate generará comentarios dentro del SQL, para una más "
+"fácil depuración, por defecto a <placeholder-1/>. <placeholder-2/>"
 
-#: index.docbook:521
+#. Tag: title
+#: configuration.xml:521
+#, no-c-format
 msgid "Hibernate JDBC and Connection Properties"
-msgstr "hibernate.jdbc.fetch_size"
+msgstr "Propiedades de JDBC y Conexiones de Hibernate"
 
-#: index.docbook:536
+#. Tag: literal
+#: configuration.xml:536
+#, no-c-format
 msgid "hibernate.jdbc.fetch_size"
-msgstr "Un valor distinto de cero habilita el uso de actualizaciones en lote de JDBC2 por Hibernate."
+msgstr "hibernate.jdbc.fetch_size"
 
-#: index.docbook:538
-msgid "A non-zero value determines the JDBC fetch size (calls <literal>Statement.setFetchSize()</literal>)."
-msgstr "<emphasis role=\"strong\">ej.</emphasis> valores recomendados entre <literal>5</literal> y <literal>30</literal>"
+#. Tag: entry
+#: configuration.xml:538
+#, fuzzy, no-c-format
+msgid ""
+"A non-zero value determines the JDBC fetch size (calls <literal>Statement."
+"setFetchSize()</literal>)."
+msgstr ""
+"Un valor distinto de cero que determina el tamaño de recuperación de JDBC "
+"(llama a <placeholder-1/>)."
 
-#: index.docbook:545
+#. Tag: literal
+#: configuration.xml:545
+#, no-c-format
 msgid "hibernate.jdbc.batch_size"
-msgstr "hibernate.jdbc.batch_versioned_data"
+msgstr "hibernate.jdbc.batch_size"
 
-#: index.docbook:547
+#. Tag: entry
+#: configuration.xml:547
+#, fuzzy, no-c-format
 msgid "A non-zero value enables use of JDBC2 batch updates by Hibernate."
-msgstr "Establece esta propiedad a <literal>true</literal> si tu driver JDBC devuelve cuentas correctas de filas desde <literal>executeBatch()</literal> (usualmente es seguro activar esta opci&#x00f3;n). Hibernate usar&#x00e1; DML en lote para versionar autom&#x00e1;ticamente los datos. Por defecto a <literal>false</literal>."
+msgstr ""
+"Un valor distinto de cero habilita el uso de actualizaciones en lote de "
+"JDBC2 por Hibernate. <placeholder-1/>"
 
-#: index.docbook:549
-msgid "<emphasis role=\"strong\">eg.</emphasis> recommended values between <literal>5</literal> and <literal>30</literal>"
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>true</literal> | <literal>false</literal>"
+#. Tag: para
+#: configuration.xml:549
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">eg.</emphasis> recommended values between "
+"<literal>5</literal> and <literal>30</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ej.</emphasis> valores recomendados entre "
+"<literal>5</literal> y <literal>30</literal>"
 
-#: index.docbook:557
+#. Tag: literal
+#: configuration.xml:557
+#, no-c-format
 msgid "hibernate.jdbc.batch_versioned_data"
-msgstr "hibernate.jdbc.factory_class"
+msgstr "hibernate.jdbc.batch_versioned_data"
 
-#: index.docbook:559
-msgid "Set this property to <literal>true</literal> if your JDBC driver returns correct row counts from <literal>executeBatch()</literal> (it is usually safe to turn this option on). Hibernate will then use batched DML for automatically versioned data. Defaults to <literal>false</literal>."
-msgstr "Selecciona un <literal>Batcher</literal> personalizado. La mayor&#x00ed;a de las aplicaciones no necesitar&#x00e1;n esta propiedad de configuraci&#x00f3;n."
+#. Tag: entry
+#: configuration.xml:559
+#, fuzzy, no-c-format
+msgid ""
+"Set this property to <literal>true</literal> if your JDBC driver returns "
+"correct row counts from <literal>executeBatch()</literal> (it is usually "
+"safe to turn this option on). Hibernate will then use batched DML for "
+"automatically versioned data. Defaults to <literal>false</literal>."
+msgstr ""
+"Establece esta propiedad a <placeholder-1/> si tu driver JDBC devuelve "
+"cuentas correctas de filas desde <placeholder-2/> (usualmente es seguro "
+"activar esta opción). Hibernate usará DML en lote para versionar "
+"automáticamente los datos. Por defecto a <placeholder-3/>. <placeholder-4/>"
 
-#: index.docbook:572
+#. Tag: literal
+#: configuration.xml:572
+#, no-c-format
 msgid "hibernate.jdbc.factory_class"
-msgstr "hibernate.jdbc.use_scrollable_resultset"
+msgstr "hibernate.jdbc.factory_class"
 
-#: index.docbook:574
-msgid "Select a custom <literal>Batcher</literal>. Most applications will not need this configuration property."
-msgstr "Habilita el uso de resultados scrollables de JDBC2 por Hibernate. Esta propiedad s&#x00f3;lo es necesaria cuando se usan conexiones JDBC provistas por el usuario, en caso contrario Hibernate usa los metadatos de conexi&#x00f3;n."
+#. Tag: entry
+#: configuration.xml:574
+#, fuzzy, no-c-format
+msgid ""
+"Select a custom <literal>Batcher</literal>. Most applications will not need "
+"this configuration property."
+msgstr ""
+"Selecciona un <placeholder-1/> personalizado. La mayoría de las aplicaciones "
+"no necesitarán esta propiedad de configuración. <placeholder-2/>"
 
-#: index.docbook:577
-msgid "<emphasis role=\"strong\">eg.</emphasis> <literal>classname.of.BatcherFactory</literal>"
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>true</literal> | <literal>false</literal>"
+#. Tag: para
+#: configuration.xml:577
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">eg.</emphasis> <literal>classname.of."
+"BatcherFactory</literal>"
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
 
-#: index.docbook:585
+#. Tag: literal
+#: configuration.xml:585
+#, no-c-format
 msgid "hibernate.jdbc.use_scrollable_resultset"
-msgstr "hibernate.jdbc.use_streams_for_binary"
+msgstr "hibernate.jdbc.use_scrollable_resultset"
 
-#: index.docbook:587
-msgid "Enables use of JDBC2 scrollable resultsets by Hibernate. This property is only necessary when using user supplied JDBC connections, Hibernate uses connection metadata otherwise."
-msgstr "Usa flujos (streams) al escribir/leer tipos <literal>binary</literal> o <literal>serializable</literal> a/desde JDBC (propiedad a nivel de sistema)."
+#. Tag: entry
+#: configuration.xml:587
+#, fuzzy, no-c-format
+msgid ""
+"Enables use of JDBC2 scrollable resultsets by Hibernate. This property is "
+"only necessary when using user supplied JDBC connections, Hibernate uses "
+"connection metadata otherwise."
+msgstr ""
+"Habilita el uso de resultados scrollables de JDBC2 por Hibernate. Esta "
+"propiedad sólo es necesaria cuando se usan conexiones JDBC provistas por el "
+"usuario, en caso contrario Hibernate usa los metadatos de conexión. "
+"<placeholder-1/>"
 
-#: index.docbook:599
+#. Tag: literal
+#: configuration.xml:599
+#, no-c-format
 msgid "hibernate.jdbc.use_streams_for_binary"
-msgstr "hibernate.jdbc.use_get_generated_keys"
+msgstr "hibernate.jdbc.use_streams_for_binary"
 
-#: index.docbook:601
-msgid "Use streams when writing/reading <literal>binary</literal> or <literal>serializable</literal> types to/from JDBC (system-level property)."
-msgstr "Habilita el uso de <literal>PreparedStatement.getGeneratedKeys()</literal> de JDBC3 para traer claves generadas nativamente despu&#x00e9;s de insertar. Requiere un driver JDBC3+ y un JRE1.4+. Establ&#x00e9;cela a false si tu driver tiene problemas con los generadores de identificador de Hibernate. Por defecto, se intenta determinar las capacidades del driver usando los metadatos de conexi&#x00f3;n."
+#. Tag: entry
+#: configuration.xml:601
+#, fuzzy, no-c-format
+msgid ""
+"Use streams when writing/reading <literal>binary</literal> or "
+"<literal>serializable</literal> types to/from JDBC (system-level property)."
+msgstr ""
+"Usa flujos (streams) al escribir/leer tipos <placeholder-1/> o <placeholder-"
+"2/> a/desde JDBC (propiedad a nivel de sistema). <placeholder-3/>"
 
-#: index.docbook:613
+#. Tag: literal
+#: configuration.xml:613
+#, no-c-format
 msgid "hibernate.jdbc.use_get_generated_keys"
-msgstr "hibernate.connection.provider_class"
+msgstr "hibernate.jdbc.use_get_generated_keys"
 
-#: index.docbook:615
-msgid "Enable use of JDBC3 <literal>PreparedStatement.getGeneratedKeys()</literal> to retrieve natively generated keys after insert. Requires JDBC3+ driver and JRE1.4+, set to false if your driver has problems with the Hibernate identifier generators. By default, tries to determine the driver capabilities using connection metadata."
-msgstr "EL nombre de clase de un <literal>ConnectionProvider</literal> personalizado que provea conexiones JDBC a Hibernate."
+#. Tag: entry
+#: configuration.xml:615
+#, fuzzy, no-c-format
+msgid ""
+"Enable use of JDBC3 <literal>PreparedStatement.getGeneratedKeys()</literal> "
+"to retrieve natively generated keys after insert. Requires JDBC3+ driver and "
+"JRE1.4+, set to false if your driver has problems with the Hibernate "
+"identifier generators. By default, tries to determine the driver "
+"capabilities using connection metadata."
+msgstr ""
+"Habilita el uso de <placeholder-1/> de JDBC3 para traer claves generadas "
+"nativamente después de insertar. Requiere un driver JDBC3+ y un JRE1.4+. "
+"Establécela a false si tu driver tiene problemas con los generadores de "
+"identificador de Hibernate. Por defecto, se intenta determinar las "
+"capacidades del driver usando los metadatos de conexión. <placeholder-2/>"
 
-#: index.docbook:621, index.docbook:751, index.docbook:763, index.docbook:777, index.docbook:815
+#. Tag: para
+#: configuration.xml:621 configuration.xml:751 configuration.xml:763
+#: configuration.xml:777 configuration.xml:815
+#, fuzzy, no-c-format
 msgid "<emphasis role=\"strong\">eg.</emphasis> <literal>true|false</literal>"
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>classname.of.ConnectionProvider</literal>"
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
 
-#: index.docbook:629
+#. Tag: literal
+#: configuration.xml:629
+#, no-c-format
 msgid "hibernate.connection.provider_class"
-msgstr "hibernate.connection.isolation"
+msgstr "hibernate.connection.provider_class"
 
-#: index.docbook:631
-msgid "The classname of a custom <literal>ConnectionProvider</literal> which provides JDBC connections to Hibernate."
-msgstr "Establece el nivel de aislamiento de transacci&#x00f3;n JDBC. Comprueba <literal>java.sql.Connection</literal> para valores significativos pero observa que la mayor&#x00ed;a de las bases de datos no soportan todos los niveles de aislamiento."
+#. Tag: entry
+#: configuration.xml:631
+#, fuzzy, no-c-format
+msgid ""
+"The classname of a custom <literal>ConnectionProvider</literal> which "
+"provides JDBC connections to Hibernate."
+msgstr ""
+"EL nombre de clase de un <placeholder-1/> personalizado que provea "
+"conexiones JDBC a Hibernate. <placeholder-2/>"
 
-#: index.docbook:634
-msgid "<emphasis role=\"strong\">eg.</emphasis> <literal>classname.of.ConnectionProvider</literal>"
-msgstr "<emphasis role=\"strong\">eg.</emphasis> <literal>1, 2, 4, 8</literal>"
+#. Tag: para
+#: configuration.xml:634
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">eg.</emphasis> <literal>classname.of."
+"ConnectionProvider</literal>"
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
 
-#: index.docbook:642
+#. Tag: literal
+#: configuration.xml:642
+#, no-c-format
 msgid "hibernate.connection.isolation"
-msgstr "hibernate.connection.autocommit"
+msgstr "hibernate.connection.isolation"
 
-#: index.docbook:644
-msgid "Set the JDBC transaction isolation level. Check <literal>java.sql.Connection</literal> for meaningful values but note that most databases do not support all isolation levels."
-msgstr "Habilita compromiso autom&#x00e1;tico (autocommit) para las conexiones JDBC en pool (no recomendado)."
+#. Tag: entry
+#: configuration.xml:644
+#, fuzzy, no-c-format
+msgid ""
+"Set the JDBC transaction isolation level. Check <literal>java.sql."
+"Connection</literal> for meaningful values but note that most databases do "
+"not support all isolation levels."
+msgstr ""
+"Establece el nivel de aislamiento de transacción JDBC. Comprueba "
+"<placeholder-1/> para valores significativos pero observa que la mayoría de "
+"las bases de datos no soportan todos los niveles de aislamiento. "
+"<placeholder-2/>"
 
-#: index.docbook:648
+#. Tag: para
+#: configuration.xml:648
+#, fuzzy, no-c-format
 msgid "<emphasis role=\"strong\">eg.</emphasis> <literal>1, 2, 4, 8</literal>"
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>true</literal> | <literal>false</literal>"
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
 
-#: index.docbook:656
+#. Tag: literal
+#: configuration.xml:656
+#, no-c-format
 msgid "hibernate.connection.autocommit"
-msgstr "hibernate.connection.release_mode"
+msgstr "hibernate.connection.autocommit"
 
-#: index.docbook:658
+#. Tag: entry
+#: configuration.xml:658
+#, fuzzy, no-c-format
 msgid "Enables autocommit for JDBC pooled connections (not recommended)."
-msgstr "Especifica cu&#x00e1;ndo Hibernate debe liberar las conexiones JDBC. Por defecto, una conexi&#x00f3;n JDBC es retenida hasta que la sesi&#x00f3;n es cerrada expl&#x00ed;citamente o desconectada. Para un datasource JTA del servidor de aplicaciones, debes usar <literal>after_statement</literal> para liberar agresivamente las conexiones despu&#x00e9;s de cada llamada JDBC. Para una conexi&#x00f3;n no JTA, frecuentemente tiene sentido liberar la conexi&#x00f3;n al final de cada transacci&#x00f3;n, usando <literal>after_transaction</literal>. <literal>auto</literal> eligir&#x00e1; <literal>after_statement</literal> para las estrategias JTA o CMT de transacci&#x00f3;n y <literal>after_transaction</literal> para la estrategia JDBC de transacci&#x00f3;n."
+msgstr ""
+"Habilita compromiso automático (autocommit) para las conexiones JDBC en pool "
+"(no recomendado). <placeholder-1/>"
 
-#: index.docbook:668
+#. Tag: literal
+#: configuration.xml:668
+#, no-c-format
 msgid "hibernate.connection.release_mode"
-msgstr "hibernate.connection.<emphasis>&lt;propertyName&gt;</emphasis>"
+msgstr "hibernate.connection.release_mode"
 
-#: index.docbook:670
-msgid "Specify when Hibernate should release JDBC connections. By default, a JDBC connection is held until the session is explicitly closed or disconnected. For an application server JTA datasource, you should use <literal>after_statement</literal> to aggressively release connections after every JDBC call. For a non-JTA connection, it often makes sense to release the connection at the end of each transaction, by using <literal>after_transaction</literal>. <literal>auto</literal> will choose <literal>after_statement</literal> for the JTA and CMT transaction strategies and <literal>after_transaction</literal> for the JDBC transaction strategy."
-msgstr "Pasa la propiedad JDBC <literal>propertyName</literal> a <literal>DriverManager.getConnection()</literal>."
+#. Tag: entry
+#: configuration.xml:670
+#, fuzzy, no-c-format
+msgid ""
+"Specify when Hibernate should release JDBC connections. By default, a JDBC "
+"connection is held until the session is explicitly closed or disconnected. "
+"For an application server JTA datasource, you should use "
+"<literal>after_statement</literal> to aggressively release connections after "
+"every JDBC call. For a non-JTA connection, it often makes sense to release "
+"the connection at the end of each transaction, by using "
+"<literal>after_transaction</literal>. <literal>auto</literal> will choose "
+"<literal>after_statement</literal> for the JTA and CMT transaction "
+"strategies and <literal>after_transaction</literal> for the JDBC transaction "
+"strategy."
+msgstr ""
+"Especifica cuándo Hibernate debe liberar las conexiones JDBC. Por defecto, "
+"una conexión JDBC es retenida hasta que la sesión es cerrada explícitamente "
+"o desconectada. Para un datasource JTA del servidor de aplicaciones, debes "
+"usar <placeholder-1/> para liberar agresivamente las conexiones después de "
+"cada llamada JDBC. Para una conexión no JTA, frecuentemente tiene sentido "
+"liberar la conexión al final de cada transacción, usando <placeholder-2/>. "
+"<placeholder-3/> eligirá <placeholder-4/> para las estrategias JTA o CMT de "
+"transacción y <placeholder-5/> para la estrategia JDBC de transacción. "
+"<placeholder-6/><placeholder-7/>"
 
-#: index.docbook:681
-msgid "<emphasis role=\"strong\">eg.</emphasis> <literal>auto</literal> (default) | <literal>on_close</literal> | <literal>after_transaction</literal> | <literal>after_statement</literal>"
-msgstr "hibernate.jndi.<emphasis>&lt;propertyName&gt;</emphasis>"
+#. Tag: para
+#: configuration.xml:681
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">eg.</emphasis> <literal>auto</literal> (default) | "
+"<literal>on_close</literal> | <literal>after_transaction</literal> | "
+"<literal>after_statement</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ej.</emphasis><literal>on_close</literal> (por "
+"defecto)| <literal>after_transaction</literal> | <literal>after_statement</"
+"literal> | <literal>auto</literal>"
 
-#: index.docbook:686
-msgid "Note that this setting only affects <literal>Session</literal>s returned from <literal>SessionFactory.openSession</literal>. For <literal>Session</literal>s obtained through <literal>SessionFactory.getCurrentSession</literal>, the <literal>CurrentSessionContext</literal> implementation configured for use controls the connection release mode for those <literal>Session</literal>s. See"
-msgstr "Pasa la propiedad <literal>propertyName</literal> a <literal>InitialContextFactory</literal> de JNDI."
+#. Tag: para
+#: configuration.xml:686
+#, fuzzy, no-c-format
+msgid ""
+"Note that this setting only affects <literal>Session</literal>s returned "
+"from <literal>SessionFactory.openSession</literal>. For <literal>Session</"
+"literal>s obtained through <literal>SessionFactory.getCurrentSession</"
+"literal>, the <literal>CurrentSessionContext</literal> implementation "
+"configured for use controls the connection release mode for those "
+"<literal>Session</literal>s. See"
+msgstr ""
+"Note that this setting only affects <literal>Session</literal>s returned "
+"from <literal>SessionFactory.openSession</literal>. For <literal>Session</"
+"literal>s obtained through <literal>SessionFactory.getCurrentSession</"
+"literal>, the <literal>CurrentSessionContext</literal> implementation "
+"configured for use controls the connection release mode for those "
+"<literal>Session</literal>s. See <xref linkend=\"architecture-current-session"
+"\"/>"
 
-#: index.docbook:698
-msgid "hibernate.connection.<emphasis>&lt;propertyName&gt;</emphasis>"
-msgstr "Propiedades de Cach&#x00e9; de Hibernate"
+#. Tag: entry
+#: configuration.xml:697
+#, no-c-format
+msgid ""
+"<literal>hibernate.connection.</literal><emphasis>&lt;propertyName&gt;</"
+"emphasis>"
+msgstr ""
 
-#: index.docbook:700
-msgid "Pass the JDBC property <literal>propertyName</literal> to <literal>DriverManager.getConnection()</literal>."
-msgstr "Nombre de propiedad"
+#. Tag: entry
+#: configuration.xml:700
+#, no-c-format
+msgid ""
+"Pass the JDBC property <emphasis>&lt;propertyName&gt;</emphasis> to "
+"<literal>DriverManager.getConnection()</literal>."
+msgstr ""
 
-#: index.docbook:707
-msgid "hibernate.jndi.<emphasis>&lt;propertyName&gt;</emphasis>"
-msgstr "Prop&#x00f3;sito"
+#. Tag: entry
+#: configuration.xml:706
+#, no-c-format
+msgid ""
+"<literal>hibernate.jndi.</literal><emphasis>&lt;propertyName&gt;</emphasis>"
+msgstr ""
 
-#: index.docbook:709
-msgid "Pass the property <literal>propertyName</literal> to the JNDI <literal>InitialContextFactory</literal>."
-msgstr "hibernate.cache.provider_class"
+#. Tag: entry
+#: configuration.xml:709
+#, no-c-format
+msgid ""
+"Pass the property <emphasis>&lt;propertyName&gt;</emphasis> to the JNDI "
+"<literal>InitialContextFactory</literal>."
+msgstr ""
 
-#: index.docbook:719
+#. Tag: title
+#: configuration.xml:719
+#, no-c-format
 msgid "Hibernate Cache Properties"
-msgstr "El nombre de clase de un <literal>CacheProvider</literal> personalizado."
+msgstr "Propiedades de Caché de Hibernate"
 
-#: index.docbook:732
+#. Tag: literal
+#: configuration.xml:732
+#, no-c-format
 msgid "hibernate.cache.provider_class"
-msgstr "Optimiza la operaci&#x00f3;n del cach&#x00e9; de segundo nivel para minimizar escrituras, al costo de lecturas m&#x00e1;s frecuentes. Esto es m&#x00e1;s &#x00fa;til para cach&#x00e9;s en cluster y, en Hibernate3, est&#x00e1; habilitado por defecto para implementaciones de cach&#x00e9; en cluster."
+msgstr "hibernate.cache.provider_class"
 
-#: index.docbook:734
+#. Tag: entry
+#: configuration.xml:734
+#, fuzzy, no-c-format
 msgid "The classname of a custom <literal>CacheProvider</literal>."
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>true|false</literal>"
+msgstr ""
+"El nombre de clase de un <placeholder-1/> personalizado. <placeholder-2/>"
 
-#: index.docbook:736
-msgid "<emphasis role=\"strong\">eg.</emphasis> <literal>classname.of.CacheProvider</literal>"
-msgstr "hibernate.cache.use_query_cache"
+#. Tag: para
+#: configuration.xml:736
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">eg.</emphasis> <literal>classname.of."
+"CacheProvider</literal>"
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
 
-#: index.docbook:744
+#. Tag: literal
+#: configuration.xml:744
+#, no-c-format
 msgid "hibernate.cache.use_minimal_puts"
-msgstr "Habilita el cach&#x00e9; de lectura, consultas individuales todav&#x00ed;a tienen que ponerse cachables."
+msgstr "hibernate.cache.use_minimal_puts"
 
-#: index.docbook:746
-msgid "Optimize second-level cache operation to minimize writes, at the cost of more frequent reads. This setting is most useful for clustered caches and, in Hibernate3, is enabled by default for clustered cache implementations."
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>true|false</literal>"
+#. Tag: entry
+#: configuration.xml:746
+#, fuzzy, no-c-format
+msgid ""
+"Optimize second-level cache operation to minimize writes, at the cost of "
+"more frequent reads. This setting is most useful for clustered caches and, "
+"in Hibernate3, is enabled by default for clustered cache implementations."
+msgstr ""
+"Optimiza la operación del caché de segundo nivel para minimizar escrituras, "
+"al costo de lecturas más frecuentes. Esto es más útil para cachés en cluster "
+"y, en Hibernate3, está habilitado por defecto para implementaciones de caché "
+"en cluster. <placeholder-1/>"
 
-#: index.docbook:759
+#. Tag: literal
+#: configuration.xml:759
+#, no-c-format
 msgid "hibernate.cache.use_query_cache"
-msgstr "Puede ser usado para deshabilitar completamente el cach&#x00e9; de segundo nivel, que est&#x00e1; habilitado por defecto para clases que especifican un mapeo <literal>&lt;cache&gt;</literal>."
+msgstr "hibernate.cache.use_query_cache"
 
-#: index.docbook:761
-msgid "Enable the query cache, individual queries still have to be set cachable."
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>true|false</literal>"
+#. Tag: entry
+#: configuration.xml:761
+#, fuzzy, no-c-format
+msgid ""
+"Enable the query cache, individual queries still have to be set cachable."
+msgstr ""
+"Habilita el caché de lectura, consultas individuales todavía tienen que "
+"ponerse cachables. <placeholder-1/>"
 
-#: index.docbook:771
+#. Tag: literal
+#: configuration.xml:771
+#, no-c-format
 msgid "hibernate.cache.use_second_level_cache"
-msgstr "El nombre de clase de una interface <literal>QueryCache</literal> personalizada, por defecto al <literal>StandardQueryCache</literal> prefabricado."
+msgstr "hibernate.cache.use_second_level_cache"
 
-#: index.docbook:773
-msgid "May be used to completely disable the second level cache, which is enabled by default for classes which specify a <literal>&lt;cache&gt;</literal> mapping."
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>classname.of.QueryCache</literal>"
+#. Tag: entry
+#: configuration.xml:773
+#, fuzzy, no-c-format
+msgid ""
+"May be used to completely disable the second level cache, which is enabled "
+"by default for classes which specify a <literal>&lt;cache&gt;</literal> "
+"mapping."
+msgstr ""
+"Puede ser usado para deshabilitar completamente el caché de segundo nivel, "
+"que está habilitado por defecto para clases que especifican un mapeo "
+"<placeholder-1/>. <placeholder-2/>"
 
-#: index.docbook:785
+#. Tag: literal
+#: configuration.xml:785
+#, no-c-format
 msgid "hibernate.cache.query_cache_factory"
-msgstr "Un prefijo a usar para los nombres de regi&#x00f3;n del cach&#x00e9; de segundo nivel."
+msgstr "hibernate.cache.query_cache_factory"
 
-#: index.docbook:787
-msgid "The classname of a custom <literal>QueryCache</literal> interface, defaults to the built-in <literal>StandardQueryCache</literal>."
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>prefix</literal>"
+#. Tag: entry
+#: configuration.xml:787
+#, fuzzy, no-c-format
+msgid ""
+"The classname of a custom <literal>QueryCache</literal> interface, defaults "
+"to the built-in <literal>StandardQueryCache</literal>."
+msgstr ""
+"El nombre de clase de una interface <placeholder-1/> personalizada, por "
+"defecto al <placeholder-2/> prefabricado. <placeholder-3/>"
 
-#: index.docbook:790
-msgid "<emphasis role=\"strong\">eg.</emphasis> <literal>classname.of.QueryCache</literal>"
-msgstr "hibernate.cache.use_structured_entries"
+#. Tag: para
+#: configuration.xml:790
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">eg.</emphasis> <literal>classname.of.QueryCache</"
+"literal>"
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
 
-#: index.docbook:798
+#. Tag: literal
+#: configuration.xml:798
+#, no-c-format
 msgid "hibernate.cache.region_prefix"
-msgstr "Fuerza a Hibernate a almacenar los datos en el cach&#x00e9; de segundo nivel en un formato m&#x00e1;s amigable al humano."
+msgstr "hibernate.cache.region_prefix"
 
-#: index.docbook:800
+#. Tag: entry
+#: configuration.xml:800
+#, fuzzy, no-c-format
 msgid "A prefix to use for second-level cache region names."
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>true|false</literal>"
+msgstr ""
+"Un prefijo a usar para los nombres de región del caché de segundo nivel. "
+"<placeholder-1/>"
 
-#: index.docbook:802
+#. Tag: para
+#: configuration.xml:802
+#, fuzzy, no-c-format
 msgid "<emphasis role=\"strong\">eg.</emphasis> <literal>prefix</literal>"
-msgstr "Propiedades de Transacci&#x00f3;n de Hibernate"
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
 
-#: index.docbook:810
+#. Tag: literal
+#: configuration.xml:810
+#, no-c-format
 msgid "hibernate.cache.use_structured_entries"
-msgstr "Nombre de propiedad"
+msgstr "hibernate.cache.use_structured_entries"
 
-#: index.docbook:812
-msgid "Forces Hibernate to store data in the second-level cache in a more human-friendly format."
-msgstr "Prop&#x00f3;sito"
+#. Tag: entry
+#: configuration.xml:812
+#, fuzzy, no-c-format
+msgid ""
+"Forces Hibernate to store data in the second-level cache in a more human-"
+"friendly format."
+msgstr ""
+"Fuerza a Hibernate a almacenar los datos en el caché de segundo nivel en un "
+"formato más amigable al humano. <placeholder-1/>"
 
-#: index.docbook:826
+#. Tag: title
+#: configuration.xml:826
+#, no-c-format
 msgid "Hibernate Transaction Properties"
-msgstr "El nombre de clase de un <literal>TransactionFactory</literal> a usar con la API de <literal>Transaction</literal> de Hibernate (por defectoa <literal>JDBCTransactionFactory</literal>)."
+msgstr "Propiedades de Transacción de Hibernate"
 
-#: index.docbook:839
+#. Tag: literal
+#: configuration.xml:839
+#, no-c-format
 msgid "hibernate.transaction.factory_class"
-msgstr "Un nombre JNDI usado por <literal>JTATransactionFactory</literal> para obtener la <literal>UserTransaction</literal> JTA del servidor de aplicaciones."
+msgstr "hibernate.transaction.factory_class"
 
-#: index.docbook:841
-msgid "The classname of a <literal>TransactionFactory</literal> to use with Hibernate <literal>Transaction</literal> API (defaults to <literal>JDBCTransactionFactory</literal>)."
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>jndi/composite/name</literal>"
+#. Tag: entry
+#: configuration.xml:841
+#, fuzzy, no-c-format
+msgid ""
+"The classname of a <literal>TransactionFactory</literal> to use with "
+"Hibernate <literal>Transaction</literal> API (defaults to "
+"<literal>JDBCTransactionFactory</literal>)."
+msgstr ""
+"El nombre de clase de un <placeholder-1/> a usar con la API de <placeholder-"
+"2/> de Hibernate (por defectoa <placeholder-3/>). <placeholder-4/>"
 
-#: index.docbook:845
-msgid "<emphasis role=\"strong\">eg.</emphasis> <literal>classname.of.TransactionFactory</literal>"
-msgstr "hibernate.transaction.manager_lookup_class"
+#. Tag: para
+#: configuration.xml:845
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">eg.</emphasis> <literal>classname.of."
+"TransactionFactory</literal>"
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
 
-#: index.docbook:853
+#. Tag: literal
+#: configuration.xml:853
+#, no-c-format
 msgid "jta.UserTransaction"
-msgstr "El nombre de clase de un <literal>TransactionManagerLookup</literal> requerido cuando el chach&#x00e9; a nivel de JVM est&#x00e1; habilitado o cuando se usa un generador alto/bajo en un entorno JTA."
+msgstr "jta.UserTransaction"
 
-#: index.docbook:855
-msgid "A JNDI name used by <literal>JTATransactionFactory</literal> to obtain the JTA <literal>UserTransaction</literal> from the application server."
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>classname.of.TransactionManagerLookup</literal>"
+#. Tag: entry
+#: configuration.xml:855
+#, fuzzy, no-c-format
+msgid ""
+"A JNDI name used by <literal>JTATransactionFactory</literal> to obtain the "
+"JTA <literal>UserTransaction</literal> from the application server."
+msgstr ""
+"Un nombre JNDI usado por <placeholder-1/> para obtener la <placeholder-2/> "
+"JTA del servidor de aplicaciones. <placeholder-3/>"
 
-#: index.docbook:867
+#. Tag: literal
+#: configuration.xml:867
+#, no-c-format
 msgid "hibernate.transaction.manager_lookup_class"
-msgstr "De habilitarse, la sesi&#x00f3;n se limpiar&#x00e1; (flushed) autom&#x00e1;ticamente durante la fase previa a la compleci&#x00f3;n de la transacci&#x00f3;n. (Muy &#x00fa;til cuando se usa Hibernate con CMT)."
+msgstr "hibernate.transaction.manager_lookup_class"
 
-#: index.docbook:869
-msgid "The classname of a <literal>TransactionManagerLookup</literal> - required when JVM-level caching is enabled or when using hilo generator in a JTA environment."
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>true</literal> | <literal>false</literal>"
+#. Tag: entry
+#: configuration.xml:869
+#, fuzzy, no-c-format
+msgid ""
+"The classname of a <literal>TransactionManagerLookup</literal> - required "
+"when JVM-level caching is enabled or when using hilo generator in a JTA "
+"environment."
+msgstr ""
+"El nombre de clase de un <placeholder-1/> requerido cuando el chaché a nivel "
+"de JVM está habilitado o cuando se usa un generador alto/bajo en un entorno "
+"JTA. <placeholder-2/>"
 
-#: index.docbook:873
-msgid "<emphasis role=\"strong\">eg.</emphasis> <literal>classname.of.TransactionManagerLookup</literal>"
-msgstr "hibernate.transaction.auto_close_session"
+#. Tag: para
+#: configuration.xml:873
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">eg.</emphasis> <literal>classname.of."
+"TransactionManagerLookup</literal>"
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
 
-#: index.docbook:881
+#. Tag: literal
+#: configuration.xml:881
+#, no-c-format
 msgid "hibernate.transaction.flush_before_completion"
-msgstr "De habilitarse, la sesi&#x00f3;n ser&#x00e1; cerrada autom&#x00e1;ticamente durante la fase posterior a la compleci&#x00f3;n de la transacci&#x00f3;n. (Muy &#x00fa;til cuando se usa Hibernate con CMT)."
+msgstr "hibernate.transaction.flush_before_completion"
 
-#: index.docbook:883
-msgid "If enabled, the session will be automatically flushed during the before completion phase of the transaction. Built-in and automatic session context management is preferred, see <xref linkend=\"architecture-current-session\"/>."
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>true</literal> | <literal>false</literal>"
+#. Tag: entry
+#: configuration.xml:883
+#, fuzzy, no-c-format
+msgid ""
+"If enabled, the session will be automatically flushed during the before "
+"completion phase of the transaction. Built-in and automatic session context "
+"management is preferred, see <xref linkend=\"architecture-current-session\"/"
+">."
+msgstr ""
+"De habilitarse, la sesión se limpiará (flushed) automáticamente durante la "
+"fase previa a la compleción de la transacción. (Muy útil cuando se usa "
+"Hibernate con CMT). <placeholder-1/>"
 
-#: index.docbook:896
+#. Tag: literal
+#: configuration.xml:896
+#, no-c-format
 msgid "hibernate.transaction.auto_close_session"
-msgstr "Nombre de propiedad"
+msgstr "hibernate.transaction.auto_close_session"
 
-#: index.docbook:898
-msgid "If enabled, the session will be automatically closed during the after completion phase of the transaction. Built-in and utomatic session context management is preferred, see <xref linkend=\"architecture-current-session\"/>."
-msgstr "Prop&#x00f3;sito"
+#. Tag: entry
+#: configuration.xml:898
+#, fuzzy, no-c-format
+msgid ""
+"If enabled, the session will be automatically closed during the after "
+"completion phase of the transaction. Built-in and utomatic session context "
+"management is preferred, see <xref linkend=\"architecture-current-session\"/"
+">."
+msgstr ""
+"De habilitarse, la sesión será cerrada automáticamente durante la fase "
+"posterior a la compleción de la transacción. (Muy útil cuando se usa "
+"Hibernate con CMT).<xref linkend=\"architecture-current-session\"/"
+"><placeholder-1/>"
 
-#: index.docbook:914
+#. Tag: title
+#: configuration.xml:914
+#, no-c-format
 msgid "Miscellaneous Properties"
-msgstr "Elige la implementaci&#x00f3;n de parser HQL."
+msgstr "Propiedades Misceláneas"
 
-#: index.docbook:927
+#. Tag: literal
+#: configuration.xml:927
+#, no-c-format
 msgid "hibernate.current_session_context_class"
-msgstr "Mapeos de s&#x00ed;mbolos en consultas Hibernate a s&#x00ed;mbolos SQL. (los s&#x00ed;mbolos puedem ser nombres de funci&#x00f3;n o literales, por ejemplo)."
+msgstr "hibernate.current_session_context_class"
 
-#: index.docbook:929
-msgid "Supply a (custom) strategy for the scoping of the \"current\" <literal>Session</literal>. See <xref linkend=\"architecture-current-session\"/> for more information about the built-in strategies."
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC</literal>"
+#. Tag: entry
+#: configuration.xml:929
+#, fuzzy, no-c-format
+msgid ""
+"Supply a (custom) strategy for the scoping of the \"current\" "
+"<literal>Session</literal>. See <xref linkend=\"architecture-current-session"
+"\"/> for more information about the built-in strategies."
+msgstr ""
+"Supply a (custom) strategy for the scoping of the \"current\" <placeholder-1/"
+">. See <xref linkend=\"architecture-current-session\"/> for more information "
+"about the built-in strategies. <placeholder-2/>"
 
-#: index.docbook:934
-msgid "<emphasis role=\"strong\">eg.</emphasis> <literal>jta</literal> | <literal>thread</literal> | <literal>managed</literal> | <literal>custom.Class</literal>"
-msgstr "hibernate.hbm2ddl.auto"
+#. Tag: para
+#: configuration.xml:934
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">eg.</emphasis> <literal>jta</literal> | "
+"<literal>thread</literal> | <literal>managed</literal> | <literal>custom."
+"Class</literal>"
+msgstr ""
+"<emphasis role=\"strong\">eg.</emphasis><literal>jta</literal> | "
+"<literal>thread</literal> | <literal>managed</literal> | <literal>custom."
+"Class</literal>"
 
-#: index.docbook:943
+#. Tag: literal
+#: configuration.xml:943
+#, no-c-format
 msgid "hibernate.query.factory_class"
-msgstr "Exporta autom&#x00e1;ticamente DDL de esquema cuando al crear la <literal>SessionFactory</literal>. Con <literal>create-drop</literal>, el esquema de base de datos ser&#x00e1; desechado cuando la <literal>SessionFactory</literal> se cierre expl&#x00ed;citamente."
+msgstr "hibernate.query.factory_class"
 
-#: index.docbook:945
+#. Tag: entry
+#: configuration.xml:945
+#, fuzzy, no-c-format
 msgid "Chooses the HQL parser implementation."
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>update</literal> | <literal>create</literal> | <literal>create-drop</literal>"
+msgstr "Elige la implementación de parser HQL. <placeholder-1/>"
 
-#: index.docbook:947
-msgid "<emphasis role=\"strong\">eg.</emphasis> <literal>org.hibernate.hql.ast.ASTQueryTranslatorFactory</literal> or <literal>org.hibernate.hql.classic.ClassicQueryTranslatorFactory</literal>"
-msgstr "hibernate.cglib.use_reflection_optimizer"
+#. Tag: para
+#: configuration.xml:947
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">eg.</emphasis> <literal>org.hibernate.hql.ast."
+"ASTQueryTranslatorFactory</literal> or <literal>org.hibernate.hql.classic."
+"ClassicQueryTranslatorFactory</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ej.</emphasis><literal>org.hibernate.hql.ast."
+"ASTQueryTranslatorFactory</literal> or <literal>org.hibernate.hql.classic."
+"ClassicQueryTranslatorFactory</literal>"
 
-#: index.docbook:956
+#. Tag: literal
+#: configuration.xml:956
+#, no-c-format
 msgid "hibernate.query.substitutions"
-msgstr "Habilita el uso de CGLIB en vez de reflecc&#x00f3;n en tiempo de ejecuci&#x00f3;n (propiedad a nivel de sistema). La reflecci&#x00f3;n a veces puede ser &#x00fa;til ante la aparici&#x00f3;n de problemas. Observa que Hibernate siempre requiere CGLIB incluso si desactivas el optimizador. No puedes establecer esta propiedad en <literal>hibernate.cfg.xml</literal>."
+msgstr "hibernate.query.substitutions"
 
-#: index.docbook:958
-msgid "Mapping from tokens in Hibernate queries to SQL tokens (tokens might be function or literal names, for example)."
-msgstr "<emphasis role=\"strong\">ej.</emphasis> <literal>true</literal> | <literal>false</literal>"
+#. Tag: entry
+#: configuration.xml:958
+#, fuzzy, no-c-format
+msgid ""
+"Mapping from tokens in Hibernate queries to SQL tokens (tokens might be "
+"function or literal names, for example)."
+msgstr ""
+"Mapeos de símbolos en consultas Hibernate a símbolos SQL. (los símbolos "
+"puedem ser nombres de función o literales, por ejemplo). <placeholder-1/>"
 
-#: index.docbook:961
-msgid "<emphasis role=\"strong\">eg.</emphasis> <literal>hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC</literal>"
-msgstr "SQL Dialects"
+#. Tag: para
+#: configuration.xml:961
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">eg.</emphasis> <literal>hqlLiteral=SQL_LITERAL, "
+"hqlFunction=SQLFUNC</literal>"
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"<emphasis role=\"strong\">ej.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
 
-#: index.docbook:969
+#. Tag: literal
+#: configuration.xml:969
+#, no-c-format
 msgid "hibernate.hbm2ddl.auto"
-msgstr "You should always set the <literal>hibernate.dialect</literal> property to the correct <literal>org.hibernate.dialect.Dialect</literal> subclass for your database. If you specify a dialect, Hibernate will use sensible defaults for some of the other properties listed above, saving you the effort of specifying them manually."
+msgstr "hibernate.hbm2ddl.auto"
 
-#: index.docbook:971
-msgid "Automatically validate or export schema DDL to the database when the <literal>SessionFactory</literal> is created. With <literal>create-drop</literal>, the database schema will be dropped when the <literal>SessionFactory</literal> is closed explicitly."
-msgstr "Dialectos SQL de Hibernate(<literal>hibernate.dialect</literal>)"
+#. Tag: entry
+#: configuration.xml:971
+#, fuzzy, no-c-format
+msgid ""
+"Automatically validate or export schema DDL to the database when the "
+"<literal>SessionFactory</literal> is created. With <literal>create-drop</"
+"literal>, the database schema will be dropped when the "
+"<literal>SessionFactory</literal> is closed explicitly."
+msgstr ""
+"Exporta automáticamente DDL de esquema cuando al crear la <placeholder-1/>. "
+"Con <placeholder-2/>, el esquema de base de datos será desechado cuando la "
+"<placeholder-3/> se cierre explícitamente. <placeholder-4/>"
 
-#: index.docbook:977
-msgid "<emphasis role=\"strong\">eg.</emphasis> <literal>validate</literal> | <literal>update</literal> | <literal>create</literal> | <literal>create-drop</literal>"
-msgstr "RDBMS"
+#. Tag: para
+#: configuration.xml:977
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">eg.</emphasis> <literal>validate</literal> | "
+"<literal>update</literal> | <literal>create</literal> | <literal>create-"
+"drop</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ej.</emphasis><literal>update</literal> | "
+"<literal>create</literal> | <literal>create-drop</literal>"
 
-#: index.docbook:986
+#. Tag: literal
+#: configuration.xml:986
+#, no-c-format
 msgid "hibernate.cglib.use_reflection_optimizer"
-msgstr "Dialecto"
+msgstr "hibernate.cglib.use_reflection_optimizer"
 
-#: index.docbook:988
-msgid "Enables use of CGLIB instead of runtime reflection (System-level property). Reflection can sometimes be useful when troubleshooting, note that Hibernate always requires CGLIB even if you turn off the optimizer. You can not set this property in <literal>hibernate.cfg.xml</literal>."
-msgstr "<entry>DB2</entry>"
+#. Tag: entry
+#: configuration.xml:988
+#, fuzzy, no-c-format
+msgid ""
+"Enables use of CGLIB instead of runtime reflection (System-level property). "
+"Reflection can sometimes be useful when troubleshooting, note that Hibernate "
+"always requires CGLIB even if you turn off the optimizer. You can not set "
+"this property in <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+"Habilita el uso de CGLIB en vez de refleccón en tiempo de ejecución "
+"(propiedad a nivel de sistema). La reflección a veces puede ser útil ante la "
+"aparición de problemas. Observa que Hibernate siempre requiere CGLIB incluso "
+"si desactivas el optimizador. No puedes establecer esta propiedad en "
+"<placeholder-1/>. <placeholder-2/>"
 
-#: index.docbook:1004
+#. Tag: title
+#: configuration.xml:1004
+#, no-c-format
 msgid "SQL Dialects"
-msgstr "DB2 AS/400"
+msgstr "SQL Dialects"
 
-#: index.docbook:1006
-msgid "You should always set the <literal>hibernate.dialect</literal> property to the correct <literal>org.hibernate.dialect.Dialect</literal> subclass for your database. If you specify a dialect, Hibernate will use sensible defaults for some of the other properties listed above, saving you the effort of specifying them manually."
-msgstr "org.hibernate.dialect.DB2400Dialect"
+#. Tag: para
+#: configuration.xml:1006
+#, no-c-format
+msgid ""
+"You should always set the <literal>hibernate.dialect</literal> property to "
+"the correct <literal>org.hibernate.dialect.Dialect</literal> subclass for "
+"your database. If you specify a dialect, Hibernate will use sensible "
+"defaults for some of the other properties listed above, saving you the "
+"effort of specifying them manually."
+msgstr ""
+"You should always set the <literal>hibernate.dialect</literal> property to "
+"the correct <literal>org.hibernate.dialect.Dialect</literal> subclass for "
+"your database. If you specify a dialect, Hibernate will use sensible "
+"defaults for some of the other properties listed above, saving you the "
+"effort of specifying them manually."
 
-#: index.docbook:1014
+#. Tag: title
+#: configuration.xml:1014
+#, no-c-format
 msgid "Hibernate SQL Dialects (<literal>hibernate.dialect</literal>)"
-msgstr "DB2 OS390"
+msgstr "Dialectos SQL de Hibernate(<literal>hibernate.dialect</literal>)"
 
-#: index.docbook:1022
+#. Tag: entry
+#: configuration.xml:1022
+#, no-c-format
 msgid "RDBMS"
-msgstr "org.hibernate.dialect.DB2390Dialect"
+msgstr "RDBMS"
 
-#: index.docbook:1023
+#. Tag: entry
+#: configuration.xml:1023
+#, fuzzy, no-c-format
 msgid "Dialect"
-msgstr "PostgreSQL"
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"Dialect\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"Dialecto"
 
-#: index.docbook:1028
+#. Tag: entry
+#: configuration.xml:1028
+#, no-c-format
 msgid "<entry>DB2</entry>"
-msgstr "org.hibernate.dialect.PostgreSQLDialect"
+msgstr ""
 
-#: index.docbook:1028
+#. Tag: literal
+#: configuration.xml:1028
+#, no-c-format
 msgid "org.hibernate.dialect.DB2Dialect"
-msgstr "MySQL"
+msgstr "org.hibernate.dialect.DB2Dialect"
 
-#: index.docbook:1031
+#. Tag: entry
+#: configuration.xml:1031
+#, no-c-format
 msgid "DB2 AS/400"
-msgstr "org.hibernate.dialect.MySQLDialect"
+msgstr "DB2 AS/400"
 
-#: index.docbook:1031
+#. Tag: literal
+#: configuration.xml:1031
+#, no-c-format
 msgid "org.hibernate.dialect.DB2400Dialect"
-msgstr "MySQL con InnoDB"
+msgstr "org.hibernate.dialect.DB2400Dialect"
 
-#: index.docbook:1034
+#. Tag: entry
+#: configuration.xml:1034
+#, no-c-format
 msgid "DB2 OS390"
-msgstr "org.hibernate.dialect.MySQLInnoDBDialect"
+msgstr "DB2 OS390"
 
-#: index.docbook:1034
+#. Tag: literal
+#: configuration.xml:1034
+#, no-c-format
 msgid "org.hibernate.dialect.DB2390Dialect"
-msgstr "MySQL con MyISAM"
+msgstr "org.hibernate.dialect.DB2390Dialect"
 
-#: index.docbook:1037
+#. Tag: entry
+#: configuration.xml:1037
+#, no-c-format
 msgid "PostgreSQL"
-msgstr "org.hibernate.dialect.MySQLMyISAMDialect"
+msgstr "PostgreSQL"
 
-#: index.docbook:1037
+#. Tag: literal
+#: configuration.xml:1037
+#, no-c-format
 msgid "org.hibernate.dialect.PostgreSQLDialect"
-msgstr "Oracle (cualquier versi&#x00f3;n)"
+msgstr "org.hibernate.dialect.PostgreSQLDialect"
 
-#: index.docbook:1040
+#. Tag: entry
+#: configuration.xml:1040
+#, no-c-format
 msgid "MySQL"
-msgstr "org.hibernate.dialect.OracleDialect"
+msgstr "MySQL"
 
-#: index.docbook:1040
+#. Tag: literal
+#: configuration.xml:1040
+#, no-c-format
 msgid "org.hibernate.dialect.MySQLDialect"
-msgstr "Oracle 9i/10g"
+msgstr "org.hibernate.dialect.MySQLDialect"
 
-#: index.docbook:1043
+#. Tag: entry
+#: configuration.xml:1043
+#, no-c-format
 msgid "MySQL with InnoDB"
-msgstr "org.hibernate.dialect.Oracle9Dialect"
+msgstr "MySQL con InnoDB"
 
-#: index.docbook:1043
+#. Tag: literal
+#: configuration.xml:1043
+#, no-c-format
 msgid "org.hibernate.dialect.MySQLInnoDBDialect"
-msgstr "Sybase"
+msgstr "org.hibernate.dialect.MySQLInnoDBDialect"
 
-#: index.docbook:1046
+#. Tag: entry
+#: configuration.xml:1046
+#, no-c-format
 msgid "MySQL with MyISAM"
-msgstr "org.hibernate.dialect.SybaseDialect"
+msgstr "MySQL con MyISAM"
 
-#: index.docbook:1046
+#. Tag: literal
+#: configuration.xml:1046
+#, no-c-format
 msgid "org.hibernate.dialect.MySQLMyISAMDialect"
-msgstr "Sybase Anywhere"
+msgstr "org.hibernate.dialect.MySQLMyISAMDialect"
 
-#: index.docbook:1049
+#. Tag: entry
+#: configuration.xml:1049
+#, no-c-format
 msgid "Oracle (any version)"
-msgstr "org.hibernate.dialect.SybaseAnywhereDialect"
+msgstr "Oracle (cualquier versión)"
 
-#: index.docbook:1049
+#. Tag: literal
+#: configuration.xml:1049
+#, no-c-format
 msgid "org.hibernate.dialect.OracleDialect"
-msgstr "Microsoft SQL Server"
+msgstr "org.hibernate.dialect.OracleDialect"
 
-#: index.docbook:1052
+#. Tag: entry
+#: configuration.xml:1052
+#, no-c-format
 msgid "Oracle 9i/10g"
-msgstr "org.hibernate.dialect.SQLServerDialect"
+msgstr "Oracle 9i/10g"
 
-#: index.docbook:1052
+#. Tag: literal
+#: configuration.xml:1052
+#, no-c-format
 msgid "org.hibernate.dialect.Oracle9Dialect"
-msgstr "SAP DB"
+msgstr "org.hibernate.dialect.Oracle9Dialect"
 
-#: index.docbook:1055
+#. Tag: entry
+#: configuration.xml:1055
+#, no-c-format
 msgid "Sybase"
-msgstr "org.hibernate.dialect.SAPDBDialect"
+msgstr "Sybase"
 
-#: index.docbook:1055
+#. Tag: literal
+#: configuration.xml:1055
+#, no-c-format
 msgid "org.hibernate.dialect.SybaseDialect"
-msgstr "Informix"
+msgstr "org.hibernate.dialect.SybaseDialect"
 
-#: index.docbook:1058
+#. Tag: entry
+#: configuration.xml:1058
+#, no-c-format
 msgid "Sybase Anywhere"
-msgstr "org.hibernate.dialect.InformixDialect"
+msgstr "Sybase Anywhere"
 
-#: index.docbook:1058
+#. Tag: literal
+#: configuration.xml:1058
+#, no-c-format
 msgid "org.hibernate.dialect.SybaseAnywhereDialect"
-msgstr "HypersonicSQL"
+msgstr "org.hibernate.dialect.SybaseAnywhereDialect"
 
-#: index.docbook:1061
+#. Tag: entry
+#: configuration.xml:1061
+#, no-c-format
 msgid "Microsoft SQL Server"
-msgstr "org.hibernate.dialect.HSQLDialect"
+msgstr "Microsoft SQL Server"
 
-#: index.docbook:1061
+#. Tag: literal
+#: configuration.xml:1061
+#, no-c-format
 msgid "org.hibernate.dialect.SQLServerDialect"
-msgstr "Ingres"
+msgstr "org.hibernate.dialect.SQLServerDialect"
 
-#: index.docbook:1064
+#. Tag: entry
+#: configuration.xml:1064
+#, no-c-format
 msgid "SAP DB"
-msgstr "org.hibernate.dialect.IngresDialect"
+msgstr "SAP DB"
 
-#: index.docbook:1064
+#. Tag: literal
+#: configuration.xml:1064
+#, no-c-format
 msgid "org.hibernate.dialect.SAPDBDialect"
-msgstr "Progress"
+msgstr "org.hibernate.dialect.SAPDBDialect"
 
-#: index.docbook:1067
+#. Tag: entry
+#: configuration.xml:1067
+#, no-c-format
 msgid "Informix"
-msgstr "org.hibernate.dialect.ProgressDialect"
+msgstr "Informix"
 
-#: index.docbook:1067
+#. Tag: literal
+#: configuration.xml:1067
+#, no-c-format
 msgid "org.hibernate.dialect.InformixDialect"
-msgstr "Mckoi SQL"
+msgstr "org.hibernate.dialect.InformixDialect"
 
-#: index.docbook:1070
+#. Tag: entry
+#: configuration.xml:1070
+#, no-c-format
 msgid "HypersonicSQL"
-msgstr "org.hibernate.dialect.MckoiDialect"
+msgstr "HypersonicSQL"
 
-#: index.docbook:1070
+#. Tag: literal
+#: configuration.xml:1070
+#, no-c-format
 msgid "org.hibernate.dialect.HSQLDialect"
-msgstr "Interbase"
+msgstr "org.hibernate.dialect.HSQLDialect"
 
-#: index.docbook:1073
+#. Tag: entry
+#: configuration.xml:1073
+#, no-c-format
 msgid "Ingres"
-msgstr "org.hibernate.dialect.InterbaseDialect"
+msgstr "Ingres"
 
-#: index.docbook:1073
+#. Tag: literal
+#: configuration.xml:1073
+#, no-c-format
 msgid "org.hibernate.dialect.IngresDialect"
-msgstr "Pointbase"
+msgstr "org.hibernate.dialect.IngresDialect"
 
-#: index.docbook:1076
+#. Tag: entry
+#: configuration.xml:1076
+#, no-c-format
 msgid "Progress"
-msgstr "org.hibernate.dialect.PointbaseDialect"
+msgstr "Progress"
 
-#: index.docbook:1076
+#. Tag: literal
+#: configuration.xml:1076
+#, no-c-format
 msgid "org.hibernate.dialect.ProgressDialect"
-msgstr "FrontBase"
+msgstr "org.hibernate.dialect.ProgressDialect"
 
-#: index.docbook:1079
+#. Tag: entry
+#: configuration.xml:1079
+#, no-c-format
 msgid "Mckoi SQL"
-msgstr "org.hibernate.dialect.FrontbaseDialect"
+msgstr "Mckoi SQL"
 
-#: index.docbook:1079
+#. Tag: literal
+#: configuration.xml:1079
+#, no-c-format
 msgid "org.hibernate.dialect.MckoiDialect"
-msgstr "Firebird"
+msgstr "org.hibernate.dialect.MckoiDialect"
 
-#: index.docbook:1082
+#. Tag: entry
+#: configuration.xml:1082
+#, no-c-format
 msgid "Interbase"
-msgstr "org.hibernate.dialect.FirebirdDialect"
+msgstr "Interbase"
 
-#: index.docbook:1082
+#. Tag: literal
+#: configuration.xml:1082
+#, no-c-format
 msgid "org.hibernate.dialect.InterbaseDialect"
-msgstr "Recuperaci&#x00f3;n por Uni&#x00f3;n Externa (Outer Join Fetching)"
+msgstr "org.hibernate.dialect.InterbaseDialect"
 
-#: index.docbook:1085
+#. Tag: entry
+#: configuration.xml:1085
+#, no-c-format
 msgid "Pointbase"
-msgstr "Si tu base de datos soporta uniones externas del estilo ANSI, Oracle o Sybase, la <emphasis>recuperaci&#x00f3;n por uni&#x00f3;n externa</emphasis> aumentar&#x00e1; frecuentemente el rendimiento limitando el n&#x00fa;mero de llamadas a la base de datos (al costo de m&#x00e1;s trabajo posiblemente realizado por la base de datos misma). La recuperaci&#x00f3;n por uni&#x00f3;n externa permite que un grafo completo de objetos conectados por asociaciones muchos-a-uno, uno-a-muchos, muchos-a-muchos y uno-a-uno sea tra&#x00ed;do en una sola <literal>SELECT</literal> SQL."
+msgstr "Pointbase"
 
-#: index.docbook:1085
+#. Tag: literal
+#: configuration.xml:1085
+#, no-c-format
 msgid "org.hibernate.dialect.PointbaseDialect"
-msgstr "La recuperaci&#x00f3;n por uni&#x00f3;n externa puede ser deshabilitada <emphasis>globalmente</emphasis> estableciendo la propiedad <literal>hibernate.max_fetch_depth</literal> a <literal>0</literal>. Un valor de <literal>1</literal> o mayor habilita la recuperaci&#x00f3;n por uni&#x00f3;n externa para asociaciones uno-a-uno y muchos-a-uno que hayan sido mapeadas con <literal>fetch=\"join\"</literal>."
+msgstr "org.hibernate.dialect.PointbaseDialect"
 
-#: index.docbook:1088
+#. Tag: entry
+#: configuration.xml:1088
+#, no-c-format
 msgid "FrontBase"
-msgstr "Ver <xref linkend=\"performance-fetching\"/> para m&#x00e1;s informaci&#x00f3;n."
+msgstr "FrontBase"
 
-#: index.docbook:1088
+#. Tag: literal
+#: configuration.xml:1088
+#, no-c-format
 msgid "org.hibernate.dialect.FrontbaseDialect"
-msgstr "Flujos Binarios"
+msgstr "org.hibernate.dialect.FrontbaseDialect"
 
-#: index.docbook:1091
+#. Tag: entry
+#: configuration.xml:1091
+#, no-c-format
 msgid "Firebird"
-msgstr "Oracle limita el tama&#x00f1;o de arrays de <literal>byte</literal> que puedan ser pasados a/desde su driver JDBC. Si deseas usar instancias grandes de tipo <literal>binary</literal> o <literal>serializable</literal>, debes habilitar <literal>hibernate.jdbc.use_streams_for_binary</literal>. <emphasis>Esta es una propiedad a nivel de sistema solamente.</emphasis>"
+msgstr "Firebird"
 
-#: index.docbook:1091
+#. Tag: literal
+#: configuration.xml:1091
+#, no-c-format
 msgid "org.hibernate.dialect.FirebirdDialect"
-msgstr "Cach&#x00e9; de segundo nivel y de lectura"
+msgstr "org.hibernate.dialect.FirebirdDialect"
 
-#: index.docbook:1100
+#. Tag: title
+#: configuration.xml:1100
+#, no-c-format
 msgid "Outer Join Fetching"
-msgstr "Las propiedades prefijadas por <literal>hibernate.cache</literal> te permiten usar un sistema de cach&#x00e9; de segundo nivel en el &#x00e1;mbito de un proceso o cluster con Hibernate. Ver <xref linkend=\"performance-cache\"/> para m&#x00e1;s detalles."
+msgstr "Recuperación por Unión Externa (Outer Join Fetching)"
 
-#: index.docbook:1102
-msgid "If your database supports ANSI, Oracle or Sybase style outer joins, <emphasis>outer join fetching</emphasis> will often increase performance by limiting the number of round trips to and from the database (at the cost of possibly more work performed by the database itself). Outer join fetching allows a whole graph of objects connected by many-to-one, one-to-many, many-to-many and one-to-one associations to be retrieved in a single SQL <literal>SELECT</literal>."
-msgstr "Sustituci&#x00f3;n de Lenguaje de Consulta"
+#. Tag: para
+#: configuration.xml:1102
+#, no-c-format
+msgid ""
+"If your database supports ANSI, Oracle or Sybase style outer joins, "
+"<emphasis>outer join fetching</emphasis> will often increase performance by "
+"limiting the number of round trips to and from the database (at the cost of "
+"possibly more work performed by the database itself). Outer join fetching "
+"allows a whole graph of objects connected by many-to-one, one-to-many, many-"
+"to-many and one-to-one associations to be retrieved in a single SQL "
+"<literal>SELECT</literal>."
+msgstr ""
+"Si tu base de datos soporta uniones externas del estilo ANSI, Oracle o "
+"Sybase, la <emphasis>recuperación por unión externa</emphasis> aumentará "
+"frecuentemente el rendimiento limitando el número de llamadas a la base de "
+"datos (al costo de más trabajo posiblemente realizado por la base de datos "
+"misma). La recuperación por unión externa permite que un grafo completo de "
+"objetos conectados por asociaciones muchos-a-uno, uno-a-muchos, muchos-a-"
+"muchos y uno-a-uno sea traído en una sola <literal>SELECT</literal> SQL."
 
-#: index.docbook:1111
-msgid "Outer join fetching may be disabled <emphasis>globally</emphasis> by setting the property <literal>hibernate.max_fetch_depth</literal> to <literal>0</literal>. A setting of <literal>1</literal> or higher enables outer join fetching for one-to-one and many-to-one associations which have been mapped with <literal>fetch=\"join\"</literal>."
-msgstr "Puedes definir nuevos s&#x00ed;mbolos de consulta de Hibernate usando <literal>hibernate.query.substitutions</literal>. Por ejemplo:"
+#. Tag: para
+#: configuration.xml:1111
+#, no-c-format
+msgid ""
+"Outer join fetching may be disabled <emphasis>globally</emphasis> by setting "
+"the property <literal>hibernate.max_fetch_depth</literal> to <literal>0</"
+"literal>. A setting of <literal>1</literal> or higher enables outer join "
+"fetching for one-to-one and many-to-one associations which have been mapped "
+"with <literal>fetch=\"join\"</literal>."
+msgstr ""
+"La recuperación por unión externa puede ser deshabilitada "
+"<emphasis>globalmente</emphasis> estableciendo la propiedad "
+"<literal>hibernate.max_fetch_depth</literal> a <literal>0</literal>. Un "
+"valor de <literal>1</literal> o mayor habilita la recuperación por unión "
+"externa para asociaciones uno-a-uno y muchos-a-uno que hayan sido mapeadas "
+"con <literal>fetch=\"join\"</literal>."
 
-#: index.docbook:1119
+#. Tag: para
+#: configuration.xml:1119
+#, no-c-format
 msgid "See <xref linkend=\"performance-fetching\"/> for more information."
-msgstr "hibernate.query.substitutions true=1, false=0"
+msgstr "Ver <xref linkend=\"performance-fetching\"/> para más información."
 
-#: index.docbook:1126
+#. Tag: title
+#: configuration.xml:1126
+#, no-c-format
 msgid "Binary Streams"
-msgstr "causar&#x00ed;a que los s&#x00ed;mbolos <literal>true</literal> y <literal>false</literal> sean traducidos a literales enteros en el SQL generado."
+msgstr "Flujos Binarios"
 
-#: index.docbook:1128
-msgid "Oracle limits the size of <literal>byte</literal> arrays that may be passed to/from its JDBC driver. If you wish to use large instances of <literal>binary</literal> or <literal>serializable</literal> type, you should enable <literal>hibernate.jdbc.use_streams_for_binary</literal>. <emphasis>This is a system-level setting only.</emphasis>"
-msgstr "hibernate.query.substitutions toLowercase=LOWER"
+#. Tag: para
+#: configuration.xml:1128
+#, no-c-format
+msgid ""
+"Oracle limits the size of <literal>byte</literal> arrays that may be passed "
+"to/from its JDBC driver. If you wish to use large instances of "
+"<literal>binary</literal> or <literal>serializable</literal> type, you "
+"should enable <literal>hibernate.jdbc.use_streams_for_binary</literal>. "
+"<emphasis>This is a system-level setting only.</emphasis>"
+msgstr ""
+"Oracle limita el tamaño de arrays de <literal>byte</literal> que puedan ser "
+"pasados a/desde su driver JDBC. Si deseas usar instancias grandes de tipo "
+"<literal>binary</literal> o <literal>serializable</literal>, debes habilitar "
+"<literal>hibernate.jdbc.use_streams_for_binary</literal>. <emphasis>Esta es "
+"una propiedad a nivel de sistema solamente.</emphasis>"
 
-#: index.docbook:1139
+#. Tag: title
+#: configuration.xml:1139
+#, no-c-format
 msgid "Second-level and query cache"
-msgstr "te permitir&#x00ed;a renombrar la funci&#x00f3;n <literal>LOWER</literal> de SQL."
+msgstr "Caché de segundo nivel y de lectura"
 
-#: index.docbook:1141
-msgid "The properties prefixed by <literal>hibernate.cache</literal> allow you to use a process or cluster scoped second-level cache system with Hibernate. See the <xref linkend=\"performance-cache\"/> for more details."
-msgstr "Hibernate statistics"
+#. Tag: para
+#: configuration.xml:1141
+#, no-c-format
+msgid ""
+"The properties prefixed by <literal>hibernate.cache</literal> allow you to "
+"use a process or cluster scoped second-level cache system with Hibernate. "
+"See the <xref linkend=\"performance-cache\"/> for more details."
+msgstr ""
+"Las propiedades prefijadas por <literal>hibernate.cache</literal> te "
+"permiten usar un sistema de caché de segundo nivel en el ámbito de un "
+"proceso o cluster con Hibernate. Ver <xref linkend=\"performance-cache\"/> "
+"para más detalles."
 
-#: index.docbook:1151
+#. Tag: title
+#: configuration.xml:1151
+#, no-c-format
 msgid "Query Language Substitution"
-msgstr "Si habilitas <literal>hibernate.generate_statistics</literal>, Hibernate expondr&#x00e1; un n&#x00fa;mero de m&#x00e9;tricas que son &#x00fa;tiles al afinar un sistema en ejecuci&#x00f3;n v&#x00ed;a <literal>SessionFactory.getStatistics()</literal>. Hibernate puede incluso ser configurado para exponer estas estad&#x00ed;sticas v&#x00ed;a JMX. Lee el Javadoc de las interfaces en <literal>org.hibernate.stats</literal> para m&#x00e1;s informaci&#x00f3;n."
+msgstr "Sustitución de Lenguaje de Consulta"
 
-#: index.docbook:1153
-msgid "You may define new Hibernate query tokens using <literal>hibernate.query.substitutions</literal>. For example:"
-msgstr "Registros de mensajes (Logging)"
+#. Tag: para
+#: configuration.xml:1153
+#, no-c-format
+msgid ""
+"You may define new Hibernate query tokens using <literal>hibernate.query."
+"substitutions</literal>. For example:"
+msgstr ""
+"Puedes definir nuevos símbolos de consulta de Hibernate usando "
+"<literal>hibernate.query.substitutions</literal>. Por ejemplo:"
 
-#: index.docbook:1158
+#. Tag: programlisting
+#: configuration.xml:1158
+#, no-c-format
 msgid "hibernate.query.substitutions true=1, false=0"
-msgstr "Hibernate registra varios eventos usando commons-logging de Apache."
+msgstr "hibernate.query.substitutions true=1, false=0"
 
-#: index.docbook:1160
-msgid "would cause the tokens <literal>true</literal> and <literal>false</literal> to be translated to integer literals in the generated SQL."
-msgstr "El servicio de commons-logging saldr&#x00e1; directamente ya sea a Log4J (si incluyes <literal>log4j.jar</literal> in your classpath) o JDK1.4 logging (al ejecutar bajo JDK1.4 o superior). Puedes descargar Log4J desde <literal>http://logging.apache.org</literal>. Para usar Log4J necesitar&#x00e1;s colocar un fichero <literal>log4j.properties</literal> en tu classpath. Un fichero de propiedades de ejemplo se distribuye con Hibernate en el directorio <literal>src/</literal>."
+#. Tag: para
+#: configuration.xml:1160
+#, no-c-format
+msgid ""
+"would cause the tokens <literal>true</literal> and <literal>false</literal> "
+"to be translated to integer literals in the generated SQL."
+msgstr ""
+"causaría que los símbolos <literal>true</literal> y <literal>false</literal> "
+"sean traducidos a literales enteros en el SQL generado."
 
-#: index.docbook:1165
+#. Tag: programlisting
+#: configuration.xml:1165
+#, no-c-format
 msgid "hibernate.query.substitutions toLowercase=LOWER"
-msgstr "Recomendamos fuertemente que te familiarices con los registros de mensajes de Hibernate. Se ha puesto un gran trabajo en hacer los registros de Hibernate tan detallados como se puede, sin hacerlos ilegibles. Es un dispositivo esencial en la resoluci&#x00f3;n de problemas. Las categor&#x00ed;as de registro m&#x00e1;s interesantes son las siguientes:"
+msgstr "hibernate.query.substitutions toLowercase=LOWER"
 
-#: index.docbook:1167
+#. Tag: para
+#: configuration.xml:1167
+#, no-c-format
 msgid "would allow you to rename the SQL <literal>LOWER</literal> function."
-msgstr "Categor&#x00ed;as de Registro de Hibernate"
+msgstr "te permitiría renombrar la función <literal>LOWER</literal> de SQL."
 
-#: index.docbook:1174
+#. Tag: title
+#: configuration.xml:1174
+#, no-c-format
 msgid "Hibernate statistics"
-msgstr "Categor&#x00ed;a"
+msgstr "Hibernate statistics"
 
-#: index.docbook:1176
-msgid "If you enable <literal>hibernate.generate_statistics</literal>, Hibernate will expose a number of metrics that are useful when tuning a running system via <literal>SessionFactory.getStatistics()</literal>. Hibernate can even be configured to expose these statistics via JMX. Read the Javadoc of the interfaces in <literal>org.hibernate.stats</literal> for more information."
-msgstr "Funci&#x00f3;n"
+#. Tag: para
+#: configuration.xml:1176
+#, no-c-format
+msgid ""
+"If you enable <literal>hibernate.generate_statistics</literal>, Hibernate "
+"will expose a number of metrics that are useful when tuning a running system "
+"via <literal>SessionFactory.getStatistics()</literal>. Hibernate can even be "
+"configured to expose these statistics via JMX. Read the Javadoc of the "
+"interfaces in <literal>org.hibernate.stats</literal> for more information."
+msgstr ""
+"Si habilitas <literal>hibernate.generate_statistics</literal>, Hibernate "
+"expondrá un número de métricas que son útiles al afinar un sistema en "
+"ejecución vía <literal>SessionFactory.getStatistics()</literal>. Hibernate "
+"puede incluso ser configurado para exponer estas estadísticas vía JMX. Lee "
+"el Javadoc de las interfaces en <literal>org.hibernate.stats</literal> para "
+"más información."
 
-#: index.docbook:1188
+#. Tag: title
+#: configuration.xml:1188
+#, no-c-format
 msgid "Logging"
-msgstr "org.hibernate.SQL"
+msgstr "Registros de mensajes (Logging)"
 
-#: index.docbook:1190
+#. Tag: para
+#: configuration.xml:1190
+#, no-c-format
 msgid "Hibernate logs various events using Apache commons-logging."
-msgstr "Registra todas las sentencias DML de SQL a medida que se ejecutan"
+msgstr "Hibernate registra varios eventos usando commons-logging de Apache."
 
-#: index.docbook:1194
-msgid "The commons-logging service will direct output to either Apache Log4j (if you include <literal>log4j.jar</literal> in your classpath) or JDK1.4 logging (if running under JDK1.4 or above). You may download Log4j from <literal>http://jakarta.apache.org</literal>. To use Log4j you will need to place a <literal>log4j.properties</literal> file in your classpath, an example properties file is distributed with Hibernate in the <literal>src/</literal> directory."
-msgstr "org.hibernate.type"
+#. Tag: para
+#: configuration.xml:1194
+#, no-c-format
+msgid ""
+"The commons-logging service will direct output to either Apache Log4j (if "
+"you include <literal>log4j.jar</literal> in your classpath) or JDK1.4 "
+"logging (if running under JDK1.4 or above). You may download Log4j from "
+"<literal>http://jakarta.apache.org</literal>. To use Log4j you will need to "
+"place a <literal>log4j.properties</literal> file in your classpath, an "
+"example properties file is distributed with Hibernate in the <literal>src/</"
+"literal> directory."
+msgstr ""
+"El servicio de commons-logging saldrá directamente ya sea a Log4J (si "
+"incluyes <literal>log4j.jar</literal> in your classpath) o JDK1.4 logging "
+"(al ejecutar bajo JDK1.4 o superior). Puedes descargar Log4J desde "
+"<literal>http://logging.apache.org</literal>. Para usar Log4J necesitarás "
+"colocar un fichero <literal>log4j.properties</literal> en tu classpath. Un "
+"fichero de propiedades de ejemplo se distribuye con Hibernate en el "
+"directorio <literal>src/</literal>."
 
-#: index.docbook:1204
-msgid "We strongly recommend that you familiarize yourself with Hibernate's log messages. A lot of work has been put into making the Hibernate log as detailed as possible, without making it unreadable. It is an essential troubleshooting device. The most interesting log categories are the following:"
-msgstr "Registra todos los par&#x00e1;metros JDBC"
+#. Tag: para
+#: configuration.xml:1204
+#, no-c-format
+msgid ""
+"We strongly recommend that you familiarize yourself with Hibernate's log "
+"messages. A lot of work has been put into making the Hibernate log as "
+"detailed as possible, without making it unreadable. It is an essential "
+"troubleshooting device. The most interesting log categories are the "
+"following:"
+msgstr ""
+"Recomendamos fuertemente que te familiarices con los registros de mensajes "
+"de Hibernate. Se ha puesto un gran trabajo en hacer los registros de "
+"Hibernate tan detallados como se puede, sin hacerlos ilegibles. Es un "
+"dispositivo esencial en la resolución de problemas. Las categorías de "
+"registro más interesantes son las siguientes:"
 
-#: index.docbook:1213
+#. Tag: title
+#: configuration.xml:1213
+#, no-c-format
 msgid "Hibernate Log Categories"
-msgstr "org.hibernate.tool.hbm2ddl"
+msgstr "Categorías de Registro de Hibernate"
 
-#: index.docbook:1219
+#. Tag: entry
+#: configuration.xml:1219
+#, no-c-format
 msgid "Category"
-msgstr "Registra todas las sentencias DDL de SQL a medida que se ejecutan"
+msgstr "Categoría"
 
-#: index.docbook:1220
+#. Tag: entry
+#: configuration.xml:1220
+#, no-c-format
 msgid "Function"
-msgstr "org.hibernate.pretty"
+msgstr "Función"
 
-#: index.docbook:1225
+#. Tag: literal
+#: configuration.xml:1225
+#, no-c-format
 msgid "org.hibernate.SQL"
-msgstr "Registra el estado de todas las entidades (m&#x00e1;ximo de 20 entidades) asociadas con la sesi&#x00f3;n en tiempo de limpieza (flush)"
+msgstr "org.hibernate.SQL"
 
-#: index.docbook:1226
+#. Tag: entry
+#: configuration.xml:1226
+#, no-c-format
 msgid "Log all SQL DML statements as they are executed"
-msgstr "org.hibernate.cache"
+msgstr "Registra todas las sentencias DML de SQL a medida que se ejecutan"
 
-#: index.docbook:1229
+#. Tag: literal
+#: configuration.xml:1229
+#, no-c-format
 msgid "org.hibernate.type"
-msgstr "Registra toda la actividad del cach&#x00e9; de segundo nivel"
+msgstr "org.hibernate.type"
 
-#: index.docbook:1230
+#. Tag: entry
+#: configuration.xml:1230
+#, no-c-format
 msgid "Log all JDBC parameters"
-msgstr "org.hibernate.transaction"
+msgstr "Registra todos los parámetros JDBC"
 
-#: index.docbook:1233
+#. Tag: literal
+#: configuration.xml:1233
+#, no-c-format
 msgid "org.hibernate.tool.hbm2ddl"
-msgstr "Registra la actividad relacionada con la transacci&#x00f3;n"
+msgstr "org.hibernate.tool.hbm2ddl"
 
-#: index.docbook:1234
+#. Tag: entry
+#: configuration.xml:1234
+#, no-c-format
 msgid "Log all SQL DDL statements as they are executed"
-msgstr "org.hibernate.jdbc"
+msgstr "Registra todas las sentencias DDL de SQL a medida que se ejecutan"
 
-#: index.docbook:1237
+#. Tag: literal
+#: configuration.xml:1237
+#, no-c-format
 msgid "org.hibernate.pretty"
-msgstr "Registra toda adquisici&#x00f3;n de recursos JDBC"
+msgstr "org.hibernate.pretty"
 
-#: index.docbook:1238
-msgid "Log the state of all entities (max 20 entities) associated with the session at flush time"
-msgstr "org.hibernate.hql.ast"
+#. Tag: entry
+#: configuration.xml:1238
+#, no-c-format
+msgid ""
+"Log the state of all entities (max 20 entities) associated with the session "
+"at flush time"
+msgstr ""
+"Registra el estado de todas las entidades (máximo de 20 entidades) asociadas "
+"con la sesión en tiempo de limpieza (flush)"
 
-#: index.docbook:1244
+#. Tag: literal
+#: configuration.xml:1244
+#, no-c-format
 msgid "org.hibernate.cache"
-msgstr "Regista los ASTs de HQL y SQL, as&#x00ed; como otra informaci&#x00f3;n sobre an&#x00e1;lisis de consultas."
+msgstr "org.hibernate.cache"
 
-#: index.docbook:1245
+#. Tag: entry
+#: configuration.xml:1245
+#, no-c-format
 msgid "Log all second-level cache activity"
-msgstr "org.hibernate.secure"
+msgstr "Registra toda la actividad del caché de segundo nivel"
 
-#: index.docbook:1248
+#. Tag: literal
+#: configuration.xml:1248
+#, no-c-format
 msgid "org.hibernate.transaction"
-msgstr "Registra todas las peticiones de autorizaci&#x00f3;n JAAS"
+msgstr "org.hibernate.transaction"
 
-#: index.docbook:1249
+#. Tag: entry
+#: configuration.xml:1249
+#, no-c-format
 msgid "Log transaction related activity"
-msgstr "org.hibernate"
+msgstr "Registra la actividad relacionada con la transacción"
 
-#: index.docbook:1252
+#. Tag: literal
+#: configuration.xml:1252
+#, no-c-format
 msgid "org.hibernate.jdbc"
-msgstr "Registra todo (mucha informaci&#x00f3;n, pero muy &#x00fa;til para la resoluci&#x00f3;n de problemas)"
+msgstr "org.hibernate.jdbc"
 
-#: index.docbook:1253
+#. Tag: entry
+#: configuration.xml:1253
+#, no-c-format
 msgid "Log all JDBC resource acquisition"
-msgstr "Al desarrollar aplicacinoes con Hibernate, casi siempre debes trabajar con <literal>debug</literal> habilitado para la categor&#x0ed;a <literal>org.hibernate.SQL</literal> o, alternativamente, la propiedad <literal>hibernate.show_sql</literal> habilitada."
+msgstr "Registra toda adquisición de recursos JDBC"
 
-#: index.docbook:1256
+#. Tag: literal
+#: configuration.xml:1256
+#, no-c-format
 msgid "org.hibernate.hql.ast.AST"
-msgstr "Implementando una <literal>NamingStrategy</literal>"
+msgstr "org.hibernate.hql.ast"
 
-#: index.docbook:1257
+#. Tag: entry
+#: configuration.xml:1257
+#, no-c-format
 msgid "Log HQL and SQL ASTs during query parsing"
-msgstr "La interface <literal>org.hibernate.cfg.NamingStrategy</literal> te permite especificar un \"est&#x00e1;ndar de nombrado\" para objetos de la base de datos y elementos de esquema."
+msgstr ""
+"Regista los ASTs de HQL y SQL, así como otra información sobre análisis de "
+"consultas."
 
-#: index.docbook:1262
+#. Tag: literal
+#: configuration.xml:1262
+#, no-c-format
 msgid "org.hibernate.secure"
-msgstr "Puedes proveer reglas para generar autom&#x00e1;ticamente identificadores de base de datos a partir de identificadores JDBC o para procesar nombres \"l&#x00f3;gicos\" de columnas y tablas dados en el fichero de mapeo en nombres \"f&#x00ed;sicos\" de columnas y tablas. Esta funcionalidad ayuda a reducir la verborragia del documento de mapeo, eliminando ruido repetitivo (prefijos <literal>TBL_</literal>, por ejemplo). La estrategia por defecto usada por Hibernate m&#x00ed;nima en absoluto."
+msgstr "org.hibernate.secure"
 
-#: index.docbook:1263
+#. Tag: entry
+#: configuration.xml:1263
+#, no-c-format
 msgid "Log all JAAS authorization requests"
-msgstr "Puedes especificar una estrategia diferente llamando a <literal>Configuration.setNamingStrategy()</literal> antes de agregar los mapeos:"
+msgstr "Registra todas las peticiones de autorización JAAS"
 
-#: index.docbook:1266
+#. Tag: literal
+#: configuration.xml:1266
+#, no-c-format
 msgid "org.hibernate"
+msgstr "org.hibernate"
+
+#. Tag: entry
+#: configuration.xml:1267
+#, no-c-format
+msgid ""
+"Log everything (a lot of information, but very useful for troubleshooting)"
 msgstr ""
-      "<![CDATA[SessionFactory sf = new Configuration()\n"
-      "    .setNamingStrategy(ImprovedNamingStrategy.INSTANCE)\n"
-      "    .addFile(\"Item.hbm.xml\")\n"
-      "    .addFile(\"Bid.hbm.xml\")\n"
-      "    .buildSessionFactory();]]>"
+"Registra todo (mucha información, pero muy útil para la resolución de "
+"problemas)"
 
-#: index.docbook:1267
-msgid "Log everything (a lot of information, but very useful for troubleshooting)"
-msgstr "<literal>org.hibernate.cfg.ImprovedNamingStrategy</literal> es una estrategia prefabricada que puede ser un punto de partida &#x00fa;til para algunas aplicaciones."
+#. Tag: para
+#: configuration.xml:1276
+#, no-c-format
+msgid ""
+"When developing applications with Hibernate, you should almost always work "
+"with <literal>debug</literal> enabled for the category <literal>org."
+"hibernate.SQL</literal>, or, alternatively, the property <literal>hibernate."
+"show_sql</literal> enabled."
+msgstr ""
+"Al desarrollar aplicacinoes con Hibernate, casi siempre debes trabajar con "
+"<literal>debug</literal> habilitado para la categoría <literal>org.hibernate."
+"SQL</literal> o, alternativamente, la propiedad <literal>hibernate.show_sql</"
+"literal> habilitada."
 
-#: index.docbook:1276
-msgid "When developing applications with Hibernate, you should almost always work with <literal>debug</literal> enabled for the category <literal>org.hibernate.SQL</literal>, or, alternatively, the property <literal>hibernate.show_sql</literal> enabled."
-msgstr "Fichero de configuraci&#x00f3;n XML"
-
-#: index.docbook:1286
+#. Tag: title
+#: configuration.xml:1286
+#, no-c-format
 msgid "Implementing a <literal>NamingStrategy</literal>"
-msgstr "Un enfoque alternativo de configuraci&#x00f3;n es especificar una configuraci&#x00f3;n completa en un fichero llamado <literal>hibernate.cfg.xml</literal>. Este fichero puede ser usado como un remplazo del fichero <literal>hibernate.properties</literal> o, si ambos est&#x00e1;n presentes, para sobrescribir propiedades."
+msgstr "Implementando una <literal>NamingStrategy</literal>"
 
-#: index.docbook:1288
-msgid "The interface <literal>org.hibernate.cfg.NamingStrategy</literal> allows you to specify a \"naming standard\" for database objects and schema elements."
-msgstr "El fichero de configuraci&#x00f3;n XML se espera por defecto en la ra&#x00ed;z o tu <literal>CLASSPATH</literal>. He aqu&#x00ed; un ejemplo:"
+#. Tag: para
+#: configuration.xml:1288
+#, no-c-format
+msgid ""
+"The interface <literal>org.hibernate.cfg.NamingStrategy</literal> allows you "
+"to specify a \"naming standard\" for database objects and schema elements."
+msgstr ""
+"La interface <literal>org.hibernate.cfg.NamingStrategy</literal> te permite "
+"especificar un \"estándar de nombrado\" para objetos de la base de datos y "
+"elementos de esquema."
 
-#: index.docbook:1293
-msgid "You may provide rules for automatically generating database identifiers from Java identifiers or for processing \"logical\" column and table names given in the mapping file into \"physical\" table and column names. This feature helps reduce the verbosity of the mapping document, eliminating repetitive noise (<literal>TBL_</literal> prefixes, for example). The default strategy used by Hibernate is quite minimal."
+#. Tag: para
+#: configuration.xml:1293
+#, no-c-format
+msgid ""
+"You may provide rules for automatically generating database identifiers from "
+"Java identifiers or for processing \"logical\" column and table names given "
+"in the mapping file into \"physical\" table and column names. This feature "
+"helps reduce the verbosity of the mapping document, eliminating repetitive "
+"noise (<literal>TBL_</literal> prefixes, for example). The default strategy "
+"used by Hibernate is quite minimal."
 msgstr ""
-      "<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n"
-      "<!DOCTYPE hibernate-configuration PUBLIC\n"
-      "    \"-//Hibernate/Hibernate Configuration DTD//EN\"\n"
-      "    \"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd\">\n"
-      "\n"
-      "<hibernate-configuration>\n"
-      "\n"
-      "    <!-- a SessionFactory instance listed as /jndi/name -->\n"
-      "    <session-factory\n"
-      "        name=\"java:hibernate/SessionFactory\">\n"
-      "\n"
-      "        <!-- properties -->\n"
-      "        <property name=\"connection.datasource\">java:/comp/env/jdbc/MyDB</property>\n"
-      "        <property name=\"dialect\">org.hibernate.dialect.MySQLDialect</property>\n"
-      "        <property name=\"show_sql\">false</property>\n"
-      "        <property name=\"transaction.factory_class\">\n"
-      "            org.hibernate.transaction.JTATransactionFactory\n"
-      "        </property>\n"
-      "        <property name=\"jta.UserTransaction\">java:comp/UserTransaction</property>\n"
-      "\n"
-      "        <!-- mapping files -->\n"
-      "        <mapping resource=\"org/hibernate/auction/Item.hbm.xml\"/>\n"
-      "        <mapping resource=\"org/hibernate/auction/Bid.hbm.xml\"/>\n"
-      "\n"
-      "        <!-- cache settings -->\n"
-      "        <class-cache class=\"org.hibernate.auction.Item\" usage=\"read-write\"/>\n"
-      "        <class-cache class=\"org.hibernate.auction.Bid\" usage=\"read-only\"/>\n"
-      "        <collection-cache collection=\"org.hibernate.auction.Item.bids\" usage=\"read-write\"/>\n"
-      "\n"
-      "    </session-factory>\n"
-      "\n"
-      "</hibernate-configuration>]]>"
+"Puedes proveer reglas para generar automáticamente identificadores de base "
+"de datos a partir de identificadores JDBC o para procesar nombres \"lógicos"
+"\" de columnas y tablas dados en el fichero de mapeo en nombres \"físicos\" "
+"de columnas y tablas. Esta funcionalidad ayuda a reducir la verborragia del "
+"documento de mapeo, eliminando ruido repetitivo (prefijos <literal>TBL_</"
+"literal>, por ejemplo). La estrategia por defecto usada por Hibernate mínima "
+"en absoluto."
 
-#: index.docbook:1302
-msgid "You may specify a different strategy by calling <literal>Configuration.setNamingStrategy()</literal> before adding mappings:"
-msgstr "Como puedes ver, la ventaja de este enfoque es la externalizaci&#x00f3;n de los nombres de los fichero de mapeo a configuraci&#x00f3;n. El <literal>hibernate.cfg.xml</literal> es tambi&#x00e9;n m&#x00e1;s conveniente una vez que hayas afinado el cach&#x00e9; de Hibernate. Observa que elecci&#x00f3;n tuya usar ya sea <literal>hibernate.properties</literal> o <literal>hibernate.cfg.xml</literal>, ambos son equivalentes, excepto por los beneficios de usar la sintaxis XML arriba mencionados."
+#. Tag: para
+#: configuration.xml:1302
+#, no-c-format
+msgid ""
+"You may specify a different strategy by calling <literal>Configuration."
+"setNamingStrategy()</literal> before adding mappings:"
+msgstr ""
+"Puedes especificar una estrategia diferente llamando a "
+"<literal>Configuration.setNamingStrategy()</literal> antes de agregar los "
+"mapeos:"
 
-#: index.docbook:1307
+#. Tag: programlisting
+#: configuration.xml:1307
+#, no-c-format
 msgid ""
-      "<![CDATA[SessionFactory sf = new Configuration()\n"
-      "    .setNamingStrategy(ImprovedNamingStrategy.INSTANCE)\n"
-      "    .addFile(\"Item.hbm.xml\")\n"
-      "    .addFile(\"Bid.hbm.xml\")\n"
-      "    .buildSessionFactory();]]>"
-msgstr "Con la configuraci&#x00f3;n XML, arrancar Hibernate es tan simple como"
+"<![CDATA[SessionFactory sf = new Configuration()\n"
+"    .setNamingStrategy(ImprovedNamingStrategy.INSTANCE)\n"
+"    .addFile(\"Item.hbm.xml\")\n"
+"    .addFile(\"Bid.hbm.xml\")\n"
+"    .buildSessionFactory();]]>"
+msgstr ""
 
-#: index.docbook:1309
-msgid "<literal>org.hibernate.cfg.ImprovedNamingStrategy</literal> is a built-in strategy that might be a useful starting point for some applications."
-msgstr "<![CDATA[SessionFactory sf = new Configuration().configure().buildSessionFactory();]]>"
+#. Tag: para
+#: configuration.xml:1309
+#, no-c-format
+msgid ""
+"<literal>org.hibernate.cfg.ImprovedNamingStrategy</literal> is a built-in "
+"strategy that might be a useful starting point for some applications."
+msgstr ""
+"<literal>org.hibernate.cfg.ImprovedNamingStrategy</literal> es una "
+"estrategia prefabricada que puede ser un punto de partida útil para algunas "
+"aplicaciones."
 
-#: index.docbook:1317
+#. Tag: title
+#: configuration.xml:1317
+#, no-c-format
 msgid "XML configuration file"
-msgstr "Puedes tomar un fichero XML diferente usando"
+msgstr "Fichero de configuración XML"
 
-#: index.docbook:1319
-msgid "An alternative approach to configuration is to specify a full configuration in a file named <literal>hibernate.cfg.xml</literal>. This file can be used as a replacement for the <literal>hibernate.properties</literal> file or, if both are present, to override properties."
+#. Tag: para
+#: configuration.xml:1319
+#, no-c-format
+msgid ""
+"An alternative approach to configuration is to specify a full configuration "
+"in a file named <literal>hibernate.cfg.xml</literal>. This file can be used "
+"as a replacement for the <literal>hibernate.properties</literal> file or, if "
+"both are present, to override properties."
 msgstr ""
-      "<![CDATA[SessionFactory sf = new Configuration()\n"
-      "    .configure(\"catdb.cfg.xml\")\n"
-      "    .buildSessionFactory();]]>"
+"Un enfoque alternativo de configuración es especificar una configuración "
+"completa en un fichero llamado <literal>hibernate.cfg.xml</literal>. Este "
+"fichero puede ser usado como un remplazo del fichero <literal>hibernate."
+"properties</literal> o, si ambos están presentes, para sobrescribir "
+"propiedades."
 
-#: index.docbook:1326
-msgid "The XML configuration file is by default expected to be in the root o your <literal>CLASSPATH</literal>. Here is an example:"
-msgstr "Integraci&#x00f3; con Servidores de Aplicaciones J2EE"
+#. Tag: para
+#: configuration.xml:1326
+#, no-c-format
+msgid ""
+"The XML configuration file is by default expected to be in the root o your "
+"<literal>CLASSPATH</literal>. Here is an example:"
+msgstr ""
+"El fichero de configuración XML se espera por defecto en la raíz o tu "
+"<literal>CLASSPATH</literal>. He aquí un ejemplo:"
 
-#: index.docbook:1331
+#. Tag: programlisting
+#: configuration.xml:1331
+#, no-c-format
 msgid ""
-      "<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n"
-      "<!DOCTYPE hibernate-configuration PUBLIC\n"
-      "    \"-//Hibernate/Hibernate Configuration DTD//EN\"\n"
-      "    \"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd\">\n"
-      "\n"
-      "<hibernate-configuration>\n"
-      "\n"
-      "    <!-- a SessionFactory instance listed as /jndi/name -->\n"
-      "    <session-factory\n"
-      "        name=\"java:hibernate/SessionFactory\">\n"
-      "\n"
-      "        <!-- properties -->\n"
-      "        <property name=\"connection.datasource\">java:/comp/env/jdbc/MyDB</property>\n"
-      "        <property name=\"dialect\">org.hibernate.dialect.MySQLDialect</property>\n"
-      "        <property name=\"show_sql\">false</property>\n"
-      "        <property name=\"transaction.factory_class\">\n"
-      "            org.hibernate.transaction.JTATransactionFactory\n"
-      "        </property>\n"
-      "        <property name=\"jta.UserTransaction\">java:comp/UserTransaction</property>\n"
-      "\n"
-      "        <!-- mapping files -->\n"
-      "        <mapping resource=\"org/hibernate/auction/Item.hbm.xml\"/>\n"
-      "        <mapping resource=\"org/hibernate/auction/Bid.hbm.xml\"/>\n"
-      "\n"
-      "        <!-- cache settings -->\n"
-      "        <class-cache class=\"org.hibernate.auction.Item\" usage=\"read-write\"/>\n"
-      "        <class-cache class=\"org.hibernate.auction.Bid\" usage=\"read-only\"/>\n"
-      "        <collection-cache collection=\"org.hibernate.auction.Item.bids\" usage=\"read-write\"/>\n"
-      "\n"
-      "    </session-factory>\n"
-      "\n"
-      "</hibernate-configuration>]]>"
-msgstr "Hibernate tiene los siguientes puntos de integraci&#x00f3;n con la infraestructura J2EE:"
+"<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n"
+"<!DOCTYPE hibernate-configuration PUBLIC\n"
+"    \"-//Hibernate/Hibernate Configuration DTD//EN\"\n"
+"    \"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd\">\n"
+"\n"
+"<hibernate-configuration>\n"
+"\n"
+"    <!-- a SessionFactory instance listed as /jndi/name -->\n"
+"    <session-factory\n"
+"        name=\"java:hibernate/SessionFactory\">\n"
+"\n"
+"        <!-- properties -->\n"
+"        <property name=\"connection.datasource\">java:/comp/env/jdbc/MyDB</"
+"property>\n"
+"        <property name=\"dialect\">org.hibernate.dialect.MySQLDialect</"
+"property>\n"
+"        <property name=\"show_sql\">false</property>\n"
+"        <property name=\"transaction.factory_class\">\n"
+"            org.hibernate.transaction.JTATransactionFactory\n"
+"        </property>\n"
+"        <property name=\"jta.UserTransaction\">java:comp/UserTransaction</"
+"property>\n"
+"\n"
+"        <!-- mapping files -->\n"
+"        <mapping resource=\"org/hibernate/auction/Item.hbm.xml\"/>\n"
+"        <mapping resource=\"org/hibernate/auction/Bid.hbm.xml\"/>\n"
+"\n"
+"        <!-- cache settings -->\n"
+"        <class-cache class=\"org.hibernate.auction.Item\" usage=\"read-write"
+"\"/>\n"
+"        <class-cache class=\"org.hibernate.auction.Bid\" usage=\"read-only\"/"
+">\n"
+"        <collection-cache collection=\"org.hibernate.auction.Item.bids\" "
+"usage=\"read-write\"/>\n"
+"\n"
+"    </session-factory>\n"
+"\n"
+"</hibernate-configuration>]]>"
+msgstr ""
 
-#: index.docbook:1333
-msgid "As you can see, the advantage of this approach is the externalization of the mapping file names to configuration. The <literal>hibernate.cfg.xml</literal> is also more convenient once you have to tune the Hibernate cache. Note that is your choice to use either <literal>hibernate.properties</literal> or <literal>hibernate.cfg.xml</literal>, both are equivalent, except for the above mentioned benefits of using the XML syntax."
-msgstr "<emphasis>Datasources manejados por contenedor</emphasis>: Hibernate puede usar conexiones JDBC manejadas por el contenedor y provistas a trav&#x00e9;s de JNDI. Usualmente, un <literal>TransactionManager</literal> compatible con JTA y un <literal>ResourceManager</literal> cuidan del manejo de transacciones (CMT), esp. manejo de transacciones distribu&#x00ed;das a trav&#x00e9;s de varios datasources. Puedes tambi&#x00e9;n, por supuesto, demarcar los l&#x00ed;mites de las transacciones program&#x00e1;ticamente (BMT) o podr&#x00ed;as querer usar para esto la API opcional de <literal>Transaction</literal> de Hibernate para mantener tu c&#x00f3;digo portable."
+#. Tag: para
+#: configuration.xml:1333
+#, no-c-format
+msgid ""
+"As you can see, the advantage of this approach is the externalization of the "
+"mapping file names to configuration. The <literal>hibernate.cfg.xml</"
+"literal> is also more convenient once you have to tune the Hibernate cache. "
+"Note that is your choice to use either <literal>hibernate.properties</"
+"literal> or <literal>hibernate.cfg.xml</literal>, both are equivalent, "
+"except for the above mentioned benefits of using the XML syntax."
+msgstr ""
+"Como puedes ver, la ventaja de este enfoque es la externalización de los "
+"nombres de los fichero de mapeo a configuración. El <literal>hibernate.cfg."
+"xml</literal> es también más conveniente una vez que hayas afinado el caché "
+"de Hibernate. Observa que elección tuya usar ya sea <literal>hibernate."
+"properties</literal> o <literal>hibernate.cfg.xml</literal>, ambos son "
+"equivalentes, excepto por los beneficios de usar la sintaxis XML arriba "
+"mencionados."
 
-#: index.docbook:1342
+#. Tag: para
+#: configuration.xml:1342
+#, no-c-format
 msgid "With the XML configuration, starting Hibernate is then as simple as"
-msgstr "<emphasis>Ligamento Autom&#x00e1;tico JNDI</emphasis>: Hibernate puede ligar sus <literal>SessionFactory</literal> a JNDI despu&#x00e9;s del arranque."
+msgstr "Con la configuración XML, arrancar Hibernate es tan simple como"
 
-#: index.docbook:1346
-msgid "<![CDATA[SessionFactory sf = new Configuration().configure().buildSessionFactory();]]>"
-msgstr "<emphasis>Ligamento de Sesi&#x00f3;n JTA:</emphasis> La <literal>Session</literal> de Hibernate puede ser ligada autom&#x00e1;ticamente al &#x00e1;mbito de transacciones JTA si usas EJBs. Simplemente busca la <literal>SessionFactory</literal> de JNDI y obt&#x00e9;n la <literal>Session</literal> actual. Deja que Hibernate cuide de limpiar y cerrar la <literal>Session</literal> cuando se complete tu transacci&#x00f3;n JTA. La demarcaci&#x00f3;n de transacci&#x00f3;n es declarativa, en descriptores de despliegue de EJB."
+#. Tag: programlisting
+#: configuration.xml:1346
+#, no-c-format
+msgid ""
+"<![CDATA[SessionFactory sf = new Configuration().configure()."
+"buildSessionFactory();]]>"
+msgstr ""
 
-#: index.docbook:1348
+#. Tag: para
+#: configuration.xml:1348
+#, no-c-format
 msgid "You can pick a different XML configuration file using"
-msgstr "<emphasis>Despliegue JMX:</emphasis> Si tienes un servidor de aplicaciones capaz de JMX (por ejemplo, JBoss AS), puedes optar por desplegar Hibernate como un MBean manejado. Esto te ahorra el c&#x00f3;digo de una l&#x00ed;nea de arranque para construir tu <literal>SessionFactory</literal> desde una <literal>Configuration</literal>. El contenedor arrancar&#x00e1; tu <literal>HibernateService</literal>, e idealmente tambi&#x00e9;n cuidar&#x00e1; de las dependencias entre servicios (El datasource debe estar disponible antes que arranque Hibernate, etc)."
+msgstr "Puedes tomar un fichero XML diferente usando"
 
-#: index.docbook:1352
+#. Tag: programlisting
+#: configuration.xml:1352
+#, no-c-format
 msgid ""
-      "<![CDATA[SessionFactory sf = new Configuration()\n"
-      "    .configure(\"catdb.cfg.xml\")\n"
-      "    .buildSessionFactory();]]>"
-msgstr "Dependiendo de tu entorno, podr&#x00ed;as tener que establecer la opci&#x00f3;n de configuraci&#x00f3;n <literal>hibernate.connection.aggressive_release</literal> a true si tu servidor de aplicaciones muestra excepciones \"connection containment\"."
+"<![CDATA[SessionFactory sf = new Configuration()\n"
+"    .configure(\"catdb.cfg.xml\")\n"
+"    .buildSessionFactory();]]>"
+msgstr ""
 
-#: index.docbook:1357
+#. Tag: title
+#: configuration.xml:1357
+#, no-c-format
 msgid "J2EE Application Server integration"
-msgstr "Configuraci&#x00f3;n de la estrategia de transacci&#x00f3;n"
+msgstr "Integració con Servidores de Aplicaciones J2EE"
 
-#: index.docbook:1359
+#. Tag: para
+#: configuration.xml:1359
+#, no-c-format
 msgid "Hibernate has the following integration points for J2EE infrastructure:"
-msgstr "La API de <literal>Session</literal> de Hibernate es independiente de cualquier demarcaci&#x00f3;n de transacci&#x00f3;n en tu arquitectura. Si dejas que Hibernate use JDBC directamente, a trav&#x00e9;s de un pool de conexiones. puedes comenzar y acabar tus transacciones llamando la API de JDBC. Si ejecutas en un servidor de aplicaciones J2EE, podr&#x00e9;as querer usar transacciones manejadas por bean y llamar la API de JTA y <literal>UserTransaction</literal> cuando sea necesario."
+msgstr ""
+"Hibernate tiene los siguientes puntos de integración con la infraestructura "
+"J2EE:"
 
-#: index.docbook:1365
-msgid "<emphasis>Container-managed datasources</emphasis>: Hibernate can use JDBC connections managed by the container and provided through JNDI. Usually, a JTA compatible <literal>TransactionManager</literal> and a <literal>ResourceManager</literal> take care of transaction management (CMT), esp. distributed transaction handling across several datasources. You may of course also demarcate transaction boundaries programmatically (BMT) or you might want to use the optional Hibernate <literal>Transaction</literal> API for this to keep your code portable."
-msgstr "Para mantener tu c&#x00f3;digo portable entre estos dos (y otros) entornos recomendamos la API de <literal>Transaction</literal> de Hibernate, que envuelve y oculta el sistema subyacente. Tienes que especificar una clase f&#x00e1;brica para las instancias de <literal>Transaction</literal> estableciendo la propiedad de configuraci&#x00f3;n <literal>hibernate.transaction.factory_class</literal> de Hibernate."
+#. Tag: para
+#: configuration.xml:1365
+#, no-c-format
+msgid ""
+"<emphasis>Container-managed datasources</emphasis>: Hibernate can use JDBC "
+"connections managed by the container and provided through JNDI. Usually, a "
+"JTA compatible <literal>TransactionManager</literal> and a "
+"<literal>ResourceManager</literal> take care of transaction management "
+"(CMT), esp. distributed transaction handling across several datasources. You "
+"may of course also demarcate transaction boundaries programmatically (BMT) "
+"or you might want to use the optional Hibernate <literal>Transaction</"
+"literal> API for this to keep your code portable."
+msgstr ""
+"<emphasis>Datasources manejados por contenedor</emphasis>: Hibernate puede "
+"usar conexiones JDBC manejadas por el contenedor y provistas a través de "
+"JNDI. Usualmente, un <literal>TransactionManager</literal> compatible con "
+"JTA y un <literal>ResourceManager</literal> cuidan del manejo de "
+"transacciones (CMT), esp. manejo de transacciones distribuídas a través de "
+"varios datasources. Puedes también, por supuesto, demarcar los límites de "
+"las transacciones programáticamente (BMT) o podrías querer usar para esto la "
+"API opcional de <literal>Transaction</literal> de Hibernate para mantener tu "
+"código portable."
 
-#: index.docbook:1380
-msgid "<emphasis>Automatic JNDI binding</emphasis>: Hibernate can bind its <literal>SessionFactory</literal> to JNDI after startup."
-msgstr "Hay tres elecciones est&#x00e1;ndar (prefabricadas):"
+#. Tag: para
+#: configuration.xml:1380
+#, no-c-format
+msgid ""
+"<emphasis>Automatic JNDI binding</emphasis>: Hibernate can bind its "
+"<literal>SessionFactory</literal> to JNDI after startup."
+msgstr ""
+"<emphasis>Ligamento Automático JNDI</emphasis>: Hibernate puede ligar sus "
+"<literal>SessionFactory</literal> a JNDI después del arranque."
 
-#: index.docbook:1389
-msgid "<emphasis>JTA Session binding:</emphasis> The Hibernate <literal>Session</literal> may be automatically bound to the scope of JTA transactions. Simply lookup the <literal>SessionFactory</literal> from JNDI and get the current <literal>Session</literal>. Let Hibernate take care of flushing and closing the <literal>Session</literal> when your JTA transaction completes. Transaction demarcation is either declarative (CMT) or programmatic (BMT/UserTransaction)."
-msgstr "org.hibernate.transaction.JDBCTransactionFactory"
+#. Tag: para
+#: configuration.xml:1389
+#, no-c-format
+msgid ""
+"<emphasis>JTA Session binding:</emphasis> The Hibernate <literal>Session</"
+"literal> may be automatically bound to the scope of JTA transactions. Simply "
+"lookup the <literal>SessionFactory</literal> from JNDI and get the current "
+"<literal>Session</literal>. Let Hibernate take care of flushing and closing "
+"the <literal>Session</literal> when your JTA transaction completes. "
+"Transaction demarcation is either declarative (CMT) or programmatic (BMT/"
+"UserTransaction)."
+msgstr ""
+"<emphasis>Ligamento de Sesión JTA:</emphasis> La <literal>Session</literal> "
+"de Hibernate puede ser ligada automáticamente al ámbito de transacciones JTA "
+"si usas EJBs. Simplemente busca la <literal>SessionFactory</literal> de JNDI "
+"y obtén la <literal>Session</literal> actual. Deja que Hibernate cuide de "
+"limpiar y cerrar la <literal>Session</literal> cuando se complete tu "
+"transacción JTA. La demarcación de transacción es declarativa, en "
+"descriptores de despliegue de EJB."
 
-#: index.docbook:1402
-msgid "<emphasis>JMX deployment:</emphasis> If you have a JMX capable application server (e.g. JBoss AS), you can chose to deploy Hibernate as a managed MBean. This saves you the one line startup code to build your <literal>SessionFactory</literal> from a <literal>Configuration</literal>. The container will startup your <literal>HibernateService</literal>, and ideally also take care of service dependencies (Datasource has to be available before Hibernate starts, etc)."
-msgstr "delega a transacciones de base de datos (JDBC) (por defecto)"
+#. Tag: para
+#: configuration.xml:1402
+#, no-c-format
+msgid ""
+"<emphasis>JMX deployment:</emphasis> If you have a JMX capable application "
+"server (e.g. JBoss AS), you can chose to deploy Hibernate as a managed "
+"MBean. This saves you the one line startup code to build your "
+"<literal>SessionFactory</literal> from a <literal>Configuration</literal>. "
+"The container will startup your <literal>HibernateService</literal>, and "
+"ideally also take care of service dependencies (Datasource has to be "
+"available before Hibernate starts, etc)."
+msgstr ""
+"<emphasis>Despliegue JMX:</emphasis> Si tienes un servidor de aplicaciones "
+"capaz de JMX (por ejemplo, JBoss AS), puedes optar por desplegar Hibernate "
+"como un MBean manejado. Esto te ahorra el código de una línea de arranque "
+"para construir tu <literal>SessionFactory</literal> desde una "
+"<literal>Configuration</literal>. El contenedor arrancará tu "
+"<literal>HibernateService</literal>, e idealmente también cuidará de las "
+"dependencias entre servicios (El datasource debe estar disponible antes que "
+"arranque Hibernate, etc)."
 
-#: index.docbook:1413
-msgid "Depending on your environment, you might have to set the configuration option <literal>hibernate.connection.aggressive_release</literal> to true if your application server shows \"connection containment\" exceptions."
-msgstr "org.hibernate.transaction.JTATransactionFactory"
+#. Tag: para
+#: configuration.xml:1413
+#, no-c-format
+msgid ""
+"Depending on your environment, you might have to set the configuration "
+"option <literal>hibernate.connection.aggressive_release</literal> to true if "
+"your application server shows \"connection containment\" exceptions."
+msgstr ""
+"Dependiendo de tu entorno, podrías tener que establecer la opción de "
+"configuración <literal>hibernate.connection.aggressive_release</literal> a "
+"true si tu servidor de aplicaciones muestra excepciones \"connection "
+"containment\"."
 
-#: index.docbook:1420
+#. Tag: title
+#: configuration.xml:1420
+#, no-c-format
 msgid "Transaction strategy configuration"
-msgstr "delega a transacciones manejadas por contenedor si una transacci&#x00f3;n existente est&#x00f3; por debajo en este contexto (ej. m&#x00e9;todo de un bean de sesi&#x00f3;n EJB), en otro caso una nueva transacci&#x00f3;n es comenzada y se usan transacciones manejadas por bean."
+msgstr "Configuración de la estrategia de transacción"
 
-#: index.docbook:1422
-msgid "The Hibernate <literal>Session</literal> API is independent of any transaction demarcation system in your architecture. If you let Hibernate use JDBC directly, through a connection pool, you may begin and end your transactions by calling the JDBC API. If you run in a J2EE application server, you might want to use bean-managed transactions and call the JTA API and <literal>UserTransaction</literal> when needed."
-msgstr "org.hibernate.transaction.CMTTransactionFactory"
+#. Tag: para
+#: configuration.xml:1422
+#, no-c-format
+msgid ""
+"The Hibernate <literal>Session</literal> API is independent of any "
+"transaction demarcation system in your architecture. If you let Hibernate "
+"use JDBC directly, through a connection pool, you may begin and end your "
+"transactions by calling the JDBC API. If you run in a J2EE application "
+"server, you might want to use bean-managed transactions and call the JTA API "
+"and <literal>UserTransaction</literal> when needed."
+msgstr ""
+"La API de <literal>Session</literal> de Hibernate es independiente de "
+"cualquier demarcación de transacción en tu arquitectura. Si dejas que "
+"Hibernate use JDBC directamente, a través de un pool de conexiones. puedes "
+"comenzar y acabar tus transacciones llamando la API de JDBC. Si ejecutas en "
+"un servidor de aplicaciones J2EE, podréas querer usar transacciones "
+"manejadas por bean y llamar la API de JTA y <literal>UserTransaction</"
+"literal> cuando sea necesario."
 
-#: index.docbook:1430
-msgid "To keep your code portable between these two (and other) environments we recommend the optional Hibernate <literal>Transaction</literal> API, which wraps and hides the underlying system. You have to specify a factory class for <literal>Transaction</literal> instances by setting the Hibernate configuration property <literal>hibernate.transaction.factory_class</literal>."
-msgstr "delega a transacciones JTA manejadas por contenedor"
+#. Tag: para
+#: configuration.xml:1430
+#, no-c-format
+msgid ""
+"To keep your code portable between these two (and other) environments we "
+"recommend the optional Hibernate <literal>Transaction</literal> API, which "
+"wraps and hides the underlying system. You have to specify a factory class "
+"for <literal>Transaction</literal> instances by setting the Hibernate "
+"configuration property <literal>hibernate.transaction.factory_class</"
+"literal>."
+msgstr ""
+"Para mantener tu código portable entre estos dos (y otros) entornos "
+"recomendamos la API de <literal>Transaction</literal> de Hibernate, que "
+"envuelve y oculta el sistema subyacente. Tienes que especificar una clase "
+"fábrica para las instancias de <literal>Transaction</literal> estableciendo "
+"la propiedad de configuración <literal>hibernate.transaction.factory_class</"
+"literal> de Hibernate."
 
-#: index.docbook:1437
+#. Tag: para
+#: configuration.xml:1437
+#, no-c-format
 msgid "There are three standard (built-in) choices:"
-msgstr "Puedes definir tambi&#x00e9;n tus propias estrategias de transacci&#x00f3;n (para un servicio de transacci&#x00f3;n CORBA, por ejemplo)."
+msgstr "Hay tres elecciones estándar (prefabricadas):"
 
-#: index.docbook:1443
+#. Tag: literal
+#: configuration.xml:1443
+#, no-c-format
 msgid "org.hibernate.transaction.JDBCTransactionFactory"
-msgstr "Algunas funcionalidades en Hibernate (ej, el cach&#x00e9; de segundo nivel, ligamento autom&#x00e1;tico de JTA y Session, etc.) requieren acceso al <literal>TransactionManager</literal> de JTA en un entorno manejado. En un servidor de aplicaciones tienes que especificar c&#x00f3;mo Hibernate debe obtener una referencia al <literal>TransactionManager</literal>, pues J2EE no estandariza un solo mecanismo:"
+msgstr "org.hibernate.transaction.JDBCTransactionFactory"
 
-#: index.docbook:1445
+#. Tag: para
+#: configuration.xml:1445
+#, no-c-format
 msgid "delegates to database (JDBC) transactions (default)"
-msgstr "TransactionManagers de JTA"
+msgstr "delega a transacciones de base de datos (JDBC) (por defecto)"
 
-#: index.docbook:1449
+#. Tag: literal
+#: configuration.xml:1449
+#, no-c-format
 msgid "org.hibernate.transaction.JTATransactionFactory"
-msgstr "Transaction Factory"
+msgstr "org.hibernate.transaction.JTATransactionFactory"
 
-#: index.docbook:1451
-msgid "delegates to container-managed transaction if an existing transaction is underway in this context (e.g. EJB session bean method), otherwise a new transaction is started and bean-managed transaction are used."
-msgstr "Servidor de Aplicaciones"
+#. Tag: para
+#: configuration.xml:1451
+#, no-c-format
+msgid ""
+"delegates to container-managed transaction if an existing transaction is "
+"underway in this context (e.g. EJB session bean method), otherwise a new "
+"transaction is started and bean-managed transaction are used."
+msgstr ""
+"delega a transacciones manejadas por contenedor si una transacción existente "
+"estó por debajo en este contexto (ej. método de un bean de sesión EJB), en "
+"otro caso una nueva transacción es comenzada y se usan transacciones "
+"manejadas por bean."
 
-#: index.docbook:1459
+#. Tag: literal
+#: configuration.xml:1459
+#, no-c-format
 msgid "org.hibernate.transaction.CMTTransactionFactory"
-msgstr "org.hibernate.transaction.JBossTransactionManagerLookup"
+msgstr "org.hibernate.transaction.CMTTransactionFactory"
 
-#: index.docbook:1461
+#. Tag: para
+#: configuration.xml:1461
+#, no-c-format
 msgid "delegates to container-managed JTA transactions"
-msgstr "JBoss"
+msgstr "delega a transacciones JTA manejadas por contenedor"
 
-#: index.docbook:1466
-msgid "You may also define your own transaction strategies (for a CORBA transaction service, for example)."
-msgstr "org.hibernate.transaction.WeblogicTransactionManagerLookup"
+#. Tag: para
+#: configuration.xml:1466
+#, no-c-format
+msgid ""
+"You may also define your own transaction strategies (for a CORBA transaction "
+"service, for example)."
+msgstr ""
+"Puedes definir también tus propias estrategias de transacción (para un "
+"servicio de transacción CORBA, por ejemplo)."
 
-#: index.docbook:1471
-msgid "Some features in Hibernate (i.e. the second level cache, Contextual Sessions with JTA, etc.) require access to the JTA <literal>TransactionManager</literal> in a managed environment. In an application server you have to specify how Hibernate should obtain a reference to the <literal>TransactionManager</literal>, since J2EE does not standardize a single mechanism:"
-msgstr "Weblogic"
+#. Tag: para
+#: configuration.xml:1471
+#, no-c-format
+msgid ""
+"Some features in Hibernate (i.e. the second level cache, Contextual Sessions "
+"with JTA, etc.) require access to the JTA <literal>TransactionManager</"
+"literal> in a managed environment. In an application server you have to "
+"specify how Hibernate should obtain a reference to the "
+"<literal>TransactionManager</literal>, since J2EE does not standardize a "
+"single mechanism:"
+msgstr ""
+"Algunas funcionalidades en Hibernate (ej, el caché de segundo nivel, "
+"ligamento automático de JTA y Session, etc.) requieren acceso al "
+"<literal>TransactionManager</literal> de JTA en un entorno manejado. En un "
+"servidor de aplicaciones tienes que especificar cómo Hibernate debe obtener "
+"una referencia al <literal>TransactionManager</literal>, pues J2EE no "
+"estandariza un solo mecanismo:"
 
-#: index.docbook:1479
+#. Tag: title
+#: configuration.xml:1479
+#, no-c-format
 msgid "JTA TransactionManagers"
-msgstr "org.hibernate.transaction.WebSphereTransactionManagerLookup"
+msgstr "TransactionManagers de JTA"
 
-#: index.docbook:1485
+#. Tag: entry
+#: configuration.xml:1485
+#, no-c-format
 msgid "Transaction Factory"
-msgstr "WebSphere"
+msgstr "Transaction Factory"
 
-#: index.docbook:1486
+#. Tag: entry
+#: configuration.xml:1486
+#, no-c-format
 msgid "Application Server"
-msgstr "org.hibernate.transaction.WebSphereExtendedJTATransactionLookup"
+msgstr "Servidor de Aplicaciones"
 
-#: index.docbook:1491
+#. Tag: literal
+#: configuration.xml:1491
+#, no-c-format
 msgid "org.hibernate.transaction.JBossTransactionManagerLookup"
-msgstr "WebSphere 6"
+msgstr "org.hibernate.transaction.JBossTransactionManagerLookup"
 
-#: index.docbook:1492
+#. Tag: entry
+#: configuration.xml:1492
+#, no-c-format
 msgid "JBoss"
-msgstr "org.hibernate.transaction.OrionTransactionManagerLookup"
+msgstr "JBoss"
 
-#: index.docbook:1495
+#. Tag: literal
+#: configuration.xml:1495
+#, no-c-format
 msgid "org.hibernate.transaction.WeblogicTransactionManagerLookup"
-msgstr "Orion"
+msgstr "org.hibernate.transaction.WeblogicTransactionManagerLookup"
 
-#: index.docbook:1496
+#. Tag: entry
+#: configuration.xml:1496
+#, no-c-format
 msgid "Weblogic"
-msgstr "org.hibernate.transaction.ResinTransactionManagerLookup"
+msgstr "Weblogic"
 
-#: index.docbook:1499
+#. Tag: literal
+#: configuration.xml:1499
+#, no-c-format
 msgid "org.hibernate.transaction.WebSphereTransactionManagerLookup"
-msgstr "Resin"
+msgstr "org.hibernate.transaction.WebSphereTransactionManagerLookup"
 
-#: index.docbook:1500
+#. Tag: entry
+#: configuration.xml:1500
+#, no-c-format
 msgid "WebSphere"
-msgstr "org.hibernate.transaction.JOTMTransactionManagerLookup"
+msgstr "WebSphere"
 
-#: index.docbook:1503
+#. Tag: literal
+#: configuration.xml:1503
+#, no-c-format
 msgid "org.hibernate.transaction.WebSphereExtendedJTATransactionLookup"
-msgstr "JOTM"
+msgstr "org.hibernate.transaction.WebSphereExtendedJTATransactionLookup"
 
-#: index.docbook:1504
+#. Tag: entry
+#: configuration.xml:1504
+#, no-c-format
 msgid "WebSphere 6"
-msgstr "org.hibernate.transaction.JOnASTransactionManagerLookup"
+msgstr "WebSphere 6"
 
-#: index.docbook:1507
+#. Tag: literal
+#: configuration.xml:1507
+#, no-c-format
 msgid "org.hibernate.transaction.OrionTransactionManagerLookup"
-msgstr "JOnAS"
+msgstr "org.hibernate.transaction.OrionTransactionManagerLookup"
 
-#: index.docbook:1508
+#. Tag: entry
+#: configuration.xml:1508
+#, no-c-format
 msgid "Orion"
-msgstr "org.hibernate.transaction.JRun4TransactionManagerLookup"
+msgstr "Orion"
 
-#: index.docbook:1511
+#. Tag: literal
+#: configuration.xml:1511
+#, no-c-format
 msgid "org.hibernate.transaction.ResinTransactionManagerLookup"
-msgstr "JRun4"
+msgstr "org.hibernate.transaction.ResinTransactionManagerLookup"
 
-#: index.docbook:1512
+#. Tag: entry
+#: configuration.xml:1512
+#, no-c-format
 msgid "Resin"
-msgstr "org.hibernate.transaction.BESTransactionManagerLookup"
+msgstr "Resin"
 
-#: index.docbook:1515
+#. Tag: literal
+#: configuration.xml:1515
+#, no-c-format
 msgid "org.hibernate.transaction.JOTMTransactionManagerLookup"
-msgstr "Borland ES"
+msgstr "org.hibernate.transaction.JOTMTransactionManagerLookup"
 
-#: index.docbook:1516
+#. Tag: entry
+#: configuration.xml:1516
+#, no-c-format
 msgid "JOTM"
-msgstr "<literal>SessionFactory</literal> ligada a JNDI"
+msgstr "JOTM"
 
-#: index.docbook:1519
+#. Tag: literal
+#: configuration.xml:1519
+#, no-c-format
 msgid "org.hibernate.transaction.JOnASTransactionManagerLookup"
-msgstr "Una <literal>SessionFactory</literal> de Hibernate ligada a JNDI puede simplificar la obtenci&#x00f3;n de la f&#x00e1;brica y la creaci&#x00f3;n de nuevas <literal>Session</literal>s. Observa que esto no est&#x00e1; relacionado a un <literal>Datasource</literal> ligado a JNDI, simplemente ambos usan el mismo registro!"
+msgstr "org.hibernate.transaction.JOnASTransactionManagerLookup"
 
-#: index.docbook:1520
+#. Tag: entry
+#: configuration.xml:1520
+#, no-c-format
 msgid "JOnAS"
-msgstr "Si deseas tener la <literal>SessionFactory</literal> ligada a un espacio de nombres de JNDI, especifica un nombre (ej. <literal>java:hibernate/SessionFactory</literal>) usando la propiedad <literal>hibernate.session_factory_name</literal>. Si esta propiedad es omitida, la <literal>SessionFactory</literal> no ser&#x00e1; ligada a JNDI (Esto es especialmente &#x00fa;til en entornos con una implementaci&#x00f3; JNDI de s&#x00f3;lo lectura por defecto, ej. Tomcat.)"
+msgstr "JOnAS"
 
-#: index.docbook:1523
+#. Tag: literal
+#: configuration.xml:1523
+#, no-c-format
 msgid "org.hibernate.transaction.JRun4TransactionManagerLookup"
-msgstr "Al ligar la <literal>SessionFactory</literal> a JNDI, Hibernate usar&#x00e1; los valores de <literal>hibernate.jndi.url</literal>, <literal>hibernate.jndi.class</literal> para instanciar un contexto inicial. Si &#x00e9;tos no se especifican, se usar&#x00e1; el <literal>InitialContext</literal> por defecto."
+msgstr "org.hibernate.transaction.JRun4TransactionManagerLookup"
 
-#: index.docbook:1524
+#. Tag: entry
+#: configuration.xml:1524
+#, no-c-format
 msgid "JRun4"
-msgstr "Hibernate colocar&#x00e1; autom&#x00e1;ticamente la <literal>SessionFactory</literal> en JNDI despu&#x00e9;s que llames a <literal>cfg.buildSessionFactory()</literal>. Esto significa que tendr&#x00e1;s al menos esta llamada en alg&#x00fa;n c&#x00f3;digo de arranque (o clase de utilidad) en tu aplicaci&#x00f3;n, a menos qie uses el despliegue JMX con el <literal>HibernateService</literal> (discutido luego)."
+msgstr "JRun4"
 
-#: index.docbook:1527
+#. Tag: literal
+#: configuration.xml:1527
+#, no-c-format
 msgid "org.hibernate.transaction.BESTransactionManagerLookup"
-msgstr "Si usas una <literal>SessionFactory</literal> de JNDI, un EJB o cualquier otra clase puede obtener la <literal>SessionFactory</literal> usando una b&#x00fa;squeda JNDI. Observa que esta configuraci&#x00f3;n no es necesaria si usas la clase de ayuda <literal>HibernateUtil</literal> introducida en el cap&#x00ed;tulo uno, que act&#x00fa;a como un registro Singleton. Sin embargo, <literal>HibernateUtil</literal> es m&#x00e1;s com&#x00fa;n en un entorno no manejado."
+msgstr "org.hibernate.transaction.BESTransactionManagerLookup"
 
-#: index.docbook:1528
+#. Tag: entry
+#: configuration.xml:1528
+#, no-c-format
 msgid "Borland ES"
-msgstr "Ligado autom&#x00e1;tico de JTA y Session"
+msgstr "Borland ES"
 
-#: index.docbook:1537
+#. Tag: title
+#: configuration.xml:1537
+#, no-c-format
 msgid "JNDI-bound <literal>SessionFactory</literal>"
-msgstr "Para entornos no manejados hemos sugerido <literal>HibernateUtil</literal> con una <literal>SessionFactory</literal> est&#x00e1;tica, y administraci&#x00f3;n de la <literal>Session</literal> de Hibernate. Este enfoque no es f&#x00e1;cil de usar en un entorno EJB, al poder ejecutarse muchos EJBs dentro de la misma transacci&#x00f3;n pero no en la misma hebra. Recomendados que ligues la <literal>SessionFactory</literal> a JNDI en un entorno manejado."
+msgstr "<literal>SessionFactory</literal> ligada a JNDI"
 
-#: index.docbook:1539
-msgid "A JNDI bound Hibernate <literal>SessionFactory</literal> can simplify the lookup of the factory and the creation of new <literal>Session</literal>s. Note that this is not related to a JNDI bound <literal>Datasource</literal>, both simply use the same registry!"
-msgstr "En vez de rodar tu propia utilidad de <literal>ThreadLocal</literal>, usa el m&#x00e9;todo <literal>getCurrentSession()</literal> en la <literal>SessionFactory</literal> para obtener una <literal>Session</literal> de Hibernate. Si no hubiese una <literal>Session</literal> de Hibernate en la transacci&#x00f3;n JTA actual, se arrancar&#x00e1; y asignar&#x00e1; una. Ambas opciones de configuraci&#x00f3;n <literal>hibernate.transaction.flush_before_completion</literal> y <literal>hibernate.transaction.auto_close_session</literal>, ser&#x00e1;n establecidas autom&#x00e1;ticamente para cada <literal>Session</literal> que obtengas con <literal>getCurrentSession()</literal>, de modo que &#x00e9;stas ser&#x00e1;n limpiadas (flushed) y cerradas autom&#x00e1;ticamente cuando el contenedor complete las transacciones JTA."
+#. Tag: para
+#: configuration.xml:1539
+#, no-c-format
+msgid ""
+"A JNDI bound Hibernate <literal>SessionFactory</literal> can simplify the "
+"lookup of the factory and the creation of new <literal>Session</literal>s. "
+"Note that this is not related to a JNDI bound <literal>Datasource</literal>, "
+"both simply use the same registry!"
+msgstr ""
+"Una <literal>SessionFactory</literal> de Hibernate ligada a JNDI puede "
+"simplificar la obtención de la fábrica y la creación de nuevas "
+"<literal>Session</literal>s. Observa que esto no está relacionado a un "
+"<literal>Datasource</literal> ligado a JNDI, simplemente ambos usan el mismo "
+"registro!"
 
-#: index.docbook:1546
-msgid "If you wish to have the <literal>SessionFactory</literal> bound to a JNDI namespace, specify a name (eg. <literal>java:hibernate/SessionFactory</literal>) using the property <literal>hibernate.session_factory_name</literal>. If this property is omitted, the <literal>SessionFactory</literal> will not be bound to JNDI. (This is especially useful in environments with a read-only JNDI default implementation, e.g. Tomcat.)"
-msgstr "Si tu, por ejemplo, usas el patr&#x00f3;n de dise&#x00f1;o DAO para escribir tu capa de persistencia, todos los DAO's buscan la <literal>SessionFactory</literal> cuando se necesite y abren la sesi&#x00f3;n \"actual\". No hay necesidad de pasar las instancias de <literal>SessionFactory</literal> o <literal>Session</literal> alrededor entre el c&#x00f3;digo de control y el c&#x00f3;digo DAO."
+#. Tag: para
+#: configuration.xml:1546
+#, no-c-format
+msgid ""
+"If you wish to have the <literal>SessionFactory</literal> bound to a JNDI "
+"namespace, specify a name (eg. <literal>java:hibernate/SessionFactory</"
+"literal>) using the property <literal>hibernate.session_factory_name</"
+"literal>. If this property is omitted, the <literal>SessionFactory</literal> "
+"will not be bound to JNDI. (This is especially useful in environments with a "
+"read-only JNDI default implementation, e.g. Tomcat.)"
+msgstr ""
+"Si deseas tener la <literal>SessionFactory</literal> ligada a un espacio de "
+"nombres de JNDI, especifica un nombre (ej. <literal>java:hibernate/"
+"SessionFactory</literal>) usando la propiedad <literal>hibernate."
+"session_factory_name</literal>. Si esta propiedad es omitida, la "
+"<literal>SessionFactory</literal> no será ligada a JNDI (Esto es "
+"especialmente útil en entornos con una implementació JNDI de sólo lectura "
+"por defecto, ej. Tomcat.)"
 
-#: index.docbook:1554
-msgid "When binding the <literal>SessionFactory</literal> to JNDI, Hibernate will use the values of <literal>hibernate.jndi.url</literal>, <literal>hibernate.jndi.class</literal> to instantiate an initial context. If they are not specified, the default <literal>InitialContext</literal> will be used."
-msgstr "Despliegue JMX"
+#. Tag: para
+#: configuration.xml:1554
+#, no-c-format
+msgid ""
+"When binding the <literal>SessionFactory</literal> to JNDI, Hibernate will "
+"use the values of <literal>hibernate.jndi.url</literal>, <literal>hibernate."
+"jndi.class</literal> to instantiate an initial context. If they are not "
+"specified, the default <literal>InitialContext</literal> will be used."
+msgstr ""
+"Al ligar la <literal>SessionFactory</literal> a JNDI, Hibernate usará los "
+"valores de <literal>hibernate.jndi.url</literal>, <literal>hibernate.jndi."
+"class</literal> para instanciar un contexto inicial. Si étos no se "
+"especifican, se usará el <literal>InitialContext</literal> por defecto."
 
-#: index.docbook:1561
-msgid "Hibernate will automatically place the <literal>SessionFactory</literal> in JNDI after you call <literal>cfg.buildSessionFactory()</literal>. This means you will at least have this call in some startup code (or utility class) in your application, unless you use JMX deployment with the <literal>HibernateService</literal> (discussed later)."
-msgstr "La l&#x00ed;nea <literal>cfg.buildSessionFactory()</literal> todav&#x00ed;a tiene que ser ejecutada en algun sitio para obtener una <literal>SessionFactory</literal> en JNDI. Puedes hacer esto bien en un bloque inicializador <literal>static</literal> (como aquel en <literal>HibernateUtil</literal>) o bien despliegas Hibernate como un <emphasis>servicio manejado</emphasis>."
+#. Tag: para
+#: configuration.xml:1561
+#, no-c-format
+msgid ""
+"Hibernate will automatically place the <literal>SessionFactory</literal> in "
+"JNDI after you call <literal>cfg.buildSessionFactory()</literal>. This means "
+"you will at least have this call in some startup code (or utility class) in "
+"your application, unless you use JMX deployment with the "
+"<literal>HibernateService</literal> (discussed later)."
+msgstr ""
+"Hibernate colocará automáticamente la <literal>SessionFactory</literal> en "
+"JNDI después que llames a <literal>cfg.buildSessionFactory()</literal>. Esto "
+"significa que tendrás al menos esta llamada en algún código de arranque (o "
+"clase de utilidad) en tu aplicación, a menos qie uses el despliegue JMX con "
+"el <literal>HibernateService</literal> (discutido luego)."
 
-#: index.docbook:1568
-msgid "If you use a JNDI <literal>SessionFactory</literal>, an EJB or any other class may obtain the <literal>SessionFactory</literal> using a JNDI lookup."
-msgstr "Hibernate se distribuye con <literal>org.hibernate.jmx.HibernateService</literal> para despliegue en un servidor de aplicaciones con capacidades JMX, como JBoss AS. El despliegue y la configurac&#x00f3;n reales son espec&#x00ed;ficos del vendedor. He aqu&#x00ed; un <literal>jboss-service.xml</literal> de ejemplo para JBoss 4.0.x:"
+#. Tag: para
+#: configuration.xml:1568
+#, no-c-format
+msgid ""
+"If you use a JNDI <literal>SessionFactory</literal>, an EJB or any other "
+"class may obtain the <literal>SessionFactory</literal> using a JNDI lookup."
+msgstr ""
+"UNTRANSLATED! If you use a JNDI <literal>SessionFactory</literal>, an EJB or "
+"any other class may obtain the <literal>SessionFactory</literal> using a "
+"JNDI lookup."
 
-#: index.docbook:1573
-msgid "We recommend that you bind the <literal>SessionFactory</literal> to JNDI in a managed environment and use a <literal>static</literal> singleton otherwise. To shield your application code from these details, we also recommend to hide the actual lookup code for a <literal>SessionFactory</literal> in a helper class, such as <literal>HibernateUtil.getSessionFactory()</literal>. Note that such a class is also a convenient way to startup Hibernate&mdash;see chapter 1."
+#. Tag: para
+#: configuration.xml:1573
+#, no-c-format
+msgid ""
+"We recommend that you bind the <literal>SessionFactory</literal> to JNDI in "
+"a managed environment and use a <literal>static</literal> singleton "
+"otherwise. To shield your application code from these details, we also "
+"recommend to hide the actual lookup code for a <literal>SessionFactory</"
+"literal> in a helper class, such as <literal>HibernateUtil.getSessionFactory"
+"()</literal>. Note that such a class is also a convenient way to startup "
+"Hibernate&mdash;see chapter 1."
 msgstr ""
-      "<![CDATA[<?xml version=\"1.0\"?>\n"
-      "<server>\n"
-      "\n"
-      "<mbean code=\"org.hibernate.jmx.HibernateService\"\n"
-      "    name=\"jboss.jca:service=HibernateFactory,name=HibernateFactory\">\n"
-      "\n"
-      "    <!-- Required services -->\n"
-      "    <depends>jboss.jca:service=RARDeployer</depends>\n"
-      "    <depends>jboss.jca:service=LocalTxCM,name=HsqlDS</depends>\n"
-      "\n"
-      "    <!-- Bind the Hibernate service to JNDI -->\n"
-      "    <attribute name=\"JndiName\">java:/hibernate/SessionFactory</attribute>\n"
-      "\n"
-      "    <!-- Datasource settings -->\n"
-      "    <attribute name=\"Datasource\">java:HsqlDS</attribute>\n"
-      "    <attribute name=\"Dialect\">org.hibernate.dialect.HSQLDialect</attribute>\n"
-      "\n"
-      "    <!-- Transaction integration -->\n"
-      "    <attribute name=\"TransactionStrategy\">\n"
-      "        org.hibernate.transaction.JTATransactionFactory</attribute>\n"
-      "    <attribute name=\"TransactionManagerLookupStrategy\">\n"
-      "        org.hibernate.transaction.JBossTransactionManagerLookup</attribute>\n"
-      "    <attribute name=\"FlushBeforeCompletionEnabled\">true</attribute>\n"
-      "    <attribute name=\"AutoCloseSessionEnabled\">true</attribute>\n"
-      "\n"
-      "    <!-- Fetching options -->\n"
-      "    <attribute name=\"MaximumFetchDepth\">5</attribute>\n"
-      "\n"
-      "    <!-- Second-level caching -->\n"
-      "    <attribute name=\"SecondLevelCacheEnabled\">true</attribute>\n"
-      "    <attribute name=\"CacheProviderClass\">org.hibernate.cache.EhCacheProvider</attribute>\n"
-      "    <attribute name=\"QueryCacheEnabled\">true</attribute>\n"
-      "\n"
-      "    <!-- Logging -->\n"
-      "    <attribute name=\"ShowSqlEnabled\">true</attribute>\n"
-      "\n"
-      "    <!-- Mapping files -->\n"
-      "    <attribute name=\"MapResources\">auction/Item.hbm.xml,auction/Category.hbm.xml</attribute>\n"
-      "\n"
-      "</mbean>\n"
-      "\n"
-      "</server>]]>"
+"Si usas una <literal>SessionFactory</literal> de JNDI, un EJB o cualquier "
+"otra clase puede obtener la <literal>SessionFactory</literal> usando una "
+"búsqueda JNDI. Observa que esta configuración no es necesaria si usas la "
+"clase de ayuda <literal>HibernateUtil</literal> introducida en el capítulo "
+"uno, que actúa como un registro Singleton. Sin embargo, "
+"<literal>HibernateUtil</literal> es más común en un entorno no manejado."
 
-#: index.docbook:1585
+#. Tag: title
+#: configuration.xml:1585
+#, no-c-format
 msgid "Current Session context management with JTA"
-msgstr "Este fichero es desplegado en un directorio llamado <literal>META-INF</literal> y empaquetado en un fichero JAR con la extensi&#x00f3;n <literal>.sar</literal> (fichero de servicio). Tambi&#x00e9;n necesitas empaquetar Hibernate, sus bibliotecas de terceros requeridas, tus clases persistentes compiladas, as&#x00ed; como tus ficheros de mapeo en el mismo fichero. Tus beans de empresa (usualmente beans de sesi&#x00f3;n) pueden ser mantenidos en su propio fichero JAR, pero debes incluir este fichero EJB JAR en el fichero de servicio principal para obtener una unidad desplegable (en caliente). Consulta la documentaci&#x00f3;n de JBoss AS para m&#x00e1;s informaci&#x00f3;n sobre el servicio JMX y despliegue de EJB."
+msgstr "Ligado automático de JTA y Session"
 
-#: index.docbook:1587
-msgid "The easiest way to handle <literal>Session</literal>s and transactions is Hibernates automatic \"current\" <literal>Session</literal> management. See the discussion of <xref linkend=\"architecture-current-session\"/>current sessions. Using the <literal>\"jta\"</literal> session context, if there is no Hibernate <literal>Session</literal> associated with the current JTA transaction, one will be started and associated with that JTA transaction the first time you call <literal>sessionFactory.getCurrentSession()</literal>. The <literal>Session</literal>s retrieved via <literal>getCurrentSession()</literal> in <literal>\"jta\"</literal> context will be set to automatically flush before the transaction completes, close after the transaction completes, and aggressively release JDBC connections after each statement. This allows the <literal>Session</literal>s to be managed by the life cycle of the JTA transaction to which it is associated, keeping user code clean of such man!
 agement concerns. Your code can either use JTA programmatically through <literal>UserTransaction</literal>, or (recommended for portable code) use the Hibernate <literal>Transaction</literal> API to set transaction boundaries. If you run in an EJB container, declarative transaction demarcation with CMT is preferred."
+#. Tag: para
+#: configuration.xml:1587
+#, no-c-format
+msgid ""
+"The easiest way to handle <literal>Session</literal>s and transactions is "
+"Hibernates automatic \"current\" <literal>Session</literal> management. See "
+"the discussion of <link linkend=\"architecture-current-session\">current "
+"sessions</link>. Using the <literal>\"jta\"</literal> session context, if "
+"there is no Hibernate <literal>Session</literal> associated with the current "
+"JTA transaction, one will be started and associated with that JTA "
+"transaction the first time you call <literal>sessionFactory.getCurrentSession"
+"()</literal>. The <literal>Session</literal>s retrieved via "
+"<literal>getCurrentSession()</literal> in <literal>\"jta\"</literal> context "
+"will be set to automatically flush before the transaction completes, close "
+"after the transaction completes, and aggressively release JDBC connections "
+"after each statement. This allows the <literal>Session</literal>s to be "
+"managed by the life cycle of the JTA transaction to which it is associated, "
+"keeping user code clean of such management concerns. Your code can either "
+"use JTA programmatically through <literal>UserTransaction</literal>, or "
+"(recommended for portable code) use the Hibernate <literal>Transaction</"
+"literal> API to set transaction boundaries. If you run in an EJB container, "
+"declarative transaction demarcation with CMT is preferred."
 msgstr ""
+"UNTRANSLATED! The easiest way to handle <literal>Session</literal>s and "
+"transactions is Hibernates automatic \"current\" <literal>Session</literal> "
+"management. See the discussion of <link linkend=\"architecture-current-"
+"session\">current sessions</link>. Using the <literal>\"jta\"</literal> "
+"session context, if there is no Hibernate <literal>Session</literal> "
+"associated with the current JTA transaction, one will be started and "
+"associated with that JTA transaction the first time you call "
+"<literal>sessionFactory.getCurrentSession()</literal>. The <literal>Session</"
+"literal>s retrieved via <literal>getCurrentSession()</literal> in <literal>"
+"\"jta\"</literal> context will be set to automatically flush before the "
+"transaction completes, close after the transaction completes, and "
+"aggressively release JDBC connections after each statement. This allows the "
+"<literal>Session</literal>s to be managed by the life cycle of the JTA "
+"transaction to which it is associated, keeping user code clean of such "
+"management concerns. Your code can either use JTA programmatically through "
+"<literal>UserTransaction</literal>, or (recommended for portable code) use "
+"the Hibernate <literal>Transaction</literal> API to set transaction "
+"boundaries. If you run in an EJB container, declarative transaction "
+"demarcation with CMT is preferred."
 
-#: index.docbook:1610
+#. Tag: title
+#: configuration.xml:1610
+#, no-c-format
 msgid "JMX deployment"
-msgstr ""
+msgstr "Despliegue JMX"
 
-#: index.docbook:1612
-msgid "The line <literal>cfg.buildSessionFactory()</literal> still has to be executed somewhere to get a <literal>SessionFactory</literal> into JNDI. You can do this either in a <literal>static</literal> initializer block (like the one in <literal>HibernateUtil</literal>) or you deploy Hibernate as a <emphasis>managed service</emphasis>."
+#. Tag: para
+#: configuration.xml:1612
+#, no-c-format
+msgid ""
+"The line <literal>cfg.buildSessionFactory()</literal> still has to be "
+"executed somewhere to get a <literal>SessionFactory</literal> into JNDI. You "
+"can do this either in a <literal>static</literal> initializer block (like "
+"the one in <literal>HibernateUtil</literal>) or you deploy Hibernate as a "
+"<emphasis>managed service</emphasis>."
 msgstr ""
+"La línea <literal>cfg.buildSessionFactory()</literal> todavía tiene que ser "
+"ejecutada en algun sitio para obtener una <literal>SessionFactory</literal> "
+"en JNDI. Puedes hacer esto bien en un bloque inicializador <literal>static</"
+"literal> (como aquel en <literal>HibernateUtil</literal>) o bien despliegas "
+"Hibernate como un <emphasis>servicio manejado</emphasis>."
 
-#: index.docbook:1620
-msgid "Hibernate is distributed with <literal>org.hibernate.jmx.HibernateService</literal> for deployment on an application server with JMX capabilities, such as JBoss AS. The actual deployment and configuration is vendor specific. Here is an example <literal>jboss-service.xml</literal> for JBoss 4.0.x:"
+#. Tag: para
+#: configuration.xml:1620
+#, no-c-format
+msgid ""
+"Hibernate is distributed with <literal>org.hibernate.jmx.HibernateService</"
+"literal> for deployment on an application server with JMX capabilities, such "
+"as JBoss AS. The actual deployment and configuration is vendor specific. "
+"Here is an example <literal>jboss-service.xml</literal> for JBoss 4.0.x:"
 msgstr ""
+"Hibernate se distribuye con <literal>org.hibernate.jmx.HibernateService</"
+"literal> para despliegue en un servidor de aplicaciones con capacidades JMX, "
+"como JBoss AS. El despliegue y la configuracón reales son específicos del "
+"vendedor. He aquí un <literal>jboss-service.xml</literal> de ejemplo para "
+"JBoss 4.0.x:"
 
-#: index.docbook:1627
+#. Tag: programlisting
+#: configuration.xml:1627
+#, no-c-format
 msgid ""
-      "<![CDATA[<?xml version=\"1.0\"?>\n"
-      "<server>\n"
-      "\n"
-      "<mbean code=\"org.hibernate.jmx.HibernateService\"\n"
-      "    name=\"jboss.jca:service=HibernateFactory,name=HibernateFactory\">\n"
-      "\n"
-      "    <!-- Required services -->\n"
-      "    <depends>jboss.jca:service=RARDeployer</depends>\n"
-      "    <depends>jboss.jca:service=LocalTxCM,name=HsqlDS</depends>\n"
-      "\n"
-      "    <!-- Bind the Hibernate service to JNDI -->\n"
-      "    <attribute name=\"JndiName\">java:/hibernate/SessionFactory</attribute>\n"
-      "\n"
-      "    <!-- Datasource settings -->\n"
-      "    <attribute name=\"Datasource\">java:HsqlDS</attribute>\n"
-      "    <attribute name=\"Dialect\">org.hibernate.dialect.HSQLDialect</attribute>\n"
-      "\n"
-      "    <!-- Transaction integration -->\n"
-      "    <attribute name=\"TransactionStrategy\">\n"
-      "        org.hibernate.transaction.JTATransactionFactory</attribute>\n"
-      "    <attribute name=\"TransactionManagerLookupStrategy\">\n"
-      "        org.hibernate.transaction.JBossTransactionManagerLookup</attribute>\n"
-      "    <attribute name=\"FlushBeforeCompletionEnabled\">true</attribute>\n"
-      "    <attribute name=\"AutoCloseSessionEnabled\">true</attribute>\n"
-      "\n"
-      "    <!-- Fetching options -->\n"
-      "    <attribute name=\"MaximumFetchDepth\">5</attribute>\n"
-      "\n"
-      "    <!-- Second-level caching -->\n"
-      "    <attribute name=\"SecondLevelCacheEnabled\">true</attribute>\n"
-      "    <attribute name=\"CacheProviderClass\">org.hibernate.cache.EhCacheProvider</attribute>\n"
-      "    <attribute name=\"QueryCacheEnabled\">true</attribute>\n"
-      "\n"
-      "    <!-- Logging -->\n"
-      "    <attribute name=\"ShowSqlEnabled\">true</attribute>\n"
-      "\n"
-      "    <!-- Mapping files -->\n"
-      "    <attribute name=\"MapResources\">auction/Item.hbm.xml,auction/Category.hbm.xml</attribute>\n"
-      "\n"
-      "</mbean>\n"
-      "\n"
-      "</server>]]>"
+"<![CDATA[<?xml version=\"1.0\"?>\n"
+"<server>\n"
+"\n"
+"<mbean code=\"org.hibernate.jmx.HibernateService\"\n"
+"    name=\"jboss.jca:service=HibernateFactory,name=HibernateFactory\">\n"
+"\n"
+"    <!-- Required services -->\n"
+"    <depends>jboss.jca:service=RARDeployer</depends>\n"
+"    <depends>jboss.jca:service=LocalTxCM,name=HsqlDS</depends>\n"
+"\n"
+"    <!-- Bind the Hibernate service to JNDI -->\n"
+"    <attribute name=\"JndiName\">java:/hibernate/SessionFactory</attribute>\n"
+"\n"
+"    <!-- Datasource settings -->\n"
+"    <attribute name=\"Datasource\">java:HsqlDS</attribute>\n"
+"    <attribute name=\"Dialect\">org.hibernate.dialect.HSQLDialect</"
+"attribute>\n"
+"\n"
+"    <!-- Transaction integration -->\n"
+"    <attribute name=\"TransactionStrategy\">\n"
+"        org.hibernate.transaction.JTATransactionFactory</attribute>\n"
+"    <attribute name=\"TransactionManagerLookupStrategy\">\n"
+"        org.hibernate.transaction.JBossTransactionManagerLookup</attribute>\n"
+"    <attribute name=\"FlushBeforeCompletionEnabled\">true</attribute>\n"
+"    <attribute name=\"AutoCloseSessionEnabled\">true</attribute>\n"
+"\n"
+"    <!-- Fetching options -->\n"
+"    <attribute name=\"MaximumFetchDepth\">5</attribute>\n"
+"\n"
+"    <!-- Second-level caching -->\n"
+"    <attribute name=\"SecondLevelCacheEnabled\">true</attribute>\n"
+"    <attribute name=\"CacheProviderClass\">org.hibernate.cache."
+"EhCacheProvider</attribute>\n"
+"    <attribute name=\"QueryCacheEnabled\">true</attribute>\n"
+"\n"
+"    <!-- Logging -->\n"
+"    <attribute name=\"ShowSqlEnabled\">true</attribute>\n"
+"\n"
+"    <!-- Mapping files -->\n"
+"    <attribute name=\"MapResources\">auction/Item.hbm.xml,auction/Category."
+"hbm.xml</attribute>\n"
+"\n"
+"</mbean>\n"
+"\n"
+"</server>]]>"
 msgstr ""
 
-#: index.docbook:1629
-msgid "This file is deployed in a directory called <literal>META-INF</literal> and packaged in a JAR file with the extension <literal>.sar</literal> (service archive). You also need to package Hibernate, its required third-party libraries, your compiled persistent classes, as well as your mapping files in the same archive. Your enterprise beans (usually session beans) may be kept in their own JAR file, but you may include this EJB JAR file in the main service archive to get a single (hot-)deployable unit. Consult the JBoss AS documentation for more information about JMX service and EJB deployment."
+#. Tag: para
+#: configuration.xml:1629
+#, no-c-format
+msgid ""
+"This file is deployed in a directory called <literal>META-INF</literal> and "
+"packaged in a JAR file with the extension <literal>.sar</literal> (service "
+"archive). You also need to package Hibernate, its required third-party "
+"libraries, your compiled persistent classes, as well as your mapping files "
+"in the same archive. Your enterprise beans (usually session beans) may be "
+"kept in their own JAR file, but you may include this EJB JAR file in the "
+"main service archive to get a single (hot-)deployable unit. Consult the "
+"JBoss AS documentation for more information about JMX service and EJB "
+"deployment."
 msgstr ""
+"Este fichero es desplegado en un directorio llamado <literal>META-INF</"
+"literal> y empaquetado en un fichero JAR con la extensión <literal>.sar</"
+"literal> (fichero de servicio). También necesitas empaquetar Hibernate, sus "
+"bibliotecas de terceros requeridas, tus clases persistentes compiladas, así "
+"como tus ficheros de mapeo en el mismo fichero. Tus beans de empresa "
+"(usualmente beans de sesión) pueden ser mantenidos en su propio fichero JAR, "
+"pero debes incluir este fichero EJB JAR en el fichero de servicio principal "
+"para obtener una unidad desplegable (en caliente). Consulta la documentación "
+"de JBoss AS para más información sobre el servicio JMX y despliegue de EJB."
 
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
+#, fuzzy
+#~ msgid "<placeholder-1/> (optional)"
+#~ msgstr ""
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "<placeholder-1/> (optional)\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "<placeholder-1/> (opcional)\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "<placeholder-1/> (opcional)\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "<placeholder-1/> (opcional)"
 
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
+#~ msgid "InitialContextFactory"
+#~ msgstr "InitialContextFactory"
 
+#~ msgid "class of the JNDI <placeholder-1/>"
+#~ msgstr "clase de la <placeholder-1/> de JNDI"
+
+#, fuzzy
+#~ msgid "eg."
+#~ msgstr ""
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "ej.\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "ej.\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "ej.\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "ej.\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "ej.\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "ej.\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "ej.\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "eg.\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "ej.\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "ej.\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "ej.\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "ej.\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "ej.\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "ej.\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "ej.\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "ej.\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "ej.\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "ej.\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "ej."
+
+#~ msgid "full.classname.of.Dialect"
+#~ msgstr "full.classname.of.Dialect"
+
+#~ msgid "debug"
+#~ msgstr "debug"
+
+#~ msgid "SCHEMA_NAME"
+#~ msgstr "SCHEMA_NAME"
+
+#~ msgid "CATALOG_NAME"
+#~ msgstr "CATALOG_NAME"
+
+#~ msgid "SessionFactory"
+#~ msgstr "SessionFactory"
+
+#~ msgid "jndi/composite/name"
+#~ msgstr "jndi/composite/name"
+
+#~ msgid "0"
+#~ msgstr "0"
+
+#~ msgid "false"
+#~ msgstr "false"
+
+#~ msgid "Statement.setFetchSize()"
+#~ msgstr "Statement.setFetchSize()"
+
+#~ msgid "true"
+#~ msgstr "true"
+
+#~ msgid "executeBatch()"
+#~ msgstr "executeBatch()"
+
+#~ msgid "Batcher"
+#~ msgstr "Batcher"
+
+#~ msgid "classname.of.BatcherFactory"
+#~ msgstr "classname.of.BatcherFactory"
+
+#~ msgid "binary"
+#~ msgstr "binary"
+
+#~ msgid "serializable"
+#~ msgstr "serializable"
+
+#~ msgid "PreparedStatement.getGeneratedKeys()"
+#~ msgstr "PreparedStatement.getGeneratedKeys()"
+
+#~ msgid "true|false"
+#~ msgstr "true|false"
+
+#~ msgid "ConnectionProvider"
+#~ msgstr "ConnectionProvider"
+
+#~ msgid "classname.of.ConnectionProvider"
+#~ msgstr "classname.of.ConnectionProvider"
+
+#~ msgid "java.sql.Connection"
+#~ msgstr "java.sql.Connection"
+
+#~ msgid "1, 2, 4, 8"
+#~ msgstr "1, 2, 4, 8"
+
+#~ msgid "after_statement"
+#~ msgstr "after_statement"
+
+#~ msgid "after_transaction"
+#~ msgstr "after_transaction"
+
+#~ msgid "auto"
+#~ msgstr "auto"
+
+#~ msgid "hibernate.connection."
+#~ msgstr "&lt;propertyName&gt;"
+
+#, fuzzy
+#~ msgid "&lt;propertyName&gt;"
+#~ msgstr ""
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "hibernate.connection.<placeholder-1/>\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "propertyName\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "hibernate.jndi.<placeholder-1/>\n"
+#~ "#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "propertyName"
+
+#~ msgid "DriverManager.getConnection()"
+#~ msgstr "DriverManager.getConnection()"
+
+#~ msgid "Pass the JDBC property <placeholder-1/> to <placeholder-2/>."
+#~ msgstr "Pasa la propiedad JDBC <placeholder-1/> a <placeholder-2/>."
+
+#~ msgid "hibernate.jndi."
+#~ msgstr "&lt;propertyName&gt;"
+
+#~ msgid "Pass the property <placeholder-1/> to the JNDI <placeholder-2/>."
+#~ msgstr "Pasa la propiedad <placeholder-1/> a <placeholder-2/> de JNDI."
+
+#~ msgid "CacheProvider"
+#~ msgstr "CacheProvider"
+
+#~ msgid "classname.of.CacheProvider"
+#~ msgstr "classname.of.CacheProvider"
+
+#~ msgid "&lt;cache&gt;"
+#~ msgstr "&lt;cache&gt;"
+
+#~ msgid "QueryCache"
+#~ msgstr "QueryCache"
+
+#~ msgid "StandardQueryCache"
+#~ msgstr "StandardQueryCache"
+
+#~ msgid "classname.of.QueryCache"
+#~ msgstr "classname.of.QueryCache"
+
+#~ msgid "prefix"
+#~ msgstr "prefix"
+
+#~ msgid "TransactionFactory"
+#~ msgstr "TransactionFactory"
+
+#~ msgid "Transaction"
+#~ msgstr "Transaction"
+
+#~ msgid "JDBCTransactionFactory"
+#~ msgstr "JDBCTransactionFactory"
+
+#~ msgid "classname.of.TransactionFactory"
+#~ msgstr "classname.of.TransactionFactory"
+
+#~ msgid "JTATransactionFactory"
+#~ msgstr "JTATransactionFactory"
+
+#~ msgid "UserTransaction"
+#~ msgstr "UserTransaction"
+
+#~ msgid "TransactionManagerLookup"
+#~ msgstr "TransactionManagerLookup"
+
+#~ msgid "classname.of.TransactionManagerLookup"
+#~ msgstr "classname.of.TransactionManagerLookup"
+
+#~ msgid "Session"
+#~ msgstr "Session"
+
+#~ msgid "hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC"
+#~ msgstr "hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC"
+
+#~ msgid "create-drop"
+#~ msgstr "create-drop"
+
+#~ msgid "hibernate.cfg.xml"
+#~ msgstr "hibernate.cfg.xml"
+
+#~ msgid "DB2"
+#~ msgstr "DB2"

Modified: core/trunk/documentation/manual/translations/es-ES/content/events.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/events.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/events.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,348 +1,478 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:5
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: events.xml:5
+#, no-c-format
 msgid "Interceptors and events"
 msgstr "Interceptores y eventos"
 
-#: index.docbook:7
-msgid "It is often useful for the application to react to certain events that occur inside Hibernate. This allows implementation of certain kinds of generic functionality, and extension of Hibernate functionality."
-msgstr "Frecuentemente es &#x00fa;til para la aplicaci&#x00f3;n reaccionar a ciertos eventos que ocurran dentro de Hibernate. Esto permite la implementaci&#x00f3;n de ciertos tipos de funcionalidade gen&#x00e9;rica, y extensi&#x00f3;n de la funcionalidad de Hibernate."
+#. Tag: para
+#: events.xml:7
+#, no-c-format
+msgid ""
+"It is often useful for the application to react to certain events that occur "
+"inside Hibernate. This allows implementation of certain kinds of generic "
+"functionality, and extension of Hibernate functionality."
+msgstr ""
+"Frecuentemente es útil para la aplicación reaccionar a ciertos eventos que "
+"ocurran dentro de Hibernate. Esto permite la implementación de ciertos tipos "
+"de funcionalidade genérica, y extensión de la funcionalidad de Hibernate."
 
-#: index.docbook:14
+#. Tag: title
+#: events.xml:14
+#, no-c-format
 msgid "Interceptors"
 msgstr "Interceptores"
 
-#: index.docbook:16
-msgid "The <literal>Interceptor</literal> interface provides callbacks from the session to the application allowing the application to inspect and/or manipulate properties of a persistent object before it is saved, updated, deleted or loaded. One possible use for this is to track auditing information. For example, the following <literal>Interceptor</literal> automatically sets the <literal>createTimestamp</literal> when an <literal>Auditable</literal> is created and updates the <literal>lastUpdateTimestamp</literal> property when an <literal>Auditable</literal> is updated."
-msgstr "La interface <literal>Interceptor</literal> provee callbacks desde la sesi&#x00f3;n a la aplicaci&#x00f3;n permitiendo a &#x00e9;sta &#x00fa;ltima inspeccionar y/o manipular las propiedades de un objeto persistente antes que sea salvado, actualizado, borrado o cargado. Un uso posible de esto es seguir la pista de informaci&#x00f3;n de auditor&#x00ed;a. Por ejemplo, el siguiente <literal>Interceptor</literal> establece autom&#x00e1;ticamente el <literal>createTimestamp</literal> cuando un <literal>Auditable</literal> es creado y actualiza la propiedad <literal>lastUpdateTimestamp</literal> cuando un <literal>Auditable</literal> es acutalizado."
+#. Tag: para
+#: events.xml:16
+#, no-c-format
+msgid ""
+"The <literal>Interceptor</literal> interface provides callbacks from the "
+"session to the application allowing the application to inspect and/or "
+"manipulate properties of a persistent object before it is saved, updated, "
+"deleted or loaded. One possible use for this is to track auditing "
+"information. For example, the following <literal>Interceptor</literal> "
+"automatically sets the <literal>createTimestamp</literal> when an "
+"<literal>Auditable</literal> is created and updates the "
+"<literal>lastUpdateTimestamp</literal> property when an <literal>Auditable</"
+"literal> is updated."
+msgstr ""
+"La interface <literal>Interceptor</literal> provee callbacks desde la sesión "
+"a la aplicación permitiendo a ésta última inspeccionar y/o manipular las "
+"propiedades de un objeto persistente antes que sea salvado, actualizado, "
+"borrado o cargado. Un uso posible de esto es seguir la pista de información "
+"de auditoría. Por ejemplo, el siguiente <literal>Interceptor</literal> "
+"establece automáticamente el <literal>createTimestamp</literal> cuando un "
+"<literal>Auditable</literal> es creado y actualiza la propiedad "
+"<literal>lastUpdateTimestamp</literal> cuando un <literal>Auditable</"
+"literal> es acutalizado."
 
-#: index.docbook:27
-msgid "You may either implement <literal>Interceptor</literal> directly or (better) extend <literal>EmptyInterceptor</literal>."
+#. Tag: para
+#: events.xml:27
+#, no-c-format
+msgid ""
+"You may either implement <literal>Interceptor</literal> directly or (better) "
+"extend <literal>EmptyInterceptor</literal>."
 msgstr ""
-      "<![CDATA[package org.hibernate.test;\n"
-      "\n"
-      "import java.io.Serializable;\n"
-      "import java.util.Date;\n"
-      "import java.util.Iterator;\n"
-      "\n"
-      "import org.hibernate.Interceptor;\n"
-      "import org.hibernate.type.Type;\n"
-      "\n"
-      "public class AuditInterceptor implements Interceptor, Serializable {\n"
-      "\n"
-      "    private int updates;\n"
-      "    private int creates;\n"
-      "\n"
-      "    public void onDelete(Object entity,\n"
-      "                         Serializable id,\n"
-      "                         Object[] state,\n"
-      "                         String[] propertyNames,\n"
-      "                         Type[] types) {\n"
-      "        // do nothing\n"
-      "    }\n"
-      "\n"
-      "    public boolean onFlushDirty(Object entity,\n"
-      "                                Serializable id,\n"
-      "                                Object[] currentState,\n"
-      "                                Object[] previousState,\n"
-      "                                String[] propertyNames,\n"
-      "                                Type[] types) {\n"
-      "\n"
-      "        if ( entity instanceof Auditable ) {\n"
-      "            updates++;\n"
-      "            for ( int i=0; i < propertyNames.length; i++ ) {\n"
-      "                if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) {\n"
-      "                    currentState[i] = new Date();\n"
-      "                    return true;\n"
-      "                }\n"
-      "            }\n"
-      "        }\n"
-      "        return false;\n"
-      "    }\n"
-      "\n"
-      "    public boolean onLoad(Object entity,\n"
-      "                          Serializable id,\n"
-      "                          Object[] state,\n"
-      "                          String[] propertyNames,\n"
-      "                          Type[] types) {\n"
-      "        return false;\n"
-      "    }\n"
-      "\n"
-      "    public boolean onSave(Object entity,\n"
-      "                          Serializable id,\n"
-      "                          Object[] state,\n"
-      "                          String[] propertyNames,\n"
-      "                          Type[] types) {\n"
-      "\n"
-      "        if ( entity instanceof Auditable ) {\n"
-      "            creates++;\n"
-      "            for ( int i=0; i<propertyNames.length; i++ ) {\n"
-      "                if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
-      "                    state[i] = new Date();\n"
-      "                    return true;\n"
-      "                }\n"
-      "            }\n"
-      "        }\n"
-      "        return false;\n"
-      "    }\n"
-      "\n"
-      "    public void postFlush(Iterator entities) {\n"
-      "        System.out.println(\"Creations: \" + creates + \", Updates: \" + updates);\n"
-      "    }\n"
-      "\n"
-      "    public void preFlush(Iterator entities) {\n"
-      "        updates=0;\n"
-      "        creates=0;\n"
-      "    }\n"
-      "\n"
-      "    ...\n"
-      "\n"
-      "}]]>"
+"UNTRANSLATED! You may either implement <literal>Interceptor</literal> "
+"directly or (better) extend <literal>EmptyInterceptor</literal>."
 
-#: index.docbook:32
+#. Tag: programlisting
+#: events.xml:32
+#, no-c-format
 msgid ""
-      "<![CDATA[package org.hibernate.test;\n"
-      "\n"
-      "import java.io.Serializable;\n"
-      "import java.util.Date;\n"
-      "import java.util.Iterator;\n"
-      "\n"
-      "import org.hibernate.EmptyInterceptor;\n"
-      "import org.hibernate.Transaction;\n"
-      "import org.hibernate.type.Type;\n"
-      "\n"
-      "public class AuditInterceptor extends EmptyInterceptor {\n"
-      "\n"
-      "    private int updates;\n"
-      "    private int creates;\n"
-      "    private int loads;\n"
-      "\n"
-      "    public void onDelete(Object entity,\n"
-      "                         Serializable id,\n"
-      "                         Object[] state,\n"
-      "                         String[] propertyNames,\n"
-      "                         Type[] types) {\n"
-      "        // do nothing\n"
-      "    }\n"
-      "\n"
-      "    public boolean onFlushDirty(Object entity,\n"
-      "                                Serializable id,\n"
-      "                                Object[] currentState,\n"
-      "                                Object[] previousState,\n"
-      "                                String[] propertyNames,\n"
-      "                                Type[] types) {\n"
-      "\n"
-      "        if ( entity instanceof Auditable ) {\n"
-      "            updates++;\n"
-      "            for ( int i=0; i < propertyNames.length; i++ ) {\n"
-      "                if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) {\n"
-      "                    currentState[i] = new Date();\n"
-      "                    return true;\n"
-      "                }\n"
-      "            }\n"
-      "        }\n"
-      "        return false;\n"
-      "    }\n"
-      "\n"
-      "    public boolean onLoad(Object entity,\n"
-      "                          Serializable id,\n"
-      "                          Object[] state,\n"
-      "                          String[] propertyNames,\n"
-      "                          Type[] types) {\n"
-      "        if ( entity instanceof Auditable ) {\n"
-      "            loads++;\n"
-      "        }\n"
-      "        return false;\n"
-      "    }\n"
-      "\n"
-      "    public boolean onSave(Object entity,\n"
-      "                          Serializable id,\n"
-      "                          Object[] state,\n"
-      "                          String[] propertyNames,\n"
-      "                          Type[] types) {\n"
-      "\n"
-      "        if ( entity instanceof Auditable ) {\n"
-      "            creates++;\n"
-      "            for ( int i=0; i<propertyNames.length; i++ ) {\n"
-      "                if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
-      "                    state[i] = new Date();\n"
-      "                    return true;\n"
-      "                }\n"
-      "            }\n"
-      "        }\n"
-      "        return false;\n"
-      "    }\n"
-      "\n"
-      "    public void afterTransactionCompletion(Transaction tx) {\n"
-      "        if ( tx.wasCommitted() ) {\n"
-      "            System.out.println(\"Creations: \" + creates + \", Updates: \" + updates, \"Loads: \" + loads);\n"
-      "        }\n"
-      "        updates=0;\n"
-      "        creates=0;\n"
-      "        loads=0;\n"
-      "    }\n"
-      "\n"
-      "}]]>"
-msgstr "El interceptor podr&#x00ed;a ser especificado cuando se crea la sesi&#x00f3;n:"
+"<![CDATA[package org.hibernate.test;\n"
+"\n"
+"import java.io.Serializable;\n"
+"import java.util.Date;\n"
+"import java.util.Iterator;\n"
+"\n"
+"import org.hibernate.EmptyInterceptor;\n"
+"import org.hibernate.Transaction;\n"
+"import org.hibernate.type.Type;\n"
+"\n"
+"public class AuditInterceptor extends EmptyInterceptor {\n"
+"\n"
+"    private int updates;\n"
+"    private int creates;\n"
+"    private int loads;\n"
+"\n"
+"    public void onDelete(Object entity,\n"
+"                         Serializable id,\n"
+"                         Object[] state,\n"
+"                         String[] propertyNames,\n"
+"                         Type[] types) {\n"
+"        // do nothing\n"
+"    }\n"
+"\n"
+"    public boolean onFlushDirty(Object entity,\n"
+"                                Serializable id,\n"
+"                                Object[] currentState,\n"
+"                                Object[] previousState,\n"
+"                                String[] propertyNames,\n"
+"                                Type[] types) {\n"
+"\n"
+"        if ( entity instanceof Auditable ) {\n"
+"            updates++;\n"
+"            for ( int i=0; i < propertyNames.length; i++ ) {\n"
+"                if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) {\n"
+"                    currentState[i] = new Date();\n"
+"                    return true;\n"
+"                }\n"
+"            }\n"
+"        }\n"
+"        return false;\n"
+"    }\n"
+"\n"
+"    public boolean onLoad(Object entity,\n"
+"                          Serializable id,\n"
+"                          Object[] state,\n"
+"                          String[] propertyNames,\n"
+"                          Type[] types) {\n"
+"        if ( entity instanceof Auditable ) {\n"
+"            loads++;\n"
+"        }\n"
+"        return false;\n"
+"    }\n"
+"\n"
+"    public boolean onSave(Object entity,\n"
+"                          Serializable id,\n"
+"                          Object[] state,\n"
+"                          String[] propertyNames,\n"
+"                          Type[] types) {\n"
+"\n"
+"        if ( entity instanceof Auditable ) {\n"
+"            creates++;\n"
+"            for ( int i=0; i<propertyNames.length; i++ ) {\n"
+"                if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
+"                    state[i] = new Date();\n"
+"                    return true;\n"
+"                }\n"
+"            }\n"
+"        }\n"
+"        return false;\n"
+"    }\n"
+"\n"
+"    public void afterTransactionCompletion(Transaction tx) {\n"
+"        if ( tx.wasCommitted() ) {\n"
+"            System.out.println(\"Creations: \" + creates + \", Updates: \" + "
+"updates, \"Loads: \" + loads);\n"
+"        }\n"
+"        updates=0;\n"
+"        creates=0;\n"
+"        loads=0;\n"
+"    }\n"
+"\n"
+"}]]>"
+msgstr ""
 
-#: index.docbook:34
-msgid "Interceptors come in two flavors: <literal>Session</literal>-scoped and <literal>SessionFactory</literal>-scoped."
-msgstr "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
+#. Tag: para
+#: events.xml:34
+#, no-c-format
+msgid ""
+"Interceptors come in two flavors: <literal>Session</literal>-scoped and "
+"<literal>SessionFactory</literal>-scoped."
+msgstr ""
+"UNTRANSLATED! Interceptors come in two flavors: <literal>Session</literal>-"
+"scoped and <literal>SessionFactory</literal>-scoped."
 
-#: index.docbook:39
-msgid "A <literal>Session</literal>-scoped interceptor is specified when a session is opened using one of the overloaded SessionFactory.openSession() methods accepting an <literal>Interceptor</literal>."
-msgstr "Puedes adem&#x00e1;s establecer un interceptor a un nivel global, usando la <literal>Configuration</literal>:"
+#. Tag: para
+#: events.xml:39
+#, no-c-format
+msgid ""
+"A <literal>Session</literal>-scoped interceptor is specified when a session "
+"is opened using one of the overloaded SessionFactory.openSession() methods "
+"accepting an <literal>Interceptor</literal>."
+msgstr ""
+"UNTRANSLATED! A <literal>Session</literal>-scoped interceptor is specified "
+"when a session is opened using one of the overloaded SessionFactory."
+"openSession() methods accepting an <literal>Interceptor</literal>."
 
-#: index.docbook:45
+#. Tag: programlisting
+#: events.xml:45
+#, no-c-format
 msgid "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
-msgstr "<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
+msgstr ""
 
-#: index.docbook:47
-msgid "A <literal>SessionFactory</literal>-scoped interceptor is registered with the <literal>Configuration</literal> object prior to building the <literal>SessionFactory</literal>. In this case, the supplied interceptor will be applied to all sessions opened from that <literal>SessionFactory</literal>; this is true unless a session is opened explicitly specifying the interceptor to use. <literal>SessionFactory</literal>-scoped interceptors must be thread safe, taking care to not store session-specific state since multiple sessions will use this interceptor (potentially) concurrently."
-msgstr "Sistema de eventos"
+#. Tag: para
+#: events.xml:47
+#, no-c-format
+msgid ""
+"A <literal>SessionFactory</literal>-scoped interceptor is registered with "
+"the <literal>Configuration</literal> object prior to building the "
+"<literal>SessionFactory</literal>. In this case, the supplied interceptor "
+"will be applied to all sessions opened from that <literal>SessionFactory</"
+"literal>; this is true unless a session is opened explicitly specifying the "
+"interceptor to use. <literal>SessionFactory</literal>-scoped interceptors "
+"must be thread safe, taking care to not store session-specific state since "
+"multiple sessions will use this interceptor (potentially) concurrently."
+msgstr ""
+"UNTRANSLATED! A <literal>SessionFactory</literal>-scoped interceptor is "
+"registered with the <literal>Configuration</literal> object prior to "
+"building the <literal>SessionFactory</literal>. In this case, the supplied "
+"interceptor will be applied to all sessions opened from that "
+"<literal>SessionFactory</literal>; this is true unless a session is opened "
+"explicitly specifying the interceptor to use. <literal>SessionFactory</"
+"literal>-scoped interceptors must be thread safe, taking care to not store "
+"session-specific state since multiple sessions will use this interceptor "
+"(potentially) concurrently."
 
-#: index.docbook:56
-msgid "<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
-msgstr "Si tienes que reaccionar a eventos particulares en tu capa de persistencia, puedes tambi&#x00e9;n la arquitectura de <emphasis>eventos</emphasis> de Hibernate3. El sistema de eventos puede ser usado en adici&#x00f3;n o como un remplazo a los interceptores."
+#. Tag: programlisting
+#: events.xml:56
+#, no-c-format
+msgid ""
+"<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
+msgstr ""
 
-#: index.docbook:61
+#. Tag: title
+#: events.xml:61
+#, no-c-format
 msgid "Event system"
-msgstr "Esencialmente todos los m&#x00e9;todos de la interface <literal>Session</literal> se correlacionan con un evento. Tienes un <literal>LoadEvent</literal>, un <literal>FlushEvent</literal>, etc (consulta el DTD del fichero de configuraci&#x00f3;n XML o el paquete <literal>org.hibernate.event</literal> para la lista completa de tipos de evento definidos). Cuando se hace una petici&#x00f3;n de uno de estos m&#x00e9;todos, la <literal>Session</literal> de Hibernate genera un evento apropiado y se lo pasa al oyente (listener) de eventos configurado para ese tipo. De f&#x00e1;brica, estos oyentes implementan el mismo procesamiento en los que siempre resultan aquellos m&#x00e9;todos. Sin embargo, eres libre de implementar una personalizaci&#x00f3;n de una de las interfaces oyentes (es decir, el <literal>LoadEvent</literal> es procesado por la implementaci&#x00f3;n registrada de la interface <literal>LoadEventListener</literal>), en cuyo caso su implementaci&#x00f3;n ser&#x0!
 0ed;a responsable de procesar cualquier petici&#x00f3;n <literal>load()</literal> hecha a la <literal>Session</literal>."
+msgstr "Sistema de eventos"
 
-#: index.docbook:63
-msgid "If you have to react to particular events in your persistence layer, you may also use the Hibernate3 <emphasis>event</emphasis> architecture. The event system can be used in addition or as a replacement for interceptors."
-msgstr "Los oyentes deben ser considerados efectivamente singletons; quiere decir, que son compartidos entre las peticiones, y por lo tanto no guardan ning&#x00fa;n estado en variables de instancia."
+#. Tag: para
+#: events.xml:63
+#, no-c-format
+msgid ""
+"If you have to react to particular events in your persistence layer, you may "
+"also use the Hibernate3 <emphasis>event</emphasis> architecture. The event "
+"system can be used in addition or as a replacement for interceptors."
+msgstr ""
+"Si tienes que reaccionar a eventos particulares en tu capa de persistencia, "
+"puedes también la arquitectura de <emphasis>eventos</emphasis> de "
+"Hibernate3. El sistema de eventos puede ser usado en adición o como un "
+"remplazo a los interceptores."
 
-#: index.docbook:69
-msgid "Essentially all of the methods of the <literal>Session</literal> interface correlate to an event. You have a <literal>LoadEvent</literal>, a <literal>FlushEvent</literal>, etc (consult the XML configuration-file DTD or the <literal>org.hibernate.event</literal> package for the full list of defined event types). When a request is made of one of these methods, the Hibernate <literal>Session</literal> generates an appropriate event and passes it to the configured event listeners for that type. Out-of-the-box, these listeners implement the same processing in which those methods always resulted. However, you are free to implement a customization of one of the listener interfaces (i.e., the <literal>LoadEvent</literal> is processed by the registered implemenation of the <literal>LoadEventListener</literal> interface), in which case their implementation would be responsible for processing any <literal>load()</literal> requests made of the <literal>Session</literal>."
-msgstr "Un oyente personalizado debe implementar la interface apropiada para el evento que quiere procesar y/o extender una de las clases base de conveniencia (o incluso los oyentes de eventos por defecto usados por Hibernate de f&#x00e1;brica al ser &#x00e9;stos declarados non-final para este prop&#x00f3;sito). Los oyentes personalizados pueden ser registrados program&#x00e1;ticamente a trav&#x00e9;s del objeto <literal>Configuration</literal>, o especificados en el XML de configuraci&#x00f3;n de Hibernate (la declaraci&#x00f3;n declarativa a trav&#x00e9;s del fichero de propiedades no est&#x00e1; soportada). He aqu&#x00ed; un ejemplo de un oyente personalizado de eventos load:"
+#. Tag: para
+#: events.xml:69
+#, no-c-format
+msgid ""
+"Essentially all of the methods of the <literal>Session</literal> interface "
+"correlate to an event. You have a <literal>LoadEvent</literal>, a "
+"<literal>FlushEvent</literal>, etc (consult the XML configuration-file DTD "
+"or the <literal>org.hibernate.event</literal> package for the full list of "
+"defined event types). When a request is made of one of these methods, the "
+"Hibernate <literal>Session</literal> generates an appropriate event and "
+"passes it to the configured event listeners for that type. Out-of-the-box, "
+"these listeners implement the same processing in which those methods always "
+"resulted. However, you are free to implement a customization of one of the "
+"listener interfaces (i.e., the <literal>LoadEvent</literal> is processed by "
+"the registered implemenation of the <literal>LoadEventListener</literal> "
+"interface), in which case their implementation would be responsible for "
+"processing any <literal>load()</literal> requests made of the "
+"<literal>Session</literal>."
+msgstr ""
+"Esencialmente todos los métodos de la interface <literal>Session</literal> "
+"se correlacionan con un evento. Tienes un <literal>LoadEvent</literal>, un "
+"<literal>FlushEvent</literal>, etc (consulta el DTD del fichero de "
+"configuración XML o el paquete <literal>org.hibernate.event</literal> para "
+"la lista completa de tipos de evento definidos). Cuando se hace una petición "
+"de uno de estos métodos, la <literal>Session</literal> de Hibernate genera "
+"un evento apropiado y se lo pasa al oyente (listener) de eventos configurado "
+"para ese tipo. De fábrica, estos oyentes implementan el mismo procesamiento "
+"en los que siempre resultan aquellos métodos. Sin embargo, eres libre de "
+"implementar una personalización de una de las interfaces oyentes (es decir, "
+"el <literal>LoadEvent</literal> es procesado por la implementación "
+"registrada de la interface <literal>LoadEventListener</literal>), en cuyo "
+"caso su implementación sería responsable de procesar cualquier petición "
+"<literal>load()</literal> hecha a la <literal>Session</literal>."
 
-#: index.docbook:84
-msgid "The listeners should be considered effectively singletons; meaning, they are shared between requests, and thus should not save any state as instance variables."
+#. Tag: para
+#: events.xml:84
+#, no-c-format
+msgid ""
+"The listeners should be considered effectively singletons; meaning, they are "
+"shared between requests, and thus should not save any state as instance "
+"variables."
 msgstr ""
-      "<![CDATA[public class MyLoadListener extends DefaultLoadEventListener {\n"
-      "    // this is the single method defined by the LoadEventListener interface\n"
-      "    public Object onLoad(LoadEvent event, LoadEventListener.LoadType loadType)\n"
-      "            throws HibernateException {\n"
-      "        if ( !MySecurity.isAuthorized( event.getEntityClassName(), event.getEntityId() ) ) {\n"
-      "            throw MySecurityException(\"Unauthorized access\");\n"
-      "        }\n"
-      "        return super.onLoad(event, loadType);\n"
-      "    }\n"
-      "}]]>"
+"Los oyentes deben ser considerados efectivamente singletons; quiere decir, "
+"que son compartidos entre las peticiones, y por lo tanto no guardan ningún "
+"estado en variables de instancia."
 
-#: index.docbook:89
-msgid "A custom listener should implement the appropriate interface for the event it wants to process and/or extend one of the convenience base classes (or even the default event listeners used by Hibernate out-of-the-box as these are declared non-final for this purpose). Custom listeners can either be registered programmatically through the <literal>Configuration</literal> object, or specified in the Hibernate configuration XML (declarative configuration through the properties file is not supported). Here's an example of a custom load event listener:"
-msgstr "Necesitas adem&#x00e1;s una entrada de configuraci&#x00f3;n dici&#x00e9;ndole a Hibernate que use el oyente en vez del oyente por defecto:"
+#. Tag: para
+#: events.xml:89
+#, no-c-format
+msgid ""
+"A custom listener should implement the appropriate interface for the event "
+"it wants to process and/or extend one of the convenience base classes (or "
+"even the default event listeners used by Hibernate out-of-the-box as these "
+"are declared non-final for this purpose). Custom listeners can either be "
+"registered programmatically through the <literal>Configuration</literal> "
+"object, or specified in the Hibernate configuration XML (declarative "
+"configuration through the properties file is not supported). Here's an "
+"example of a custom load event listener:"
+msgstr ""
+"Un oyente personalizado debe implementar la interface apropiada para el "
+"evento que quiere procesar y/o extender una de las clases base de "
+"conveniencia (o incluso los oyentes de eventos por defecto usados por "
+"Hibernate de fábrica al ser éstos declarados non-final para este propósito). "
+"Los oyentes personalizados pueden ser registrados programáticamente a través "
+"del objeto <literal>Configuration</literal>, o especificados en el XML de "
+"configuración de Hibernate (la declaración declarativa a través del fichero "
+"de propiedades no está soportada). He aquí un ejemplo de un oyente "
+"personalizado de eventos load:"
 
-#: index.docbook:99
+#. Tag: programlisting
+#: events.xml:99
+#, no-c-format
 msgid ""
-      "<![CDATA[public class MyLoadListener implements LoadEventListener {\n"
-      "    // this is the single method defined by the LoadEventListener interface\n"
-      "    public void onLoad(LoadEvent event, LoadEventListener.LoadType loadType)\n"
-      "            throws HibernateException {\n"
-      "        if ( !MySecurity.isAuthorized( event.getEntityClassName(), event.getEntityId() ) ) {\n"
-      "            throw MySecurityException(\"Unauthorized access\");\n"
-      "        }\n"
-      "    }\n"
-      "}]]>"
+"<![CDATA[public class MyLoadListener implements LoadEventListener {\n"
+"    // this is the single method defined by the LoadEventListener interface\n"
+"    public void onLoad(LoadEvent event, LoadEventListener.LoadType "
+"loadType)\n"
+"            throws HibernateException {\n"
+"        if ( !MySecurity.isAuthorized( event.getEntityClassName(), event."
+"getEntityId() ) ) {\n"
+"            throw MySecurityException(\"Unauthorized access\");\n"
+"        }\n"
+"    }\n"
+"}]]>"
 msgstr ""
-      "<![CDATA[<hibernate-configuration>\n"
-      "    <session-factory>\n"
-      "        ...\n"
-      "        <listener type=\"load\" class=\"MyLoadListener\"/>\n"
-      "    </session-factory>\n"
-      "</hibernate-configuration>]]>"
 
-#: index.docbook:101
-msgid "You also need a configuration entry telling Hibernate to use the listener in addition to the default listener:"
-msgstr "En cambio, puedes registrarlo program&#x00e1;ticamente:"
+#. Tag: para
+#: events.xml:101
+#, no-c-format
+msgid ""
+"You also need a configuration entry telling Hibernate to use the listener in "
+"addition to the default listener:"
+msgstr ""
+"Necesitas además una entrada de configuración diciéndole a Hibernate que use "
+"el oyente en vez del oyente por defecto:"
 
-#: index.docbook:106
+#. Tag: programlisting
+#: events.xml:106
+#, no-c-format
 msgid ""
-      "<![CDATA[<hibernate-configuration>\n"
-      "    <session-factory>\n"
-      "        ...\n"
-      "        <event type=\"load\">\n"
-      "            <listener class=\"com.eg.MyLoadListener\"/>\n"
-      "            <listener class=\"org.hibernate.event.def.DefaultLoadEventListener\"/>\n"
-      "        </event>\n"
-      "    </session-factory>\n"
-      "</hibernate-configuration>]]>"
+"<![CDATA[<hibernate-configuration>\n"
+"    <session-factory>\n"
+"        ...\n"
+"        <event type=\"load\">\n"
+"            <listener class=\"com.eg.MyLoadListener\"/>\n"
+"            <listener class=\"org.hibernate.event.def."
+"DefaultLoadEventListener\"/>\n"
+"        </event>\n"
+"    </session-factory>\n"
+"</hibernate-configuration>]]>"
 msgstr ""
-      "<![CDATA[Configuration cfg = new Configuration();\n"
-      "cfg.getSessionEventListenerConfig().setLoadEventListener( new MyLoadListener() );]]>"
 
-#: index.docbook:108
+#. Tag: para
+#: events.xml:108
+#, no-c-format
 msgid "Instead, you may register it programmatically:"
-msgstr "Los oyentes registrados declarativamente no pueden compartir instancias. Si el mismo nombre de clase es usado en m&#x00fa;ltiples elementos <literal>&lt;listener/&gt;</literal>, cada referencia resultar&#x00e1; en una instancia separada de esa clase. Si necesitas la capacidad de compartir instancias de oyentes entre tipos de oyente debes usar el enfoque de registraci&#x00f3;n program&#x00e1;tica."
+msgstr "En cambio, puedes registrarlo programáticamente:"
 
-#: index.docbook:112
+#. Tag: programlisting
+#: events.xml:112
+#, no-c-format
 msgid ""
-      "<![CDATA[Configuration cfg = new Configuration();\n"
-      "LoadEventListener[] stack = { new MyLoadListener(), new DefaultLoadEventListener() };\n"
-      "cfg.EventListeners().setLoadEventListeners(stack);]]>"
-msgstr "&#x00bf;Por qu&#x00e9; implementar una interface y definir el tipo espc&#x00ed;fico durante la configuraci&#x00f3;n? Bueno, una implementaci&#x00f3;n de oyente podr&#x00ed;a implementar m&#x00fa;ltiples interfaces de oyente de eventos. Teniendo el tipo definido adicionalmente durante la registraci&#x00f3;n lo hace m&#x00e1;s f&#x00e1;cil para activar o desactivar oyentes personalizados durante la configuraci&#x00f3;n."
+"<![CDATA[Configuration cfg = new Configuration();\n"
+"LoadEventListener[] stack = { new MyLoadListener(), new "
+"DefaultLoadEventListener() };\n"
+"cfg.EventListeners().setLoadEventListeners(stack);]]>"
+msgstr ""
 
-#: index.docbook:114
-msgid "Listeners registered declaratively cannot share instances. If the same class name is used in multiple <literal>&lt;listener/&gt;</literal> elements, each reference will result in a separate instance of that class. If you need the capability to share listener instances between listener types you must use the programmatic registration approach."
-msgstr "Seguridad declarativa de Hibernate"
+#. Tag: para
+#: events.xml:114
+#, no-c-format
+msgid ""
+"Listeners registered declaratively cannot share instances. If the same class "
+"name is used in multiple <literal>&lt;listener/&gt;</literal> elements, each "
+"reference will result in a separate instance of that class. If you need the "
+"capability to share listener instances between listener types you must use "
+"the programmatic registration approach."
+msgstr ""
+"Los oyentes registrados declarativamente no pueden compartir instancias. Si "
+"el mismo nombre de clase es usado en múltiples elementos <literal>&lt;"
+"listener/&gt;</literal>, cada referencia resultará en una instancia separada "
+"de esa clase. Si necesitas la capacidad de compartir instancias de oyentes "
+"entre tipos de oyente debes usar el enfoque de registración programática."
 
-#: index.docbook:122
-msgid "Why implement an interface and define the specific type during configuration? Well, a listener implementation could implement multiple event listener interfaces. Having the type additionally defined during registration makes it easier to turn custom listeners on or off during configuration."
-msgstr "Usualmente, la seguridad declarativa en aplicaciones Hibernate es manejada en una capa de fachada de sesi&#x00f3;n. Ahora, Hibernate3 permite que ciertas acciones sean permitidas v&#x00ed;a JACC, y autorizadas v&#x00ed;a JAAS. Esta en una funcionalidad opcional constru&#x00ed;da encima de la arquitectura de eventos."
+#. Tag: para
+#: events.xml:122
+#, no-c-format
+msgid ""
+"Why implement an interface and define the specific type during "
+"configuration? Well, a listener implementation could implement multiple "
+"event listener interfaces. Having the type additionally defined during "
+"registration makes it easier to turn custom listeners on or off during "
+"configuration."
+msgstr ""
+"¿Por qué implementar una interface y definir el tipo espcífico durante la "
+"configuración? Bueno, una implementación de oyente podría implementar "
+"múltiples interfaces de oyente de eventos. Teniendo el tipo definido "
+"adicionalmente durante la registración lo hace más fácil para activar o "
+"desactivar oyentes personalizados durante la configuración."
 
-#: index.docbook:132
+#. Tag: title
+#: events.xml:132
+#, no-c-format
 msgid "Hibernate declarative security"
-msgstr "Primero, debes configurar los oyentes de eventos apropiados, para habilitar el uso de autorizaci&#x00f3;n JAAS."
+msgstr "Seguridad declarativa de Hibernate"
 
-#: index.docbook:133
-msgid "Usually, declarative security in Hibernate applications is managed in a session facade layer. Now, Hibernate3 allows certain actions to be permissioned via JACC, and authorized via JAAS. This is optional functionality built on top of the event architecture."
+#. Tag: para
+#: events.xml:133
+#, no-c-format
+msgid ""
+"Usually, declarative security in Hibernate applications is managed in a "
+"session facade layer. Now, Hibernate3 allows certain actions to be "
+"permissioned via JACC, and authorized via JAAS. This is optional "
+"functionality built on top of the event architecture."
 msgstr ""
-      "<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure.JACCPreDeleteEventListener\"/>\n"
-      "<listener type=\"pre-update\" class=\"org.hibernate.secure.JACCPreUpdateEventListener\"/>\n"
-      "<listener type=\"pre-insert\" class=\"org.hibernate.secure.JACCPreInsertEventListener\"/>\n"
-      "<listener type=\"pre-load\" class=\"org.hibernate.secure.JACCPreLoadEventListener\"/>]]>"
+"Usualmente, la seguridad declarativa en aplicaciones Hibernate es manejada "
+"en una capa de fachada de sesión. Ahora, Hibernate3 permite que ciertas "
+"acciones sean permitidas vía JACC, y autorizadas vía JAAS. Esta en una "
+"funcionalidad opcional construída encima de la arquitectura de eventos."
 
-#: index.docbook:139
-msgid "First, you must configure the appropriate event listeners, to enable the use of JAAS authorization."
-msgstr "Seguido, a&#x00fa;n en <literal>hibernate.cfg.xml</literal>, liga los permisos a roles:"
+#. Tag: para
+#: events.xml:139
+#, no-c-format
+msgid ""
+"First, you must configure the appropriate event listeners, to enable the use "
+"of JAAS authorization."
+msgstr ""
+"Primero, debes configurar los oyentes de eventos apropiados, para habilitar "
+"el uso de autorización JAAS."
 
-#: index.docbook:144
+#. Tag: programlisting
+#: events.xml:144
+#, no-c-format
 msgid ""
-      "<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure.JACCPreDeleteEventListener\"/>\n"
-      "<listener type=\"pre-update\" class=\"org.hibernate.secure.JACCPreUpdateEventListener\"/>\n"
-      "<listener type=\"pre-insert\" class=\"org.hibernate.secure.JACCPreInsertEventListener\"/>\n"
-      "<listener type=\"pre-load\" class=\"org.hibernate.secure.JACCPreLoadEventListener\"/>]]>"
+"<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure."
+"JACCPreDeleteEventListener\"/>\n"
+"<listener type=\"pre-update\" class=\"org.hibernate.secure."
+"JACCPreUpdateEventListener\"/>\n"
+"<listener type=\"pre-insert\" class=\"org.hibernate.secure."
+"JACCPreInsertEventListener\"/>\n"
+"<listener type=\"pre-load\" class=\"org.hibernate.secure."
+"JACCPreLoadEventListener\"/>]]>"
 msgstr ""
-      "<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,update,read\"/>\n"
-      "<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
 
-#: index.docbook:146
-msgid "Note that <literal>&lt;listener type=\"...\" class=\"...\"/&gt;</literal> is just a shorthand for <literal>&lt;event type=\"...\"&gt;&lt;listener class=\"...\"/&gt;&lt;/event&gt;</literal> when there is exactly one listener for a particular event type."
-msgstr "Los nombres de role son los roles entendidos por tu proveedor de JACC."
+#. Tag: para
+#: events.xml:146
+#, no-c-format
+msgid ""
+"Note that <literal>&lt;listener type=\"...\" class=\"...\"/&gt;</literal> is "
+"just a shorthand for <literal>&lt;event type=\"...\"&gt;&lt;listener class="
+"\"...\"/&gt;&lt;/event&gt;</literal> when there is exactly one listener for "
+"a particular event type."
+msgstr ""
+"UNTRANSLATED! Note that <literal>&lt;listener type=\"...\" class=\"...\"/&gt;"
+"</literal> is just a shorthand for <literal>&lt;event type=\"...\"&gt;&lt;"
+"listener class=\"...\"/&gt;&lt;/event&gt;</literal> when there is exactly "
+"one listener for a particular event type."
 
-#: index.docbook:152
-msgid "Next, still in <literal>hibernate.cfg.xml</literal>, bind the permissions to roles:"
+#. Tag: para
+#: events.xml:152
+#, no-c-format
+msgid ""
+"Next, still in <literal>hibernate.cfg.xml</literal>, bind the permissions to "
+"roles:"
 msgstr ""
+"Seguido, aún en <literal>hibernate.cfg.xml</literal>, liga los permisos a "
+"roles:"
 
-#: index.docbook:156
+#. Tag: programlisting
+#: events.xml:156
+#, no-c-format
 msgid ""
-      "<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,update,read\"/>\n"
-      "<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
+"<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,update,"
+"read\"/>\n"
+"<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
 msgstr ""
 
-#: index.docbook:158
+#. Tag: para
+#: events.xml:158
+#, no-c-format
 msgid "The role names are the roles understood by your JACC provider."
-msgstr ""
-
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
-
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
-
+msgstr "Los nombres de role son los roles entendidos por tu proveedor de JACC."

Modified: core/trunk/documentation/manual/translations/es-ES/content/example_mappings.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/example_mappings.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/example_mappings.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,1162 +1,796 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:20
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: example_mappings.xml:20
+#, no-c-format
 msgid "Example: Various Mappings"
 msgstr "Ejemplo: Varios Mapeos"
 
-#: index.docbook:22
+#. Tag: para
+#: example_mappings.xml:22
+#, no-c-format
 msgid "This chapters shows off some more complex association mappings."
-msgstr "Este cap&#x00ed;tulo muestra mapeos de asociaciones m&#x00e1;s complejos."
+msgstr "Este capítulo muestra mapeos de asociaciones más complejos."
 
-#: index.docbook:27
+#. Tag: title
+#: example_mappings.xml:27
+#, no-c-format
 msgid "Employer/Employee"
 msgstr "Empleador/Empleado"
 
-#: index.docbook:29
-msgid "The following model of the relationship between <literal>Employer</literal> and <literal>Employee</literal> uses an actual entity class (<literal>Employment</literal>) to represent the association. This is done because there might be more than one period of employment for the same two parties. Components are used to model monetary values and employee names."
-msgstr "El siguiente modelo de la relaci&#x00f3;n entre <literal>Employer</literal> y <literal>Employee</literal> usa una clase de entidad real (<literal>Employment</literal>) para representar la asociaci&#x00f3;n. Esto se ha hecho esto porque podr&#x00ed;a haber m&#x00e1;s de un per&#x00ed;odo de empleo para los mismos dos participantes. Se usan componentes para modelar valores monetarios y nombres de empleado."
+#. Tag: para
+#: example_mappings.xml:29
+#, no-c-format
+msgid ""
+"The following model of the relationship between <literal>Employer</literal> "
+"and <literal>Employee</literal> uses an actual entity class "
+"(<literal>Employment</literal>) to represent the association. This is done "
+"because there might be more than one period of employment for the same two "
+"parties. Components are used to model monetary values and employee names."
+msgstr ""
+"El siguiente modelo de la relación entre <literal>Employer</literal> y "
+"<literal>Employee</literal> usa una clase de entidad real "
+"(<literal>Employment</literal>) para representar la asociación. Esto se ha "
+"hecho esto porque podría haber más de un período de empleo para los mismos "
+"dos participantes. Se usan componentes para modelar valores monetarios y "
+"nombres de empleado."
 
-#: index.docbook:46
+#. Tag: para
+#: example_mappings.xml:46
+#, no-c-format
 msgid "Heres a possible mapping document:"
-msgstr "He aqu&#x00ed; un documento de mapeo posible:"
+msgstr "He aquí un documento de mapeo posible:"
 
-#: index.docbook:50
+#. Tag: programlisting
+#: example_mappings.xml:50
+#, no-c-format
 msgid ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "        \n"
-      "    <class name=\"Employer\" table=\"employers\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\">\n"
-      "                <param name=\"sequence\">employer_id_seq</param>\n"
-      "            </generator>\n"
-      "        </id>\n"
-      "        <property name=\"name\"/>\n"
-      "    </class>\n"
-      "\n"
-      "    <class name=\"Employment\" table=\"employment_periods\">\n"
-      "\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\">\n"
-      "                <param name=\"sequence\">employment_id_seq</param>\n"
-      "            </generator>\n"
-      "        </id>\n"
-      "        <property name=\"startDate\" column=\"start_date\"/>\n"
-      "        <property name=\"endDate\" column=\"end_date\"/>\n"
-      "\n"
-      "        <component name=\"hourlyRate\" class=\"MonetaryAmount\">\n"
-      "            <property name=\"amount\">\n"
-      "                <column name=\"hourly_rate\" sql-type=\"NUMERIC(12, 2)\"/>\n"
-      "            </property>\n"
-      "            <property name=\"currency\" length=\"12\"/>\n"
-      "        </component>\n"
-      "\n"
-      "        <many-to-one name=\"employer\" column=\"employer_id\" not-null=\"true\"/>\n"
-      "        <many-to-one name=\"employee\" column=\"employee_id\" not-null=\"true\"/>\n"
-      "\n"
-      "    </class>\n"
-      "\n"
-      "    <class name=\"Employee\" table=\"employees\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\">\n"
-      "                <param name=\"sequence\">employee_id_seq</param>\n"
-      "            </generator>\n"
-      "        </id>\n"
-      "        <property name=\"taxfileNumber\"/>\n"
-      "        <component name=\"name\" class=\"Name\">\n"
-      "            <property name=\"firstName\"/>\n"
-      "            <property name=\"initial\"/>\n"
-      "            <property name=\"lastName\"/>\n"
-      "        </component>\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
+"<![CDATA[<hibernate-mapping>\n"
+"        \n"
+"    <class name=\"Employer\" table=\"employers\">\n"
+"        <id name=\"id\">\n"
+"            <generator class=\"sequence\">\n"
+"                <param name=\"sequence\">employer_id_seq</param>\n"
+"            </generator>\n"
+"        </id>\n"
+"        <property name=\"name\"/>\n"
+"    </class>\n"
+"\n"
+"    <class name=\"Employment\" table=\"employment_periods\">\n"
+"\n"
+"        <id name=\"id\">\n"
+"            <generator class=\"sequence\">\n"
+"                <param name=\"sequence\">employment_id_seq</param>\n"
+"            </generator>\n"
+"        </id>\n"
+"        <property name=\"startDate\" column=\"start_date\"/>\n"
+"        <property name=\"endDate\" column=\"end_date\"/>\n"
+"\n"
+"        <component name=\"hourlyRate\" class=\"MonetaryAmount\">\n"
+"            <property name=\"amount\">\n"
+"                <column name=\"hourly_rate\" sql-type=\"NUMERIC(12, 2)\"/>\n"
+"            </property>\n"
+"            <property name=\"currency\" length=\"12\"/>\n"
+"        </component>\n"
+"\n"
+"        <many-to-one name=\"employer\" column=\"employer_id\" not-null=\"true"
+"\"/>\n"
+"        <many-to-one name=\"employee\" column=\"employee_id\" not-null=\"true"
+"\"/>\n"
+"\n"
+"    </class>\n"
+"\n"
+"    <class name=\"Employee\" table=\"employees\">\n"
+"        <id name=\"id\">\n"
+"            <generator class=\"sequence\">\n"
+"                <param name=\"sequence\">employee_id_seq</param>\n"
+"            </generator>\n"
+"        </id>\n"
+"        <property name=\"taxfileNumber\"/>\n"
+"        <component name=\"name\" class=\"Name\">\n"
+"            <property name=\"firstName\"/>\n"
+"            <property name=\"initial\"/>\n"
+"            <property name=\"lastName\"/>\n"
+"        </component>\n"
+"    </class>\n"
+"\n"
+"</hibernate-mapping>]]>"
 msgstr ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "        \n"
-      "    <class name=\"Employer\" table=\"employers\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\">\n"
-      "                <param name=\"sequence\">employer_id_seq</param>\n"
-      "            </generator>\n"
-      "        </id>\n"
-      "        <property name=\"name\"/>\n"
-      "    </class>\n"
-      "\n"
-      "    <class name=\"Employment\" table=\"employment_periods\">\n"
-      "\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\">\n"
-      "                <param name=\"sequence\">employment_id_seq</param>\n"
-      "            </generator>\n"
-      "        </id>\n"
-      "        <property name=\"startDate\" column=\"start_date\"/>\n"
-      "        <property name=\"endDate\" column=\"end_date\"/>\n"
-      "\n"
-      "        <component name=\"hourlyRate\" class=\"MonetaryAmount\">\n"
-      "            <property name=\"amount\">\n"
-      "                <column name=\"hourly_rate\" sql-type=\"NUMERIC(12, 2)\"/>\n"
-      "            </property>\n"
-      "            <property name=\"currency\" length=\"12\"/>\n"
-      "        </component>\n"
-      "\n"
-      "        <many-to-one name=\"employer\" column=\"employer_id\" not-null=\"true\"/>\n"
-      "        <many-to-one name=\"employee\" column=\"employee_id\" not-null=\"true\"/>\n"
-      "\n"
-      "    </class>\n"
-      "\n"
-      "    <class name=\"Employee\" table=\"employees\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"sequence\">\n"
-      "                <param name=\"sequence\">employee_id_seq</param>\n"
-      "            </generator>\n"
-      "        </id>\n"
-      "        <property name=\"taxfileNumber\"/>\n"
-      "        <component name=\"name\" class=\"Name\">\n"
-      "            <property name=\"firstName\"/>\n"
-      "            <property name=\"initial\"/>\n"
-      "            <property name=\"lastName\"/>\n"
-      "        </component>\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
 
-#: index.docbook:52
-msgid "And heres the table schema generated by <literal>SchemaExport</literal>."
-msgstr "Y he aqu&#x00ed; el esquema de tablas generado por <literal>SchemaExport</literal>."
+#. Tag: para
+#: example_mappings.xml:52
+#, no-c-format
+msgid ""
+"And heres the table schema generated by <literal>SchemaExport</literal>."
+msgstr ""
+"Y he aquí el esquema de tablas generado por <literal>SchemaExport</literal>."
 
-#: index.docbook:56
+#. Tag: programlisting
+#: example_mappings.xml:56
+#, no-c-format
 msgid ""
-      "<![CDATA[create table employers (\n"
-      "    id BIGINT not null, \n"
-      "    name VARCHAR(255), \n"
-      "    primary key (id)\n"
-      ")\n"
-      "\n"
-      "create table employment_periods (\n"
-      "    id BIGINT not null,\n"
-      "    hourly_rate NUMERIC(12, 2),\n"
-      "    currency VARCHAR(12), \n"
-      "    employee_id BIGINT not null, \n"
-      "    employer_id BIGINT not null, \n"
-      "    end_date TIMESTAMP, \n"
-      "    start_date TIMESTAMP, \n"
-      "    primary key (id)\n"
-      ")\n"
-      "\n"
-      "create table employees (\n"
-      "    id BIGINT not null, \n"
-      "    firstName VARCHAR(255), \n"
-      "    initial CHAR(1), \n"
-      "    lastName VARCHAR(255), \n"
-      "    taxfileNumber VARCHAR(255), \n"
-      "    primary key (id)\n"
-      ")\n"
-      "\n"
-      "alter table employment_periods \n"
-      "    add constraint employment_periodsFK0 foreign key (employer_id) references employers\n"
-      "alter table employment_periods \n"
-      "    add constraint employment_periodsFK1 foreign key (employee_id) references employees\n"
-      "create sequence employee_id_seq\n"
-      "create sequence employment_id_seq\n"
-      "create sequence employer_id_seq]]>"
+"<![CDATA[create table employers (\n"
+"    id BIGINT not null, \n"
+"    name VARCHAR(255), \n"
+"    primary key (id)\n"
+")\n"
+"\n"
+"create table employment_periods (\n"
+"    id BIGINT not null,\n"
+"    hourly_rate NUMERIC(12, 2),\n"
+"    currency VARCHAR(12), \n"
+"    employee_id BIGINT not null, \n"
+"    employer_id BIGINT not null, \n"
+"    end_date TIMESTAMP, \n"
+"    start_date TIMESTAMP, \n"
+"    primary key (id)\n"
+")\n"
+"\n"
+"create table employees (\n"
+"    id BIGINT not null, \n"
+"    firstName VARCHAR(255), \n"
+"    initial CHAR(1), \n"
+"    lastName VARCHAR(255), \n"
+"    taxfileNumber VARCHAR(255), \n"
+"    primary key (id)\n"
+")\n"
+"\n"
+"alter table employment_periods \n"
+"    add constraint employment_periodsFK0 foreign key (employer_id) "
+"references employers\n"
+"alter table employment_periods \n"
+"    add constraint employment_periodsFK1 foreign key (employee_id) "
+"references employees\n"
+"create sequence employee_id_seq\n"
+"create sequence employment_id_seq\n"
+"create sequence employer_id_seq]]>"
 msgstr ""
-      "<![CDATA[create table employers (\n"
-      "    id BIGINT not null, \n"
-      "    name VARCHAR(255), \n"
-      "    primary key (id)\n"
-      ")\n"
-      "\n"
-      "create table employment_periods (\n"
-      "    id BIGINT not null,\n"
-      "    hourly_rate NUMERIC(12, 2),\n"
-      "    currency VARCHAR(12), \n"
-      "    employee_id BIGINT not null, \n"
-      "    employer_id BIGINT not null, \n"
-      "    end_date TIMESTAMP, \n"
-      "    start_date TIMESTAMP, \n"
-      "    primary key (id)\n"
-      ")\n"
-      "\n"
-      "create table employees (\n"
-      "    id BIGINT not null, \n"
-      "    firstName VARCHAR(255), \n"
-      "    initial CHAR(1), \n"
-      "    lastName VARCHAR(255), \n"
-      "    taxfileNumber VARCHAR(255), \n"
-      "    primary key (id)\n"
-      ")\n"
-      "\n"
-      "alter table employment_periods \n"
-      "    add constraint employment_periodsFK0 foreign key (employer_id) references employers\n"
-      "alter table employment_periods \n"
-      "    add constraint employment_periodsFK1 foreign key (employee_id) references employees\n"
-      "create sequence employee_id_seq\n"
-      "create sequence employment_id_seq\n"
-      "create sequence employer_id_seq]]>"
 
-#: index.docbook:61
+#. Tag: title
+#: example_mappings.xml:61
+#, no-c-format
 msgid "Author/Work"
 msgstr "Autor/Obra"
 
-#: index.docbook:63
-msgid "Consider the following model of the relationships between <literal>Work</literal>, <literal>Author</literal> and <literal>Person</literal>. We represent the relationship between <literal>Work</literal> and <literal>Author</literal> as a many-to-many association. We choose to represent the relationship between <literal>Author</literal> and <literal>Person</literal> as one-to-one association. Another possibility would be to have <literal>Author</literal> extend <literal>Person</literal>."
-msgstr "Considera el siguiente modelo de las relaciones entre <literal>Work</literal>, <literal>Author</literal> y <literal>Person</literal>. Representamos la relaci&#x00f3;n entre <literal>Work</literal> y <literal>Author</literal> como una asociaci&#x00f3;n muchos-a-muchos. Elegimos representar la relaci&#x00f3;n entre <literal>Author</literal> y <literal>Person</literal> como una asociaci&#x00f3;n uno-a-uno. Otra posibilidad hubiese sido que <literal>Author</literal> extendiera <literal>Person</literal>."
+#. Tag: para
+#: example_mappings.xml:63
+#, no-c-format
+msgid ""
+"Consider the following model of the relationships between <literal>Work</"
+"literal>, <literal>Author</literal> and <literal>Person</literal>. We "
+"represent the relationship between <literal>Work</literal> and "
+"<literal>Author</literal> as a many-to-many association. We choose to "
+"represent the relationship between <literal>Author</literal> and "
+"<literal>Person</literal> as one-to-one association. Another possibility "
+"would be to have <literal>Author</literal> extend <literal>Person</literal>."
+msgstr ""
+"Considera el siguiente modelo de las relaciones entre <literal>Work</"
+"literal>, <literal>Author</literal> y <literal>Person</literal>. "
+"Representamos la relación entre <literal>Work</literal> y <literal>Author</"
+"literal> como una asociación muchos-a-muchos. Elegimos representar la "
+"relación entre <literal>Author</literal> y <literal>Person</literal> como "
+"una asociación uno-a-uno. Otra posibilidad hubiese sido que <literal>Author</"
+"literal> extendiera <literal>Person</literal>."
 
-#: index.docbook:81
-msgid "The following mapping document correctly represents these relationships:"
-msgstr "El siguiente documento de mapeo representa estas relaciones correctamente:"
+#. Tag: para
+#: example_mappings.xml:81
+#, no-c-format
+msgid ""
+"The following mapping document correctly represents these relationships:"
+msgstr ""
+"El siguiente documento de mapeo representa estas relaciones correctamente:"
 
-#: index.docbook:85
+#. Tag: programlisting
+#: example_mappings.xml:85
+#, no-c-format
 msgid ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "\n"
-      "    <class name=\"Work\" table=\"works\" discriminator-value=\"W\">\n"
-      "\n"
-      "        <id name=\"id\" column=\"id\">\n"
-      "            <generator class=\"native\"/>\n"
-      "        </id>\n"
-      "        <discriminator column=\"type\" type=\"character\"/>\n"
-      "\n"
-      "        <property name=\"title\"/>\n"
-      "        <set name=\"authors\" table=\"author_work\">\n"
-      "            <key column name=\"work_id\"/>\n"
-      "            <many-to-many class=\"Author\" column name=\"author_id\"/>\n"
-      "        </set>\n"
-      "\n"
-      "        <subclass name=\"Book\" discriminator-value=\"B\">\n"
-      "            <property name=\"text\"/>\n"
-      "        </subclass>\n"
-      "\n"
-      "        <subclass name=\"Song\" discriminator-value=\"S\">\n"
-      "            <property name=\"tempo\"/>\n"
-      "            <property name=\"genre\"/>\n"
-      "        </subclass>\n"
-      "\n"
-      "    </class>\n"
-      "\n"
-      "    <class name=\"Author\" table=\"authors\">\n"
-      "\n"
-      "        <id name=\"id\" column=\"id\">\n"
-      "            <!-- The Author must have the same identifier as the Person -->\n"
-      "            <generator class=\"assigned\"/> \n"
-      "        </id>\n"
-      "\n"
-      "        <property name=\"alias\"/>\n"
-      "        <one-to-one name=\"person\" constrained=\"true\"/>\n"
-      "\n"
-      "        <set name=\"works\" table=\"author_work\" inverse=\"true\">\n"
-      "            <key column=\"author_id\"/>\n"
-      "            <many-to-many class=\"Work\" column=\"work_id\"/>\n"
-      "        </set>\n"
-      "\n"
-      "    </class>\n"
-      "\n"
-      "    <class name=\"Person\" table=\"persons\">\n"
-      "        <id name=\"id\" column=\"id\">\n"
-      "            <generator class=\"native\"/>\n"
-      "        </id>\n"
-      "        <property name=\"name\"/>\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
+"<![CDATA[<hibernate-mapping>\n"
+"\n"
+"    <class name=\"Work\" table=\"works\" discriminator-value=\"W\">\n"
+"\n"
+"        <id name=\"id\" column=\"id\">\n"
+"            <generator class=\"native\"/>\n"
+"        </id>\n"
+"        <discriminator column=\"type\" type=\"character\"/>\n"
+"\n"
+"        <property name=\"title\"/>\n"
+"        <set name=\"authors\" table=\"author_work\">\n"
+"            <key column name=\"work_id\"/>\n"
+"            <many-to-many class=\"Author\" column name=\"author_id\"/>\n"
+"        </set>\n"
+"\n"
+"        <subclass name=\"Book\" discriminator-value=\"B\">\n"
+"            <property name=\"text\"/>\n"
+"        </subclass>\n"
+"\n"
+"        <subclass name=\"Song\" discriminator-value=\"S\">\n"
+"            <property name=\"tempo\"/>\n"
+"            <property name=\"genre\"/>\n"
+"        </subclass>\n"
+"\n"
+"    </class>\n"
+"\n"
+"    <class name=\"Author\" table=\"authors\">\n"
+"\n"
+"        <id name=\"id\" column=\"id\">\n"
+"            <!-- The Author must have the same identifier as the Person -->\n"
+"            <generator class=\"assigned\"/> \n"
+"        </id>\n"
+"\n"
+"        <property name=\"alias\"/>\n"
+"        <one-to-one name=\"person\" constrained=\"true\"/>\n"
+"\n"
+"        <set name=\"works\" table=\"author_work\" inverse=\"true\">\n"
+"            <key column=\"author_id\"/>\n"
+"            <many-to-many class=\"Work\" column=\"work_id\"/>\n"
+"        </set>\n"
+"\n"
+"    </class>\n"
+"\n"
+"    <class name=\"Person\" table=\"persons\">\n"
+"        <id name=\"id\" column=\"id\">\n"
+"            <generator class=\"native\"/>\n"
+"        </id>\n"
+"        <property name=\"name\"/>\n"
+"    </class>\n"
+"\n"
+"</hibernate-mapping>]]>"
 msgstr ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "\n"
-      "    <class name=\"Work\" table=\"works\" discriminator-value=\"W\">\n"
-      "\n"
-      "        <id name=\"id\" column=\"id\">\n"
-      "            <generator class=\"native\"/>\n"
-      "        </id>\n"
-      "        <discriminator column=\"type\" type=\"character\"/>\n"
-      "\n"
-      "        <property name=\"title\"/>\n"
-      "        <set name=\"authors\" table=\"author_work\">\n"
-      "            <key column name=\"work_id\"/>\n"
-      "            <many-to-many class=\"Author\" column name=\"author_id\"/>\n"
-      "        </set>\n"
-      "\n"
-      "        <subclass name=\"Book\" discriminator-value=\"B\">\n"
-      "            <property name=\"text\"/>\n"
-      "        </subclass>\n"
-      "\n"
-      "        <subclass name=\"Song\" discriminator-value=\"S\">\n"
-      "            <property name=\"tempo\"/>\n"
-      "            <property name=\"genre\"/>\n"
-      "        </subclass>\n"
-      "\n"
-      "    </class>\n"
-      "\n"
-      "    <class name=\"Author\" table=\"authors\">\n"
-      "\n"
-      "        <id name=\"id\" column=\"id\">\n"
-      "            <!-- The Author must have the same identifier as the Person -->\n"
-      "            <generator class=\"assigned\"/> \n"
-      "        </id>\n"
-      "\n"
-      "        <property name=\"alias\"/>\n"
-      "        <one-to-one name=\"person\" constrained=\"true\"/>\n"
-      "\n"
-      "        <set name=\"works\" table=\"author_work\" inverse=\"true\">\n"
-      "            <key column=\"author_id\"/>\n"
-      "            <many-to-many class=\"Work\" column=\"work_id\"/>\n"
-      "        </set>\n"
-      "\n"
-      "    </class>\n"
-      "\n"
-      "    <class name=\"Person\" table=\"persons\">\n"
-      "        <id name=\"id\" column=\"id\">\n"
-      "            <generator class=\"native\"/>\n"
-      "        </id>\n"
-      "        <property name=\"name\"/>\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
 
-#: index.docbook:87
-msgid "There are four tables in this mapping. <literal>works</literal>, <literal>authors</literal> and <literal>persons</literal> hold work, author and person data respectively. <literal>author_work</literal> is an association table linking authors to works. Heres the table schema, as generated by <literal>SchemaExport</literal>."
-msgstr "Hay cuatro tablas en este mapeo. <literal>works</literal>, <literal>authors</literal> y <literal>persons</literal> tienen los datos de obra, autor y persona respectivamente. <literal>author_work</literal> es una tabla de asociaci&#x00f3;n enlazando autores a obras. He aqu&#x00ed; el esquema de tablas, tal como fue generado por <literal>SchemaExport</literal>."
+#. Tag: para
+#: example_mappings.xml:87
+#, no-c-format
+msgid ""
+"There are four tables in this mapping. <literal>works</literal>, "
+"<literal>authors</literal> and <literal>persons</literal> hold work, author "
+"and person data respectively. <literal>author_work</literal> is an "
+"association table linking authors to works. Heres the table schema, as "
+"generated by <literal>SchemaExport</literal>."
+msgstr ""
+"Hay cuatro tablas en este mapeo. <literal>works</literal>, <literal>authors</"
+"literal> y <literal>persons</literal> tienen los datos de obra, autor y "
+"persona respectivamente. <literal>author_work</literal> es una tabla de "
+"asociación enlazando autores a obras. He aquí el esquema de tablas, tal como "
+"fue generado por <literal>SchemaExport</literal>."
 
-#: index.docbook:95
+#. Tag: programlisting
+#: example_mappings.xml:95
+#, no-c-format
 msgid ""
-      "<![CDATA[create table works (\n"
-      "    id BIGINT not null generated by default as identity, \n"
-      "    tempo FLOAT, \n"
-      "    genre VARCHAR(255), \n"
-      "    text INTEGER, \n"
-      "    title VARCHAR(255), \n"
-      "    type CHAR(1) not null, \n"
-      "    primary key (id)\n"
-      ")\n"
-      "\n"
-      "create table author_work (\n"
-      "    author_id BIGINT not null, \n"
-      "    work_id BIGINT not null, \n"
-      "    primary key (work_id, author_id)\n"
-      ")\n"
-      "\n"
-      "create table authors (\n"
-      "    id BIGINT not null generated by default as identity, \n"
-      "    alias VARCHAR(255), \n"
-      "    primary key (id)\n"
-      ")\n"
-      "\n"
-      "create table persons (\n"
-      "    id BIGINT not null generated by default as identity, \n"
-      "    name VARCHAR(255), \n"
-      "    primary key (id)\n"
-      ")\n"
-      "\n"
-      "alter table authors \n"
-      "    add constraint authorsFK0 foreign key (id) references persons\n"
-      "alter table author_work \n"
-      "    add constraint author_workFK0 foreign key (author_id) references authors\n"
-      "alter table author_work\n"
-      "    add constraint author_workFK1 foreign key (work_id) references works]]>"
+"<![CDATA[create table works (\n"
+"    id BIGINT not null generated by default as identity, \n"
+"    tempo FLOAT, \n"
+"    genre VARCHAR(255), \n"
+"    text INTEGER, \n"
+"    title VARCHAR(255), \n"
+"    type CHAR(1) not null, \n"
+"    primary key (id)\n"
+")\n"
+"\n"
+"create table author_work (\n"
+"    author_id BIGINT not null, \n"
+"    work_id BIGINT not null, \n"
+"    primary key (work_id, author_id)\n"
+")\n"
+"\n"
+"create table authors (\n"
+"    id BIGINT not null generated by default as identity, \n"
+"    alias VARCHAR(255), \n"
+"    primary key (id)\n"
+")\n"
+"\n"
+"create table persons (\n"
+"    id BIGINT not null generated by default as identity, \n"
+"    name VARCHAR(255), \n"
+"    primary key (id)\n"
+")\n"
+"\n"
+"alter table authors \n"
+"    add constraint authorsFK0 foreign key (id) references persons\n"
+"alter table author_work \n"
+"    add constraint author_workFK0 foreign key (author_id) references "
+"authors\n"
+"alter table author_work\n"
+"    add constraint author_workFK1 foreign key (work_id) references works]]>"
 msgstr ""
-      "<![CDATA[create table works (\n"
-      "    id BIGINT not null generated by default as identity, \n"
-      "    tempo FLOAT, \n"
-      "    genre VARCHAR(255), \n"
-      "    text INTEGER, \n"
-      "    title VARCHAR(255), \n"
-      "    type CHAR(1) not null, \n"
-      "    primary key (id)\n"
-      ")\n"
-      "\n"
-      "create table author_work (\n"
-      "    author_id BIGINT not null, \n"
-      "    work_id BIGINT not null, \n"
-      "    primary key (work_id, author_id)\n"
-      ")\n"
-      "\n"
-      "create table authors (\n"
-      "    id BIGINT not null generated by default as identity, \n"
-      "    alias VARCHAR(255), \n"
-      "    primary key (id)\n"
-      ")\n"
-      "\n"
-      "create table persons (\n"
-      "    id BIGINT not null generated by default as identity, \n"
-      "    name VARCHAR(255), \n"
-      "    primary key (id)\n"
-      ")\n"
-      "\n"
-      "alter table authors \n"
-      "    add constraint authorsFK0 foreign key (id) references persons\n"
-      "alter table author_work \n"
-      "    add constraint author_workFK0 foreign key (author_id) references authors\n"
-      "alter table author_work\n"
-      "    add constraint author_workFK1 foreign key (work_id) references works]]>"
 
-#: index.docbook:100
+#. Tag: title
+#: example_mappings.xml:100
+#, no-c-format
 msgid "Customer/Order/Product"
 msgstr "Cliente/Orden/Producto"
 
-#: index.docbook:102
-msgid "Now consider a model of the relationships between <literal>Customer</literal>, <literal>Order</literal> and <literal>LineItem</literal> and <literal>Product</literal>. There is a one-to-many association between <literal>Customer</literal> and <literal>Order</literal>, but how should we represent <literal>Order</literal> / <literal>LineItem</literal> / <literal>Product</literal>? I've chosen to map <literal>LineItem</literal> as an association class representing the many-to-many association between <literal>Order</literal> and <literal>Product</literal>. In Hibernate, this is called a composite element."
-msgstr "Ahora considera un modelo de las relaciones entre <literal>Customer</literal>, <literal>Order</literal> y <literal>LineItem</literal> y <literal>Product</literal>. Hay una asociaci&#x00f3;n uno-a-muchos entre <literal>Customer</literal> y <literal>Order</literal>, pero, &#x00bf;c&#x00f3;mo deber&#x00ed;amos representar <literal>Order</literal> / <literal>LineItem</literal> / <literal>Product</literal>? He elegido mapear <literal>LineItem</literal> como una clase de asociaci&#x00f3;n representando la asociaci&#x00f3;n muchos-a-muchos entre <literal>Order</literal> y <literal>Product</literal>. En Hibernate, esto se llama un elemento compuesto."
+#. Tag: para
+#: example_mappings.xml:102
+#, no-c-format
+msgid ""
+"Now consider a model of the relationships between <literal>Customer</"
+"literal>, <literal>Order</literal> and <literal>LineItem</literal> and "
+"<literal>Product</literal>. There is a one-to-many association between "
+"<literal>Customer</literal> and <literal>Order</literal>, but how should we "
+"represent <literal>Order</literal> / <literal>LineItem</literal> / "
+"<literal>Product</literal>? I've chosen to map <literal>LineItem</literal> "
+"as an association class representing the many-to-many association between "
+"<literal>Order</literal> and <literal>Product</literal>. In Hibernate, this "
+"is called a composite element."
+msgstr ""
+"Ahora considera un modelo de las relaciones entre <literal>Customer</"
+"literal>, <literal>Order</literal> y <literal>LineItem</literal> y "
+"<literal>Product</literal>. Hay una asociación uno-a-muchos entre "
+"<literal>Customer</literal> y <literal>Order</literal>, pero, ¿cómo "
+"deberíamos representar <literal>Order</literal> / <literal>LineItem</"
+"literal> / <literal>Product</literal>? He elegido mapear <literal>LineItem</"
+"literal> como una clase de asociación representando la asociación muchos-a-"
+"muchos entre <literal>Order</literal> y <literal>Product</literal>. En "
+"Hibernate, esto se llama un elemento compuesto."
 
-#: index.docbook:122
+#. Tag: para
+#: example_mappings.xml:122
+#, no-c-format
 msgid "The mapping document:"
 msgstr "El documento de mapeo:"
 
-#: index.docbook:126
+#. Tag: programlisting
+#: example_mappings.xml:126
+#, no-c-format
 msgid ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "\n"
-      "    <class name=\"Customer\" table=\"customers\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"native\"/>\n"
-      "        </id>\n"
-      "        <property name=\"name\"/>\n"
-      "        <set name=\"orders\" inverse=\"true\">\n"
-      "            <key column=\"customer_id\"/>\n"
-      "            <one-to-many class=\"Order\"/>\n"
-      "        </set>\n"
-      "    </class>\n"
-      "\n"
-      "    <class name=\"Order\" table=\"orders\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"native\"/>\n"
-      "        </id>\n"
-      "        <property name=\"date\"/>\n"
-      "        <many-to-one name=\"customer\" column=\"customer_id\"/>\n"
-      "        <list name=\"lineItems\" table=\"line_items\">\n"
-      "            <key column=\"order_id\"/>\n"
-      "            <list-index column=\"line_number\"/>\n"
-      "            <composite-element class=\"LineItem\">\n"
-      "                <property name=\"quantity\"/>\n"
-      "                <many-to-one name=\"product\" column=\"product_id\"/>\n"
-      "            </composite-element>\n"
-      "        </list>\n"
-      "    </class>\n"
-      "\n"
-      "    <class name=\"Product\" table=\"products\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"native\"/>\n"
-      "        </id>\n"
-      "        <property name=\"serialNumber\"/>\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
+"<![CDATA[<hibernate-mapping>\n"
+"\n"
+"    <class name=\"Customer\" table=\"customers\">\n"
+"        <id name=\"id\">\n"
+"            <generator class=\"native\"/>\n"
+"        </id>\n"
+"        <property name=\"name\"/>\n"
+"        <set name=\"orders\" inverse=\"true\">\n"
+"            <key column=\"customer_id\"/>\n"
+"            <one-to-many class=\"Order\"/>\n"
+"        </set>\n"
+"    </class>\n"
+"\n"
+"    <class name=\"Order\" table=\"orders\">\n"
+"        <id name=\"id\">\n"
+"            <generator class=\"native\"/>\n"
+"        </id>\n"
+"        <property name=\"date\"/>\n"
+"        <many-to-one name=\"customer\" column=\"customer_id\"/>\n"
+"        <list name=\"lineItems\" table=\"line_items\">\n"
+"            <key column=\"order_id\"/>\n"
+"            <list-index column=\"line_number\"/>\n"
+"            <composite-element class=\"LineItem\">\n"
+"                <property name=\"quantity\"/>\n"
+"                <many-to-one name=\"product\" column=\"product_id\"/>\n"
+"            </composite-element>\n"
+"        </list>\n"
+"    </class>\n"
+"\n"
+"    <class name=\"Product\" table=\"products\">\n"
+"        <id name=\"id\">\n"
+"            <generator class=\"native\"/>\n"
+"        </id>\n"
+"        <property name=\"serialNumber\"/>\n"
+"    </class>\n"
+"\n"
+"</hibernate-mapping>]]>"
 msgstr ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "\n"
-      "    <class name=\"Customer\" table=\"customers\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"native\"/>\n"
-      "        </id>\n"
-      "        <property name=\"name\"/>\n"
-      "        <set name=\"orders\" inverse=\"true\">\n"
-      "            <key column=\"customer_id\"/>\n"
-      "            <one-to-many class=\"Order\"/>\n"
-      "        </set>\n"
-      "    </class>\n"
-      "\n"
-      "    <class name=\"Order\" table=\"orders\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"native\"/>\n"
-      "        </id>\n"
-      "        <property name=\"date\"/>\n"
-      "        <many-to-one name=\"customer\" column=\"customer_id\"/>\n"
-      "        <list name=\"lineItems\" table=\"line_items\">\n"
-      "            <key column=\"order_id\"/>\n"
-      "            <list-index column=\"line_number\"/>\n"
-      "            <composite-element class=\"LineItem\">\n"
-      "                <property name=\"quantity\"/>\n"
-      "                <many-to-one name=\"product\" column=\"product_id\"/>\n"
-      "            </composite-element>\n"
-      "        </list>\n"
-      "    </class>\n"
-      "\n"
-      "    <class name=\"Product\" table=\"products\">\n"
-      "        <id name=\"id\">\n"
-      "            <generator class=\"native\"/>\n"
-      "        </id>\n"
-      "        <property name=\"serialNumber\"/>\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
 
-#: index.docbook:128
-msgid "<literal>customers</literal>, <literal>orders</literal>, <literal>line_items</literal> and <literal>products</literal> hold customer, order, order line item and product data respectively. <literal>line_items</literal> also acts as an association table linking orders with products."
-msgstr "<literal>customers</literal>, <literal>orders</literal>, <literal>line_items</literal> y <literal>products</literal> tienen los datos de cliente, orden, &#x00ed;tem de l&#x00ed;nea de orden y producto respectivamente. Adem&#x00e1;s <literal>line_items</literal> act&#x00fa;a como una tabla de asociaci&#x00f3;n enlazando &#x00f3;rdenes con productos."
+#. Tag: para
+#: example_mappings.xml:128
+#, no-c-format
+msgid ""
+"<literal>customers</literal>, <literal>orders</literal>, "
+"<literal>line_items</literal> and <literal>products</literal> hold customer, "
+"order, order line item and product data respectively. <literal>line_items</"
+"literal> also acts as an association table linking orders with products."
+msgstr ""
+"<literal>customers</literal>, <literal>orders</literal>, "
+"<literal>line_items</literal> y <literal>products</literal> tienen los datos "
+"de cliente, orden, ítem de línea de orden y producto respectivamente. Además "
+"<literal>line_items</literal> actúa como una tabla de asociación enlazando "
+"órdenes con productos."
 
-#: index.docbook:135
+#. Tag: programlisting
+#: example_mappings.xml:135
+#, no-c-format
 msgid ""
-      "<![CDATA[create table customers (\n"
-      "    id BIGINT not null generated by default as identity, \n"
-      "    name VARCHAR(255), \n"
-      "    primary key (id)\n"
-      ")\n"
-      "\n"
-      "create table orders (\n"
-      "    id BIGINT not null generated by default as identity, \n"
-      "    customer_id BIGINT, \n"
-      "    date TIMESTAMP, \n"
-      "    primary key (id)\n"
-      ")\n"
-      "\n"
-      "create table line_items (\n"
-      "    line_number INTEGER not null, \n"
-      "    order_id BIGINT not null, \n"
-      "    product_id BIGINT, \n"
-      "    quantity INTEGER, \n"
-      "    primary key (order_id, line_number)\n"
-      ")\n"
-      "\n"
-      "create table products (\n"
-      "    id BIGINT not null generated by default as identity, \n"
-      "    serialNumber VARCHAR(255), \n"
-      "    primary key (id)\n"
-      ")\n"
-      "\n"
-      "alter table orders \n"
-      "    add constraint ordersFK0 foreign key (customer_id) references customers\n"
-      "alter table line_items\n"
-      "    add constraint line_itemsFK0 foreign key (product_id) references products\n"
-      "alter table line_items\n"
-      "    add constraint line_itemsFK1 foreign key (order_id) references orders]]>"
+"<![CDATA[create table customers (\n"
+"    id BIGINT not null generated by default as identity, \n"
+"    name VARCHAR(255), \n"
+"    primary key (id)\n"
+")\n"
+"\n"
+"create table orders (\n"
+"    id BIGINT not null generated by default as identity, \n"
+"    customer_id BIGINT, \n"
+"    date TIMESTAMP, \n"
+"    primary key (id)\n"
+")\n"
+"\n"
+"create table line_items (\n"
+"    line_number INTEGER not null, \n"
+"    order_id BIGINT not null, \n"
+"    product_id BIGINT, \n"
+"    quantity INTEGER, \n"
+"    primary key (order_id, line_number)\n"
+")\n"
+"\n"
+"create table products (\n"
+"    id BIGINT not null generated by default as identity, \n"
+"    serialNumber VARCHAR(255), \n"
+"    primary key (id)\n"
+")\n"
+"\n"
+"alter table orders \n"
+"    add constraint ordersFK0 foreign key (customer_id) references customers\n"
+"alter table line_items\n"
+"    add constraint line_itemsFK0 foreign key (product_id) references "
+"products\n"
+"alter table line_items\n"
+"    add constraint line_itemsFK1 foreign key (order_id) references orders]]>"
 msgstr ""
-      "<![CDATA[create table customers (\n"
-      "    id BIGINT not null generated by default as identity, \n"
-      "    name VARCHAR(255), \n"
-      "    primary key (id)\n"
-      ")\n"
-      "\n"
-      "create table orders (\n"
-      "    id BIGINT not null generated by default as identity, \n"
-      "    customer_id BIGINT, \n"
-      "    date TIMESTAMP, \n"
-      "    primary key (id)\n"
-      ")\n"
-      "\n"
-      "create table line_items (\n"
-      "    line_number INTEGER not null, \n"
-      "    order_id BIGINT not null, \n"
-      "    product_id BIGINT, \n"
-      "    quantity INTEGER, \n"
-      "    primary key (order_id, line_number)\n"
-      ")\n"
-      "\n"
-      "create table products (\n"
-      "    id BIGINT not null generated by default as identity, \n"
-      "    serialNumber VARCHAR(255), \n"
-      "    primary key (id)\n"
-      ")\n"
-      "\n"
-      "alter table orders \n"
-      "    add constraint ordersFK0 foreign key (customer_id) references customers\n"
-      "alter table line_items\n"
-      "    add constraint line_itemsFK0 foreign key (product_id) references products\n"
-      "alter table line_items\n"
-      "    add constraint line_itemsFK1 foreign key (order_id) references orders]]>"
 
-#: index.docbook:140
+#. Tag: title
+#: example_mappings.xml:140
+#, no-c-format
 msgid "Miscellaneous example mappings"
-msgstr "Mapeos miscel&#x00e1;neos de ejemplo"
+msgstr "Mapeos misceláneos de ejemplo"
 
-#: index.docbook:142
-msgid "These examples are all taken from the Hibernate test suite. You will find many other useful example mappings there. Look in the <literal>test</literal> folder of the Hibernate distribution."
-msgstr "Todos estos ejemplos est&#x00e1;n tomados de la bater&#x00ed;a de pruebas de Hibernate. Encontrar&#x00e1;s muchos otros mapeos de ejemplo &#x00fa;tiles all&#x00ed;. Mira en la carpeta <literal>test</literal> de la distribuci&#x00f3;n de Hibernate."
+#. Tag: para
+#: example_mappings.xml:142
+#, no-c-format
+msgid ""
+"These examples are all taken from the Hibernate test suite. You will find "
+"many other useful example mappings there. Look in the <literal>test</"
+"literal> folder of the Hibernate distribution."
+msgstr ""
+"Todos estos ejemplos están tomados de la batería de pruebas de Hibernate. "
+"Encontrarás muchos otros mapeos de ejemplo útiles allí. Mira en la carpeta "
+"<literal>test</literal> de la distribución de Hibernate."
 
-#: index.docbook:148
+#. Tag: para
+#: example_mappings.xml:148
+#, no-c-format
 msgid "TODO: put words around this stuff"
 msgstr "POR HACER: poner palabras alrededor de este material"
 
-#: index.docbook:151
+#. Tag: title
+#: example_mappings.xml:151
+#, no-c-format
 msgid "\"Typed\" one-to-one association"
-msgstr "Asociaci&#x00f3;n uno-a-uno \"Tipificada\""
+msgstr "Asociación uno-a-uno \"Tipificada\""
 
-#: index.docbook:152
+#. Tag: programlisting
+#: example_mappings.xml:152
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"name\"/>\n"
-      "    <one-to-one name=\"address\" \n"
-      "            cascade=\"all\">\n"
-      "        <formula>name</formula>\n"
-      "        <formula>'HOME'</formula>\n"
-      "    </one-to-one>\n"
-      "    <one-to-one name=\"mailingAddress\" \n"
-      "            cascade=\"all\">\n"
-      "        <formula>name</formula>\n"
-      "        <formula>'MAILING'</formula>\n"
-      "    </one-to-one>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\" batch-size=\"2\" \n"
-      "        check=\"addressType in ('MAILING', 'HOME', 'BUSINESS')\">\n"
-      "    <composite-id>\n"
-      "        <key-many-to-one name=\"person\" \n"
-      "                column=\"personName\"/>\n"
-      "        <key-property name=\"type\" \n"
-      "                column=\"addressType\"/>\n"
-      "    </composite-id>\n"
-      "    <property name=\"street\" type=\"text\"/>\n"
-      "    <property name=\"state\"/>\n"
-      "    <property name=\"zip\"/>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Person\">\n"
+"    <id name=\"name\"/>\n"
+"    <one-to-one name=\"address\" \n"
+"            cascade=\"all\">\n"
+"        <formula>name</formula>\n"
+"        <formula>'HOME'</formula>\n"
+"    </one-to-one>\n"
+"    <one-to-one name=\"mailingAddress\" \n"
+"            cascade=\"all\">\n"
+"        <formula>name</formula>\n"
+"        <formula>'MAILING'</formula>\n"
+"    </one-to-one>\n"
+"</class>\n"
+"\n"
+"<class name=\"Address\" batch-size=\"2\" \n"
+"        check=\"addressType in ('MAILING', 'HOME', 'BUSINESS')\">\n"
+"    <composite-id>\n"
+"        <key-many-to-one name=\"person\" \n"
+"                column=\"personName\"/>\n"
+"        <key-property name=\"type\" \n"
+"                column=\"addressType\"/>\n"
+"    </composite-id>\n"
+"    <property name=\"street\" type=\"text\"/>\n"
+"    <property name=\"state\"/>\n"
+"    <property name=\"zip\"/>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"name\"/>\n"
-      "    <one-to-one name=\"address\" \n"
-      "            cascade=\"all\">\n"
-      "        <formula>name</formula>\n"
-      "        <formula>'HOME'</formula>\n"
-      "    </one-to-one>\n"
-      "    <one-to-one name=\"mailingAddress\" \n"
-      "            cascade=\"all\">\n"
-      "        <formula>name</formula>\n"
-      "        <formula>'MAILING'</formula>\n"
-      "    </one-to-one>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\" batch-size=\"2\" \n"
-      "        check=\"addressType in ('MAILING', 'HOME', 'BUSINESS')\">\n"
-      "    <composite-id>\n"
-      "        <key-many-to-one name=\"person\" \n"
-      "                column=\"personName\"/>\n"
-      "        <key-property name=\"type\" \n"
-      "                column=\"addressType\"/>\n"
-      "    </composite-id>\n"
-      "    <property name=\"street\" type=\"text\"/>\n"
-      "    <property name=\"state\"/>\n"
-      "    <property name=\"zip\"/>\n"
-      "</class>]]>"
 
-#: index.docbook:156
+#. Tag: title
+#: example_mappings.xml:156
+#, no-c-format
 msgid "Composite key example"
 msgstr "Ejemplo de clave compuesta"
 
-#: index.docbook:157
+#. Tag: programlisting
+#: example_mappings.xml:157
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Customer\">\n"
-      "\n"
-      "    <id name=\"customerId\"\n"
-      "        length=\"10\">\n"
-      "        <generator class=\"assigned\"/>\n"
-      "    </id>\n"
-      "\n"
-      "    <property name=\"name\" not-null=\"true\" length=\"100\"/>\n"
-      "    <property name=\"address\" not-null=\"true\" length=\"200\"/>\n"
-      "\n"
-      "    <list name=\"orders\"\n"
-      "            inverse=\"true\"\n"
-      "            cascade=\"save-update\">\n"
-      "        <key column=\"customerId\"/>\n"
-      "        <index column=\"orderNumber\"/>\n"
-      "        <one-to-many class=\"Order\"/>\n"
-      "    </list>\n"
-      "\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Order\" table=\"CustomerOrder\" lazy=\"true\">\n"
-      "    <synchronize table=\"LineItem\"/>\n"
-      "    <synchronize table=\"Product\"/>\n"
-      "    \n"
-      "    <composite-id name=\"id\" \n"
-      "            class=\"Order$Id\">\n"
-      "        <key-property name=\"customerId\" length=\"10\"/>\n"
-      "        <key-property name=\"orderNumber\"/>\n"
-      "    </composite-id>\n"
-      "    \n"
-      "    <property name=\"orderDate\" \n"
-      "            type=\"calendar_date\"\n"
-      "            not-null=\"true\"/>\n"
-      "    \n"
-      "    <property name=\"total\">\n"
-      "        <formula>\n"
-      "            ( select sum(li.quantity*p.price) \n"
-      "            from LineItem li, Product p \n"
-      "            where li.productId = p.productId \n"
-      "                and li.customerId = customerId \n"
-      "                and li.orderNumber = orderNumber )\n"
-      "        </formula>\n"
-      "    </property>\n"
-      "    \n"
-      "    <many-to-one name=\"customer\"\n"
-      "            column=\"customerId\"\n"
-      "            insert=\"false\"\n"
-      "            update=\"false\" \n"
-      "            not-null=\"true\"/>\n"
-      "        \n"
-      "    <bag name=\"lineItems\"\n"
-      "            fetch=\"join\" \n"
-      "            inverse=\"true\"\n"
-      "            cascade=\"save-update\">\n"
-      "        <key>\n"
-      "            <column name=\"customerId\"/>\n"
-      "            <column name=\"orderNumber\"/>\n"
-      "        </key>\n"
-      "        <one-to-many class=\"LineItem\"/>\n"
-      "    </bag>\n"
-      "    \n"
-      "</class>\n"
-      "    \n"
-      "<class name=\"LineItem\">\n"
-      "    \n"
-      "    <composite-id name=\"id\" \n"
-      "            class=\"LineItem$Id\">\n"
-      "        <key-property name=\"customerId\" length=\"10\"/>\n"
-      "        <key-property name=\"orderNumber\"/>\n"
-      "        <key-property name=\"productId\" length=\"10\"/>\n"
-      "    </composite-id>\n"
-      "    \n"
-      "    <property name=\"quantity\"/>\n"
-      "    \n"
-      "    <many-to-one name=\"order\"\n"
-      "            insert=\"false\"\n"
-      "            update=\"false\" \n"
-      "            not-null=\"true\">\n"
-      "        <column name=\"customerId\"/>\n"
-      "        <column name=\"orderNumber\"/>\n"
-      "    </many-to-one>\n"
-      "    \n"
-      "    <many-to-one name=\"product\"\n"
-      "            insert=\"false\"\n"
-      "            update=\"false\" \n"
-      "            not-null=\"true\"\n"
-      "            column=\"productId\"/>\n"
-      "        \n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Product\">\n"
-      "    <synchronize table=\"LineItem\"/>\n"
-      "\n"
-      "    <id name=\"productId\"\n"
-      "        length=\"10\">\n"
-      "        <generator class=\"assigned\"/>\n"
-      "    </id>\n"
-      "    \n"
-      "    <property name=\"description\" \n"
-      "        not-null=\"true\" \n"
-      "        length=\"200\"/>\n"
-      "    <property name=\"price\" length=\"3\"/>\n"
-      "    <property name=\"numberAvailable\"/>\n"
-      "    \n"
-      "    <property name=\"numberOrdered\">\n"
-      "        <formula>\n"
-      "            ( select sum(li.quantity) \n"
-      "            from LineItem li \n"
-      "            where li.productId = productId )\n"
-      "        </formula>\n"
-      "    </property>\n"
-      "    \n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Customer\">\n"
+"\n"
+"    <id name=\"customerId\"\n"
+"        length=\"10\">\n"
+"        <generator class=\"assigned\"/>\n"
+"    </id>\n"
+"\n"
+"    <property name=\"name\" not-null=\"true\" length=\"100\"/>\n"
+"    <property name=\"address\" not-null=\"true\" length=\"200\"/>\n"
+"\n"
+"    <list name=\"orders\"\n"
+"            inverse=\"true\"\n"
+"            cascade=\"save-update\">\n"
+"        <key column=\"customerId\"/>\n"
+"        <index column=\"orderNumber\"/>\n"
+"        <one-to-many class=\"Order\"/>\n"
+"    </list>\n"
+"\n"
+"</class>\n"
+"\n"
+"<class name=\"Order\" table=\"CustomerOrder\" lazy=\"true\">\n"
+"    <synchronize table=\"LineItem\"/>\n"
+"    <synchronize table=\"Product\"/>\n"
+"    \n"
+"    <composite-id name=\"id\" \n"
+"            class=\"Order$Id\">\n"
+"        <key-property name=\"customerId\" length=\"10\"/>\n"
+"        <key-property name=\"orderNumber\"/>\n"
+"    </composite-id>\n"
+"    \n"
+"    <property name=\"orderDate\" \n"
+"            type=\"calendar_date\"\n"
+"            not-null=\"true\"/>\n"
+"    \n"
+"    <property name=\"total\">\n"
+"        <formula>\n"
+"            ( select sum(li.quantity*p.price) \n"
+"            from LineItem li, Product p \n"
+"            where li.productId = p.productId \n"
+"                and li.customerId = customerId \n"
+"                and li.orderNumber = orderNumber )\n"
+"        </formula>\n"
+"    </property>\n"
+"    \n"
+"    <many-to-one name=\"customer\"\n"
+"            column=\"customerId\"\n"
+"            insert=\"false\"\n"
+"            update=\"false\" \n"
+"            not-null=\"true\"/>\n"
+"        \n"
+"    <bag name=\"lineItems\"\n"
+"            fetch=\"join\" \n"
+"            inverse=\"true\"\n"
+"            cascade=\"save-update\">\n"
+"        <key>\n"
+"            <column name=\"customerId\"/>\n"
+"            <column name=\"orderNumber\"/>\n"
+"        </key>\n"
+"        <one-to-many class=\"LineItem\"/>\n"
+"    </bag>\n"
+"    \n"
+"</class>\n"
+"    \n"
+"<class name=\"LineItem\">\n"
+"    \n"
+"    <composite-id name=\"id\" \n"
+"            class=\"LineItem$Id\">\n"
+"        <key-property name=\"customerId\" length=\"10\"/>\n"
+"        <key-property name=\"orderNumber\"/>\n"
+"        <key-property name=\"productId\" length=\"10\"/>\n"
+"    </composite-id>\n"
+"    \n"
+"    <property name=\"quantity\"/>\n"
+"    \n"
+"    <many-to-one name=\"order\"\n"
+"            insert=\"false\"\n"
+"            update=\"false\" \n"
+"            not-null=\"true\">\n"
+"        <column name=\"customerId\"/>\n"
+"        <column name=\"orderNumber\"/>\n"
+"    </many-to-one>\n"
+"    \n"
+"    <many-to-one name=\"product\"\n"
+"            insert=\"false\"\n"
+"            update=\"false\" \n"
+"            not-null=\"true\"\n"
+"            column=\"productId\"/>\n"
+"        \n"
+"</class>\n"
+"\n"
+"<class name=\"Product\">\n"
+"    <synchronize table=\"LineItem\"/>\n"
+"\n"
+"    <id name=\"productId\"\n"
+"        length=\"10\">\n"
+"        <generator class=\"assigned\"/>\n"
+"    </id>\n"
+"    \n"
+"    <property name=\"description\" \n"
+"        not-null=\"true\" \n"
+"        length=\"200\"/>\n"
+"    <property name=\"price\" length=\"3\"/>\n"
+"    <property name=\"numberAvailable\"/>\n"
+"    \n"
+"    <property name=\"numberOrdered\">\n"
+"        <formula>\n"
+"            ( select sum(li.quantity) \n"
+"            from LineItem li \n"
+"            where li.productId = productId )\n"
+"        </formula>\n"
+"    </property>\n"
+"    \n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"Customer\">\n"
-      "\n"
-      "    <id name=\"customerId\"\n"
-      "        length=\"10\">\n"
-      "        <generator class=\"assigned\"/>\n"
-      "    </id>\n"
-      "\n"
-      "    <property name=\"name\" not-null=\"true\" length=\"100\"/>\n"
-      "    <property name=\"address\" not-null=\"true\" length=\"200\"/>\n"
-      "\n"
-      "    <list name=\"orders\"\n"
-      "            inverse=\"true\"\n"
-      "            cascade=\"save-update\">\n"
-      "        <key column=\"customerId\"/>\n"
-      "        <index column=\"orderNumber\"/>\n"
-      "        <one-to-many class=\"Order\"/>\n"
-      "    </list>\n"
-      "\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Order\" table=\"CustomerOrder\" lazy=\"true\">\n"
-      "    <synchronize table=\"LineItem\"/>\n"
-      "    <synchronize table=\"Product\"/>\n"
-      "    \n"
-      "    <composite-id name=\"id\" \n"
-      "            class=\"Order$Id\">\n"
-      "        <key-property name=\"customerId\" length=\"10\"/>\n"
-      "        <key-property name=\"orderNumber\"/>\n"
-      "    </composite-id>\n"
-      "    \n"
-      "    <property name=\"orderDate\" \n"
-      "            type=\"calendar_date\"\n"
-      "            not-null=\"true\"/>\n"
-      "    \n"
-      "    <property name=\"total\">\n"
-      "        <formula>\n"
-      "            ( select sum(li.quantity*p.price) \n"
-      "            from LineItem li, Product p \n"
-      "            where li.productId = p.productId \n"
-      "                and li.customerId = customerId \n"
-      "                and li.orderNumber = orderNumber )\n"
-      "        </formula>\n"
-      "    </property>\n"
-      "    \n"
-      "    <many-to-one name=\"customer\"\n"
-      "            column=\"customerId\"\n"
-      "            insert=\"false\"\n"
-      "            update=\"false\" \n"
-      "            not-null=\"true\"/>\n"
-      "        \n"
-      "    <bag name=\"lineItems\"\n"
-      "            fetch=\"join\" \n"
-      "            inverse=\"true\"\n"
-      "            cascade=\"save-update\">\n"
-      "        <key>\n"
-      "            <column name=\"customerId\"/>\n"
-      "            <column name=\"orderNumber\"/>\n"
-      "        </key>\n"
-      "        <one-to-many class=\"LineItem\"/>\n"
-      "    </bag>\n"
-      "    \n"
-      "</class>\n"
-      "    \n"
-      "<class name=\"LineItem\">\n"
-      "    \n"
-      "    <composite-id name=\"id\" \n"
-      "            class=\"LineItem$Id\">\n"
-      "        <key-property name=\"customerId\" length=\"10\"/>\n"
-      "        <key-property name=\"orderNumber\"/>\n"
-      "        <key-property name=\"productId\" length=\"10\"/>\n"
-      "    </composite-id>\n"
-      "    \n"
-      "    <property name=\"quantity\"/>\n"
-      "    \n"
-      "    <many-to-one name=\"order\"\n"
-      "            insert=\"false\"\n"
-      "            update=\"false\" \n"
-      "            not-null=\"true\">\n"
-      "        <column name=\"customerId\"/>\n"
-      "        <column name=\"orderNumber\"/>\n"
-      "    </many-to-one>\n"
-      "    \n"
-      "    <many-to-one name=\"product\"\n"
-      "            insert=\"false\"\n"
-      "            update=\"false\" \n"
-      "            not-null=\"true\"\n"
-      "            column=\"productId\"/>\n"
-      "        \n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Product\">\n"
-      "    <synchronize table=\"LineItem\"/>\n"
-      "\n"
-      "    <id name=\"productId\"\n"
-      "        length=\"10\">\n"
-      "        <generator class=\"assigned\"/>\n"
-      "    </id>\n"
-      "    \n"
-      "    <property name=\"description\" \n"
-      "        not-null=\"true\" \n"
-      "        length=\"200\"/>\n"
-      "    <property name=\"price\" length=\"3\"/>\n"
-      "    <property name=\"numberAvailable\"/>\n"
-      "    \n"
-      "    <property name=\"numberOrdered\">\n"
-      "        <formula>\n"
-      "            ( select sum(li.quantity) \n"
-      "            from LineItem li \n"
-      "            where li.productId = productId )\n"
-      "        </formula>\n"
-      "    </property>\n"
-      "    \n"
-      "</class>]]>"
 
-#: index.docbook:161
+#. Tag: title
+#: example_mappings.xml:161
+#, no-c-format
 msgid "Many-to-many with shared composite key attribute"
 msgstr "Muchos-a-muchos con atributo de clave compuesta compartido"
 
-#: index.docbook:162
+#. Tag: programlisting
+#: example_mappings.xml:162
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"User\" table=\"`User`\">\n"
-      "    <composite-id>\n"
-      "        <key-property name=\"name\"/>\n"
-      "        <key-property name=\"org\"/>\n"
-      "    </composite-id>\n"
-      "    <set name=\"groups\" table=\"UserGroup\">\n"
-      "        <key>\n"
-      "            <column name=\"userName\"/>\n"
-      "            <column name=\"org\"/>\n"
-      "        </key>\n"
-      "        <many-to-many class=\"Group\">\n"
-      "            <column name=\"groupName\"/>\n"
-      "            <formula>org</formula>\n"
-      "        </many-to-many>\n"
-      "    </set>\n"
-      "</class>\n"
-      "    \n"
-      "<class name=\"Group\" table=\"`Group`\">\n"
-      "    <composite-id>\n"
-      "        <key-property name=\"name\"/>\n"
-      "        <key-property name=\"org\"/>\n"
-      "    </composite-id>\n"
-      "    <property name=\"description\"/>\n"
-      "    <set name=\"users\" table=\"UserGroup\" inverse=\"true\">\n"
-      "        <key>\n"
-      "            <column name=\"groupName\"/>\n"
-      "            <column name=\"org\"/>\n"
-      "        </key>\n"
-      "        <many-to-many class=\"User\">\n"
-      "            <column name=\"userName\"/>\n"
-      "            <formula>org</formula>\n"
-      "        </many-to-many>\n"
-      "    </set>\n"
-      "</class>\n"
-      "]]>"
+"<![CDATA[<class name=\"User\" table=\"`User`\">\n"
+"    <composite-id>\n"
+"        <key-property name=\"name\"/>\n"
+"        <key-property name=\"org\"/>\n"
+"    </composite-id>\n"
+"    <set name=\"groups\" table=\"UserGroup\">\n"
+"        <key>\n"
+"            <column name=\"userName\"/>\n"
+"            <column name=\"org\"/>\n"
+"        </key>\n"
+"        <many-to-many class=\"Group\">\n"
+"            <column name=\"groupName\"/>\n"
+"            <formula>org</formula>\n"
+"        </many-to-many>\n"
+"    </set>\n"
+"</class>\n"
+"    \n"
+"<class name=\"Group\" table=\"`Group`\">\n"
+"    <composite-id>\n"
+"        <key-property name=\"name\"/>\n"
+"        <key-property name=\"org\"/>\n"
+"    </composite-id>\n"
+"    <property name=\"description\"/>\n"
+"    <set name=\"users\" table=\"UserGroup\" inverse=\"true\">\n"
+"        <key>\n"
+"            <column name=\"groupName\"/>\n"
+"            <column name=\"org\"/>\n"
+"        </key>\n"
+"        <many-to-many class=\"User\">\n"
+"            <column name=\"userName\"/>\n"
+"            <formula>org</formula>\n"
+"        </many-to-many>\n"
+"    </set>\n"
+"</class>\n"
+"]]>"
 msgstr ""
-      "<![CDATA[<class name=\"User\" table=\"`User`\">\n"
-      "    <composite-id>\n"
-      "        <key-property name=\"name\"/>\n"
-      "        <key-property name=\"org\"/>\n"
-      "    </composite-id>\n"
-      "    <set name=\"groups\" table=\"UserGroup\">\n"
-      "        <key>\n"
-      "            <column name=\"userName\"/>\n"
-      "            <column name=\"org\"/>\n"
-      "        </key>\n"
-      "        <many-to-many class=\"Group\">\n"
-      "            <column name=\"groupName\"/>\n"
-      "            <formula>org</formula>\n"
-      "        </many-to-many>\n"
-      "    </set>\n"
-      "</class>\n"
-      "    \n"
-      "<class name=\"Group\" table=\"`Group`\">\n"
-      "    <composite-id>\n"
-      "        <key-property name=\"name\"/>\n"
-      "        <key-property name=\"org\"/>\n"
-      "    </composite-id>\n"
-      "    <property name=\"description\"/>\n"
-      "    <set name=\"users\" table=\"UserGroup\" inverse=\"true\">\n"
-      "        <key>\n"
-      "            <column name=\"groupName\"/>\n"
-      "            <column name=\"org\"/>\n"
-      "        </key>\n"
-      "        <many-to-many class=\"User\">\n"
-      "            <column name=\"userName\"/>\n"
-      "            <formula>org</formula>\n"
-      "        </many-to-many>\n"
-      "    </set>\n"
-      "</class>\n"
-      "]]>"
 
-#: index.docbook:166
+#. Tag: title
+#: example_mappings.xml:166
+#, no-c-format
 msgid "Content based discrimination"
-msgstr "Discriminaci&#x00f3;n basada en contenido"
+msgstr "Discriminación basada en contenido"
 
-#: index.docbook:167
+#. Tag: programlisting
+#: example_mappings.xml:167
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\"\n"
-      "    discriminator-value=\"P\">\n"
-      "    \n"
-      "    <id name=\"id\" \n"
-      "        column=\"person_id\" \n"
-      "        unsaved-value=\"0\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    \n"
-      "            \n"
-      "    <discriminator \n"
-      "        type=\"character\">\n"
-      "        <formula>\n"
-      "            case \n"
-      "                when title is not null then 'E' \n"
-      "                when salesperson is not null then 'C' \n"
-      "                else 'P' \n"
-      "            end\n"
-      "        </formula>\n"
-      "    </discriminator>\n"
-      "\n"
-      "    <property name=\"name\" \n"
-      "        not-null=\"true\"\n"
-      "        length=\"80\"/>\n"
-      "        \n"
-      "    <property name=\"sex\" \n"
-      "        not-null=\"true\"\n"
-      "        update=\"false\"/>\n"
-      "    \n"
-      "    <component name=\"address\">\n"
-      "        <property name=\"address\"/>\n"
-      "        <property name=\"zip\"/>\n"
-      "        <property name=\"country\"/>\n"
-      "    </component>\n"
-      "    \n"
-      "    <subclass name=\"Employee\" \n"
-      "        discriminator-value=\"E\">\n"
-      "            <property name=\"title\"\n"
-      "                length=\"20\"/>\n"
-      "            <property name=\"salary\"/>\n"
-      "            <many-to-one name=\"manager\"/>\n"
-      "    </subclass>\n"
-      "    \n"
-      "    <subclass name=\"Customer\" \n"
-      "        discriminator-value=\"C\">\n"
-      "            <property name=\"comments\"/>\n"
-      "            <many-to-one name=\"salesperson\"/>\n"
-      "    </subclass>\n"
-      "    \n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Person\"\n"
+"    discriminator-value=\"P\">\n"
+"    \n"
+"    <id name=\"id\" \n"
+"        column=\"person_id\" \n"
+"        unsaved-value=\"0\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    \n"
+"            \n"
+"    <discriminator \n"
+"        type=\"character\">\n"
+"        <formula>\n"
+"            case \n"
+"                when title is not null then 'E' \n"
+"                when salesperson is not null then 'C' \n"
+"                else 'P' \n"
+"            end\n"
+"        </formula>\n"
+"    </discriminator>\n"
+"\n"
+"    <property name=\"name\" \n"
+"        not-null=\"true\"\n"
+"        length=\"80\"/>\n"
+"        \n"
+"    <property name=\"sex\" \n"
+"        not-null=\"true\"\n"
+"        update=\"false\"/>\n"
+"    \n"
+"    <component name=\"address\">\n"
+"        <property name=\"address\"/>\n"
+"        <property name=\"zip\"/>\n"
+"        <property name=\"country\"/>\n"
+"    </component>\n"
+"    \n"
+"    <subclass name=\"Employee\" \n"
+"        discriminator-value=\"E\">\n"
+"            <property name=\"title\"\n"
+"                length=\"20\"/>\n"
+"            <property name=\"salary\"/>\n"
+"            <many-to-one name=\"manager\"/>\n"
+"    </subclass>\n"
+"    \n"
+"    <subclass name=\"Customer\" \n"
+"        discriminator-value=\"C\">\n"
+"            <property name=\"comments\"/>\n"
+"            <many-to-one name=\"salesperson\"/>\n"
+"    </subclass>\n"
+"    \n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"Person\"\n"
-      "    discriminator-value=\"P\">\n"
-      "    \n"
-      "    <id name=\"id\" \n"
-      "        column=\"person_id\" \n"
-      "        unsaved-value=\"0\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    \n"
-      "            \n"
-      "    <discriminator \n"
-      "        type=\"character\">\n"
-      "        <formula>\n"
-      "            case \n"
-      "                when title is not null then 'E' \n"
-      "                when salesperson is not null then 'C' \n"
-      "                else 'P' \n"
-      "            end\n"
-      "        </formula>\n"
-      "    </discriminator>\n"
-      "\n"
-      "    <property name=\"name\" \n"
-      "        not-null=\"true\"\n"
-      "        length=\"80\"/>\n"
-      "        \n"
-      "    <property name=\"sex\" \n"
-      "        not-null=\"true\"\n"
-      "        update=\"false\"/>\n"
-      "    \n"
-      "    <component name=\"address\">\n"
-      "        <property name=\"address\"/>\n"
-      "        <property name=\"zip\"/>\n"
-      "        <property name=\"country\"/>\n"
-      "    </component>\n"
-      "    \n"
-      "    <subclass name=\"Employee\" \n"
-      "        discriminator-value=\"E\">\n"
-      "            <property name=\"title\"\n"
-      "                length=\"20\"/>\n"
-      "            <property name=\"salary\"/>\n"
-      "            <many-to-one name=\"manager\"/>\n"
-      "    </subclass>\n"
-      "    \n"
-      "    <subclass name=\"Customer\" \n"
-      "        discriminator-value=\"C\">\n"
-      "            <property name=\"comments\"/>\n"
-      "            <many-to-one name=\"salesperson\"/>\n"
-      "    </subclass>\n"
-      "    \n"
-      "</class>]]>"
 
-#: index.docbook:171
+#. Tag: title
+#: example_mappings.xml:171
+#, no-c-format
 msgid "Associations on alternate keys"
 msgstr "Asociaciones sobre claves alternativas"
 
-#: index.docbook:172
+#. Tag: programlisting
+#: example_mappings.xml:172
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    \n"
-      "    <id name=\"id\">\n"
-      "        <generator class=\"hilo\"/>\n"
-      "    </id>\n"
-      "    \n"
-      "    <property name=\"name\" length=\"100\"/>\n"
-      "    \n"
-      "    <one-to-one name=\"address\" \n"
-      "        property-ref=\"person\"\n"
-      "        cascade=\"all\"\n"
-      "        fetch=\"join\"/>\n"
-      "    \n"
-      "    <set name=\"accounts\" \n"
-      "        inverse=\"true\">\n"
-      "        <key column=\"userId\"\n"
-      "            property-ref=\"userId\"/>\n"
-      "        <one-to-many class=\"Account\"/>\n"
-      "    </set>\n"
-      "    \n"
-      "    <property name=\"userId\" length=\"8\"/>\n"
-      "\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "\n"
-      "    <id name=\"id\">\n"
-      "        <generator class=\"hilo\"/>\n"
-      "    </id>\n"
-      "\n"
-      "    <property name=\"address\" length=\"300\"/>\n"
-      "    <property name=\"zip\" length=\"5\"/>\n"
-      "    <property name=\"country\" length=\"25\"/>\n"
-      "    <many-to-one name=\"person\" unique=\"true\" not-null=\"true\"/>\n"
-      "\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Account\">\n"
-      "    <id name=\"accountId\" length=\"32\">\n"
-      "        <generator class=\"uuid\"/>\n"
-      "    </id>\n"
-      "    \n"
-      "    <many-to-one name=\"user\"\n"
-      "        column=\"userId\"\n"
-      "        property-ref=\"userId\"/>\n"
-      "    \n"
-      "    <property name=\"type\" not-null=\"true\"/>\n"
-      "    \n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Person\">\n"
+"    \n"
+"    <id name=\"id\">\n"
+"        <generator class=\"hilo\"/>\n"
+"    </id>\n"
+"    \n"
+"    <property name=\"name\" length=\"100\"/>\n"
+"    \n"
+"    <one-to-one name=\"address\" \n"
+"        property-ref=\"person\"\n"
+"        cascade=\"all\"\n"
+"        fetch=\"join\"/>\n"
+"    \n"
+"    <set name=\"accounts\" \n"
+"        inverse=\"true\">\n"
+"        <key column=\"userId\"\n"
+"            property-ref=\"userId\"/>\n"
+"        <one-to-many class=\"Account\"/>\n"
+"    </set>\n"
+"    \n"
+"    <property name=\"userId\" length=\"8\"/>\n"
+"\n"
+"</class>\n"
+"\n"
+"<class name=\"Address\">\n"
+"\n"
+"    <id name=\"id\">\n"
+"        <generator class=\"hilo\"/>\n"
+"    </id>\n"
+"\n"
+"    <property name=\"address\" length=\"300\"/>\n"
+"    <property name=\"zip\" length=\"5\"/>\n"
+"    <property name=\"country\" length=\"25\"/>\n"
+"    <many-to-one name=\"person\" unique=\"true\" not-null=\"true\"/>\n"
+"\n"
+"</class>\n"
+"\n"
+"<class name=\"Account\">\n"
+"    <id name=\"accountId\" length=\"32\">\n"
+"        <generator class=\"uuid\"/>\n"
+"    </id>\n"
+"    \n"
+"    <many-to-one name=\"user\"\n"
+"        column=\"userId\"\n"
+"        property-ref=\"userId\"/>\n"
+"    \n"
+"    <property name=\"type\" not-null=\"true\"/>\n"
+"    \n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    \n"
-      "    <id name=\"id\">\n"
-      "        <generator class=\"hilo\"/>\n"
-      "    </id>\n"
-      "    \n"
-      "    <property name=\"name\" length=\"100\"/>\n"
-      "    \n"
-      "    <one-to-one name=\"address\" \n"
-      "        property-ref=\"person\"\n"
-      "        cascade=\"all\"\n"
-      "        fetch=\"join\"/>\n"
-      "    \n"
-      "    <set name=\"accounts\" \n"
-      "        inverse=\"true\">\n"
-      "        <key column=\"userId\"\n"
-      "            property-ref=\"userId\"/>\n"
-      "        <one-to-many class=\"Account\"/>\n"
-      "    </set>\n"
-      "    \n"
-      "    <property name=\"userId\" length=\"8\"/>\n"
-      "\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Address\">\n"
-      "\n"
-      "    <id name=\"id\">\n"
-      "        <generator class=\"hilo\"/>\n"
-      "    </id>\n"
-      "\n"
-      "    <property name=\"address\" length=\"300\"/>\n"
-      "    <property name=\"zip\" length=\"5\"/>\n"
-      "    <property name=\"country\" length=\"25\"/>\n"
-      "    <many-to-one name=\"person\" unique=\"true\" not-null=\"true\"/>\n"
-      "\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Account\">\n"
-      "    <id name=\"accountId\" length=\"32\">\n"
-      "        <generator class=\"uuid.hex\"/>\n"
-      "    </id>\n"
-      "    \n"
-      "    <many-to-one name=\"user\"\n"
-      "        column=\"userId\"\n"
-      "        property-ref=\"userId\"/>\n"
-      "    \n"
-      "    <property name=\"type\" not-null=\"true\"/>\n"
-      "    \n"
-      "</class>]]>"
-
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
-
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
-

Modified: core/trunk/documentation/manual/translations/es-ES/content/example_parentchild.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/example_parentchild.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/example_parentchild.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,350 +1,609 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:5
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: example_parentchild.xml:5
+#, no-c-format
 msgid "Example: Parent/Child"
 msgstr "Ejemplo: Padre/Hijo"
 
-#: index.docbook:7
-msgid "One of the very first things that new users try to do with Hibernate is to model a parent / child type relationship. There are two different approaches to this. For various reasons the most convenient approach, especially for new users, is to model both <literal>Parent</literal> and <literal>Child</literal> as entity classes with a <literal>&lt;one-to-many&gt;</literal> association from <literal>Parent</literal> to <literal>Child</literal>. (The alternative approach is to declare the <literal>Child</literal> as a <literal>&lt;composite-element&gt;</literal>.) Now, it turns out that default semantics of a one to many association (in Hibernate) are much less close to the usual semantics of a parent / child relationship than those of a composite element mapping. We will explain how to use a <emphasis>bidirectional one to many association with cascades</emphasis> to model a parent / child relationship efficiently and elegantly. It's not at all difficult!"
-msgstr "Una de las primer&#x00ed;simas cosas que los usuarios nuevos intentan hacer con Hibernate es modelar una relaci&#x00f3;n de tipo padre / hijo. Para esto hay dos enfoques diferentes. Por varias razones, el enfoque m&#x00e1;s conveniente, especialmente para usuarios nuevos, es modelar tanto <literal>Parent</literal> como <literal>Child</literal> como clases de entidad con una asociaci&#x00f3;n <literal>&lt;one-to-many&gt;</literal> desde <literal>Parent</literal> a <literal>Child</literal>. (El enfoque alternativo es declarar el <literal>Child</literal> como un <literal>&lt;composite-element&gt;</literal>.) Ahora, resulta que la sem&#x00e1;ntica por defecto de una asociaci&#x00f3;n uno a muchos (en Hibernate) es mucho menos cercana a la sem&#x00e1;ntica usual de una relaci&#x00f3;n padre / hijo que aquellas de un mapeo de elementos compuestos. Explicaremos c&#x00f3;mo usar una <emphasis>asociaci&#x00f3;n uno a muchos bidireccional con tratamiento en cascada</emphasis>!
  para modelar una relaci&#x00f3;n padre / hijo eficiente y elegantemente. &#x00a1;No es para nada dif&#x00ed;cil!"
+#. Tag: para
+#: example_parentchild.xml:7
+#, no-c-format
+msgid ""
+"One of the very first things that new users try to do with Hibernate is to "
+"model a parent / child type relationship. There are two different approaches "
+"to this. For various reasons the most convenient approach, especially for "
+"new users, is to model both <literal>Parent</literal> and <literal>Child</"
+"literal> as entity classes with a <literal>&lt;one-to-many&gt;</literal> "
+"association from <literal>Parent</literal> to <literal>Child</literal>. (The "
+"alternative approach is to declare the <literal>Child</literal> as a "
+"<literal>&lt;composite-element&gt;</literal>.) Now, it turns out that "
+"default semantics of a one to many association (in Hibernate) are much less "
+"close to the usual semantics of a parent / child relationship than those of "
+"a composite element mapping. We will explain how to use a "
+"<emphasis>bidirectional one to many association with cascades</emphasis> to "
+"model a parent / child relationship efficiently and elegantly. It's not at "
+"all difficult!"
+msgstr ""
+"Una de las primerísimas cosas que los usuarios nuevos intentan hacer con "
+"Hibernate es modelar una relación de tipo padre / hijo. Para esto hay dos "
+"enfoques diferentes. Por varias razones, el enfoque más conveniente, "
+"especialmente para usuarios nuevos, es modelar tanto <literal>Parent</"
+"literal> como <literal>Child</literal> como clases de entidad con una "
+"asociación <literal>&lt;one-to-many&gt;</literal> desde <literal>Parent</"
+"literal> a <literal>Child</literal>. (El enfoque alternativo es declarar el "
+"<literal>Child</literal> como un <literal>&lt;composite-element&gt;</"
+"literal>.) Ahora, resulta que la semántica por defecto de una asociación uno "
+"a muchos (en Hibernate) es mucho menos cercana a la semántica usual de una "
+"relación padre / hijo que aquellas de un mapeo de elementos compuestos. "
+"Explicaremos cómo usar una <emphasis>asociación uno a muchos bidireccional "
+"con tratamiento en cascada</emphasis> para modelar una relación padre / hijo "
+"eficiente y elegantemente. ¡No es para nada difícil!"
 
-#: index.docbook:21
+#. Tag: title
+#: example_parentchild.xml:21
+#, no-c-format
 msgid "A note about collections"
 msgstr "Una nota sobre las colecciones"
 
-#: index.docbook:23
-msgid "Hibernate collections are considered to be a logical part of their owning entity; never of the contained entities. This is a crucial distinction! It has the following consequences:"
-msgstr "Se considera que las colecciones de Hibernate son una parte l&#x00f3;gica de la entidad que las posee; nunca de las entidades contenidas. &#x00a1;Esta es una distinci&#x00f3;n crucial! Esto tiene las siguientes consecuencias:"
+#. Tag: para
+#: example_parentchild.xml:23
+#, no-c-format
+msgid ""
+"Hibernate collections are considered to be a logical part of their owning "
+"entity; never of the contained entities. This is a crucial distinction! It "
+"has the following consequences:"
+msgstr ""
+"Se considera que las colecciones de Hibernate son una parte lógica de la "
+"entidad que las posee; nunca de las entidades contenidas. ¡Esta es una "
+"distinción crucial! Esto tiene las siguientes consecuencias:"
 
-#: index.docbook:30
-msgid "When we remove / add an object from / to a collection, the version number of the collection owner is incremented."
-msgstr "Cuando se quita / a&#x00f1;ade un objeto desde / a una colecci&#x00f3;n, se incrementa el n&#x00fa;mero de versi&#x00f3;n del due&#x00f1;o de la colecci&#x00f3;n."
+#. Tag: para
+#: example_parentchild.xml:30
+#, no-c-format
+msgid ""
+"When we remove / add an object from / to a collection, the version number of "
+"the collection owner is incremented."
+msgstr ""
+"Cuando se quita / añade un objeto desde / a una colección, se incrementa el "
+"número de versión del dueño de la colección."
 
-#: index.docbook:36
-msgid "If an object that was removed from a collection is an instance of a value type (eg, a composite element), that object will cease to be persistent and its state will be completely removed from the database. Likewise, adding a value type instance to the collection will cause its state to be immediately persistent."
-msgstr "Si un objeto que fue quitado de una colecci&#x00f3;n es una instancia de un tipo de valor (por ejemplo, un elemento compuesto), ese objeta cesar&#x00e1; de ser persistente y su estado ser&#x00e1; completamente quitado de la base de datos. Asimismo, a&#x00f1;adir una instancia de tipo de valor a la colecci&#x00f3;n causar&#x00e1; que su estado sea inmediatamente persistente."
+#. Tag: para
+#: example_parentchild.xml:36
+#, no-c-format
+msgid ""
+"If an object that was removed from a collection is an instance of a value "
+"type (eg, a composite element), that object will cease to be persistent and "
+"its state will be completely removed from the database. Likewise, adding a "
+"value type instance to the collection will cause its state to be immediately "
+"persistent."
+msgstr ""
+"Si un objeto que fue quitado de una colección es una instancia de un tipo de "
+"valor (por ejemplo, un elemento compuesto), ese objeta cesará de ser "
+"persistente y su estado será completamente quitado de la base de datos. "
+"Asimismo, añadir una instancia de tipo de valor a la colección causará que "
+"su estado sea inmediatamente persistente."
 
-#: index.docbook:44
-msgid "On the other hand, if an entity is removed from a collection (a one-to-many or many-to-many association), it will not be deleted, by default. This behaviour is completely consistent - a change to the internal state of another entity should not cause the associated entity to vanish! Likewise, adding an entity to a collection does not cause that entity to become persistent, by default."
-msgstr "Por otro lado, si se quita una entidad de una colecci&#x00f3;n (una asociaci&#x00f3;n uno-a-muchos o muchos-a-muchos), no ser&#x00e1; borrado, por defecto. Este comportamiento es completamente consistente. &#x00a1;Un cambio en el estado interno de otra entidad no hace desaparecer la entidad asociada! Asimismo, a&#x00f1;adir una entidad a una colecci&#x00f3;n no causa que la entidad se vuelva persistente, por defecto."
+#. Tag: para
+#: example_parentchild.xml:44
+#, no-c-format
+msgid ""
+"On the other hand, if an entity is removed from a collection (a one-to-many "
+"or many-to-many association), it will not be deleted, by default. This "
+"behaviour is completely consistent - a change to the internal state of "
+"another entity should not cause the associated entity to vanish! Likewise, "
+"adding an entity to a collection does not cause that entity to become "
+"persistent, by default."
+msgstr ""
+"Por otro lado, si se quita una entidad de una colección (una asociación uno-"
+"a-muchos o muchos-a-muchos), no será borrado, por defecto. Este "
+"comportamiento es completamente consistente. ¡Un cambio en el estado interno "
+"de otra entidad no hace desaparecer la entidad asociada! Asimismo, añadir "
+"una entidad a una colección no causa que la entidad se vuelva persistente, "
+"por defecto."
 
-#: index.docbook:54
-msgid "Instead, the default behaviour is that adding an entity to a collection merely creates a link between the two entities, while removing it removes the link. This is very appropriate for all sorts of cases. Where it is not appropriate at all is the case of a parent / child relationship, where the life of the child is bound to the life cycle of the parent."
-msgstr "En cambio, el comportamiento por defecto es que al a&#x00f1;adir una entidad a una colecci&#x00f3;n se crea meramente un enlace entre las dos entidades, mientras que al quitarla se quita el enlace. Esto es muy apropiado para todos los tipos de casos. Donde no es para nada apropiado es en el caso de una relaci&#x00f3;n padre / hijo. donde la vida del hijo est&#x00e1; ligada al ciclo de vida del padre."
+#. Tag: para
+#: example_parentchild.xml:54
+#, no-c-format
+msgid ""
+"Instead, the default behaviour is that adding an entity to a collection "
+"merely creates a link between the two entities, while removing it removes "
+"the link. This is very appropriate for all sorts of cases. Where it is not "
+"appropriate at all is the case of a parent / child relationship, where the "
+"life of the child is bound to the life cycle of the parent."
+msgstr ""
+"En cambio, el comportamiento por defecto es que al añadir una entidad a una "
+"colección se crea meramente un enlace entre las dos entidades, mientras que "
+"al quitarla se quita el enlace. Esto es muy apropiado para todos los tipos "
+"de casos. Donde no es para nada apropiado es en el caso de una relación "
+"padre / hijo. donde la vida del hijo está ligada al ciclo de vida del padre."
 
-#: index.docbook:64
+#. Tag: title
+#: example_parentchild.xml:64
+#, no-c-format
 msgid "Bidirectional one-to-many"
 msgstr "Uno-a-muchos bidirectional"
 
-#: index.docbook:66
-msgid "Suppose we start with a simple <literal>&lt;one-to-many&gt;</literal> association from <literal>Parent</literal> to <literal>Child</literal>."
-msgstr "Sup&#x00f3;n que empezamos con una asociaci&#x00f3;n simple <literal>&lt;one-to-many&gt;</literal> desde <literal>Parent</literal> a <literal>Child</literal>."
+#. Tag: para
+#: example_parentchild.xml:66
+#, no-c-format
+msgid ""
+"Suppose we start with a simple <literal>&lt;one-to-many&gt;</literal> "
+"association from <literal>Parent</literal> to <literal>Child</literal>."
+msgstr ""
+"Supón que empezamos con una asociación simple <literal>&lt;one-to-many&gt;</"
+"literal> desde <literal>Parent</literal> a <literal>Child</literal>."
 
-#: index.docbook:71
+#. Tag: programlisting
+#: example_parentchild.xml:71
+#, no-c-format
 msgid ""
-      "<![CDATA[<set name=\"children\">\n"
-      "    <key column=\"parent_id\"/>\n"
-      "    <one-to-many class=\"Child\"/>\n"
-      "</set>]]>"
+"<![CDATA[<set name=\"children\">\n"
+"    <key column=\"parent_id\"/>\n"
+"    <one-to-many class=\"Child\"/>\n"
+"</set>]]>"
 msgstr ""
-      "<![CDATA[<set name=\"children\">\n"
-      "    <key column=\"parent_id\"/>\n"
-      "    <one-to-many class=\"Child\"/>\n"
-      "</set>]]>"
 
-#: index.docbook:73
+#. Tag: para
+#: example_parentchild.xml:73
+#, no-c-format
 msgid "If we were to execute the following code"
-msgstr "Si ejecut&#x00e1;semos el siguiente c&#x00f3;digo"
+msgstr "Si ejecutásemos el siguiente código"
 
-#: index.docbook:77
+#. Tag: programlisting
+#: example_parentchild.xml:77
+#, no-c-format
 msgid ""
-      "<![CDATA[Parent p = .....;\n"
-      "Child c = new Child();\n"
-      "p.getChildren().add(c);\n"
-      "session.save(c);\n"
-      "session.flush();]]>"
+"<![CDATA[Parent p = .....;\n"
+"Child c = new Child();\n"
+"p.getChildren().add(c);\n"
+"session.save(c);\n"
+"session.flush();]]>"
 msgstr ""
-      "<![CDATA[Parent p = .....;\n"
-      "Child c = new Child();\n"
-      "p.getChildren().add(c);\n"
-      "session.save(c);\n"
-      "session.flush();]]>"
 
-#: index.docbook:79
+#. Tag: para
+#: example_parentchild.xml:79
+#, no-c-format
 msgid "Hibernate would issue two SQL statements:"
-msgstr "Hibernate publicar&#x00ed;a dos sentencias SQL:"
+msgstr "Hibernate publicaría dos sentencias SQL:"
 
-#: index.docbook:85
-msgid "an <literal>INSERT</literal> to create the record for <literal>c</literal>"
-msgstr "un <literal>INSERT</literal> para crear el registro de <literal>c</literal>"
+#. Tag: para
+#: example_parentchild.xml:85
+#, no-c-format
+msgid ""
+"an <literal>INSERT</literal> to create the record for <literal>c</literal>"
+msgstr ""
+"un <literal>INSERT</literal> para crear el registro de <literal>c</literal>"
 
-#: index.docbook:88
-msgid "an <literal>UPDATE</literal> to create the link from <literal>p</literal> to <literal>c</literal>"
-msgstr "un <literal>UPDATE</literal> para crear el enlace desde <literal>p</literal> a <literal>c</literal>"
+#. Tag: para
+#: example_parentchild.xml:88
+#, no-c-format
+msgid ""
+"an <literal>UPDATE</literal> to create the link from <literal>p</literal> to "
+"<literal>c</literal>"
+msgstr ""
+"un <literal>UPDATE</literal> para crear el enlace desde <literal>p</literal> "
+"a <literal>c</literal>"
 
-#: index.docbook:95
-msgid "This is not only inefficient, but also violates any <literal>NOT NULL</literal> constraint on the <literal>parent_id</literal> column. We can fix the nullability constraint violation by specifying <literal>not-null=\"true\"</literal> in the collection mapping:"
-msgstr "Esto no es s&#x00f3;lo ineficiente, sino que adem&#x00e1;s viola cualquier restricci&#x00f3;n <literal>NOT NULL</literal> en la columna <literal>parent_id</literal>. Podemos reparar la violaci&#x00f3;n de restricci&#x00f3;n de nulabilidad especificando <literal>not-null=\"true\"</literal> en el mapeo de la colecci&#x00f3;n:"
+#. Tag: para
+#: example_parentchild.xml:95
+#, no-c-format
+msgid ""
+"This is not only inefficient, but also violates any <literal>NOT NULL</"
+"literal> constraint on the <literal>parent_id</literal> column. We can fix "
+"the nullability constraint violation by specifying <literal>not-null=\"true"
+"\"</literal> in the collection mapping:"
+msgstr ""
+"Esto no es sólo ineficiente, sino que además viola cualquier restricción "
+"<literal>NOT NULL</literal> en la columna <literal>parent_id</literal>. "
+"Podemos reparar la violación de restricción de nulabilidad especificando "
+"<literal>not-null=\"true\"</literal> en el mapeo de la colección:"
 
-#: index.docbook:101
+#. Tag: programlisting
+#: example_parentchild.xml:101
+#, no-c-format
 msgid ""
-      "<![CDATA[<set name=\"children\">\n"
-      "    <key column=\"parent_id\" not-null=\"true\"/>\n"
-      "    <one-to-many class=\"Child\"/>\n"
-      "</set>]]>"
+"<![CDATA[<set name=\"children\">\n"
+"    <key column=\"parent_id\" not-null=\"true\"/>\n"
+"    <one-to-many class=\"Child\"/>\n"
+"</set>]]>"
 msgstr ""
-      "<![CDATA[<set name=\"children\">\n"
-      "    <key column=\"parent_id\" not-null=\"true\"/>\n"
-      "    <one-to-many class=\"Child\"/>\n"
-      "</set>]]>"
 
-#: index.docbook:103
+#. Tag: para
+#: example_parentchild.xml:103
+#, no-c-format
 msgid "However, this is not the recommended solution."
-msgstr "Sin embargo, esta no es la soluci&#x00f3;n recomendada."
+msgstr "Sin embargo, esta no es la solución recomendada."
 
-#: index.docbook:106
-msgid "The underlying cause of this behaviour is that the link (the foreign key <literal>parent_id</literal>) from <literal>p</literal> to <literal>c</literal> is not considered part of the state of the <literal>Child</literal> object and is therefore not created in the <literal>INSERT</literal>. So the solution is to make the link part of the <literal>Child</literal> mapping."
-msgstr "El caso subyacente de este comportamiento es que el enlace (la clave for&#x00e1;nea <literal>parent_id</literal>) de <literal>p</literal> a <literal>c</literal> no es considerado parte del estado del objeto <literal>Child</literal> y por lo tanto no es creada en el <literal>INSERT</literal>. De modo que la soluci&#x00f3;n es hacer el enlace parte del mapeo del <literal>Child</literal>."
+#. Tag: para
+#: example_parentchild.xml:106
+#, no-c-format
+msgid ""
+"The underlying cause of this behaviour is that the link (the foreign key "
+"<literal>parent_id</literal>) from <literal>p</literal> to <literal>c</"
+"literal> is not considered part of the state of the <literal>Child</literal> "
+"object and is therefore not created in the <literal>INSERT</literal>. So the "
+"solution is to make the link part of the <literal>Child</literal> mapping."
+msgstr ""
+"El caso subyacente de este comportamiento es que el enlace (la clave foránea "
+"<literal>parent_id</literal>) de <literal>p</literal> a <literal>c</literal> "
+"no es considerado parte del estado del objeto <literal>Child</literal> y por "
+"lo tanto no es creada en el <literal>INSERT</literal>. De modo que la "
+"solución es hacer el enlace parte del mapeo del <literal>Child</literal>."
 
-#: index.docbook:113
-msgid "<![CDATA[<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true\"/>]]>"
-msgstr "<![CDATA[<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true\"/>]]>"
+#. Tag: programlisting
+#: example_parentchild.xml:113
+#, no-c-format
+msgid ""
+"<![CDATA[<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true\"/"
+">]]>"
+msgstr ""
 
-#: index.docbook:115
-msgid "(We also need to add the <literal>parent</literal> property to the <literal>Child</literal> class.)"
-msgstr "(Necesitamos adem&#x00e1;s a&#x00f1;adir la propiedad <literal>parent</literal> a la clase <literal>Child</literal>.)"
+#. Tag: para
+#: example_parentchild.xml:115
+#, no-c-format
+msgid ""
+"(We also need to add the <literal>parent</literal> property to the "
+"<literal>Child</literal> class.)"
+msgstr ""
+"(Necesitamos además añadir la propiedad <literal>parent</literal> a la clase "
+"<literal>Child</literal>.)"
 
-#: index.docbook:119
-msgid "Now that the <literal>Child</literal> entity is managing the state of the link, we tell the collection not to update the link. We use the <literal>inverse</literal> attribute."
-msgstr "Ahora que la entidad <literal>Child</literal> est&#x00e1; gestionando el estado del enlace, le decimos a la colecci&#x00f3;n que no actualice el enlace. Usamos el atributo <literal>inverse</literal>."
+#. Tag: para
+#: example_parentchild.xml:119
+#, no-c-format
+msgid ""
+"Now that the <literal>Child</literal> entity is managing the state of the "
+"link, we tell the collection not to update the link. We use the "
+"<literal>inverse</literal> attribute."
+msgstr ""
+"Ahora que la entidad <literal>Child</literal> está gestionando el estado del "
+"enlace, le decimos a la colección que no actualice el enlace. Usamos el "
+"atributo <literal>inverse</literal>."
 
-#: index.docbook:124
+#. Tag: programlisting
+#: example_parentchild.xml:124
+#, no-c-format
 msgid ""
-      "<![CDATA[<set name=\"children\" inverse=\"true\">\n"
-      "    <key column=\"parent_id\"/>\n"
-      "    <one-to-many class=\"Child\"/>\n"
-      "</set>]]>"
+"<![CDATA[<set name=\"children\" inverse=\"true\">\n"
+"    <key column=\"parent_id\"/>\n"
+"    <one-to-many class=\"Child\"/>\n"
+"</set>]]>"
 msgstr ""
-      "<![CDATA[<set name=\"children\" inverse=\"true\">\n"
-      "    <key column=\"parent_id\"/>\n"
-      "    <one-to-many class=\"Child\"/>\n"
-      "</set>]]>"
 
-#: index.docbook:126
+#. Tag: para
+#: example_parentchild.xml:126
+#, no-c-format
 msgid "The following code would be used to add a new <literal>Child</literal>"
-msgstr "El siguiente c&#x00f3;digo podr&#x00ed;a ser usado para a&#x00f1;adir un nuevo <literal>Child</literal>"
+msgstr ""
+"El siguiente código podría ser usado para añadir un nuevo <literal>Child</"
+"literal>"
 
-#: index.docbook:130
+#. Tag: programlisting
+#: example_parentchild.xml:130
+#, no-c-format
 msgid ""
-      "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
-      "Child c = new Child();\n"
-      "c.setParent(p);\n"
-      "p.getChildren().add(c);\n"
-      "session.save(c);\n"
-      "session.flush();]]>"
+"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+"Child c = new Child();\n"
+"c.setParent(p);\n"
+"p.getChildren().add(c);\n"
+"session.save(c);\n"
+"session.flush();]]>"
 msgstr ""
-      "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
-      "Child c = new Child();\n"
-      "c.setParent(p);\n"
-      "p.getChildren().add(c);\n"
-      "session.save(c);\n"
-      "session.flush();]]>"
 
-#: index.docbook:132
+#. Tag: para
+#: example_parentchild.xml:132
+#, no-c-format
 msgid "And now, only one SQL <literal>INSERT</literal> would be issued!"
-msgstr "Y ahora, &#x00a1;S&#x00f3;lo se publicar&#x00ed;a un <literal>INSERT</literal> de SQL!"
+msgstr "Y ahora, ¡Sólo se publicaría un <literal>INSERT</literal> de SQL!"
 
-#: index.docbook:136
-msgid "To tighten things up a bit, we could create an <literal>addChild()</literal> method of <literal>Parent</literal>."
-msgstr "Para ajustar un poco m&#x00e1;s las cosas, podr&#x00ed;amos crear un m&#x00e9;todo <literal>addChild()</literal> en <literal>Parent</literal>."
+#. Tag: para
+#: example_parentchild.xml:136
+#, no-c-format
+msgid ""
+"To tighten things up a bit, we could create an <literal>addChild()</literal> "
+"method of <literal>Parent</literal>."
+msgstr ""
+"Para ajustar un poco más las cosas, podríamos crear un método "
+"<literal>addChild()</literal> en <literal>Parent</literal>."
 
-#: index.docbook:141
+#. Tag: programlisting
+#: example_parentchild.xml:141
+#, no-c-format
 msgid ""
-      "<![CDATA[public void addChild(Child c) {\n"
-      "    c.setParent(this);\n"
-      "    children.add(c);\n"
-      "}]]>"
+"<![CDATA[public void addChild(Child c) {\n"
+"    c.setParent(this);\n"
+"    children.add(c);\n"
+"}]]>"
 msgstr ""
-      "<![CDATA[public void addChild(Child c) {\n"
-      "    c.setParent(this);\n"
-      "    children.add(c);\n"
-      "}]]>"
 
-#: index.docbook:143
+#. Tag: para
+#: example_parentchild.xml:143
+#, no-c-format
 msgid "Now, the code to add a <literal>Child</literal> looks like"
-msgstr "Ahora, el c&#x00f3;digo para a&#x00f1;adir un <literal>Child</literal> se ve as&#x00ed;"
+msgstr "Ahora, el código para añadir un <literal>Child</literal> se ve así"
 
-#: index.docbook:147
+#. Tag: programlisting
+#: example_parentchild.xml:147
+#, no-c-format
 msgid ""
-      "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
-      "Child c = new Child();\n"
-      "p.addChild(c);\n"
-      "session.save(c);\n"
-      "session.flush();]]>"
+"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+"Child c = new Child();\n"
+"p.addChild(c);\n"
+"session.save(c);\n"
+"session.flush();]]>"
 msgstr ""
-      "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
-      "Child c = new Child();\n"
-      "p.addChild(c);\n"
-      "session.save(c);\n"
-      "session.flush();]]>"
 
-#: index.docbook:152
+#. Tag: title
+#: example_parentchild.xml:152
+#, no-c-format
 msgid "Cascading life cycle"
 msgstr "Ciclo de vida en cascada"
 
-#: index.docbook:154
-msgid "The explicit call to <literal>save()</literal> is still annoying. We will address this by using cascades."
-msgstr "La llamada expl&#x00ed;cita a <literal>save()</literal> es a&#x00fa;n molesta. Apuntaremos a esto usando tratamientos en cascada."
+#. Tag: para
+#: example_parentchild.xml:154
+#, no-c-format
+msgid ""
+"The explicit call to <literal>save()</literal> is still annoying. We will "
+"address this by using cascades."
+msgstr ""
+"La llamada explícita a <literal>save()</literal> es aún molesta. Apuntaremos "
+"a esto usando tratamientos en cascada."
 
-#: index.docbook:159
+#. Tag: programlisting
+#: example_parentchild.xml:159
+#, no-c-format
 msgid ""
-      "<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all\">\n"
-      "    <key column=\"parent_id\"/>\n"
-      "    <one-to-many class=\"Child\"/>\n"
-      "</set>]]>"
+"<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all\">\n"
+"    <key column=\"parent_id\"/>\n"
+"    <one-to-many class=\"Child\"/>\n"
+"</set>]]>"
 msgstr ""
-      "<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all\">\n"
-      "    <key column=\"parent_id\"/>\n"
-      "    <one-to-many class=\"Child\"/>\n"
-      "</set>]]>"
 
-#: index.docbook:161
+#. Tag: para
+#: example_parentchild.xml:161
+#, no-c-format
 msgid "This simplifies the code above to"
-msgstr "Esto simplifica el c&#x00f3;digo anterior a"
+msgstr "Esto simplifica el código anterior a"
 
-#: index.docbook:165
+#. Tag: programlisting
+#: example_parentchild.xml:165
+#, no-c-format
 msgid ""
-      "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
-      "Child c = new Child();\n"
-      "p.addChild(c);\n"
-      "session.flush();]]>"
+"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+"Child c = new Child();\n"
+"p.addChild(c);\n"
+"session.flush();]]>"
 msgstr ""
-      "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
-      "Child c = new Child();\n"
-      "p.addChild(c);\n"
-      "session.flush();]]>"
 
-#: index.docbook:167
-msgid "Similarly, we don't need to iterate over the children when saving or deleting a <literal>Parent</literal>. The following removes <literal>p</literal> and all its children from the database."
-msgstr "Similarmente, no necesitamos iterar los hijos al salvar o borrar un <literal>Parent</literal>. Lo siguiente quita <literal>p</literal> y todos sus hijos de la base de datos."
+#. Tag: para
+#: example_parentchild.xml:167
+#, no-c-format
+msgid ""
+"Similarly, we don't need to iterate over the children when saving or "
+"deleting a <literal>Parent</literal>. The following removes <literal>p</"
+"literal> and all its children from the database."
+msgstr ""
+"Similarmente, no necesitamos iterar los hijos al salvar o borrar un "
+"<literal>Parent</literal>. Lo siguiente quita <literal>p</literal> y todos "
+"sus hijos de la base de datos."
 
-#: index.docbook:172
+#. Tag: programlisting
+#: example_parentchild.xml:172
+#, no-c-format
 msgid ""
-      "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
-      "session.delete(p);\n"
-      "session.flush();]]>"
+"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+"session.delete(p);\n"
+"session.flush();]]>"
 msgstr ""
-      "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
-      "session.delete(p);\n"
-      "session.flush();]]>"
 
-#: index.docbook:174
+#. Tag: para
+#: example_parentchild.xml:174
+#, no-c-format
 msgid "However, this code"
-msgstr "Sin embargo, este c&#x00f3;digo"
+msgstr "Sin embargo, este código"
 
-#: index.docbook:178
+#. Tag: programlisting
+#: example_parentchild.xml:178
+#, no-c-format
 msgid ""
-      "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
-      "Child c = (Child) p.getChildren().iterator().next();\n"
-      "p.getChildren().remove(c);\n"
-      "c.setParent(null);\n"
-      "session.flush();]]>"
+"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+"Child c = (Child) p.getChildren().iterator().next();\n"
+"p.getChildren().remove(c);\n"
+"c.setParent(null);\n"
+"session.flush();]]>"
 msgstr ""
-      "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
-      "Child c = (Child) p.getChildren().iterator().next();\n"
-      "p.getChildren().remove(c);\n"
-      "c.setParent(null);\n"
-      "session.flush();]]>"
 
-#: index.docbook:180
-msgid "will not remove <literal>c</literal> from the database; it will ony remove the link to <literal>p</literal> (and cause a <literal>NOT NULL</literal> constraint violation, in this case). You need to explicitly <literal>delete()</literal> the <literal>Child</literal>."
-msgstr "no quitar&#x00e1; <literal>c</literal> de la base de datos; s&#x00f3;lo quitar&#x00e1; el enlace a <literal>p</literal> (y causar&#x00e1; una violaci&#x00f3;n a una restricci&#x00f3;n <literal>NOT NULL</literal>). Necesitas borrar el hijo expl&#x00ed;citamente llamando a <literal>delete()</literal>."
+#. Tag: para
+#: example_parentchild.xml:180
+#, no-c-format
+msgid ""
+"will not remove <literal>c</literal> from the database; it will ony remove "
+"the link to <literal>p</literal> (and cause a <literal>NOT NULL</literal> "
+"constraint violation, in this case). You need to explicitly <literal>delete()"
+"</literal> the <literal>Child</literal>."
+msgstr ""
+"no quitará <literal>c</literal> de la base de datos; sólo quitará el enlace "
+"a <literal>p</literal> (y causará una violación a una restricción "
+"<literal>NOT NULL</literal>). Necesitas borrar el hijo explícitamente "
+"llamando a <literal>delete()</literal>."
 
-#: index.docbook:186
+#. Tag: programlisting
+#: example_parentchild.xml:186
+#, no-c-format
 msgid ""
-      "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
-      "Child c = (Child) p.getChildren().iterator().next();\n"
-      "p.getChildren().remove(c);\n"
-      "session.delete(c);\n"
-      "session.flush();]]>"
+"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+"Child c = (Child) p.getChildren().iterator().next();\n"
+"p.getChildren().remove(c);\n"
+"session.delete(c);\n"
+"session.flush();]]>"
 msgstr ""
-      "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
-      "Child c = (Child) p.getChildren().iterator().next();\n"
-      "p.getChildren().remove(c);\n"
-      "session.delete(c);\n"
-      "session.flush();]]>"
 
-#: index.docbook:188
-msgid "Now, in our case, a <literal>Child</literal> can't really exist without its parent. So if we remove a <literal>Child</literal> from the collection, we really do want it to be deleted. For this, we must use <literal>cascade=\"all-delete-orphan\"</literal>."
-msgstr "Ahora, en nuestro caso, un <literal>Child</literal> no puede existir realmente sin su padre. De modo que si quitamos un <literal>Child</literal> de la colecci&#x00f3;n, realmente queremos que sea borrado. Para esto, debemos usar <literal>cascade=\"all-delete-orphan\"</literal>."
+#. Tag: para
+#: example_parentchild.xml:188
+#, no-c-format
+msgid ""
+"Now, in our case, a <literal>Child</literal> can't really exist without its "
+"parent. So if we remove a <literal>Child</literal> from the collection, we "
+"really do want it to be deleted. For this, we must use <literal>cascade="
+"\"all-delete-orphan\"</literal>."
+msgstr ""
+"Ahora, en nuestro caso, un <literal>Child</literal> no puede existir "
+"realmente sin su padre. De modo que si quitamos un <literal>Child</literal> "
+"de la colección, realmente queremos que sea borrado. Para esto, debemos usar "
+"<literal>cascade=\"all-delete-orphan\"</literal>."
 
-#: index.docbook:194
+#. Tag: programlisting
+#: example_parentchild.xml:194
+#, no-c-format
 msgid ""
-      "<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all-delete-orphan\">\n"
-      "    <key column=\"parent_id\"/>\n"
-      "    <one-to-many class=\"Child\"/>\n"
-      "</set>]]>"
+"<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all-delete-orphan"
+"\">\n"
+"    <key column=\"parent_id\"/>\n"
+"    <one-to-many class=\"Child\"/>\n"
+"</set>]]>"
 msgstr ""
-      "<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all-delete-orphan\">\n"
-      "    <key column=\"parent_id\"/>\n"
-      "    <one-to-many class=\"Child\"/>\n"
-      "</set>]]>"
 
-#: index.docbook:196
-msgid "Note: even though the collection mapping specifies <literal>inverse=\"true\"</literal>, cascades are still processed by iterating the collection elements. So if you require that an object be saved, deleted or updated by cascade, you must add it to the collection. It is not enough to simply call <literal>setParent()</literal>."
-msgstr "Nota: aunque el mapeo de la colecci&#x00f3;n especifique <literal>inverse=\"true\"</literal>, el tratamiento en cascada se procesa a&#x00fa;n al iterar los elementos de colecci&#x00f3;n. De modo que si requieres que un objeto sea salvado, borrado o actualizado en cascada, debes a&#x00f1;adirlo a la colecci&#x00f3;n. No es suficiente con simplemente llamar a <literal>setParent()</literal>."
+#. Tag: para
+#: example_parentchild.xml:196
+#, no-c-format
+msgid ""
+"Note: even though the collection mapping specifies <literal>inverse=\"true"
+"\"</literal>, cascades are still processed by iterating the collection "
+"elements. So if you require that an object be saved, deleted or updated by "
+"cascade, you must add it to the collection. It is not enough to simply call "
+"<literal>setParent()</literal>."
+msgstr ""
+"Nota: aunque el mapeo de la colección especifique <literal>inverse=\"true\"</"
+"literal>, el tratamiento en cascada se procesa aún al iterar los elementos "
+"de colección. De modo que si requieres que un objeto sea salvado, borrado o "
+"actualizado en cascada, debes añadirlo a la colección. No es suficiente con "
+"simplemente llamar a <literal>setParent()</literal>."
 
-#: index.docbook:206
+#. Tag: title
+#: example_parentchild.xml:206
+#, no-c-format
 msgid "Cascades and <literal>unsaved-value</literal>"
 msgstr "Tratamiento en cascada y <literal>unsaved-value</literal>"
 
-#: index.docbook:208
-msgid "Suppose we loaded up a <literal>Parent</literal> in one <literal>Session</literal>, made some changes in a UI action and wish to persist these changes in a new session by calling <literal>update()</literal>. The <literal>Parent</literal> will contain a collection of childen and, since cascading update is enabled, Hibernate needs to know which children are newly instantiated and which represent existing rows in the database. Lets assume that both <literal>Parent</literal> and <literal>Child</literal> have genenerated identifier properties of type <literal>Long</literal>. Hibernate will use the identifier and version/timestamp property value to determine which of the children are new. (See <xref linkend=\"objectstate-saveorupdate\"/>.) <emphasis>In Hibernate3, it is no longer necessary to specify an <literal>unsaved-value</literal> explicitly.</emphasis>"
-msgstr "Sup&#x00f3;n que hemos cargado un <literal>Parent</literal> en una <literal>Session</literal>, hemos hecho algunos cambios en una acci&#x00f3;n de UI y deseamos hacer persistentes estos cambios en una nueva sesi&#x00f3;n llamando a <literal>update()</literal>. El <literal>Parent</literal> contendr&#x00e1; una colecci&#x00f3;n de hijos y, ya que est&#x00e1; habilitado el tratamiento en cascada, Hibernate necesita saber qu&#x00e9; hijos est&#x00e1;n reci&#x00e9;n instanciados y cu&#x00e1;les representan filas existentes en la base de datos. Asumamos que tanto <literal>Parent</literal> como <literal>Child</literal> tienen propiedades identificadoras generadas de tipo <literal>Long</literal>. Hibernate usar&#x00e1; el identificador y el valor de la propiedad de versi&#x00f3;n/timestamp para determinar cu&#x00e1;les de los hijos son nuevos. (Ver <xref linkend=\"objectstate-saveorupdate\"/>.) <emphasis>En Hibernate3, no es m&#x00e1;s necesario especificar un <literal>unsa!
 ved-value</literal> expl&#x00ed;citamente.</emphasis>"
+#. Tag: para
+#: example_parentchild.xml:208
+#, no-c-format
+msgid ""
+"Suppose we loaded up a <literal>Parent</literal> in one <literal>Session</"
+"literal>, made some changes in a UI action and wish to persist these changes "
+"in a new session by calling <literal>update()</literal>. The "
+"<literal>Parent</literal> will contain a collection of childen and, since "
+"cascading update is enabled, Hibernate needs to know which children are "
+"newly instantiated and which represent existing rows in the database. Lets "
+"assume that both <literal>Parent</literal> and <literal>Child</literal> have "
+"genenerated identifier properties of type <literal>Long</literal>. Hibernate "
+"will use the identifier and version/timestamp property value to determine "
+"which of the children are new. (See <xref linkend=\"objectstate-saveorupdate"
+"\"/>.) <emphasis>In Hibernate3, it is no longer necessary to specify an "
+"<literal>unsaved-value</literal> explicitly.</emphasis>"
+msgstr ""
+"Supón que hemos cargado un <literal>Parent</literal> en una "
+"<literal>Session</literal>, hemos hecho algunos cambios en una acción de UI "
+"y deseamos hacer persistentes estos cambios en una nueva sesión llamando a "
+"<literal>update()</literal>. El <literal>Parent</literal> contendrá una "
+"colección de hijos y, ya que está habilitado el tratamiento en cascada, "
+"Hibernate necesita saber qué hijos están recién instanciados y cuáles "
+"representan filas existentes en la base de datos. Asumamos que tanto "
+"<literal>Parent</literal> como <literal>Child</literal> tienen propiedades "
+"identificadoras generadas de tipo <literal>Long</literal>. Hibernate usará "
+"el identificador y el valor de la propiedad de versión/timestamp para "
+"determinar cuáles de los hijos son nuevos. (Ver <xref linkend=\"objectstate-"
+"saveorupdate\"/>.) <emphasis>En Hibernate3, no es más necesario especificar "
+"un <literal>unsaved-value</literal> explícitamente.</emphasis>"
 
-#: index.docbook:220
-msgid "The following code will update <literal>parent</literal> and <literal>child</literal> and insert <literal>newChild</literal>."
-msgstr "The following code will update <literal>parent</literal> and <literal>child</literal> and insert <literal>newChild</literal>."
+#. Tag: para
+#: example_parentchild.xml:220
+#, no-c-format
+msgid ""
+"The following code will update <literal>parent</literal> and <literal>child</"
+"literal> and insert <literal>newChild</literal>."
+msgstr ""
+"The following code will update <literal>parent</literal> and <literal>child</"
+"literal> and insert <literal>newChild</literal>."
 
-#: index.docbook:225
+#. Tag: programlisting
+#: example_parentchild.xml:225
+#, no-c-format
 msgid ""
-      "<![CDATA[//parent and child were both loaded in a previous session\n"
-      "parent.addChild(child);\n"
-      "Child newChild = new Child();\n"
-      "parent.addChild(newChild);\n"
-      "session.update(parent);\n"
-      "session.flush();]]>"
+"<![CDATA[//parent and child were both loaded in a previous session\n"
+"parent.addChild(child);\n"
+"Child newChild = new Child();\n"
+"parent.addChild(newChild);\n"
+"session.update(parent);\n"
+"session.flush();]]>"
 msgstr ""
-      "<![CDATA[//parent and child were both loaded in a previous session\n"
-      "parent.addChild(child);\n"
-      "Child newChild = new Child();\n"
-      "parent.addChild(newChild);\n"
-      "session.update(parent);\n"
-      "session.flush();]]>"
 
-#: index.docbook:227
-msgid "Well, that's all very well for the case of a generated identifier, but what about assigned identifiers and composite identifiers? This is more difficult, since Hibernate can't use the identifier property to distinguish between a newly instantiated object (with an identifier assigned by the user) and an object loaded in a previous session. In this case, Hibernate will either use the timestamp or version property, or will actually query the second-level cache or, worst case, the database, to see if the row exists."
-msgstr "Bueno, todo eso est&#x00e1; muy bien para el caso de un identificador generado, pero &#x00bf;qu&#x00e9; de los identificadores asignados y de los identificadores compuestos? Esto es m&#x00e1;s dif&#x00ed;cil, ya que Hibernate no puede usar la propiedad identificadora para distinguir entre un objeto reci&#x00e9;n instanciado (con un identificador asignado por el usuario) y un objeto cargado en una sesi&#x00f3;n previa. En este caso, Hibernate bien usar&#x00e1; la propiedad de versi&#x00f3;n o timestamp, o bien consultar&#x00e1; realmente el cach&#x00e9; de segundo nivel, o bien, en el peor de los casos, la base de datos, para ver si existe la fila."
+#. Tag: para
+#: example_parentchild.xml:227
+#, no-c-format
+msgid ""
+"Well, that's all very well for the case of a generated identifier, but what "
+"about assigned identifiers and composite identifiers? This is more "
+"difficult, since Hibernate can't use the identifier property to distinguish "
+"between a newly instantiated object (with an identifier assigned by the "
+"user) and an object loaded in a previous session. In this case, Hibernate "
+"will either use the timestamp or version property, or will actually query "
+"the second-level cache or, worst case, the database, to see if the row "
+"exists."
+msgstr ""
+"Bueno, todo eso está muy bien para el caso de un identificador generado, "
+"pero ¿qué de los identificadores asignados y de los identificadores "
+"compuestos? Esto es más difícil, ya que Hibernate no puede usar la propiedad "
+"identificadora para distinguir entre un objeto recién instanciado (con un "
+"identificador asignado por el usuario) y un objeto cargado en una sesión "
+"previa. En este caso, Hibernate bien usará la propiedad de versión o "
+"timestamp, o bien consultará realmente el caché de segundo nivel, o bien, en "
+"el peor de los casos, la base de datos, para ver si existe la fila."
 
-#: index.docbook:260
+#. Tag: title
+#: example_parentchild.xml:260
+#, no-c-format
 msgid "Conclusion"
-msgstr "Conclusi&#x00f3;n"
+msgstr "Conclusión"
 
-#: index.docbook:262
-msgid "There is quite a bit to digest here and it might look confusing first time around. However, in practice, it all works out very nicely. Most Hibernate applications use the parent / child pattern in many places."
-msgstr "Hay que resumir un poco aqu&#x00ed; y podr&#x00ed;a parecer confuso a la primera vez. Sin embargo, en la pr&#x00e1;ctica, todo funciona muy agradablemente. La mayor&#x00ed;a de las aplicaciones de Hibernate usan el patr&#x00f3;n padre / hijo en muchos sitios."
+#. Tag: para
+#: example_parentchild.xml:262
+#, no-c-format
+msgid ""
+"There is quite a bit to digest here and it might look confusing first time "
+"around. However, in practice, it all works out very nicely. Most Hibernate "
+"applications use the parent / child pattern in many places."
+msgstr ""
+"Hay que resumir un poco aquí y podría parecer confuso a la primera vez. Sin "
+"embargo, en la práctica, todo funciona muy agradablemente. La mayoría de las "
+"aplicaciones de Hibernate usan el patrón padre / hijo en muchos sitios."
 
-#: index.docbook:267
-msgid "We mentioned an alternative in the first paragraph. None of the above issues exist in the case of <literal>&lt;composite-element&gt;</literal> mappings, which have exactly the semantics of a parent / child relationship. Unfortunately, there are two big limitations to composite element classes: composite elements may not own collections, and they should not be the child of any entity other than the unique parent."
-msgstr "Hemos mencionado una alternativa en el primer p&#x00e1;rrafo. Ninguno de los temas anteriores existe en el caso de los mapeos <literal>&lt;composite-element&gt;</literal>, que tienen exactamente la sem&#x00e1;ntica de una relaci&#x00f3;n padre / hijo. Desafortunadamente, hay dos grandes limitaciones para las clases de elementos compuestos: los elementos compuestos no pueden poseer sus propias colecciones, y no deben ser el hijo de cualquier otra entidad que no sea su padre &#x00fa;nico."
-
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
-
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
-
+#. Tag: para
+#: example_parentchild.xml:267
+#, no-c-format
+msgid ""
+"We mentioned an alternative in the first paragraph. None of the above issues "
+"exist in the case of <literal>&lt;composite-element&gt;</literal> mappings, "
+"which have exactly the semantics of a parent / child relationship. "
+"Unfortunately, there are two big limitations to composite element classes: "
+"composite elements may not own collections, and they should not be the child "
+"of any entity other than the unique parent."
+msgstr ""
+"Hemos mencionado una alternativa en el primer párrafo. Ninguno de los temas "
+"anteriores existe en el caso de los mapeos <literal>&lt;composite-element&gt;"
+"</literal>, que tienen exactamente la semántica de una relación padre / "
+"hijo. Desafortunadamente, hay dos grandes limitaciones para las clases de "
+"elementos compuestos: los elementos compuestos no pueden poseer sus propias "
+"colecciones, y no deben ser el hijo de cualquier otra entidad que no sea su "
+"padre único."

Modified: core/trunk/documentation/manual/translations/es-ES/content/example_weblog.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/example_weblog.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/example_weblog.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,840 +1,484 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:5
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: example_weblog.xml:5
+#, no-c-format
 msgid "Example: Weblog Application"
-msgstr "Ejemplo: Aplicaci&#x00f3;n de Weblog"
+msgstr "Ejemplo: Aplicación de Weblog"
 
-#: index.docbook:8
+#. Tag: title
+#: example_weblog.xml:8
+#, no-c-format
 msgid "Persistent Classes"
 msgstr "Clases Persistentes"
 
-#: index.docbook:10
-msgid "The persistent classes represent a weblog, and an item posted in a weblog. They are to be modelled as a standard parent/child relationship, but we will use an ordered bag, instead of a set."
-msgstr "Las clases persistentes representan un weblog, y un &#x00ed;tem enviado a un weblog. Van a ser modelados como una relaci&#x00f3;n padre/hijo est&#x00f1;ndar, pero usaremos un bag ordenado, en vez de un conjunto (set)."
+#. Tag: para
+#: example_weblog.xml:10
+#, no-c-format
+msgid ""
+"The persistent classes represent a weblog, and an item posted in a weblog. "
+"They are to be modelled as a standard parent/child relationship, but we will "
+"use an ordered bag, instead of a set."
+msgstr ""
+"Las clases persistentes representan un weblog, y un ítem enviado a un "
+"weblog. Van a ser modelados como una relación padre/hijo estñndar, pero "
+"usaremos un bag ordenado, en vez de un conjunto (set)."
 
-#: index.docbook:16
+#. Tag: programlisting
+#: example_weblog.xml:16
+#, no-c-format
 msgid ""
-      "<![CDATA[package eg;\n"
-      "\n"
-      "import java.util.List;\n"
-      "\n"
-      "public class Blog {\n"
-      "    private Long _id;\n"
-      "    private String _name;\n"
-      "    private List _items;\n"
-      "\n"
-      "    public Long getId() {\n"
-      "        return _id;\n"
-      "    }\n"
-      "    public List getItems() {\n"
-      "        return _items;\n"
-      "    }\n"
-      "    public String getName() {\n"
-      "        return _name;\n"
-      "    }\n"
-      "    public void setId(Long long1) {\n"
-      "        _id = long1;\n"
-      "    }\n"
-      "    public void setItems(List list) {\n"
-      "        _items = list;\n"
-      "    }\n"
-      "    public void setName(String string) {\n"
-      "        _name = string;\n"
-      "    }\n"
-      "}]]>"
+"<![CDATA[package eg;\n"
+"\n"
+"import java.util.List;\n"
+"\n"
+"public class Blog {\n"
+"    private Long _id;\n"
+"    private String _name;\n"
+"    private List _items;\n"
+"\n"
+"    public Long getId() {\n"
+"        return _id;\n"
+"    }\n"
+"    public List getItems() {\n"
+"        return _items;\n"
+"    }\n"
+"    public String getName() {\n"
+"        return _name;\n"
+"    }\n"
+"    public void setId(Long long1) {\n"
+"        _id = long1;\n"
+"    }\n"
+"    public void setItems(List list) {\n"
+"        _items = list;\n"
+"    }\n"
+"    public void setName(String string) {\n"
+"        _name = string;\n"
+"    }\n"
+"}]]>"
 msgstr ""
-      "<![CDATA[package eg;\n"
-      "\n"
-      "import java.util.List;\n"
-      "\n"
-      "public class Blog {\n"
-      "    private Long _id;\n"
-      "    private String _name;\n"
-      "    private List _items;\n"
-      "\n"
-      "    public Long getId() {\n"
-      "        return _id;\n"
-      "    }\n"
-      "    public List getItems() {\n"
-      "        return _items;\n"
-      "    }\n"
-      "    public String getName() {\n"
-      "        return _name;\n"
-      "    }\n"
-      "    public void setId(Long long1) {\n"
-      "        _id = long1;\n"
-      "    }\n"
-      "    public void setItems(List list) {\n"
-      "        _items = list;\n"
-      "    }\n"
-      "    public void setName(String string) {\n"
-      "        _name = string;\n"
-      "    }\n"
-      "}]]>"
 
-#: index.docbook:18
+#. Tag: programlisting
+#: example_weblog.xml:18
+#, no-c-format
 msgid ""
-      "<![CDATA[package eg;\n"
-      "\n"
-      "import java.text.DateFormat;\n"
-      "import java.util.Calendar;\n"
-      "\n"
-      "public class BlogItem {\n"
-      "    private Long _id;\n"
-      "    private Calendar _datetime;\n"
-      "    private String _text;\n"
-      "    private String _title;\n"
-      "    private Blog _blog;\n"
-      "\n"
-      "    public Blog getBlog() {\n"
-      "        return _blog;\n"
-      "    }\n"
-      "    public Calendar getDatetime() {\n"
-      "        return _datetime;\n"
-      "    }\n"
-      "    public Long getId() {\n"
-      "        return _id;\n"
-      "    }\n"
-      "    public String getText() {\n"
-      "        return _text;\n"
-      "    }\n"
-      "    public String getTitle() {\n"
-      "        return _title;\n"
-      "    }\n"
-      "    public void setBlog(Blog blog) {\n"
-      "        _blog = blog;\n"
-      "    }\n"
-      "    public void setDatetime(Calendar calendar) {\n"
-      "        _datetime = calendar;\n"
-      "    }\n"
-      "    public void setId(Long long1) {\n"
-      "        _id = long1;\n"
-      "    }\n"
-      "    public void setText(String string) {\n"
-      "        _text = string;\n"
-      "    }\n"
-      "    public void setTitle(String string) {\n"
-      "        _title = string;\n"
-      "    }\n"
-      "}]]>"
+"<![CDATA[package eg;\n"
+"\n"
+"import java.text.DateFormat;\n"
+"import java.util.Calendar;\n"
+"\n"
+"public class BlogItem {\n"
+"    private Long _id;\n"
+"    private Calendar _datetime;\n"
+"    private String _text;\n"
+"    private String _title;\n"
+"    private Blog _blog;\n"
+"\n"
+"    public Blog getBlog() {\n"
+"        return _blog;\n"
+"    }\n"
+"    public Calendar getDatetime() {\n"
+"        return _datetime;\n"
+"    }\n"
+"    public Long getId() {\n"
+"        return _id;\n"
+"    }\n"
+"    public String getText() {\n"
+"        return _text;\n"
+"    }\n"
+"    public String getTitle() {\n"
+"        return _title;\n"
+"    }\n"
+"    public void setBlog(Blog blog) {\n"
+"        _blog = blog;\n"
+"    }\n"
+"    public void setDatetime(Calendar calendar) {\n"
+"        _datetime = calendar;\n"
+"    }\n"
+"    public void setId(Long long1) {\n"
+"        _id = long1;\n"
+"    }\n"
+"    public void setText(String string) {\n"
+"        _text = string;\n"
+"    }\n"
+"    public void setTitle(String string) {\n"
+"        _title = string;\n"
+"    }\n"
+"}]]>"
 msgstr ""
-      "<![CDATA[package eg;\n"
-      "\n"
-      "import java.text.DateFormat;\n"
-      "import java.util.Calendar;\n"
-      "\n"
-      "public class BlogItem {\n"
-      "    private Long _id;\n"
-      "    private Calendar _datetime;\n"
-      "    private String _text;\n"
-      "    private String _title;\n"
-      "    private Blog _blog;\n"
-      "\n"
-      "    public Blog getBlog() {\n"
-      "        return _blog;\n"
-      "    }\n"
-      "    public Calendar getDatetime() {\n"
-      "        return _datetime;\n"
-      "    }\n"
-      "    public Long getId() {\n"
-      "        return _id;\n"
-      "    }\n"
-      "    public String getText() {\n"
-      "        return _text;\n"
-      "    }\n"
-      "    public String getTitle() {\n"
-      "        return _title;\n"
-      "    }\n"
-      "    public void setBlog(Blog blog) {\n"
-      "        _blog = blog;\n"
-      "    }\n"
-      "    public void setDatetime(Calendar calendar) {\n"
-      "        _datetime = calendar;\n"
-      "    }\n"
-      "    public void setId(Long long1) {\n"
-      "        _id = long1;\n"
-      "    }\n"
-      "    public void setText(String string) {\n"
-      "        _text = string;\n"
-      "    }\n"
-      "    public void setTitle(String string) {\n"
-      "        _title = string;\n"
-      "    }\n"
-      "}]]>"
 
-#: index.docbook:23
+#. Tag: title
+#: example_weblog.xml:23
+#, no-c-format
 msgid "Hibernate Mappings"
 msgstr "Mapeos de Hibernate"
 
-#: index.docbook:25
+#. Tag: para
+#: example_weblog.xml:25
+#, no-c-format
 msgid "The XML mappings should now be quite straightforward."
 msgstr "Los mapeos XML ahora deben ser absolutamente directos."
 
-#: index.docbook:29
+#. Tag: programlisting
+#: example_weblog.xml:29
+#, no-c-format
 msgid ""
-      "<![CDATA[<?xml version=\"1.0\"?>\n"
-      "<!DOCTYPE hibernate-mapping PUBLIC\n"
-      "    \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
-      "    \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
-      "\n"
-      "<hibernate-mapping package=\"eg\">\n"
-      "\n"
-      "    <class\n"
-      "        name=\"Blog\"\n"
-      "        table=\"BLOGS\">\n"
-      "\n"
-      "        <id\n"
-      "            name=\"id\"\n"
-      "            column=\"BLOG_ID\">\n"
-      "\n"
-      "            <generator class=\"native\"/>\n"
-      "\n"
-      "        </id>\n"
-      "\n"
-      "        <property\n"
-      "            name=\"name\"\n"
-      "            column=\"NAME\"\n"
-      "            not-null=\"true\"\n"
-      "            unique=\"true\"/>\n"
-      "\n"
-      "        <bag\n"
-      "            name=\"items\"\n"
-      "            inverse=\"true\"\n"
-      "            order-by=\"DATE_TIME\"\n"
-      "            cascade=\"all\">\n"
-      "\n"
-      "            <key column=\"BLOG_ID\"/>\n"
-      "            <one-to-many class=\"BlogItem\"/>\n"
-      "\n"
-      "        </bag>\n"
-      "\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
+"<![CDATA[<?xml version=\"1.0\"?>\n"
+"<!DOCTYPE hibernate-mapping PUBLIC\n"
+"    \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+"    \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+"\n"
+"<hibernate-mapping package=\"eg\">\n"
+"\n"
+"    <class\n"
+"        name=\"Blog\"\n"
+"        table=\"BLOGS\">\n"
+"\n"
+"        <id\n"
+"            name=\"id\"\n"
+"            column=\"BLOG_ID\">\n"
+"\n"
+"            <generator class=\"native\"/>\n"
+"\n"
+"        </id>\n"
+"\n"
+"        <property\n"
+"            name=\"name\"\n"
+"            column=\"NAME\"\n"
+"            not-null=\"true\"\n"
+"            unique=\"true\"/>\n"
+"\n"
+"        <bag\n"
+"            name=\"items\"\n"
+"            inverse=\"true\"\n"
+"            order-by=\"DATE_TIME\"\n"
+"            cascade=\"all\">\n"
+"\n"
+"            <key column=\"BLOG_ID\"/>\n"
+"            <one-to-many class=\"BlogItem\"/>\n"
+"\n"
+"        </bag>\n"
+"\n"
+"    </class>\n"
+"\n"
+"</hibernate-mapping>]]>"
 msgstr ""
-      "<![CDATA[<?xml version=\"1.0\"?>\n"
-      "<!DOCTYPE hibernate-mapping PUBLIC\n"
-      "    \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
-      "    \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
-      "\n"
-      "<hibernate-mapping package=\"eg\">\n"
-      "\n"
-      "    <class\n"
-      "        name=\"Blog\"\n"
-      "        table=\"BLOGS\">\n"
-      "\n"
-      "        <id\n"
-      "            name=\"id\"\n"
-      "            column=\"BLOG_ID\">\n"
-      "\n"
-      "            <generator class=\"native\"/>\n"
-      "\n"
-      "        </id>\n"
-      "\n"
-      "        <property\n"
-      "            name=\"name\"\n"
-      "            column=\"NAME\"\n"
-      "            not-null=\"true\"\n"
-      "            unique=\"true\"/>\n"
-      "\n"
-      "        <bag\n"
-      "            name=\"items\"\n"
-      "            inverse=\"true\"\n"
-      "            order-by=\"DATE_TIME\"\n"
-      "            cascade=\"all\">\n"
-      "\n"
-      "            <key column=\"BLOG_ID\"/>\n"
-      "            <one-to-many class=\"BlogItem\"/>\n"
-      "\n"
-      "        </bag>\n"
-      "\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
 
-#: index.docbook:31
+#. Tag: programlisting
+#: example_weblog.xml:31
+#, no-c-format
 msgid ""
-      "<![CDATA[<?xml version=\"1.0\"?>\n"
-      "<!DOCTYPE hibernate-mapping PUBLIC\n"
-      "    \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
-      "    \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
-      "\n"
-      "<hibernate-mapping package=\"eg\">\n"
-      "\n"
-      "    <class\n"
-      "        name=\"BlogItem\"\n"
-      "        table=\"BLOG_ITEMS\"\n"
-      "        dynamic-update=\"true\">\n"
-      "\n"
-      "        <id\n"
-      "            name=\"id\"\n"
-      "            column=\"BLOG_ITEM_ID\">\n"
-      "\n"
-      "            <generator class=\"native\"/>\n"
-      "\n"
-      "        </id>\n"
-      "\n"
-      "        <property\n"
-      "            name=\"title\"\n"
-      "            column=\"TITLE\"\n"
-      "            not-null=\"true\"/>\n"
-      "\n"
-      "        <property\n"
-      "            name=\"text\"\n"
-      "            column=\"TEXT\"\n"
-      "            not-null=\"true\"/>\n"
-      "\n"
-      "        <property\n"
-      "            name=\"datetime\"\n"
-      "            column=\"DATE_TIME\"\n"
-      "            not-null=\"true\"/>\n"
-      "\n"
-      "        <many-to-one\n"
-      "            name=\"blog\"\n"
-      "            column=\"BLOG_ID\"\n"
-      "            not-null=\"true\"/>\n"
-      "\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
+"<![CDATA[<?xml version=\"1.0\"?>\n"
+"<!DOCTYPE hibernate-mapping PUBLIC\n"
+"    \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+"    \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+"\n"
+"<hibernate-mapping package=\"eg\">\n"
+"\n"
+"    <class\n"
+"        name=\"BlogItem\"\n"
+"        table=\"BLOG_ITEMS\"\n"
+"        dynamic-update=\"true\">\n"
+"\n"
+"        <id\n"
+"            name=\"id\"\n"
+"            column=\"BLOG_ITEM_ID\">\n"
+"\n"
+"            <generator class=\"native\"/>\n"
+"\n"
+"        </id>\n"
+"\n"
+"        <property\n"
+"            name=\"title\"\n"
+"            column=\"TITLE\"\n"
+"            not-null=\"true\"/>\n"
+"\n"
+"        <property\n"
+"            name=\"text\"\n"
+"            column=\"TEXT\"\n"
+"            not-null=\"true\"/>\n"
+"\n"
+"        <property\n"
+"            name=\"datetime\"\n"
+"            column=\"DATE_TIME\"\n"
+"            not-null=\"true\"/>\n"
+"\n"
+"        <many-to-one\n"
+"            name=\"blog\"\n"
+"            column=\"BLOG_ID\"\n"
+"            not-null=\"true\"/>\n"
+"\n"
+"    </class>\n"
+"\n"
+"</hibernate-mapping>]]>"
 msgstr ""
-      "<![CDATA[<?xml version=\"1.0\"?>\n"
-      "<!DOCTYPE hibernate-mapping PUBLIC\n"
-      "    \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
-      "    \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
-      "\n"
-      "<hibernate-mapping package=\"eg\">\n"
-      "\n"
-      "    <class\n"
-      "        name=\"BlogItem\"\n"
-      "        table=\"BLOG_ITEMS\"\n"
-      "        dynamic-update=\"true\">\n"
-      "\n"
-      "        <id\n"
-      "            name=\"id\"\n"
-      "            column=\"BLOG_ITEM_ID\">\n"
-      "\n"
-      "            <generator class=\"native\"/>\n"
-      "\n"
-      "        </id>\n"
-      "\n"
-      "        <property\n"
-      "            name=\"title\"\n"
-      "            column=\"TITLE\"\n"
-      "            not-null=\"true\"/>\n"
-      "\n"
-      "        <property\n"
-      "            name=\"text\"\n"
-      "            column=\"TEXT\"\n"
-      "            not-null=\"true\"/>\n"
-      "\n"
-      "        <property\n"
-      "            name=\"datetime\"\n"
-      "            column=\"DATE_TIME\"\n"
-      "            not-null=\"true\"/>\n"
-      "\n"
-      "        <many-to-one\n"
-      "            name=\"blog\"\n"
-      "            column=\"BLOG_ID\"\n"
-      "            not-null=\"true\"/>\n"
-      "\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
 
-#: index.docbook:36
+#. Tag: title
+#: example_weblog.xml:36
+#, no-c-format
 msgid "Hibernate Code"
-msgstr "C&#x00f3;digo Hibernate"
+msgstr "Código Hibernate"
 
-#: index.docbook:38
-msgid "The following class demonstrates some of the kinds of things we can do with these classes, using Hibernate."
-msgstr "La siguiente clase demuestra algunos de los tipos de cosas que podemos haces con estas clases, usando Hibernate."
-
-#: index.docbook:43
+#. Tag: para
+#: example_weblog.xml:38
+#, no-c-format
 msgid ""
-      "<![CDATA[package eg;\n"
-      "\n"
-      "import java.util.ArrayList;\n"
-      "import java.util.Calendar;\n"
-      "import java.util.Iterator;\n"
-      "import java.util.List;\n"
-      "\n"
-      "import org.hibernate.HibernateException;\n"
-      "import org.hibernate.Query;\n"
-      "import org.hibernate.Session;\n"
-      "import org.hibernate.SessionFactory;\n"
-      "import org.hibernate.Transaction;\n"
-      "import org.hibernate.cfg.Configuration;\n"
-      "import org.hibernate.tool.hbm2ddl.SchemaExport;\n"
-      "\n"
-      "public class BlogMain {\n"
-      "    \n"
-      "    private SessionFactory _sessions;\n"
-      "    \n"
-      "    public void configure() throws HibernateException {\n"
-      "        _sessions = new Configuration()\n"
-      "            .addClass(Blog.class)\n"
-      "            .addClass(BlogItem.class)\n"
-      "            .buildSessionFactory();\n"
-      "    }\n"
-      "    \n"
-      "    public void exportTables() throws HibernateException {\n"
-      "        Configuration cfg = new Configuration()\n"
-      "            .addClass(Blog.class)\n"
-      "            .addClass(BlogItem.class);\n"
-      "        new SchemaExport(cfg).create(true, true);\n"
-      "    }\n"
-      "    \n"
-      "    public Blog createBlog(String name) throws HibernateException {\n"
-      "        \n"
-      "        Blog blog = new Blog();\n"
-      "        blog.setName(name);\n"
-      "        blog.setItems( new ArrayList() );\n"
-      "        \n"
-      "        Session session = _sessions.openSession();\n"
-      "        Transaction tx = null;\n"
-      "        try {\n"
-      "            tx = session.beginTransaction();\n"
-      "            session.persist(blog);\n"
-      "            tx.commit();\n"
-      "        }\n"
-      "        catch (HibernateException he) {\n"
-      "            if (tx!=null) tx.rollback();\n"
-      "            throw he;\n"
-      "        }\n"
-      "        finally {\n"
-      "            session.close();\n"
-      "        }\n"
-      "        return blog;\n"
-      "    }\n"
-      "    \n"
-      "    public BlogItem createBlogItem(Blog blog, String title, String text)\n"
-      "                        throws HibernateException {\n"
-      "        \n"
-      "        BlogItem item = new BlogItem();\n"
-      "        item.setTitle(title);\n"
-      "        item.setText(text);\n"
-      "        item.setBlog(blog);\n"
-      "        item.setDatetime( Calendar.getInstance() );\n"
-      "        blog.getItems().add(item);\n"
-      "        \n"
-      "        Session session = _sessions.openSession();\n"
-      "        Transaction tx = null;\n"
-      "        try {\n"
-      "            tx = session.beginTransaction();\n"
-      "            session.update(blog);\n"
-      "            tx.commit();\n"
-      "        }\n"
-      "        catch (HibernateException he) {\n"
-      "            if (tx!=null) tx.rollback();\n"
-      "            throw he;\n"
-      "        }\n"
-      "        finally {\n"
-      "            session.close();\n"
-      "        }\n"
-      "        return item;\n"
-      "    }\n"
-      "    \n"
-      "    public BlogItem createBlogItem(Long blogid, String title, String text)\n"
-      "                        throws HibernateException {\n"
-      "        \n"
-      "        BlogItem item = new BlogItem();\n"
-      "        item.setTitle(title);\n"
-      "        item.setText(text);\n"
-      "        item.setDatetime( Calendar.getInstance() );\n"
-      "        \n"
-      "        Session session = _sessions.openSession();\n"
-      "        Transaction tx = null;\n"
-      "        try {\n"
-      "            tx = session.beginTransaction();\n"
-      "            Blog blog = (Blog) session.load(Blog.class, blogid);\n"
-      "            item.setBlog(blog);\n"
-      "            blog.getItems().add(item);\n"
-      "            tx.commit();\n"
-      "        }\n"
-      "        catch (HibernateException he) {\n"
-      "            if (tx!=null) tx.rollback();\n"
-      "            throw he;\n"
-      "        }\n"
-      "        finally {\n"
-      "            session.close();\n"
-      "        }\n"
-      "        return item;\n"
-      "    }\n"
-      "    \n"
-      "    public void updateBlogItem(BlogItem item, String text)\n"
-      "                    throws HibernateException {\n"
-      "        \n"
-      "        item.setText(text);\n"
-      "        \n"
-      "        Session session = _sessions.openSession();\n"
-      "        Transaction tx = null;\n"
-      "        try {\n"
-      "            tx = session.beginTransaction();\n"
-      "            session.update(item);\n"
-      "            tx.commit();\n"
-      "        }\n"
-      "        catch (HibernateException he) {\n"
-      "            if (tx!=null) tx.rollback();\n"
-      "            throw he;\n"
-      "        }\n"
-      "        finally {\n"
-      "            session.close();\n"
-      "        }\n"
-      "    }\n"
-      "    \n"
-      "    public void updateBlogItem(Long itemid, String text)\n"
-      "                    throws HibernateException {\n"
-      "    \n"
-      "        Session session = _sessions.openSession();\n"
-      "        Transaction tx = null;\n"
-      "        try {\n"
-      "            tx = session.beginTransaction();\n"
-      "            BlogItem item = (BlogItem) session.load(BlogItem.class, itemid);\n"
-      "            item.setText(text);\n"
-      "            tx.commit();\n"
-      "        }\n"
-      "        catch (HibernateException he) {\n"
-      "            if (tx!=null) tx.rollback();\n"
-      "            throw he;\n"
-      "        }\n"
-      "        finally {\n"
-      "            session.close();\n"
-      "        }\n"
-      "    }\n"
-      "    \n"
-      "    public List listAllBlogNamesAndItemCounts(int max)\n"
-      "                    throws HibernateException {\n"
-      "        \n"
-      "        Session session = _sessions.openSession();\n"
-      "        Transaction tx = null;\n"
-      "        List result = null;\n"
-      "        try {\n"
-      "            tx = session.beginTransaction();\n"
-      "            Query q = session.createQuery(\n"
-      "                \"select blog.id, blog.name, count(blogItem) \" +\n"
-      "                \"from Blog as blog \" +\n"
-      "                \"left outer join blog.items as blogItem \" +\n"
-      "                \"group by blog.name, blog.id \" +\n"
-      "                \"order by max(blogItem.datetime)\"\n"
-      "            );\n"
-      "            q.setMaxResults(max);\n"
-      "            result = q.list();\n"
-      "            tx.commit();\n"
-      "        }\n"
-      "        catch (HibernateException he) {\n"
-      "            if (tx!=null) tx.rollback();\n"
-      "            throw he;\n"
-      "        }\n"
-      "        finally {\n"
-      "            session.close();\n"
-      "        }\n"
-      "        return result;\n"
-      "    }\n"
-      "    \n"
-      "    public Blog getBlogAndAllItems(Long blogid)\n"
-      "                    throws HibernateException {\n"
-      "        \n"
-      "        Session session = _sessions.openSession();\n"
-      "        Transaction tx = null;\n"
-      "        Blog blog = null;\n"
-      "        try {\n"
-      "            tx = session.beginTransaction();\n"
-      "            Query q = session.createQuery(\n"
-      "                \"from Blog as blog \" +\n"
-      "                \"left outer join fetch blog.items \" +\n"
-      "                \"where blog.id = :blogid\"\n"
-      "            );\n"
-      "            q.setParameter(\"blogid\", blogid);\n"
-      "            blog  = (Blog) q.uniqueResult();\n"
-      "            tx.commit();\n"
-      "        }\n"
-      "        catch (HibernateException he) {\n"
-      "            if (tx!=null) tx.rollback();\n"
-      "            throw he;\n"
-      "        }\n"
-      "        finally {\n"
-      "            session.close();\n"
-      "        }\n"
-      "        return blog;\n"
-      "    }\n"
-      "    \n"
-      "    public List listBlogsAndRecentItems() throws HibernateException {\n"
-      "        \n"
-      "        Session session = _sessions.openSession();\n"
-      "        Transaction tx = null;\n"
-      "        List result = null;\n"
-      "        try {\n"
-      "            tx = session.beginTransaction();\n"
-      "            Query q = session.createQuery(\n"
-      "                \"from Blog as blog \" +\n"
-      "                \"inner join blog.items as blogItem \" +\n"
-      "                \"where blogItem.datetime > :minDate\"\n"
-      "            );\n"
-      "\n"
-      "            Calendar cal = Calendar.getInstance();\n"
-      "            cal.roll(Calendar.MONTH, false);\n"
-      "            q.setCalendar(\"minDate\", cal);\n"
-      "            \n"
-      "            result = q.list();\n"
-      "            tx.commit();\n"
-      "        }\n"
-      "        catch (HibernateException he) {\n"
-      "            if (tx!=null) tx.rollback();\n"
-      "            throw he;\n"
-      "        }\n"
-      "        finally {\n"
-      "            session.close();\n"
-      "        }\n"
-      "        return result;\n"
-      "    }\n"
-      "}]]>"
+"The following class demonstrates some of the kinds of things we can do with "
+"these classes, using Hibernate."
 msgstr ""
-      "<![CDATA[package eg;\n"
-      "\n"
-      "import java.util.ArrayList;\n"
-      "import java.util.Calendar;\n"
-      "import java.util.Iterator;\n"
-      "import java.util.List;\n"
-      "\n"
-      "import org.hibernate.HibernateException;\n"
-      "import org.hibernate.Query;\n"
-      "import org.hibernate.Session;\n"
-      "import org.hibernate.SessionFactory;\n"
-      "import org.hibernate.Transaction;\n"
-      "import org.hibernate.cfg.Configuration;\n"
-      "import org.hibernate.tool.hbm2ddl.SchemaExport;\n"
-      "\n"
-      "public class BlogMain {\n"
-      "    \n"
-      "    private SessionFactory _sessions;\n"
-      "    \n"
-      "    public void configure() throws HibernateException {\n"
-      "        _sessions = new Configuration()\n"
-      "            .addClass(Blog.class)\n"
-      "            .addClass(BlogItem.class)\n"
-      "            .buildSessionFactory();\n"
-      "    }\n"
-      "    \n"
-      "    public void exportTables() throws HibernateException {\n"
-      "        Configuration cfg = new Configuration()\n"
-      "            .addClass(Blog.class)\n"
-      "            .addClass(BlogItem.class);\n"
-      "        new SchemaExport(cfg).create(true, true);\n"
-      "    }\n"
-      "    \n"
-      "    public Blog createBlog(String name) throws HibernateException {\n"
-      "        \n"
-      "        Blog blog = new Blog();\n"
-      "        blog.setName(name);\n"
-      "        blog.setItems( new ArrayList() );\n"
-      "        \n"
-      "        Session session = _sessions.openSession();\n"
-      "        Transaction tx = null;\n"
-      "        try {\n"
-      "            tx = session.beginTransaction();\n"
-      "            session.persist(blog);\n"
-      "            tx.commit();\n"
-      "        }\n"
-      "        catch (HibernateException he) {\n"
-      "            if (tx!=null) tx.rollback();\n"
-      "            throw he;\n"
-      "        }\n"
-      "        finally {\n"
-      "            session.close();\n"
-      "        }\n"
-      "        return blog;\n"
-      "    }\n"
-      "    \n"
-      "    public BlogItem createBlogItem(Blog blog, String title, String text)\n"
-      "                        throws HibernateException {\n"
-      "        \n"
-      "        BlogItem item = new BlogItem();\n"
-      "        item.setTitle(title);\n"
-      "        item.setText(text);\n"
-      "        item.setBlog(blog);\n"
-      "        item.setDatetime( Calendar.getInstance() );\n"
-      "        blog.getItems().add(item);\n"
-      "        \n"
-      "        Session session = _sessions.openSession();\n"
-      "        Transaction tx = null;\n"
-      "        try {\n"
-      "            tx = session.beginTransaction();\n"
-      "            session.update(blog);\n"
-      "            tx.commit();\n"
-      "        }\n"
-      "        catch (HibernateException he) {\n"
-      "            if (tx!=null) tx.rollback();\n"
-      "            throw he;\n"
-      "        }\n"
-      "        finally {\n"
-      "            session.close();\n"
-      "        }\n"
-      "        return item;\n"
-      "    }\n"
-      "    \n"
-      "    public BlogItem createBlogItem(Long blogid, String title, String text)\n"
-      "                        throws HibernateException {\n"
-      "        \n"
-      "        BlogItem item = new BlogItem();\n"
-      "        item.setTitle(title);\n"
-      "        item.setText(text);\n"
-      "        item.setDatetime( Calendar.getInstance() );\n"
-      "        \n"
-      "        Session session = _sessions.openSession();\n"
-      "        Transaction tx = null;\n"
-      "        try {\n"
-      "            tx = session.beginTransaction();\n"
-      "            Blog blog = (Blog) session.load(Blog.class, blogid);\n"
-      "            item.setBlog(blog);\n"
-      "            blog.getItems().add(item);\n"
-      "            tx.commit();\n"
-      "        }\n"
-      "        catch (HibernateException he) {\n"
-      "            if (tx!=null) tx.rollback();\n"
-      "            throw he;\n"
-      "        }\n"
-      "        finally {\n"
-      "            session.close();\n"
-      "        }\n"
-      "        return item;\n"
-      "    }\n"
-      "    \n"
-      "    public void updateBlogItem(BlogItem item, String text)\n"
-      "                    throws HibernateException {\n"
-      "        \n"
-      "        item.setText(text);\n"
-      "        \n"
-      "        Session session = _sessions.openSession();\n"
-      "        Transaction tx = null;\n"
-      "        try {\n"
-      "            tx = session.beginTransaction();\n"
-      "            session.update(item);\n"
-      "            tx.commit();\n"
-      "        }\n"
-      "        catch (HibernateException he) {\n"
-      "            if (tx!=null) tx.rollback();\n"
-      "            throw he;\n"
-      "        }\n"
-      "        finally {\n"
-      "            session.close();\n"
-      "        }\n"
-      "    }\n"
-      "    \n"
-      "    public void updateBlogItem(Long itemid, String text)\n"
-      "                    throws HibernateException {\n"
-      "    \n"
-      "        Session session = _sessions.openSession();\n"
-      "        Transaction tx = null;\n"
-      "        try {\n"
-      "            tx = session.beginTransaction();\n"
-      "            BlogItem item = (BlogItem) session.load(BlogItem.class, itemid);\n"
-      "            item.setText(text);\n"
-      "            tx.commit();\n"
-      "        }\n"
-      "        catch (HibernateException he) {\n"
-      "            if (tx!=null) tx.rollback();\n"
-      "            throw he;\n"
-      "        }\n"
-      "        finally {\n"
-      "            session.close();\n"
-      "        }\n"
-      "    }\n"
-      "    \n"
-      "    public List listAllBlogNamesAndItemCounts(int max)\n"
-      "                    throws HibernateException {\n"
-      "        \n"
-      "        Session session = _sessions.openSession();\n"
-      "        Transaction tx = null;\n"
-      "        List result = null;\n"
-      "        try {\n"
-      "            tx = session.beginTransaction();\n"
-      "            Query q = session.createQuery(\n"
-      "                \"select blog.id, blog.name, count(blogItem) \" +\n"
-      "                \"from Blog as blog \" +\n"
-      "                \"left outer join blog.items as blogItem \" +\n"
-      "                \"group by blog.name, blog.id \" +\n"
-      "                \"order by max(blogItem.datetime)\"\n"
-      "            );\n"
-      "            q.setMaxResults(max);\n"
-      "            result = q.list();\n"
-      "            tx.commit();\n"
-      "        }\n"
-      "        catch (HibernateException he) {\n"
-      "            if (tx!=null) tx.rollback();\n"
-      "            throw he;\n"
-      "        }\n"
-      "        finally {\n"
-      "            session.close();\n"
-      "        }\n"
-      "        return result;\n"
-      "    }\n"
-      "    \n"
-      "    public Blog getBlogAndAllItems(Long blogid)\n"
-      "                    throws HibernateException {\n"
-      "        \n"
-      "        Session session = _sessions.openSession();\n"
-      "        Transaction tx = null;\n"
-      "        Blog blog = null;\n"
-      "        try {\n"
-      "            tx = session.beginTransaction();\n"
-      "            Query q = session.createQuery(\n"
-      "                \"from Blog as blog \" +\n"
-      "                \"left outer join fetch blog.items \" +\n"
-      "                \"where blog.id = :blogid\"\n"
-      "            );\n"
-      "            q.setParameter(\"blogid\", blogid);\n"
-      "            blog  = (Blog) q.uniqueResult();\n"
-      "            tx.commit();\n"
-      "        }\n"
-      "        catch (HibernateException he) {\n"
-      "            if (tx!=null) tx.rollback();\n"
-      "            throw he;\n"
-      "        }\n"
-      "        finally {\n"
-      "            session.close();\n"
-      "        }\n"
-      "        return blog;\n"
-      "    }\n"
-      "    \n"
-      "    public List listBlogsAndRecentItems() throws HibernateException {\n"
-      "        \n"
-      "        Session session = _sessions.openSession();\n"
-      "        Transaction tx = null;\n"
-      "        List result = null;\n"
-      "        try {\n"
-      "            tx = session.beginTransaction();\n"
-      "            Query q = session.createQuery(\n"
-      "                \"from Blog as blog \" +\n"
-      "                \"inner join blog.items as blogItem \" +\n"
-      "                \"where blogItem.datetime > :minDate\"\n"
-      "            );\n"
-      "\n"
-      "            Calendar cal = Calendar.getInstance();\n"
-      "            cal.roll(Calendar.MONTH, false);\n"
-      "            q.setCalendar(\"minDate\", cal);\n"
-      "            \n"
-      "            result = q.list();\n"
-      "            tx.commit();\n"
-      "        }\n"
-      "        catch (HibernateException he) {\n"
-      "            if (tx!=null) tx.rollback();\n"
-      "            throw he;\n"
-      "        }\n"
-      "        finally {\n"
-      "            session.close();\n"
-      "        }\n"
-      "        return result;\n"
-      "    }\n"
-      "}]]>"
+"La siguiente clase demuestra algunos de los tipos de cosas que podemos haces "
+"con estas clases, usando Hibernate."
 
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
-
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
-
+#. Tag: programlisting
+#: example_weblog.xml:43
+#, no-c-format
+msgid ""
+"<![CDATA[package eg;\n"
+"\n"
+"import java.util.ArrayList;\n"
+"import java.util.Calendar;\n"
+"import java.util.Iterator;\n"
+"import java.util.List;\n"
+"\n"
+"import org.hibernate.HibernateException;\n"
+"import org.hibernate.Query;\n"
+"import org.hibernate.Session;\n"
+"import org.hibernate.SessionFactory;\n"
+"import org.hibernate.Transaction;\n"
+"import org.hibernate.cfg.Configuration;\n"
+"import org.hibernate.tool.hbm2ddl.SchemaExport;\n"
+"\n"
+"public class BlogMain {\n"
+"    \n"
+"    private SessionFactory _sessions;\n"
+"    \n"
+"    public void configure() throws HibernateException {\n"
+"        _sessions = new Configuration()\n"
+"            .addClass(Blog.class)\n"
+"            .addClass(BlogItem.class)\n"
+"            .buildSessionFactory();\n"
+"    }\n"
+"    \n"
+"    public void exportTables() throws HibernateException {\n"
+"        Configuration cfg = new Configuration()\n"
+"            .addClass(Blog.class)\n"
+"            .addClass(BlogItem.class);\n"
+"        new SchemaExport(cfg).create(true, true);\n"
+"    }\n"
+"    \n"
+"    public Blog createBlog(String name) throws HibernateException {\n"
+"        \n"
+"        Blog blog = new Blog();\n"
+"        blog.setName(name);\n"
+"        blog.setItems( new ArrayList() );\n"
+"        \n"
+"        Session session = _sessions.openSession();\n"
+"        Transaction tx = null;\n"
+"        try {\n"
+"            tx = session.beginTransaction();\n"
+"            session.persist(blog);\n"
+"            tx.commit();\n"
+"        }\n"
+"        catch (HibernateException he) {\n"
+"            if (tx!=null) tx.rollback();\n"
+"            throw he;\n"
+"        }\n"
+"        finally {\n"
+"            session.close();\n"
+"        }\n"
+"        return blog;\n"
+"    }\n"
+"    \n"
+"    public BlogItem createBlogItem(Blog blog, String title, String text)\n"
+"                        throws HibernateException {\n"
+"        \n"
+"        BlogItem item = new BlogItem();\n"
+"        item.setTitle(title);\n"
+"        item.setText(text);\n"
+"        item.setBlog(blog);\n"
+"        item.setDatetime( Calendar.getInstance() );\n"
+"        blog.getItems().add(item);\n"
+"        \n"
+"        Session session = _sessions.openSession();\n"
+"        Transaction tx = null;\n"
+"        try {\n"
+"            tx = session.beginTransaction();\n"
+"            session.update(blog);\n"
+"            tx.commit();\n"
+"        }\n"
+"        catch (HibernateException he) {\n"
+"            if (tx!=null) tx.rollback();\n"
+"            throw he;\n"
+"        }\n"
+"        finally {\n"
+"            session.close();\n"
+"        }\n"
+"        return item;\n"
+"    }\n"
+"    \n"
+"    public BlogItem createBlogItem(Long blogid, String title, String text)\n"
+"                        throws HibernateException {\n"
+"        \n"
+"        BlogItem item = new BlogItem();\n"
+"        item.setTitle(title);\n"
+"        item.setText(text);\n"
+"        item.setDatetime( Calendar.getInstance() );\n"
+"        \n"
+"        Session session = _sessions.openSession();\n"
+"        Transaction tx = null;\n"
+"        try {\n"
+"            tx = session.beginTransaction();\n"
+"            Blog blog = (Blog) session.load(Blog.class, blogid);\n"
+"            item.setBlog(blog);\n"
+"            blog.getItems().add(item);\n"
+"            tx.commit();\n"
+"        }\n"
+"        catch (HibernateException he) {\n"
+"            if (tx!=null) tx.rollback();\n"
+"            throw he;\n"
+"        }\n"
+"        finally {\n"
+"            session.close();\n"
+"        }\n"
+"        return item;\n"
+"    }\n"
+"    \n"
+"    public void updateBlogItem(BlogItem item, String text)\n"
+"                    throws HibernateException {\n"
+"        \n"
+"        item.setText(text);\n"
+"        \n"
+"        Session session = _sessions.openSession();\n"
+"        Transaction tx = null;\n"
+"        try {\n"
+"            tx = session.beginTransaction();\n"
+"            session.update(item);\n"
+"            tx.commit();\n"
+"        }\n"
+"        catch (HibernateException he) {\n"
+"            if (tx!=null) tx.rollback();\n"
+"            throw he;\n"
+"        }\n"
+"        finally {\n"
+"            session.close();\n"
+"        }\n"
+"    }\n"
+"    \n"
+"    public void updateBlogItem(Long itemid, String text)\n"
+"                    throws HibernateException {\n"
+"    \n"
+"        Session session = _sessions.openSession();\n"
+"        Transaction tx = null;\n"
+"        try {\n"
+"            tx = session.beginTransaction();\n"
+"            BlogItem item = (BlogItem) session.load(BlogItem.class, "
+"itemid);\n"
+"            item.setText(text);\n"
+"            tx.commit();\n"
+"        }\n"
+"        catch (HibernateException he) {\n"
+"            if (tx!=null) tx.rollback();\n"
+"            throw he;\n"
+"        }\n"
+"        finally {\n"
+"            session.close();\n"
+"        }\n"
+"    }\n"
+"    \n"
+"    public List listAllBlogNamesAndItemCounts(int max)\n"
+"                    throws HibernateException {\n"
+"        \n"
+"        Session session = _sessions.openSession();\n"
+"        Transaction tx = null;\n"
+"        List result = null;\n"
+"        try {\n"
+"            tx = session.beginTransaction();\n"
+"            Query q = session.createQuery(\n"
+"                \"select blog.id, blog.name, count(blogItem) \" +\n"
+"                \"from Blog as blog \" +\n"
+"                \"left outer join blog.items as blogItem \" +\n"
+"                \"group by blog.name, blog.id \" +\n"
+"                \"order by max(blogItem.datetime)\"\n"
+"            );\n"
+"            q.setMaxResults(max);\n"
+"            result = q.list();\n"
+"            tx.commit();\n"
+"        }\n"
+"        catch (HibernateException he) {\n"
+"            if (tx!=null) tx.rollback();\n"
+"            throw he;\n"
+"        }\n"
+"        finally {\n"
+"            session.close();\n"
+"        }\n"
+"        return result;\n"
+"    }\n"
+"    \n"
+"    public Blog getBlogAndAllItems(Long blogid)\n"
+"                    throws HibernateException {\n"
+"        \n"
+"        Session session = _sessions.openSession();\n"
+"        Transaction tx = null;\n"
+"        Blog blog = null;\n"
+"        try {\n"
+"            tx = session.beginTransaction();\n"
+"            Query q = session.createQuery(\n"
+"                \"from Blog as blog \" +\n"
+"                \"left outer join fetch blog.items \" +\n"
+"                \"where blog.id = :blogid\"\n"
+"            );\n"
+"            q.setParameter(\"blogid\", blogid);\n"
+"            blog  = (Blog) q.uniqueResult();\n"
+"            tx.commit();\n"
+"        }\n"
+"        catch (HibernateException he) {\n"
+"            if (tx!=null) tx.rollback();\n"
+"            throw he;\n"
+"        }\n"
+"        finally {\n"
+"            session.close();\n"
+"        }\n"
+"        return blog;\n"
+"    }\n"
+"    \n"
+"    public List listBlogsAndRecentItems() throws HibernateException {\n"
+"        \n"
+"        Session session = _sessions.openSession();\n"
+"        Transaction tx = null;\n"
+"        List result = null;\n"
+"        try {\n"
+"            tx = session.beginTransaction();\n"
+"            Query q = session.createQuery(\n"
+"                \"from Blog as blog \" +\n"
+"                \"inner join blog.items as blogItem \" +\n"
+"                \"where blogItem.datetime > :minDate\"\n"
+"            );\n"
+"\n"
+"            Calendar cal = Calendar.getInstance();\n"
+"            cal.roll(Calendar.MONTH, false);\n"
+"            q.setCalendar(\"minDate\", cal);\n"
+"            \n"
+"            result = q.list();\n"
+"            tx.commit();\n"
+"        }\n"
+"        catch (HibernateException he) {\n"
+"            if (tx!=null) tx.rollback();\n"
+"            throw he;\n"
+"        }\n"
+"        finally {\n"
+"            session.close();\n"
+"        }\n"
+"        return result;\n"
+"    }\n"
+"}]]>"
+msgstr ""

Modified: core/trunk/documentation/manual/translations/es-ES/content/filters.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/filters.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/filters.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,192 +1,294 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:5
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: filters.xml:5
+#, no-c-format
 msgid "Filtering data"
 msgstr "Filtrando datos"
 
-#: index.docbook:7
-msgid "Hibernate3 provides an innovative new approach to handling data with \"visibility\" rules. A <emphasis>Hibernate filter</emphasis> is a global, named, parameterized filter that may be enabled or disabled for a particular Hibernate session."
-msgstr "Hibernate3 provee un nuevo enfoque innovador para manejar datos con reglas de \"visibilidad\". Un <emphasis>filtro de Hibernate</emphasis> es un filtro global, con nombre y parametrizado que puede ser habilitado o deshabilitado para una sesión de Hibernate en particular."
+#. Tag: para
+#: filters.xml:7
+#, no-c-format
+msgid ""
+"Hibernate3 provides an innovative new approach to handling data with "
+"\"visibility\" rules. A <emphasis>Hibernate filter</emphasis> is a global, "
+"named, parameterized filter that may be enabled or disabled for a particular "
+"Hibernate session."
+msgstr ""
+"Hibernate3 provee un nuevo enfoque innovador para manejar datos con reglas "
+"de \"visibilidad\". Un <emphasis>filtro de Hibernate</emphasis> es un filtro "
+"global, con nombre y parametrizado que puede ser habilitado o deshabilitado "
+"para una sesión de Hibernate en particular."
 
-#: index.docbook:14
+#. Tag: title
+#: filters.xml:14
+#, no-c-format
 msgid "Hibernate filters"
 msgstr "Filtros de Hibernate"
 
-#: index.docbook:16
-msgid "Hibernate3 adds the ability to pre-define filter criteria and attach those filters at both a class and a collection level. A filter criteria is the ability to define a restriction clause very similiar to the existing \"where\" attribute available on the class and various collection elements. Except these filter conditions can be parameterized. The application can then make the decision at runtime whether given filters should be enabled and what their parameter values should be. Filters can be used like database views, but parameterized inside the application."
-msgstr "Hibernate3 añade la habilidad de predefinir criterios de filtros y unir esos filtros tanto a nivel de una clase como de una colección. Un criterio de filtro es la habilidad de definir una cláusula de restricción muy similar al atributo existente \"where\" disponible en el elemento class y varios elementos de colección. Excepto en que estos filtros pueden ser parametrizados. La aplicación puede tomar la decisión en tiempo de ejecución de qué filtros deben estar habilitados y cuáles deben ser sus parámetros. Los filtros pueden ser usados como vistas de base de datos, pero parametrizados dentro de la aplicación."
+#. Tag: para
+#: filters.xml:16
+#, no-c-format
+msgid ""
+"Hibernate3 adds the ability to pre-define filter criteria and attach those "
+"filters at both a class and a collection level. A filter criteria is the "
+"ability to define a restriction clause very similiar to the existing \"where"
+"\" attribute available on the class and various collection elements. Except "
+"these filter conditions can be parameterized. The application can then make "
+"the decision at runtime whether given filters should be enabled and what "
+"their parameter values should be. Filters can be used like database views, "
+"but parameterized inside the application."
+msgstr ""
+"Hibernate3 añade la habilidad de predefinir criterios de filtros y unir esos "
+"filtros tanto a nivel de una clase como de una colección. Un criterio de "
+"filtro es la habilidad de definir una cláusula de restricción muy similar al "
+"atributo existente \"where\" disponible en el elemento class y varios "
+"elementos de colección. Excepto en que estos filtros pueden ser "
+"parametrizados. La aplicación puede tomar la decisión en tiempo de ejecución "
+"de qué filtros deben estar habilitados y cuáles deben ser sus parámetros. "
+"Los filtros pueden ser usados como vistas de base de datos, pero "
+"parametrizados dentro de la aplicación."
 
-#: index.docbook:26
-msgid "In order to use filters, they must first be defined and then attached to the appropriate mapping elements. To define a filter, use the <literal>&lt;filter-def/&gt;</literal> element within a <literal>&lt;hibernate-mapping/&gt;</literal> element:"
-msgstr "Para usar los filtros, éstos deben primero ser definidos y luego unidos a los elementos de mapeo apropiados. Para definir un filtro, usa el elemento <literal>&lt;filter-def/&gt;</literal> dentro de un elemento <literal>&lt;hibernate-mapping/&gt;</literal>:"
+#. Tag: para
+#: filters.xml:26
+#, no-c-format
+msgid ""
+"In order to use filters, they must first be defined and then attached to the "
+"appropriate mapping elements. To define a filter, use the <literal>&lt;"
+"filter-def/&gt;</literal> element within a <literal>&lt;hibernate-mapping/"
+"&gt;</literal> element:"
+msgstr ""
+"Para usar los filtros, éstos deben primero ser definidos y luego unidos a "
+"los elementos de mapeo apropiados. Para definir un filtro, usa el elemento "
+"<literal>&lt;filter-def/&gt;</literal> dentro de un elemento <literal>&lt;"
+"hibernate-mapping/&gt;</literal>:"
 
-#: index.docbook:32
+#. Tag: programlisting
+#: filters.xml:32
+#, no-c-format
 msgid ""
-      "<![CDATA[<filter-def name=\"myFilter\">\n"
-      "    <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
-      "</filter-def>]]>"
+"<![CDATA[<filter-def name=\"myFilter\">\n"
+"    <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
+"</filter-def>]]>"
 msgstr ""
-      "<![CDATA[<filter-def name=\"myFilter\">\n"
-      "    <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
-      "</filter-def>]]>"
 
-#: index.docbook:34
+#. Tag: para
+#: filters.xml:34
+#, no-c-format
 msgid "Then, this filter can be attached to a class:"
 msgstr "Entonces este filtro puede ser unido a una clase:"
 
-#: index.docbook:38
+#. Tag: programlisting
+#: filters.xml:38
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"myClass\" ...>\n"
-      "    ...\n"
-      "    <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN\"/>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"myClass\" ...>\n"
+"    ...\n"
+"    <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN"
+"\"/>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"myClass\" ...>\n"
-      "    ...\n"
-      "    <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN\"/>\n"
-      "</class>]]>"
 
-#: index.docbook:40
+#. Tag: para
+#: filters.xml:40
+#, no-c-format
 msgid "or, to a collection:"
 msgstr "o a una colección:"
 
-#: index.docbook:44
+#. Tag: programlisting
+#: filters.xml:44
+#, no-c-format
 msgid ""
-      "<![CDATA[<set ...>\n"
-      "    <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN\"/>\n"
-      "</set>]]>"
+"<![CDATA[<set ...>\n"
+"    <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN"
+"\"/>\n"
+"</set>]]>"
 msgstr ""
-      "<![CDATA[<set ...>\n"
-      "    <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN\"/>\n"
-      "</set>]]>"
 
-#: index.docbook:46
+#. Tag: para
+#: filters.xml:46
+#, no-c-format
 msgid "or, even to both (or multiples of each) at the same time."
 msgstr "o incluso a ambos (o muchos de cada uno) al mismo tiempo."
 
-#: index.docbook:50
-msgid "The methods on <literal>Session</literal> are: <literal>enableFilter(String filterName)</literal>, <literal>getEnabledFilter(String filterName)</literal>, and <literal>disableFilter(String filterName)</literal>. By default, filters are <emphasis>not</emphasis> enabled for a given session; they must be explcitly enabled through use of the <literal>Session.enabledFilter()</literal> method, which returns an instance of the <literal>Filter</literal> interface. Using the simple filter defined above, this would look like:"
-msgstr "Los métodos en <literal>Session</literal> son: <literal>enableFilter(String filterName)</literal>, <literal>getEnabledFilter(String filterName)</literal>, y <literal>disableFilter(String filterName)</literal>. Por defecto, los filtros <emphasis>no</emphasis> están habilitados para una sesión dada; deben ser habilitados explícitamente por medio del uso del método <literal>Session.enableFilter()</literal>, que devuelve una instancia de la interface <literal>Filter</literal>. Usando el filtro simple definido arriba, esto se vería así:"
+#. Tag: para
+#: filters.xml:50
+#, no-c-format
+msgid ""
+"The methods on <literal>Session</literal> are: <literal>enableFilter(String "
+"filterName)</literal>, <literal>getEnabledFilter(String filterName)</"
+"literal>, and <literal>disableFilter(String filterName)</literal>. By "
+"default, filters are <emphasis>not</emphasis> enabled for a given session; "
+"they must be explcitly enabled through use of the <literal>Session."
+"enabledFilter()</literal> method, which returns an instance of the "
+"<literal>Filter</literal> interface. Using the simple filter defined above, "
+"this would look like:"
+msgstr ""
+"Los métodos en <literal>Session</literal> son: <literal>enableFilter(String "
+"filterName)</literal>, <literal>getEnabledFilter(String filterName)</"
+"literal>, y <literal>disableFilter(String filterName)</literal>. Por "
+"defecto, los filtros <emphasis>no</emphasis> están habilitados para una "
+"sesión dada; deben ser habilitados explícitamente por medio del uso del "
+"método <literal>Session.enableFilter()</literal>, que devuelve una instancia "
+"de la interface <literal>Filter</literal>. Usando el filtro simple definido "
+"arriba, esto se vería así:"
 
-#: index.docbook:59
-msgid "<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam\", \"some-value\");]]>"
-msgstr "<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam\", \"some-value\");]]>"
+#. Tag: programlisting
+#: filters.xml:59
+#, no-c-format
+msgid ""
+"<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam\", "
+"\"some-value\");]]>"
+msgstr ""
 
-#: index.docbook:61
-msgid "Note that methods on the org.hibernate.Filter interface do allow the method-chaining common to much of Hibernate."
-msgstr "Nota que los métodos en la interface org.hibernate.Filter permiten el encadenamiento de métodos común en gran parte de Hibernate."
+#. Tag: para
+#: filters.xml:61
+#, no-c-format
+msgid ""
+"Note that methods on the org.hibernate.Filter interface do allow the method-"
+"chaining common to much of Hibernate."
+msgstr ""
+"Nota que los métodos en la interface org.hibernate.Filter permiten el "
+"encadenamiento de métodos común en gran parte de Hibernate."
 
-#: index.docbook:65
-msgid "A full example, using temporal data with an effective record date pattern:"
-msgstr "Un ejemplo completo, usando datos temporales con un patrón efectivo de fechas de registro:"
+#. Tag: para
+#: filters.xml:65
+#, no-c-format
+msgid ""
+"A full example, using temporal data with an effective record date pattern:"
+msgstr ""
+"Un ejemplo completo, usando datos temporales con un patrón efectivo de "
+"fechas de registro:"
 
-#: index.docbook:69
+#. Tag: programlisting
+#: filters.xml:69
+#, no-c-format
 msgid ""
-      "<![CDATA[<filter-def name=\"effectiveDate\">\n"
-      "    <filter-param name=\"asOfDate\" type=\"date\"/>\n"
-      "</filter-def>\n"
-      "\n"
-      "<class name=\"Employee\" ...>\n"
-      "...\n"
-      "    <many-to-one name=\"department\" column=\"dept_id\" class=\"Department\"/>\n"
-      "    <property name=\"effectiveStartDate\" type=\"date\" column=\"eff_start_dt\"/>\n"
-      "    <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt\"/>\n"
-      "...\n"
-      "    <!--\n"
-      "        Note that this assumes non-terminal records have an eff_end_dt set to\n"
-      "        a max db date for simplicity-sake\n"
-      "    -->\n"
-      "    <filter name=\"effectiveDate\"\n"
-      "            condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Department\" ...>\n"
-      "...\n"
-      "    <set name=\"employees\" lazy=\"true\">\n"
-      "        <key column=\"dept_id\"/>\n"
-      "        <one-to-many class=\"Employee\"/>\n"
-      "        <filter name=\"effectiveDate\"\n"
-      "                condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/>\n"
-      "    </set>\n"
-      "</class>]]>"
+"<![CDATA[<filter-def name=\"effectiveDate\">\n"
+"    <filter-param name=\"asOfDate\" type=\"date\"/>\n"
+"</filter-def>\n"
+"\n"
+"<class name=\"Employee\" ...>\n"
+"...\n"
+"    <many-to-one name=\"department\" column=\"dept_id\" class=\"Department\"/"
+">\n"
+"    <property name=\"effectiveStartDate\" type=\"date\" column=\"eff_start_dt"
+"\"/>\n"
+"    <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt\"/"
+">\n"
+"...\n"
+"    <!--\n"
+"        Note that this assumes non-terminal records have an eff_end_dt set "
+"to\n"
+"        a max db date for simplicity-sake\n"
+"    -->\n"
+"    <filter name=\"effectiveDate\"\n"
+"            condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/>\n"
+"</class>\n"
+"\n"
+"<class name=\"Department\" ...>\n"
+"...\n"
+"    <set name=\"employees\" lazy=\"true\">\n"
+"        <key column=\"dept_id\"/>\n"
+"        <one-to-many class=\"Employee\"/>\n"
+"        <filter name=\"effectiveDate\"\n"
+"                condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/"
+">\n"
+"    </set>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<filter-def name=\"effectiveDate\">\n"
-      "    <filter-param name=\"asOfDate\" type=\"date\"/>\n"
-      "</filter-def>\n"
-      "\n"
-      "<class name=\"Employee\" ...>\n"
-      "...\n"
-      "    <many-to-one name=\"department\" column=\"dept_id\" class=\"Department\"/>\n"
-      "    <property name=\"effectiveStartDate\" type=\"date\" column=\"eff_start_dt\"/>\n"
-      "    <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt\"/>\n"
-      "...\n"
-      "    <!--\n"
-      "        Note that this assumes non-terminal records have an eff_end_dt set to\n"
-      "        a max db date for simplicity-sake\n"
-      "    -->\n"
-      "    <filter name=\"effectiveDate\"\n"
-      "            condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"Department\" ...>\n"
-      "...\n"
-      "    <set name=\"employees\" lazy=\"true\">\n"
-      "        <key column=\"dept_id\"/>\n"
-      "        <one-to-many class=\"Employee\"/>\n"
-      "        <filter name=\"effectiveDate\"\n"
-      "                condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/>\n"
-      "    </set>\n"
-      "</class>]]>"
 
-#: index.docbook:71
-msgid "Then, in order to ensure that you always get back currently effective records, simply enable the filter on the session prior to retrieving employee data:"
-msgstr "Entonces, en orden de asegurar que siempre tendrás de vuelta registros actualmente efectivos, simplemente habilita el filtro en la sesión previo a recuperar los datos de empleados:"
-
-#: index.docbook:76
+#. Tag: para
+#: filters.xml:71
+#, no-c-format
 msgid ""
-      "<![CDATA[Session session = ...;\n"
-      "session.enabledFilter(\"effectiveDate\").setParameter(\"asOfDate\", new Date());\n"
-      "List results = session.createQuery(\"from Employee as e where e.salary > :targetSalary\")\n"
-      "         .setLong(\"targetSalary\", new Long(1000000))\n"
-      "         .list();\n"
-      "]]>"
+"Then, in order to ensure that you always get back currently effective "
+"records, simply enable the filter on the session prior to retrieving "
+"employee data:"
 msgstr ""
-      "<![CDATA[Session session = ...;\n"
-      "session.enabledFilter(\"effectiveDate\").setParameter(\"asOfDate\", new Date());\n"
-      "List results = session.createQuery(\"from Employee as e where e.salary > :targetSalary\")\n"
-      "         .setLong(\"targetSalary\", new Long(1000000))\n"
-      "         .list();\n"
-      "]]>"
+"Entonces, en orden de asegurar que siempre tendrás de vuelta registros "
+"actualmente efectivos, simplemente habilita el filtro en la sesión previo a "
+"recuperar los datos de empleados:"
 
-#: index.docbook:78
-msgid "In the HQL above, even though we only explicitly mentioned a salary constraint on the results, because of the enabled filter the query will return only currently active employees who have a salary greater than a million dollars."
-msgstr "En el HQL de arriba, aunque sólo hemos mencionado explícitamente una restricción de salario en los resultados, debido al filtro habilitado la consulta sólo devolverá empleados actualmente activos que tengan un salario mayor que un millón de dólares."
-
-#: index.docbook:84
-msgid "Note: if you plan on using filters with outer joining (either through HQL or load fetching) be careful of the direction of the condition expression. Its safest to set this up for left outer joining; in general, place the parameter first followed by the column name(s) after the operator."
-msgstr "Nota: si planeas usar filtros con unión externa (outer joining) (bien a través de HQL, o bien de recuperación de carga) sé cuidadoso en la dirección de expresión de la condición. Lo más seguro es establecer esto para unión externa izquierda (left outer joining). En general, coloca el primer parámetro seguido del nombre(s) de columna(s) después del operador."
-
-#: index.docbook:91
-msgid "After being defined a filter might be attached to multiple entities and/or collections each with its own condition. That can be tedious when the conditions are the same each time. Thus <literal>&lt;filter-def/&gt;</literal> allows defining a default condition, either as an attribute or CDATA:"
+#. Tag: programlisting
+#: filters.xml:76
+#, no-c-format
+msgid ""
+"<![CDATA[Session session = ...;\n"
+"session.enabledFilter(\"effectiveDate\").setParameter(\"asOfDate\", new Date"
+"());\n"
+"List results = session.createQuery(\"from Employee as e where e.salary > :"
+"targetSalary\")\n"
+"         .setLong(\"targetSalary\", new Long(1000000))\n"
+"         .list();\n"
+"]]>"
 msgstr ""
 
-#: index.docbook:98
+#. Tag: para
+#: filters.xml:78
+#, no-c-format
 msgid ""
-      "<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</filter-def>\n"
-      "<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
+"In the HQL above, even though we only explicitly mentioned a salary "
+"constraint on the results, because of the enabled filter the query will "
+"return only currently active employees who have a salary greater than a "
+"million dollars."
 msgstr ""
+"En el HQL de arriba, aunque sólo hemos mencionado explícitamente una "
+"restricción de salario en los resultados, debido al filtro habilitado la "
+"consulta sólo devolverá empleados actualmente activos que tengan un salario "
+"mayor que un millón de dólares."
 
-#: index.docbook:100
-msgid "This default condition will then be used whenever the filter is attached to something without specifying a condition. Note that this means you can give a specific condition as part of the attachment of the filter which overrides the default condition in that particular case."
+#. Tag: para
+#: filters.xml:84
+#, no-c-format
+msgid ""
+"Note: if you plan on using filters with outer joining (either through HQL or "
+"load fetching) be careful of the direction of the condition expression. Its "
+"safest to set this up for left outer joining; in general, place the "
+"parameter first followed by the column name(s) after the operator."
 msgstr ""
+"Nota: si planeas usar filtros con unión externa (outer joining) (bien a "
+"través de HQL, o bien de recuperación de carga) sé cuidadoso en la dirección "
+"de expresión de la condición. Lo más seguro es establecer esto para unión "
+"externa izquierda (left outer joining). En general, coloca el primer "
+"parámetro seguido del nombre(s) de columna(s) después del operador."
 
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
+#. Tag: para
+#: filters.xml:91
+#, no-c-format
+msgid ""
+"After being defined a filter might be attached to multiple entities and/or "
+"collections each with its own condition. That can be tedious when the "
+"conditions are the same each time. Thus <literal>&lt;filter-def/&gt;</"
+"literal> allows defining a default condition, either as an attribute or "
+"CDATA:"
+msgstr "translator-credits"
 
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
+#. Tag: programlisting
+#: filters.xml:98
+#, no-c-format
+msgid ""
+"<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</filter-"
+"def>\n"
+"<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
+msgstr ""
 
+#. Tag: para
+#: filters.xml:100
+#, no-c-format
+msgid ""
+"This default condition will then be used whenever the filter is attached to "
+"something without specifying a condition. Note that this means you can give "
+"a specific condition as part of the attachment of the filter which overrides "
+"the default condition in that particular case."
+msgstr ""

Modified: core/trunk/documentation/manual/translations/es-ES/content/inheritance_mapping.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/inheritance_mapping.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/inheritance_mapping.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,636 +1,845 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:5
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: inheritance_mapping.xml:5
+#, no-c-format
 msgid "Inheritance Mapping"
 msgstr "Mapeo de Herencia"
 
-#: index.docbook:8
+#. Tag: title
+#: inheritance_mapping.xml:8
+#, no-c-format
 msgid "The Three Strategies"
 msgstr "Las Tres Estrategias"
 
-#: index.docbook:10
+#. Tag: para
+#: inheritance_mapping.xml:10
+#, no-c-format
 msgid "Hibernate supports the three basic inheritance mapping strategies:"
-msgstr "Hibernate soporta las tres estrategias b&#x00e1;sicas de mapeo de herencia:"
+msgstr "Hibernate soporta las tres estrategias básicas de mapeo de herencia:"
 
-#: index.docbook:16
+#. Tag: para
+#: inheritance_mapping.xml:16
+#, no-c-format
 msgid "table per class hierarchy"
-msgstr "<para>tabla por jerarqu&#x00ed;a de clases</para>"
+msgstr "tabla por jerarquía de clases"
 
-#: index.docbook:21
+#. Tag: para
+#: inheritance_mapping.xml:21
+#, fuzzy, no-c-format
 msgid "<para>table per subclass</para>"
-msgstr "<para>tabla por subclase</para>"
+msgstr "tabla por subclase"
 
-#: index.docbook:26
+#. Tag: para
+#: inheritance_mapping.xml:26
+#, no-c-format
 msgid "table per concrete class"
 msgstr "tabla por clase concreta"
 
-#: index.docbook:32
-msgid "In addition, Hibernate supports a fourth, slightly different kind of polymorphism:"
-msgstr "En adici&#x00f3;n, Hibernate soporta un cuarto, ligeramente diferente tipo de polimorfismo:"
+#. Tag: para
+#: inheritance_mapping.xml:32
+#, no-c-format
+msgid ""
+"In addition, Hibernate supports a fourth, slightly different kind of "
+"polymorphism:"
+msgstr ""
+"En adición, Hibernate soporta un cuarto, ligeramente diferente tipo de "
+"polimorfismo:"
 
-#: index.docbook:39
+#. Tag: para
+#: inheritance_mapping.xml:39
+#, no-c-format
 msgid "implicit polymorphism"
-msgstr "polimorfismo impl&#x00ed;cito"
+msgstr "polimorfismo implícito"
 
-#: index.docbook:45
-msgid "It is possible to use different mapping strategies for different branches of the same inheritance hierarchy, and then make use of implicit polymorphism to achieve polymorphism across the whole hierarchy. However, Hibernate does not support mixing <literal>&lt;subclass&gt;</literal>, and <literal>&lt;joined-subclass&gt;</literal> and <literal>&lt;union-subclass&gt;</literal> mappings under the same root <literal>&lt;class&gt;</literal> element. It is possible to mix together the table per hierarchy and table per subclass strategies, under the the same <literal>&lt;class&gt;</literal> element, by combining the <literal>&lt;subclass&gt;</literal> and <literal>&lt;join&gt;</literal> elements (see below)."
-msgstr "Es posible usar estrategias de mapeo diferentes para diferentes ramificaciones de la misma jerarqu&#x00ed;a de herencia, y entonces usar polimorfismo impl&#x00ed;cito para conseguir polimorfismo a trav&#x00e9;s de toda la jerarqu&#x00ed;a. Sin embargo, Hibernate no soporta la mezcla de mapeos <literal>&lt;subclass&gt;</literal>, y <literal>&lt;joined-subclass&gt;</literal> y <literal>&lt;union-subclass&gt;</literal> bajo el mismo elemento <literal>&lt;class&gt;</literal> ra&#x00ed;z. Es posible mezclar juntas las estrategias de tabla por jerarqu&#x00ed;a y tabla por subclase, bajo el mismo elemento <literal>&lt;class&gt;</literal>, combinando los elementos <literal>&lt;subclass&gt;</literal> y <literal>&lt;join&gt;</literal> (ver debajo)."
+#. Tag: para
+#: inheritance_mapping.xml:45
+#, no-c-format
+msgid ""
+"It is possible to use different mapping strategies for different branches of "
+"the same inheritance hierarchy, and then make use of implicit polymorphism "
+"to achieve polymorphism across the whole hierarchy. However, Hibernate does "
+"not support mixing <literal>&lt;subclass&gt;</literal>, and <literal>&lt;"
+"joined-subclass&gt;</literal> and <literal>&lt;union-subclass&gt;</literal> "
+"mappings under the same root <literal>&lt;class&gt;</literal> element. It is "
+"possible to mix together the table per hierarchy and table per subclass "
+"strategies, under the the same <literal>&lt;class&gt;</literal> element, by "
+"combining the <literal>&lt;subclass&gt;</literal> and <literal>&lt;join&gt;</"
+"literal> elements (see below)."
+msgstr ""
+"UNTRANSLATED! It is possible to define <literal>subclass</literal>, "
+"<literal>union-subclass</literal>, and <literal>joined-subclass</literal> "
+"mappings in separate mapping documents, directly beneath <literal>hibernate-"
+"mapping</literal>. This allows you to extend a class hierachy just by adding "
+"a new mapping file. You must specify an <literal>extends</literal> attribute "
+"in the subclass mapping, naming a previously mapped superclass. Note: "
+"Previously this feature made the ordering of the mapping documents "
+"important. Since Hibernate3, the ordering of mapping files does not matter "
+"when using the extends keyword. The ordering inside a single mapping file "
+"still needs to be defined as superclasses before subclasses."
 
-#: index.docbook:59
-msgid "It is possible to define <literal>subclass</literal>, <literal>union-subclass</literal>, and <literal>joined-subclass</literal> mappings in separate mapping documents, directly beneath <literal>hibernate-mapping</literal>. This allows you to extend a class hierachy just by adding a new mapping file. You must specify an <literal>extends</literal> attribute in the subclass mapping, naming a previously mapped superclass. Note: Previously this feature made the ordering of the mapping documents important. Since Hibernate3, the ordering of mapping files does not matter when using the extends keyword. The ordering inside a single mapping file still needs to be defined as superclasses before subclasses."
-msgstr "Tabla por jerarqu&#x00ed;a de clases"
+#. Tag: para
+#: inheritance_mapping.xml:59
+#, no-c-format
+msgid ""
+"It is possible to define <literal>subclass</literal>, <literal>union-"
+"subclass</literal>, and <literal>joined-subclass</literal> mappings in "
+"separate mapping documents, directly beneath <literal>hibernate-mapping</"
+"literal>. This allows you to extend a class hierachy just by adding a new "
+"mapping file. You must specify an <literal>extends</literal> attribute in "
+"the subclass mapping, naming a previously mapped superclass. Note: "
+"Previously this feature made the ordering of the mapping documents "
+"important. Since Hibernate3, the ordering of mapping files does not matter "
+"when using the extends keyword. The ordering inside a single mapping file "
+"still needs to be defined as superclasses before subclasses."
+msgstr ""
+"Es posible usar estrategias de mapeo diferentes para diferentes "
+"ramificaciones de la misma jerarquía de herencia, y entonces usar "
+"polimorfismo implícito para conseguir polimorfismo a través de toda la "
+"jerarquía. Sin embargo, Hibernate no soporta la mezcla de mapeos "
+"<literal>&lt;subclass&gt;</literal>, y <literal>&lt;joined-subclass&gt;</"
+"literal> y <literal>&lt;union-subclass&gt;</literal> bajo el mismo elemento "
+"<literal>&lt;class&gt;</literal> raíz. Es posible mezclar juntas las "
+"estrategias de tabla por jerarquía y tabla por subclase, bajo el mismo "
+"elemento <literal>&lt;class&gt;</literal>, combinando los elementos "
+"<literal>&lt;subclass&gt;</literal> y <literal>&lt;join&gt;</literal> (ver "
+"debajo)."
 
-#: index.docbook:70
+#. Tag: programlisting
+#: inheritance_mapping.xml:70
+#, no-c-format
 msgid ""
-      "<![CDATA[\n"
-      " <hibernate-mapping>\n"
-      "     <subclass name=\"DomesticCat\" extends=\"Cat\" discriminator-value=\"D\">\n"
-      "          <property name=\"name\" type=\"string\"/>\n"
-      "     </subclass>\n"
-      " </hibernate-mapping>]]>"
-msgstr "Sup&#x00f3;n que tenemos una interface <literal>Payment</literal>, con los implementadores <literal>CreditCardPayment</literal>, <literal>CashPayment</literal>, <literal>ChequePayment</literal>. El mapeo de tabla por jerarqu&#x00ed;a se ver&#x00ed;a as&#x00ed;:"
+"<![CDATA[\n"
+" <hibernate-mapping>\n"
+"     <subclass name=\"DomesticCat\" extends=\"Cat\" discriminator-value=\"D"
+"\">\n"
+"          <property name=\"name\" type=\"string\"/>\n"
+"     </subclass>\n"
+" </hibernate-mapping>]]>"
+msgstr ""
 
-#: index.docbook:74
+#. Tag: title
+#: inheritance_mapping.xml:74
+#, no-c-format
 msgid "Table per class hierarchy"
+msgstr "Tabla por jerarquía de clases"
+
+#. Tag: para
+#: inheritance_mapping.xml:76
+#, no-c-format
+msgid ""
+"Suppose we have an interface <literal>Payment</literal>, with implementors "
+"<literal>CreditCardPayment</literal>, <literal>CashPayment</literal>, "
+"<literal>ChequePayment</literal>. The table per hierarchy mapping would look "
+"like:"
 msgstr ""
-      "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
-      "    <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
-      "    <property name=\"amount\" column=\"AMOUNT\"/>\n"
-      "    ...\n"
-      "    <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
-      "        <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
-      "        ...\n"
-      "    </subclass>\n"
-      "    <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
-      "        ...\n"
-      "    </subclass>\n"
-      "    <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
-      "        ...\n"
-      "    </subclass>\n"
-      "</class>]]>"
+"Supón que tenemos una interface <literal>Payment</literal>, con los "
+"implementadores <literal>CreditCardPayment</literal>, <literal>CashPayment</"
+"literal>, <literal>ChequePayment</literal>. El mapeo de tabla por jerarquía "
+"se vería así:"
 
-#: index.docbook:76
-msgid "Suppose we have an interface <literal>Payment</literal>, with implementors <literal>CreditCardPayment</literal>, <literal>CashPayment</literal>, <literal>ChequePayment</literal>. The table per hierarchy mapping would look like:"
-msgstr "Se requiere exactamente una tabla. Hay una gran limitaci&#x00f3;n de esta estrategia de mapeo: las columnas declaradas por las subclases, como <literal>CCTYPE</literal>, no pueden tener restricciones <literal>NOT NULL</literal>."
+#. Tag: programlisting
+#: inheritance_mapping.xml:83
+#, no-c-format
+msgid ""
+"<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
+"    <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+"    <property name=\"amount\" column=\"AMOUNT\"/>\n"
+"    ...\n"
+"    <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
+"        <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+"        ...\n"
+"    </subclass>\n"
+"    <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+"        ...\n"
+"    </subclass>\n"
+"    <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
+"        ...\n"
+"    </subclass>\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:83
+#. Tag: para
+#: inheritance_mapping.xml:85
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
-      "    <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
-      "    <property name=\"amount\" column=\"AMOUNT\"/>\n"
-      "    ...\n"
-      "    <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
-      "        <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
-      "        ...\n"
-      "    </subclass>\n"
-      "    <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
-      "        ...\n"
-      "    </subclass>\n"
-      "    <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
-      "        ...\n"
-      "    </subclass>\n"
-      "</class>]]>"
-msgstr "Tabla por subclase"
+"Exactly one table is required. There is one big limitation of this mapping "
+"strategy: columns declared by the subclasses, such as <literal>CCTYPE</"
+"literal>, may not have <literal>NOT NULL</literal> constraints."
+msgstr ""
+"Se requiere exactamente una tabla. Hay una gran limitación de esta "
+"estrategia de mapeo: las columnas declaradas por las subclases, como "
+"<literal>CCTYPE</literal>, no pueden tener restricciones <literal>NOT NULL</"
+"literal>."
 
-#: index.docbook:85
-msgid "Exactly one table is required. There is one big limitation of this mapping strategy: columns declared by the subclasses, such as <literal>CCTYPE</literal>, may not have <literal>NOT NULL</literal> constraints."
-msgstr "Un mapeo de tabla por sublclase se ver&#x00ed;a as&#x00ed;:"
-
-#: index.docbook:94
+#. Tag: title
+#: inheritance_mapping.xml:94
+#, no-c-format
 msgid "Table per subclass"
-msgstr ""
-      "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
-      "    <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <property name=\"amount\" column=\"AMOUNT\"/>\n"
-      "    ...\n"
-      "    <joined-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
-      "        <key column=\"PAYMENT_ID\"/>\n"
-      "        <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
-      "        ...\n"
-      "    </joined-subclass>\n"
-      "    <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
-      "        <key column=\"PAYMENT_ID\"/>\n"
-      "        ...\n"
-      "    </joined-subclass>\n"
-      "    <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
-      "        <key column=\"PAYMENT_ID\"/>\n"
-      "        ...\n"
-      "    </joined-subclass>\n"
-      "</class>]]>"
+msgstr "Tabla por subclase"
 
-#: index.docbook:96
+#. Tag: para
+#: inheritance_mapping.xml:96
+#, no-c-format
 msgid "A table per subclass mapping would look like:"
-msgstr "Se requieren cuatro tablas. Las tres tablas de subclase tienen asociaciones de clave primaria a la tabla de superclase (de modo que en el modelo relacional es realmente una asociaci&#x00f3;n uno-a-uno)."
+msgstr "Un mapeo de tabla por sublclase se vería así:"
 
-#: index.docbook:100
+#. Tag: programlisting
+#: inheritance_mapping.xml:100
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
-      "    <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <property name=\"amount\" column=\"AMOUNT\"/>\n"
-      "    ...\n"
-      "    <joined-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
-      "        <key column=\"PAYMENT_ID\"/>\n"
-      "        <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
-      "        ...\n"
-      "    </joined-subclass>\n"
-      "    <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
-      "        <key column=\"PAYMENT_ID\"/>\n"
-      "        ...\n"
-      "    </joined-subclass>\n"
-      "    <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
-      "        <key column=\"PAYMENT_ID\"/>\n"
-      "        ...\n"
-      "    </joined-subclass>\n"
-      "</class>]]>"
-msgstr "Tabla por subclase, usando un discriminador"
+"<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
+"    <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <property name=\"amount\" column=\"AMOUNT\"/>\n"
+"    ...\n"
+"    <joined-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+"        <key column=\"PAYMENT_ID\"/>\n"
+"        <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+"        ...\n"
+"    </joined-subclass>\n"
+"    <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+"        <key column=\"PAYMENT_ID\"/>\n"
+"        ...\n"
+"    </joined-subclass>\n"
+"    <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+"        <key column=\"PAYMENT_ID\"/>\n"
+"        ...\n"
+"    </joined-subclass>\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:102
-msgid "Four tables are required. The three subclass tables have primary key associations to the superclass table (so the relational model is actually a one-to-one association)."
-msgstr "Observa que la implementaci&#x00f3;n de Hibernate de tabla por subclase no requiere ninguna columna discriminadora. Otros mapeadores objeto/relacional usan una implementaci&#x00f3;n diferente de tabla por subclase que requiere una columna discriminadora de tipo en la tabla de superclase. Este enfoque es mucho m&#x00e1;s dif&#x00ed;cil de implementar pero discutiblemente m&#x00e1;s correcto desde un punto de vista relacional. Si quisieras usar una columna discriminadora con la estrategia de tabla por subclase, puedes combinar el uso de <literal>&lt;subclass&gt;</literal> y <literal>&lt;join&gt;</literal>, como sigue:"
+#. Tag: para
+#: inheritance_mapping.xml:102
+#, no-c-format
+msgid ""
+"Four tables are required. The three subclass tables have primary key "
+"associations to the superclass table (so the relational model is actually a "
+"one-to-one association)."
+msgstr ""
+"Se requieren cuatro tablas. Las tres tablas de subclase tienen asociaciones "
+"de clave primaria a la tabla de superclase (de modo que en el modelo "
+"relacional es realmente una asociación uno-a-uno)."
 
-#: index.docbook:111
+#. Tag: title
+#: inheritance_mapping.xml:111
+#, no-c-format
 msgid "Table per subclass, using a discriminator"
+msgstr "Tabla por subclase, usando un discriminador"
+
+#. Tag: para
+#: inheritance_mapping.xml:113
+#, no-c-format
+msgid ""
+"Note that Hibernate's implementation of table per subclass requires no "
+"discriminator column. Other object/relational mappers use a different "
+"implementation of table per subclass which requires a type discriminator "
+"column in the superclass table. The approach taken by Hibernate is much more "
+"difficult to implement but arguably more correct from a relational point of "
+"view. If you would like to use a discriminator column with the table per "
+"subclass strategy, you may combine the use of <literal>&lt;subclass&gt;</"
+"literal> and <literal>&lt;join&gt;</literal>, as follow:"
 msgstr ""
-      "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
-      "    <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
-      "    <property name=\"amount\" column=\"AMOUNT\"/>\n"
-      "    ...\n"
-      "    <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
-      "        <join table=\"CREDIT_PAYMENT\">\n"
-      "            <key column=\"PAYMENT_ID\"/>\n"
-      "            <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
-      "            ...\n"
-      "        </join>\n"
-      "    </subclass>\n"
-      "    <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
-      "        <join table=\"CASH_PAYMENT\">\n"
-      "            <key column=\"PAYMENT_ID\"/>\n"
-      "            ...\n"
-      "        </join>\n"
-      "    </subclass>\n"
-      "    <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
-      "        <join table=\"CHEQUE_PAYMENT\" fetch=\"select\">\n"
-      "            <key column=\"PAYMENT_ID\"/>\n"
-      "            ...\n"
-      "        </join>\n"
-      "    </subclass>\n"
-      "</class>]]>"
+"Observa que la implementación de Hibernate de tabla por subclase no requiere "
+"ninguna columna discriminadora. Otros mapeadores objeto/relacional usan una "
+"implementación diferente de tabla por subclase que requiere una columna "
+"discriminadora de tipo en la tabla de superclase. Este enfoque es mucho más "
+"difícil de implementar pero discutiblemente más correcto desde un punto de "
+"vista relacional. Si quisieras usar una columna discriminadora con la "
+"estrategia de tabla por subclase, puedes combinar el uso de <literal>&lt;"
+"subclass&gt;</literal> y <literal>&lt;join&gt;</literal>, como sigue:"
 
-#: index.docbook:113
-msgid "Note that Hibernate's implementation of table per subclass requires no discriminator column. Other object/relational mappers use a different implementation of table per subclass which requires a type discriminator column in the superclass table. The approach taken by Hibernate is much more difficult to implement but arguably more correct from a relational point of view. If you would like to use a discriminator column with the table per subclass strategy, you may combine the use of <literal>&lt;subclass&gt;</literal> and <literal>&lt;join&gt;</literal>, as follow:"
-msgstr "la declaraci&#x00f3;n opcional <literal>fetch=\"select\"</literal> dice a Hibernate que no recupere los datos de la subclase <literal>ChequePayment</literal> usando una uni&#x00f3;n externa (outer join) al consultar la superclase."
+#. Tag: programlisting
+#: inheritance_mapping.xml:125
+#, no-c-format
+msgid ""
+"<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
+"    <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+"    <property name=\"amount\" column=\"AMOUNT\"/>\n"
+"    ...\n"
+"    <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
+"        <join table=\"CREDIT_PAYMENT\">\n"
+"            <key column=\"PAYMENT_ID\"/>\n"
+"            <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+"            ...\n"
+"        </join>\n"
+"    </subclass>\n"
+"    <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+"        <join table=\"CASH_PAYMENT\">\n"
+"            <key column=\"PAYMENT_ID\"/>\n"
+"            ...\n"
+"        </join>\n"
+"    </subclass>\n"
+"    <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
+"        <join table=\"CHEQUE_PAYMENT\" fetch=\"select\">\n"
+"            <key column=\"PAYMENT_ID\"/>\n"
+"            ...\n"
+"        </join>\n"
+"    </subclass>\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:125
+#. Tag: para
+#: inheritance_mapping.xml:127
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
-      "    <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
-      "    <property name=\"amount\" column=\"AMOUNT\"/>\n"
-      "    ...\n"
-      "    <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
-      "        <join table=\"CREDIT_PAYMENT\">\n"
-      "            <key column=\"PAYMENT_ID\"/>\n"
-      "            <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
-      "            ...\n"
-      "        </join>\n"
-      "    </subclass>\n"
-      "    <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
-      "        <join table=\"CASH_PAYMENT\">\n"
-      "            <key column=\"PAYMENT_ID\"/>\n"
-      "            ...\n"
-      "        </join>\n"
-      "    </subclass>\n"
-      "    <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
-      "        <join table=\"CHEQUE_PAYMENT\" fetch=\"select\">\n"
-      "            <key column=\"PAYMENT_ID\"/>\n"
-      "            ...\n"
-      "        </join>\n"
-      "    </subclass>\n"
-      "</class>]]>"
-msgstr "Mezclando tabla por jerarqu&#x00ed;a de clases con tabla por subclase"
+"The optional <literal>fetch=\"select\"</literal> declaration tells Hibernate "
+"not to fetch the <literal>ChequePayment</literal> subclass data using an "
+"outer join when querying the superclass."
+msgstr ""
+"la declaración opcional <literal>fetch=\"select\"</literal> dice a Hibernate "
+"que no recupere los datos de la subclase <literal>ChequePayment</literal> "
+"usando una unión externa (outer join) al consultar la superclase."
 
-#: index.docbook:127
-msgid "The optional <literal>fetch=\"select\"</literal> declaration tells Hibernate not to fetch the <literal>ChequePayment</literal> subclass data using an outer join when querying the superclass."
-msgstr "Puedes incluso mezclar las estrategias de tabla po jerarqu&#x00ed;a y tabla por subclase usando este enfoque:"
+#. Tag: title
+#: inheritance_mapping.xml:136
+#, no-c-format
+msgid "Mixing table per class hierarchy with table per subclass"
+msgstr "Mezclando tabla por jerarquía de clases con tabla por subclase"
 
-#: index.docbook:136
-msgid "Mixing table per class hierarchy with table per subclass"
+#. Tag: para
+#: inheritance_mapping.xml:138
+#, no-c-format
+msgid ""
+"You may even mix the table per hierarchy and table per subclass strategies "
+"using this approach:"
 msgstr ""
-      "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
-      "    <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
-      "    <property name=\"amount\" column=\"AMOUNT\"/>\n"
-      "    ...\n"
-      "    <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
-      "        <join table=\"CREDIT_PAYMENT\">\n"
-      "            <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
-      "            ...\n"
-      "        </join>\n"
-      "    </subclass>\n"
-      "    <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
-      "        ...\n"
-      "    </subclass>\n"
-      "    <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
-      "        ...\n"
-      "    </subclass>\n"
-      "</class>]]>"
+"Puedes incluso mezclar las estrategias de tabla po jerarquía y tabla por "
+"subclase usando este enfoque:"
 
-#: index.docbook:138
-msgid "You may even mix the table per hierarchy and table per subclass strategies using this approach:"
-msgstr "Para cualquiera de estas estrategias de mapeo, una asociaci&#x00f3;n polim&#x00f3;rfica a la clase ra&#x00ed;z <literal>Payment</literal> es mapeada usando <literal>&lt;many-to-one&gt;</literal>."
+#. Tag: programlisting
+#: inheritance_mapping.xml:143
+#, no-c-format
+msgid ""
+"<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
+"    <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+"    <property name=\"amount\" column=\"AMOUNT\"/>\n"
+"    ...\n"
+"    <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
+"        <join table=\"CREDIT_PAYMENT\">\n"
+"            <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+"            ...\n"
+"        </join>\n"
+"    </subclass>\n"
+"    <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+"        ...\n"
+"    </subclass>\n"
+"    <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
+"        ...\n"
+"    </subclass>\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:143
+#. Tag: para
+#: inheritance_mapping.xml:145
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
-      "    <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
-      "    <property name=\"amount\" column=\"AMOUNT\"/>\n"
-      "    ...\n"
-      "    <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
-      "        <join table=\"CREDIT_PAYMENT\">\n"
-      "            <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
-      "            ...\n"
-      "        </join>\n"
-      "    </subclass>\n"
-      "    <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
-      "        ...\n"
-      "    </subclass>\n"
-      "    <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
-      "        ...\n"
-      "    </subclass>\n"
-      "</class>]]>"
-msgstr "<![CDATA[<many-to-one name=\"payment\" column=\"PAYMENT_ID\" class=\"Payment\"/>]]>"
+"For any of these mapping strategies, a polymorphic association to the root "
+"<literal>Payment</literal> class is mapped using <literal>&lt;many-to-one&gt;"
+"</literal>."
+msgstr ""
+"Para cualquiera de estas estrategias de mapeo, una asociación polimórfica a "
+"la clase raíz <literal>Payment</literal> es mapeada usando <literal>&lt;many-"
+"to-one&gt;</literal>."
 
-#: index.docbook:145
-msgid "For any of these mapping strategies, a polymorphic association to the root <literal>Payment</literal> class is mapped using <literal>&lt;many-to-one&gt;</literal>."
+#. Tag: programlisting
+#: inheritance_mapping.xml:151
+#, no-c-format
+msgid ""
+"<![CDATA[<many-to-one name=\"payment\" column=\"PAYMENT_ID\" class=\"Payment"
+"\"/>]]>"
+msgstr ""
+
+#. Tag: title
+#: inheritance_mapping.xml:156
+#, no-c-format
+msgid "Table per concrete class"
 msgstr "Tabla por clase concreta"
 
-#: index.docbook:151
-msgid "<![CDATA[<many-to-one name=\"payment\" column=\"PAYMENT_ID\" class=\"Payment\"/>]]>"
-msgstr "Podr&#x00ed;amos ir de dos maneras a la estrategia de mapeo de tabla por clase concreta. La primera es usar <literal>&lt;union-subclass&gt;</literal>."
+#. Tag: para
+#: inheritance_mapping.xml:158
+#, no-c-format
+msgid ""
+"There are two ways we could go about mapping the table per concrete class "
+"strategy. The first is to use <literal>&lt;union-subclass&gt;</literal>."
+msgstr ""
+"Podríamos ir de dos maneras a la estrategia de mapeo de tabla por clase "
+"concreta. La primera es usar <literal>&lt;union-subclass&gt;</literal>."
 
-#: index.docbook:156
-msgid "Table per concrete class"
+#. Tag: programlisting
+#: inheritance_mapping.xml:163
+#, no-c-format
+msgid ""
+"<![CDATA[<class name=\"Payment\">\n"
+"    <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+"        <generator class=\"sequence\"/>\n"
+"    </id>\n"
+"    <property name=\"amount\" column=\"AMOUNT\"/>\n"
+"    ...\n"
+"    <union-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+"        <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+"        ...\n"
+"    </union-subclass>\n"
+"    <union-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+"        ...\n"
+"    </union-subclass>\n"
+"    <union-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+"        ...\n"
+"    </union-subclass>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"Payment\">\n"
-      "    <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
-      "        <generator class=\"sequence\"/>\n"
-      "    </id>\n"
-      "    <property name=\"amount\" column=\"AMOUNT\"/>\n"
-      "    ...\n"
-      "    <union-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
-      "        <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
-      "        ...\n"
-      "    </union-subclass>\n"
-      "    <union-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
-      "        ...\n"
-      "    </union-subclass>\n"
-      "    <union-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
-      "        ...\n"
-      "    </union-subclass>\n"
-      "</class>]]>"
 
-#: index.docbook:158
-msgid "There are two ways we could go about mapping the table per concrete class strategy. The first is to use <literal>&lt;union-subclass&gt;</literal>."
-msgstr "Est&#x00e1;n implicadas tres tablas. Cada tabla define columnas para todas las propiedades de la clase, inccluyendo las propiedades heredadas."
+#. Tag: para
+#: inheritance_mapping.xml:165
+#, no-c-format
+msgid ""
+"Three tables are involved for the subclasses. Each table defines columns for "
+"all properties of the class, including inherited properties."
+msgstr ""
+"Están implicadas tres tablas. Cada tabla define columnas para todas las "
+"propiedades de la clase, inccluyendo las propiedades heredadas."
 
-#: index.docbook:163
+#. Tag: para
+#: inheritance_mapping.xml:170
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Payment\">\n"
-      "    <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
-      "        <generator class=\"sequence\"/>\n"
-      "    </id>\n"
-      "    <property name=\"amount\" column=\"AMOUNT\"/>\n"
-      "    ...\n"
-      "    <union-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
-      "        <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
-      "        ...\n"
-      "    </union-subclass>\n"
-      "    <union-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
-      "        ...\n"
-      "    </union-subclass>\n"
-      "    <union-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
-      "        ...\n"
-      "    </union-subclass>\n"
-      "</class>]]>"
-msgstr "La limitaci&#x00f3;n de este enfoque es que si una propiedad es mapeada en la superclase, el nombre de columna debe ser el mismo en todas las tablas de subclase. (Podr&#x00ed;amos relajar esto en un lanzamiento futuro de Hibernate.) La estrategia de generador de indentidad no est&#x00e1; permitida en la herencia de uni&#x00f3;n de subclase, de hecho la semilla de clave primaria tiene que ser compartida a trav&#x00e9;s de todas las subclases unidas de una jerarqu&#x00ed;a."
+"The limitation of this approach is that if a property is mapped on the "
+"superclass, the column name must be the same on all subclass tables. (We "
+"might relax this in a future release of Hibernate.) The identity generator "
+"strategy is not allowed in union subclass inheritance, indeed the primary "
+"key seed has to be shared accross all unioned subclasses of a hierarchy."
+msgstr ""
+"La limitación de este enfoque es que si una propiedad es mapeada en la "
+"superclase, el nombre de columna debe ser el mismo en todas las tablas de "
+"subclase. (Podríamos relajar esto en un lanzamiento futuro de Hibernate.) La "
+"estrategia de generador de indentidad no está permitida en la herencia de "
+"unión de subclase, de hecho la semilla de clave primaria tiene que ser "
+"compartida a través de todas las subclases unidas de una jerarquía."
 
-#: index.docbook:165
-msgid "Three tables are involved for the subclasses. Each table defines columns for all properties of the class, including inherited properties."
-msgstr "Tabla por clase concreta, usando polimorfismo impl&#x00ed;cito"
-
-#: index.docbook:170
-msgid "The limitation of this approach is that if a property is mapped on the superclass, the column name must be the same on all subclass tables. (We might relax this in a future release of Hibernate.) The identity generator strategy is not allowed in union subclass inheritance, indeed the primary key seed has to be shared accross all unioned subclasses of a hierarchy."
-msgstr "Un enfoque alternativo es hacer uso de polimorfismo impl&#x00ed;cito:"
-
-#: index.docbook:179
-msgid "If your superclass is abstract, map it with <literal>abstract=\"true\"</literal>. Of course, if it is not abstract, an additional table (defaults to <literal>PAYMENT</literal> in the example above) is needed to hold instances of the superclass."
+#. Tag: para
+#: inheritance_mapping.xml:179
+#, no-c-format
+msgid ""
+"If your superclass is abstract, map it with <literal>abstract=\"true\"</"
+"literal>. Of course, if it is not abstract, an additional table (defaults to "
+"<literal>PAYMENT</literal> in the example above) is needed to hold instances "
+"of the superclass."
 msgstr ""
-      "<![CDATA[<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
-      "    <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
-      "    ...\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
-      "    <id name=\"id\" type=\"long\" column=\"CASH_PAYMENT_ID\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
-      "    ...\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
-      "    <id name=\"id\" type=\"long\" column=\"CHEQUE_PAYMENT_ID\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
-      "    ...\n"
-      "</class>]]>"
+"UNTRANSLATED! If your superclass is abstract, map it with <literal>abstract="
+"\"true\"</literal>. Of course, if it is not abstract, an additional table "
+"(defaults to <literal>PAYMENT</literal> in the example above) is needed to "
+"hold instances of the superclass."
 
-#: index.docbook:189
+#. Tag: title
+#: inheritance_mapping.xml:189
+#, no-c-format
 msgid "Table per concrete class, using implicit polymorphism"
-msgstr "Nota que en ning&#x00fa;n sitio mencionamos la interface <literal>Payment</literal> expl&#x00ed;citamente. Nota adem&#x00e1;s que las propiedades de <literal>Payment</literal> son mapeadas en cada una de las subclases. Si quieres evitar duplicaci&#x00f3;n, considera usar entidades XML. (por ejemplo, <literal>[ &lt;!ENTITY allproperties SYSTEM \"allproperties.xml\"&gt; ]</literal> en la declaraci&#x00f3;n <literal>DOCTYPE</literal> y <literal>&amp;allproperties;</literal> en el mapeo)."
+msgstr "Tabla por clase concreta, usando polimorfismo implícito"
 
-#: index.docbook:191
+#. Tag: para
+#: inheritance_mapping.xml:191
+#, no-c-format
 msgid "An alternative approach is to make use of implicit polymorphism:"
-msgstr "La desventaja de este enfoque es que Hibernate no genera <literal>UNION</literal>s de SQL al realizar consultas polim&#x00f3;rficas."
+msgstr "Un enfoque alternativo es hacer uso de polimorfismo implícito:"
 
-#: index.docbook:195
+#. Tag: programlisting
+#: inheritance_mapping.xml:195
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
-      "    <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
-      "    ...\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
-      "    <id name=\"id\" type=\"long\" column=\"CASH_PAYMENT_ID\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
-      "    ...\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
-      "    <id name=\"id\" type=\"long\" column=\"CHEQUE_PAYMENT_ID\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
-      "    ...\n"
-      "</class>]]>"
-msgstr "Para esta estrategia de mapeo, una asociaci&#x00f3;n polim&#x00f3;rfica a <literal>Payment</literal> es mapeada generalmente usando <literal>&lt;any&gt;</literal>."
+"<![CDATA[<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+"    <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
+"    ...\n"
+"</class>\n"
+"\n"
+"<class name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+"    <id name=\"id\" type=\"long\" column=\"CASH_PAYMENT_ID\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
+"    ...\n"
+"</class>\n"
+"\n"
+"<class name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+"    <id name=\"id\" type=\"long\" column=\"CHEQUE_PAYMENT_ID\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
+"    ...\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:197
-msgid "Notice that nowhere do we mention the <literal>Payment</literal> interface explicitly. Also notice that properties of <literal>Payment</literal> are mapped in each of the subclasses. If you want to avoid duplication, consider using XML entities (e.g. <literal>[ &lt;!ENTITY allproperties SYSTEM \"allproperties.xml\"&gt; ]</literal> in the <literal>DOCTYPE</literal> declartion and <literal>&amp;allproperties;</literal> in the mapping)."
+#. Tag: para
+#: inheritance_mapping.xml:197
+#, no-c-format
+msgid ""
+"Notice that nowhere do we mention the <literal>Payment</literal> interface "
+"explicitly. Also notice that properties of <literal>Payment</literal> are "
+"mapped in each of the subclasses. If you want to avoid duplication, consider "
+"using XML entities (e.g. <literal>[ &lt;!ENTITY allproperties SYSTEM "
+"\"allproperties.xml\"&gt; ]</literal> in the <literal>DOCTYPE</literal> "
+"declartion and <literal>&amp;allproperties;</literal> in the mapping)."
 msgstr ""
-      "<![CDATA[<any name=\"payment\" meta-type=\"string\" id-type=\"long\">\n"
-      "    <meta-value value=\"CREDIT\" class=\"CreditCardPayment\"/>\n"
-      "    <meta-value value=\"CASH\" class=\"CashPayment\"/>\n"
-      "    <meta-value value=\"CHEQUE\" class=\"ChequePayment\"/>\n"
-      "    <column name=\"PAYMENT_CLASS\"/>\n"
-      "    <column name=\"PAYMENT_ID\"/>\n"
-      "</any>]]>"
+"Nota que en ningún sitio mencionamos la interface <literal>Payment</literal> "
+"explícitamente. Nota además que las propiedades de <literal>Payment</"
+"literal> son mapeadas en cada una de las subclases. Si quieres evitar "
+"duplicación, considera usar entidades XML. (por ejemplo, <literal>[ &lt;!"
+"ENTITY allproperties SYSTEM \"allproperties.xml\"&gt; ]</literal> en la "
+"declaración <literal>DOCTYPE</literal> y <literal>&amp;allproperties;</"
+"literal> en el mapeo)."
 
-#: index.docbook:207
-msgid "The disadvantage of this approach is that Hibernate does not generate SQL <literal>UNION</literal>s when performing polymorphic queries."
-msgstr "Mezclando polimorfismo impl&#x00ed;cito con otros mapeos de herencia"
+#. Tag: para
+#: inheritance_mapping.xml:207
+#, no-c-format
+msgid ""
+"The disadvantage of this approach is that Hibernate does not generate SQL "
+"<literal>UNION</literal>s when performing polymorphic queries."
+msgstr ""
+"La desventaja de este enfoque es que Hibernate no genera <literal>UNION</"
+"literal>s de SQL al realizar consultas polimórficas."
 
-#: index.docbook:212
-msgid "For this mapping strategy, a polymorphic association to <literal>Payment</literal> is usually mapped using <literal>&lt;any&gt;</literal>."
-msgstr "Hay una cosa m&#x00e1;s por notar acerca de este mapeo. Ya que las subclases se mapean cada una en su propio elemento <literal>&lt;class&gt;</literal> (y ya que <literal>Payment</literal> es s&#x00f3;lo una interface), cada una de las subclases podr&#x00ed;a ser parte de otra jerarqu&#x00ed;a de herencia! (Y todav&#x00ed;a puedes seguir usando consultas polim&#x00f3;rficas contra la interface <literal>Payment</literal>.)"
+#. Tag: para
+#: inheritance_mapping.xml:212
+#, no-c-format
+msgid ""
+"For this mapping strategy, a polymorphic association to <literal>Payment</"
+"literal> is usually mapped using <literal>&lt;any&gt;</literal>."
+msgstr ""
+"Para esta estrategia de mapeo, una asociación polimórfica a "
+"<literal>Payment</literal> es mapeada generalmente usando <literal>&lt;"
+"any&gt;</literal>."
 
-#: index.docbook:217
+#. Tag: programlisting
+#: inheritance_mapping.xml:217
+#, no-c-format
 msgid ""
-      "<![CDATA[<any name=\"payment\" meta-type=\"string\" id-type=\"long\">\n"
-      "    <meta-value value=\"CREDIT\" class=\"CreditCardPayment\"/>\n"
-      "    <meta-value value=\"CASH\" class=\"CashPayment\"/>\n"
-      "    <meta-value value=\"CHEQUE\" class=\"ChequePayment\"/>\n"
-      "    <column name=\"PAYMENT_CLASS\"/>\n"
-      "    <column name=\"PAYMENT_ID\"/>\n"
-      "</any>]]>"
+"<![CDATA[<any name=\"payment\" meta-type=\"string\" id-type=\"long\">\n"
+"    <meta-value value=\"CREDIT\" class=\"CreditCardPayment\"/>\n"
+"    <meta-value value=\"CASH\" class=\"CashPayment\"/>\n"
+"    <meta-value value=\"CHEQUE\" class=\"ChequePayment\"/>\n"
+"    <column name=\"PAYMENT_CLASS\"/>\n"
+"    <column name=\"PAYMENT_ID\"/>\n"
+"</any>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
-      "    <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <discriminator column=\"CREDIT_CARD\" type=\"string\"/>\n"
-      "    <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
-      "    ...\n"
-      "    <subclass name=\"MasterCardPayment\" discriminator-value=\"MDC\"/>\n"
-      "    <subclass name=\"VisaPayment\" discriminator-value=\"VISA\"/>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"NonelectronicTransaction\" table=\"NONELECTRONIC_TXN\">\n"
-      "    <id name=\"id\" type=\"long\" column=\"TXN_ID\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    ...\n"
-      "    <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
-      "        <key column=\"PAYMENT_ID\"/>\n"
-      "        <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
-      "        ...\n"
-      "    </joined-subclass>\n"
-      "    <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
-      "        <key column=\"PAYMENT_ID\"/>\n"
-      "        <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
-      "        ...\n"
-      "    </joined-subclass>\n"
-      "</class>]]>"
 
-#: index.docbook:222
+#. Tag: title
+#: inheritance_mapping.xml:222
+#, no-c-format
 msgid "Mixing implicit polymorphism with other inheritance mappings"
-msgstr "Una vez m&#x00e1;s, no mencionamos a <literal>Payment</literal> expl&#x00ed;citamente. Si ejecutamos una consulta contra la interface <literal>Payment</literal> - por ejemplo, <literal>from Payment</literal> - Hibernate devuelve autom&#x00e1;ticamente instancias de <literal>CreditCardPayment</literal> (y sus subclases, ya que ellas tambi&#x00e9;n implementan <literal>Payment</literal>), <literal>CashPayment</literal> y <literal>ChequePayment</literal> pero no instancias de <literal>NonelectronicTransaction</literal>."
+msgstr "Mezclando polimorfismo implícito con otros mapeos de herencia"
 
-#: index.docbook:224
-msgid "There is one further thing to notice about this mapping. Since the subclasses are each mapped in their own <literal>&lt;class&gt;</literal> element (and since <literal>Payment</literal> is just an interface), each of the subclasses could easily be part of another inheritance hierarchy! (And you can still use polymorphic queries against the <literal>Payment</literal> interface.)"
-msgstr "Limitaciones"
+#. Tag: para
+#: inheritance_mapping.xml:224
+#, no-c-format
+msgid ""
+"There is one further thing to notice about this mapping. Since the "
+"subclasses are each mapped in their own <literal>&lt;class&gt;</literal> "
+"element (and since <literal>Payment</literal> is just an interface), each of "
+"the subclasses could easily be part of another inheritance hierarchy! (And "
+"you can still use polymorphic queries against the <literal>Payment</literal> "
+"interface.)"
+msgstr ""
+"Hay una cosa más por notar acerca de este mapeo. Ya que las subclases se "
+"mapean cada una en su propio elemento <literal>&lt;class&gt;</literal> (y ya "
+"que <literal>Payment</literal> es sólo una interface), cada una de las "
+"subclases podría ser parte de otra jerarquía de herencia! (Y todavía puedes "
+"seguir usando consultas polimórficas contra la interface <literal>Payment</"
+"literal>.)"
 
-#: index.docbook:232
+#. Tag: programlisting
+#: inheritance_mapping.xml:232
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
-      "    <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <discriminator column=\"CREDIT_CARD\" type=\"string\"/>\n"
-      "    <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
-      "    ...\n"
-      "    <subclass name=\"MasterCardPayment\" discriminator-value=\"MDC\"/>\n"
-      "    <subclass name=\"VisaPayment\" discriminator-value=\"VISA\"/>\n"
-      "</class>\n"
-      "\n"
-      "<class name=\"NonelectronicTransaction\" table=\"NONELECTRONIC_TXN\">\n"
-      "    <id name=\"id\" type=\"long\" column=\"TXN_ID\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    ...\n"
-      "    <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
-      "        <key column=\"PAYMENT_ID\"/>\n"
-      "        <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
-      "        ...\n"
-      "    </joined-subclass>\n"
-      "    <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
-      "        <key column=\"PAYMENT_ID\"/>\n"
-      "        <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
-      "        ...\n"
-      "    </joined-subclass>\n"
-      "</class>]]>"
-msgstr "Existen ciertas limitaciones al enfoque de \"polimorfismo impl&#x00ed;cito\" en la estrategia de mapeo de tabla por clase concreta. Existen limitaciones algo menos restrictivas a los mapeos <literal>&lt;union-subclass&gt;</literal>."
+"<![CDATA[<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+"    <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <discriminator column=\"CREDIT_CARD\" type=\"string\"/>\n"
+"    <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
+"    ...\n"
+"    <subclass name=\"MasterCardPayment\" discriminator-value=\"MDC\"/>\n"
+"    <subclass name=\"VisaPayment\" discriminator-value=\"VISA\"/>\n"
+"</class>\n"
+"\n"
+"<class name=\"NonelectronicTransaction\" table=\"NONELECTRONIC_TXN\">\n"
+"    <id name=\"id\" type=\"long\" column=\"TXN_ID\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    ...\n"
+"    <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+"        <key column=\"PAYMENT_ID\"/>\n"
+"        <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
+"        ...\n"
+"    </joined-subclass>\n"
+"    <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+"        <key column=\"PAYMENT_ID\"/>\n"
+"        <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
+"        ...\n"
+"    </joined-subclass>\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:234
-msgid "Once again, we don't mention <literal>Payment</literal> explicitly. If we execute a query against the <literal>Payment</literal> interface - for example, <literal>from Payment</literal> - Hibernate automatically returns instances of <literal>CreditCardPayment</literal> (and its subclasses, since they also implement <literal>Payment</literal>), <literal>CashPayment</literal> and <literal>ChequePayment</literal> but not instances of <literal>NonelectronicTransaction</literal>."
-msgstr "La siguiente tabla muestra las limitaciones de mapeos de tabla por clase concreta, y de polmorfismo impl&#x00ed;cito, en Hibernate."
+#. Tag: para
+#: inheritance_mapping.xml:234
+#, no-c-format
+msgid ""
+"Once again, we don't mention <literal>Payment</literal> explicitly. If we "
+"execute a query against the <literal>Payment</literal> interface - for "
+"example, <literal>from Payment</literal> - Hibernate automatically returns "
+"instances of <literal>CreditCardPayment</literal> (and its subclasses, since "
+"they also implement <literal>Payment</literal>), <literal>CashPayment</"
+"literal> and <literal>ChequePayment</literal> but not instances of "
+"<literal>NonelectronicTransaction</literal>."
+msgstr ""
+"Una vez más, no mencionamos a <literal>Payment</literal> explícitamente. Si "
+"ejecutamos una consulta contra la interface <literal>Payment</literal> - por "
+"ejemplo, <literal>from Payment</literal> - Hibernate devuelve "
+"automáticamente instancias de <literal>CreditCardPayment</literal> (y sus "
+"subclases, ya que ellas también implementan <literal>Payment</literal>), "
+"<literal>CashPayment</literal> y <literal>ChequePayment</literal> pero no "
+"instancias de <literal>NonelectronicTransaction</literal>."
 
-#: index.docbook:249
+#. Tag: title
+#: inheritance_mapping.xml:249
+#, no-c-format
 msgid "Limitations"
-msgstr "Funcionalidades de mapeo de herencia"
+msgstr "Limitaciones"
 
-#: index.docbook:251
-msgid "There are certain limitations to the \"implicit polymorphism\" approach to the table per concrete-class mapping strategy. There are somewhat less restrictive limitations to <literal>&lt;union-subclass&gt;</literal> mappings."
-msgstr "Estrategia de herencia"
+#. Tag: para
+#: inheritance_mapping.xml:251
+#, no-c-format
+msgid ""
+"There are certain limitations to the \"implicit polymorphism\" approach to "
+"the table per concrete-class mapping strategy. There are somewhat less "
+"restrictive limitations to <literal>&lt;union-subclass&gt;</literal> "
+"mappings."
+msgstr ""
+"Existen ciertas limitaciones al enfoque de \"polimorfismo implícito\" en la "
+"estrategia de mapeo de tabla por clase concreta. Existen limitaciones algo "
+"menos restrictivas a los mapeos <literal>&lt;union-subclass&gt;</literal>."
 
-#: index.docbook:258
-msgid "The following table shows the limitations of table per concrete-class mappings, and of implicit polymorphism, in Hibernate."
-msgstr "muchos-a-uno polim&#x00f3;rfica"
+#. Tag: para
+#: inheritance_mapping.xml:258
+#, no-c-format
+msgid ""
+"The following table shows the limitations of table per concrete-class "
+"mappings, and of implicit polymorphism, in Hibernate."
+msgstr ""
+"La siguiente tabla muestra las limitaciones de mapeos de tabla por clase "
+"concreta, y de polmorfismo implícito, en Hibernate."
 
-#: index.docbook:264
+#. Tag: title
+#: inheritance_mapping.xml:264
+#, no-c-format
 msgid "Features of inheritance mappings"
-msgstr "uno-a-uno polim&#x00f3;rfica"
+msgstr "Funcionalidades de mapeo de herencia"
 
-#: index.docbook:276
+#. Tag: entry
+#: inheritance_mapping.xml:276
+#, no-c-format
 msgid "Inheritance strategy"
-msgstr "uno-a-muchos polim&#x00f3;rfica"
+msgstr "Estrategia de herencia"
 
-#: index.docbook:277
+#. Tag: entry
+#: inheritance_mapping.xml:277
+#, no-c-format
 msgid "Polymorphic many-to-one"
-msgstr "mushos-a-muchos polim&#x00f3;rfica"
+msgstr "muchos-a-uno polimórfica"
 
-#: index.docbook:278
+#. Tag: entry
+#: inheritance_mapping.xml:278
+#, no-c-format
 msgid "Polymorphic one-to-one"
-msgstr "<literal>load()/get()</literal> polim&#x00f3;rficos"
+msgstr "uno-a-uno polimórfica"
 
-#: index.docbook:279
+#. Tag: entry
+#: inheritance_mapping.xml:279
+#, no-c-format
 msgid "Polymorphic one-to-many"
-msgstr "Consultas polim&#x00f3;rficas"
+msgstr "uno-a-muchos polimórfica"
 
-#: index.docbook:280
+#. Tag: entry
+#: inheritance_mapping.xml:280
+#, no-c-format
 msgid "Polymorphic many-to-many"
-msgstr "Uniones polim&#x00f3;rficas"
+msgstr "mushos-a-muchos polimórfica"
 
-#: index.docbook:281
+#. Tag: entry
+#: inheritance_mapping.xml:281
+#, no-c-format
 msgid "Polymorphic <literal>load()/get()</literal>"
-msgstr "Recuperaci&#x00f3;n por uni&#x00f3;n externa (outer join)"
+msgstr ""
 
-#: index.docbook:282
+#. Tag: entry
+#: inheritance_mapping.xml:282
+#, no-c-format
 msgid "Polymorphic queries"
-msgstr "<entry>tabla por jerarqu&#x00ed;a de clases</entry>"
+msgstr "Consultas polimórficas"
 
-#: index.docbook:283
+#. Tag: entry
+#: inheritance_mapping.xml:283
+#, no-c-format
 msgid "Polymorphic joins"
-msgstr "&lt;many-to-one&gt;"
+msgstr "Uniones polimórficas"
 
-#: index.docbook:284
+#. Tag: entry
+#: inheritance_mapping.xml:284
+#, no-c-format
 msgid "Outer join fetching"
-msgstr "&lt;one-to-one&gt;"
+msgstr "Recuperación por unión externa (outer join)"
 
-#: index.docbook:289
+#. Tag: entry
+#: inheritance_mapping.xml:289
+#, no-c-format
 msgid "table per class-hierarchy"
-msgstr "&lt;one-to-many&gt;"
+msgstr "tabla por jerarquía de clases"
 
-#: index.docbook:290, index.docbook:301, index.docbook:312
+#. Tag: literal
+#: inheritance_mapping.xml:290 inheritance_mapping.xml:301
+#: inheritance_mapping.xml:312
+#, no-c-format
 msgid "&lt;many-to-one&gt;"
-msgstr "&lt;many-to-many&gt;"
+msgstr "&lt;many-to-one&gt;"
 
-#: index.docbook:291, index.docbook:302, index.docbook:313
+#. Tag: literal
+#: inheritance_mapping.xml:291 inheritance_mapping.xml:302
+#: inheritance_mapping.xml:313
+#, no-c-format
 msgid "&lt;one-to-one&gt;"
-msgstr "s.get(Payment.class, id)"
+msgstr "&lt;one-to-one&gt;"
 
-#: index.docbook:292, index.docbook:303
+#. Tag: literal
+#: inheritance_mapping.xml:292 inheritance_mapping.xml:303
+#, no-c-format
 msgid "&lt;one-to-many&gt;"
-msgstr "from Payment p"
+msgstr "&lt;one-to-many&gt;"
 
-#: index.docbook:293, index.docbook:304, index.docbook:315
+#. Tag: literal
+#: inheritance_mapping.xml:293 inheritance_mapping.xml:304
+#: inheritance_mapping.xml:315
+#, no-c-format
 msgid "&lt;many-to-many&gt;"
-msgstr "from Order o join o.payment p"
+msgstr "&lt;many-to-many&gt;"
 
-#: index.docbook:294, index.docbook:305, index.docbook:316
+#. Tag: literal
+#: inheritance_mapping.xml:294 inheritance_mapping.xml:305
+#: inheritance_mapping.xml:316
+#, no-c-format
 msgid "s.get(Payment.class, id)"
-msgstr "soportada"
+msgstr "s.get(Payment.class, id)"
 
-#: index.docbook:295, index.docbook:306, index.docbook:317, index.docbook:328
+#. Tag: literal
+#: inheritance_mapping.xml:295 inheritance_mapping.xml:306
+#: inheritance_mapping.xml:317 inheritance_mapping.xml:328
+#, no-c-format
 msgid "from Payment p"
-msgstr "<entry>tabla por subclase</entry>"
+msgstr "from Payment p"
 
-#: index.docbook:296, index.docbook:307, index.docbook:318
+#. Tag: literal
+#: inheritance_mapping.xml:296 inheritance_mapping.xml:307
+#: inheritance_mapping.xml:318
+#, no-c-format
 msgid "from Order o join o.payment p"
-msgstr "&lt;many-to-one&gt;"
+msgstr "from Order o join o.payment p"
 
-#: index.docbook:297, index.docbook:308, index.docbook:319
+#. Tag: emphasis
+#: inheritance_mapping.xml:297 inheritance_mapping.xml:308
+#: inheritance_mapping.xml:319
+#, no-c-format
 msgid "supported"
-msgstr "&lt;one-to-one&gt;"
+msgstr "soportada"
 
-#: index.docbook:300
+#. Tag: entry
+#: inheritance_mapping.xml:300
+#, fuzzy, no-c-format
 msgid "<entry>table per subclass</entry>"
-msgstr "&lt;one-to-many&gt;"
+msgstr "tabla por subclase"
 
-#: index.docbook:311
+#. Tag: entry
+#: inheritance_mapping.xml:311
+#, no-c-format
 msgid "table per concrete-class (union-subclass)"
-msgstr "<literal>&lt;one-to-many&gt;</literal> (para <literal>inverse=\"true\"</literal> solamente)"
+msgstr "tabla por clase concreta (union-subclass)"
 
-#: index.docbook:314
-msgid "<literal>&lt;one-to-many&gt;</literal> (for <literal>inverse=\"true\"</literal> only)"
-msgstr "from Payment p"
+#. Tag: entry
+#: inheritance_mapping.xml:314
+#, no-c-format
+msgid ""
+"<literal>&lt;one-to-many&gt;</literal> (for <literal>inverse=\"true\"</"
+"literal> only)"
+msgstr ""
 
-#: index.docbook:322
+#. Tag: entry
+#: inheritance_mapping.xml:322
+#, no-c-format
 msgid "table per concrete class (implicit polymorphism)"
-msgstr "no soportada"
+msgstr "tabla por clase concreta (polimorfismo implícito)"
 
-#: index.docbook:323
+#. Tag: literal
+#: inheritance_mapping.xml:323
+#, no-c-format
 msgid "&lt;any&gt;"
-msgstr "&lt;many-to-any&gt;"
+msgstr "&lt;any&gt;"
 
-#: index.docbook:324, index.docbook:325, index.docbook:329, index.docbook:330
+#. Tag: emphasis
+#: inheritance_mapping.xml:324 inheritance_mapping.xml:325
+#: inheritance_mapping.xml:329 inheritance_mapping.xml:330
+#, fuzzy, no-c-format
 msgid "not supported"
-msgstr "s.createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()"
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"no soportada\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"no soportada\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"no suportadas\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"no soportada"
 
-#: index.docbook:326
+#. Tag: literal
+#: inheritance_mapping.xml:326
+#, no-c-format
 msgid "&lt;many-to-any&gt;"
-msgstr "no suportadas"
+msgstr "&lt;many-to-any&gt;"
 
-#: index.docbook:327
-msgid "s.createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()"
-msgstr "no soportada"
+#. Tag: literal
+#: inheritance_mapping.xml:327
+#, no-c-format
+msgid ""
+"s.createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()"
+msgstr ""
+"s.createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()"
 
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
+#~ msgid "load()/get()"
+#~ msgstr "load()/get()"
 
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
+#~ msgid "Polymorphic <placeholder-1/>"
+#~ msgstr "<placeholder-1/> polimórficos"
 
+#~ msgid "inverse=\"true\""
+#~ msgstr "inverse=\"true\""
+
+#~ msgid "<placeholder-1/> (for <placeholder-2/> only)"
+#~ msgstr "<placeholder-1/> (para <placeholder-2/> solamente)"

Modified: core/trunk/documentation/manual/translations/es-ES/content/performance.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/performance.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/performance.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,1208 +1,2621 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:5
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: performance.xml:5
+#, no-c-format
 msgid "Improving performance"
 msgstr "Mejorando el rendimiento"
 
-#: index.docbook:8
+#. Tag: title
+#: performance.xml:8
+#, no-c-format
 msgid "Fetching strategies"
-msgstr "Estrategias de recuperaci&#x00f3;n"
+msgstr "Estrategias de recuperación"
 
-#: index.docbook:10
-msgid "A <emphasis>fetching strategy</emphasis> is the strategy Hibernate will use for retrieving associated objects if the application needs to navigate the association. Fetch strategies may be declared in the O/R mapping metadata, or over-ridden by a particular HQL or <literal>Criteria</literal> query."
-msgstr "Una <emphasis>estrategia de recuperaci&#x00f3;n</emphasis> es la estrategia que usar&#x00e1; Hibernate para recuperar los objetos asociados cuando la aplicaci&#x00f3;n necesite navegar la asociaci&#x00f3;n. Las estrategias de recuperaci&#x00f3;n pueden ser declaradas en los metadatos de mapeo O/R, o sobrescritas por una consulta HQL o <literal>Criteria</literal> en particular."
+#. Tag: para
+#: performance.xml:10
+#, no-c-format
+msgid ""
+"A <emphasis>fetching strategy</emphasis> is the strategy Hibernate will use "
+"for retrieving associated objects if the application needs to navigate the "
+"association. Fetch strategies may be declared in the O/R mapping metadata, "
+"or over-ridden by a particular HQL or <literal>Criteria</literal> query."
+msgstr ""
+"Una <emphasis>estrategia de recuperación</emphasis> es la estrategia que "
+"usará Hibernate para recuperar los objetos asociados cuando la aplicación "
+"necesite navegar la asociación. Las estrategias de recuperación pueden ser "
+"declaradas en los metadatos de mapeo O/R, o sobrescritas por una consulta "
+"HQL o <literal>Criteria</literal> en particular."
 
-#: index.docbook:17
+#. Tag: para
+#: performance.xml:17
+#, no-c-format
 msgid "Hibernate3 defines the following fetching strategies:"
-msgstr "Hibernate3 define las siguientes estrategias de recuperaci&#x00f3;n:"
+msgstr "Hibernate3 define las siguientes estrategias de recuperación:"
 
-#: index.docbook:23
-msgid "<emphasis>Join fetching</emphasis> - Hibernate retrieves the associated instance or collection in the same <literal>SELECT</literal>, using an <literal>OUTER JOIN</literal>."
-msgstr "<emphasis>Recuperaci&#x00f3;n por uni&#x00f3;n (join fetching)</emphasis> - Hibernate recupera la instancia asociada o colecci&#x00f3;n en la misma <literal>SELECT</literal>, usando una <literal>OUTER JOIN</literal>."
+#. Tag: para
+#: performance.xml:23
+#, no-c-format
+msgid ""
+"<emphasis>Join fetching</emphasis> - Hibernate retrieves the associated "
+"instance or collection in the same <literal>SELECT</literal>, using an "
+"<literal>OUTER JOIN</literal>."
+msgstr ""
+"<emphasis>Recuperación por unión (join fetching)</emphasis> - Hibernate "
+"recupera la instancia asociada o colección en la misma <literal>SELECT</"
+"literal>, usando una <literal>OUTER JOIN</literal>."
 
-#: index.docbook:30
-msgid "<emphasis>Select fetching</emphasis> - a second <literal>SELECT</literal> is used to retrieve the associated entity or collection. Unless you explicitly disable lazy fetching by specifying <literal>lazy=\"false\"</literal>, this second select will only be executed when you actually access the association."
-msgstr "<emphasis>Recuperaci&#x00f3;n por selecci&#x00f3;n (select fetching)</emphasis> - se usa una segunda <literal>SELECT</literal> para recuperar la entidad asociada o colecci&#x00f3;n. A menos que deshabilites expl&#x00ed;citamente la recuperaci&#x00f3;n perezosa especificando <literal>lazy=\"false\"</literal>, la segunda selecci&#x00f3;n s&#x00f3;lo ser&#x00e1; ejecutada cuando realmente accedas a la asociaci&#x00f3;n."
+#. Tag: para
+#: performance.xml:30
+#, no-c-format
+msgid ""
+"<emphasis>Select fetching</emphasis> - a second <literal>SELECT</literal> is "
+"used to retrieve the associated entity or collection. Unless you explicitly "
+"disable lazy fetching by specifying <literal>lazy=\"false\"</literal>, this "
+"second select will only be executed when you actually access the association."
+msgstr ""
+"<emphasis>Recuperación por selección (select fetching)</emphasis> - se usa "
+"una segunda <literal>SELECT</literal> para recuperar la entidad asociada o "
+"colección. A menos que deshabilites explícitamente la recuperación perezosa "
+"especificando <literal>lazy=\"false\"</literal>, la segunda selección sólo "
+"será ejecutada cuando realmente accedas a la asociación."
 
-#: index.docbook:39
-msgid "<emphasis>Subselect fetching</emphasis> - a second <literal>SELECT</literal> is used to retrieve the associated collections for all entities retrieved in a previous query or fetch. Unless you explicitly disable lazy fetching by specifying <literal>lazy=\"false\"</literal>, this second select will only be executed when you actually access the association."
-msgstr "<emphasis>Recuperaci&#x00f3;n por subselecci&#x00f3;n (subselect fetching)</emphasis> - se usa una segunda <literal>SELECT</literal> para recuperar las colecciones asociadas de todas las entidades recuperadas en una consulta o recuperaci&#x00f3;n previa. A menos que deshabilites expl&#x00ed;citamente la recuperaci&#x00f3;n perezosa especificando <literal>lazy=\"false\"</literal>, esta segunda selecci&#x00f3;n s&#x00f3;lo ser&#x00e1; ejecutada cuando realmente accedas a la asociaci&#x00f3;n."
+#. Tag: para
+#: performance.xml:39
+#, no-c-format
+msgid ""
+"<emphasis>Subselect fetching</emphasis> - a second <literal>SELECT</literal> "
+"is used to retrieve the associated collections for all entities retrieved in "
+"a previous query or fetch. Unless you explicitly disable lazy fetching by "
+"specifying <literal>lazy=\"false\"</literal>, this second select will only "
+"be executed when you actually access the association."
+msgstr ""
+"<emphasis>Recuperación por subselección (subselect fetching)</emphasis> - se "
+"usa una segunda <literal>SELECT</literal> para recuperar las colecciones "
+"asociadas de todas las entidades recuperadas en una consulta o recuperación "
+"previa. A menos que deshabilites explícitamente la recuperación perezosa "
+"especificando <literal>lazy=\"false\"</literal>, esta segunda selección sólo "
+"será ejecutada cuando realmente accedas a la asociación."
 
-#: index.docbook:48
-msgid "<emphasis>Batch fetching</emphasis> - an optimization strategy for select fetching - Hibernate retrieves a batch of entity instances or collections in a single <literal>SELECT</literal>, by specifying a list of primary keys or foreign keys."
-msgstr "<emphasis>Recuperaci&#x00f3;n en lote</emphasis> - una estrategia de optimizaci&#x00f3;n para la recuperaci&#x00f3;n por selecci&#x00f3;n - Hibernate recupera un lote de instancias de entidad o colecciones en una sola <literal>SELECT</literal>, especificando una lista de claves primarias o de claves for&#x00e1;neas."
+#. Tag: para
+#: performance.xml:48
+#, no-c-format
+msgid ""
+"<emphasis>Batch fetching</emphasis> - an optimization strategy for select "
+"fetching - Hibernate retrieves a batch of entity instances or collections in "
+"a single <literal>SELECT</literal>, by specifying a list of primary keys or "
+"foreign keys."
+msgstr ""
+"<emphasis>Recuperación en lote</emphasis> - una estrategia de optimización "
+"para la recuperación por selección - Hibernate recupera un lote de "
+"instancias de entidad o colecciones en una sola <literal>SELECT</literal>, "
+"especificando una lista de claves primarias o de claves foráneas."
 
-#: index.docbook:57
+#. Tag: para
+#: performance.xml:57
+#, no-c-format
 msgid "Hibernate also distinguishes between:"
-msgstr "Hibernate tambi&#x00e9;n distingue entre:"
+msgstr "Hibernate también distingue entre:"
 
-#: index.docbook:63
-msgid "<emphasis>Immediate fetching</emphasis> - an association, collection or attribute is fetched immediately, when the owner is loaded."
-msgstr "<emphasis>Recuperaci&#x00f3;n inmediata</emphasis> - una asociaci&#x00f3;n, colecci&#x00f3;n o atributo es recuperado inmediatamente, cuando el due&#x00f1;o es cargado."
+#. Tag: para
+#: performance.xml:63
+#, no-c-format
+msgid ""
+"<emphasis>Immediate fetching</emphasis> - an association, collection or "
+"attribute is fetched immediately, when the owner is loaded."
+msgstr ""
+"<emphasis>Recuperación inmediata</emphasis> - una asociación, colección o "
+"atributo es recuperado inmediatamente, cuando el dueño es cargado."
 
-#: index.docbook:69
-msgid "<emphasis>Lazy collection fetching</emphasis> - a collection is fetched when the application invokes an operation upon that collection. (This is the default for collections.)"
-msgstr "<emphasis>Recuperaci&#x00f3;n perezosa de colecciones</emphasis> - se recupera una colecci&#x00f3;n cuando la aplicaci&#x00f3;n invoca una operaci&#x00f3;n sobre la colecci&#x00f3;n. (Esto es por defecto para las colecciones.)"
+#. Tag: para
+#: performance.xml:69
+#, no-c-format
+msgid ""
+"<emphasis>Lazy collection fetching</emphasis> - a collection is fetched when "
+"the application invokes an operation upon that collection. (This is the "
+"default for collections.)"
+msgstr ""
+"<emphasis>Recuperación perezosa de colecciones</emphasis> - se recupera una "
+"colección cuando la aplicación invoca una operación sobre la colección. "
+"(Esto es por defecto para las colecciones.)"
 
-#: index.docbook:76
-msgid "<emphasis>\"Extra-lazy\" collection fetching</emphasis> - individual elements of the collection are accessed from the database as needed. Hibernate tries not to fetch the whole collection into memory unless absolutely needed (suitable for very large collections)"
-msgstr "<emphasis>Recuperaci&#x00f3;n por proxy</emphasis> - se recupera una asociaci&#x00f3;n monovaluada cuando se invoca un m&#x00e9;todo que no sea el getter del identificador sobre el objeto asociado."
+#. Tag: para
+#: performance.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>\"Extra-lazy\" collection fetching</emphasis> - individual "
+"elements of the collection are accessed from the database as needed. "
+"Hibernate tries not to fetch the whole collection into memory unless "
+"absolutely needed (suitable for very large collections)"
+msgstr ""
+"<emphasis>\"Extra-lazy\" collection fetching</emphasis> - individual "
+"elements of the collection are accessed from the database as needed. "
+"Hibernate tries not to fetch the whole collection into memory unless "
+"absolutely needed (suitable for very large collections)"
 
-#: index.docbook:84
-msgid "<emphasis>Proxy fetching</emphasis> - a single-valued association is fetched when a method other than the identifier getter is invoked upon the associated object."
-msgstr "<emphasis>Recuperaci&#x00f3;n perezosa de atributos</emphasis> - se recupera un atributo o una asociaci&#x00f3;n monovaluada cuando se accede a la variable de instancia (requiere instrumentaci&#x00f3;n del bytecode en tiempo de ejecuci&#x00f3;n). Este enfoque es raramente necesario."
+#. Tag: para
+#: performance.xml:84
+#, no-c-format
+msgid ""
+"<emphasis>Proxy fetching</emphasis> - a single-valued association is fetched "
+"when a method other than the identifier getter is invoked upon the "
+"associated object."
+msgstr ""
+"<emphasis>Proxy fetching</emphasis> - a single-valued association is fetched "
+"when a method other than the identifier getter is invoked upon the "
+"associated object."
 
-#: index.docbook:91
-msgid "<emphasis>\"No-proxy\" fetching</emphasis> - a single-valued association is fetched when the instance variable is accessed. Compared to proxy fetching, this approach is less lazy (the association is fetched even when only the identifier is accessed) but more transparent, since no proxy is visible to the application. This approach requires buildtime bytecode instrumentation and is rarely necessary."
-msgstr "Aqu&#x00ed; tenemos dos nociones ortogonales: <emphasis>cu&#x00e1;ndo</emphasis> se recupera la aplicaci&#x00f3;n, y <emphasis>c&#x00f3;mo</emphasis> es recuperada (qu&#x00e9; SQL es usado). &#x00a1;No las confundas! Usamos <literal>fetch</literal> para afinar el rendimiento. Podemos usar <literal>lazy</literal> para definir un contrato sobre qu&#x00e9; datos est&#x00e1;n siempre disponibles en cualquier instancia separada de una clase en particular."
+#. Tag: para
+#: performance.xml:91
+#, no-c-format
+msgid ""
+"<emphasis>\"No-proxy\" fetching</emphasis> - a single-valued association is "
+"fetched when the instance variable is accessed. Compared to proxy fetching, "
+"this approach is less lazy (the association is fetched even when only the "
+"identifier is accessed) but more transparent, since no proxy is visible to "
+"the application. This approach requires buildtime bytecode instrumentation "
+"and is rarely necessary."
+msgstr ""
+"<emphasis>Recuperación por proxy</emphasis> - se recupera una asociación "
+"monovaluada cuando se invoca un método que no sea el getter del "
+"identificador sobre el objeto asociado."
 
-#: index.docbook:101
-msgid "<emphasis>Lazy attribute fetching</emphasis> - an attribute or single valued association is fetched when the instance variable is accessed. This approach requires buildtime bytecode instrumentation and is rarely necessary."
-msgstr "Trabajando con asociaciones perezosas"
+#. Tag: para
+#: performance.xml:101
+#, no-c-format
+msgid ""
+"<emphasis>Lazy attribute fetching</emphasis> - an attribute or single valued "
+"association is fetched when the instance variable is accessed. This approach "
+"requires buildtime bytecode instrumentation and is rarely necessary."
+msgstr ""
+"<emphasis>Recuperación perezosa de atributos</emphasis> - se recupera un "
+"atributo o una asociación monovaluada cuando se accede a la variable de "
+"instancia (requiere instrumentación del bytecode en tiempo de ejecución). "
+"Este enfoque es raramente necesario."
 
-#: index.docbook:110
-msgid "We have two orthogonal notions here: <emphasis>when</emphasis> is the association fetched, and <emphasis>how</emphasis> is it fetched (what SQL is used). Don't confuse them! We use <literal>fetch</literal> to tune performance. We may use <literal>lazy</literal> to define a contract for what data is always available in any detached instance of a particular class."
-msgstr "Por defecto, Hibernate3 usa una recuperaci&#x00f3;n perezosa por selecci&#x00f3;n para colecciones y una recuperaci&#x00f3;n por proxy perezosa para asociaciones monovaluadas. Estas pol&#x00ed;ticas por defecto tienen sentido para casi todas las asociaciones en casi todas las aplicaciones."
+#. Tag: para
+#: performance.xml:110
+#, no-c-format
+msgid ""
+"We have two orthogonal notions here: <emphasis>when</emphasis> is the "
+"association fetched, and <emphasis>how</emphasis> is it fetched (what SQL is "
+"used). Don't confuse them! We use <literal>fetch</literal> to tune "
+"performance. We may use <literal>lazy</literal> to define a contract for "
+"what data is always available in any detached instance of a particular class."
+msgstr ""
+"Aquí tenemos dos nociones ortogonales: <emphasis>cuándo</emphasis> se "
+"recupera la aplicación, y <emphasis>cómo</emphasis> es recuperada (qué SQL "
+"es usado). ¡No las confundas! Usamos <literal>fetch</literal> para afinar el "
+"rendimiento. Podemos usar <literal>lazy</literal> para definir un contrato "
+"sobre qué datos están siempre disponibles en cualquier instancia separada de "
+"una clase en particular."
 
-#: index.docbook:119
+#. Tag: title
+#: performance.xml:119
+#, no-c-format
 msgid "Working with lazy associations"
-msgstr "<emphasis>Nota:</emphasis> si estableces <literal>hibernate.default_batch_fetch_size</literal>, Hibernate usar&#x00e1; la optimizaci&#x00f3;n de recuperaci&#x00f3;n en lotes para recuperaci&#x00f3;n perezosa (esta optimizaci&#x00f3;n tambi&#x00e9;n puede ser habilitada a un nivel m&#x00e1;s granularizado)."
+msgstr "Trabajando con asociaciones perezosas"
 
-#: index.docbook:121
-msgid "By default, Hibernate3 uses lazy select fetching for collections and lazy proxy fetching for single-valued associations. These defaults make sense for almost all associations in almost all applications."
-msgstr "Sin embargo, la recuperaci&#x00f3;n perezosa plantea un problema del que tienes que estar al tanto. Acceder a una asociaci&#x00f3;n perezosa fuera del contexto de una sesi&#x00f3;n de Hibernate abierta resultar&#x00e1; en una excepci&#x00f3;n. Por ejemplo:"
+#. Tag: para
+#: performance.xml:121
+#, no-c-format
+msgid ""
+"By default, Hibernate3 uses lazy select fetching for collections and lazy "
+"proxy fetching for single-valued associations. These defaults make sense for "
+"almost all associations in almost all applications."
+msgstr ""
+"Por defecto, Hibernate3 usa una recuperación perezosa por selección para "
+"colecciones y una recuperación por proxy perezosa para asociaciones "
+"monovaluadas. Estas políticas por defecto tienen sentido para casi todas las "
+"asociaciones en casi todas las aplicaciones."
 
-#: index.docbook:127
-msgid "<emphasis>Note:</emphasis> if you set <literal>hibernate.default_batch_fetch_size</literal>, Hibernate will use the batch fetch optimization for lazy fetching (this optimization may also be enabled at a more granular level)."
+#. Tag: para
+#: performance.xml:127
+#, no-c-format
+msgid ""
+"<emphasis>Note:</emphasis> if you set <literal>hibernate."
+"default_batch_fetch_size</literal>, Hibernate will use the batch fetch "
+"optimization for lazy fetching (this optimization may also be enabled at a "
+"more granular level)."
 msgstr ""
-      "<![CDATA[s = sessions.openSession();\n"
-      "Transaction tx = s.beginTransaction();\n"
-      "            \n"
-      "User u = (User) s.createQuery(\"from User u where u.name=:userName\")\n"
-      "    .setString(\"userName\", userName).uniqueResult();\n"
-      "Map permissions = u.getPermissions();\n"
-      "\n"
-      "tx.commit();\n"
-      "s.close();\n"
-      "\n"
-      "Integer accessLevel = (Integer) permissions.get(\"accounts\");  // Error!]]>"
+"<emphasis>Nota:</emphasis> si estableces <literal>hibernate."
+"default_batch_fetch_size</literal>, Hibernate usará la optimización de "
+"recuperación en lotes para recuperación perezosa (esta optimización también "
+"puede ser habilitada a un nivel más granularizado)."
 
-#: index.docbook:134
-msgid "However, lazy fetching poses one problem that you must be aware of. Access to a lazy association outside of the context of an open Hibernate session will result in an exception. For example:"
-msgstr "Ya que la colecci&#x00f3;n de permisos no fue inicializada cuando se cerr&#x00f3; la <literal>Session</literal>, la colecci&#x00f3;n no ser&#x00e1; capaz de cargar su estado. <emphasis>Hibernate no soporta la inicializaci&#x00f3;n perezosa de objetos separados</emphasis>. La soluci&#x00f3;n es mover el c&#x00f3;digo que lee de la colecci&#x00f3;n a justo antes que la transacci&#x00f3;n sea comprometida."
+#. Tag: para
+#: performance.xml:134
+#, no-c-format
+msgid ""
+"However, lazy fetching poses one problem that you must be aware of. Access "
+"to a lazy association outside of the context of an open Hibernate session "
+"will result in an exception. For example:"
+msgstr ""
+"Sin embargo, la recuperación perezosa plantea un problema del que tienes que "
+"estar al tanto. Acceder a una asociación perezosa fuera del contexto de una "
+"sesión de Hibernate abierta resultará en una excepción. Por ejemplo:"
 
-#: index.docbook:140
+#. Tag: programlisting
+#: performance.xml:140
+#, no-c-format
 msgid ""
-      "<![CDATA[s = sessions.openSession();\n"
-      "Transaction tx = s.beginTransaction();\n"
-      "            \n"
-      "User u = (User) s.createQuery(\"from User u where u.name=:userName\")\n"
-      "    .setString(\"userName\", userName).uniqueResult();\n"
-      "Map permissions = u.getPermissions();\n"
-      "\n"
-      "tx.commit();\n"
-      "s.close();\n"
-      "\n"
-      "Integer accessLevel = (Integer) permissions.get(\"accounts\");  // Error!]]>"
-msgstr "Alternativamente, podr&#x00ed;amos usar una colecci&#x00f3;n no perezosa o asociaci&#x00f3;n, especificando <literal>lazy=\"false\"</literal> para el mapeo de asociaci&#x00f3;n. Sin embargo, est&#x00e1; pensado que la inicializaci&#x00f3;n perezosa sea usada para casi todas las colecciones y asociaciones. &#x00a1;Si defines demasiadas asociaciones no perezosas en tu modelo de objetos, Hibernate terminar&#x00e1; necesitando recuperar la base de datos entera en cada transacci&#x00f3;n!"
+"<![CDATA[s = sessions.openSession();\n"
+"Transaction tx = s.beginTransaction();\n"
+"            \n"
+"User u = (User) s.createQuery(\"from User u where u.name=:userName\")\n"
+"    .setString(\"userName\", userName).uniqueResult();\n"
+"Map permissions = u.getPermissions();\n"
+"\n"
+"tx.commit();\n"
+"s.close();\n"
+"\n"
+"Integer accessLevel = (Integer) permissions.get(\"accounts\");  // Error!]]>"
+msgstr ""
 
-#: index.docbook:142
-msgid "Since the permissions collection was not initialized when the <literal>Session</literal> was closed, the collection will not be able to load its state. <emphasis>Hibernate does not support lazy initialization for detached objects</emphasis>. The fix is to move the code that reads from the collection to just before the transaction is committed."
-msgstr "Por otro lado, frecuentemente necesitamos elegir la recuperaci&#x00f3;n por uni&#x00f3;n (que es no perezosa por naturaleza) en vez de la recuperaci&#x00f3;n por selecci&#x00f3;n en una transacci&#x00f3;n en particular. Veremos ahora c&#x00f3;mo personalizar la estrategia de recuperaci&#x00f3;n. En Hibernate3, los mecanismos para elegir una estrategia de recuperaci&#x00f3;n son id&#x00e9;nticas a las de las asociaciones monovaluadas y colecciones."
+#. Tag: para
+#: performance.xml:142
+#, no-c-format
+msgid ""
+"Since the permissions collection was not initialized when the "
+"<literal>Session</literal> was closed, the collection will not be able to "
+"load its state. <emphasis>Hibernate does not support lazy initialization for "
+"detached objects</emphasis>. The fix is to move the code that reads from the "
+"collection to just before the transaction is committed."
+msgstr ""
+"Ya que la colección de permisos no fue inicializada cuando se cerró la "
+"<literal>Session</literal>, la colección no será capaz de cargar su estado. "
+"<emphasis>Hibernate no soporta la inicialización perezosa de objetos "
+"separados</emphasis>. La solución es mover el código que lee de la colección "
+"a justo antes que la transacción sea comprometida."
 
-#: index.docbook:150
-msgid "Alternatively, we could use a non-lazy collection or association, by specifying <literal>lazy=\"false\"</literal> for the association mapping. However, it is intended that lazy initialization be used for almost all collections and associations. If you define too many non-lazy associations in your object model, Hibernate will end up needing to fetch the entire database into memory in every transaction!"
-msgstr "Afinando las estrategias de recuperaci&#x00f3;n"
+#. Tag: para
+#: performance.xml:150
+#, no-c-format
+msgid ""
+"Alternatively, we could use a non-lazy collection or association, by "
+"specifying <literal>lazy=\"false\"</literal> for the association mapping. "
+"However, it is intended that lazy initialization be used for almost all "
+"collections and associations. If you define too many non-lazy associations "
+"in your object model, Hibernate will end up needing to fetch the entire "
+"database into memory in every transaction!"
+msgstr ""
+"Alternativamente, podríamos usar una colección no perezosa o asociación, "
+"especificando <literal>lazy=\"false\"</literal> para el mapeo de asociación. "
+"Sin embargo, está pensado que la inicialización perezosa sea usada para casi "
+"todas las colecciones y asociaciones. ¡Si defines demasiadas asociaciones no "
+"perezosas en tu modelo de objetos, Hibernate terminará necesitando recuperar "
+"la base de datos entera en cada transacción!"
 
-#: index.docbook:159
-msgid "On the other hand, we often want to choose join fetching (which is non-lazy by nature) instead of select fetching in a particular transaction. We'll now see how to customize the fetching strategy. In Hibernate3, the mechanisms for choosing a fetch strategy are identical for single-valued associations and collections."
-msgstr "La recuperaci&#x00f3;n por selecci&#x00f3;n (la preestablecida) es extremadamente vulnerable a problemas de selecci&#x00f3;n N+1, de modo querr&#x00ed;amos habilitar la recuperaci&#x00f3;n por uni&#x00f3;n (join fetching) en el documento de mapeo:"
+#. Tag: para
+#: performance.xml:159
+#, no-c-format
+msgid ""
+"On the other hand, we often want to choose join fetching (which is non-lazy "
+"by nature) instead of select fetching in a particular transaction. We'll now "
+"see how to customize the fetching strategy. In Hibernate3, the mechanisms "
+"for choosing a fetch strategy are identical for single-valued associations "
+"and collections."
+msgstr ""
+"Por otro lado, frecuentemente necesitamos elegir la recuperación por unión "
+"(que es no perezosa por naturaleza) en vez de la recuperación por selección "
+"en una transacción en particular. Veremos ahora cómo personalizar la "
+"estrategia de recuperación. En Hibernate3, los mecanismos para elegir una "
+"estrategia de recuperación son idénticas a las de las asociaciones "
+"monovaluadas y colecciones."
 
-#: index.docbook:170
+#. Tag: title
+#: performance.xml:170
+#, no-c-format
 msgid "Tuning fetch strategies"
+msgstr "Afinando las estrategias de recuperación"
+
+#. Tag: para
+#: performance.xml:172
+#, no-c-format
+msgid ""
+"Select fetching (the default) is extremely vulnerable to N+1 selects "
+"problems, so we might want to enable join fetching in the mapping document:"
 msgstr ""
-      "<![CDATA[<set name=\"permissions\" \n"
-      "            fetch=\"join\">\n"
-      "    <key column=\"userId\"/>\n"
-      "    <one-to-many class=\"Permission\"/>\n"
-      "</set]]>"
+"La recuperación por selección (la preestablecida) es extremadamente "
+"vulnerable a problemas de selección N+1, de modo querríamos habilitar la "
+"recuperación por unión (join fetching) en el documento de mapeo:"
 
-#: index.docbook:172
-msgid "Select fetching (the default) is extremely vulnerable to N+1 selects problems, so we might want to enable join fetching in the mapping document:"
-msgstr "<![CDATA[<many-to-one name=\"mother\" class=\"Cat\" fetch=\"join\"/>]]>"
-
-#: index.docbook:177
+#. Tag: programlisting
+#: performance.xml:177
+#, no-c-format
 msgid ""
-      "<![CDATA[<set name=\"permissions\" \n"
-      "            fetch=\"join\">\n"
-      "    <key column=\"userId\"/>\n"
-      "    <one-to-many class=\"Permission\"/>\n"
-      "</set]]>"
-msgstr "La estrategia de recuperaci&#x00f3;n definida en el documento de mapeo afecta a:"
+"<![CDATA[<set name=\"permissions\" \n"
+"            fetch=\"join\">\n"
+"    <key column=\"userId\"/>\n"
+"    <one-to-many class=\"Permission\"/>\n"
+"</set]]>"
+msgstr ""
 
-#: index.docbook:179
+#. Tag: programlisting
+#: performance.xml:179
+#, no-c-format
 msgid "<![CDATA[<many-to-one name=\"mother\" class=\"Cat\" fetch=\"join\"/>]]>"
-msgstr "las recuperaciones v&#x00ed;a <literal>get()</literal> o <literal>load()</literal>"
+msgstr ""
 
-#: index.docbook:181
-msgid "The <literal>fetch</literal> strategy defined in the mapping document affects:"
-msgstr "las recuperaciones que ocurren impl&#x00ed;citamente cuando se navega una asociaci&#x00f3;n (recuperaci&#x00f3;n perezosa)"
+#. Tag: para
+#: performance.xml:181
+#, no-c-format
+msgid ""
+"The <literal>fetch</literal> strategy defined in the mapping document "
+"affects:"
+msgstr ""
+"La estrategia de recuperación definida en el documento de mapeo afecta a:"
 
-#: index.docbook:187
+#. Tag: para
+#: performance.xml:187
+#, no-c-format
 msgid "retrieval via <literal>get()</literal> or <literal>load()</literal>"
-msgstr "las consultas de <literal>Criteria</literal>"
+msgstr ""
+"las recuperaciones vía <literal>get()</literal> o <literal>load()</literal>"
 
-#: index.docbook:192
+#. Tag: para
+#: performance.xml:192
+#, no-c-format
 msgid "retrieval that happens implicitly when an association is navigated"
-msgstr "Usualmente, no usamos el documento de mapeo para personalizar la recuperaci&#x00f3;n. En cambio, mantenemos el comportamiento por defecto, y lo sobrescribimos para una transacci&#x00f3;n en particular, usando <literal>left join fetch</literal> en HQL. Esto le dice a Hibernate que recupere la asociaci&#x00f3;n tempranamente en la primera selecci&#x00f3;n, usando una uni&#x00f3;n externa. En la API de consulta de <literal>Criteria</literal>, usar&#x00ed;as <literal>setFetchMode(FetchMode.JOIN)</literal>."
+msgstr ""
+"las recuperaciones que ocurren implícitamente cuando se navega una "
+"asociación (recuperación perezosa)"
 
-#: index.docbook:197
+#. Tag: para
+#: performance.xml:197
+#, no-c-format
 msgid "<literal>Criteria</literal> queries"
-msgstr "Si acaso lo deseases, podr&#x00ed;as cambiar la estrategia de recuperaci&#x00f3;n usada por <literal>get()</literal> or <literal>load()</literal>; simplemente usa una consulta <literal>Criteria</literal>, por ejemplo:"
+msgstr "las consultas de <literal>Criteria</literal>"
 
-#: index.docbook:202
+#. Tag: para
+#: performance.xml:202
+#, no-c-format
 msgid "HQL queries if <literal>subselect</literal> fetching is used"
+msgstr "HQL queries if <literal>subselect</literal> fetching is used"
+
+#. Tag: para
+#: performance.xml:208
+#, no-c-format
+msgid ""
+"No matter what fetching strategy you use, the defined non-lazy graph is "
+"guaranteed to be loaded into memory. Note that this might result in several "
+"immediate selects being used to execute a particular HQL query."
 msgstr ""
-      "<![CDATA[User user = (User) session.createCriteria(User.class)\n"
-      "                .setFetchMode(\"permissions\", FetchMode.JOIN)\n"
-      "                .add( Restrictions.idEq(userId) )\n"
-      "                .uniqueResult();]]>"
+"No matter what fetching strategy you use, the defined non-lazy graph is "
+"guaranteed to be loaded into memory. Note that this might result in several "
+"immediate selects being used to execute a particular HQL query."
 
-#: index.docbook:208
-msgid "No matter what fetching strategy you use, the defined non-lazy graph is guaranteed to be loaded into memory. Note that this might result in several immediate selects being used to execute a particular HQL query."
-msgstr "(Esto es el equivalente de Hibernate de lo que otras soluciones ORM llaman un \"plan de recuperaci&#x00f3;n\".)"
+#. Tag: para
+#: performance.xml:214
+#, no-c-format
+msgid ""
+"Usually, we don't use the mapping document to customize fetching. Instead, "
+"we keep the default behavior, and override it for a particular transaction, "
+"using <literal>left join fetch</literal> in HQL. This tells Hibernate to "
+"fetch the association eagerly in the first select, using an outer join. In "
+"the <literal>Criteria</literal> query API, you would use "
+"<literal>setFetchMode(FetchMode.JOIN)</literal>."
+msgstr ""
+"Usualmente, no usamos el documento de mapeo para personalizar la "
+"recuperación. En cambio, mantenemos el comportamiento por defecto, y lo "
+"sobrescribimos para una transacción en particular, usando <literal>left join "
+"fetch</literal> en HQL. Esto le dice a Hibernate que recupere la asociación "
+"tempranamente en la primera selección, usando una unión externa. En la API "
+"de consulta de <literal>Criteria</literal>, usarías <literal>setFetchMode"
+"(FetchMode.JOIN)</literal>."
 
-#: index.docbook:214
-msgid "Usually, we don't use the mapping document to customize fetching. Instead, we keep the default behavior, and override it for a particular transaction, using <literal>left join fetch</literal> in HQL. This tells Hibernate to fetch the association eagerly in the first select, using an outer join. In the <literal>Criteria</literal> query API, you would use <literal>setFetchMode(FetchMode.JOIN)</literal>."
-msgstr "Una forma completamente diferente de evitar problemas con selecciones N+1 es usar el cach&#x00e9; de segundo nivel."
+#. Tag: para
+#: performance.xml:223
+#, no-c-format
+msgid ""
+"If you ever feel like you wish you could change the fetching strategy used "
+"by <literal>get()</literal> or <literal>load()</literal>, simply use a "
+"<literal>Criteria</literal> query, for example:"
+msgstr ""
+"Si acaso lo deseases, podrías cambiar la estrategia de recuperación usada "
+"por <literal>get()</literal> or <literal>load()</literal>; simplemente usa "
+"una consulta <literal>Criteria</literal>, por ejemplo:"
 
-#: index.docbook:223
-msgid "If you ever feel like you wish you could change the fetching strategy used by <literal>get()</literal> or <literal>load()</literal>, simply use a <literal>Criteria</literal> query, for example:"
-msgstr "Proxies de asociaciones de un solo extremo"
+#. Tag: programlisting
+#: performance.xml:229
+#, no-c-format
+msgid ""
+"<![CDATA[User user = (User) session.createCriteria(User.class)\n"
+"                .setFetchMode(\"permissions\", FetchMode.JOIN)\n"
+"                .add( Restrictions.idEq(userId) )\n"
+"                .uniqueResult();]]>"
+msgstr ""
 
-#: index.docbook:229
+#. Tag: para
+#: performance.xml:231
+#, no-c-format
 msgid ""
-      "<![CDATA[User user = (User) session.createCriteria(User.class)\n"
-      "                .setFetchMode(\"permissions\", FetchMode.JOIN)\n"
-      "                .add( Restrictions.idEq(userId) )\n"
-      "                .uniqueResult();]]>"
-msgstr "La recuperaci&#x00f3;n perezosa de colecciones est&#x00e1; implementada usando la implementaci&#x00f3;n de colecciones persistentes propia de Hibernate. Sin embargo, se necesita un mecanismo diferente para un comportamiento perezoso en las asociaciones de un solo extremo. La entidad objetivo de la asociaci&#x00f3;n debe ser tratada con proxies. Hibernate implementa proxies de inicializaci&#x00f3;n perezosa para objetos persistentes usando mejora del bytecode en tiempo de ejecuci&#x00f3;n (por medio de la excelente biblioteca CGLIB)."
+"(This is Hibernate's equivalent of what some ORM solutions call a \"fetch "
+"plan\".)"
+msgstr ""
+"(Esto es el equivalente de Hibernate de lo que otras soluciones ORM llaman "
+"un \"plan de recuperación\".)"
 
-#: index.docbook:231
-msgid "(This is Hibernate's equivalent of what some ORM solutions call a \"fetch plan\".)"
-msgstr "Por defecto, Hibernate3 genera proxies (en el arranque) para todas las clases persistentes y los usa para habilitar la recuperaci&#x00f3;n perezosa de asociaciones <literal>muchos-a-uno</literal> y <literal>uno-a-uno</literal>."
+#. Tag: para
+#: performance.xml:235
+#, no-c-format
+msgid ""
+"A completely different way to avoid problems with N+1 selects is to use the "
+"second-level cache."
+msgstr ""
+"Una forma completamente diferente de evitar problemas con selecciones N+1 es "
+"usar el caché de segundo nivel."
 
-#: index.docbook:235
-msgid "A completely different way to avoid problems with N+1 selects is to use the second-level cache."
-msgstr "El fichero de mapeo puede declarar una interface a usar como interface de proxy para esa clase, con el atributo <literal>proxy</literal>. Por defecto, Hibernate usa una subclase de la clase. <emphasis>Nota que la clase tratada con proxies debe implementar un constructor por defecto con al menos visibilidad de paquete. &#x00a1;Recomendamos este constructor para todas las clases persistentes!</emphasis>"
-
-#: index.docbook:243
+#. Tag: title
+#: performance.xml:243
+#, no-c-format
 msgid "Single-ended association proxies"
-msgstr "Hay algunos puntos a tener en cuenta al extender este enfoque a clases polim&#x00f3;rficas, por ejemplo."
+msgstr "Proxies de asociaciones de un solo extremo"
 
-#: index.docbook:245
-msgid "Lazy fetching for collections is implemented using Hibernate's own implementation of persistent collections. However, a different mechanism is needed for lazy behavior in single-ended associations. The target entity of the association must be proxied. Hibernate implements lazy initializing proxies for persistent objects using runtime bytecode enhancement (via the excellent CGLIB library)."
+#. Tag: para
+#: performance.xml:245
+#, no-c-format
+msgid ""
+"Lazy fetching for collections is implemented using Hibernate's own "
+"implementation of persistent collections. However, a different mechanism is "
+"needed for lazy behavior in single-ended associations. The target entity of "
+"the association must be proxied. Hibernate implements lazy initializing "
+"proxies for persistent objects using runtime bytecode enhancement (via the "
+"excellent CGLIB library)."
 msgstr ""
-      "<![CDATA[<class name=\"Cat\" proxy=\"Cat\">\n"
-      "    ......\n"
-      "    <subclass name=\"DomesticCat\">\n"
-      "        .....\n"
-      "    </subclass>\n"
-      "</class>]]>"
+"La recuperación perezosa de colecciones está implementada usando la "
+"implementación de colecciones persistentes propia de Hibernate. Sin embargo, "
+"se necesita un mecanismo diferente para un comportamiento perezoso en las "
+"asociaciones de un solo extremo. La entidad objetivo de la asociación debe "
+"ser tratada con proxies. Hibernate implementa proxies de inicialización "
+"perezosa para objetos persistentes usando mejora del bytecode en tiempo de "
+"ejecución (por medio de la excelente biblioteca CGLIB)."
 
-#: index.docbook:253
-msgid "By default, Hibernate3 generates proxies (at startup) for all persistent classes and uses them to enable lazy fetching of <literal>many-to-one</literal> and <literal>one-to-one</literal> associations."
-msgstr "Primero, las instancias de <literal>Cat</literal> nunca ser&#x00e1;n objeto de un cast a <literal>DomesticCat</literal>, incluso aunque la instancia subyacente sea instancia de <literal>DomesticCat</literal>:"
+#. Tag: para
+#: performance.xml:253
+#, no-c-format
+msgid ""
+"By default, Hibernate3 generates proxies (at startup) for all persistent "
+"classes and uses them to enable lazy fetching of <literal>many-to-one</"
+"literal> and <literal>one-to-one</literal> associations."
+msgstr ""
+"Por defecto, Hibernate3 genera proxies (en el arranque) para todas las "
+"clases persistentes y los usa para habilitar la recuperación perezosa de "
+"asociaciones <literal>muchos-a-uno</literal> y <literal>uno-a-uno</literal>."
 
-#: index.docbook:259
-msgid "The mapping file may declare an interface to use as the proxy interface for that class, with the <literal>proxy</literal> attribute. By default, Hibernate uses a subclass of the class. <emphasis>Note that the proxied class must implement a default constructor with at least package visibility. We recommend this constructor for all persistent classes!</emphasis>"
+#. Tag: para
+#: performance.xml:259
+#, no-c-format
+msgid ""
+"The mapping file may declare an interface to use as the proxy interface for "
+"that class, with the <literal>proxy</literal> attribute. By default, "
+"Hibernate uses a subclass of the class. <emphasis>Note that the proxied "
+"class must implement a default constructor with at least package visibility. "
+"We recommend this constructor for all persistent classes!</emphasis>"
 msgstr ""
-      "<![CDATA[Cat cat = (Cat) session.load(Cat.class, id);  // instantiate a proxy (does not hit the db)\n"
-      "if ( cat.isDomesticCat() ) {                  // hit the db to initialize the proxy\n"
-      "    DomesticCat dc = (DomesticCat) cat;       // Error!\n"
-      "    ....\n"
-      "}]]>"
+"El fichero de mapeo puede declarar una interface a usar como interface de "
+"proxy para esa clase, con el atributo <literal>proxy</literal>. Por defecto, "
+"Hibernate usa una subclase de la clase. <emphasis>Nota que la clase tratada "
+"con proxies debe implementar un constructor por defecto con al menos "
+"visibilidad de paquete. ¡Recomendamos este constructor para todas las clases "
+"persistentes!</emphasis>"
 
-#: index.docbook:266
-msgid "There are some gotchas to be aware of when extending this approach to polymorphic classes, eg."
-msgstr "Segundo, es posible romper con el operador <literal>==</literal> de un proxy."
+#. Tag: para
+#: performance.xml:266
+#, no-c-format
+msgid ""
+"There are some gotchas to be aware of when extending this approach to "
+"polymorphic classes, eg."
+msgstr ""
+"Hay algunos puntos a tener en cuenta al extender este enfoque a clases "
+"polimórficas, por ejemplo."
 
-#: index.docbook:271
+#. Tag: programlisting
+#: performance.xml:271
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Cat\" proxy=\"Cat\">\n"
-      "    ......\n"
-      "    <subclass name=\"DomesticCat\">\n"
-      "        .....\n"
-      "    </subclass>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Cat\" proxy=\"Cat\">\n"
+"    ......\n"
+"    <subclass name=\"DomesticCat\">\n"
+"        .....\n"
+"    </subclass>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[Cat cat = (Cat) session.load(Cat.class, id);            // instantiate a Cat proxy\n"
-      "DomesticCat dc = \n"
-      "        (DomesticCat) session.load(DomesticCat.class, id);  // acquire new DomesticCat proxy!\n"
-      "System.out.println(cat==dc);                            // false]]>"
 
-#: index.docbook:273
-msgid "Firstly, instances of <literal>Cat</literal> will never be castable to <literal>DomesticCat</literal>, even if the underlying instance is an instance of <literal>DomesticCat</literal>:"
-msgstr "Sin embargo, la situaci&#x00f3;n no en absoluta tan mala como parece. Aunque tenemos ahora dos referencias a objetos proxy diferentes, la instancia subyacente ser&#x00e1; a&#x00fa;n el mismo objeto:"
+#. Tag: para
+#: performance.xml:273
+#, no-c-format
+msgid ""
+"Firstly, instances of <literal>Cat</literal> will never be castable to "
+"<literal>DomesticCat</literal>, even if the underlying instance is an "
+"instance of <literal>DomesticCat</literal>:"
+msgstr ""
+"Primero, las instancias de <literal>Cat</literal> nunca serán objeto de un "
+"cast a <literal>DomesticCat</literal>, incluso aunque la instancia "
+"subyacente sea instancia de <literal>DomesticCat</literal>:"
 
-#: index.docbook:279
+#. Tag: programlisting
+#: performance.xml:279
+#, no-c-format
 msgid ""
-      "<![CDATA[Cat cat = (Cat) session.load(Cat.class, id);  // instantiate a proxy (does not hit the db)\n"
-      "if ( cat.isDomesticCat() ) {                  // hit the db to initialize the proxy\n"
-      "    DomesticCat dc = (DomesticCat) cat;       // Error!\n"
-      "    ....\n"
-      "}]]>"
+"<![CDATA[Cat cat = (Cat) session.load(Cat.class, id);  // instantiate a "
+"proxy (does not hit the db)\n"
+"if ( cat.isDomesticCat() ) {                  // hit the db to initialize "
+"the proxy\n"
+"    DomesticCat dc = (DomesticCat) cat;       // Error!\n"
+"    ....\n"
+"}]]>"
 msgstr ""
-      "<![CDATA[cat.setWeight(11.0);  // hit the db to initialize the proxy\n"
-      "System.out.println( dc.getWeight() );  // 11.0]]>"
 
-#: index.docbook:281
+#. Tag: para
+#: performance.xml:281
+#, no-c-format
 msgid "Secondly, it is possible to break proxy <literal>==</literal>."
-msgstr "Tercero, no debes usar un proxy CGLIB para una clase <literal>final</literal> o una clase con alg&#x00fa;n m&#x00e9;todo <literal>final</literal>."
+msgstr ""
+"Segundo, es posible romper con el operador <literal>==</literal> de un proxy."
 
-#: index.docbook:285
+#. Tag: programlisting
+#: performance.xml:285
+#, no-c-format
 msgid ""
-      "<![CDATA[Cat cat = (Cat) session.load(Cat.class, id);            // instantiate a Cat proxy\n"
-      "DomesticCat dc = \n"
-      "        (DomesticCat) session.load(DomesticCat.class, id);  // acquire new DomesticCat proxy!\n"
-      "System.out.println(cat==dc);                            // false]]>"
-msgstr "Finalmente, si tu objeto persistente adquiere cualquier recurso bajo instanciaci&#x00f3;n (por ejemplo, en inicializadores o constructores por defecto), entonces esos recursos ser&#x00e1;n adquiridos tambi&#x00e9;n por el proxy. La clase del proxy es una subclase real de la clase persistente."
+"<![CDATA[Cat cat = (Cat) session.load(Cat.class, id);            // "
+"instantiate a Cat proxy\n"
+"DomesticCat dc = \n"
+"        (DomesticCat) session.load(DomesticCat.class, id);  // acquire new "
+"DomesticCat proxy!\n"
+"System.out.println(cat==dc);                            // false]]>"
+msgstr ""
 
-#: index.docbook:287
-msgid "However, the situation is not quite as bad as it looks. Even though we now have two references to different proxy objects, the underlying instance will still be the same object:"
-msgstr "Estos problemas se deben a limitaciones fundamentales en el modelo de herencia &#x00fa;nica de Java. Si deseas evitar estos problemas cada una de tus clases persistentes deben implementar una interface que declare sus m&#x00e9;todos de negocio. Debes especificar estas interfaces en el fichero de mapeo. Por ejemplo:"
+#. Tag: para
+#: performance.xml:287
+#, no-c-format
+msgid ""
+"However, the situation is not quite as bad as it looks. Even though we now "
+"have two references to different proxy objects, the underlying instance will "
+"still be the same object:"
+msgstr ""
+"Sin embargo, la situación no en absoluta tan mala como parece. Aunque "
+"tenemos ahora dos referencias a objetos proxy diferentes, la instancia "
+"subyacente será aún el mismo objeto:"
 
-#: index.docbook:292
+#. Tag: programlisting
+#: performance.xml:292
+#, no-c-format
 msgid ""
-      "<![CDATA[cat.setWeight(11.0);  // hit the db to initialize the proxy\n"
-      "System.out.println( dc.getWeight() );  // 11.0]]>"
+"<![CDATA[cat.setWeight(11.0);  // hit the db to initialize the proxy\n"
+"System.out.println( dc.getWeight() );  // 11.0]]>"
 msgstr ""
-      "<![CDATA[<class name=\"CatImpl\" proxy=\"Cat\">\n"
-      "    ......\n"
-      "    <subclass name=\"DomesticCatImpl\" proxy=\"DomesticCat\">\n"
-      "        .....\n"
-      "    </subclass>\n"
-      "</class>]]>"
 
-#: index.docbook:294
-msgid "Third, you may not use a CGLIB proxy for a <literal>final</literal> class or a class with any <literal>final</literal> methods."
-msgstr "donde <literal>CatImpl</literal> implementa la interface <literal>Cat</literal> y <literal>DomesticCatImpl</literal> implementa la interface <literal>DomesticCat</literal>. Entonces <literal>load()</literal> o <literal>iterate()</literal> pueden devolver instancias de <literal>Cat</literal> y <literal>DomesticCat</literal>. (Nota que <literal>list()</literal> usualmente no devuelve proxies.)"
+#. Tag: para
+#: performance.xml:294
+#, no-c-format
+msgid ""
+"Third, you may not use a CGLIB proxy for a <literal>final</literal> class or "
+"a class with any <literal>final</literal> methods."
+msgstr ""
+"Tercero, no debes usar un proxy CGLIB para una clase <literal>final</"
+"literal> o una clase con algún método <literal>final</literal>."
 
-#: index.docbook:299
-msgid "Finally, if your persistent object acquires any resources upon instantiation (eg. in initializers or default constructor), then those resources will also be acquired by the proxy. The proxy class is an actual subclass of the persistent class."
+#. Tag: para
+#: performance.xml:299
+#, no-c-format
+msgid ""
+"Finally, if your persistent object acquires any resources upon instantiation "
+"(eg. in initializers or default constructor), then those resources will also "
+"be acquired by the proxy. The proxy class is an actual subclass of the "
+"persistent class."
 msgstr ""
-      "<![CDATA[Cat cat = (Cat) session.load(CatImpl.class, catid);\n"
-      "Iterator iter = session.createQuery(\"from CatImpl as cat where cat.name='fritz'\").iterate();\n"
-      "Cat fritz = (Cat) iter.next();]]>"
+"Finalmente, si tu objeto persistente adquiere cualquier recurso bajo "
+"instanciación (por ejemplo, en inicializadores o constructores por defecto), "
+"entonces esos recursos serán adquiridos también por el proxy. La clase del "
+"proxy es una subclase real de la clase persistente."
 
-#: index.docbook:305
-msgid "These problems are all due to fundamental limitations in Java's single inheritance model. If you wish to avoid these problems your persistent classes must each implement an interface that declares its business methods. You should specify these interfaces in the mapping file. eg."
-msgstr "Las relaciones tambi&#x00e9;n son inicializadas perezosamente. Esto significa que debes declarar cualquier propiedad como de tipo <literal>Cat</literal>, no <literal>CatImpl</literal>."
+#. Tag: para
+#: performance.xml:305
+#, no-c-format
+msgid ""
+"These problems are all due to fundamental limitations in Java's single "
+"inheritance model. If you wish to avoid these problems your persistent "
+"classes must each implement an interface that declares its business methods. "
+"You should specify these interfaces in the mapping file. eg."
+msgstr ""
+"Estos problemas se deben a limitaciones fundamentales en el modelo de "
+"herencia única de Java. Si deseas evitar estos problemas cada una de tus "
+"clases persistentes deben implementar una interface que declare sus métodos "
+"de negocio. Debes especificar estas interfaces en el fichero de mapeo. Por "
+"ejemplo:"
 
-#: index.docbook:311
+#. Tag: programlisting
+#: performance.xml:311
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"CatImpl\" proxy=\"Cat\">\n"
-      "    ......\n"
-      "    <subclass name=\"DomesticCatImpl\" proxy=\"DomesticCat\">\n"
-      "        .....\n"
-      "    </subclass>\n"
-      "</class>]]>"
-msgstr "Ciertas operaciones <emphasis>no</emphasis> requieren inicializaci&#x00f3;n de proxies."
+"<![CDATA[<class name=\"CatImpl\" proxy=\"Cat\">\n"
+"    ......\n"
+"    <subclass name=\"DomesticCatImpl\" proxy=\"DomesticCat\">\n"
+"        .....\n"
+"    </subclass>\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:313
-msgid "where <literal>CatImpl</literal> implements the interface <literal>Cat</literal> and <literal>DomesticCatImpl</literal> implements the interface <literal>DomesticCat</literal>. Then proxies for instances of <literal>Cat</literal> and <literal>DomesticCat</literal> may be returned by <literal>load()</literal> or <literal>iterate()</literal>. (Note that <literal>list()</literal> does not usually return proxies.)"
-msgstr "<literal>equals()</literal>, si la clase persistente no sobrescribe <literal>equals()</literal>"
+#. Tag: para
+#: performance.xml:313
+#, no-c-format
+msgid ""
+"where <literal>CatImpl</literal> implements the interface <literal>Cat</"
+"literal> and <literal>DomesticCatImpl</literal> implements the interface "
+"<literal>DomesticCat</literal>. Then proxies for instances of <literal>Cat</"
+"literal> and <literal>DomesticCat</literal> may be returned by <literal>load"
+"()</literal> or <literal>iterate()</literal>. (Note that <literal>list()</"
+"literal> does not usually return proxies.)"
+msgstr ""
+"donde <literal>CatImpl</literal> implementa la interface <literal>Cat</"
+"literal> y <literal>DomesticCatImpl</literal> implementa la interface "
+"<literal>DomesticCat</literal>. Entonces <literal>load()</literal> o "
+"<literal>iterate()</literal> pueden devolver instancias de <literal>Cat</"
+"literal> y <literal>DomesticCat</literal>. (Nota que <literal>list()</"
+"literal> usualmente no devuelve proxies.)"
 
-#: index.docbook:321
+#. Tag: programlisting
+#: performance.xml:321
+#, no-c-format
 msgid ""
-      "<![CDATA[Cat cat = (Cat) session.load(CatImpl.class, catid);\n"
-      "Iterator iter = session.createQuery(\"from CatImpl as cat where cat.name='fritz'\").iterate();\n"
-      "Cat fritz = (Cat) iter.next();]]>"
-msgstr "<literal>hashCode()</literal>, si la clase persistente no sobrescribe <literal>hashCode()</literal>"
+"<![CDATA[Cat cat = (Cat) session.load(CatImpl.class, catid);\n"
+"Iterator iter = session.createQuery(\"from CatImpl as cat where cat."
+"name='fritz'\").iterate();\n"
+"Cat fritz = (Cat) iter.next();]]>"
+msgstr ""
 
-#: index.docbook:323
-msgid "Relationships are also lazily initialized. This means you must declare any properties to be of type <literal>Cat</literal>, not <literal>CatImpl</literal>."
-msgstr "El m&#x00e9;todo getter del identificador"
+#. Tag: para
+#: performance.xml:323
+#, no-c-format
+msgid ""
+"Relationships are also lazily initialized. This means you must declare any "
+"properties to be of type <literal>Cat</literal>, not <literal>CatImpl</"
+"literal>."
+msgstr ""
+"Las relaciones también son inicializadas perezosamente. Esto significa que "
+"debes declarar cualquier propiedad como de tipo <literal>Cat</literal>, no "
+"<literal>CatImpl</literal>."
 
-#: index.docbook:328
-msgid "Certain operations do <emphasis>not</emphasis> require proxy initialization"
-msgstr "Hibernate detectar&#x00e1; las clase persistentes que sobrescriban <literal>equals()</literal> o <literal>hashCode()</literal>."
+#. Tag: para
+#: performance.xml:328
+#, no-c-format
+msgid ""
+"Certain operations do <emphasis>not</emphasis> require proxy initialization"
+msgstr ""
+"Ciertas operaciones <emphasis>no</emphasis> requieren inicialización de "
+"proxies."
 
-#: index.docbook:334
-msgid "<literal>equals()</literal>, if the persistent class does not override <literal>equals()</literal>"
-msgstr "Inicializando colecciones y proxies"
+#. Tag: para
+#: performance.xml:334
+#, no-c-format
+msgid ""
+"<literal>equals()</literal>, if the persistent class does not override "
+"<literal>equals()</literal>"
+msgstr ""
+"<literal>equals()</literal>, si la clase persistente no sobrescribe "
+"<literal>equals()</literal>"
 
-#: index.docbook:340
-msgid "<literal>hashCode()</literal>, if the persistent class does not override <literal>hashCode()</literal>"
-msgstr "Una <literal>LazyInitializationException</literal> ser&#x00e1; lanzada por Hibernate si una colecci&#x00f3;n o proxy sin inicializar es accedido fuera del &#x00e1;mbito de la <literal>Session</literal>, es decir, cuando la entidad que posee la colecci&#x00f3;n o que tiene la referencia al proxy est&#x00e9; en el estado separada."
+#. Tag: para
+#: performance.xml:340
+#, no-c-format
+msgid ""
+"<literal>hashCode()</literal>, if the persistent class does not override "
+"<literal>hashCode()</literal>"
+msgstr ""
+"<literal>hashCode()</literal>, si la clase persistente no sobrescribe "
+"<literal>hashCode()</literal>"
 
-#: index.docbook:346
+#. Tag: para
+#: performance.xml:346
+#, no-c-format
 msgid "The identifier getter method"
-msgstr "A veces necesitamos asegurarnos que un proxy o colecci&#x00f3;n est&#x00e9; inicializado antes de cerrar la <literal>Session</literal>. Por supuesto, siempre podemos forzar la inicializaci&#x00f3;n llamando a <literal>cat.getSex()</literal> o <literal>cat.getKittens().size()</literal>, por ejemplo. Pero esto es confuso a lectores del c&#x00f3;digo y no es conveniente para c&#x00f3;digo gen&#x00e9;rico."
+msgstr "El método getter del identificador"
 
-#: index.docbook:352
-msgid "Hibernate will detect persistent classes that override <literal>equals()</literal> or <literal>hashCode()</literal>."
-msgstr "Los m&#x00e9;todos est&#x00e1;ticos <literal>Hibernate.initialize()</literal> y <literal>Hibernate.isInitialized()</literal> proveen a la aplicaci&#x00f3;n de una forma conveniente de trabajar con colecciones o proxies inicializados perezosamente. <literal>Hibernate.initialize(cat)</literal> forzar&#x00e1; la inicializaci&#x00f3;n de un proxy, <literal>cat</literal>, en tanto su <literal>Session</literal> est&#x00e9; todav&#x00ed;a abierta. <literal>Hibernate.initialize( cat.getKittens() )</literal> tiene un efecto similar para la colecci&#x00f3;n de gatitos."
+#. Tag: para
+#: performance.xml:352
+#, no-c-format
+msgid ""
+"Hibernate will detect persistent classes that override <literal>equals()</"
+"literal> or <literal>hashCode()</literal>."
+msgstr ""
+"Hibernate detectará las clase persistentes que sobrescriban <literal>equals()"
+"</literal> o <literal>hashCode()</literal>."
 
-#: index.docbook:357
-msgid "By choosing <literal>lazy=\"no-proxy\"</literal> instead of the default <literal>lazy=\"proxy\"</literal>, we can avoid the problems associated with typecasting. However, we will require buildtime bytecode instrumentation, and all operations will result in immediate proxy initialization."
-msgstr "Otra opci&#x00f3;n es mantener la <literal>Session</literal> abierta hasta que todas las colecciones y proxies necesarios hayan sido cargados. En algunas arquitecturas de aplicaci&#x00f3;n, particularmente en aquellas donde el c&#x00f3;digo que accede a los datos usando Hibernate, y el c&#x00f3;digo que los usa est&#x00e1;n en capas de aplicaci&#x00f3;n diferentes o procesos f&#x00ed;sicos diferentes, puede ser un problema asegurar que la <literal>Session</literal> est&#x00e9; abierta cuando se inicializa una colecci&#x00f3;n. Existen dos formas b&#x00e1;sicas de tratar este tema:"
+#. Tag: para
+#: performance.xml:357
+#, no-c-format
+msgid ""
+"By choosing <literal>lazy=\"no-proxy\"</literal> instead of the default "
+"<literal>lazy=\"proxy\"</literal>, we can avoid the problems associated with "
+"typecasting. However, we will require buildtime bytecode instrumentation, "
+"and all operations will result in immediate proxy initialization."
+msgstr ""
+"UNTRANSLATED!!! By choosing <literal>lazy=\"no-proxy\"</literal> instead of "
+"the default <literal>lazy=\"proxy\"</literal>, we can avoid the problems "
+"associated with typecasting. However, we will require buildtime bytecode "
+"instrumentation, and all operations will result in immediate proxy "
+"initialization."
 
-#: index.docbook:367
+#. Tag: title
+#: performance.xml:367
+#, no-c-format
 msgid "Initializing collections and proxies"
-msgstr "En una aplicaci&#x00f3;n basada web, puede usarse un filtro de servlets para cerrar la <literal>Session</literal> s&#x00f3;lo bien al final de una petici&#x00f3;n de usuario, una vez que el rendering de la vista est&#x00e9; completa (el patr&#x00f3;n <emphasis>Sesi&#x00f3;n Abierta en Vista (Open Session in View)</emphasis>). Por supuesto, estos sitios requieren una fuerte demanda de correcci&#x00f3;n del manejo de excepciones de tu infraestructura de aplicaci&#x00f3;n. Es de una importancia vital que la <literal>Session</literal> est&#x00e9; cerrada y la transacci&#x00f3;n terminada antes de volver al usuario, incluso cuando ocurra una excepci&#x00f3;n durante el rendering de la p&#x00e1;gina. Para este enfoque, el filtro de servlet tiene que ser capaz de accceder la <literal>Session</literal>. Recomendamos que se use una variable <literal>ThreadLocal</literal> para tener la <literal>Session</literal> actual (ver el cap&#x00ed;tulo 1, <xref linkend=\"quickstart-pla!
 yingwithcats\"/>, para una implementaci&#x00f3;n de ejemplo)."
+msgstr "Inicializando colecciones y proxies"
 
-#: index.docbook:369
-msgid "A <literal>LazyInitializationException</literal> will be thrown by Hibernate if an uninitialized collection or proxy is accessed outside of the scope of the <literal>Session</literal>, ie. when the entity owning the collection or having the reference to the proxy is in the detached state."
-msgstr "En una aplciaci&#x00f3;n con una grada de negocios separada, la l&#x00f3;gica de negocio debe \"preparar\" todas las colecciones que se vayan a necesitar por la grada web antes de volver. Esto significa que la grada de negocios debe cargar todos los datos y devolver a la grada de presentaci&#x00f3;n web todos los datos que se requieran para un caso de uso en particular ya inicializados. Usualmente, la aplicaci&#x00f3;n llama a <literal>Hibernate.initialize()</literal> para cada colecci&#x00f3;n que se necesitar&#x00e1; en la grada web (esta llamada debe ocurrir antes que la sesi&#x00f3;n sea cerrada) o recupera la colecci&#x00f3;n tempranamente usando una consulta de Hibernate con una cl&#x00e1;usula <literal>FETCH</literal> o una <literal>FetchMode.JOIN</literal> en <literal>Criteria</literal>. Esto es usualmente m&#x00e1;s f&#x00e1;cil si adoptas el patr&#x00f3;n <emphasis>Comando</emphasis> en vez de un <emphasis>Fachada de Sesi&#x00f3;n</emphasis>."
+#. Tag: para
+#: performance.xml:369
+#, no-c-format
+msgid ""
+"A <literal>LazyInitializationException</literal> will be thrown by Hibernate "
+"if an uninitialized collection or proxy is accessed outside of the scope of "
+"the <literal>Session</literal>, ie. when the entity owning the collection or "
+"having the reference to the proxy is in the detached state."
+msgstr ""
+"Una <literal>LazyInitializationException</literal> será lanzada por "
+"Hibernate si una colección o proxy sin inicializar es accedido fuera del "
+"ámbito de la <literal>Session</literal>, es decir, cuando la entidad que "
+"posee la colección o que tiene la referencia al proxy esté en el estado "
+"separada."
 
-#: index.docbook:375
-msgid "Sometimes we need to ensure that a proxy or collection is initialized before closing the <literal>Session</literal>. Of course, we can alway force initialization by calling <literal>cat.getSex()</literal> or <literal>cat.getKittens().size()</literal>, for example. But that is confusing to readers of the code and is not convenient for generic code."
-msgstr "Puedes tambi&#x00e9;n adjuntar un objeto cargado previamente a una nueva <literal>Session</literal> con <literal>merge()</literal> o <literal>lock()</literal> antes de acceder a colecciones no inicializadas (u otros proxies). &#x00a1;No, Hibernate no, y ciertamente <emphasis>no debe</emphasis> hacer esto autom&#x00e1;ticamente, ya que introducir&#x00ed;a sem&#x00e1;nticas de transacci&#x00f3;n ad hoc!"
+#. Tag: para
+#: performance.xml:375
+#, no-c-format
+msgid ""
+"Sometimes we need to ensure that a proxy or collection is initialized before "
+"closing the <literal>Session</literal>. Of course, we can alway force "
+"initialization by calling <literal>cat.getSex()</literal> or <literal>cat."
+"getKittens().size()</literal>, for example. But that is confusing to readers "
+"of the code and is not convenient for generic code."
+msgstr ""
+"A veces necesitamos asegurarnos que un proxy o colección esté inicializado "
+"antes de cerrar la <literal>Session</literal>. Por supuesto, siempre podemos "
+"forzar la inicialización llamando a <literal>cat.getSex()</literal> o "
+"<literal>cat.getKittens().size()</literal>, por ejemplo. Pero esto es "
+"confuso a lectores del código y no es conveniente para código genérico."
 
-#: index.docbook:382
-msgid "The static methods <literal>Hibernate.initialize()</literal> and <literal>Hibernate.isInitialized()</literal> provide the application with a convenient way of working with lazily initialized collections or proxies. <literal>Hibernate.initialize(cat)</literal> will force the initialization of a proxy, <literal>cat</literal>, as long as its <literal>Session</literal> is still open. <literal>Hibernate.initialize( cat.getKittens() )</literal> has a similar effect for the collection of kittens."
-msgstr "A veces no quieres inicializar una colecci&#x00f3;n grande, pero necesitas a&#x00fa;n alguna informacion sobre ella (como su tama&#x00f1;o) o un subconjunto de los datos."
+#. Tag: para
+#: performance.xml:382
+#, no-c-format
+msgid ""
+"The static methods <literal>Hibernate.initialize()</literal> and "
+"<literal>Hibernate.isInitialized()</literal> provide the application with a "
+"convenient way of working with lazily initialized collections or proxies. "
+"<literal>Hibernate.initialize(cat)</literal> will force the initialization "
+"of a proxy, <literal>cat</literal>, as long as its <literal>Session</"
+"literal> is still open. <literal>Hibernate.initialize( cat.getKittens() )</"
+"literal> has a similar effect for the collection of kittens."
+msgstr ""
+"Los métodos estáticos <literal>Hibernate.initialize()</literal> y "
+"<literal>Hibernate.isInitialized()</literal> proveen a la aplicación de una "
+"forma conveniente de trabajar con colecciones o proxies inicializados "
+"perezosamente. <literal>Hibernate.initialize(cat)</literal> forzará la "
+"inicialización de un proxy, <literal>cat</literal>, en tanto su "
+"<literal>Session</literal> esté todavía abierta. <literal>Hibernate."
+"initialize( cat.getKittens() )</literal> tiene un efecto similar para la "
+"colección de gatitos."
 
-#: index.docbook:391
-msgid "Another option is to keep the <literal>Session</literal> open until all needed collections and proxies have been loaded. In some application architectures, particularly where the code that accesses data using Hibernate, and the code that uses it are in different application layers or different physical processes, it can be a problem to ensure that the <literal>Session</literal> is open when a collection is initialized. There are two basic ways to deal with this issue:"
-msgstr "Puedes usar un filtro de colecciones para obtener el tama&#x00f1;o de una colecci&#x00f3;n sin inicializarla:"
+#. Tag: para
+#: performance.xml:391
+#, no-c-format
+msgid ""
+"Another option is to keep the <literal>Session</literal> open until all "
+"needed collections and proxies have been loaded. In some application "
+"architectures, particularly where the code that accesses data using "
+"Hibernate, and the code that uses it are in different application layers or "
+"different physical processes, it can be a problem to ensure that the "
+"<literal>Session</literal> is open when a collection is initialized. There "
+"are two basic ways to deal with this issue:"
+msgstr ""
+"Otra opción es mantener la <literal>Session</literal> abierta hasta que "
+"todas las colecciones y proxies necesarios hayan sido cargados. En algunas "
+"arquitecturas de aplicación, particularmente en aquellas donde el código que "
+"accede a los datos usando Hibernate, y el código que los usa están en capas "
+"de aplicación diferentes o procesos físicos diferentes, puede ser un "
+"problema asegurar que la <literal>Session</literal> esté abierta cuando se "
+"inicializa una colección. Existen dos formas básicas de tratar este tema:"
 
-#: index.docbook:402
-msgid "In a web-based application, a servlet filter can be used to close the <literal>Session</literal> only at the very end of a user request, once the rendering of the view is complete (the <emphasis>Open Session in View</emphasis> pattern). Of course, this places heavy demands on the correctness of the exception handling of your application infrastructure. It is vitally important that the <literal>Session</literal> is closed and the transaction ended before returning to the user, even when an exception occurs during rendering of the view. See the Hibernate Wiki for examples of this \"Open Session in View\" pattern."
-msgstr "<![CDATA[( (Integer) s.createFilter( collection, \"select count(*)\" ).list().get(0) ).intValue()]]>"
+#. Tag: para
+#: performance.xml:402
+#, no-c-format
+msgid ""
+"In a web-based application, a servlet filter can be used to close the "
+"<literal>Session</literal> only at the very end of a user request, once the "
+"rendering of the view is complete (the <emphasis>Open Session in View</"
+"emphasis> pattern). Of course, this places heavy demands on the correctness "
+"of the exception handling of your application infrastructure. It is vitally "
+"important that the <literal>Session</literal> is closed and the transaction "
+"ended before returning to the user, even when an exception occurs during "
+"rendering of the view. See the Hibernate Wiki for examples of this \"Open "
+"Session in View\" pattern."
+msgstr ""
+"En una aplicación basada web, puede usarse un filtro de servlets para cerrar "
+"la <literal>Session</literal> sólo bien al final de una petición de usuario, "
+"una vez que el rendering de la vista esté completa (el patrón "
+"<emphasis>Sesión Abierta en Vista (Open Session in View)</emphasis>). Por "
+"supuesto, estos sitios requieren una fuerte demanda de corrección del manejo "
+"de excepciones de tu infraestructura de aplicación. Es de una importancia "
+"vital que la <literal>Session</literal> esté cerrada y la transacción "
+"terminada antes de volver al usuario, incluso cuando ocurra una excepción "
+"durante el rendering de la página. Para este enfoque, el filtro de servlet "
+"tiene que ser capaz de accceder la <literal>Session</literal>. Recomendamos "
+"que se use una variable <literal>ThreadLocal</literal> para tener la "
+"<literal>Session</literal> actual (ver el capítulo 1, <xref linkend="
+"\"quickstart-playingwithcats\"/>, para una implementación de ejemplo)."
 
-#: index.docbook:415
-msgid "In an application with a separate business tier, the business logic must \"prepare\" all collections that will be needed by the web tier before returning. This means that the business tier should load all the data and return all the data already initialized to the presentation/web tier that is required for a particular use case. Usually, the application calls <literal>Hibernate.initialize()</literal> for each collection that will be needed in the web tier (this call must occur before the session is closed) or retrieves the collection eagerly using a Hibernate query with a <literal>FETCH</literal> clause or a <literal>FetchMode.JOIN</literal> in <literal>Criteria</literal>. This is usually easier if you adopt the <emphasis>Command</emphasis> pattern instead of a <emphasis>Session Facade</emphasis>."
-msgstr "El m&#x00e9;todo <literal>createFilter()</literal> se usa tambi&#x00e9;n para recuperar eficientemente subconjuntos de una colecci&#x00f3;n sin necesidad de inicializar toda la colecci&#x00f3;n:"
+#. Tag: para
+#: performance.xml:415
+#, no-c-format
+msgid ""
+"In an application with a separate business tier, the business logic must "
+"\"prepare\" all collections that will be needed by the web tier before "
+"returning. This means that the business tier should load all the data and "
+"return all the data already initialized to the presentation/web tier that is "
+"required for a particular use case. Usually, the application calls "
+"<literal>Hibernate.initialize()</literal> for each collection that will be "
+"needed in the web tier (this call must occur before the session is closed) "
+"or retrieves the collection eagerly using a Hibernate query with a "
+"<literal>FETCH</literal> clause or a <literal>FetchMode.JOIN</literal> in "
+"<literal>Criteria</literal>. This is usually easier if you adopt the "
+"<emphasis>Command</emphasis> pattern instead of a <emphasis>Session Facade</"
+"emphasis>."
+msgstr ""
+"En una aplciación con una grada de negocios separada, la lógica de negocio "
+"debe \"preparar\" todas las colecciones que se vayan a necesitar por la "
+"grada web antes de volver. Esto significa que la grada de negocios debe "
+"cargar todos los datos y devolver a la grada de presentación web todos los "
+"datos que se requieran para un caso de uso en particular ya inicializados. "
+"Usualmente, la aplicación llama a <literal>Hibernate.initialize()</literal> "
+"para cada colección que se necesitará en la grada web (esta llamada debe "
+"ocurrir antes que la sesión sea cerrada) o recupera la colección "
+"tempranamente usando una consulta de Hibernate con una cláusula "
+"<literal>FETCH</literal> o una <literal>FetchMode.JOIN</literal> en "
+"<literal>Criteria</literal>. Esto es usualmente más fácil si adoptas el "
+"patrón <emphasis>Comando</emphasis> en vez de un <emphasis>Fachada de "
+"Sesión</emphasis>."
 
-#: index.docbook:430
-msgid "You may also attach a previously loaded object to a new <literal>Session</literal> with <literal>merge()</literal> or <literal>lock()</literal> before accessing uninitialized collections (or other proxies). No, Hibernate does not, and certainly <emphasis>should</emphasis> not do this automatically, since it would introduce ad hoc transaction semantics!"
-msgstr "<![CDATA[s.createFilter( lazyCollection, \"\").setFirstResult(0).setMaxResults(10).list();]]>"
+#. Tag: para
+#: performance.xml:430
+#, no-c-format
+msgid ""
+"You may also attach a previously loaded object to a new <literal>Session</"
+"literal> with <literal>merge()</literal> or <literal>lock()</literal> before "
+"accessing uninitialized collections (or other proxies). No, Hibernate does "
+"not, and certainly <emphasis>should</emphasis> not do this automatically, "
+"since it would introduce ad hoc transaction semantics!"
+msgstr ""
+"Puedes también adjuntar un objeto cargado previamente a una nueva "
+"<literal>Session</literal> con <literal>merge()</literal> o <literal>lock()</"
+"literal> antes de acceder a colecciones no inicializadas (u otros proxies). "
+"¡No, Hibernate no, y ciertamente <emphasis>no debe</emphasis> hacer esto "
+"automáticamente, ya que introduciría semánticas de transacción ad hoc!"
 
-#: index.docbook:440
-msgid "Sometimes you don't want to initialize a large collection, but still need some information about it (like its size) or a subset of the data."
-msgstr "Usando recuperaci&#x00f3;n en lotes"
+#. Tag: para
+#: performance.xml:440
+#, no-c-format
+msgid ""
+"Sometimes you don't want to initialize a large collection, but still need "
+"some information about it (like its size) or a subset of the data."
+msgstr ""
+"A veces no quieres inicializar una colección grande, pero necesitas aún "
+"alguna informacion sobre ella (como su tamaño) o un subconjunto de los datos."
 
-#: index.docbook:445
-msgid "You can use a collection filter to get the size of a collection without initializing it:"
-msgstr "Hibernate puede hacer un uso eficiente de la recuperaci&#x00f3;n en lotes, esto es, Hibernate puede cargar muchos proxies sin inicializar si se accede a un proxy (o colecciones). La recuperaci&#x00f3;n en lotes es una optimizaci&#x00f3;n de la estrategia de recuperaci&#x00f3;n por selecci&#x00f3;n perezosa. Hay dos formas en que puedes afinar la recuperaci&#x00f3;n en lotes: a nivel de la clase o de la colecci&#x00f3;n."
+#. Tag: para
+#: performance.xml:445
+#, no-c-format
+msgid ""
+"You can use a collection filter to get the size of a collection without "
+"initializing it:"
+msgstr ""
+"Puedes usar un filtro de colecciones para obtener el tamaño de una colección "
+"sin inicializarla:"
 
-#: index.docbook:449
-msgid "<![CDATA[( (Integer) s.createFilter( collection, \"select count(*)\" ).list().get(0) ).intValue()]]>"
-msgstr "La recuperaci&#x00f3;n en lotes para clases/entidades es m&#x00e1;s f&#x00e1;cil de entender. Imagina que tienes la siguiente situaci&#x00f3;n en tiempo de ejecuci&#x00f3;n: Tienes 25 instancias de <literal>Cat</literal> cargadas en una <literal>Session</literal>, cada <literal>Cat</literal> tiene una referencia a su <literal>owner</literal>, una <literal>Person</literal>. La clase <literal>Person</literal> est&#x00e1; mapeada con un proxy, <literal>lazy=\"true\"</literal>. Si ahora iteras a trav&#x00e9;s de todos los gatos y llamas a <literal>getOwner()</literal> para cada uno, Hibernate por defecto ejecutar&#x00e1; 25 sentencias <literal>SELECT</literal> para traer los due&#x00f1;os tratados con proxies. Puedes afinar este comportamiento especificando un <literal>batch-size</literal> en el mapeo de <literal>Person</literal>:"
+#. Tag: programlisting
+#: performance.xml:449
+#, no-c-format
+msgid ""
+"<![CDATA[( (Integer) s.createFilter( collection, \"select count(*)\" ).list"
+"().get(0) ).intValue()]]>"
+msgstr ""
 
-#: index.docbook:451
-msgid "The <literal>createFilter()</literal> method is also used to efficiently retrieve subsets of a collection without needing to initialize the whole collection:"
-msgstr "<![CDATA[<class name=\"Person\" batch-size=\"10\">...</class>]]>"
+#. Tag: para
+#: performance.xml:451
+#, no-c-format
+msgid ""
+"The <literal>createFilter()</literal> method is also used to efficiently "
+"retrieve subsets of a collection without needing to initialize the whole "
+"collection:"
+msgstr ""
+"El método <literal>createFilter()</literal> se usa también para recuperar "
+"eficientemente subconjuntos de una colección sin necesidad de inicializar "
+"toda la colección:"
 
-#: index.docbook:456
-msgid "<![CDATA[s.createFilter( lazyCollection, \"\").setFirstResult(0).setMaxResults(10).list();]]>"
-msgstr "Hibernate ahora ejecutar&#x00e1; s&#x00f3;lo tres consultas, el patr&#x00f3;n es 10, 10, 5."
+#. Tag: programlisting
+#: performance.xml:456
+#, no-c-format
+msgid ""
+"<![CDATA[s.createFilter( lazyCollection, \"\").setFirstResult(0)."
+"setMaxResults(10).list();]]>"
+msgstr ""
 
-#: index.docbook:461
+#. Tag: title
+#: performance.xml:461
+#, no-c-format
 msgid "Using batch fetching"
-msgstr "Tambi&#x00e9;n puedes habilitar la recuperaci&#x00f3;n en lotes para colecciones. Por ejemplo, si cada <literal>Person</literal> tiene una colecci&#x00f3;n perezosa de <literal>Cat</literal>s, y hay 10 personas actualmente cargadas en la <literal>Session</literal>, iterar a trav&#x00e9;s de las 10 personas generar&#x00e1; 10 <literal>SELECT</literal>s, una para cada llamada a <literal>getCats()</literal>. Si habilitas la recuperaci&#x00f3;n en lotes para la colecci&#x00f3;n de <literal>cats</literal> en el mapeo de <literal>Person</literal>, Hibernate puede recuperar por adelantado las colecciones:"
+msgstr "Usando recuperación en lotes"
 
-#: index.docbook:463
-msgid "Hibernate can make efficient use of batch fetching, that is, Hibernate can load several uninitialized proxies if one proxy is accessed (or collections. Batch fetching is an optimization of the lazy select fetching strategy. There are two ways you can tune batch fetching: on the class and the collection level."
+#. Tag: para
+#: performance.xml:463
+#, no-c-format
+msgid ""
+"Hibernate can make efficient use of batch fetching, that is, Hibernate can "
+"load several uninitialized proxies if one proxy is accessed (or collections. "
+"Batch fetching is an optimization of the lazy select fetching strategy. "
+"There are two ways you can tune batch fetching: on the class and the "
+"collection level."
 msgstr ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <set name=\"cats\" batch-size=\"3\">\n"
-      "        ...\n"
-      "    </set>\n"
-      "</class>]]>"
+"Hibernate puede hacer un uso eficiente de la recuperación en lotes, esto es, "
+"Hibernate puede cargar muchos proxies sin inicializar si se accede a un "
+"proxy (o colecciones). La recuperación en lotes es una optimización de la "
+"estrategia de recuperación por selección perezosa. Hay dos formas en que "
+"puedes afinar la recuperación en lotes: a nivel de la clase o de la "
+"colección."
 
-#: index.docbook:469
-msgid "Batch fetching for classes/entities is easier to understand. Imagine you have the following situation at runtime: You have 25 <literal>Cat</literal> instances loaded in a <literal>Session</literal>, each <literal>Cat</literal> has a reference to its <literal>owner</literal>, a <literal>Person</literal>. The <literal>Person</literal> class is mapped with a proxy, <literal>lazy=\"true\"</literal>. If you now iterate through all cats and call <literal>getOwner()</literal> on each, Hibernate will by default execute 25 <literal>SELECT</literal> statements, to retrieve the proxied owners. You can tune this behavior by specifying a <literal>batch-size</literal> in the mapping of <literal>Person</literal>:"
-msgstr "Con un <literal>batch-size</literal> de 3, Hibernate cargar&#x00e1; 3, 3, 3, 1 colecciones en cuatro <literal>SELECT</literal>s. Una vez m&#x00e1;s, el valor del atributo depende del n&#x00fa;mero esperado de colecciones sin inicializar en una <literal>Session</literal> en particular."
+#. Tag: para
+#: performance.xml:469
+#, no-c-format
+msgid ""
+"Batch fetching for classes/entities is easier to understand. Imagine you "
+"have the following situation at runtime: You have 25 <literal>Cat</literal> "
+"instances loaded in a <literal>Session</literal>, each <literal>Cat</"
+"literal> has a reference to its <literal>owner</literal>, a <literal>Person</"
+"literal>. The <literal>Person</literal> class is mapped with a proxy, "
+"<literal>lazy=\"true\"</literal>. If you now iterate through all cats and "
+"call <literal>getOwner()</literal> on each, Hibernate will by default "
+"execute 25 <literal>SELECT</literal> statements, to retrieve the proxied "
+"owners. You can tune this behavior by specifying a <literal>batch-size</"
+"literal> in the mapping of <literal>Person</literal>:"
+msgstr ""
+"La recuperación en lotes para clases/entidades es más fácil de entender. "
+"Imagina que tienes la siguiente situación en tiempo de ejecución: Tienes 25 "
+"instancias de <literal>Cat</literal> cargadas en una <literal>Session</"
+"literal>, cada <literal>Cat</literal> tiene una referencia a su "
+"<literal>owner</literal>, una <literal>Person</literal>. La clase "
+"<literal>Person</literal> está mapeada con un proxy, <literal>lazy=\"true\"</"
+"literal>. Si ahora iteras a través de todos los gatos y llamas a "
+"<literal>getOwner()</literal> para cada uno, Hibernate por defecto ejecutará "
+"25 sentencias <literal>SELECT</literal> para traer los dueños tratados con "
+"proxies. Puedes afinar este comportamiento especificando un <literal>batch-"
+"size</literal> en el mapeo de <literal>Person</literal>:"
 
-#: index.docbook:479
+#. Tag: programlisting
+#: performance.xml:479
+#, no-c-format
 msgid "<![CDATA[<class name=\"Person\" batch-size=\"10\">...</class>]]>"
-msgstr "La recuperaci&#x00f3;n de coleccione en lotes es particularmente &#x00fa;til si tienes un &#x00e1;rbol anidado de &#x00ed;tems, es decir, el t&#x00ed;pico patr&#x00f3;n de cuenta de materiales. (Aunque un <emphasis>conjunto anidado</emphasis> o una <emphasis>ruta materializada</emphasis> podr&#x00ed;a ser una mejor opci&#x00f3;n para &#x00e1;rboles que sean de lectura en la mayor&#x00ed;a de los casos.)"
+msgstr ""
 
-#: index.docbook:481
-msgid "Hibernate will now execute only three queries, the pattern is 10, 10, 5."
-msgstr "Usando recuperaci&#x00f3;n por subselecci&#x00f3;n"
+#. Tag: para
+#: performance.xml:481
+#, no-c-format
+msgid ""
+"Hibernate will now execute only three queries, the pattern is 10, 10, 5."
+msgstr "Hibernate ahora ejecutará sólo tres consultas, el patrón es 10, 10, 5."
 
-#: index.docbook:485
-msgid "You may also enable batch fetching of collections. For example, if each <literal>Person</literal> has a lazy collection of <literal>Cat</literal>s, and 10 persons are currently loaded in the <literal>Sesssion</literal>, iterating through all persons will generate 10 <literal>SELECT</literal>s, one for every call to <literal>getCats()</literal>. If you enable batch fetching for the <literal>cats</literal> collection in the mapping of <literal>Person</literal>, Hibernate can pre-fetch collections:"
-msgstr "Si una colecci&#x00f3;n perezosa o proxy monovaluado tiene que ser recuperado, Hibernate los carga a todos, volviendo a ejecutar la consulta original en una subselecci&#x00f3;n. Esto funciona de la misma forma que la recuperaci&#x00f3;n en lotes, sin carga fragmentaria."
+#. Tag: para
+#: performance.xml:485
+#, no-c-format
+msgid ""
+"You may also enable batch fetching of collections. For example, if each "
+"<literal>Person</literal> has a lazy collection of <literal>Cat</literal>s, "
+"and 10 persons are currently loaded in the <literal>Sesssion</literal>, "
+"iterating through all persons will generate 10 <literal>SELECT</literal>s, "
+"one for every call to <literal>getCats()</literal>. If you enable batch "
+"fetching for the <literal>cats</literal> collection in the mapping of "
+"<literal>Person</literal>, Hibernate can pre-fetch collections:"
+msgstr ""
+"También puedes habilitar la recuperación en lotes para colecciones. Por "
+"ejemplo, si cada <literal>Person</literal> tiene una colección perezosa de "
+"<literal>Cat</literal>s, y hay 10 personas actualmente cargadas en la "
+"<literal>Session</literal>, iterar a través de las 10 personas generará 10 "
+"<literal>SELECT</literal>s, una para cada llamada a <literal>getCats()</"
+"literal>. Si habilitas la recuperación en lotes para la colección de "
+"<literal>cats</literal> en el mapeo de <literal>Person</literal>, Hibernate "
+"puede recuperar por adelantado las colecciones:"
 
-#: index.docbook:494
+#. Tag: programlisting
+#: performance.xml:494
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <set name=\"cats\" batch-size=\"3\">\n"
-      "        ...\n"
-      "    </set>\n"
-      "</class>]]>"
-msgstr "Usando recuperaci&#x00f3;n perezosa de propiedades"
+"<![CDATA[<class name=\"Person\">\n"
+"    <set name=\"cats\" batch-size=\"3\">\n"
+"        ...\n"
+"    </set>\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:496
-msgid "With a <literal>batch-size</literal> of 3, Hibernate will load 3, 3, 3, 1 collections in four <literal>SELECT</literal>s. Again, the value of the attribute depends on the expected number of uninitialized collections in a particular <literal>Session</literal>."
-msgstr "Hibernate3 soporta la recuperaci&#x00f3;n perezosa de propiedades individuales. Esta t&#x00e9;cnica de optimizaci&#x00f3;n es tambi&#x00e9;n conocida como <emphasis>grupos de recuperaci&#x00f3;n (fetch groups)</emphasis>. Por favor, nota que &#x00e9;ste es mayormente un aspecto de marketing, ya que en la pr&#x00e1;ctica, optimizar lecturas de filas es mucho m&#x00e1;s importante que la optimizaci&#x00f3;n de lectura de columnas. Sin embargo, cargar s&#x00f3;lo algunas propiedades de una clase podr&#x00ed;a ser &#x00fa;til en casos extremos, cuando tablas heredadas tienen cientos de columnas y el modelo de datos no puede ser mejorado."
+#. Tag: para
+#: performance.xml:496
+#, no-c-format
+msgid ""
+"With a <literal>batch-size</literal> of 3, Hibernate will load 3, 3, 3, 1 "
+"collections in four <literal>SELECT</literal>s. Again, the value of the "
+"attribute depends on the expected number of uninitialized collections in a "
+"particular <literal>Session</literal>."
+msgstr ""
+"Con un <literal>batch-size</literal> de 3, Hibernate cargará 3, 3, 3, 1 "
+"colecciones en cuatro <literal>SELECT</literal>s. Una vez más, el valor del "
+"atributo depende del número esperado de colecciones sin inicializar en una "
+"<literal>Session</literal> en particular."
 
-#: index.docbook:502
-msgid "Batch fetching of collections is particularly useful if you have a nested tree of items, ie. the typical bill-of-materials pattern. (Although a <emphasis>nested set</emphasis> or a <emphasis>materialized path</emphasis> might be a better option for read-mostly trees.)"
-msgstr "Para habilitar la carga perezosa de propiedades, establece el atributo <literal>lazy</literal> en tus mapeos de propiedades:"
+#. Tag: para
+#: performance.xml:502
+#, no-c-format
+msgid ""
+"Batch fetching of collections is particularly useful if you have a nested "
+"tree of items, ie. the typical bill-of-materials pattern. (Although a "
+"<emphasis>nested set</emphasis> or a <emphasis>materialized path</emphasis> "
+"might be a better option for read-mostly trees.)"
+msgstr ""
+"La recuperación de coleccione en lotes es particularmente útil si tienes un "
+"árbol anidado de ítems, es decir, el típico patrón de cuenta de materiales. "
+"(Aunque un <emphasis>conjunto anidado</emphasis> o una <emphasis>ruta "
+"materializada</emphasis> podría ser una mejor opción para árboles que sean "
+"de lectura en la mayoría de los casos.)"
 
-#: index.docbook:511
+#. Tag: title
+#: performance.xml:511
+#, no-c-format
 msgid "Using subselect fetching"
+msgstr "Usando recuperación por subselección"
+
+#. Tag: para
+#: performance.xml:513
+#, no-c-format
+msgid ""
+"If one lazy collection or single-valued proxy has to be fetched, Hibernate "
+"loads all of them, re-running the original query in a subselect. This works "
+"in the same way as batch-fetching, without the piecemeal loading."
 msgstr ""
-      "<![CDATA[<class name=\"Document\">\n"
-      "       <id name=\"id\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <property name=\"name\" not-null=\"true\" length=\"50\"/>\n"
-      "    <property name=\"summary\" not-null=\"true\" length=\"200\" lazy=\"true\"/>\n"
-      "    <property name=\"text\" not-null=\"true\" length=\"2000\" lazy=\"true\"/>\n"
-      "</class>]]>"
+"Si una colección perezosa o proxy monovaluado tiene que ser recuperado, "
+"Hibernate los carga a todos, volviendo a ejecutar la consulta original en "
+"una subselección. Esto funciona de la misma forma que la recuperación en "
+"lotes, sin carga fragmentaria."
 
-#: index.docbook:513
-msgid "If one lazy collection or single-valued proxy has to be fetched, Hibernate loads all of them, re-running the original query in a subselect. This works in the same way as batch-fetching, without the piecemeal loading."
-msgstr "&#x00a1;La carga perezosa de propiedades requiere la instrumentaci&#x00f3;n del bytecode en tiempo de construcci&#x00f3;n! Si tus clases persistentes no son mejoradas, Hibernate ignorar&#x00e1; silenciosamente la configuraci&#x00f3;n perezosa de propiedades y caer&#x00e1; en recuperaci&#x00f3;n inmediata."
-
-#: index.docbook:524
+#. Tag: title
+#: performance.xml:524
+#, no-c-format
 msgid "Using lazy property fetching"
-msgstr "Para la instrumentaci&#x00f3;n del bytecode, usa la siguiente tarea Ant:"
+msgstr "Usando recuperación perezosa de propiedades"
 
-#: index.docbook:526
-msgid "Hibernate3 supports the lazy fetching of individual properties. This optimization technique is also known as <emphasis>fetch groups</emphasis>. Please note that this is mostly a marketing feature, as in practice, optimizing row reads is much more important than optimization of column reads. However, only loading some properties of a class might be useful in extreme cases, when legacy tables have hundreds of columns and the data model can not be improved."
+#. Tag: para
+#: performance.xml:526
+#, no-c-format
+msgid ""
+"Hibernate3 supports the lazy fetching of individual properties. This "
+"optimization technique is also known as <emphasis>fetch groups</emphasis>. "
+"Please note that this is mostly a marketing feature, as in practice, "
+"optimizing row reads is much more important than optimization of column "
+"reads. However, only loading some properties of a class might be useful in "
+"extreme cases, when legacy tables have hundreds of columns and the data "
+"model can not be improved."
 msgstr ""
-      "<![CDATA[<target name=\"instrument\" depends=\"compile\">\n"
-      "    <taskdef name=\"instrument\" classname=\"org.hibernate.tool.instrument.InstrumentTask\">\n"
-      "        <classpath path=\"${jar.path}\"/>\n"
-      "        <classpath path=\"${classes.dir}\"/>\n"
-      "        <classpath refid=\"lib.class.path\"/>\n"
-      "    </taskdef>\n"
-      "\n"
-      "    <instrument verbose=\"true\">\n"
-      "        <fileset dir=\"${testclasses.dir}/org/hibernate/auction/model\">\n"
-      "            <include name=\"*.class\"/>\n"
-      "        </fileset>\n"
-      "    </instrument>\n"
-      "</target>]]>"
+"Hibernate3 soporta la recuperación perezosa de propiedades individuales. "
+"Esta técnica de optimización es también conocida como <emphasis>grupos de "
+"recuperación (fetch groups)</emphasis>. Por favor, nota que éste es "
+"mayormente un aspecto de marketing, ya que en la práctica, optimizar "
+"lecturas de filas es mucho más importante que la optimización de lectura de "
+"columnas. Sin embargo, cargar sólo algunas propiedades de una clase podría "
+"ser útil en casos extremos, cuando tablas heredadas tienen cientos de "
+"columnas y el modelo de datos no puede ser mejorado."
 
-#: index.docbook:535
-msgid "To enable lazy property loading, set the <literal>lazy</literal> attribute on your particular property mappings:"
-msgstr "Una forma diferente (&#x00bf;mejor?) de evitar lecturas innecesarias de columnas, al menos para transacciones de s&#x00f3;lo lectura es usar las funcionalidades de proyecci&#x00f3;n de consultas HQL o Criteria. Esto evita la necesidad de procesar el bytecode en tiempo de construcci&#x00f3;n y ciertamente es una soluci&#x00f3;n preferida."
+#. Tag: para
+#: performance.xml:535
+#, no-c-format
+msgid ""
+"To enable lazy property loading, set the <literal>lazy</literal> attribute "
+"on your particular property mappings:"
+msgstr ""
+"Para habilitar la carga perezosa de propiedades, establece el atributo "
+"<literal>lazy</literal> en tus mapeos de propiedades:"
 
-#: index.docbook:540
+#. Tag: programlisting
+#: performance.xml:540
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Document\">\n"
-      "       <id name=\"id\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <property name=\"name\" not-null=\"true\" length=\"50\"/>\n"
-      "    <property name=\"summary\" not-null=\"true\" length=\"200\" lazy=\"true\"/>\n"
-      "    <property name=\"text\" not-null=\"true\" length=\"2000\" lazy=\"true\"/>\n"
-      "</class>]]>"
-msgstr "Puedes forzar la usual recuperaci&#x00f3;n temprana de propiedades usando <literal>fetch all properties</literal> en HQL."
+"<![CDATA[<class name=\"Document\">\n"
+"       <id name=\"id\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <property name=\"name\" not-null=\"true\" length=\"50\"/>\n"
+"    <property name=\"summary\" not-null=\"true\" length=\"200\" lazy=\"true"
+"\"/>\n"
+"    <property name=\"text\" not-null=\"true\" length=\"2000\" lazy=\"true\"/"
+">\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:542
-msgid "Lazy property loading requires buildtime bytecode instrumentation! If your persistent classes are not enhanced, Hibernate will silently ignore lazy property settings and fall back to immediate fetching."
-msgstr "El Cach&#x00e9; de Segundo Nivel"
+#. Tag: para
+#: performance.xml:542
+#, no-c-format
+msgid ""
+"Lazy property loading requires buildtime bytecode instrumentation! If your "
+"persistent classes are not enhanced, Hibernate will silently ignore lazy "
+"property settings and fall back to immediate fetching."
+msgstr ""
+"¡La carga perezosa de propiedades requiere la instrumentación del bytecode "
+"en tiempo de construcción! Si tus clases persistentes no son mejoradas, "
+"Hibernate ignorará silenciosamente la configuración perezosa de propiedades "
+"y caerá en recuperación inmediata."
 
-#: index.docbook:548
+#. Tag: para
+#: performance.xml:548
+#, no-c-format
 msgid "For bytecode instrumentation, use the following Ant task:"
-msgstr "Una <literal>Session</literal> de Hibernate es una cach&#x00e9; de datos persistentes a nivel de transacci&#x00f3;n. Es posible configurar un cluster o cach&#x00e9; a nivel de JVM (a nivel de <literal>SessionFactory</literal>) sobre una base de clase-a-clase o colecci&#x00f3;n-a-colecci&#x00f3;n. Puedes incluso enchufar una cach&#x00e9; en cluster. S&#x00e9; cuidadoso. Las cach&#x00e9;s nunca est&#x00e1;n al tanto de los cambios hechos por otra aplicaci&#x00f3;n al almac&#x00e9;n persistente (aunque pueden ser configurados para expirar regularmente los datos en cach&#x00e9;)."
+msgstr "Para la instrumentación del bytecode, usa la siguiente tarea Ant:"
 
-#: index.docbook:552
+#. Tag: programlisting
+#: performance.xml:552
+#, no-c-format
 msgid ""
-      "<![CDATA[<target name=\"instrument\" depends=\"compile\">\n"
-      "    <taskdef name=\"instrument\" classname=\"org.hibernate.tool.instrument.InstrumentTask\">\n"
-      "        <classpath path=\"${jar.path}\"/>\n"
-      "        <classpath path=\"${classes.dir}\"/>\n"
-      "        <classpath refid=\"lib.class.path\"/>\n"
-      "    </taskdef>\n"
-      "\n"
-      "    <instrument verbose=\"true\">\n"
-      "        <fileset dir=\"${testclasses.dir}/org/hibernate/auction/model\">\n"
-      "            <include name=\"*.class\"/>\n"
-      "        </fileset>\n"
-      "    </instrument>\n"
-      "</target>]]>"
-msgstr "Por defecto, Hibernate usa EHCache para caching a nivel de JVM. (El soporte a JCS ahora est&#x00e1; despreciado y ser&#x00e1; quitado en una futura versi&#x00f3;n de Hibernate.) Puedes elegir una implementaci&#x00f3;n diferente estableciendo el nombre de una clase que implemente <literal>org.hibernate.cache.CacheProvider</literal> usando la propiedad <literal>hibernate.cache.provider_class</literal>."
+"<![CDATA[<target name=\"instrument\" depends=\"compile\">\n"
+"    <taskdef name=\"instrument\" classname=\"org.hibernate.tool.instrument."
+"InstrumentTask\">\n"
+"        <classpath path=\"${jar.path}\"/>\n"
+"        <classpath path=\"${classes.dir}\"/>\n"
+"        <classpath refid=\"lib.class.path\"/>\n"
+"    </taskdef>\n"
+"\n"
+"    <instrument verbose=\"true\">\n"
+"        <fileset dir=\"${testclasses.dir}/org/hibernate/auction/model\">\n"
+"            <include name=\"*.class\"/>\n"
+"        </fileset>\n"
+"    </instrument>\n"
+"</target>]]>"
+msgstr ""
 
-#: index.docbook:554
-msgid "A different (better?) way to avoid unnecessary column reads, at least for read-only transactions is to use the projection features of HQL or Criteria queries. This avoids the need for buildtime bytecode processing and is certainly a prefered solution."
-msgstr "Proveedores de Cach&#x00e9;"
+#. Tag: para
+#: performance.xml:554
+#, no-c-format
+msgid ""
+"A different (better?) way to avoid unnecessary column reads, at least for "
+"read-only transactions is to use the projection features of HQL or Criteria "
+"queries. This avoids the need for buildtime bytecode processing and is "
+"certainly a prefered solution."
+msgstr ""
+"Una forma diferente (¿mejor?) de evitar lecturas innecesarias de columnas, "
+"al menos para transacciones de sólo lectura es usar las funcionalidades de "
+"proyección de consultas HQL o Criteria. Esto evita la necesidad de procesar "
+"el bytecode en tiempo de construcción y ciertamente es una solución "
+"preferida."
 
-#: index.docbook:561
-msgid "You may force the usual eager fetching of properties using <literal>fetch all properties</literal> in HQL."
-msgstr "Cach&#x00e9;"
+#. Tag: para
+#: performance.xml:561
+#, no-c-format
+msgid ""
+"You may force the usual eager fetching of properties using <literal>fetch "
+"all properties</literal> in HQL."
+msgstr ""
+"Puedes forzar la usual recuperación temprana de propiedades usando "
+"<literal>fetch all properties</literal> en HQL."
 
-#: index.docbook:571
+#. Tag: title
+#: performance.xml:571
+#, no-c-format
 msgid "The Second Level Cache"
-msgstr "clase del Provedor"
+msgstr "El Caché de Segundo Nivel"
 
-#: index.docbook:573
-msgid "A Hibernate <literal>Session</literal> is a transaction-level cache of persistent data. It is possible to configure a cluster or JVM-level (<literal>SessionFactory</literal>-level) cache on a class-by-class and collection-by-collection basis. You may even plug in a clustered cache. Be careful. Caches are never aware of changes made to the persistent store by another application (though they may be configured to regularly expire cached data)."
-msgstr "Tipo"
+#. Tag: para
+#: performance.xml:573
+#, no-c-format
+msgid ""
+"A Hibernate <literal>Session</literal> is a transaction-level cache of "
+"persistent data. It is possible to configure a cluster or JVM-level "
+"(<literal>SessionFactory</literal>-level) cache on a class-by-class and "
+"collection-by-collection basis. You may even plug in a clustered cache. Be "
+"careful. Caches are never aware of changes made to the persistent store by "
+"another application (though they may be configured to regularly expire "
+"cached data)."
+msgstr ""
+"Una <literal>Session</literal> de Hibernate es una caché de datos "
+"persistentes a nivel de transacción. Es posible configurar un cluster o "
+"caché a nivel de JVM (a nivel de <literal>SessionFactory</literal>) sobre "
+"una base de clase-a-clase o colección-a-colección. Puedes incluso enchufar "
+"una caché en cluster. Sé cuidadoso. Las cachés nunca están al tanto de los "
+"cambios hechos por otra aplicación al almacén persistente (aunque pueden ser "
+"configurados para expirar regularmente los datos en caché)."
 
-#: index.docbook:581
-msgid "You have the option to tell Hibernate which caching implementation to use by specifying the name of a class that implements <literal>org.hibernate.cache.CacheProvider</literal> using the property <literal>hibernate.cache.provider_class</literal>. Hibernate comes bundled with a number of built-in integrations with open-source cache providers (listed below); additionally, you could implement your own and plug it in as outlined above. Note that versions prior to 3.2 defaulted to use EhCache as the default cache provider; that is no longer the case as of 3.2."
-msgstr "Cluster Seguro"
+#. Tag: para
+#: performance.xml:581
+#, no-c-format
+msgid ""
+"You have the option to tell Hibernate which caching implementation to use by "
+"specifying the name of a class that implements <literal>org.hibernate.cache."
+"CacheProvider</literal> using the property <literal>hibernate.cache."
+"provider_class</literal>. Hibernate comes bundled with a number of built-in "
+"integrations with open-source cache providers (listed below); additionally, "
+"you could implement your own and plug it in as outlined above. Note that "
+"versions prior to 3.2 defaulted to use EhCache as the default cache "
+"provider; that is no longer the case as of 3.2."
+msgstr ""
+"Por defecto, Hibernate usa EHCache para caching a nivel de JVM. (El soporte "
+"a JCS ahora está despreciado y será quitado en una futura versión de "
+"Hibernate.) Puedes elegir una implementación diferente estableciendo el "
+"nombre de una clase que implemente <literal>org.hibernate.cache."
+"CacheProvider</literal> usando la propiedad <literal>hibernate.cache."
+"provider_class</literal>."
 
-#: index.docbook:592
+#. Tag: title
+#: performance.xml:592
+#, no-c-format
 msgid "Cache Providers"
-msgstr "Cach&#x00e9; de Consultas Soportado"
+msgstr "Proveedores de Caché"
 
-#: index.docbook:601, index.docbook:774
+#. Tag: entry
+#: performance.xml:601 performance.xml:774
+#, no-c-format
 msgid "Cache"
-msgstr "Hashtable (no pensado para uso en producci&#x00f3;n)"
+msgstr "Caché"
 
-#: index.docbook:602
+#. Tag: entry
+#: performance.xml:602
+#, no-c-format
 msgid "Provider class"
-msgstr "org.hibernate.cache.HashtableCacheProvider"
+msgstr "clase del Provedor"
 
-#: index.docbook:603
+#. Tag: entry
+#: performance.xml:603
+#, no-c-format
 msgid "Type"
-msgstr "memoria"
+msgstr "Tipo"
 
-#: index.docbook:604
+#. Tag: entry
+#: performance.xml:604
+#, no-c-format
 msgid "Cluster Safe"
-msgstr "s&#x00ed;"
+msgstr "Cluster Seguro"
 
-#: index.docbook:605
+#. Tag: entry
+#: performance.xml:605
+#, no-c-format
 msgid "Query Cache Supported"
-msgstr "EHCache"
+msgstr "Caché de Consultas Soportado"
 
-#: index.docbook:610, index.docbook:783
+#. Tag: entry
+#: performance.xml:610 performance.xml:783
+#, no-c-format
 msgid "Hashtable (not intended for production use)"
-msgstr "org.hibernate.cache.EhCacheProvider"
+msgstr "Hashtable (no pensado para uso en producción)"
 
-#: index.docbook:611
+#. Tag: literal
+#: performance.xml:611
+#, no-c-format
 msgid "org.hibernate.cache.HashtableCacheProvider"
-msgstr "memoria, disco"
+msgstr "org.hibernate.cache.HashtableCacheProvider"
 
-#: index.docbook:612
+#. Tag: entry
+#: performance.xml:612
+#, no-c-format
 msgid "memory"
-msgstr "s&#x00ed;"
+msgstr "memoria"
 
-#: index.docbook:614, index.docbook:621, index.docbook:628, index.docbook:784, index.docbook:785, index.docbook:786, index.docbook:791, index.docbook:792, index.docbook:793, index.docbook:798, index.docbook:799, index.docbook:800, index.docbook:805, index.docbook:806, index.docbook:812, index.docbook:815
+#. Tag: entry
+#: performance.xml:614 performance.xml:621 performance.xml:628
+#: performance.xml:784 performance.xml:785 performance.xml:786
+#: performance.xml:791 performance.xml:792 performance.xml:793
+#: performance.xml:798 performance.xml:799 performance.xml:800
+#: performance.xml:805 performance.xml:806 performance.xml:812
+#: performance.xml:815
+#, no-c-format
 msgid "<entry>yes</entry>"
-msgstr "OSCache"
+msgstr ""
 
-#: index.docbook:617, index.docbook:790
+#. Tag: entry
+#: performance.xml:617 performance.xml:790
+#, no-c-format
 msgid "EHCache"
-msgstr "org.hibernate.cache.OSCacheProvider"
+msgstr "EHCache"
 
-#: index.docbook:618
+#. Tag: literal
+#: performance.xml:618
+#, no-c-format
 msgid "org.hibernate.cache.EhCacheProvider"
-msgstr "memoria, disco"
+msgstr "org.hibernate.cache.EhCacheProvider"
 
-#: index.docbook:619, index.docbook:626
+#. Tag: entry
+#: performance.xml:619 performance.xml:626
+#, no-c-format
 msgid "memory, disk"
-msgstr "s&#x00ed;"
+msgstr "memoria, disco"
 
-#: index.docbook:624, index.docbook:797
+#. Tag: entry
+#: performance.xml:624 performance.xml:797
+#, no-c-format
 msgid "OSCache"
-msgstr "org.hibernate.cache.SwarmCacheProvider"
+msgstr "OSCache"
 
-#: index.docbook:625
+#. Tag: literal
+#: performance.xml:625
+#, no-c-format
 msgid "org.hibernate.cache.OSCacheProvider"
-msgstr "clusterizado (ip multicast)"
+msgstr "org.hibernate.cache.OSCacheProvider"
 
-#: index.docbook:631, index.docbook:804
+#. Tag: entry
+#: performance.xml:631 performance.xml:804
+#, no-c-format
 msgid "SwarmCache"
-msgstr "org.hibernate.cache.TreeCacheProvider"
+msgstr "SwarmCache"
 
-#: index.docbook:632
+#. Tag: literal
+#: performance.xml:632
+#, no-c-format
 msgid "org.hibernate.cache.SwarmCacheProvider"
-msgstr "clusterizado (ip multicast), transaccional"
+msgstr "org.hibernate.cache.SwarmCacheProvider"
 
-#: index.docbook:633
+#. Tag: entry
+#: performance.xml:633
+#, no-c-format
 msgid "clustered (ip multicast)"
-msgstr "s&#x00ed; (replicaci&#x00f3;n)"
+msgstr "clusterizado (ip multicast)"
 
-#: index.docbook:634
+#. Tag: entry
+#: performance.xml:634
+#, no-c-format
 msgid "yes (clustered invalidation)"
-msgstr "s&#x00ed; (requiere sincronizaci&#x00f3;n de reloj)"
+msgstr "sí (invalidación en cluster)"
 
-#: index.docbook:638, index.docbook:811
+#. Tag: entry
+#: performance.xml:638 performance.xml:811
+#, fuzzy, no-c-format
 msgid "JBoss TreeCache"
-msgstr "Mapeos de cach&#x00e9;"
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"TreeCache de JBoss\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"JBoss TreeCache"
 
-#: index.docbook:639
+#. Tag: literal
+#: performance.xml:639
+#, no-c-format
 msgid "org.hibernate.cache.TreeCacheProvider"
-msgstr "El elemento <literal>&lt;cache&gt;</literal> de una mapeo de clase o colecci&#x00f3;n tiene la siguiente forma:"
+msgstr "org.hibernate.cache.TreeCacheProvider"
 
-#: index.docbook:640
+#. Tag: entry
+#: performance.xml:640
+#, no-c-format
 msgid "clustered (ip multicast), transactional"
-msgstr ""
-      "<![CDATA[<cache \n"
-      "    usage=\"transactional|read-write|nonstrict-read-write|read-only\"\n"
-      "/>]]>"
+msgstr "clusterizado (ip multicast), transaccional"
 
-#: index.docbook:641
+#. Tag: entry
+#: performance.xml:641
+#, no-c-format
 msgid "yes (replication)"
-msgstr "<literal>usage</literal> especifica la estrategia de caching: <literal>transactional</literal>, <literal>read-write</literal>, <literal>nonstrict-read-write</literal> o <literal>read-only</literal>"
+msgstr "sí (replicación)"
 
-#: index.docbook:642
+#. Tag: entry
+#: performance.xml:642
+#, no-c-format
 msgid "yes (clock sync req.)"
-msgstr "Alternativamente (&#x00bf;preferiblemente?), puedes especificar los elementos <literal>&lt;class-cache&gt;</literal> y <literal>&lt;collection-cache&gt;</literal> en <literal>hibernate.cfg.xml</literal>."
+msgstr "sí (requiere sincronización de reloj)"
 
-#: index.docbook:649
+#. Tag: title
+#: performance.xml:649
+#, no-c-format
 msgid "Cache mappings"
-msgstr "El atributo <literal>usage</literal> especifica una <emphasis>estrategia de concurrencia al cach&#x00e9;</emphasis>."
+msgstr "Mapeos de caché"
 
-#: index.docbook:651
-msgid "The <literal>&lt;cache&gt;</literal> element of a class or collection mapping has the following form:"
-msgstr "Estrategia: s&#x00f3;lo lectura (read only)"
+#. Tag: para
+#: performance.xml:651
+#, no-c-format
+msgid ""
+"The <literal>&lt;cache&gt;</literal> element of a class or collection "
+"mapping has the following form:"
+msgstr ""
+"El elemento <literal>&lt;cache&gt;</literal> de una mapeo de clase o "
+"colección tiene la siguiente forma:"
 
-#: index.docbook:662
+#. Tag: programlisting
+#: performance.xml:662
+#, no-c-format
 msgid ""
-      "<![CDATA[<cache \n"
-      "    usage=\"transactional|read-write|nonstrict-read-write|read-only\"\n"
-      "    region=\"RegionName\"\n"
-      "    include=\"all|non-lazy\"\n"
-      "/>]]>"
-msgstr "Si tu aplicaci&#x00f3;n necesita leer pero nunca modificar las instancias de una clase persistente, puede usarse un cach&#x00e9; <literal>read-only</literal>. Esta es la mejor y m&#x00e1;s simple estrategia. Es incluso perfectamente segura de usar en un cluster."
+"<![CDATA[<cache \n"
+"    usage=\"transactional|read-write|nonstrict-read-write|read-only\"\n"
+"    region=\"RegionName\"\n"
+"    include=\"all|non-lazy\"\n"
+"/>]]>"
+msgstr ""
 
-#: index.docbook:665
-msgid "<literal>usage</literal> (required) specifies the caching strategy: <literal>transactional</literal>, <literal>read-write</literal>, <literal>nonstrict-read-write</literal> or <literal>read-only</literal>"
+#. Tag: para
+#: performance.xml:665
+#, no-c-format
+msgid ""
+"<literal>usage</literal> (required) specifies the caching strategy: "
+"<literal>transactional</literal>, <literal>read-write</literal>, "
+"<literal>nonstrict-read-write</literal> or <literal>read-only</literal>"
 msgstr ""
-      "<![CDATA[<class name=\"eg.Immutable\" mutable=\"false\">\n"
-      "    <cache usage=\"read-only\"/>\n"
-      "    ....\n"
-      "</class>]]>"
+"<literal>usage</literal> especifica la estrategia de caching: "
+"<literal>transactional</literal>, <literal>read-write</literal>, "
+"<literal>nonstrict-read-write</literal> o <literal>read-only</literal>"
 
-#: index.docbook:674
-msgid "<literal>region</literal> (optional, defaults to the class or collection role name) specifies the name of the second level cache region"
-msgstr "Estrategia: lectura/escritura (read/write)"
+#. Tag: para
+#: performance.xml:674
+#, no-c-format
+msgid ""
+"<literal>region</literal> (optional, defaults to the class or collection "
+"role name) specifies the name of the second level cache region"
+msgstr ""
+"<literal>region</literal> (optional, defaults to the class or collection "
+"role name) specifies the name of the second level cache region"
 
-#: index.docbook:681
-msgid "<literal>include</literal> (optional, defaults to <literal>all</literal>) <literal>non-lazy</literal> specifies that properties of the entity mapped with <literal>lazy=\"true\"</literal> may not be cached when attribute-level lazy fetching is enabled"
-msgstr "Si la aplicaci&#x00f3;n necesita actualizar datos, un cach&#x00e9; <literal>read-write</literal> podr&#x00ed;a ser apropiado. Esta estrategia de cach&#x00e9; nunca debe ser usada si se requiere nivel de aislamiento serializable de transacciones. Si el cach&#x00e9; es usado en un entorno JTA, debes especificar la propiedad <literal>hibernate.transaction.manager_lookup_class</literal>, mencionando una estrategia para obtener el <literal>TransactionManager</literal> de JTA. En otros entornos, debes asegurarte que la transacci&#x00f3;n est&#x00e9; completada cuando se llame a <literal>Session.close()</literal> o <literal>Session.disconnect()</literal>. Si deseas usar esta estrategia en un cluster, debes asegurarte que la implementaci&#x00f3;n de cach&#x00e9; subyacente soporta bloqueos. Los provedores de cach&#x00e9; internos predeterminados <emphasis>no</emphasis> no lo soportan."
+#. Tag: para
+#: performance.xml:681
+#, no-c-format
+msgid ""
+"<literal>include</literal> (optional, defaults to <literal>all</literal>) "
+"<literal>non-lazy</literal> specifies that properties of the entity mapped "
+"with <literal>lazy=\"true\"</literal> may not be cached when attribute-level "
+"lazy fetching is enabled"
+msgstr ""
+"<literal>include</literal> (optional, defaults to <literal>all</literal>) "
+"<literal>non-lazy</literal> specifies that properties of the entity mapped "
+"with <literal>lazy=\"true\"</literal> may not be cached when attribute-level "
+"lazy fetching is enabled"
 
-#: index.docbook:691
-msgid "Alternatively (preferrably?), you may specify <literal>&lt;class-cache&gt;</literal> and <literal>&lt;collection-cache&gt;</literal> elements in <literal>hibernate.cfg.xml</literal>."
+#. Tag: para
+#: performance.xml:691
+#, no-c-format
+msgid ""
+"Alternatively (preferrably?), you may specify <literal>&lt;class-cache&gt;</"
+"literal> and <literal>&lt;collection-cache&gt;</literal> elements in "
+"<literal>hibernate.cfg.xml</literal>."
 msgstr ""
-      "<![CDATA[<class name=\"eg.Cat\" .... >\n"
-      "    <cache usage=\"read-write\"/>\n"
-      "    ....\n"
-      "    <set name=\"kittens\" ... >\n"
-      "        <cache usage=\"read-write\"/>\n"
-      "        ....\n"
-      "    </set>\n"
-      "</class>]]>"
+"Alternativamente (¿preferiblemente?), puedes especificar los elementos "
+"<literal>&lt;class-cache&gt;</literal> y <literal>&lt;collection-cache&gt;</"
+"literal> en <literal>hibernate.cfg.xml</literal>."
 
-#: index.docbook:696
-msgid "The <literal>usage</literal> attribute specifies a <emphasis>cache concurrency strategy</emphasis>."
-msgstr "Estrategia: lectura/escritura no estricta (nonstrict read/write)"
+#. Tag: para
+#: performance.xml:696
+#, no-c-format
+msgid ""
+"The <literal>usage</literal> attribute specifies a <emphasis>cache "
+"concurrency strategy</emphasis>."
+msgstr ""
+"El atributo <literal>usage</literal> especifica una <emphasis>estrategia de "
+"concurrencia al caché</emphasis>."
 
-#: index.docbook:703
+#. Tag: title
+#: performance.xml:703
+#, no-c-format
 msgid "Strategy: read only"
-msgstr "Si la aplicaci&#x00f3;n necesita s&#x00f3;lo ocasionalmente actualizar datos (es decir, es extremadamente inprobable que dos transacciones intenten actualizar el mismo &#x00ed;tem simult&#x00e1;neamente) y no se requiere de un aislamiento de transacciones estricto, un cach&#x00e9; <literal>nonstrict-read-write</literal> podr&#x00ed;a ser apropiado. Si se usa el cach&#x00e9; en un entorno JTA, debes especificar <literal>hibernate.transaction.manager_lookup_class</literal>. En otros entornos, debes asegurarte que la transacci&#x00f3;n se haya completado cuando se llame a <literal>Session.close()</literal> o <literal>Session.disconnect()</literal>."
+msgstr "Estrategia: sólo lectura (read only)"
 
-#: index.docbook:705
-msgid "If your application needs to read but never modify instances of a persistent class, a <literal>read-only</literal> cache may be used. This is the simplest and best performing strategy. It's even perfectly safe for use in a cluster."
-msgstr "Estrategia: transaccional"
+#. Tag: para
+#: performance.xml:705
+#, no-c-format
+msgid ""
+"If your application needs to read but never modify instances of a persistent "
+"class, a <literal>read-only</literal> cache may be used. This is the "
+"simplest and best performing strategy. It's even perfectly safe for use in a "
+"cluster."
+msgstr ""
+"Si tu aplicación necesita leer pero nunca modificar las instancias de una "
+"clase persistente, puede usarse un caché <literal>read-only</literal>. Esta "
+"es la mejor y más simple estrategia. Es incluso perfectamente segura de usar "
+"en un cluster."
 
-#: index.docbook:711
+#. Tag: programlisting
+#: performance.xml:711
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"eg.Immutable\" mutable=\"false\">\n"
-      "    <cache usage=\"read-only\"/>\n"
-      "    ....\n"
-      "</class>]]>"
-msgstr "La estrategia de cach&#x00e9; <literal>transactional</literal> brinda soporte a provedores de cach&#x00e9;s completamente transaccionales como TreeCache de JBoss. Un cach&#x00e9; as&#x00ed;, puede s&#x00f3;lo ser usado en un entorno JTA y debes especificar <literal>hibernate.transaction.manager_lookup_class</literal>."
+"<![CDATA[<class name=\"eg.Immutable\" mutable=\"false\">\n"
+"    <cache usage=\"read-only\"/>\n"
+"    ....\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:717
+#. Tag: title
+#: performance.xml:717
+#, no-c-format
 msgid "Strategy: read/write"
-msgstr "Ninguno de los provedores de cach&#x00e9; soporta todas las estrategias de concurrencia al cach&#x00e9;. La siguiente tabla muestra qu&#x00e9; provedores son compatibles con qu&#x00e9; estrategias de concurrencia."
+msgstr "Estrategia: lectura/escritura (read/write)"
 
-#: index.docbook:719
-msgid "If the application needs to update data, a <literal>read-write</literal> cache might be appropriate. This cache strategy should never be used if serializable transaction isolation level is required. If the cache is used in a JTA environment, you must specify the property <literal>hibernate.transaction.manager_lookup_class</literal>, naming a strategy for obtaining the JTA <literal>TransactionManager</literal>. In other environments, you should ensure that the transaction is completed when <literal>Session.close()</literal> or <literal>Session.disconnect()</literal> is called. If you wish to use this strategy in a cluster, you should ensure that the underlying cache implementation supports locking. The built-in cache providers do <emphasis>not</emphasis>."
-msgstr "Soporte a Estrategia de Concurrencia a Cach&#x00e9;"
+#. Tag: para
+#: performance.xml:719
+#, no-c-format
+msgid ""
+"If the application needs to update data, a <literal>read-write</literal> "
+"cache might be appropriate. This cache strategy should never be used if "
+"serializable transaction isolation level is required. If the cache is used "
+"in a JTA environment, you must specify the property <literal>hibernate."
+"transaction.manager_lookup_class</literal>, naming a strategy for obtaining "
+"the JTA <literal>TransactionManager</literal>. In other environments, you "
+"should ensure that the transaction is completed when <literal>Session.close()"
+"</literal> or <literal>Session.disconnect()</literal> is called. If you wish "
+"to use this strategy in a cluster, you should ensure that the underlying "
+"cache implementation supports locking. The built-in cache providers do "
+"<emphasis>not</emphasis>."
+msgstr ""
+"Si la aplicación necesita actualizar datos, un caché <literal>read-write</"
+"literal> podría ser apropiado. Esta estrategia de caché nunca debe ser usada "
+"si se requiere nivel de aislamiento serializable de transacciones. Si el "
+"caché es usado en un entorno JTA, debes especificar la propiedad "
+"<literal>hibernate.transaction.manager_lookup_class</literal>, mencionando "
+"una estrategia para obtener el <literal>TransactionManager</literal> de JTA. "
+"En otros entornos, debes asegurarte que la transacción esté completada "
+"cuando se llame a <literal>Session.close()</literal> o <literal>Session."
+"disconnect()</literal>. Si deseas usar esta estrategia en un cluster, debes "
+"asegurarte que la implementación de caché subyacente soporta bloqueos. Los "
+"provedores de caché internos predeterminados <emphasis>no</emphasis> no lo "
+"soportan."
 
-#: index.docbook:730
+#. Tag: programlisting
+#: performance.xml:730
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"eg.Cat\" .... >\n"
-      "    <cache usage=\"read-write\"/>\n"
-      "    ....\n"
-      "    <set name=\"kittens\" ... >\n"
-      "        <cache usage=\"read-write\"/>\n"
-      "        ....\n"
-      "    </set>\n"
-      "</class>]]>"
-msgstr "Cach&#x00e9;"
+"<![CDATA[<class name=\"eg.Cat\" .... >\n"
+"    <cache usage=\"read-write\"/>\n"
+"    ....\n"
+"    <set name=\"kittens\" ... >\n"
+"        <cache usage=\"read-write\"/>\n"
+"        ....\n"
+"    </set>\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:735
+#. Tag: title
+#: performance.xml:735
+#, no-c-format
 msgid "Strategy: nonstrict read/write"
-msgstr "read-only"
+msgstr "Estrategia: lectura/escritura no estricta (nonstrict read/write)"
 
-#: index.docbook:737
-msgid "If the application only occasionally needs to update data (ie. if it is extremely unlikely that two transactions would try to update the same item simultaneously) and strict transaction isolation is not required, a <literal>nonstrict-read-write</literal> cache might be appropriate. If the cache is used in a JTA environment, you must specify <literal>hibernate.transaction.manager_lookup_class</literal>. In other environments, you should ensure that the transaction is completed when <literal>Session.close()</literal> or <literal>Session.disconnect()</literal> is called."
-msgstr "nonstrict-read-write"
+#. Tag: para
+#: performance.xml:737
+#, no-c-format
+msgid ""
+"If the application only occasionally needs to update data (ie. if it is "
+"extremely unlikely that two transactions would try to update the same item "
+"simultaneously) and strict transaction isolation is not required, a "
+"<literal>nonstrict-read-write</literal> cache might be appropriate. If the "
+"cache is used in a JTA environment, you must specify <literal>hibernate."
+"transaction.manager_lookup_class</literal>. In other environments, you "
+"should ensure that the transaction is completed when <literal>Session.close()"
+"</literal> or <literal>Session.disconnect()</literal> is called."
+msgstr ""
+"Si la aplicación necesita sólo ocasionalmente actualizar datos (es decir, es "
+"extremadamente inprobable que dos transacciones intenten actualizar el mismo "
+"ítem simultáneamente) y no se requiere de un aislamiento de transacciones "
+"estricto, un caché <literal>nonstrict-read-write</literal> podría ser "
+"apropiado. Si se usa el caché en un entorno JTA, debes especificar "
+"<literal>hibernate.transaction.manager_lookup_class</literal>. En otros "
+"entornos, debes asegurarte que la transacción se haya completado cuando se "
+"llame a <literal>Session.close()</literal> o <literal>Session.disconnect()</"
+"literal>."
 
-#: index.docbook:749
+#. Tag: title
+#: performance.xml:749
+#, no-c-format
 msgid "Strategy: transactional"
-msgstr "read-write"
+msgstr "Estrategia: transaccional"
 
-#: index.docbook:751
-msgid "The <literal>transactional</literal> cache strategy provides support for fully transactional cache providers such as JBoss TreeCache. Such a cache may only be used in a JTA environment and you must specify <literal>hibernate.transaction.manager_lookup_class</literal>."
-msgstr "transactional"
+#. Tag: para
+#: performance.xml:751
+#, no-c-format
+msgid ""
+"The <literal>transactional</literal> cache strategy provides support for "
+"fully transactional cache providers such as JBoss TreeCache. Such a cache "
+"may only be used in a JTA environment and you must specify "
+"<literal>hibernate.transaction.manager_lookup_class</literal>."
+msgstr ""
+"La estrategia de caché <literal>transactional</literal> brinda soporte a "
+"provedores de cachés completamente transaccionales como TreeCache de JBoss. "
+"Un caché así, puede sólo ser usado en un entorno JTA y debes especificar "
+"<literal>hibernate.transaction.manager_lookup_class</literal>."
 
-#: index.docbook:759
-msgid "None of the cache providers support all of the cache concurrency strategies. The following table shows which providers are compatible with which concurrency strategies."
-msgstr "Hashtable (no pensado para uso en producci&#x00f3;n)"
+#. Tag: para
+#: performance.xml:759
+#, no-c-format
+msgid ""
+"None of the cache providers support all of the cache concurrency strategies. "
+"The following table shows which providers are compatible with which "
+"concurrency strategies."
+msgstr ""
+"Ninguno de los provedores de caché soporta todas las estrategias de "
+"concurrencia al caché. La siguiente tabla muestra qué provedores son "
+"compatibles con qué estrategias de concurrencia."
 
-#: index.docbook:765
+#. Tag: title
+#: performance.xml:765
+#, no-c-format
 msgid "Cache Concurrency Strategy Support"
-msgstr "s&#x00ed;"
+msgstr "Soporte a Estrategia de Concurrencia a Caché"
 
-#: index.docbook:775
+#. Tag: entry
+#: performance.xml:775
+#, no-c-format
 msgid "read-only"
-msgstr "s&#x00ed;"
+msgstr "read-only"
 
-#: index.docbook:776
+#. Tag: entry
+#: performance.xml:776
+#, no-c-format
 msgid "nonstrict-read-write"
-msgstr "EHCache"
+msgstr "nonstrict-read-write"
 
-#: index.docbook:777
+#. Tag: entry
+#: performance.xml:777
+#, no-c-format
 msgid "read-write"
-msgstr "s&#x00ed;"
+msgstr "read-write"
 
-#: index.docbook:778
+#. Tag: entry
+#: performance.xml:778
+#, no-c-format
 msgid "transactional"
-msgstr "s&#x00ed;"
+msgstr "transactional"
 
-#: index.docbook:824
+#. Tag: title
+#: performance.xml:824
+#, no-c-format
 msgid "Managing the caches"
+msgstr "Gestionando los cachés"
+
+#. Tag: para
+#: performance.xml:826
+#, no-c-format
+msgid ""
+"Whenever you pass an object to <literal>save()</literal>, <literal>update()</"
+"literal> or <literal>saveOrUpdate()</literal> and whenever you retrieve an "
+"object using <literal>load()</literal>, <literal>get()</literal>, "
+"<literal>list()</literal>, <literal>iterate()</literal> or <literal>scroll()"
+"</literal>, that object is added to the internal cache of the "
+"<literal>Session</literal>."
 msgstr ""
-      "<![CDATA[sessionFactory.evict(Cat.class, catId); //evict a particular Cat\n"
-      "sessionFactory.evict(Cat.class);  //evict all Cats\n"
-      "sessionFactory.evictCollection(\"Cat.kittens\", catId); //evict a particular collection of kittens\n"
-      "sessionFactory.evictCollection(\"Cat.kittens\"); //evict all kitten collections]]>"
+"Siempre que pases un objeto a <literal>save()</literal>, <literal>update()</"
+"literal> o <literal>saveOrUpdate()</literal> y siempre que recuperes un "
+"objeto usando <literal>load()</literal>, <literal>get()</literal>, "
+"<literal>list()</literal>, <literal>iterate()</literal> o <literal>scroll()</"
+"literal>, ese objeto es agregado al caché interno de la <literal>Session</"
+"literal>."
 
-#: index.docbook:826
-msgid "Whenever you pass an object to <literal>save()</literal>, <literal>update()</literal> or <literal>saveOrUpdate()</literal> and whenever you retrieve an object using <literal>load()</literal>, <literal>get()</literal>, <literal>list()</literal>, <literal>iterate()</literal> or <literal>scroll()</literal>, that object is added to the internal cache of the <literal>Session</literal>."
-msgstr "El <literal>CacheMode</literal> controla c&#x00f3;mo una sesi&#x00f3;n en particular interact&#x00fa;a con el cach&#x00e9; de segundo nivel."
+#. Tag: para
+#: performance.xml:833
+#, no-c-format
+msgid ""
+"When <literal>flush()</literal> is subsequently called, the state of that "
+"object will be synchronized with the database. If you do not want this "
+"synchronization to occur or if you are processing a huge number of objects "
+"and need to manage memory efficiently, the <literal>evict()</literal> method "
+"may be used to remove the object and its collections from the first-level "
+"cache."
+msgstr ""
+"Cuando subsecuentemente se llame a <literal>flush()</literal>, el estado de "
+"ese objeto será sincronizado con la base de datos. Si no quieres que ocurra "
+"esta sincronización o si estás procesando un número enorme de objetos y "
+"necesitas gestionar la memoria eficientemente, puede usarse el método "
+"<literal>evict()</literal> para quitar el objeto y sus colecciones del caché "
+"de primer nivel."
 
-#: index.docbook:833
-msgid "When <literal>flush()</literal> is subsequently called, the state of that object will be synchronized with the database. If you do not want this synchronization to occur or if you are processing a huge number of objects and need to manage memory efficiently, the <literal>evict()</literal> method may be used to remove the object and its collections from the first-level cache."
-msgstr "<literal>CacheMode.NORMAL</literal> - lee &#x00ed;tems desde y escribe &#x00ed;tems hacia el cach&#x00e9; de segundo nivel"
+#. Tag: programlisting
+#: performance.xml:841
+#, no-c-format
+msgid ""
+"<![CDATA[ScrollableResult cats = sess.createQuery(\"from Cat as cat\").scroll"
+"(); //a huge result set\n"
+"while ( cats.next() ) {\n"
+"    Cat cat = (Cat) cats.get(0);\n"
+"    doSomethingWithACat(cat);\n"
+"    sess.evict(cat);\n"
+"}]]>"
+msgstr ""
 
-#: index.docbook:841
+#. Tag: para
+#: performance.xml:843
+#, no-c-format
 msgid ""
-      "<![CDATA[ScrollableResult cats = sess.createQuery(\"from Cat as cat\").scroll(); //a huge result set\n"
-      "while ( cats.next() ) {\n"
-      "    Cat cat = (Cat) cats.get(0);\n"
-      "    doSomethingWithACat(cat);\n"
-      "    sess.evict(cat);\n"
-      "}]]>"
-msgstr "<literal>CacheMode.GET</literal> - lee &#x00ed;tems del cach&#x00e9; de segundo nivel, pero no escribe al cach&#x00e9; de segundo nivel excepto al actualizar datos"
+"The <literal>Session</literal> also provides a <literal>contains()</literal> "
+"method to determine if an instance belongs to the session cache."
+msgstr ""
+"La <literal>Session</literal> también provee un método <literal>contains()</"
+"literal> para determinar si una instancia pertenece al caché de la sesión."
 
-#: index.docbook:843
-msgid "The <literal>Session</literal> also provides a <literal>contains()</literal> method to determine if an instance belongs to the session cache."
-msgstr "<literal>CacheMode.PUT</literal> - escribe &#x00ed;tems al cach&#x00e9; de segundo nivel, pero no lee del cach&#x00e9; de segundo nivel"
+#. Tag: para
+#: performance.xml:848
+#, no-c-format
+msgid ""
+"To completely evict all objects from the session cache, call "
+"<literal>Session.clear()</literal>"
+msgstr ""
+"Para desahuciar (evict) todos los objetos del caché de sesión, llama a "
+"<literal>Session.clear()</literal>."
 
-#: index.docbook:848
-msgid "To completely evict all objects from the session cache, call <literal>Session.clear()</literal>"
-msgstr "<literal>CacheMode.REFRESH</literal> - escribe &#x00ed;tems al cach&#x00e9; de segundo nivel, pero no lee del cach&#x00e9; de segundo nivel, salt&#x00e1;ndose el efecto de <literal>hibernate.cache.use_minimal_puts</literal>, forzando un refresco del cach&#x00e9; de segundo nivel para todos los &#x00ed;tems le&#x00ed;dos de la base de datos"
+#. Tag: para
+#: performance.xml:852
+#, no-c-format
+msgid ""
+"For the second-level cache, there are methods defined on "
+"<literal>SessionFactory</literal> for evicting the cached state of an "
+"instance, entire class, collection instance or entire collection role."
+msgstr ""
+"Para el caché de segundo nivel, hay métodos definidos en "
+"<literal>SessionFactory</literal> para desahuciar el estado en caché de una "
+"instancia, clase entera, instancia de colección o rol enter de colección."
 
-#: index.docbook:852
-msgid "For the second-level cache, there are methods defined on <literal>SessionFactory</literal> for evicting the cached state of an instance, entire class, collection instance or entire collection role."
-msgstr "Para navegar por los contenidos de una regi&#x00f3;n de cach&#x00e9; de segundo nivel o de consultas, usa la API de <literal>Statistics</literal>:"
+#. Tag: programlisting
+#: performance.xml:858
+#, no-c-format
+msgid ""
+"<![CDATA[sessionFactory.evict(Cat.class, catId); //evict a particular Cat\n"
+"sessionFactory.evict(Cat.class);  //evict all Cats\n"
+"sessionFactory.evictCollection(\"Cat.kittens\", catId); //evict a particular "
+"collection of kittens\n"
+"sessionFactory.evictCollection(\"Cat.kittens\"); //evict all kitten "
+"collections]]>"
+msgstr ""
 
-#: index.docbook:858
+#. Tag: para
+#: performance.xml:860
+#, no-c-format
 msgid ""
-      "<![CDATA[sessionFactory.evict(Cat.class, catId); //evict a particular Cat\n"
-      "sessionFactory.evict(Cat.class);  //evict all Cats\n"
-      "sessionFactory.evictCollection(\"Cat.kittens\", catId); //evict a particular collection of kittens\n"
-      "sessionFactory.evictCollection(\"Cat.kittens\"); //evict all kitten collections]]>"
+"The <literal>CacheMode</literal> controls how a particular session interacts "
+"with the second-level cache."
 msgstr ""
-      "<![CDATA[Map cacheEntries = sessionFactory.getStatistics()\n"
-      "        .getSecondLevelCacheStatistics(regionName)\n"
-      "        .getEntries();]]>"
+"El <literal>CacheMode</literal> controla cómo una sesión en particular "
+"interactúa con el caché de segundo nivel."
 
-#: index.docbook:860
-msgid "The <literal>CacheMode</literal> controls how a particular session interacts with the second-level cache."
-msgstr "Necesitar&#x00e1;s habilitar las estad&#x00ed;sticas y, opcionalmente, forzar a Hibernate para que guarde las entradas del cach&#x00e9; en un formato m&#x00e1;s entendible por humanos:"
+#. Tag: para
+#: performance.xml:867
+#, no-c-format
+msgid ""
+"<literal>CacheMode.NORMAL</literal> - read items from and write items to the "
+"second-level cache"
+msgstr ""
+"<literal>CacheMode.NORMAL</literal> - lee ítems desde y escribe ítems hacia "
+"el caché de segundo nivel"
 
-#: index.docbook:867
-msgid "<literal>CacheMode.NORMAL</literal> - read items from and write items to the second-level cache"
+#. Tag: para
+#: performance.xml:872
+#, no-c-format
+msgid ""
+"<literal>CacheMode.GET</literal> - read items from the second-level cache, "
+"but don't write to the second-level cache except when updating data"
 msgstr ""
-      "<![CDATA[hibernate.generate_statistics true\n"
-      "hibernate.cache.use_structured_entries true]]>"
+"<literal>CacheMode.GET</literal> - lee ítems del caché de segundo nivel, "
+"pero no escribe al caché de segundo nivel excepto al actualizar datos"
 
-#: index.docbook:872
-msgid "<literal>CacheMode.GET</literal> - read items from the second-level cache, but don't write to the second-level cache except when updating data"
-msgstr "El Cach&#x00e9; de Consultas"
+#. Tag: para
+#: performance.xml:878
+#, no-c-format
+msgid ""
+"<literal>CacheMode.PUT</literal> - write items to the second-level cache, "
+"but don't read from the second-level cache"
+msgstr ""
+"<literal>CacheMode.PUT</literal> - escribe ítems al caché de segundo nivel, "
+"pero no lee del caché de segundo nivel"
 
-#: index.docbook:878
-msgid "<literal>CacheMode.PUT</literal> - write items to the second-level cache, but don't read from the second-level cache"
-msgstr "Los conjuntos resultado de consultas tambi&#x00e9;n pueden tratarse en cach&#x00e9;. Esto s&#x00f3;lo es &#x00fa;til para consultas que se ejecutan frecuentemente con los mismos par&#x00e1;metros. Para usar el cach&#x00e9; de consultas primero debes habilitarlo:"
+#. Tag: para
+#: performance.xml:884
+#, no-c-format
+msgid ""
+"<literal>CacheMode.REFRESH</literal> - write items to the second-level "
+"cache, but don't read from the second-level cache, bypass the effect of "
+"<literal>hibernate.cache.use_minimal_puts</literal>, forcing a refresh of "
+"the second-level cache for all items read from the database"
+msgstr ""
+"<literal>CacheMode.REFRESH</literal> - escribe ítems al caché de segundo "
+"nivel, pero no lee del caché de segundo nivel, saltándose el efecto de "
+"<literal>hibernate.cache.use_minimal_puts</literal>, forzando un refresco "
+"del caché de segundo nivel para todos los ítems leídos de la base de datos"
 
-#: index.docbook:884
-msgid "<literal>CacheMode.REFRESH</literal> - write items to the second-level cache, but don't read from the second-level cache, bypass the effect of <literal>hibernate.cache.use_minimal_puts</literal>, forcing a refresh of the second-level cache for all items read from the database"
-msgstr "<![CDATA[hibernate.cache.use_query_cache true]]>"
+#. Tag: para
+#: performance.xml:892
+#, no-c-format
+msgid ""
+"To browse the contents of a second-level or query cache region, use the "
+"<literal>Statistics</literal> API:"
+msgstr ""
+"Para navegar por los contenidos de una región de caché de segundo nivel o de "
+"consultas, usa la API de <literal>Statistics</literal>:"
 
-#: index.docbook:892
-msgid "To browse the contents of a second-level or query cache region, use the <literal>Statistics</literal> API:"
-msgstr "Esta configuraci&#x00f3;n causa la creaci&#x00f3;n de dos nuevas regiones de cach&#x00e9; - una teniendo en cach&#x00e9; conjuntos resultado de consulta (<literal>org.hibernate.cache.StandardQueryCache</literal>), el otro teniendo timestamps de las actualizaciones m&#x00e1;s recientes a tablas consultables (<literal>org.hibernate.cache.UpdateTimestampsCache</literal>). Nota que el cach&#x00e9; de consultas no pone en cach&#x00e9; el estado de las entidades reales en el conjunto resultado; s&#x00f3;lo tiene en cach&#x00e9; valores indentificadores y resultados de tipo de valor. De modo que el cach&#x00e9; de consultas siempre debe ser usado en conjunci&#x00f3;n con el cach&#x00e9; de segundo nivel."
+#. Tag: programlisting
+#: performance.xml:897
+#, no-c-format
+msgid ""
+"<![CDATA[Map cacheEntries = sessionFactory.getStatistics()\n"
+"        .getSecondLevelCacheStatistics(regionName)\n"
+"        .getEntries();]]>"
+msgstr ""
 
-#: index.docbook:897
+#. Tag: para
+#: performance.xml:899
+#, no-c-format
 msgid ""
-      "<![CDATA[Map cacheEntries = sessionFactory.getStatistics()\n"
-      "        .getSecondLevelCacheStatistics(regionName)\n"
-      "        .getEntries();]]>"
-msgstr "La mayor&#x00ed;a de consultas no se benefician del tratamiento en cach&#x00e9;, de modo que por defecto las consultas no son tratadas en cach&#x00e9;. Para habilitar el tratamiento en cach&#x00e9;, llama a <literal>Query.setCacheable(true)</literal>. Esta llamada permite a la consulta buscar resultados existentes en cach&#x00e9; o agregar sus resultados al cach&#x00e9; cuando se ejecuta."
+"You'll need to enable statistics, and, optionally, force Hibernate to keep "
+"the cache entries in a more human-understandable format:"
+msgstr ""
+"Necesitarás habilitar las estadísticas y, opcionalmente, forzar a Hibernate "
+"para que guarde las entradas del caché en un formato más entendible por "
+"humanos:"
 
-#: index.docbook:899
-msgid "You'll need to enable statistics, and, optionally, force Hibernate to keep the cache entries in a more human-understandable format:"
-msgstr "Si requieres un control finamente granularizado sobre las pol&#x00ed;ticas de expiraci&#x00f3;n del cach&#x00e9; de consultas, puedes especificar una regi&#x00f3;n de cach&#x00e9; con nombre para una consulta en particular llamando a <literal>Query.setCacheRegion()</literal>."
-
-#: index.docbook:904
+#. Tag: programlisting
+#: performance.xml:904
+#, no-c-format
 msgid ""
-      "<![CDATA[hibernate.generate_statistics true\n"
-      "hibernate.cache.use_structured_entries true]]>"
+"<![CDATA[hibernate.generate_statistics true\n"
+"hibernate.cache.use_structured_entries true]]>"
 msgstr ""
-      "<![CDATA[List blogs = sess.createQuery(\"from Blog blog where blog.blogger = :blogger\")\n"
-      "    .setEntity(\"blogger\", blogger)\n"
-      "    .setMaxResults(15)\n"
-      "    .setCacheable(true)\n"
-      "    .setCacheRegion(\"frontpages\")\n"
-      "    .list();]]>"
 
-#: index.docbook:909
+#. Tag: title
+#: performance.xml:909
+#, no-c-format
 msgid "The Query Cache"
-msgstr "Si la consulta debe forzar un refresco de si regi&#x00f3;n del cach&#x00e9; de consultas, debes llamar a <literal>Query.setCacheMode(CacheMode.REFRESH)</literal>. Esto es particularmente &#x00fa;til en casos donde los datos subyacentes pueden haber sido actualizados por medio de un proceso separado (es decir, no modificados a trav&#x00e9;s de Hibernate) y permite a la aplicaci&#x00f3;n refrescar selectivamente conjuntos resultado de consultas en particular. Esto es una alternativa m&#x00e1;s eficient al desahuciamiento de una regi&#x00f3;n del cach&#x00e9; de consultas v&#x00ed;a <literal>SessionFactory.evictQueries()</literal>."
+msgstr "El Caché de Consultas"
 
-#: index.docbook:911
-msgid "Query result sets may also be cached. This is only useful for queries that are run frequently with the same parameters. To use the query cache you must first enable it:"
-msgstr "Entendiendo el rendimiento de Colecciones"
+#. Tag: para
+#: performance.xml:911
+#, no-c-format
+msgid ""
+"Query result sets may also be cached. This is only useful for queries that "
+"are run frequently with the same parameters. To use the query cache you must "
+"first enable it:"
+msgstr ""
+"Los conjuntos resultado de consultas también pueden tratarse en caché. Esto "
+"sólo es útil para consultas que se ejecutan frecuentemente con los mismos "
+"parámetros. Para usar el caché de consultas primero debes habilitarlo:"
 
-#: index.docbook:916
+#. Tag: programlisting
+#: performance.xml:916
+#, no-c-format
 msgid "<![CDATA[hibernate.cache.use_query_cache true]]>"
-msgstr "Ya hemos llevado un buen tiempo hablando sobre colecciones. En esta secci&#x00f3;n resaltaremos un par de temas m&#x00e1;s sobre c&#x00f3;mo las colecciones se comportan en tiempo de ejecuci&#x00f3;n."
+msgstr ""
 
-#: index.docbook:918
-msgid "This setting causes the creation of two new cache regions - one holding cached query result sets (<literal>org.hibernate.cache.StandardQueryCache</literal>), the other holding timestamps of the most recent updates to queryable tables (<literal>org.hibernate.cache.UpdateTimestampsCache</literal>). Note that the query cache does not cache the state of the actual entities in the result set; it caches only identifier values and results of value type. So the query cache should always be used in conjunction with the second-level cache."
-msgstr "Taxonomia"
+#. Tag: para
+#: performance.xml:918
+#, no-c-format
+msgid ""
+"This setting causes the creation of two new cache regions - one holding "
+"cached query result sets (<literal>org.hibernate.cache.StandardQueryCache</"
+"literal>), the other holding timestamps of the most recent updates to "
+"queryable tables (<literal>org.hibernate.cache.UpdateTimestampsCache</"
+"literal>). Note that the query cache does not cache the state of the actual "
+"entities in the result set; it caches only identifier values and results of "
+"value type. So the query cache should always be used in conjunction with the "
+"second-level cache."
+msgstr ""
+"Esta configuración causa la creación de dos nuevas regiones de caché - una "
+"teniendo en caché conjuntos resultado de consulta (<literal>org.hibernate."
+"cache.StandardQueryCache</literal>), el otro teniendo timestamps de las "
+"actualizaciones más recientes a tablas consultables (<literal>org.hibernate."
+"cache.UpdateTimestampsCache</literal>). Nota que el caché de consultas no "
+"pone en caché el estado de las entidades reales en el conjunto resultado; "
+"sólo tiene en caché valores indentificadores y resultados de tipo de valor. "
+"De modo que el caché de consultas siempre debe ser usado en conjunción con "
+"el caché de segundo nivel."
 
-#: index.docbook:928
-msgid "Most queries do not benefit from caching, so by default queries are not cached. To enable caching, call <literal>Query.setCacheable(true)</literal>. This call allows the query to look for existing cache results or add its results to the cache when it is executed."
-msgstr "Hibernate define tres tipos b&#x00e1;sicos de colecciones:"
+#. Tag: para
+#: performance.xml:928
+#, no-c-format
+msgid ""
+"Most queries do not benefit from caching, so by default queries are not "
+"cached. To enable caching, call <literal>Query.setCacheable(true)</literal>. "
+"This call allows the query to look for existing cache results or add its "
+"results to the cache when it is executed."
+msgstr ""
+"La mayoría de consultas no se benefician del tratamiento en caché, de modo "
+"que por defecto las consultas no son tratadas en caché. Para habilitar el "
+"tratamiento en caché, llama a <literal>Query.setCacheable(true)</literal>. "
+"Esta llamada permite a la consulta buscar resultados existentes en caché o "
+"agregar sus resultados al caché cuando se ejecuta."
 
-#: index.docbook:935
-msgid "If you require fine-grained control over query cache expiration policies, you may specify a named cache region for a particular query by calling <literal>Query.setCacheRegion()</literal>."
-msgstr "colecciones de valores"
+#. Tag: para
+#: performance.xml:935
+#, no-c-format
+msgid ""
+"If you require fine-grained control over query cache expiration policies, "
+"you may specify a named cache region for a particular query by calling "
+"<literal>Query.setCacheRegion()</literal>."
+msgstr ""
+"Si requieres un control finamente granularizado sobre las políticas de "
+"expiración del caché de consultas, puedes especificar una región de caché "
+"con nombre para una consulta en particular llamando a <literal>Query."
+"setCacheRegion()</literal>."
 
-#: index.docbook:941
+#. Tag: programlisting
+#: performance.xml:941
+#, no-c-format
 msgid ""
-      "<![CDATA[List blogs = sess.createQuery(\"from Blog blog where blog.blogger = :blogger\")\n"
-      "    .setEntity(\"blogger\", blogger)\n"
-      "    .setMaxResults(15)\n"
-      "    .setCacheable(true)\n"
-      "    .setCacheRegion(\"frontpages\")\n"
-      "    .list();]]>"
-msgstr "asociaciones uno a muchos"
+"<![CDATA[List blogs = sess.createQuery(\"from Blog blog where blog.blogger "
+"= :blogger\")\n"
+"    .setEntity(\"blogger\", blogger)\n"
+"    .setMaxResults(15)\n"
+"    .setCacheable(true)\n"
+"    .setCacheRegion(\"frontpages\")\n"
+"    .list();]]>"
+msgstr ""
 
-#: index.docbook:943
-msgid "If the query should force a refresh of its query cache region, you should call <literal>Query.setCacheMode(CacheMode.REFRESH)</literal>. This is particularly useful in cases where underlying data may have been updated via a separate process (i.e., not modified through Hibernate) and allows the application to selectively refresh particular query result sets. This is a more efficient alternative to eviction of a query cache region via <literal>SessionFactory.evictQueries()</literal>."
-msgstr "asociaciones muchos a muchos"
+#. Tag: para
+#: performance.xml:943
+#, no-c-format
+msgid ""
+"If the query should force a refresh of its query cache region, you should "
+"call <literal>Query.setCacheMode(CacheMode.REFRESH)</literal>. This is "
+"particularly useful in cases where underlying data may have been updated via "
+"a separate process (i.e., not modified through Hibernate) and allows the "
+"application to selectively refresh particular query result sets. This is a "
+"more efficient alternative to eviction of a query cache region via "
+"<literal>SessionFactory.evictQueries()</literal>."
+msgstr ""
+"Si la consulta debe forzar un refresco de si región del caché de consultas, "
+"debes llamar a <literal>Query.setCacheMode(CacheMode.REFRESH)</literal>. "
+"Esto es particularmente útil en casos donde los datos subyacentes pueden "
+"haber sido actualizados por medio de un proceso separado (es decir, no "
+"modificados a través de Hibernate) y permite a la aplicación refrescar "
+"selectivamente conjuntos resultado de consultas en particular. Esto es una "
+"alternativa más eficient al desahuciamiento de una región del caché de "
+"consultas vía <literal>SessionFactory.evictQueries()</literal>."
 
-#: index.docbook:955
+#. Tag: title
+#: performance.xml:955
+#, no-c-format
 msgid "Understanding Collection performance"
-msgstr "Esta clasificaci&#x00f3;n distingue las varias tablas y relaciones de clave for&#x00e1;nea pero no nos dice absolutamente todo lo que necesitamos saber sobre el modelo relacional. Para entender completamente la estructura relacional y las caracter&#x00ed;sticas de rendimiento, debemos considerar la estructura de la clave primaria que es usada por Hibernate para actualizar o borrar filas de colecci&#x00f3;n. Esto sugiere la siguiente clasificaci&#x00f3;n:"
+msgstr "Entendiendo el rendimiento de Colecciones"
 
-#: index.docbook:957
-msgid "We've already spent quite some time talking about collections. In this section we will highlight a couple more issues about how collections behave at runtime."
-msgstr "colecciones indexadas"
+#. Tag: para
+#: performance.xml:957
+#, no-c-format
+msgid ""
+"We've already spent quite some time talking about collections. In this "
+"section we will highlight a couple more issues about how collections behave "
+"at runtime."
+msgstr ""
+"Ya hemos llevado un buen tiempo hablando sobre colecciones. En esta sección "
+"resaltaremos un par de temas más sobre cómo las colecciones se comportan en "
+"tiempo de ejecución."
 
-#: index.docbook:964
+#. Tag: title
+#: performance.xml:964
+#, no-c-format
 msgid "Taxonomy"
-msgstr "conjuntos (sets)"
+msgstr "Taxonomia"
 
-#: index.docbook:966
+#. Tag: para
+#: performance.xml:966
+#, no-c-format
 msgid "Hibernate defines three basic kinds of collections:"
-msgstr "bolsas (bags)"
+msgstr "Hibernate define tres tipos básicos de colecciones:"
 
-#: index.docbook:970
+#. Tag: para
+#: performance.xml:970
+#, no-c-format
 msgid "collections of values"
-msgstr "Todas las colecciones indexadas (mapas, listas, arrays) tienen una clave primaria consistente de las columnas <literal>&lt;key&gt;</literal> y <literal>&lt;index&gt;</literal>. En este caso las actualizaciones de colecciones son usualmente extremadamente eficientes. La clave primaria puede ser indexada f&#x00e1;cilmente y una fila en particular puede ser localizada cuando Hibernate intenta actualizarla o borrarla."
+msgstr "colecciones de valores"
 
-#: index.docbook:973
+#. Tag: para
+#: performance.xml:973
+#, no-c-format
 msgid "one to many associations"
-msgstr "Los conjuntos (sets) tienen una clave primaria consistente en <literal>&lt;key&gt;</literal> y columnas de elemento. Esto puede ser menos eficiente para algunos tipos de elemento de colecci&#x00f3;n, particularmente elementos compuestos o texto largo, o campos binarios. La base de datos puede no ser capaz de indexar una clave primaria compleja eficientemente. Por otra parte, para asociaciones uno a muchos o muchos a muchos, particularmente en el caso de identificadores sint&#x00e9;ticos, es probable que s&#x00f3;lo sea tan eficiente. (Nota al m&#x00e1;rgen: si quieres que <literal>SchemaExport</literal> realmente cree la clave primaria de un <literal>&lt;set&gt;</literal> por ti, debes declarar todas las columnas como <literal>not-null=\"true\"</literal>.)"
+msgstr "asociaciones uno a muchos"
 
-#: index.docbook:976
+#. Tag: para
+#: performance.xml:976
+#, no-c-format
 msgid "many to many associations"
-msgstr "Los mapeos de <literal>&lt;idbag&gt;</literal> definen una clave delegada, de modo que siempre resulten eficientes de actualizar. De hecho, son el mejor caso."
+msgstr "asociaciones muchos a muchos"
 
-#: index.docbook:980
-msgid "This classification distinguishes the various table and foreign key relationships but does not tell us quite everything we need to know about the relational model. To fully understand the relational structure and performance characteristics, we must also consider the structure of the primary key that is used by Hibernate to update or delete collection rows. This suggests the following classification:"
-msgstr "Los bags son el peor caso. Ya que un bag permite valores de elementos duplicados y no tiene ninguna columna &#x00ed;ndice, no puede definirse ninguna clave primaria. Hibernate no tiene forma de distinguir entre filas duplicadas. Hibernate resuelve este problema quitando completamente (en un solo <literal>DELETE</literal>) y recreando la colecci&#x00f3;n siempre que cambia. Esto podr&#x00ed;a ser muy ineficiente."
+#. Tag: para
+#: performance.xml:980
+#, no-c-format
+msgid ""
+"This classification distinguishes the various table and foreign key "
+"relationships but does not tell us quite everything we need to know about "
+"the relational model. To fully understand the relational structure and "
+"performance characteristics, we must also consider the structure of the "
+"primary key that is used by Hibernate to update or delete collection rows. "
+"This suggests the following classification:"
+msgstr ""
+"Esta clasificación distingue las varias tablas y relaciones de clave foránea "
+"pero no nos dice absolutamente todo lo que necesitamos saber sobre el modelo "
+"relacional. Para entender completamente la estructura relacional y las "
+"características de rendimiento, debemos considerar la estructura de la clave "
+"primaria que es usada por Hibernate para actualizar o borrar filas de "
+"colección. Esto sugiere la siguiente clasificación:"
 
-#: index.docbook:991
+#. Tag: para
+#: performance.xml:991
+#, no-c-format
 msgid "indexed collections"
-msgstr "Nota que para una asociaci&#x00f3;n uno-a-muchos, la \"clave primaria\" puede no ser la clave primaria f&#x00ed;sica de la tabla de base de datos; pero incluso en este caso, la clasificaci&#x00f3;n anterior es &#x00fa;til todav&#x00ed;a. (A&#x00fa;n refleja c&#x00f3;mo Hibernate \"localiza\" filas individuales de la colecci&#x00f3;n.)"
+msgstr "colecciones indexadas"
 
-#: index.docbook:994
+#. Tag: para
+#: performance.xml:994
+#, no-c-format
 msgid "sets"
-msgstr "Las listas, mapas, idbags y conjuntos son las colecciones m&#x00e1;s eficientes de actualizar"
+msgstr "conjuntos (sets)"
 
-#: index.docbook:997
+#. Tag: para
+#: performance.xml:997
+#, no-c-format
 msgid "bags"
-msgstr "Desde la discusi&#x00f3;n anterior, debe quedar claro que las colecciones indexadas y (usualmente) los conjuntos permiten la operaci&#x00f3;n m&#x00e1;s eficiente en t&#x00e9;rminos de a&#x00f1;adir, quitar y actualizar elementos."
+msgstr "bolsas (bags)"
 
-#: index.docbook:1001
-msgid "All indexed collections (maps, lists, arrays) have a primary key consisting of the <literal>&lt;key&gt;</literal> and <literal>&lt;index&gt;</literal> columns. In this case collection updates are usually extremely efficient - the primary key may be efficiently indexed and a particular row may be efficiently located when Hibernate tries to update or delete it."
-msgstr "Hay, discutiblemente, una ventaja m&#x00e1;s que las colecciones indexadas tienen sobre otros conjuntos para las asociaciones muchos a muchos o colecciones de valores. Debido a la estructura de un <literal>Set</literal>, Hibernate ni siquiera actualiza una fila con <literal>UPDATE</literal> cuando se \"cambia\" un elemento. Los cambios a un <literal>Set</literal> siempre funcionan por medio de <literal>INSERT</literal> y <literal>DELETE</literal> (de filas individuales). Una vez m&#x00e1;s, esta consideraci&#x00f3;n no se aplica a las asociaciones uno a muchos."
+#. Tag: para
+#: performance.xml:1001
+#, no-c-format
+msgid ""
+"All indexed collections (maps, lists, arrays) have a primary key consisting "
+"of the <literal>&lt;key&gt;</literal> and <literal>&lt;index&gt;</literal> "
+"columns. In this case collection updates are usually extremely efficient - "
+"the primary key may be efficiently indexed and a particular row may be "
+"efficiently located when Hibernate tries to update or delete it."
+msgstr ""
+"Todas las colecciones indexadas (mapas, listas, arrays) tienen una clave "
+"primaria consistente de las columnas <literal>&lt;key&gt;</literal> y "
+"<literal>&lt;index&gt;</literal>. En este caso las actualizaciones de "
+"colecciones son usualmente extremadamente eficientes. La clave primaria "
+"puede ser indexada fácilmente y una fila en particular puede ser localizada "
+"cuando Hibernate intenta actualizarla o borrarla."
 
-#: index.docbook:1009
-msgid "Sets have a primary key consisting of <literal>&lt;key&gt;</literal> and element columns. This may be less efficient for some types of collection element, particularly composite elements or large text or binary fields; the database may not be able to index a complex primary key as efficently. On the other hand, for one to many or many to many associations, particularly in the case of synthetic identifiers, it is likely to be just as efficient. (Side-note: if you want <literal>SchemaExport</literal> to actually create the primary key of a <literal>&lt;set&gt;</literal> for you, you must declare all columns as <literal>not-null=\"true\"</literal>.)"
-msgstr "Despu&#x00e9;s de observar que los arrays no pueden ser perezosos, podr&#x00ed;amos concluir que las listas, mapas e idbags son los tipos m&#x00e1;s eficientes de colecciones (no inversas), con los conjuntos (sets) no muy por detr&#x00e1;s. Se espera que los sets sean el tipo m&#x00e1;s com&#x00fa;n de colecci&#x00f3;n en las aplicaciones de Hibernate. Esto es debido a que la sem&#x00e1;ntica de los sets es la m&#x00e1;s natural en el modelo relacional."
+#. Tag: para
+#: performance.xml:1009
+#, no-c-format
+msgid ""
+"Sets have a primary key consisting of <literal>&lt;key&gt;</literal> and "
+"element columns. This may be less efficient for some types of collection "
+"element, particularly composite elements or large text or binary fields; the "
+"database may not be able to index a complex primary key as efficently. On "
+"the other hand, for one to many or many to many associations, particularly "
+"in the case of synthetic identifiers, it is likely to be just as efficient. "
+"(Side-note: if you want <literal>SchemaExport</literal> to actually create "
+"the primary key of a <literal>&lt;set&gt;</literal> for you, you must "
+"declare all columns as <literal>not-null=\"true\"</literal>.)"
+msgstr ""
+"Los conjuntos (sets) tienen una clave primaria consistente en <literal>&lt;"
+"key&gt;</literal> y columnas de elemento. Esto puede ser menos eficiente "
+"para algunos tipos de elemento de colección, particularmente elementos "
+"compuestos o texto largo, o campos binarios. La base de datos puede no ser "
+"capaz de indexar una clave primaria compleja eficientemente. Por otra parte, "
+"para asociaciones uno a muchos o muchos a muchos, particularmente en el caso "
+"de identificadores sintéticos, es probable que sólo sea tan eficiente. (Nota "
+"al márgen: si quieres que <literal>SchemaExport</literal> realmente cree la "
+"clave primaria de un <literal>&lt;set&gt;</literal> por ti, debes declarar "
+"todas las columnas como <literal>not-null=\"true\"</literal>.)"
 
-#: index.docbook:1020
-msgid "<literal>&lt;idbag&gt;</literal> mappings define a surrogate key, so they are always very efficient to update. In fact, they are the best case."
-msgstr "Sin embargo, en modelos de dominio de Hibernate bien die&#x00f1;ados, usualmente vemos que la mayor&#x00ed;a de las colecciones son de hecho asociaciones uno-a-muchos con <literal>inverse=\"true\"</literal>. Para estas asociaciones, la actualizaci&#x00f3;n es manejada por el extremo muchos-a-uno de la asociaci&#x00f3;n, y las consideraciones de este tipo sobre el rendimiento de actualizaci&#x00f3;n de colecciones simplemente no se aplican."
+#. Tag: para
+#: performance.xml:1020
+#, no-c-format
+msgid ""
+"<literal>&lt;idbag&gt;</literal> mappings define a surrogate key, so they "
+"are always very efficient to update. In fact, they are the best case."
+msgstr ""
+"Los mapeos de <literal>&lt;idbag&gt;</literal> definen una clave delegada, "
+"de modo que siempre resulten eficientes de actualizar. De hecho, son el "
+"mejor caso."
 
-#: index.docbook:1025
-msgid "Bags are the worst case. Since a bag permits duplicate element values and has no index column, no primary key may be defined. Hibernate has no way of distinguishing between duplicate rows. Hibernate resolves this problem by completely removing (in a single <literal>DELETE</literal>) and recreating the collection whenever it changes. This might be very inefficient."
-msgstr "Los Bags y las listas son las colecciones inversas m&#x00e1;s eficientes"
+#. Tag: para
+#: performance.xml:1025
+#, no-c-format
+msgid ""
+"Bags are the worst case. Since a bag permits duplicate element values and "
+"has no index column, no primary key may be defined. Hibernate has no way of "
+"distinguishing between duplicate rows. Hibernate resolves this problem by "
+"completely removing (in a single <literal>DELETE</literal>) and recreating "
+"the collection whenever it changes. This might be very inefficient."
+msgstr ""
+"Los bags son el peor caso. Ya que un bag permite valores de elementos "
+"duplicados y no tiene ninguna columna índice, no puede definirse ninguna "
+"clave primaria. Hibernate no tiene forma de distinguir entre filas "
+"duplicadas. Hibernate resuelve este problema quitando completamente (en un "
+"solo <literal>DELETE</literal>) y recreando la colección siempre que cambia. "
+"Esto podría ser muy ineficiente."
 
-#: index.docbook:1033
-msgid "Note that for a one-to-many association, the \"primary key\" may not be the physical primary key of the database table - but even in this case, the above classification is still useful. (It still reflects how Hibernate \"locates\" individual rows of the collection.)"
-msgstr "Justo antes que tires a la zanja los bags para siempre, hay un caso en particular en el que los bags son muchos m&#x00e1;s eficientes que los conjuntos. Para una colecci&#x00f3;n con <literal>inverse=\"true\"</literal> (el idioma est&#x00e1;ndar de relaciones uno-a-muchos bidireccionales, por ejemplo) &#x00a1;podemos a&#x00f1;adir elementos a un bag o lista sin necesidad de inicializar (fetch) los elementos del bag! Esto se debe a que <literal>Collection.add()</literal> o <literal>Collection.addAll()</literal> siempre deben devolver true para un bag o <literal>List</literal> (no como un <literal>Set</literal>). Esto puede hacer el siguiente c&#x00f3;digo com&#x00fa;n mucho m&#x00e1;s r&#x00e1;pido."
+#. Tag: para
+#: performance.xml:1033
+#, no-c-format
+msgid ""
+"Note that for a one-to-many association, the \"primary key\" may not be the "
+"physical primary key of the database table - but even in this case, the "
+"above classification is still useful. (It still reflects how Hibernate "
+"\"locates\" individual rows of the collection.)"
+msgstr ""
+"Nota que para una asociación uno-a-muchos, la \"clave primaria\" puede no "
+"ser la clave primaria física de la tabla de base de datos; pero incluso en "
+"este caso, la clasificación anterior es útil todavía. (Aún refleja cómo "
+"Hibernate \"localiza\" filas individuales de la colección.)"
 
-#: index.docbook:1043
-msgid "Lists, maps, idbags and sets are the most efficient collections to update"
+#. Tag: title
+#: performance.xml:1043
+#, no-c-format
+msgid ""
+"Lists, maps, idbags and sets are the most efficient collections to update"
 msgstr ""
-      "<![CDATA[Parent p = (Parent) sess.load(Parent.class, id);\n"
-      "    Child c = new Child();\n"
-      "    c.setParent(p);\n"
-      "    p.getChildren().add(c);  //no need to fetch the collection!\n"
-      "    sess.flush();]]>"
+"Las listas, mapas, idbags y conjuntos son las colecciones más eficientes de "
+"actualizar"
 
-#: index.docbook:1045
-msgid "From the discussion above, it should be clear that indexed collections and (usually) sets allow the most efficient operation in terms of adding, removing and updating elements."
-msgstr "Borrado de un solo tiro"
+#. Tag: para
+#: performance.xml:1045
+#, no-c-format
+msgid ""
+"From the discussion above, it should be clear that indexed collections and "
+"(usually) sets allow the most efficient operation in terms of adding, "
+"removing and updating elements."
+msgstr ""
+"Desde la discusión anterior, debe quedar claro que las colecciones indexadas "
+"y (usualmente) los conjuntos permiten la operación más eficiente en términos "
+"de añadir, quitar y actualizar elementos."
 
-#: index.docbook:1051
-msgid "There is, arguably, one more advantage that indexed collections have over sets for many to many associations or collections of values. Because of the structure of a <literal>Set</literal>, Hibernate doesn't ever <literal>UPDATE</literal> a row when an element is \"changed\". Changes to a <literal>Set</literal> always work via <literal>INSERT</literal> and <literal>DELETE</literal> (of individual rows). Once again, this consideration does not apply to one to many associations."
-msgstr "Ocasionalmente, borrar los elementos de una colecci&#x00f3;n uno a uno puede ser extremadamente ineficiente. Hibernate no es completamente est&#x00fa;pido, de modo que sabe no hacer eso, en el caso de una colecci&#x00f3;n nueva-vac&#x00ed;a (si has llamado a <literal>list.clear()</literal>, por ejemplo). En este caso, Hibernate publicar&#x00e1; una sola <literal>DELETE</literal>, &#x00a1;y listo!"
+#. Tag: para
+#: performance.xml:1051
+#, no-c-format
+msgid ""
+"There is, arguably, one more advantage that indexed collections have over "
+"sets for many to many associations or collections of values. Because of the "
+"structure of a <literal>Set</literal>, Hibernate doesn't ever "
+"<literal>UPDATE</literal> a row when an element is \"changed\". Changes to a "
+"<literal>Set</literal> always work via <literal>INSERT</literal> and "
+"<literal>DELETE</literal> (of individual rows). Once again, this "
+"consideration does not apply to one to many associations."
+msgstr ""
+"Hay, discutiblemente, una ventaja más que las colecciones indexadas tienen "
+"sobre otros conjuntos para las asociaciones muchos a muchos o colecciones de "
+"valores. Debido a la estructura de un <literal>Set</literal>, Hibernate ni "
+"siquiera actualiza una fila con <literal>UPDATE</literal> cuando se \"cambia"
+"\" un elemento. Los cambios a un <literal>Set</literal> siempre funcionan "
+"por medio de <literal>INSERT</literal> y <literal>DELETE</literal> (de filas "
+"individuales). Una vez más, esta consideración no se aplica a las "
+"asociaciones uno a muchos."
 
-#: index.docbook:1060
-msgid "After observing that arrays cannot be lazy, we would conclude that lists, maps and idbags are the most performant (non-inverse) collection types, with sets not far behind. Sets are expected to be the most common kind of collection in Hibernate applications. This is because the \"set\" semantics are most natural in the relational model."
-msgstr "Sup&#x00f3;n que a&#x00f1;adimos un solo elemento a una colecci&#x00f3;n de tama&#x00f1;o veinte y luego quitamos dos elementos. Hibernate publicar&#x00e1; una sentencia <literal>INSERT</literal> y dos sentencias <literal>DELETE</literal> (a menos que la colecci&#x00f3;n sea un bag). Esto es ciertamente deseable."
+#. Tag: para
+#: performance.xml:1060
+#, no-c-format
+msgid ""
+"After observing that arrays cannot be lazy, we would conclude that lists, "
+"maps and idbags are the most performant (non-inverse) collection types, with "
+"sets not far behind. Sets are expected to be the most common kind of "
+"collection in Hibernate applications. This is because the \"set\" semantics "
+"are most natural in the relational model."
+msgstr ""
+"Después de observar que los arrays no pueden ser perezosos, podríamos "
+"concluir que las listas, mapas e idbags son los tipos más eficientes de "
+"colecciones (no inversas), con los conjuntos (sets) no muy por detrás. Se "
+"espera que los sets sean el tipo más común de colección en las aplicaciones "
+"de Hibernate. Esto es debido a que la semántica de los sets es la más "
+"natural en el modelo relacional."
 
-#: index.docbook:1068
-msgid "However, in well-designed Hibernate domain models, we usually see that most collections are in fact one-to-many associations with <literal>inverse=\"true\"</literal>. For these associations, the update is handled by the many-to-one end of the association, and so considerations of collection update performance simply do not apply."
-msgstr "Sin embargo, sup&#x00f3;n que quitamos dieciocho elementos, dejando dos y luego a&#x00f1;adimos tres nuevos elementos. Hay dos formas posibles de proceder"
+#. Tag: para
+#: performance.xml:1068
+#, no-c-format
+msgid ""
+"However, in well-designed Hibernate domain models, we usually see that most "
+"collections are in fact one-to-many associations with <literal>inverse=\"true"
+"\"</literal>. For these associations, the update is handled by the many-to-"
+"one end of the association, and so considerations of collection update "
+"performance simply do not apply."
+msgstr ""
+"Sin embargo, en modelos de dominio de Hibernate bien dieñados, usualmente "
+"vemos que la mayoría de las colecciones son de hecho asociaciones uno-a-"
+"muchos con <literal>inverse=\"true\"</literal>. Para estas asociaciones, la "
+"actualización es manejada por el extremo muchos-a-uno de la asociación, y "
+"las consideraciones de este tipo sobre el rendimiento de actualización de "
+"colecciones simplemente no se aplican."
 
-#: index.docbook:1078
+#. Tag: title
+#: performance.xml:1078
+#, no-c-format
 msgid "Bags and lists are the most efficient inverse collections"
-msgstr "borrar dieciocho filas una a una y luego insertar tres filas"
+msgstr "Los Bags y las listas son las colecciones inversas más eficientes"
 
-#: index.docbook:1080
-msgid "Just before you ditch bags forever, there is a particular case in which bags (and also lists) are much more performant than sets. For a collection with <literal>inverse=\"true\"</literal> (the standard bidirectional one-to-many relationship idiom, for example) we can add elements to a bag or list without needing to initialize (fetch) the bag elements! This is because <literal>Collection.add()</literal> or <literal>Collection.addAll()</literal> must always return true for a bag or <literal>List</literal> (unlike a <literal>Set</literal>). This can make the following common code much faster."
-msgstr "quitar toda la colecci&#x00f3;n (en un solo <literal>DELETE</literal> de SQL) e insertar todos los cinco elementos actuales (uno a uno)"
+#. Tag: para
+#: performance.xml:1080
+#, no-c-format
+msgid ""
+"Just before you ditch bags forever, there is a particular case in which bags "
+"(and also lists) are much more performant than sets. For a collection with "
+"<literal>inverse=\"true\"</literal> (the standard bidirectional one-to-many "
+"relationship idiom, for example) we can add elements to a bag or list "
+"without needing to initialize (fetch) the bag elements! This is because "
+"<literal>Collection.add()</literal> or <literal>Collection.addAll()</"
+"literal> must always return true for a bag or <literal>List</literal> "
+"(unlike a <literal>Set</literal>). This can make the following common code "
+"much faster."
+msgstr ""
+"Justo antes que tires a la zanja los bags para siempre, hay un caso en "
+"particular en el que los bags son muchos más eficientes que los conjuntos. "
+"Para una colección con <literal>inverse=\"true\"</literal> (el idioma "
+"estándar de relaciones uno-a-muchos bidireccionales, por ejemplo) ¡podemos "
+"añadir elementos a un bag o lista sin necesidad de inicializar (fetch) los "
+"elementos del bag! Esto se debe a que <literal>Collection.add()</literal> o "
+"<literal>Collection.addAll()</literal> siempre deben devolver true para un "
+"bag o <literal>List</literal> (no como un <literal>Set</literal>). Esto "
+"puede hacer el siguiente código común mucho más rápido."
 
-#: index.docbook:1090
+#. Tag: programlisting
+#: performance.xml:1090
+#, no-c-format
 msgid ""
-      "<![CDATA[Parent p = (Parent) sess.load(Parent.class, id);\n"
-      "Child c = new Child();\n"
-      "c.setParent(p);\n"
-      "p.getChildren().add(c);  //no need to fetch the collection!\n"
-      "sess.flush();]]>"
-msgstr "Hibernate no es lo suficientemente inteligente para saber que la segunda opci&#x00f3;n es probablemente m&#x00e1;s r&#x00e1;pida en este caso. (Y que ser&#x00ed;a probablemente indeseable para Hibernate ser tan inteligente; este comportamiento podr&#x00ed;a confundir a disparadores de base de datos, etc.)"
+"<![CDATA[Parent p = (Parent) sess.load(Parent.class, id);\n"
+"Child c = new Child();\n"
+"c.setParent(p);\n"
+"p.getChildren().add(c);  //no need to fetch the collection!\n"
+"sess.flush();]]>"
+msgstr ""
 
-#: index.docbook:1095
+#. Tag: title
+#: performance.xml:1095
+#, no-c-format
 msgid "One shot delete"
-msgstr "Afortunadamente, puedes forzar este comportamiento (es decir, la segunda estrategia) en cualquier momento descartando (es decir, desreferenciando) la colecci&#x00f3;n original y devolviendo una colecci&#x00f3;n nuevamente instanciada con todos los elementos actuales. Esto puede ser muy &#x00fa;til y potente de vez en cuando."
+msgstr "Borrado de un solo tiro"
 
-#: index.docbook:1097
-msgid "Occasionally, deleting collection elements one by one can be extremely inefficient. Hibernate isn't completely stupid, so it knows not to do that in the case of an newly-empty collection (if you called <literal>list.clear()</literal>, for example). In this case, Hibernate will issue a single <literal>DELETE</literal> and we are done!"
-msgstr "Por supuesto, el borrado-de-un-solo-tiro no se aplica a colecciones mapeadas <literal>inverse=\"true\"</literal>."
+#. Tag: para
+#: performance.xml:1097
+#, no-c-format
+msgid ""
+"Occasionally, deleting collection elements one by one can be extremely "
+"inefficient. Hibernate isn't completely stupid, so it knows not to do that "
+"in the case of an newly-empty collection (if you called <literal>list.clear()"
+"</literal>, for example). In this case, Hibernate will issue a single "
+"<literal>DELETE</literal> and we are done!"
+msgstr ""
+"Ocasionalmente, borrar los elementos de una colección uno a uno puede ser "
+"extremadamente ineficiente. Hibernate no es completamente estúpido, de modo "
+"que sabe no hacer eso, en el caso de una colección nueva-vacía (si has "
+"llamado a <literal>list.clear()</literal>, por ejemplo). En este caso, "
+"Hibernate publicará una sola <literal>DELETE</literal>, ¡y listo!"
 
-#: index.docbook:1104
-msgid "Suppose we add a single element to a collection of size twenty and then remove two elements. Hibernate will issue one <literal>INSERT</literal> statement and two <literal>DELETE</literal> statements (unless the collection is a bag). This is certainly desirable."
-msgstr "Monitoreando el rendimiento"
+#. Tag: para
+#: performance.xml:1104
+#, no-c-format
+msgid ""
+"Suppose we add a single element to a collection of size twenty and then "
+"remove two elements. Hibernate will issue one <literal>INSERT</literal> "
+"statement and two <literal>DELETE</literal> statements (unless the "
+"collection is a bag). This is certainly desirable."
+msgstr ""
+"Supón que añadimos un solo elemento a una colección de tamaño veinte y luego "
+"quitamos dos elementos. Hibernate publicará una sentencia <literal>INSERT</"
+"literal> y dos sentencias <literal>DELETE</literal> (a menos que la "
+"colección sea un bag). Esto es ciertamente deseable."
 
-#: index.docbook:1110
-msgid "However, suppose that we remove eighteen elements, leaving two and then add thee new elements. There are two possible ways to proceed"
-msgstr "La optimizaci&#x00f3;n no es de mucho uso sin el monitoreo y el acceso a n&#x00fa;meros de rendimiento. Hibernate provee un rango completo de figuras sobre sus operaciones internas. Las estad&#x00ed;sticas en Hibernate est&#x00e1;n disponibles por <literal>SessionFactory</literal>."
+#. Tag: para
+#: performance.xml:1110
+#, no-c-format
+msgid ""
+"However, suppose that we remove eighteen elements, leaving two and then add "
+"thee new elements. There are two possible ways to proceed"
+msgstr ""
+"Sin embargo, supón que quitamos dieciocho elementos, dejando dos y luego "
+"añadimos tres nuevos elementos. Hay dos formas posibles de proceder"
 
-#: index.docbook:1117
+#. Tag: para
+#: performance.xml:1117
+#, no-c-format
 msgid "delete eighteen rows one by one and then insert three rows"
-msgstr "Monitoreando una SessionFactory"
+msgstr "borrar dieciocho filas una a una y luego insertar tres filas"
 
-#: index.docbook:1120
-msgid "remove the whole collection (in one SQL <literal>DELETE</literal>) and insert all five current elements (one by one)"
-msgstr "Puedes acceder a las m&#x00e9;tricas de <literal>SessionFactory</literal> de dos formas. Tu primera opci&#x00f3;n es llamar a <literal>sessionFactory.getStatistics()</literal> y leer o mostrar por pantalla la <literal>Statistics</literal> por ti mismo."
+#. Tag: para
+#: performance.xml:1120
+#, no-c-format
+msgid ""
+"remove the whole collection (in one SQL <literal>DELETE</literal>) and "
+"insert all five current elements (one by one)"
+msgstr ""
+"quitar toda la colección (en un solo <literal>DELETE</literal> de SQL) e "
+"insertar todos los cinco elementos actuales (uno a uno)"
 
-#: index.docbook:1125
-msgid "Hibernate isn't smart enough to know that the second option is probably quicker in this case. (And it would probably be undesirable for Hibernate to be that smart; such behaviour might confuse database triggers, etc.)"
-msgstr "Hibernate puede tambi&#x00e9;n usar JMX para publicar las m&#x00e9;tricas si habilitas el MBean <literal>StatisticsService</literal>. Puede habilitar un solo MBean para todas tus <literal>SessionFactory</literal> o una por f&#x00e1;brica. Mira el siguiente c&#x00f3;digo para ejemplos de configuraci&#x00f3;n minimalistas:"
+#. Tag: para
+#: performance.xml:1125
+#, no-c-format
+msgid ""
+"Hibernate isn't smart enough to know that the second option is probably "
+"quicker in this case. (And it would probably be undesirable for Hibernate to "
+"be that smart; such behaviour might confuse database triggers, etc.)"
+msgstr ""
+"Hibernate no es lo suficientemente inteligente para saber que la segunda "
+"opción es probablemente más rápida en este caso. (Y que sería probablemente "
+"indeseable para Hibernate ser tan inteligente; este comportamiento podría "
+"confundir a disparadores de base de datos, etc.)"
 
-#: index.docbook:1131
-msgid "Fortunately, you can force this behaviour (ie. the second strategy) at any time by discarding (ie. dereferencing) the original collection and returning a newly instantiated collection with all the current elements. This can be very useful and powerful from time to time."
+#. Tag: para
+#: performance.xml:1131
+#, no-c-format
+msgid ""
+"Fortunately, you can force this behaviour (ie. the second strategy) at any "
+"time by discarding (ie. dereferencing) the original collection and returning "
+"a newly instantiated collection with all the current elements. This can be "
+"very useful and powerful from time to time."
 msgstr ""
-      "<![CDATA[// MBean service registration for a specific SessionFactory\n"
-      "Hashtable tb = new Hashtable();\n"
-      "tb.put(\"type\", \"statistics\");\n"
-      "tb.put(\"sessionFactory\", \"myFinancialApp\");\n"
-      "ObjectName on = new ObjectName(\"hibernate\", tb); // MBean object name\n"
-      "\n"
-      "StatisticsService stats = new StatisticsService(); // MBean implementation\n"
-      "stats.setSessionFactory(sessionFactory); // Bind the stats to a SessionFactory\n"
-      "server.registerMBean(stats, on); // Register the Mbean on the server]]>"
+"Afortunadamente, puedes forzar este comportamiento (es decir, la segunda "
+"estrategia) en cualquier momento descartando (es decir, desreferenciando) la "
+"colección original y devolviendo una colección nuevamente instanciada con "
+"todos los elementos actuales. Esto puede ser muy útil y potente de vez en "
+"cuando."
 
-#: index.docbook:1137
-msgid "Of course, one-shot-delete does not apply to collections mapped <literal>inverse=\"true\"</literal>."
+#. Tag: para
+#: performance.xml:1137
+#, no-c-format
+msgid ""
+"Of course, one-shot-delete does not apply to collections mapped "
+"<literal>inverse=\"true\"</literal>."
 msgstr ""
-      "<![CDATA[// MBean service registration for all SessionFactory's\n"
-      "Hashtable tb = new Hashtable();\n"
-      "tb.put(\"type\", \"statistics\");\n"
-      "tb.put(\"sessionFactory\", \"all\");\n"
-      "ObjectName on = new ObjectName(\"hibernate\", tb); // MBean object name\n"
-      "\n"
-      "StatisticsService stats = new StatisticsService(); // MBean implementation\n"
-      "server.registerMBean(stats, on); // Register the MBean on the server]]>"
+"Por supuesto, el borrado-de-un-solo-tiro no se aplica a colecciones mapeadas "
+"<literal>inverse=\"true\"</literal>."
 
-#: index.docbook:1146
+#. Tag: title
+#: performance.xml:1146
+#, no-c-format
 msgid "Monitoring performance"
-msgstr "POR HACER: Esto no tiene sentido: En el primer caso, recuperamos y usamos el MBean directamente. En el segundo, debemos proporcionar el nombre JNDI en el que se guarda la f&#x00e1;brica de sesiones antes de usarlo. Usa <literal>hibernateStatsBean.setSessionFactoryJNDIName(\"my/JNDI/Name\")</literal>"
+msgstr "Monitoreando el rendimiento"
 
-#: index.docbook:1148
-msgid "Optimization is not much use without monitoring and access to performance numbers. Hibernate provides a full range of figures about its internal operations. Statistics in Hibernate are available per <literal>SessionFactory</literal>."
-msgstr "Puedes (des)activar el monitoreo de una <literal>SessionFactory</literal>"
+#. Tag: para
+#: performance.xml:1148
+#, no-c-format
+msgid ""
+"Optimization is not much use without monitoring and access to performance "
+"numbers. Hibernate provides a full range of figures about its internal "
+"operations. Statistics in Hibernate are available per "
+"<literal>SessionFactory</literal>."
+msgstr ""
+"La optimización no es de mucho uso sin el monitoreo y el acceso a números de "
+"rendimiento. Hibernate provee un rango completo de figuras sobre sus "
+"operaciones internas. Las estadísticas en Hibernate están disponibles por "
+"<literal>SessionFactory</literal>."
 
-#: index.docbook:1155
+#. Tag: title
+#: performance.xml:1155
+#, no-c-format
 msgid "Monitoring a SessionFactory"
-msgstr "en tiempo de configuraci&#x00f3;n, establece <literal>hibernate.generate_statistics</literal> a <literal>false</literal>"
+msgstr "Monitoreando una SessionFactory"
 
-#: index.docbook:1157
-msgid "You can access <literal>SessionFactory</literal> metrics in two ways. Your first option is to call <literal>sessionFactory.getStatistics()</literal> and read or display the <literal>Statistics</literal> yourself."
-msgstr "en tiempo de ejecuci&#x00f3;n: <literal>sf.getStatistics().setStatisticsEnabled(true)</literal> o <literal>hibernateStatsBean.setStatisticsEnabled(true)</literal>"
+#. Tag: para
+#: performance.xml:1157
+#, no-c-format
+msgid ""
+"You can access <literal>SessionFactory</literal> metrics in two ways. Your "
+"first option is to call <literal>sessionFactory.getStatistics()</literal> "
+"and read or display the <literal>Statistics</literal> yourself."
+msgstr ""
+"Puedes acceder a las métricas de <literal>SessionFactory</literal> de dos "
+"formas. Tu primera opción es llamar a <literal>sessionFactory.getStatistics()"
+"</literal> y leer o mostrar por pantalla la <literal>Statistics</literal> "
+"por ti mismo."
 
-#: index.docbook:1163
-msgid "Hibernate can also use JMX to publish metrics if you enable the <literal>StatisticsService</literal> MBean. You may enable a single MBean for all your <literal>SessionFactory</literal> or one per factory. See the following code for minimalistic configuration examples:"
-msgstr "Las estad&#x00ed;sticas pueden ser reajustadas program&#x00e1;ticamente usando el m&#x00e9;todo <literal>clear()</literal>. Puede enviarse un resumen a un logger (nivel info) usando el m&#x00e9;todo <literal>logSummary()</literal>."
+#. Tag: para
+#: performance.xml:1163
+#, no-c-format
+msgid ""
+"Hibernate can also use JMX to publish metrics if you enable the "
+"<literal>StatisticsService</literal> MBean. You may enable a single MBean "
+"for all your <literal>SessionFactory</literal> or one per factory. See the "
+"following code for minimalistic configuration examples:"
+msgstr ""
+"Hibernate puede también usar JMX para publicar las métricas si habilitas el "
+"MBean <literal>StatisticsService</literal>. Puede habilitar un solo MBean "
+"para todas tus <literal>SessionFactory</literal> o una por fábrica. Mira el "
+"siguiente código para ejemplos de configuración minimalistas:"
 
-#: index.docbook:1170
+#. Tag: programlisting
+#: performance.xml:1170
+#, no-c-format
 msgid ""
-      "<![CDATA[// MBean service registration for a specific SessionFactory\n"
-      "Hashtable tb = new Hashtable();\n"
-      "tb.put(\"type\", \"statistics\");\n"
-      "tb.put(\"sessionFactory\", \"myFinancialApp\");\n"
-      "ObjectName on = new ObjectName(\"hibernate\", tb); // MBean object name\n"
-      "\n"
-      "StatisticsService stats = new StatisticsService(); // MBean implementation\n"
-      "stats.setSessionFactory(sessionFactory); // Bind the stats to a SessionFactory\n"
-      "server.registerMBean(stats, on); // Register the Mbean on the server]]>"
-msgstr "M&#x00e9;tricas"
+"<![CDATA[// MBean service registration for a specific SessionFactory\n"
+"Hashtable tb = new Hashtable();\n"
+"tb.put(\"type\", \"statistics\");\n"
+"tb.put(\"sessionFactory\", \"myFinancialApp\");\n"
+"ObjectName on = new ObjectName(\"hibernate\", tb); // MBean object name\n"
+"\n"
+"StatisticsService stats = new StatisticsService(); // MBean implementation\n"
+"stats.setSessionFactory(sessionFactory); // Bind the stats to a "
+"SessionFactory\n"
+"server.registerMBean(stats, on); // Register the Mbean on the server]]>"
+msgstr ""
 
-#: index.docbook:1173
+#. Tag: programlisting
+#: performance.xml:1173
+#, no-c-format
 msgid ""
-      "<![CDATA[// MBean service registration for all SessionFactory's\n"
-      "Hashtable tb = new Hashtable();\n"
-      "tb.put(\"type\", \"statistics\");\n"
-      "tb.put(\"sessionFactory\", \"all\");\n"
-      "ObjectName on = new ObjectName(\"hibernate\", tb); // MBean object name\n"
-      "\n"
-      "StatisticsService stats = new StatisticsService(); // MBean implementation\n"
-      "server.registerMBean(stats, on); // Register the MBean on the server]]>"
-msgstr "Hibernate provee un n&#x00fa;mero de m&#x00e9;tricas, desde informaci&#x00f3;n muy b&#x00e1;sica a la especializada s&#x00f3;lo relevante en ciertos escenarios. Todos los contadores disponibles se describen en la API de la interface <literal>Statistics</literal>, en tres categor&#x00ed;as:"
+"<![CDATA[// MBean service registration for all SessionFactory's\n"
+"Hashtable tb = new Hashtable();\n"
+"tb.put(\"type\", \"statistics\");\n"
+"tb.put(\"sessionFactory\", \"all\");\n"
+"ObjectName on = new ObjectName(\"hibernate\", tb); // MBean object name\n"
+"\n"
+"StatisticsService stats = new StatisticsService(); // MBean implementation\n"
+"server.registerMBean(stats, on); // Register the MBean on the server]]>"
+msgstr ""
 
-#: index.docbook:1175
-msgid "TODO: This doesn't make sense: In the first case, we retrieve and use the MBean directly. In the second one, we must give the JNDI name in which the session factory is held before using it. Use <literal>hibernateStatsBean.setSessionFactoryJNDIName(\"my/JNDI/Name\")</literal>"
-msgstr "M&#x00e9;tricas relacionadas al uso general de <literal>Session</literal> usage, tales como n&#x00fa;mero de sesiones abiertas, conexiones JDBC recuperadas, etc,"
+#. Tag: para
+#: performance.xml:1175
+#, no-c-format
+msgid ""
+"TODO: This doesn't make sense: In the first case, we retrieve and use the "
+"MBean directly. In the second one, we must give the JNDI name in which the "
+"session factory is held before using it. Use <literal>hibernateStatsBean."
+"setSessionFactoryJNDIName(\"my/JNDI/Name\")</literal>"
+msgstr ""
+"POR HACER: Esto no tiene sentido: En el primer caso, recuperamos y usamos el "
+"MBean directamente. En el segundo, debemos proporcionar el nombre JNDI en el "
+"que se guarda la fábrica de sesiones antes de usarlo. Usa "
+"<literal>hibernateStatsBean.setSessionFactoryJNDIName(\"my/JNDI/Name\")</"
+"literal>"
 
-#: index.docbook:1180
-msgid "You can (de)activate the monitoring for a <literal>SessionFactory</literal>"
-msgstr "M&#x00e9;tricas relacionadas a las entidades, colecciones, consultas, y cach&#x00e9;s como un todo. (tambi&#x00e9;n conocidas como m&#x00e9;tricas globales)."
+#. Tag: para
+#: performance.xml:1180
+#, no-c-format
+msgid ""
+"You can (de)activate the monitoring for a <literal>SessionFactory</literal>"
+msgstr ""
+"Puedes (des)activar el monitoreo de una <literal>SessionFactory</literal>"
 
-#: index.docbook:1185
-msgid "at configuration time, set <literal>hibernate.generate_statistics</literal> to <literal>false</literal>"
-msgstr "M&#x00e9;tricas detalladas relacionadas a una entidad, colecci&#x00f3;n, consulta o regi&#x00f3;n de cach&#x00e9; en particular."
+#. Tag: para
+#: performance.xml:1185
+#, no-c-format
+msgid ""
+"at configuration time, set <literal>hibernate.generate_statistics</literal> "
+"to <literal>false</literal>"
+msgstr ""
+"en tiempo de configuración, establece <literal>hibernate."
+"generate_statistics</literal> a <literal>false</literal>"
 
-#: index.docbook:1192
-msgid "at runtime: <literal>sf.getStatistics().setStatisticsEnabled(true)</literal> or <literal>hibernateStatsBean.setStatisticsEnabled(true)</literal>"
-msgstr "Por ejemplo, puedes comprobar el acceso, p&#x00e9;rdida, y radio de colocaci&#x00f3;n de entidades, colecciones y consultas en el cach&#x00e9;, y el tiempo promedio que necesita una consulta. Ten en cuenta que el n&#x00fa;mero de milisegundos est&#x00e1; sujeto a aproximaci&#x00f3;n en Java. Hibernate est&#x00e1; pegado a la precisi&#x00f3;n de la JVM, en algunas plataformas esto podr&#x00ed;a incuso ser tener s&#x00f3;lo una exactitud de 10 segundos."
+#. Tag: para
+#: performance.xml:1192
+#, no-c-format
+msgid ""
+"at runtime: <literal>sf.getStatistics().setStatisticsEnabled(true)</literal> "
+"or <literal>hibernateStatsBean.setStatisticsEnabled(true)</literal>"
+msgstr ""
+"en tiempo de ejecución: <literal>sf.getStatistics().setStatisticsEnabled"
+"(true)</literal> o <literal>hibernateStatsBean.setStatisticsEnabled(true)</"
+"literal>"
 
-#: index.docbook:1199
-msgid "Statistics can be reset programatically using the <literal>clear()</literal> method. A summary can be sent to a logger (info level) using the <literal>logSummary()</literal> method."
-msgstr "Se usan getters simples para acceder a las m&#x00e9;tricas globales (es decir, no pegadas a una entidad, colecci&#x00f3;n, regi&#x00f3;n de cach&#x00e9;, etc, en particular). Puedes acceder a las m&#x00e9;tricas de una entidad, colecci&#x00f3;n, regi&#x00f3;n de cach&#x00e9; en particular a trav&#x00e9;s de su nombre, y a trav&#x00e9;s de su representaci&#x00f3;n HQL o SQL para las consultas. Por favor refi&#x00e9;rete al Javadoc de la API de <literal>Statistics</literal>, <literal>EntityStatistics</literal>, <literal>CollectionStatistics</literal>, <literal>SecondLevelCacheStatistics</literal>, y <literal>QueryStatistics</literal> para m&#x00e1;s informaci&#x00f3;n. El siguiente c&#x00f3;digo muestra un ejemplo sencillo:"
+#. Tag: para
+#: performance.xml:1199
+#, no-c-format
+msgid ""
+"Statistics can be reset programatically using the <literal>clear()</literal> "
+"method. A summary can be sent to a logger (info level) using the "
+"<literal>logSummary()</literal> method."
+msgstr ""
+"Las estadísticas pueden ser reajustadas programáticamente usando el método "
+"<literal>clear()</literal>. Puede enviarse un resumen a un logger (nivel "
+"info) usando el método <literal>logSummary()</literal>."
 
-#: index.docbook:1208
+#. Tag: title
+#: performance.xml:1208
+#, no-c-format
 msgid "Metrics"
+msgstr "Métricas"
+
+#. Tag: para
+#: performance.xml:1210
+#, no-c-format
+msgid ""
+"Hibernate provides a number of metrics, from very basic to the specialized "
+"information only relevant in certain scenarios. All available counters are "
+"described in the <literal>Statistics</literal> interface API, in three "
+"categories:"
 msgstr ""
-      "<![CDATA[Statistics stats = HibernateUtil.sessionFactory.getStatistics();\n"
-      "\n"
-      "double queryCacheHitCount  = stats.getQueryCacheHitCount();\n"
-      "double queryCacheMissCount = stats.getQueryCacheMissCount();\n"
-      "double queryCacheHitRatio =\n"
-      "  queryCacheHitCount / (queryCacheHitCount + queryCacheMissCount);\n"
-      "\n"
-      "log.info(\"Query Hit ratio:\" + queryCacheHitRatio);\n"
-      "\n"
-      "EntityStatistics entityStats =\n"
-      "  stats.getEntityStatistics( Cat.class.getName() );\n"
-      "long changes =\n"
-      "        entityStats.getInsertCount()\n"
-      "        + entityStats.getUpdateCount()\n"
-      "        + entityStats.getDeleteCount();\n"
-      "log.info(Cat.class.getName() + \" changed \" + changes + \"times\"  );]]>"
+"Hibernate provee un número de métricas, desde información muy básica a la "
+"especializada sólo relevante en ciertos escenarios. Todos los contadores "
+"disponibles se describen en la API de la interface <literal>Statistics</"
+"literal>, en tres categorías:"
 
-#: index.docbook:1210
-msgid "Hibernate provides a number of metrics, from very basic to the specialized information only relevant in certain scenarios. All available counters are described in the <literal>Statistics</literal> interface API, in three categories:"
-msgstr "Para trabajar sobre todas las entidades, colecciones, consultas y regiones de cach&#x00e9;s, puedes recuperar la lista de nombres de entidades, colecciones, consultas y regiones de cach&#x00e9;s con los siguientes m&#x00e9;todos: <literal>getQueries()</literal>, <literal>getEntityNames()</literal>, <literal>getCollectionRoleNames()</literal>, y <literal>getSecondLevelCacheRegionNames()</literal>."
-
-#: index.docbook:1217
-msgid "Metrics related to the general <literal>Session</literal> usage, such as number of open sessions, retrieved JDBC connections, etc."
+#. Tag: para
+#: performance.xml:1217
+#, no-c-format
+msgid ""
+"Metrics related to the general <literal>Session</literal> usage, such as "
+"number of open sessions, retrieved JDBC connections, etc."
 msgstr ""
+"Métricas relacionadas al uso general de <literal>Session</literal> usage, "
+"tales como número de sesiones abiertas, conexiones JDBC recuperadas, etc,"
 
-#: index.docbook:1223
-msgid "Metrics related to he entities, collections, queries, and caches as a whole (aka global metrics),"
+#. Tag: para
+#: performance.xml:1223
+#, no-c-format
+msgid ""
+"Metrics related to he entities, collections, queries, and caches as a whole "
+"(aka global metrics),"
 msgstr ""
+"Métricas relacionadas a las entidades, colecciones, consultas, y cachés como "
+"un todo. (también conocidas como métricas globales)."
 
-#: index.docbook:1229
-msgid "Detailed metrics related to a particular entity, collection, query or cache region."
+#. Tag: para
+#: performance.xml:1229
+#, no-c-format
+msgid ""
+"Detailed metrics related to a particular entity, collection, query or cache "
+"region."
 msgstr ""
+"Métricas detalladas relacionadas a una entidad, colección, consulta o región "
+"de caché en particular."
 
-#: index.docbook:1236
-msgid "For exampl,e you can check the cache hit, miss, and put ratio of entities, collections and queries, and the average time a query needs. Beware that the number of milliseconds is subject to approximation in Java. Hibernate is tied to the JVM precision, on some platforms this might even only be accurate to 10 seconds."
+#. Tag: para
+#: performance.xml:1236
+#, no-c-format
+msgid ""
+"For exampl,e you can check the cache hit, miss, and put ratio of entities, "
+"collections and queries, and the average time a query needs. Beware that the "
+"number of milliseconds is subject to approximation in Java. Hibernate is "
+"tied to the JVM precision, on some platforms this might even only be "
+"accurate to 10 seconds."
 msgstr ""
+"Por ejemplo, puedes comprobar el acceso, pérdida, y radio de colocación de "
+"entidades, colecciones y consultas en el caché, y el tiempo promedio que "
+"necesita una consulta. Ten en cuenta que el número de milisegundos está "
+"sujeto a aproximación en Java. Hibernate está pegado a la precisión de la "
+"JVM, en algunas plataformas esto podría incuso ser tener sólo una exactitud "
+"de 10 segundos."
 
-#: index.docbook:1243
-msgid "Simple getters are used to access the global metrics (i.e. not tied to a particular entity, collection, cache region, etc.). You can access the metrics of a particular entity, collection or cache region through its name, and through its HQL or SQL representation for queries. Please refer to the <literal>Statistics</literal>, <literal>EntityStatistics</literal>, <literal>CollectionStatistics</literal>, <literal>SecondLevelCacheStatistics</literal>, and <literal>QueryStatistics</literal> API Javadoc for more information. The following code shows a simple example:"
+#. Tag: para
+#: performance.xml:1243
+#, no-c-format
+msgid ""
+"Simple getters are used to access the global metrics (i.e. not tied to a "
+"particular entity, collection, cache region, etc.). You can access the "
+"metrics of a particular entity, collection or cache region through its name, "
+"and through its HQL or SQL representation for queries. Please refer to the "
+"<literal>Statistics</literal>, <literal>EntityStatistics</literal>, "
+"<literal>CollectionStatistics</literal>, "
+"<literal>SecondLevelCacheStatistics</literal>, and <literal>QueryStatistics</"
+"literal> API Javadoc for more information. The following code shows a simple "
+"example:"
 msgstr ""
+"Se usan getters simples para acceder a las métricas globales (es decir, no "
+"pegadas a una entidad, colección, región de caché, etc, en particular). "
+"Puedes acceder a las métricas de una entidad, colección, región de caché en "
+"particular a través de su nombre, y a través de su representación HQL o SQL "
+"para las consultas. Por favor refiérete al Javadoc de la API de "
+"<literal>Statistics</literal>, <literal>EntityStatistics</literal>, "
+"<literal>CollectionStatistics</literal>, "
+"<literal>SecondLevelCacheStatistics</literal>, y <literal>QueryStatistics</"
+"literal> para más información. El siguiente código muestra un ejemplo "
+"sencillo:"
 
-#: index.docbook:1253
+#. Tag: programlisting
+#: performance.xml:1253
+#, no-c-format
 msgid ""
-      "<![CDATA[Statistics stats = HibernateUtil.sessionFactory.getStatistics();\n"
-      "\n"
-      "double queryCacheHitCount  = stats.getQueryCacheHitCount();\n"
-      "double queryCacheMissCount = stats.getQueryCacheMissCount();\n"
-      "double queryCacheHitRatio =\n"
-      "  queryCacheHitCount / (queryCacheHitCount + queryCacheMissCount);\n"
-      "\n"
-      "log.info(\"Query Hit ratio:\" + queryCacheHitRatio);\n"
-      "\n"
-      "EntityStatistics entityStats =\n"
-      "  stats.getEntityStatistics( Cat.class.getName() );\n"
-      "long changes =\n"
-      "        entityStats.getInsertCount()\n"
-      "        + entityStats.getUpdateCount()\n"
-      "        + entityStats.getDeleteCount();\n"
-      "log.info(Cat.class.getName() + \" changed \" + changes + \"times\"  );]]>"
+"<![CDATA[Statistics stats = HibernateUtil.sessionFactory.getStatistics();\n"
+"\n"
+"double queryCacheHitCount  = stats.getQueryCacheHitCount();\n"
+"double queryCacheMissCount = stats.getQueryCacheMissCount();\n"
+"double queryCacheHitRatio =\n"
+"  queryCacheHitCount / (queryCacheHitCount + queryCacheMissCount);\n"
+"\n"
+"log.info(\"Query Hit ratio:\" + queryCacheHitRatio);\n"
+"\n"
+"EntityStatistics entityStats =\n"
+"  stats.getEntityStatistics( Cat.class.getName() );\n"
+"long changes =\n"
+"        entityStats.getInsertCount()\n"
+"        + entityStats.getUpdateCount()\n"
+"        + entityStats.getDeleteCount();\n"
+"log.info(Cat.class.getName() + \" changed \" + changes + \"times\"  );]]>"
 msgstr ""
 
-#: index.docbook:1255
-msgid "To work on all entities, collections, queries and region caches, you can retrieve the list of names of entities, collections, queries and region caches with the following methods: <literal>getQueries()</literal>, <literal>getEntityNames()</literal>, <literal>getCollectionRoleNames()</literal>, and <literal>getSecondLevelCacheRegionNames()</literal>."
+#. Tag: para
+#: performance.xml:1255
+#, no-c-format
+msgid ""
+"To work on all entities, collections, queries and region caches, you can "
+"retrieve the list of names of entities, collections, queries and region "
+"caches with the following methods: <literal>getQueries()</literal>, "
+"<literal>getEntityNames()</literal>, <literal>getCollectionRoleNames()</"
+"literal>, and <literal>getSecondLevelCacheRegionNames()</literal>."
 msgstr ""
+"Para trabajar sobre todas las entidades, colecciones, consultas y regiones "
+"de cachés, puedes recuperar la lista de nombres de entidades, colecciones, "
+"consultas y regiones de cachés con los siguientes métodos: "
+"<literal>getQueries()</literal>, <literal>getEntityNames()</literal>, "
+"<literal>getCollectionRoleNames()</literal>, y "
+"<literal>getSecondLevelCacheRegionNames()</literal>."
 
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
-
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
-
+#~ msgid "yes"
+#~ msgstr "sí"

Modified: core/trunk/documentation/manual/translations/es-ES/content/persistent_classes.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/persistent_classes.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/persistent_classes.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,625 +1,873 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:5
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: persistent_classes.xml:5
+#, no-c-format
 msgid "Persistent Classes"
 msgstr "Clases Persistentes"
 
-#: index.docbook:7
-msgid "Persistent classes are classes in an application that implement the entities of the business problem (e.g. Customer and Order in an E-commerce application). Not all instances of a persistent class are considered to be in the persistent state - an instance may instead be transient or detached."
-msgstr "Clases presistentes son clases en una aplicaci&#x00f3;n que implementan las entidades del problema de negocio (por ejemplo, Customer y Order en una aplicaci&#x00f3;n de comercio electr&#x00f3;nico). No todas las instancias de una clase persistente se considera que est&#x00e9;n en el estado persistente, una instancia puede en cambio ser transitoria o estar separada."
+#. Tag: para
+#: persistent_classes.xml:7
+#, no-c-format
+msgid ""
+"Persistent classes are classes in an application that implement the entities "
+"of the business problem (e.g. Customer and Order in an E-commerce "
+"application). Not all instances of a persistent class are considered to be "
+"in the persistent state - an instance may instead be transient or detached."
+msgstr ""
+"Clases presistentes son clases en una aplicación que implementan las "
+"entidades del problema de negocio (por ejemplo, Customer y Order en una "
+"aplicación de comercio electrónico). No todas las instancias de una clase "
+"persistente se considera que estén en el estado persistente, una instancia "
+"puede en cambio ser transitoria o estar separada."
 
-#: index.docbook:14
-msgid "Hibernate works best if these classes follow some simple rules, also known as the Plain Old Java Object (POJO) programming model. However, none of these rules are hard requirements. Indeed, Hibernate3 assumes very little about the nature of your persistent objects. You may express a domain model in other ways: using trees of <literal>Map</literal> instances, for example."
-msgstr "Hibernate funciona mejor si las clases siguen algunas simples reglas, tambi&#x00e9;n conocidas como el modelo de programaci&#x00f3;n de Viejas Clases Java Planas (Plain Old Java Object o POJO). Sin embargo, ninguna de estas reglas son requerimientos r&#x00ed;gidos. En cambio, Hibernate3 asume muy poco acerca de la naturaleza de tus objetos persistentes. Puedes expresar un modelo de dominio en otras formas: usando &#x00e1;rboles de instancias de <literal>Map</literal>, por ejemplo."
+#. Tag: para
+#: persistent_classes.xml:14
+#, no-c-format
+msgid ""
+"Hibernate works best if these classes follow some simple rules, also known "
+"as the Plain Old Java Object (POJO) programming model. However, none of "
+"these rules are hard requirements. Indeed, Hibernate3 assumes very little "
+"about the nature of your persistent objects. You may express a domain model "
+"in other ways: using trees of <literal>Map</literal> instances, for example."
+msgstr ""
+"Hibernate funciona mejor si las clases siguen algunas simples reglas, "
+"también conocidas como el modelo de programación de Viejas Clases Java "
+"Planas (Plain Old Java Object o POJO). Sin embargo, ninguna de estas reglas "
+"son requerimientos rígidos. En cambio, Hibernate3 asume muy poco acerca de "
+"la naturaleza de tus objetos persistentes. Puedes expresar un modelo de "
+"dominio en otras formas: usando árboles de instancias de <literal>Map</"
+"literal>, por ejemplo."
 
-#: index.docbook:23
+#. Tag: title
+#: persistent_classes.xml:23
+#, no-c-format
 msgid "A simple POJO example"
 msgstr "Un ejemplo simple de POJO"
 
-#: index.docbook:25
+#. Tag: para
+#: persistent_classes.xml:25
+#, no-c-format
 msgid "Most Java applications require a persistent class representing felines."
-msgstr "La mayor&#x00ed;a de aplicaciones Java requieren una clase representando felinos."
+msgstr ""
+"La mayoría de aplicaciones Java requieren una clase representando felinos."
 
-#: index.docbook:29
+#. Tag: programlisting
+#: persistent_classes.xml:29
+#, no-c-format
 msgid ""
-      "<![CDATA[package eg;\n"
-      "import java.util.Set;\n"
-      "import java.util.Date;\n"
-      "\n"
-      "public class Cat {\n"
-      "    private Long id; // identifier\n"
-      "\n"
-      "    private Date birthdate;\n"
-      "    private Color color;\n"
-      "    private char sex;\n"
-      "    private float weight;\n"
-      "    private int litterId;\n"
-      "\n"
-      "    private Cat mother;\n"
-      "    private Set kittens = new HashSet();\n"
-      "\n"
-      "    private void setId(Long id) {\n"
-      "        this.id=id;\n"
-      "    }\n"
-      "    public Long getId() {\n"
-      "        return id;\n"
-      "    }\n"
-      "\n"
-      "    void setBirthdate(Date date) {\n"
-      "        birthdate = date;\n"
-      "    }\n"
-      "    public Date getBirthdate() {\n"
-      "        return birthdate;\n"
-      "    }\n"
-      "\n"
-      "    void setWeight(float weight) {\n"
-      "        this.weight = weight;\n"
-      "    }\n"
-      "    public float getWeight() {\n"
-      "        return weight;\n"
-      "    }\n"
-      "\n"
-      "    public Color getColor() {\n"
-      "        return color;\n"
-      "    }\n"
-      "    void setColor(Color color) {\n"
-      "        this.color = color;\n"
-      "    }\n"
-      "\n"
-      "    void setSex(char sex) {\n"
-      "        this.sex=sex;\n"
-      "    }\n"
-      "    public char getSex() {\n"
-      "        return sex;\n"
-      "    }\n"
-      "\n"
-      "    void setLitterId(int id) {\n"
-      "        this.litterId = id;\n"
-      "    }\n"
-      "    public int getLitterId() {\n"
-      "        return litterId;\n"
-      "    }\n"
-      "\n"
-      "    void setMother(Cat mother) {\n"
-      "        this.mother = mother;\n"
-      "    }\n"
-      "    public Cat getMother() {\n"
-      "        return mother;\n"
-      "    }\n"
-      "    void setKittens(Set kittens) {\n"
-      "        this.kittens = kittens;\n"
-      "    }\n"
-      "    public Set getKittens() {\n"
-      "        return kittens;\n"
-      "    }\n"
-      "    \n"
-      "    // addKitten not needed by Hibernate\n"
-      "    public void addKitten(Cat kitten) {\n"
-      "            kitten.setMother(this);\n"
-      "        kitten.setLitterId( kittens.size() ); \n"
-      "        kittens.add(kitten);\n"
-      "    }\n"
-      "}]]>"
+"<![CDATA[package eg;\n"
+"import java.util.Set;\n"
+"import java.util.Date;\n"
+"\n"
+"public class Cat {\n"
+"    private Long id; // identifier\n"
+"\n"
+"    private Date birthdate;\n"
+"    private Color color;\n"
+"    private char sex;\n"
+"    private float weight;\n"
+"    private int litterId;\n"
+"\n"
+"    private Cat mother;\n"
+"    private Set kittens = new HashSet();\n"
+"\n"
+"    private void setId(Long id) {\n"
+"        this.id=id;\n"
+"    }\n"
+"    public Long getId() {\n"
+"        return id;\n"
+"    }\n"
+"\n"
+"    void setBirthdate(Date date) {\n"
+"        birthdate = date;\n"
+"    }\n"
+"    public Date getBirthdate() {\n"
+"        return birthdate;\n"
+"    }\n"
+"\n"
+"    void setWeight(float weight) {\n"
+"        this.weight = weight;\n"
+"    }\n"
+"    public float getWeight() {\n"
+"        return weight;\n"
+"    }\n"
+"\n"
+"    public Color getColor() {\n"
+"        return color;\n"
+"    }\n"
+"    void setColor(Color color) {\n"
+"        this.color = color;\n"
+"    }\n"
+"\n"
+"    void setSex(char sex) {\n"
+"        this.sex=sex;\n"
+"    }\n"
+"    public char getSex() {\n"
+"        return sex;\n"
+"    }\n"
+"\n"
+"    void setLitterId(int id) {\n"
+"        this.litterId = id;\n"
+"    }\n"
+"    public int getLitterId() {\n"
+"        return litterId;\n"
+"    }\n"
+"\n"
+"    void setMother(Cat mother) {\n"
+"        this.mother = mother;\n"
+"    }\n"
+"    public Cat getMother() {\n"
+"        return mother;\n"
+"    }\n"
+"    void setKittens(Set kittens) {\n"
+"        this.kittens = kittens;\n"
+"    }\n"
+"    public Set getKittens() {\n"
+"        return kittens;\n"
+"    }\n"
+"    \n"
+"    // addKitten not needed by Hibernate\n"
+"    public void addKitten(Cat kitten) {\n"
+"            kitten.setMother(this);\n"
+"        kitten.setLitterId( kittens.size() ); \n"
+"        kittens.add(kitten);\n"
+"    }\n"
+"}]]>"
 msgstr ""
-      "<![CDATA[package eg;\n"
-      "import java.util.Set;\n"
-      "import java.util.Date;\n"
-      "\n"
-      "public class Cat {\n"
-      "    private Long id; // identifier\n"
-      "\n"
-      "    private Date birthdate;\n"
-      "    private Color color;\n"
-      "    private char sex;\n"
-      "    private float weight;\n"
-      "    private int litterId;\n"
-      "\n"
-      "    private Cat mother;\n"
-      "    private Set kittens = new HashSet();\n"
-      "\n"
-      "    private void setId(Long id) {\n"
-      "        this.id=id;\n"
-      "    }\n"
-      "    public Long getId() {\n"
-      "        return id;\n"
-      "    }\n"
-      "\n"
-      "    void setBirthdate(Date date) {\n"
-      "        birthdate = date;\n"
-      "    }\n"
-      "    public Date getBirthdate() {\n"
-      "        return birthdate;\n"
-      "    }\n"
-      "\n"
-      "    void setWeight(float weight) {\n"
-      "        this.weight = weight;\n"
-      "    }\n"
-      "    public float getWeight() {\n"
-      "        return weight;\n"
-      "    }\n"
-      "\n"
-      "    public Color getColor() {\n"
-      "        return color;\n"
-      "    }\n"
-      "    void setColor(Color color) {\n"
-      "        this.color = color;\n"
-      "    }\n"
-      "\n"
-      "    void setSex(char sex) {\n"
-      "        this.sex=sex;\n"
-      "    }\n"
-      "    public char getSex() {\n"
-      "        return sex;\n"
-      "    }\n"
-      "\n"
-      "    void setLitterId(int id) {\n"
-      "        this.litterId = id;\n"
-      "    }\n"
-      "    public int getLitterId() {\n"
-      "        return litterId;\n"
-      "    }\n"
-      "\n"
-      "    void setMother(Cat mother) {\n"
-      "        this.mother = mother;\n"
-      "    }\n"
-      "    public Cat getMother() {\n"
-      "        return mother;\n"
-      "    }\n"
-      "    void setKittens(Set kittens) {\n"
-      "        this.kittens = kittens;\n"
-      "    }\n"
-      "    public Set getKittens() {\n"
-      "        return kittens;\n"
-      "    }\n"
-      "    \n"
-      "    // addKitten not needed by Hibernate\n"
-      "    public void addKitten(Cat kitten) {\n"
-      "            kitten.setMother(this);\n"
-      "        kitten.setLitterId( kittens.size() ); \n"
-      "        kittens.add(kitten);\n"
-      "    }\n"
-      "}]]>"
 
-#: index.docbook:31
+#. Tag: para
+#: persistent_classes.xml:31
+#, no-c-format
 msgid "There are four main rules to follow here:"
-msgstr "Aqu&#x00ed; hay cuatro reglas principales a seguir:"
+msgstr "Aquí hay cuatro reglas principales a seguir:"
 
-#: index.docbook:37
+#. Tag: title
+#: persistent_classes.xml:37
+#, no-c-format
 msgid "Implement a no-argument constructor"
 msgstr "Implementa un constructor sin argumentos"
 
-#: index.docbook:39
-msgid "<literal>Cat</literal> has a no-argument constructor. All persistent classes must have a default constructor (which may be non-public) so that Hibernate can instantiate them using <literal>Constructor.newInstance()</literal>. We strongly recommend having a default constructor with at least <emphasis>package</emphasis> visibility for runtime proxy generation in Hibernate."
-msgstr "<literal>Cat</literal> tiene un contructor sin argumentos. Todas las clases persistentes deben tener un constructor por defecto (que puede no ser p&#x00fa;blico) de modo que Hibernate pueda instanciarlas usando <literal>Constructor.newInstance()</literal>. Recomendamos fuertemente tener un constructor por defecto con al menos visibilidad de <emphasis>package</emphasis> para la generaci&#x00f3;n de proxies en tiempo de ejecuci&#x00f3;n en Hibernate."
+#. Tag: para
+#: persistent_classes.xml:39
+#, no-c-format
+msgid ""
+"<literal>Cat</literal> has a no-argument constructor. All persistent classes "
+"must have a default constructor (which may be non-public) so that Hibernate "
+"can instantiate them using <literal>Constructor.newInstance()</literal>. We "
+"strongly recommend having a default constructor with at least "
+"<emphasis>package</emphasis> visibility for runtime proxy generation in "
+"Hibernate."
+msgstr ""
+"<literal>Cat</literal> tiene un contructor sin argumentos. Todas las clases "
+"persistentes deben tener un constructor por defecto (que puede no ser "
+"público) de modo que Hibernate pueda instanciarlas usando "
+"<literal>Constructor.newInstance()</literal>. Recomendamos fuertemente tener "
+"un constructor por defecto con al menos visibilidad de <emphasis>package</"
+"emphasis> para la generación de proxies en tiempo de ejecución en Hibernate."
 
-#: index.docbook:49
+#. Tag: title
+#: persistent_classes.xml:49
+#, no-c-format
 msgid "Provide an identifier property (optional)"
 msgstr "Provee una propiedad identificadora (opcional)"
 
-#: index.docbook:51
-msgid "<literal>Cat</literal> has a property called <literal>id</literal>. This property maps to the primary key column of a database table. The property might have been called anything, and its type might have been any primitive type, any primitive \"wrapper\" type, <literal>java.lang.String</literal> or <literal>java.util.Date</literal>. (If your legacy database table has composite keys, you can even use a user-defined class with properties of these types - see the section on composite identifiers later.)"
-msgstr "<literal>Cat</literal> tiene una propiedad llamada <literal>id</literal>. Esta propiedad mapea a la columna clave primaria de la tabla de base de datos. La propiedad podr&#x00ed;a llamarse cualquierCosa, y su tipo podr&#x00ed;a haber sido cualquier tipo primitivo, cualquier tipo de \"envoltura\" primitivo, <literal>java.lang.String</literal> o <literal>java.util.Date</literal>. (Si tu tabla de base de datos heredada tiene claves compuestas, puedes incluso usar una clase definida por el usuario con propiedades de estos tipos, ver la secci&#x00f3;n sobre identificadores compuestos luego.)"
+#. Tag: para
+#: persistent_classes.xml:51
+#, no-c-format
+msgid ""
+"<literal>Cat</literal> has a property called <literal>id</literal>. This "
+"property maps to the primary key column of a database table. The property "
+"might have been called anything, and its type might have been any primitive "
+"type, any primitive \"wrapper\" type, <literal>java.lang.String</literal> or "
+"<literal>java.util.Date</literal>. (If your legacy database table has "
+"composite keys, you can even use a user-defined class with properties of "
+"these types - see the section on composite identifiers later.)"
+msgstr ""
+"<literal>Cat</literal> tiene una propiedad llamada <literal>id</literal>. "
+"Esta propiedad mapea a la columna clave primaria de la tabla de base de "
+"datos. La propiedad podría llamarse cualquierCosa, y su tipo podría haber "
+"sido cualquier tipo primitivo, cualquier tipo de \"envoltura\" primitivo, "
+"<literal>java.lang.String</literal> o <literal>java.util.Date</literal>. (Si "
+"tu tabla de base de datos heredada tiene claves compuestas, puedes incluso "
+"usar una clase definida por el usuario con propiedades de estos tipos, ver "
+"la sección sobre identificadores compuestos luego.)"
 
-#: index.docbook:60
-msgid "The identifier property is strictly optional. You can leave them off and let Hibernate keep track of object identifiers internally. We do not recommend this, however."
-msgstr "La propiedad identificadora es estrictamente opcional. Puedes olvidarla y dejar que Hibernate siga internamente la pista de los identificadores del objeto. Sin embargo, no recomendamos esto."
+#. Tag: para
+#: persistent_classes.xml:60
+#, no-c-format
+msgid ""
+"The identifier property is strictly optional. You can leave them off and let "
+"Hibernate keep track of object identifiers internally. We do not recommend "
+"this, however."
+msgstr ""
+"La propiedad identificadora es estrictamente opcional. Puedes olvidarla y "
+"dejar que Hibernate siga internamente la pista de los identificadores del "
+"objeto. Sin embargo, no recomendamos esto."
 
-#: index.docbook:65
-msgid "In fact, some functionality is available only to classes which declare an identifier property:"
-msgstr "De hecho, alguna funcionalidad est&#x00e1; disponible s&#x00f3;lo para clases que declaran una propiedad identificadora:"
+#. Tag: para
+#: persistent_classes.xml:65
+#, no-c-format
+msgid ""
+"In fact, some functionality is available only to classes which declare an "
+"identifier property:"
+msgstr ""
+"De hecho, alguna funcionalidad está disponible sólo para clases que declaran "
+"una propiedad identificadora:"
 
-#: index.docbook:72
-msgid "Transitive reattachment for detached objects (cascade update or cascade merge) - see"
-msgstr "Reasociaci&#x00f3;n transitiva de objetos separados (actualizaciones o fusiones en cascada) - ver"
+#. Tag: para
+#: persistent_classes.xml:72
+#, fuzzy, no-c-format
+msgid ""
+"Transitive reattachment for detached objects (cascade update or cascade "
+"merge) - see"
+msgstr ""
+"Reasociación transitiva de objetos separados (actualizaciones o fusiones en "
+"cascada) - ver <xref linkend=\"objectstate-transitive\"/>"
 
-#: index.docbook:79
+#. Tag: literal
+#: persistent_classes.xml:79
+#, no-c-format
 msgid "Session.saveOrUpdate()"
 msgstr "Session.saveOrUpdate()"
 
-#: index.docbook:84
+#. Tag: literal
+#: persistent_classes.xml:84
+#, no-c-format
 msgid "Session.merge()"
 msgstr "Session.merge()"
 
-#: index.docbook:89
-msgid "We recommend you declare consistently-named identifier properties on persistent classes. We further recommend that you use a nullable (ie. non-primitive) type."
-msgstr "Recomendamos que declares propiedades identificadoras nombradas-consistentemente en clases persistentes. Mas a&#x00fa;n, recomendamos que uses un tipo nulable (es decir, no primitivo)."
+#. Tag: para
+#: persistent_classes.xml:89
+#, no-c-format
+msgid ""
+"We recommend you declare consistently-named identifier properties on "
+"persistent classes. We further recommend that you use a nullable (ie. non-"
+"primitive) type."
+msgstr ""
+"Recomendamos que declares propiedades identificadoras nombradas-"
+"consistentemente en clases persistentes. Mas aún, recomendamos que uses un "
+"tipo nulable (es decir, no primitivo)."
 
-#: index.docbook:96
+#. Tag: title
+#: persistent_classes.xml:96
+#, no-c-format
 msgid "Prefer non-final classes (optional)"
 msgstr "Prefiere las clases no finales (opcional)"
 
-#: index.docbook:97
-msgid "A central feature of Hibernate, <emphasis>proxies</emphasis>, depends upon the persistent class being either non-final, or the implementation of an interface that declares all public methods."
-msgstr "Un aspecto central de Hibernate, <emphasis>proxies</emphasis>, depende de que las clases persistentes sean ya no finales, o sean ya la implementaci&#x00f3;n de una interface que declare todos los m&#x00e9;todos p&#x00fa;blicos."
+#. Tag: para
+#: persistent_classes.xml:97
+#, no-c-format
+msgid ""
+"A central feature of Hibernate, <emphasis>proxies</emphasis>, depends upon "
+"the persistent class being either non-final, or the implementation of an "
+"interface that declares all public methods."
+msgstr ""
+"Un aspecto central de Hibernate, <emphasis>proxies</emphasis>, depende de "
+"que las clases persistentes sean ya no finales, o sean ya la implementación "
+"de una interface que declare todos los métodos públicos."
 
-#: index.docbook:102
-msgid "You can persist <literal>final</literal> classes that do not implement an interface with Hibernate, but you won't be able to use proxies for lazy association fetching - which will limit your options for performance tuning."
-msgstr "Puedes persistir con Hibernate clases <literal>final</literal> que no implementen una interface, pero no ser&#x00e1;s capaz de usar proxies para recuperaci&#x00f3;n perezosa de asociaciones, lo que limitar&#x00e1; tus opciones para afinar el rendimiento."
+#. Tag: para
+#: persistent_classes.xml:102
+#, no-c-format
+msgid ""
+"You can persist <literal>final</literal> classes that do not implement an "
+"interface with Hibernate, but you won't be able to use proxies for lazy "
+"association fetching - which will limit your options for performance tuning."
+msgstr ""
+"Puedes persistir con Hibernate clases <literal>final</literal> que no "
+"implementen una interface, pero no serás capaz de usar proxies para "
+"recuperación perezosa de asociaciones, lo que limitará tus opciones para "
+"afinar el rendimiento."
 
-#: index.docbook:107
-msgid "You should also avoid declaring <literal>public final</literal> methods on the non-final classes. If you want to use a class with a <literal>public final</literal> method, you must explicitly disable proxying by setting <literal>lazy=\"false\"</literal>."
-msgstr "Debes tambi&#x00e9;n evitar declarar m&#x00e9;todos <literal>public final</literal> en clases non-final. Si quieres usar una clase con un m&#x00e9;todo <literal>public final</literal>, debes deshabilitar expl&#x00ed;citamente el uso de proxies estableciendo <literal>lazy=\"false\"</literal>."
+#. Tag: para
+#: persistent_classes.xml:107
+#, no-c-format
+msgid ""
+"You should also avoid declaring <literal>public final</literal> methods on "
+"the non-final classes. If you want to use a class with a <literal>public "
+"final</literal> method, you must explicitly disable proxying by setting "
+"<literal>lazy=\"false\"</literal>."
+msgstr ""
+"Debes también evitar declarar métodos <literal>public final</literal> en "
+"clases non-final. Si quieres usar una clase con un método <literal>public "
+"final</literal>, debes deshabilitar explícitamente el uso de proxies "
+"estableciendo <literal>lazy=\"false\"</literal>."
 
-#: index.docbook:115
+#. Tag: title
+#: persistent_classes.xml:115
+#, no-c-format
 msgid "Declare accessors and mutators for persistent fields (optional)"
-msgstr "Declara m&#x00e9;todos de acceso y modificaci&#x00f3;n para los campos persistentes (opcional)"
+msgstr ""
+"Declara métodos de acceso y modificación para los campos persistentes "
+"(opcional)"
 
-#: index.docbook:117
-msgid "<literal>Cat</literal> declares accessor methods for all its persistent fields. Many other ORM tools directly persist instance variables. We believe it is better to provide an indirection between the relational schema and internal data structures of the class. By default, Hibernate persists JavaBeans style properties, and recognizes method names of the form <literal>getFoo</literal>, <literal>isFoo</literal> and <literal>setFoo</literal>. You may switch to direct field access for particular properties, if needed."
-msgstr "<literal>Cat</literal> declara m&#x00e9;todos de acceso para todos sus campos persistente. Muchas otras herramientas ORM persisten directamente variables de instancia. Creemos que es mejor proveer una indirecci&#x00f3;n entre el esquema relacional y las estructuras internas de la clase. Por defecto, Hibernate persiste propiedades del estilo JavaBeans, y reconoce nombres de m&#x00e9;todo de la forma <literal>getFoo</literal>, <literal>isFoo</literal> y <literal>setFoo</literal>. Puedes cambiar a acceso directo a campos para propiedades en particular, de ser necesario."
+#. Tag: para
+#: persistent_classes.xml:117
+#, no-c-format
+msgid ""
+"<literal>Cat</literal> declares accessor methods for all its persistent "
+"fields. Many other ORM tools directly persist instance variables. We believe "
+"it is better to provide an indirection between the relational schema and "
+"internal data structures of the class. By default, Hibernate persists "
+"JavaBeans style properties, and recognizes method names of the form "
+"<literal>getFoo</literal>, <literal>isFoo</literal> and <literal>setFoo</"
+"literal>. You may switch to direct field access for particular properties, "
+"if needed."
+msgstr ""
+"<literal>Cat</literal> declara métodos de acceso para todos sus campos "
+"persistente. Muchas otras herramientas ORM persisten directamente variables "
+"de instancia. Creemos que es mejor proveer una indirección entre el esquema "
+"relacional y las estructuras internas de la clase. Por defecto, Hibernate "
+"persiste propiedades del estilo JavaBeans, y reconoce nombres de método de "
+"la forma <literal>getFoo</literal>, <literal>isFoo</literal> y "
+"<literal>setFoo</literal>. Puedes cambiar a acceso directo a campos para "
+"propiedades en particular, de ser necesario."
 
-#: index.docbook:127
-msgid "Properties need <emphasis>not</emphasis> be declared public - Hibernate can persist a property with a default, <literal>protected</literal> or <literal>private</literal> get / set pair."
-msgstr "Las propiedades <emphasis>no</emphasis> necesitan ser declaradas p&#x00fa;blicas. Hibernate puede persistir una propiedad con un par get / set <literal>protected</literal> o <literal>private</literal>."
+#. Tag: para
+#: persistent_classes.xml:127
+#, no-c-format
+msgid ""
+"Properties need <emphasis>not</emphasis> be declared public - Hibernate can "
+"persist a property with a default, <literal>protected</literal> or "
+"<literal>private</literal> get / set pair."
+msgstr ""
+"Las propiedades <emphasis>no</emphasis> necesitan ser declaradas públicas. "
+"Hibernate puede persistir una propiedad con un par get / set "
+"<literal>protected</literal> o <literal>private</literal>."
 
-#: index.docbook:138
+#. Tag: title
+#: persistent_classes.xml:138
+#, no-c-format
 msgid "Implementing inheritance"
 msgstr "Implementando herencia"
 
-#: index.docbook:140
-msgid "A subclass must also observe the first and second rules. It inherits its identifier property from the superclass, <literal>Cat</literal>."
-msgstr "Una subclase puede a su vez observar la primera y segunda regla. Hereda su propiedad identificadora de la superclase, <literal>Cat</literal>."
+#. Tag: para
+#: persistent_classes.xml:140
+#, no-c-format
+msgid ""
+"A subclass must also observe the first and second rules. It inherits its "
+"identifier property from the superclass, <literal>Cat</literal>."
+msgstr ""
+"Una subclase puede a su vez observar la primera y segunda regla. Hereda su "
+"propiedad identificadora de la superclase, <literal>Cat</literal>."
 
-#: index.docbook:145
+#. Tag: programlisting
+#: persistent_classes.xml:145
+#, no-c-format
 msgid ""
-      "<![CDATA[package eg;\n"
-      "\n"
-      "public class DomesticCat extends Cat {\n"
-      "        private String name;\n"
-      "\n"
-      "        public String getName() {\n"
-      "                return name;\n"
-      "        }\n"
-      "        protected void setName(String name) {\n"
-      "                this.name=name;\n"
-      "        }\n"
-      "}]]>"
+"<![CDATA[package eg;\n"
+"\n"
+"public class DomesticCat extends Cat {\n"
+"        private String name;\n"
+"\n"
+"        public String getName() {\n"
+"                return name;\n"
+"        }\n"
+"        protected void setName(String name) {\n"
+"                this.name=name;\n"
+"        }\n"
+"}]]>"
 msgstr ""
-      "<![CDATA[package eg;\n"
-      "\n"
-      "public class DomesticCat extends Cat {\n"
-      "        private String name;\n"
-      "\n"
-      "        public String getName() {\n"
-      "                return name;\n"
-      "        }\n"
-      "        protected void setName(String name) {\n"
-      "                this.name=name;\n"
-      "        }\n"
-      "}]]>"
 
-#: index.docbook:149
-msgid "Implementing <literal>equals()</literal> and <literal>hashCode()</literal>"
-msgstr "Implementando <literal>equals()</literal> y <literal>hashCode()</literal>"
+#. Tag: title
+#: persistent_classes.xml:149
+#, no-c-format
+msgid ""
+"Implementing <literal>equals()</literal> and <literal>hashCode()</literal>"
+msgstr ""
+"Implementando <literal>equals()</literal> y <literal>hashCode()</literal>"
 
-#: index.docbook:151
-msgid "You have to override the <literal>equals()</literal> and <literal>hashCode()</literal> methods if you"
-msgstr "Tienes que sobrescribir los m&#x00e9;todos <literal>equals()</literal> y <literal>hashCode()</literal> si :"
+#. Tag: para
+#: persistent_classes.xml:151
+#, no-c-format
+msgid ""
+"You have to override the <literal>equals()</literal> and <literal>hashCode()"
+"</literal> methods if you"
+msgstr ""
+"Tienes que sobrescribir los métodos <literal>equals()</literal> y "
+"<literal>hashCode()</literal> si :"
 
-#: index.docbook:157
-msgid "intend to put instances of persistent classes in a <literal>Set</literal> (the recommended way to represent many-valued associations) <emphasis>and</emphasis>"
-msgstr "piensas poner instancias de clases persistentes en un <literal>Set</literal> (la forma recomendada de representar asociaciones multivaluadas) <emphasis>y</emphasis>"
+#. Tag: para
+#: persistent_classes.xml:157
+#, no-c-format
+msgid ""
+"intend to put instances of persistent classes in a <literal>Set</literal> "
+"(the recommended way to represent many-valued associations) <emphasis>and</"
+"emphasis>"
+msgstr ""
+"piensas poner instancias de clases persistentes en un <literal>Set</literal> "
+"(la forma recomendada de representar asociaciones multivaluadas) "
+"<emphasis>y</emphasis>"
 
-#: index.docbook:164
+#. Tag: para
+#: persistent_classes.xml:164
+#, no-c-format
 msgid "intend to use reattachment of detached instances"
-msgstr "piensas usar reasociaci&#x00f3;n de instancias separadas."
+msgstr "piensas usar reasociación de instancias separadas."
 
-#: index.docbook:170
-msgid "Hibernate guarantees equivalence of persistent identity (database row) and Java identity only inside a particular session scope. So as soon as we mix instances retrieved in different sessions, we must implement <literal>equals()</literal> and <literal>hashCode()</literal> if we wish to have meaningful semantics for <literal>Set</literal>s."
-msgstr "Hibernate garantiza la equivalencia de identidad persistente (fila de base de datos) y identidad Java s&#x00f3;lo dentro del &#x00e1;mbito de una sesi&#x00f3;n en particular. De modo que en el momento que mezclamos instancias recuperadas en sesiones diferentes, debemos implementar <literal>equals()</literal> y <literal>hashCode()</literal> si deseamos tener una sem&#x00e1;ntica significativa de <literal>Set</literal>s."
+#. Tag: para
+#: persistent_classes.xml:170
+#, no-c-format
+msgid ""
+"Hibernate guarantees equivalence of persistent identity (database row) and "
+"Java identity only inside a particular session scope. So as soon as we mix "
+"instances retrieved in different sessions, we must implement <literal>equals"
+"()</literal> and <literal>hashCode()</literal> if we wish to have meaningful "
+"semantics for <literal>Set</literal>s."
+msgstr ""
+"Hibernate garantiza la equivalencia de identidad persistente (fila de base "
+"de datos) y identidad Java sólo dentro del ámbito de una sesión en "
+"particular. De modo que en el momento que mezclamos instancias recuperadas "
+"en sesiones diferentes, debemos implementar <literal>equals()</literal> y "
+"<literal>hashCode()</literal> si deseamos tener una semántica significativa "
+"de <literal>Set</literal>s."
 
-#: index.docbook:178
-msgid "The most obvious way is to implement <literal>equals()</literal>/<literal>hashCode()</literal> by comparing the identifier value of both objects. If the value is the same, both must be the same database row, they are therefore equal (if both are added to a <literal>Set</literal>, we will only have one element in the <literal>Set</literal>). Unfortunately, we can't use that approach with generated identifiers! Hibernate will only assign identifier values to objects that are persistent, a newly created instance will not have any identifier value! Furthermore, if an instance is unsaved and currently in a <literal>Set</literal>, saving it will assign an identifier value to the object. If <literal>equals()</literal> and <literal>hashCode()</literal> are based on the identifier value, the hash code would change, breaking the contract of the <literal>Set</literal>. See the Hibernate website for a full discussion of this problem. Note that this is not a Hibernate issue, but !
 normal Java semantics of object identity and equality."
-msgstr "La forma m&#x00e1;s obvia es implementar <literal>equals()</literal>/<literal>hashCode()</literal> comparando el valor identificador de ambos objetos. Si el valor es el mismo, ambos deben ser la misma fila de base de datos, por lo tanto son iguales (si ambos son agregados a un <literal>Set</literal>, s&#x00f3;lo tendremos un elemento en el <literal>Set</literal>). Desafortunadamente, no podemos usar este enfoque con identificadores generados! Hibernate s&#x00f3;lo asignar&#x00e1; valores identificadores a objetos que son persistentes, una instancia reci&#x00e9;n creada no tendr&#x00e1; ning&#x00fa;n valor identificador! Adem&#x00e1;s, si una instancia no est&#x00e1; salvada y est&#x00e1; actualmente en un <literal>Set</literal>, salvarla asignar&#x00e1; un valor identificador al objeto. Si <literal>equals()</literal> and <literal>hashCode()</literal> est&#x00e1;n basados en el valor identificador, el c&#x00f3;digo hash podr&#x00ed;a cambiar, rompiendo el contrato de!
  <literal>Set</literal>. Ver el sitio web de Hibernate para una discusi&#x00f3;n completa de este problema. Observa que esto no es una incidencia de Hibernate, sino la sem&#x00e1;ntica normal de Java de identidad de objeto e igualdad."
+#. Tag: para
+#: persistent_classes.xml:178
+#, no-c-format
+msgid ""
+"The most obvious way is to implement <literal>equals()</literal>/"
+"<literal>hashCode()</literal> by comparing the identifier value of both "
+"objects. If the value is the same, both must be the same database row, they "
+"are therefore equal (if both are added to a <literal>Set</literal>, we will "
+"only have one element in the <literal>Set</literal>). Unfortunately, we "
+"can't use that approach with generated identifiers! Hibernate will only "
+"assign identifier values to objects that are persistent, a newly created "
+"instance will not have any identifier value! Furthermore, if an instance is "
+"unsaved and currently in a <literal>Set</literal>, saving it will assign an "
+"identifier value to the object. If <literal>equals()</literal> and "
+"<literal>hashCode()</literal> are based on the identifier value, the hash "
+"code would change, breaking the contract of the <literal>Set</literal>. See "
+"the Hibernate website for a full discussion of this problem. Note that this "
+"is not a Hibernate issue, but normal Java semantics of object identity and "
+"equality."
+msgstr ""
+"La forma más obvia es implementar <literal>equals()</literal>/"
+"<literal>hashCode()</literal> comparando el valor identificador de ambos "
+"objetos. Si el valor es el mismo, ambos deben ser la misma fila de base de "
+"datos, por lo tanto son iguales (si ambos son agregados a un <literal>Set</"
+"literal>, sólo tendremos un elemento en el <literal>Set</literal>). "
+"Desafortunadamente, no podemos usar este enfoque con identificadores "
+"generados! Hibernate sólo asignará valores identificadores a objetos que son "
+"persistentes, una instancia recién creada no tendrá ningún valor "
+"identificador! Además, si una instancia no está salvada y está actualmente "
+"en un <literal>Set</literal>, salvarla asignará un valor identificador al "
+"objeto. Si <literal>equals()</literal> and <literal>hashCode()</literal> "
+"están basados en el valor identificador, el código hash podría cambiar, "
+"rompiendo el contrato de <literal>Set</literal>. Ver el sitio web de "
+"Hibernate para una discusión completa de este problema. Observa que esto no "
+"es una incidencia de Hibernate, sino la semántica normal de Java de "
+"identidad de objeto e igualdad."
 
-#: index.docbook:192
-msgid "We recommend implementing <literal>equals()</literal> and <literal>hashCode()</literal> using <emphasis>Business key equality</emphasis>. Business key equality means that the <literal>equals()</literal> method compares only the properties that form the business key, a key that would identify our instance in the real world (a <emphasis>natural</emphasis> candidate key):"
-msgstr "Recomendamos implementar <literal>equals()</literal> y <literal>hashCode()</literal> usando <emphasis>igualdad de clave de negocio (Business key equality)</emphasis>. Igualdad de clave de negocio significa que el m&#x00e9;todo <literal>equals()</literal> compara s&#x00f3;lo las propiedades que forman la clave de negocio, una clave que podr&#x00ed;a identificar nuestra instancia en el mundo real (una clave candidata <emphasis>natural</emphasis>):"
+#. Tag: para
+#: persistent_classes.xml:192
+#, no-c-format
+msgid ""
+"We recommend implementing <literal>equals()</literal> and <literal>hashCode()"
+"</literal> using <emphasis>Business key equality</emphasis>. Business key "
+"equality means that the <literal>equals()</literal> method compares only the "
+"properties that form the business key, a key that would identify our "
+"instance in the real world (a <emphasis>natural</emphasis> candidate key):"
+msgstr ""
+"Recomendamos implementar <literal>equals()</literal> y <literal>hashCode()</"
+"literal> usando <emphasis>igualdad de clave de negocio (Business key "
+"equality)</emphasis>. Igualdad de clave de negocio significa que el método "
+"<literal>equals()</literal> compara sólo las propiedades que forman la clave "
+"de negocio, una clave que podría identificar nuestra instancia en el mundo "
+"real (una clave candidata <emphasis>natural</emphasis>):"
 
-#: index.docbook:200
+#. Tag: programlisting
+#: persistent_classes.xml:200
+#, no-c-format
 msgid ""
-      "<![CDATA[public class Cat {\n"
-      "\n"
-      "    ...\n"
-      "    public boolean equals(Object other) {\n"
-      "        if (this == other) return true;\n"
-      "        if ( !(other instanceof Cat) ) return false;\n"
-      "\n"
-      "        final Cat cat = (Cat) other;\n"
-      "\n"
-      "        if ( !cat.getLitterId().equals( getLitterId() ) ) return false;\n"
-      "        if ( !cat.getMother().equals( getMother() ) ) return false;\n"
-      "\n"
-      "        return true;\n"
-      "    }\n"
-      "\n"
-      "    public int hashCode() {\n"
-      "        int result;\n"
-      "        result = getMother().hashCode();\n"
-      "        result = 29 * result + getLitterId();\n"
-      "        return result;\n"
-      "    }\n"
-      "\n"
-      "}]]>"
+"<![CDATA[public class Cat {\n"
+"\n"
+"    ...\n"
+"    public boolean equals(Object other) {\n"
+"        if (this == other) return true;\n"
+"        if ( !(other instanceof Cat) ) return false;\n"
+"\n"
+"        final Cat cat = (Cat) other;\n"
+"\n"
+"        if ( !cat.getLitterId().equals( getLitterId() ) ) return false;\n"
+"        if ( !cat.getMother().equals( getMother() ) ) return false;\n"
+"\n"
+"        return true;\n"
+"    }\n"
+"\n"
+"    public int hashCode() {\n"
+"        int result;\n"
+"        result = getMother().hashCode();\n"
+"        result = 29 * result + getLitterId();\n"
+"        return result;\n"
+"    }\n"
+"\n"
+"}]]>"
 msgstr ""
-      "<![CDATA[public class Cat {\n"
-      "\n"
-      "    ...\n"
-      "    public boolean equals(Object other) {\n"
-      "        if (this == other) return true;\n"
-      "        if ( !(other instanceof Cat) ) return false;\n"
-      "\n"
-      "        final Cat cat = (Cat) other;\n"
-      "\n"
-      "        if ( !cat.getLitterId().equals( getLitterId() ) ) return false;\n"
-      "        if ( !cat.getMother().equals( getMother() ) ) return false;\n"
-      "\n"
-      "        return true;\n"
-      "    }\n"
-      "\n"
-      "    public int hashCode() {\n"
-      "        int result;\n"
-      "        result = getMother().hashCode();\n"
-      "        result = 29 * result + getLitterId();\n"
-      "        return result;\n"
-      "    }\n"
-      "\n"
-      "}]]>"
 
-#: index.docbook:202
-msgid "Note that a business key does not have to be as solid as a database primary key candidate (see <xref linkend=\"transactions-basics-identity\"/>). Immutable or unique properties are usually good candidates for a business key."
-msgstr "Nota que una clave de negocio no tiene que ser tan s&#x00f3;lida como una clave primaria candidata de base de datos (ver <xref linkend=\"transactions-basics-identity\"/>). Las propiedades inmutables o &#x00fa;nicas son usualmente buenas candidatas para una clave de negocio."
+#. Tag: para
+#: persistent_classes.xml:202
+#, no-c-format
+msgid ""
+"Note that a business key does not have to be as solid as a database primary "
+"key candidate (see <xref linkend=\"transactions-basics-identity\"/>). "
+"Immutable or unique properties are usually good candidates for a business "
+"key."
+msgstr ""
+"Nota que una clave de negocio no tiene que ser tan sólida como una clave "
+"primaria candidata de base de datos (ver <xref linkend=\"transactions-basics-"
+"identity\"/>). Las propiedades inmutables o únicas son usualmente buenas "
+"candidatas para una clave de negocio."
 
-#: index.docbook:212
+#. Tag: title
+#: persistent_classes.xml:212
+#, no-c-format
 msgid "Dynamic models"
-msgstr "Modelos din&#x00e1;micos"
+msgstr "Modelos dinámicos"
 
-#: index.docbook:215
-msgid "Note that the following features are currently considered experimental and may change in the near future."
-msgstr "Ten en cuenta que las siguientes funcionalidades est&#x00e1;n consideradas actualmente experimentales y pueden cambiar en el futuro cercano."
+#. Tag: emphasis
+#: persistent_classes.xml:215
+#, no-c-format
+msgid ""
+"Note that the following features are currently considered experimental and "
+"may change in the near future."
+msgstr ""
+"Ten en cuenta que las siguientes funcionalidades están consideradas "
+"actualmente experimentales y pueden cambiar en el futuro cercano."
 
-#: index.docbook:219
-msgid "Persistent entities don't necessarily have to be represented as POJO classes or as JavaBean objects at runtime. Hibernate also supports dynamic models (using <literal>Map</literal>s of <literal>Map</literal>s at runtime) and the representation of entities as DOM4J trees. With this approach, you don't write persistent classes, only mapping files."
-msgstr "Las entidades persistentes no necesariamente tienen que estar representadas como clases POJO o como objetos JavaBean en tiempo de ejecuci&#x00f3;n. Hibernate soporta adem&#x00e1;s modelos din&#x00e1;micos (usando <literal>Map</literal>s de <literal>Map</literal>s en tiempo de ejecuci&#x00f3;n) y la representaci&#x00f3;n de entidades como &#x00e1;rboles de DOM4J. Con este enfoque no escribes clases persistentes, s&#x00f3;lo ficheros de mapeo."
+#. Tag: para
+#: persistent_classes.xml:219
+#, no-c-format
+msgid ""
+"Persistent entities don't necessarily have to be represented as POJO classes "
+"or as JavaBean objects at runtime. Hibernate also supports dynamic models "
+"(using <literal>Map</literal>s of <literal>Map</literal>s at runtime) and "
+"the representation of entities as DOM4J trees. With this approach, you don't "
+"write persistent classes, only mapping files."
+msgstr ""
+"Las entidades persistentes no necesariamente tienen que estar representadas "
+"como clases POJO o como objetos JavaBean en tiempo de ejecución. Hibernate "
+"soporta además modelos dinámicos (usando <literal>Map</literal>s de "
+"<literal>Map</literal>s en tiempo de ejecución) y la representación de "
+"entidades como árboles de DOM4J. Con este enfoque no escribes clases "
+"persistentes, sólo ficheros de mapeo."
 
-#: index.docbook:227
-msgid "By default, Hibernate works in normal POJO mode. You may set a default entity representation mode for a particular <literal>SessionFactory</literal> using the <literal>default_entity_mode</literal> configuration option (see <xref linkend=\"configuration-optional-properties\"/>."
-msgstr "Por defecto, Hibernate funciona en modo POJO normal. Puedes establecer una representaci&#x00f3;n de entidad por defecto para una <literal>SessionFactory</literal> en particular usando la opci&#x00f3;n de configuraci&#x00f3;n <literal>default_entity_mode</literal> (ver <xref linkend=\"configuration-optional-properties\"/>)."
+#. Tag: para
+#: persistent_classes.xml:227
+#, no-c-format
+msgid ""
+"By default, Hibernate works in normal POJO mode. You may set a default "
+"entity representation mode for a particular <literal>SessionFactory</"
+"literal> using the <literal>default_entity_mode</literal> configuration "
+"option (see <xref linkend=\"configuration-optional-properties\"/>."
+msgstr ""
+"Por defecto, Hibernate funciona en modo POJO normal. Puedes establecer una "
+"representación de entidad por defecto para una <literal>SessionFactory</"
+"literal> en particular usando la opción de configuración "
+"<literal>default_entity_mode</literal> (ver <xref linkend=\"configuration-"
+"optional-properties\"/>)."
 
-#: index.docbook:234
-msgid "The following examples demonstrates the representation using <literal>Map</literal>s. First, in the mapping file, an <literal>entity-name</literal> has to be declared instead of (or in addition to) a class name:"
-msgstr "Los siguientes ejemplos demuestran la representaci&#x00f3;n usando <literal>Map</literal>s. Primero, en el fichero de mapeo, tiene que declararse un <literal>entity-name</literal> en vez de (o como agregado a) un nombre de clase:"
+#. Tag: para
+#: persistent_classes.xml:234
+#, no-c-format
+msgid ""
+"The following examples demonstrates the representation using <literal>Map</"
+"literal>s. First, in the mapping file, an <literal>entity-name</literal> has "
+"to be declared instead of (or in addition to) a class name:"
+msgstr ""
+"Los siguientes ejemplos demuestran la representación usando <literal>Map</"
+"literal>s. Primero, en el fichero de mapeo, tiene que declararse un "
+"<literal>entity-name</literal> en vez de (o como agregado a) un nombre de "
+"clase:"
 
-#: index.docbook:240
+#. Tag: programlisting
+#: persistent_classes.xml:240
+#, no-c-format
 msgid ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "\n"
-      "    <class entity-name=\"Customer\">\n"
-      "\n"
-      "        <id name=\"id\"\n"
-      "            type=\"long\"\n"
-      "            column=\"ID\">\n"
-      "            <generator class=\"sequence\"/>\n"
-      "        </id>\n"
-      "\n"
-      "        <property name=\"name\"\n"
-      "            column=\"NAME\"\n"
-      "            type=\"string\"/>\n"
-      "\n"
-      "        <property name=\"address\"\n"
-      "            column=\"ADDRESS\"\n"
-      "            type=\"string\"/>\n"
-      "\n"
-      "        <many-to-one name=\"organization\"\n"
-      "            column=\"ORGANIZATION_ID\"\n"
-      "            class=\"Organization\"/>\n"
-      "\n"
-      "        <bag name=\"orders\"\n"
-      "            inverse=\"true\"\n"
-      "            lazy=\"false\"\n"
-      "            cascade=\"all\">\n"
-      "            <key column=\"CUSTOMER_ID\"/>\n"
-      "            <one-to-many class=\"Order\"/>\n"
-      "        </bag>\n"
-      "\n"
-      "    </class>\n"
-      "    \n"
-      "</hibernate-mapping>]]>"
+"<![CDATA[<hibernate-mapping>\n"
+"\n"
+"    <class entity-name=\"Customer\">\n"
+"\n"
+"        <id name=\"id\"\n"
+"            type=\"long\"\n"
+"            column=\"ID\">\n"
+"            <generator class=\"sequence\"/>\n"
+"        </id>\n"
+"\n"
+"        <property name=\"name\"\n"
+"            column=\"NAME\"\n"
+"            type=\"string\"/>\n"
+"\n"
+"        <property name=\"address\"\n"
+"            column=\"ADDRESS\"\n"
+"            type=\"string\"/>\n"
+"\n"
+"        <many-to-one name=\"organization\"\n"
+"            column=\"ORGANIZATION_ID\"\n"
+"            class=\"Organization\"/>\n"
+"\n"
+"        <bag name=\"orders\"\n"
+"            inverse=\"true\"\n"
+"            lazy=\"false\"\n"
+"            cascade=\"all\">\n"
+"            <key column=\"CUSTOMER_ID\"/>\n"
+"            <one-to-many class=\"Order\"/>\n"
+"        </bag>\n"
+"\n"
+"    </class>\n"
+"    \n"
+"</hibernate-mapping>]]>"
 msgstr ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "\n"
-      "    <class entity-name=\"Customer\">\n"
-      "\n"
-      "        <id name=\"id\"\n"
-      "            type=\"long\"\n"
-      "            column=\"ID\">\n"
-      "            <generator class=\"sequence\"/>\n"
-      "        </id>\n"
-      "\n"
-      "        <property name=\"name\"\n"
-      "            column=\"NAME\"\n"
-      "            type=\"string\"/>\n"
-      "\n"
-      "        <property name=\"address\"\n"
-      "            column=\"ADDRESS\"\n"
-      "            type=\"string\"/>\n"
-      "\n"
-      "        <many-to-one name=\"organization\"\n"
-      "            column=\"ORGANIZATION_ID\"\n"
-      "            class=\"Organization\"/>\n"
-      "\n"
-      "        <bag name=\"orders\"\n"
-      "            inverse=\"true\"\n"
-      "            lazy=\"false\"\n"
-      "            cascade=\"all\">\n"
-      "            <key column=\"CUSTOMER_ID\"/>\n"
-      "            <one-to-many class=\"Order\"/>\n"
-      "        </bag>\n"
-      "\n"
-      "    </class>\n"
-      "    \n"
-      "</hibernate-mapping>]]>"
 
-#: index.docbook:242
-msgid "Note that even though associations are declared using target class names, the target type of an associations may also be a dynamic entity instead of a POJO."
-msgstr "Ten en cuenta que aunque las asociaciones se declaran usando nombres de clase objetivo, el tipo objetivo de una asociaci&#x00f3;n puede ser adem&#x00e1;s una entidad din&#x00e1;mica en vez de un POJO."
+#. Tag: para
+#: persistent_classes.xml:242
+#, no-c-format
+msgid ""
+"Note that even though associations are declared using target class names, "
+"the target type of an associations may also be a dynamic entity instead of a "
+"POJO."
+msgstr ""
+"Ten en cuenta que aunque las asociaciones se declaran usando nombres de "
+"clase objetivo, el tipo objetivo de una asociación puede ser además una "
+"entidad dinámica en vez de un POJO."
 
-#: index.docbook:249
-msgid "After setting the default entity mode to <literal>dynamic-map</literal> for the <literal>SessionFactory</literal>, we can at runtime work with <literal>Map</literal>s of <literal>Map</literal>s:"
-msgstr "Despu&#x00e9;s de establecer el modo de entidad por defecto a <literal>dynamic-map</literal> para la <literal>SessionFactory</literal>, podemos trabajar en tiempo de ejecuci&#x00f3;n con <literal>Map</literal>s de <literal>Map</literal>s:"
+#. Tag: para
+#: persistent_classes.xml:249
+#, no-c-format
+msgid ""
+"After setting the default entity mode to <literal>dynamic-map</literal> for "
+"the <literal>SessionFactory</literal>, we can at runtime work with "
+"<literal>Map</literal>s of <literal>Map</literal>s:"
+msgstr ""
+"Después de establecer el modo de entidad por defecto a <literal>dynamic-map</"
+"literal> para la <literal>SessionFactory</literal>, podemos trabajar en "
+"tiempo de ejecución con <literal>Map</literal>s de <literal>Map</literal>s:"
 
-#: index.docbook:255
+#. Tag: programlisting
+#: persistent_classes.xml:255
+#, no-c-format
 msgid ""
-      "<![CDATA[Session s = openSession();\n"
-      "Transaction tx = s.beginTransaction();\n"
-      "Session s = openSession();\n"
-      "\n"
-      "// Create a customer\n"
-      "Map david = new HashMap();\n"
-      "david.put(\"name\", \"David\");\n"
-      "\n"
-      "// Create an organization\n"
-      "Map foobar = new HashMap();\n"
-      "foobar.put(\"name\", \"Foobar Inc.\");\n"
-      "\n"
-      "// Link both\n"
-      "david.put(\"organization\", foobar);\n"
-      "\n"
-      "// Save both\n"
-      "s.save(\"Customer\", david);\n"
-      "s.save(\"Organization\", foobar);\n"
-      "\n"
-      "tx.commit();\n"
-      "s.close();]]>"
+"<![CDATA[Session s = openSession();\n"
+"Transaction tx = s.beginTransaction();\n"
+"Session s = openSession();\n"
+"\n"
+"// Create a customer\n"
+"Map david = new HashMap();\n"
+"david.put(\"name\", \"David\");\n"
+"\n"
+"// Create an organization\n"
+"Map foobar = new HashMap();\n"
+"foobar.put(\"name\", \"Foobar Inc.\");\n"
+"\n"
+"// Link both\n"
+"david.put(\"organization\", foobar);\n"
+"\n"
+"// Save both\n"
+"s.save(\"Customer\", david);\n"
+"s.save(\"Organization\", foobar);\n"
+"\n"
+"tx.commit();\n"
+"s.close();]]>"
 msgstr ""
-      "<![CDATA[Session s = openSession();\n"
-      "Transaction tx = s.beginTransaction();\n"
-      "Session s = openSession();\n"
-      "\n"
-      "// Create a customer\n"
-      "Map david = new HashMap();\n"
-      "david.put(\"name\", \"David\");\n"
-      "\n"
-      "// Create an organization\n"
-      "Map foobar = new HashMap();\n"
-      "foobar.put(\"name\", \"Foobar Inc.\");\n"
-      "\n"
-      "// Link both\n"
-      "david.put(\"organization\", foobar);\n"
-      "\n"
-      "// Save both\n"
-      "s.save(\"Customer\", david);\n"
-      "s.save(\"Organization\", foobar);\n"
-      "\n"
-      "tx.commit();\n"
-      "s.close();]]>"
 
-#: index.docbook:257
-msgid "The advantages of a dynamic mapping are quick turnaround time for prototyping without the need for entity class implementation. However, you lose compile-time type checking and will very likely deal with many exceptions at runtime. Thanks to the Hibernate mapping, the database schema can easily be normalized and sound, allowing to add a proper domain model implementation on top later on."
-msgstr "Las ventajas de un mapeo din&#x00e1;mico es r&#x00e1;pido tiempo de ciclo de prototipado sin la necesidad de implementaci&#x00f3;n de clases de entidad. Sin embargo, pierdes chequeo de tipos en tiempo de compilaci&#x00f3;n y muy probablemente tratar&#x00e1;s con muchas excepciones en tiempo de ejecuci&#x00f3;n. Gracias al mapeo de Hibernate, el esquema de base de datos puede estar facilmente sano y normalizado, permitiendo agregar una implementaci&#x00f3;n apropiada del modelo de dominio m&#x00e1;s tarde."
+#. Tag: para
+#: persistent_classes.xml:257
+#, no-c-format
+msgid ""
+"The advantages of a dynamic mapping are quick turnaround time for "
+"prototyping without the need for entity class implementation. However, you "
+"lose compile-time type checking and will very likely deal with many "
+"exceptions at runtime. Thanks to the Hibernate mapping, the database schema "
+"can easily be normalized and sound, allowing to add a proper domain model "
+"implementation on top later on."
+msgstr ""
+"Las ventajas de un mapeo dinámico es rápido tiempo de ciclo de prototipado "
+"sin la necesidad de implementación de clases de entidad. Sin embargo, "
+"pierdes chequeo de tipos en tiempo de compilación y muy probablemente "
+"tratarás con muchas excepciones en tiempo de ejecución. Gracias al mapeo de "
+"Hibernate, el esquema de base de datos puede estar facilmente sano y "
+"normalizado, permitiendo agregar una implementación apropiada del modelo de "
+"dominio más tarde."
 
-#: index.docbook:265
-msgid "Entity representation modes can also be set on a per <literal>Session</literal> basis:"
-msgstr "Los modos de representaci&#x00f3;n de entidad pueden ser establecidos por <literal>Session</literal>:"
+#. Tag: para
+#: persistent_classes.xml:265
+#, no-c-format
+msgid ""
+"Entity representation modes can also be set on a per <literal>Session</"
+"literal> basis:"
+msgstr ""
+"Los modos de representación de entidad pueden ser establecidos por "
+"<literal>Session</literal>:"
 
-#: index.docbook:270
+#. Tag: programlisting
+#: persistent_classes.xml:270
+#, no-c-format
 msgid ""
-      "<![CDATA[Session dynamicSession = pojoSession.getSession(EntityMode.MAP);\n"
-      "\n"
-      "// Create a customer\n"
-      "Map david = new HashMap();\n"
-      "david.put(\"name\", \"David\");\n"
-      "dynamicSession.save(\"Customer\", david);\n"
-      "...\n"
-      "dynamicSession.flush();\n"
-      "dynamicSession.close()\n"
-      "...\n"
-      "// Continue on pojoSession\n"
-      "]]>"
+"<![CDATA[Session dynamicSession = pojoSession.getSession(EntityMode.MAP);\n"
+"\n"
+"// Create a customer\n"
+"Map david = new HashMap();\n"
+"david.put(\"name\", \"David\");\n"
+"dynamicSession.save(\"Customer\", david);\n"
+"...\n"
+"dynamicSession.flush();\n"
+"dynamicSession.close()\n"
+"...\n"
+"// Continue on pojoSession\n"
+"]]>"
 msgstr ""
-      "<![CDATA[Session dynamicSession = pojoSession.getSession(EntityMode.MAP);\n"
-      "\n"
-      "// Create a customer\n"
-      "Map david = new HashMap();\n"
-      "david.put(\"name\", \"David\");\n"
-      "dynamicSession.save(\"Customer\", david);\n"
-      "...\n"
-      "dynamicSession.flush();\n"
-      "dynamicSession.close()\n"
-      "...\n"
-      "// Continue on pojoSession\n"
-      "]]>"
 
-#: index.docbook:273
-msgid "Please note that the call to <literal>getSession()</literal> using an <literal>EntityMode</literal> is on the <literal>Session</literal> API, not the <literal>SessionFactory</literal>. That way, the new <literal>Session</literal> shares the underlying JDBC connection, transaction, and other context information. This means you don't have tocall <literal>flush()</literal> and <literal>close()</literal> on the secondary <literal>Session</literal>, and also leave the transaction and connection handling to the primary unit of work."
-msgstr "Por favor, ten en cuenta que la llamada a <literal>getSession()</literal> usando un <literal>EntityMode</literal> est&#x00e1; en la API de <literal>Session</literal>, no en la de <literal>SessionFactory</literal>. De esta forma, la nueva <literal>Session</literal> comparte la conexi&#x00f3;n JDBC, transacci&#x00f3;n y otra informaci&#x00f3;n de contexto. Esto significa que no tienes que llamar a <literal>flush()</literal> ni a <literal>close()</literal> en la <literal>Session</literal> secundaria, y tembi&#x00e9;n dejar el manejo de la transacci&#x00f3;n y de la conexi&#x00f3;n a la unidad de trabajo primaria."
+#. Tag: para
+#: persistent_classes.xml:273
+#, no-c-format
+msgid ""
+"Please note that the call to <literal>getSession()</literal> using an "
+"<literal>EntityMode</literal> is on the <literal>Session</literal> API, not "
+"the <literal>SessionFactory</literal>. That way, the new <literal>Session</"
+"literal> shares the underlying JDBC connection, transaction, and other "
+"context information. This means you don't have tocall <literal>flush()</"
+"literal> and <literal>close()</literal> on the secondary <literal>Session</"
+"literal>, and also leave the transaction and connection handling to the "
+"primary unit of work."
+msgstr ""
+"Por favor, ten en cuenta que la llamada a <literal>getSession()</literal> "
+"usando un <literal>EntityMode</literal> está en la API de <literal>Session</"
+"literal>, no en la de <literal>SessionFactory</literal>. De esta forma, la "
+"nueva <literal>Session</literal> comparte la conexión JDBC, transacción y "
+"otra información de contexto. Esto significa que no tienes que llamar a "
+"<literal>flush()</literal> ni a <literal>close()</literal> en la "
+"<literal>Session</literal> secundaria, y tembién dejar el manejo de la "
+"transacción y de la conexión a la unidad de trabajo primaria."
 
-#: index.docbook:283
-msgid "More information about the XML representation capabilities can be found in <xref linkend=\"xml\"/>."
-msgstr "Puede encontrarse m&#x00e1;s informaci&#x00f3;n sobre las capacidades de representaci&#x00f3;n XML en <xref linkend=\"xml\"/>."
+#. Tag: para
+#: persistent_classes.xml:283
+#, no-c-format
+msgid ""
+"More information about the XML representation capabilities can be found in "
+"<xref linkend=\"xml\"/>."
+msgstr ""
+"Puede encontrarse más información sobre las capacidades de representación "
+"XML en <xref linkend=\"xml\"/>."
 
-#: index.docbook:291
+#. Tag: title
+#: persistent_classes.xml:291
+#, no-c-format
 msgid "Tuplizers"
-msgstr "PORHACER: Documentar el framework de extensiones del usuario en los paquetes de propiedad y proxies."
+msgstr "UNTRANSLATED!!! Tuplizers"
 
-#: index.docbook:293
-msgid "<literal>org.hibernate.tuple.Tuplizer</literal>, and its sub-interfaces, are responsible for managing a particular representation of a piece of data, given that representation's <literal>org.hibernate.EntityMode</literal>. If a given piece of data is thought of as a data structure, then a tuplizer is the thing which knows how to create such a data structure and how to extract values from and inject values into such a data structure. For example, for the POJO entity mode, the correpsonding tuplizer knows how create the POJO through its constructor and how to access the POJO properties using the defined property accessors. There are two high-level types of Tuplizers, represented by the <literal>org.hibernate.tuple.entity.EntityTuplizer</literal> and <literal>org.hibernate.tuple.component.ComponentTuplizer</literal> interfaces. <literal>EntityTuplizer</literal>s are responsible for managing the above mentioned contracts in regards to entities, while <literal>ComponentTu!
 plizer</literal>s do the same for components."
+#. Tag: para
+#: persistent_classes.xml:293
+#, no-c-format
+msgid ""
+"<literal>org.hibernate.tuple.Tuplizer</literal>, and its sub-interfaces, are "
+"responsible for managing a particular representation of a piece of data, "
+"given that representation's <literal>org.hibernate.EntityMode</literal>. If "
+"a given piece of data is thought of as a data structure, then a tuplizer is "
+"the thing which knows how to create such a data structure and how to extract "
+"values from and inject values into such a data structure. For example, for "
+"the POJO entity mode, the correpsonding tuplizer knows how create the POJO "
+"through its constructor and how to access the POJO properties using the "
+"defined property accessors. There are two high-level types of Tuplizers, "
+"represented by the <literal>org.hibernate.tuple.entity.EntityTuplizer</"
+"literal> and <literal>org.hibernate.tuple.component.ComponentTuplizer</"
+"literal> interfaces. <literal>EntityTuplizer</literal>s are responsible for "
+"managing the above mentioned contracts in regards to entities, while "
+"<literal>ComponentTuplizer</literal>s do the same for components."
 msgstr ""
+"<literal>org.hibernate.tuple.Tuplizer</literal>, and its sub-interfaces, are "
+"responsible for managing a particular representation of a piece of data, "
+"given that representation's <literal>org.hibernate.EntityMode</literal>. If "
+"a given piece of data is thought of as a data structure, then a tuplizer is "
+"the thing which knows how to create such a data structure and how to extract "
+"values from and inject values into such a data structure. For example, for "
+"the POJO entity mode, the correpsonding tuplizer knows how create the POJO "
+"through its constructor and how to access the POJO properties using the "
+"defined property accessors. There are two high-level types of Tuplizers, "
+"represented by the <literal>org.hibernate.tuple.entity.EntityTuplizer</"
+"literal> and <literal>org.hibernate.tuple.component.ComponentTuplizer</"
+"literal> interfaces. <literal>EntityTuplizer</literal>s are responsible for "
+"managing the above mentioned contracts in regards to entities, while "
+"<literal>ComponentTuplizer</literal>s do the same for components."
 
-#: index.docbook:308
-msgid "Users may also plug in their own tuplizers. Perhaps you require that a <literal>java.util.Map</literal> implementation other than <literal>java.util.HashMap</literal> be used while in the dynamic-map entity-mode; or perhaps you need to define a different proxy generation strategy than the one used by default. Both would be achieved by defining a custom tuplizer implementation. Tuplizers definitions are attached to the entity or component mapping they are meant to manage. Going back to the example of our customer entity:"
+#. Tag: para
+#: persistent_classes.xml:308
+#, no-c-format
+msgid ""
+"Users may also plug in their own tuplizers. Perhaps you require that a "
+"<literal>java.util.Map</literal> implementation other than <literal>java."
+"util.HashMap</literal> be used while in the dynamic-map entity-mode; or "
+"perhaps you need to define a different proxy generation strategy than the "
+"one used by default. Both would be achieved by defining a custom tuplizer "
+"implementation. Tuplizers definitions are attached to the entity or "
+"component mapping they are meant to manage. Going back to the example of our "
+"customer entity:"
 msgstr ""
+"Users may also plug in their own tuplizers. Perhaps you require that a "
+"<literal>java.util.Map</literal> implementation other than <literal>java."
+"util.HashMap</literal> be used while in the dynamic-map entity-mode; or "
+"perhaps you need to define a different proxy generation strategy than the "
+"one used by default. Both would be achieved by defining a custom tuplizer "
+"implementation. Tuplizers definitions are attached to the entity or "
+"component mapping they are meant to manage. Going back to the example of our "
+"customer entity:"
 
-#: index.docbook:317
+#. Tag: programlisting
+#: persistent_classes.xml:317
+#, no-c-format
 msgid ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "    <class entity-name=\"Customer\">\n"
-      "        <!--\n"
-      "            Override the dynamic-map entity-mode\n"
-      "            tuplizer for the customer entity\n"
-      "        -->\n"
-      "        <tuplizer entity-mode=\"dynamic-map\"\n"
-      "                class=\"CustomMapTuplizerImpl\"/>\n"
-      "\n"
-      "        <id name=\"id\" type=\"long\" column=\"ID\">\n"
-      "            <generator class=\"sequence\"/>\n"
-      "        </id>\n"
-      "\n"
-      "        <!-- other properties -->\n"
-      "        ...\n"
-      "    </class>\n"
-      "</hibernate-mapping>\n"
-      "\n"
-      "\n"
-      "public class CustomMapTuplizerImpl\n"
-      "        extends org.hibernate.tuple.entity.DynamicMapEntityTuplizer {\n"
-      "    // override the buildInstantiator() method to plug in our custom map...\n"
-      "    protected final Instantiator buildInstantiator(\n"
-      "            org.hibernate.mapping.PersistentClass mappingInfo) {\n"
-      "        return new CustomMapInstantiator( mappingInfo );\n"
-      "    }\n"
-      "\n"
-      "    private static final class CustomMapInstantiator\n"
-      "            extends org.hibernate.tuple.DynamicMapInstantitor {\n"
-      "        // override the generateMap() method to return our custom map...\n"
-      "            protected final Map generateMap() {\n"
-      "                    return new CustomMap();\n"
-      "            }\n"
-      "    }\n"
-      "}]]>"
+"<![CDATA[<hibernate-mapping>\n"
+"    <class entity-name=\"Customer\">\n"
+"        <!--\n"
+"            Override the dynamic-map entity-mode\n"
+"            tuplizer for the customer entity\n"
+"        -->\n"
+"        <tuplizer entity-mode=\"dynamic-map\"\n"
+"                class=\"CustomMapTuplizerImpl\"/>\n"
+"\n"
+"        <id name=\"id\" type=\"long\" column=\"ID\">\n"
+"            <generator class=\"sequence\"/>\n"
+"        </id>\n"
+"\n"
+"        <!-- other properties -->\n"
+"        ...\n"
+"    </class>\n"
+"</hibernate-mapping>\n"
+"\n"
+"\n"
+"public class CustomMapTuplizerImpl\n"
+"        extends org.hibernate.tuple.entity.DynamicMapEntityTuplizer {\n"
+"    // override the buildInstantiator() method to plug in our custom map...\n"
+"    protected final Instantiator buildInstantiator(\n"
+"            org.hibernate.mapping.PersistentClass mappingInfo) {\n"
+"        return new CustomMapInstantiator( mappingInfo );\n"
+"    }\n"
+"\n"
+"    private static final class CustomMapInstantiator\n"
+"            extends org.hibernate.tuple.DynamicMapInstantitor {\n"
+"        // override the generateMap() method to return our custom map...\n"
+"            protected final Map generateMap() {\n"
+"                    return new CustomMap();\n"
+"            }\n"
+"    }\n"
+"}]]>"
 msgstr ""
 
-#: index.docbook:322
-msgid "TODO: Document user-extension framework in the property and proxy packages"
+#. Tag: para
+#: persistent_classes.xml:322
+#, no-c-format
+msgid ""
+"TODO: Document user-extension framework in the property and proxy packages"
 msgstr ""
-
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
-
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
-
+"PORHACER: Documentar el framework de extensiones del usuario en los paquetes "
+"de propiedad y proxies."

Modified: core/trunk/documentation/manual/translations/es-ES/content/preface.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/preface.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/preface.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,68 +1,201 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:21
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: preface.xml:21
+#, no-c-format
 msgid "Preface"
 msgstr "Prefacio"
 
-#: index.docbook:23
-msgid "Working with object-oriented software and a relational database can be cumbersome and time consuming in today's enterprise environments. Hibernate is an object/relational mapping tool for Java environments. The term object/relational mapping (ORM) refers to the technique of mapping a data representation from an object model to a relational data model with a SQL-based schema."
-msgstr "Trabajar con software orientado a objetos y una base de datos relacional puede ser inc&#x00f3;modo y consumir tiempo en los entornos de empresa de hoy. Hibernate es una herramienta de mapeo objeto/relacional para entornos Java. El t&#x00e9;rmino mapeo objeto/relacional (MOR) hace referencia a la t&#x00e9;cnica de mapear una representaci&#x00f3;n de datos desde un modelo de objetos a un modelo de datos relacional con un esquema basado en SQL."
+#. Tag: para
+#: preface.xml:23
+#, no-c-format
+msgid ""
+"Working with object-oriented software and a relational database can be "
+"cumbersome and time consuming in today's enterprise environments. Hibernate "
+"is an object/relational mapping tool for Java environments. The term object/"
+"relational mapping (ORM) refers to the technique of mapping a data "
+"representation from an object model to a relational data model with a SQL-"
+"based schema."
+msgstr ""
+"Trabajar con software orientado a objetos y una base de datos relacional "
+"puede ser incómodo y consumir tiempo en los entornos de empresa de hoy. "
+"Hibernate es una herramienta de mapeo objeto/relacional para entornos Java. "
+"El término mapeo objeto/relacional (MOR) hace referencia a la técnica de "
+"mapear una representación de datos desde un modelo de objetos a un modelo de "
+"datos relacional con un esquema basado en SQL."
 
-#: index.docbook:31
-msgid "Hibernate not only takes care of the mapping from Java classes to database tables (and from Java data types to SQL data types), but also provides data query and retrieval facilities and can significantly reduce development time otherwise spent with manual data handling in SQL and JDBC."
-msgstr "Hibernate no s&#x00f3;lo se encarga de mapear de clases Java a tablas de base de datos (y de tipos de datos de Java a tipos de datos SQL), sino que tambi&#x00e9;n provee facilidades de consulta y recuperaci&#x00f3;n de datos y puede reducir significativamente el tiempo de desarrollo que de otra forma se gasta en el manejo de los datos en SQL y JDBC."
+#. Tag: para
+#: preface.xml:31
+#, no-c-format
+msgid ""
+"Hibernate not only takes care of the mapping from Java classes to database "
+"tables (and from Java data types to SQL data types), but also provides data "
+"query and retrieval facilities and can significantly reduce development time "
+"otherwise spent with manual data handling in SQL and JDBC."
+msgstr ""
+"Hibernate no sólo se encarga de mapear de clases Java a tablas de base de "
+"datos (y de tipos de datos de Java a tipos de datos SQL), sino que también "
+"provee facilidades de consulta y recuperación de datos y puede reducir "
+"significativamente el tiempo de desarrollo que de otra forma se gasta en el "
+"manejo de los datos en SQL y JDBC."
 
-#: index.docbook:38
-msgid "Hibernates goal is to relieve the developer from 95 percent of common data persistence related programming tasks. Hibernate may not be the best solution for data-centric applications that only use stored-procedures to implement the business logic in the database, it is most useful with object-oriented domain models and business logic in the Java-based middle-tier. However, Hibernate can certainly help you to remove or encapsulate vendor-specific SQL code and will help with the common task of result set translation from a tabular representation to a graph of objects."
-msgstr "La meta de Hibernate es relevar al desarrollador del 95 por ciento de las tareas comunes relacionadas a la programaci&#x00f3;n de la persistencia de los datos. Hibernate puede no ser la mejor soluci&#x00f3;n para aplicaciones que usan solamente procedimientos almacenados para implementar la l&#x00f3;gica de negocio en la base de datos, es mas &#x00fa;til con modelos de dominio orientados a objetos y l&#x00f3;gica de negocio en middle-tier basada en Java. Sin embargo, Hibernate ciertamente puede ayudarte a quitar o encapsular c&#x00f3;digo SQL espec&#x00ed;fico de vendedor y ayudar&#x00e1; con la tarea com&#x00fa;n de traducci&#x00f3;n de resultados desde una representaci&#x00f3;n tabular a un grafo de objetos."
+#. Tag: para
+#: preface.xml:38
+#, no-c-format
+msgid ""
+"Hibernates goal is to relieve the developer from 95 percent of common data "
+"persistence related programming tasks. Hibernate may not be the best "
+"solution for data-centric applications that only use stored-procedures to "
+"implement the business logic in the database, it is most useful with object-"
+"oriented domain models and business logic in the Java-based middle-tier. "
+"However, Hibernate can certainly help you to remove or encapsulate vendor-"
+"specific SQL code and will help with the common task of result set "
+"translation from a tabular representation to a graph of objects."
+msgstr ""
+"La meta de Hibernate es relevar al desarrollador del 95 por ciento de las "
+"tareas comunes relacionadas a la programación de la persistencia de los "
+"datos. Hibernate puede no ser la mejor solución para aplicaciones que usan "
+"solamente procedimientos almacenados para implementar la lógica de negocio "
+"en la base de datos, es mas útil con modelos de dominio orientados a objetos "
+"y lógica de negocio en middle-tier basada en Java. Sin embargo, Hibernate "
+"ciertamente puede ayudarte a quitar o encapsular código SQL específico de "
+"vendedor y ayudará con la tarea común de traducción de resultados desde una "
+"representación tabular a un grafo de objetos."
 
-#: index.docbook:48
-msgid "If you are new to Hibernate and Object/Relational Mapping or even Java, please follow these steps:"
-msgstr "Si eres nuevo en Hibernate y lo del Mapeo Objeto/Relacional o incluso en Java, sigue por favor estos pasos:"
+#. Tag: para
+#: preface.xml:48
+#, no-c-format
+msgid ""
+"If you are new to Hibernate and Object/Relational Mapping or even Java, "
+"please follow these steps:"
+msgstr ""
+"Si eres nuevo en Hibernate y lo del Mapeo Objeto/Relacional o incluso en "
+"Java, sigue por favor estos pasos:"
 
-#: index.docbook:55
-msgid "Read <xref linkend=\"tutorial\"/> for a tutorial with step-by-step instructions. The source code for the tutorial is included in the distribution in the <literal>doc/reference/tutorial/</literal> directory."
-msgstr "Lee <xref linkend=\"quickstart\"/> para un tutorial de 30 minutos, usando Tomcat."
+#. Tag: para
+#: preface.xml:55
+#, no-c-format
+msgid ""
+"Read <xref linkend=\"tutorial\"/> for a tutorial with step-by-step "
+"instructions. The source code for the tutorial is included in the "
+"distribution in the <literal>doc/reference/tutorial/</literal> directory."
+msgstr ""
+"Lee <xref linkend=\"quickstart\"/> para un tutorial de 30 minutos, usando "
+"Tomcat."
 
-#: index.docbook:63
-msgid "Read <xref linkend=\"architecture\"/> to understand the environments where Hibernate can be used."
-msgstr "Lee <xref linkend=\"architecture\"/> para entender los entornos en los que puede ser usado Hibernate."
+#. Tag: para
+#: preface.xml:63
+#, no-c-format
+msgid ""
+"Read <xref linkend=\"architecture\"/> to understand the environments where "
+"Hibernate can be used."
+msgstr ""
+"Lee <xref linkend=\"architecture\"/> para entender los entornos en los que "
+"puede ser usado Hibernate."
 
-#: index.docbook:69
-msgid "Have a look at the <literal>eg/</literal> directory in the Hibernate distribution, it contains a simple standalone application. Copy your JDBC driver to the <literal>lib/</literal> directory and edit <literal>etc/hibernate.properties</literal>, specifying correct values for your database. From a command prompt in the distribution directory, type <literal>ant eg</literal> (using Ant), or under Windows, type <literal>build eg</literal>."
-msgstr "Dale una mirada al directorio <literal>eg/</literal> en la distribuci&#x00f3;n de Hibernate, contiene una aplicaci&#x00f3;n independiente simple. Copia tu driver JDBC al directorio <literal>lib/</literal> y edita <literal>etc/hibernate.properties</literal>, especificando los valores correctos para tu base de datos. Desde l&#x00ed;nea de comandos en el directorio de la distribuci&#x00f3;n, tipea <literal>ant eg</literal> (usando Ant), o bajo Windows, tipea <literal>build eg</literal>."
+#. Tag: para
+#: preface.xml:69
+#, no-c-format
+msgid ""
+"Have a look at the <literal>eg/</literal> directory in the Hibernate "
+"distribution, it contains a simple standalone application. Copy your JDBC "
+"driver to the <literal>lib/</literal> directory and edit <literal>etc/"
+"hibernate.properties</literal>, specifying correct values for your database. "
+"From a command prompt in the distribution directory, type <literal>ant eg</"
+"literal> (using Ant), or under Windows, type <literal>build eg</literal>."
+msgstr ""
+"Dale una mirada al directorio <literal>eg/</literal> en la distribución de "
+"Hibernate, contiene una aplicación independiente simple. Copia tu driver "
+"JDBC al directorio <literal>lib/</literal> y edita <literal>etc/hibernate."
+"properties</literal>, especificando los valores correctos para tu base de "
+"datos. Desde línea de comandos en el directorio de la distribución, tipea "
+"<literal>ant eg</literal> (usando Ant), o bajo Windows, tipea <literal>build "
+"eg</literal>."
 
-#: index.docbook:80
-msgid "Use this reference documentation as your primary source of information. Consider reading <emphasis>Java Persistence with Hibernate</emphasis> (http://www.manning.com/bauer2) if you need more help with application design or if you prefer a step-by-step tutorial. Also visit http://caveatemptor.hibernate.org and download the example application for Java Persistence with Hibernate."
-msgstr "Usa esta documentaci&#x00f3;n de referencia como tu fuente de informaci&#x00f3;n primaria. Ten en consideraci&#x00f3;n leer <emphasis>Java Persistence with Hibernate</emphasis> (http://www.manning.com/bauer2) si necesitas mas ayuda con el dise&#x00f1;o de aplicaciones o si prefieres un tutorial paso a paso. Visita tambi&#x00e9;n http://caveatemptor.hibernate.org y descarga la aplicaci&#x00f3;n de ejemplo para Java Persistence with Hibernate."
+#. Tag: para
+#: preface.xml:80
+#, no-c-format
+msgid ""
+"Use this reference documentation as your primary source of information. "
+"Consider reading <emphasis>Java Persistence with Hibernate</emphasis> "
+"(http://www.manning.com/bauer2) if you need more help with application "
+"design or if you prefer a step-by-step tutorial. Also visit http://"
+"caveatemptor.hibernate.org and download the example application for Java "
+"Persistence with Hibernate."
+msgstr ""
+"Usa esta documentación de referencia como tu fuente de información primaria. "
+"Ten en consideración leer <emphasis>Java Persistence with Hibernate</"
+"emphasis> (http://www.manning.com/bauer2) si necesitas mas ayuda con el "
+"diseño de aplicaciones o si prefieres un tutorial paso a paso. Visita "
+"también http://caveatemptor.hibernate.org y descarga la aplicación de "
+"ejemplo para Java Persistence with Hibernate."
 
-#: index.docbook:90
+#. Tag: para
+#: preface.xml:90
+#, no-c-format
 msgid "FAQs are answered on the Hibernate website."
 msgstr "Los FAQs son respondidos en el sitio web de Hibernate."
 
-#: index.docbook:95
-msgid "Third party demos, examples, and tutorials are linked on the Hibernate website."
-msgstr "En el sitio web de Hibernate hay enlaces a demos de terceros, ejemplos y tutoriales."
+#. Tag: para
+#: preface.xml:95
+#, no-c-format
+msgid ""
+"Third party demos, examples, and tutorials are linked on the Hibernate "
+"website."
+msgstr ""
+"En el sitio web de Hibernate hay enlaces a demos de terceros, ejemplos y "
+"tutoriales."
 
-#: index.docbook:101
-msgid "The Community Area on the Hibernate website is a good resource for design patterns and various integration solutions (Tomcat, JBoss AS, Struts, EJB, etc.)."
-msgstr "El Area de Comunidad en el sitio web de Hibernate es una buena fuente de patrones de dise&#x00f1;o y varias soluciones de integraci&#x00f3;n (Tomcat, JBoss, Struts, EJB, etc.)."
+#. Tag: para
+#: preface.xml:101
+#, no-c-format
+msgid ""
+"The Community Area on the Hibernate website is a good resource for design "
+"patterns and various integration solutions (Tomcat, JBoss AS, Struts, EJB, "
+"etc.)."
+msgstr ""
+"El Area de Comunidad en el sitio web de Hibernate es una buena fuente de "
+"patrones de diseño y varias soluciones de integración (Tomcat, JBoss, "
+"Struts, EJB, etc.)."
 
-#: index.docbook:109
-msgid "If you have questions, use the user forum linked on the Hibernate website. We also provide a JIRA issue trackings system for bug reports and feature requests. If you are interested in the development of Hibernate, join the developer mailing list. If you are interested in translating this documentation into your language, contact us on the developer mailing list."
-msgstr "Si tienes preguntas, usa el foro de usuarios enlazado en el sitio web de Hibernate. Tambi&#x00e9;n proveemos un sistema de seguimiento JIRA para reportes de defectos y peticiones de nuevas caracter&#x00ed;sticas. Si estas interesado en el desarrollo de Hibernate, &#x00fa;nete a la lista de correo de desarrolladores. Si estas interesado en traducir esta documentaci&#x00f3;n a tu lenguaje, cont&#x00e1;ctanos en la lista de correo de desarrolladores."
+#. Tag: para
+#: preface.xml:109
+#, no-c-format
+msgid ""
+"If you have questions, use the user forum linked on the Hibernate website. "
+"We also provide a JIRA issue trackings system for bug reports and feature "
+"requests. If you are interested in the development of Hibernate, join the "
+"developer mailing list. If you are interested in translating this "
+"documentation into your language, contact us on the developer mailing list."
+msgstr ""
+"Si tienes preguntas, usa el foro de usuarios enlazado en el sitio web de "
+"Hibernate. También proveemos un sistema de seguimiento JIRA para reportes de "
+"defectos y peticiones de nuevas características. Si estas interesado en el "
+"desarrollo de Hibernate, únete a la lista de correo de desarrolladores. Si "
+"estas interesado en traducir esta documentación a tu lenguaje, contáctanos "
+"en la lista de correo de desarrolladores."
 
-#: index.docbook:117
-msgid "Commercial development support, production support, and training for Hibernate is available through JBoss Inc. (see http://www.hibernate.org/SupportTraining/). Hibernate is a Professional Open Source project and a critical component of the JBoss Enterprise Middleware System (JEMS) suite of products."
-msgstr "A trav&#x00e9;s de JBoss Inc. (see http://www.hibernate.org/SupportTraining/) hay disponibilidad de soporte comercial de desarrollo, soporte de producci&#x00f3;n y entrenamiento en Hibernate. Hibernate es un proyecto de la suite de productos de c&#x00f3;digo abierto JBoss Professional."
-
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
-
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
-
+#. Tag: para
+#: preface.xml:117
+#, no-c-format
+msgid ""
+"Commercial development support, production support, and training for "
+"Hibernate is available through JBoss Inc. (see http://www.hibernate.org/"
+"SupportTraining/). Hibernate is a Professional Open Source project and a "
+"critical component of the JBoss Enterprise Middleware System (JEMS) suite of "
+"products."
+msgstr ""
+"A través de JBoss Inc. (see http://www.hibernate.org/SupportTraining/) hay "
+"disponibilidad de soporte comercial de desarrollo, soporte de producción y "
+"entrenamiento en Hibernate. Hibernate es un proyecto de la suite de "
+"productos de código abierto JBoss Professional."

Modified: core/trunk/documentation/manual/translations/es-ES/content/query_criteria.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/query_criteria.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/query_criteria.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,672 +1,778 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:5
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: query_criteria.xml:5
+#, no-c-format
 msgid "Criteria Queries"
 msgstr "Consultas por Criterios"
 
-#: index.docbook:7
+#. Tag: para
+#: query_criteria.xml:7
+#, no-c-format
 msgid "Hibernate features an intuitive, extensible criteria query API."
-msgstr "Acompa&#x00f1;a a Hibernate una API de consultas por criterios intuitiva y extensible."
+msgstr ""
+"Acompaña a Hibernate una API de consultas por criterios intuitiva y "
+"extensible."
 
-#: index.docbook:12
+#. Tag: title
+#: query_criteria.xml:12
+#, no-c-format
 msgid "Creating a <literal>Criteria</literal> instance"
 msgstr "Creando una instancia de <literal>Criteria</literal>"
 
-#: index.docbook:14
-msgid "The interface <literal>org.hibernate.Criteria</literal> represents a query against a particular persistent class. The <literal>Session</literal> is a factory for <literal>Criteria</literal> instances."
-msgstr "La interface <literal>org.hibernate.Criteria</literal> representa una consulta contra una clase persistente en particular. La <literal>Session</literal> es una f&#x00e1;brica de instancias de <literal>Criteria</literal>."
+#. Tag: para
+#: query_criteria.xml:14
+#, no-c-format
+msgid ""
+"The interface <literal>org.hibernate.Criteria</literal> represents a query "
+"against a particular persistent class. The <literal>Session</literal> is a "
+"factory for <literal>Criteria</literal> instances."
+msgstr ""
+"La interface <literal>org.hibernate.Criteria</literal> representa una "
+"consulta contra una clase persistente en particular. La <literal>Session</"
+"literal> es una fábrica de instancias de <literal>Criteria</literal>."
 
-#: index.docbook:20
+#. Tag: programlisting
+#: query_criteria.xml:20
+#, no-c-format
 msgid ""
-      "<![CDATA[Criteria crit = sess.createCriteria(Cat.class);\n"
-      "crit.setMaxResults(50);\n"
-      "List cats = crit.list();]]>"
+"<![CDATA[Criteria crit = sess.createCriteria(Cat.class);\n"
+"crit.setMaxResults(50);\n"
+"List cats = crit.list();]]>"
 msgstr ""
-      "<![CDATA[Criteria crit = sess.createCriteria(Cat.class);\n"
-      "crit.setMaxResults(50);\n"
-      "List cats = crit.list();]]>"
 
-#: index.docbook:25
+#. Tag: title
+#: query_criteria.xml:25
+#, no-c-format
 msgid "Narrowing the result set"
 msgstr "Estrechando el conjunto resultado"
 
-#: index.docbook:27
-msgid "An individual query criterion is an instance of the interface <literal>org.hibernate.criterion.Criterion</literal>. The class <literal>org.hibernate.criterion.Restrictions</literal> defines factory methods for obtaining certain built-in <literal>Criterion</literal> types."
-msgstr "Un criterio individual de consulta es una instancia de la interface <literal>org.hibernate.criterion.Criterion</literal>. La clase <literal>org.hibernate.criterion.Restrictions</literal> define m&#x00e9;todos de f&#x00e1;brica para obtener ciertos tipos prefabricados de <literal>Criterion</literal>."
+#. Tag: para
+#: query_criteria.xml:27
+#, no-c-format
+msgid ""
+"An individual query criterion is an instance of the interface <literal>org."
+"hibernate.criterion.Criterion</literal>. The class <literal>org.hibernate."
+"criterion.Restrictions</literal> defines factory methods for obtaining "
+"certain built-in <literal>Criterion</literal> types."
+msgstr ""
+"Un criterio individual de consulta es una instancia de la interface "
+"<literal>org.hibernate.criterion.Criterion</literal>. La clase <literal>org."
+"hibernate.criterion.Restrictions</literal> define métodos de fábrica para "
+"obtener ciertos tipos prefabricados de <literal>Criterion</literal>."
 
-#: index.docbook:35
+#. Tag: programlisting
+#: query_criteria.xml:35
+#, no-c-format
 msgid ""
-      "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-      "    .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
-      "    .add( Restrictions.between(\"weight\", minWeight, maxWeight) )\n"
-      "    .list();]]>"
+"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+"    .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+"    .add( Restrictions.between(\"weight\", minWeight, maxWeight) )\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-      "    .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
-      "    .add( Restrictions.between(\"weight\", minWeight, maxWeight) )\n"
-      "    .list();]]>"
 
-#: index.docbook:37
+#. Tag: para
+#: query_criteria.xml:37
+#, no-c-format
 msgid "Restrictions may be grouped logically."
-msgstr "Las restricciones pueden ser agrupadas l&#x00f3;gicamente."
+msgstr "Las restricciones pueden ser agrupadas lógicamente."
 
-#: index.docbook:41
+#. Tag: programlisting
+#: query_criteria.xml:41
+#, no-c-format
 msgid ""
-      "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-      "    .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
-      "    .add( Restrictions.or(\n"
-      "        Restrictions.eq( \"age\", new Integer(0) ),\n"
-      "        Restrictions.isNull(\"age\")\n"
-      "    ) )\n"
-      "    .list();]]>"
+"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+"    .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+"    .add( Restrictions.or(\n"
+"        Restrictions.eq( \"age\", new Integer(0) ),\n"
+"        Restrictions.isNull(\"age\")\n"
+"    ) )\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-      "    .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
-      "    .add( Restrictions.or(\n"
-      "        Restrictions.eq( \"age\", new Integer(0) ),\n"
-      "        Restrictions.isNull(\"age\")\n"
-      "    ) )\n"
-      "    .list();]]>"
 
-#: index.docbook:43
+#. Tag: programlisting
+#: query_criteria.xml:43
+#, no-c-format
 msgid ""
-      "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-      "    .add( Restrictions.in( \"name\", new String[] { \"Fritz\", \"Izi\", \"Pk\" } ) )\n"
-      "    .add( Restrictions.disjunction()\n"
-      "        .add( Restrictions.isNull(\"age\") )\n"
-      "        .add( Restrictions.eq(\"age\", new Integer(0) ) )\n"
-      "        .add( Restrictions.eq(\"age\", new Integer(1) ) )\n"
-      "        .add( Restrictions.eq(\"age\", new Integer(2) ) )\n"
-      "    ) )\n"
-      "    .list();]]>"
+"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+"    .add( Restrictions.in( \"name\", new String[] { \"Fritz\", \"Izi\", \"Pk"
+"\" } ) )\n"
+"    .add( Restrictions.disjunction()\n"
+"        .add( Restrictions.isNull(\"age\") )\n"
+"        .add( Restrictions.eq(\"age\", new Integer(0) ) )\n"
+"        .add( Restrictions.eq(\"age\", new Integer(1) ) )\n"
+"        .add( Restrictions.eq(\"age\", new Integer(2) ) )\n"
+"    ) )\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-      "    .add( Restrictions.in( \"name\", new String[] { \"Fritz\", \"Izi\", \"Pk\" } ) )\n"
-      "    .add( Restrictions.disjunction()\n"
-      "        .add( Restrictions.isNull(\"age\") )\n"
-      "        .add( Restrictions.eq(\"age\", new Integer(0) ) )\n"
-      "        .add( Restrictions.eq(\"age\", new Integer(1) ) )\n"
-      "        .add( Restrictions.eq(\"age\", new Integer(2) ) )\n"
-      "    ) )\n"
-      "    .list();]]>"
 
-#: index.docbook:45
-msgid "There are quite a range of built-in criterion types (<literal>Restrictions</literal> subclasses), but one that is especially useful lets you specify SQL directly."
-msgstr "Hay un gran rango de tipos de criterio prefabricados (subclases de <literal>Restrictions</literal>), pero uno que es especialmente útil te deja especificar SQL directamente."
+#. Tag: para
+#: query_criteria.xml:45
+#, no-c-format
+msgid ""
+"There are quite a range of built-in criterion types (<literal>Restrictions</"
+"literal> subclasses), but one that is especially useful lets you specify SQL "
+"directly."
+msgstr ""
+"Hay un gran rango de tipos de criterio prefabricados (subclases de "
+"<literal>Restrictions</literal>), pero uno que es especialmente útil te deja "
+"especificar SQL directamente."
 
-#: index.docbook:50
+#. Tag: programlisting
+#: query_criteria.xml:50
+#, no-c-format
 msgid ""
-      "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-      "    .add( Restrictions.sqlRestriction(\"lower({alias}.name) like lower(?)\", \"Fritz%\", Hibernate.STRING) )\n"
-      "    .list();]]>"
+"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+"    .add( Restrictions.sqlRestriction(\"lower({alias}.name) like lower(?)\", "
+"\"Fritz%\", Hibernate.STRING) )\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-      "    .add( Restrictions.sql(\"lower({alias}.name) like lower(?)\", \"Fritz%\", Hibernate.STRING) )\n"
-      "    .list();]]>"
 
-#: index.docbook:52
-msgid "The <literal>{alias}</literal> placeholder with be replaced by the row alias of the queried entity."
-msgstr "El sitio <literal>{alias}</literal> ser&#x00e1; remplazado por el alias de fila de la entidad consultada."
+#. Tag: para
+#: query_criteria.xml:52
+#, no-c-format
+msgid ""
+"The <literal>{alias}</literal> placeholder with be replaced by the row alias "
+"of the queried entity."
+msgstr ""
+"El sitio <literal>{alias}</literal> será remplazado por el alias de fila de "
+"la entidad consultada."
 
-#: index.docbook:57
-msgid "An alternative approach to obtaining a criterion is to get it from a <literal>Property</literal> instance. You can create a <literal>Property</literal> by calling <literal>Property.forName()</literal>."
-msgstr "Un enfoque alternativo para obtener un criterio es tomarlo de una instancia de <literal>Property</literal>. Puedes crear una <literal>Property</literal> llamando a <literal>Property.forName()</literal>."
+#. Tag: para
+#: query_criteria.xml:57
+#, no-c-format
+msgid ""
+"An alternative approach to obtaining a criterion is to get it from a "
+"<literal>Property</literal> instance. You can create a <literal>Property</"
+"literal> by calling <literal>Property.forName()</literal>."
+msgstr ""
+"Un enfoque alternativo para obtener un criterio es tomarlo de una instancia "
+"de <literal>Property</literal>. Puedes crear una <literal>Property</literal> "
+"llamando a <literal>Property.forName()</literal>."
 
-#: index.docbook:63
+#. Tag: programlisting
+#: query_criteria.xml:63
+#, no-c-format
 msgid ""
-      "<![CDATA[\n"
-      "Property age = Property.forName(\"age\");\n"
-      "List cats = sess.createCriteria(Cat.class)\n"
-      "    .add( Restrictions.disjunction()\n"
-      "        .add( age.isNull() )\n"
-      "        .add( age.eq( new Integer(0) ) )\n"
-      "        .add( age.eq( new Integer(1) ) )\n"
-      "        .add( age.eq( new Integer(2) ) )\n"
-      "    ) )\n"
-      "    .add( Property.forName(\"name\").in( new String[] { \"Fritz\", \"Izi\", \"Pk\" } ) )\n"
-      "    .list();]]>"
+"<![CDATA[\n"
+"Property age = Property.forName(\"age\");\n"
+"List cats = sess.createCriteria(Cat.class)\n"
+"    .add( Restrictions.disjunction()\n"
+"        .add( age.isNull() )\n"
+"        .add( age.eq( new Integer(0) ) )\n"
+"        .add( age.eq( new Integer(1) ) )\n"
+"        .add( age.eq( new Integer(2) ) )\n"
+"    ) )\n"
+"    .add( Property.forName(\"name\").in( new String[] { \"Fritz\", \"Izi\", "
+"\"Pk\" } ) )\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[\n"
-      "Property age = Property.forName(\"age\");\n"
-      "List cats = sess.createCriteria(Cat.class)\n"
-      "    .add( Restrictions.disjunction()\n"
-      "        .add( age.isNull() )\n"
-      "        .add( age.eq( new Integer(0) ) )\n"
-      "        .add( age.eq( new Integer(1) ) )\n"
-      "        .add( age.eq( new Integer(2) ) )\n"
-      "    ) )\n"
-      "    .add( Property.forName(\"name\").in( new String[] { \"Fritz\", \"Izi\", \"Pk\" } ) )\n"
-      "    .list();]]>"
 
-#: index.docbook:68
+#. Tag: title
+#: query_criteria.xml:68
+#, no-c-format
 msgid "Ordering the results"
 msgstr "Ordenando los resultados"
 
-#: index.docbook:70
-msgid "You may order the results using <literal>org.hibernate.criterion.Order</literal>."
-msgstr "Puedes ordenar los resultados usando <literal>org.hibernate.criterion.Order</literal>."
+#. Tag: para
+#: query_criteria.xml:70
+#, no-c-format
+msgid ""
+"You may order the results using <literal>org.hibernate.criterion.Order</"
+"literal>."
+msgstr ""
+"Puedes ordenar los resultados usando <literal>org.hibernate.criterion.Order</"
+"literal>."
 
-#: index.docbook:74
+#. Tag: programlisting
+#: query_criteria.xml:74
+#, no-c-format
 msgid ""
-      "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-      "    .add( Restrictions.like(\"name\", \"F%\")\n"
-      "    .addOrder( Order.asc(\"name\") )\n"
-      "    .addOrder( Order.desc(\"age\") )\n"
-      "    .setMaxResults(50)\n"
-      "    .list();]]>"
+"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+"    .add( Restrictions.like(\"name\", \"F%\")\n"
+"    .addOrder( Order.asc(\"name\") )\n"
+"    .addOrder( Order.desc(\"age\") )\n"
+"    .setMaxResults(50)\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-      "    .add( Restrictions.like(\"name\", \"F%\")\n"
-      "    .addOrder( Order.asc(\"name\") )\n"
-      "    .addOrder( Order.desc(\"age\") )\n"
-      "    .setMaxResults(50)\n"
-      "    .list();]]>"
 
-#: index.docbook:76
+#. Tag: programlisting
+#: query_criteria.xml:76
+#, no-c-format
 msgid ""
-      "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-      "    .add( Property.forName(\"name\").like(\"F%\") )\n"
-      "    .addOrder( Property.forName(\"name\").asc() )\n"
-      "    .addOrder( Property.forName(\"age\").desc() )\n"
-      "    .setMaxResults(50)\n"
-      "    .list();]]>"
+"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+"    .add( Property.forName(\"name\").like(\"F%\") )\n"
+"    .addOrder( Property.forName(\"name\").asc() )\n"
+"    .addOrder( Property.forName(\"age\").desc() )\n"
+"    .setMaxResults(50)\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-      "    .add( Property.forName(\"name\").like(\"F%\") )\n"
-      "    .addOrder( Property.forName(\"name\").asc() )\n"
-      "    .addOrder( Property.forName(\"age\").desc() )\n"
-      "    .setMaxResults(50)\n"
-      "    .list();]]>"
 
-#: index.docbook:81
+#. Tag: title
+#: query_criteria.xml:81
+#, no-c-format
 msgid "Associations"
 msgstr "Asociaciones"
 
-#: index.docbook:83
-msgid "You may easily specify constraints upon related entities by navigating associations using <literal>createCriteria()</literal>."
-msgstr "Puedes especificar f&#x00e1;cilmente restricciones sobre las entidades relacionadas al navegar asociaciones usando <literal>createCriteria()</literal>."
+#. Tag: para
+#: query_criteria.xml:83
+#, no-c-format
+msgid ""
+"You may easily specify constraints upon related entities by navigating "
+"associations using <literal>createCriteria()</literal>."
+msgstr ""
+"Puedes especificar fácilmente restricciones sobre las entidades relacionadas "
+"al navegar asociaciones usando <literal>createCriteria()</literal>."
 
-#: index.docbook:88
+#. Tag: programlisting
+#: query_criteria.xml:88
+#, no-c-format
 msgid ""
-      "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-      "    .add( Restrictions.like(\"name\", \"F%\") )\n"
-      "    .createCriteria(\"kittens\")\n"
-      "        .add( Restrictions.like(\"name\", \"F%\") )\n"
-      "    .list();]]>"
+"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+"    .add( Restrictions.like(\"name\", \"F%\") )\n"
+"    .createCriteria(\"kittens\")\n"
+"        .add( Restrictions.like(\"name\", \"F%\") )\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-      "    .add( Restrictions.like(\"name\", \"F%\")\n"
-      "    .createCriteria(\"kittens\")\n"
-      "        .add( Restrictions.like(\"name\", \"F%\")\n"
-      "    .list();]]>"
 
-#: index.docbook:90
-msgid "note that the second <literal>createCriteria()</literal> returns a new instance of <literal>Criteria</literal>, which refers to the elements of the <literal>kittens</literal> collection."
-msgstr "nota que el segundo <literal>createCriteria()</literal> devuelve una nueva instancia de <literal>Criteria</literal>, que hace referencia a los elementos de la colecci&#x00f3;n <literal>kittens</literal>."
+#. Tag: para
+#: query_criteria.xml:90
+#, no-c-format
+msgid ""
+"note that the second <literal>createCriteria()</literal> returns a new "
+"instance of <literal>Criteria</literal>, which refers to the elements of the "
+"<literal>kittens</literal> collection."
+msgstr ""
+"nota que el segundo <literal>createCriteria()</literal> devuelve una nueva "
+"instancia de <literal>Criteria</literal>, que hace referencia a los "
+"elementos de la colección <literal>kittens</literal>."
 
-#: index.docbook:96
+#. Tag: para
+#: query_criteria.xml:96
+#, no-c-format
 msgid "The following, alternate form is useful in certain circumstances."
 msgstr "La siguiente forma alternativa es útil en ciertas circunstancias."
 
-#: index.docbook:100
+#. Tag: programlisting
+#: query_criteria.xml:100
+#, no-c-format
 msgid ""
-      "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-      "    .createAlias(\"kittens\", \"kt\")\n"
-      "    .createAlias(\"mate\", \"mt\")\n"
-      "    .add( Restrictions.eqProperty(\"kt.name\", \"mt.name\") )\n"
-      "    .list();]]>"
+"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+"    .createAlias(\"kittens\", \"kt\")\n"
+"    .createAlias(\"mate\", \"mt\")\n"
+"    .add( Restrictions.eqProperty(\"kt.name\", \"mt.name\") )\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-      "    .createAlias(\"kittens\", \"kt\")\n"
-      "    .createAlias(\"mate\", \"mt\")\n"
-      "    .add( Restrictions.eqProperty(\"kt.name\", \"mt.name\") )\n"
-      "    .list();]]>"
 
-#: index.docbook:102
-msgid "(<literal>createAlias()</literal> does not create a new instance of <literal>Criteria</literal>.)"
-msgstr "(<literal>createAlias()</literal> no crea una nueva instancia de <literal>Criteria</literal>.)"
+#. Tag: para
+#: query_criteria.xml:102
+#, no-c-format
+msgid ""
+"(<literal>createAlias()</literal> does not create a new instance of "
+"<literal>Criteria</literal>.)"
+msgstr ""
+"(<literal>createAlias()</literal> no crea una nueva instancia de "
+"<literal>Criteria</literal>.)"
 
-#: index.docbook:107
-msgid "Note that the kittens collections held by the <literal>Cat</literal> instances returned by the previous two queries are <emphasis>not</emphasis> pre-filtered by the criteria! If you wish to retrieve just the kittens that match the criteria, you must use a <literal>ResultTransformer</literal>."
-msgstr "&#x00a1;Observa que las colecciones de gatitos tenidas por las instancias de <literal>Cat</literal> devueltas por las dos consultas previas <emphasis>no</emphasis> est&#x00e1;n prefiltradas por los criterios! Si deseas recuperar s&#x00f3;lo los gatitos que emparejen los criterios, debes usar <literal>returnMaps()</literal>."
+#. Tag: para
+#: query_criteria.xml:107
+#, no-c-format
+msgid ""
+"Note that the kittens collections held by the <literal>Cat</literal> "
+"instances returned by the previous two queries are <emphasis>not</emphasis> "
+"pre-filtered by the criteria! If you wish to retrieve just the kittens that "
+"match the criteria, you must use a <literal>ResultTransformer</literal>."
+msgstr ""
+"¡Observa que las colecciones de gatitos tenidas por las instancias de "
+"<literal>Cat</literal> devueltas por las dos consultas previas <emphasis>no</"
+"emphasis> están prefiltradas por los criterios! Si deseas recuperar sólo los "
+"gatitos que emparejen los criterios, debes usar <literal>returnMaps()</"
+"literal>."
 
-#: index.docbook:114
+#. Tag: programlisting
+#: query_criteria.xml:114
+#, no-c-format
 msgid ""
-      "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-      "    .createCriteria(\"kittens\", \"kt\")\n"
-      "        .add( Restrictions.eq(\"name\", \"F%\") )\n"
-      "    .setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP)\n"
-      "    .list();\n"
-      "Iterator iter = cats.iterator();\n"
-      "while ( iter.hasNext() ) {\n"
-      "    Map map = (Map) iter.next();\n"
-      "    Cat cat = (Cat) map.get(Criteria.ROOT_ALIAS);\n"
-      "    Cat kitten = (Cat) map.get(\"kt\");\n"
-      "}]]>"
+"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+"    .createCriteria(\"kittens\", \"kt\")\n"
+"        .add( Restrictions.eq(\"name\", \"F%\") )\n"
+"    .setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP)\n"
+"    .list();\n"
+"Iterator iter = cats.iterator();\n"
+"while ( iter.hasNext() ) {\n"
+"    Map map = (Map) iter.next();\n"
+"    Cat cat = (Cat) map.get(Criteria.ROOT_ALIAS);\n"
+"    Cat kitten = (Cat) map.get(\"kt\");\n"
+"}]]>"
 msgstr ""
-      "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-      "    .createCriteria(\"kittens\", \"kt\")\n"
-      "        .add( Restrictions.eq(\"name\", \"F%\") )\n"
-      "    .returnMaps()\n"
-      "    .list();\n"
-      "Iterator iter = cats.iterator();\n"
-      "while ( iter.hasNext() ) {\n"
-      "    Map map = (Map) iter.next();\n"
-      "    Cat cat = (Cat) map.get(Criteria.ROOT_ALIAS);\n"
-      "    Cat kitten = (Cat) map.get(\"kt\");\n"
-      "}]]>"
 
-#: index.docbook:119
+#. Tag: title
+#: query_criteria.xml:119
+#, no-c-format
 msgid "Dynamic association fetching"
-msgstr "Recuperaci&#x00f3;n din&#x00e1;mica de asociaciones"
+msgstr "Recuperación dinámica de asociaciones"
 
-#: index.docbook:121
-msgid "You may specify association fetching semantics at runtime using <literal>setFetchMode()</literal>."
-msgstr "Puedes especificar la sem&#x00e1;ntica de recuperaci&#x00f3;n de asociaciones en tiempo de ejecuci&#x00f3;n usando <literal>setFetchMode()</literal>."
+#. Tag: para
+#: query_criteria.xml:121
+#, no-c-format
+msgid ""
+"You may specify association fetching semantics at runtime using "
+"<literal>setFetchMode()</literal>."
+msgstr ""
+"Puedes especificar la semántica de recuperación de asociaciones en tiempo de "
+"ejecución usando <literal>setFetchMode()</literal>."
 
-#: index.docbook:126
+#. Tag: programlisting
+#: query_criteria.xml:126
+#, no-c-format
 msgid ""
-      "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-      "    .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
-      "    .setFetchMode(\"mate\", FetchMode.EAGER)\n"
-      "    .setFetchMode(\"kittens\", FetchMode.EAGER)\n"
-      "    .list();]]>"
+"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+"    .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+"    .setFetchMode(\"mate\", FetchMode.EAGER)\n"
+"    .setFetchMode(\"kittens\", FetchMode.EAGER)\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
-      "    .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
-      "    .setFetchMode(\"mate\", FetchMode.EAGER)\n"
-      "    .setFetchMode(\"kittens\", FetchMode.EAGER)\n"
-      "    .list();]]>"
 
-#: index.docbook:128
-msgid "This query will fetch both <literal>mate</literal> and <literal>kittens</literal> by outer join. See <xref linkend=\"performance-fetching\"/> for more information."
-msgstr "Esta consulta recuperar&#x00e1; tanto <literal>mate</literal> como <literal>kittens</literal> por uni&#x00f3;n exterior (outer join). Ver <xref linkend=\"performance-fetching\"/> para m&#x00e1;s informaci&#x00f3;n."
+#. Tag: para
+#: query_criteria.xml:128
+#, no-c-format
+msgid ""
+"This query will fetch both <literal>mate</literal> and <literal>kittens</"
+"literal> by outer join. See <xref linkend=\"performance-fetching\"/> for "
+"more information."
+msgstr ""
+"Esta consulta recuperará tanto <literal>mate</literal> como "
+"<literal>kittens</literal> por unión exterior (outer join). Ver <xref "
+"linkend=\"performance-fetching\"/> para más información."
 
-#: index.docbook:136
+#. Tag: title
+#: query_criteria.xml:136
+#, no-c-format
 msgid "Example queries"
 msgstr "Consultas por ejemplos"
 
-#: index.docbook:138
-msgid "The class <literal>org.hibernate.criterion.Example</literal> allows you to construct a query criterion from a given instance."
-msgstr "La clase <literal>org.hibernate.criterion.Example</literal> te permite construir un criterio de consulta a partir de una instancia dada."
+#. Tag: para
+#: query_criteria.xml:138
+#, no-c-format
+msgid ""
+"The class <literal>org.hibernate.criterion.Example</literal> allows you to "
+"construct a query criterion from a given instance."
+msgstr ""
+"La clase <literal>org.hibernate.criterion.Example</literal> te permite "
+"construir un criterio de consulta a partir de una instancia dada."
 
-#: index.docbook:143
+#. Tag: programlisting
+#: query_criteria.xml:143
+#, no-c-format
 msgid ""
-      "<![CDATA[Cat cat = new Cat();\n"
-      "cat.setSex('F');\n"
-      "cat.setColor(Color.BLACK);\n"
-      "List results = session.createCriteria(Cat.class)\n"
-      "    .add( Example.create(cat) )\n"
-      "    .list();]]>"
+"<![CDATA[Cat cat = new Cat();\n"
+"cat.setSex('F');\n"
+"cat.setColor(Color.BLACK);\n"
+"List results = session.createCriteria(Cat.class)\n"
+"    .add( Example.create(cat) )\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[Cat cat = new Cat();\n"
-      "cat.setSex('F');\n"
-      "cat.setColor(Color.BLACK);\n"
-      "List results = session.createCriteria(Cat.class)\n"
-      "    .add( Example.create(cat) )\n"
-      "    .list();]]>"
 
-#: index.docbook:145
-msgid "Version properties, identifiers and associations are ignored. By default, null valued properties are excluded."
-msgstr "Las propiedades de versi&#x00f3;n, los identificadores y las asociaciones son ignorados. Por defecto, las propiedades valuadas a nulo son exclu&#x00ed;das."
+#. Tag: para
+#: query_criteria.xml:145
+#, no-c-format
+msgid ""
+"Version properties, identifiers and associations are ignored. By default, "
+"null valued properties are excluded."
+msgstr ""
+"Las propiedades de versión, los identificadores y las asociaciones son "
+"ignorados. Por defecto, las propiedades valuadas a nulo son excluídas."
 
-#: index.docbook:150
+#. Tag: para
+#: query_criteria.xml:150
+#, no-c-format
 msgid "You can adjust how the <literal>Example</literal> is applied."
-msgstr "Puedes ajustar c&#x00f3;mo se aplica el <literal>Example</literal>."
+msgstr "Puedes ajustar cómo se aplica el <literal>Example</literal>."
 
-#: index.docbook:154
+#. Tag: programlisting
+#: query_criteria.xml:154
+#, no-c-format
 msgid ""
-      "<![CDATA[Example example = Example.create(cat)\n"
-      "    .excludeZeroes()           //exclude zero valued properties\n"
-      "    .excludeProperty(\"color\")  //exclude the property named \"color\"\n"
-      "    .ignoreCase()              //perform case insensitive string comparisons\n"
-      "    .enableLike();             //use like for string comparisons\n"
-      "List results = session.createCriteria(Cat.class)\n"
-      "    .add(example)\n"
-      "    .list();]]>"
+"<![CDATA[Example example = Example.create(cat)\n"
+"    .excludeZeroes()           //exclude zero valued properties\n"
+"    .excludeProperty(\"color\")  //exclude the property named \"color\"\n"
+"    .ignoreCase()              //perform case insensitive string "
+"comparisons\n"
+"    .enableLike();             //use like for string comparisons\n"
+"List results = session.createCriteria(Cat.class)\n"
+"    .add(example)\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[Example example = Example.create(cat)\n"
-      "    .excludeZeroes()           //exclude zero valued properties\n"
-      "    .excludeProperty(\"color\")  //exclude the property named \"color\"\n"
-      "    .ignoreCase()              //perform case insensitive string comparisons\n"
-      "    .enableLike();             //use like for string comparisons\n"
-      "List results = session.createCriteria(Cat.class)\n"
-      "    .add(example)\n"
-      "    .list();]]>"
 
-#: index.docbook:156
+#. Tag: para
+#: query_criteria.xml:156
+#, no-c-format
 msgid "You can even use examples to place criteria upon associated objects."
-msgstr "Puedes incluso usar ejemplos para colocar criterios sobre objetos asociados."
+msgstr ""
+"Puedes incluso usar ejemplos para colocar criterios sobre objetos asociados."
 
-#: index.docbook:160
+#. Tag: programlisting
+#: query_criteria.xml:160
+#, no-c-format
 msgid ""
-      "<![CDATA[List results = session.createCriteria(Cat.class)\n"
-      "    .add( Example.create(cat) )\n"
-      "    .createCriteria(\"mate\")\n"
-      "        .add( Example.create( cat.getMate() ) )\n"
-      "    .list();]]>"
+"<![CDATA[List results = session.createCriteria(Cat.class)\n"
+"    .add( Example.create(cat) )\n"
+"    .createCriteria(\"mate\")\n"
+"        .add( Example.create( cat.getMate() ) )\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[List results = session.createCriteria(Cat.class)\n"
-      "    .add( Example.create(cat) )\n"
-      "    .createCriteria(\"mate\")\n"
-      "        .add( Example.create( cat.getMate() ) )\n"
-      "    .list();]]>"
 
-#: index.docbook:165
+#. Tag: title
+#: query_criteria.xml:165
+#, no-c-format
 msgid "Projections, aggregation and grouping"
-msgstr "Proyecciones, agregaci&#x00f3;n y agrupamiento"
+msgstr "Proyecciones, agregación y agrupamiento"
 
-#: index.docbook:166
-msgid "The class <literal>org.hibernate.criterion.Projections</literal> is a factory for <literal>Projection</literal> instances. We apply a projection to a query by calling <literal>setProjection()</literal>."
-msgstr "La clase <literal>org.hibernate.criterion.Projections</literal> es una f&#x00e1;brica de instancias de <literal>Projection</literal>. Aplicamos una proyecci&#x00f3;n a una consulta llamando a <literal>setProjection()</literal>."
+#. Tag: para
+#: query_criteria.xml:166
+#, no-c-format
+msgid ""
+"The class <literal>org.hibernate.criterion.Projections</literal> is a "
+"factory for <literal>Projection</literal> instances. We apply a projection "
+"to a query by calling <literal>setProjection()</literal>."
+msgstr ""
+"La clase <literal>org.hibernate.criterion.Projections</literal> es una "
+"fábrica de instancias de <literal>Projection</literal>. Aplicamos una "
+"proyección a una consulta llamando a <literal>setProjection()</literal>."
 
-#: index.docbook:172
+#. Tag: programlisting
+#: query_criteria.xml:172
+#, no-c-format
 msgid ""
-      "<![CDATA[List results = session.createCriteria(Cat.class)\n"
-      "    .setProjection( Projections.rowCount() )\n"
-      "    .add( Restrictions.eq(\"color\", Color.BLACK) )\n"
-      "    .list();]]>"
+"<![CDATA[List results = session.createCriteria(Cat.class)\n"
+"    .setProjection( Projections.rowCount() )\n"
+"    .add( Restrictions.eq(\"color\", Color.BLACK) )\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[List results = session.createCriteria(Cat.class)\n"
-      "    .setProjection( Projections.rowCount() )\n"
-      "    .add( Restrictions.eq(\"color\", Color.BLACK) )\n"
-      "    .list();]]>"
 
-#: index.docbook:174
+#. Tag: programlisting
+#: query_criteria.xml:174
+#, no-c-format
 msgid ""
-      "<![CDATA[List results = session.createCriteria(Cat.class)\n"
-      "    .setProjection( Projections.projectionList()\n"
-      "        .add( Projections.rowCount() )\n"
-      "        .add( Projections.avg(\"weight\") )\n"
-      "        .add( Projections.max(\"weight\") )\n"
-      "        .add( Projections.groupProperty(\"color\") )\n"
-      "    )\n"
-      "    .list();]]>"
+"<![CDATA[List results = session.createCriteria(Cat.class)\n"
+"    .setProjection( Projections.projectionList()\n"
+"        .add( Projections.rowCount() )\n"
+"        .add( Projections.avg(\"weight\") )\n"
+"        .add( Projections.max(\"weight\") )\n"
+"        .add( Projections.groupProperty(\"color\") )\n"
+"    )\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[List results = session.createCriteria(Cat.class)\n"
-      "    .setProjection( Projections.projectionList()\n"
-      "        .add( Projections.rowCount() )\n"
-      "        .add( Projections.avg(\"weight\") )\n"
-      "        .add( Projections.max(\"weight\") )\n"
-      "        .add( Projections.groupProperty(\"color\") )\n"
-      "    )\n"
-      "    .list();]]>"
 
-#: index.docbook:176
-msgid "There is no explicit \"group by\" necessary in a criteria query. Certain projection types are defined to be <emphasis>grouping projections</emphasis>, which also appear in the SQL <literal>group by</literal> clause."
-msgstr "No es necesario ningún \"group by\" expl&#x00ed;cito en una consulta por criterios. Ciertos tipos de proyecciones son definidos para ser <emphasis>proyecciones agrupadas</emphasis>, que adem&#x00e1;s aparecen en la cl&#x00e1;usula SQL <literal>group by</literal>."
+#. Tag: para
+#: query_criteria.xml:176
+#, no-c-format
+msgid ""
+"There is no explicit \"group by\" necessary in a criteria query. Certain "
+"projection types are defined to be <emphasis>grouping projections</"
+"emphasis>, which also appear in the SQL <literal>group by</literal> clause."
+msgstr ""
+"No es necesario ningún \"group by\" explícito en una consulta por criterios. "
+"Ciertos tipos de proyecciones son definidos para ser <emphasis>proyecciones "
+"agrupadas</emphasis>, que además aparecen en la cláusula SQL <literal>group "
+"by</literal>."
 
-#: index.docbook:182
-msgid "An alias may optionally be assigned to a projection, so that the projected value may be referred to in restrictions or orderings. Here are two different ways to do this:"
-msgstr "Puede opcionalmente asignarse un alias a una proyecci&#x00f3;n, de modo que el valor proyectado pueda ser referido en restricciones u ordenamientos. Aqu&#x00ed; hay dos formas diferentes de hacer esto:"
+#. Tag: para
+#: query_criteria.xml:182
+#, no-c-format
+msgid ""
+"An alias may optionally be assigned to a projection, so that the projected "
+"value may be referred to in restrictions or orderings. Here are two "
+"different ways to do this:"
+msgstr ""
+"Puede opcionalmente asignarse un alias a una proyección, de modo que el "
+"valor proyectado pueda ser referido en restricciones u ordenamientos. Aquí "
+"hay dos formas diferentes de hacer esto:"
 
-#: index.docbook:188
+#. Tag: programlisting
+#: query_criteria.xml:188
+#, no-c-format
 msgid ""
-      "<![CDATA[List results = session.createCriteria(Cat.class)\n"
-      "    .setProjection( Projections.alias( Projections.groupProperty(\"color\"), \"colr\" ) )\n"
-      "    .addOrder( Order.asc(\"colr\") )\n"
-      "    .list();]]>"
+"<![CDATA[List results = session.createCriteria(Cat.class)\n"
+"    .setProjection( Projections.alias( Projections.groupProperty(\"color\"), "
+"\"colr\" ) )\n"
+"    .addOrder( Order.asc(\"colr\") )\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[List results = session.createCriteria(Cat.class)\n"
-      "    .setProjection( Projections.alias( Projections.groupProperty(\"color\"), \"colr\" ) )\n"
-      "    .addOrder( Order.asc(\"colr\") )\n"
-      "    .list();]]>"
 
-#: index.docbook:190
+#. Tag: programlisting
+#: query_criteria.xml:190
+#, no-c-format
 msgid ""
-      "<![CDATA[List results = session.createCriteria(Cat.class)\n"
-      "    .setProjection( Projections.groupProperty(\"color\").as(\"colr\") )\n"
-      "    .addOrder( Order.asc(\"colr\") )\n"
-      "    .list();]]>"
+"<![CDATA[List results = session.createCriteria(Cat.class)\n"
+"    .setProjection( Projections.groupProperty(\"color\").as(\"colr\") )\n"
+"    .addOrder( Order.asc(\"colr\") )\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[List results = session.createCriteria(Cat.class)\n"
-      "    .setProjection( Projections.groupProperty(\"color\").as(\"colr\") )\n"
-      "    .addOrder( Order.asc(\"colr\") )\n"
-      "    .list();]]>"
 
-#: index.docbook:192
-msgid "The <literal>alias()</literal> and <literal>as()</literal> methods simply wrap a projection instance in another, aliased, instance of <literal>Projection</literal>. As a shortcut, you can assign an alias when you add the projection to a projection list:"
-msgstr "Los m&#x00e9;todos <literal>alias()</literal> y <literal>as()</literal> simplemente envuelven una instancia de proyecci&#x00f3;n en otra instancia de <literal>Projection</literal> con alias. Como un atajo, puedes asignar un alias cuando agregas la proyecci&#x00f3;n a una lista de proyecciones:"
+#. Tag: para
+#: query_criteria.xml:192
+#, no-c-format
+msgid ""
+"The <literal>alias()</literal> and <literal>as()</literal> methods simply "
+"wrap a projection instance in another, aliased, instance of "
+"<literal>Projection</literal>. As a shortcut, you can assign an alias when "
+"you add the projection to a projection list:"
+msgstr ""
+"Los métodos <literal>alias()</literal> y <literal>as()</literal> simplemente "
+"envuelven una instancia de proyección en otra instancia de "
+"<literal>Projection</literal> con alias. Como un atajo, puedes asignar un "
+"alias cuando agregas la proyección a una lista de proyecciones:"
 
-#: index.docbook:199
+#. Tag: programlisting
+#: query_criteria.xml:199
+#, no-c-format
 msgid ""
-      "<![CDATA[List results = session.createCriteria(Cat.class)\n"
-      "    .setProjection( Projections.projectionList()\n"
-      "        .add( Projections.rowCount(), \"catCountByColor\" )\n"
-      "        .add( Projections.avg(\"weight\"), \"avgWeight\" )\n"
-      "        .add( Projections.max(\"weight\"), \"maxWeight\" )\n"
-      "        .add( Projections.groupProperty(\"color\"), \"color\" )\n"
-      "    )\n"
-      "    .addOrder( Order.desc(\"catCountByColor\") )\n"
-      "    .addOrder( Order.desc(\"avgWeight\") )\n"
-      "    .list();]]>"
+"<![CDATA[List results = session.createCriteria(Cat.class)\n"
+"    .setProjection( Projections.projectionList()\n"
+"        .add( Projections.rowCount(), \"catCountByColor\" )\n"
+"        .add( Projections.avg(\"weight\"), \"avgWeight\" )\n"
+"        .add( Projections.max(\"weight\"), \"maxWeight\" )\n"
+"        .add( Projections.groupProperty(\"color\"), \"color\" )\n"
+"    )\n"
+"    .addOrder( Order.desc(\"catCountByColor\") )\n"
+"    .addOrder( Order.desc(\"avgWeight\") )\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[List results = session.createCriteria(Cat.class)\n"
-      "    .setProjection( Projections.projectionList()\n"
-      "        .add( Projections.rowCount(), \"catCountByColor\" )\n"
-      "        .add( Projections.avg(\"weight\"), \"avgWeight\" )\n"
-      "        .add( Projections.max(\"weight\"), \"maxWeight\" )\n"
-      "        .add( Projections.groupProperty(\"color\"), \"color\" )\n"
-      "    )\n"
-      "    .addOrder( Order.desc(\"catCountByColor\") )\n"
-      "    .addOrder( Order.desc(\"avgWeight\") )\n"
-      "    .list();]]>"
 
-#: index.docbook:201
+#. Tag: programlisting
+#: query_criteria.xml:201
+#, no-c-format
 msgid ""
-      "<![CDATA[List results = session.createCriteria(Domestic.class, \"cat\")\n"
-      "    .createAlias(\"kittens\", \"kit\")\n"
-      "    .setProjection( Projections.projectionList()\n"
-      "        .add( Projections.property(\"cat.name\"), \"catName\" )\n"
-      "        .add( Projections.property(\"kit.name\"), \"kitName\" )\n"
-      "    )\n"
-      "    .addOrder( Order.asc(\"catName\") )\n"
-      "    .addOrder( Order.asc(\"kitName\") )\n"
-      "    .list();]]>"
+"<![CDATA[List results = session.createCriteria(Domestic.class, \"cat\")\n"
+"    .createAlias(\"kittens\", \"kit\")\n"
+"    .setProjection( Projections.projectionList()\n"
+"        .add( Projections.property(\"cat.name\"), \"catName\" )\n"
+"        .add( Projections.property(\"kit.name\"), \"kitName\" )\n"
+"    )\n"
+"    .addOrder( Order.asc(\"catName\") )\n"
+"    .addOrder( Order.asc(\"kitName\") )\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[List results = session.createCriteria(Domestic.class, \"cat\")\n"
-      "    .createAlias(\"kittens\", \"kit\")\n"
-      "    .setProjection( Projections.projectionList()\n"
-      "        .add( Projections.property(\"cat.name\"), \"catName\" )\n"
-      "        .add( Projections.property(\"kit.name\"), \"kitName\" )\n"
-      "    )\n"
-      "    .addOrder( Order.asc(\"catName\") )\n"
-      "    .addOrder( Order.asc(\"kitName\") )\n"
-      "    .list();]]>"
 
-#: index.docbook:203
-msgid "You can also use <literal>Property.forName()</literal> to express projections:"
-msgstr "Puedes tambi&#x00e9;n usar <literal>Property.forName()</literal> para expresar proyecciones:"
+#. Tag: para
+#: query_criteria.xml:203
+#, no-c-format
+msgid ""
+"You can also use <literal>Property.forName()</literal> to express "
+"projections:"
+msgstr ""
+"Puedes también usar <literal>Property.forName()</literal> para expresar "
+"proyecciones:"
 
-#: index.docbook:207
+#. Tag: programlisting
+#: query_criteria.xml:207
+#, no-c-format
 msgid ""
-      "<![CDATA[List results = session.createCriteria(Cat.class)\n"
-      "    .setProjection( Property.forName(\"name\") )\n"
-      "    .add( Property.forName(\"color\").eq(Color.BLACK) )\n"
-      "    .list();]]>"
+"<![CDATA[List results = session.createCriteria(Cat.class)\n"
+"    .setProjection( Property.forName(\"name\") )\n"
+"    .add( Property.forName(\"color\").eq(Color.BLACK) )\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[List results = session.createCriteria(Cat.class)\n"
-      "    .setProjection( Property.forName(\"name\") )\n"
-      "    .add( Property.forName(\"color\").eq(Color.BLACK) )\n"
-      "    .list();]]>"
 
-#: index.docbook:209
+#. Tag: programlisting
+#: query_criteria.xml:209
+#, no-c-format
 msgid ""
-      "<![CDATA[List results = session.createCriteria(Cat.class)\n"
-      "    .setProjection( Projections.projectionList()\n"
-      "        .add( Projections.rowCount().as(\"catCountByColor\") )\n"
-      "        .add( Property.forName(\"weight\").avg().as(\"avgWeight\") )\n"
-      "        .add( Property.forName(\"weight\").max().as(\"maxWeight\") )\n"
-      "        .add( Property.forName(\"color\").group().as(\"color\" )\n"
-      "    )\n"
-      "    .addOrder( Order.desc(\"catCountByColor\") )\n"
-      "    .addOrder( Order.desc(\"avgWeight\") )\n"
-      "    .list();]]>"
+"<![CDATA[List results = session.createCriteria(Cat.class)\n"
+"    .setProjection( Projections.projectionList()\n"
+"        .add( Projections.rowCount().as(\"catCountByColor\") )\n"
+"        .add( Property.forName(\"weight\").avg().as(\"avgWeight\") )\n"
+"        .add( Property.forName(\"weight\").max().as(\"maxWeight\") )\n"
+"        .add( Property.forName(\"color\").group().as(\"color\" )\n"
+"    )\n"
+"    .addOrder( Order.desc(\"catCountByColor\") )\n"
+"    .addOrder( Order.desc(\"avgWeight\") )\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[List results = session.createCriteria(Cat.class)\n"
-      "    .setProjection( Projections.projectionList()\n"
-      "        .add( Projections.rowCount().as(\"catCountByColor\") )\n"
-      "        .add( Property.forName(\"weight\").avg().as(\"avgWeight\") )\n"
-      "        .add( Property.forName(\"weight\").max().as(\"maxWeight\") )\n"
-      "        .add( Property.forName(\"color\").group().as(\"color\" )\n"
-      "    )\n"
-      "    .addOrder( Order.desc(\"catCountByColor\") )\n"
-      "    .addOrder( Order.desc(\"avgWeight\") )\n"
-      "    .list();]]>"
 
-#: index.docbook:214
+#. Tag: title
+#: query_criteria.xml:214
+#, no-c-format
 msgid "Detached queries and subqueries"
 msgstr "Consultas y subconsultas separadas"
 
-#: index.docbook:215
-msgid "The <literal>DetachedCriteria</literal> class lets you create a query outside the scope of a session, and then later execute it using some arbitrary <literal>Session</literal>."
-msgstr "La clase <literal>DetachedCriteria</literal> te deja crear una consulta fuera del &#x00e1;mbito de una sesi&#x00f3;n, y entonces ejecutarla luego usando alguna <literal>Session</literal> arbitraria."
+#. Tag: para
+#: query_criteria.xml:215
+#, no-c-format
+msgid ""
+"The <literal>DetachedCriteria</literal> class lets you create a query "
+"outside the scope of a session, and then later execute it using some "
+"arbitrary <literal>Session</literal>."
+msgstr ""
+"La clase <literal>DetachedCriteria</literal> te deja crear una consulta "
+"fuera del ámbito de una sesión, y entonces ejecutarla luego usando alguna "
+"<literal>Session</literal> arbitraria."
 
-#: index.docbook:220
+#. Tag: programlisting
+#: query_criteria.xml:220
+#, no-c-format
 msgid ""
-      "<![CDATA[DetachedCriteria query = DetachedCriteria.forClass(Cat.class)\n"
-      "    .add( Property.forName(\"sex\").eq('F') );\n"
-      "    \n"
-      "Session session = ....;\n"
-      "Transaction txn = session.beginTransaction();\n"
-      "List results = query.getExecutableCriteria(session).setMaxResults(100).list();\n"
-      "txn.commit();\n"
-      "session.close();]]>"
+"<![CDATA[DetachedCriteria query = DetachedCriteria.forClass(Cat.class)\n"
+"    .add( Property.forName(\"sex\").eq('F') );\n"
+"    \n"
+"Session session = ....;\n"
+"Transaction txn = session.beginTransaction();\n"
+"List results = query.getExecutableCriteria(session).setMaxResults(100).list"
+"();\n"
+"txn.commit();\n"
+"session.close();]]>"
 msgstr ""
-      "<![CDATA[DetachedCriteria query = DetachedCriteria.forClass(Cat.class)\n"
-      "    .add( Property.forName(\"sex\").eq('F') );\n"
-      "    \n"
-      "Session session = ....;\n"
-      "Transaction txn = session.beginTransaction();\n"
-      "List results = query.getExecutableCriteria(session).setMaxResults(100).list();\n"
-      "txn.commit();\n"
-      "session.close();]]>"
 
-#: index.docbook:222
-msgid "A <literal>DetachedCriteria</literal> may also be used to express a subquery. Criterion instances involving subqueries may be obtained via <literal>Subqueries</literal> or <literal>Property</literal>."
-msgstr "Tambi&#x00e9;n una <literal>DetachedCriteria</literal> puede usarse para expresar una subconsulta. Las instancias de Criterion implicando subconsultas pueden obtenerse v&#x00ed;a <literal>Subqueries</literal> o <literal>Property</literal>."
+#. Tag: para
+#: query_criteria.xml:222
+#, no-c-format
+msgid ""
+"A <literal>DetachedCriteria</literal> may also be used to express a "
+"subquery. Criterion instances involving subqueries may be obtained via "
+"<literal>Subqueries</literal> or <literal>Property</literal>."
+msgstr ""
+"También una <literal>DetachedCriteria</literal> puede usarse para expresar "
+"una subconsulta. Las instancias de Criterion implicando subconsultas pueden "
+"obtenerse vía <literal>Subqueries</literal> o <literal>Property</literal>."
 
-#: index.docbook:228
+#. Tag: programlisting
+#: query_criteria.xml:228
+#, no-c-format
 msgid ""
-      "<![CDATA[DetachedCriteria avgWeight = DetachedCriteria.forClass(Cat.class)\n"
-      "    .setProjection( Property.forName(\"weight\").avg() );\n"
-      "session.createCriteria(Cat.class)\n"
-      "    .add( Property.forName(\"weight\").gt(avgWeight) )\n"
-      "    .list();]]>"
+"<![CDATA[DetachedCriteria avgWeight = DetachedCriteria.forClass(Cat.class)\n"
+"    .setProjection( Property.forName(\"weight\").avg() );\n"
+"session.createCriteria(Cat.class)\n"
+"    .add( Property.forName(\"weight\").gt(avgWeight) )\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[DetachedCriteria avgWeight = DetachedCriteria.forClass(Cat.class)\n"
-      "    .setProjection( Property.forName(\"weight\").avg() );\n"
-      "session.createCriteria(Cat.class)\n"
-      "    .add( Property.forName(\"weight\").gt(avgWeight) )\n"
-      "    .list();]]>"
 
-#: index.docbook:230
+#. Tag: programlisting
+#: query_criteria.xml:230
+#, no-c-format
 msgid ""
-      "<![CDATA[DetachedCriteria weights = DetachedCriteria.forClass(Cat.class)\n"
-      "    .setProjection( Property.forName(\"weight\") );\n"
-      "session.createCriteria(Cat.class)\n"
-      "    .add( Subqueries.geAll(\"weight\", weights) )\n"
-      "    .list();]]>"
+"<![CDATA[DetachedCriteria weights = DetachedCriteria.forClass(Cat.class)\n"
+"    .setProjection( Property.forName(\"weight\") );\n"
+"session.createCriteria(Cat.class)\n"
+"    .add( Subqueries.geAll(\"weight\", weights) )\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[DetachedCriteria weights = DetachedCriteria.forClass(Cat.class)\n"
-      "    .setProjection( Property.forName(\"weight\") );\n"
-      "session.createCriteria(Cat.class)\n"
-      "    .add( Subqueries.geAll(\"weight\", weights) )\n"
-      "    .list();]]>"
 
-#: index.docbook:232
+#. Tag: para
+#: query_criteria.xml:232
+#, no-c-format
 msgid "Even correlated subqueries are possible:"
 msgstr "Incluso son posibles las subconsultas correlacionadas:"
 
-#: index.docbook:236
+#. Tag: programlisting
+#: query_criteria.xml:236
+#, no-c-format
 msgid ""
-      "<![CDATA[DetachedCriteria avgWeightForSex = DetachedCriteria.forClass(Cat.class, \"cat2\")\n"
-      "    .setProjection( Property.forName(\"weight\").avg() )\n"
-      "    .add( Property.forName(\"cat2.sex\").eqProperty(\"cat.sex\") );\n"
-      "session.createCriteria(Cat.class, \"cat\")\n"
-      "    .add( Property.forName(\"weight\").gt(avgWeightForSex) )\n"
-      "    .list();]]>"
+"<![CDATA[DetachedCriteria avgWeightForSex = DetachedCriteria.forClass(Cat."
+"class, \"cat2\")\n"
+"    .setProjection( Property.forName(\"weight\").avg() )\n"
+"    .add( Property.forName(\"cat2.sex\").eqProperty(\"cat.sex\") );\n"
+"session.createCriteria(Cat.class, \"cat\")\n"
+"    .add( Property.forName(\"weight\").gt(avgWeightForSex) )\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[DetachedCriteria avgWeightForSex = DetachedCriteria.forClass(Cat.class, \"cat2\")\n"
-      "    .setProjection( Property.forName(\"weight\").avg() )\n"
-      "    .add( Property.forName(\"cat2.sex\").eqProperty(\"cat.sex\") );\n"
-      "session.createCriteria(Cat.class, \"cat\")\n"
-      "    .add( Property.forName(\"weight\").gt(avgWeightForSex) )\n"
-      "    .list();]]>"
 
-#: index.docbook:245
+#. Tag: title
+#: query_criteria.xml:245
+#, no-c-format
 msgid "Queries by natural identifier"
 msgstr "Consultas por identificador natural"
 
-#: index.docbook:247
-msgid "For most queries, including criteria queries, the query cache is not very efficient, because query cache invalidation occurs too frequently. However, there is one special kind of query where we can optimize the cache invalidation algorithm: lookups by a constant natural key. In some applications, this kind of query occurs frequently. The criteria API provides special provision for this use case."
-msgstr "Para la mayor&#x00ed;a de consultas, incluyendo las consultas por criterios, el cach&#x00e9; de consulta no es muy eficiente, debido a que la invalidaci&#x00f3;n del cach&#x00e9; de consulta ocurre demasiado frecuentemente. Sin embargo, hay un tipo especial de consulta donde podemos optimizar el algoritmo de invalidaci&#x00f3;n de cach&#x00e9;: búsquedas por una clave natural constante. En algunas aplicaciones, este tipo de consulta, ocurre frecuentemente. La API de criterios brinda especial provisi&#x00f3;n para este caso de uso."
+#. Tag: para
+#: query_criteria.xml:247
+#, no-c-format
+msgid ""
+"For most queries, including criteria queries, the query cache is not very "
+"efficient, because query cache invalidation occurs too frequently. However, "
+"there is one special kind of query where we can optimize the cache "
+"invalidation algorithm: lookups by a constant natural key. In some "
+"applications, this kind of query occurs frequently. The criteria API "
+"provides special provision for this use case."
+msgstr ""
+"Para la mayoría de consultas, incluyendo las consultas por criterios, el "
+"caché de consulta no es muy eficiente, debido a que la invalidación del "
+"caché de consulta ocurre demasiado frecuentemente. Sin embargo, hay un tipo "
+"especial de consulta donde podemos optimizar el algoritmo de invalidación de "
+"caché: búsquedas por una clave natural constante. En algunas aplicaciones, "
+"este tipo de consulta, ocurre frecuentemente. La API de criterios brinda "
+"especial provisión para este caso de uso."
 
-#: index.docbook:255
-msgid "First, you should map the natural key of your entity using <literal>&lt;natural-id&gt;</literal>, and enable use of the second-level cache."
-msgstr "Primero, debes mapear la clave natural de tu entidad usando <literal>&lt;natural-id&gt;</literal>, y habilitar el uso del cach&#x00e9; de segundo nivel."
+#. Tag: para
+#: query_criteria.xml:255
+#, no-c-format
+msgid ""
+"First, you should map the natural key of your entity using <literal>&lt;"
+"natural-id&gt;</literal>, and enable use of the second-level cache."
+msgstr ""
+"Primero, debes mapear la clave natural de tu entidad usando <literal>&lt;"
+"natural-id&gt;</literal>, y habilitar el uso del caché de segundo nivel."
 
-#: index.docbook:260
+#. Tag: programlisting
+#: query_criteria.xml:260
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"User\">\n"
-      "    <cache usage=\"read-write\"/>\n"
-      "    <id name=\"id\">\n"
-      "        <generator class=\"increment\"/>\n"
-      "    </id>\n"
-      "    <natural-id>\n"
-      "        <property name=\"name\"/>\n"
-      "        <property name=\"org\"/>\n"
-      "    </natural-id>\n"
-      "    <property name=\"password\"/>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"User\">\n"
+"    <cache usage=\"read-write\"/>\n"
+"    <id name=\"id\">\n"
+"        <generator class=\"increment\"/>\n"
+"    </id>\n"
+"    <natural-id>\n"
+"        <property name=\"name\"/>\n"
+"        <property name=\"org\"/>\n"
+"    </natural-id>\n"
+"    <property name=\"password\"/>\n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"User\">\n"
-      "    <cache usage=\"read-write\"/>\n"
-      "    <id name=\"id\">\n"
-      "        <generator class=\"increment\"/>\n"
-      "    </id>\n"
-      "    <natural-id>\n"
-      "        <property name=\"name\"/>\n"
-      "        <property name=\"org\"/>\n"
-      "    </natural-id>\n"
-      "    <property name=\"password\"/>\n"
-      "</class>]]>"
 
-#: index.docbook:262
-msgid "Note that this functionality is not intended for use with entities with <emphasis>mutable</emphasis> natural keys."
-msgstr "Nota que esta funcionalidad no est&#x00e1; pensada para uso con entidades con claves naturales <emphasis>mutable</emphasis>."
+#. Tag: para
+#: query_criteria.xml:262
+#, no-c-format
+msgid ""
+"Note that this functionality is not intended for use with entities with "
+"<emphasis>mutable</emphasis> natural keys."
+msgstr ""
+"Nota que esta funcionalidad no está pensada para uso con entidades con "
+"claves naturales <emphasis>mutable</emphasis>."
 
-#: index.docbook:267
+#. Tag: para
+#: query_criteria.xml:267
+#, no-c-format
 msgid "Next, enable the Hibernate query cache."
-msgstr "Seguido, habilita el cach&#x00e9; de consulta de Hibernate."
+msgstr "Seguido, habilita el caché de consulta de Hibernate."
 
-#: index.docbook:271
-msgid "Now, <literal>Restrictions.naturalId()</literal> allows us to make use of the more efficient cache algorithm."
-msgstr "Ahora, <literal>Restrictions.naturalId()</literal> nos permite hacer uso de el algoritmo de cach&#x00e9; m&#x00e1;s eficiente."
+#. Tag: para
+#: query_criteria.xml:271
+#, no-c-format
+msgid ""
+"Now, <literal>Restrictions.naturalId()</literal> allows us to make use of "
+"the more efficient cache algorithm."
+msgstr ""
+"Ahora, <literal>Restrictions.naturalId()</literal> nos permite hacer uso de "
+"el algoritmo de caché más eficiente."
 
-#: index.docbook:276
+#. Tag: programlisting
+#: query_criteria.xml:276
+#, no-c-format
 msgid ""
-      "<![CDATA[session.createCriteria(User.class)\n"
-      "    .add( Restrictions.naturalId()\n"
-      "        .set(\"name\", \"gavin\")\n"
-      "        .set(\"org\", \"hb\") \n"
-      "    ).setCacheable(true)\n"
-      "    .uniqueResult();]]>"
+"<![CDATA[session.createCriteria(User.class)\n"
+"    .add( Restrictions.naturalId()\n"
+"        .set(\"name\", \"gavin\")\n"
+"        .set(\"org\", \"hb\") \n"
+"    ).setCacheable(true)\n"
+"    .uniqueResult();]]>"
 msgstr ""
-      "<![CDATA[session.createCriteria(User.class)\n"
-      "    .add( Restrictions.naturalId()\n"
-      "        .set(\"name\", \"gavin\")\n"
-      "        .set(\"org\", \"hb\") \n"
-      "    ).setCacheable(true)\n"
-      "    .uniqueResult();]]>"
-
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
-
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
-

Modified: core/trunk/documentation/manual/translations/es-ES/content/query_hql.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/query_hql.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/query_hql.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,1510 +1,2426 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:5
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: query_hql.xml:5
+#, no-c-format
 msgid "HQL: The Hibernate Query Language"
 msgstr "HQL: El Lenguaje de Consulta de Hibernate"
 
-#: index.docbook:7
-msgid "Hibernate is equipped with an extremely powerful query language that (quite intentionally) looks very much like SQL. But don't be fooled by the syntax; HQL is fully object-oriented, understanding notions like inheritence, polymorphism and association."
-msgstr "Hibernate est&#x00e1; equipado con un lenguaje de consulta extremadamente potente que (intencionalmente en absoluto) se parece much&#x00ed;simo a SQL. Pero no te enga&#x00f1;es por la sintaxis; HQL es completamente orientado a objetos, entendiendo nociones como herencia, polimorfismo y asociaci&#x00f3;n."
+#. Tag: para
+#: query_hql.xml:7
+#, no-c-format
+msgid ""
+"Hibernate is equipped with an extremely powerful query language that (quite "
+"intentionally) looks very much like SQL. But don't be fooled by the syntax; "
+"HQL is fully object-oriented, understanding notions like inheritence, "
+"polymorphism and association."
+msgstr ""
+"Hibernate está equipado con un lenguaje de consulta extremadamente potente "
+"que (intencionalmente en absoluto) se parece muchísimo a SQL. Pero no te "
+"engañes por la sintaxis; HQL es completamente orientado a objetos, "
+"entendiendo nociones como herencia, polimorfismo y asociación."
 
-#: index.docbook:14
+#. Tag: title
+#: query_hql.xml:14
+#, no-c-format
 msgid "Case Sensitivity"
-msgstr "Sensibilidad a May&#x00fa;sculas"
+msgstr "Sensibilidad a Mayúsculas"
 
-#: index.docbook:16
-msgid "Queries are case-insensitive, except for names of Java classes and properties. So <literal>SeLeCT</literal> is the same as <literal>sELEct</literal> is the same as <literal>SELECT</literal> but <literal>org.hibernate.eg.FOO</literal> is not <literal>org.hibernate.eg.Foo</literal> and <literal>foo.barSet</literal> is not <literal>foo.BARSET</literal>."
-msgstr "Las consultas son insensibles a may&#x00fa;sculas, excepto para nombres de clases Java y propiedades. De modo que <literal>SeLeCT</literal> es lo mismo que <literal>sELEct</literal> e igual a <literal>SELECT</literal>, pero <literal>org.hibernate.eg.FOO</literal> no lo es a <literal>org.hibernate.eg.Foo</literal> y <literal>foo.barSet</literal> no es igual a <literal>foo.BARSET</literal>."
+#. Tag: para
+#: query_hql.xml:16
+#, no-c-format
+msgid ""
+"Queries are case-insensitive, except for names of Java classes and "
+"properties. So <literal>SeLeCT</literal> is the same as <literal>sELEct</"
+"literal> is the same as <literal>SELECT</literal> but <literal>org.hibernate."
+"eg.FOO</literal> is not <literal>org.hibernate.eg.Foo</literal> and "
+"<literal>foo.barSet</literal> is not <literal>foo.BARSET</literal>."
+msgstr ""
+"Las consultas son insensibles a mayúsculas, excepto para nombres de clases "
+"Java y propiedades. De modo que <literal>SeLeCT</literal> es lo mismo que "
+"<literal>sELEct</literal> e igual a <literal>SELECT</literal>, pero "
+"<literal>org.hibernate.eg.FOO</literal> no lo es a <literal>org.hibernate.eg."
+"Foo</literal> y <literal>foo.barSet</literal> no es igual a <literal>foo."
+"BARSET</literal>."
 
-#: index.docbook:27
-msgid "This manual uses lowercase HQL keywords. Some users find queries with uppercase keywords more readable, but we find this convention ugly when embedded in Java code."
-msgstr "Este manual usa palabras clave HQL en min&#x00fa;sculas. Algunos usuarios encuentran las consultas con palabras clave en may&#x00fa;sculas m&#x00e1;s le&#x00ed;bles, pero encontramos esta convenci&#x00f3;n fea cuando se encaja en c&#x00f3;digo Java."
+#. Tag: para
+#: query_hql.xml:27
+#, no-c-format
+msgid ""
+"This manual uses lowercase HQL keywords. Some users find queries with "
+"uppercase keywords more readable, but we find this convention ugly when "
+"embedded in Java code."
+msgstr ""
+"Este manual usa palabras clave HQL en minúsculas. Algunos usuarios "
+"encuentran las consultas con palabras clave en mayúsculas más leíbles, pero "
+"encontramos esta convención fea cuando se encaja en código Java."
 
-#: index.docbook:35
+#. Tag: title
+#: query_hql.xml:35
+#, no-c-format
 msgid "The from clause"
-msgstr "La cl&#x00e1;usula from"
+msgstr "La cláusula from"
 
-#: index.docbook:37
+#. Tag: para
+#: query_hql.xml:37
+#, no-c-format
 msgid "The simplest possible Hibernate query is of the form:"
-msgstr "La consulta m&#x00e1;s simple posible de Hibernate es de la forma:"
+msgstr "La consulta más simple posible de Hibernate es de la forma:"
 
-#: index.docbook:41
+#. Tag: programlisting
+#: query_hql.xml:41
+#, no-c-format
 msgid "<![CDATA[from eg.Cat]]>"
-msgstr "<![CDATA[from eg.Cat]]>"
+msgstr ""
 
-#: index.docbook:43
-msgid "which simply returns all instances of the class <literal>eg.Cat</literal>. We don't usually need to qualify the class name, since <literal>auto-import</literal> is the default. So we almost always just write:"
-msgstr "que simplemente devuelve todas las instancias de la clase <literal>eg.Cat</literal>. Usualmente no necesitamos cualificar el nombre de la clase, ya que <literal>auto-import</literal> est&#x00e1; por defecto. De modo que casi siempre escribimos solamente:"
+#. Tag: para
+#: query_hql.xml:43
+#, no-c-format
+msgid ""
+"which simply returns all instances of the class <literal>eg.Cat</literal>. "
+"We don't usually need to qualify the class name, since <literal>auto-import</"
+"literal> is the default. So we almost always just write:"
+msgstr ""
+"que simplemente devuelve todas las instancias de la clase <literal>eg.Cat</"
+"literal>. Usualmente no necesitamos cualificar el nombre de la clase, ya que "
+"<literal>auto-import</literal> está por defecto. De modo que casi siempre "
+"escribimos solamente:"
 
-#: index.docbook:49
+#. Tag: programlisting
+#: query_hql.xml:49
+#, no-c-format
 msgid "<![CDATA[from Cat]]>"
-msgstr "<![CDATA[from Cat]]>"
+msgstr ""
 
-#: index.docbook:51
-msgid "Most of the time, you will need to assign an <emphasis>alias</emphasis>, since you will want to refer to the <literal>Cat</literal> in other parts of the query."
-msgstr "La mayor&#x00ed;a del tiempo, necesitar&#x00e1;s asignar un <emphasis>alias</emphasis>, ya que querr&#x00e1;s referirte al <literal>Cat</literal> en otras partes de la consulta."
+#. Tag: para
+#: query_hql.xml:51
+#, no-c-format
+msgid ""
+"Most of the time, you will need to assign an <emphasis>alias</emphasis>, "
+"since you will want to refer to the <literal>Cat</literal> in other parts of "
+"the query."
+msgstr ""
+"La mayoría del tiempo, necesitarás asignar un <emphasis>alias</emphasis>, ya "
+"que querrás referirte al <literal>Cat</literal> en otras partes de la "
+"consulta."
 
-#: index.docbook:57, index.docbook:372
+#. Tag: programlisting
+#: query_hql.xml:57 query_hql.xml:372
+#, no-c-format
 msgid "<![CDATA[from Cat as cat]]>"
-msgstr "<![CDATA[from Cat as cat]]>"
+msgstr ""
 
-#: index.docbook:59
-msgid "This query assigns the alias <literal>cat</literal> to <literal>Cat</literal> instances, so we could use that alias later in the query. The <literal>as</literal> keyword is optional; we could also write:"
-msgstr "Esta consulta asigna el alias <literal>cat</literal> a las instancias de <literal>Cat</literal>, de modo que podr&#x00ed;amos usar ese alias luego en la consulta. La palabra clave <literal>as</literal> es opcional; tambi&#x00e9;n podr&#x00ed;amos escribir:"
+#. Tag: para
+#: query_hql.xml:59
+#, no-c-format
+msgid ""
+"This query assigns the alias <literal>cat</literal> to <literal>Cat</"
+"literal> instances, so we could use that alias later in the query. The "
+"<literal>as</literal> keyword is optional; we could also write:"
+msgstr ""
+"Esta consulta asigna el alias <literal>cat</literal> a las instancias de "
+"<literal>Cat</literal>, de modo que podríamos usar ese alias luego en la "
+"consulta. La palabra clave <literal>as</literal> es opcional; también "
+"podríamos escribir:"
 
-#: index.docbook:65
+#. Tag: programlisting
+#: query_hql.xml:65
+#, no-c-format
 msgid "<![CDATA[from Cat cat]]>"
-msgstr "<![CDATA[from Cat cat]]>"
+msgstr ""
 
-#: index.docbook:67
-msgid "Multiple classes may appear, resulting in a cartesian product or \"cross\" join."
-msgstr "Pueden aparecer m&#x00fa;ltiples clases, resultando en un producto cartesiano o uni&#x00f3;n \"cruzada\" (cross join)."
+#. Tag: para
+#: query_hql.xml:67
+#, no-c-format
+msgid ""
+"Multiple classes may appear, resulting in a cartesian product or \"cross\" "
+"join."
+msgstr ""
+"Pueden aparecer múltiples clases, resultando en un producto cartesiano o "
+"unión \"cruzada\" (cross join)."
 
-#: index.docbook:71
+#. Tag: programlisting
+#: query_hql.xml:71
+#, no-c-format
 msgid "<![CDATA[from Formula, Parameter]]>"
-msgstr "<![CDATA[from Formula, Parameter]]>"
+msgstr ""
 
-#: index.docbook:72
+#. Tag: programlisting
+#: query_hql.xml:72
+#, no-c-format
 msgid "<![CDATA[from Formula as form, Parameter as param]]>"
-msgstr "<![CDATA[from Formula as form, Parameter as param]]>"
+msgstr ""
 
-#: index.docbook:74
-msgid "It is considered good practice to name query aliases using an initial lowercase, consistent with Java naming standards for local variables (eg. <literal>domesticCat</literal>)."
-msgstr "Se considera buena pr&#x00e1;ctica el nombrar los alias de consulta usando una inicial en min&#x00fa;sculas, consistente con los est&#x00e1;ndares de nombrado de Java para variables locales (por ejemplo, <literal>domesticCat</literal>)."
+#. Tag: para
+#: query_hql.xml:74
+#, no-c-format
+msgid ""
+"It is considered good practice to name query aliases using an initial "
+"lowercase, consistent with Java naming standards for local variables (eg. "
+"<literal>domesticCat</literal>)."
+msgstr ""
+"Se considera buena práctica el nombrar los alias de consulta usando una "
+"inicial en minúsculas, consistente con los estándares de nombrado de Java "
+"para variables locales (por ejemplo, <literal>domesticCat</literal>)."
 
-#: index.docbook:83
+#. Tag: title
+#: query_hql.xml:83
+#, no-c-format
 msgid "Associations and joins"
 msgstr "Asociaciones y uniones (joins)"
 
-#: index.docbook:85
-msgid "We may also assign aliases to associated entities, or even to elements of a collection of values, using a <literal>join</literal>."
-msgstr "Podemos tambi&#x00e9;n asignar aliases a entidades asociadas, e incluso a elementos de una colecci&#x00f3;n de valores, usando una <literal>join</literal>."
+#. Tag: para
+#: query_hql.xml:85
+#, no-c-format
+msgid ""
+"We may also assign aliases to associated entities, or even to elements of a "
+"collection of values, using a <literal>join</literal>."
+msgstr ""
+"Podemos también asignar aliases a entidades asociadas, e incluso a elementos "
+"de una colección de valores, usando una <literal>join</literal>."
 
-#: index.docbook:90
+#. Tag: programlisting
+#: query_hql.xml:90
+#, no-c-format
 msgid ""
-      "<![CDATA[from Cat as cat\n"
-      "    inner join cat.mate as mate\n"
-      "    left outer join cat.kittens as kitten]]>"
+"<![CDATA[from Cat as cat\n"
+"    inner join cat.mate as mate\n"
+"    left outer join cat.kittens as kitten]]>"
 msgstr ""
-      "<![CDATA[from Cat as cat \n"
-      "    inner join cat.mate as mate\n"
-      "    left outer join cat.kittens as kitten]]>"
 
-#: index.docbook:92
+#. Tag: programlisting
+#: query_hql.xml:92
+#, no-c-format
 msgid "<![CDATA[from Cat as cat left join cat.mate.kittens as kittens]]>"
-msgstr "<![CDATA[from Cat as cat left join cat.mate.kittens as kittens]]>"
+msgstr ""
 
-#: index.docbook:94
+#. Tag: programlisting
+#: query_hql.xml:94
+#, no-c-format
 msgid "<![CDATA[from Formula form full join form.parameter param]]>"
-msgstr "<![CDATA[from Formula form full join form.parameter param]]>"
+msgstr ""
 
-#: index.docbook:96
+#. Tag: para
+#: query_hql.xml:96
+#, no-c-format
 msgid "The supported join types are borrowed from ANSI SQL"
 msgstr "Los tipos de join soportados son prestados de ANSI SQL"
 
-#: index.docbook:103
+#. Tag: literal
+#: query_hql.xml:103
+#, no-c-format
 msgid "inner join"
 msgstr "inner join"
 
-#: index.docbook:108
+#. Tag: literal
+#: query_hql.xml:108
+#, no-c-format
 msgid "left outer join"
 msgstr "left outer join"
 
-#: index.docbook:113
+#. Tag: literal
+#: query_hql.xml:113
+#, no-c-format
 msgid "right outer join"
 msgstr "right outer join"
 
-#: index.docbook:117
+#. Tag: para
+#: query_hql.xml:117
+#, no-c-format
 msgid "<literal>full join</literal> (not usually useful)"
-msgstr "<literal>full join</literal> (no &#x00fa;til usualmente)"
+msgstr "<literal>full join</literal> (no útil usualmente)"
 
-#: index.docbook:123
-msgid "The <literal>inner join</literal>, <literal>left outer join</literal> and <literal>right outer join</literal> constructs may be abbreviated."
-msgstr "Las construcciones <literal>inner join</literal>, <literal>left outer join</literal> y <literal>right outer join</literal> pueden ser abreviadas."
+#. Tag: para
+#: query_hql.xml:123
+#, no-c-format
+msgid ""
+"The <literal>inner join</literal>, <literal>left outer join</literal> and "
+"<literal>right outer join</literal> constructs may be abbreviated."
+msgstr ""
+"Las construcciones <literal>inner join</literal>, <literal>left outer join</"
+"literal> y <literal>right outer join</literal> pueden ser abreviadas."
 
-#: index.docbook:128
+#. Tag: programlisting
+#: query_hql.xml:128
+#, no-c-format
 msgid ""
-      "<![CDATA[from Cat as cat\n"
-      "    join cat.mate as mate\n"
-      "    left join cat.kittens as kitten]]>"
+"<![CDATA[from Cat as cat\n"
+"    join cat.mate as mate\n"
+"    left join cat.kittens as kitten]]>"
 msgstr ""
-      "<![CDATA[from Cat as cat \n"
-      "    join cat.mate as mate\n"
-      "    left join cat.kittens as kitten]]>"
 
-#: index.docbook:130
-msgid "You may supply extra join conditions using the HQL <literal>with</literal> keyword."
-msgstr "Puedes proveer condiciones de uni&#x00f3;n extra usando la palabra clave <literal>with</literal> de HQL."
+#. Tag: para
+#: query_hql.xml:130
+#, no-c-format
+msgid ""
+"You may supply extra join conditions using the HQL <literal>with</literal> "
+"keyword."
+msgstr ""
+"Puedes proveer condiciones de unión extra usando la palabra clave "
+"<literal>with</literal> de HQL."
 
-#: index.docbook:135
+#. Tag: programlisting
+#: query_hql.xml:135
+#, no-c-format
 msgid ""
-      "<![CDATA[from Cat as cat\n"
-      "    left join cat.kittens as kitten\n"
-      "        with kitten.bodyWeight > 10.0]]>"
+"<![CDATA[from Cat as cat\n"
+"    left join cat.kittens as kitten\n"
+"        with kitten.bodyWeight > 10.0]]>"
 msgstr ""
-      "<![CDATA[from Cat as cat \n"
-      "    left join cat.kittens as kitten \n"
-      "        with kitten.bodyWeight > 10.0]]>"
 
-#: index.docbook:137
-msgid "In addition, a \"fetch\" join allows associations or collections of values to be initialized along with their parent objects, using a single select. This is particularly useful in the case of a collection. It effectively overrides the outer join and lazy declarations of the mapping file for associations and collections. See <xref linkend=\"performance-fetching\"/> for more information."
-msgstr "En adici&#x00f3;n, un \"fetch\" join permite a las asociaciones o colecciones de valores ser inicializadas junto a sus objetos padres, usando una sola selecci&#x00f3;n. Esto es particularmente &#x00fa;til en el case de una colecci&#x00f3;n. Efectivamente sobrescribe el outer join y las declaraciones perezosas (lazy) del fichero de mapeo para asociaciones y colecciones. Ver <xref linkend=\"performance-fetching\"/> para m&#x00e1;s informaci&#x00f3;n."
+#. Tag: para
+#: query_hql.xml:137
+#, no-c-format
+msgid ""
+"In addition, a \"fetch\" join allows associations or collections of values "
+"to be initialized along with their parent objects, using a single select. "
+"This is particularly useful in the case of a collection. It effectively "
+"overrides the outer join and lazy declarations of the mapping file for "
+"associations and collections. See <xref linkend=\"performance-fetching\"/> "
+"for more information."
+msgstr ""
+"En adición, un \"fetch\" join permite a las asociaciones o colecciones de "
+"valores ser inicializadas junto a sus objetos padres, usando una sola "
+"selección. Esto es particularmente útil en el case de una colección. "
+"Efectivamente sobrescribe el outer join y las declaraciones perezosas (lazy) "
+"del fichero de mapeo para asociaciones y colecciones. Ver <xref linkend="
+"\"performance-fetching\"/> para más información."
 
-#: index.docbook:145
+#. Tag: programlisting
+#: query_hql.xml:145
+#, no-c-format
 msgid ""
-      "<![CDATA[from Cat as cat\n"
-      "    inner join fetch cat.mate\n"
-      "    left join fetch cat.kittens]]>"
+"<![CDATA[from Cat as cat\n"
+"    inner join fetch cat.mate\n"
+"    left join fetch cat.kittens]]>"
 msgstr ""
-      "<![CDATA[from Cat as cat \n"
-      "    inner join fetch cat.mate\n"
-      "    left join fetch cat.kittens]]>"
 
-#: index.docbook:147
-msgid "A fetch join does not usually need to assign an alias, because the associated objects should not be used in the <literal>where</literal> clause (or any other clause). Also, the associated objects are not returned directly in the query results. Instead, they may be accessed via the parent object. The only reason we might need an alias is if we are recursively join fetching a further collection:"
-msgstr "Usualmente a un fetch join no se necesita asign&#x00e1;rsele un alias, porque los objetos asociados no deben ser usados en la cl&#x00e1;usula <literal>where</literal> (ni en cualquier otra cl&#x00e1;usula). Adem&#x00e1;s, los objetos asociados no son devueltos directamente en los resultados de consulta. En cambio, pueden ser accedidos v&#x00ed;a el objeto padre. La &#x00fa;nica raz&#x00f3;n por la que necesitar&#x00ed;amos un alias es estamos uniendo recursivamente otra colecci&#x00f3;n:"
+#. Tag: para
+#: query_hql.xml:147
+#, no-c-format
+msgid ""
+"A fetch join does not usually need to assign an alias, because the "
+"associated objects should not be used in the <literal>where</literal> clause "
+"(or any other clause). Also, the associated objects are not returned "
+"directly in the query results. Instead, they may be accessed via the parent "
+"object. The only reason we might need an alias is if we are recursively join "
+"fetching a further collection:"
+msgstr ""
+"Usualmente a un fetch join no se necesita asignársele un alias, porque los "
+"objetos asociados no deben ser usados en la cláusula <literal>where</"
+"literal> (ni en cualquier otra cláusula). Además, los objetos asociados no "
+"son devueltos directamente en los resultados de consulta. En cambio, pueden "
+"ser accedidos vía el objeto padre. La única razón por la que necesitaríamos "
+"un alias es estamos uniendo recursivamente otra colección:"
 
-#: index.docbook:155
+#. Tag: programlisting
+#: query_hql.xml:155
+#, no-c-format
 msgid ""
-      "<![CDATA[from Cat as cat\n"
-      "    inner join fetch cat.mate\n"
-      "    left join fetch cat.kittens child\n"
-      "    left join fetch child.kittens]]>"
+"<![CDATA[from Cat as cat\n"
+"    inner join fetch cat.mate\n"
+"    left join fetch cat.kittens child\n"
+"    left join fetch child.kittens]]>"
 msgstr ""
-      "<![CDATA[from Cat as cat \n"
-      "    inner join fetch cat.mate\n"
-      "    left join fetch cat.kittens child\n"
-      "    left join fetch child.kittens]]>"
 
-#: index.docbook:157
-msgid "Note that the <literal>fetch</literal> construct may not be used in queries called using <literal>iterate()</literal> (though <literal>scroll()</literal> can be used). Nor should <literal>fetch</literal> be used together with <literal>setMaxResults()</literal> or <literal>setFirstResult()</literal> as these operations are based on the result rows, which usually contain duplicates for eager collection fetching, hence, the number of rows is not what you'd expect. Nor may <literal>fetch</literal> be used together with an ad hoc <literal>with</literal> condition. It is possible to create a cartesian product by join fetching more than one collection in a query, so take care in this case. Join fetching multiple collection roles also sometimes gives unexpected results for bag mappings, so be careful about how you formulate your queries in this case. Finally, note that <literal>full join fetch</literal> and <literal>right join fetch</literal> are not meaningful."
-msgstr "Nota que la construcci&#x00f3;n <literal>fetch</literal> no puede usarse en consultas llamadas usando <literal>scroll()</literal> o <literal>iterate()</literal>. Ni debe usarse <literal>fetch</literal> junto con <literal>setMaxResults()</literal> o <literal>setFirstResult()</literal>. Tampoco puede usarse <literal>fetch</literal> junto a una condici&#x00f3;n <literal>with</literal> ad hoc. Es posible crear un producto cartesiano trayendo por join m&#x00e1;s de una colecci&#x00f3;n en una colecci&#x00f3;n, as&#x00ed; que ten cuidado en este caso. Traer por join m&#x00fa;ltiples roles de colecci&#x00f3;n tambi&#x00e9;n da a veces resultados inesperados para mapeos de bag, as&#x00ed; que s&#x00e9; cuidadoso sobre c&#x00f3;mo formular tus consultas en este caso. Finalmente, nota que <literal>full join fetch</literal> y <literal>right join fetch</literal> no son significativos."
+#. Tag: para
+#: query_hql.xml:157
+#, no-c-format
+msgid ""
+"Note that the <literal>fetch</literal> construct may not be used in queries "
+"called using <literal>iterate()</literal> (though <literal>scroll()</"
+"literal> can be used). Nor should <literal>fetch</literal> be used together "
+"with <literal>setMaxResults()</literal> or <literal>setFirstResult()</"
+"literal> as these operations are based on the result rows, which usually "
+"contain duplicates for eager collection fetching, hence, the number of rows "
+"is not what you'd expect. Nor may <literal>fetch</literal> be used together "
+"with an ad hoc <literal>with</literal> condition. It is possible to create a "
+"cartesian product by join fetching more than one collection in a query, so "
+"take care in this case. Join fetching multiple collection roles also "
+"sometimes gives unexpected results for bag mappings, so be careful about how "
+"you formulate your queries in this case. Finally, note that <literal>full "
+"join fetch</literal> and <literal>right join fetch</literal> are not "
+"meaningful."
+msgstr ""
+"Nota que la construcción <literal>fetch</literal> no puede usarse en "
+"consultas llamadas usando <literal>scroll()</literal> o <literal>iterate()</"
+"literal>. Ni debe usarse <literal>fetch</literal> junto con "
+"<literal>setMaxResults()</literal> o <literal>setFirstResult()</literal>. "
+"Tampoco puede usarse <literal>fetch</literal> junto a una condición "
+"<literal>with</literal> ad hoc. Es posible crear un producto cartesiano "
+"trayendo por join más de una colección en una colección, así que ten cuidado "
+"en este caso. Traer por join múltiples roles de colección también da a veces "
+"resultados inesperados para mapeos de bag, así que sé cuidadoso sobre cómo "
+"formular tus consultas en este caso. Finalmente, nota que <literal>full join "
+"fetch</literal> y <literal>right join fetch</literal> no son significativos."
 
-#: index.docbook:172
-msgid "If you are using property-level lazy fetching (with bytecode instrumentation), it is possible to force Hibernate to fetch the lazy properties immediately (in the first query) using <literal>fetch all properties</literal>."
-msgstr "Si est&#x00e1;s usando recuperaci&#x00f3;n perezosa a nivel de propiedad (con instrumentaci&#x00f3;n de bytecode), es posible forzar a Hibernate a traer las propiedades perezosas inmediatamente (en la primera consulta) usando <literal>fetch all properties</literal>."
+#. Tag: para
+#: query_hql.xml:172
+#, no-c-format
+msgid ""
+"If you are using property-level lazy fetching (with bytecode "
+"instrumentation), it is possible to force Hibernate to fetch the lazy "
+"properties immediately (in the first query) using <literal>fetch all "
+"properties</literal>."
+msgstr ""
+"Si estás usando recuperación perezosa a nivel de propiedad (con "
+"instrumentación de bytecode), es posible forzar a Hibernate a traer las "
+"propiedades perezosas inmediatamente (en la primera consulta) usando "
+"<literal>fetch all properties</literal>."
 
-#: index.docbook:178
+#. Tag: programlisting
+#: query_hql.xml:178
+#, no-c-format
 msgid "<![CDATA[from Document fetch all properties order by name]]>"
-msgstr "<![CDATA[from Document fetch all properties order by name]]>"
+msgstr ""
 
-#: index.docbook:179
-msgid "<![CDATA[from Document doc fetch all properties where lower(doc.name) like '%cats%']]>"
-msgstr "<![CDATA[from Document doc fetch all properties where lower(doc.name) like '%cats%']]>"
+#. Tag: programlisting
+#: query_hql.xml:179
+#, no-c-format
+msgid ""
+"<![CDATA[from Document doc fetch all properties where lower(doc.name) like '%"
+"cats%']]>"
+msgstr ""
 
-#: index.docbook:184
+#. Tag: title
+#: query_hql.xml:184
+#, no-c-format
 msgid "Forms of join syntax"
-msgstr "La cl&#x00e1;usula select"
+msgstr "UNTRANSLATED!!! Forms of join syntax"
 
-#: index.docbook:186
-msgid "HQL supports two forms of association joining: <literal>implicit</literal> and <literal>explicit</literal>."
-msgstr "La cl&#x00e1;usula <literal>select</literal> escoge qu&#x00e9; objetos y propiedades devolver in el conjunto resultado de la consulta. Considera:"
+#. Tag: para
+#: query_hql.xml:186
+#, no-c-format
+msgid ""
+"HQL supports two forms of association joining: <literal>implicit</literal> "
+"and <literal>explicit</literal>."
+msgstr ""
+"HQL supports two forms of association joining: <literal>implicit</literal> "
+"and <literal>explicit</literal>."
 
-#: index.docbook:190
-msgid "The queries shown in the previous section all use the <literal>explicit</literal> form where the join keyword is explicitly used in the from clause. This is the recommended form."
+#. Tag: para
+#: query_hql.xml:190
+#, no-c-format
+msgid ""
+"The queries shown in the previous section all use the <literal>explicit</"
+"literal> form where the join keyword is explicitly used in the from clause. "
+"This is the recommended form."
 msgstr ""
-      "<![CDATA[select mate \n"
-      "from Cat as cat \n"
-      "    inner join cat.mate as mate]]>"
+"The queries shown in the previous section all use the <literal>explicit</"
+"literal> form where the join keyword is explicitly used in the from clause. "
+"This is the recommended form."
 
-#: index.docbook:195
-msgid "The <literal>implicit</literal> form does not use the join keyword. Instead, the associations are \"dereferenced\" using dot-notation. <literal>implicit</literal> joins can appear in any of the HQL clauses. <literal>implicit</literal> join result in inner joins in the resulting SQL statement."
-msgstr "La consulta seleccionar&#x00e1; <literal>mate</literal>s de otros <literal>Cat</literal>s. Realmente, puedes expresar esta consulta en un forma m&#x00e1;s compacta como:"
+#. Tag: para
+#: query_hql.xml:195
+#, no-c-format
+msgid ""
+"The <literal>implicit</literal> form does not use the join keyword. Instead, "
+"the associations are \"dereferenced\" using dot-notation. <literal>implicit</"
+"literal> joins can appear in any of the HQL clauses. <literal>implicit</"
+"literal> join result in inner joins in the resulting SQL statement."
+msgstr ""
+"The <literal>implicit</literal> form does not use the join keyword. Instead, "
+"the associations are \"dereferenced\" using dot-notation. <literal>implicit</"
+"literal> joins can appear in any of the HQL clauses. <literal>implicit</"
+"literal> join result in inner joins in the resulting SQL statement."
 
-#: index.docbook:202
+#. Tag: programlisting
+#: query_hql.xml:202
+#, no-c-format
 msgid "<![CDATA[from Cat as cat where cat.mate.name like '%s%']]>"
-msgstr "<![CDATA[select cat.mate from Cat cat]]>"
+msgstr ""
 
-#: index.docbook:206
+#. Tag: title
+#: query_hql.xml:206
+#, no-c-format
 msgid "Refering to identifier property"
-msgstr "Las consultas pueden devolver propiedades de cualquier tipo de valor incluyendo propiedades de tipo componente:"
+msgstr "Refering to identifier property"
 
-#: index.docbook:208
-msgid "There are, generally speaking, 2 ways to refer to an entity's identifier property:"
+#. Tag: para
+#: query_hql.xml:208
+#, no-c-format
+msgid ""
+"There are, generally speaking, 2 ways to refer to an entity's identifier "
+"property:"
 msgstr ""
-      "<![CDATA[select cat.name from DomesticCat cat\n"
-      "where cat.name like 'fri%']]>"
+"There are, generally speaking, 2 ways to refer to an entity's identifier "
+"property:"
 
-#: index.docbook:213
-msgid "The special property (lowercase) <literal>id</literal> may be used to reference the identifier property of an entity <emphasis>provided that entity does not define a non-identifier property named id</emphasis>."
-msgstr "<![CDATA[select cust.name.firstName from Customer as cust]]>"
+#. Tag: para
+#: query_hql.xml:213
+#, no-c-format
+msgid ""
+"The special property (lowercase) <literal>id</literal> may be used to "
+"reference the identifier property of an entity <emphasis>provided that "
+"entity does not define a non-identifier property named id</emphasis>."
+msgstr ""
+"The special property (lowercase) <literal>id</literal> may be used to "
+"reference the identifier property of an entity <emphasis>provided that "
+"entity does not define a non-identifier property named id</emphasis>."
 
-#: index.docbook:220
-msgid "If the entity defines a named identifier property, you may use that property name."
-msgstr "Las consultas pueden devolver m&#x00fa;ltiples objetos y/o propiedades como un array de tipo <literal>Object[]</literal>,"
+#. Tag: para
+#: query_hql.xml:220
+#, no-c-format
+msgid ""
+"If the entity defines a named identifier property, you may use that property "
+"name."
+msgstr ""
+"If the entity defines a named identifier property, you may use that property "
+"name."
 
-#: index.docbook:226
-msgid "References to composite identifier properties follow the same naming rules. If the entity has a non-identifier property named id, the composite identifier property can only be referenced by its defined named; otherwise, the special <literal>id</literal> property can be used to rerference the identifier property."
+#. Tag: para
+#: query_hql.xml:226
+#, no-c-format
+msgid ""
+"References to composite identifier properties follow the same naming rules. "
+"If the entity has a non-identifier property named id, the composite "
+"identifier property can only be referenced by its defined named; otherwise, "
+"the special <literal>id</literal> property can be used to rerference the "
+"identifier property."
 msgstr ""
-      "<![CDATA[select mother, offspr, mate.name \n"
-      "from DomesticCat as mother\n"
-      "    inner join mother.mate as mate\n"
-      "    left outer join mother.kittens as offspr]]>"
+"References to composite identifier properties follow the same naming rules. "
+"If the entity has a non-identifier property named id, the composite "
+"identifier property can only be referenced by its defined named; otherwise, "
+"the special <literal>id</literal> property can be used to rerference the "
+"identifier property."
 
-#: index.docbook:233
-msgid "Note: this has changed significantly starting in version 3.2.2. In previous versions, <literal>id</literal> <emphasis>always</emphasis> referred to the identifier property no matter what its actual name. A ramification of that decision was that non-identifier properties named <literal>id</literal> could never be referenced in Hibernate queries."
-msgstr "o como una <literal>List</literal>,"
+#. Tag: para
+#: query_hql.xml:233
+#, fuzzy, no-c-format
+msgid ""
+"Note: this has changed significantly starting in version 3.2.2. In previous "
+"versions, <literal>id</literal> <emphasis>always</emphasis> referred to the "
+"identifier property no matter what its actual name. A ramification of that "
+"decision was that non-identifier properties named <literal>id</literal> "
+"could never be referenced in Hibernate queries."
+msgstr ""
+"Note: this has changed significantly starting in version 3.2.2. In previous "
+"versions, <literal>id</literal><emphasis>always</emphasis> referred to the "
+"identifier property no matter what its actual name. A ramification of that "
+"decision was that non-identifier properties named <literal>id</literal> "
+"could never be referenced in Hibernate queries."
 
-#: index.docbook:242
+#. Tag: title
+#: query_hql.xml:242
+#, no-c-format
 msgid "The select clause"
+msgstr "La cláusula select"
+
+#. Tag: para
+#: query_hql.xml:244
+#, no-c-format
+msgid ""
+"The <literal>select</literal> clause picks which objects and properties to "
+"return in the query result set. Consider:"
 msgstr ""
-      "<![CDATA[select new list(mother, offspr, mate.name)\n"
-      "from DomesticCat as mother\n"
-      "    inner join mother.mate as mate\n"
-      "    left outer join mother.kittens as offspr]]>"
+"La cláusula <literal>select</literal> escoge qué objetos y propiedades "
+"devolver in el conjunto resultado de la consulta. Considera:"
 
-#: index.docbook:244
-msgid "The <literal>select</literal> clause picks which objects and properties to return in the query result set. Consider:"
-msgstr "o como un objeto real Java de tipo seguro,"
+#. Tag: programlisting
+#: query_hql.xml:249
+#, no-c-format
+msgid ""
+"<![CDATA[select mate\n"
+"from Cat as cat\n"
+"    inner join cat.mate as mate]]>"
+msgstr ""
 
-#: index.docbook:249
+#. Tag: para
+#: query_hql.xml:251
+#, no-c-format
 msgid ""
-      "<![CDATA[select mate\n"
-      "from Cat as cat\n"
-      "    inner join cat.mate as mate]]>"
+"The query will select <literal>mate</literal>s of other <literal>Cat</"
+"literal>s. Actually, you may express this query more compactly as:"
 msgstr ""
-      "<![CDATA[select new Family(mother, mate, offspr)\n"
-      "from DomesticCat as mother\n"
-      "    join mother.mate as mate\n"
-      "    left join mother.kittens as offspr]]>"
+"La consulta seleccionará <literal>mate</literal>s de otros <literal>Cat</"
+"literal>s. Realmente, puedes expresar esta consulta en un forma más compacta "
+"como:"
 
-#: index.docbook:251
-msgid "The query will select <literal>mate</literal>s of other <literal>Cat</literal>s. Actually, you may express this query more compactly as:"
-msgstr "asumiendo que la clase <literal>Family</literal> tiene un constructor apropiado."
-
-#: index.docbook:256
+#. Tag: programlisting
+#: query_hql.xml:256
+#, no-c-format
 msgid "<![CDATA[select cat.mate from Cat cat]]>"
-msgstr "Puedes asignar aliases para seleccionar expresiones usando <literal>as</literal>:"
+msgstr ""
 
-#: index.docbook:258
-msgid "Queries may return properties of any value type including properties of component type:"
+#. Tag: para
+#: query_hql.xml:258
+#, no-c-format
+msgid ""
+"Queries may return properties of any value type including properties of "
+"component type:"
 msgstr ""
-      "<![CDATA[select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n\n"
-      "from Cat cat]]>"
+"Las consultas pueden devolver propiedades de cualquier tipo de valor "
+"incluyendo propiedades de tipo componente:"
 
-#: index.docbook:262
+#. Tag: programlisting
+#: query_hql.xml:262
+#, no-c-format
 msgid ""
-      "<![CDATA[select cat.name from DomesticCat cat\n"
-      "where cat.name like 'fri%']]>"
-msgstr "Esto es lo m&#x00e1;s &#x00fa;til cuando se usa junto con <literal>select new map</literal>:"
+"<![CDATA[select cat.name from DomesticCat cat\n"
+"where cat.name like 'fri%']]>"
+msgstr ""
 
-#: index.docbook:264
+#. Tag: programlisting
+#: query_hql.xml:264
+#, no-c-format
 msgid "<![CDATA[select cust.name.firstName from Customer as cust]]>"
 msgstr ""
-      "<![CDATA[select new map( max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n )\n"
-      "from Cat cat]]>"
 
-#: index.docbook:266
-msgid "Queries may return multiple objects and/or properties as an array of type <literal>Object[]</literal>,"
-msgstr "Esta consulta devuelve un <literal>Map</literal> de aliases a valores seleccionados."
+#. Tag: para
+#: query_hql.xml:266
+#, no-c-format
+msgid ""
+"Queries may return multiple objects and/or properties as an array of type "
+"<literal>Object[]</literal>,"
+msgstr ""
+"Las consultas pueden devolver múltiples objetos y/o propiedades como un "
+"array de tipo <literal>Object[]</literal>,"
 
-#: index.docbook:271
+#. Tag: programlisting
+#: query_hql.xml:271
+#, no-c-format
 msgid ""
-      "<![CDATA[select mother, offspr, mate.name\n"
-      "from DomesticCat as mother\n"
-      "    inner join mother.mate as mate\n"
-      "    left outer join mother.kittens as offspr]]>"
-msgstr "Funciones de agregaci&#x00f3;n"
+"<![CDATA[select mother, offspr, mate.name\n"
+"from DomesticCat as mother\n"
+"    inner join mother.mate as mate\n"
+"    left outer join mother.kittens as offspr]]>"
+msgstr ""
 
-#: index.docbook:273
+#. Tag: para
+#: query_hql.xml:273
+#, no-c-format
 msgid "or as a <literal>List</literal>,"
-msgstr "Las consultas HQL pueden incluso devolver resultados de funciones de agregaci&#x00f3;n sobre propiedades:"
+msgstr "o como una <literal>List</literal>,"
 
-#: index.docbook:277
+#. Tag: programlisting
+#: query_hql.xml:277
+#, no-c-format
 msgid ""
-      "<![CDATA[select new list(mother, offspr, mate.name)\n"
-      "from DomesticCat as mother\n"
-      "    inner join mother.mate as mate\n"
-      "    left outer join mother.kittens as offspr]]>"
+"<![CDATA[select new list(mother, offspr, mate.name)\n"
+"from DomesticCat as mother\n"
+"    inner join mother.mate as mate\n"
+"    left outer join mother.kittens as offspr]]>"
 msgstr ""
-      "<![CDATA[select avg(cat.weight), sum(cat.weight), max(cat.weight), count(cat)\n"
-      "from Cat cat]]>"
 
-#: index.docbook:279
+#. Tag: para
+#: query_hql.xml:279
+#, no-c-format
 msgid "or as an actual typesafe Java object,"
-msgstr "Las funciones de agregaci&#x00f3;n soportadas son"
+msgstr "o como un objeto real Java de tipo seguro,"
 
-#: index.docbook:283
+#. Tag: programlisting
+#: query_hql.xml:283
+#, no-c-format
 msgid ""
-      "<![CDATA[select new Family(mother, mate, offspr)\n"
-      "from DomesticCat as mother\n"
-      "    join mother.mate as mate\n"
-      "    left join mother.kittens as offspr]]>"
-msgstr "avg(...), sum(...), min(...), max(...)"
+"<![CDATA[select new Family(mother, mate, offspr)\n"
+"from DomesticCat as mother\n"
+"    join mother.mate as mate\n"
+"    left join mother.kittens as offspr]]>"
+msgstr ""
 
-#: index.docbook:285
-msgid "assuming that the class <literal>Family</literal> has an appropriate constructor."
-msgstr "count(*)"
+#. Tag: para
+#: query_hql.xml:285
+#, no-c-format
+msgid ""
+"assuming that the class <literal>Family</literal> has an appropriate "
+"constructor."
+msgstr ""
+"asumiendo que la clase <literal>Family</literal> tiene un constructor "
+"apropiado."
 
-#: index.docbook:289
-msgid "You may assign aliases to selected expressions using <literal>as</literal>:"
-msgstr "count(...), count(distinct ...), count(all...)"
+#. Tag: para
+#: query_hql.xml:289
+#, no-c-format
+msgid ""
+"You may assign aliases to selected expressions using <literal>as</literal>:"
+msgstr ""
+"Puedes asignar aliases para seleccionar expresiones usando <literal>as</"
+"literal>:"
 
-#: index.docbook:293
+#. Tag: programlisting
+#: query_hql.xml:293
+#, no-c-format
 msgid ""
-      "<![CDATA[select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n\n"
-      "from Cat cat]]>"
-msgstr "Puedes usar operadores aritm&#x00e9;ticos, concatenaci&#x00f3;n, y funciones SQL reconocidas en la cl&#x00e1;usula select:"
+"<![CDATA[select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as "
+"n\n"
+"from Cat cat]]>"
+msgstr ""
 
-#: index.docbook:295
-msgid "This is most useful when used together with <literal>select new map</literal>:"
+#. Tag: para
+#: query_hql.xml:295
+#, no-c-format
+msgid ""
+"This is most useful when used together with <literal>select new map</"
+"literal>:"
 msgstr ""
-      "<![CDATA[select cat.weight + sum(kitten.weight) \n"
-      "from Cat cat \n"
-      "    join cat.kittens kitten\n"
-      "group by cat.id, cat.weight]]>"
+"Esto es lo más útil cuando se usa junto con <literal>select new map</"
+"literal>:"
 
-#: index.docbook:299
+#. Tag: programlisting
+#: query_hql.xml:299
+#, no-c-format
 msgid ""
-      "<![CDATA[select new map( max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n )\n"
-      "from Cat cat]]>"
-msgstr "<![CDATA[select firstName||' '||initial||' '||upper(lastName) from Person]]>"
+"<![CDATA[select new map( max(bodyWeight) as max, min(bodyWeight) as min, "
+"count(*) as n )\n"
+"from Cat cat]]>"
+msgstr ""
 
-#: index.docbook:301
-msgid "This query returns a <literal>Map</literal> from aliases to selected values."
-msgstr "Las palabras clave <literal>distinct</literal> y <literal>all</literal> pueden ser usadas y tienen las misma sem&#x00e1;ntica que en SQL."
+#. Tag: para
+#: query_hql.xml:301
+#, no-c-format
+msgid ""
+"This query returns a <literal>Map</literal> from aliases to selected values."
+msgstr ""
+"Esta consulta devuelve un <literal>Map</literal> de aliases a valores "
+"seleccionados."
 
-#: index.docbook:308
+#. Tag: title
+#: query_hql.xml:308
+#, no-c-format
 msgid "Aggregate functions"
+msgstr "Funciones de agregación"
+
+#. Tag: para
+#: query_hql.xml:310
+#, no-c-format
+msgid ""
+"HQL queries may even return the results of aggregate functions on properties:"
 msgstr ""
-      "<![CDATA[select distinct cat.name from Cat cat\n"
-      "\n"
-      "select count(distinct cat.name), count(cat) from Cat cat]]>"
+"Las consultas HQL pueden incluso devolver resultados de funciones de "
+"agregación sobre propiedades:"
 
-#: index.docbook:310
-msgid "HQL queries may even return the results of aggregate functions on properties:"
-msgstr "Consultas polim&#x00f3;rficas"
-
-#: index.docbook:314
+#. Tag: programlisting
+#: query_hql.xml:314
+#, no-c-format
 msgid ""
-      "<![CDATA[select avg(cat.weight), sum(cat.weight), max(cat.weight), count(cat)\n"
-      "from Cat cat]]>"
-msgstr "Una consulta como:"
+"<![CDATA[select avg(cat.weight), sum(cat.weight), max(cat.weight), count"
+"(cat)\n"
+"from Cat cat]]>"
+msgstr ""
 
-#: index.docbook:325
+#. Tag: para
+#: query_hql.xml:325
+#, no-c-format
 msgid "The supported aggregate functions are"
-msgstr "<![CDATA[from Cat as cat]]>"
+msgstr "Las funciones de agregación soportadas son"
 
-#: index.docbook:332
+#. Tag: literal
+#: query_hql.xml:332
+#, no-c-format
 msgid "avg(...), sum(...), min(...), max(...)"
-msgstr "devuelve instancias no s&#x00f3;lo de <literal>Cat</literal>, sino tambi&#x00e9;n de subclases como <literal>DomesticCat</literal>. Las consultas de Hibernate pueden mencionar <emphasis>cualquier</emphasis> clase o interface Java en la cl&#x00e1;usula <literal>from</literal>. La consulta devolver&#x00e1; instancias de todas las clases persistentes que extiendan esa clase o implementen la interface. La siguiente consulta devolver&#x00ed;a todos los objetos persistentes."
+msgstr "avg(...), sum(...), min(...), max(...)"
 
-#: index.docbook:337
+#. Tag: literal
+#: query_hql.xml:337
+#, no-c-format
 msgid "count(*)"
-msgstr "<![CDATA[from java.lang.Object o]]>"
+msgstr "count(*)"
 
-#: index.docbook:342
+#. Tag: literal
+#: query_hql.xml:342
+#, no-c-format
 msgid "count(...), count(distinct ...), count(all...)"
-msgstr "La interface <literal>Named</literal> podr&#x00ed;a ser implementada por varias clases persistentes:"
+msgstr "count(...), count(distinct ...), count(all...)"
 
-#: index.docbook:347
-msgid "You may use arithmetic operators, concatenation, and recognized SQL functions in the select clause:"
-msgstr "<![CDATA[from Named n, Named m where n.name = m.name]]>"
+#. Tag: para
+#: query_hql.xml:347
+#, no-c-format
+msgid ""
+"You may use arithmetic operators, concatenation, and recognized SQL "
+"functions in the select clause:"
+msgstr ""
+"Puedes usar operadores aritméticos, concatenación, y funciones SQL "
+"reconocidas en la cláusula select:"
 
-#: index.docbook:352
+#. Tag: programlisting
+#: query_hql.xml:352
+#, no-c-format
 msgid ""
-      "<![CDATA[select cat.weight + sum(kitten.weight)\n"
-      "from Cat cat\n"
-      "    join cat.kittens kitten\n"
-      "group by cat.id, cat.weight]]>"
-msgstr "Nota que estas dos &#x00fa;ltimas consultas requerir&#x00e1;n m&#x00e1;s de un <literal>SELECT</literal> SQL. Esto significa que la cl&#x00e1;usula <literal>order by</literal> no ordenar&#x00e1; correctamente todo el conjunto resultado. (Significa adem&#x00e1;s que no puedes llamar estas consulta usando <literal>Query.scroll()</literal>.)"
+"<![CDATA[select cat.weight + sum(kitten.weight)\n"
+"from Cat cat\n"
+"    join cat.kittens kitten\n"
+"group by cat.id, cat.weight]]>"
+msgstr ""
 
-#: index.docbook:354
-msgid "<![CDATA[select firstName||' '||initial||' '||upper(lastName) from Person]]>"
-msgstr "La cl&#x00e1;usula where"
+#. Tag: programlisting
+#: query_hql.xml:354
+#, no-c-format
+msgid ""
+"<![CDATA[select firstName||' '||initial||' '||upper(lastName) from Person]]>"
+msgstr ""
 
-#: index.docbook:356
-msgid "The <literal>distinct</literal> and <literal>all</literal> keywords may be used and have the same semantics as in SQL."
-msgstr "La cl&#x00e1;usula where te permite estrechar la lista de instancias devueltas. Si no existe ning&#x00fa;n alias. puedes referirte a las propiedades por nombre:"
+#. Tag: para
+#: query_hql.xml:356
+#, no-c-format
+msgid ""
+"The <literal>distinct</literal> and <literal>all</literal> keywords may be "
+"used and have the same semantics as in SQL."
+msgstr ""
+"Las palabras clave <literal>distinct</literal> y <literal>all</literal> "
+"pueden ser usadas y tienen las misma semántica que en SQL."
 
-#: index.docbook:361
+#. Tag: programlisting
+#: query_hql.xml:361
+#, no-c-format
 msgid ""
-      "<![CDATA[select distinct cat.name from Cat cat\n"
-      "\n"
-      "select count(distinct cat.name), count(cat) from Cat cat]]>"
-msgstr "<![CDATA[from Cat where name='Fritz']]>"
+"<![CDATA[select distinct cat.name from Cat cat\n"
+"\n"
+"select count(distinct cat.name), count(cat) from Cat cat]]>"
+msgstr ""
 
-#: index.docbook:366
+#. Tag: title
+#: query_hql.xml:366
+#, no-c-format
 msgid "Polymorphic queries"
-msgstr "Si existe un alias, usan un nombre cualificado de propiedad:"
+msgstr "Consultas polimórficas"
 
-#: index.docbook:368
+#. Tag: para
+#: query_hql.xml:368
+#, no-c-format
 msgid "A query like:"
-msgstr "<![CDATA[from Cat as cat where cat.name='Fritz']]>"
+msgstr "Una consulta como:"
 
-#: index.docbook:374
-msgid "returns instances not only of <literal>Cat</literal>, but also of subclasses like <literal>DomesticCat</literal>. Hibernate queries may name <emphasis>any</emphasis> Java class or interface in the <literal>from</literal> clause. The query will return instances of all persistent classes that extend that class or implement the interface. The following query would return all persistent objects:"
+#. Tag: para
+#: query_hql.xml:374
+#, no-c-format
+msgid ""
+"returns instances not only of <literal>Cat</literal>, but also of subclasses "
+"like <literal>DomesticCat</literal>. Hibernate queries may name "
+"<emphasis>any</emphasis> Java class or interface in the <literal>from</"
+"literal> clause. The query will return instances of all persistent classes "
+"that extend that class or implement the interface. The following query would "
+"return all persistent objects:"
 msgstr ""
-      "<![CDATA[select foo \n"
-      "from Foo foo, Bar bar\n"
-      "where foo.startDate = bar.date]]>"
+"devuelve instancias no sólo de <literal>Cat</literal>, sino también de "
+"subclases como <literal>DomesticCat</literal>. Las consultas de Hibernate "
+"pueden mencionar <emphasis>cualquier</emphasis> clase o interface Java en la "
+"cláusula <literal>from</literal>. La consulta devolverá instancias de todas "
+"las clases persistentes que extiendan esa clase o implementen la interface. "
+"La siguiente consulta devolvería todos los objetos persistentes."
 
-#: index.docbook:382
+#. Tag: programlisting
+#: query_hql.xml:382
+#, no-c-format
 msgid "<![CDATA[from java.lang.Object o]]>"
-msgstr "devolver&#x00e1; todas las instancias de <literal>Foo</literal> para las cuales exista una instancia de <literal>bar</literal> con una propiedad <literal>date</literal> igual a la propiedad <literal>startDate</literal> del <literal>Foo</literal>. Las expresiones de ruta compuestas hacen la cl&#x00e1;usula <literal>where</literal> extremadamente potente. Considera:"
+msgstr ""
 
-#: index.docbook:384
-msgid "The interface <literal>Named</literal> might be implemented by various persistent classes:"
-msgstr "<![CDATA[from Cat cat where cat.mate.name is not null]]>"
+#. Tag: para
+#: query_hql.xml:384
+#, no-c-format
+msgid ""
+"The interface <literal>Named</literal> might be implemented by various "
+"persistent classes:"
+msgstr ""
+"La interface <literal>Named</literal> podría ser implementada por varias "
+"clases persistentes:"
 
-#: index.docbook:389
+#. Tag: programlisting
+#: query_hql.xml:389
+#, no-c-format
 msgid "<![CDATA[from Named n, Named m where n.name = m.name]]>"
-msgstr "Esta consulta se traduce en una consulta SQL con una uni&#x00f3;n de tabla (interna). Si fueses a escribir algo como"
+msgstr ""
 
-#: index.docbook:391
-msgid "Note that these last two queries will require more than one SQL <literal>SELECT</literal>. This means that the <literal>order by</literal> clause does not correctly order the whole result set. (It also means you can't call these queries using <literal>Query.scroll()</literal>.)"
+#. Tag: para
+#: query_hql.xml:391
+#, no-c-format
+msgid ""
+"Note that these last two queries will require more than one SQL "
+"<literal>SELECT</literal>. This means that the <literal>order by</literal> "
+"clause does not correctly order the whole result set. (It also means you "
+"can't call these queries using <literal>Query.scroll()</literal>.)"
 msgstr ""
-      "<![CDATA[from Foo foo  \n"
-      "where foo.bar.baz.customer.address.city is not null]]>"
+"Nota que estas dos últimas consultas requerirán más de un <literal>SELECT</"
+"literal> SQL. Esto significa que la cláusula <literal>order by</literal> no "
+"ordenará correctamente todo el conjunto resultado. (Significa además que no "
+"puedes llamar estas consulta usando <literal>Query.scroll()</literal>.)"
 
-#: index.docbook:400
+#. Tag: title
+#: query_hql.xml:400
+#, no-c-format
 msgid "The where clause"
-msgstr "terminar&#x00ed;as con una consulta que requerir&#x00ed;a cuatro uniones de tablas en SQL."
+msgstr "La cláusula where"
 
-#: index.docbook:402
-msgid "The <literal>where</literal> clause allows you to narrow the list of instances returned. If no alias exists, you may refer to properties by name:"
-msgstr "El operador <literal>=</literal> puede ser usado para comparar no s&#x00f3;lo propiedades, sino tambi&#x00e9;n instancias:"
+#. Tag: para
+#: query_hql.xml:402
+#, no-c-format
+msgid ""
+"The <literal>where</literal> clause allows you to narrow the list of "
+"instances returned. If no alias exists, you may refer to properties by name:"
+msgstr ""
+"La cláusula where te permite estrechar la lista de instancias devueltas. Si "
+"no existe ningún alias. puedes referirte a las propiedades por nombre:"
 
-#: index.docbook:407
+#. Tag: programlisting
+#: query_hql.xml:407
+#, no-c-format
 msgid "<![CDATA[from Cat where name='Fritz']]>"
-msgstr "<![CDATA[from Cat cat, Cat rival where cat.mate = rival.mate]]>"
+msgstr ""
 
-#: index.docbook:409
+#. Tag: para
+#: query_hql.xml:409
+#, no-c-format
 msgid "If there is an alias, use a qualified property name:"
-msgstr ""
-      "<![CDATA[select cat, mate \n"
-      "from Cat cat, Cat mate\n"
-      "where cat.mate = mate]]>"
+msgstr "Si existe un alias, usan un nombre cualificado de propiedad:"
 
-#: index.docbook:413
+#. Tag: programlisting
+#: query_hql.xml:413
+#, no-c-format
 msgid "<![CDATA[from Cat as cat where cat.name='Fritz']]>"
-msgstr "La propiedad especial (en min&#x00fa;sculas) <literal>id</literal> puede ser usada para referenciar el identificador &#x00fa;nico de un objeto. (Tambi&#x00e9;n puedes usar su nombre de propiedad.)"
+msgstr ""
 
-#: index.docbook:415
+#. Tag: para
+#: query_hql.xml:415
+#, no-c-format
 msgid "returns instances of <literal>Cat</literal> named 'Fritz'."
+msgstr "devuelve las instancias de <literal>Cat</literal> llamadas 'Fritz'."
+
+#. Tag: programlisting
+#: query_hql.xml:419
+#, no-c-format
+msgid ""
+"<![CDATA[select foo\n"
+"from Foo foo, Bar bar\n"
+"where foo.startDate = bar.date]]>"
 msgstr ""
-      "<![CDATA[from Cat as cat where cat.id = 123\n"
-      "\n"
-      "from Cat as cat where cat.mate.id = 69]]>"
 
-#: index.docbook:419
+#. Tag: para
+#: query_hql.xml:421
+#, no-c-format
 msgid ""
-      "<![CDATA[select foo\n"
-      "from Foo foo, Bar bar\n"
-      "where foo.startDate = bar.date]]>"
-msgstr "La segunda consulta es eficiente. &#x00a1;No se requiere ninguna uni&#x00f3;n de tablas!"
+"will return all instances of <literal>Foo</literal> for which there exists "
+"an instance of <literal>bar</literal> with a <literal>date</literal> "
+"property equal to the <literal>startDate</literal> property of the "
+"<literal>Foo</literal>. Compound path expressions make the <literal>where</"
+"literal> clause extremely powerful. Consider:"
+msgstr ""
+"devolverá todas las instancias de <literal>Foo</literal> para las cuales "
+"exista una instancia de <literal>bar</literal> con una propiedad "
+"<literal>date</literal> igual a la propiedad <literal>startDate</literal> "
+"del <literal>Foo</literal>. Las expresiones de ruta compuestas hacen la "
+"cláusula <literal>where</literal> extremadamente potente. Considera:"
 
-#: index.docbook:421
-msgid "will return all instances of <literal>Foo</literal> for which there exists an instance of <literal>bar</literal> with a <literal>date</literal> property equal to the <literal>startDate</literal> property of the <literal>Foo</literal>. Compound path expressions make the <literal>where</literal> clause extremely powerful. Consider:"
-msgstr "Tambi&#x00e9;n pueden ser usadas las propiedades de identificadores compuestos. Sup&#x00f3;n que <literal>Person</literal> tiene un identificador compuesto consistente en <literal>country</literal> y <literal>medicareNumber</literal>."
-
-#: index.docbook:430
+#. Tag: programlisting
+#: query_hql.xml:430
+#, no-c-format
 msgid "<![CDATA[from Cat cat where cat.mate.name is not null]]>"
 msgstr ""
-      "<![CDATA[from bank.Person person\n"
-      "where person.id.country = 'AU' \n"
-      "    and person.id.medicareNumber = 123456]]>"
 
-#: index.docbook:432
-msgid "This query translates to an SQL query with a table (inner) join. If you were to write something like"
+#. Tag: para
+#: query_hql.xml:432
+#, no-c-format
+msgid ""
+"This query translates to an SQL query with a table (inner) join. If you were "
+"to write something like"
 msgstr ""
-      "<![CDATA[from bank.Account account\n"
-      "where account.owner.id.country = 'AU' \n"
-      "    and account.owner.id.medicareNumber = 123456]]>"
+"Esta consulta se traduce en una consulta SQL con una unión de tabla "
+"(interna). Si fueses a escribir algo como"
 
-#: index.docbook:437
+#. Tag: programlisting
+#: query_hql.xml:437
+#, no-c-format
 msgid ""
-      "<![CDATA[from Foo foo\n"
-      "where foo.bar.baz.customer.address.city is not null]]>"
-msgstr "Una vez m&#x00e1;s, la segunda consulta no requiere ninguna uni&#x00f3;n de tablas."
+"<![CDATA[from Foo foo\n"
+"where foo.bar.baz.customer.address.city is not null]]>"
+msgstr ""
 
-#: index.docbook:439
-msgid "you would end up with a query that would require four table joins in SQL."
-msgstr "Asimismo, la propiedad especial <literal>class</literal> acccede al valor discriminador de una instancia en el caso de persistencia polim&#x00f3;rfica. Un nombre de clase Java embebido en la cl&#x00e1;usula where ser&#x00e1; traducido a su valor discriminador."
+#. Tag: para
+#: query_hql.xml:439
+#, no-c-format
+msgid ""
+"you would end up with a query that would require four table joins in SQL."
+msgstr ""
+"terminarías con una consulta que requeriría cuatro uniones de tablas en SQL."
 
-#: index.docbook:443
-msgid "The <literal>=</literal> operator may be used to compare not only properties, but also instances:"
-msgstr "<![CDATA[from Cat cat where cat.class = DomesticCat]]>"
+#. Tag: para
+#: query_hql.xml:443
+#, no-c-format
+msgid ""
+"The <literal>=</literal> operator may be used to compare not only "
+"properties, but also instances:"
+msgstr ""
+"El operador <literal>=</literal> puede ser usado para comparar no sólo "
+"propiedades, sino también instancias:"
 
-#: index.docbook:448
+#. Tag: programlisting
+#: query_hql.xml:448
+#, no-c-format
 msgid "<![CDATA[from Cat cat, Cat rival where cat.mate = rival.mate]]>"
-msgstr "Puedes tambi&#x00e9;n especificar propiedades de componentes o tipos compuestos de usuario (y de componentes de componentes, etc). Nunca intentes usar una expresi&#x00f3;n de ruta que termine en una propiedad de tipo componente (al contrario de una propiedad de un componente). Por ejemplo, si <literal>store.owner</literal> es una entidad con un componente <literal>address</literal>"
+msgstr ""
 
-#: index.docbook:450
+#. Tag: programlisting
+#: query_hql.xml:450
+#, no-c-format
 msgid ""
-      "<![CDATA[select cat, mate\n"
-      "from Cat cat, Cat mate\n"
-      "where cat.mate = mate]]>"
+"<![CDATA[select cat, mate\n"
+"from Cat cat, Cat mate\n"
+"where cat.mate = mate]]>"
 msgstr ""
-      "<![CDATA[store.owner.address.city    // okay\n"
-      "store.owner.address         // error!]]>"
 
-#: index.docbook:452
-msgid "The special property (lowercase) <literal>id</literal> may be used to reference the unique identifier of an object. See <xref linkend=\"queryhql-identifier-property\"/> for more information."
-msgstr "Un tipo \"any\" tiene las propiedades especiales <literal>id</literal> y <literal>class</literal>, permit&#x00e9;ndonos expresar un join en la siguiente forma (donde <literal>AuditLog.item</literal> es una propiedad mapeada con <literal>&lt;any&gt;</literal>)."
+#. Tag: para
+#: query_hql.xml:452
+#, no-c-format
+msgid ""
+"The special property (lowercase) <literal>id</literal> may be used to "
+"reference the unique identifier of an object. See <xref linkend=\"queryhql-"
+"identifier-property\"/> for more information."
+msgstr ""
+"La propiedad especial (en minúsculas) <literal>id</literal> puede ser usada "
+"para referenciar el identificador único de un objeto. (También puedes usar "
+"su nombre de propiedad.)"
 
-#: index.docbook:458
+#. Tag: programlisting
+#: query_hql.xml:458
+#, no-c-format
 msgid ""
-      "<![CDATA[from Cat as cat where cat.id = 123\n"
-      "\n"
-      "from Cat as cat where cat.mate.id = 69]]>"
+"<![CDATA[from Cat as cat where cat.id = 123\n"
+"\n"
+"from Cat as cat where cat.mate.id = 69]]>"
 msgstr ""
-      "<![CDATA[from AuditLog log, Payment payment \n"
-      "where log.item.class = 'Payment' and log.item.id = payment.id]]>"
 
-#: index.docbook:460
+#. Tag: para
+#: query_hql.xml:460
+#, no-c-format
 msgid "The second query is efficient. No table join is required!"
-msgstr "Nota que <literal>log.item.class</literal> y <literal>payment.class</literal> har&#x00ed;an referencia a los valores de columnas de base de datos completamente diferentes en la consulta anterior."
+msgstr ""
+"La segunda consulta es eficiente. ¡No se requiere ninguna unión de tablas!"
 
-#: index.docbook:464
-msgid "Properties of composite identifiers may also be used. Suppose <literal>Person</literal> has a composite identifier consisting of <literal>country</literal> and <literal>medicareNumber</literal>. Again, see <xref linkend=\"queryhql-identifier-property\"/> for more information regarding referencing identifier properties."
-msgstr "Expresiones"
+#. Tag: para
+#: query_hql.xml:464
+#, no-c-format
+msgid ""
+"Properties of composite identifiers may also be used. Suppose "
+"<literal>Person</literal> has a composite identifier consisting of "
+"<literal>country</literal> and <literal>medicareNumber</literal>. Again, see "
+"<xref linkend=\"queryhql-identifier-property\"/> for more information "
+"regarding referencing identifier properties."
+msgstr ""
+"También pueden ser usadas las propiedades de identificadores compuestos. "
+"Supón que <literal>Person</literal> tiene un identificador compuesto "
+"consistente en <literal>country</literal> y <literal>medicareNumber</"
+"literal>."
 
-#: index.docbook:471
+#. Tag: programlisting
+#: query_hql.xml:471
+#, no-c-format
 msgid ""
-      "<![CDATA[from bank.Person person\n"
-      "where person.id.country = 'AU'\n"
-      "    and person.id.medicareNumber = 123456]]>"
-msgstr "Las expresiones permitidas en la cl&#x00e1;usula <literal>where</literal> incluyen la mayor&#x00ed;a del tipo de cosas que podr&#x00ed;as escribir en SQL:"
+"<![CDATA[from bank.Person person\n"
+"where person.id.country = 'AU'\n"
+"    and person.id.medicareNumber = 123456]]>"
+msgstr ""
 
-#: index.docbook:473
+#. Tag: programlisting
+#: query_hql.xml:473
+#, no-c-format
 msgid ""
-      "<![CDATA[from bank.Account account\n"
-      "where account.owner.id.country = 'AU'\n"
-      "    and account.owner.id.medicareNumber = 123456]]>"
-msgstr "operadores matem&#x00e1;ticos <literal>+, -, *, /</literal>"
+"<![CDATA[from bank.Account account\n"
+"where account.owner.id.country = 'AU'\n"
+"    and account.owner.id.medicareNumber = 123456]]>"
+msgstr ""
 
-#: index.docbook:475
+#. Tag: para
+#: query_hql.xml:475
+#, no-c-format
 msgid "Once again, the second query requires no table join."
-msgstr "operadores de comparaci&#x00f3;n binarios <literal>=, &gt;=, &lt;=, &lt;&gt;, !=, like</literal>"
+msgstr "Una vez más, la segunda consulta no requiere ninguna unión de tablas."
 
-#: index.docbook:479
-msgid "Likewise, the special property <literal>class</literal> accesses the discriminator value of an instance in the case of polymorphic persistence. A Java class name embedded in the where clause will be translated to its discriminator value."
-msgstr "operadores l&#x00f3;gicos <literal>and, or, not</literal>"
+#. Tag: para
+#: query_hql.xml:479
+#, no-c-format
+msgid ""
+"Likewise, the special property <literal>class</literal> accesses the "
+"discriminator value of an instance in the case of polymorphic persistence. A "
+"Java class name embedded in the where clause will be translated to its "
+"discriminator value."
+msgstr ""
+"Asimismo, la propiedad especial <literal>class</literal> acccede al valor "
+"discriminador de una instancia en el caso de persistencia polimórfica. Un "
+"nombre de clase Java embebido en la cláusula where será traducido a su valor "
+"discriminador."
 
-#: index.docbook:485
+#. Tag: programlisting
+#: query_hql.xml:485
+#, no-c-format
 msgid "<![CDATA[from Cat cat where cat.class = DomesticCat]]>"
-msgstr "Par&#x00e9;ntesis <literal>( )</literal>, indicando agrupaci&#x00f3;n"
+msgstr ""
 
-#: index.docbook:487
-msgid "You may also use components or composite user types, or properties of said component types. See <xref linkend=\"queryhql-coomponents\"/> for more details."
-msgstr "<literal>in</literal>, <literal>not in</literal>, <literal>between</literal>, <literal>is null</literal>, <literal>is not null</literal>, <literal>is empty</literal>, <literal>is not empty</literal>, <literal>member of</literal> y <literal>not member of</literal>"
+#. Tag: para
+#: query_hql.xml:487
+#, no-c-format
+msgid ""
+"You may also use components or composite user types, or properties of said "
+"component types. See <xref linkend=\"queryhql-components\"/> for more "
+"details."
+msgstr ""
+"Puedes también especificar propiedades de componentes o tipos compuestos de "
+"usuario (y de componentes de componentes, etc). Nunca intentes usar una "
+"expresión de ruta que termine en una propiedad de tipo componente (al "
+"contrario de una propiedad de un componente). Por ejemplo, si <literal>store."
+"owner</literal> es una entidad con un componente <literal>address</literal>"
 
-#: index.docbook:492
-msgid "An \"any\" type has the special properties <literal>id</literal> and <literal>class</literal>, allowing us to express a join in the following way (where <literal>AuditLog.item</literal> is a property mapped with <literal>&lt;any&gt;</literal>)."
-msgstr "Caso \"simple\", <literal>case ... when ... then ... else ... end</literal>, y caso \"buscado\", <literal>case when ... then ... else ... end</literal>"
+#. Tag: para
+#: query_hql.xml:492
+#, no-c-format
+msgid ""
+"An \"any\" type has the special properties <literal>id</literal> and "
+"<literal>class</literal>, allowing us to express a join in the following way "
+"(where <literal>AuditLog.item</literal> is a property mapped with "
+"<literal>&lt;any&gt;</literal>)."
+msgstr ""
+"Un tipo \"any\" tiene las propiedades especiales <literal>id</literal> y "
+"<literal>class</literal>, permiténdonos expresar un join en la siguiente "
+"forma (donde <literal>AuditLog.item</literal> es una propiedad mapeada con "
+"<literal>&lt;any&gt;</literal>)."
 
-#: index.docbook:498
+#. Tag: programlisting
+#: query_hql.xml:498
+#, no-c-format
 msgid ""
-      "<![CDATA[from AuditLog log, Payment payment\n"
-      "where log.item.class = 'Payment' and log.item.id = payment.id]]>"
-msgstr "concatenaci&#x00f3;n de cadenas <literal>...||...</literal> o <literal>concat(...,...)</literal>"
+"<![CDATA[from AuditLog log, Payment payment\n"
+"where log.item.class = 'Payment' and log.item.id = payment.id]]>"
+msgstr ""
 
-#: index.docbook:500
-msgid "Notice that <literal>log.item.class</literal> and <literal>payment.class</literal> would refer to the values of completely different database columns in the above query."
-msgstr "<literal>current_date()</literal>, <literal>current_time()</literal>, <literal>current_timestamp()</literal>"
+#. Tag: para
+#: query_hql.xml:500
+#, no-c-format
+msgid ""
+"Notice that <literal>log.item.class</literal> and <literal>payment.class</"
+"literal> would refer to the values of completely different database columns "
+"in the above query."
+msgstr ""
+"Nota que <literal>log.item.class</literal> y <literal>payment.class</"
+"literal> harían referencia a los valores de columnas de base de datos "
+"completamente diferentes en la consulta anterior."
 
-#: index.docbook:508
+#. Tag: title
+#: query_hql.xml:508
+#, no-c-format
 msgid "Expressions"
-msgstr "<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, <literal>year(...)</literal>,"
+msgstr "Expresiones"
 
-#: index.docbook:510
-msgid "Expressions allowed in the <literal>where</literal> clause include most of the kind of things you could write in SQL:"
-msgstr "Cualquier funci&#x00f3;n u operador definido por EJB-QL 3.0: <literal>substring(), trim(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()</literal>"
+#. Tag: para
+#: query_hql.xml:510
+#, no-c-format
+msgid ""
+"Expressions allowed in the <literal>where</literal> clause include most of "
+"the kind of things you could write in SQL:"
+msgstr ""
+"Las expresiones permitidas en la cláusula <literal>where</literal> incluyen "
+"la mayoría del tipo de cosas que podrías escribir en SQL:"
 
-#: index.docbook:517
+#. Tag: para
+#: query_hql.xml:517
+#, no-c-format
 msgid "mathematical operators <literal>+, -, *, /</literal>"
-msgstr "<literal>coalesce()</literal> y <literal>nullif()</literal>"
+msgstr "operadores matemáticos <literal>+, -, *, /</literal>"
 
-#: index.docbook:522
-msgid "binary comparison operators <literal>=, &gt;=, &lt;=, &lt;&gt;, !=, like</literal>"
-msgstr "<literal>str()</literal> para convertir valores num&#x00e9;ricos o temporales a una cadena legible."
+#. Tag: para
+#: query_hql.xml:522
+#, no-c-format
+msgid ""
+"binary comparison operators <literal>=, &gt;=, &lt;=, &lt;&gt;, !=, like</"
+"literal>"
+msgstr ""
+"operadores de comparación binarios <literal>=, &gt;=, &lt;=, &lt;&gt;, !=, "
+"like</literal>"
 
-#: index.docbook:527
+#. Tag: para
+#: query_hql.xml:527
+#, no-c-format
 msgid "logical operations <literal>and, or, not</literal>"
-msgstr "<literal>cast(... as ...)</literal>, donde el segundo argumento es el nombre de un tipo Hibernate , y <literal>extract(... from ...)</literal> si <literal>cast()</literal> y <literal>extract()</literal> fuesen soportados por la base de datos subyacente."
+msgstr "operadores lógicos <literal>and, or, not</literal>"
 
-#: index.docbook:532
+#. Tag: para
+#: query_hql.xml:532
+#, no-c-format
 msgid "Parentheses <literal>( )</literal>, indicating grouping"
-msgstr "la funci&#x00f3;n <literal>index()</literal> de HQL, que se aplica a alias de una colecci&#x00f3;n indexada unida."
+msgstr "Paréntesis <literal>( )</literal>, indicando agrupación"
 
-#: index.docbook:537
-msgid "<literal>in</literal>, <literal>not in</literal>, <literal>between</literal>, <literal>is null</literal>, <literal>is not null</literal>, <literal>is empty</literal>, <literal>is not empty</literal>, <literal>member of</literal> and <literal>not member of</literal>"
-msgstr "funciones de HQL que tomen expresiones de ruta valuadas en colecciones: <literal>size(), minelement(), maxelement(), minindex(), maxindex()</literal>, junto a las funciones especiales <literal>elements()</literal> and <literal>indices</literal> que pueden ser cuantificadas usando <literal>some, all, exists, any, in</literal>."
+#. Tag: para
+#: query_hql.xml:537
+#, no-c-format
+msgid ""
+"<literal>in</literal>, <literal>not in</literal>, <literal>between</"
+"literal>, <literal>is null</literal>, <literal>is not null</literal>, "
+"<literal>is empty</literal>, <literal>is not empty</literal>, "
+"<literal>member of</literal> and <literal>not member of</literal>"
+msgstr ""
+"<literal>in</literal>, <literal>not in</literal>, <literal>between</"
+"literal>, <literal>is null</literal>, <literal>is not null</literal>, "
+"<literal>is empty</literal>, <literal>is not empty</literal>, "
+"<literal>member of</literal> y <literal>not member of</literal>"
 
-#: index.docbook:550
-msgid "\"Simple\" case, <literal>case ... when ... then ... else ... end</literal>, and \"searched\" case, <literal>case when ... then ... else ... end</literal>"
-msgstr "Cualquier funci&#x00f3;n escalar SQL soportada por la base de datos como <literal>sign()</literal>, <literal>trunc()</literal>, <literal>rtrim()</literal>, <literal>sin()</literal>"
+#. Tag: para
+#: query_hql.xml:550
+#, no-c-format
+msgid ""
+"\"Simple\" case, <literal>case ... when ... then ... else ... end</literal>, "
+"and \"searched\" case, <literal>case when ... then ... else ... end</literal>"
+msgstr ""
+"Caso \"simple\", <literal>case ... when ... then ... else ... end</literal>, "
+"y caso \"buscado\", <literal>case when ... then ... else ... end</literal>"
 
-#: index.docbook:556
-msgid "string concatenation <literal>...||...</literal> or <literal>concat(...,...)</literal>"
-msgstr "par&#x00e1;metros posicionales JDBC <literal>?</literal>"
+#. Tag: para
+#: query_hql.xml:556
+#, no-c-format
+msgid ""
+"string concatenation <literal>...||...</literal> or <literal>concat(...,...)"
+"</literal>"
+msgstr ""
+"concatenación de cadenas <literal>...||...</literal> o <literal>concat"
+"(...,...)</literal>"
 
-#: index.docbook:561
-msgid "<literal>current_date()</literal>, <literal>current_time()</literal>, <literal>current_timestamp()</literal>"
-msgstr "par&#x00e1;metros con nombre <literal>:name</literal>, <literal>:start_date</literal>, <literal>:x1</literal>"
+#. Tag: para
+#: query_hql.xml:561
+#, no-c-format
+msgid ""
+"<literal>current_date()</literal>, <literal>current_time()</literal>, "
+"<literal>current_timestamp()</literal>"
+msgstr ""
+"<literal>current_date()</literal>, <literal>current_time()</literal>, "
+"<literal>current_timestamp()</literal>"
 
-#: index.docbook:567
-msgid "<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, <literal>year(...)</literal>,"
-msgstr "literales SQL <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
+#. Tag: para
+#: query_hql.xml:567
+#, no-c-format
+msgid ""
+"<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour"
+"(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, "
+"<literal>year(...)</literal>,"
+msgstr ""
+"<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour"
+"(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, "
+"<literal>year(...)</literal>,"
 
-#: index.docbook:574
-msgid "Any function or operator defined by EJB-QL 3.0: <literal>substring(), trim(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()</literal>"
-msgstr "constantes Java <literal>public static final</literal> <literal>eg.Color.TABBY</literal>"
+#. Tag: para
+#: query_hql.xml:574
+#, no-c-format
+msgid ""
+"Any function or operator defined by EJB-QL 3.0: <literal>substring(), trim"
+"(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()"
+"</literal>"
+msgstr ""
+"Cualquier función u operador definido por EJB-QL 3.0: <literal>substring(), "
+"trim(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), "
+"mod()</literal>"
 
-#: index.docbook:580
+#. Tag: para
+#: query_hql.xml:580
+#, no-c-format
 msgid "<literal>coalesce()</literal> and <literal>nullif()</literal>"
-msgstr "<literal>in</literal> y <literal>between</literal> pueden usarse como sigue:"
+msgstr "<literal>coalesce()</literal> y <literal>nullif()</literal>"
 
-#: index.docbook:585
-msgid "<literal>str()</literal> for converting numeric or temporal values to a readable string"
-msgstr "<![CDATA[from DomesticCat cat where cat.name between 'A' and 'B']]>"
+#. Tag: para
+#: query_hql.xml:585
+#, no-c-format
+msgid ""
+"<literal>str()</literal> for converting numeric or temporal values to a "
+"readable string"
+msgstr ""
+"<literal>str()</literal> para convertir valores numéricos o temporales a una "
+"cadena legible."
 
-#: index.docbook:591
-msgid "<literal>cast(... as ...)</literal>, where the second argument is the name of a Hibernate type, and <literal>extract(... from ...)</literal> if ANSI <literal>cast()</literal> and <literal>extract()</literal> is supported by the underlying database"
-msgstr "<![CDATA[from DomesticCat cat where cat.name in ( 'Foo', 'Bar', 'Baz' )]]>"
+#. Tag: para
+#: query_hql.xml:591
+#, no-c-format
+msgid ""
+"<literal>cast(... as ...)</literal>, where the second argument is the name "
+"of a Hibernate type, and <literal>extract(... from ...)</literal> if ANSI "
+"<literal>cast()</literal> and <literal>extract()</literal> is supported by "
+"the underlying database"
+msgstr ""
+"<literal>cast(... as ...)</literal>, donde el segundo argumento es el nombre "
+"de un tipo Hibernate , y <literal>extract(... from ...)</literal> si "
+"<literal>cast()</literal> y <literal>extract()</literal> fuesen soportados "
+"por la base de datos subyacente."
 
-#: index.docbook:599
-msgid "the HQL <literal>index()</literal> function, that applies to aliases of a joined indexed collection"
-msgstr "y pueden escribirse las formas negadas"
+#. Tag: para
+#: query_hql.xml:599
+#, no-c-format
+msgid ""
+"the HQL <literal>index()</literal> function, that applies to aliases of a "
+"joined indexed collection"
+msgstr ""
+"la función <literal>index()</literal> de HQL, que se aplica a alias de una "
+"colección indexada unida."
 
-#: index.docbook:605
-msgid "HQL functions that take collection-valued path expressions: <literal>size(), minelement(), maxelement(), minindex(), maxindex()</literal>, along with the special <literal>elements()</literal> and <literal>indices</literal> functions which may be quantified using <literal>some, all, exists, any, in</literal>."
-msgstr "<![CDATA[from DomesticCat cat where cat.name not between 'A' and 'B']]>"
+#. Tag: para
+#: query_hql.xml:605
+#, no-c-format
+msgid ""
+"HQL functions that take collection-valued path expressions: <literal>size(), "
+"minelement(), maxelement(), minindex(), maxindex()</literal>, along with the "
+"special <literal>elements()</literal> and <literal>indices</literal> "
+"functions which may be quantified using <literal>some, all, exists, any, in</"
+"literal>."
+msgstr ""
+"funciones de HQL que tomen expresiones de ruta valuadas en colecciones: "
+"<literal>size(), minelement(), maxelement(), minindex(), maxindex()</"
+"literal>, junto a las funciones especiales <literal>elements()</literal> and "
+"<literal>indices</literal> que pueden ser cuantificadas usando "
+"<literal>some, all, exists, any, in</literal>."
 
-#: index.docbook:613
-msgid "Any database-supported SQL scalar function like <literal>sign()</literal>, <literal>trunc()</literal>, <literal>rtrim()</literal>, <literal>sin()</literal>"
-msgstr "<![CDATA[from DomesticCat cat where cat.name not in ( 'Foo', 'Bar', 'Baz' )]]>"
+#. Tag: para
+#: query_hql.xml:613
+#, no-c-format
+msgid ""
+"Any database-supported SQL scalar function like <literal>sign()</literal>, "
+"<literal>trunc()</literal>, <literal>rtrim()</literal>, <literal>sin()</"
+"literal>"
+msgstr ""
+"Cualquier función escalar SQL soportada por la base de datos como "
+"<literal>sign()</literal>, <literal>trunc()</literal>, <literal>rtrim()</"
+"literal>, <literal>sin()</literal>"
 
-#: index.docbook:619
+#. Tag: para
+#: query_hql.xml:619
+#, no-c-format
 msgid "JDBC-style positional parameters <literal>?</literal>"
-msgstr "Asimismo, <literal>is null</literal> y <literal>is not null</literal> pueden ser usadas para comprobar valores nulos."
+msgstr "parámetros posicionales JDBC <literal>?</literal>"
 
-#: index.docbook:624
-msgid "named parameters <literal>:name</literal>, <literal>:start_date</literal>, <literal>:x1</literal>"
-msgstr "Los booleanos pueden ser f&#x00e1;cilmente usados en expresiones declarando substituciones de consulta HQL en la configuraci&#x00f3;n de Hibernate:"
+#. Tag: para
+#: query_hql.xml:624
+#, no-c-format
+msgid ""
+"named parameters <literal>:name</literal>, <literal>:start_date</literal>, "
+"<literal>:x1</literal>"
+msgstr ""
+"parámetros con nombre <literal>:name</literal>, <literal>:start_date</"
+"literal>, <literal>:x1</literal>"
 
-#: index.docbook:629
-msgid "SQL literals <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
-msgstr "<![CDATA[<property name=\"hibernate.query.substitutions\">true 1, false 0</property>]]>"
+#. Tag: para
+#: query_hql.xml:629
+#, no-c-format
+msgid ""
+"SQL literals <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E"
+"+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
+msgstr ""
+"literales SQL <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E"
+"+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
 
-#: index.docbook:635
-msgid "Java <literal>public static final</literal> constants <literal>eg.Color.TABBY</literal>"
-msgstr "Esto remplazar&#x00e1; las palabras clave <literal>true</literal> y <literal>false</literal> con los literales <literal>1</literal> y <literal>0</literal> en el SQL traducido de este HQL:"
+#. Tag: para
+#: query_hql.xml:635
+#, no-c-format
+msgid ""
+"Java <literal>public static final</literal> constants <literal>eg.Color."
+"TABBY</literal>"
+msgstr ""
+"constantes Java <literal>public static final</literal><literal>eg.Color."
+"TABBY</literal>"
 
-#: index.docbook:641
-msgid "<literal>in</literal> and <literal>between</literal> may be used as follows:"
-msgstr "<![CDATA[from Cat cat where cat.alive = true]]>"
+#. Tag: para
+#: query_hql.xml:641
+#, no-c-format
+msgid ""
+"<literal>in</literal> and <literal>between</literal> may be used as follows:"
+msgstr ""
+"<literal>in</literal> y <literal>between</literal> pueden usarse como sigue:"
 
-#: index.docbook:645
+#. Tag: programlisting
+#: query_hql.xml:645
+#, no-c-format
 msgid "<![CDATA[from DomesticCat cat where cat.name between 'A' and 'B']]>"
-msgstr "Puedes comprobar el tama&#x00f1;o de una colecci&#x00f3;n con la propiedad especial <literal>size</literal>, o la funci&#x00f3;n especial <literal>size()</literal>."
+msgstr ""
 
-#: index.docbook:647
-msgid "<![CDATA[from DomesticCat cat where cat.name in ( 'Foo', 'Bar', 'Baz' )]]>"
-msgstr "<![CDATA[from Cat cat where cat.kittens.size > 0]]>"
+#. Tag: programlisting
+#: query_hql.xml:647
+#, no-c-format
+msgid ""
+"<![CDATA[from DomesticCat cat where cat.name in ( 'Foo', 'Bar', 'Baz' )]]>"
+msgstr ""
 
-#: index.docbook:649
+#. Tag: para
+#: query_hql.xml:649
+#, no-c-format
 msgid "and the negated forms may be written"
-msgstr "<![CDATA[from Cat cat where size(cat.kittens) > 0]]>"
+msgstr "y pueden escribirse las formas negadas"
 
-#: index.docbook:653
+#. Tag: programlisting
+#: query_hql.xml:653
+#, no-c-format
 msgid "<![CDATA[from DomesticCat cat where cat.name not between 'A' and 'B']]>"
-msgstr "Para colecciones indexadas, puedes referirte a los &#x00ed;ndices m&#x00e1;ximo y m&#x00ed;nimo usando las funciones <literal>minindex</literal> y <literal>maxindex</literal>. Similarmente, puedes referirte a los elementos m&#x00e1;ximo y m&#x00ed;nimo de una colecci&#x00f3;n de tipo b&#x00e1;sico usando las funciones <literal>minelement</literal> y <literal>maxelement</literal>."
+msgstr ""
 
-#: index.docbook:655
-msgid "<![CDATA[from DomesticCat cat where cat.name not in ( 'Foo', 'Bar', 'Baz' )]]>"
-msgstr "<![CDATA[from Calendar cal where maxelement(cal.holidays) > current_date]]>"
+#. Tag: programlisting
+#: query_hql.xml:655
+#, no-c-format
+msgid ""
+"<![CDATA[from DomesticCat cat where cat.name not in ( 'Foo', 'Bar', 'Baz' )]]"
+">"
+msgstr ""
 
-#: index.docbook:657
-msgid "Likewise, <literal>is null</literal> and <literal>is not null</literal> may be used to test for null values."
-msgstr "<![CDATA[from Order order where maxindex(order.items) > 100]]>"
+#. Tag: para
+#: query_hql.xml:657
+#, no-c-format
+msgid ""
+"Likewise, <literal>is null</literal> and <literal>is not null</literal> may "
+"be used to test for null values."
+msgstr ""
+"Asimismo, <literal>is null</literal> y <literal>is not null</literal> pueden "
+"ser usadas para comprobar valores nulos."
 
-#: index.docbook:662
-msgid "Booleans may be easily used in expressions by declaring HQL query substitutions in Hibernate configuration:"
-msgstr "<![CDATA[from Order order where minelement(order.items) > 10000]]>"
+#. Tag: para
+#: query_hql.xml:662
+#, no-c-format
+msgid ""
+"Booleans may be easily used in expressions by declaring HQL query "
+"substitutions in Hibernate configuration:"
+msgstr ""
+"Los booleanos pueden ser fácilmente usados en expresiones declarando "
+"substituciones de consulta HQL en la configuración de Hibernate:"
 
-#: index.docbook:667
-msgid "<![CDATA[<property name=\"hibernate.query.substitutions\">true 1, false 0</property>]]>"
-msgstr "Las funciones SQL <literal>any, some, all, exists, in</literal> est&#x00e1;n soportadas cuando se les pasa el conjunto de elementos o &#x00ed;ndices de una colecci&#x00f3;n (funciones <literal>elements</literal> y <literal>indices</literal>) o el resultado de una subconsulta (ver debajo)."
+#. Tag: programlisting
+#: query_hql.xml:667
+#, no-c-format
+msgid ""
+"<![CDATA[<property name=\"hibernate.query.substitutions\">true 1, false 0</"
+"property>]]>"
+msgstr ""
 
-#: index.docbook:669
-msgid "This will replace the keywords <literal>true</literal> and <literal>false</literal> with the literals <literal>1</literal> and <literal>0</literal> in the translated SQL from this HQL:"
+#. Tag: para
+#: query_hql.xml:669
+#, no-c-format
+msgid ""
+"This will replace the keywords <literal>true</literal> and <literal>false</"
+"literal> with the literals <literal>1</literal> and <literal>0</literal> in "
+"the translated SQL from this HQL:"
 msgstr ""
-      "<![CDATA[select mother from Cat as mother, Cat as kit\n"
-      "where kit in elements(foo.kittens)]]>"
+"Esto remplazará las palabras clave <literal>true</literal> y <literal>false</"
+"literal> con los literales <literal>1</literal> y <literal>0</literal> en el "
+"SQL traducido de este HQL:"
 
-#: index.docbook:674
+#. Tag: programlisting
+#: query_hql.xml:674
+#, no-c-format
 msgid "<![CDATA[from Cat cat where cat.alive = true]]>"
 msgstr ""
-      "<![CDATA[select p from NameList list, Person p\n"
-      "where p.name = some elements(list.names)]]>"
 
-#: index.docbook:676
-msgid "You may test the size of a collection with the special property <literal>size</literal>, or the special <literal>size()</literal> function."
-msgstr "<![CDATA[from Cat cat where exists elements(cat.kittens)]]>"
+#. Tag: para
+#: query_hql.xml:676
+#, no-c-format
+msgid ""
+"You may test the size of a collection with the special property "
+"<literal>size</literal>, or the special <literal>size()</literal> function."
+msgstr ""
+"Puedes comprobar el tamaño de una colección con la propiedad especial "
+"<literal>size</literal>, o la función especial <literal>size()</literal>."
 
-#: index.docbook:681
+#. Tag: programlisting
+#: query_hql.xml:681
+#, no-c-format
 msgid "<![CDATA[from Cat cat where cat.kittens.size > 0]]>"
-msgstr "<![CDATA[from Player p where 3 > all elements(p.scores)]]>"
+msgstr ""
 
-#: index.docbook:683
+#. Tag: programlisting
+#: query_hql.xml:683
+#, no-c-format
 msgid "<![CDATA[from Cat cat where size(cat.kittens) > 0]]>"
-msgstr "<![CDATA[from Show show where 'fizard' in indices(show.acts)]]>"
+msgstr ""
 
-#: index.docbook:685
-msgid "For indexed collections, you may refer to the minimum and maximum indices using <literal>minindex</literal> and <literal>maxindex</literal> functions. Similarly, you may refer to the minimum and maximum elements of a collection of basic type using the <literal>minelement</literal> and <literal>maxelement</literal> functions."
-msgstr "Nota que estas construcciones - <literal>size</literal>, <literal>elements</literal>, <literal>indices</literal>, <literal>minindex</literal>, <literal>maxindex</literal>, <literal>minelement</literal>, <literal>maxelement</literal> - pueden ser usadas solamente en la cl&#x00e1;usula where en Hibernate3."
+#. Tag: para
+#: query_hql.xml:685
+#, no-c-format
+msgid ""
+"For indexed collections, you may refer to the minimum and maximum indices "
+"using <literal>minindex</literal> and <literal>maxindex</literal> functions. "
+"Similarly, you may refer to the minimum and maximum elements of a collection "
+"of basic type using the <literal>minelement</literal> and "
+"<literal>maxelement</literal> functions."
+msgstr ""
+"Para colecciones indexadas, puedes referirte a los índices máximo y mínimo "
+"usando las funciones <literal>minindex</literal> y <literal>maxindex</"
+"literal>. Similarmente, puedes referirte a los elementos máximo y mínimo de "
+"una colección de tipo básico usando las funciones <literal>minelement</"
+"literal> y <literal>maxelement</literal>."
 
-#: index.docbook:693
-msgid "<![CDATA[from Calendar cal where maxelement(cal.holidays) > current_date]]>"
-msgstr "Los elementos de colecciones indexadas (arrays, listas, mapas) pueden ser referidos por &#x00ed;ndice (en una cl&#x00e1;usula where solamente):"
+#. Tag: programlisting
+#: query_hql.xml:693
+#, no-c-format
+msgid ""
+"<![CDATA[from Calendar cal where maxelement(cal.holidays) > current_date]]>"
+msgstr ""
 
-#: index.docbook:695
+#. Tag: programlisting
+#: query_hql.xml:695
+#, no-c-format
 msgid "<![CDATA[from Order order where maxindex(order.items) > 100]]>"
-msgstr "<![CDATA[from Order order where order.items[0].id = 1234]]>"
+msgstr ""
 
-#: index.docbook:697
+#. Tag: programlisting
+#: query_hql.xml:697
+#, no-c-format
 msgid "<![CDATA[from Order order where minelement(order.items) > 10000]]>"
 msgstr ""
-      "<![CDATA[select person from Person person, Calendar calendar\n"
-      "where calendar.holidays['national day'] = person.birthDay\n"
-      "    and person.nationality.calendar = calendar]]>"
 
-#: index.docbook:699
-msgid "The SQL functions <literal>any, some, all, exists, in</literal> are supported when passed the element or index set of a collection (<literal>elements</literal> and <literal>indices</literal> functions) or the result of a subquery (see below)."
+#. Tag: para
+#: query_hql.xml:699
+#, no-c-format
+msgid ""
+"The SQL functions <literal>any, some, all, exists, in</literal> are "
+"supported when passed the element or index set of a collection "
+"(<literal>elements</literal> and <literal>indices</literal> functions) or "
+"the result of a subquery (see below)."
 msgstr ""
-      "<![CDATA[select item from Item item, Order order\n"
-      "where order.items[ order.deliveredItemIndices[0] ] = item and order.id = 11]]>"
+"Las funciones SQL <literal>any, some, all, exists, in</literal> están "
+"soportadas cuando se les pasa el conjunto de elementos o índices de una "
+"colección (funciones <literal>elements</literal> y <literal>indices</"
+"literal>) o el resultado de una subconsulta (ver debajo)."
 
-#: index.docbook:705
+#. Tag: programlisting
+#: query_hql.xml:705
+#, no-c-format
 msgid ""
-      "<![CDATA[select mother from Cat as mother, Cat as kit\n"
-      "where kit in elements(foo.kittens)]]>"
+"<![CDATA[select mother from Cat as mother, Cat as kit\n"
+"where kit in elements(foo.kittens)]]>"
 msgstr ""
-      "<![CDATA[select item from Item item, Order order\n"
-      "where order.items[ maxindex(order.items) ] = item and order.id = 11]]>"
 
-#: index.docbook:707
+#. Tag: programlisting
+#: query_hql.xml:707
+#, no-c-format
 msgid ""
-      "<![CDATA[select p from NameList list, Person p\n"
-      "where p.name = some elements(list.names)]]>"
-msgstr "La expresi&#x00f3;n dentro de <literal>[]</literal> puede incluso ser una expresi&#x00f3;n aritm&#x00e9;tica."
+"<![CDATA[select p from NameList list, Person p\n"
+"where p.name = some elements(list.names)]]>"
+msgstr ""
 
-#: index.docbook:709
+#. Tag: programlisting
+#: query_hql.xml:709
+#, no-c-format
 msgid "<![CDATA[from Cat cat where exists elements(cat.kittens)]]>"
 msgstr ""
-      "<![CDATA[select item from Item item, Order order\n"
-      "where order.items[ size(order.items) - 1 ] = item]]>"
 
-#: index.docbook:711
+#. Tag: programlisting
+#: query_hql.xml:711
+#, no-c-format
 msgid "<![CDATA[from Player p where 3 > all elements(p.scores)]]>"
-msgstr "HQL provee adem&#x00e1;s el funci&#x00f3;n prefabricada <literal>index()</literal>, para elementos de una asociaci&#x00f3;n uno-a-muchos o colecci&#x00f3;n de valores."
+msgstr ""
 
-#: index.docbook:713
+#. Tag: programlisting
+#: query_hql.xml:713
+#, no-c-format
 msgid "<![CDATA[from Show show where 'fizard' in indices(show.acts)]]>"
 msgstr ""
-      "<![CDATA[select item, index(item) from Order order \n"
-      "    join order.items item\n"
-      "where index(item) < 5]]>"
 
-#: index.docbook:715
-msgid "Note that these constructs - <literal>size</literal>, <literal>elements</literal>, <literal>indices</literal>, <literal>minindex</literal>, <literal>maxindex</literal>, <literal>minelement</literal>, <literal>maxelement</literal> - may only be used in the where clause in Hibernate3."
-msgstr "Pueden usarse las funciones SQL escalares soportadas por la base de datos subyacente"
+#. Tag: para
+#: query_hql.xml:715
+#, no-c-format
+msgid ""
+"Note that these constructs - <literal>size</literal>, <literal>elements</"
+"literal>, <literal>indices</literal>, <literal>minindex</literal>, "
+"<literal>maxindex</literal>, <literal>minelement</literal>, "
+"<literal>maxelement</literal> - may only be used in the where clause in "
+"Hibernate3."
+msgstr ""
+"Nota que estas construcciones - <literal>size</literal>, <literal>elements</"
+"literal>, <literal>indices</literal>, <literal>minindex</literal>, "
+"<literal>maxindex</literal>, <literal>minelement</literal>, "
+"<literal>maxelement</literal> - pueden ser usadas solamente en la cláusula "
+"where en Hibernate3."
 
-#: index.docbook:722
-msgid "Elements of indexed collections (arrays, lists, maps) may be referred to by index (in a where clause only):"
-msgstr "<![CDATA[from DomesticCat cat where upper(cat.name) like 'FRI%']]>"
+#. Tag: para
+#: query_hql.xml:722
+#, no-c-format
+msgid ""
+"Elements of indexed collections (arrays, lists, maps) may be referred to by "
+"index (in a where clause only):"
+msgstr ""
+"Los elementos de colecciones indexadas (arrays, listas, mapas) pueden ser "
+"referidos por índice (en una cláusula where solamente):"
 
-#: index.docbook:727
+#. Tag: programlisting
+#: query_hql.xml:727
+#, no-c-format
 msgid "<![CDATA[from Order order where order.items[0].id = 1234]]>"
-msgstr "Si a&#x00fa;n no est&#x00e1;s convencido de todo esto, piensa cu&#x00e1;nto m&#x00e1;s largo y menos le&#x00ed;ble ser&#x00ed;a la siguiente consulta en SQL:"
+msgstr ""
 
-#: index.docbook:729
+#. Tag: programlisting
+#: query_hql.xml:729
+#, no-c-format
 msgid ""
-      "<![CDATA[select person from Person person, Calendar calendar\n"
-      "where calendar.holidays['national day'] = person.birthDay\n"
-      "    and person.nationality.calendar = calendar]]>"
+"<![CDATA[select person from Person person, Calendar calendar\n"
+"where calendar.holidays['national day'] = person.birthDay\n"
+"    and person.nationality.calendar = calendar]]>"
 msgstr ""
-      "<![CDATA[select cust\n"
-      "from Product prod,\n"
-      "    Store store\n"
-      "    inner join store.customers cust\n"
-      "where prod.name = 'widget'\n"
-      "    and store.location.name in ( 'Melbourne', 'Sydney' )\n"
-      "    and prod = all elements(cust.currentOrder.lineItems)]]>"
 
-#: index.docbook:731
+#. Tag: programlisting
+#: query_hql.xml:731
+#, no-c-format
 msgid ""
-      "<![CDATA[select item from Item item, Order order\n"
-      "where order.items[ order.deliveredItemIndices[0] ] = item and order.id = 11]]>"
-msgstr "<emphasis>Ayuda:</emphasis> algo como"
+"<![CDATA[select item from Item item, Order order\n"
+"where order.items[ order.deliveredItemIndices[0] ] = item and order.id = 11]]"
+">"
+msgstr ""
 
-#: index.docbook:733
+#. Tag: programlisting
+#: query_hql.xml:733
+#, no-c-format
 msgid ""
-      "<![CDATA[select item from Item item, Order order\n"
-      "where order.items[ maxindex(order.items) ] = item and order.id = 11]]>"
+"<![CDATA[select item from Item item, Order order\n"
+"where order.items[ maxindex(order.items) ] = item and order.id = 11]]>"
 msgstr ""
-      "<![CDATA[SELECT cust.name, cust.address, cust.phone, cust.id, cust.current_order\n"
-      "FROM customers cust,\n"
-      "    stores store,\n"
-      "    locations loc,\n"
-      "    store_customers sc,\n"
-      "    product prod\n"
-      "WHERE prod.name = 'widget'\n"
-      "    AND store.loc_id = loc.id\n"
-      "    AND loc.name IN ( 'Melbourne', 'Sydney' )\n"
-      "    AND sc.store_id = store.id\n"
-      "    AND sc.cust_id = cust.id\n"
-      "    AND prod.id = ALL(\n"
-      "        SELECT item.prod_id\n"
-      "        FROM line_items item, orders o\n"
-      "        WHERE item.order_id = o.id\n"
-      "            AND cust.current_order = o.id\n"
-      "    )]]>"
 
-#: index.docbook:735
-msgid "The expression inside <literal>[]</literal> may even be an arithmetic expression."
-msgstr "La cl&#x00e1;usula order by"
+#. Tag: para
+#: query_hql.xml:735
+#, no-c-format
+msgid ""
+"The expression inside <literal>[]</literal> may even be an arithmetic "
+"expression."
+msgstr ""
+"La expresión dentro de <literal>[]</literal> puede incluso ser una expresión "
+"aritmética."
 
-#: index.docbook:739
+#. Tag: programlisting
+#: query_hql.xml:739
+#, no-c-format
 msgid ""
-      "<![CDATA[select item from Item item, Order order\n"
-      "where order.items[ size(order.items) - 1 ] = item]]>"
-msgstr "La lista devuelta por una consulta puede ser ordenada por cualquier propiedad de una clase devuelta o componentes:"
+"<![CDATA[select item from Item item, Order order\n"
+"where order.items[ size(order.items) - 1 ] = item]]>"
+msgstr ""
 
-#: index.docbook:741
-msgid "HQL also provides the built-in <literal>index()</literal> function, for elements of a one-to-many association or collection of values."
+#. Tag: para
+#: query_hql.xml:741
+#, no-c-format
+msgid ""
+"HQL also provides the built-in <literal>index()</literal> function, for "
+"elements of a one-to-many association or collection of values."
 msgstr ""
-      "<![CDATA[from DomesticCat cat\n"
-      "order by cat.name asc, cat.weight desc, cat.birthdate]]>"
+"HQL provee además el función prefabricada <literal>index()</literal>, para "
+"elementos de una asociación uno-a-muchos o colección de valores."
 
-#: index.docbook:746
+#. Tag: programlisting
+#: query_hql.xml:746
+#, no-c-format
 msgid ""
-      "<![CDATA[select item, index(item) from Order order\n"
-      "    join order.items item\n"
-      "where index(item) < 5]]>"
-msgstr "Los <literal>asc</literal> o <literal>desc</literal> opcionales indican ordenamiento ascendente o descendente respectivamente."
+"<![CDATA[select item, index(item) from Order order\n"
+"    join order.items item\n"
+"where index(item) < 5]]>"
+msgstr ""
 
-#: index.docbook:748
+#. Tag: para
+#: query_hql.xml:748
+#, no-c-format
 msgid "Scalar SQL functions supported by the underlying database may be used"
-msgstr "La cl&#x00e1;usula group by"
+msgstr ""
+"Pueden usarse las funciones SQL escalares soportadas por la base de datos "
+"subyacente"
 
-#: index.docbook:752
+#. Tag: programlisting
+#: query_hql.xml:752
+#, no-c-format
 msgid "<![CDATA[from DomesticCat cat where upper(cat.name) like 'FRI%']]>"
-msgstr "Una consulta que devuelve valores agregados puede ser agrupada por cualquier propiedad de una clase devuelta o componentes:"
+msgstr ""
 
-#: index.docbook:754
-msgid "If you are not yet convinced by all this, think how much longer and less readable the following query would be in SQL:"
+#. Tag: para
+#: query_hql.xml:754
+#, no-c-format
+msgid ""
+"If you are not yet convinced by all this, think how much longer and less "
+"readable the following query would be in SQL:"
 msgstr ""
-      "<![CDATA[select cat.color, sum(cat.weight), count(cat) \n"
-      "from Cat cat\n"
-      "group by cat.color]]>"
+"Si aún no estás convencido de todo esto, piensa cuánto más largo y menos "
+"leíble sería la siguiente consulta en SQL:"
 
-#: index.docbook:759
+#. Tag: programlisting
+#: query_hql.xml:759
+#, no-c-format
 msgid ""
-      "<![CDATA[select cust\n"
-      "from Product prod,\n"
-      "    Store store\n"
-      "    inner join store.customers cust\n"
-      "where prod.name = 'widget'\n"
-      "    and store.location.name in ( 'Melbourne', 'Sydney' )\n"
-      "    and prod = all elements(cust.currentOrder.lineItems)]]>"
+"<![CDATA[select cust\n"
+"from Product prod,\n"
+"    Store store\n"
+"    inner join store.customers cust\n"
+"where prod.name = 'widget'\n"
+"    and store.location.name in ( 'Melbourne', 'Sydney' )\n"
+"    and prod = all elements(cust.currentOrder.lineItems)]]>"
 msgstr ""
-      "<![CDATA[select foo.id, avg(name), max(name) \n"
-      "from Foo foo join foo.names name\n"
-      "group by foo.id]]>"
 
-#: index.docbook:761
+#. Tag: para
+#: query_hql.xml:761
+#, no-c-format
 msgid "<emphasis>Hint:</emphasis> something like"
-msgstr "Se permite tambi&#x00e9;n una cl&#x00e1;usula <literal>having</literal>."
+msgstr "<emphasis>Ayuda:</emphasis> algo como"
 
-#: index.docbook:765
+#. Tag: programlisting
+#: query_hql.xml:765
+#, no-c-format
 msgid ""
-      "<![CDATA[SELECT cust.name, cust.address, cust.phone, cust.id, cust.current_order\n"
-      "FROM customers cust,\n"
-      "    stores store,\n"
-      "    locations loc,\n"
-      "    store_customers sc,\n"
-      "    product prod\n"
-      "WHERE prod.name = 'widget'\n"
-      "    AND store.loc_id = loc.id\n"
-      "    AND loc.name IN ( 'Melbourne', 'Sydney' )\n"
-      "    AND sc.store_id = store.id\n"
-      "    AND sc.cust_id = cust.id\n"
-      "    AND prod.id = ALL(\n"
-      "        SELECT item.prod_id\n"
-      "        FROM line_items item, orders o\n"
-      "        WHERE item.order_id = o.id\n"
-      "            AND cust.current_order = o.id\n"
-      "    )]]>"
+"<![CDATA[SELECT cust.name, cust.address, cust.phone, cust.id, cust."
+"current_order\n"
+"FROM customers cust,\n"
+"    stores store,\n"
+"    locations loc,\n"
+"    store_customers sc,\n"
+"    product prod\n"
+"WHERE prod.name = 'widget'\n"
+"    AND store.loc_id = loc.id\n"
+"    AND loc.name IN ( 'Melbourne', 'Sydney' )\n"
+"    AND sc.store_id = store.id\n"
+"    AND sc.cust_id = cust.id\n"
+"    AND prod.id = ALL(\n"
+"        SELECT item.prod_id\n"
+"        FROM line_items item, orders o\n"
+"        WHERE item.order_id = o.id\n"
+"            AND cust.current_order = o.id\n"
+"    )]]>"
 msgstr ""
-      "<![CDATA[select cat.color, sum(cat.weight), count(cat) \n"
-      "from Cat cat\n"
-      "group by cat.color \n"
-      "having cat.color in (eg.Color.TABBY, eg.Color.BLACK)]]>"
 
-#: index.docbook:770
+#. Tag: title
+#: query_hql.xml:770
+#, no-c-format
 msgid "The order by clause"
-msgstr "Las funciones y funciones de agregaci&#x00f3;n SQL est&#x00e1;n permitidas en las cl&#x00e1;usulas <literal>having</literal> y <literal>order by</literal>, si est&#x00e1;n soportadas por la base de datos subyacente (por ejemplo, no en MySQL)."
+msgstr "La cláusula order by"
 
-#: index.docbook:772
-msgid "The list returned by a query may be ordered by any property of a returned class or components:"
+#. Tag: para
+#: query_hql.xml:772
+#, no-c-format
+msgid ""
+"The list returned by a query may be ordered by any property of a returned "
+"class or components:"
 msgstr ""
-      "<![CDATA[select cat\n"
-      "from Cat cat\n"
-      "    join cat.kittens kitten\n"
-      "group by cat\n"
-      "having avg(kitten.weight) > 100\n"
-      "order by count(kitten) asc, sum(kitten.weight) desc]]>"
+"La lista devuelta por una consulta puede ser ordenada por cualquier "
+"propiedad de una clase devuelta o componentes:"
 
-#: index.docbook:776
+#. Tag: programlisting
+#: query_hql.xml:776
+#, no-c-format
 msgid ""
-      "<![CDATA[from DomesticCat cat\n"
-      "order by cat.name asc, cat.weight desc, cat.birthdate]]>"
-msgstr "Nota que ni la cl&#x00e1;usula <literal>group by</literal> ni la cl&#x00e1;usula <literal>order by</literal> pueden contener expresiones aritm&#x00e9;ticas."
+"<![CDATA[from DomesticCat cat\n"
+"order by cat.name asc, cat.weight desc, cat.birthdate]]>"
+msgstr ""
 
-#: index.docbook:778
-msgid "The optional <literal>asc</literal> or <literal>desc</literal> indicate ascending or descending order respectively."
-msgstr "Subconsultas"
+#. Tag: para
+#: query_hql.xml:778
+#, no-c-format
+msgid ""
+"The optional <literal>asc</literal> or <literal>desc</literal> indicate "
+"ascending or descending order respectively."
+msgstr ""
+"Los <literal>asc</literal> o <literal>desc</literal> opcionales indican "
+"ordenamiento ascendente o descendente respectivamente."
 
-#: index.docbook:785
+#. Tag: title
+#: query_hql.xml:785
+#, no-c-format
 msgid "The group by clause"
-msgstr "Para bases de datos que soportan subconsultas, Hibernate soporta subconsultas dentro de consultas. Una subconsulta debe ser encerrada entre par&#x00e9;ntesis (frecuentemente por una llamada a una funci&#x00f3;n de agregaci&#x00f3;n SQL). Incluso se permiten subconsultas correlacionadas (subconsultas que hacen referencia a un alias en la consulta exterior)."
+msgstr "La cláusula group by"
 
-#: index.docbook:787
-msgid "A query that returns aggregate values may be grouped by any property of a returned class or components:"
+#. Tag: para
+#: query_hql.xml:787
+#, no-c-format
+msgid ""
+"A query that returns aggregate values may be grouped by any property of a "
+"returned class or components:"
 msgstr ""
-      "<![CDATA[from Cat as fatcat \n"
-      "where fatcat.weight > ( \n"
-      "    select avg(cat.weight) from DomesticCat cat \n"
-      ")]]>"
+"Una consulta que devuelve valores agregados puede ser agrupada por cualquier "
+"propiedad de una clase devuelta o componentes:"
 
-#: index.docbook:791
+#. Tag: programlisting
+#: query_hql.xml:791
+#, no-c-format
 msgid ""
-      "<![CDATA[select cat.color, sum(cat.weight), count(cat)\n"
-      "from Cat cat\n"
-      "group by cat.color]]>"
+"<![CDATA[select cat.color, sum(cat.weight), count(cat)\n"
+"from Cat cat\n"
+"group by cat.color]]>"
 msgstr ""
-      "<![CDATA[from DomesticCat as cat \n"
-      "where cat.name = some ( \n"
-      "    select name.nickName from Name as name \n"
-      ")]]>"
 
-#: index.docbook:793
+#. Tag: programlisting
+#: query_hql.xml:793
+#, no-c-format
 msgid ""
-      "<![CDATA[select foo.id, avg(name), max(name)\n"
-      "from Foo foo join foo.names name\n"
-      "group by foo.id]]>"
+"<![CDATA[select foo.id, avg(name), max(name)\n"
+"from Foo foo join foo.names name\n"
+"group by foo.id]]>"
 msgstr ""
-      "<![CDATA[from Cat as cat \n"
-      "where not exists ( \n"
-      "    from Cat as mate where mate.mate = cat \n"
-      ")]]>"
 
-#: index.docbook:795
+#. Tag: para
+#: query_hql.xml:795
+#, no-c-format
 msgid "A <literal>having</literal> clause is also allowed."
+msgstr "Se permite también una cláusula <literal>having</literal>."
+
+#. Tag: programlisting
+#: query_hql.xml:799
+#, no-c-format
+msgid ""
+"<![CDATA[select cat.color, sum(cat.weight), count(cat)\n"
+"from Cat cat\n"
+"group by cat.color\n"
+"having cat.color in (eg.Color.TABBY, eg.Color.BLACK)]]>"
 msgstr ""
-      "<![CDATA[from DomesticCat as cat \n"
-      "where cat.name not in ( \n"
-      "    select name.nickName from Name as name \n"
-      ")]]>"
 
-#: index.docbook:799
+#. Tag: para
+#: query_hql.xml:801
+#, no-c-format
 msgid ""
-      "<![CDATA[select cat.color, sum(cat.weight), count(cat)\n"
-      "from Cat cat\n"
-      "group by cat.color\n"
-      "having cat.color in (eg.Color.TABBY, eg.Color.BLACK)]]>"
-msgstr "Para las subconsultas con m&#x00e1;s de una expresi&#x00f3;n en la lista de selecci&#x00f3;n, puedes usar un constructor de tuplas:"
+"SQL functions and aggregate functions are allowed in the <literal>having</"
+"literal> and <literal>order by</literal> clauses, if supported by the "
+"underlying database (eg. not in MySQL)."
+msgstr ""
+"Las funciones y funciones de agregación SQL están permitidas en las "
+"cláusulas <literal>having</literal> y <literal>order by</literal>, si están "
+"soportadas por la base de datos subyacente (por ejemplo, no en MySQL)."
 
-#: index.docbook:801
-msgid "SQL functions and aggregate functions are allowed in the <literal>having</literal> and <literal>order by</literal> clauses, if supported by the underlying database (eg. not in MySQL)."
+#. Tag: programlisting
+#: query_hql.xml:807
+#, no-c-format
+msgid ""
+"<![CDATA[select cat\n"
+"from Cat cat\n"
+"    join cat.kittens kitten\n"
+"group by cat.id, cat.name, cat.other, cat.properties\n"
+"having avg(kitten.weight) > 100\n"
+"order by count(kitten) asc, sum(kitten.weight) desc]]>"
 msgstr ""
-      "<![CDATA[from Cat as cat \n"
-      "where not ( cat.name, cat.color ) in ( \n"
-      "    select cat.name, cat.color from DomesticCat cat \n"
-      ")]]>"
 
-#: index.docbook:807
+#. Tag: para
+#: query_hql.xml:809
+#, no-c-format
 msgid ""
-      "<![CDATA[select cat\n"
-      "from Cat cat\n"
-      "    join cat.kittens kitten\n"
-      "group by cat.id, cat.name, cat.other, cat.properties\n"
-      "having avg(kitten.weight) > 100\n"
-      "order by count(kitten) asc, sum(kitten.weight) desc]]>"
-msgstr "Nota que en algunas bases de datos (pero no en Oracle o HSQL), puedes usar constructores de tuplar en otros contextos, por ejemplo al consultar componentes o tipos de usuario compuestos:"
+"Note that neither the <literal>group by</literal> clause nor the "
+"<literal>order by</literal> clause may contain arithmetic expressions. Also "
+"note that Hibernate currently does not expand a grouped entity, so you can't "
+"write <literal>group by cat</literal> if all properties of <literal>cat</"
+"literal> are non-aggregated. You have to list all non-aggregated properties "
+"explicitly."
+msgstr ""
+"Nota que ni la cláusula <literal>group by</literal> ni la cláusula "
+"<literal>order by</literal> pueden contener expresiones aritméticas."
 
-#: index.docbook:809
-msgid "Note that neither the <literal>group by</literal> clause nor the <literal>order by</literal> clause may contain arithmetic expressions. Also note that Hibernate currently does not expand a grouped entity, so you can't write <literal>group by cat</literal> if all properties of <literal>cat</literal> are non-aggregated. You have to list all non-aggregated properties explicitly."
-msgstr "<![CDATA[from Person where name = ('Gavin', 'A', 'King')]]>"
-
-#: index.docbook:821
+#. Tag: title
+#: query_hql.xml:821
+#, no-c-format
 msgid "Subqueries"
-msgstr "Que es equivalente a la m&#x00e1;s verborr&#x00e1;gica:"
+msgstr "Subconsultas"
 
-#: index.docbook:823
-msgid "For databases that support subselects, Hibernate supports subqueries within queries. A subquery must be surrounded by parentheses (often by an SQL aggregate function call). Even correlated subqueries (subqueries that refer to an alias in the outer query) are allowed."
-msgstr "<![CDATA[from Person where name.first = 'Gavin' and name.initial = 'A' and name.last = 'King')]]>"
+#. Tag: para
+#: query_hql.xml:823
+#, no-c-format
+msgid ""
+"For databases that support subselects, Hibernate supports subqueries within "
+"queries. A subquery must be surrounded by parentheses (often by an SQL "
+"aggregate function call). Even correlated subqueries (subqueries that refer "
+"to an alias in the outer query) are allowed."
+msgstr ""
+"Para bases de datos que soportan subconsultas, Hibernate soporta "
+"subconsultas dentro de consultas. Una subconsulta debe ser encerrada entre "
+"paréntesis (frecuentemente por una llamada a una función de agregación SQL). "
+"Incluso se permiten subconsultas correlacionadas (subconsultas que hacen "
+"referencia a un alias en la consulta exterior)."
 
-#: index.docbook:829
+#. Tag: programlisting
+#: query_hql.xml:829
+#, no-c-format
 msgid ""
-      "<![CDATA[from Cat as fatcat\n"
-      "where fatcat.weight > (\n"
-      "    select avg(cat.weight) from DomesticCat cat\n"
-      ")]]>"
-msgstr "Existen dos buenas razones por las cuales podr&#x00ed;as no querer hacer este tipo de cosa: primero, no es completamente portable entre plataformas de base de datos; segundo, la consulta ahora es dependiente del orden de propiedades en el documento de mapeo."
+"<![CDATA[from Cat as fatcat\n"
+"where fatcat.weight > (\n"
+"    select avg(cat.weight) from DomesticCat cat\n"
+")]]>"
+msgstr ""
 
-#: index.docbook:831
+#. Tag: programlisting
+#: query_hql.xml:831
+#, no-c-format
 msgid ""
-      "<![CDATA[from DomesticCat as cat\n"
-      "where cat.name = some (\n"
-      "    select name.nickName from Name as name\n"
-      ")]]>"
-msgstr "Ejemplos de HQL"
+"<![CDATA[from DomesticCat as cat\n"
+"where cat.name = some (\n"
+"    select name.nickName from Name as name\n"
+")]]>"
+msgstr ""
 
-#: index.docbook:833
+#. Tag: programlisting
+#: query_hql.xml:833
+#, no-c-format
 msgid ""
-      "<![CDATA[from Cat as cat\n"
-      "where not exists (\n"
-      "    from Cat as mate where mate.mate = cat\n"
-      ")]]>"
-msgstr "Las consultas de Hibernate pueden ser abolutamente potentes y complejas, De hecho, el poder del lenguaje de consulta es uno de los puntos principales de venta de Hibernate. He aqu&#x00ed; algunos consultas de ejemplo muy similares a consultas que he usado en un proyecto reciente. &#x00a1;Nota que la mayor&#x00ed;a de las consultas que escribir&#x00e1;s som mucho m&#x00e1;s simples que estas!"
+"<![CDATA[from Cat as cat\n"
+"where not exists (\n"
+"    from Cat as mate where mate.mate = cat\n"
+")]]>"
+msgstr ""
 
-#: index.docbook:835
+#. Tag: programlisting
+#: query_hql.xml:835
+#, no-c-format
 msgid ""
-      "<![CDATA[from DomesticCat as cat\n"
-      "where cat.name not in (\n"
-      "    select name.nickName from Name as name\n"
-      ")]]>"
-msgstr "La siguiente consulta devuelve el order id, n&#x00fa;mero de items y valor total de la orden para todas las ordenes inpagas de un cliente en particular y valor total m&#x00ed;nimo dados, ordenando los resultados por valor total. Al determinar los precios, usa el cat&#x00e1;logo actual. La consulta SQL resultante, contra las tablas <literal>ORDER</literal>, <literal>ORDER_LINE</literal>, <literal>PRODUCT</literal>, <literal>CATALOG</literal> and <literal>PRICE</literal> tiene cuatro joins interiores y una subselect (no correlacionada)."
+"<![CDATA[from DomesticCat as cat\n"
+"where cat.name not in (\n"
+"    select name.nickName from Name as name\n"
+")]]>"
+msgstr ""
 
-#: index.docbook:837
+#. Tag: programlisting
+#: query_hql.xml:837
+#, no-c-format
 msgid ""
-      "<![CDATA[select cat.id, (select max(kit.weight) from cat.kitten kit)\n"
-      "from Cat as cat]]>"
+"<![CDATA[select cat.id, (select max(kit.weight) from cat.kitten kit)\n"
+"from Cat as cat]]>"
 msgstr ""
-      "<![CDATA[select order.id, sum(price.amount), count(item)\n"
-      "from Order as order\n"
-      "    join order.lineItems as item\n"
-      "    join item.product as product,\n"
-      "    Catalog as catalog\n"
-      "    join catalog.prices as price\n"
-      "where order.paid = false\n"
-      "    and order.customer = :customer\n"
-      "    and price.product = product\n"
-      "    and catalog.effectiveDate < sysdate\n"
-      "    and catalog.effectiveDate >= all (\n"
-      "        select cat.effectiveDate \n"
-      "        from Catalog as cat\n"
-      "        where cat.effectiveDate < sysdate\n"
-      "    )\n"
-      "group by order\n"
-      "having sum(price.amount) > :minAmount\n"
-      "order by sum(price.amount) desc]]>"
 
-#: index.docbook:839
+#. Tag: para
+#: query_hql.xml:839
+#, no-c-format
 msgid "Note that HQL subqueries may occur only in the select or where clauses."
-msgstr "&#x00a1;Qu&#x00e9; monstruo! Realmente, en la vida real, no estoy muy afilado en subconsultas, de modo que mi consulta fue realmente algo como esto:"
+msgstr ""
+"Note that HQL subqueries may occur only in the select or where clauses."
 
-#: index.docbook:843
-msgid "Note that subqueries can also utilize <literal>row value constructor</literal> syntax. See <xref linkend=\"queryhql-tuple\"/> for more details."
+#. Tag: para
+#: query_hql.xml:843
+#, no-c-format
+msgid ""
+"Note that subqueries can also utilize <literal>row value constructor</"
+"literal> syntax. See <xref linkend=\"queryhql-tuple\"/> for more details."
 msgstr ""
-      "<![CDATA[select order.id, sum(price.amount), count(item)\n"
-      "from Order as order\n"
-      "    join order.lineItems as item\n"
-      "    join item.product as product,\n"
-      "    Catalog as catalog\n"
-      "    join catalog.prices as price\n"
-      "where order.paid = false\n"
-      "    and order.customer = :customer\n"
-      "    and price.product = product\n"
-      "    and catalog = :currentCatalog\n"
-      "group by order\n"
-      "having sum(price.amount) > :minAmount\n"
-      "order by sum(price.amount) desc]]>"
+"Note that subqueries can also utilize <literal>row value constructor</"
+"literal> syntax. See <xref linkend=\"queryhql-tuple\"/> for more details."
 
-#: index.docbook:851
+#. Tag: title
+#: query_hql.xml:851
+#, no-c-format
 msgid "HQL examples"
-msgstr "La pr&#x00f3;xima consulta cuenta el n&#x00fa;mero de pagos en cada estado, excluyendo todos los pagos en el estado <literal>AWAITING_APPROVAL</literal> donde el estado m&#x00e1;s reciente fue hecho por el usuario actual. Se traduce en una consulta SQL con dos joins interiores y una subselect correlacionada contra las tablas <literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal> y <literal>PAYMENT_STATUS_CHANGE</literal>."
+msgstr "Ejemplos de HQL"
 
-#: index.docbook:853
-msgid "Hibernate queries can be quite powerful and complex. In fact, the power of the query language is one of Hibernate's main selling points. Here are some example queries very similar to queries that I used on a recent project. Note that most queries you will write are much simpler than these!"
+#. Tag: para
+#: query_hql.xml:853
+#, no-c-format
+msgid ""
+"Hibernate queries can be quite powerful and complex. In fact, the power of "
+"the query language is one of Hibernate's main selling points. Here are some "
+"example queries very similar to queries that I used on a recent project. "
+"Note that most queries you will write are much simpler than these!"
 msgstr ""
-      "<![CDATA[select count(payment), status.name \n"
-      "from Payment as payment \n"
-      "    join payment.currentStatus as status\n"
-      "    join payment.statusChanges as statusChange\n"
-      "where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
-      "    or (\n"
-      "        statusChange.timeStamp = ( \n"
-      "            select max(change.timeStamp) \n"
-      "            from PaymentStatusChange change \n"
-      "            where change.payment = payment\n"
-      "        )\n"
-      "        and statusChange.user <> :currentUser\n"
-      "    )\n"
-      "group by status.name, status.sortOrder\n"
-      "order by status.sortOrder]]>"
+"Las consultas de Hibernate pueden ser abolutamente potentes y complejas, De "
+"hecho, el poder del lenguaje de consulta es uno de los puntos principales de "
+"venta de Hibernate. He aquí algunos consultas de ejemplo muy similares a "
+"consultas que he usado en un proyecto reciente. ¡Nota que la mayoría de las "
+"consultas que escribirás som mucho más simples que estas!"
 
-#: index.docbook:859
-msgid "The following query returns the order id, number of items and total value of the order for all unpaid orders for a particular customer and given minimum total value, ordering the results by total value. In determining the prices, it uses the current catalog. The resulting SQL query, against the <literal>ORDER</literal>, <literal>ORDER_LINE</literal>, <literal>PRODUCT</literal>, <literal>CATALOG</literal> and <literal>PRICE</literal> tables has four inner joins and an (uncorrelated) subselect."
-msgstr "Si hubiese mapeado la colecci&#x00f3;n <literal>statusChanges</literal> como una lista, en vez de un conjunto, la consulta habr&#x00ed;a sido mucho m&#x00e1;s simple de escribir."
+#. Tag: para
+#: query_hql.xml:859
+#, no-c-format
+msgid ""
+"The following query returns the order id, number of items and total value of "
+"the order for all unpaid orders for a particular customer and given minimum "
+"total value, ordering the results by total value. In determining the prices, "
+"it uses the current catalog. The resulting SQL query, against the "
+"<literal>ORDER</literal>, <literal>ORDER_LINE</literal>, <literal>PRODUCT</"
+"literal>, <literal>CATALOG</literal> and <literal>PRICE</literal> tables has "
+"four inner joins and an (uncorrelated) subselect."
+msgstr ""
+"La siguiente consulta devuelve el order id, número de items y valor total de "
+"la orden para todas las ordenes inpagas de un cliente en particular y valor "
+"total mínimo dados, ordenando los resultados por valor total. Al determinar "
+"los precios, usa el catálogo actual. La consulta SQL resultante, contra las "
+"tablas <literal>ORDER</literal>, <literal>ORDER_LINE</literal>, "
+"<literal>PRODUCT</literal>, <literal>CATALOG</literal> and <literal>PRICE</"
+"literal> tiene cuatro joins interiores y una subselect (no correlacionada)."
 
-#: index.docbook:868
+#. Tag: programlisting
+#: query_hql.xml:868
+#, no-c-format
 msgid ""
-      "<![CDATA[select order.id, sum(price.amount), count(item)\n"
-      "from Order as order\n"
-      "    join order.lineItems as item\n"
-      "    join item.product as product,\n"
-      "    Catalog as catalog\n"
-      "    join catalog.prices as price\n"
-      "where order.paid = false\n"
-      "    and order.customer = :customer\n"
-      "    and price.product = product\n"
-      "    and catalog.effectiveDate < sysdate\n"
-      "    and catalog.effectiveDate >= all (\n"
-      "        select cat.effectiveDate\n"
-      "        from Catalog as cat\n"
-      "        where cat.effectiveDate < sysdate\n"
-      "    )\n"
-      "group by order\n"
-      "having sum(price.amount) > :minAmount\n"
-      "order by sum(price.amount) desc]]>"
+"<![CDATA[select order.id, sum(price.amount), count(item)\n"
+"from Order as order\n"
+"    join order.lineItems as item\n"
+"    join item.product as product,\n"
+"    Catalog as catalog\n"
+"    join catalog.prices as price\n"
+"where order.paid = false\n"
+"    and order.customer = :customer\n"
+"    and price.product = product\n"
+"    and catalog.effectiveDate < sysdate\n"
+"    and catalog.effectiveDate >= all (\n"
+"        select cat.effectiveDate\n"
+"        from Catalog as cat\n"
+"        where cat.effectiveDate < sysdate\n"
+"    )\n"
+"group by order\n"
+"having sum(price.amount) > :minAmount\n"
+"order by sum(price.amount) desc]]>"
 msgstr ""
-      "<![CDATA[select count(payment), status.name \n"
-      "from Payment as payment\n"
-      "    join payment.currentStatus as status\n"
-      "where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
-      "    or payment.statusChanges[ maxIndex(payment.statusChanges) ].user <> :currentUser\n"
-      "group by status.name, status.sortOrder\n"
-      "order by status.sortOrder]]>"
 
-#: index.docbook:870
-msgid "What a monster! Actually, in real life, I'm not very keen on subqueries, so my query was really more like this:"
-msgstr "La pr&#x00f3;xima consulta usa la funci&#x00f3;n <literal>isNull()</literal> de MS SQL Server para devolver todas las cuentas y pagos inpagos de la organizaci&#x00f3;n a la que pertenece el usuario actual. Se traduce en una consulta SQL con tres joins interiores, un join exterior y una subconsulta contra las tablas <literal>ACCOUNT</literal>, <literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal>, <literal>ACCOUNT_TYPE</literal>, <literal>ORGANIZATION</literal> y <literal>ORG_USER</literal>."
+#. Tag: para
+#: query_hql.xml:870
+#, no-c-format
+msgid ""
+"What a monster! Actually, in real life, I'm not very keen on subqueries, so "
+"my query was really more like this:"
+msgstr ""
+"¡Qué monstruo! Realmente, en la vida real, no estoy muy afilado en "
+"subconsultas, de modo que mi consulta fue realmente algo como esto:"
 
-#: index.docbook:875
+#. Tag: programlisting
+#: query_hql.xml:875
+#, no-c-format
 msgid ""
-      "<![CDATA[select order.id, sum(price.amount), count(item)\n"
-      "from Order as order\n"
-      "    join order.lineItems as item\n"
-      "    join item.product as product,\n"
-      "    Catalog as catalog\n"
-      "    join catalog.prices as price\n"
-      "where order.paid = false\n"
-      "    and order.customer = :customer\n"
-      "    and price.product = product\n"
-      "    and catalog = :currentCatalog\n"
-      "group by order\n"
-      "having sum(price.amount) > :minAmount\n"
-      "order by sum(price.amount) desc]]>"
+"<![CDATA[select order.id, sum(price.amount), count(item)\n"
+"from Order as order\n"
+"    join order.lineItems as item\n"
+"    join item.product as product,\n"
+"    Catalog as catalog\n"
+"    join catalog.prices as price\n"
+"where order.paid = false\n"
+"    and order.customer = :customer\n"
+"    and price.product = product\n"
+"    and catalog = :currentCatalog\n"
+"group by order\n"
+"having sum(price.amount) > :minAmount\n"
+"order by sum(price.amount) desc]]>"
 msgstr ""
-      "<![CDATA[select account, payment\n"
-      "from Account as account\n"
-      "    left outer join account.payments as payment\n"
-      "where :currentUser in elements(account.holder.users)\n"
-      "    and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, PaymentStatus.UNPAID)\n"
-      "order by account.type.sortOrder, account.accountNumber, payment.dueDate]]>"
 
-#: index.docbook:877
-msgid "The next query counts the number of payments in each status, excluding all payments in the <literal>AWAITING_APPROVAL</literal> status where the most recent status change was made by the current user. It translates to an SQL query with two inner joins and a correlated subselect against the <literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal> and <literal>PAYMENT_STATUS_CHANGE</literal> tables."
-msgstr "Para algunas bases de datos, necesitar&#x00ed;amos eliminar la subselect (correlacionada)."
+#. Tag: para
+#: query_hql.xml:877
+#, no-c-format
+msgid ""
+"The next query counts the number of payments in each status, excluding all "
+"payments in the <literal>AWAITING_APPROVAL</literal> status where the most "
+"recent status change was made by the current user. It translates to an SQL "
+"query with two inner joins and a correlated subselect against the "
+"<literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal> and "
+"<literal>PAYMENT_STATUS_CHANGE</literal> tables."
+msgstr ""
+"La próxima consulta cuenta el número de pagos en cada estado, excluyendo "
+"todos los pagos en el estado <literal>AWAITING_APPROVAL</literal> donde el "
+"estado más reciente fue hecho por el usuario actual. Se traduce en una "
+"consulta SQL con dos joins interiores y una subselect correlacionada contra "
+"las tablas <literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal> y "
+"<literal>PAYMENT_STATUS_CHANGE</literal>."
 
-#: index.docbook:885
+#. Tag: programlisting
+#: query_hql.xml:885
+#, no-c-format
 msgid ""
-      "<![CDATA[select count(payment), status.name\n"
-      "from Payment as payment\n"
-      "    join payment.currentStatus as status\n"
-      "    join payment.statusChanges as statusChange\n"
-      "where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
-      "    or (\n"
-      "        statusChange.timeStamp = (\n"
-      "            select max(change.timeStamp)\n"
-      "            from PaymentStatusChange change\n"
-      "            where change.payment = payment\n"
-      "        )\n"
-      "        and statusChange.user <> :currentUser\n"
-      "    )\n"
-      "group by status.name, status.sortOrder\n"
-      "order by status.sortOrder]]>"
+"<![CDATA[select count(payment), status.name\n"
+"from Payment as payment\n"
+"    join payment.currentStatus as status\n"
+"    join payment.statusChanges as statusChange\n"
+"where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
+"    or (\n"
+"        statusChange.timeStamp = (\n"
+"            select max(change.timeStamp)\n"
+"            from PaymentStatusChange change\n"
+"            where change.payment = payment\n"
+"        )\n"
+"        and statusChange.user <> :currentUser\n"
+"    )\n"
+"group by status.name, status.sortOrder\n"
+"order by status.sortOrder]]>"
 msgstr ""
-      "<![CDATA[select account, payment\n"
-      "from Account as account\n"
-      "    join account.holder.users as user\n"
-      "    left outer join account.payments as payment\n"
-      "where :currentUser = user\n"
-      "    and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, PaymentStatus.UNPAID)\n"
-      "order by account.type.sortOrder, account.accountNumber, payment.dueDate]]>"
 
-#: index.docbook:887
-msgid "If I would have mapped the <literal>statusChanges</literal> collection as a list, instead of a set, the query would have been much simpler to write."
-msgstr "Sentencias UPDATE y DELETE masivas"
+#. Tag: para
+#: query_hql.xml:887
+#, no-c-format
+msgid ""
+"If I would have mapped the <literal>statusChanges</literal> collection as a "
+"list, instead of a set, the query would have been much simpler to write."
+msgstr ""
+"Si hubiese mapeado la colección <literal>statusChanges</literal> como una "
+"lista, en vez de un conjunto, la consulta habría sido mucho más simple de "
+"escribir."
 
-#: index.docbook:892
+#. Tag: programlisting
+#: query_hql.xml:892
+#, no-c-format
 msgid ""
-      "<![CDATA[select count(payment), status.name\n"
-      "from Payment as payment\n"
-      "    join payment.currentStatus as status\n"
-      "where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
-      "    or payment.statusChanges[ maxIndex(payment.statusChanges) ].user <> :currentUser\n"
-      "group by status.name, status.sortOrder\n"
-      "order by status.sortOrder]]>"
-msgstr "HQL soporta ahora sentencias UPDATE y DELETE en HQL. Ver <xref linkend=\"batch-direct\"/> para detalles."
+"<![CDATA[select count(payment), status.name\n"
+"from Payment as payment\n"
+"    join payment.currentStatus as status\n"
+"where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
+"    or payment.statusChanges[ maxIndex(payment.statusChanges) ].user <> :"
+"currentUser\n"
+"group by status.name, status.sortOrder\n"
+"order by status.sortOrder]]>"
+msgstr ""
 
-#: index.docbook:894
-msgid "The next query uses the MS SQL Server <literal>isNull()</literal> function to return all the accounts and unpaid payments for the organization to which the current user belongs. It translates to an SQL query with three inner joins, an outer join and a subselect against the <literal>ACCOUNT</literal>, <literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal>, <literal>ACCOUNT_TYPE</literal>, <literal>ORGANIZATION</literal> and <literal>ORG_USER</literal> tables."
-msgstr "Consejos y Trucos"
+#. Tag: para
+#: query_hql.xml:894
+#, no-c-format
+msgid ""
+"The next query uses the MS SQL Server <literal>isNull()</literal> function "
+"to return all the accounts and unpaid payments for the organization to which "
+"the current user belongs. It translates to an SQL query with three inner "
+"joins, an outer join and a subselect against the <literal>ACCOUNT</literal>, "
+"<literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal>, "
+"<literal>ACCOUNT_TYPE</literal>, <literal>ORGANIZATION</literal> and "
+"<literal>ORG_USER</literal> tables."
+msgstr ""
+"La próxima consulta usa la función <literal>isNull()</literal> de MS SQL "
+"Server para devolver todas las cuentas y pagos inpagos de la organización a "
+"la que pertenece el usuario actual. Se traduce en una consulta SQL con tres "
+"joins interiores, un join exterior y una subconsulta contra las tablas "
+"<literal>ACCOUNT</literal>, <literal>PAYMENT</literal>, "
+"<literal>PAYMENT_STATUS</literal>, <literal>ACCOUNT_TYPE</literal>, "
+"<literal>ORGANIZATION</literal> y <literal>ORG_USER</literal>."
 
-#: index.docbook:903
+#. Tag: programlisting
+#: query_hql.xml:903
+#, no-c-format
 msgid ""
-      "<![CDATA[select account, payment\n"
-      "from Account as account\n"
-      "    left outer join account.payments as payment\n"
-      "where :currentUser in elements(account.holder.users)\n"
-      "    and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, PaymentStatus.UNPAID)\n"
-      "order by account.type.sortOrder, account.accountNumber, payment.dueDate]]>"
-msgstr "Puedes contar el n&#x00fa;mero de resultados de una consulta sin devolverlos realmente:"
+"<![CDATA[select account, payment\n"
+"from Account as account\n"
+"    left outer join account.payments as payment\n"
+"where :currentUser in elements(account.holder.users)\n"
+"    and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
+"PaymentStatus.UNPAID)\n"
+"order by account.type.sortOrder, account.accountNumber, payment.dueDate]]>"
+msgstr ""
 
-#: index.docbook:905
-msgid "For some databases, we would need to do away with the (correlated) subselect."
-msgstr "<![CDATA[( (Integer) session.createQuery(\"select count(*) from ....\").iterate().next() ).intValue()]]>"
+#. Tag: para
+#: query_hql.xml:905
+#, no-c-format
+msgid ""
+"For some databases, we would need to do away with the (correlated) subselect."
+msgstr ""
+"Para algunas bases de datos, necesitaríamos eliminar la subselect "
+"(correlacionada)."
 
-#: index.docbook:909
+#. Tag: programlisting
+#: query_hql.xml:909
+#, no-c-format
 msgid ""
-      "<![CDATA[select account, payment\n"
-      "from Account as account\n"
-      "    join account.holder.users as user\n"
-      "    left outer join account.payments as payment\n"
-      "where :currentUser = user\n"
-      "    and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, PaymentStatus.UNPAID)\n"
-      "order by account.type.sortOrder, account.accountNumber, payment.dueDate]]>"
-msgstr "Para ordenar un resultado por el tama&#x00f1;o de una colecci&#x00f3;n, usa la siguiente consulta:"
+"<![CDATA[select account, payment\n"
+"from Account as account\n"
+"    join account.holder.users as user\n"
+"    left outer join account.payments as payment\n"
+"where :currentUser = user\n"
+"    and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
+"PaymentStatus.UNPAID)\n"
+"order by account.type.sortOrder, account.accountNumber, payment.dueDate]]>"
+msgstr ""
 
-#: index.docbook:914
+#. Tag: title
+#: query_hql.xml:914
+#, no-c-format
 msgid "Bulk update and delete"
+msgstr "Sentencias UPDATE y DELETE masivas"
+
+#. Tag: para
+#: query_hql.xml:916
+#, no-c-format
+msgid ""
+"HQL now supports <literal>update</literal>, <literal>delete</literal> and "
+"<literal>insert ... select ...</literal> statements. See <xref linkend="
+"\"batch-direct\"/> for details."
 msgstr ""
-      "<![CDATA[select usr.id, usr.name\n"
-      "from User as usr \n"
-      "    left join usr.messages as msg\n"
-      "group by usr.id, usr.name\n"
-      "order by count(msg)]]>"
+"HQL soporta ahora sentencias UPDATE y DELETE en HQL. Ver <xref linkend="
+"\"batch-direct\"/> para detalles."
 
-#: index.docbook:916
-msgid "HQL now supports <literal>update</literal>, <literal>delete</literal> and <literal>insert ... select ...</literal> statements. See <xref linkend=\"batch-direct\"/> for details."
-msgstr "Si tu base de datos soporta subselects, puedes colocar una condici&#x00f3;n sobre el tama&#x00f1;o de selecci&#x00f3;n en la cl&#x00e1;usula where de tu consulta:"
-
-#: index.docbook:924
+#. Tag: title
+#: query_hql.xml:924
+#, no-c-format
 msgid "Tips &amp; Tricks"
-msgstr "<![CDATA[from User usr where size(usr.messages) >= 1]]>"
+msgstr "Consejos y Trucos"
 
-#: index.docbook:926
-msgid "You can count the number of query results without actually returning them:"
-msgstr "Si tu base de datos no soporta subselects, usa la siguiente consulta:"
+#. Tag: para
+#: query_hql.xml:926
+#, no-c-format
+msgid ""
+"You can count the number of query results without actually returning them:"
+msgstr ""
+"Puedes contar el número de resultados de una consulta sin devolverlos "
+"realmente:"
 
-#: index.docbook:930
-msgid "<![CDATA[( (Integer) session.createQuery(\"select count(*) from ....\").iterate().next() ).intValue()]]>"
+#. Tag: programlisting
+#: query_hql.xml:930
+#, no-c-format
+msgid ""
+"<![CDATA[( (Integer) session.createQuery(\"select count(*) from ....\")."
+"iterate().next() ).intValue()]]>"
 msgstr ""
-      "<![CDATA[select usr.id, usr.name\n"
-      "from User usr.name\n"
-      "    join usr.messages msg\n"
-      "group by usr.id, usr.name\n"
-      "having count(msg) >= 1]]>"
 
-#: index.docbook:932
+#. Tag: para
+#: query_hql.xml:932
+#, no-c-format
 msgid "To order a result by the size of a collection, use the following query:"
-msgstr "Como esta soluci&#x00f3;n no puede devolver un <literal>User</literal> con cero mensajes debido a la uni&#x00f3;n interior, la siguiente forma es tambi&#x00e9;n &#x00fa;til:"
+msgstr ""
+"Para ordenar un resultado por el tamaño de una colección, usa la siguiente "
+"consulta:"
 
-#: index.docbook:936
+#. Tag: programlisting
+#: query_hql.xml:936
+#, no-c-format
 msgid ""
-      "<![CDATA[select usr.id, usr.name\n"
-      "from User as usr\n"
-      "    left join usr.messages as msg\n"
-      "group by usr.id, usr.name\n"
-      "order by count(msg)]]>"
+"<![CDATA[select usr.id, usr.name\n"
+"from User as usr\n"
+"    left join usr.messages as msg\n"
+"group by usr.id, usr.name\n"
+"order by count(msg)]]>"
 msgstr ""
-      "<![CDATA[select usr.id, usr.name\n"
-      "from User as usr\n"
-      "    left join usr.messages as msg\n"
-      "group by usr.id, usr.name\n"
-      "having count(msg) = 0]]>"
 
-#: index.docbook:938
-msgid "If your database supports subselects, you can place a condition upon selection size in the where clause of your query:"
-msgstr "Las propiedades de un JavaBean pueden ser ligadas al par&#x00e1;metros de consulta con nombre:"
+#. Tag: para
+#: query_hql.xml:938
+#, no-c-format
+msgid ""
+"If your database supports subselects, you can place a condition upon "
+"selection size in the where clause of your query:"
+msgstr ""
+"Si tu base de datos soporta subselects, puedes colocar una condición sobre "
+"el tamaño de selección en la cláusula where de tu consulta:"
 
-#: index.docbook:943
+#. Tag: programlisting
+#: query_hql.xml:943
+#, no-c-format
 msgid "<![CDATA[from User usr where size(usr.messages) >= 1]]>"
 msgstr ""
-      "<![CDATA[Query q = s.createQuery(\"from foo Foo as foo where foo.name=:name and foo.size=:size\");\n"
-      "q.setProperties(fooBean); // fooBean has getName() and getSize()\n"
-      "List foos = q.list();]]>"
 
-#: index.docbook:945
+#. Tag: para
+#: query_hql.xml:945
+#, no-c-format
 msgid "If your database doesn't support subselects, use the following query:"
-msgstr "Las colecciones son paginables usando la interface <literal>Query</literal> con un filtro:"
+msgstr "Si tu base de datos no soporta subselects, usa la siguiente consulta:"
 
-#: index.docbook:949
+#. Tag: programlisting
+#: query_hql.xml:949
+#, no-c-format
 msgid ""
-      "<![CDATA[select usr.id, usr.name\n"
-      "from User usr.name\n"
-      "    join usr.messages msg\n"
-      "group by usr.id, usr.name\n"
-      "having count(msg) >= 1]]>"
+"<![CDATA[select usr.id, usr.name\n"
+"from User usr.name\n"
+"    join usr.messages msg\n"
+"group by usr.id, usr.name\n"
+"having count(msg) >= 1]]>"
 msgstr ""
-      "<![CDATA[Query q = s.createFilter( collection, \"\" ); // the trivial filter\n"
-      "q.setMaxResults(PAGE_SIZE);\n"
-      "q.setFirstResult(PAGE_SIZE * pageNumber);\n"
-      "List page = q.list();]]>"
 
-#: index.docbook:951
-msgid "As this solution can't return a <literal>User</literal> with zero messages because of the inner join, the following form is also useful:"
-msgstr "Los elementos de colecci&#x00f3;n pueden ser ordenados o agrupados usando un filtro de consulta:"
+#. Tag: para
+#: query_hql.xml:951
+#, no-c-format
+msgid ""
+"As this solution can't return a <literal>User</literal> with zero messages "
+"because of the inner join, the following form is also useful:"
+msgstr ""
+"Como esta solución no puede devolver un <literal>User</literal> con cero "
+"mensajes debido a la unión interior, la siguiente forma es también útil:"
 
-#: index.docbook:956
+#. Tag: programlisting
+#: query_hql.xml:956
+#, no-c-format
 msgid ""
-      "<![CDATA[select usr.id, usr.name\n"
-      "from User as usr\n"
-      "    left join usr.messages as msg\n"
-      "group by usr.id, usr.name\n"
-      "having count(msg) = 0]]>"
+"<![CDATA[select usr.id, usr.name\n"
+"from User as usr\n"
+"    left join usr.messages as msg\n"
+"group by usr.id, usr.name\n"
+"having count(msg) = 0]]>"
 msgstr ""
-      "<![CDATA[Collection orderedCollection = s.filter( collection, \"order by this.amount\" );\n"
-      "Collection counts = s.filter( collection, \"select this.type, count(this) group by this.type\" );]]>"
 
-#: index.docbook:958
+#. Tag: para
+#: query_hql.xml:958
+#, no-c-format
 msgid "Properties of a JavaBean can be bound to named query parameters:"
-msgstr "Puedes hallar el tama&#x00f1;o de una colecci&#x00f3;n sin inicializarla:"
+msgstr ""
+"Las propiedades de un JavaBean pueden ser ligadas al parámetros de consulta "
+"con nombre:"
 
-#: index.docbook:962
+#. Tag: programlisting
+#: query_hql.xml:962
+#, no-c-format
 msgid ""
-      "<![CDATA[Query q = s.createQuery(\"from foo Foo as foo where foo.name=:name and foo.size=:size\");\n"
-      "q.setProperties(fooBean); // fooBean has getName() and getSize()\n"
-      "List foos = q.list();]]>"
-msgstr "<![CDATA[( (Integer) session.createQuery(\"select count(*) from ....\").iterate().next() ).intValue();]]>"
+"<![CDATA[Query q = s.createQuery(\"from foo Foo as foo where foo.name=:name "
+"and foo.size=:size\");\n"
+"q.setProperties(fooBean); // fooBean has getName() and getSize()\n"
+"List foos = q.list();]]>"
+msgstr ""
 
-#: index.docbook:964
-msgid "Collections are pageable by using the <literal>Query</literal> interface with a filter:"
+#. Tag: para
+#: query_hql.xml:964
+#, no-c-format
+msgid ""
+"Collections are pageable by using the <literal>Query</literal> interface "
+"with a filter:"
 msgstr ""
+"Las colecciones son paginables usando la interface <literal>Query</literal> "
+"con un filtro:"
 
-#: index.docbook:968
+#. Tag: programlisting
+#: query_hql.xml:968
+#, no-c-format
 msgid ""
-      "<![CDATA[Query q = s.createFilter( collection, \"\" ); // the trivial filter\n"
-      "q.setMaxResults(PAGE_SIZE);\n"
-      "q.setFirstResult(PAGE_SIZE * pageNumber);\n"
-      "List page = q.list();]]>"
+"<![CDATA[Query q = s.createFilter( collection, \"\" ); // the trivial "
+"filter\n"
+"q.setMaxResults(PAGE_SIZE);\n"
+"q.setFirstResult(PAGE_SIZE * pageNumber);\n"
+"List page = q.list();]]>"
 msgstr ""
 
-#: index.docbook:970
+#. Tag: para
+#: query_hql.xml:970
+#, no-c-format
 msgid "Collection elements may be ordered or grouped using a query filter:"
 msgstr ""
+"Los elementos de colección pueden ser ordenados o agrupados usando un filtro "
+"de consulta:"
 
-#: index.docbook:974
+#. Tag: programlisting
+#: query_hql.xml:974
+#, no-c-format
 msgid ""
-      "<![CDATA[Collection orderedCollection = s.filter( collection, \"order by this.amount\" );\n"
-      "Collection counts = s.filter( collection, \"select this.type, count(this) group by this.type\" );]]>"
+"<![CDATA[Collection orderedCollection = s.filter( collection, \"order by "
+"this.amount\" );\n"
+"Collection counts = s.filter( collection, \"select this.type, count(this) "
+"group by this.type\" );]]>"
 msgstr ""
 
-#: index.docbook:976
+#. Tag: para
+#: query_hql.xml:976
+#, no-c-format
 msgid "You can find the size of a collection without initializing it:"
-msgstr ""
+msgstr "Puedes hallar el tamaño de una colección sin inicializarla:"
 
-#: index.docbook:980
-msgid "<![CDATA[( (Integer) session.createQuery(\"select count(*) from ....\").iterate().next() ).intValue();]]>"
+#. Tag: programlisting
+#: query_hql.xml:980
+#, no-c-format
+msgid ""
+"<![CDATA[( (Integer) session.createQuery(\"select count(*) from ....\")."
+"iterate().next() ).intValue();]]>"
 msgstr ""
 
-#: index.docbook:985
+#. Tag: title
+#: query_hql.xml:985
+#, no-c-format
 msgid "Components"
-msgstr ""
+msgstr "translator-credits"
 
-#: index.docbook:987
-msgid "Components might be used in just about every way that simple value types can be used in HQL queries. They can appear in the <literal>select</literal> clause:"
+#. Tag: para
+#: query_hql.xml:987
+#, no-c-format
+msgid ""
+"Components might be used in just about every way that simple value types can "
+"be used in HQL queries. They can appear in the <literal>select</literal> "
+"clause:"
 msgstr ""
 
-#: index.docbook:992, index.docbook:1038
+#. Tag: programlisting
+#: query_hql.xml:992 query_hql.xml:1038
+#, no-c-format
 msgid "<![CDATA[select p.name from from Person p]]>"
 msgstr ""
 
-#: index.docbook:993
+#. Tag: programlisting
+#: query_hql.xml:993
+#, no-c-format
 msgid "<![CDATA[select p.name.first from from Person p]]>"
 msgstr ""
 
-#: index.docbook:995
-msgid "where the Person's name property is a component. Components can also be used in the <literal>where</literal> clause:"
+#. Tag: para
+#: query_hql.xml:995
+#, no-c-format
+msgid ""
+"where the Person's name property is a component. Components can also be used "
+"in the <literal>where</literal> clause:"
 msgstr ""
 
-#: index.docbook:1000
+#. Tag: programlisting
+#: query_hql.xml:1000
+#, no-c-format
 msgid "<![CDATA[from from Person p where p.name = :name]]>"
 msgstr ""
 
-#: index.docbook:1001
+#. Tag: programlisting
+#: query_hql.xml:1001
+#, no-c-format
 msgid "<![CDATA[from from Person p where p.name.first = :firstName]]>"
 msgstr ""
 
-#: index.docbook:1003
+#. Tag: para
+#: query_hql.xml:1003
+#, no-c-format
 msgid "Components can also be used in the <literal>order by</literal> clause:"
 msgstr ""
 
-#: index.docbook:1007
+#. Tag: programlisting
+#: query_hql.xml:1007
+#, no-c-format
 msgid "<![CDATA[from from Person p order by p.name]]>"
 msgstr ""
 
-#: index.docbook:1008
+#. Tag: programlisting
+#: query_hql.xml:1008
+#, no-c-format
 msgid "<![CDATA[from from Person p order by p.name.first]]>"
 msgstr ""
 
-#: index.docbook:1010
-msgid "Another common use of components is in <xref linkend=\"queryhql-tuple\"/>row value constructors."
+#. Tag: para
+#: query_hql.xml:1010
+#, no-c-format
+msgid ""
+"Another common use of components is in <link linkend=\"queryhql-tuple\">row "
+"value constructors</link>."
 msgstr ""
 
-#: index.docbook:1016
+#. Tag: title
+#: query_hql.xml:1016
+#, no-c-format
 msgid "Row value constructor syntax"
 msgstr ""
 
-#: index.docbook:1018
-msgid "HQL supports the use of ANSI SQL <literal>row value constructor</literal> syntax (sometimes called <literal>tuple</literal> syntax), even though the underlying database may not support that notion. Here we are generally referring to multi-valued comparisons, typically associated with components. Consider an entity Person which defines a name component:"
+#. Tag: para
+#: query_hql.xml:1018
+#, no-c-format
+msgid ""
+"HQL supports the use of ANSI SQL <literal>row value constructor</literal> "
+"syntax (sometimes called <literal>tuple</literal> syntax), even though the "
+"underlying database may not support that notion. Here we are generally "
+"referring to multi-valued comparisons, typically associated with components. "
+"Consider an entity Person which defines a name component:"
 msgstr ""
 
-#: index.docbook:1025
-msgid "<![CDATA[from Person p where p.name.first='John' and p.name.last='Jingleheimer-Schmidt']]>"
+#. Tag: programlisting
+#: query_hql.xml:1025
+#, no-c-format
+msgid ""
+"<![CDATA[from Person p where p.name.first='John' and p.name."
+"last='Jingleheimer-Schmidt']]>"
 msgstr ""
 
-#: index.docbook:1027
-msgid "That's valid syntax, although a little verbose. It be nice to make this a bit more concise and use <literal>row value constructor</literal> syntax:"
+#. Tag: para
+#: query_hql.xml:1027
+#, no-c-format
+msgid ""
+"That's valid syntax, although a little verbose. It be nice to make this a "
+"bit more concise and use <literal>row value constructor</literal> syntax:"
 msgstr ""
 
-#: index.docbook:1032
+#. Tag: programlisting
+#: query_hql.xml:1032
+#, no-c-format
 msgid "<![CDATA[from Person p where p.name=('John', 'Jingleheimer-Schmidt')]]>"
 msgstr ""
 
-#: index.docbook:1034
-msgid "It can also be useful to specify this in the <literal>select</literal> clause:"
+#. Tag: para
+#: query_hql.xml:1034
+#, no-c-format
+msgid ""
+"It can also be useful to specify this in the <literal>select</literal> "
+"clause:"
 msgstr ""
 
-#: index.docbook:1040
-msgid "Another time using <literal>row value constructor</literal> syntax can be beneficial is when using subqueries needing to compare against multiple values:"
+#. Tag: para
+#: query_hql.xml:1040
+#, no-c-format
+msgid ""
+"Another time using <literal>row value constructor</literal> syntax can be "
+"beneficial is when using subqueries needing to compare against multiple "
+"values:"
 msgstr ""
 
-#: index.docbook:1045
+#. Tag: programlisting
+#: query_hql.xml:1045
+#, no-c-format
 msgid ""
-      "<![CDATA[from Cat as cat\n"
-      "where not ( cat.name, cat.color ) in (\n"
-      "    select cat.name, cat.color from DomesticCat cat\n"
-      ")]]>"
+"<![CDATA[from Cat as cat\n"
+"where not ( cat.name, cat.color ) in (\n"
+"    select cat.name, cat.color from DomesticCat cat\n"
+")]]>"
 msgstr ""
 
-#: index.docbook:1047
-msgid "One thing to consider when deciding if you want to use this syntax is that the query will be dependent upon the ordering of the component sub-properties in the metadata."
+#. Tag: para
+#: query_hql.xml:1047
+#, no-c-format
+msgid ""
+"One thing to consider when deciding if you want to use this syntax is that "
+"the query will be dependent upon the ordering of the component sub-"
+"properties in the metadata."
 msgstr ""
-
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
-
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
-

Modified: core/trunk/documentation/manual/translations/es-ES/content/query_sql.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/query_sql.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/query_sql.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,990 +1,1487 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:5
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: query_sql.xml:5
+#, no-c-format
 msgid "Native SQL"
 msgstr "SQL Nativo"
 
-#: index.docbook:7
-msgid "You may also express queries in the native SQL dialect of your database. This is useful if you want to utilize database specific features such as query hints or the <literal>CONNECT</literal> keyword in Oracle. It also provides a clean migration path from a direct SQL/JDBC based application to Hibernate."
-msgstr "Puedes tambi&#x00e9;n expresar consultas en el dialecto SQL nativo de tu base de datos. Esto es &#x00fa;til si quieres utilizar aspectos espec&#x00ed;ficos de base de datos tal como consejos (hints) de consulta o la palabra clave <literal>CONNECT</literal> en Oracle. Provee adem&#x00e1;s una clara ruta de migraci&#x00f3;n desde una aplicaci&#x00f3;n basada en SQL/JDBC directo a Hibernate."
+#. Tag: para
+#: query_sql.xml:7
+#, no-c-format
+msgid ""
+"You may also express queries in the native SQL dialect of your database. "
+"This is useful if you want to utilize database specific features such as "
+"query hints or the <literal>CONNECT</literal> keyword in Oracle. It also "
+"provides a clean migration path from a direct SQL/JDBC based application to "
+"Hibernate."
+msgstr ""
+"Puedes también expresar consultas en el dialecto SQL nativo de tu base de "
+"datos. Esto es útil si quieres utilizar aspectos específicos de base de "
+"datos tal como consejos (hints) de consulta o la palabra clave "
+"<literal>CONNECT</literal> en Oracle. Provee además una clara ruta de "
+"migración desde una aplicación basada en SQL/JDBC directo a Hibernate."
 
-#: index.docbook:13
-msgid "Hibernate3 allows you to specify handwritten SQL (including stored procedures) for all create, update, delete, and load operations."
-msgstr "Hibernate3 te permite especificar SQL escrito a mano (incluyendo procedimientos almacenados) para todas las operaciones de creaci&#x00f3;n, actualizaci&#x00f3;n, borrado y carga."
+#. Tag: para
+#: query_sql.xml:13
+#, no-c-format
+msgid ""
+"Hibernate3 allows you to specify handwritten SQL (including stored "
+"procedures) for all create, update, delete, and load operations."
+msgstr ""
+"Hibernate3 te permite especificar SQL escrito a mano (incluyendo "
+"procedimientos almacenados) para todas las operaciones de creación, "
+"actualización, borrado y carga."
 
-#: index.docbook:17
+#. Tag: title
+#: query_sql.xml:17
+#, no-c-format
 msgid "Using a <literal>SQLQuery</literal>"
-msgstr "Creando una <literal>Query</literal> de SQL nativo"
+msgstr "Using a <literal>SQLQuery</literal>"
 
-#: index.docbook:19
-msgid "Execution of native SQL queries is controlled via the <literal>SQLQuery</literal> interface, which is obtained by calling <literal>Session.createSQLQuery()</literal>. The following describes how to use this API for querying."
-msgstr "Las consultas SQL se controlan por medio de la interface <literal>SQLQuery</literal>, que se obtiene llamando a <literal>Session.createSQLQuery()</literal>."
+#. Tag: para
+#: query_sql.xml:19
+#, no-c-format
+msgid ""
+"Execution of native SQL queries is controlled via the <literal>SQLQuery</"
+"literal> interface, which is obtained by calling <literal>Session."
+"createSQLQuery()</literal>. The following describes how to use this API for "
+"querying."
+msgstr ""
+"Execution of native SQL queries is controlled via the <literal>SQLQuery</"
+"literal> interface, which is obtained by calling <literal>Session."
+"createSQLQuery()</literal>. The following describes how to use this API for "
+"querying."
 
-#: index.docbook:25
+#. Tag: title
+#: query_sql.xml:25
+#, no-c-format
 msgid "Scalar queries"
-msgstr ""
-      "<![CDATA[List cats = sess.createSQLQuery(\"select {cat.*} from cats cat\")\n"
-      "    .addEntity(\"cat\", Cat.class)\n"
-      "    .setMaxResults(50)\n"
-      "    .list();]]>"
+msgstr "Scalar queries"
 
-#: index.docbook:27
+#. Tag: para
+#: query_sql.xml:27
+#, no-c-format
 msgid "The most basic SQL query is to get a list of scalars (values)."
-msgstr "Esta consulta especificada:"
+msgstr "The most basic SQL query is to get a list of scalars (values)."
 
-#: index.docbook:30
+#. Tag: programlisting
+#: query_sql.xml:30
+#, no-c-format
 msgid ""
-      "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\").list();\n"
-      "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").list();\n"
-      "]]>"
-msgstr "la cadena de consulta SQL, con un lugar para que Hibernate inyecte los alias de columnas"
+"<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\").list();\n"
+"sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").list();\n"
+"]]>"
+msgstr ""
 
-#: index.docbook:32
-msgid "These will both return a List of Object arrays (Object[]) with scalar values for each column in the CATS table. Hibernate will use ResultSetMetadata to deduce the actual order and types of the returned scalar values."
-msgstr "la entidad devuelta por la consulta, y sus alias de tablas SQL"
+#. Tag: para
+#: query_sql.xml:32
+#, no-c-format
+msgid ""
+"These will both return a List of Object arrays (Object[]) with scalar values "
+"for each column in the CATS table. Hibernate will use ResultSetMetadata to "
+"deduce the actual order and types of the returned scalar values."
+msgstr ""
+"These will both return a List of Object arrays (Object[]) with scalar values "
+"for each column in the CATS table. Hibernate will use ResultSetMetadata to "
+"deduce the actual order and types of the returned scalar values."
 
-#: index.docbook:37
-msgid "To avoid the overhead of using <literal>ResultSetMetadata</literal> or simply to be more explicit in what is returned one can use <literal>addScalar()</literal>."
-msgstr "El m&#x00e9;todo <literal>addEntity()</literal> asocia alias de tablas SQL con clases de entidad, y determina la forma del conjunto resultado de la consulta."
+#. Tag: para
+#: query_sql.xml:37
+#, no-c-format
+msgid ""
+"To avoid the overhead of using <literal>ResultSetMetadata</literal> or "
+"simply to be more explicit in what is returned one can use <literal>addScalar"
+"()</literal>."
+msgstr ""
+"To avoid the overhead of using <literal>ResultSetMetadata</literal> or "
+"simply to be more explicit in what is returned one can use <literal>addScalar"
+"()</literal>."
 
-#: index.docbook:41
+#. Tag: programlisting
+#: query_sql.xml:41
+#, no-c-format
 msgid ""
-      "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
-      " .addScalar(\"ID\", Hibernate.LONG)\n"
-      " .addScalar(\"NAME\", Hibernate.STRING)\n"
-      " .addScalar(\"BIRTHDATE\", Hibernate.DATE)\n"
-      "]]>"
-msgstr "El m&#x00e9;todo <literal>addJoin()</literal> puede ser usado para cargar asociaciones a otras entidades y colecciones."
+"<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
+" .addScalar(\"ID\", Hibernate.LONG)\n"
+" .addScalar(\"NAME\", Hibernate.STRING)\n"
+" .addScalar(\"BIRTHDATE\", Hibernate.DATE)\n"
+"]]>"
+msgstr ""
 
-#: index.docbook:43, index.docbook:89, index.docbook:170, index.docbook:321
+#. Tag: para
+#: query_sql.xml:43 query_sql.xml:89 query_sql.xml:170 query_sql.xml:321
+#, no-c-format
 msgid "This query specified:"
-msgstr ""
-      "<![CDATA[List cats = sess.createSQLQuery(\n"
-      "        \"select {cat.*}, {kitten.*} from cats cat, cats kitten where kitten.mother = cat.id\"\n"
-      "    )\n"
-      "    .addEntity(\"cat\", Cat.class)\n"
-      "    .addJoin(\"kitten\", \"cat.kittens\")\n"
-      "    .list();]]>"
+msgstr "This query specified:"
 
-#: index.docbook:47, index.docbook:93, index.docbook:325
+#. Tag: para
+#: query_sql.xml:47 query_sql.xml:93 query_sql.xml:325
+#, no-c-format
 msgid "the SQL query string"
-msgstr "Una consulta SQL nativa podr&#x00ed;a devolver un valor escalar simple o una combinaci&#x00f3;n de escalares y entidades."
+msgstr "the SQL query string"
 
-#: index.docbook:51
+#. Tag: para
+#: query_sql.xml:51
+#, no-c-format
 msgid "the columns and types to return"
+msgstr "the columns and types to return"
+
+#. Tag: para
+#: query_sql.xml:55
+#, no-c-format
+msgid ""
+"This will still return Object arrays, but now it will not use "
+"<literal>ResultSetMetdata</literal> but will instead explicitly get the ID, "
+"NAME and BIRTHDATE column as respectively a Long, String and a Short from "
+"the underlying resultset. This also means that only these three columns will "
+"be returned, even though the query is using <literal>*</literal> and could "
+"return more than the three listed columns."
 msgstr ""
-      "<![CDATA[Double max = (Double) sess.createSQLQuery(\"select max(cat.weight) as maxWeight from cats cat\")\n"
-      "        .addScalar(\"maxWeight\", Hibernate.DOUBLE);\n"
-      "        .uniqueResult();]]>"
+"This will still return Object arrays, but now it will not use "
+"<literal>ResultSetMetdata</literal> but will instead explicitly get the ID, "
+"NAME and BIRTHDATE column as respectively a Long, String and a Short from "
+"the underlying resultset. This also means that only these three columns will "
+"be returned, even though the query is using <literal>*</literal> and could "
+"return more than the three listed columns."
 
-#: index.docbook:55
-msgid "This will still return Object arrays, but now it will not use <literal>ResultSetMetdata</literal> but will instead explicitly get the ID, NAME and BIRTHDATE column as respectively a Long, String and a Short from the underlying resultset. This also means that only these three columns will be returned, even though the query is using <literal>*</literal> and could return more than the three listed columns."
-msgstr "Alias y referencias de propiedad"
+#. Tag: para
+#: query_sql.xml:63
+#, no-c-format
+msgid ""
+"It is possible to leave out the type information for all or some of the "
+"scalars."
+msgstr ""
+"It is possible to leave out the type information for all or some of the "
+"scalars."
 
-#: index.docbook:63
-msgid "It is possible to leave out the type information for all or some of the scalars."
-msgstr "La notaci&#x00f3;n <literal>{cat.*}</literal> usada arriba es un atajo para \"todas las propiedades\". Alternativamente, puedes listar las columnas expl&#x00ed;citamente, pero incluso en este caso dejamos que Hibernate inyecte los alias de columnas SQL para cada propiedad. El lugar para un alias de columna es s&#x00f3;lo el nombre de propiedad cualificado por el alias de la tabla. En el siguiente ejemplo, recuperamos <literal>Cat</literal>s de una tabla diferente (<literal>cat_log</literal>) a una declarada en los metadatos de mapeo. Nota que podr&#x00ed;amos incluso usar los alias de propiedad en la cl&#x00e1;usula where si quisieramos."
+#. Tag: programlisting
+#: query_sql.xml:66
+#, no-c-format
+msgid ""
+"<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
+" .addScalar(\"ID\", Hibernate.LONG)\n"
+" .addScalar(\"NAME\")\n"
+" .addScalar(\"BIRTHDATE\")\n"
+"]]>"
+msgstr ""
 
-#: index.docbook:66
+#. Tag: para
+#: query_sql.xml:68
+#, no-c-format
 msgid ""
-      "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
-      " .addScalar(\"ID\", Hibernate.LONG)\n"
-      " .addScalar(\"NAME\")\n"
-      " .addScalar(\"BIRTHDATE\")\n"
-      "]]>"
-msgstr "La sint&#x00e1;xis <literal>{}</literal> <emphasis>no</emphasis> es requerida para consultas con nombre. Ver"
+"This is essentially the same query as before, but now "
+"<literal>ResultSetMetaData</literal> is used to decide the type of NAME and "
+"BIRTHDATE where as the type of ID is explicitly specified."
+msgstr ""
+"This is essentially the same query as before, but now "
+"<literal>ResultSetMetaData</literal> is used to decide the type of NAME and "
+"BIRTHDATE where as the type of ID is explicitly specified."
 
-#: index.docbook:68
-msgid "This is essentially the same query as before, but now <literal>ResultSetMetaData</literal> is used to decide the type of NAME and BIRTHDATE where as the type of ID is explicitly specified."
+#. Tag: para
+#: query_sql.xml:72
+#, no-c-format
+msgid ""
+"How the java.sql.Types returned from ResultSetMetaData is mapped to "
+"Hibernate types is controlled by the Dialect. If a specific type is not "
+"mapped or does not result in the expected type it is possible to customize "
+"it via calls to <literal>registerHibernateType</literal> in the Dialect."
 msgstr ""
-      "<![CDATA[String sql = \"select cat.originalId as {cat.id}, \" +\n"
-      "    \"cat.mateid as {cat.mate}, cat.sex as {cat.sex}, \" +\n"
-      "    \"cat.weight*10 as {cat.weight}, cat.name as {cat.name} \" +\n"
-      "    \"from cat_log cat where {cat.mate} = :catId\"\n"
-      "    \n"
-      "List loggedCats = sess.createSQLQuery(sql)\n"
-      "    .addEntity(\"cat\", Cat.class)\n"
-      "    .setLong(\"catId\", catId)\n"
-      "    .list();]]>"
+"How the java.sql.Types returned from ResultSetMetaData is mapped to "
+"Hibernate types is controlled by the Dialect. If a specific type is not "
+"mapped or does not result in the expected type it is possible to customize "
+"it via calls to <literal>registerHibernateType</literal> in the Dialect."
 
-#: index.docbook:72
-msgid "How the java.sql.Types returned from ResultSetMetaData is mapped to Hibernate types is controlled by the Dialect. If a specific type is not mapped or does not result in the expected type it is possible to customize it via calls to <literal>registerHibernateType</literal> in the Dialect."
-msgstr "<emphasis>Nota:</emphasis> si listas cada propiedad expl&#x00ed;citamente, &#x00a1;debes incluir todas las propiedades de la clase <emphasis>y sus subclases</emphasis>!"
-
-#: index.docbook:80
+#. Tag: title
+#: query_sql.xml:80
+#, no-c-format
 msgid "Entity queries"
-msgstr "Consultas SQL con nombre"
+msgstr "Entity queries"
 
-#: index.docbook:82
-msgid "The above queries were all about returning scalar values, basically returning the \"raw\" values from the resultset. The following shows how to get entity objects from a native sql query via <literal>addEntity()</literal>."
-msgstr "Las consultas SQL con nombre pueden definirse en el documento de mapeo y llamadas exactamente en la misma forma en que a una consulta HQL con nombre. En este caso, <emphasis>no</emphasis> necesitamos llamar a <literal>addEntity()</literal>."
+#. Tag: para
+#: query_sql.xml:82
+#, no-c-format
+msgid ""
+"The above queries were all about returning scalar values, basically "
+"returning the \"raw\" values from the resultset. The following shows how to "
+"get entity objects from a native sql query via <literal>addEntity()</"
+"literal>."
+msgstr ""
+"The above queries were all about returning scalar values, basically "
+"returning the \"raw\" values from the resultset. The following shows how to "
+"get entity objects from a native sql query via <literal>addEntity()</"
+"literal>."
 
-#: index.docbook:87
+#. Tag: programlisting
+#: query_sql.xml:87
+#, no-c-format
 msgid ""
-      "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\").addEntity(Cat.class);\n"
-      "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").addEntity(Cat.class);\n"
-      "]]>"
+"<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\").addEntity(Cat.class);\n"
+"sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").addEntity(Cat."
+"class);\n"
+"]]>"
 msgstr ""
-      "<![CDATA[<sql-query name=\"persons\">\n"
-      "    <return alias=\"person\" class=\"eg.Person\"/>\n"
-      "    SELECT person.NAME AS {person.name},\n"
-      "           person.AGE AS {person.age},\n"
-      "           person.SEX AS {person.sex}\n"
-      "    FROM PERSON person \n"
-      "    WHERE person.NAME LIKE :namePattern\n"
-      "</sql-query>]]>"
 
-#: index.docbook:97
+#. Tag: para
+#: query_sql.xml:97
+#, no-c-format
 msgid "the entity returned by the query"
+msgstr "the entity returned by the query"
+
+#. Tag: para
+#: query_sql.xml:101
+#, no-c-format
+msgid ""
+"Assuming that Cat is mapped as a class with the columns ID, NAME and "
+"BIRTHDATE the above queries will both return a List where each element is a "
+"Cat entity."
 msgstr ""
-      "<![CDATA[<sql-query name=\"personsWith\">\n"
-      "    <return alias=\"person\" class=\"eg.Person\"/>\n"
-      "    <return-join alias=\"address\" property=\"person.mailingAddress\"/>\n"
-      "    SELECT person.NAME AS {person.name},\n"
-      "           person.AGE AS {person.age},\n"
-      "           person.SEX AS {person.sex},\n"
-      "           address.STREET AS {address.street},\n"
-      "           address.CITY AS {address.city},\n"
-      "           address.STATE AS {address.state},\n"
-      "           address.ZIP AS {address.zip}\n"
-      "    FROM PERSON person \n"
-      "    JOIN ADDRESS address\n"
-      "            ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
-      "    WHERE person.NAME LIKE :namePattern\n"
-      "</sql-query>]]>"
+"Assuming that Cat is mapped as a class with the columns ID, NAME and "
+"BIRTHDATE the above queries will both return a List where each element is a "
+"Cat entity."
 
-#: index.docbook:101
-msgid "Assuming that Cat is mapped as a class with the columns ID, NAME and BIRTHDATE the above queries will both return a List where each element is a Cat entity."
-msgstr "Una consulta SQL con nombre puede devolver un valor escalar. Debes especificar el alias de columna y tipo Hibernate usando el elementp <literal>&lt;return-scalar&gt;</literal>:"
-
-#: index.docbook:105
-msgid "If the entity is mapped with a <literal>many-to-one</literal> to another entity it is required to also return this when performing the native query, otherwise a database specific \"column not found\" error will occur. The additional columns will automatically be returned when using the * notation, but we prefer to be explicit as in the following example for a <literal>many-to-one</literal> to a <literal>Dog</literal>:"
+#. Tag: para
+#: query_sql.xml:105
+#, no-c-format
+msgid ""
+"If the entity is mapped with a <literal>many-to-one</literal> to another "
+"entity it is required to also return this when performing the native query, "
+"otherwise a database specific \"column not found\" error will occur. The "
+"additional columns will automatically be returned when using the * notation, "
+"but we prefer to be explicit as in the following example for a <literal>many-"
+"to-one</literal> to a <literal>Dog</literal>:"
 msgstr ""
-      "<![CDATA[<sql-query name=\"mySqlQuery\">\n"
-      "    <return-scalar column=\"name\" type=\"string\"/>\n"
-      "    <return-scalar column=\"age\" type=\"long\"/>\n"
-      "    SELECT p.NAME AS name,\n"
-      "           p.AGE AS age,\n"
-      "    FROM PERSON p WHERE p.NAME LIKE 'Hiber%'\n"
-      "</sql-query>]]>"
+"If the entity is mapped with a <literal>many-to-one</literal> to another "
+"entity it is required to also return this when performing the native query, "
+"otherwise a database specific \"column not found\" error will occur. The "
+"additional columns will automatically be returned when using the * notation, "
+"but we prefer to be explicit as in the following example for a <literal>many-"
+"to-one</literal> to a <literal>Dog</literal>:"
 
-#: index.docbook:113
+#. Tag: programlisting
+#: query_sql.xml:113
+#, no-c-format
 msgid ""
-      "<![CDATA[sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, DOG_ID FROM CATS\").addEntity(Cat.class);\n"
-      "]]>"
-msgstr "Usando return-property para especificar expl&#x00ed;citamente nombres de columna/alias"
+"<![CDATA[sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, DOG_ID FROM CATS"
+"\").addEntity(Cat.class);\n"
+"]]>"
+msgstr ""
 
-#: index.docbook:115
+#. Tag: para
+#: query_sql.xml:115
+#, no-c-format
 msgid "This will allow cat.getDog() to function properly."
-msgstr "Con <literal>&lt;return-property&gt;</literal> puedes decirle expl&#x00ed;citamente a Hibernate qu&#x00e9; alias de columna usar, en vez de usar la sint&#x00e1;xis <literal>{}</literal> para dejar que Hibernate inyecte sus propios alias."
+msgstr "This will allow cat.getDog() to function properly."
 
-#: index.docbook:119
+#. Tag: title
+#: query_sql.xml:119
+#, no-c-format
 msgid "Handling associations and collections"
+msgstr "Handling associations and collections"
+
+#. Tag: para
+#: query_sql.xml:121
+#, no-c-format
+msgid ""
+"It is possible to eagerly join in the <literal>Dog</literal> to avoid the "
+"possible extra roundtrip for initializing the proxy. This is done via the "
+"<literal>addJoin()</literal> method, which allows you to join in an "
+"association or collection."
 msgstr ""
-      "<![CDATA[<sql-query name=\"mySqlQuery\">\n"
-      "    <return alias=\"person\" class=\"eg.Person\">\n"
-      "        <return-property name=\"name\" column=\"myName\"/>\n"
-      "        <return-property name=\"age\" column=\"myAge\"/>\n"
-      "        <return-property name=\"sex\" column=\"mySex\"/>\n"
-      "    </return>\n"
-      "    SELECT person.NAME AS myName,\n"
-      "           person.AGE AS myAge,\n"
-      "           person.SEX AS mySex,\n"
-      "    FROM PERSON person WHERE person.NAME LIKE :name\n"
-      "</sql-query>\n"
-      "]]>"
+"It is possible to eagerly join in the <literal>Dog</literal> to avoid the "
+"possible extra roundtrip for initializing the proxy. This is done via the "
+"<literal>addJoin()</literal> method, which allows you to join in an "
+"association or collection."
 
-#: index.docbook:121
-msgid "It is possible to eagerly join in the <literal>Dog</literal> to avoid the possible extra roundtrip for initializing the proxy. This is done via the <literal>addJoin()</literal> method, which allows you to join in an association or collection."
-msgstr "<literal>&lt;return-property&gt;</literal> tambi&#x00e9;n trabaja con m&#x00fa;ltiples columnas. Esto resuelve una limitaci&#x00f3;n de la sint&#x00e1;xis <literal>{}</literal>, la cual no puede permitir un control fino de propiedades multi-columna."
+#. Tag: programlisting
+#: query_sql.xml:126
+#, no-c-format
+msgid ""
+"<![CDATA[sess.createSQLQuery(\"SELECT c.ID, NAME, BIRTHDATE, DOG_ID, D_ID, "
+"D_NAME FROM CATS c, DOGS d WHERE c.DOG_ID = d.D_ID\")\n"
+" .addEntity(\"cat\", Cat.class)\n"
+" .addJoin(\"cat.dog\");\n"
+"]]>"
+msgstr ""
 
-#: index.docbook:126
+#. Tag: para
+#: query_sql.xml:128
+#, no-c-format
 msgid ""
-      "<![CDATA[sess.createSQLQuery(\"SELECT c.ID, NAME, BIRTHDATE, DOG_ID, D_ID, D_NAME FROM CATS c, DOGS d WHERE c.DOG_ID = d.D_ID\")\n"
-      " .addEntity(\"cat\", Cat.class)\n"
-      " .addJoin(\"cat.dog\");\n"
-      "]]>"
+"In this example the returned <literal>Cat</literal>'s will have their "
+"<literal>dog</literal> property fully initialized without any extra "
+"roundtrip to the database. Notice that we added a alias name (\"cat\") to be "
+"able to specify the target property path of the join. It is possible to do "
+"the same eager joining for collections, e.g. if the <literal>Cat</literal> "
+"had a one-to-many to <literal>Dog</literal> instead."
 msgstr ""
-      "<![CDATA[<sql-query name=\"organizationCurrentEmployments\">\n"
-      "    <return alias=\"emp\" class=\"Employment\">            \n"
-      "        <return-property name=\"salary\"> \n"
-      "            <return-column name=\"VALUE\"/>\n"
-      "            <return-column name=\"CURRENCY\"/>            \n"
-      "        </return-property>\n"
-      "        <return-property name=\"endDate\" column=\"myEndDate\"/>\n"
-      "    </return>\n"
-      "        SELECT EMPLOYEE AS {emp.employee}, EMPLOYER AS {emp.employer}, \n"
-      "        STARTDATE AS {emp.startDate}, ENDDATE AS {emp.endDate},\n"
-      "        REGIONCODE as {emp.regionCode}, EID AS {emp.id}, VALUE, CURRENCY\n"
-      "        FROM EMPLOYMENT\n"
-      "        WHERE EMPLOYER = :id AND ENDDATE IS NULL\n"
-      "        ORDER BY STARTDATE ASC\n"
-      "</sql-query>]]>"
+"In this example the returned <literal>Cat</literal>'s will have their "
+"<literal>dog</literal> property fully initialized without any extra "
+"roundtrip to the database. Notice that we added a alias name (\"cat\") to be "
+"able to specify the target property path of the join. It is possible to do "
+"the same eager joining for collections, e.g. if the <literal>Cat</literal> "
+"had a one-to-many to <literal>Dog</literal> instead."
 
-#: index.docbook:128
-msgid "In this example the returned <literal>Cat</literal>'s will have their <literal>dog</literal> property fully initialized without any extra roundtrip to the database. Notice that we added a alias name (\"cat\") to be able to specify the target property path of the join. It is possible to do the same eager joining for collections, e.g. if the <literal>Cat</literal> had a one-to-many to <literal>Dog</literal> instead."
-msgstr "Nota que en este ejemplo hemos usado <literal>&lt;return-property&gt;</literal> en combinaci&#x00f3;n con la sint&#x00e1;xis <literal>{}</literal> para inyecci&#x00f3;n, permitiendo a los usuarios elejir c&#x00f3;mo quieren referirse a las columnas y propiedades."
+#. Tag: programlisting
+#: query_sql.xml:136
+#, no-c-format
+msgid ""
+"<![CDATA[sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, D_ID, D_NAME, "
+"CAT_ID FROM CATS c, DOGS d WHERE c.ID = d.CAT_ID\")\n"
+" .addEntity(\"cat\", Cat.class)\n"
+" .addJoin(\"cat.dogs\");\n"
+"]]>"
+msgstr ""
 
-#: index.docbook:136
+#. Tag: para
+#: query_sql.xml:138
+#, no-c-format
 msgid ""
-      "<![CDATA[sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, D_ID, D_NAME, CAT_ID FROM CATS c, DOGS d WHERE c.ID = d.CAT_ID\")\n"
-      " .addEntity(\"cat\", Cat.class)\n"
-      " .addJoin(\"cat.dogs\");\n"
-      "]]>"
-msgstr "Si tu mapeo tiene un discriminador debes usar <literal>&lt;return-discriminator&gt;</literal> para especificar la columna discriminadora."
+"At this stage we are reaching the limits of what is possible with native "
+"queries without starting to enhance the sql queries to make them usable in "
+"Hibernate; the problems starts to arise when returning multiple entities of "
+"the same type or when the default alias/column names are not enough."
+msgstr ""
+"At this stage we are reaching the limits of what is possible with native "
+"queries without starting to enhance the sql queries to make them usable in "
+"Hibernate; the problems starts to arise when returning multiple entities of "
+"the same type or when the default alias/column names are not enough."
 
-#: index.docbook:138
-msgid "At this stage we are reaching the limits of what is possible with native queries without starting to enhance the sql queries to make them usable in Hibernate; the problems starts to arise when returning multiple entities of the same type or when the default alias/column names are not enough."
-msgstr "Usando procedimientos almacenados para consultar"
-
-#: index.docbook:146
+#. Tag: title
+#: query_sql.xml:146
+#, no-c-format
 msgid "Returning multiple entities"
-msgstr "Hibernate3 introduce soporte para consultas v&#x00ed;a procedimientos almacenados. Los procedimientos almacenados deben devolver un conjunto resultado como el primer par&#x00e1;metro de salida para ser capaces de funcionar con Hibernate. Un ejemplo de uno procedimiento almacenado en Oracle 9 o superior es as&#x00ed;:"
+msgstr "Returning multiple entities"
 
-#: index.docbook:148
-msgid "Until now the result set column names are assumed to be the same as the column names specified in the mapping document. This can be problematic for SQL queries which join multiple tables, since the same column names may appear in more than one table."
+#. Tag: para
+#: query_sql.xml:148
+#, no-c-format
+msgid ""
+"Until now the result set column names are assumed to be the same as the "
+"column names specified in the mapping document. This can be problematic for "
+"SQL queries which join multiple tables, since the same column names may "
+"appear in more than one table."
 msgstr ""
-      "<![CDATA[CREATE OR REPLACE FUNCTION selectAllEmployments \n"
-      "    RETURN SYS_REFCURSOR \n"
-      "AS \n"
-      "    st_cursor SYS_REFCURSOR; \n"
-      "BEGIN \n"
-      "    OPEN st_cursor FOR \n"
-      " SELECT EMPLOYEE, EMPLOYER, \n"
-      " STARTDATE, ENDDATE, \n"
-      " REGIONCODE, EID, VALUE, CURRENCY \n"
-      " FROM EMPLOYMENT; \n"
-      "      RETURN  st_cursor; \n"
-      " END;]]>"
+"Until now the result set column names are assumed to be the same as the "
+"column names specified in the mapping document. This can be problematic for "
+"SQL queries which join multiple tables, since the same column names may "
+"appear in more than one table."
 
-#: index.docbook:153
-msgid "Column alias injection is needed in the following query (which most likely will fail):"
-msgstr "Para usar esta consulta en Hibernate necesitas mapearla por medio de una consulta con nombre."
+#. Tag: para
+#: query_sql.xml:153
+#, no-c-format
+msgid ""
+"Column alias injection is needed in the following query (which most likely "
+"will fail):"
+msgstr ""
+"Column alias injection is needed in the following query (which most likely "
+"will fail):"
 
-#: index.docbook:156
+#. Tag: programlisting
+#: query_sql.xml:156
+#, no-c-format
 msgid ""
-      "<![CDATA[sess.createSQLQuery(\"SELECT c.*, m.*  FROM CATS c, CATS m WHERE c.MOTHER_ID = c.ID\")\n"
-      " .addEntity(\"cat\", Cat.class)\n"
-      " .addEntity(\"mother\", Cat.class)\n"
-      "]]>"
+"<![CDATA[sess.createSQLQuery(\"SELECT c.*, m.*  FROM CATS c, CATS m WHERE c."
+"MOTHER_ID = c.ID\")\n"
+" .addEntity(\"cat\", Cat.class)\n"
+" .addEntity(\"mother\", Cat.class)\n"
+"]]>"
 msgstr ""
-      "<![CDATA[<sql-query name=\"selectAllEmployees_SP\" callable=\"true\">\n"
-      "    <return alias=\"emp\" class=\"Employment\">\n"
-      "        <return-property name=\"employee\" column=\"EMPLOYEE\"/>\n"
-      "        <return-property name=\"employer\" column=\"EMPLOYER\"/>            \n"
-      "        <return-property name=\"startDate\" column=\"STARTDATE\"/>\n"
-      "        <return-property name=\"endDate\" column=\"ENDDATE\"/>            \n"
-      "        <return-property name=\"regionCode\" column=\"REGIONCODE\"/>            \n"
-      "        <return-property name=\"id\" column=\"EID\"/>                        \n"
-      "        <return-property name=\"salary\"> \n"
-      "            <return-column name=\"VALUE\"/>\n"
-      "            <return-column name=\"CURRENCY\"/>            \n"
-      "        </return-property>\n"
-      "    </return>\n"
-      "    { ? = call selectAllEmployments() }\n"
-      "</sql-query>]]>"
 
-#: index.docbook:158
-msgid "The intention for this query is to return two Cat instances per row, a cat and its mother. This will fail since there is a conflict of names since they are mapped to the same column names and on some databases the returned column aliases will most likely be on the form \"c.ID\", \"c.NAME\", etc. which are not equal to the columns specificed in the mappings (\"ID\" and \"NAME\")."
-msgstr "Nota que los procedimientos almacenados s&#x00f3;lo devuelven escalares y entidades. No est&#x00e1;n soportados <literal>&lt;return-join&gt;</literal> y <literal>&lt;load-collection&gt;</literal>."
+#. Tag: para
+#: query_sql.xml:158
+#, no-c-format
+msgid ""
+"The intention for this query is to return two Cat instances per row, a cat "
+"and its mother. This will fail since there is a conflict of names since they "
+"are mapped to the same column names and on some databases the returned "
+"column aliases will most likely be on the form \"c.ID\", \"c.NAME\", etc. "
+"which are not equal to the columns specificed in the mappings (\"ID\" and "
+"\"NAME\")."
+msgstr ""
+"The intention for this query is to return two Cat instances per row, a cat "
+"and its mother. This will fail since there is a conflict of names since they "
+"are mapped to the same column names and on some databases the returned "
+"column aliases will most likely be on the form \"c.ID\", \"c.NAME\", etc. "
+"which are not equal to the columns specificed in the mappings (\"ID\" and "
+"\"NAME\")."
 
-#: index.docbook:165
+#. Tag: para
+#: query_sql.xml:165
+#, no-c-format
 msgid "The following form is not vulnerable to column name duplication:"
-msgstr "Reglas/limitaciones para usar procedimientos almacenados"
+msgstr "The following form is not vulnerable to column name duplication:"
 
-#: index.docbook:168
+#. Tag: programlisting
+#: query_sql.xml:168
+#, no-c-format
 msgid ""
-      "<![CDATA[sess.createSQLQuery(\"SELECT {cat.*}, {mother.*}  FROM CATS c, CATS m WHERE c.MOTHER_ID = c.ID\")\n"
-      " .addEntity(\"cat\", Cat.class)\n"
-      " .addEntity(\"mother\", Cat.class)\n"
-      "]]>"
-msgstr "Para usar procedimientos almacenados con Hibernate los procedimientos tienen que seguir algunas reglas. Si no siguen esas reglas no son usables por Hibernate. Si a&#x00fa;n quisieras usar estos procedimientos tendr&#x00ed;as que ejecutarlos por medio de <literal>session.connection()</literal>. Las reglas son diferentes para cada base de datos, ya que los vendedores de base de datos tienen diferentes sem&#x00e1;nticas/sint&#x00e1;xis de procedimientos almacenados."
+"<![CDATA[sess.createSQLQuery(\"SELECT {cat.*}, {mother.*}  FROM CATS c, CATS "
+"m WHERE c.MOTHER_ID = c.ID\")\n"
+" .addEntity(\"cat\", Cat.class)\n"
+" .addEntity(\"mother\", Cat.class)\n"
+"]]>"
+msgstr ""
 
-#: index.docbook:174
-msgid "the SQL query string, with placeholders for Hibernate to inject column aliases"
-msgstr "Para Oracle se aplican las siguientes reglas:"
+#. Tag: para
+#: query_sql.xml:174
+#, no-c-format
+msgid ""
+"the SQL query string, with placeholders for Hibernate to inject column "
+"aliases"
+msgstr ""
+"the SQL query string, with placeholders for Hibernate to inject column "
+"aliases"
 
-#: index.docbook:179
+#. Tag: para
+#: query_sql.xml:179
+#, no-c-format
 msgid "the entities returned by the query"
-msgstr "El procedimiento debe devolver un conjunto resultado. Esto se hace devolviendo un <literal>SYS_REFCURSOR</literal> en Oracle 9 o 10. En Oracle necesitas definir un tipo <literal>REF CURSOR</literal>."
+msgstr "the entities returned by the query"
 
-#: index.docbook:183
-msgid "The {cat.*} and {mother.*} notation used above is a shorthand for \"all properties\". Alternatively, you may list the columns explicity, but even in this case we let Hibernate inject the SQL column aliases for each property. The placeholder for a column alias is just the property name qualified by the table alias. In the following example, we retrieve Cats and their mothers from a different table (cat_log) to the one declared in the mapping metadata. Notice that we may even use the property aliases in the where clause if we like."
-msgstr "La forma recomendada es <literal>{ ? = call procName(&lt;parameters&gt;) }</literal> o <literal>{ ? = call procName }</literal> (esto es m&#x00e1;s una regla de Oracle que una regla de Hibernate)."
+#. Tag: para
+#: query_sql.xml:183
+#, no-c-format
+msgid ""
+"The {cat.*} and {mother.*} notation used above is a shorthand for \"all "
+"properties\". Alternatively, you may list the columns explicity, but even in "
+"this case we let Hibernate inject the SQL column aliases for each property. "
+"The placeholder for a column alias is just the property name qualified by "
+"the table alias. In the following example, we retrieve Cats and their "
+"mothers from a different table (cat_log) to the one declared in the mapping "
+"metadata. Notice that we may even use the property aliases in the where "
+"clause if we like."
+msgstr ""
+"The {cat.*} and {mother.*} notation used above is a shorthand for \"all "
+"properties\". Alternatively, you may list the columns explicity, but even in "
+"this case we let Hibernate inject the SQL column aliases for each property. "
+"The placeholder for a column alias is just the property name qualified by "
+"the table alias. In the following example, we retrieve Cats and their "
+"mothers from a different table (cat_log) to the one declared in the mapping "
+"metadata. Notice that we may even use the property aliases in the where "
+"clause if we like."
 
-#: index.docbook:192
+#. Tag: programlisting
+#: query_sql.xml:192
+#, no-c-format
 msgid ""
-      "<![CDATA[String sql = \"SELECT ID as {c.id}, NAME as {c.name}, \" + \n"
-      "         \"BIRTHDATE as {c.birthDate}, MOTHER_ID as {c.mother}, {mother.*} \" +\n"
-      "         \"FROM CAT_LOG c, CAT_LOG m WHERE {c.mother} = c.ID\";\n"
-      "\n"
-      "List loggedCats = sess.createSQLQuery(sql)\n"
-      "        .addEntity(\"cat\", Cat.class)\n"
-      "        .addEntity(\"mother\", Cat.class).list()\n"
-      "]]>"
-msgstr "Para Sybase o MS SQL server se aplican las siguientes reglas:"
+"<![CDATA[String sql = \"SELECT ID as {c.id}, NAME as {c.name}, \" + \n"
+"         \"BIRTHDATE as {c.birthDate}, MOTHER_ID as {c.mother}, {mother.*} "
+"\" +\n"
+"         \"FROM CAT_LOG c, CAT_LOG m WHERE {c.mother} = c.ID\";\n"
+"\n"
+"List loggedCats = sess.createSQLQuery(sql)\n"
+"        .addEntity(\"cat\", Cat.class)\n"
+"        .addEntity(\"mother\", Cat.class).list()\n"
+"]]>"
+msgstr ""
 
-#: index.docbook:195
+#. Tag: title
+#: query_sql.xml:195
+#, no-c-format
 msgid "Alias and property references"
-msgstr "El procedimiento debe devolver un conjunto resultado. Nota que ya que estos servidores pueden y devolver&#x00e1;n m&#x00fa;ltiples conjuntos resultados y cuentas de actualizaci&#x00f3;n, Hibernate iterar&#x00e1; los resultados y tomar&#x00e1; el primer resultado que sea un conjunto resultado como su valor a devolver. Todo lo dem&#x00e1;s ser&#x00e1; descartado."
+msgstr "Alias and property references"
 
-#: index.docbook:197
-msgid "For most cases the above alias injection is needed, but for queries relating to more complex mappings like composite properties, inheritance discriminators, collections etc. there are some specific aliases to use to allow Hibernate to inject the proper aliases."
-msgstr "Si habilitas <literal>SET NOCOUNT ON</literal> en tu procedimiento ser&#x00e1; probablemente m&#x00e1;s eficiente, pero esto no es un requerimiento."
+#. Tag: para
+#: query_sql.xml:197
+#, no-c-format
+msgid ""
+"For most cases the above alias injection is needed, but for queries relating "
+"to more complex mappings like composite properties, inheritance "
+"discriminators, collections etc. there are some specific aliases to use to "
+"allow Hibernate to inject the proper aliases."
+msgstr ""
+"For most cases the above alias injection is needed, but for queries relating "
+"to more complex mappings like composite properties, inheritance "
+"discriminators, collections etc. there are some specific aliases to use to "
+"allow Hibernate to inject the proper aliases."
 
-#: index.docbook:202
-msgid "The following table shows the different possibilities of using the alias injection. Note: the alias names in the result are examples, each alias will have a unique and probably different name when used."
-msgstr "SQL personalizado para crear, actualizar y borrar"
+#. Tag: para
+#: query_sql.xml:202
+#, no-c-format
+msgid ""
+"The following table shows the different possibilities of using the alias "
+"injection. Note: the alias names in the result are examples, each alias will "
+"have a unique and probably different name when used."
+msgstr ""
+"The following table shows the different possibilities of using the alias "
+"injection. Note: the alias names in the result are examples, each alias will "
+"have a unique and probably different name when used."
 
-#: index.docbook:208
+#. Tag: title
+#: query_sql.xml:208
+#, no-c-format
 msgid "Alias injection names"
-msgstr "Hibernate3 puede usar sentencias SQL personalizadas para las operaciones de crear, actualizar y borrar. Los persistidores de clases y colecciones en Hibernate ya contienen un conjunto de cadenas generadas en tiempo de configuraci&#x00f3;n (insertsql, deletesql, updatesql, etc.). Las etiquetas de mapeo <literal>&lt;sql-insert&gt;</literal>, <literal>&lt;sql-delete&gt;</literal>, y <literal>&lt;sql-update&gt;</literal> sobrescriben estas cadenas:"
+msgstr "Alias injection names"
 
-#: index.docbook:219
+#. Tag: entry
+#: query_sql.xml:219
+#, no-c-format
 msgid "Description"
-msgstr ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\">\n"
-      "        <generator class=\"increment\"/>\n"
-      "    </id>\n"
-      "    <property name=\"name\" not-null=\"true\"/>\n"
-      "    <sql-insert>INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? )</sql-insert>\n"
-      "    <sql-update>UPDATE PERSON SET NAME=UPPER(?) WHERE ID=?</sql-update>\n"
-      "    <sql-delete>DELETE FROM PERSON WHERE ID=?</sql-delete>\n"
-      "</class>]]>"
+msgstr "Description"
 
-#: index.docbook:221
+#. Tag: entry
+#: query_sql.xml:221
+#, no-c-format
 msgid "Syntax"
-msgstr "El SQL se ejecuta directamente en tu base de datos, de modo que eres libre de usar cualquier dialecto que quieras. Esto reducir&#x00e1;, por supuesto, la portabilidad de tu mapeo si usas SQL espec&#x00ed;fico de la base de datos."
+msgstr "Syntax"
 
-#: index.docbook:223
+#. Tag: entry
+#: query_sql.xml:223
+#, no-c-format
 msgid "Example"
-msgstr "Los procedimientos almacenados son soportados si est&#x00e1; establecido el atributo <literal>callable</literal>:"
+msgstr "Example"
 
-#: index.docbook:229
+#. Tag: entry
+#: query_sql.xml:229
+#, no-c-format
 msgid "A simple property"
-msgstr ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\">\n"
-      "        <generator class=\"increment\"/>\n"
-      "    </id>\n"
-      "    <property name=\"name\" not-null=\"true\"/>\n"
-      "    <sql-insert callable=\"true\">{call createPerson (?, ?)}</sql-insert>\n"
-      "    <sql-delete callable=\"true\">{? = call deletePerson (?)}</sql-delete>\n"
-      "    <sql-update callable=\"true\">{? = call updatePerson (?, ?)}</sql-update>\n"
-      "</class>]]>"
+msgstr "A simple property"
 
-#: index.docbook:231
+#. Tag: literal
+#: query_sql.xml:231
+#, no-c-format
 msgid "{[aliasname].[propertyname]"
-msgstr "El orden de los par&#x00e1;metros posicionales son actualmente vitales, ya que deben estar en la misma secuencia en que las espera Hibernate."
+msgstr "{[aliasname].[propertyname]"
 
-#: index.docbook:233
+#. Tag: literal
+#: query_sql.xml:233
+#, no-c-format
 msgid "A_NAME as {item.name}"
-msgstr "Puedes ver el orden esperado habilitando el registro de depuraci&#x00f3;n para el nivel <literal>org.hibernate.persister.entity</literal>. Con este nivel habilitado, Hibernate imprimir&#x00e1; el SQL est&#x00e1;tico que se usa para crear, actualizar, borrar, etc. las entidades. (Para ver la secuencia esperada, recuerda no incluir tu SQL personalizado en los ficheros de mapeo ya que sobrescribir&#x00e1;n el sql est&#x00e1;tico generado por Hibernate.)"
+msgstr "A_NAME as {item.name}"
 
-#: index.docbook:237
+#. Tag: entry
+#: query_sql.xml:237
+#, no-c-format
 msgid "A composite property"
-msgstr "Los procedimientos almacenados son, en la mayor&#x00ed;a de los casos (l&#x00e9;ase, mejor hacerlo que no hacerlo), obligados a devolver el n&#x00fa;mero de filas insertadas/actualizadas/borradas, ya que Hibernate tiene algunas comprobaciones en tiempo de ejecuci&#x00f3;n del &#x00e9;xito de la sentencia. Hibernate siempre registra el primer par&#x00e1;metro de la sentencia como un par&#x00e1;metro de salida num&#x00e9;rico para las operaciones CUD:"
+msgstr "A composite property"
 
-#: index.docbook:239
+#. Tag: literal
+#: query_sql.xml:239
+#, no-c-format
 msgid "{[aliasname].[componentname].[propertyname]}"
-msgstr ""
-      "<![CDATA[CREATE OR REPLACE FUNCTION updatePerson (uid IN NUMBER, uname IN VARCHAR2)\n"
-      "    RETURN NUMBER IS\n"
-      "BEGIN\n"
-      "\n"
-      "    update PERSON\n"
-      "    set\n"
-      "        NAME = uname,\n"
-      "    where\n"
-      "        ID = uid;\n"
-      "\n"
-      "    return SQL%ROWCOUNT;\n"
-      "\n"
-      "END updatePerson;]]>"
+msgstr "{[aliasname].[componentname].[propertyname]}"
 
-#: index.docbook:241
+#. Tag: literal
+#: query_sql.xml:241
+#, no-c-format
 msgid "CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}"
-msgstr "SQL personalizado para carga"
+msgstr "CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}"
 
-#: index.docbook:246
+#. Tag: entry
+#: query_sql.xml:246
+#, no-c-format
 msgid "Discriminator of an entity"
-msgstr "Puedes tambi&#x00e9;n declarar tu propias consultas SQL (o HQL) para cargar entidades:"
+msgstr "Discriminator of an entity"
 
-#: index.docbook:248
+#. Tag: literal
+#: query_sql.xml:248
+#, no-c-format
 msgid "{[aliasname].class}"
-msgstr ""
-      "<![CDATA[<sql-query name=\"person\">\n"
-      "    <return alias=\"pers\" class=\"Person\" lock-mode=\"upgrade\"/>\n"
-      "    SELECT NAME AS {pers.name}, ID AS {pers.id} \n"
-      "    FROM PERSON \n"
-      "    WHERE ID=? \n"
-      "    FOR UPDATE\n"
-      "</sql-query>]]>"
+msgstr "{[aliasname].class}"
 
-#: index.docbook:250
+#. Tag: literal
+#: query_sql.xml:250
+#, no-c-format
 msgid "DISC as {item.class}"
-msgstr "Esto es s&#x00f3;lo una declaraci&#x00f3;n de consulta con nombrem como se ha discutido anteriormente. Puedes hacer referencia a esta consulta con nombre en un mapeo de clase:"
+msgstr "DISC as {item.class}"
 
-#: index.docbook:254
+#. Tag: entry
+#: query_sql.xml:254
+#, no-c-format
 msgid "All properties of an entity"
-msgstr ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\">\n"
-      "        <generator class=\"increment\"/>\n"
-      "    </id>\n"
-      "    <property name=\"name\" not-null=\"true\"/>\n"
-      "    <loader query-ref=\"person\"/>\n"
-      "</class>]]>"
+msgstr "All properties of an entity"
 
-#: index.docbook:256, index.docbook:304
+#. Tag: literal
+#: query_sql.xml:256 query_sql.xml:304
+#, no-c-format
 msgid "{[aliasname].*}"
-msgstr "Esto incluso funciona con procedimientos almacenados."
+msgstr "{[aliasname].*}"
 
-#: index.docbook:258
+#. Tag: literal
+#: query_sql.xml:258
+#, no-c-format
 msgid "{item.*}"
-msgstr "Puedes incluso definit una consulta para la carga de colecciones:"
+msgstr "{item.*}"
 
-#: index.docbook:262
+#. Tag: entry
+#: query_sql.xml:262
+#, no-c-format
 msgid "A collection key"
-msgstr ""
-      "<![CDATA[<set name=\"employments\" inverse=\"true\">\n"
-      "    <key/>\n"
-      "    <one-to-many class=\"Employment\"/>\n"
-      "    <loader query-ref=\"employments\"/>\n"
-      "</set>]]>"
+msgstr "A collection key"
 
-#: index.docbook:264
+#. Tag: literal
+#: query_sql.xml:264
+#, no-c-format
 msgid "{[aliasname].key}"
-msgstr ""
-      "<![CDATA[<sql-query name=\"employments\">\n"
-      "    <load-collection alias=\"emp\" role=\"Person.employments\"/>\n"
-      "    SELECT {emp.*}\n"
-      "    FROM EMPLOYMENT emp\n"
-      "    WHERE EMPLOYER = :id\n"
-      "    ORDER BY STARTDATE ASC, EMPLOYEE ASC\n"
-      "</sql-query>]]>"
+msgstr "{[aliasname].key}"
 
-#: index.docbook:266
+#. Tag: literal
+#: query_sql.xml:266
+#, no-c-format
 msgid "ORGID as {coll.key}"
-msgstr "Podr&#x00ed;as incluso definir un cargador de entidades que cargue una colecci&#x00f3;n por recuperaci&#x00f3;n por uni&#x00f3;n (join fetching):"
+msgstr "ORGID as {coll.key}"
 
-#: index.docbook:270
+#. Tag: entry
+#: query_sql.xml:270
+#, no-c-format
 msgid "The id of an collection"
-msgstr ""
-      "<![CDATA[<sql-query name=\"person\">\n"
-      "    <return alias=\"pers\" class=\"Person\"/>\n"
-      "    <return-join alias=\"emp\" property=\"pers.employments\"/> \n"
-      "    SELECT NAME AS {pers.*}, {emp.*}\n"
-      "    FROM PERSON pers\n"
-      "    LEFT OUTER JOIN EMPLOYMENT emp \n"
-      "        ON pers.ID = emp.PERSON_ID\n"
-      "    WHERE ID=?\n"
-      "</sql-query>]]>"
+msgstr "The id of an collection"
 
-#: index.docbook:272
+#. Tag: literal
+#: query_sql.xml:272
+#, no-c-format
 msgid "{[aliasname].id}"
-msgstr ""
+msgstr "{[aliasname].id}"
 
-#: index.docbook:274
+#. Tag: literal
+#: query_sql.xml:274
+#, no-c-format
 msgid "EMPID as {coll.id}"
-msgstr ""
+msgstr "EMPID as {coll.id}"
 
-#: index.docbook:278
+#. Tag: entry
+#: query_sql.xml:278
+#, no-c-format
 msgid "The element of an collection"
-msgstr ""
+msgstr "The element of an collection"
 
-#: index.docbook:280
+#. Tag: literal
+#: query_sql.xml:280
+#, no-c-format
 msgid "{[aliasname].element}"
-msgstr ""
+msgstr "{[aliasname].element}"
 
-#: index.docbook:282
+#. Tag: literal
+#: query_sql.xml:282
+#, no-c-format
 msgid "XID as {coll.element}"
-msgstr ""
+msgstr "XID as {coll.element}"
 
-#: index.docbook:286
+#. Tag: entry
+#: query_sql.xml:286
+#, no-c-format
 msgid "roperty of the element in the collection"
-msgstr ""
+msgstr "roperty of the element in the collection"
 
-#: index.docbook:288
+#. Tag: literal
+#: query_sql.xml:288
+#, no-c-format
 msgid "{[aliasname].element.[propertyname]}"
-msgstr ""
+msgstr "{[aliasname].element.[propertyname]}"
 
-#: index.docbook:290
+#. Tag: literal
+#: query_sql.xml:290
+#, no-c-format
 msgid "NAME as {coll.element.name}"
-msgstr ""
+msgstr "NAME as {coll.element.name}"
 
-#: index.docbook:294
+#. Tag: entry
+#: query_sql.xml:294
+#, no-c-format
 msgid "All properties of the element in the collection"
-msgstr ""
+msgstr "All properties of the element in the collection"
 
-#: index.docbook:296
+#. Tag: literal
+#: query_sql.xml:296
+#, no-c-format
 msgid "{[aliasname].element.*}"
-msgstr ""
+msgstr "{[aliasname].element.*}"
 
-#: index.docbook:298
+#. Tag: literal
+#: query_sql.xml:298
+#, no-c-format
 msgid "{coll.element.*}"
-msgstr ""
+msgstr "{coll.element.*}"
 
-#: index.docbook:302
+#. Tag: entry
+#: query_sql.xml:302
+#, no-c-format
 msgid "All properties of the the collection"
-msgstr ""
+msgstr "All properties of the the collection"
 
-#: index.docbook:306
+#. Tag: literal
+#: query_sql.xml:306
+#, no-c-format
 msgid "{coll.*}"
-msgstr ""
+msgstr "{coll.*}"
 
-#: index.docbook:315
+#. Tag: title
+#: query_sql.xml:315
+#, no-c-format
 msgid "Returning non-managed entities"
-msgstr ""
+msgstr "Returning non-managed entities"
 
-#: index.docbook:317
-msgid "It is possible to apply a ResultTransformer to native sql queries. Allowing it to e.g. return non-managed entities."
+#. Tag: para
+#: query_sql.xml:317
+#, no-c-format
+msgid ""
+"It is possible to apply a ResultTransformer to native sql queries. Allowing "
+"it to e.g. return non-managed entities."
 msgstr ""
+"It is possible to apply a ResultTransformer to native sql queries. Allowing "
+"it to e.g. return non-managed entities."
 
-#: index.docbook:319
+#. Tag: programlisting
+#: query_sql.xml:319
+#, no-c-format
 msgid ""
-      "<![CDATA[sess.createSQLQuery(\"SELECT NAME, BIRTHDATE FROM CATS\")\n"
-      "        .setResultTransformer(Transformers.aliasToBean(CatDTO.class))]]>"
+"<![CDATA[sess.createSQLQuery(\"SELECT NAME, BIRTHDATE FROM CATS\")\n"
+"        .setResultTransformer(Transformers.aliasToBean(CatDTO.class))]]>"
 msgstr ""
 
-#: index.docbook:329
+#. Tag: para
+#: query_sql.xml:329
+#, no-c-format
 msgid "a result transformer"
-msgstr ""
+msgstr "a result transformer"
 
-#: index.docbook:333
-msgid "The above query will return a list of <literal>CatDTO</literal> which has been instantiated and injected the values of NAME and BIRTHNAME into its corresponding properties or fields."
+#. Tag: para
+#: query_sql.xml:333
+#, no-c-format
+msgid ""
+"The above query will return a list of <literal>CatDTO</literal> which has "
+"been instantiated and injected the values of NAME and BIRTHNAME into its "
+"corresponding properties or fields."
 msgstr ""
+"The above query will return a list of <literal>CatDTO</literal> which has "
+"been instantiated and injected the values of NAME and BIRTHNAME into its "
+"corresponding properties or fields."
 
-#: index.docbook:340
+#. Tag: title
+#: query_sql.xml:340
+#, no-c-format
 msgid "Handling inheritance"
-msgstr ""
+msgstr "Handling inheritance"
 
-#: index.docbook:342
-msgid "Native sql queries which query for entities that is mapped as part of an inheritance must include all properties for the baseclass and all it subclasses."
+#. Tag: para
+#: query_sql.xml:342
+#, no-c-format
+msgid ""
+"Native sql queries which query for entities that is mapped as part of an "
+"inheritance must include all properties for the baseclass and all it "
+"subclasses."
 msgstr ""
+"Native sql queries which query for entities that is mapped as part of an "
+"inheritance must include all properties for the baseclass and all it "
+"subclasses."
 
-#: index.docbook:348
+#. Tag: title
+#: query_sql.xml:348
+#, no-c-format
 msgid "Parameters"
-msgstr ""
+msgstr "Parameters"
 
-#: index.docbook:350
+#. Tag: para
+#: query_sql.xml:350
+#, no-c-format
 msgid "Native sql queries support positional as well as named parameters:"
-msgstr ""
+msgstr "Native sql queries support positional as well as named parameters:"
 
-#: index.docbook:353
+#. Tag: programlisting
+#: query_sql.xml:353
+#, no-c-format
 msgid ""
-      "<![CDATA[Query query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE NAME like ?\").addEntity(Cat.class);\n"
-      "List pusList = query.setString(0, \"Pus%\").list();\n"
-      "     \n"
-      "query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE NAME like :name\").addEntity(Cat.class);\n"
-      "List pusList = query.setString(\"name\", \"Pus%\").list();          ]]>"
+"<![CDATA[Query query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE NAME "
+"like ?\").addEntity(Cat.class);\n"
+"List pusList = query.setString(0, \"Pus%\").list();\n"
+"     \n"
+"query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE NAME like :name\")."
+"addEntity(Cat.class);\n"
+"List pusList = query.setString(\"name\", \"Pus%\").list();          ]]>"
 msgstr ""
 
-#: index.docbook:361
+#. Tag: title
+#: query_sql.xml:361
+#, no-c-format
 msgid "Named SQL queries"
-msgstr ""
+msgstr "Consultas SQL con nombre"
 
-#: index.docbook:363
-msgid "Named SQL queries may be defined in the mapping document and called in exactly the same way as a named HQL query. In this case, we do <emphasis>not</emphasis> need to call <literal>addEntity()</literal>."
+#. Tag: para
+#: query_sql.xml:363
+#, no-c-format
+msgid ""
+"Named SQL queries may be defined in the mapping document and called in "
+"exactly the same way as a named HQL query. In this case, we do "
+"<emphasis>not</emphasis> need to call <literal>addEntity()</literal>."
 msgstr ""
+"Las consultas SQL con nombre pueden definirse en el documento de mapeo y "
+"llamadas exactamente en la misma forma en que a una consulta HQL con nombre. "
+"En este caso, <emphasis>no</emphasis> necesitamos llamar a <literal>addEntity"
+"()</literal>."
 
-#: index.docbook:368
+#. Tag: programlisting
+#: query_sql.xml:368
+#, no-c-format
 msgid ""
-      "<![CDATA[<sql-query name=\"persons\">\n"
-      "    <return alias=\"person\" class=\"eg.Person\"/>\n"
-      "    SELECT person.NAME AS {person.name},\n"
-      "           person.AGE AS {person.age},\n"
-      "           person.SEX AS {person.sex}\n"
-      "    FROM PERSON person\n"
-      "    WHERE person.NAME LIKE :namePattern\n"
-      "</sql-query>]]>"
+"<![CDATA[<sql-query name=\"persons\">\n"
+"    <return alias=\"person\" class=\"eg.Person\"/>\n"
+"    SELECT person.NAME AS {person.name},\n"
+"           person.AGE AS {person.age},\n"
+"           person.SEX AS {person.sex}\n"
+"    FROM PERSON person\n"
+"    WHERE person.NAME LIKE :namePattern\n"
+"</sql-query>]]>"
 msgstr ""
 
-#: index.docbook:370
+#. Tag: programlisting
+#: query_sql.xml:370
+#, no-c-format
 msgid ""
-      "<![CDATA[List people = sess.getNamedQuery(\"persons\")\n"
-      "    .setString(\"namePattern\", namePattern)\n"
-      "    .setMaxResults(50)\n"
-      "    .list();]]>"
+"<![CDATA[List people = sess.getNamedQuery(\"persons\")\n"
+"    .setString(\"namePattern\", namePattern)\n"
+"    .setMaxResults(50)\n"
+"    .list();]]>"
 msgstr ""
 
-#: index.docbook:372
-msgid "The <literal>&lt;return-join&gt;</literal> and <literal>&lt;load-collection&gt;</literal> elements are used to join associations and define queries which initialize collections, respectively."
+#. Tag: para
+#: query_sql.xml:372
+#, no-c-format
+msgid ""
+"The <literal>&lt;return-join&gt;</literal> and <literal>&lt;load-"
+"collection&gt;</literal> elements are used to join associations and define "
+"queries which initialize collections, respectively."
 msgstr ""
+"Los elementos <literal>&lt;return-join&gt;</literal> y <literal>&lt;load-"
+"collection&gt;</literal> se usan para unir asociaciones y definir consultas "
+"que inicialicen colecciones, respectivamente."
 
-#: index.docbook:377
+#. Tag: programlisting
+#: query_sql.xml:377
+#, no-c-format
 msgid ""
-      "<![CDATA[<sql-query name=\"personsWith\">\n"
-      "    <return alias=\"person\" class=\"eg.Person\"/>\n"
-      "    <return-join alias=\"address\" property=\"person.mailingAddress\"/>\n"
-      "    SELECT person.NAME AS {person.name},\n"
-      "           person.AGE AS {person.age},\n"
-      "           person.SEX AS {person.sex},\n"
-      "           address.STREET AS {address.street},\n"
-      "           address.CITY AS {address.city},\n"
-      "           address.STATE AS {address.state},\n"
-      "           address.ZIP AS {address.zip}\n"
-      "    FROM PERSON person\n"
-      "    JOIN ADDRESS address\n"
-      "        ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
-      "    WHERE person.NAME LIKE :namePattern\n"
-      "</sql-query>]]>"
+"<![CDATA[<sql-query name=\"personsWith\">\n"
+"    <return alias=\"person\" class=\"eg.Person\"/>\n"
+"    <return-join alias=\"address\" property=\"person.mailingAddress\"/>\n"
+"    SELECT person.NAME AS {person.name},\n"
+"           person.AGE AS {person.age},\n"
+"           person.SEX AS {person.sex},\n"
+"           address.STREET AS {address.street},\n"
+"           address.CITY AS {address.city},\n"
+"           address.STATE AS {address.state},\n"
+"           address.ZIP AS {address.zip}\n"
+"    FROM PERSON person\n"
+"    JOIN ADDRESS address\n"
+"        ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
+"    WHERE person.NAME LIKE :namePattern\n"
+"</sql-query>]]>"
 msgstr ""
 
-#: index.docbook:379
-msgid "A named SQL query may return a scalar value. You must declare the column alias and Hibernate type using the <literal>&lt;return-scalar&gt;</literal> element:"
+#. Tag: para
+#: query_sql.xml:379
+#, no-c-format
+msgid ""
+"A named SQL query may return a scalar value. You must declare the column "
+"alias and Hibernate type using the <literal>&lt;return-scalar&gt;</literal> "
+"element:"
 msgstr ""
+"Una consulta SQL con nombre puede devolver un valor escalar. Debes "
+"especificar el alias de columna y tipo Hibernate usando el elementp "
+"<literal>&lt;return-scalar&gt;</literal>:"
 
-#: index.docbook:383
+#. Tag: programlisting
+#: query_sql.xml:383
+#, no-c-format
 msgid ""
-      "<![CDATA[<sql-query name=\"mySqlQuery\">\n"
-      "    <return-scalar column=\"name\" type=\"string\"/>\n"
-      "    <return-scalar column=\"age\" type=\"long\"/>\n"
-      "    SELECT p.NAME AS name,\n"
-      "           p.AGE AS age,\n"
-      "    FROM PERSON p WHERE p.NAME LIKE 'Hiber%'\n"
-      "</sql-query>]]>"
+"<![CDATA[<sql-query name=\"mySqlQuery\">\n"
+"    <return-scalar column=\"name\" type=\"string\"/>\n"
+"    <return-scalar column=\"age\" type=\"long\"/>\n"
+"    SELECT p.NAME AS name,\n"
+"           p.AGE AS age,\n"
+"    FROM PERSON p WHERE p.NAME LIKE 'Hiber%'\n"
+"</sql-query>]]>"
 msgstr ""
 
-#: index.docbook:385
-msgid "You can externalize the resultset mapping informations in a <literal>&lt;resultset&gt;</literal> element to either reuse them accross several named queries or through the <literal>setResultSetMapping()</literal> API."
+#. Tag: para
+#: query_sql.xml:385
+#, no-c-format
+msgid ""
+"You can externalize the resultset mapping informations in a <literal>&lt;"
+"resultset&gt;</literal> element to either reuse them accross several named "
+"queries or through the <literal>setResultSetMapping()</literal> API."
 msgstr ""
+"You can externalize the resultset mapping informations in a <literal>&lt;"
+"resultset&gt;</literal> element to either reuse them accross several named "
+"queries or through the <literal>setResultSetMapping()</literal> API."
 
-#: index.docbook:390
+#. Tag: programlisting
+#: query_sql.xml:390
+#, no-c-format
 msgid ""
-      "<![CDATA[<resultset name=\"personAddress\">\n"
-      "    <return alias=\"person\" class=\"eg.Person\"/>\n"
-      "    <return-join alias=\"address\" property=\"person.mailingAddress\"/>\n"
-      "</resultset>\n"
-      "\n"
-      "<sql-query name=\"personsWith\" resultset-ref=\"personAddress\">\n"
-      "    SELECT person.NAME AS {person.name},\n"
-      "           person.AGE AS {person.age},\n"
-      "           person.SEX AS {person.sex},\n"
-      "           address.STREET AS {address.street},\n"
-      "           address.CITY AS {address.city},\n"
-      "           address.STATE AS {address.state},\n"
-      "           address.ZIP AS {address.zip}\n"
-      "    FROM PERSON person\n"
-      "    JOIN ADDRESS address\n"
-      "        ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
-      "    WHERE person.NAME LIKE :namePattern\n"
-      "</sql-query>]]>"
+"<![CDATA[<resultset name=\"personAddress\">\n"
+"    <return alias=\"person\" class=\"eg.Person\"/>\n"
+"    <return-join alias=\"address\" property=\"person.mailingAddress\"/>\n"
+"</resultset>\n"
+"\n"
+"<sql-query name=\"personsWith\" resultset-ref=\"personAddress\">\n"
+"    SELECT person.NAME AS {person.name},\n"
+"           person.AGE AS {person.age},\n"
+"           person.SEX AS {person.sex},\n"
+"           address.STREET AS {address.street},\n"
+"           address.CITY AS {address.city},\n"
+"           address.STATE AS {address.state},\n"
+"           address.ZIP AS {address.zip}\n"
+"    FROM PERSON person\n"
+"    JOIN ADDRESS address\n"
+"        ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
+"    WHERE person.NAME LIKE :namePattern\n"
+"</sql-query>]]>"
 msgstr ""
 
-#: index.docbook:392
-msgid "You can alternatively use the resultset mapping information in your hbm files directly in java code."
+#. Tag: para
+#: query_sql.xml:392
+#, no-c-format
+msgid ""
+"You can alternatively use the resultset mapping information in your hbm "
+"files directly in java code."
 msgstr ""
+"You can alternatively use the resultset mapping information in your hbm "
+"files directly in java code."
 
-#: index.docbook:395
+#. Tag: programlisting
+#: query_sql.xml:395
+#, no-c-format
 msgid ""
-      "<![CDATA[List cats = sess.createSQLQuery(\n"
-      "        \"select {cat.*}, {kitten.*} from cats cat, cats kitten where kitten.mother = cat.id\"\n"
-      "    )\n"
-      "    .setResultSetMapping(\"catAndKitten\")\n"
-      "    .list();]]>"
+"<![CDATA[List cats = sess.createSQLQuery(\n"
+"        \"select {cat.*}, {kitten.*} from cats cat, cats kitten where kitten."
+"mother = cat.id\"\n"
+"    )\n"
+"    .setResultSetMapping(\"catAndKitten\")\n"
+"    .list();]]>"
 msgstr ""
 
-#: index.docbook:398
+#. Tag: title
+#: query_sql.xml:398
+#, no-c-format
 msgid "Using return-property to explicitly specify column/alias names"
 msgstr ""
+"Usando return-property para especificar explícitamente nombres de columna/"
+"alias"
 
-#: index.docbook:401
-msgid "With <literal>&lt;return-property&gt;</literal> you can explicitly tell Hibernate what column aliases to use, instead of using the <literal>{}</literal>-syntax to let Hibernate inject its own aliases."
+#. Tag: para
+#: query_sql.xml:401
+#, no-c-format
+msgid ""
+"With <literal>&lt;return-property&gt;</literal> you can explicitly tell "
+"Hibernate what column aliases to use, instead of using the <literal>{}</"
+"literal>-syntax to let Hibernate inject its own aliases."
 msgstr ""
+"Con <literal>&lt;return-property&gt;</literal> puedes decirle explícitamente "
+"a Hibernate qué alias de columna usar, en vez de usar la sintáxis <literal>{}"
+"</literal> para dejar que Hibernate inyecte sus propios alias."
 
-#: index.docbook:406
+#. Tag: programlisting
+#: query_sql.xml:406
+#, no-c-format
 msgid ""
-      "<![CDATA[<sql-query name=\"mySqlQuery\">\n"
-      "    <return alias=\"person\" class=\"eg.Person\">\n"
-      "        <return-property name=\"name\" column=\"myName\"/>\n"
-      "        <return-property name=\"age\" column=\"myAge\"/>\n"
-      "        <return-property name=\"sex\" column=\"mySex\"/>\n"
-      "    </return>\n"
-      "    SELECT person.NAME AS myName,\n"
-      "           person.AGE AS myAge,\n"
-      "           person.SEX AS mySex,\n"
-      "    FROM PERSON person WHERE person.NAME LIKE :name\n"
-      "</sql-query>\n"
-      "]]>"
+"<![CDATA[<sql-query name=\"mySqlQuery\">\n"
+"    <return alias=\"person\" class=\"eg.Person\">\n"
+"        <return-property name=\"name\" column=\"myName\"/>\n"
+"        <return-property name=\"age\" column=\"myAge\"/>\n"
+"        <return-property name=\"sex\" column=\"mySex\"/>\n"
+"    </return>\n"
+"    SELECT person.NAME AS myName,\n"
+"           person.AGE AS myAge,\n"
+"           person.SEX AS mySex,\n"
+"    FROM PERSON person WHERE person.NAME LIKE :name\n"
+"</sql-query>\n"
+"]]>"
 msgstr ""
 
-#: index.docbook:408
-msgid "<literal>&lt;return-property&gt;</literal> also works with multiple columns. This solves a limitation with the <literal>{}</literal>-syntax which can not allow fine grained control of multi-column properties."
+#. Tag: para
+#: query_sql.xml:408
+#, no-c-format
+msgid ""
+"<literal>&lt;return-property&gt;</literal> also works with multiple columns. "
+"This solves a limitation with the <literal>{}</literal>-syntax which can not "
+"allow fine grained control of multi-column properties."
 msgstr ""
+"<literal>&lt;return-property&gt;</literal> también trabaja con múltiples "
+"columnas. Esto resuelve una limitación de la sintáxis <literal>{}</literal>, "
+"la cual no puede permitir un control fino de propiedades multi-columna."
 
-#: index.docbook:413
+#. Tag: programlisting
+#: query_sql.xml:413
+#, no-c-format
 msgid ""
-      "<![CDATA[<sql-query name=\"organizationCurrentEmployments\">\n"
-      "    <return alias=\"emp\" class=\"Employment\">\n"
-      "        <return-property name=\"salary\">\n"
-      "            <return-column name=\"VALUE\"/>\n"
-      "            <return-column name=\"CURRENCY\"/>\n"
-      "        </return-property>\n"
-      "        <return-property name=\"endDate\" column=\"myEndDate\"/>\n"
-      "    </return>\n"
-      "        SELECT EMPLOYEE AS {emp.employee}, EMPLOYER AS {emp.employer},\n"
-      "        STARTDATE AS {emp.startDate}, ENDDATE AS {emp.endDate},\n"
-      "        REGIONCODE as {emp.regionCode}, EID AS {emp.id}, VALUE, CURRENCY\n"
-      "        FROM EMPLOYMENT\n"
-      "        WHERE EMPLOYER = :id AND ENDDATE IS NULL\n"
-      "        ORDER BY STARTDATE ASC\n"
-      "</sql-query>]]>"
+"<![CDATA[<sql-query name=\"organizationCurrentEmployments\">\n"
+"    <return alias=\"emp\" class=\"Employment\">\n"
+"        <return-property name=\"salary\">\n"
+"            <return-column name=\"VALUE\"/>\n"
+"            <return-column name=\"CURRENCY\"/>\n"
+"        </return-property>\n"
+"        <return-property name=\"endDate\" column=\"myEndDate\"/>\n"
+"    </return>\n"
+"        SELECT EMPLOYEE AS {emp.employee}, EMPLOYER AS {emp.employer},\n"
+"        STARTDATE AS {emp.startDate}, ENDDATE AS {emp.endDate},\n"
+"        REGIONCODE as {emp.regionCode}, EID AS {emp.id}, VALUE, CURRENCY\n"
+"        FROM EMPLOYMENT\n"
+"        WHERE EMPLOYER = :id AND ENDDATE IS NULL\n"
+"        ORDER BY STARTDATE ASC\n"
+"</sql-query>]]>"
 msgstr ""
 
-#: index.docbook:415
-msgid "Notice that in this example we used <literal>&lt;return-property&gt;</literal> in combination with the <literal>{}</literal>-syntax for injection. Allowing users to choose how they want to refer column and properties."
+#. Tag: para
+#: query_sql.xml:415
+#, no-c-format
+msgid ""
+"Notice that in this example we used <literal>&lt;return-property&gt;</"
+"literal> in combination with the <literal>{}</literal>-syntax for injection. "
+"Allowing users to choose how they want to refer column and properties."
 msgstr ""
+"Nota que en este ejemplo hemos usado <literal>&lt;return-property&gt;</"
+"literal> en combinación con la sintáxis <literal>{}</literal> para "
+"inyección, permitiendo a los usuarios elejir cómo quieren referirse a las "
+"columnas y propiedades."
 
-#: index.docbook:420
-msgid "If your mapping has a discriminator you must use <literal>&lt;return-discriminator&gt;</literal> to specify the discriminator column."
+#. Tag: para
+#: query_sql.xml:420
+#, no-c-format
+msgid ""
+"If your mapping has a discriminator you must use <literal>&lt;return-"
+"discriminator&gt;</literal> to specify the discriminator column."
 msgstr ""
+"Si tu mapeo tiene un discriminador debes usar <literal>&lt;return-"
+"discriminator&gt;</literal> para especificar la columna discriminadora."
 
-#: index.docbook:426
+#. Tag: title
+#: query_sql.xml:426
+#, no-c-format
 msgid "Using stored procedures for querying"
-msgstr ""
+msgstr "Usando procedimientos almacenados para consultar"
 
-#: index.docbook:428
-msgid "Hibernate 3 introduces support for queries via stored procedures and functions. Most of the following documentation is equivalent for both. The stored procedure/function must return a resultset as the first out-parameter to be able to work with Hibernate. An example of such a stored function in Oracle 9 and higher is as follows:"
+#. Tag: para
+#: query_sql.xml:428
+#, no-c-format
+msgid ""
+"Hibernate 3 introduces support for queries via stored procedures and "
+"functions. Most of the following documentation is equivalent for both. The "
+"stored procedure/function must return a resultset as the first out-parameter "
+"to be able to work with Hibernate. An example of such a stored function in "
+"Oracle 9 and higher is as follows:"
 msgstr ""
+"Hibernate3 introduce soporte para consultas vía procedimientos almacenados. "
+"Los procedimientos almacenados deben devolver un conjunto resultado como el "
+"primer parámetro de salida para ser capaces de funcionar con Hibernate. Un "
+"ejemplo de uno procedimiento almacenado en Oracle 9 o superior es así:"
 
-#: index.docbook:434
+#. Tag: programlisting
+#: query_sql.xml:434
+#, no-c-format
 msgid ""
-      "<![CDATA[CREATE OR REPLACE FUNCTION selectAllEmployments\n"
-      "    RETURN SYS_REFCURSOR\n"
-      "AS\n"
-      "    st_cursor SYS_REFCURSOR;\n"
-      "BEGIN\n"
-      "    OPEN st_cursor FOR\n"
-      " SELECT EMPLOYEE, EMPLOYER,\n"
-      " STARTDATE, ENDDATE,\n"
-      " REGIONCODE, EID, VALUE, CURRENCY\n"
-      " FROM EMPLOYMENT;\n"
-      "      RETURN  st_cursor;\n"
-      " END;]]>"
+"<![CDATA[CREATE OR REPLACE FUNCTION selectAllEmployments\n"
+"    RETURN SYS_REFCURSOR\n"
+"AS\n"
+"    st_cursor SYS_REFCURSOR;\n"
+"BEGIN\n"
+"    OPEN st_cursor FOR\n"
+" SELECT EMPLOYEE, EMPLOYER,\n"
+" STARTDATE, ENDDATE,\n"
+" REGIONCODE, EID, VALUE, CURRENCY\n"
+" FROM EMPLOYMENT;\n"
+"      RETURN  st_cursor;\n"
+" END;]]>"
 msgstr ""
 
-#: index.docbook:436
+#. Tag: para
+#: query_sql.xml:436
+#, no-c-format
 msgid "To use this query in Hibernate you need to map it via a named query."
 msgstr ""
+"Para usar esta consulta en Hibernate necesitas mapearla por medio de una "
+"consulta con nombre."
 
-#: index.docbook:439
+#. Tag: programlisting
+#: query_sql.xml:439
+#, no-c-format
 msgid ""
-      "<![CDATA[<sql-query name=\"selectAllEmployees_SP\" callable=\"true\">\n"
-      "    <return alias=\"emp\" class=\"Employment\">\n"
-      "        <return-property name=\"employee\" column=\"EMPLOYEE\"/>\n"
-      "        <return-property name=\"employer\" column=\"EMPLOYER\"/>\n"
-      "        <return-property name=\"startDate\" column=\"STARTDATE\"/>\n"
-      "        <return-property name=\"endDate\" column=\"ENDDATE\"/>\n"
-      "        <return-property name=\"regionCode\" column=\"REGIONCODE\"/>\n"
-      "        <return-property name=\"id\" column=\"EID\"/>\n"
-      "        <return-property name=\"salary\">\n"
-      "            <return-column name=\"VALUE\"/>\n"
-      "            <return-column name=\"CURRENCY\"/>\n"
-      "        </return-property>\n"
-      "    </return>\n"
-      "    { ? = call selectAllEmployments() }\n"
-      "</sql-query>]]>"
+"<![CDATA[<sql-query name=\"selectAllEmployees_SP\" callable=\"true\">\n"
+"    <return alias=\"emp\" class=\"Employment\">\n"
+"        <return-property name=\"employee\" column=\"EMPLOYEE\"/>\n"
+"        <return-property name=\"employer\" column=\"EMPLOYER\"/>\n"
+"        <return-property name=\"startDate\" column=\"STARTDATE\"/>\n"
+"        <return-property name=\"endDate\" column=\"ENDDATE\"/>\n"
+"        <return-property name=\"regionCode\" column=\"REGIONCODE\"/>\n"
+"        <return-property name=\"id\" column=\"EID\"/>\n"
+"        <return-property name=\"salary\">\n"
+"            <return-column name=\"VALUE\"/>\n"
+"            <return-column name=\"CURRENCY\"/>\n"
+"        </return-property>\n"
+"    </return>\n"
+"    { ? = call selectAllEmployments() }\n"
+"</sql-query>]]>"
 msgstr ""
 
-#: index.docbook:441
-msgid "Notice stored procedures currently only return scalars and entities. <literal>&lt;return-join&gt;</literal> and <literal>&lt;load-collection&gt;</literal> are not supported."
+#. Tag: para
+#: query_sql.xml:441
+#, no-c-format
+msgid ""
+"Notice stored procedures currently only return scalars and entities. "
+"<literal>&lt;return-join&gt;</literal> and <literal>&lt;load-collection&gt;</"
+"literal> are not supported."
 msgstr ""
+"Nota que los procedimientos almacenados sólo devuelven escalares y "
+"entidades. No están soportados <literal>&lt;return-join&gt;</literal> y "
+"<literal>&lt;load-collection&gt;</literal>."
 
-#: index.docbook:446
+#. Tag: title
+#: query_sql.xml:446
+#, no-c-format
 msgid "Rules/limitations for using stored procedures"
-msgstr ""
+msgstr "Reglas/limitaciones para usar procedimientos almacenados"
 
-#: index.docbook:448
-msgid "To use stored procedures with Hibernate the procedures/functions have to follow some rules. If they do not follow those rules they are not usable with Hibernate. If you still want to use these procedures you have to execute them via <literal>session.connection()</literal>. The rules are different for each database, since database vendors have different stored procedure semantics/syntax."
+#. Tag: para
+#: query_sql.xml:448
+#, no-c-format
+msgid ""
+"To use stored procedures with Hibernate the procedures/functions have to "
+"follow some rules. If they do not follow those rules they are not usable "
+"with Hibernate. If you still want to use these procedures you have to "
+"execute them via <literal>session.connection()</literal>. The rules are "
+"different for each database, since database vendors have different stored "
+"procedure semantics/syntax."
 msgstr ""
+"Para usar procedimientos almacenados con Hibernate los procedimientos tienen "
+"que seguir algunas reglas. Si no siguen esas reglas no son usables por "
+"Hibernate. Si aún quisieras usar estos procedimientos tendrías que "
+"ejecutarlos por medio de <literal>session.connection()</literal>. Las reglas "
+"son diferentes para cada base de datos, ya que los vendedores de base de "
+"datos tienen diferentes semánticas/sintáxis de procedimientos almacenados."
 
-#: index.docbook:455
-msgid "Stored procedure queries can't be paged with <literal>setFirstResult()/setMaxResults()</literal>."
+#. Tag: para
+#: query_sql.xml:455
+#, no-c-format
+msgid ""
+"Stored procedure queries can't be paged with <literal>setFirstResult()/"
+"setMaxResults()</literal>."
 msgstr ""
+"Las consultas de procedimientos almacenados no pueden ser paginadas con "
+"<literal>setFirstResult()/setMaxResults()</literal>."
 
-#: index.docbook:458
-msgid "Recommended call form is standard SQL92: <literal>{ ? = call functionName(&lt;parameters&gt;) }</literal> or <literal>{ ? = call procedureName(&lt;parameters&gt;}</literal>. Native call syntax is not supported."
-msgstr ""
+#. Tag: para
+#: query_sql.xml:458
+#, no-c-format
+msgid ""
+"Recommended call form is standard SQL92: <literal>{ ? = call functionName"
+"(&lt;parameters&gt;) }</literal> or <literal>{ ? = call procedureName(&lt;"
+"parameters&gt;}</literal>. Native call syntax is not supported."
+msgstr "Para Oracle se aplican las siguientes reglas:"
 
-#: index.docbook:463
+#. Tag: para
+#: query_sql.xml:463
+#, no-c-format
 msgid "For Oracle the following rules apply:"
 msgstr ""
+"El procedimiento debe devolver un conjunto resultado. Esto se hace "
+"devolviendo un <literal>SYS_REFCURSOR</literal> en Oracle 9 o 10. En Oracle "
+"necesitas definir un tipo <literal>REF CURSOR</literal>."
 
-#: index.docbook:467
-msgid "A function must return a result set. The first parameter of a procedure must be an <literal>OUT</literal> that returns a result set. This is done by using a <literal>SYS_REFCURSOR</literal> type in Oracle 9 or 10. In Oracle you need to define a <literal>REF CURSOR</literal> type, see Oracle literature."
+#. Tag: para
+#: query_sql.xml:467
+#, no-c-format
+msgid ""
+"A function must return a result set. The first parameter of a procedure must "
+"be an <literal>OUT</literal> that returns a result set. This is done by "
+"using a <literal>SYS_REFCURSOR</literal> type in Oracle 9 or 10. In Oracle "
+"you need to define a <literal>REF CURSOR</literal> type, see Oracle "
+"literature."
 msgstr ""
+"La forma recomendada es <literal>{ ? = call procName(&lt;parameters&gt;) }</"
+"literal> o <literal>{ ? = call procName }</literal> (esto es más una regla "
+"de Oracle que una regla de Hibernate)."
 
-#: index.docbook:476
+#. Tag: para
+#: query_sql.xml:476
+#, no-c-format
 msgid "For Sybase or MS SQL server the following rules apply:"
-msgstr ""
+msgstr "Para Sybase o MS SQL server se aplican las siguientes reglas:"
 
-#: index.docbook:480
-msgid "The procedure must return a result set. Note that since these servers can/will return multiple result sets and update counts, Hibernate will iterate the results and take the first result that is a result set as its return value. Everything else will be discarded."
+#. Tag: para
+#: query_sql.xml:480
+#, no-c-format
+msgid ""
+"The procedure must return a result set. Note that since these servers can/"
+"will return multiple result sets and update counts, Hibernate will iterate "
+"the results and take the first result that is a result set as its return "
+"value. Everything else will be discarded."
 msgstr ""
+"El procedimiento debe devolver un conjunto resultado. Nota que ya que estos "
+"servidores pueden y devolverán múltiples conjuntos resultados y cuentas de "
+"actualización, Hibernate iterará los resultados y tomará el primer resultado "
+"que sea un conjunto resultado como su valor a devolver. Todo lo demás será "
+"descartado."
 
-#: index.docbook:488
-msgid "If you can enable <literal>SET NOCOUNT ON</literal> in your procedure it will probably be more efficient, but this is not a requirement."
+#. Tag: para
+#: query_sql.xml:488
+#, no-c-format
+msgid ""
+"If you can enable <literal>SET NOCOUNT ON</literal> in your procedure it "
+"will probably be more efficient, but this is not a requirement."
 msgstr ""
+"Si habilitas <literal>SET NOCOUNT ON</literal> en tu procedimiento será "
+"probablemente más eficiente, pero esto no es un requerimiento."
 
-#: index.docbook:498
+#. Tag: title
+#: query_sql.xml:498
+#, no-c-format
 msgid "Custom SQL for create, update and delete"
-msgstr ""
+msgstr "SQL personalizado para crear, actualizar y borrar"
 
-#: index.docbook:500
-msgid "Hibernate3 can use custom SQL statements for create, update, and delete operations. The class and collection persisters in Hibernate already contain a set of configuration time generated strings (insertsql, deletesql, updatesql etc.). The mapping tags <literal>&lt;sql-insert&gt;</literal>, <literal>&lt;sql-delete&gt;</literal>, and <literal>&lt;sql-update&gt;</literal> override these strings:"
+#. Tag: para
+#: query_sql.xml:500
+#, no-c-format
+msgid ""
+"Hibernate3 can use custom SQL statements for create, update, and delete "
+"operations. The class and collection persisters in Hibernate already contain "
+"a set of configuration time generated strings (insertsql, deletesql, "
+"updatesql etc.). The mapping tags <literal>&lt;sql-insert&gt;</literal>, "
+"<literal>&lt;sql-delete&gt;</literal>, and <literal>&lt;sql-update&gt;</"
+"literal> override these strings:"
 msgstr ""
+"Hibernate3 puede usar sentencias SQL personalizadas para las operaciones de "
+"crear, actualizar y borrar. Los persistidores de clases y colecciones en "
+"Hibernate ya contienen un conjunto de cadenas generadas en tiempo de "
+"configuración (insertsql, deletesql, updatesql, etc.). Las etiquetas de "
+"mapeo <literal>&lt;sql-insert&gt;</literal>, <literal>&lt;sql-delete&gt;</"
+"literal>, y <literal>&lt;sql-update&gt;</literal> sobrescriben estas cadenas:"
 
-#: index.docbook:508
+#. Tag: programlisting
+#: query_sql.xml:508
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\">\n"
-      "        <generator class=\"increment\"/>\n"
-      "    </id>\n"
-      "    <property name=\"name\" not-null=\"true\"/>\n"
-      "    <sql-insert>INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? )</sql-insert>\n"
-      "    <sql-update>UPDATE PERSON SET NAME=UPPER(?) WHERE ID=?</sql-update>\n"
-      "    <sql-delete>DELETE FROM PERSON WHERE ID=?</sql-delete>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Person\">\n"
+"    <id name=\"id\">\n"
+"        <generator class=\"increment\"/>\n"
+"    </id>\n"
+"    <property name=\"name\" not-null=\"true\"/>\n"
+"    <sql-insert>INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? )</sql-"
+"insert>\n"
+"    <sql-update>UPDATE PERSON SET NAME=UPPER(?) WHERE ID=?</sql-update>\n"
+"    <sql-delete>DELETE FROM PERSON WHERE ID=?</sql-delete>\n"
+"</class>]]>"
 msgstr ""
 
-#: index.docbook:510
-msgid "The SQL is directly executed in your database, so you are free to use any dialect you like. This will of course reduce the portability of your mapping if you use database specific SQL."
+#. Tag: para
+#: query_sql.xml:510
+#, no-c-format
+msgid ""
+"The SQL is directly executed in your database, so you are free to use any "
+"dialect you like. This will of course reduce the portability of your mapping "
+"if you use database specific SQL."
 msgstr ""
+"El SQL se ejecuta directamente en tu base de datos, de modo que eres libre "
+"de usar cualquier dialecto que quieras. Esto reducirá, por supuesto, la "
+"portabilidad de tu mapeo si usas SQL específico de la base de datos."
 
-#: index.docbook:514
-msgid "Stored procedures are supported if the <literal>callable</literal> attribute is set:"
+#. Tag: para
+#: query_sql.xml:514
+#, no-c-format
+msgid ""
+"Stored procedures are supported if the <literal>callable</literal> attribute "
+"is set:"
 msgstr ""
+"Los procedimientos almacenados son soportados si está establecido el "
+"atributo <literal>callable</literal>:"
 
-#: index.docbook:517
+#. Tag: programlisting
+#: query_sql.xml:517
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\">\n"
-      "        <generator class=\"increment\"/>\n"
-      "    </id>\n"
-      "    <property name=\"name\" not-null=\"true\"/>\n"
-      "    <sql-insert callable=\"true\">{call createPerson (?, ?)}</sql-insert>\n"
-      "    <sql-delete callable=\"true\">{? = call deletePerson (?)}</sql-delete>\n"
-      "    <sql-update callable=\"true\">{? = call updatePerson (?, ?)}</sql-update>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Person\">\n"
+"    <id name=\"id\">\n"
+"        <generator class=\"increment\"/>\n"
+"    </id>\n"
+"    <property name=\"name\" not-null=\"true\"/>\n"
+"    <sql-insert callable=\"true\">{call createPerson (?, ?)}</sql-insert>\n"
+"    <sql-delete callable=\"true\">{? = call deletePerson (?)}</sql-delete>\n"
+"    <sql-update callable=\"true\">{? = call updatePerson (?, ?)}</sql-"
+"update>\n"
+"</class>]]>"
 msgstr ""
 
-#: index.docbook:519
-msgid "The order of the positional parameters are currently vital, as they must be in the same sequence as Hibernate expects them."
+#. Tag: para
+#: query_sql.xml:519
+#, no-c-format
+msgid ""
+"The order of the positional parameters are currently vital, as they must be "
+"in the same sequence as Hibernate expects them."
 msgstr ""
+"El orden de los parámetros posicionales son actualmente vitales, ya que "
+"deben estar en la misma secuencia en que las espera Hibernate."
 
-#: index.docbook:522
-msgid "You can see the expected order by enabling debug logging for the <literal>org.hibernate.persister.entity</literal> level. With this level enabled Hibernate will print out the static SQL that is used to create, update, delete etc. entities. (To see the expected sequence, remember to not include your custom SQL in the mapping files as that will override the Hibernate generated static sql.)"
+#. Tag: para
+#: query_sql.xml:522
+#, no-c-format
+msgid ""
+"You can see the expected order by enabling debug logging for the "
+"<literal>org.hibernate.persister.entity</literal> level. With this level "
+"enabled Hibernate will print out the static SQL that is used to create, "
+"update, delete etc. entities. (To see the expected sequence, remember to not "
+"include your custom SQL in the mapping files as that will override the "
+"Hibernate generated static sql.)"
 msgstr ""
+"Puedes ver el orden esperado habilitando el registro de depuración para el "
+"nivel <literal>org.hibernate.persister.entity</literal>. Con este nivel "
+"habilitado, Hibernate imprimirá el SQL estático que se usa para crear, "
+"actualizar, borrar, etc. las entidades. (Para ver la secuencia esperada, "
+"recuerda no incluir tu SQL personalizado en los ficheros de mapeo ya que "
+"sobrescribirán el sql estático generado por Hibernate.)"
 
-#: index.docbook:529
-msgid "The stored procedures are in most cases (read: better do it than not) required to return the number of rows inserted/updated/deleted, as Hibernate has some runtime checks for the success of the statement. Hibernate always registers the first statement parameter as a numeric output parameter for the CUD operations:"
+#. Tag: para
+#: query_sql.xml:529
+#, no-c-format
+msgid ""
+"The stored procedures are in most cases (read: better do it than not) "
+"required to return the number of rows inserted/updated/deleted, as Hibernate "
+"has some runtime checks for the success of the statement. Hibernate always "
+"registers the first statement parameter as a numeric output parameter for "
+"the CUD operations:"
 msgstr ""
+"Los procedimientos almacenados son, en la mayoría de los casos (léase, mejor "
+"hacerlo que no hacerlo), obligados a devolver el número de filas insertadas/"
+"actualizadas/borradas, ya que Hibernate tiene algunas comprobaciones en "
+"tiempo de ejecución del éxito de la sentencia. Hibernate siempre registra el "
+"primer parámetro de la sentencia como un parámetro de salida numérico para "
+"las operaciones CUD:"
 
-#: index.docbook:535
+#. Tag: programlisting
+#: query_sql.xml:535
+#, no-c-format
 msgid ""
-      "<![CDATA[CREATE OR REPLACE FUNCTION updatePerson (uid IN NUMBER, uname IN VARCHAR2)\n"
-      "    RETURN NUMBER IS\n"
-      "BEGIN\n"
-      "\n"
-      "    update PERSON\n"
-      "    set\n"
-      "        NAME = uname,\n"
-      "    where\n"
-      "        ID = uid;\n"
-      "\n"
-      "    return SQL%ROWCOUNT;\n"
-      "\n"
-      "END updatePerson;]]>"
+"<![CDATA[CREATE OR REPLACE FUNCTION updatePerson (uid IN NUMBER, uname IN "
+"VARCHAR2)\n"
+"    RETURN NUMBER IS\n"
+"BEGIN\n"
+"\n"
+"    update PERSON\n"
+"    set\n"
+"        NAME = uname,\n"
+"    where\n"
+"        ID = uid;\n"
+"\n"
+"    return SQL%ROWCOUNT;\n"
+"\n"
+"END updatePerson;]]>"
 msgstr ""
 
-#: index.docbook:539
+#. Tag: title
+#: query_sql.xml:539
+#, no-c-format
 msgid "Custom SQL for loading"
-msgstr ""
+msgstr "SQL personalizado para carga"
 
-#: index.docbook:541
+#. Tag: para
+#: query_sql.xml:541
+#, no-c-format
 msgid "You may also declare your own SQL (or HQL) queries for entity loading:"
 msgstr ""
+"Puedes también declarar tu propias consultas SQL (o HQL) para cargar "
+"entidades:"
 
-#: index.docbook:544
+#. Tag: programlisting
+#: query_sql.xml:544
+#, no-c-format
 msgid ""
-      "<![CDATA[<sql-query name=\"person\">\n"
-      "    <return alias=\"pers\" class=\"Person\" lock-mode=\"upgrade\"/>\n"
-      "    SELECT NAME AS {pers.name}, ID AS {pers.id}\n"
-      "    FROM PERSON\n"
-      "    WHERE ID=?\n"
-      "    FOR UPDATE\n"
-      "</sql-query>]]>"
+"<![CDATA[<sql-query name=\"person\">\n"
+"    <return alias=\"pers\" class=\"Person\" lock-mode=\"upgrade\"/>\n"
+"    SELECT NAME AS {pers.name}, ID AS {pers.id}\n"
+"    FROM PERSON\n"
+"    WHERE ID=?\n"
+"    FOR UPDATE\n"
+"</sql-query>]]>"
 msgstr ""
 
-#: index.docbook:546
-msgid "This is just a named query declaration, as discussed earlier. You may reference this named query in a class mapping:"
+#. Tag: para
+#: query_sql.xml:546
+#, no-c-format
+msgid ""
+"This is just a named query declaration, as discussed earlier. You may "
+"reference this named query in a class mapping:"
 msgstr ""
+"Esto es sólo una declaración de consulta con nombrem como se ha discutido "
+"anteriormente. Puedes hacer referencia a esta consulta con nombre en un "
+"mapeo de clase:"
 
-#: index.docbook:549
+#. Tag: programlisting
+#: query_sql.xml:549
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Person\">\n"
-      "    <id name=\"id\">\n"
-      "        <generator class=\"increment\"/>\n"
-      "    </id>\n"
-      "    <property name=\"name\" not-null=\"true\"/>\n"
-      "    <loader query-ref=\"person\"/>\n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Person\">\n"
+"    <id name=\"id\">\n"
+"        <generator class=\"increment\"/>\n"
+"    </id>\n"
+"    <property name=\"name\" not-null=\"true\"/>\n"
+"    <loader query-ref=\"person\"/>\n"
+"</class>]]>"
 msgstr ""
 
-#: index.docbook:551
+#. Tag: para
+#: query_sql.xml:551
+#, no-c-format
 msgid "This even works with stored procedures."
-msgstr ""
+msgstr "Esto incluso funciona con procedimientos almacenados."
 
-#: index.docbook:553
+#. Tag: para
+#: query_sql.xml:553
+#, no-c-format
 msgid "You may even define a query for collection loading:"
-msgstr ""
+msgstr "Puedes incluso definit una consulta para la carga de colecciones:"
 
-#: index.docbook:555
+#. Tag: programlisting
+#: query_sql.xml:555
+#, no-c-format
 msgid ""
-      "<![CDATA[<set name=\"employments\" inverse=\"true\">\n"
-      "    <key/>\n"
-      "    <one-to-many class=\"Employment\"/>\n"
-      "    <loader query-ref=\"employments\"/>\n"
-      "</set>]]>"
+"<![CDATA[<set name=\"employments\" inverse=\"true\">\n"
+"    <key/>\n"
+"    <one-to-many class=\"Employment\"/>\n"
+"    <loader query-ref=\"employments\"/>\n"
+"</set>]]>"
 msgstr ""
 
-#: index.docbook:557
+#. Tag: programlisting
+#: query_sql.xml:557
+#, no-c-format
 msgid ""
-      "<![CDATA[<sql-query name=\"employments\">\n"
-      "    <load-collection alias=\"emp\" role=\"Person.employments\"/>\n"
-      "    SELECT {emp.*}\n"
-      "    FROM EMPLOYMENT emp\n"
-      "    WHERE EMPLOYER = :id\n"
-      "    ORDER BY STARTDATE ASC, EMPLOYEE ASC\n"
-      "</sql-query>]]>"
+"<![CDATA[<sql-query name=\"employments\">\n"
+"    <load-collection alias=\"emp\" role=\"Person.employments\"/>\n"
+"    SELECT {emp.*}\n"
+"    FROM EMPLOYMENT emp\n"
+"    WHERE EMPLOYER = :id\n"
+"    ORDER BY STARTDATE ASC, EMPLOYEE ASC\n"
+"</sql-query>]]>"
 msgstr ""
 
-#: index.docbook:559
-msgid "You could even define an entity loader that loads a collection by join fetching:"
+#. Tag: para
+#: query_sql.xml:559
+#, no-c-format
+msgid ""
+"You could even define an entity loader that loads a collection by join "
+"fetching:"
 msgstr ""
+"Podrías incluso definir un cargador de entidades que cargue una colección "
+"por recuperación por unión (join fetching):"
 
-#: index.docbook:562
+#. Tag: programlisting
+#: query_sql.xml:562
+#, no-c-format
 msgid ""
-      "<![CDATA[<sql-query name=\"person\">\n"
-      "    <return alias=\"pers\" class=\"Person\"/>\n"
-      "    <return-join alias=\"emp\" property=\"pers.employments\"/>\n"
-      "    SELECT NAME AS {pers.*}, {emp.*}\n"
-      "    FROM PERSON pers\n"
-      "    LEFT OUTER JOIN EMPLOYMENT emp\n"
-      "        ON pers.ID = emp.PERSON_ID\n"
-      "    WHERE ID=?\n"
-      "</sql-query>]]>"
+"<![CDATA[<sql-query name=\"person\">\n"
+"    <return alias=\"pers\" class=\"Person\"/>\n"
+"    <return-join alias=\"emp\" property=\"pers.employments\"/>\n"
+"    SELECT NAME AS {pers.*}, {emp.*}\n"
+"    FROM PERSON pers\n"
+"    LEFT OUTER JOIN EMPLOYMENT emp\n"
+"        ON pers.ID = emp.PERSON_ID\n"
+"    WHERE ID=?\n"
+"</sql-query>]]>"
 msgstr ""
-
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
-
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
-

Modified: core/trunk/documentation/manual/translations/es-ES/content/session_api.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/session_api.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/session_api.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,1220 +1,2241 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:5
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: session_api.xml:5
+#, no-c-format
 msgid "Working with objects"
 msgstr "Trabajando con objetos"
 
-#: index.docbook:7
-msgid "Hibernate is a full object/relational mapping solution that not only shields the developer from the details of the underlying database management system, but also offers <emphasis>state management</emphasis> of objects. This is, contrary to the management of SQL <literal>statements</literal> in common JDBC/SQL persistence layers, a very natural object-oriented view of persistence in Java applications."
-msgstr "Hibernate es una soluci&#x00f3;n completa de mapeo objeto/relacional que no s&#x00f3;lo abstrae al desarrollador de los detalles del sistema de manejo de base datos subyacente, sino que adem&#x00e1;s ofrece <emphasis>manejo de estado</emphasis> de objetos. Esto es, al contrario del manejo de <literal>sentencias</literal> SQL en capas comunes de persistencia JDBC/SQL, una vista de la persistencia en aplicaciones Java muy natural y orientada a objetos."
+#. Tag: para
+#: session_api.xml:7
+#, no-c-format
+msgid ""
+"Hibernate is a full object/relational mapping solution that not only shields "
+"the developer from the details of the underlying database management system, "
+"but also offers <emphasis>state management</emphasis> of objects. This is, "
+"contrary to the management of SQL <literal>statements</literal> in common "
+"JDBC/SQL persistence layers, a very natural object-oriented view of "
+"persistence in Java applications."
+msgstr ""
+"Hibernate es una solución completa de mapeo objeto/relacional que no sólo "
+"abstrae al desarrollador de los detalles del sistema de manejo de base datos "
+"subyacente, sino que además ofrece <emphasis>manejo de estado</emphasis> de "
+"objetos. Esto es, al contrario del manejo de <literal>sentencias</literal> "
+"SQL en capas comunes de persistencia JDBC/SQL, una vista de la persistencia "
+"en aplicaciones Java muy natural y orientada a objetos."
 
-#: index.docbook:16
-msgid "In other words, Hibernate application developers should always think about the <emphasis>state</emphasis> of their objects, and not necessarily about the execution of SQL statements. This part is taken care of by Hibernate and is only relevant for the application developer when tuning the performance of the system."
-msgstr "En otras palabras, los desarroladores de aplicaciones Hibernate deben siempre pensar en el <emphasis>estado</emphasis> de sus objetos, y no necesariamente en la ejecuci&#x00f3;n de sentencias SQL. Esta parte es cuidada por Hibernate y es s&#x00f3;lo relevante para el desarrollador de la aplicaci&#x00f3;n al afinar el rendimiento del sistema."
+#. Tag: para
+#: session_api.xml:16
+#, no-c-format
+msgid ""
+"In other words, Hibernate application developers should always think about "
+"the <emphasis>state</emphasis> of their objects, and not necessarily about "
+"the execution of SQL statements. This part is taken care of by Hibernate and "
+"is only relevant for the application developer when tuning the performance "
+"of the system."
+msgstr ""
+"En otras palabras, los desarroladores de aplicaciones Hibernate deben "
+"siempre pensar en el <emphasis>estado</emphasis> de sus objetos, y no "
+"necesariamente en la ejecución de sentencias SQL. Esta parte es cuidada por "
+"Hibernate y es sólo relevante para el desarrollador de la aplicación al "
+"afinar el rendimiento del sistema."
 
-#: index.docbook:24
+#. Tag: title
+#: session_api.xml:24
+#, no-c-format
 msgid "Hibernate object states"
 msgstr "Estados de objeto de Hibernate"
 
-#: index.docbook:26
+#. Tag: para
+#: session_api.xml:26
+#, no-c-format
 msgid "Hibernate defines and supports the following object states:"
 msgstr "Hibernate define y soporta los siguientes estados de objeto:"
 
-#: index.docbook:32
-msgid "<emphasis>Transient</emphasis> - an object is transient if it has just been instantiated using the <literal>new</literal> operator, and it is not associated with a Hibernate <literal>Session</literal>. It has no persistent representation in the database and no identifier value has been assigned. Transient instances will be destroyed by the garbage collector if the application doesn't hold a reference anymore. Use the Hibernate <literal>Session</literal> to make an object persistent (and let Hibernate take care of the SQL statements that need to be executed for this transition)."
-msgstr "<emphasis>Transitorio</emphasis> - un objeto es transitorio si ha sido reci&#x00e9;n instanciado usando el operador <literal>new</literal>, y no est&#x00e1; asociado a una <literal>Session</literal> de Hibernate. No tiene una representaci&#x00f3;n persistente en la base de datos y no se le ha asignado un valor identificador. Las instancias transitorias ser&#x00e1;n destru&#x00ed;das por el recolector de basura si la aplicaci&#x00f3;n no mantiene m&#x00e1;s una referencia. Usa la <literal>Session</literal> de Hibernate para hacer un objeto persistente (y deja que Hibernate cuide de las sentencias SQL que necesitan ejecutarse para esta transici&#x00f3;n)."
+#. Tag: para
+#: session_api.xml:32
+#, no-c-format
+msgid ""
+"<emphasis>Transient</emphasis> - an object is transient if it has just been "
+"instantiated using the <literal>new</literal> operator, and it is not "
+"associated with a Hibernate <literal>Session</literal>. It has no persistent "
+"representation in the database and no identifier value has been assigned. "
+"Transient instances will be destroyed by the garbage collector if the "
+"application doesn't hold a reference anymore. Use the Hibernate "
+"<literal>Session</literal> to make an object persistent (and let Hibernate "
+"take care of the SQL statements that need to be executed for this "
+"transition)."
+msgstr ""
+"<emphasis>Transitorio</emphasis> - un objeto es transitorio si ha sido "
+"recién instanciado usando el operador <literal>new</literal>, y no está "
+"asociado a una <literal>Session</literal> de Hibernate. No tiene una "
+"representación persistente en la base de datos y no se le ha asignado un "
+"valor identificador. Las instancias transitorias serán destruídas por el "
+"recolector de basura si la aplicación no mantiene más una referencia. Usa la "
+"<literal>Session</literal> de Hibernate para hacer un objeto persistente (y "
+"deja que Hibernate cuide de las sentencias SQL que necesitan ejecutarse para "
+"esta transición)."
 
-#: index.docbook:44
-msgid "<emphasis>Persistent</emphasis> - a persistent instance has a representation in the database and an identifier value. It might just have been saved or loaded, however, it is by definition in the scope of a <literal>Session</literal>. Hibernate will detect any changes made to an object in persistent state and synchronize the state with the database when the unit of work completes. Developers don't execute manual <literal>UPDATE</literal> statements, or <literal>DELETE</literal> statements when an object should be made transient."
-msgstr "<emphasis>Persistente</emphasis> - una instancia persistente tiene una representaci&#x00f3;n en la base de datos y un valor identificador. Puede haber sido salvado o cargado, sin embargo, est&#x00e1; por definici&#x00f3;n en el &#x00e1;mbito de una <literal>Session</literal>. Hibernate detectar&#x00e1; cualquier cambio hecho a un objeto en estado persistentey sincronizar&#x00e1; el estado con la base de datos cuando se complete la unidad de trabajo. Los desarrolladores no ejecutan sentencias <literal>UPDATE</literal> manuales, o sentencias <literal>DELETE</literal> cuando un objeto debe ser hecho transitorio."
+#. Tag: para
+#: session_api.xml:44
+#, no-c-format
+msgid ""
+"<emphasis>Persistent</emphasis> - a persistent instance has a representation "
+"in the database and an identifier value. It might just have been saved or "
+"loaded, however, it is by definition in the scope of a <literal>Session</"
+"literal>. Hibernate will detect any changes made to an object in persistent "
+"state and synchronize the state with the database when the unit of work "
+"completes. Developers don't execute manual <literal>UPDATE</literal> "
+"statements, or <literal>DELETE</literal> statements when an object should be "
+"made transient."
+msgstr ""
+"<emphasis>Persistente</emphasis> - una instancia persistente tiene una "
+"representación en la base de datos y un valor identificador. Puede haber "
+"sido salvado o cargado, sin embargo, está por definición en el ámbito de una "
+"<literal>Session</literal>. Hibernate detectará cualquier cambio hecho a un "
+"objeto en estado persistentey sincronizará el estado con la base de datos "
+"cuando se complete la unidad de trabajo. Los desarrolladores no ejecutan "
+"sentencias <literal>UPDATE</literal> manuales, o sentencias <literal>DELETE</"
+"literal> cuando un objeto debe ser hecho transitorio."
 
-#: index.docbook:55
-msgid "<emphasis>Detached</emphasis> - a detached instance is an object that has been persistent, but its <literal>Session</literal> has been closed. The reference to the object is still valid, of course, and the detached instance might even be modified in this state. A detached instance can be reattached to a new <literal>Session</literal> at a later point in time, making it (and all the modifications) persistent again. This feature enables a programming model for long running units of work that require user think-time. We call them <emphasis>application transactions</emphasis>, i.e. a unit of work from the point of view of the user."
-msgstr "<emphasis>Separado (detached)</emphasis> - una instancia separada es un objeto que ha sido hecho persistente, pero su <literal>Session</literal> ha sido cerrada. La referencia al objeto todav&#x00ed;a es v&#x00e1;lida, por supuesto, y la instancia separada podr&#x00ed;a incluso ser modificada en este estado. Una instancia separada puede ser re-unida a una nueva <literal>Session</literal> en un punto posterior en el tiempo, haci&#x00e9;ndola persistente de nuevo (con todas las modificaciones). Este aspecto habilita un modelo de programaci&#x00f3;n para unidades de trabajo de ejecuci&#x00f3;n larga que requieren tiempo-para-pensar del usuario. Las llamamos <emphasis>transaccciones de aplicaci&#x00f3;n</emphasis>, es decir, una unidad de trabajo desde el punto de vista del usuario."
+#. Tag: para
+#: session_api.xml:55
+#, no-c-format
+msgid ""
+"<emphasis>Detached</emphasis> - a detached instance is an object that has "
+"been persistent, but its <literal>Session</literal> has been closed. The "
+"reference to the object is still valid, of course, and the detached instance "
+"might even be modified in this state. A detached instance can be reattached "
+"to a new <literal>Session</literal> at a later point in time, making it (and "
+"all the modifications) persistent again. This feature enables a programming "
+"model for long running units of work that require user think-time. We call "
+"them <emphasis>application transactions</emphasis>, i.e. a unit of work from "
+"the point of view of the user."
+msgstr ""
+"<emphasis>Separado (detached)</emphasis> - una instancia separada es un "
+"objeto que ha sido hecho persistente, pero su <literal>Session</literal> ha "
+"sido cerrada. La referencia al objeto todavía es válida, por supuesto, y la "
+"instancia separada podría incluso ser modificada en este estado. Una "
+"instancia separada puede ser re-unida a una nueva <literal>Session</literal> "
+"en un punto posterior en el tiempo, haciéndola persistente de nuevo (con "
+"todas las modificaciones). Este aspecto habilita un modelo de programación "
+"para unidades de trabajo de ejecución larga que requieren tiempo-para-pensar "
+"del usuario. Las llamamos <emphasis>transaccciones de aplicación</emphasis>, "
+"es decir, una unidad de trabajo desde el punto de vista del usuario."
 
-#: index.docbook:69
-msgid "We'll now discuss the states and state transitions (and the Hibernate methods that trigger a transition) in more detail."
-msgstr "Discutiremos ahora los estados y transiciones de estados (y los m&#x00e9;todos de Hibernate que disparan una transici&#x00f3;n) en m&#x00e1;s detalle:"
+#. Tag: para
+#: session_api.xml:69
+#, no-c-format
+msgid ""
+"We'll now discuss the states and state transitions (and the Hibernate "
+"methods that trigger a transition) in more detail."
+msgstr ""
+"Discutiremos ahora los estados y transiciones de estados (y los métodos de "
+"Hibernate que disparan una transición) en más detalle:"
 
-#: index.docbook:77
+#. Tag: title
+#: session_api.xml:77
+#, no-c-format
 msgid "Making objects persistent"
 msgstr "Haciendo los objetos persistentes"
 
-#: index.docbook:79
-msgid "Newly instantiated instances of a a persistent class are considered <emphasis>transient</emphasis> by Hibernate. We can make a transient instance <emphasis>persistent</emphasis> by associating it with a session:"
-msgstr "Las instancias reci&#x00e9;n instanciadas de una clase persistente son consideradas <emphasis>transitorias</emphasis> por Hibernate. Podemos hacer una instancia transitoria <emphasis>persistente</emphasis> asoci&#x00e1;ndola con una sesi&#x00f3;n:"
+#. Tag: para
+#: session_api.xml:79
+#, no-c-format
+msgid ""
+"Newly instantiated instances of a a persistent class are considered "
+"<emphasis>transient</emphasis> by Hibernate. We can make a transient "
+"instance <emphasis>persistent</emphasis> by associating it with a session:"
+msgstr ""
+"Las instancias recién instanciadas de una clase persistente son consideradas "
+"<emphasis>transitorias</emphasis> por Hibernate. Podemos hacer una instancia "
+"transitoria <emphasis>persistente</emphasis> asociándola con una sesión:"
 
-#: index.docbook:86
+#. Tag: programlisting
+#: session_api.xml:86
+#, no-c-format
 msgid ""
-      "<![CDATA[DomesticCat fritz = new DomesticCat();\n"
-      "fritz.setColor(Color.GINGER);\n"
-      "fritz.setSex('M');\n"
-      "fritz.setName(\"Fritz\");\n"
-      "Long generatedId = (Long) sess.save(fritz);]]>"
+"<![CDATA[DomesticCat fritz = new DomesticCat();\n"
+"fritz.setColor(Color.GINGER);\n"
+"fritz.setSex('M');\n"
+"fritz.setName(\"Fritz\");\n"
+"Long generatedId = (Long) sess.save(fritz);]]>"
 msgstr ""
-      "<![CDATA[DomesticCat fritz = new DomesticCat();\n"
-      "fritz.setColor(Color.GINGER);\n"
-      "fritz.setSex('M');\n"
-      "fritz.setName(\"Fritz\");\n"
-      "Long generatedId = (Long) sess.save(fritz);]]>"
 
-#: index.docbook:88
-msgid "If <literal>Cat</literal> has a generated identifier, the identifier is generated and assigned to the <literal>cat</literal> when <literal>save()</literal> is called. If <literal>Cat</literal> has an <literal>assigned</literal> identifier, or a composite key, the identifier should be assigned to the <literal>cat</literal> instance before calling <literal>save()</literal>. You may also use <literal>persist()</literal> instead of <literal>save()</literal>, with the semantics defined in the EJB3 early draft."
-msgstr "Si <literal>Cat</literal> tiene un identificador generado, el identificador es generado y asignado al <literal>cat</literal> cuando se llama a <literal>save()</literal>. Si <literal>Cat</literal> tiene un identificador <literal>assigned</literal>, o una clave compuesta, el identificador debe ser asignado a la instancia de <literal>cat</literal> antes de llamar a <literal>save()</literal>. Puedes tambi&#x00e9;n usar <literal>persist()</literal> en vez de <literal>save()</literal>, con la sem&#x00e1;ntica definida en el temprano borrador de EJB3."
+#. Tag: para
+#: session_api.xml:88
+#, no-c-format
+msgid ""
+"If <literal>Cat</literal> has a generated identifier, the identifier is "
+"generated and assigned to the <literal>cat</literal> when <literal>save()</"
+"literal> is called. If <literal>Cat</literal> has an <literal>assigned</"
+"literal> identifier, or a composite key, the identifier should be assigned "
+"to the <literal>cat</literal> instance before calling <literal>save()</"
+"literal>. You may also use <literal>persist()</literal> instead of "
+"<literal>save()</literal>, with the semantics defined in the EJB3 early "
+"draft."
+msgstr ""
+"Si <literal>Cat</literal> tiene un identificador generado, el identificador "
+"es generado y asignado al <literal>cat</literal> cuando se llama a "
+"<literal>save()</literal>. Si <literal>Cat</literal> tiene un identificador "
+"<literal>assigned</literal>, o una clave compuesta, el identificador debe "
+"ser asignado a la instancia de <literal>cat</literal> antes de llamar a "
+"<literal>save()</literal>. Puedes también usar <literal>persist()</literal> "
+"en vez de <literal>save()</literal>, con la semántica definida en el "
+"temprano borrador de EJB3."
 
-#: index.docbook:100
-msgid "<literal>persist()</literal> makes a transient instance persistent. However, it doesn't guarantee that the identifier value will be assigned to the persistent instance immediately, the assignment might happen at flush time. <literal>persist()</literal> also guarantees that it will not execute an <literal>INSERT</literal> statement if it is called outside of transaction boundaries. This is useful in long-running conversations with an extended Session/persistence context."
-msgstr "Alternativamente, puedes asignar el identificador usando una versi&#x00f3;n sobrecargada de <literal>save()</literal>."
+#. Tag: para
+#: session_api.xml:100
+#, no-c-format
+msgid ""
+"<literal>persist()</literal> makes a transient instance persistent. However, "
+"it doesn't guarantee that the identifier value will be assigned to the "
+"persistent instance immediately, the assignment might happen at flush time. "
+"<literal>persist()</literal> also guarantees that it will not execute an "
+"<literal>INSERT</literal> statement if it is called outside of transaction "
+"boundaries. This is useful in long-running conversations with an extended "
+"Session/persistence context."
+msgstr ""
+"UNTRANSLATED!!! <literal>persist()</literal> makes a transient instance "
+"persistent. However, it doesn't guarantee that the identifier value will be "
+"assigned to the persistent instance immediately, the assignment might happen "
+"at flush time. <literal>persist()</literal> also guarantees that it will not "
+"execute an <literal>INSERT</literal> statement if it is called outside of "
+"transaction boundaries. This is useful in long-running conversations with an "
+"extended Session/persistence context."
 
-#: index.docbook:111
-msgid "<literal>save()</literal> does guarantee to return an identifier. If an INSERT has to be executed to get the identifier ( e.g. \"identity\" generator, not \"sequence\"), this INSERT happens immediately, no matter if you are inside or outside of a transaction. This is problematic in a long-running conversation with an extended Session/persistence context."
+#. Tag: para
+#: session_api.xml:111
+#, no-c-format
+msgid ""
+"<literal>save()</literal> does guarantee to return an identifier. If an "
+"INSERT has to be executed to get the identifier ( e.g. \"identity\" "
+"generator, not \"sequence\"), this INSERT happens immediately, no matter if "
+"you are inside or outside of a transaction. This is problematic in a long-"
+"running conversation with an extended Session/persistence context."
 msgstr ""
-      "<![CDATA[DomesticCat pk = new DomesticCat();\n"
-      "pk.setColor(Color.TABBY);\n"
-      "pk.setSex('F');\n"
-      "pk.setName(\"PK\");\n"
-      "pk.setKittens( new HashSet() );\n"
-      "pk.addKitten(fritz);\n"
-      "sess.save( pk, new Long(1234) );]]>"
+"<literal>save()</literal> does guarantee to return an identifier. If an "
+"INSERT has to be executed to get the identifier ( e.g. \"identity\" "
+"generator, not \"sequence\"), this INSERT happens immediately, no matter if "
+"you are inside or outside of a transaction. This is problematic in a long-"
+"running conversation with an extended Session/persistence context."
 
-#: index.docbook:121
-msgid "Alternatively, you may assign the identifier using an overloaded version of <literal>save()</literal>."
-msgstr "Si el objeto que haces persistente tiene objetos asociados (por ejemplo, la colecci&#x00f3;n <literal>kittens</literal> en el ejemplo anterior), estos objetos pueden ser hechos persistentes en cualquier orden que quieras a menos que tengas una restricci&#x00f3;n <literal>NOT NULL</literal> sobre una columna clave for&#x00e1;nea. Nunca hay riesgo de violar restricciones de clave for&#x00e1;nea. Sin embargo, podr&#x00ed;as violar una restricci&#x00f3;n <literal>NOT NULL</literal> si llamas a <literal>save()</literal> sobre objetos en orden err&#x00f3;neo."
+#. Tag: para
+#: session_api.xml:121
+#, no-c-format
+msgid ""
+"Alternatively, you may assign the identifier using an overloaded version of "
+"<literal>save()</literal>."
+msgstr ""
+"Alternativamente, puedes asignar el identificador usando una versión "
+"sobrecargada de <literal>save()</literal>."
 
-#: index.docbook:126
+#. Tag: programlisting
+#: session_api.xml:126
+#, no-c-format
 msgid ""
-      "<![CDATA[DomesticCat pk = new DomesticCat();\n"
-      "pk.setColor(Color.TABBY);\n"
-      "pk.setSex('F');\n"
-      "pk.setName(\"PK\");\n"
-      "pk.setKittens( new HashSet() );\n"
-      "pk.addKitten(fritz);\n"
-      "sess.save( pk, new Long(1234) );]]>"
-msgstr "Usualmente no te preocupas con este detalle, pues muy probablemente usar&#x00e1;s la funcionalidad de <emphasis>persistencia transitiva</emphasis> de Hibernate para salvar los objetos asociados autom&#x00e1;ticamente. Entonces, ni siquiera ocurren violaciones de restricciones <literal>NOT NULL</literal> - Hibernate cuidar&#x00e1; de todo. La persistencia transitiva se discute m&#x00e1;s adelante en este cap&#x00ed;tulo."
+"<![CDATA[DomesticCat pk = new DomesticCat();\n"
+"pk.setColor(Color.TABBY);\n"
+"pk.setSex('F');\n"
+"pk.setName(\"PK\");\n"
+"pk.setKittens( new HashSet() );\n"
+"pk.addKitten(fritz);\n"
+"sess.save( pk, new Long(1234) );]]>"
+msgstr ""
 
-#: index.docbook:128
-msgid "If the object you make persistent has associated objects (e.g. the <literal>kittens</literal> collection in the previous example), these objects may be made persistent in any order you like unless you have a <literal>NOT NULL</literal> constraint upon a foreign key column. There is never a risk of violating foreign key constraints. However, you might violate a <literal>NOT NULL</literal> constraint if you <literal>save()</literal> the objects in the wrong order."
-msgstr "Cargando un objeto"
+#. Tag: para
+#: session_api.xml:128
+#, no-c-format
+msgid ""
+"If the object you make persistent has associated objects (e.g. the "
+"<literal>kittens</literal> collection in the previous example), these "
+"objects may be made persistent in any order you like unless you have a "
+"<literal>NOT NULL</literal> constraint upon a foreign key column. There is "
+"never a risk of violating foreign key constraints. However, you might "
+"violate a <literal>NOT NULL</literal> constraint if you <literal>save()</"
+"literal> the objects in the wrong order."
+msgstr ""
+"Si el objeto que haces persistente tiene objetos asociados (por ejemplo, la "
+"colección <literal>kittens</literal> en el ejemplo anterior), estos objetos "
+"pueden ser hechos persistentes en cualquier orden que quieras a menos que "
+"tengas una restricción <literal>NOT NULL</literal> sobre una columna clave "
+"foránea. Nunca hay riesgo de violar restricciones de clave foránea. Sin "
+"embargo, podrías violar una restricción <literal>NOT NULL</literal> si "
+"llamas a <literal>save()</literal> sobre objetos en orden erróneo."
 
-#: index.docbook:138
-msgid "Usually you don't bother with this detail, as you'll very likely use Hibernate's <emphasis>transitive persistence</emphasis> feature to save the associated objects automatically. Then, even <literal>NOT NULL</literal> constraint violations don't occur - Hibernate will take care of everything. Transitive persistence is discussed later in this chapter."
-msgstr "Los m&#x00e9;todos <literal>load()</literal> de <literal>Session</literal> te brindan una forma de traer una instancia persistente si ya saves su identificador. <literal>load()</literal> toma un objeto clase y cargar&#x00e1; el estado dentro de una instancia reci&#x00e9;n instanciada de esta clase, en estado persistente."
+#. Tag: para
+#: session_api.xml:138
+#, no-c-format
+msgid ""
+"Usually you don't bother with this detail, as you'll very likely use "
+"Hibernate's <emphasis>transitive persistence</emphasis> feature to save the "
+"associated objects automatically. Then, even <literal>NOT NULL</literal> "
+"constraint violations don't occur - Hibernate will take care of everything. "
+"Transitive persistence is discussed later in this chapter."
+msgstr ""
+"Usualmente no te preocupas con este detalle, pues muy probablemente usarás "
+"la funcionalidad de <emphasis>persistencia transitiva</emphasis> de "
+"Hibernate para salvar los objetos asociados automáticamente. Entonces, ni "
+"siquiera ocurren violaciones de restricciones <literal>NOT NULL</literal> - "
+"Hibernate cuidará de todo. La persistencia transitiva se discute más "
+"adelante en este capítulo."
 
-#: index.docbook:149
+#. Tag: title
+#: session_api.xml:149
+#, no-c-format
 msgid "Loading an object"
-msgstr "<![CDATA[Cat fritz = (Cat) sess.load(Cat.class, generatedId);]]>"
+msgstr "Cargando un objeto"
 
-#: index.docbook:151
-msgid "The <literal>load()</literal> methods of <literal>Session</literal> gives you a way to retrieve a persistent instance if you already know its identifier. <literal>load()</literal> takes a class object and will load the state into a newly instantiated instance of that class, in persistent state."
+#. Tag: para
+#: session_api.xml:151
+#, no-c-format
+msgid ""
+"The <literal>load()</literal> methods of <literal>Session</literal> gives "
+"you a way to retrieve a persistent instance if you already know its "
+"identifier. <literal>load()</literal> takes a class object and will load the "
+"state into a newly instantiated instance of that class, in persistent state."
 msgstr ""
-      "<![CDATA[// you need to wrap primitive identifiers\n"
-      "long id = 1234;\n"
-      "DomesticCat pk = (DomesticCat) sess.load( DomesticCat.class, new Long(id) );]]>"
+"Los métodos <literal>load()</literal> de <literal>Session</literal> te "
+"brindan una forma de traer una instancia persistente si ya saves su "
+"identificador. <literal>load()</literal> toma un objeto clase y cargará el "
+"estado dentro de una instancia recién instanciada de esta clase, en estado "
+"persistente."
 
-#: index.docbook:158
+#. Tag: programlisting
+#: session_api.xml:158
+#, no-c-format
 msgid "<![CDATA[Cat fritz = (Cat) sess.load(Cat.class, generatedId);]]>"
-msgstr "Alternativamente, puedes cargar estado dentro de una instancia dada:"
+msgstr ""
 
-#: index.docbook:160
+#. Tag: programlisting
+#: session_api.xml:160
+#, no-c-format
 msgid ""
-      "<![CDATA[// you need to wrap primitive identifiers\n"
-      "long id = 1234;\n"
-      "DomesticCat pk = (DomesticCat) sess.load( DomesticCat.class, new Long(id) );]]>"
+"<![CDATA[// you need to wrap primitive identifiers\n"
+"long id = 1234;\n"
+"DomesticCat pk = (DomesticCat) sess.load( DomesticCat.class, new Long"
+"(id) );]]>"
 msgstr ""
-      "<![CDATA[Cat cat = new DomesticCat();\n"
-      "// load pk's state into cat\n"
-      "sess.load( cat, new Long(pkId) );\n"
-      "Set kittens = cat.getKittens();]]>"
 
-#: index.docbook:162
+#. Tag: para
+#: session_api.xml:162
+#, no-c-format
 msgid "Alternatively, you can load state into a given instance:"
-msgstr "Nota que <literal>load()</literal> lanzar&#x00e1; una excepci&#x00f3;n irrecuperable si no hay una fila correspondiente en base de datos. Si la clase es mapeada con un proxy, <literal>load()</literal> s&#x00f3;lo devuelve un proxy no inicializado y no llamar&#x00e1; realmente a la base de datos hasta que invoques un m&#x00e9;todo del proxy. Este comportamiento es muy &#x00fa;til si deseas crear una asociaci&#x00f3;n a un objeto sin cargarlo realmente de la base de datos. Permite adem&#x00e1;s que m&#x00fa;ltiples instancias sean cargadas como un lote si se define <literal>batch-size</literal> para el mapeo de la clase."
+msgstr "Alternativamente, puedes cargar estado dentro de una instancia dada:"
 
-#: index.docbook:166
+#. Tag: programlisting
+#: session_api.xml:166
+#, no-c-format
 msgid ""
-      "<![CDATA[Cat cat = new DomesticCat();\n"
-      "// load pk's state into cat\n"
-      "sess.load( cat, new Long(pkId) );\n"
-      "Set kittens = cat.getKittens();]]>"
-msgstr "Si no tienes certeza que exista una fila correspondiente, debes usar el m&#x00e9;todo <literal>get()</literal>, que llama a la base de datos inmediatamente y devuelve nulo si no existe una fila correspondiente."
+"<![CDATA[Cat cat = new DomesticCat();\n"
+"// load pk's state into cat\n"
+"sess.load( cat, new Long(pkId) );\n"
+"Set kittens = cat.getKittens();]]>"
+msgstr ""
 
-#: index.docbook:168
-msgid "Note that <literal>load()</literal> will throw an unrecoverable exception if there is no matching database row. If the class is mapped with a proxy, <literal>load()</literal> just returns an uninitialized proxy and does not actually hit the database until you invoke a method of the proxy. This behaviour is very useful if you wish to create an association to an object without actually loading it from the database. It also allows multiple instances to be loaded as a batch if <literal>batch-size</literal> is defined for the class mapping."
+#. Tag: para
+#: session_api.xml:168
+#, no-c-format
+msgid ""
+"Note that <literal>load()</literal> will throw an unrecoverable exception if "
+"there is no matching database row. If the class is mapped with a proxy, "
+"<literal>load()</literal> just returns an uninitialized proxy and does not "
+"actually hit the database until you invoke a method of the proxy. This "
+"behaviour is very useful if you wish to create an association to an object "
+"without actually loading it from the database. It also allows multiple "
+"instances to be loaded as a batch if <literal>batch-size</literal> is "
+"defined for the class mapping."
 msgstr ""
-      "<![CDATA[Cat cat = (Cat) sess.get(Cat.class, id);\n"
-      "if (cat==null) {\n"
-      "    cat = new Cat();\n"
-      "    sess.save(cat, id);\n"
-      "}\n"
-      "return cat;]]>"
+"Nota que <literal>load()</literal> lanzará una excepción irrecuperable si no "
+"hay una fila correspondiente en base de datos. Si la clase es mapeada con un "
+"proxy, <literal>load()</literal> sólo devuelve un proxy no inicializado y no "
+"llamará realmente a la base de datos hasta que invoques un método del proxy. "
+"Este comportamiento es muy útil si deseas crear una asociación a un objeto "
+"sin cargarlo realmente de la base de datos. Permite además que múltiples "
+"instancias sean cargadas como un lote si se define <literal>batch-size</"
+"literal> para el mapeo de la clase."
 
-#: index.docbook:179
-msgid "If you are not certain that a matching row exists, you should use the <literal>get()</literal> method, which hits the database immediately and returns null if there is no matching row."
-msgstr "Puedes incluso cargar un objeto usando un <literal>SELECT ... FOR UPDATE</literal> de SQL, usando un <literal>LockMode</literal>. Ver la documentaci&#x00f3;n de la API para m&#x00e1;s informaci&#x00f3;n."
+#. Tag: para
+#: session_api.xml:179
+#, no-c-format
+msgid ""
+"If you are not certain that a matching row exists, you should use the "
+"<literal>get()</literal> method, which hits the database immediately and "
+"returns null if there is no matching row."
+msgstr ""
+"Si no tienes certeza que exista una fila correspondiente, debes usar el "
+"método <literal>get()</literal>, que llama a la base de datos inmediatamente "
+"y devuelve nulo si no existe una fila correspondiente."
 
-#: index.docbook:185
+#. Tag: programlisting
+#: session_api.xml:185
+#, no-c-format
 msgid ""
-      "<![CDATA[Cat cat = (Cat) sess.get(Cat.class, id);\n"
-      "if (cat==null) {\n"
-      "    cat = new Cat();\n"
-      "    sess.save(cat, id);\n"
-      "}\n"
-      "return cat;]]>"
-msgstr "<![CDATA[Cat cat = (Cat) sess.get(Cat.class, id, LockMode.UPGRADE);]]>"
+"<![CDATA[Cat cat = (Cat) sess.get(Cat.class, id);\n"
+"if (cat==null) {\n"
+"    cat = new Cat();\n"
+"    sess.save(cat, id);\n"
+"}\n"
+"return cat;]]>"
+msgstr ""
 
-#: index.docbook:187
-msgid "You may even load an object using an SQL <literal>SELECT ... FOR UPDATE</literal>, using a <literal>LockMode</literal>. See the API documentation for more information."
-msgstr "Ten en cuenta que <emphasis>ninguna</emphasis> instancia asociada o colecci&#x00f3;n contenida es selecciona <literal>FOR UPDATE</literal>, a menos que decidas especificar <literal>lock</literal> o <literal>all</literal> como un estilo de cascada para la asociaci&#x00f3;n."
+#. Tag: para
+#: session_api.xml:187
+#, no-c-format
+msgid ""
+"You may even load an object using an SQL <literal>SELECT ... FOR UPDATE</"
+"literal>, using a <literal>LockMode</literal>. See the API documentation for "
+"more information."
+msgstr ""
+"Puedes incluso cargar un objeto usando un <literal>SELECT ... FOR UPDATE</"
+"literal> de SQL, usando un <literal>LockMode</literal>. Ver la documentación "
+"de la API para más información."
 
-#: index.docbook:192
+#. Tag: programlisting
+#: session_api.xml:192
+#, no-c-format
 msgid "<![CDATA[Cat cat = (Cat) sess.get(Cat.class, id, LockMode.UPGRADE);]]>"
-msgstr "Es posible volver a cargar un objeto y todas sus colecciones en cualquier momento, usando el m&#x00e9;todo <literal>refresh()</literal>. Esto es &#x00fa;til cuando se usan disparadores de base de datos para inicializar algunas de las propiedades del objeto."
+msgstr ""
 
-#: index.docbook:194
-msgid "Note that any associated instances or contained collections are <emphasis>not</emphasis> selected <literal>FOR UPDATE</literal>, unless you decide to specify <literal>lock</literal> or <literal>all</literal> as a cascade style for the association."
+#. Tag: para
+#: session_api.xml:194
+#, no-c-format
+msgid ""
+"Note that any associated instances or contained collections are "
+"<emphasis>not</emphasis> selected <literal>FOR UPDATE</literal>, unless you "
+"decide to specify <literal>lock</literal> or <literal>all</literal> as a "
+"cascade style for the association."
 msgstr ""
-      "<![CDATA[sess.save(cat);\n"
-      "sess.flush(); //force the SQL INSERT\n"
-      "sess.refresh(cat); //re-read the state (after the trigger executes)]]>"
+"Ten en cuenta que <emphasis>ninguna</emphasis> instancia asociada o "
+"colección contenida es selecciona <literal>FOR UPDATE</literal>, a menos que "
+"decidas especificar <literal>lock</literal> o <literal>all</literal> como un "
+"estilo de cascada para la asociación."
 
-#: index.docbook:201
-msgid "It is possible to re-load an object and all its collections at any time, using the <literal>refresh()</literal> method. This is useful when database triggers are used to initialize some of the properties of the object."
-msgstr "Una cuesti&#x00f3;n importante aparece usualmente en este punto: ¿Cu&#x00e1;nto carga Hibernate de la base de datos y cu&#x00e1;ntos <literal>SELECT</literal>s de SQL usar&#x00e1;? Esto depende de la <emphasis>estrategia de recuperaci&#x00f3;n</emphasis> y se explica en <xref linkend=\"performance-fetching\"/>."
+#. Tag: para
+#: session_api.xml:201
+#, no-c-format
+msgid ""
+"It is possible to re-load an object and all its collections at any time, "
+"using the <literal>refresh()</literal> method. This is useful when database "
+"triggers are used to initialize some of the properties of the object."
+msgstr ""
+"Es posible volver a cargar un objeto y todas sus colecciones en cualquier "
+"momento, usando el método <literal>refresh()</literal>. Esto es útil cuando "
+"se usan disparadores de base de datos para inicializar algunas de las "
+"propiedades del objeto."
 
-#: index.docbook:207
+#. Tag: programlisting
+#: session_api.xml:207
+#, no-c-format
 msgid ""
-      "<![CDATA[sess.save(cat);\n"
-      "sess.flush(); //force the SQL INSERT\n"
-      "sess.refresh(cat); //re-read the state (after the trigger executes)]]>"
-msgstr "Consultando"
+"<![CDATA[sess.save(cat);\n"
+"sess.flush(); //force the SQL INSERT\n"
+"sess.refresh(cat); //re-read the state (after the trigger executes)]]>"
+msgstr ""
 
-#: index.docbook:209
-msgid "An important question usually appears at this point: How much does Hibernate load from the database and how many SQL <literal>SELECT</literal>s will it use? This depends on the <emphasis>fetching strategy</emphasis> and is explained in <xref linkend=\"performance-fetching\"/>."
-msgstr "Si no sabes los identificadores de los objetos que est&#x00e1;s buscando, necesitas una consulta. Hibernate soporta un lenguaje de consulta orientado a objetos (HQL) f&#x00e1;cil de usar pero potente. Para la creaci&#x00f3;n de consultas program&#x00e1;ticas, Hibernate soporta una funcionalidad sofisticada de consulta de Criteria y Example (QBC and QBE). Tambi&#x00e9;n puedes expresar tu consulta en el SQL nativo de tu base de datos, con soporte opcional de Hibernate para la conversi&#x00f3;n del conjunto resultado en objetos."
+#. Tag: para
+#: session_api.xml:209
+#, no-c-format
+msgid ""
+"An important question usually appears at this point: How much does Hibernate "
+"load from the database and how many SQL <literal>SELECT</literal>s will it "
+"use? This depends on the <emphasis>fetching strategy</emphasis> and is "
+"explained in <xref linkend=\"performance-fetching\"/>."
+msgstr ""
+"Una cuestión importante aparece usualmente en este punto: ¿Cuánto carga "
+"Hibernate de la base de datos y cuántos <literal>SELECT</literal>s de SQL "
+"usará? Esto depende de la <emphasis>estrategia de recuperación</emphasis> y "
+"se explica en <xref linkend=\"performance-fetching\"/>."
 
-#: index.docbook:219
+#. Tag: title
+#: session_api.xml:219
+#, no-c-format
 msgid "Querying"
-msgstr "Ejecutando consultas"
+msgstr "Consultando"
 
-#: index.docbook:221
-msgid "If you don't know the identifiers of the objects you are looking for, you need a query. Hibernate supports an easy-to-use but powerful object oriented query language (HQL). For programmatic query creation, Hibernate supports a sophisticated Criteria and Example query feature (QBC and QBE). You may also express your query in the native SQL of your database, with optional support from Hibernate for result set conversion into objects."
-msgstr "Las consultas HQL y SQL nativas son representadas con una instancia de <literal>org.hibernate.Query</literal>. Esta interface ofrece m&#x00e9;todos para la ligaci&#x00f3;n de par&#x00e1;metros, manejo del conjunto resultado, y para la ejecuci&#x00f3;n de la consulta real. Siempre obtienes una <literal>Query</literal> usando la <literal>Session</literal> actual:"
+#. Tag: para
+#: session_api.xml:221
+#, no-c-format
+msgid ""
+"If you don't know the identifiers of the objects you are looking for, you "
+"need a query. Hibernate supports an easy-to-use but powerful object oriented "
+"query language (HQL). For programmatic query creation, Hibernate supports a "
+"sophisticated Criteria and Example query feature (QBC and QBE). You may also "
+"express your query in the native SQL of your database, with optional support "
+"from Hibernate for result set conversion into objects."
+msgstr ""
+"Si no sabes los identificadores de los objetos que estás buscando, necesitas "
+"una consulta. Hibernate soporta un lenguaje de consulta orientado a objetos "
+"(HQL) fácil de usar pero potente. Para la creación de consultas "
+"programáticas, Hibernate soporta una funcionalidad sofisticada de consulta "
+"de Criteria y Example (QBC and QBE). También puedes expresar tu consulta en "
+"el SQL nativo de tu base de datos, con soporte opcional de Hibernate para la "
+"conversión del conjunto resultado en objetos."
 
-#: index.docbook:231
+#. Tag: title
+#: session_api.xml:231
+#, no-c-format
 msgid "Executing queries"
+msgstr "Ejecutando consultas"
+
+#. Tag: para
+#: session_api.xml:233
+#, no-c-format
+msgid ""
+"HQL and native SQL queries are represented with an instance of <literal>org."
+"hibernate.Query</literal>. This interface offers methods for parameter "
+"binding, result set handling, and for the execution of the actual query. You "
+"always obtain a <literal>Query</literal> using the current <literal>Session</"
+"literal>:"
 msgstr ""
-      "<![CDATA[List cats = session.createQuery(\n"
-      "    \"from Cat as cat where cat.birthdate < ?\")\n"
-      "    .setDate(0, date)\n"
-      "    .list();\n"
-      "\n"
-      "List mothers = session.createQuery(\n"
-      "    \"select mother from Cat as cat join cat.mother as mother where cat.name = ?\")\n"
-      "    .setString(0, name)\n"
-      "    .list();\n"
-      "\n"
-      "List kittens = session.createQuery(\n"
-      "    \"from Cat as cat where cat.mother = ?\")\n"
-      "    .setEntity(0, pk)\n"
-      "    .list();\n"
-      "\n"
-      "Cat mother = (Cat) session.createQuery(\n"
-      "    \"select cat.mother from Cat as cat where cat = ?\")\n"
-      "    .setEntity(0, izi)\n"
-      "    .uniqueResult();]]>"
+"Las consultas HQL y SQL nativas son representadas con una instancia de "
+"<literal>org.hibernate.Query</literal>. Esta interface ofrece métodos para "
+"la ligación de parámetros, manejo del conjunto resultado, y para la "
+"ejecución de la consulta real. Siempre obtienes una <literal>Query</literal> "
+"usando la <literal>Session</literal> actual:"
 
-#: index.docbook:233
-msgid "HQL and native SQL queries are represented with an instance of <literal>org.hibernate.Query</literal>. This interface offers methods for parameter binding, result set handling, and for the execution of the actual query. You always obtain a <literal>Query</literal> using the current <literal>Session</literal>:"
-msgstr "Una consulta se ejecuta usualmente invocando a <literal>list()</literal>, el resultado de la consulta ser&#x00e1; cargado completamente dentro de una colecci&#x00f3;n en memoria. Las instancias de entidad tra&#x00ed;das por una consulta est&#x00e1;n en estado persistente. El m&#x00e9;todo <literal>uniqueResult()</literal> ofrece un atajo si sabes que tu consulta devolver&#x00e1; s&#x00f3;lo un objeto."
+#. Tag: programlisting
+#: session_api.xml:240
+#, no-c-format
+msgid ""
+"<![CDATA[List cats = session.createQuery(\n"
+"    \"from Cat as cat where cat.birthdate < ?\")\n"
+"    .setDate(0, date)\n"
+"    .list();\n"
+"\n"
+"List mothers = session.createQuery(\n"
+"    \"select mother from Cat as cat join cat.mother as mother where cat.name "
+"= ?\")\n"
+"    .setString(0, name)\n"
+"    .list();\n"
+"\n"
+"List kittens = session.createQuery(\n"
+"    \"from Cat as cat where cat.mother = ?\")\n"
+"    .setEntity(0, pk)\n"
+"    .list();\n"
+"\n"
+"Cat mother = (Cat) session.createQuery(\n"
+"    \"select cat.mother from Cat as cat where cat = ?\")\n"
+"    .setEntity(0, izi)\n"
+"    .uniqueResult();]]\n"
+"\n"
+"Query mothersWithKittens = (Cat) session.createQuery(\n"
+"    \"select mother from Cat as mother left join fetch mother.kittens\");\n"
+"Set uniqueMothers = new HashSet(mothersWithKittens.list());]]>"
+msgstr ""
 
-#: index.docbook:240
+#. Tag: para
+#: session_api.xml:242
+#, no-c-format
 msgid ""
-      "<![CDATA[List cats = session.createQuery(\n"
-      "    \"from Cat as cat where cat.birthdate < ?\")\n"
-      "    .setDate(0, date)\n"
-      "    .list();\n"
-      "\n"
-      "List mothers = session.createQuery(\n"
-      "    \"select mother from Cat as cat join cat.mother as mother where cat.name = ?\")\n"
-      "    .setString(0, name)\n"
-      "    .list();\n"
-      "\n"
-      "List kittens = session.createQuery(\n"
-      "    \"from Cat as cat where cat.mother = ?\")\n"
-      "    .setEntity(0, pk)\n"
-      "    .list();\n"
-      "\n"
-      "Cat mother = (Cat) session.createQuery(\n"
-      "    \"select cat.mother from Cat as cat where cat = ?\")\n"
-      "    .setEntity(0, izi)\n"
-      "    .uniqueResult();]]\n"
-      "\n"
-      "Query mothersWithKittens = (Cat) session.createQuery(\n"
-      "    \"select mother from Cat as mother left join fetch mother.kittens\");\n"
-      "Set uniqueMothers = new HashSet(mothersWithKittens.list());]]>"
+"A query is usually executed by invoking <literal>list()</literal>, the "
+"result of the query will be loaded completely into a collection in memory. "
+"Entity instances retrieved by a query are in persistent state. The "
+"<literal>uniqueResult()</literal> method offers a shortcut if you know your "
+"query will only return a single object. Note that queries that make use of "
+"eager fetching of collections usually return duplicates of the root objects "
+"(but with their collections initialized). You can filter these duplicates "
+"simply through a <literal>Set</literal>."
+msgstr ""
+"Una consulta se ejecuta usualmente invocando a <literal>list()</literal>, el "
+"resultado de la consulta será cargado completamente dentro de una colección "
+"en memoria. Las instancias de entidad traídas por una consulta están en "
+"estado persistente. El método <literal>uniqueResult()</literal> ofrece un "
+"atajo si sabes que tu consulta devolverá sólo un objeto."
+
+#. Tag: title
+#: session_api.xml:254
+#, no-c-format
+msgid "Iterating results"
 msgstr "Iterando los resultados"
 
-#: index.docbook:242
-msgid "A query is usually executed by invoking <literal>list()</literal>, the result of the query will be loaded completely into a collection in memory. Entity instances retrieved by a query are in persistent state. The <literal>uniqueResult()</literal> method offers a shortcut if you know your query will only return a single object. Note that queries that make use of eager fetching of collections usually return duplicates of the root objects (but with their collections initialized). You can filter these duplicates simply through a <literal>Set</literal>."
-msgstr "Ocasionalmente, podr&#x00ed;as ser capaz de lograr mejor rendimiento al ejecutar la consulta usando el m&#x00e9;todo <literal>iterate()</literal>. Esto s&#x00f3;lo ser&#x00e1; en el caso que esperes que las instancias reales de entidad devueltas por la consulta est&#x00e9;n ya en la sesi&#x00f3;n o cach&#x00e9; de segundo nivel. Si todav&#x00ed;a no est&#x00e1;n en cach&#x00e9;, <literal>iterate()</literal> ser&#x00e1; m&#x00e1;s lento que <literal>list()</literal> y podr&#x00ed;a requerir muchas llamadas a la base de datos para una consulta simple, usualmente <emphasis>1</emphasis> para la selecci&#x00f3;n inicial que solamente devuelve identificadores, y <emphasis>n</emphasis> selecciones adicionales para inicializar las instancias reales."
+#. Tag: para
+#: session_api.xml:256
+#, no-c-format
+msgid ""
+"Occasionally, you might be able to achieve better performance by executing "
+"the query using the <literal>iterate()</literal> method. This will only "
+"usually be the case if you expect that the actual entity instances returned "
+"by the query will already be in the session or second-level cache. If they "
+"are not already cached, <literal>iterate()</literal> will be slower than "
+"<literal>list()</literal> and might require many database hits for a simple "
+"query, usually <emphasis>1</emphasis> for the initial select which only "
+"returns identifiers, and <emphasis>n</emphasis> additional selects to "
+"initialize the actual instances."
+msgstr ""
+"Ocasionalmente, podrías ser capaz de lograr mejor rendimiento al ejecutar la "
+"consulta usando el método <literal>iterate()</literal>. Esto sólo será en el "
+"caso que esperes que las instancias reales de entidad devueltas por la "
+"consulta estén ya en la sesión o caché de segundo nivel. Si todavía no están "
+"en caché, <literal>iterate()</literal> será más lento que <literal>list()</"
+"literal> y podría requerir muchas llamadas a la base de datos para una "
+"consulta simple, usualmente <emphasis>1</emphasis> para la selección inicial "
+"que solamente devuelve identificadores, y <emphasis>n</emphasis> selecciones "
+"adicionales para inicializar las instancias reales."
 
-#: index.docbook:254
-msgid "Iterating results"
+#. Tag: programlisting
+#: session_api.xml:268
+#, no-c-format
+msgid ""
+"<![CDATA[// fetch ids\n"
+"Iterator iter = sess.createQuery(\"from eg.Qux q order by q.likeliness\")."
+"iterate();\n"
+"while ( iter.hasNext() ) {\n"
+"    Qux qux = (Qux) iter.next();  // fetch the object\n"
+"    // something we couldnt express in the query\n"
+"    if ( qux.calculateComplicatedAlgorithm() ) {\n"
+"        // delete the current instance\n"
+"        iter.remove();\n"
+"        // dont need to process the rest\n"
+"        break;\n"
+"    }\n"
+"}]]>"
 msgstr ""
-      "<![CDATA[// fetch ids\n"
-      "Iterator iter = sess.createQuery(\"from eg.Qux q order by q.likeliness\").iterate();\n"
-      "while ( iter.hasNext() ) {\n"
-      "    Qux qux = (Qux) iter.next();  // fetch the object\n"
-      "    // something we couldnt express in the query\n"
-      "    if ( qux.calculateComplicatedAlgorithm() ) {\n"
-      "        // delete the current instance\n"
-      "        iter.remove();\n"
-      "        // dont need to process the rest\n"
-      "        break;\n"
-      "    }\n"
-      "}]]>"
 
-#: index.docbook:256
-msgid "Occasionally, you might be able to achieve better performance by executing the query using the <literal>iterate()</literal> method. This will only usually be the case if you expect that the actual entity instances returned by the query will already be in the session or second-level cache. If they are not already cached, <literal>iterate()</literal> will be slower than <literal>list()</literal> and might require many database hits for a simple query, usually <emphasis>1</emphasis> for the initial select which only returns identifiers, and <emphasis>n</emphasis> additional selects to initialize the actual instances."
+#. Tag: title
+#: session_api.xml:272
+#, no-c-format
+msgid "Queries that return tuples"
 msgstr "Consultas que devuelven tuplas"
 
-#: index.docbook:268
+#. Tag: para
+#: session_api.xml:274
+#, no-c-format
 msgid ""
-      "<![CDATA[// fetch ids\n"
-      "Iterator iter = sess.createQuery(\"from eg.Qux q order by q.likeliness\").iterate();\n"
-      "while ( iter.hasNext() ) {\n"
-      "    Qux qux = (Qux) iter.next();  // fetch the object\n"
-      "    // something we couldnt express in the query\n"
-      "    if ( qux.calculateComplicatedAlgorithm() ) {\n"
-      "        // delete the current instance\n"
-      "        iter.remove();\n"
-      "        // dont need to process the rest\n"
-      "        break;\n"
-      "    }\n"
-      "}]]>"
-msgstr "Las consultas de Hibernate a veces devuelven tuplas de objetos, en cuyo caso cada tupla se devuelve como un array:"
+"Hibernate queries sometimes return tuples of objects, in which case each "
+"tuple is returned as an array:"
+msgstr ""
+"Las consultas de Hibernate a veces devuelven tuplas de objetos, en cuyo caso "
+"cada tupla se devuelve como un array:"
 
-#: index.docbook:272
-msgid "Queries that return tuples"
+#. Tag: programlisting
+#: session_api.xml:279
+#, no-c-format
+msgid ""
+"<![CDATA[Iterator kittensAndMothers = sess.createQuery(\n"
+"            \"select kitten, mother from Cat kitten join kitten.mother mother"
+"\")\n"
+"            .list()\n"
+"            .iterator();\n"
+"\n"
+"while ( kittensAndMothers.hasNext() ) {\n"
+"    Object[] tuple = (Object[]) kittensAndMothers.next();\n"
+"    Cat kitten = (Cat) tuple[0];\n"
+"    Cat mother = (Cat) tuple[1];\n"
+"    ....\n"
+"}]]>"
 msgstr ""
-      "<![CDATA[Iterator kittensAndMothers = sess.createQuery(\n"
-      "            \"select kitten, mother from Cat kitten join kitten.mother mother\")\n"
-      "            .list()\n"
-      "            .iterator();\n"
-      "\n"
-      "while ( kittensAndMothers.hasNext() ) {\n"
-      "    Object[] tuple = (Object[]) kittensAndMothers.next();\n"
-      "    Cat kitten = (Cat) tuple[0];
-\n"
-      "    Cat mother = (Cat) tuple[1];
-\n"
-      "    ....\n"
-      "}]]>"
 
-#: index.docbook:274
-msgid "Hibernate queries sometimes return tuples of objects, in which case each tuple is returned as an array:"
+#. Tag: title
+#: session_api.xml:284
+#, no-c-format
+msgid "Scalar results"
 msgstr "Resultados escalares"
 
-#: index.docbook:279
+#. Tag: para
+#: session_api.xml:286
+#, no-c-format
 msgid ""
-      "<![CDATA[Iterator kittensAndMothers = sess.createQuery(\n"
-      "            \"select kitten, mother from Cat kitten join kitten.mother mother\")\n"
-      "            .list()\n"
-      "            .iterator();\n"
-      "\n"
-      "while ( kittensAndMothers.hasNext() ) {\n"
-      "    Object[] tuple = (Object[]) kittensAndMothers.next();\n"
-      "    Cat kitten = (Cat) tuple[0];\n"
-      "    Cat mother = (Cat) tuple[1];\n"
-      "    ....\n"
-      "}]]>"
-msgstr "Las consultas pueden especificar una propiedad de una clase en la cl&#x00e1;usula <literal>select</literal>. Pueden incluso llamar a funciones de agregaci&#x00f3;n SQL. Las propiedades o agregaciones son considerados resultados \"escalares\" (y no entidades en estado persistente)."
-
-#: index.docbook:284
-msgid "Scalar results"
+"Queries may specify a property of a class in the <literal>select</literal> "
+"clause. They may even call SQL aggregate functions. Properties or aggregates "
+"are considered \"scalar\" results (and not entities in persistent state)."
 msgstr ""
-      "<![CDATA[Iterator results = sess.createQuery(\n"
-      "        \"select cat.color, min(cat.birthdate), count(cat) from Cat cat \" +\n"
-      "        \"group by cat.color\")\n"
-      "        .list()\n"
-      "        .iterator();\n"
-      "\n"
-      "while ( results.hasNext() ) {\n"
-      "    Object[] row = results.next();\n"
-      "    Color type = (Color) row[0];\n"
-      "    Date oldest = (Date) row[1];\n"
-      "    Integer count = (Integer) row[2];\n"
-      "    .....\n"
-      "}]]>"
+"Las consultas pueden especificar una propiedad de una clase en la cláusula "
+"<literal>select</literal>. Pueden incluso llamar a funciones de agregación "
+"SQL. Las propiedades o agregaciones son considerados resultados \"escalares"
+"\" (y no entidades en estado persistente)."
 
-#: index.docbook:286
-msgid "Queries may specify a property of a class in the <literal>select</literal> clause. They may even call SQL aggregate functions. Properties or aggregates are considered \"scalar\" results (and not entities in persistent state)."
-msgstr "Ligaci&#x00f3;n de par&#x00e1;metros"
-
-#: index.docbook:292
+#. Tag: programlisting
+#: session_api.xml:292
+#, no-c-format
 msgid ""
-      "<![CDATA[Iterator results = sess.createQuery(\n"
-      "        \"select cat.color, min(cat.birthdate), count(cat) from Cat cat \" +\n"
-      "        \"group by cat.color\")\n"
-      "        .list()\n"
-      "        .iterator();\n"
-      "\n"
-      "while ( results.hasNext() ) {\n"
-      "    Object[] row = (Object[]) results.next();\n"
-      "    Color type = (Color) row[0];\n"
-      "    Date oldest = (Date) row[1];\n"
-      "    Integer count = (Integer) row[2];\n"
-      "    .....\n"
-      "}]]>"
-msgstr "Se proveen m&#x00e9;todos en <literal>Query</literal> para ligar valores a par&#x00e1;metros con nombre o par&#x00e1;metros <literal>?</literal> de estilo JDBC. <emphasis>Al contrario de JDBC, Hibernate numera los par&#x00e1;metros desde cero.</emphasis> Los par&#x00e1;metros con nombre son identificadores de la forma <literal>:name</literal> en la cadena de la consulta. Las ventajas de los par&#x00e1;metros con nombre son:"
+"<![CDATA[Iterator results = sess.createQuery(\n"
+"        \"select cat.color, min(cat.birthdate), count(cat) from Cat cat \" "
+"+\n"
+"        \"group by cat.color\")\n"
+"        .list()\n"
+"        .iterator();\n"
+"\n"
+"while ( results.hasNext() ) {\n"
+"    Object[] row = (Object[]) results.next();\n"
+"    Color type = (Color) row[0];\n"
+"    Date oldest = (Date) row[1];\n"
+"    Integer count = (Integer) row[2];\n"
+"    .....\n"
+"}]]>"
+msgstr ""
 
-#: index.docbook:297
+#. Tag: title
+#: session_api.xml:297
+#, no-c-format
 msgid "Bind parameters"
-msgstr "los par&#x00e1;metros con nombre son insensibles al orden en que aparecen en la cadena de consulta"
+msgstr "Ligación de parámetros"
 
-#: index.docbook:299
-msgid "Methods on <literal>Query</literal> are provided for binding values to named parameters or JDBC-style <literal>?</literal> parameters. <emphasis>Contrary to JDBC, Hibernate numbers parameters from zero.</emphasis> Named parameters are identifiers of the form <literal>:name</literal> in the query string. The advantages of named parameters are:"
-msgstr "pueden aparecer m&#x00fa;ltiples veces en la misma consulta"
+#. Tag: para
+#: session_api.xml:299
+#, no-c-format
+msgid ""
+"Methods on <literal>Query</literal> are provided for binding values to named "
+"parameters or JDBC-style <literal>?</literal> parameters. <emphasis>Contrary "
+"to JDBC, Hibernate numbers parameters from zero.</emphasis> Named parameters "
+"are identifiers of the form <literal>:name</literal> in the query string. "
+"The advantages of named parameters are:"
+msgstr ""
+"Se proveen métodos en <literal>Query</literal> para ligar valores a "
+"parámetros con nombre o parámetros <literal>?</literal> de estilo JDBC. "
+"<emphasis>Al contrario de JDBC, Hibernate numera los parámetros desde cero.</"
+"emphasis> Los parámetros con nombre son identificadores de la forma "
+"<literal>:name</literal> en la cadena de la consulta. Las ventajas de los "
+"parámetros con nombre son:"
 
-#: index.docbook:309
-msgid "named parameters are insensitive to the order they occur in the query string"
-msgstr "son auto-documentados"
+#. Tag: para
+#: session_api.xml:309
+#, no-c-format
+msgid ""
+"named parameters are insensitive to the order they occur in the query string"
+msgstr ""
+"los parámetros con nombre son insensibles al orden en que aparecen en la "
+"cadena de consulta"
 
-#: index.docbook:315
+#. Tag: para
+#: session_api.xml:315
+#, no-c-format
 msgid "they may occur multiple times in the same query"
-msgstr ""
-      "<![CDATA[//named parameter (preferred)\n"
-      "Query q = sess.createQuery(\"from DomesticCat cat where cat.name = :name\");\n"
-      "q.setString(\"name\", \"Fritz\");\n"
-      "Iterator cats = q.iterate();]]>"
+msgstr "pueden aparecer múltiples veces en la misma consulta"
 
-#: index.docbook:320
+#. Tag: para
+#: session_api.xml:320
+#, no-c-format
 msgid "they are self-documenting"
-msgstr ""
-      "<![CDATA[//positional parameter\n"
-      "Query q = sess.createQuery(\"from DomesticCat cat where cat.name = ?\");\n"
-      "q.setString(0, \"Izi\");\n"
-      "Iterator cats = q.iterate();]]>"
+msgstr "son auto-documentados"
 
-#: index.docbook:326
+#. Tag: programlisting
+#: session_api.xml:326
+#, no-c-format
 msgid ""
-      "<![CDATA[//named parameter (preferred)\n"
-      "Query q = sess.createQuery(\"from DomesticCat cat where cat.name = :name\");\n"
-      "q.setString(\"name\", \"Fritz\");\n"
-      "Iterator cats = q.iterate();]]>"
+"<![CDATA[//named parameter (preferred)\n"
+"Query q = sess.createQuery(\"from DomesticCat cat where cat.name = :name"
+"\");\n"
+"q.setString(\"name\", \"Fritz\");\n"
+"Iterator cats = q.iterate();]]>"
 msgstr ""
-      "<![CDATA[//named parameter list\n"
-      "List names = new ArrayList();\n"
-      "names.add(\"Izi\");\n"
-      "names.add(\"Fritz\");\n"
-      "Query q = sess.createQuery(\"from DomesticCat cat where cat.name in (:namesList)\");\n"
-      "q.setParameterList(\"namesList\", names);\n"
-      "List cats = q.list();]]>"
 
-#: index.docbook:328
+#. Tag: programlisting
+#: session_api.xml:328
+#, no-c-format
 msgid ""
-      "<![CDATA[//positional parameter\n"
-      "Query q = sess.createQuery(\"from DomesticCat cat where cat.name = ?\");\n"
-      "q.setString(0, \"Izi\");\n"
-      "Iterator cats = q.iterate();]]>"
-msgstr "Paginaci&#x00f3;n"
+"<![CDATA[//positional parameter\n"
+"Query q = sess.createQuery(\"from DomesticCat cat where cat.name = ?\");\n"
+"q.setString(0, \"Izi\");\n"
+"Iterator cats = q.iterate();]]>"
+msgstr ""
 
-#: index.docbook:330
+#. Tag: programlisting
+#: session_api.xml:330
+#, no-c-format
 msgid ""
-      "<![CDATA[//named parameter list\n"
-      "List names = new ArrayList();\n"
-      "names.add(\"Izi\");\n"
-      "names.add(\"Fritz\");\n"
-      "Query q = sess.createQuery(\"from DomesticCat cat where cat.name in (:namesList)\");\n"
-      "q.setParameterList(\"namesList\", names);\n"
-      "List cats = q.list();]]>"
-msgstr "Si necesitas especificar l&#x00ed;mites sobre tu conjunto resultado (el n&#x00fa;mero m&#x00e1;ximo de filas que quieras traer y/o la primera fila que quieras traer) debes usar los m&#x00e9;todos de la interface <literal>Query</literal>:"
+"<![CDATA[//named parameter list\n"
+"List names = new ArrayList();\n"
+"names.add(\"Izi\");\n"
+"names.add(\"Fritz\");\n"
+"Query q = sess.createQuery(\"from DomesticCat cat where cat.name in (:"
+"namesList)\");\n"
+"q.setParameterList(\"namesList\", names);\n"
+"List cats = q.list();]]>"
+msgstr ""
 
-#: index.docbook:335
+#. Tag: title
+#: session_api.xml:335
+#, no-c-format
 msgid "Pagination"
+msgstr "Paginación"
+
+#. Tag: para
+#: session_api.xml:337
+#, no-c-format
+msgid ""
+"If you need to specify bounds upon your result set (the maximum number of "
+"rows you want to retrieve and / or the first row you want to retrieve) you "
+"should use methods of the <literal>Query</literal> interface:"
 msgstr ""
-      "<![CDATA[Query q = sess.createQuery(\"from DomesticCat cat\");\n"
-      "q.setFirstResult(20);\n"
-      "q.setMaxResults(10);\n"
-      "List cats = q.list();]]>"
+"Si necesitas especificar límites sobre tu conjunto resultado (el número "
+"máximo de filas que quieras traer y/o la primera fila que quieras traer) "
+"debes usar los métodos de la interface <literal>Query</literal>:"
 
-#: index.docbook:337
-msgid "If you need to specify bounds upon your result set (the maximum number of rows you want to retrieve and / or the first row you want to retrieve) you should use methods of the <literal>Query</literal> interface:"
-msgstr "Hibernate sabe c&#x00f3;mo traducir este l&#x00ed;mite de consulta al SQL nativo de tu DBMS."
+#. Tag: programlisting
+#: session_api.xml:343
+#, no-c-format
+msgid ""
+"<![CDATA[Query q = sess.createQuery(\"from DomesticCat cat\");\n"
+"q.setFirstResult(20);\n"
+"q.setMaxResults(10);\n"
+"List cats = q.list();]]>"
+msgstr ""
 
-#: index.docbook:343
+#. Tag: para
+#: session_api.xml:345
+#, no-c-format
 msgid ""
-      "<![CDATA[Query q = sess.createQuery(\"from DomesticCat cat\");\n"
-      "q.setFirstResult(20);\n"
-      "q.setMaxResults(10);\n"
-      "List cats = q.list();]]>"
-msgstr "Iteraci&#x00f3;n scrollable"
+"Hibernate knows how to translate this limit query into the native SQL of "
+"your DBMS."
+msgstr ""
+"Hibernate sabe cómo traducir este límite de consulta al SQL nativo de tu "
+"DBMS."
 
-#: index.docbook:345
-msgid "Hibernate knows how to translate this limit query into the native SQL of your DBMS."
-msgstr "Si tu driver JDBC soporta <literal>ResultSet</literal>s scrollables, la interface <literal>Query</literal> puede ser usada para obtener un objeto <literal>ScrollableResults</literal>, que permite una navegaci&#x00f3;n flexible de los resultados de consulta."
+#. Tag: title
+#: session_api.xml:353
+#, no-c-format
+msgid "Scrollable iteration"
+msgstr "Iteración scrollable"
 
-#: index.docbook:353
-msgid "Scrollable iteration"
+#. Tag: para
+#: session_api.xml:355
+#, no-c-format
+msgid ""
+"If your JDBC driver supports scrollable <literal>ResultSet</literal>s, the "
+"<literal>Query</literal> interface may be used to obtain a "
+"<literal>ScrollableResults</literal> object, which allows flexible "
+"navigation of the query results."
 msgstr ""
-      "<![CDATA[Query q = sess.createQuery(\"select cat.name, cat from DomesticCat cat \" +\n"
-      "                            \"order by cat.name\");\n"
-      "ScrollableResults cats = q.scroll();\n"
-      "if ( cats.first() ) {\n"
-      "\n"
-      "    // find the first name on each page of an alphabetical list of cats by name\n"
-      "    firstNamesOfPages = new ArrayList();\n"
-      "    do {\n"
-      "        String name = cats.getString(0);\n"
-      "        firstNamesOfPages.add(name);\n"
-      "    }\n"
-      "    while ( cats.scroll(PAGE_SIZE) );\n"
-      "\n"
-      "    // Now get the first page of cats\n"
-      "    pageOfCats = new ArrayList();\n"
-      "    cats.beforeFirst();\n"
-      "    int i=0;\n"
-      "    while( ( PAGE_SIZE > i++ ) && cats.next() ) pageOfCats.add( cats.get(1) );\n"
-      "\n"
-      "}\n"
-      "cats.close()]]>"
+"Si tu driver JDBC soporta <literal>ResultSet</literal>s scrollables, la "
+"interface <literal>Query</literal> puede ser usada para obtener un objeto "
+"<literal>ScrollableResults</literal>, que permite una navegación flexible de "
+"los resultados de consulta."
 
-#: index.docbook:355
-msgid "If your JDBC driver supports scrollable <literal>ResultSet</literal>s, the <literal>Query</literal> interface may be used to obtain a <literal>ScrollableResults</literal> object, which allows flexible navigation of the query results."
-msgstr "Nota que se requiere una conexi&#x00f3;n de base de datos abierta (y cursor) para esta funcionalidad, usa <literal>setMaxResult()</literal>/<literal>setFirstResult()</literal> si necesitas la funcionalidad de paginaci&#x00f3;n fuera de l&#x00ed;nea."
+#. Tag: programlisting
+#: session_api.xml:362
+#, no-c-format
+msgid ""
+"<![CDATA[Query q = sess.createQuery(\"select cat.name, cat from DomesticCat "
+"cat \" +\n"
+"                            \"order by cat.name\");\n"
+"ScrollableResults cats = q.scroll();\n"
+"if ( cats.first() ) {\n"
+"\n"
+"    // find the first name on each page of an alphabetical list of cats by "
+"name\n"
+"    firstNamesOfPages = new ArrayList();\n"
+"    do {\n"
+"        String name = cats.getString(0);\n"
+"        firstNamesOfPages.add(name);\n"
+"    }\n"
+"    while ( cats.scroll(PAGE_SIZE) );\n"
+"\n"
+"    // Now get the first page of cats\n"
+"    pageOfCats = new ArrayList();\n"
+"    cats.beforeFirst();\n"
+"    int i=0;\n"
+"    while( ( PAGE_SIZE > i++ ) && cats.next() ) pageOfCats.add( cats.get"
+"(1) );\n"
+"\n"
+"}\n"
+"cats.close()]]>"
+msgstr ""
 
-#: index.docbook:362
+#. Tag: para
+#: session_api.xml:364
+#, no-c-format
 msgid ""
-      "<![CDATA[Query q = sess.createQuery(\"select cat.name, cat from DomesticCat cat \" +\n"
-      "                            \"order by cat.name\");\n"
-      "ScrollableResults cats = q.scroll();\n"
-      "if ( cats.first() ) {\n"
-      "\n"
-      "    // find the first name on each page of an alphabetical list of cats by name\n"
-      "    firstNamesOfPages = new ArrayList();\n"
-      "    do {\n"
-      "        String name = cats.getString(0);\n"
-      "        firstNamesOfPages.add(name);\n"
-      "    }\n"
-      "    while ( cats.scroll(PAGE_SIZE) );\n"
-      "\n"
-      "    // Now get the first page of cats\n"
-      "    pageOfCats = new ArrayList();\n"
-      "    cats.beforeFirst();\n"
-      "    int i=0;\n"
-      "    while( ( PAGE_SIZE > i++ ) && cats.next() ) pageOfCats.add( cats.get(1) );\n"
-      "\n"
-      "}\n"
-      "cats.close()]]>"
+"Note that an open database connection (and cursor) is required for this "
+"functionality, use <literal>setMaxResult()</literal>/<literal>setFirstResult"
+"()</literal> if you need offline pagination functionality."
+msgstr ""
+"Nota que se requiere una conexión de base de datos abierta (y cursor) para "
+"esta funcionalidad, usa <literal>setMaxResult()</literal>/"
+"<literal>setFirstResult()</literal> si necesitas la funcionalidad de "
+"paginación fuera de línea."
+
+#. Tag: title
+#: session_api.xml:373
+#, no-c-format
+msgid "Externalizing named queries"
 msgstr "Externalizando consultas con nombre"
 
-#: index.docbook:364
-msgid "Note that an open database connection (and cursor) is required for this functionality, use <literal>setMaxResult()</literal>/<literal>setFirstResult()</literal> if you need offline pagination functionality."
-msgstr "Puedes adem&#x00e1;s definir consultas con nombre en el documento de mapeo. (Recuerda usar una secci&#x00f3;n <literal>CDATA</literal> si tu consulta contiene caracteres que puedan ser interpretados como etiquetado.)"
-
-#: index.docbook:373
-msgid "Externalizing named queries"
+#. Tag: para
+#: session_api.xml:375
+#, no-c-format
+msgid ""
+"You may also define named queries in the mapping document. (Remember to use "
+"a <literal>CDATA</literal> section if your query contains characters that "
+"could be interpreted as markup.)"
 msgstr ""
-      "<![CDATA[<query name=\"eg.DomesticCat.by.name.and.minimum.weight\"><![CDATA[\n"
-      "    from eg.DomesticCat as cat\n"
-      "        where cat.name = ?\n"
-      "        and cat.weight > ?\n"
-      "] ]></query>]]>"
+"Puedes además definir consultas con nombre en el documento de mapeo. "
+"(Recuerda usar una sección <literal>CDATA</literal> si tu consulta contiene "
+"caracteres que puedan ser interpretados como etiquetado.)"
 
-#: index.docbook:375
-msgid "You may also define named queries in the mapping document. (Remember to use a <literal>CDATA</literal> section if your query contains characters that could be interpreted as markup.)"
-msgstr "La ligaci&#x00f3;n de par&#x00e1;metros y ejecuci&#x00f3;n se hace program&#x00e1;ticamente:"
-
-#: index.docbook:381
+#. Tag: programlisting
+#: session_api.xml:381
+#, no-c-format
 msgid ""
-      "<![CDATA[<query name=\"ByNameAndMaximumWeight\"><![CDATA[\n"
-      "    from eg.DomesticCat as cat\n"
-      "        where cat.name = ?\n"
-      "        and cat.weight > ?\n"
-      "] ]></query>]]>"
+"<![CDATA[<query name=\"ByNameAndMaximumWeight\"><![CDATA[\n"
+"    from eg.DomesticCat as cat\n"
+"        where cat.name = ?\n"
+"        and cat.weight > ?\n"
+"] ]></query>]]>"
 msgstr ""
-      "<![CDATA[Query q = sess.getNamedQuery(\"eg.DomesticCat.by.name.and.minimum.weight\");\n"
-      "q.setString(0, name);\n"
-      "q.setInt(1, minWeight);\n"
-      "List cats = q.list();]]>"
 
-#: index.docbook:383
+#. Tag: para
+#: session_api.xml:383
+#, no-c-format
 msgid "Parameter binding and executing is done programatically:"
-msgstr "Nota que el c&#x00f3;digo real del programa es independiente del lenguaje de consulta usado; puedes adem&#x00e1;s definir consultas SQL nativas en metadatos, o migrar consultas existentes a Hibernate coloc&#x00e1;ndolas en ficheros de mapeo."
+msgstr "La ligación de parámetros y ejecución se hace programáticamente:"
 
-#: index.docbook:387
+#. Tag: programlisting
+#: session_api.xml:387
+#, no-c-format
 msgid ""
-      "<![CDATA[Query q = sess.getNamedQuery(\"ByNameAndMaximumWeight\");\n"
-      "q.setString(0, name);\n"
-      "q.setInt(1, minWeight);\n"
-      "List cats = q.list();]]>"
-msgstr "Filtrando colecciones"
+"<![CDATA[Query q = sess.getNamedQuery(\"ByNameAndMaximumWeight\");\n"
+"q.setString(0, name);\n"
+"q.setInt(1, minWeight);\n"
+"List cats = q.list();]]>"
+msgstr ""
 
-#: index.docbook:389
-msgid "Note that the actual program code is independent of the query language that is used, you may also define native SQL queries in metadata, or migrate existing queries to Hibernate by placing them in mapping files."
-msgstr "Un <emphasis>filtro</emphasis> de colecci&#x00f3;n es un tipo especial de consulta que puede ser aplicado a una colecci&#x00f3;n persistente o array. La cadena de consulta puede referirse a <literal>this</literal>, significando el elemento de colecci&#x00f3;n actual."
+#. Tag: para
+#: session_api.xml:389
+#, no-c-format
+msgid ""
+"Note that the actual program code is independent of the query language that "
+"is used, you may also define native SQL queries in metadata, or migrate "
+"existing queries to Hibernate by placing them in mapping files."
+msgstr ""
+"Nota que el código real del programa es independiente del lenguaje de "
+"consulta usado; puedes además definir consultas SQL nativas en metadatos, o "
+"migrar consultas existentes a Hibernate colocándolas en ficheros de mapeo."
 
-#: index.docbook:395
-msgid "Also note that a query declaration inside a <literal>&lt;hibernate-mapping&gt;</literal> element requires a global unique name for the query, while a query declaration inside a <literal>&lt;class&gt;</literal> element is made unique automatically by prepending the fully qualified name of the class, for example <literal>eg.Cat.ByNameAndMaximumWeight</literal>."
+#. Tag: para
+#: session_api.xml:395
+#, no-c-format
+msgid ""
+"Also note that a query declaration inside a <literal>&lt;hibernate-"
+"mapping&gt;</literal> element requires a global unique name for the query, "
+"while a query declaration inside a <literal>&lt;class&gt;</literal> element "
+"is made unique automatically by prepending the fully qualified name of the "
+"class, for example <literal>eg.Cat.ByNameAndMaximumWeight</literal>."
 msgstr ""
-      "<![CDATA[Collection blackKittens = session.createFilter(\n"
-      "    pk.getKittens(), \n"
-      "    \"where this.color = ?\")\n"
-      "    .setParameter( Color.BLACK, Hibernate.custom(ColorUserType.class) )\n"
-      "    .list()\n"
-      ");]]>"
+"UNTRANSLATED! Also note that a query declaration inside a <literal>&lt;"
+"hibernate-mapping&gt;</literal> element requires a global unique name for "
+"the query, while a query declaration inside a <literal>&lt;class&gt;</"
+"literal> element is made unique automatically by prepending the fully "
+"qualified name of the class, for example <literal>eg.Cat."
+"ByNameAndMaximumWeight</literal>."
 
-#: index.docbook:408
+#. Tag: title
+#: session_api.xml:408
+#, no-c-format
 msgid "Filtering collections"
-msgstr "La colecci&#x00f3;n devuelta es considerada un bag, y es una copia de la colecci&#x00f3;n dada. La colecci&#x00f3;n original no es modificada (esto es contrario a la implicaci&#x00f3;n del nombre \"filtro\", pero consistente con el comportamiento esperado)."
+msgstr "Filtrando colecciones"
 
-#: index.docbook:409
-msgid "A collection <emphasis>filter</emphasis> is a special type of query that may be applied to a persistent collection or array. The query string may refer to <literal>this</literal>, meaning the current collection element."
-msgstr "Observa que los filtros no requieren una cl&#x00e1;usula <literal>from</literal> (aunque pueden tener uno si se requiere). Los filtros no est&#x00e1;n limitados a devolver los elementos de colecci&#x00f3;n por s&#x00ed; mismos."
+#. Tag: para
+#: session_api.xml:409
+#, no-c-format
+msgid ""
+"A collection <emphasis>filter</emphasis> is a special type of query that may "
+"be applied to a persistent collection or array. The query string may refer "
+"to <literal>this</literal>, meaning the current collection element."
+msgstr ""
+"Un <emphasis>filtro</emphasis> de colección es un tipo especial de consulta "
+"que puede ser aplicado a una colección persistente o array. La cadena de "
+"consulta puede referirse a <literal>this</literal>, significando el elemento "
+"de colección actual."
 
-#: index.docbook:415
+#. Tag: programlisting
+#: session_api.xml:415
+#, no-c-format
 msgid ""
-      "<![CDATA[Collection blackKittens = session.createFilter(\n"
-      "    pk.getKittens(), \n"
-      "    \"where this.color = ?\")\n"
-      "    .setParameter( Color.BLACK, Hibernate.custom(ColorUserType.class) )\n"
-      "    .list()\n"
-      ");]]>"
+"<![CDATA[Collection blackKittens = session.createFilter(\n"
+"    pk.getKittens(), \n"
+"    \"where this.color = ?\")\n"
+"    .setParameter( Color.BLACK, Hibernate.custom(ColorUserType.class) )\n"
+"    .list()\n"
+");]]>"
 msgstr ""
-      "<![CDATA[Collection blackKittenMates = session.createFilter(\n"
-      "    pk.getKittens(), \n"
-      "    \"select this.mate where this.color = eg.Color.BLACK.intValue\")\n"
-      "    .list();]]>"
 
-#: index.docbook:417
-msgid "The returned collection is considered a bag, and it's a copy of the given collection. The original collection is not modified (this is contrary to the implication of the name \"filter\", but consistent with expected behavior)."
-msgstr "Incluso una consulta de filtro vac&#x00ed;o es &#x00fa;til, por ejemplo, para cargar un subconjunto de elementos en una colecci&#x00f3;n enorme:"
+#. Tag: para
+#: session_api.xml:417
+#, no-c-format
+msgid ""
+"The returned collection is considered a bag, and it's a copy of the given "
+"collection. The original collection is not modified (this is contrary to the "
+"implication of the name \"filter\", but consistent with expected behavior)."
+msgstr ""
+"La colección devuelta es considerada un bag, y es una copia de la colección "
+"dada. La colección original no es modificada (esto es contrario a la "
+"implicación del nombre \"filtro\", pero consistente con el comportamiento "
+"esperado)."
 
-#: index.docbook:423
-msgid "Observe that filters do not require a <literal>from</literal> clause (though they may have one if required). Filters are not limited to returning the collection elements themselves."
+#. Tag: para
+#: session_api.xml:423
+#, no-c-format
+msgid ""
+"Observe that filters do not require a <literal>from</literal> clause (though "
+"they may have one if required). Filters are not limited to returning the "
+"collection elements themselves."
 msgstr ""
-      "<![CDATA[Collection tenKittens = session.createFilter(\n"
-      "    mother.getKittens(), \"\")\n"
-      "    .setFirstResult(0).setMaxResults(10)\n"
-      "    .list();]]>"
+"Observa que los filtros no requieren una cláusula <literal>from</literal> "
+"(aunque pueden tener uno si se requiere). Los filtros no están limitados a "
+"devolver los elementos de colección por sí mismos."
 
-#: index.docbook:428
+#. Tag: programlisting
+#: session_api.xml:428
+#, no-c-format
 msgid ""
-      "<![CDATA[Collection blackKittenMates = session.createFilter(\n"
-      "    pk.getKittens(), \n"
-      "    \"select this.mate where this.color = eg.Color.BLACK.intValue\")\n"
-      "    .list();]]>"
-msgstr "Consultas de criterios"
+"<![CDATA[Collection blackKittenMates = session.createFilter(\n"
+"    pk.getKittens(), \n"
+"    \"select this.mate where this.color = eg.Color.BLACK.intValue\")\n"
+"    .list();]]>"
+msgstr ""
 
-#: index.docbook:430
-msgid "Even an empty filter query is useful, e.g. to load a subset of elements in a huge collection:"
-msgstr "HQL es extremadamente potente pero algunos desarrolladores prefieren construir consultas din&#x00e1;micamente usando una API orientada a objetos, en vez construir cadenas de consulta. Hibernate provee una API intuitiva de consulta <literal>Criteria</literal> para estos casos:"
+#. Tag: para
+#: session_api.xml:430
+#, no-c-format
+msgid ""
+"Even an empty filter query is useful, e.g. to load a subset of elements in a "
+"huge collection:"
+msgstr ""
+"Incluso una consulta de filtro vacío es útil, por ejemplo, para cargar un "
+"subconjunto de elementos en una colección enorme:"
 
-#: index.docbook:435
+#. Tag: programlisting
+#: session_api.xml:435
+#, no-c-format
 msgid ""
-      "<![CDATA[Collection tenKittens = session.createFilter(\n"
-      "    mother.getKittens(), \"\")\n"
-      "    .setFirstResult(0).setMaxResults(10)\n"
-      "    .list();]]>"
+"<![CDATA[Collection tenKittens = session.createFilter(\n"
+"    mother.getKittens(), \"\")\n"
+"    .setFirstResult(0).setMaxResults(10)\n"
+"    .list();]]>"
 msgstr ""
-      "<![CDATA[Criteria crit = session.createCriteria(Cat.class);\n"
-      "crit.add( Restrictions.eq( \"color\", eg.Color.BLACK ) );\n"
-      "crit.setMaxResults(10);\n"
-      "List cats = crit.list();]]>"
 
-#: index.docbook:440
+#. Tag: title
+#: session_api.xml:440
+#, no-c-format
 msgid "Criteria queries"
-msgstr "Las APIs de <literal>Criteria</literal> y la asociada <literal>Example</literal> son discutidas en m&#x00e1;s detalle en <xref linkend=\"querycriteria\"/>."
+msgstr "Consultas de criterios"
 
-#: index.docbook:442
-msgid "HQL is extremely powerful but some developers prefer to build queries dynamically, using an object-oriented API, rather than building query strings. Hibernate provides an intuitive <literal>Criteria</literal> query API for these cases:"
-msgstr "Consultas en SQL nativo"
+#. Tag: para
+#: session_api.xml:442
+#, no-c-format
+msgid ""
+"HQL is extremely powerful but some developers prefer to build queries "
+"dynamically, using an object-oriented API, rather than building query "
+"strings. Hibernate provides an intuitive <literal>Criteria</literal> query "
+"API for these cases:"
+msgstr ""
+"HQL es extremadamente potente pero algunos desarrolladores prefieren "
+"construir consultas dinámicamente usando una API orientada a objetos, en vez "
+"construir cadenas de consulta. Hibernate provee una API intuitiva de "
+"consulta <literal>Criteria</literal> para estos casos:"
 
-#: index.docbook:448
+#. Tag: programlisting
+#: session_api.xml:448
+#, no-c-format
 msgid ""
-      "<![CDATA[Criteria crit = session.createCriteria(Cat.class);\n"
-      "crit.add( Restrictions.eq( \"color\", eg.Color.BLACK ) );\n"
-      "crit.setMaxResults(10);\n"
-      "List cats = crit.list();]]>"
-msgstr "Puedes expresar una consulta en SQL, usando <literal>createSQLQuery()</literal> y dejando que Hibernate cuide del mapeo de los conjuntos resultado a objetos. Nota que puedes llamar en cualquier momento a <literal>session.connection()</literal> y usar la <literal>Connection</literal> JDBC directamente. Si eliges usar la API de Hibernate, debes encerrar los alias de SQL entre llaves:"
+"<![CDATA[Criteria crit = session.createCriteria(Cat.class);\n"
+"crit.add( Restrictions.eq( \"color\", eg.Color.BLACK ) );\n"
+"crit.setMaxResults(10);\n"
+"List cats = crit.list();]]>"
+msgstr ""
 
-#: index.docbook:450
-msgid "The <literal>Criteria</literal> and the associated <literal>Example</literal> API are discussed in more detail in <xref linkend=\"querycriteria\"/>."
+#. Tag: para
+#: session_api.xml:450
+#, no-c-format
+msgid ""
+"The <literal>Criteria</literal> and the associated <literal>Example</"
+"literal> API are discussed in more detail in <xref linkend=\"querycriteria\"/"
+">."
 msgstr ""
-      "<![CDATA[List cats = session.createSQLQuery(\"SELECT {cat.*} FROM CAT {cat} WHERE ROWNUM<10\")
-\n"
-      "    .addEntity(\"cat\", Cat.class)
-\n"
-      ".list();]]>"
+"Las APIs de <literal>Criteria</literal> y la asociada <literal>Example</"
+"literal> son discutidas en más detalle en <xref linkend=\"querycriteria\"/>."
 
-#: index.docbook:458
+#. Tag: title
+#: session_api.xml:458
+#, no-c-format
 msgid "Queries in native SQL"
+msgstr "Consultas en SQL nativo"
+
+#. Tag: para
+#: session_api.xml:460
+#, no-c-format
+msgid ""
+"You may express a query in SQL, using <literal>createSQLQuery()</literal> "
+"and let Hibernate take care of the mapping from result sets to objects. Note "
+"that you may at any time call <literal>session.connection()</literal> and "
+"use the JDBC <literal>Connection</literal> directly. If you chose to use the "
+"Hibernate API, you must enclose SQL aliases in braces:"
 msgstr ""
-      "<![CDATA[List cats = session.createSQLQuery(
-\n"
-      "    \"SELECT {cat}.ID AS {cat.id}, {cat}.SEX AS {cat.sex}, \" +
-\n"
-      "           \"{cat}.MATE AS {cat.mate}, {cat}.SUBCLASS AS {cat.class}, ... \" +
-\n"
-      "    \"FROM CAT {cat} WHERE ROWNUM<10\")
-\n"
-      "    .addEntity(\"cat\", Cat.class)
-\n"
-      ".list()]]>"
+"Puedes expresar una consulta en SQL, usando <literal>createSQLQuery()</"
+"literal> y dejando que Hibernate cuide del mapeo de los conjuntos resultado "
+"a objetos. Nota que puedes llamar en cualquier momento a <literal>session."
+"connection()</literal> y usar la <literal>Connection</literal> JDBC "
+"directamente. Si eliges usar la API de Hibernate, debes encerrar los alias "
+"de SQL entre llaves:"
 
-#: index.docbook:460
-msgid "You may express a query in SQL, using <literal>createSQLQuery()</literal> and let Hibernate take care of the mapping from result sets to objects. Note that you may at any time call <literal>session.connection()</literal> and use the JDBC <literal>Connection</literal> directly. If you chose to use the Hibernate API, you must enclose SQL aliases in braces:"
-msgstr "Las consultas SQL pueden contener par&#x00e1;metros con nombre y posicionales, al igual que las consultas de Hibernate. Puede encontrarse m&#x00e1;s informaci&#x00f3;n sobre consultas en SQL nativo en <xref linkend=\"querysql\"/>."
+#. Tag: programlisting
+#: session_api.xml:468
+#, no-c-format
+msgid ""
+"<![CDATA[List cats = session.createSQLQuery(\"SELECT {cat.*} FROM CAT {cat} "
+"WHERE ROWNUM<10\")\n"
+"    .addEntity(\"cat\", Cat.class)\n"
+".list();]]>"
+msgstr ""
 
-#: index.docbook:468
+#. Tag: programlisting
+#: session_api.xml:470
+#, no-c-format
 msgid ""
-      "<![CDATA[List cats = session.createSQLQuery(\"SELECT {cat.*} FROM CAT {cat} WHERE ROWNUM<10\")\n"
-      "    .addEntity(\"cat\", Cat.class)\n"
-      ".list();]]>"
-msgstr "Modificando objetos persistentes"
+"<![CDATA[List cats = session.createSQLQuery(\n"
+"    \"SELECT {cat}.ID AS {cat.id}, {cat}.SEX AS {cat.sex}, \" +\n"
+"           \"{cat}.MATE AS {cat.mate}, {cat}.SUBCLASS AS {cat.class}, ... \" "
+"+\n"
+"    \"FROM CAT {cat} WHERE ROWNUM<10\")\n"
+"    .addEntity(\"cat\", Cat.class)\n"
+".list()]]>"
+msgstr ""
 
-#: index.docbook:470
+#. Tag: para
+#: session_api.xml:472
+#, no-c-format
 msgid ""
-      "<![CDATA[List cats = session.createSQLQuery(\n"
-      "    \"SELECT {cat}.ID AS {cat.id}, {cat}.SEX AS {cat.sex}, \" +\n"
-      "           \"{cat}.MATE AS {cat.mate}, {cat}.SUBCLASS AS {cat.class}, ... \" +\n"
-      "    \"FROM CAT {cat} WHERE ROWNUM<10\")\n"
-      "    .addEntity(\"cat\", Cat.class)\n"
-      ".list()]]>"
-msgstr "Las <emphasis>instancias persistentes transaccionales</emphasis> (es decir, objetos cargados, creados o consultados por la <literal>Session</literal>) pueden ser manipulados por la aplicaci&#x00f3;n y cualquier cambio al estado persistente ser&#x00e1; persistido cuando la <literal>Session</literal> sea <emphasis>limpiada (flushed)</emphasis> (discutido m&#x00e1;s adelante en este cap&#x00ed;tulo). No hay necesidad de llamar un m&#x00e9;todo en particular (como <literal>update()</literal>, que tiene un prop&#x00f3;sito diferente) para hacer persistentes tus modificaciones. De modo que la forma m&#x00e1;s directa de actualizar el estado de un objeto es cargarlo con <literal>load()</literal>, y entonces manipularlo directamente, mientras la <literal>Session</literal> est&#x00e1; abierta:"
-
-#: index.docbook:472
-msgid "SQL queries may contain named and positional parameters, just like Hibernate queries. More information about native SQL queries in Hibernate can be found in <xref linkend=\"querysql\"/>."
+"SQL queries may contain named and positional parameters, just like Hibernate "
+"queries. More information about native SQL queries in Hibernate can be found "
+"in <xref linkend=\"querysql\"/>."
 msgstr ""
-      "<![CDATA[DomesticCat cat = (DomesticCat) sess.load( Cat.class, new Long(69) );\n"
-      "cat.setName(\"PK\");\n"
-      "sess.flush();  // changes to cat are automatically detected and persisted]]>"
+"Las consultas SQL pueden contener parámetros con nombre y posicionales, al "
+"igual que las consultas de Hibernate. Puede encontrarse más información "
+"sobre consultas en SQL nativo en <xref linkend=\"querysql\"/>."
 
-#: index.docbook:483
+#. Tag: title
+#: session_api.xml:483
+#, no-c-format
 msgid "Modifying persistent objects"
-msgstr "A veces este modelo de programaci&#x00f3;n es ineficiente pues podr&#x00ed;a requerir una <literal>SELECT</literal> de SQL (para cargar un objeto) y un <literal>UPDATE</literal> de SQL (para hacer persistentes sus datos actualizados) en la misma sesi&#x00f3;n. Por lo tanto, Hibernate ofrece un enfoque alternativo, usando instancias separadas (detached)."
+msgstr "Modificando objetos persistentes"
 
-#: index.docbook:485
-msgid "<emphasis>Transactional persistent instances</emphasis> (ie. objects loaded, saved, created or queried by the <literal>Session</literal>) may be manipulated by the application and any changes to persistent state will be persisted when the <literal>Session</literal> is <emphasis>flushed</emphasis> (discussed later in this chapter). There is no need to call a particular method (like <literal>update()</literal>, which has a different purpose) to make your modifications persistent. So the most straightforward way to update the state of an object is to <literal>load()</literal> it, and then manipulate it directly, while the <literal>Session</literal> is open:"
-msgstr "Nota que Hibernate no ofreve su propia API para ejecuci&#x00f3;n directa de sentencias <literal>UPDATE</literal> o <literal>DELETE</literal>. Hibernate es un servicio de <emphasis>gesti&#x00f3;n de estado</emphasis>, no tienes que pensar en <literal>sentencias</literal> para usarlo. JDBC es una API perfecta para ejecutar sentencias SQL; puedes obtener una <literal>Connection</literal> JDBC en cualquier momento llamando a <literal>session.connection()</literal>. Adem&#x00e1;s, la noci&#x00f3;n de operaciones masivas entra en conflicto con el mapeo objeto/relacional en aplicaciones en l&#x00ed;nea orientadas al procesamiento de transacciones. Versiones futuras de Hibernate pueden, sin embargo, proveer funciones de operaci&#x00f3;n masiva especiales. Ver <xref linkend=\"batch\"/> por algunos trucos de operaci&#x00f3;n en lote (batch) posibles."
+#. Tag: para
+#: session_api.xml:485
+#, no-c-format
+msgid ""
+"<emphasis>Transactional persistent instances</emphasis> (ie. objects loaded, "
+"saved, created or queried by the <literal>Session</literal>) may be "
+"manipulated by the application and any changes to persistent state will be "
+"persisted when the <literal>Session</literal> is <emphasis>flushed</"
+"emphasis> (discussed later in this chapter). There is no need to call a "
+"particular method (like <literal>update()</literal>, which has a different "
+"purpose) to make your modifications persistent. So the most straightforward "
+"way to update the state of an object is to <literal>load()</literal> it, and "
+"then manipulate it directly, while the <literal>Session</literal> is open:"
+msgstr ""
+"Las <emphasis>instancias persistentes transaccionales</emphasis> (es decir, "
+"objetos cargados, creados o consultados por la <literal>Session</literal>) "
+"pueden ser manipulados por la aplicación y cualquier cambio al estado "
+"persistente será persistido cuando la <literal>Session</literal> sea "
+"<emphasis>limpiada (flushed)</emphasis> (discutido más adelante en este "
+"capítulo). No hay necesidad de llamar un método en particular (como "
+"<literal>update()</literal>, que tiene un propósito diferente) para hacer "
+"persistentes tus modificaciones. De modo que la forma más directa de "
+"actualizar el estado de un objeto es cargarlo con <literal>load()</literal>, "
+"y entonces manipularlo directamente, mientras la <literal>Session</literal> "
+"está abierta:"
 
-#: index.docbook:496
+#. Tag: programlisting
+#: session_api.xml:496
+#, no-c-format
 msgid ""
-      "<![CDATA[DomesticCat cat = (DomesticCat) sess.load( Cat.class, new Long(69) );\n"
-      "cat.setName(\"PK\");\n"
-      "sess.flush();  // changes to cat are automatically detected and persisted]]>"
-msgstr "Modificando objetos separados"
+"<![CDATA[DomesticCat cat = (DomesticCat) sess.load( Cat.class, new Long"
+"(69) );\n"
+"cat.setName(\"PK\");\n"
+"sess.flush();  // changes to cat are automatically detected and persisted]]>"
+msgstr ""
 
-#: index.docbook:498
-msgid "Sometimes this programming model is inefficient since it would require both an SQL <literal>SELECT</literal> (to load an object) and an SQL <literal>UPDATE</literal> (to persist its updated state) in the same session. Therefore Hibernate offers an alternate approach, using detached instances."
-msgstr "Muchas aplicaciones necesitan recuperar un objeto en una transacci&#x00f3;n, enviarla a la capa de UI para su manipulaci&#x00f3;n, y entonces salvar los cambios en una nueva transacci&#x00f3;n. Las aplicaciones que usan este tipo de enfoque en un entorno de alta concurrencia usualmente usan datos versionados para asegurar el aislamiento de la unidad de trabajo \"larga\"."
+#. Tag: para
+#: session_api.xml:498
+#, no-c-format
+msgid ""
+"Sometimes this programming model is inefficient since it would require both "
+"an SQL <literal>SELECT</literal> (to load an object) and an SQL "
+"<literal>UPDATE</literal> (to persist its updated state) in the same "
+"session. Therefore Hibernate offers an alternate approach, using detached "
+"instances."
+msgstr ""
+"A veces este modelo de programación es ineficiente pues podría requerir una "
+"<literal>SELECT</literal> de SQL (para cargar un objeto) y un "
+"<literal>UPDATE</literal> de SQL (para hacer persistentes sus datos "
+"actualizados) en la misma sesión. Por lo tanto, Hibernate ofrece un enfoque "
+"alternativo, usando instancias separadas (detached)."
 
-#: index.docbook:506
-msgid "Note that Hibernate does not offer its own API for direct execution of <literal>UPDATE</literal> or <literal>DELETE</literal> statements. Hibernate is a <emphasis>state management</emphasis> service, you don't have to think in <emphasis>statements</emphasis> to use it. JDBC is a perfect API for executing SQL statements, you can get a JDBC <literal>Connection</literal> at any time by calling <literal>session.connection()</literal>. Furthermore, the notion of mass operations conflicts with object/relational mapping for online transaction processing-oriented applications. Future versions of Hibernate may however provide special mass operation functions. See <xref linkend=\"batch\"/> for some possible batch operation tricks."
-msgstr "Hibernate soporta este modelo al proveer re-uni&#x00f3;n de instancias separadas usando los m&#x00e9;todos <literal>Session.update()</literal> o <literal>Session.merge()</literal>:"
+#. Tag: emphasis
+#: session_api.xml:506
+#, fuzzy, no-c-format
+msgid ""
+"Note that Hibernate does not offer its own API for direct execution of "
+"<literal>UPDATE</literal> or <literal>DELETE</literal> statements. Hibernate "
+"is a <emphasis>state management</emphasis> service, you don't have to think "
+"in <emphasis>statements</emphasis> to use it. JDBC is a perfect API for "
+"executing SQL statements, you can get a JDBC <literal>Connection</literal> "
+"at any time by calling <literal>session.connection()</literal>. Furthermore, "
+"the notion of mass operations conflicts with object/relational mapping for "
+"online transaction processing-oriented applications. Future versions of "
+"Hibernate may however provide special mass operation functions. See <xref "
+"linkend=\"batch\"/> for some possible batch operation tricks."
+msgstr ""
+"Nota que Hibernate no ofreve su propia API para ejecución directa de "
+"sentencias <placeholder-1/> o <placeholder-2/>. Hibernate es un servicio de "
+"<placeholder-3/>, no tienes que pensar en <placeholder-4/> para usarlo. JDBC "
+"es una API perfecta para ejecutar sentencias SQL; puedes obtener una "
+"<placeholder-5/> JDBC en cualquier momento llamando a <placeholder-6/>. "
+"Además, la noción de operaciones masivas entra en conflicto con el mapeo "
+"objeto/relacional en aplicaciones en línea orientadas al procesamiento de "
+"transacciones. Versiones futuras de Hibernate pueden, sin embargo, proveer "
+"funciones de operación masiva especiales. Ver <xref linkend=\"batch\"/> por "
+"algunos trucos de operación en lote (batch) posibles."
 
-#: index.docbook:521
+#. Tag: title
+#: session_api.xml:521
+#, no-c-format
 msgid "Modifying detached objects"
+msgstr "Modificando objetos separados"
+
+#. Tag: para
+#: session_api.xml:523
+#, no-c-format
+msgid ""
+"Many applications need to retrieve an object in one transaction, send it to "
+"the UI layer for manipulation, then save the changes in a new transaction. "
+"Applications that use this kind of approach in a high-concurrency "
+"environment usually use versioned data to ensure isolation for the \"long\" "
+"unit of work."
 msgstr ""
-      "<![CDATA[// in the first session\n"
-      "Cat cat = (Cat) firstSession.load(Cat.class, catId);\n"
-      "Cat potentialMate = new Cat();\n"
-      "firstSession.save(potentialMate);\n"
-      "\n"
-      "// in a higher layer of the application\n"
-      "cat.setMate(potentialMate);\n"
-      "\n"
-      "// later, in a new session\n"
-      "secondSession.update(cat);  // update cat\n"
-      "secondSession.update(mate); // update mate]]>"
+"Muchas aplicaciones necesitan recuperar un objeto en una transacción, "
+"enviarla a la capa de UI para su manipulación, y entonces salvar los cambios "
+"en una nueva transacción. Las aplicaciones que usan este tipo de enfoque en "
+"un entorno de alta concurrencia usualmente usan datos versionados para "
+"asegurar el aislamiento de la unidad de trabajo \"larga\"."
 
-#: index.docbook:523
-msgid "Many applications need to retrieve an object in one transaction, send it to the UI layer for manipulation, then save the changes in a new transaction. Applications that use this kind of approach in a high-concurrency environment usually use versioned data to ensure isolation for the \"long\" unit of work."
-msgstr "Si el <literal>Cat</literal> con identificador <literal>catId</literal> ya hubiera sido cargado por <literal>secondSession</literal> cuando la aplicaci&#x00f3;n intent&#x00f3; volver a unirlo, se habr&#x00ed;a lanzado una excepci&#x00f3;n."
+#. Tag: para
+#: session_api.xml:530
+#, no-c-format
+msgid ""
+"Hibernate supports this model by providing for reattachment of detached "
+"instances using the <literal>Session.update()</literal> or <literal>Session."
+"merge()</literal> methods:"
+msgstr ""
+"Hibernate soporta este modelo al proveer re-unión de instancias separadas "
+"usando los métodos <literal>Session.update()</literal> o <literal>Session."
+"merge()</literal>:"
 
-#: index.docbook:530
-msgid "Hibernate supports this model by providing for reattachment of detached instances using the <literal>Session.update()</literal> or <literal>Session.merge()</literal> methods:"
-msgstr "Usa <literal>update()</literal> si no est&#x00e1;s seguro que la sesi&#x00f3;n tenga una instancia ya persistente con el mismo identificador, y <literal>merge()</literal> si quieres fusionar tus modificaciones en cualquier momento sin consideraci&#x00f3;n del estado de la sesi&#x00f3;n. En otras palabras, <literal>update()</literal> es usualmente el primer m&#x00e9;todo que llamar&#x00ed;as en una sesi&#x00f3;n fresca, asegurando que la re-uni&#x00f3;n de tus instancias separadas es la primera operaci&#x00f3;n que se ejecuta."
+#. Tag: programlisting
+#: session_api.xml:536
+#, no-c-format
+msgid ""
+"<![CDATA[// in the first session\n"
+"Cat cat = (Cat) firstSession.load(Cat.class, catId);\n"
+"Cat potentialMate = new Cat();\n"
+"firstSession.save(potentialMate);\n"
+"\n"
+"// in a higher layer of the application\n"
+"cat.setMate(potentialMate);\n"
+"\n"
+"// later, in a new session\n"
+"secondSession.update(cat);  // update cat\n"
+"secondSession.update(mate); // update mate]]>"
+msgstr ""
 
-#: index.docbook:536
+#. Tag: para
+#: session_api.xml:538
+#, no-c-format
 msgid ""
-      "<![CDATA[// in the first session\n"
-      "Cat cat = (Cat) firstSession.load(Cat.class, catId);\n"
-      "Cat potentialMate = new Cat();\n"
-      "firstSession.save(potentialMate);\n"
-      "\n"
-      "// in a higher layer of the application\n"
-      "cat.setMate(potentialMate);\n"
-      "\n"
-      "// later, in a new session\n"
-      "secondSession.update(cat);  // update cat\n"
-      "secondSession.update(mate); // update mate]]>"
-msgstr "La aplicaci&#x00f3;n debe actualizar individualmente las instancias separadas alcanzables por la instancia separada dada llamando a <literal>update()</literal>, si y <emphasis>s&#x00f3;lo</emphasis> si quiere que sus estados sean tambi&#x00e9;n actualizados. Esto puede, por supuesto, ser automatizado usando <emphasis>persistencia transitiva</emphasis>, ver <xref linkend=\"objectstate-transitive\"/>."
+"If the <literal>Cat</literal> with identifier <literal>catId</literal> had "
+"already been loaded by <literal>secondSession</literal> when the application "
+"tried to reattach it, an exception would have been thrown."
+msgstr ""
+"Si el <literal>Cat</literal> con identificador <literal>catId</literal> ya "
+"hubiera sido cargado por <literal>secondSession</literal> cuando la "
+"aplicación intentó volver a unirlo, se habría lanzado una excepción."
 
-#: index.docbook:538
-msgid "If the <literal>Cat</literal> with identifier <literal>catId</literal> had already been loaded by <literal>secondSession</literal> when the application tried to reattach it, an exception would have been thrown."
-msgstr "El m&#x00e9;todo <literal>lock()</literal> tambi&#x00e9;n permite a una aplicaci&#x00f3;n reasociar un objeto con una sesi&#x00f3;n nueva. Sin embargo, la instancia separada no puede haber sido modificada!"
+#. Tag: para
+#: session_api.xml:544
+#, no-c-format
+msgid ""
+"Use <literal>update()</literal> if you are sure that the session does not "
+"contain an already persistent instance with the same identifier, and "
+"<literal>merge()</literal> if you want to merge your modifications at any "
+"time without consideration of the state of the session. In other words, "
+"<literal>update()</literal> is usually the first method you would call in a "
+"fresh session, ensuring that reattachment of your detached instances is the "
+"first operation that is executed."
+msgstr ""
+"Usa <literal>update()</literal> si no estás seguro que la sesión tenga una "
+"instancia ya persistente con el mismo identificador, y <literal>merge()</"
+"literal> si quieres fusionar tus modificaciones en cualquier momento sin "
+"consideración del estado de la sesión. En otras palabras, <literal>update()</"
+"literal> es usualmente el primer método que llamarías en una sesión fresca, "
+"asegurando que la re-unión de tus instancias separadas es la primera "
+"operación que se ejecuta."
 
-#: index.docbook:544
-msgid "Use <literal>update()</literal> if you are sure that the session does not contain an already persistent instance with the same identifier, and <literal>merge()</literal> if you want to merge your modifications at any time without consideration of the state of the session. In other words, <literal>update()</literal> is usually the first method you would call in a fresh session, ensuring that reattachment of your detached instances is the first operation that is executed."
+#. Tag: para
+#: session_api.xml:553
+#, no-c-format
+msgid ""
+"The application should individually <literal>update()</literal> detached "
+"instances reachable from the given detached instance if and <emphasis>only</"
+"emphasis> if it wants their state also updated. This can be automated of "
+"course, using <emphasis>transitive persistence</emphasis>, see <xref linkend="
+"\"objectstate-transitive\"/>."
 msgstr ""
-      "<![CDATA[//just reassociate:\n"
-      "sess.lock(fritz, LockMode.NONE);\n"
-      "//do a version check, then reassociate:\n"
-      "sess.lock(izi, LockMode.READ);\n"
-      "//do a version check, using SELECT ... FOR UPDATE, then reassociate:\n"
-      "sess.lock(pk, LockMode.UPGRADE);]]>"
+"La aplicación debe actualizar individualmente las instancias separadas "
+"alcanzables por la instancia separada dada llamando a <literal>update()</"
+"literal>, si y <emphasis>sólo</emphasis> si quiere que sus estados sean "
+"también actualizados. Esto puede, por supuesto, ser automatizado usando "
+"<emphasis>persistencia transitiva</emphasis>, ver <xref linkend="
+"\"objectstate-transitive\"/>."
 
-#: index.docbook:553
-msgid "The application should individually <literal>update()</literal> detached instances reachable from the given detached instance if and <emphasis>only</emphasis> if it wants their state also updated. This can be automated of course, using <emphasis>transitive persistence</emphasis>, see <xref linkend=\"objectstate-transitive\"/>."
-msgstr "Nota que <literal>lock()</literal> puede ser usado con varios <literal>LockMode</literal>s, ver la documentaci&#x00f3;n de la API y el cap&#x00ed;tulo sobre manejo de transacciones para m&#x00e1;s informaci&#x00f3;n. La re-uni&#x00f3;n no es el &#x00fa;nico caso de uso para <literal>lock()</literal>."
+#. Tag: para
+#: session_api.xml:560
+#, no-c-format
+msgid ""
+"The <literal>lock()</literal> method also allows an application to "
+"reassociate an object with a new session. However, the detached instance has "
+"to be unmodified!"
+msgstr ""
+"El método <literal>lock()</literal> también permite a una aplicación "
+"reasociar un objeto con una sesión nueva. Sin embargo, la instancia separada "
+"no puede haber sido modificada!"
 
-#: index.docbook:560
-msgid "The <literal>lock()</literal> method also allows an application to reassociate an object with a new session. However, the detached instance has to be unmodified!"
-msgstr "Se discuten otros modelos para unidades de trabajo largas en <xref linkend=\"transactions-optimistic\"/>."
+#. Tag: programlisting
+#: session_api.xml:565
+#, no-c-format
+msgid ""
+"<![CDATA[//just reassociate:\n"
+"sess.lock(fritz, LockMode.NONE);\n"
+"//do a version check, then reassociate:\n"
+"sess.lock(izi, LockMode.READ);\n"
+"//do a version check, using SELECT ... FOR UPDATE, then reassociate:\n"
+"sess.lock(pk, LockMode.UPGRADE);]]>"
+msgstr ""
 
-#: index.docbook:565
+#. Tag: para
+#: session_api.xml:567
+#, no-c-format
 msgid ""
-      "<![CDATA[//just reassociate:\n"
-      "sess.lock(fritz, LockMode.NONE);\n"
-      "//do a version check, then reassociate:\n"
-      "sess.lock(izi, LockMode.READ);\n"
-      "//do a version check, using SELECT ... FOR UPDATE, then reassociate:\n"
-      "sess.lock(pk, LockMode.UPGRADE);]]>"
-msgstr "Detecci&#x00f3;n autom&#x00e1;tica de estado"
+"Note that <literal>lock()</literal> can be used with various "
+"<literal>LockMode</literal>s, see the API documentation and the chapter on "
+"transaction handling for more information. Reattachment is not the only "
+"usecase for <literal>lock()</literal>."
+msgstr ""
+"Nota que <literal>lock()</literal> puede ser usado con varios "
+"<literal>LockMode</literal>s, ver la documentación de la API y el capítulo "
+"sobre manejo de transacciones para más información. La re-unión no es el "
+"único caso de uso para <literal>lock()</literal>."
 
-#: index.docbook:567
-msgid "Note that <literal>lock()</literal> can be used with various <literal>LockMode</literal>s, see the API documentation and the chapter on transaction handling for more information. Reattachment is not the only usecase for <literal>lock()</literal>."
-msgstr "Los usuarios de Hibernate han pedido un m&#x00e9;todo de prop&#x00f3;sito general que bien salve una instancia transitoria generando un identificador nuevo, o bien actualice/re&#x00fa;na las instancias separadas asociadas con su identificador actual. El m&#x00e9;todo <literal>saveOrUpdate()</literal> implementa esta funcionalidad."
-
-#: index.docbook:574
-msgid "Other models for long units of work are discussed in <xref linkend=\"transactions-optimistic\"/>."
+#. Tag: para
+#: session_api.xml:574
+#, no-c-format
+msgid ""
+"Other models for long units of work are discussed in <xref linkend="
+"\"transactions-optimistic\"/>."
 msgstr ""
-      "<![CDATA[// in the first session\n"
-      "Cat cat = (Cat) firstSession.load(Cat.class, catID);\n"
-      "\n"
-      "// in a higher tier of the application\n"
-      "Cat mate = new Cat();\n"
-      "cat.setMate(mate);\n"
-      "\n"
-      "// later, in a new session\n"
-      "secondSession.saveOrUpdate(cat);   // update existing state (cat has a non-null id)\n"
-      "secondSession.saveOrUpdate(mate);  // save the new instance (mate has a null id)]]>"
+"Se discuten otros modelos para unidades de trabajo largas en <xref linkend="
+"\"transactions-optimistic\"/>."
 
-#: index.docbook:581
+#. Tag: title
+#: session_api.xml:581
+#, no-c-format
 msgid "Automatic state detection"
-msgstr "El uso y sem&#x00e1;ntica de <literal>saveOrUpdate()</literal> parece ser confuso para usuarios nuevos. Primeramente, en tanto no est&#x00e9;s intentando usar instancias de una sesi&#x00f3;n en otra sesi&#x00f3;n nueva, no debes necesitar usar <literal>update()</literal>, <literal>saveOrUpdate()</literal>, o <literal>merge()</literal>. Algunas aplicaciones enteras nunca usar&#x00e1;n ninguno de estos m&#x00e9;todos."
+msgstr "Detección automática de estado"
 
-#: index.docbook:583
-msgid "Hibernate users have requested a general purpose method that either saves a transient instance by generating a new identifier or updates/reattaches the detached instances associated with its current identifier. The <literal>saveOrUpdate()</literal> method implements this functionality."
-msgstr "Usualmente <literal>update()</literal> o <literal>saveOrUpdate()</literal> se usan en el siguiente escenario:"
+#. Tag: para
+#: session_api.xml:583
+#, no-c-format
+msgid ""
+"Hibernate users have requested a general purpose method that either saves a "
+"transient instance by generating a new identifier or updates/reattaches the "
+"detached instances associated with its current identifier. The "
+"<literal>saveOrUpdate()</literal> method implements this functionality."
+msgstr ""
+"Los usuarios de Hibernate han pedido un método de propósito general que bien "
+"salve una instancia transitoria generando un identificador nuevo, o bien "
+"actualice/reúna las instancias separadas asociadas con su identificador "
+"actual. El método <literal>saveOrUpdate()</literal> implementa esta "
+"funcionalidad."
 
-#: index.docbook:590
+#. Tag: programlisting
+#: session_api.xml:590
+#, no-c-format
 msgid ""
-      "<![CDATA[// in the first session\n"
-      "Cat cat = (Cat) firstSession.load(Cat.class, catID);\n"
-      "\n"
-      "// in a higher tier of the application\n"
-      "Cat mate = new Cat();\n"
-      "cat.setMate(mate);\n"
-      "\n"
-      "// later, in a new session\n"
-      "secondSession.saveOrUpdate(cat);   // update existing state (cat has a non-null id)\n"
-      "secondSession.saveOrUpdate(mate);  // save the new instance (mate has a null id)]]>"
-msgstr "la aplicaci&#x00f3;n carga un objeto en la primera sesi&#x00f3;n"
+"<![CDATA[// in the first session\n"
+"Cat cat = (Cat) firstSession.load(Cat.class, catID);\n"
+"\n"
+"// in a higher tier of the application\n"
+"Cat mate = new Cat();\n"
+"cat.setMate(mate);\n"
+"\n"
+"// later, in a new session\n"
+"secondSession.saveOrUpdate(cat);   // update existing state (cat has a non-"
+"null id)\n"
+"secondSession.saveOrUpdate(mate);  // save the new instance (mate has a null "
+"id)]]>"
+msgstr ""
 
-#: index.docbook:592
-msgid "The usage and semantics of <literal>saveOrUpdate()</literal> seems to be confusing for new users. Firstly, so long as you are not trying to use instances from one session in another new session, you should not need to use <literal>update()</literal>, <literal>saveOrUpdate()</literal>, or <literal>merge()</literal>. Some whole applications will never use either of these methods."
-msgstr "el objeto es pasado a la capa de UI"
+#. Tag: para
+#: session_api.xml:592
+#, no-c-format
+msgid ""
+"The usage and semantics of <literal>saveOrUpdate()</literal> seems to be "
+"confusing for new users. Firstly, so long as you are not trying to use "
+"instances from one session in another new session, you should not need to "
+"use <literal>update()</literal>, <literal>saveOrUpdate()</literal>, or "
+"<literal>merge()</literal>. Some whole applications will never use either of "
+"these methods."
+msgstr ""
+"El uso y semántica de <literal>saveOrUpdate()</literal> parece ser confuso "
+"para usuarios nuevos. Primeramente, en tanto no estés intentando usar "
+"instancias de una sesión en otra sesión nueva, no debes necesitar usar "
+"<literal>update()</literal>, <literal>saveOrUpdate()</literal>, o "
+"<literal>merge()</literal>. Algunas aplicaciones enteras nunca usarán "
+"ninguno de estos métodos."
 
-#: index.docbook:600
-msgid "Usually <literal>update()</literal> or <literal>saveOrUpdate()</literal> are used in the following scenario:"
-msgstr "se hacen algunas modificaciones al objeto"
+#. Tag: para
+#: session_api.xml:600
+#, no-c-format
+msgid ""
+"Usually <literal>update()</literal> or <literal>saveOrUpdate()</literal> are "
+"used in the following scenario:"
+msgstr ""
+"Usualmente <literal>update()</literal> o <literal>saveOrUpdate()</literal> "
+"se usan en el siguiente escenario:"
 
-#: index.docbook:607
+#. Tag: para
+#: session_api.xml:607
+#, no-c-format
 msgid "the application loads an object in the first session"
-msgstr "el objeto se pasa abajo de regreso a la capa de negocio"
+msgstr "la aplicación carga un objeto en la primera sesión"
 
-#: index.docbook:612
+#. Tag: para
+#: session_api.xml:612
+#, no-c-format
 msgid "the object is passed up to the UI tier"
-msgstr "la aplicaci&#x00f3;n hace estas modificaciones persistentes llamando a <literal>update()</literal> en una segunda sesi&#x00f3;n"
+msgstr "el objeto es pasado a la capa de UI"
 
-#: index.docbook:617
+#. Tag: para
+#: session_api.xml:617
+#, no-c-format
 msgid "some modifications are made to the object"
-msgstr "<literal>saveOrUpdate()</literal> hace lo siguiente:"
+msgstr "se hacen algunas modificaciones al objeto"
 
-#: index.docbook:622
+#. Tag: para
+#: session_api.xml:622
+#, no-c-format
 msgid "the object is passed back down to the business logic tier"
-msgstr "si el objeto ya es persistente en esta sesi&#x00f3;n, no hace nada"
+msgstr "el objeto se pasa abajo de regreso a la capa de negocio"
 
-#: index.docbook:627
-msgid "the application persists these modifications by calling <literal>update()</literal> in a second session"
-msgstr "si otro objeto asociado con la sesi&#x00f3;n tiene el mismo identificador, lanza una excepci&#x00f3;n"
+#. Tag: para
+#: session_api.xml:627
+#, no-c-format
+msgid ""
+"the application persists these modifications by calling <literal>update()</"
+"literal> in a second session"
+msgstr ""
+"la aplicación hace estas modificaciones persistentes llamando a "
+"<literal>update()</literal> en una segunda sesión"
 
-#: index.docbook:634
+#. Tag: para
+#: session_api.xml:634
+#, no-c-format
 msgid "<literal>saveOrUpdate()</literal> does the following:"
-msgstr "si el objeto no tiene ninguna propiedad identificadora, lo salva llamando a <literal>save()</literal>"
+msgstr "<literal>saveOrUpdate()</literal> hace lo siguiente:"
 
-#: index.docbook:640
+#. Tag: para
+#: session_api.xml:640
+#, no-c-format
 msgid "if the object is already persistent in this session, do nothing"
-msgstr "si el identificador del objeto tiene el valor asignado a un objeto reci&#x00e9;n instanciado, lo salva llamando a <literal>save()</literal>"
+msgstr "si el objeto ya es persistente en esta sesión, no hace nada"
 
-#: index.docbook:645
-msgid "if another object associated with the session has the same identifier, throw an exception"
-msgstr "si el objeto est&#x00e1; versionado (por un <literal>&lt;version&gt;</literal> o <literal>&lt;timestamp&gt;</literal>), y el valor de la propiedad de versi&#x00f3;n es el mismo valor asignado a una objeto reci&#x00e9;n instanciado, lo salva llamando a <literal>save()</literal>"
+#. Tag: para
+#: session_api.xml:645
+#, no-c-format
+msgid ""
+"if another object associated with the session has the same identifier, throw "
+"an exception"
+msgstr ""
+"si otro objeto asociado con la sesión tiene el mismo identificador, lanza "
+"una excepción"
 
-#: index.docbook:651
+#. Tag: para
+#: session_api.xml:651
+#, no-c-format
 msgid "if the object has no identifier property, <literal>save()</literal> it"
-msgstr "en cualquier otro caso se actualiza el objeto llamando a <literal>update()</literal>"
+msgstr ""
+"si el objeto no tiene ninguna propiedad identificadora, lo salva llamando a "
+"<literal>save()</literal>"
 
-#: index.docbook:656
-msgid "if the object's identifier has the value assigned to a newly instantiated object, <literal>save()</literal> it"
-msgstr "y <literal>merge()</literal> es muy diferente:"
+#. Tag: para
+#: session_api.xml:656
+#, no-c-format
+msgid ""
+"if the object's identifier has the value assigned to a newly instantiated "
+"object, <literal>save()</literal> it"
+msgstr ""
+"si el identificador del objeto tiene el valor asignado a un objeto recién "
+"instanciado, lo salva llamando a <literal>save()</literal>"
 
-#: index.docbook:662
-msgid "if the object is versioned (by a <literal>&lt;version&gt;</literal> or <literal>&lt;timestamp&gt;</literal>), and the version property value is the same value assigned to a newly instantiated object, <literal>save()</literal> it"
-msgstr "si existe una instancia persistente con el mismo identificador asignado actualmente con la sesi&#x00f3;n, copia el estado del objeto dado en la instancia persistente"
+#. Tag: para
+#: session_api.xml:662
+#, no-c-format
+msgid ""
+"if the object is versioned (by a <literal>&lt;version&gt;</literal> or "
+"<literal>&lt;timestamp&gt;</literal>), and the version property value is the "
+"same value assigned to a newly instantiated object, <literal>save()</"
+"literal> it"
+msgstr ""
+"si el objeto está versionado (por un <literal>&lt;version&gt;</literal> o "
+"<literal>&lt;timestamp&gt;</literal>), y el valor de la propiedad de versión "
+"es el mismo valor asignado a una objeto recién instanciado, lo salva "
+"llamando a <literal>save()</literal>"
 
-#: index.docbook:670
+#. Tag: para
+#: session_api.xml:670
+#, no-c-format
 msgid "otherwise <literal>update()</literal> the object"
-msgstr "si no existe ninguna instancia persistente actualmente asociada a la sesi&#x00f3;n, intente cargarla de la base de datos, o crear una nueva instancia persistente"
+msgstr ""
+"en cualquier otro caso se actualiza el objeto llamando a <literal>update()</"
+"literal>"
 
-#: index.docbook:676
+#. Tag: para
+#: session_api.xml:676
+#, no-c-format
 msgid "and <literal>merge()</literal> is very different:"
-msgstr "la instancia persistente es devuelta"
+msgstr "y <literal>merge()</literal> es muy diferente:"
 
-#: index.docbook:682
-msgid "if there is a persistent instance with the same identifier currently associated with the session, copy the state of the given object onto the persistent instance"
-msgstr "la instancia dada no resulta ser asociada a la sesi&#x00f3;n, permanece separada"
+#. Tag: para
+#: session_api.xml:682
+#, no-c-format
+msgid ""
+"if there is a persistent instance with the same identifier currently "
+"associated with the session, copy the state of the given object onto the "
+"persistent instance"
+msgstr ""
+"si existe una instancia persistente con el mismo identificador asignado "
+"actualmente con la sesión, copia el estado del objeto dado en la instancia "
+"persistente"
 
-#: index.docbook:689
-msgid "if there is no persistent instance currently associated with the session, try to load it from the database, or create a new persistent instance"
-msgstr "Borrando objetos persistentes"
+#. Tag: para
+#: session_api.xml:689
+#, no-c-format
+msgid ""
+"if there is no persistent instance currently associated with the session, "
+"try to load it from the database, or create a new persistent instance"
+msgstr ""
+"si no existe ninguna instancia persistente actualmente asociada a la sesión, "
+"intente cargarla de la base de datos, o crear una nueva instancia persistente"
 
-#: index.docbook:695
+#. Tag: para
+#: session_api.xml:695
+#, no-c-format
 msgid "the persistent instance is returned"
-msgstr "<literal>Session.delete()</literal> quitar&#x00e1; el estado de un objeto de la base de datos. Por supuesto, tu aplicaci&#x00f3;n podr&#x00ed;a tener a&#x00fa;n una referencia a un objeto borrado. Lo mejor es pensar en <literal>delete()</literal> como hacer transitoria una instancia persistente."
+msgstr "la instancia persistente es devuelta"
 
-#: index.docbook:700
-msgid "the given instance does not become associated with the session, it remains detached"
-msgstr "<![CDATA[sess.delete(cat);]]>"
+#. Tag: para
+#: session_api.xml:700
+#, no-c-format
+msgid ""
+"the given instance does not become associated with the session, it remains "
+"detached"
+msgstr ""
+"la instancia dada no resulta ser asociada a la sesión, permanece separada"
 
-#: index.docbook:710
+#. Tag: title
+#: session_api.xml:710
+#, no-c-format
 msgid "Deleting persistent objects"
-msgstr "Puedes borrar los objetos en el orden que gustes, sin riesgo de violaciones de restricci&#x00f3;n de clave for&#x00e1;nea. A&#x00fa;n es posible violar una restricci&#x00f3;n <literal>NOT NULL</literal> sobre una columna clave for&#x00e1;nea borrando objetos en un orden err&#x00f3;neo, por ejemplo, si borras el padre, pero olvidas borrar los hijos."
+msgstr "Borrando objetos persistentes"
 
-#: index.docbook:712
-msgid "<literal>Session.delete()</literal> will remove an object's state from the database. Of course, your application might still hold a reference to a deleted object. It's best to think of <literal>delete()</literal> as making a persistent instance transient."
-msgstr "Replicando objetos entre dos almac&#x00e9;nes de datos diferentes"
+#. Tag: para
+#: session_api.xml:712
+#, no-c-format
+msgid ""
+"<literal>Session.delete()</literal> will remove an object's state from the "
+"database. Of course, your application might still hold a reference to a "
+"deleted object. It's best to think of <literal>delete()</literal> as making "
+"a persistent instance transient."
+msgstr ""
+"<literal>Session.delete()</literal> quitará el estado de un objeto de la "
+"base de datos. Por supuesto, tu aplicación podría tener aún una referencia a "
+"un objeto borrado. Lo mejor es pensar en <literal>delete()</literal> como "
+"hacer transitoria una instancia persistente."
 
-#: index.docbook:719
+#. Tag: programlisting
+#: session_api.xml:719
+#, no-c-format
 msgid "<![CDATA[sess.delete(cat);]]>"
-msgstr "Es ocasionalmente &#x00fa;til ser capaz de tomar un grafo de instancias persistentes y hacerlas persistentes en un almac&#x00e9;n de datos diferente, sin regenerar los valores identificadores."
+msgstr ""
 
-#: index.docbook:721
-msgid "You may delete objects in any order you like, without risk of foreign key constraint violations. It is still possible to violate a <literal>NOT NULL</literal> constraint on a foreign key column by deleting objects in the wrong order, e.g. if you delete the parent, but forget to delete the children."
+#. Tag: para
+#: session_api.xml:721
+#, no-c-format
+msgid ""
+"You may delete objects in any order you like, without risk of foreign key "
+"constraint violations. It is still possible to violate a <literal>NOT NULL</"
+"literal> constraint on a foreign key column by deleting objects in the wrong "
+"order, e.g. if you delete the parent, but forget to delete the children."
 msgstr ""
-      "<![CDATA[//retrieve a cat from one database\n"
-      "Session session1 = factory1.openSession();\n"
-      "Transaction tx1 = session1.beginTransaction();\n"
-      "Cat cat = session1.get(Cat.class, catId);\n"
-      "tx1.commit();\n"
-      "session1.close();\n"
-      "\n"
-      "//reconcile with a second database\n"
-      "Session session2 = factory2.openSession();\n"
-      "Transaction tx2 = session2.beginTransaction();\n"
-      "session2.replicate(cat, ReplicationMode.LATEST_VERSION);\n"
-      "tx2.commit();\n"
-      "session2.close();]]>"
+"Puedes borrar los objetos en el orden que gustes, sin riesgo de violaciones "
+"de restricción de clave foránea. Aún es posible violar una restricción "
+"<literal>NOT NULL</literal> sobre una columna clave foránea borrando objetos "
+"en un orden erróneo, por ejemplo, si borras el padre, pero olvidas borrar "
+"los hijos."
 
-#: index.docbook:732
+#. Tag: title
+#: session_api.xml:732
+#, no-c-format
 msgid "Replicating object between two different datastores"
-msgstr "El <literal>ReplicationMode</literal> determina c&#x00f3;mo <literal>replicate()</literal> tratar&#x00e1; los conflictos con filas existentes en la base de datos."
+msgstr "Replicando objetos entre dos almacénes de datos diferentes"
 
-#: index.docbook:734
-msgid "It is occasionally useful to be able to take a graph of persistent instances and make them persistent in a different datastore, without regenerating identifier values."
-msgstr "<literal>ReplicationMode.IGNORE</literal> - ignora el objeto cuando existe una fila de base de datos con el mismo identificador"
+#. Tag: para
+#: session_api.xml:734
+#, no-c-format
+msgid ""
+"It is occasionally useful to be able to take a graph of persistent instances "
+"and make them persistent in a different datastore, without regenerating "
+"identifier values."
+msgstr ""
+"Es ocasionalmente útil ser capaz de tomar un grafo de instancias "
+"persistentes y hacerlas persistentes en un almacén de datos diferente, sin "
+"regenerar los valores identificadores."
 
-#: index.docbook:740
+#. Tag: programlisting
+#: session_api.xml:740
+#, no-c-format
 msgid ""
-      "<![CDATA[//retrieve a cat from one database\n"
-      "Session session1 = factory1.openSession();\n"
-      "Transaction tx1 = session1.beginTransaction();\n"
-      "Cat cat = session1.get(Cat.class, catId);\n"
-      "tx1.commit();\n"
-      "session1.close();\n"
-      "\n"
-      "//reconcile with a second database\n"
-      "Session session2 = factory2.openSession();\n"
-      "Transaction tx2 = session2.beginTransaction();\n"
-      "session2.replicate(cat, ReplicationMode.LATEST_VERSION);\n"
-      "tx2.commit();\n"
-      "session2.close();]]>"
-msgstr "<literal>ReplicationMode.OVERWRITE</literal> - sobrescribe cualquier fila de base de datos existente con el mismo identificador"
+"<![CDATA[//retrieve a cat from one database\n"
+"Session session1 = factory1.openSession();\n"
+"Transaction tx1 = session1.beginTransaction();\n"
+"Cat cat = session1.get(Cat.class, catId);\n"
+"tx1.commit();\n"
+"session1.close();\n"
+"\n"
+"//reconcile with a second database\n"
+"Session session2 = factory2.openSession();\n"
+"Transaction tx2 = session2.beginTransaction();\n"
+"session2.replicate(cat, ReplicationMode.LATEST_VERSION);\n"
+"tx2.commit();\n"
+"session2.close();]]>"
+msgstr ""
 
-#: index.docbook:742
-msgid "The <literal>ReplicationMode</literal> determines how <literal>replicate()</literal> will deal with conflicts with existing rows in the database."
-msgstr "<literal>ReplicationMode.EXCEPTION</literal> - lanza una excepci&#x00f3;n si existe una fila de base de datos con el mismo identificador"
+#. Tag: para
+#: session_api.xml:742
+#, no-c-format
+msgid ""
+"The <literal>ReplicationMode</literal> determines how <literal>replicate()</"
+"literal> will deal with conflicts with existing rows in the database."
+msgstr ""
+"El <literal>ReplicationMode</literal> determina cómo <literal>replicate()</"
+"literal> tratará los conflictos con filas existentes en la base de datos."
 
-#: index.docbook:749
-msgid "<literal>ReplicationMode.IGNORE</literal> - ignore the object when there is an existing database row with the same identifier"
-msgstr "<literal>ReplicationMode.LATEST_VERSION</literal> - sobrescribe la fila si su n&#x00fa;mero de versi&#x00f3;n es anterior al n&#x00fa;mero de versi&#x00f3;n del objeto, o en caso contrario ignora el objeto"
+#. Tag: para
+#: session_api.xml:749
+#, no-c-format
+msgid ""
+"<literal>ReplicationMode.IGNORE</literal> - ignore the object when there is "
+"an existing database row with the same identifier"
+msgstr ""
+"<literal>ReplicationMode.IGNORE</literal> - ignora el objeto cuando existe "
+"una fila de base de datos con el mismo identificador"
 
-#: index.docbook:755
-msgid "<literal>ReplicationMode.OVERWRITE</literal> - overwrite any existing database row with the same identifier"
-msgstr "Los casos de uso para esta funcionalidad incluyen reconciliar datos ingresados en instancias diferentes de bases de datos, actualizar informaci&#x00f3;n de configuraci&#x00f3;n de sistema durante actualizaciones de producto, deshacer cambios producidos durante transacciones no-ACID y m&#x00e1;s."
+#. Tag: para
+#: session_api.xml:755
+#, no-c-format
+msgid ""
+"<literal>ReplicationMode.OVERWRITE</literal> - overwrite any existing "
+"database row with the same identifier"
+msgstr ""
+"<literal>ReplicationMode.OVERWRITE</literal> - sobrescribe cualquier fila de "
+"base de datos existente con el mismo identificador"
 
-#: index.docbook:761
-msgid "<literal>ReplicationMode.EXCEPTION</literal> - throw an exception if there is an existing database row with the same identifier"
-msgstr "Limpiando (flushing) la sesi&#x00f3;n"
+#. Tag: para
+#: session_api.xml:761
+#, no-c-format
+msgid ""
+"<literal>ReplicationMode.EXCEPTION</literal> - throw an exception if there "
+"is an existing database row with the same identifier"
+msgstr ""
+"<literal>ReplicationMode.EXCEPTION</literal> - lanza una excepción si existe "
+"una fila de base de datos con el mismo identificador"
 
-#: index.docbook:767
-msgid "<literal>ReplicationMode.LATEST_VERSION</literal> - overwrite the row if its version number is earlier than the version number of the object, or ignore the object otherwise"
-msgstr "Cada tanto, la <literal>Session</literal> ejecutar&#x00e1; las sentencias SQL necesarias para sincronizar el estado de la conexi&#x00f3;n JDBC con el estado de los objetos mantenidos en menoria. Este proceso, <emphasis>limpieza (flush)</emphasis>, ocurre por defecto en los siguientes puntos"
+#. Tag: para
+#: session_api.xml:767
+#, no-c-format
+msgid ""
+"<literal>ReplicationMode.LATEST_VERSION</literal> - overwrite the row if its "
+"version number is earlier than the version number of the object, or ignore "
+"the object otherwise"
+msgstr ""
+"<literal>ReplicationMode.LATEST_VERSION</literal> - sobrescribe la fila si "
+"su número de versión es anterior al número de versión del objeto, o en caso "
+"contrario ignora el objeto"
 
-#: index.docbook:775
-msgid "Usecases for this feature include reconciling data entered into different database instances, upgrading system configuration information during product upgrades, rolling back changes made during non-ACID transactions and more."
-msgstr "antes de algunas ejecuciones de consulta"
+#. Tag: para
+#: session_api.xml:775
+#, no-c-format
+msgid ""
+"Usecases for this feature include reconciling data entered into different "
+"database instances, upgrading system configuration information during "
+"product upgrades, rolling back changes made during non-ACID transactions and "
+"more."
+msgstr ""
+"Los casos de uso para esta funcionalidad incluyen reconciliar datos "
+"ingresados en instancias diferentes de bases de datos, actualizar "
+"información de configuración de sistema durante actualizaciones de producto, "
+"deshacer cambios producidos durante transacciones no-ACID y más."
 
-#: index.docbook:784
+#. Tag: title
+#: session_api.xml:784
+#, no-c-format
 msgid "Flushing the Session"
-msgstr "desde <literal>org.hibernate.Transaction.commit()</literal>"
+msgstr "Limpiando (flushing) la sesión"
 
-#: index.docbook:786
-msgid "From time to time the <literal>Session</literal> will execute the SQL statements needed to synchronize the JDBC connection's state with the state of objects held in memory. This process, <emphasis>flush</emphasis>, occurs by default at the following points"
-msgstr "desde <literal>Session.flush()</literal>"
+#. Tag: para
+#: session_api.xml:786
+#, no-c-format
+msgid ""
+"From time to time the <literal>Session</literal> will execute the SQL "
+"statements needed to synchronize the JDBC connection's state with the state "
+"of objects held in memory. This process, <emphasis>flush</emphasis>, occurs "
+"by default at the following points"
+msgstr ""
+"Cada tanto, la <literal>Session</literal> ejecutará las sentencias SQL "
+"necesarias para sincronizar el estado de la conexión JDBC con el estado de "
+"los objetos mantenidos en menoria. Este proceso, <emphasis>limpieza (flush)</"
+"emphasis>, ocurre por defecto en los siguientes puntos"
 
-#: index.docbook:795
+#. Tag: para
+#: session_api.xml:795
+#, no-c-format
 msgid "before some query executions"
-msgstr "Las sentencias SQL son liberadas en el siguiente orden"
+msgstr "antes de algunas ejecuciones de consulta"
 
-#: index.docbook:800
+#. Tag: para
+#: session_api.xml:800
+#, no-c-format
 msgid "from <literal>org.hibernate.Transaction.commit()</literal>"
-msgstr "todas las inserciones de entidades, en el mismo orden que los objetos correspondientes fueron salvados usando <literal>Session.save()</literal>"
+msgstr "desde <literal>org.hibernate.Transaction.commit()</literal>"
 
-#: index.docbook:805
+#. Tag: para
+#: session_api.xml:805
+#, no-c-format
 msgid "from <literal>Session.flush()</literal>"
-msgstr "todas las actualizaciones de entidades"
+msgstr "desde <literal>Session.flush()</literal>"
 
-#: index.docbook:811
+#. Tag: para
+#: session_api.xml:811
+#, no-c-format
 msgid "The SQL statements are issued in the following order"
-msgstr "todas los borrados de colecciones"
+msgstr "Las sentencias SQL son liberadas en el siguiente orden"
 
-#: index.docbook:817
-msgid "all entity insertions, in the same order the corresponding objects were saved using <literal>Session.save()</literal>"
-msgstr "todos los borrados, actualizaciones e inserciones de elementos de colecci&#x00f3;n"
+#. Tag: para
+#: session_api.xml:817
+#, no-c-format
+msgid ""
+"all entity insertions, in the same order the corresponding objects were "
+"saved using <literal>Session.save()</literal>"
+msgstr ""
+"todas las inserciones de entidades, en el mismo orden que los objetos "
+"correspondientes fueron salvados usando <literal>Session.save()</literal>"
 
-#: index.docbook:823
+#. Tag: para
+#: session_api.xml:823
+#, no-c-format
 msgid "all entity updates"
-msgstr "todas las inserciones de colecciones"
+msgstr "todas las actualizaciones de entidades"
 
-#: index.docbook:828
+#. Tag: para
+#: session_api.xml:828
+#, no-c-format
 msgid "all collection deletions"
-msgstr "todos los borrados de entidades, en el mismo orden que los objetos correspondientes fueron borrados usando <literal>Session.delete()</literal>"
+msgstr "todas los borrados de colecciones"
 
-#: index.docbook:833
+#. Tag: para
+#: session_api.xml:833
+#, no-c-format
 msgid "all collection element deletions, updates and insertions"
-msgstr "(Una excepci&#x00f3;n es que los objetos que usan generaci&#x00f3;n de ID <literal>native</literal> se insertan cuando son salvados.)"
+msgstr ""
+"todos los borrados, actualizaciones e inserciones de elementos de colección"
 
-#: index.docbook:838
+#. Tag: para
+#: session_api.xml:838
+#, no-c-format
 msgid "all collection insertions"
-msgstr "Excepto cuando llamas expl&#x00ed;citamente a <literal>flush()</literal>, no hay en absoluto garant&#x00ed;as sobre <emphasis>cu&#x00e1;ndo</emphasis> la <literal>Session</literal> ejecuta las llamadas JDBC. s&#x00f3;lo sobre el <emphasis>orden</emphasis> en que son ejecutadas. Sin embargo, Hibernate garantiza que los m&#x00e9;todos <literal>Query.list(..)</literal> nunca devolver&#x00e1;n datos a&#x00f1;ejos o err&#x00f3;neos."
+msgstr "todas las inserciones de colecciones"
 
-#: index.docbook:843
-msgid "all entity deletions, in the same order the corresponding objects were deleted using <literal>Session.delete()</literal>"
-msgstr "Es posible cambiar el comportamiento por defecto de modo que la limpieza (flush) ocurra menos frecuentemente. La clase <literal>FlushMode</literal> tres modos diferentes: s&#x00f3;lo en tiempo de compromiso (y s&#x00f3;lo cuando se use la API de <literal>Transaction</literal> de Hibernate), limpieza autom&#x00e1;tica usando la rutina explicada, o nunca limpiar a menos que se llame a <literal>flush()</literal> expl&#x00ed;citamente. El &#x00fa;ltimo modo es &#x00fa;til para unidades de trabajo largas, donde una <literal>Session</literal> se mantiene abierta y desconectada por largo tiempo (ver <xref linkend=\"transactions-optimistic-longsession\"/>)."
+#. Tag: para
+#: session_api.xml:843
+#, no-c-format
+msgid ""
+"all entity deletions, in the same order the corresponding objects were "
+"deleted using <literal>Session.delete()</literal>"
+msgstr ""
+"todos los borrados de entidades, en el mismo orden que los objetos "
+"correspondientes fueron borrados usando <literal>Session.delete()</literal>"
 
-#: index.docbook:850
-msgid "(An exception is that objects using <literal>native</literal> ID generation are inserted when they are saved.)"
+#. Tag: para
+#: session_api.xml:850
+#, no-c-format
+msgid ""
+"(An exception is that objects using <literal>native</literal> ID generation "
+"are inserted when they are saved.)"
 msgstr ""
-      "<![CDATA[sess = sf.openSession();\n"
-      "Transaction tx = sess.beginTransaction();\n"
-      "sess.setFlushMode(FlushMode.COMMIT); // allow queries to return stale state\n"
-      "\n"
-      "Cat izi = (Cat) sess.load(Cat.class, id);\n"
-      "izi.setName(iznizi);\n"
-      "\n"
-      "// might return stale data\n"
-      "sess.find(\"from Cat as cat left outer join cat.kittens kitten\");\n"
-      "\n"
-      "// change to izi is not flushed!\n"
-      "...\n"
-      "tx.commit(); // flush occurs]]>"
+"(Una excepción es que los objetos que usan generación de ID <literal>native</"
+"literal> se insertan cuando son salvados.)"
 
-#: index.docbook:855
-msgid "Except when you explicity <literal>flush()</literal>, there are absolutely no guarantees about <emphasis>when</emphasis> the <literal>Session</literal> executes the JDBC calls, only the <emphasis>order</emphasis> in which they are executed. However, Hibernate does guarantee that the <literal>Query.list(..)</literal> will never return stale data; nor will they return the wrong data."
-msgstr "Durante la limpieza, puede ocurrir una excepci&#x00f3;n (por ejemplo, si una operaci&#x00f3;n DML violase una restricci&#x00f3;n). Ya que el manejo de excepciones implica alguna comprensi&#x00f3;n del comportamiento transaccional de Hibernate, lo discutimos en <xref linkend=\"transactions\"/>."
+#. Tag: para
+#: session_api.xml:855
+#, no-c-format
+msgid ""
+"Except when you explicity <literal>flush()</literal>, there are absolutely "
+"no guarantees about <emphasis>when</emphasis> the <literal>Session</literal> "
+"executes the JDBC calls, only the <emphasis>order</emphasis> in which they "
+"are executed. However, Hibernate does guarantee that the <literal>Query.list"
+"(..)</literal> will never return stale data; nor will they return the wrong "
+"data."
+msgstr ""
+"Excepto cuando llamas explícitamente a <literal>flush()</literal>, no hay en "
+"absoluto garantías sobre <emphasis>cuándo</emphasis> la <literal>Session</"
+"literal> ejecuta las llamadas JDBC. sólo sobre el <emphasis>orden</emphasis> "
+"en que son ejecutadas. Sin embargo, Hibernate garantiza que los métodos "
+"<literal>Query.list(..)</literal> nunca devolverán datos añejos o erróneos."
 
-#: index.docbook:863
-msgid "It is possible to change the default behavior so that flush occurs less frequently. The <literal>FlushMode</literal> class defines three different modes: only flush at commit time (and only when the Hibernate <literal>Transaction</literal> API is used), flush automatically using the explained routine, or never flush unless <literal>flush()</literal> is called explicitly. The last mode is useful for long running units of work, where a <literal>Session</literal> is kept open and disconnected for a long time (see <xref linkend=\"transactions-optimistic-longsession\"/>)."
-msgstr "Persistencia transitiva"
+#. Tag: para
+#: session_api.xml:863
+#, no-c-format
+msgid ""
+"It is possible to change the default behavior so that flush occurs less "
+"frequently. The <literal>FlushMode</literal> class defines three different "
+"modes: only flush at commit time (and only when the Hibernate "
+"<literal>Transaction</literal> API is used), flush automatically using the "
+"explained routine, or never flush unless <literal>flush()</literal> is "
+"called explicitly. The last mode is useful for long running units of work, "
+"where a <literal>Session</literal> is kept open and disconnected for a long "
+"time (see <xref linkend=\"transactions-optimistic-longsession\"/>)."
+msgstr ""
+"Es posible cambiar el comportamiento por defecto de modo que la limpieza "
+"(flush) ocurra menos frecuentemente. La clase <literal>FlushMode</literal> "
+"tres modos diferentes: sólo en tiempo de compromiso (y sólo cuando se use la "
+"API de <literal>Transaction</literal> de Hibernate), limpieza automática "
+"usando la rutina explicada, o nunca limpiar a menos que se llame a "
+"<literal>flush()</literal> explícitamente. El último modo es útil para "
+"unidades de trabajo largas, donde una <literal>Session</literal> se mantiene "
+"abierta y desconectada por largo tiempo (ver <xref linkend=\"transactions-"
+"optimistic-longsession\"/>)."
 
-#: index.docbook:873
+#. Tag: programlisting
+#: session_api.xml:873
+#, no-c-format
 msgid ""
-      "<![CDATA[sess = sf.openSession();\n"
-      "Transaction tx = sess.beginTransaction();\n"
-      "sess.setFlushMode(FlushMode.COMMIT); // allow queries to return stale state\n"
-      "\n"
-      "Cat izi = (Cat) sess.load(Cat.class, id);\n"
-      "izi.setName(iznizi);\n"
-      "\n"
-      "// might return stale data\n"
-      "sess.find(\"from Cat as cat left outer join cat.kittens kitten\");\n"
-      "\n"
-      "// change to izi is not flushed!\n"
-      "...\n"
-      "tx.commit(); // flush occurs\n"
-      "sess.close();]]>"
-msgstr "Es absolutamente inc&#x00f3;modo dalvar, borrar, o reunir objetos individuales, especialmente si tratas con un grafo de objetos asociados. Un caso com&#x00fa;n es una relaci&#x00f3;n padre/hijo. Considera el siguiente ejemplo:"
+"<![CDATA[sess = sf.openSession();\n"
+"Transaction tx = sess.beginTransaction();\n"
+"sess.setFlushMode(FlushMode.COMMIT); // allow queries to return stale state\n"
+"\n"
+"Cat izi = (Cat) sess.load(Cat.class, id);\n"
+"izi.setName(iznizi);\n"
+"\n"
+"// might return stale data\n"
+"sess.find(\"from Cat as cat left outer join cat.kittens kitten\");\n"
+"\n"
+"// change to izi is not flushed!\n"
+"...\n"
+"tx.commit(); // flush occurs\n"
+"sess.close();]]>"
+msgstr ""
 
-#: index.docbook:875
-msgid "During flush, an exception might occur (e.g. if a DML operation violates a constraint). Since handling exceptions involves some understanding of Hibernate's transactional behavior, we discuss it in <xref linkend=\"transactions\"/>."
-msgstr "Si los hijos en una relaci&#x00f3;n padre/hijo pudieran ser tipificados en valor (por ejemplo, una colecci&#x00f3;n de direcciones o cadenas), sus ciclos de vida depender&#x00ed;an del padre y se requerir&#x00ed;a ninguna otra acci&#x00f3;n para el tratamiento en \"cascada\" de cambios de estado. Cuando el padre es salvado, los objetos hijo tipificados en valor son salvados tambi&#x00e9;n, cuando se borra el padre, se borran los hijos, etc. Esto funciona incluso para operaciones como el retiro de un hijo de la colecci&#x00f3;n. Hibernate detectar&#x00e1; esto y, ya que los objetos tipificados en valor no pueden tener referencias compartidas, borrar&#x00e1; el hijo de la base de datos."
+#. Tag: para
+#: session_api.xml:875
+#, no-c-format
+msgid ""
+"During flush, an exception might occur (e.g. if a DML operation violates a "
+"constraint). Since handling exceptions involves some understanding of "
+"Hibernate's transactional behavior, we discuss it in <xref linkend="
+"\"transactions\"/>."
+msgstr ""
+"Durante la limpieza, puede ocurrir una excepción (por ejemplo, si una "
+"operación DML violase una restricción). Ya que el manejo de excepciones "
+"implica alguna comprensión del comportamiento transaccional de Hibernate, lo "
+"discutimos en <xref linkend=\"transactions\"/>."
 
-#: index.docbook:884
+#. Tag: title
+#: session_api.xml:884
+#, no-c-format
 msgid "Transitive persistence"
-msgstr "Ahora considera el mismo escenario con los objetos padre e hijos siendo entidades, no tipos de valor (por ejemplo, categor&#x00ed;as e &#x00ed;tems, o gatos padre e hijos). Las entidades tienen su propio ciclo de vida, soportan referencias compartidas (de modo que quitar una entidad de una colecci&#x00f3;n no significa que sea borrada), y no hay por defecto ning&#x00fa;n tratamiento en \"cascada\" de estado de una entidad a otras entidades asociadas. Hibernate no implementa <emphasis>persistencia por alcance</emphasis>."
+msgstr "Persistencia transitiva"
 
-#: index.docbook:886
-msgid "It is quite cumbersome to save, delete, or reattach individual objects, especially if you deal with a graph of associated objects. A common case is a parent/child relationship. Consider the following example:"
-msgstr "Para cada operaci&#x00f3;n b&#x00e1;sica de la sesi&#x00f3;n de Hibernate - incluyendo <literal>persist(), merge(), saveOrUpdate(), delete(), lock(), refresh(), evict(), replicate()</literal> - hay un estilo de cascada correspondiente. Respectivamente, los estilos de cascada se llaman <literal>create, merge, save-update, delete, lock, refresh, evict, replicate</literal>. Si quieres que una operaci&#x00f3;n sea tratada en cascada a lo largo de una asociaci&#x00f3;n, debes indicar eso en el documento de mapeo. Por ejemplo:"
+#. Tag: para
+#: session_api.xml:886
+#, no-c-format
+msgid ""
+"It is quite cumbersome to save, delete, or reattach individual objects, "
+"especially if you deal with a graph of associated objects. A common case is "
+"a parent/child relationship. Consider the following example:"
+msgstr ""
+"Es absolutamente incómodo dalvar, borrar, o reunir objetos individuales, "
+"especialmente si tratas con un grafo de objetos asociados. Un caso común es "
+"una relación padre/hijo. Considera el siguiente ejemplo:"
 
-#: index.docbook:892
-msgid "If the children in a parent/child relationship would be value typed (e.g. a collection of addresses or strings), their life cycle would depend on the parent and no further action would be required for convenient \"cascading\" of state changes. When the parent is saved, the value-typed child objects are saved as well, when the parent is deleted, the children will be deleted, etc. This even works for operations such as the removal of a child from the collection; Hibernate will detect this and, since value-typed objects can't have shared references, delete the child from the database."
-msgstr "<![CDATA[<one-to-one name=\"person\" cascade=\"persist\"/>]]>"
+#. Tag: para
+#: session_api.xml:892
+#, no-c-format
+msgid ""
+"If the children in a parent/child relationship would be value typed (e.g. a "
+"collection of addresses or strings), their life cycle would depend on the "
+"parent and no further action would be required for convenient \"cascading\" "
+"of state changes. When the parent is saved, the value-typed child objects "
+"are saved as well, when the parent is deleted, the children will be deleted, "
+"etc. This even works for operations such as the removal of a child from the "
+"collection; Hibernate will detect this and, since value-typed objects can't "
+"have shared references, delete the child from the database."
+msgstr ""
+"Si los hijos en una relación padre/hijo pudieran ser tipificados en valor "
+"(por ejemplo, una colección de direcciones o cadenas), sus ciclos de vida "
+"dependerían del padre y se requeriría ninguna otra acción para el "
+"tratamiento en \"cascada\" de cambios de estado. Cuando el padre es salvado, "
+"los objetos hijo tipificados en valor son salvados también, cuando se borra "
+"el padre, se borran los hijos, etc. Esto funciona incluso para operaciones "
+"como el retiro de un hijo de la colección. Hibernate detectará esto y, ya "
+"que los objetos tipificados en valor no pueden tener referencias "
+"compartidas, borrará el hijo de la base de datos."
 
-#: index.docbook:903
-msgid "Now consider the same scenario with parent and child objects being entities, not value-types (e.g. categories and items, or parent and child cats). Entities have their own life cycle, support shared references (so removing an entity from the collection does not mean it can be deleted), and there is by default no cascading of state from one entity to any other associated entities. Hibernate does not implement <emphasis>persistence by reachability</emphasis> by default."
-msgstr "Los estilos de cascada pueden combinarse:"
+#. Tag: para
+#: session_api.xml:903
+#, no-c-format
+msgid ""
+"Now consider the same scenario with parent and child objects being entities, "
+"not value-types (e.g. categories and items, or parent and child cats). "
+"Entities have their own life cycle, support shared references (so removing "
+"an entity from the collection does not mean it can be deleted), and there is "
+"by default no cascading of state from one entity to any other associated "
+"entities. Hibernate does not implement <emphasis>persistence by "
+"reachability</emphasis> by default."
+msgstr ""
+"Ahora considera el mismo escenario con los objetos padre e hijos siendo "
+"entidades, no tipos de valor (por ejemplo, categorías e ítems, o gatos padre "
+"e hijos). Las entidades tienen su propio ciclo de vida, soportan referencias "
+"compartidas (de modo que quitar una entidad de una colección no significa "
+"que sea borrada), y no hay por defecto ningún tratamiento en \"cascada\" de "
+"estado de una entidad a otras entidades asociadas. Hibernate no implementa "
+"<emphasis>persistencia por alcance</emphasis>."
 
-#: index.docbook:912
-msgid "For each basic operation of the Hibernate session - including <literal>persist(), merge(), saveOrUpdate(), delete(), lock(), refresh(), evict(), replicate()</literal> - there is a corresponding cascade style. Respectively, the cascade styles are named <literal>create, merge, save-update, delete, lock, refresh, evict, replicate</literal>. If you want an operation to be cascaded along an association, you must indicate that in the mapping document. For example:"
-msgstr "<![CDATA[<one-to-one name=\"person\" cascade=\"persist,delete,lock\"/>]]>"
+#. Tag: para
+#: session_api.xml:912
+#, no-c-format
+msgid ""
+"For each basic operation of the Hibernate session - including "
+"<literal>persist(), merge(), saveOrUpdate(), delete(), lock(), refresh(), "
+"evict(), replicate()</literal> - there is a corresponding cascade style. "
+"Respectively, the cascade styles are named <literal>create, merge, save-"
+"update, delete, lock, refresh, evict, replicate</literal>. If you want an "
+"operation to be cascaded along an association, you must indicate that in the "
+"mapping document. For example:"
+msgstr ""
+"Para cada operación básica de la sesión de Hibernate - incluyendo "
+"<literal>persist(), merge(), saveOrUpdate(), delete(), lock(), refresh(), "
+"evict(), replicate()</literal> - hay un estilo de cascada correspondiente. "
+"Respectivamente, los estilos de cascada se llaman <literal>create, merge, "
+"save-update, delete, lock, refresh, evict, replicate</literal>. Si quieres "
+"que una operación sea tratada en cascada a lo largo de una asociación, debes "
+"indicar eso en el documento de mapeo. Por ejemplo:"
 
-#: index.docbook:921
+#. Tag: programlisting
+#: session_api.xml:921
+#, no-c-format
 msgid "<![CDATA[<one-to-one name=\"person\" cascade=\"persist\"/>]]>"
-msgstr "Puedes incluso usar <literal>cascade=\"all\"</literal> para especificar que <emphasis>todas</emphasis> las operaciones deben ser tratadas en cascada a lo largo de la asociaci&#x00f3;n. El por defecto <literal>cascade=\"none\"</literal> especifica que ninguna operaci&#x00f3;n ser&#x00e1; tratada en cascada."
+msgstr ""
 
-#: index.docbook:923
+#. Tag: para
+#: session_api.xml:923
+#, no-c-format
 msgid "Cascade styles my be combined:"
-msgstr "Un estilo de cascada especial, <literal>delete-orphan</literal>, se aplica s&#x00f3;lo a asociaciones uno-a-muchos, e indica que la operaci&#x00f3;n <literal>delete()</literal> debe aplicarse a cualquier objeto hijo que sea quitado de la asociaci&#x00f3;n."
+msgstr "Los estilos de cascada pueden combinarse:"
 
-#: index.docbook:927
-msgid "<![CDATA[<one-to-one name=\"person\" cascade=\"persist,delete,lock\"/>]]>"
-msgstr "Recomendaciones:"
+#. Tag: programlisting
+#: session_api.xml:927
+#, no-c-format
+msgid ""
+"<![CDATA[<one-to-one name=\"person\" cascade=\"persist,delete,lock\"/>]]>"
+msgstr ""
 
-#: index.docbook:929
-msgid "You may even use <literal>cascade=\"all\"</literal> to specify that <emphasis>all</emphasis> operations should be cascaded along the association. The default <literal>cascade=\"none\"</literal> specifies that no operations are to be cascaded."
-msgstr "Usualmente no tiene sentido habilitar el tratamiento en cascada a una asociaci&#x00f3;n <literal>&lt;many-to-one&gt;</literal> o <literal>&lt;many-to-many&gt;</literal>. El tratamiento en cascada es frecuentemente &#x00fa;til para las asociaciones <literal>&lt;one-to-one&gt;</literal> y <literal>&lt;one-to-many&gt;</literal>. associations."
+#. Tag: para
+#: session_api.xml:929
+#, no-c-format
+msgid ""
+"You may even use <literal>cascade=\"all\"</literal> to specify that "
+"<emphasis>all</emphasis> operations should be cascaded along the "
+"association. The default <literal>cascade=\"none\"</literal> specifies that "
+"no operations are to be cascaded."
+msgstr ""
+"Puedes incluso usar <literal>cascade=\"all\"</literal> para especificar que "
+"<emphasis>todas</emphasis> las operaciones deben ser tratadas en cascada a "
+"lo largo de la asociación. El por defecto <literal>cascade=\"none\"</"
+"literal> especifica que ninguna operación será tratada en cascada."
 
-#: index.docbook:935
-msgid "A special cascade style, <literal>delete-orphan</literal>, applies only to one-to-many associations, and indicates that the <literal>delete()</literal> operation should be applied to any child object that is removed from the association."
-msgstr "Si la esperanza de vida de los objetos hijos est&#x00e1; ligada a la eesperanza de vida del objeto padre, h&#x00e1;zlo un <emphasis>objeto de ciclo de vida</emphasis> especificando <literal>cascade=\"all,delete-orphan\"</literal>."
+#. Tag: para
+#: session_api.xml:935
+#, no-c-format
+msgid ""
+"A special cascade style, <literal>delete-orphan</literal>, applies only to "
+"one-to-many associations, and indicates that the <literal>delete()</literal> "
+"operation should be applied to any child object that is removed from the "
+"association."
+msgstr ""
+"Un estilo de cascada especial, <literal>delete-orphan</literal>, se aplica "
+"sólo a asociaciones uno-a-muchos, e indica que la operación <literal>delete()"
+"</literal> debe aplicarse a cualquier objeto hijo que sea quitado de la "
+"asociación."
 
-#: index.docbook:942
+#. Tag: para
+#: session_api.xml:942
+#, no-c-format
 msgid "Recommendations:"
-msgstr "En otro caso, puede que no necesites tratamiento en cascada en absoluto. Pero si piensas que estar&#x00e1;s trabajando frecuentemente con padre e hijos juntos en la misma transacci&#x00f3;n, y quieres ahorrarte algo de tipeo, considera usar <literal>cascade=\"persist,merge,save-update\"</literal>."
+msgstr "Recomendaciones:"
 
-#: index.docbook:948
-msgid "It doesn't usually make sense to enable cascade on a <literal>&lt;many-to-one&gt;</literal> or <literal>&lt;many-to-many&gt;</literal> association. Cascade is often useful for <literal>&lt;one-to-one&gt;</literal> and <literal>&lt;one-to-many&gt;</literal> associations."
-msgstr "Mapear una asociaci&#x00f3;n (ya sea una asociaci&#x00f3;n monovaluada, o una colecci&#x00f3;n) con <literal>cascade=\"all\"</literal> marca la asociaci&#x00f3;n como una relaci&#x00f3;n del estilo <emphasis>padre/hijo</emphasis> donde save/update/delete en el padre resulta en save/update/delete del hijo o hijos."
+#. Tag: para
+#: session_api.xml:948
+#, no-c-format
+msgid ""
+"It doesn't usually make sense to enable cascade on a <literal>&lt;many-to-"
+"one&gt;</literal> or <literal>&lt;many-to-many&gt;</literal> association. "
+"Cascade is often useful for <literal>&lt;one-to-one&gt;</literal> and "
+"<literal>&lt;one-to-many&gt;</literal> associations."
+msgstr ""
+"Usualmente no tiene sentido habilitar el tratamiento en cascada a una "
+"asociación <literal>&lt;many-to-one&gt;</literal> o <literal>&lt;many-to-"
+"many&gt;</literal>. El tratamiento en cascada es frecuentemente útil para "
+"las asociaciones <literal>&lt;one-to-one&gt;</literal> y <literal>&lt;one-to-"
+"many&gt;</literal>. associations."
 
-#: index.docbook:956
-msgid "If the child object's lifespan is bounded by the lifespan of the parent object, make it a <emphasis>life cycle object</emphasis> by specifying <literal>cascade=\"all,delete-orphan\"</literal>."
-msgstr "Adem&#x00e1;s, una mera referencia a un hijo desde un padre persistente resultar&#x00e1; en un save/update del hijo. Esta met&#x00e1;fora est&#x00e1; incompleta, sin embargo. Un hijo que deje de ser referenciado por su padre <emphasis>no</emphasis> es borrado autom&#x00e1;ticamente, excepto en el caso de una asociaci&#x00f3;n <literal>&lt;one-to-many&gt;</literal> mapeada con <literal>cascade=\"delete-orphan\"</literal>. La sem&#x00e1;ntica precisa de las operaciones en cascada para una relaci&#x00f3;n padre/hijo es:"
+#. Tag: para
+#: session_api.xml:956
+#, no-c-format
+msgid ""
+"If the child object's lifespan is bounded by the lifespan of the parent "
+"object, make it a <emphasis>life cycle object</emphasis> by specifying "
+"<literal>cascade=\"all,delete-orphan\"</literal>."
+msgstr ""
+"Si la esperanza de vida de los objetos hijos está ligada a la eesperanza de "
+"vida del objeto padre, házlo un <emphasis>objeto de ciclo de vida</emphasis> "
+"especificando <literal>cascade=\"all,delete-orphan\"</literal>."
 
-#: index.docbook:963
-msgid "Otherwise, you might not need cascade at all. But if you think that you will often be working with the parent and children together in the same transaction, and you want to save yourself some typing, consider using <literal>cascade=\"persist,merge,save-update\"</literal>."
-msgstr "Si un padre le es pasado a <literal>persist()</literal>, todos los hijos le son pasados a <literal>persist()</literal>"
+#. Tag: para
+#: session_api.xml:963
+#, no-c-format
+msgid ""
+"Otherwise, you might not need cascade at all. But if you think that you will "
+"often be working with the parent and children together in the same "
+"transaction, and you want to save yourself some typing, consider using "
+"<literal>cascade=\"persist,merge,save-update\"</literal>."
+msgstr ""
+"En otro caso, puede que no necesites tratamiento en cascada en absoluto. "
+"Pero si piensas que estarás trabajando frecuentemente con padre e hijos "
+"juntos en la misma transacción, y quieres ahorrarte algo de tipeo, considera "
+"usar <literal>cascade=\"persist,merge,save-update\"</literal>."
 
-#: index.docbook:971
-msgid "Mapping an association (either a single valued association, or a collection) with <literal>cascade=\"all\"</literal> marks the association as a <emphasis>parent/child</emphasis> style relationship where save/update/delete of the parent results in save/update/delete of the child or children."
-msgstr "Si un padre le es pasado a <literal>merge()</literal>, todos los hijos le son pasados a <literal>merge()</literal>"
+#. Tag: para
+#: session_api.xml:971
+#, no-c-format
+msgid ""
+"Mapping an association (either a single valued association, or a collection) "
+"with <literal>cascade=\"all\"</literal> marks the association as a "
+"<emphasis>parent/child</emphasis> style relationship where save/update/"
+"delete of the parent results in save/update/delete of the child or children."
+msgstr ""
+"Mapear una asociación (ya sea una asociación monovaluada, o una colección) "
+"con <literal>cascade=\"all\"</literal> marca la asociación como una relación "
+"del estilo <emphasis>padre/hijo</emphasis> donde save/update/delete en el "
+"padre resulta en save/update/delete del hijo o hijos."
 
-#: index.docbook:977
-msgid "Futhermore, a mere reference to a child from a persistent parent will result in save/update of the child. This metaphor is incomplete, however. A child which becomes unreferenced by its parent is <emphasis>not</emphasis> automatically deleted, except in the case of a <literal>&lt;one-to-many&gt;</literal> association mapped with <literal>cascade=\"delete-orphan\"</literal>. The precise semantics of cascading operations for a parent/child relationship are as follows:"
-msgstr "Si un padre le es pasado a <literal>save()</literal>, <literal>update()</literal> o <literal>saveOrUpdate()</literal>, todos los hijos le son pasados a <literal>saveOrUpdate()</literal>"
+#. Tag: para
+#: session_api.xml:977
+#, no-c-format
+msgid ""
+"Futhermore, a mere reference to a child from a persistent parent will result "
+"in save/update of the child. This metaphor is incomplete, however. A child "
+"which becomes unreferenced by its parent is <emphasis>not</emphasis> "
+"automatically deleted, except in the case of a <literal>&lt;one-to-many&gt;</"
+"literal> association mapped with <literal>cascade=\"delete-orphan\"</"
+"literal>. The precise semantics of cascading operations for a parent/child "
+"relationship are as follows:"
+msgstr ""
+"Además, una mera referencia a un hijo desde un padre persistente resultará "
+"en un save/update del hijo. Esta metáfora está incompleta, sin embargo. Un "
+"hijo que deje de ser referenciado por su padre <emphasis>no</emphasis> es "
+"borrado automáticamente, excepto en el caso de una asociación <literal>&lt;"
+"one-to-many&gt;</literal> mapeada con <literal>cascade=\"delete-orphan\"</"
+"literal>. La semántica precisa de las operaciones en cascada para una "
+"relación padre/hijo es:"
 
-#: index.docbook:988
-msgid "If a parent is passed to <literal>persist()</literal>, all children are passed to <literal>persist()</literal>"
-msgstr "Si un hijo transitorio o separado se vuelve referenciado por un padre persistente, le es pasado a <literal>saveOrUpdate()</literal>"
+#. Tag: para
+#: session_api.xml:988
+#, no-c-format
+msgid ""
+"If a parent is passed to <literal>persist()</literal>, all children are "
+"passed to <literal>persist()</literal>"
+msgstr ""
+"Si un padre le es pasado a <literal>persist()</literal>, todos los hijos le "
+"son pasados a <literal>persist()</literal>"
 
-#: index.docbook:994
-msgid "If a parent is passed to <literal>merge()</literal>, all children are passed to <literal>merge()</literal>"
-msgstr "Si un padre es borrado, todos los hijos le son pasados a <literal>delete()</literal>"
+#. Tag: para
+#: session_api.xml:994
+#, no-c-format
+msgid ""
+"If a parent is passed to <literal>merge()</literal>, all children are passed "
+"to <literal>merge()</literal>"
+msgstr ""
+"Si un padre le es pasado a <literal>merge()</literal>, todos los hijos le "
+"son pasados a <literal>merge()</literal>"
 
-#: index.docbook:1000
-msgid "If a parent is passed to <literal>save()</literal>, <literal>update()</literal> or <literal>saveOrUpdate()</literal>, all children are passed to <literal>saveOrUpdate()</literal>"
-msgstr "Si un hijo deja de ser referenciado por un padre persistente, <emphasis>no ocurre nada especial</emphasis> - la aplicaci&#x00f3;n debe borrar expl&#x00ed;citamente el hijo de ser necesario - a menos que <literal>cascade=\"delete-orphan\"</literal>, en cuyo caso el hijo \"hu&#x00e9;rfano\" es borrado."
+#. Tag: para
+#: session_api.xml:1000
+#, no-c-format
+msgid ""
+"If a parent is passed to <literal>save()</literal>, <literal>update()</"
+"literal> or <literal>saveOrUpdate()</literal>, all children are passed to "
+"<literal>saveOrUpdate()</literal>"
+msgstr ""
+"Si un padre le es pasado a <literal>save()</literal>, <literal>update()</"
+"literal> o <literal>saveOrUpdate()</literal>, todos los hijos le son pasados "
+"a <literal>saveOrUpdate()</literal>"
 
-#: index.docbook:1006
-msgid "If a transient or detached child becomes referenced by a persistent parent, it is passed to <literal>saveOrUpdate()</literal>"
-msgstr "Usando metadatos"
+#. Tag: para
+#: session_api.xml:1006
+#, no-c-format
+msgid ""
+"If a transient or detached child becomes referenced by a persistent parent, "
+"it is passed to <literal>saveOrUpdate()</literal>"
+msgstr ""
+"Si un hijo transitorio o separado se vuelve referenciado por un padre "
+"persistente, le es pasado a <literal>saveOrUpdate()</literal>"
 
-#: index.docbook:1012
-msgid "If a parent is deleted, all children are passed to <literal>delete()</literal>"
-msgstr "Hibernate requiere de un modelo de meta-nivel muy rico de todas las entidades y tipos de valor. De vez en cuando, este modelo es muy &#x00fa;til para la aplicaci&#x00f3;n misma. Por ejemplo, la aplicaci&#x00f3;n podr&#x00ed;a usar los metadatos de Hibernate para implementar un algoritmo \"inteligente\" de copia en profundidad que entienda qu&#x00e9; objetos deben ser copiados (por ejemplo, tipo de valor mutables) y cu&#x00e1;les no (por ejemplo, tipos de valor inmutables y, posiblemente, entidades asociadas)."
+#. Tag: para
+#: session_api.xml:1012
+#, no-c-format
+msgid ""
+"If a parent is deleted, all children are passed to <literal>delete()</"
+"literal>"
+msgstr ""
+"Si un padre es borrado, todos los hijos le son pasados a <literal>delete()</"
+"literal>"
 
-#: index.docbook:1017
-msgid "If a child is dereferenced by a persistent parent, <emphasis>nothing special happens</emphasis> - the application should explicitly delete the child if necessary - unless <literal>cascade=\"delete-orphan\"</literal>, in which case the \"orphaned\" child is deleted."
-msgstr "Hibernate expone los metadatos v&#x00ed;a las interfaces <literal>ClassMetadata</literal> y <literal>CollectionMetadata</literal> y la jerarqu&#x00ed;a <literal>Type</literal>. Las instancias de las interfaces de metadatos pueden obtenerse de <literal>SessionFactory</literal>."
+#. Tag: para
+#: session_api.xml:1017
+#, no-c-format
+msgid ""
+"If a child is dereferenced by a persistent parent, <emphasis>nothing special "
+"happens</emphasis> - the application should explicitly delete the child if "
+"necessary - unless <literal>cascade=\"delete-orphan\"</literal>, in which "
+"case the \"orphaned\" child is deleted."
+msgstr ""
+"Si un hijo deja de ser referenciado por un padre persistente, <emphasis>no "
+"ocurre nada especial</emphasis> - la aplicación debe borrar explícitamente "
+"el hijo de ser necesario - a menos que <literal>cascade=\"delete-orphan\"</"
+"literal>, en cuyo caso el hijo \"huérfano\" es borrado."
 
-#: index.docbook:1026
-msgid "Finally, note that cascading of operations can be applied to an object graph at <emphasis>call time</emphasis> or at <emphasis>flush time</emphasis>. All operations, if enabled, are cascaded to associated entities reachable when the operation is executed. However, <literal>save-upate</literal> and <literal>delete-orphan</literal> are transitive for all associated entities reachable during flush of the <literal>Session</literal>."
+#. Tag: para
+#: session_api.xml:1026
+#, no-c-format
+msgid ""
+"Finally, note that cascading of operations can be applied to an object graph "
+"at <emphasis>call time</emphasis> or at <emphasis>flush time</emphasis>. All "
+"operations, if enabled, are cascaded to associated entities reachable when "
+"the operation is executed. However, <literal>save-upate</literal> and "
+"<literal>delete-orphan</literal> are transitive for all associated entities "
+"reachable during flush of the <literal>Session</literal>."
 msgstr ""
-      "<![CDATA[Cat fritz = ......;\n"
-      "ClassMetadata catMeta = sessionfactory.getClassMetadata(Cat.class);\n"
-      "\n"
-      "Object[] propertyValues = catMeta.getPropertyValues(fritz);\n"
-      "String[] propertyNames = catMeta.getPropertyNames();\n"
-      "Type[] propertyTypes = catMeta.getPropertyTypes();\n"
-      "\n"
-      "// get a Map of all properties which are not collections or associations\n"
-      "Map namedValues = new HashMap();\n"
-      "for ( int i=0; i<propertyNames.length; i++ ) {\n"
-      "    if ( !propertyTypes[i].isEntityType() && !propertyTypes[i].isCollectionType() ) {\n"
-      "        namedValues.put( propertyNames[i], propertyValues[i] );\n"
-      "    }\n"
-      "}]]>"
+"UNTRANSLATED!!! Finally, note that cascading of operations can be applied to "
+"an object graph at <emphasis>call time</emphasis> or at <emphasis>flush "
+"time</emphasis>. All operations, if enabled, are cascaded to associated "
+"entities reachable when the operation is executed. However, <literal>save-"
+"upate</literal> and <literal>delete-orphan</literal> are transitive for all "
+"associated entities reachable during flush of the <literal>Session</literal>."
 
-#: index.docbook:1038
+#. Tag: title
+#: session_api.xml:1038
+#, no-c-format
 msgid "Using metadata"
-msgstr ""
+msgstr "Usando metadatos"
 
-#: index.docbook:1040
-msgid "Hibernate requires a very rich meta-level model of all entity and value types. From time to time, this model is very useful to the application itself. For example, the application might use Hibernate's metadata to implement a \"smart\" deep-copy algorithm that understands which objects should be copied (eg. mutable value types) and which should not (eg. immutable value types and, possibly, associated entities)."
+#. Tag: para
+#: session_api.xml:1040
+#, no-c-format
+msgid ""
+"Hibernate requires a very rich meta-level model of all entity and value "
+"types. From time to time, this model is very useful to the application "
+"itself. For example, the application might use Hibernate's metadata to "
+"implement a \"smart\" deep-copy algorithm that understands which objects "
+"should be copied (eg. mutable value types) and which should not (eg. "
+"immutable value types and, possibly, associated entities)."
 msgstr ""
+"Hibernate requiere de un modelo de meta-nivel muy rico de todas las "
+"entidades y tipos de valor. De vez en cuando, este modelo es muy útil para "
+"la aplicación misma. Por ejemplo, la aplicación podría usar los metadatos de "
+"Hibernate para implementar un algoritmo \"inteligente\" de copia en "
+"profundidad que entienda qué objetos deben ser copiados (por ejemplo, tipo "
+"de valor mutables) y cuáles no (por ejemplo, tipos de valor inmutables y, "
+"posiblemente, entidades asociadas)."
 
-#: index.docbook:1047
-msgid "Hibernate exposes metadata via the <literal>ClassMetadata</literal> and <literal>CollectionMetadata</literal> interfaces and the <literal>Type</literal> hierarchy. Instances of the metadata interfaces may be obtained from the <literal>SessionFactory</literal>."
+#. Tag: para
+#: session_api.xml:1047
+#, no-c-format
+msgid ""
+"Hibernate exposes metadata via the <literal>ClassMetadata</literal> and "
+"<literal>CollectionMetadata</literal> interfaces and the <literal>Type</"
+"literal> hierarchy. Instances of the metadata interfaces may be obtained "
+"from the <literal>SessionFactory</literal>."
 msgstr ""
+"Hibernate expone los metadatos vía las interfaces <literal>ClassMetadata</"
+"literal> y <literal>CollectionMetadata</literal> y la jerarquía "
+"<literal>Type</literal>. Las instancias de las interfaces de metadatos "
+"pueden obtenerse de <literal>SessionFactory</literal>."
 
-#: index.docbook:1054
+#. Tag: programlisting
+#: session_api.xml:1054
+#, no-c-format
 msgid ""
-      "<![CDATA[Cat fritz = ......;\n"
-      "ClassMetadata catMeta = sessionfactory.getClassMetadata(Cat.class);\n"
-      "\n"
-      "Object[] propertyValues = catMeta.getPropertyValues(fritz);\n"
-      "String[] propertyNames = catMeta.getPropertyNames();\n"
-      "Type[] propertyTypes = catMeta.getPropertyTypes();\n"
-      "\n"
-      "// get a Map of all properties which are not collections or associations\n"
-      "Map namedValues = new HashMap();\n"
-      "for ( int i=0; i<propertyNames.length; i++ ) {\n"
-      "    if ( !propertyTypes[i].isEntityType() && !propertyTypes[i].isCollectionType() ) {\n"
-      "        namedValues.put( propertyNames[i], propertyValues[i] );\n"
-      "    }\n"
-      "}]]>"
+"<![CDATA[Cat fritz = ......;\n"
+"ClassMetadata catMeta = sessionfactory.getClassMetadata(Cat.class);\n"
+"\n"
+"Object[] propertyValues = catMeta.getPropertyValues(fritz);\n"
+"String[] propertyNames = catMeta.getPropertyNames();\n"
+"Type[] propertyTypes = catMeta.getPropertyTypes();\n"
+"\n"
+"// get a Map of all properties which are not collections or associations\n"
+"Map namedValues = new HashMap();\n"
+"for ( int i=0; i<propertyNames.length; i++ ) {\n"
+"    if ( !propertyTypes[i].isEntityType() && !propertyTypes[i]."
+"isCollectionType() ) {\n"
+"        namedValues.put( propertyNames[i], propertyValues[i] );\n"
+"    }\n"
+"}]]>"
 msgstr ""
 
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
+#~ msgid "UPDATE"
+#~ msgstr "UPDATE"
 
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
+#~ msgid "DELETE"
+#~ msgstr "DELETE"
 
+#~ msgid "state management"
+#~ msgstr "gestión de estado"
+
+#~ msgid "statements"
+#~ msgstr "sentencias"
+
+#~ msgid "Connection"
+#~ msgstr "Connection"
+
+#~ msgid "session.connection()"
+#~ msgstr "session.connection()"

Modified: core/trunk/documentation/manual/translations/es-ES/content/toolset_guide.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/toolset_guide.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/toolset_guide.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,725 +1,1180 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:5
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: toolset_guide.xml:5
+#, no-c-format
 msgid "Toolset Guide"
-msgstr "Gu&#x00ed;a del Conjunto de Herramientas"
+msgstr "Guía del Conjunto de Herramientas"
 
-#: index.docbook:7
-msgid "Roundtrip engineering with Hibernate is possible using a set of Eclipse plugins, commandline tools, as well as Ant tasks."
-msgstr "La ingenier&#x00ed;a de ida y vuelta con Hibernate es posible usando un conjunto de plugins de Eclipse, herramientas de l&#x00ed;nea de comandos, as&#x00ed; como tareas de Ant."
+#. Tag: para
+#: toolset_guide.xml:7
+#, no-c-format
+msgid ""
+"Roundtrip engineering with Hibernate is possible using a set of Eclipse "
+"plugins, commandline tools, as well as Ant tasks."
+msgstr ""
+"La ingeniería de ida y vuelta con Hibernate es posible usando un conjunto de "
+"plugins de Eclipse, herramientas de línea de comandos, así como tareas de "
+"Ant."
 
-#: index.docbook:12
-msgid "The <emphasis>Hibernate Tools</emphasis> currently include plugins for the Eclipse IDE as well as Ant tasks for reverse engineering of existing databases:"
-msgstr "Las <emphasis>Herramientas de Hibernate</emphasis> actualmente incluyen plugins para la IDE de Eclipse as&#x00ed; como tareas de Ant para la ingenier&#x00ed;a inversa de bases de datos existentes:"
+#. Tag: para
+#: toolset_guide.xml:12
+#, no-c-format
+msgid ""
+"The <emphasis>Hibernate Tools</emphasis> currently include plugins for the "
+"Eclipse IDE as well as Ant tasks for reverse engineering of existing "
+"databases:"
+msgstr ""
+"Las <emphasis>Herramientas de Hibernate</emphasis> actualmente incluyen "
+"plugins para la IDE de Eclipse así como tareas de Ant para la ingeniería "
+"inversa de bases de datos existentes:"
 
-#: index.docbook:18
-msgid "<emphasis>Mapping Editor:</emphasis> An editor for Hibernate XML mapping files, supporting auto-completion and syntax highlighting. It also supports semantic auto-completion for class names and property/field names, making it much more versatile than a normal XML editor."
-msgstr "<emphasis>Editor de Mapeo:</emphasis> Un editor de ficheros de mapeo XML, que soporta autocompleci&#x00f3;n y resaltado de sint&#x00e1;xis. Soporta tambi&#x00e9;n autocompleci&#x00f3;n sem&#x00e1;ntica de nombres de clases y nombres de campos/propiedades, haci&#x00e9;ndolo mucho m&#x00e1;s vers&#x00e1;til que un editor de XML normal."
+#. Tag: para
+#: toolset_guide.xml:18
+#, no-c-format
+msgid ""
+"<emphasis>Mapping Editor:</emphasis> An editor for Hibernate XML mapping "
+"files, supporting auto-completion and syntax highlighting. It also supports "
+"semantic auto-completion for class names and property/field names, making it "
+"much more versatile than a normal XML editor."
+msgstr ""
+"<emphasis>Editor de Mapeo:</emphasis> Un editor de ficheros de mapeo XML, "
+"que soporta autocompleción y resaltado de sintáxis. Soporta también "
+"autocompleción semántica de nombres de clases y nombres de campos/"
+"propiedades, haciéndolo mucho más versátil que un editor de XML normal."
 
-#: index.docbook:23
-msgid "<emphasis>Console:</emphasis> The console is a new view in Eclipse. In addition to a tree overview of your console configurations, you also get an interactive view of your persistent classes and their relationships. The console allows you to execute HQL queries against your database and browse the result directly in Eclipse."
-msgstr "<emphasis>Consola:</emphasis> La consola es una nueva vista en Eclipse. Adem&#x00e1;s de la vista de &#x00e1;rbol de tus configuraciones de consola, tienes tambi&#x00e9;n una vista interactiva de tus clases persistentes y sus relaciones. La console te permite ejecutar consultas HQL contra tu base de datos y navegar el resultado directamente en Eclipse."
+#. Tag: para
+#: toolset_guide.xml:23
+#, no-c-format
+msgid ""
+"<emphasis>Console:</emphasis> The console is a new view in Eclipse. In "
+"addition to a tree overview of your console configurations, you also get an "
+"interactive view of your persistent classes and their relationships. The "
+"console allows you to execute HQL queries against your database and browse "
+"the result directly in Eclipse."
+msgstr ""
+"<emphasis>Consola:</emphasis> La consola es una nueva vista en Eclipse. "
+"Además de la vista de árbol de tus configuraciones de consola, tienes "
+"también una vista interactiva de tus clases persistentes y sus relaciones. "
+"La console te permite ejecutar consultas HQL contra tu base de datos y "
+"navegar el resultado directamente en Eclipse."
 
-#: index.docbook:30
-msgid "<emphasis>Development Wizards:</emphasis> Several wizards are provided with the Hibernate Eclipse tools; you can use a wizard to quickly generate Hibernate configuration (cfg.xml) files, or you may even completely reverse engineer an existing database schema into POJO source files and Hibernate mapping files. The reverse engineering wizard supports customizable templates."
-msgstr "<emphasis>Asistentes de Desarrollo:</emphasis> Se proveen muchos asistentes con las herramientas de Eclipse. Puedes usar un asistente para generar r&#x00e1;pidamente ficheros de configuraci&#x00f3;n de Hibernate (cfg.xml), o incluso puedes haceruna ingenier&#x00ed;a inversa completa de un esquema de base de datos existente en ficheros de c&#x00f3;digo de POJO y ficheros de mapeo de Hibernate. El asistente de ingenier&#x00ed;a inversa soporta plantillas personalizables."
+#. Tag: para
+#: toolset_guide.xml:30
+#, no-c-format
+msgid ""
+"<emphasis>Development Wizards:</emphasis> Several wizards are provided with "
+"the Hibernate Eclipse tools; you can use a wizard to quickly generate "
+"Hibernate configuration (cfg.xml) files, or you may even completely reverse "
+"engineer an existing database schema into POJO source files and Hibernate "
+"mapping files. The reverse engineering wizard supports customizable "
+"templates."
+msgstr ""
+"<emphasis>Asistentes de Desarrollo:</emphasis> Se proveen muchos asistentes "
+"con las herramientas de Eclipse. Puedes usar un asistente para generar "
+"rápidamente ficheros de configuración de Hibernate (cfg.xml), o incluso "
+"puedes haceruna ingeniería inversa completa de un esquema de base de datos "
+"existente en ficheros de código de POJO y ficheros de mapeo de Hibernate. El "
+"asistente de ingeniería inversa soporta plantillas personalizables."
 
-#: index.docbook:38
+#. Tag: emphasis
+#: toolset_guide.xml:38
+#, no-c-format
 msgid "Ant Tasks:"
 msgstr "Tareas de Ant:"
 
-#: index.docbook:43
-msgid "Please refer to the <emphasis>Hibernate Tools</emphasis> package and it's documentation for more information."
-msgstr "Por favor refi&#x00e9;rete al paquete <emphasis>Herramientas de Hibernate</emphasis> y su documentaci&#x00f3;n para m&#x00e1;s informaci&#x00f3;n."
+#. Tag: para
+#: toolset_guide.xml:43
+#, no-c-format
+msgid ""
+"Please refer to the <emphasis>Hibernate Tools</emphasis> package and it's "
+"documentation for more information."
+msgstr ""
+"Por favor refiérete al paquete <emphasis>Herramientas de Hibernate</"
+"emphasis> y su documentación para más información."
 
-#: index.docbook:48
-msgid "However, the Hibernate main package comes bundled with an integrated tool (it can even be used from \"inside\" Hibernate on-the-fly): <emphasis>SchemaExport</emphasis> aka <literal>hbm2ddl</literal>."
-msgstr "Sin embargo, el paquete principal de Hibernate viene incluyendo una herramienta integrada (puede ser usada incluso \"dentro\" de Hibernate on-the-fly): <emphasis>SchemaExport</emphasis> tambi&#x00e9;n conocido como <literal>hbm2ddl</literal>."
+#. Tag: para
+#: toolset_guide.xml:48
+#, no-c-format
+msgid ""
+"However, the Hibernate main package comes bundled with an integrated tool "
+"(it can even be used from \"inside\" Hibernate on-the-fly): "
+"<emphasis>SchemaExport</emphasis> aka <literal>hbm2ddl</literal>."
+msgstr ""
+"Sin embargo, el paquete principal de Hibernate viene incluyendo una "
+"herramienta integrada (puede ser usada incluso \"dentro\" de Hibernate on-"
+"the-fly): <emphasis>SchemaExport</emphasis> también conocido como "
+"<literal>hbm2ddl</literal>."
 
-#: index.docbook:55
+#. Tag: title
+#: toolset_guide.xml:55
+#, no-c-format
 msgid "Automatic schema generation"
-msgstr "Generaci&#x00f3;n autom&#x00e1;tica de esquemas"
+msgstr "Generación automática de esquemas"
 
-#: index.docbook:57
-msgid "DDL may be generated from your mapping files by a Hibernate utility. The generated schema includes referential integrity constraints (primary and foreign keys) for entity and collection tables. Tables and sequences are also created for mapped identifier generators."
-msgstr "Una utilidad de Hibernate puede generar DDL desde tus ficheros de mapeo. El esquema generado incluye restricciones de integridad referencial (claves primarias y for&#x00e1;neas) para las tablas de entidades y colecciones. Las tablas y secuencias tambi&#x00e9;n son creadas para los generadores de identificadores mapeados."
+#. Tag: para
+#: toolset_guide.xml:57
+#, no-c-format
+msgid ""
+"DDL may be generated from your mapping files by a Hibernate utility. The "
+"generated schema includes referential integrity constraints (primary and "
+"foreign keys) for entity and collection tables. Tables and sequences are "
+"also created for mapped identifier generators."
+msgstr ""
+"Una utilidad de Hibernate puede generar DDL desde tus ficheros de mapeo. El "
+"esquema generado incluye restricciones de integridad referencial (claves "
+"primarias y foráneas) para las tablas de entidades y colecciones. Las tablas "
+"y secuencias también son creadas para los generadores de identificadores "
+"mapeados."
 
-#: index.docbook:64
-msgid "You <emphasis>must</emphasis> specify a SQL <literal>Dialect</literal> via the <literal>hibernate.dialect</literal> property when using this tool, as DDL is highly vendor specific."
-msgstr "<emphasis>Debes</emphasis> especificar un <literal>Dialecto</literal> SQL v&#x00ed;a la propiedad <literal>hibernate.dialect</literal> al usar esta herramienta, ya que el DDL es altamente espec&#x00ed;fico del vendedor."
+#. Tag: para
+#: toolset_guide.xml:64
+#, no-c-format
+msgid ""
+"You <emphasis>must</emphasis> specify a SQL <literal>Dialect</literal> via "
+"the <literal>hibernate.dialect</literal> property when using this tool, as "
+"DDL is highly vendor specific."
+msgstr ""
+"<emphasis>Debes</emphasis> especificar un <literal>Dialecto</literal> SQL "
+"vía la propiedad <literal>hibernate.dialect</literal> al usar esta "
+"herramienta, ya que el DDL es altamente específico del vendedor."
 
-#: index.docbook:70
+#. Tag: para
+#: toolset_guide.xml:70
+#, no-c-format
 msgid "First, customize your mapping files to improve the generated schema."
 msgstr "First, customize your mapping files to improve the generated schema."
 
-#: index.docbook:75
+#. Tag: title
+#: toolset_guide.xml:75
+#, no-c-format
 msgid "Customizing the schema"
 msgstr "Personalizando el esquema"
 
-#: index.docbook:77
-msgid "Many Hibernate mapping elements define optional attributes named <literal>length</literal>, <literal>precision</literal> and <literal>scale</literal>. You may set the length, precision and scale of a column with this attribute."
-msgstr "Muchos elementos de mapeo de Hibernate definen un atributo opcional llamado <literal>length</literal>. Con este atributo puedes establecer el tama&#x00f1;o de una columna. (O, para tipos de datos num&#x00e9;ricos/decimales, la precisi&#x00f3;n.)"
+#. Tag: para
+#: toolset_guide.xml:77
+#, no-c-format
+msgid ""
+"Many Hibernate mapping elements define optional attributes named "
+"<literal>length</literal>, <literal>precision</literal> and <literal>scale</"
+"literal>. You may set the length, precision and scale of a column with this "
+"attribute."
+msgstr ""
+"Muchos elementos de mapeo de Hibernate definen un atributo opcional llamado "
+"<literal>length</literal>. Con este atributo puedes establecer el tamaño de "
+"una columna. (O, para tipos de datos numéricos/decimales, la precisión.)"
 
-#: index.docbook:84
+#. Tag: programlisting
+#: toolset_guide.xml:84
+#, no-c-format
 msgid "<![CDATA[<property name=\"zip\" length=\"5\"/>]]>"
-msgstr "Algunas etiquetas tambi&#x00e9;n aceptan un atributo <literal>not-null</literal> (para generar una restricci&#x00f3;n <literal>NOT NULL</literal> en columnas de tablas) y y un atributo <literal>unique</literal> (para generar restricciones <literal>UNIQUE</literal> en columnas de tablas)."
+msgstr ""
 
-#: index.docbook:85
+#. Tag: programlisting
+#: toolset_guide.xml:85
+#, no-c-format
 msgid "<![CDATA[<property name=\"balance\" precision=\"12\" scale=\"2\"/>]]>"
-msgstr "Algunas etiquetas aceptan un atributo <literal>index</literal> para especificar el nombre de un &#x00ed;ndice para esa columna. Se puede usar un atributo <literal>unique-key</literal> para agrupar columnas en una restricci&#x00f3;n de clave de una sola unidad. Actualmente, el valor especificado del atributo <literal>unique-key</literal> <emphasis>no</emphasis> es usado para nombrar la restricci&#x00f3;n, s&#x00f3;lo para agrupar las columnas en el fichero de mapeo."
+msgstr ""
 
-#: index.docbook:87
-msgid "Some tags also accept a <literal>not-null</literal> attribute (for generating a <literal>NOT NULL</literal> constraint on table columns) and a <literal>unique</literal> attribute (for generating <literal>UNIQUE</literal> constraint on table columns)."
-msgstr "Ejemplos:"
+#. Tag: para
+#: toolset_guide.xml:87
+#, no-c-format
+msgid ""
+"Some tags also accept a <literal>not-null</literal> attribute (for "
+"generating a <literal>NOT NULL</literal> constraint on table columns) and a "
+"<literal>unique</literal> attribute (for generating <literal>UNIQUE</"
+"literal> constraint on table columns)."
+msgstr ""
+"Algunas etiquetas también aceptan un atributo <literal>not-null</literal> "
+"(para generar una restricción <literal>NOT NULL</literal> en columnas de "
+"tablas) y y un atributo <literal>unique</literal> (para generar "
+"restricciones <literal>UNIQUE</literal> en columnas de tablas)."
 
-#: index.docbook:93
-msgid "<![CDATA[<many-to-one name=\"bar\" column=\"barId\" not-null=\"true\"/>]]>"
+#. Tag: programlisting
+#: toolset_guide.xml:93
+#, no-c-format
+msgid ""
+"<![CDATA[<many-to-one name=\"bar\" column=\"barId\" not-null=\"true\"/>]]>"
 msgstr ""
-      "<![CDATA[<property name=\"foo\" type=\"string\" length=\"64\" not-null=\"true\"/>\n"
-      "\n"
-      "<many-to-one name=\"bar\" foreign-key=\"fk_foo_bar\" not-null=\"true\"/>\n"
-      "\n"
-      "<element column=\"serial_number\" type=\"long\" not-null=\"true\" unique=\"true\"/>]]>"
 
-#: index.docbook:95
-msgid "<![CDATA[<element column=\"serialNumber\" type=\"long\" not-null=\"true\" unique=\"true\"/>]]>"
-msgstr "Alternativamente, estos elementos aceptan tamb&#x00ed;en un elemento hijo <literal>&lt;column&gt;</literal>. Esto es particularmente &#x00fa;til para tipos multicolumnas:"
+#. Tag: programlisting
+#: toolset_guide.xml:95
+#, no-c-format
+msgid ""
+"<![CDATA[<element column=\"serialNumber\" type=\"long\" not-null=\"true\" "
+"unique=\"true\"/>]]>"
+msgstr ""
 
-#: index.docbook:97
-msgid "A <literal>unique-key</literal> attribute may be used to group columns in a single unique key constraint. Currently, the specified value of the <literal>unique-key</literal> attribute is <emphasis>not</emphasis> used to name the constraint in the generated DDL, only to group the columns in the mapping file."
+#. Tag: para
+#: toolset_guide.xml:97
+#, no-c-format
+msgid ""
+"A <literal>unique-key</literal> attribute may be used to group columns in a "
+"single unique key constraint. Currently, the specified value of the "
+"<literal>unique-key</literal> attribute is <emphasis>not</emphasis> used to "
+"name the constraint in the generated DDL, only to group the columns in the "
+"mapping file."
 msgstr ""
-      "<![CDATA[<property name=\"foo\" type=\"string\">\n"
-      "    <column name=\"foo\" length=\"64\" not-null=\"true\" sql-type=\"text\"/>\n"
-      "</property>]]>"
+"A <literal>unique-key</literal> attribute may be used to group columns in a "
+"single unique key constraint. Currently, the specified value of the "
+"<literal>unique-key</literal> attribute is <emphasis>not</emphasis> used to "
+"name the constraint in the generated DDL, only to group the columns in the "
+"mapping file."
 
-#: index.docbook:105
+#. Tag: programlisting
+#: toolset_guide.xml:105
+#, no-c-format
 msgid ""
-      "<![CDATA[<many-to-one name=\"org\" column=\"orgId\" unique-key=\"OrgEmployeeId\"/>\n"
-      "<property name=\"employeeId\" unique-key=\"OrgEmployee\"/>]]>"
+"<![CDATA[<many-to-one name=\"org\" column=\"orgId\" unique-key="
+"\"OrgEmployeeId\"/>\n"
+"<property name=\"employeeId\" unique-key=\"OrgEmployee\"/>]]>"
 msgstr ""
-      "<![CDATA[<property name=\"bar\" type=\"my.customtypes.MultiColumnType\"/>\n"
-      "    <column name=\"fee\" not-null=\"true\" index=\"bar_idx\"/>\n"
-      "    <column name=\"fi\" not-null=\"true\" index=\"bar_idx\"/>\n"
-      "    <column name=\"fo\" not-null=\"true\" index=\"bar_idx\"/>\n"
-      "</property>]]>"
 
-#: index.docbook:107
-msgid "An <literal>index</literal> attribute specifies the name of an index that will be created using the mapped column or columns. Multiple columns may be grouped into the same index, simply by specifying the same index name."
-msgstr "El atributo <literal>sql-type</literal> permite al usuario sobrescribir el mapeo por defecto de tipo Hibernate a tipo de datos SQL."
+#. Tag: para
+#: toolset_guide.xml:107
+#, no-c-format
+msgid ""
+"An <literal>index</literal> attribute specifies the name of an index that "
+"will be created using the mapped column or columns. Multiple columns may be "
+"grouped into the same index, simply by specifying the same index name."
+msgstr ""
+"An <literal>index</literal> attribute specifies the name of an index that "
+"will be created using the mapped column or columns. Multiple columns may be "
+"grouped into the same index, simply by specifying the same index name."
 
-#: index.docbook:113
+#. Tag: programlisting
+#: toolset_guide.xml:113
+#, no-c-format
 msgid ""
-      "<![CDATA[<property name=\"lastName\" index=\"CustName\"/>\n"
-      "<property name=\"firstName\" index=\"CustName\"/>]]>"
-msgstr "El atributo <literal>check</literal> te permite especificar una comprobaci&#x00f3;n de restricci&#x00f3;n."
+"<![CDATA[<property name=\"lastName\" index=\"CustName\"/>\n"
+"<property name=\"firstName\" index=\"CustName\"/>]]>"
+msgstr ""
 
-#: index.docbook:115
-msgid "A <literal>foreign-key</literal> attribute may be used to override the name of any generated foreign key constraint."
+#. Tag: para
+#: toolset_guide.xml:115
+#, no-c-format
+msgid ""
+"A <literal>foreign-key</literal> attribute may be used to override the name "
+"of any generated foreign key constraint."
 msgstr ""
-      "<![CDATA[<property name=\"foo\" type=\"integer\">\n"
-      "    <column name=\"foo\" check=\"foo > 10\"/>\n"
-      "</property>]]>"
+"A <literal>foreign-key</literal> attribute may be used to override the name "
+"of any generated foreign key constraint."
 
-#: index.docbook:120
-msgid "<![CDATA[<many-to-one name=\"bar\" column=\"barId\" foreign-key=\"FKFooBar\"/>]]>"
+#. Tag: programlisting
+#: toolset_guide.xml:120
+#, no-c-format
+msgid ""
+"<![CDATA[<many-to-one name=\"bar\" column=\"barId\" foreign-key=\"FKFooBar\"/"
+">]]>"
 msgstr ""
-      "<![CDATA[<class name=\"Foo\" table=\"foos\" check=\"bar < 100.0\">\n"
-      "    ...\n"
-      "    <property name=\"bar\" type=\"float\"/>\n"
-      "</class>]]>"
 
-#: index.docbook:122
-msgid "Many mapping elements also accept a child <literal>&lt;column&gt;</literal> element. This is particularly useful for mapping multi-column types:"
-msgstr "Resumen"
+#. Tag: para
+#: toolset_guide.xml:122
+#, no-c-format
+msgid ""
+"Many mapping elements also accept a child <literal>&lt;column&gt;</literal> "
+"element. This is particularly useful for mapping multi-column types:"
+msgstr ""
+"Many mapping elements also accept a child <literal>&lt;column&gt;</literal> "
+"element. This is particularly useful for mapping multi-column types:"
 
-#: index.docbook:127
+#. Tag: programlisting
+#: toolset_guide.xml:127
+#, no-c-format
 msgid ""
-      "<![CDATA[<property name=\"name\" type=\"my.customtypes.Name\"/>\n"
-      "    <column name=\"last\" not-null=\"true\" index=\"bar_idx\" length=\"30\"/>\n"
-      "    <column name=\"first\" not-null=\"true\" index=\"bar_idx\" length=\"20\"/>\n"
-      "    <column name=\"initial\"/>\n"
-      "</property>]]>"
-msgstr "Atributo"
+"<![CDATA[<property name=\"name\" type=\"my.customtypes.Name\"/>\n"
+"    <column name=\"last\" not-null=\"true\" index=\"bar_idx\" length=\"30\"/"
+">\n"
+"    <column name=\"first\" not-null=\"true\" index=\"bar_idx\" length=\"20\"/"
+">\n"
+"    <column name=\"initial\"/>\n"
+"</property>]]>"
+msgstr ""
 
-#: index.docbook:129
-msgid "The <literal>default</literal> attribute lets you specify a default value for a column (you should assign the same value to the mapped property before saving a new instance of the mapped class)."
-msgstr "Valores"
+#. Tag: para
+#: toolset_guide.xml:129
+#, no-c-format
+msgid ""
+"The <literal>default</literal> attribute lets you specify a default value "
+"for a column (you should assign the same value to the mapped property before "
+"saving a new instance of the mapped class)."
+msgstr ""
+"The <literal>default</literal> attribute lets you specify a default value "
+"for a column (you should assign the same value to the mapped property before "
+"saving a new instance of the mapped class)."
 
-#: index.docbook:135
+#. Tag: programlisting
+#: toolset_guide.xml:135
+#, no-c-format
 msgid ""
-      "<![CDATA[<property name=\"credits\" type=\"integer\" insert=\"false\">\n"
-      "    <column name=\"credits\" default=\"10\"/>\n"
-      "</property>]]>"
-msgstr "Interpretaci&#x00f3;n"
+"<![CDATA[<property name=\"credits\" type=\"integer\" insert=\"false\">\n"
+"    <column name=\"credits\" default=\"10\"/>\n"
+"</property>]]>"
+msgstr ""
 
-#: index.docbook:137
+#. Tag: programlisting
+#: toolset_guide.xml:137
+#, no-c-format
 msgid ""
-      "<![CDATA[<version name=\"version\" type=\"integer\" insert=\"false\">\n"
-      "    <column name=\"version\" default=\"0\"/>\n"
-      "</property>]]>"
-msgstr "length"
+"<![CDATA[<version name=\"version\" type=\"integer\" insert=\"false\">\n"
+"    <column name=\"version\" default=\"0\"/>\n"
+"</property>]]>"
+msgstr ""
 
-#: index.docbook:139
-msgid "The <literal>sql-type</literal> attribute allows the user to override the default mapping of a Hibernate type to SQL datatype."
-msgstr "number"
+#. Tag: para
+#: toolset_guide.xml:139
+#, no-c-format
+msgid ""
+"The <literal>sql-type</literal> attribute allows the user to override the "
+"default mapping of a Hibernate type to SQL datatype."
+msgstr ""
+"El atributo <literal>sql-type</literal> permite al usuario sobrescribir el "
+"mapeo por defecto de tipo Hibernate a tipo de datos SQL."
 
-#: index.docbook:144
+#. Tag: programlisting
+#: toolset_guide.xml:144
+#, no-c-format
 msgid ""
-      "<![CDATA[<property name=\"balance\" type=\"float\">\n"
-      "    <column name=\"balance\" sql-type=\"decimal(13,3)\"/>\n"
-      "</property>]]>"
-msgstr "largo de columna/precisi&#x00f3;n decimal"
+"<![CDATA[<property name=\"balance\" type=\"float\">\n"
+"    <column name=\"balance\" sql-type=\"decimal(13,3)\"/>\n"
+"</property>]]>"
+msgstr ""
 
-#: index.docbook:146
-msgid "The <literal>check</literal> attribute allows you to specify a check constraint."
-msgstr "not-null"
+#. Tag: para
+#: toolset_guide.xml:146
+#, no-c-format
+msgid ""
+"The <literal>check</literal> attribute allows you to specify a check "
+"constraint."
+msgstr ""
+"El atributo <literal>check</literal> te permite especificar una comprobación "
+"de restricción."
 
-#: index.docbook:150
+#. Tag: programlisting
+#: toolset_guide.xml:150
+#, no-c-format
 msgid ""
-      "<![CDATA[<property name=\"foo\" type=\"integer\">\n"
-      "    <column name=\"foo\" check=\"foo > 10\"/>\n"
-      "</property>]]>"
-msgstr "true|false"
+"<![CDATA[<property name=\"foo\" type=\"integer\">\n"
+"    <column name=\"foo\" check=\"foo > 10\"/>\n"
+"</property>]]>"
+msgstr ""
 
-#: index.docbook:152
+#. Tag: programlisting
+#: toolset_guide.xml:152
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Foo\" table=\"foos\" check=\"bar < 100.0\">\n"
-      "    ...\n"
-      "    <property name=\"bar\" type=\"float\"/>\n"
-      "</class>]]>"
-msgstr "especifica que la columna debe ser no nulable"
+"<![CDATA[<class name=\"Foo\" table=\"foos\" check=\"bar < 100.0\">\n"
+"    ...\n"
+"    <property name=\"bar\" type=\"float\"/>\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:156
+#. Tag: title
+#: toolset_guide.xml:156
+#, no-c-format
 msgid "Summary"
-msgstr "unique"
+msgstr "Resumen"
 
-#: index.docbook:163
+#. Tag: entry
+#: toolset_guide.xml:163
+#, no-c-format
 msgid "Attribute"
-msgstr "true|false"
+msgstr "Atributo"
 
-#: index.docbook:164
+#. Tag: entry
+#: toolset_guide.xml:164
+#, no-c-format
 msgid "Values"
-msgstr "especifica que la columna debe tener una restricci&#x00f3;n de unicidad"
+msgstr "Valores"
 
-#: index.docbook:165
+#. Tag: entry
+#: toolset_guide.xml:165
+#, no-c-format
 msgid "Interpretation"
-msgstr "index"
+msgstr "Interpretación"
 
-#: index.docbook:170
+#. Tag: literal
+#: toolset_guide.xml:170
+#, no-c-format
 msgid "length"
-msgstr "index_name"
+msgstr "length"
 
-#: index.docbook:171, index.docbook:176, index.docbook:181
+#. Tag: entry
+#: toolset_guide.xml:171 toolset_guide.xml:176 toolset_guide.xml:181
+#, no-c-format
 msgid "number"
-msgstr "especifica el nombre de un &#x00ed;ndice (multicolumna)"
+msgstr "number"
 
-#: index.docbook:172
+#. Tag: entry
+#: toolset_guide.xml:172
+#, no-c-format
 msgid "column length"
-msgstr "unique-key"
+msgstr "largo de columna/precisión decimal"
 
-#: index.docbook:175
+#. Tag: literal
+#: toolset_guide.xml:175
+#, no-c-format
 msgid "precision"
-msgstr "unique_key_name"
+msgstr "precision"
 
-#: index.docbook:177
+#. Tag: entry
+#: toolset_guide.xml:177
+#, no-c-format
 msgid "column decimal precision"
-msgstr "foreign-key"
+msgstr "column decimal precision"
 
-#: index.docbook:180
+#. Tag: literal
+#: toolset_guide.xml:180
+#, no-c-format
 msgid "scale"
-msgstr "foreign_key_name"
+msgstr "scale"
 
-#: index.docbook:182
+#. Tag: entry
+#: toolset_guide.xml:182
+#, no-c-format
 msgid "column decimal scale"
-msgstr "sql-type"
+msgstr "column decimal scale"
 
-#: index.docbook:185
+#. Tag: literal
+#: toolset_guide.xml:185
+#, no-c-format
 msgid "not-null"
-msgstr "column_type"
+msgstr "not-null"
 
-#: index.docbook:186, index.docbook:191
+#. Tag: literal
+#: toolset_guide.xml:186 toolset_guide.xml:191
+#, no-c-format
 msgid "true|false"
-msgstr "sobrescribe el tipo de columna por defecto (s&#x00f3;lo atributo del elemento <literal>&lt;column&gt;</literal>)"
+msgstr "true|false"
 
-#: index.docbook:187
+#. Tag: entry
+#: toolset_guide.xml:187
+#, no-c-format
 msgid "specfies that the column should be non-nullable"
-msgstr "check"
+msgstr "especifica que la columna debe ser no nulable"
 
-#: index.docbook:190
+#. Tag: literal
+#: toolset_guide.xml:190
+#, no-c-format
 msgid "unique"
-msgstr "expresi&#x00f3;n SQL"
+msgstr "unique"
 
-#: index.docbook:192
+#. Tag: entry
+#: toolset_guide.xml:192
+#, no-c-format
 msgid "specifies that the column should have a unique constraint"
-msgstr "El elemento <literal>&lt;comment&gt;</literal> te permite especificar un comentario para el esquema generado."
+msgstr "especifica que la columna debe tener una restricción de unicidad"
 
-#: index.docbook:195
+#. Tag: literal
+#: toolset_guide.xml:195
+#, no-c-format
 msgid "index"
-msgstr ""
-      "<![CDATA[<class name=\"Customer\" table=\"CurCust\">\n"
-      "    <comment>Current customers only</comment>\n"
-      "    ...\n"
-      "</class>]]>"
+msgstr "index"
 
-#: index.docbook:196
+#. Tag: literal
+#: toolset_guide.xml:196
+#, no-c-format
 msgid "index_name"
-msgstr ""
-      "<![CDATA[<property name=\"balance\">\n"
-      "    <column name=\"bal\">\n"
-      "        <comment>Balance in USD</comment>\n"
-      "    </column>\n"
-      "</property>]]>"
+msgstr "index_name"
 
-#: index.docbook:197
+#. Tag: entry
+#: toolset_guide.xml:197
+#, no-c-format
 msgid "specifies the name of a (multi-column) index"
-msgstr "Esto resulta en una sentencia <literal>comment on table</literal> o <literal>comment on column</literal> en el DDL generado (donde est&#x00e9; soportado)."
+msgstr "especifica el nombre de un índice (multicolumna)"
 
-#: index.docbook:200
+#. Tag: literal
+#: toolset_guide.xml:200
+#, no-c-format
 msgid "unique-key"
-msgstr "Ejecutando la herramienta"
+msgstr "unique-key"
 
-#: index.docbook:201
+#. Tag: literal
+#: toolset_guide.xml:201
+#, no-c-format
 msgid "unique_key_name"
-msgstr "La herramienta <literal>SchemaExport</literal> escribe un gui&#x00f3;n DDL a la salida est&#x00e1;ndar y/o ejecuta las sentencias DDL."
+msgstr "unique_key_name"
 
-#: index.docbook:202
+#. Tag: entry
+#: toolset_guide.xml:202
+#, no-c-format
 msgid "specifies the name of a multi-column unique constraint"
-msgstr "<literal>java -cp </literal><emphasis>classpaths_de_hibernate</emphasis> <literal>org.hibernate.tool.hbm2ddl.SchemaExport</literal> <emphasis>opciones ficheros_de_mapeo</emphasis>"
+msgstr "especifica el nombre de una restricción de unicidad multicolumna"
 
-#: index.docbook:205
+#. Tag: literal
+#: toolset_guide.xml:205
+#, no-c-format
 msgid "foreign-key"
-msgstr "Opciones de L&#x00ed;nea de Comandos de <literal>SchemaExport</literal>"
+msgstr "foreign-key"
 
-#: index.docbook:206
+#. Tag: literal
+#: toolset_guide.xml:206
+#, no-c-format
 msgid "foreign_key_name"
-msgstr "Opci&#x00f3;n"
+msgstr "foreign_key_name"
 
-#: index.docbook:207
-msgid "specifies the name of the foreign key constraint generated for an association, for a <literal>&lt;one-to-one&gt;</literal>, <literal>&lt;many-to-one&gt;</literal>, <literal>&lt;key&gt;</literal>, or <literal>&lt;many-to-many&gt;</literal> mapping element. Note that <literal>inverse=\"true\"</literal> sides will not be considered by <literal>SchemaExport</literal>."
-msgstr "Descripci&#x00f3;n"
+#. Tag: entry
+#: toolset_guide.xml:207
+#, fuzzy, no-c-format
+msgid ""
+"specifies the name of the foreign key constraint generated for an "
+"association, for a <literal>&lt;one-to-one&gt;</literal>, <literal>&lt;many-"
+"to-one&gt;</literal>, <literal>&lt;key&gt;</literal>, or <literal>&lt;many-"
+"to-many&gt;</literal> mapping element. Note that <literal>inverse=\"true\"</"
+"literal> sides will not be considered by <literal>SchemaExport</literal>."
+msgstr ""
+"especifica el nombre de la restricción de clave foránea generada por una "
+"asociación, úsalo e <placeholder-1/>, <placeholder-2/>, <placeholder-3/>, or "
+"<placeholder-4/> . Nota que los lados <placeholder-5/> no serán considerados "
+"por <placeholder-6/>."
 
-#: index.docbook:217
+#. Tag: literal
+#: toolset_guide.xml:217
+#, no-c-format
 msgid "sql-type"
-msgstr "--quiet"
+msgstr "sql-type"
 
-#: index.docbook:218
+#. Tag: literal
+#: toolset_guide.xml:218
+#, no-c-format
 msgid "SQL column type"
-msgstr "no enviar a salida est&#x00e1;ndar el gui&#x00f3;n"
+msgstr "column_type"
 
-#: index.docbook:219
-msgid "overrides the default column type (attribute of <literal>&lt;column&gt;</literal> element only)"
-msgstr "--drop"
+#. Tag: entry
+#: toolset_guide.xml:219
+#, fuzzy, no-c-format
+msgid ""
+"overrides the default column type (attribute of <literal>&lt;column&gt;</"
+"literal> element only)"
+msgstr ""
+"sobrescribe el tipo de columna por defecto (sólo atributo del elemento "
+"<placeholder-1/>)"
 
-#: index.docbook:225
+#. Tag: literal
+#: toolset_guide.xml:225
+#, no-c-format
 msgid "default"
-msgstr "s&#x00f3;lo desechar las tablas"
+msgstr "default"
 
-#: index.docbook:226, index.docbook:233
+#. Tag: entry
+#: toolset_guide.xml:226 toolset_guide.xml:233
+#, fuzzy, no-c-format
 msgid "SQL expression"
-msgstr "--text"
+msgstr ""
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"SQL expression\n"
+"#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n"
+"expresión SQL"
 
-#: index.docbook:227
+#. Tag: entry
+#: toolset_guide.xml:227
+#, no-c-format
 msgid "specify a default value for the column"
-msgstr "no exportar a la base de datos"
+msgstr "specify a default value for the column"
 
-#: index.docbook:232
+#. Tag: literal
+#: toolset_guide.xml:232
+#, no-c-format
 msgid "check"
-msgstr "--output=my_schema.ddl"
+msgstr "check"
 
-#: index.docbook:234
+#. Tag: entry
+#: toolset_guide.xml:234
+#, no-c-format
 msgid "create an SQL check constraint on either column or table"
-msgstr "--config=hibernate.cfg.xml"
+msgstr "crea una restricción de comprobación SQL en columna o tabla"
 
-#: index.docbook:242
-msgid "The <literal>&lt;comment&gt;</literal> element allows you to specify comments for the generated schema."
-msgstr "lee la configuraci&#x00f3;n de Hibernate de un fichero XML"
+#. Tag: para
+#: toolset_guide.xml:242
+#, no-c-format
+msgid ""
+"The <literal>&lt;comment&gt;</literal> element allows you to specify "
+"comments for the generated schema."
+msgstr ""
+"El elemento <literal>&lt;comment&gt;</literal> te permite especificar un "
+"comentario para el esquema generado."
 
-#: index.docbook:247
+#. Tag: programlisting
+#: toolset_guide.xml:247
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Customer\" table=\"CurCust\">\n"
-      "    <comment>Current customers only</comment>\n"
-      "    ...\n"
-      "</class>]]>"
-msgstr "--properties=hibernate.properties"
+"<![CDATA[<class name=\"Customer\" table=\"CurCust\">\n"
+"    <comment>Current customers only</comment>\n"
+"    ...\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:249
+#. Tag: programlisting
+#: toolset_guide.xml:249
+#, no-c-format
 msgid ""
-      "<![CDATA[<property name=\"balance\">\n"
-      "    <column name=\"bal\">\n"
-      "        <comment>Balance in USD</comment>\n"
-      "    </column>\n"
-      "</property>]]>"
-msgstr "lee las propiedades de base de datos de un fichero"
+"<![CDATA[<property name=\"balance\">\n"
+"    <column name=\"bal\">\n"
+"        <comment>Balance in USD</comment>\n"
+"    </column>\n"
+"</property>]]>"
+msgstr ""
 
-#: index.docbook:251
-msgid "This results in a <literal>comment on table</literal> or <literal>comment on column</literal> statement in the generated DDL (where supported)."
-msgstr "--format"
+#. Tag: para
+#: toolset_guide.xml:251
+#, no-c-format
+msgid ""
+"This results in a <literal>comment on table</literal> or <literal>comment on "
+"column</literal> statement in the generated DDL (where supported)."
+msgstr ""
+"Esto resulta en una sentencia <literal>comment on table</literal> o "
+"<literal>comment on column</literal> en el DDL generado (donde esté "
+"soportado)."
 
-#: index.docbook:260
+#. Tag: title
+#: toolset_guide.xml:260
+#, no-c-format
 msgid "Running the tool"
-msgstr "formatea agradablemente el SQL generado en el gui&#x00f3;n"
+msgstr "Ejecutando la herramienta"
 
-#: index.docbook:262
-msgid "The <literal>SchemaExport</literal> tool writes a DDL script to standard out and/or executes the DDL statements."
-msgstr "--delimiter=x"
+#. Tag: para
+#: toolset_guide.xml:262
+#, no-c-format
+msgid ""
+"The <literal>SchemaExport</literal> tool writes a DDL script to standard out "
+"and/or executes the DDL statements."
+msgstr ""
+"La herramienta <literal>SchemaExport</literal> escribe un guión DDL a la "
+"salida estándar y/o ejecuta las sentencias DDL."
 
-#: index.docbook:267
-msgid "<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> <literal>org.hibernate.tool.hbm2ddl.SchemaExport</literal> <emphasis>options mapping_files</emphasis>"
-msgstr "establece un delimitador de fin de l&#x00ed;nea para el gui&#x00f3;n"
+#. Tag: para
+#: toolset_guide.xml:267
+#, no-c-format
+msgid ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaExport</literal> <emphasis>options "
+"mapping_files</emphasis>"
+msgstr ""
 
-#: index.docbook:273
+#. Tag: title
+#: toolset_guide.xml:273
+#, no-c-format
 msgid "<literal>SchemaExport</literal> Command Line Options"
-msgstr "Puedes incluso encajar <literal>SchemaExport</literal> en tu aplicaci&#x00f3;n:"
+msgstr "Opciones de Línea de Comandos de <literal>SchemaExport</literal>"
 
-#: index.docbook:279, index.docbook:429, index.docbook:498
+#. Tag: entry
+#: toolset_guide.xml:279 toolset_guide.xml:429 toolset_guide.xml:498
+#, no-c-format
 msgid "Option"
-msgstr ""
-      "<![CDATA[Configuration cfg = ....;\n"
-      "new SchemaExport(cfg).create(false, true);]]>"
+msgstr "Opción"
 
-#: index.docbook:280, index.docbook:367, index.docbook:430, index.docbook:499
+#. Tag: entry
+#: toolset_guide.xml:280 toolset_guide.xml:367 toolset_guide.xml:430
+#: toolset_guide.xml:499
+#, no-c-format
 msgid "Description"
-msgstr "Propiedades"
+msgstr "Descripción"
 
-#: index.docbook:285, index.docbook:435
+#. Tag: literal
+#: toolset_guide.xml:285 toolset_guide.xml:435
+#, no-c-format
 msgid "--quiet"
-msgstr "Las propiedades de base de datos pueden especificarse"
+msgstr "--quiet"
 
-#: index.docbook:286, index.docbook:436
+#. Tag: entry
+#: toolset_guide.xml:286 toolset_guide.xml:436
+#, no-c-format
 msgid "don't output the script to stdout"
-msgstr "como propiedades de sistema con <literal>-D</literal><emphasis>&lt;property&gt;</emphasis>"
+msgstr "no enviar a salida estándar el guión"
 
-#: index.docbook:289
+#. Tag: literal
+#: toolset_guide.xml:289
+#, no-c-format
 msgid "--drop"
-msgstr "en <literal>hibernate.properties</literal>"
+msgstr "--drop"
 
-#: index.docbook:290
+#. Tag: entry
+#: toolset_guide.xml:290
+#, no-c-format
 msgid "only drop the tables"
-msgstr "en un fichero de propiedades mencionado con <literal>--properties</literal>"
+msgstr "sólo desechar las tablas"
 
-#: index.docbook:293
+#. Tag: literal
+#: toolset_guide.xml:293
+#, no-c-format
 msgid "--create"
-msgstr "Las propiedades necesarias son:"
+msgstr "--create"
 
-#: index.docbook:294
+#. Tag: entry
+#: toolset_guide.xml:294
+#, no-c-format
 msgid "only create the tables"
-msgstr "Propiedades de Conexi&#x00f3;n de SchemaExport"
+msgstr "only create the tables"
 
-#: index.docbook:297, index.docbook:439
+#. Tag: literal
+#: toolset_guide.xml:297 toolset_guide.xml:439
+#, no-c-format
 msgid "--text"
-msgstr "Nombre de Propiedad"
+msgstr "--text"
 
-#: index.docbook:298
+#. Tag: entry
+#: toolset_guide.xml:298
+#, no-c-format
 msgid "don't export to the database"
-msgstr "Descripci&#x00f3;n"
+msgstr "no exportar a la base de datos"
 
-#: index.docbook:301
+#. Tag: literal
+#: toolset_guide.xml:301
+#, no-c-format
 msgid "--output=my_schema.ddl"
-msgstr "hibernate.connection.driver_class"
+msgstr "--output=my_schema.ddl"
 
-#: index.docbook:302
+#. Tag: entry
+#: toolset_guide.xml:302
+#, no-c-format
 msgid "output the ddl script to a file"
-msgstr "clase del driver jdbc"
+msgstr "enviar la salida del guión ddl a un fichero"
 
-#: index.docbook:305, index.docbook:443, index.docbook:504
+#. Tag: literal
+#: toolset_guide.xml:305 toolset_guide.xml:443 toolset_guide.xml:504
+#, no-c-format
 msgid "--naming=eg.MyNamingStrategy"
-msgstr "hibernate.connection.url"
+msgstr "--naming=eg.MyNamingStrategy"
 
-#: index.docbook:306, index.docbook:444, index.docbook:505
+#. Tag: entry
+#: toolset_guide.xml:306 toolset_guide.xml:444 toolset_guide.xml:505
+#, fuzzy, no-c-format
 msgid "select a <literal>NamingStrategy</literal>"
-msgstr "url de jdbc"
+msgstr "en <literal>hibernate.properties</literal>"
 
-#: index.docbook:309, index.docbook:451, index.docbook:512
+#. Tag: literal
+#: toolset_guide.xml:309 toolset_guide.xml:451 toolset_guide.xml:512
+#, no-c-format
 msgid "--config=hibernate.cfg.xml"
-msgstr "hibernate.connection.username"
+msgstr "--config=hibernate.cfg.xml"
 
-#: index.docbook:310
+#. Tag: entry
+#: toolset_guide.xml:310
+#, no-c-format
 msgid "read Hibernate configuration from an XML file"
-msgstr "usuario de base de datos"
+msgstr "lee la configuración de Hibernate de un fichero XML"
 
-#: index.docbook:313, index.docbook:447, index.docbook:508
+#. Tag: literal
+#: toolset_guide.xml:313 toolset_guide.xml:447 toolset_guide.xml:508
+#, no-c-format
 msgid "--properties=hibernate.properties"
-msgstr "hibernate.connection.password"
+msgstr "--properties=hibernate.properties"
 
-#: index.docbook:314, index.docbook:448, index.docbook:509
+#. Tag: entry
+#: toolset_guide.xml:314 toolset_guide.xml:448 toolset_guide.xml:509
+#, no-c-format
 msgid "read database properties from a file"
-msgstr "contrase&#x00f1;a de usuario"
+msgstr "lee las propiedades de base de datos de un fichero"
 
-#: index.docbook:317
+#. Tag: literal
+#: toolset_guide.xml:317
+#, no-c-format
 msgid "--format"
-msgstr "hibernate.dialect"
+msgstr "--format"
 
-#: index.docbook:318
+#. Tag: entry
+#: toolset_guide.xml:318
+#, no-c-format
 msgid "format the generated SQL nicely in the script"
-msgstr "dialecto"
+msgstr "formatea agradablemente el SQL generado en el guión"
 
-#: index.docbook:321
+#. Tag: literal
+#: toolset_guide.xml:321
+#, no-c-format
 msgid "--delimiter=;"
-msgstr "Usando Ant"
+msgstr "--delimiter=x"
 
-#: index.docbook:322
+#. Tag: entry
+#: toolset_guide.xml:322
+#, no-c-format
 msgid "set an end of line delimiter for the script"
-msgstr "Puedes llamar a <literal>SchemaExport</literal> desde tu gui&#x00f3;n de construcci&#x00f3;n de Ant:"
+msgstr "establece un delimitador de fin de línea para el guión"
 
-#: index.docbook:328
+#. Tag: para
+#: toolset_guide.xml:328
+#, no-c-format
 msgid "You may even embed <literal>SchemaExport</literal> in your application:"
 msgstr ""
-      "<![CDATA[<target name=\"schemaexport\">\n"
-      "    <taskdef name=\"schemaexport\"\n"
-      "        classname=\"org.hibernate.tool.hbm2ddl.SchemaExportTask\"\n"
-      "        classpathref=\"class.path\"/>\n"
-      "    \n"
-      "    <schemaexport\n"
-      "        properties=\"hibernate.properties\"\n"
-      "        quiet=\"no\"\n"
-      "        text=\"no\"\n"
-      "        drop=\"no\"\n"
-      "        delimiter=\";\"\n"
-      "        output=\"schema-export.sql\">\n"
-      "        <fileset dir=\"src\">\n"
-      "            <include name=\"**/*.hbm.xml\"/>\n"
-      "        </fileset>\n"
-      "    </schemaexport>\n"
-      "</target>]]>"
+"Puedes incluso encajar <literal>SchemaExport</literal> en tu aplicación:"
 
-#: index.docbook:332
+#. Tag: programlisting
+#: toolset_guide.xml:332
+#, no-c-format
 msgid ""
-      "<![CDATA[Configuration cfg = ....;\n"
-      "new SchemaExport(cfg).create(false, true);]]>"
-msgstr "Actualizaciones incrementales de esquema"
+"<![CDATA[Configuration cfg = ....;\n"
+"new SchemaExport(cfg).create(false, true);]]>"
+msgstr ""
 
-#: index.docbook:337
+#. Tag: title
+#: toolset_guide.xml:337
+#, no-c-format
 msgid "Properties"
-msgstr "La herramienta <literal>SchemaUpdate</literal> actualizar&#x00e1; un esquema existente con cambios \"incrementales\". Nota que <literal>SchemaUpdate</literal> depende fuertemente de la API de metadatos de JDBC, de modo que no funcionar&#x00e1; con todos los drivers JDBC."
+msgstr "Propiedades"
 
-#: index.docbook:339
+#. Tag: para
+#: toolset_guide.xml:339
+#, no-c-format
 msgid "Database properties may be specified"
-msgstr "<literal>java -cp </literal><emphasis>classpaths_de_hibernate</emphasis> <literal>org.hibernate.tool.hbm2ddl.SchemaUpdate</literal> <emphasis>opciones ficheros_de_mapeo</emphasis>"
+msgstr "Las propiedades de base de datos pueden especificarse"
 
-#: index.docbook:345
-msgid "as system properties with <literal>-D</literal><emphasis>&lt;property&gt;</emphasis>"
-msgstr "Opciones de L&#x00ed;nea de Comandos de <literal>SchemaUpdate</literal>"
+#. Tag: para
+#: toolset_guide.xml:345
+#, no-c-format
+msgid ""
+"as system properties with <literal>-D</literal><emphasis>&lt;property&gt;</"
+"emphasis>"
+msgstr ""
+"como propiedades de sistema con <literal>-D</literal><emphasis>&lt;"
+"property&gt;</emphasis>"
 
-#: index.docbook:348
+#. Tag: para
+#: toolset_guide.xml:348
+#, no-c-format
 msgid "in <literal>hibernate.properties</literal>"
-msgstr "Opci&#x00f3;n"
+msgstr "en <literal>hibernate.properties</literal>"
 
-#: index.docbook:351
+#. Tag: para
+#: toolset_guide.xml:351
+#, no-c-format
 msgid "in a named properties file with <literal>--properties</literal>"
-msgstr "Descripci&#x00f3;n"
+msgstr ""
+"en un fichero de propiedades mencionado con <literal>--properties</literal>"
 
-#: index.docbook:355
+#. Tag: para
+#: toolset_guide.xml:355
+#, no-c-format
 msgid "The needed properties are:"
-msgstr "--quiet"
+msgstr "Las propiedades necesarias son:"
 
-#: index.docbook:360
+#. Tag: title
+#: toolset_guide.xml:360
+#, no-c-format
 msgid "SchemaExport Connection Properties"
-msgstr "no enviar a salida est&#x00e1;ndar el gui&#x00f3;n"
+msgstr "Propiedades de Conexión de SchemaExport"
 
-#: index.docbook:366
+#. Tag: entry
+#: toolset_guide.xml:366
+#, no-c-format
 msgid "Property Name"
-msgstr "--properties=hibernate.properties"
+msgstr "Nombre de Propiedad"
 
-#: index.docbook:372
+#. Tag: literal
+#: toolset_guide.xml:372
+#, no-c-format
 msgid "hibernate.connection.driver_class"
-msgstr "Puedes encajar <literal>SchemaUpdate</literal> en tu aplicaci&#x00f3;n:"
+msgstr "hibernate.connection.driver_class"
 
-#: index.docbook:373
+#. Tag: entry
+#: toolset_guide.xml:373
+#, no-c-format
 msgid "jdbc driver class"
-msgstr ""
-      "<![CDATA[Configuration cfg = ....;\n"
-      "new SchemaUpdate(cfg).execute(false);]]>"
+msgstr "clase del driver jdbc"
 
-#: index.docbook:376
+#. Tag: literal
+#: toolset_guide.xml:376
+#, no-c-format
 msgid "hibernate.connection.url"
-msgstr "Usando Ant para actualizaciones incrementales de esquema"
+msgstr "hibernate.connection.url"
 
-#: index.docbook:377
+#. Tag: entry
+#: toolset_guide.xml:377
+#, no-c-format
 msgid "jdbc url"
-msgstr "Puedes llamar a <literal>SchemaUpdate</literal> desde el gui&#x00f3;n de Ant:"
+msgstr "url de jdbc"
 
-#: index.docbook:380
+#. Tag: literal
+#: toolset_guide.xml:380
+#, no-c-format
 msgid "hibernate.connection.username"
-msgstr ""
-      "<![CDATA[<target name=\"schemaupdate\">\n"
-      "    <taskdef name=\"schemaupdate\"\n"
-      "        classname=\"org.hibernate.tool.hbm2ddl.SchemaUpdateTask\"\n"
-      "        classpathref=\"class.path\"/>\n"
-      "    \n"
-      "    <schemaupdate\n"
-      "        properties=\"hibernate.properties\"\n"
-      "        quiet=\"no\">\n"
-      "        <fileset dir=\"src\">\n"
-      "            <include name=\"**/*.hbm.xml\"/>\n"
-      "        </fileset>\n"
-      "    </schemaupdate>\n"
-      "</target>]]>"
+msgstr "hibernate.connection.username"
 
-#: index.docbook:381
+#. Tag: entry
+#: toolset_guide.xml:381
+#, no-c-format
 msgid "database user"
-msgstr ""
+msgstr "usuario de base de datos"
 
-#: index.docbook:384
+#. Tag: literal
+#: toolset_guide.xml:384
+#, no-c-format
 msgid "hibernate.connection.password"
-msgstr ""
+msgstr "hibernate.connection.password"
 
-#: index.docbook:385
+#. Tag: entry
+#: toolset_guide.xml:385
+#, no-c-format
 msgid "user password"
-msgstr ""
+msgstr "contraseña de usuario"
 
-#: index.docbook:388
+#. Tag: literal
+#: toolset_guide.xml:388
+#, no-c-format
 msgid "hibernate.dialect"
-msgstr ""
+msgstr "hibernate.dialect"
 
-#: index.docbook:389
+#. Tag: entry
+#: toolset_guide.xml:389
+#, no-c-format
 msgid "dialect"
-msgstr ""
+msgstr "dialecto"
 
-#: index.docbook:398
+#. Tag: title
+#: toolset_guide.xml:398
+#, no-c-format
 msgid "Using Ant"
-msgstr ""
+msgstr "Usando Ant"
 
-#: index.docbook:400
-msgid "You can call <literal>SchemaExport</literal> from your Ant build script:"
+#. Tag: para
+#: toolset_guide.xml:400
+#, no-c-format
+msgid ""
+"You can call <literal>SchemaExport</literal> from your Ant build script:"
 msgstr ""
+"Puedes llamar a <literal>SchemaExport</literal> desde tu guión de "
+"construcción de Ant:"
 
-#: index.docbook:404
+#. Tag: programlisting
+#: toolset_guide.xml:404
+#, no-c-format
 msgid ""
-      "<![CDATA[<target name=\"schemaexport\">\n"
-      "    <taskdef name=\"schemaexport\"\n"
-      "        classname=\"org.hibernate.tool.hbm2ddl.SchemaExportTask\"\n"
-      "        classpathref=\"class.path\"/>\n"
-      "    \n"
-      "    <schemaexport\n"
-      "        properties=\"hibernate.properties\"\n"
-      "        quiet=\"no\"\n"
-      "        text=\"no\"\n"
-      "        drop=\"no\"\n"
-      "        delimiter=\";\"\n"
-      "        output=\"schema-export.sql\">\n"
-      "        <fileset dir=\"src\">\n"
-      "            <include name=\"**/*.hbm.xml\"/>\n"
-      "        </fileset>\n"
-      "    </schemaexport>\n"
-      "</target>]]>"
+"<![CDATA[<target name=\"schemaexport\">\n"
+"    <taskdef name=\"schemaexport\"\n"
+"        classname=\"org.hibernate.tool.hbm2ddl.SchemaExportTask\"\n"
+"        classpathref=\"class.path\"/>\n"
+"    \n"
+"    <schemaexport\n"
+"        properties=\"hibernate.properties\"\n"
+"        quiet=\"no\"\n"
+"        text=\"no\"\n"
+"        drop=\"no\"\n"
+"        delimiter=\";\"\n"
+"        output=\"schema-export.sql\">\n"
+"        <fileset dir=\"src\">\n"
+"            <include name=\"**/*.hbm.xml\"/>\n"
+"        </fileset>\n"
+"    </schemaexport>\n"
+"</target>]]>"
 msgstr ""
 
-#: index.docbook:409
+#. Tag: title
+#: toolset_guide.xml:409
+#, no-c-format
 msgid "Incremental schema updates"
-msgstr ""
+msgstr "Actualizaciones incrementales de esquema"
 
-#: index.docbook:411
-msgid "The <literal>SchemaUpdate</literal> tool will update an existing schema with \"incremental\" changes. Note that <literal>SchemaUpdate</literal> depends heavily upon the JDBC metadata API, so it will not work with all JDBC drivers."
+#. Tag: para
+#: toolset_guide.xml:411
+#, no-c-format
+msgid ""
+"The <literal>SchemaUpdate</literal> tool will update an existing schema with "
+"\"incremental\" changes. Note that <literal>SchemaUpdate</literal> depends "
+"heavily upon the JDBC metadata API, so it will not work with all JDBC "
+"drivers."
 msgstr ""
+"La herramienta <literal>SchemaUpdate</literal> actualizará un esquema "
+"existente con cambios \"incrementales\". Nota que <literal>SchemaUpdate</"
+"literal> depende fuertemente de la API de metadatos de JDBC, de modo que no "
+"funcionará con todos los drivers JDBC."
 
-#: index.docbook:417
-msgid "<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> <literal>org.hibernate.tool.hbm2ddl.SchemaUpdate</literal> <emphasis>options mapping_files</emphasis>"
+#. Tag: para
+#: toolset_guide.xml:417
+#, no-c-format
+msgid ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaUpdate</literal> <emphasis>options "
+"mapping_files</emphasis>"
 msgstr ""
 
-#: index.docbook:423
+#. Tag: title
+#: toolset_guide.xml:423
+#, no-c-format
 msgid "<literal>SchemaUpdate</literal> Command Line Options"
-msgstr ""
+msgstr "Opciones de Línea de Comandos de <literal>SchemaUpdate</literal>"
 
-#: index.docbook:440
+#. Tag: entry
+#: toolset_guide.xml:440
+#, no-c-format
 msgid "don't export the script to the database"
-msgstr ""
+msgstr "don't export the script to the database"
 
-#: index.docbook:452, index.docbook:513
+#. Tag: entry
+#: toolset_guide.xml:452 toolset_guide.xml:513
+#, fuzzy, no-c-format
 msgid "specify a <literal>.cfg.xml</literal> file"
-msgstr ""
+msgstr "specify a <placeholder-1/> file"
 
-#: index.docbook:458
+#. Tag: para
+#: toolset_guide.xml:458
+#, no-c-format
 msgid "You may embed <literal>SchemaUpdate</literal> in your application:"
-msgstr ""
+msgstr "Puedes encajar <literal>SchemaUpdate</literal> en tu aplicación:"
 
-#: index.docbook:462
+#. Tag: programlisting
+#: toolset_guide.xml:462
+#, no-c-format
 msgid ""
-      "<![CDATA[Configuration cfg = ....;\n"
-      "new SchemaUpdate(cfg).execute(false);]]>"
+"<![CDATA[Configuration cfg = ....;\n"
+"new SchemaUpdate(cfg).execute(false);]]>"
 msgstr ""
 
-#: index.docbook:467
+#. Tag: title
+#: toolset_guide.xml:467
+#, no-c-format
 msgid "Using Ant for incremental schema updates"
-msgstr ""
+msgstr "Usando Ant para actualizaciones incrementales de esquema"
 
-#: index.docbook:469
+#. Tag: para
+#: toolset_guide.xml:469
+#, no-c-format
 msgid "You can call <literal>SchemaUpdate</literal> from the Ant script:"
-msgstr ""
+msgstr "Puedes llamar a <literal>SchemaUpdate</literal> desde el guión de Ant:"
 
-#: index.docbook:473
+#. Tag: programlisting
+#: toolset_guide.xml:473
+#, no-c-format
 msgid ""
-      "<![CDATA[<target name=\"schemaupdate\">\n"
-      "    <taskdef name=\"schemaupdate\"\n"
-      "        classname=\"org.hibernate.tool.hbm2ddl.SchemaUpdateTask\"\n"
-      "        classpathref=\"class.path\"/>\n"
-      "    \n"
-      "    <schemaupdate\n"
-      "        properties=\"hibernate.properties\"\n"
-      "        quiet=\"no\">\n"
-      "        <fileset dir=\"src\">\n"
-      "            <include name=\"**/*.hbm.xml\"/>\n"
-      "        </fileset>\n"
-      "    </schemaupdate>\n"
-      "</target>]]>"
+"<![CDATA[<target name=\"schemaupdate\">\n"
+"    <taskdef name=\"schemaupdate\"\n"
+"        classname=\"org.hibernate.tool.hbm2ddl.SchemaUpdateTask\"\n"
+"        classpathref=\"class.path\"/>\n"
+"    \n"
+"    <schemaupdate\n"
+"        properties=\"hibernate.properties\"\n"
+"        quiet=\"no\">\n"
+"        <fileset dir=\"src\">\n"
+"            <include name=\"**/*.hbm.xml\"/>\n"
+"        </fileset>\n"
+"    </schemaupdate>\n"
+"</target>]]>"
 msgstr ""
 
-#: index.docbook:478
+#. Tag: title
+#: toolset_guide.xml:478
+#, no-c-format
 msgid "Schema validation"
-msgstr ""
+msgstr "translator-credits"
 
-#: index.docbook:480
-msgid "The <literal>SchemaValidator</literal> tool will validate that the existing database schema \"matches\" your mapping documents. Note that <literal>SchemaValidator</literal> depends heavily upon the JDBC metadata API, so it will not work with all JDBC drivers. This tool is extremely useful for testing."
+#. Tag: para
+#: toolset_guide.xml:480
+#, no-c-format
+msgid ""
+"The <literal>SchemaValidator</literal> tool will validate that the existing "
+"database schema \"matches\" your mapping documents. Note that "
+"<literal>SchemaValidator</literal> depends heavily upon the JDBC metadata "
+"API, so it will not work with all JDBC drivers. This tool is extremely "
+"useful for testing."
 msgstr ""
 
-#: index.docbook:486
-msgid "<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> <literal>org.hibernate.tool.hbm2ddl.SchemaValidator</literal> <emphasis>options mapping_files</emphasis>"
+#. Tag: para
+#: toolset_guide.xml:486
+#, no-c-format
+msgid ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaValidator</literal> "
+"<emphasis>options mapping_files</emphasis>"
 msgstr ""
 
-#: index.docbook:492
+#. Tag: title
+#: toolset_guide.xml:492
+#, no-c-format
 msgid "<literal>SchemaValidator</literal> Command Line Options"
 msgstr ""
 
-#: index.docbook:519
+#. Tag: para
+#: toolset_guide.xml:519
+#, no-c-format
 msgid "You may embed <literal>SchemaValidator</literal> in your application:"
 msgstr ""
 
-#: index.docbook:523
+#. Tag: programlisting
+#: toolset_guide.xml:523
+#, no-c-format
 msgid ""
-      "<![CDATA[Configuration cfg = ....;\n"
-      "new SchemaValidator(cfg).validate();]]>"
+"<![CDATA[Configuration cfg = ....;\n"
+"new SchemaValidator(cfg).validate();]]>"
 msgstr ""
 
-#: index.docbook:528
+#. Tag: title
+#: toolset_guide.xml:528
+#, no-c-format
 msgid "Using Ant for schema validation"
 msgstr ""
 
-#: index.docbook:530
+#. Tag: para
+#: toolset_guide.xml:530
+#, no-c-format
 msgid "You can call <literal>SchemaValidator</literal> from the Ant script:"
 msgstr ""
 
-#: index.docbook:534
+#. Tag: programlisting
+#: toolset_guide.xml:534
+#, no-c-format
 msgid ""
-      "<![CDATA[<target name=\"schemavalidate\">\n"
-      "    <taskdef name=\"schemavalidator\"\n"
-      "        classname=\"org.hibernate.tool.hbm2ddl.SchemaValidatorTask\"\n"
-      "        classpathref=\"class.path\"/>\n"
-      "    \n"
-      "    <schemavalidator\n"
-      "        properties=\"hibernate.properties\">\n"
-      "        <fileset dir=\"src\">\n"
-      "            <include name=\"**/*.hbm.xml\"/>\n"
-      "        </fileset>\n"
-      "    </schemavalidator>\n"
-      "</target>]]>"
+"<![CDATA[<target name=\"schemavalidate\">\n"
+"    <taskdef name=\"schemavalidator\"\n"
+"        classname=\"org.hibernate.tool.hbm2ddl.SchemaValidatorTask\"\n"
+"        classpathref=\"class.path\"/>\n"
+"    \n"
+"    <schemavalidator\n"
+"        properties=\"hibernate.properties\">\n"
+"        <fileset dir=\"src\">\n"
+"            <include name=\"**/*.hbm.xml\"/>\n"
+"        </fileset>\n"
+"    </schemavalidator>\n"
+"</target>]]>"
 msgstr ""
 
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
+#~ msgid "&lt;one-to-one&gt;"
+#~ msgstr "&lt;one-to-one&gt;"
 
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
+#~ msgid "&lt;many-to-one&gt;"
+#~ msgstr "&lt;many-to-one&gt;"
 
+#~ msgid "&lt;key&gt;"
+#~ msgstr "&lt;key&gt;"
+
+#~ msgid "&lt;many-to-many&gt;"
+#~ msgstr "&lt;many-to-many&gt;"
+
+#~ msgid "inverse=\"true\""
+#~ msgstr "inverse=\"true\""
+
+#~ msgid "SchemaExport"
+#~ msgstr "SchemaExport"
+
+#~ msgid "&lt;column&gt;"
+#~ msgstr "&lt;column&gt;"
+
+#~ msgid "java -cp"
+#~ msgstr "java -cp"
+
+#~ msgid "hibernate_classpaths"
+#~ msgstr "classpaths_de_hibernate"
+
+#~ msgid "org.hibernate.tool.hbm2ddl.SchemaExport"
+#~ msgstr "org.hibernate.tool.hbm2ddl.SchemaExport"
+
+#~ msgid "options mapping_files"
+#~ msgstr "opciones ficheros_de_mapeo"
+
+#~ msgid "NamingStrategy"
+#~ msgstr "NamingStrategy"
+
+#~ msgid "select a <placeholder-1/>"
+#~ msgstr "select a <placeholder-1/>"
+
+#~ msgid "org.hibernate.tool.hbm2ddl.SchemaUpdate"
+#~ msgstr "org.hibernate.tool.hbm2ddl.SchemaUpdate"
+
+#~ msgid ".cfg.xml"
+#~ msgstr ".cfg.xml"

Modified: core/trunk/documentation/manual/translations/es-ES/content/transactions.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/transactions.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/transactions.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,738 +1,2079 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:47+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:5
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: transactions.xml:5
+#, no-c-format
 msgid "Transactions And Concurrency"
 msgstr "Transacciones y Concurrencia"
 
-#: index.docbook:7
-msgid "The most important point about Hibernate and concurrency control is that it is very easy to understand. Hibernate directly uses JDBC connections and JTA resources without adding any additional locking behavior. We highly recommend you spend some time with the JDBC, ANSI, and transaction isolation specification of your database management system."
-msgstr "El punto m&#x00e1;s importante sobre Hibernate y el control de concurrencia es que muy f&#x00e1;cil de comprender. Hibernate usa directamente conexiones JDBC y recursos JTA sin agregar ning&#x00fa;n comportamiento de bloqueo adicional. Recomendamos altamente que gastes algo de tiempo con la especificaci&#x00f3;n de JDBC, ANSI, y el aislamiento de transacciones de tu sistema de gesti&#x00f3;n de base de datos. Hibernate s&#x00f3;lo a&#x00f1;ade versionado autom&#x00e1;tico pero no bloquea objetos en memoria ni cambia el nivel de aislamiento de tus transacciones de base de datos. B&#x00e1;sicamente, usa Hibernate como usar&#x00ed;as JDBC directo (o JTA/CMT) con tus recursos de base de datos."
+#. Tag: para
+#: transactions.xml:7
+#, no-c-format
+msgid ""
+"The most important point about Hibernate and concurrency control is that it "
+"is very easy to understand. Hibernate directly uses JDBC connections and JTA "
+"resources without adding any additional locking behavior. We highly "
+"recommend you spend some time with the JDBC, ANSI, and transaction isolation "
+"specification of your database management system."
+msgstr ""
+"El punto más importante sobre Hibernate y el control de concurrencia es que "
+"muy fácil de comprender. Hibernate usa directamente conexiones JDBC y "
+"recursos JTA sin agregar ningún comportamiento de bloqueo adicional. "
+"Recomendamos altamente que gastes algo de tiempo con la especificación de "
+"JDBC, ANSI, y el aislamiento de transacciones de tu sistema de gestión de "
+"base de datos. Hibernate sólo añade versionado automático pero no bloquea "
+"objetos en memoria ni cambia el nivel de aislamiento de tus transacciones de "
+"base de datos. Básicamente, usa Hibernate como usarías JDBC directo (o JTA/"
+"CMT) con tus recursos de base de datos."
 
-#: index.docbook:14
-msgid "Hibernate does not lock objects in memory. Your application can expect the behavior as defined by the isolation level of your database transactions. Note that thanks to the <literal>Session</literal>, which is also a transaction-scoped cache, Hibernate provides repeatable reads for lookup by identifier and entity queries (not reporting queries that return scalar values)."
-msgstr "Sin embargo, adem&#x00e1;s del versionado autom&#x00e1;tico, Hibernate ofrece una API (menor) para bloqueo pesimista de filas, usando la sint&#x00e1;xis <literal>SELECT FOR UPDATE</literal>. Esta API se discute m&#x00e1;s adelante en este cap&#x00ed;tulo:"
+#. Tag: para
+#: transactions.xml:14
+#, no-c-format
+msgid ""
+"Hibernate does not lock objects in memory. Your application can expect the "
+"behavior as defined by the isolation level of your database transactions. "
+"Note that thanks to the <literal>Session</literal>, which is also a "
+"transaction-scoped cache, Hibernate provides repeatable reads for lookup by "
+"identifier and entity queries (not reporting queries that return scalar "
+"values)."
+msgstr ""
+"Hibernate does not lock objects in memory. Your application can expect the "
+"behavior as defined by the isolation level of your database transactions. "
+"Note that thanks to the <literal>Session</literal>, which is also a "
+"transaction-scoped cache, Hibernate provides repeatable reads for lookup by "
+"identifier and entity queries (not reporting queries that return scalar "
+"values)."
 
-#: index.docbook:22
-msgid "In addition to versioning for automatic optimistic concurrency control, Hibernate also offers a (minor) API for pessimistic locking of rows, using the <literal>SELECT FOR UPDATE</literal> syntax. Optimistic concurrency control and this API are discussed later in this chapter."
-msgstr "Comenzamos la discusi&#x00f3;n del control de concurrencia en Hibernate con la granularidad de <literal>Configuration</literal>, <literal>SessionFactory</literal>, y <literal>Session</literal>, as&#x00ed; como la base de datos y las transacciones de aplicaci&#x00f3;n largas."
+#. Tag: para
+#: transactions.xml:22
+#, no-c-format
+msgid ""
+"In addition to versioning for automatic optimistic concurrency control, "
+"Hibernate also offers a (minor) API for pessimistic locking of rows, using "
+"the <literal>SELECT FOR UPDATE</literal> syntax. Optimistic concurrency "
+"control and this API are discussed later in this chapter."
+msgstr ""
+"Sin embargo, además del versionado automático, Hibernate ofrece una API "
+"(menor) para bloqueo pesimista de filas, usando la sintáxis <literal>SELECT "
+"FOR UPDATE</literal>. Esta API se discute más adelante en este capítulo:"
 
-#: index.docbook:29
-msgid "We start the discussion of concurrency control in Hibernate with the granularity of <literal>Configuration</literal>, <literal>SessionFactory</literal>, and <literal>Session</literal>, as well as database transactions and long conversations."
-msgstr "&#x00c1;mbitos de sesi&#x00f3;n y de transacci&#x00f3;n"
+#. Tag: para
+#: transactions.xml:29
+#, no-c-format
+msgid ""
+"We start the discussion of concurrency control in Hibernate with the "
+"granularity of <literal>Configuration</literal>, <literal>SessionFactory</"
+"literal>, and <literal>Session</literal>, as well as database transactions "
+"and long conversations."
+msgstr ""
+"Comenzamos la discusión del control de concurrencia en Hibernate con la "
+"granularidad de <literal>Configuration</literal>, <literal>SessionFactory</"
+"literal>, y <literal>Session</literal>, así como la base de datos y las "
+"transacciones de aplicación largas."
 
-#: index.docbook:36
+#. Tag: title
+#: transactions.xml:36
+#, no-c-format
 msgid "Session and transaction scopes"
-msgstr "Una <literal>SessionFactory</literal> es un objeto seguro entre hebras caro-de-crear pensado para ser compartido por todas las hebras de la aplicaci&#x00f3;n. Es creado una sola vez, usualmente en el arranque de la aplicaci&#x00f3;n, a partir de una instancia de <literal>Configuration</literal>."
+msgstr "Ámbitos de sesión y de transacción"
 
-#: index.docbook:38
-msgid "A <literal>SessionFactory</literal> is an expensive-to-create, threadsafe object intended to be shared by all application threads. It is created once, usually on application startup, from a <literal>Configuration</literal> instance."
-msgstr "Una <literal>Session</literal> es un objeto barato, inseguro entre hebras que debe ser usado una sola vez, para un solo proceso de negocio, una sola unidad de trabajo, y luego descartado. Una <literal>Session</literal> no obtendr&#x00e1; una <literal>Connection</literal> JDBC (o un <literal>Datasource</literal>) a menos que sea necesario, de modo que puedas abrir y cerrar seguramente una <literal>Session</literal> incluso si no est&#x00e1;s seguro que se necesitar&#x00e1; acceso a los datos para servir una petici&#x00f3;n en particular. (Esto se vuelve importante en cuanto est&#x00e9;s implementando alguno de los siguientes patrones usando intercepci&#x00f3;n de peticiones)."
+#. Tag: para
+#: transactions.xml:38
+#, no-c-format
+msgid ""
+"A <literal>SessionFactory</literal> is an expensive-to-create, threadsafe "
+"object intended to be shared by all application threads. It is created once, "
+"usually on application startup, from a <literal>Configuration</literal> "
+"instance."
+msgstr ""
+"Una <literal>SessionFactory</literal> es un objeto seguro entre hebras caro-"
+"de-crear pensado para ser compartido por todas las hebras de la aplicación. "
+"Es creado una sola vez, usualmente en el arranque de la aplicación, a partir "
+"de una instancia de <literal>Configuration</literal>."
 
-#: index.docbook:44
-msgid "A <literal>Session</literal> is an inexpensive, non-threadsafe object that should be used once, for a single request, a conversation, single unit of work, and then discarded. A <literal>Session</literal> will not obtain a JDBC <literal>Connection</literal> (or a <literal>Datasource</literal>) unless it is needed, hence consume no resources until used."
-msgstr "Para completar este cuadro tienes que pensar tambi&#x00e9;n en las transacciones de base de datos. Una transacci&#x00f3;n de base de datos tiene que ser tan corta como sea posible, para reducir la contenci&#x00f3;n de bloqueos en la base de datos. Las transacciones largas de base de datos prevendr&#x00e1;n a tu aplicaci&#x00f3;n de escalar a una carga altamente concurrente."
+#. Tag: para
+#: transactions.xml:44
+#, no-c-format
+msgid ""
+"A <literal>Session</literal> is an inexpensive, non-threadsafe object that "
+"should be used once, for a single request, a conversation, single unit of "
+"work, and then discarded. A <literal>Session</literal> will not obtain a "
+"JDBC <literal>Connection</literal> (or a <literal>Datasource</literal>) "
+"unless it is needed, hence consume no resources until used."
+msgstr ""
+"Una <literal>Session</literal> es un objeto barato, inseguro entre hebras "
+"que debe ser usado una sola vez, para un solo proceso de negocio, una sola "
+"unidad de trabajo, y luego descartado. Una <literal>Session</literal> no "
+"obtendrá una <literal>Connection</literal> JDBC (o un <literal>Datasource</"
+"literal>) a menos que sea necesario, de modo que puedas abrir y cerrar "
+"seguramente una <literal>Session</literal> incluso si no estás seguro que se "
+"necesitará acceso a los datos para servir una petición en particular. (Esto "
+"se vuelve importante en cuanto estés implementando alguno de los siguientes "
+"patrones usando intercepción de peticiones)."
 
-#: index.docbook:52
-msgid "To complete this picture you also have to think about database transactions. A database transaction has to be as short as possible, to reduce lock contention in the database. Long database transactions will prevent your application from scaling to highly concurrent load. Hence, it is almost never good design to hold a database transaction open during user think time, until the unit of work is complete."
-msgstr "&#x00bf;Qu&#x00e9; es el &#x00e1;mbito de una unidad de trabajo? &#x00bf;Puede una sola <literal>Session</literal> de Hibernate extenderse a trav&#x00e9;s de varias transacciones de base de datos o es &#x00e9;sta una relaci&#x00f3;n uno-a-uno de &#x00e1;mbitos? &#x00bf;Cu&#x00e1;ndo debes abrir y cerrar una <literal>Session</literal> y c&#x00f3;mo demarcas los l&#x00ed;mites de la transacci&#x00f3;n de base de datos?"
+#. Tag: para
+#: transactions.xml:52
+#, no-c-format
+msgid ""
+"To complete this picture you also have to think about database transactions. "
+"A database transaction has to be as short as possible, to reduce lock "
+"contention in the database. Long database transactions will prevent your "
+"application from scaling to highly concurrent load. Hence, it is almost "
+"never good design to hold a database transaction open during user think "
+"time, until the unit of work is complete."
+msgstr ""
+"Para completar este cuadro tienes que pensar también en las transacciones de "
+"base de datos. Una transacción de base de datos tiene que ser tan corta como "
+"sea posible, para reducir la contención de bloqueos en la base de datos. Las "
+"transacciones largas de base de datos prevendrán a tu aplicación de escalar "
+"a una carga altamente concurrente."
 
-#: index.docbook:61
-msgid "What is the scope of a unit of work? Can a single Hibernate <literal>Session</literal> span several database transactions or is this a one-to-one relationship of scopes? When should you open and close a <literal>Session</literal> and how do you demarcate the database transaction boundaries?"
-msgstr "Unidad de trabajo"
+#. Tag: para
+#: transactions.xml:61
+#, no-c-format
+msgid ""
+"What is the scope of a unit of work? Can a single Hibernate "
+"<literal>Session</literal> span several database transactions or is this a "
+"one-to-one relationship of scopes? When should you open and close a "
+"<literal>Session</literal> and how do you demarcate the database transaction "
+"boundaries?"
+msgstr ""
+"¿Qué es el ámbito de una unidad de trabajo? ¿Puede una sola "
+"<literal>Session</literal> de Hibernate extenderse a través de varias "
+"transacciones de base de datos o es ésta una relación uno-a-uno de ámbitos? "
+"¿Cuándo debes abrir y cerrar una <literal>Session</literal> y cómo demarcas "
+"los límites de la transacción de base de datos?"
 
-#: index.docbook:69
+#. Tag: title
+#: transactions.xml:69
+#, no-c-format
 msgid "Unit of work"
-msgstr "Primero, no uses el antipatr&#x00f3;n <emphasis>sesi&#x00f3;n-por-operaci&#x00f3;n</emphasis>, esto es, &#x00a1;no abras y cierres una <literal>Session</literal> para cada simple llamada a la base de datos en una sola hebra! Por supuesto, lo mismo es verdad para transacciones de base de datos. Las llamadas a base de datos en una aplicaci&#x00f3;n se hacen usando una secuencia prevista, que est&#x00e1;n agrupadas dentro de unidades de trabajo at&#x00f3;micas. (Nota que esto tambi&#x00e9;n significa que el auto-commit despu&#x00e9;s de cada una de las sentencias SQL es in&#x00fa;til en una aplicaci&#x00f3;n, este modo est&#x00e1; pensado para trabajo ad-hoc de consola SQL. Hibernate deshabilita, o espera que el servidor de aplicaciones lo haga, el modo auto-commit inmediatamente.)"
+msgstr "Unidad de trabajo"
 
-#: index.docbook:71
-msgid "First, don't use the <emphasis>session-per-operation</emphasis> antipattern, that is, don't open and close a <literal>Session</literal> for every simple database call in a single thread! Of course, the same is true for database transactions. Database calls in an application are made using a planned sequence, they are grouped into atomic units of work. (Note that this also means that auto-commit after every single SQL statement is useless in an application, this mode is intended for ad-hoc SQL console work. Hibernate disables, or expects the application server to do so, auto-commit mode immediately.) Database transactions are never optional, all communication with a database has to occur inside a transaction, no matter if you read or write data. As explained, auto-commit behavior for reading data should be avoided, as many small transactions are unlikely to perform better than one clearly defined unit of work. The latter is also much more maintainable and extensible."
-msgstr "El patr&#x00f3;n m&#x00e1;s com&#x00fa;n en una aplicaci&#x00f3;n mutiusuario cliente/servidor es <emphasis>sesi&#x00f3;n-por-petici&#x00f3;n</emphasis>. En este modelo, una petici&#x00f3;n del cliente es enviada al servidor (en donde se ejecuta la capa de persistencia de Hibernate), se abre una nueva <literal>Session</literal> de Hibernate, y todas las operaciones de base de datos se ejecutan en esta unidad de trabajo. Una vez completado el trabajo (y se ha preparado la respuesta para el cliente) la sesi&#x00f3;n es limpiada y cerrada. Podr&#x00ed;as usar una sola transacci&#x00f3;n de base de datos para servir a petici&#x00f3;n del cliente, comenz&#x00e1;ndola y comprometi&#x00e9;ndola cuando abres y cierras la <literal>Session</literal>. La relaci&#x00f3;n entre las dos es uno-a-uno y este modelo es a la medida perfecta de muchas aplicaciones."
+#. Tag: para
+#: transactions.xml:71
+#, no-c-format
+msgid ""
+"First, don't use the <emphasis>session-per-operation</emphasis> antipattern, "
+"that is, don't open and close a <literal>Session</literal> for every simple "
+"database call in a single thread! Of course, the same is true for database "
+"transactions. Database calls in an application are made using a planned "
+"sequence, they are grouped into atomic units of work. (Note that this also "
+"means that auto-commit after every single SQL statement is useless in an "
+"application, this mode is intended for ad-hoc SQL console work. Hibernate "
+"disables, or expects the application server to do so, auto-commit mode "
+"immediately.) Database transactions are never optional, all communication "
+"with a database has to occur inside a transaction, no matter if you read or "
+"write data. As explained, auto-commit behavior for reading data should be "
+"avoided, as many small transactions are unlikely to perform better than one "
+"clearly defined unit of work. The latter is also much more maintainable and "
+"extensible."
+msgstr ""
+"Primero, no uses el antipatrón <emphasis>sesión-por-operación</emphasis>, "
+"esto es, ¡no abras y cierres una <literal>Session</literal> para cada simple "
+"llamada a la base de datos en una sola hebra! Por supuesto, lo mismo es "
+"verdad para transacciones de base de datos. Las llamadas a base de datos en "
+"una aplicación se hacen usando una secuencia prevista, que están agrupadas "
+"dentro de unidades de trabajo atómicas. (Nota que esto también significa que "
+"el auto-commit después de cada una de las sentencias SQL es inútil en una "
+"aplicación, este modo está pensado para trabajo ad-hoc de consola SQL. "
+"Hibernate deshabilita, o espera que el servidor de aplicaciones lo haga, el "
+"modo auto-commit inmediatamente.)"
 
-#: index.docbook:87
-msgid "The most common pattern in a multi-user client/server application is <emphasis>session-per-request</emphasis>. In this model, a request from the client is send to the server (where the Hibernate persistence layer runs), a new Hibernate <literal>Session</literal> is opened, and all database operations are executed in this unit of work. Once the work has been completed (and the response for the client has been prepared), the session is flushed and closed. You would also use a single database transaction to serve the clients request, starting and committing it when you open and close the <literal>Session</literal>. The relationship between the two is one-to-one and this model is a perfect fit for many applications."
-msgstr "El desaf&#x00ed;o yace en la implementaci&#x00f3;n: no s&#x00f3;lo tienen que comenzarse y terminarse correctamente la <literal>Session</literal> y la transacci&#x00f3;n, sino que adem&#x00e1;s tienen que estar accesibles para las operaciones de acceso a datos. La demarcaci&#x00f3;n de una unidad de trabajo se implementa idealmente usando un interceptor que se ejecuta cuando una petici&#x00f3;n llama al servidor y anter que la respuesta sea enviada (es decir, un <literal>ServletFilter</literal>). Recomendamos ligar la <literal>Session</literal> a la hebra que atiende la petici&#x00f3;n, usando una variable <literal>ThreadLocal</literal>. Esto permite un f&#x00e1;cil acceso (como acceder a una variable static) en t&#x00f3;do el c&#x00f3;digo que se ejecuta en esta hebra. Dependiendo del mecanismo de demarcaci&#x00f3;n de transacciones de base de datos que elijas, podr&#x00ed;as mantener tambi&#x00e9;n el contexto de la transacci&#x00f3;n en una variable <literal>Thre!
 adLocal</literal>. Los patrones de implementaci&#x00f3;n para esto son conocidos como <emphasis>Sesi&#x00f3;n Local de Hebra (ThreadLocal Session)</emphasis> y <emphasis>Sesi&#x00f3;n Abierta en Vista (Open Session in View)</emphasis>. Puedes extender f&#x00e1;cilmente la clase de ayuda <literal>HibernateUtil</literal> mostrada anteriormente para encontrar una forma de implementar un interceptor e instalarlo en tu entorno. Ver el sitio web de Hibernate para consejos y ejemplos."
+#. Tag: para
+#: transactions.xml:87
+#, no-c-format
+msgid ""
+"The most common pattern in a multi-user client/server application is "
+"<emphasis>session-per-request</emphasis>. In this model, a request from the "
+"client is send to the server (where the Hibernate persistence layer runs), a "
+"new Hibernate <literal>Session</literal> is opened, and all database "
+"operations are executed in this unit of work. Once the work has been "
+"completed (and the response for the client has been prepared), the session "
+"is flushed and closed. You would also use a single database transaction to "
+"serve the clients request, starting and committing it when you open and "
+"close the <literal>Session</literal>. The relationship between the two is "
+"one-to-one and this model is a perfect fit for many applications."
+msgstr ""
+"El patrón más común en una aplicación mutiusuario cliente/servidor es "
+"<emphasis>sesión-por-petición</emphasis>. En este modelo, una petición del "
+"cliente es enviada al servidor (en donde se ejecuta la capa de persistencia "
+"de Hibernate), se abre una nueva <literal>Session</literal> de Hibernate, y "
+"todas las operaciones de base de datos se ejecutan en esta unidad de "
+"trabajo. Una vez completado el trabajo (y se ha preparado la respuesta para "
+"el cliente) la sesión es limpiada y cerrada. Podrías usar una sola "
+"transacción de base de datos para servir a petición del cliente, "
+"comenzándola y comprometiéndola cuando abres y cierras la <literal>Session</"
+"literal>. La relación entre las dos es uno-a-uno y este modelo es a la "
+"medida perfecta de muchas aplicaciones."
 
-#: index.docbook:99
-msgid "The challenge lies in the implementation. Hibernate provides built-in management of the \"current session\" to simplify this pattern. All you have to do is start a transaction when a server request has to be processed, and end the transaction before the response is send to the client. You can do this in any way you like, common solutions are <literal>ServletFilter</literal>, AOP interceptor with a pointcut on the service methods, or a proxy/interception container. An EJB container is a standardized way to implement cross-cutting aspects such as transaction demarcation on EJB session beans, declaratively with CMT. If you decide to use programmatic transaction demarcation, prefer the Hibernate <literal>Transaction</literal> API shown later in this chapter, for ease of use and code portability."
-msgstr "Transacciones de aplicaci&#x00f3;n"
+#. Tag: para
+#: transactions.xml:99
+#, no-c-format
+msgid ""
+"The challenge lies in the implementation. Hibernate provides built-in "
+"management of the \"current session\" to simplify this pattern. All you have "
+"to do is start a transaction when a server request has to be processed, and "
+"end the transaction before the response is send to the client. You can do "
+"this in any way you like, common solutions are <literal>ServletFilter</"
+"literal>, AOP interceptor with a pointcut on the service methods, or a proxy/"
+"interception container. An EJB container is a standardized way to implement "
+"cross-cutting aspects such as transaction demarcation on EJB session beans, "
+"declaratively with CMT. If you decide to use programmatic transaction "
+"demarcation, prefer the Hibernate <literal>Transaction</literal> API shown "
+"later in this chapter, for ease of use and code portability."
+msgstr ""
+"The challenge lies in the implementation. Hibernate provides built-in "
+"management of the \"current session\" to simplify this pattern. All you have "
+"to do is start a transaction when a server request has to be processed, and "
+"end the transaction before the response is send to the client. You can do "
+"this in any way you like, common solutions are <literal>ServletFilter</"
+"literal>, AOP interceptor with a pointcut on the service methods, or a proxy/"
+"interception container. An EJB container is a standardized way to implement "
+"cross-cutting aspects such as transaction demarcation on EJB session beans, "
+"declaratively with CMT. If you decide to use programmatic transaction "
+"demarcation, prefer the Hibernate <literal>Transaction</literal> API shown "
+"later in this chapter, for ease of use and code portability."
 
-#: index.docbook:112
-msgid "Your application code can access a \"current session\" to process the request by simply calling <literal>sessionFactory.getCurrentSession()</literal> anywhere and as often as needed. You will always get a <literal>Session</literal> scoped to the current database transaction. This has to be configured for either resource-local or JTA environments, see <xref linkend=\"architecture-current-session\"/>."
-msgstr "El patr&#x00f3;n sesi&#x00f3;n-por-petici&#x00f3;n no es el &#x00fa;nico concepto &#x00fa;til que puedes usar para dise&#x00f1;ar unidades de trabajo. Muchos procesos de negocio requiere una serie completa de interacciones con el usuario intercaladas con accesos a base de datos. En aplicaciones web y de empresa no es aceptable que una transacci&#x00f3;n de base de datos se extienda a trav&#x00e9;s de la interacci&#x00f3;n de un usuario. Considera el siguiente ejemplo:"
+#. Tag: para
+#: transactions.xml:112
+#, no-c-format
+msgid ""
+"Your application code can access a \"current session\" to process the "
+"request by simply calling <literal>sessionFactory.getCurrentSession()</"
+"literal> anywhere and as often as needed. You will always get a "
+"<literal>Session</literal> scoped to the current database transaction. This "
+"has to be configured for either resource-local or JTA environments, see "
+"<xref linkend=\"architecture-current-session\"/>."
+msgstr ""
+"Your application code can access a \"current session\" to process the "
+"request by simply calling <literal>sessionFactory.getCurrentSession()</"
+"literal> anywhere and as often as needed. You will always get a "
+"<literal>Session</literal> scoped to the current database transaction. This "
+"has to be configured for either resource-local or JTA environments, see "
+"<xref linkend=\"architecture-current-session\"/>."
 
-#: index.docbook:120
-msgid "Sometimes it is convenient to extend the scope of a <literal>Session</literal> and database transaction until the \"view has been rendered\". This is especially useful in servlet applications that utilize a separate rendering phase after the request has been processed. Extending the database transaction until view rendering is complete is easy to do if you implement your own interceptor. However, it is not easily doable if you rely on EJBs with container-managed transactions, as a transaction will be completed when an EJB method returns, before rendering of any view can start. See the Hibernate website and forum for tips and examples around this <emphasis>Open Session in View</emphasis> pattern."
-msgstr "Se abre la primera pantalla de un di&#x00e1;logo, los datos vistos por el usuario han sido cargados en una <literal>Session</literal> y transacci&#x00f3;n de base de datos particular. El usuario es libre de modificar los objetos."
+#. Tag: para
+#: transactions.xml:120
+#, no-c-format
+msgid ""
+"Sometimes it is convenient to extend the scope of a <literal>Session</"
+"literal> and database transaction until the \"view has been rendered\". This "
+"is especially useful in servlet applications that utilize a separate "
+"rendering phase after the request has been processed. Extending the database "
+"transaction until view rendering is complete is easy to do if you implement "
+"your own interceptor. However, it is not easily doable if you rely on EJBs "
+"with container-managed transactions, as a transaction will be completed when "
+"an EJB method returns, before rendering of any view can start. See the "
+"Hibernate website and forum for tips and examples around this <emphasis>Open "
+"Session in View</emphasis> pattern."
+msgstr ""
+"Sometimes it is convenient to extend the scope of a <literal>Session</"
+"literal> and database transaction until the \"view has been rendered\". This "
+"is especially useful in servlet applications that utilize a separate "
+"rendering phase after the request has been processed. Extending the database "
+"transaction until view rendering is complete is easy to do if you implement "
+"your own interceptor. However, it is not easily doable if you rely on EJBs "
+"with container-managed transactions, as a transaction will be completed when "
+"an EJB method returns, before rendering of any view can start. See the "
+"Hibernate website and forum for tips and examples around this <emphasis>Open "
+"Session in View</emphasis> pattern."
 
-#: index.docbook:135
+#. Tag: title
+#: transactions.xml:135
+#, no-c-format
 msgid "Long conversations"
-msgstr "El usuario hace click en \"Salvar\" despu&#x00e9;s de 5 minutos y espera que sus modificaciones sean hechas persistentes. Tambi&#x00e9;n espera que &#x00e9;l sea la &#x00fa;nica persona editando esta informaci&#x00f3;n y que no puede ocurrir ninguna modificaci&#x00f3;n en conflicto."
+msgstr "Transacciones de aplicación"
 
-#: index.docbook:137
-msgid "The session-per-request pattern is not the only useful concept you can use to design units of work. Many business processes require a whole series of interactions with the user interleaved with database accesses. In web and enterprise applications it is not acceptable for a database transaction to span a user interaction. Consider the following example:"
-msgstr "Llamamos a esto unidad de trabajo, desde el punto de vista del usuario, una larga <emphasis>transacci&#x00f3;n de aplicaci&#x00f3;n</emphasis> ejecut&#x00e1;ndose. Hay muchas formas en que puedes implementar esto en tu aplicaci&#x00f3;n."
+#. Tag: para
+#: transactions.xml:137
+#, no-c-format
+msgid ""
+"The session-per-request pattern is not the only useful concept you can use "
+"to design units of work. Many business processes require a whole series of "
+"interactions with the user interleaved with database accesses. In web and "
+"enterprise applications it is not acceptable for a database transaction to "
+"span a user interaction. Consider the following example:"
+msgstr ""
+"El patrón sesión-por-petición no es el único concepto útil que puedes usar "
+"para diseñar unidades de trabajo. Muchos procesos de negocio requiere una "
+"serie completa de interacciones con el usuario intercaladas con accesos a "
+"base de datos. En aplicaciones web y de empresa no es aceptable que una "
+"transacción de base de datos se extienda a través de la interacción de un "
+"usuario. Considera el siguiente ejemplo:"
 
-#: index.docbook:147
-msgid "The first screen of a dialog opens, the data seen by the user has been loaded in a particular <literal>Session</literal> and database transaction. The user is free to modify the objects."
-msgstr "Una primera implementaci&#x00f3;n ingenua podr&#x00ed;a mantener abierta la <literal>Session</literal> y la transacci&#x00f3;n de base de datos durante el tiempo de pensar del usuario, con bloqueos tomados en la base de datos para prevenir la modificaci&#x00f3;n concurrente, y para garantizar aislamiento y atomicidad. Esto es, por supuesto, un antipatr&#x00f3;n, ya que la contenci&#x00f3;n de bloqueo no permitir&#x00ed;a a la aplicaci&#x00f3;n escalar con el n&#x00fa;mero de usuarios concurrentes."
+#. Tag: para
+#: transactions.xml:147
+#, no-c-format
+msgid ""
+"The first screen of a dialog opens, the data seen by the user has been "
+"loaded in a particular <literal>Session</literal> and database transaction. "
+"The user is free to modify the objects."
+msgstr ""
+"Se abre la primera pantalla de un diálogo, los datos vistos por el usuario "
+"han sido cargados en una <literal>Session</literal> y transacción de base de "
+"datos particular. El usuario es libre de modificar los objetos."
 
-#: index.docbook:154
-msgid "The user clicks \"Save\" after 5 minutes and expects his modifications to be made persistent; he also expects that he was the only person editing this information and that no conflicting modification can occur."
-msgstr "Claramente, tenemos que usar muchas transacciones de base de datos para implementar la transacci&#x00f3;n de aplicaci&#x00f3;n. En este caso, mantener el aislamiento de los procesos de negocio se vuelve una responsabilidad parcial de la capa de aplicaci&#x00f3;n. Una sola transacci&#x00f3;n de aplicaci&#x00f3;n usualmente abarca varias transacciones de base de datos. Ser&#x00e1; at&#x00f3;mica si s&#x00f3;lo una de estas transacciones de base de datos (la &#x00fa;ltima) almacena los datos actualizados, todas las otras simplemente leen datos (por ejemplo, en un di&#x00e1;logo estilo-asistente abarcando muchos ciclos petici&#x00f3;n/respuesta). Esto es m&#x00e1;s f&#x00e1;cil de implementar de lo que suena, especialmente si usas las funcionalidades de Hibernate:"
+#. Tag: para
+#: transactions.xml:154
+#, no-c-format
+msgid ""
+"The user clicks \"Save\" after 5 minutes and expects his modifications to be "
+"made persistent; he also expects that he was the only person editing this "
+"information and that no conflicting modification can occur."
+msgstr ""
+"El usuario hace click en \"Salvar\" después de 5 minutos y espera que sus "
+"modificaciones sean hechas persistentes. También espera que él sea la única "
+"persona editando esta información y que no puede ocurrir ninguna "
+"modificación en conflicto."
 
-#: index.docbook:162
-msgid "We call this unit of work, from the point of view of the user, a long running <emphasis>conversation</emphasis> (or <emphasis>application transaction</emphasis>). There are many ways how you can implement this in your application."
-msgstr "<emphasis>Versionado Autom&#x00e1;tico</emphasis> - Hibernate puede llevar un control autom&#x00e1;tico de concurrencia optimista por ti, puede detectar autom&#x00e1;ticamente si una modificaci&#x00f3;n concurrente ha ocurrido durante el tiempo de pensar del usuario."
+#. Tag: para
+#: transactions.xml:162
+#, no-c-format
+msgid ""
+"We call this unit of work, from the point of view of the user, a long "
+"running <emphasis>conversation</emphasis> (or <emphasis>application "
+"transaction</emphasis>). There are many ways how you can implement this in "
+"your application."
+msgstr ""
+"Llamamos a esto unidad de trabajo, desde el punto de vista del usuario, una "
+"larga <emphasis>transacción de aplicación</emphasis> ejecutándose. Hay "
+"muchas formas en que puedes implementar esto en tu aplicación."
 
-#: index.docbook:168
-msgid "A first naive implementation might keep the <literal>Session</literal> and database transaction open during user think time, with locks held in the database to prevent concurrent modification, and to guarantee isolation and atomicity. This is of course an anti-pattern, since lock contention would not allow the application to scale with the number of concurrent users."
-msgstr "<emphasis>Objetos Separados</emphasis> - Si decides usar el ya discutido patr&#x00f3;n de <emphasis>sesi&#x00f3;n-por-petici&#x00f3;n</emphasis>, todas las instancias cargadas estar&#x00e1;n en estado separado durante el tiempo de pensar del usuario. Hibernate te permite volver a unir los objetos y hacer persistentes las modificaciones. El patr&#x00f3;n se llama <emphasis>sesi&#x00f3;n-por-petici&#x00f3;n-con-objetos-separados</emphasis>. Se usa versionado autom&#x00e1;tico para aislar las modificaciones concurrentes."
+#. Tag: para
+#: transactions.xml:168
+#, no-c-format
+msgid ""
+"A first naive implementation might keep the <literal>Session</literal> and "
+"database transaction open during user think time, with locks held in the "
+"database to prevent concurrent modification, and to guarantee isolation and "
+"atomicity. This is of course an anti-pattern, since lock contention would "
+"not allow the application to scale with the number of concurrent users."
+msgstr ""
+"Una primera implementación ingenua podría mantener abierta la "
+"<literal>Session</literal> y la transacción de base de datos durante el "
+"tiempo de pensar del usuario, con bloqueos tomados en la base de datos para "
+"prevenir la modificación concurrente, y para garantizar aislamiento y "
+"atomicidad. Esto es, por supuesto, un antipatrón, ya que la contención de "
+"bloqueo no permitiría a la aplicación escalar con el número de usuarios "
+"concurrentes."
 
-#: index.docbook:176
-msgid "Clearly, we have to use several database transactions to implement the converastion. In this case, maintaining isolation of business processes becomes the partial responsibility of the application tier. A single conversation usually spans several database transactions. It will be atomic if only one of these database transactions (the last one) stores the updated data, all others simply read data (e.g. in a wizard-style dialog spanning several request/response cycles). This is easier to implement than it might sound, especially if you use Hibernate's features:"
-msgstr "<emphasis>Sesi&#x00f3;n Larga</emphasis> - La <literal>Session</literal> de Hibernate puede ser desconectada de la conexi&#x00f3;n JDBC subyacente despu&#x00e9;s que se haya sido comprometida la transacci&#x00f3;n de base de datos, y reconectada cuando ocurra una nueva petici&#x00f3;n del cliente. Este patr&#x00f3;n es conocido como <emphasis>sesi&#x00f3;n-por-transacci&#x00f3;n-de-aplicaci&#x00f3;n</emphasis> y hace la re-uni&#x00f3;n innecesaria. Para aislar las modificaciones concurrentes se usa el versionado autom&#x00e1;tico."
+#. Tag: para
+#: transactions.xml:176
+#, no-c-format
+msgid ""
+"Clearly, we have to use several database transactions to implement the "
+"converastion. In this case, maintaining isolation of business processes "
+"becomes the partial responsibility of the application tier. A single "
+"conversation usually spans several database transactions. It will be atomic "
+"if only one of these database transactions (the last one) stores the updated "
+"data, all others simply read data (e.g. in a wizard-style dialog spanning "
+"several request/response cycles). This is easier to implement than it might "
+"sound, especially if you use Hibernate's features:"
+msgstr ""
+"Claramente, tenemos que usar muchas transacciones de base de datos para "
+"implementar la transacción de aplicación. En este caso, mantener el "
+"aislamiento de los procesos de negocio se vuelve una responsabilidad parcial "
+"de la capa de aplicación. Una sola transacción de aplicación usualmente "
+"abarca varias transacciones de base de datos. Será atómica si sólo una de "
+"estas transacciones de base de datos (la última) almacena los datos "
+"actualizados, todas las otras simplemente leen datos (por ejemplo, en un "
+"diálogo estilo-asistente abarcando muchos ciclos petición/respuesta). Esto "
+"es más fácil de implementar de lo que suena, especialmente si usas las "
+"funcionalidades de Hibernate:"
 
-#: index.docbook:189
-msgid "<emphasis>Automatic Versioning</emphasis> - Hibernate can do automatic optimistic concurrency control for you, it can automatically detect if a concurrent modification occured during user think time. Usually we only check at the end of the conversation."
-msgstr "Tanto <emphasis>sesi&#x00f3;n-por-petici&#x00f3;n-con-objetos-separados</emphasis> como <emphasis>sesi&#x00f3;n-por-transacci&#x00f3;n-de-aplicaci&#x00f3;n</emphasis>, ambas tienen ventajas y desventajas, las discutimos m&#x00e1;s adelante en este cap&#x00ed;tulo en el contexto del control optimista de concurrencia."
+#. Tag: para
+#: transactions.xml:189
+#, no-c-format
+msgid ""
+"<emphasis>Automatic Versioning</emphasis> - Hibernate can do automatic "
+"optimistic concurrency control for you, it can automatically detect if a "
+"concurrent modification occured during user think time. Usually we only "
+"check at the end of the conversation."
+msgstr ""
+"<emphasis>Versionado Automático</emphasis> - Hibernate puede llevar un "
+"control automático de concurrencia optimista por ti, puede detectar "
+"automáticamente si una modificación concurrente ha ocurrido durante el "
+"tiempo de pensar del usuario."
 
-#: index.docbook:197
-msgid "<emphasis>Detached Objects</emphasis> - If you decide to use the already discussed <emphasis>session-per-request</emphasis> pattern, all loaded instances will be in detached state during user think time. Hibernate allows you to reattach the objects and persist the modifications, the pattern is called <emphasis>session-per-request-with-detached-objects</emphasis>. Automatic versioning is used to isolate concurrent modifications."
-msgstr "Considerando la identidad del objeto"
+#. Tag: para
+#: transactions.xml:197
+#, no-c-format
+msgid ""
+"<emphasis>Detached Objects</emphasis> - If you decide to use the already "
+"discussed <emphasis>session-per-request</emphasis> pattern, all loaded "
+"instances will be in detached state during user think time. Hibernate allows "
+"you to reattach the objects and persist the modifications, the pattern is "
+"called <emphasis>session-per-request-with-detached-objects</emphasis>. "
+"Automatic versioning is used to isolate concurrent modifications."
+msgstr ""
+"<emphasis>Objetos Separados</emphasis> - Si decides usar el ya discutido "
+"patrón de <emphasis>sesión-por-petición</emphasis>, todas las instancias "
+"cargadas estarán en estado separado durante el tiempo de pensar del usuario. "
+"Hibernate te permite volver a unir los objetos y hacer persistentes las "
+"modificaciones. El patrón se llama <emphasis>sesión-por-petición-con-objetos-"
+"separados</emphasis>. Se usa versionado automático para aislar las "
+"modificaciones concurrentes."
 
-#: index.docbook:207
-msgid "<emphasis>Extended (or Long) Session</emphasis> - The Hibernate <literal>Session</literal> may be disconnected from the underlying JDBC connection after the database transaction has been committed, and reconnected when a new client request occurs. This pattern is known as <emphasis>session-per-conversation</emphasis> and makes even reattachment unnecessary. Automatic versioning is used to isolate concurrent modifications and the <literal>Session</literal> is usually not allowed to be flushed automatically, but explicitely."
-msgstr "Una aplicaci&#x00f3;n puede acceder concurrentemente a el mismo estado persistente en dos <literal>Session</literal>s diferentes. Sin embargo, una instancia de una clase persistente nunca se comparte entre dos instancias de <literal>Session</literal>. Por lo tanto existen dos nociones diferentes de identidad:"
+#. Tag: para
+#: transactions.xml:207
+#, no-c-format
+msgid ""
+"<emphasis>Extended (or Long) Session</emphasis> - The Hibernate "
+"<literal>Session</literal> may be disconnected from the underlying JDBC "
+"connection after the database transaction has been committed, and "
+"reconnected when a new client request occurs. This pattern is known as "
+"<emphasis>session-per-conversation</emphasis> and makes even reattachment "
+"unnecessary. Automatic versioning is used to isolate concurrent "
+"modifications and the <literal>Session</literal> is usually not allowed to "
+"be flushed automatically, but explicitely."
+msgstr ""
+"<emphasis>Sesión Larga</emphasis> - La <literal>Session</literal> de "
+"Hibernate puede ser desconectada de la conexión JDBC subyacente después que "
+"se haya sido comprometida la transacción de base de datos, y reconectada "
+"cuando ocurra una nueva petición del cliente. Este patrón es conocido como "
+"<emphasis>sesión-por-transacción-de-aplicación</emphasis> y hace la re-unión "
+"innecesaria. Para aislar las modificaciones concurrentes se usa el "
+"versionado automático."
 
-#: index.docbook:220
-msgid "Both <emphasis>session-per-request-with-detached-objects</emphasis> and <emphasis>session-per-conversation</emphasis> have advantages and disadvantages, we discuss them later in this chapter in the context of optimistic concurrency control."
-msgstr "Identidad de Base de Datos"
+#. Tag: para
+#: transactions.xml:220
+#, no-c-format
+msgid ""
+"Both <emphasis>session-per-request-with-detached-objects</emphasis> and "
+"<emphasis>session-per-conversation</emphasis> have advantages and "
+"disadvantages, we discuss them later in this chapter in the context of "
+"optimistic concurrency control."
+msgstr ""
+"Tanto <emphasis>sesión-por-petición-con-objetos-separados</emphasis> como "
+"<emphasis>sesión-por-transacción-de-aplicación</emphasis>, ambas tienen "
+"ventajas y desventajas, las discutimos más adelante en este capítulo en el "
+"contexto del control optimista de concurrencia."
 
-#: index.docbook:229
+#. Tag: title
+#: transactions.xml:229
+#, no-c-format
 msgid "Considering object identity"
-msgstr "foo.getId().equals( bar.getId() )"
+msgstr "Considerando la identidad del objeto"
 
-#: index.docbook:231
-msgid "An application may concurrently access the same persistent state in two different <literal>Session</literal>s. However, an instance of a persistent class is never shared between two <literal>Session</literal> instances. Hence there are two different notions of identity:"
-msgstr "Identidad JVM"
+#. Tag: para
+#: transactions.xml:231
+#, no-c-format
+msgid ""
+"An application may concurrently access the same persistent state in two "
+"different <literal>Session</literal>s. However, an instance of a persistent "
+"class is never shared between two <literal>Session</literal> instances. "
+"Hence there are two different notions of identity:"
+msgstr ""
+"Una aplicación puede acceder concurrentemente a el mismo estado persistente "
+"en dos <literal>Session</literal>s diferentes. Sin embargo, una instancia de "
+"una clase persistente nunca se comparte entre dos instancias de "
+"<literal>Session</literal>. Por lo tanto existen dos nociones diferentes de "
+"identidad:"
 
-#: index.docbook:240
+#. Tag: term
+#: transactions.xml:240
+#, no-c-format
 msgid "Database Identity"
-msgstr "foo==bar"
+msgstr "Identidad de Base de Datos"
 
-#: index.docbook:243
+#. Tag: literal
+#: transactions.xml:243
+#, no-c-format
 msgid "foo.getId().equals( bar.getId() )"
-msgstr "Entonces para objetos unidos a una <literal>Session</literal> <emphasis>en particular</emphasis> (es decir en el &#x00e1;mbito de una <literal>Session</literal>) las dos nociones son equivalentes, y la identidad JVM para la identidad de base de datos est&#x00e1; garantizada por Hibernate. Sin embargo, mientras la aplicaci&#x00f3;n acceda concurrentemente al \"mismo\" (identidad persistente) objeto de negocio en dos sesiones diferentes, las dos instancias ser&#x00e1;n realmente \"diferentes\" (identidad JVM). Los conflictos se resuelven (con versionado autom&#x00e1;tico) en tiempo de limpieza (flush) usando un enfoque optimista."
+msgstr "foo.getId().equals( bar.getId() )"
 
-#: index.docbook:248
+#. Tag: term
+#: transactions.xml:248
+#, no-c-format
 msgid "JVM Identity"
-msgstr "Este enfoque deja que Hibernate y la base de datos se preocupen sobre la concurrencia. Adem&#x00e1;s provee la mejor escalabilidad, ya que garantizando la identidad un unidades de trabajo monohebra no se necesitan bloqueos caros u otros medios de sincronizaci&#x00f3;n. La aplicaci&#x00f3;n nunca necesita sincronizar sobre ning&#x00fa;n objeto de negocio, siempre que se apegue a una sola hebra por <literal>Session</literal>. Dentro de una <literal>Session</literal> la aplicaci&#x00f3;n puede usar con seguridad <literal>==</literal> para comparar objetos."
+msgstr "Identidad JVM"
 
-#: index.docbook:251
+#. Tag: literal
+#: transactions.xml:251
+#, no-c-format
 msgid "foo==bar"
-msgstr "Sin embargo, una aplicaci&#x00f3;n que usa <literal>==</literal> fuera de una <literal>Session</literal>, podr&#x00ed;a ver resultados inesperados. Esto podr&#x00ed;a ocurrir incluso en sitios algo inesperados, por ejemplo, si pones dos instancias separadas dentro del mismo <literal>Set</literal>. Ambas podr&#x00ed;an tener la misma identidad de base de datos (es decir, representar la misma fila), pero la identidad JVM, por definici&#x00f3;n, no est&#x00e1; garantizada para las instancias en estado separado. El desarrollador tiene que sobrescribir los m&#x00e9;todos <literal>equals()</literal> y <literal>hashCode()</literal> en las clases persistentes e implementar su propia noci&#x00f3;n de igualdad de objetos. Hay una advertencia: Nunca uses el identificador de base de datos para implementar la igualdad, usa una clave de negocio, una combinaci&#x00f3;n de atributos &#x00fa;nicos, usualmente inmutables. El identificador de base de datos cambiar&#x00e1; si un objeto!
  transitorio es hecho persistente. Si la instancia transitoria (usualmente junta a instancias separadas) es mantenida en un <literal>Set</literal>, cambiar el c&#x00f3;digo hash rompe el contrato del <literal>Set</literal>. Los atributos para las claves de negocio no tienen que ser tan estables como las claves primarias de base de datos, s&#x00f3;lo tienes que garantizar estabilidad en tanto los objetos est&#x00e9;n en el mismo <literal>Set</literal>. Mira el sitio web de Hibernate para una discusi&#x00f3;n m&#x00e1;s cuidadosa de este tema. Nota tambi&#x00e9;n que &#x00e9;ste no es un tema de Hibernate, sino simplemente c&#x00f3;mo la identidad y la igualdad de los objetos Java tiene que ser implementada."
+msgstr "foo==bar"
 
-#: index.docbook:257
-msgid "Then for objects attached to a <emphasis>particular</emphasis> <literal>Session</literal> (i.e. in the scope of a <literal>Session</literal>) the two notions are equivalent, and JVM identity for database identity is guaranteed by Hibernate. However, while the application might concurrently access the \"same\" (persistent identity) business object in two different sessions, the two instances will actually be \"different\" (JVM identity). Conflicts are resolved using (automatic versioning) at flush/commit time, using an optimistic approach."
-msgstr "Temas comunes"
+#. Tag: para
+#: transactions.xml:257
+#, fuzzy, no-c-format
+msgid ""
+"Then for objects attached to a <emphasis>particular</emphasis> "
+"<literal>Session</literal> (i.e. in the scope of a <literal>Session</"
+"literal>) the two notions are equivalent, and JVM identity for database "
+"identity is guaranteed by Hibernate. However, while the application might "
+"concurrently access the \"same\" (persistent identity) business object in "
+"two different sessions, the two instances will actually be \"different"
+"\" (JVM identity). Conflicts are resolved using (automatic versioning) at "
+"flush/commit time, using an optimistic approach."
+msgstr ""
+"Entonces para objetos unidos a una <literal>Session</literal><emphasis>en "
+"particular</emphasis> (es decir en el ámbito de una <literal>Session</"
+"literal>) las dos nociones son equivalentes, y la identidad JVM para la "
+"identidad de base de datos está garantizada por Hibernate. Sin embargo, "
+"mientras la aplicación acceda concurrentemente al \"mismo\" (identidad "
+"persistente) objeto de negocio en dos sesiones diferentes, las dos "
+"instancias serán realmente \"diferentes\" (identidad JVM). Los conflictos se "
+"resuelven (con versionado automático) en tiempo de limpieza (flush) usando "
+"un enfoque optimista."
 
-#: index.docbook:266
-msgid "This approach leaves Hibernate and the database to worry about concurrency; it also provides the best scalability, since guaranteeing identity in single-threaded units of work only doesn't need expensive locking or other means of synchronization. The application never needs to synchronize on any business object, as long as it sticks to a single thread per <literal>Session</literal>. Within a <literal>Session</literal> the application may safely use <literal>==</literal> to compare objects."
-msgstr "Nunca uses los antipatrones <emphasis>sesi&#x00f3;n-por-sesi&#x00f3;n-de-usuario</emphasis> o <emphasis>sesi&#x00f3;n-por-aplicaci&#x00f3;n</emphasis> (por supuesto, hay raras excepciones a esta regla). Nota que algunis de los siguientes temas podr&#x00ed;an tambi&#x00e9;n aparecer con los patrones recomendados. Aseg&#x00fa;rate que entiendes las implicaciones antes de tomar una decisi&#x00f3;n de dise&#x00f1;o:"
+#. Tag: para
+#: transactions.xml:266
+#, no-c-format
+msgid ""
+"This approach leaves Hibernate and the database to worry about concurrency; "
+"it also provides the best scalability, since guaranteeing identity in single-"
+"threaded units of work only doesn't need expensive locking or other means of "
+"synchronization. The application never needs to synchronize on any business "
+"object, as long as it sticks to a single thread per <literal>Session</"
+"literal>. Within a <literal>Session</literal> the application may safely use "
+"<literal>==</literal> to compare objects."
+msgstr ""
+"Este enfoque deja que Hibernate y la base de datos se preocupen sobre la "
+"concurrencia. Además provee la mejor escalabilidad, ya que garantizando la "
+"identidad un unidades de trabajo monohebra no se necesitan bloqueos caros u "
+"otros medios de sincronización. La aplicación nunca necesita sincronizar "
+"sobre ningún objeto de negocio, siempre que se apegue a una sola hebra por "
+"<literal>Session</literal>. Dentro de una <literal>Session</literal> la "
+"aplicación puede usar con seguridad <literal>==</literal> para comparar "
+"objetos."
 
-#: index.docbook:275
-msgid "However, an application that uses <literal>==</literal> outside of a <literal>Session</literal>, might see unexpected results. This might occur even in some unexpected places, for example, if you put two detached instances into the same <literal>Set</literal>. Both might have the same database identity (i.e. they represent the same row), but JVM identity is by definition not guaranteed for instances in detached state. The developer has to override the <literal>equals()</literal> and <literal>hashCode()</literal> methods in persistent classes and implement his own notion of object equality. There is one caveat: Never use the database identifier to implement equality, use a business key, a combination of unique, usually immutable, attributes. The database identifier will change if a transient object is made persistent. If the transient instance (usually together with detached instances) is held in a <literal>Set</literal>, changing the hashcode breaks the contract of t!
 he <literal>Set</literal>. Attributes for business keys don't have to be as stable as database primary keys, you only have to guarantee stability as long as the objects are in the same <literal>Set</literal>. See the Hibernate website for a more thorough discussion of this issue. Also note that this is not a Hibernate issue, but simply how Java object identity and equality has to be implemented."
-msgstr "Una <literal>Session</literal> no es segura entre hebras. Las cosas que se suponen que funcionan concurrentemente, como peticiones HTTP, beans de sesi&#x00f3;n, o workers de Swing, provocar&#x00e1;n condiciones de competencia si una instancia de <literal>Session</literal> fuese compartida. Si guardas tu <literal>Session</literal> de Hibernate en tu <literal>HttpSession</literal> (discutido m&#x00e1;s adelante), debes considerar sincronizar el acceso a tu sesi&#x00f3;n HTTP. De otro modo, un usuario que hace click lo suficientemente r&#x00e1;pido puede llegar a usar la misma <literal>Session</literal> en dos hebras ejecut&#x00e1;ndose concurrentemente."
+#. Tag: para
+#: transactions.xml:275
+#, no-c-format
+msgid ""
+"However, an application that uses <literal>==</literal> outside of a "
+"<literal>Session</literal>, might see unexpected results. This might occur "
+"even in some unexpected places, for example, if you put two detached "
+"instances into the same <literal>Set</literal>. Both might have the same "
+"database identity (i.e. they represent the same row), but JVM identity is by "
+"definition not guaranteed for instances in detached state. The developer has "
+"to override the <literal>equals()</literal> and <literal>hashCode()</"
+"literal> methods in persistent classes and implement his own notion of "
+"object equality. There is one caveat: Never use the database identifier to "
+"implement equality, use a business key, a combination of unique, usually "
+"immutable, attributes. The database identifier will change if a transient "
+"object is made persistent. If the transient instance (usually together with "
+"detached instances) is held in a <literal>Set</literal>, changing the "
+"hashcode breaks the contract of the <literal>Set</literal>. Attributes for "
+"business keys don't have to be as stable as database primary keys, you only "
+"have to guarantee stability as long as the objects are in the same "
+"<literal>Set</literal>. See the Hibernate website for a more thorough "
+"discussion of this issue. Also note that this is not a Hibernate issue, but "
+"simply how Java object identity and equality has to be implemented."
+msgstr ""
+"Sin embargo, una aplicación que usa <literal>==</literal> fuera de una "
+"<literal>Session</literal>, podría ver resultados inesperados. Esto podría "
+"ocurrir incluso en sitios algo inesperados, por ejemplo, si pones dos "
+"instancias separadas dentro del mismo <literal>Set</literal>. Ambas podrían "
+"tener la misma identidad de base de datos (es decir, representar la misma "
+"fila), pero la identidad JVM, por definición, no está garantizada para las "
+"instancias en estado separado. El desarrollador tiene que sobrescribir los "
+"métodos <literal>equals()</literal> y <literal>hashCode()</literal> en las "
+"clases persistentes e implementar su propia noción de igualdad de objetos. "
+"Hay una advertencia: Nunca uses el identificador de base de datos para "
+"implementar la igualdad, usa una clave de negocio, una combinación de "
+"atributos únicos, usualmente inmutables. El identificador de base de datos "
+"cambiará si un objeto transitorio es hecho persistente. Si la instancia "
+"transitoria (usualmente junta a instancias separadas) es mantenida en un "
+"<literal>Set</literal>, cambiar el código hash rompe el contrato del "
+"<literal>Set</literal>. Los atributos para las claves de negocio no tienen "
+"que ser tan estables como las claves primarias de base de datos, sólo tienes "
+"que garantizar estabilidad en tanto los objetos estén en el mismo "
+"<literal>Set</literal>. Mira el sitio web de Hibernate para una discusión "
+"más cuidadosa de este tema. Nota también que éste no es un tema de "
+"Hibernate, sino simplemente cómo la identidad y la igualdad de los objetos "
+"Java tiene que ser implementada."
 
-#: index.docbook:296
+#. Tag: title
+#: transactions.xml:296
+#, no-c-format
 msgid "Common issues"
-msgstr "Una excepci&#x00f3;n lanzada por Hibernate significa que tienes que deshacer (rollback) tu transacci&#x00f3;n de base de datos y cerrar la <literal>Session</literal> inmediatamente (discutido en m&#x00e1;s detalle luego). Si tu <literal>Session</literal> est&#x00e1; ligada a la aplicaci&#x00f3;n, tienes que parar la aplicaci&#x00f3;n. Deshacer (rollback) la transacci&#x00f3;n de base de datos no pone a tus objetos de vuelta al estado en que estaban al comienzo de la transacci&#x00f3;n. Esto significa que el estado de la base de datos y los objetos de negocio quedan fuera de sincron&#x00ed;a. Usualmente esto no es un problema, pues las excepciones no son recuperables y tienes que volver a comenzar despu&#x00e9;s del rollback de todos modos."
+msgstr "Temas comunes"
 
-#: index.docbook:298
-msgid "Never use the anti-patterns <emphasis>session-per-user-session</emphasis> or <emphasis>session-per-application</emphasis> (of course, there are rare exceptions to this rule). Note that some of the following issues might also appear with the recommended patterns, make sure you understand the implications before making a design decision:"
-msgstr "La <literal>Session</literal> pone en cach&#x00e9; todo objeto que est&#x00e9; en estado persistente (vigilado y chequeado por estado sucio por Hibernate). Esto significa que crece sin fin hasta que obtienes una OutOfMemoryException, si la mantienes abierta por un largo tiempo o simplemente cargas demasiados datos. Una soluci&#x00f3;n para esto es llamar a <literal>clear()</literal> y <literal>evict()</literal> para gestionar el cach&#x00e9; de la <literal>Session</literal>, pero probalemente debas considerar un procedimiento almacenado si necesitas operaciones de datos masivas. Se muestran algunas soluciones en <xref linkend=\"batch\"/>. Mantener una <literal>Session</literal> abierta por la duraci&#x00f3;n de una sesi&#x00f3;n de usuario significa tambi&#x00e9;n una alta probabilidad de datos a&#x00f1;ejos."
+#. Tag: para
+#: transactions.xml:298
+#, no-c-format
+msgid ""
+"Never use the anti-patterns <emphasis>session-per-user-session</emphasis> or "
+"<emphasis>session-per-application</emphasis> (of course, there are rare "
+"exceptions to this rule). Note that some of the following issues might also "
+"appear with the recommended patterns, make sure you understand the "
+"implications before making a design decision:"
+msgstr ""
+"Nunca uses los antipatrones <emphasis>sesión-por-sesión-de-usuario</"
+"emphasis> o <emphasis>sesión-por-aplicación</emphasis> (por supuesto, hay "
+"raras excepciones a esta regla). Nota que algunis de los siguientes temas "
+"podrían también aparecer con los patrones recomendados. Asegúrate que "
+"entiendes las implicaciones antes de tomar una decisión de diseño:"
 
-#: index.docbook:307
-msgid "A <literal>Session</literal> is not thread-safe. Things which are supposed to work concurrently, like HTTP requests, session beans, or Swing workers, will cause race conditions if a <literal>Session</literal> instance would be shared. If you keep your Hibernate <literal>Session</literal> in your <literal>HttpSession</literal> (discussed later), you should consider synchronizing access to your Http session. Otherwise, a user that clicks reload fast enough may use the same <literal>Session</literal> in two concurrently running threads."
-msgstr "Demarcaci&#x00f3;n de la transacci&#x00f3;n de base de datos"
+#. Tag: para
+#: transactions.xml:307
+#, no-c-format
+msgid ""
+"A <literal>Session</literal> is not thread-safe. Things which are supposed "
+"to work concurrently, like HTTP requests, session beans, or Swing workers, "
+"will cause race conditions if a <literal>Session</literal> instance would be "
+"shared. If you keep your Hibernate <literal>Session</literal> in your "
+"<literal>HttpSession</literal> (discussed later), you should consider "
+"synchronizing access to your Http session. Otherwise, a user that clicks "
+"reload fast enough may use the same <literal>Session</literal> in two "
+"concurrently running threads."
+msgstr ""
+"Una <literal>Session</literal> no es segura entre hebras. Las cosas que se "
+"suponen que funcionan concurrentemente, como peticiones HTTP, beans de "
+"sesión, o workers de Swing, provocarán condiciones de competencia si una "
+"instancia de <literal>Session</literal> fuese compartida. Si guardas tu "
+"<literal>Session</literal> de Hibernate en tu <literal>HttpSession</literal> "
+"(discutido más adelante), debes considerar sincronizar el acceso a tu sesión "
+"HTTP. De otro modo, un usuario que hace click lo suficientemente rápido "
+"puede llegar a usar la misma <literal>Session</literal> en dos hebras "
+"ejecutándose concurrentemente."
 
-#: index.docbook:318
-msgid "An exception thrown by Hibernate means you have to rollback your database transaction and close the <literal>Session</literal> immediately (discussed later in more detail). If your <literal>Session</literal> is bound to the application, you have to stop the application. Rolling back the database transaction doesn't put your business objects back into the state they were at the start of the transaction. This means the database state and the business objects do get out of sync. Usually this is not a problem, because exceptions are not recoverable and you have to start over after rollback anyway."
-msgstr "Los l&#x00ed;mites de las transacciones de base de datos (o sistema) son siempre necesarios. Ninguna comunicaci&#x00f3;n con la base de datos puede darse fuera de una transacci&#x00f3;n de base de datos (esto parece confundir muchos desarrolladores acostumbrados al modo auto-commit). Siempre usa l&#x00ed;mites de transacci&#x00f3;n claros, incluso para las operaciones de s&#x00f3;lo lectura. Dependiendo del nivel de aislamiento y las capacidades de base de datos, esto podr&#x00ed;a o no ser requerido, pero no hay un merma si siempre demarcas expl&#x00ed;citamente las transacciones."
+#. Tag: para
+#: transactions.xml:318
+#, no-c-format
+msgid ""
+"An exception thrown by Hibernate means you have to rollback your database "
+"transaction and close the <literal>Session</literal> immediately (discussed "
+"later in more detail). If your <literal>Session</literal> is bound to the "
+"application, you have to stop the application. Rolling back the database "
+"transaction doesn't put your business objects back into the state they were "
+"at the start of the transaction. This means the database state and the "
+"business objects do get out of sync. Usually this is not a problem, because "
+"exceptions are not recoverable and you have to start over after rollback "
+"anyway."
+msgstr ""
+"Una excepción lanzada por Hibernate significa que tienes que deshacer "
+"(rollback) tu transacción de base de datos y cerrar la <literal>Session</"
+"literal> inmediatamente (discutido en más detalle luego). Si tu "
+"<literal>Session</literal> está ligada a la aplicación, tienes que parar la "
+"aplicación. Deshacer (rollback) la transacción de base de datos no pone a "
+"tus objetos de vuelta al estado en que estaban al comienzo de la "
+"transacción. Esto significa que el estado de la base de datos y los objetos "
+"de negocio quedan fuera de sincronía. Usualmente esto no es un problema, "
+"pues las excepciones no son recuperables y tienes que volver a comenzar "
+"después del rollback de todos modos."
 
-#: index.docbook:330
-msgid "The <literal>Session</literal> caches every object that is in persistent state (watched and checked for dirty state by Hibernate). This means it grows endlessly until you get an OutOfMemoryException, if you keep it open for a long time or simply load too much data. One solution for this is to call <literal>clear()</literal> and <literal>evict()</literal> to manage the <literal>Session</literal> cache, but you most likely should consider a Stored Procedure if you need mass data operations. Some solutions are shown in <xref linkend=\"batch\"/>. Keeping a <literal>Session</literal> open for the duration of a user session also means a high probability of stale data."
-msgstr "Una aplicaci&#x00f3;n Hibernate puede ejecutarse en entornos no manejados (es decir, como independiente, Web simple, o aplicaciones Swing) y entornos manejados J2EE. En un entorno no manejado, Hibernate es usualmente responsable de su propio pool de conexiones de base de datos. El desarrollador de aplicaciones tiene que establecer manualmente los l&#x00ed;mites de transacci&#x00f3;n, en otras palabras, hacer begin, commit, o rollback las transacciones de base de datos por s&#x00ed; mismo. Un entorno manejado usualmente provee transacciones gestionadas por contenedor, con el ensamble de transacci&#x00f3;n definido declarativamente en descriptores de despliegue de beans de sesi&#x00f3;n EJB, por ejemplo. La demarcaci&#x00f3;n program&#x00e1;tica de transacciones no es m&#x00e1;s necesario, incluso limpiar (flush) la <literal>Session</literal> es hecho autom&#x00e1;ticamente."
+#. Tag: para
+#: transactions.xml:330
+#, no-c-format
+msgid ""
+"The <literal>Session</literal> caches every object that is in persistent "
+"state (watched and checked for dirty state by Hibernate). This means it "
+"grows endlessly until you get an OutOfMemoryException, if you keep it open "
+"for a long time or simply load too much data. One solution for this is to "
+"call <literal>clear()</literal> and <literal>evict()</literal> to manage the "
+"<literal>Session</literal> cache, but you most likely should consider a "
+"Stored Procedure if you need mass data operations. Some solutions are shown "
+"in <xref linkend=\"batch\"/>. Keeping a <literal>Session</literal> open for "
+"the duration of a user session also means a high probability of stale data."
+msgstr ""
+"La <literal>Session</literal> pone en caché todo objeto que esté en estado "
+"persistente (vigilado y chequeado por estado sucio por Hibernate). Esto "
+"significa que crece sin fin hasta que obtienes una OutOfMemoryException, si "
+"la mantienes abierta por un largo tiempo o simplemente cargas demasiados "
+"datos. Una solución para esto es llamar a <literal>clear()</literal> y "
+"<literal>evict()</literal> para gestionar el caché de la <literal>Session</"
+"literal>, pero probalemente debas considerar un procedimiento almacenado si "
+"necesitas operaciones de datos masivas. Se muestran algunas soluciones en "
+"<xref linkend=\"batch\"/>. Mantener una <literal>Session</literal> abierta "
+"por la duración de una sesión de usuario significa también una alta "
+"probabilidad de datos añejos."
 
-#: index.docbook:348
+#. Tag: title
+#: transactions.xml:348
+#, no-c-format
 msgid "Database transaction demarcation"
-msgstr "Sin embargo, frecuentemente es deseable mantener portable tu capa de persistencia. Hibernate ofrece una API de envoltura llamada <literal>Transaction</literal> que se traduce al sistema de transacciones nativo de tu entorno de despliegue. Esta API es realmente opcional, pero recomendamos fuertemente su uso salvo que est&#x00e9;s en un bean de sesi&#x00f3;n CMT."
+msgstr "Demarcación de la transacción de base de datos"
 
-#: index.docbook:350
-msgid "Datatabase (or system) transaction boundaries are always necessary. No communication with the database can occur outside of a database transaction (this seems to confuse many developers who are used to the auto-commit mode). Always use clear transaction boundaries, even for read-only operations. Depending on your isolation level and database capabilities this might not be required but there is no downside if you always demarcate transactions explicitly. Certainly, a single database transaction is going to perform better than many small transactions, even for reading data."
-msgstr "Usualmente, finalizar una <literal>Session</literal> implica cuatro fases distintas:"
+#. Tag: para
+#: transactions.xml:350
+#, no-c-format
+msgid ""
+"Datatabase (or system) transaction boundaries are always necessary. No "
+"communication with the database can occur outside of a database transaction "
+"(this seems to confuse many developers who are used to the auto-commit "
+"mode). Always use clear transaction boundaries, even for read-only "
+"operations. Depending on your isolation level and database capabilities this "
+"might not be required but there is no downside if you always demarcate "
+"transactions explicitly. Certainly, a single database transaction is going "
+"to perform better than many small transactions, even for reading data."
+msgstr ""
+"Los límites de las transacciones de base de datos (o sistema) son siempre "
+"necesarios. Ninguna comunicación con la base de datos puede darse fuera de "
+"una transacción de base de datos (esto parece confundir muchos "
+"desarrolladores acostumbrados al modo auto-commit). Siempre usa límites de "
+"transacción claros, incluso para las operaciones de sólo lectura. "
+"Dependiendo del nivel de aislamiento y las capacidades de base de datos, "
+"esto podría o no ser requerido, pero no hay un merma si siempre demarcas "
+"explícitamente las transacciones."
 
-#: index.docbook:360
-msgid "A Hibernate application can run in non-managed (i.e. standalone, simple Web- or Swing applications) and managed J2EE environments. In a non-managed environment, Hibernate is usually responsible for its own database connection pool. The application developer has to manually set transaction boundaries, in other words, begin, commit, or rollback database transactions himself. A managed environment usually provides container-managed transactions (CMT), with the transaction assembly defined declaratively in deployment descriptors of EJB session beans, for example. Programmatic transaction demarcation is then no longer necessary."
-msgstr "limpiar (flush) la sesi&#x00f3;n"
+#. Tag: para
+#: transactions.xml:360
+#, no-c-format
+msgid ""
+"A Hibernate application can run in non-managed (i.e. standalone, simple Web- "
+"or Swing applications) and managed J2EE environments. In a non-managed "
+"environment, Hibernate is usually responsible for its own database "
+"connection pool. The application developer has to manually set transaction "
+"boundaries, in other words, begin, commit, or rollback database transactions "
+"himself. A managed environment usually provides container-managed "
+"transactions (CMT), with the transaction assembly defined declaratively in "
+"deployment descriptors of EJB session beans, for example. Programmatic "
+"transaction demarcation is then no longer necessary."
+msgstr ""
+"Una aplicación Hibernate puede ejecutarse en entornos no manejados (es "
+"decir, como independiente, Web simple, o aplicaciones Swing) y entornos "
+"manejados J2EE. En un entorno no manejado, Hibernate es usualmente "
+"responsable de su propio pool de conexiones de base de datos. El "
+"desarrollador de aplicaciones tiene que establecer manualmente los límites "
+"de transacción, en otras palabras, hacer begin, commit, o rollback las "
+"transacciones de base de datos por sí mismo. Un entorno manejado usualmente "
+"provee transacciones gestionadas por contenedor, con el ensamble de "
+"transacción definido declarativamente en descriptores de despliegue de beans "
+"de sesión EJB, por ejemplo. La demarcación programática de transacciones no "
+"es más necesario, incluso limpiar (flush) la <literal>Session</literal> es "
+"hecho automáticamente."
 
-#: index.docbook:370
-msgid "However, it is often desirable to keep your persistence layer portable between non-managed resource-local environments, and systems that can rely on JTA but use BMT instead of CMT. In both cases you'd use programmatic transaction demaracation. Hibernate offers a wrapper API called <literal>Transaction</literal> that translates into the native transaction system of your deployment environment. This API is actually optional, but we strongly encourage its use unless you are in a CMT session bean."
-msgstr "comprometer la transacci&#x00f3;n"
+#. Tag: para
+#: transactions.xml:370
+#, no-c-format
+msgid ""
+"However, it is often desirable to keep your persistence layer portable "
+"between non-managed resource-local environments, and systems that can rely "
+"on JTA but use BMT instead of CMT. In both cases you'd use programmatic "
+"transaction demaracation. Hibernate offers a wrapper API called "
+"<literal>Transaction</literal> that translates into the native transaction "
+"system of your deployment environment. This API is actually optional, but we "
+"strongly encourage its use unless you are in a CMT session bean."
+msgstr ""
+"Sin embargo, frecuentemente es deseable mantener portable tu capa de "
+"persistencia. Hibernate ofrece una API de envoltura llamada "
+"<literal>Transaction</literal> que se traduce al sistema de transacciones "
+"nativo de tu entorno de despliegue. Esta API es realmente opcional, pero "
+"recomendamos fuertemente su uso salvo que estés en un bean de sesión CMT."
 
-#: index.docbook:379
-msgid "Usually, ending a <literal>Session</literal> involves four distinct phases:"
-msgstr "cerrar la sesi&#x00f3;n"
+#. Tag: para
+#: transactions.xml:379
+#, no-c-format
+msgid ""
+"Usually, ending a <literal>Session</literal> involves four distinct phases:"
+msgstr ""
+"Usualmente, finalizar una <literal>Session</literal> implica cuatro fases "
+"distintas:"
 
-#: index.docbook:385
+#. Tag: para
+#: transactions.xml:385
+#, no-c-format
 msgid "flush the session"
-msgstr "manejar excepciones"
+msgstr "limpiar (flush) la sesión"
 
-#: index.docbook:390
+#. Tag: para
+#: transactions.xml:390
+#, no-c-format
 msgid "commit the transaction"
-msgstr "Limpiar la sesi&#x00f3;n ha sido discutido anteriormente, tendremos ahora una mirada m&#x00e1;s de cerca a la demarcaci&#x00f3;n de transacciones y manejo de excepciones en sendos entornos manejado y no manejados."
+msgstr "comprometer la transacción"
 
-#: index.docbook:395
+#. Tag: para
+#: transactions.xml:395
+#, no-c-format
 msgid "close the session"
-msgstr "Entorno no manejado"
+msgstr "cerrar la sesión"
 
-#: index.docbook:400
+#. Tag: para
+#: transactions.xml:400
+#, no-c-format
 msgid "handle exceptions"
-msgstr "Si una capa de persistencia Hibernate se ejecuta en un entorno no manejado, las conexiones de base de datos son manejadas usualmente por el mecanismo de pooling de Hibernate. El idioma manejo de sesi&#x00f3;n/transacci&#x00f3;n se ve as&#x00ed;:"
+msgstr "manejar excepciones"
 
-#: index.docbook:406
-msgid "Flushing the session has been discussed earlier, we'll now have a closer look at transaction demarcation and exception handling in both managed- and non-managed environments."
+#. Tag: para
+#: transactions.xml:406
+#, no-c-format
+msgid ""
+"Flushing the session has been discussed earlier, we'll now have a closer "
+"look at transaction demarcation and exception handling in both managed- and "
+"non-managed environments."
 msgstr ""
-      "<![CDATA[//Non-managed environment idiom\n"
-      "Session sess = factory.openSession();\n"
-      "Transaction tx = null;\n"
-      "try {\n"
-      "    tx = sess.beginTransaction();\n"
-      "\n"
-      "    // do some work\n"
-      "    ...\n"
-      "\n"
-      "    tx.commit();\n"
-      "}\n"
-      "catch (RuntimeException e) {\n"
-      "    if (tx != null) tx.rollback();\n"
-      "    throw e; // or display error message\n"
-      "}\n"
-      "finally {\n"
-      "    sess.close();\n"
-      "}]]>"
+"Limpiar la sesión ha sido discutido anteriormente, tendremos ahora una "
+"mirada más de cerca a la demarcación de transacciones y manejo de "
+"excepciones en sendos entornos manejado y no manejados."
 
-#: index.docbook:413
+#. Tag: title
+#: transactions.xml:413
+#, no-c-format
 msgid "Non-managed environment"
-msgstr "No tienes que limpiar con <literal>flush()</literal> la <literal>Session</literal> expl&#x00ed;citamente - la llamada a <literal>commit()</literal> autom&#x00e1;ticamente dispara la sincronizaci&#x00f3;n."
+msgstr "Entorno no manejado"
 
-#: index.docbook:415
-msgid "If a Hibernate persistence layer runs in a non-managed environment, database connections are usually handled by simple (i.e. non-DataSource) connection pools from which Hibernate obtains connections as needed. The session/transaction handling idiom looks like this:"
-msgstr "Una llamada a <literal>close()</literal> marca el fin de una sesi&#x00f3;n. La principal implicaci&#x00f3;n de <literal>close()</literal> es que la conexi&#x00f3;n JDBC ser&#x00e1; abandonada por la sesi&#x00f3;n."
+#. Tag: para
+#: transactions.xml:415
+#, no-c-format
+msgid ""
+"If a Hibernate persistence layer runs in a non-managed environment, database "
+"connections are usually handled by simple (i.e. non-DataSource) connection "
+"pools from which Hibernate obtains connections as needed. The session/"
+"transaction handling idiom looks like this:"
+msgstr ""
+"Si una capa de persistencia Hibernate se ejecuta en un entorno no manejado, "
+"las conexiones de base de datos son manejadas usualmente por el mecanismo de "
+"pooling de Hibernate. El idioma manejo de sesión/transacción se ve así:"
 
-#: index.docbook:422
+#. Tag: programlisting
+#: transactions.xml:422
+#, no-c-format
 msgid ""
-      "<![CDATA[// Non-managed environment idiom\n"
-      "Session sess = factory.openSession();\n"
-      "Transaction tx = null;\n"
-      "try {\n"
-      "    tx = sess.beginTransaction();\n"
-      "\n"
-      "    // do some work\n"
-      "    ...\n"
-      "\n"
-      "    tx.commit();\n"
-      "}\n"
-      "catch (RuntimeException e) {\n"
-      "    if (tx != null) tx.rollback();\n"
-      "    throw e; // or display error message\n"
-      "}\n"
-      "finally {\n"
-      "    sess.close();\n"
-      "}]]>"
-msgstr "Este c&#x00f3;digo Java es portable y se ejecuta tanto en entornos no manejados como en entornos JTA."
+"<![CDATA[// Non-managed environment idiom\n"
+"Session sess = factory.openSession();\n"
+"Transaction tx = null;\n"
+"try {\n"
+"    tx = sess.beginTransaction();\n"
+"\n"
+"    // do some work\n"
+"    ...\n"
+"\n"
+"    tx.commit();\n"
+"}\n"
+"catch (RuntimeException e) {\n"
+"    if (tx != null) tx.rollback();\n"
+"    throw e; // or display error message\n"
+"}\n"
+"finally {\n"
+"    sess.close();\n"
+"}]]>"
+msgstr ""
 
-#: index.docbook:424
-msgid "You don't have to <literal>flush()</literal> the <literal>Session</literal> explicitly - the call to <literal>commit()</literal> automatically triggers the synchronization (depending upon the <xref linkend=\"objectstate-flushing\"/>FlushMode for the session. A call to <literal>close()</literal> marks the end of a session. The main implication of <literal>close()</literal> is that the JDBC connection will be relinquished by the session. This Java code is portable and runs in both non-managed and JTA environments."
-msgstr "Muy probablemente nunca veas este idioma en c&#x00f3;digo de negocio en una aplicaci&#x00f3;n normal; las excepciones fatales (sistema) deben siempre ser capturadas en la \"cima\". En otras palabras, el c&#x00f3;digo que ejecuta las llamadas de Hibernate (en la capa de persistencia) y el c&#x00f3;digo que maneja <literal>RuntimeException</literal> (y usualmente s&#x00f3;lo puede limpiar y salir) est&#x00e1;n en capas diferentes. Esto puede ser un desaf&#x00ed;o de dise&#x00f1;arlo t&#x00fa; mismo y debes usar los servicios de contenedor J2EE/EJB en cuanto estuviesen disponibles. El manejo de excepciones se dicute m&#x00e1;s adelante en este cap&#x00ed;tulo."
+#. Tag: para
+#: transactions.xml:424
+#, no-c-format
+msgid ""
+"You don't have to <literal>flush()</literal> the <literal>Session</literal> "
+"explicitly - the call to <literal>commit()</literal> automatically triggers "
+"the synchronization (depending upon the <link linkend=\"objectstate-flushing"
+"\">FlushMode</link> for the session. A call to <literal>close()</literal> "
+"marks the end of a session. The main implication of <literal>close()</"
+"literal> is that the JDBC connection will be relinquished by the session. "
+"This Java code is portable and runs in both non-managed and JTA environments."
+msgstr ""
+"No tienes que limpiar con <literal>flush()</literal> la <literal>Session</"
+"literal> explícitamente - la llamada a <literal>commit()</literal> "
+"automáticamente dispara la sincronización. Una llamada a <literal>close()</"
+"literal> marca el fin de una sesión. La principal implicación de "
+"<literal>close()</literal> es que la conexión JDBC será abandonada por la "
+"sesión."
 
-#: index.docbook:433
-msgid "A much more flexible solution is Hibernate's built-in \"current session\" context management, as described earlier:"
-msgstr "Nota que debes seleccionar <literal>org.hibernate.transaction.JDBCTransactionFactory</literal> (que es el por defecto)."
+#. Tag: para
+#: transactions.xml:433
+#, no-c-format
+msgid ""
+"A much more flexible solution is Hibernate's built-in \"current session\" "
+"context management, as described earlier:"
+msgstr ""
+"Este código Java es portable y se ejecuta tanto en entornos no manejados "
+"como en entornos JTA."
 
-#: index.docbook:438
+#. Tag: programlisting
+#: transactions.xml:438
+#, no-c-format
 msgid ""
-      "<![CDATA[// Non-managed environment idiom with getCurrentSession()\n"
-      "try {\n"
-      "    factory.getCurrentSession().beginTransaction();\n"
-      "\n"
-      "    // do some work\n"
-      "    ...\n"
-      "\n"
-      "    factory.getCurrentSession().getTransaction().commit();\n"
-      "}\n"
-      "catch (RuntimeException e) {\n"
-      "    factory.getCurrentSession().getTransaction().rollback();\n"
-      "    throw e; // or display error message\n"
-      "}]]>"
-msgstr "Usando JTA"
+"<![CDATA[// Non-managed environment idiom with getCurrentSession()\n"
+"try {\n"
+"    factory.getCurrentSession().beginTransaction();\n"
+"\n"
+"    // do some work\n"
+"    ...\n"
+"\n"
+"    factory.getCurrentSession().getTransaction().commit();\n"
+"}\n"
+"catch (RuntimeException e) {\n"
+"    factory.getCurrentSession().getTransaction().rollback();\n"
+"    throw e; // or display error message\n"
+"}]]>"
+msgstr ""
 
-#: index.docbook:440
-msgid "You will very likely never see these code snippets in a regular application; fatal (system) exceptions should always be caught at the \"top\". In other words, the code that executes Hibernate calls (in the persistence layer) and the code that handles <literal>RuntimeException</literal> (and usually can only clean up and exit) are in different layers. The current context management by Hibernate can significantly simplify this design, as all you need is access to a <literal>SessionFactory</literal>. Exception handling is discussed later in this chapter."
-msgstr "Si tu capa de persistencia se ejecuta en un servidor de aplicaciones (por ejemplo, detr&#x00e1;s de beans de sesi&#x00f3;n EJB), cada conexi&#x00f3;n de datasource obtenida por Hibernate ser&#x00e1; parte autom&#x00e1;ticamente de la transacci&#x00f3;n JTA global. Hibernate ofrece dos estrategias para esta integraci&#x00f3;n."
+#. Tag: para
+#: transactions.xml:440
+#, no-c-format
+msgid ""
+"You will very likely never see these code snippets in a regular application; "
+"fatal (system) exceptions should always be caught at the \"top\". In other "
+"words, the code that executes Hibernate calls (in the persistence layer) and "
+"the code that handles <literal>RuntimeException</literal> (and usually can "
+"only clean up and exit) are in different layers. The current context "
+"management by Hibernate can significantly simplify this design, as all you "
+"need is access to a <literal>SessionFactory</literal>. Exception handling is "
+"discussed later in this chapter."
+msgstr ""
+"Muy probablemente nunca veas este idioma en código de negocio en una "
+"aplicación normal; las excepciones fatales (sistema) deben siempre ser "
+"capturadas en la \"cima\". En otras palabras, el código que ejecuta las "
+"llamadas de Hibernate (en la capa de persistencia) y el código que maneja "
+"<literal>RuntimeException</literal> (y usualmente sólo puede limpiar y "
+"salir) están en capas diferentes. Esto puede ser un desafío de diseñarlo tú "
+"mismo y debes usar los servicios de contenedor J2EE/EJB en cuanto estuviesen "
+"disponibles. El manejo de excepciones se dicute más adelante en este "
+"capítulo."
 
-#: index.docbook:450
-msgid "Note that you should select <literal>org.hibernate.transaction.JDBCTransactionFactory</literal> (which is the default), and for the second example <literal>\"thread\"</literal> as your <literal>hibernate.current_session_context_class</literal>."
-msgstr "Si usas transacciones gestionadas-por-bean (BMT) Hibernate le dir&#x00e1; al servidor de aplicaciones que comience y finalice una transacci&#x00f3;n BMT si usas la API de <literal>Transaction</literal>. De modo que, el c&#x00f3;digo de gesti&#x00f3;n de la transacci&#x00f3;n es id&#x00e9;ntico al de un entorno no manejado."
+#. Tag: para
+#: transactions.xml:450
+#, no-c-format
+msgid ""
+"Note that you should select <literal>org.hibernate.transaction."
+"JDBCTransactionFactory</literal> (which is the default), and for the second "
+"example <literal>\"thread\"</literal> as your <literal>hibernate."
+"current_session_context_class</literal>."
+msgstr ""
+"Nota que debes seleccionar <literal>org.hibernate.transaction."
+"JDBCTransactionFactory</literal> (que es el por defecto)."
 
-#: index.docbook:459
+#. Tag: title
+#: transactions.xml:459
+#, no-c-format
 msgid "Using JTA"
+msgstr "Usando JTA"
+
+#. Tag: para
+#: transactions.xml:461
+#, no-c-format
+msgid ""
+"If your persistence layer runs in an application server (e.g. behind EJB "
+"session beans), every datasource connection obtained by Hibernate will "
+"automatically be part of the global JTA transaction. You can also install a "
+"standalone JTA implementation and use it without EJB. Hibernate offers two "
+"strategies for JTA integration."
 msgstr ""
-      "<![CDATA[// BMT idiom\n"
-      "Session sess = factory.openSession();\n"
-      "Transaction tx = null;\n"
-      "try {\n"
-      "    tx = sess.beginTransaction();\n"
-      "\n"
-      "    // do some work\n"
-      "    ...\n"
-      "\n"
-      "    tx.commit();\n"
-      "}\n"
-      "catch (RuntimeException e) {\n"
-      "    if (tx != null) tx.rollback();\n"
-      "    throw e; // or display error message\n"
-      "}\n"
-      "finally {\n"
-      "    sess.close();\n"
-      "}]]>"
+"Si tu capa de persistencia se ejecuta en un servidor de aplicaciones (por "
+"ejemplo, detrás de beans de sesión EJB), cada conexión de datasource "
+"obtenida por Hibernate será parte automáticamente de la transacción JTA "
+"global. Hibernate ofrece dos estrategias para esta integración."
 
-#: index.docbook:461
-msgid "If your persistence layer runs in an application server (e.g. behind EJB session beans), every datasource connection obtained by Hibernate will automatically be part of the global JTA transaction. You can also install a standalone JTA implementation and use it without EJB. Hibernate offers two strategies for JTA integration."
-msgstr "Con CMT, la demarcaci&#x00f3;n de la transacci&#x00f3;n se hace en descriptores de despliegue de beans de sesi&#x00f3;n, no program&#x00e1;ticamente. Si no quieres limpiar (flush) y cerrar manualmente la <literal>Session</literal> por ti mismo, solamente establece <literal>hibernate.transaction.flush_before_completion</literal> a <literal>true</literal>, <literal>hibernate.connection.release_mode</literal> a <literal>after_statement</literal> o <literal>auto</literal> y <literal>hibernate.transaction.auto_close_session</literal> a <literal>true</literal>. Hibernate limpiar&#x00e1; y cerrar&#x00e1; entonces autom&#x00e1;ticamente la <literal>Session</literal> para ti. Lo &#x00fa;nico que resta es deshacer (rollback) la transacci&#x00f3;n cuando ocurra una excepci&#x00f3;n. Afortunadamente, en un bean CMT, incluso esto ocurre autom&#x00e1;ticamente, ya que una <literal>RuntimeException</literal> no manejada disparada por un m&#x00e9;todo de un bean de sesi&#x00f3;n le!
  dice al contenedor que ponga a deshacer la transacci&#x00f3;n global. <emphasis>Esto significa que, en CMT, no necesitas usar en absoluto la API de <literal>Transaction</literal> de Hibernate.</emphasis>"
+#. Tag: para
+#: transactions.xml:468
+#, no-c-format
+msgid ""
+"If you use bean-managed transactions (BMT) Hibernate will tell the "
+"application server to start and end a BMT transaction if you use the "
+"<literal>Transaction</literal> API. So, the transaction management code is "
+"identical to the non-managed environment."
+msgstr ""
+"Si usas transacciones gestionadas-por-bean (BMT) Hibernate le dirá al "
+"servidor de aplicaciones que comience y finalice una transacción BMT si usas "
+"la API de <literal>Transaction</literal>. De modo que, el código de gestión "
+"de la transacción es idéntico al de un entorno no manejado."
 
-#: index.docbook:468
-msgid "If you use bean-managed transactions (BMT) Hibernate will tell the application server to start and end a BMT transaction if you use the <literal>Transaction</literal> API. So, the transaction management code is identical to the non-managed environment."
-msgstr "Nota que debes elegir <literal>org.hibernate.transaction.JTATransactionFactory</literal> en un bean de sesi&#x00f3;n BMT, y <literal>org.hibernate.transaction.CMTTransactionFactory</literal> en un bean de sesi&#x00f3;n CMT, cuando configures la f&#x00e1;brica de transacciones de Hibernate. Recuerda adem&#x00e1;s establecer <literal>org.hibernate.transaction.manager_lookup_class</literal>."
+#. Tag: programlisting
+#: transactions.xml:474
+#, no-c-format
+msgid ""
+"<![CDATA[// BMT idiom\n"
+"Session sess = factory.openSession();\n"
+"Transaction tx = null;\n"
+"try {\n"
+"    tx = sess.beginTransaction();\n"
+"\n"
+"    // do some work\n"
+"    ...\n"
+"\n"
+"    tx.commit();\n"
+"}\n"
+"catch (RuntimeException e) {\n"
+"    if (tx != null) tx.rollback();\n"
+"    throw e; // or display error message\n"
+"}\n"
+"finally {\n"
+"    sess.close();\n"
+"}]]>"
+msgstr ""
 
-#: index.docbook:474
+#. Tag: para
+#: transactions.xml:476
+#, no-c-format
 msgid ""
-      "<![CDATA[// BMT idiom\n"
-      "Session sess = factory.openSession();\n"
-      "Transaction tx = null;\n"
-      "try {\n"
-      "    tx = sess.beginTransaction();\n"
-      "\n"
-      "    // do some work\n"
-      "    ...\n"
-      "\n"
-      "    tx.commit();\n"
-      "}\n"
-      "catch (RuntimeException e) {\n"
-      "    if (tx != null) tx.rollback();\n"
-      "    throw e; // or display error message\n"
-      "}\n"
-      "finally {\n"
-      "    sess.close();\n"
-      "}]]>"
-msgstr "Si trabajas en un entorno CMT, y usas limpieza (flushing) y cierre autom&#x00e1;ticos de la sesi&#x00f3;n, podr&#x00ed;as querer tambi&#x00e9;n usar la misma sesi&#x00f3;n en diferentes partes de tu c&#x00f3;digo. T&#x00ed;picamente, en un entorno no manejado, usar&#x00ed;as una variable <literal>ThreadLocal</literal> para tener la sesi&#x00f3;n, pero una sola petici&#x00f3;n de EJB puede ejecutarse en diferentes hebras (por ejemplo, un bean de sesi&#x00f3;n llamando a otro bean de sesi&#x00f3;n). Si no quieres molestarte en pasar tu <literal>Session</literal> por alrededor, la <literal>SessionFactory</literal> provee el m&#x00e9;todo <literal>getCurrentSession()</literal>, que devuelve una sesi&#x00f3;n que est&#x00e1; pegada al contexto de transacci&#x00f3;n JTA. &#x00a1;Esta es la forma m&#x00e1;s f&#x00e1;cil de integrar Hibernate en una aplicaci&#x00f3;n! La sesi&#x00f3;n \"actual\" siempre tiene habilitados limpieza, cierre y liberaci&#x00f3;n de conexi&#x00f3!
 ;n autom&#x00e1;ticos (sin importar la configuraci&#x00f3;n de las propiedades anteriores). Nuestra idioma de gesti&#x00f3;n de sesi&#x00f3;n/transacci&#x00f3;n se reduce a:"
+"If you want to use a transaction-bound <literal>Session</literal>, that is, "
+"the <literal>getCurrentSession()</literal> functionality for easy context "
+"propagation, you will have to use the JTA <literal>UserTransaction</literal> "
+"API directly:"
+msgstr ""
+"Con CMT, la demarcación de la transacción se hace en descriptores de "
+"despliegue de beans de sesión, no programáticamente. Si no quieres limpiar "
+"(flush) y cerrar manualmente la <literal>Session</literal> por ti mismo, "
+"solamente establece <literal>hibernate.transaction.flush_before_completion</"
+"literal> a <literal>true</literal>, <literal>hibernate.connection."
+"release_mode</literal> a <literal>after_statement</literal> o <literal>auto</"
+"literal> y <literal>hibernate.transaction.auto_close_session</literal> a "
+"<literal>true</literal>. Hibernate limpiará y cerrará entonces "
+"automáticamente la <literal>Session</literal> para ti. Lo único que resta es "
+"deshacer (rollback) la transacción cuando ocurra una excepción. "
+"Afortunadamente, en un bean CMT, incluso esto ocurre automáticamente, ya que "
+"una <literal>RuntimeException</literal> no manejada disparada por un método "
+"de un bean de sesión le dice al contenedor que ponga a deshacer la "
+"transacción global. <emphasis>Esto significa que, en CMT, no necesitas usar "
+"en absoluto la API de <literal>Transaction</literal> de Hibernate.</emphasis>"
 
-#: index.docbook:476
-msgid "If you want to use a transaction-bound <literal>Session</literal>, that is, the <literal>getCurrentSession()</literal> functionality for easy context propagation, you will have to use the JTA <literal>UserTransaction</literal> API directly:"
+#. Tag: programlisting
+#: transactions.xml:482
+#, no-c-format
+msgid ""
+"<![CDATA[// BMT idiom with getCurrentSession()\n"
+"try {\n"
+"    UserTransaction tx = (UserTransaction)new InitialContext()\n"
+"                            .lookup(\"java:comp/UserTransaction\");\n"
+"\n"
+"    tx.begin();\n"
+"\n"
+"    // Do some work on Session bound to transaction\n"
+"    factory.getCurrentSession().load(...);\n"
+"    factory.getCurrentSession().persist(...);\n"
+"\n"
+"    tx.commit();\n"
+"}\n"
+"catch (RuntimeException e) {\n"
+"    tx.rollback();\n"
+"    throw e; // or display error message\n"
+"}]]>"
 msgstr ""
-      "<![CDATA[// CMT idiom\n"
-      "Session sess = factory.getCurrentSession();\n"
-      "\n"
-      "// do some work\n"
-      "...\n"
-      "\n"
-      "]]>"
 
-#: index.docbook:482
+#. Tag: para
+#: transactions.xml:484
+#, no-c-format
 msgid ""
-      "<![CDATA[// BMT idiom with getCurrentSession()\n"
-      "try {\n"
-      "    UserTransaction tx = (UserTransaction)new InitialContext()\n"
-      "                            .lookup(\"java:comp/UserTransaction\");\n"
-      "\n"
-      "    tx.begin();\n"
-      "\n"
-      "    // Do some work on Session bound to transaction\n"
-      "    factory.getCurrentSession().load(...);\n"
-      "    factory.getCurrentSession().persist(...);\n"
-      "\n"
-      "    tx.commit();\n"
-      "}\n"
-      "catch (RuntimeException e) {\n"
-      "    tx.rollback();\n"
-      "    throw e; // or display error message\n"
-      "}]]>"
-msgstr "En otras palabras, todo lo que tienes que hacer en un entorno manejado, es llamar a <literal>SessionFactory.getCurrentSession()</literal>, hacer tu trabajo de acceso a datos, y dejar el resto al contenedor. Los l&#x00ed;mites de transacci&#x00f3;n se establecen declarativamente en los descriptores de despliegue de tu bean de sesi&#x00f3;n. El ciclo de vida de la sesi&#x00f3;n es manejado completamente por Hibernate."
+"With CMT, transaction demarcation is done in session bean deployment "
+"descriptors, not programatically, hence, the code is reduced to:"
+msgstr ""
+"Nota que debes elegir <literal>org.hibernate.transaction."
+"JTATransactionFactory</literal> en un bean de sesión BMT, y <literal>org."
+"hibernate.transaction.CMTTransactionFactory</literal> en un bean de sesión "
+"CMT, cuando configures la fábrica de transacciones de Hibernate. Recuerda "
+"además establecer <literal>org.hibernate.transaction.manager_lookup_class</"
+"literal>."
 
-#: index.docbook:484
-msgid "With CMT, transaction demarcation is done in session bean deployment descriptors, not programatically, hence, the code is reduced to:"
-msgstr "Existe una advertencia al uso del modo de liberaci&#x00f3;n de conexi&#x00f3;n <literal>after_statement</literal>. Debido a una limitaci&#x00f3;n tonta de la especificaci&#x00f3;n de JTA, no es posible para Hibernate limpiar autom&#x00e1;ticamente ning&#x00fa;n <literal>ScrollableResults</literal> no cerrado ni instancias de <literal>Iterator</literal> devueltas por <literal>scroll()</literal> o <literal>iterate()</literal>. <emphasis>Debes</emphasis> liberar el cursor de base de datos subyacente llamando a <literal>ScrollableResults.close()</literal> o <literal>Hibernate.close(Iterator)</literal> expl&#x00ed;citamente desde un bloque <literal>finally</literal>. (Por supuesto, la mayor&#x00ed;a de las aplicaciones pueden evitarlo f&#x00e1;cilmente no usando en absoluto ning&#x00fa;n <literal>scroll()</literal> o <literal>iterate()</literal> desde el c&#x00f3;digo CMT.)"
+#. Tag: programlisting
+#: transactions.xml:489
+#, no-c-format
+msgid ""
+"<![CDATA[// CMT idiom\n"
+" Session sess = factory.getCurrentSession();\n"
+"\n"
+" // do some work\n"
+" ...\n"
+"]]>"
+msgstr ""
 
-#: index.docbook:489
+#. Tag: para
+#: transactions.xml:491
+#, no-c-format
 msgid ""
-      "<![CDATA[// CMT idiom\n"
-      " Session sess = factory.getCurrentSession();\n"
-      "\n"
-      " // do some work\n"
-      " ...\n"
-      "]]>"
-msgstr "Manejo de excepciones"
+"In a CMT/EJB even rollback happens automatically, since an unhandled "
+"<literal>RuntimeException</literal> thrown by a session bean method tells "
+"the container to set the global transaction to rollback. <emphasis>This "
+"means you do not need to use the Hibernate <literal>Transaction</literal> "
+"API at all with BMT or CMT, and you get automatic propagation of the "
+"\"current\" Session bound to the transaction.</emphasis>"
+msgstr ""
+"Si trabajas en un entorno CMT, y usas limpieza (flushing) y cierre "
+"automáticos de la sesión, podrías querer también usar la misma sesión en "
+"diferentes partes de tu código. Típicamente, en un entorno no manejado, "
+"usarías una variable <literal>ThreadLocal</literal> para tener la sesión, "
+"pero una sola petición de EJB puede ejecutarse en diferentes hebras (por "
+"ejemplo, un bean de sesión llamando a otro bean de sesión). Si no quieres "
+"molestarte en pasar tu <literal>Session</literal> por alrededor, la "
+"<literal>SessionFactory</literal> provee el método <literal>getCurrentSession"
+"()</literal>, que devuelve una sesión que está pegada al contexto de "
+"transacción JTA. ¡Esta es la forma más fácil de integrar Hibernate en una "
+"aplicación! La sesión \"actual\" siempre tiene habilitados limpieza, cierre "
+"y liberación de conexión automáticos (sin importar la configuración de las "
+"propiedades anteriores). Nuestra idioma de gestión de sesión/transacción se "
+"reduce a:"
 
-#: index.docbook:491
-msgid "In a CMT/EJB even rollback happens automatically, since an unhandled <literal>RuntimeException</literal> thrown by a session bean method tells the container to set the global transaction to rollback. <emphasis>This means you do not need to use the Hibernate <literal>Transaction</literal> API at all with BMT or CMT, and you get automatic propagation of the \"current\" Session bound to the transaction.</emphasis>"
-msgstr "Si la <literal>Session</literal> lanza una excepci&#x00f3;n (incluyendo cualquier <literal>SQLException</literal>), debes inmediatamente deshacer (rollback) la transacci&#x00f3;n de base de datos, llamar a <literal>Session.close()</literal> y descartar la instancia de <literal>Session</literal>. Ciertos m&#x00e9;todos de <literal>Session</literal> <emphasis>no</emphasis> dejar&#x00e1;n la sesi&#x00f3;n en un estado consistente. Ninguna excepci&#x00f3;n lanzada por Hibernate puede ser tratada como recuperable. Aseg&#x00fa;rate que la <literal>Session</literal> sea cerrada llamando a <literal>close()</literal> en un bloque <literal>finally</literal>."
+#. Tag: para
+#: transactions.xml:499
+#, no-c-format
+msgid ""
+"Note that you should choose <literal>org.hibernate.transaction."
+"JTATransactionFactory</literal> if you use JTA directly (BMT), and "
+"<literal>org.hibernate.transaction.CMTTransactionFactory</literal> in a CMT "
+"session bean, when you configure Hibernate's transaction factory. Remember "
+"to also set <literal>hibernate.transaction.manager_lookup_class</literal>. "
+"Furthermore, make sure that your <literal>hibernate."
+"current_session_context_class</literal> is either unset (backwards "
+"compatiblity), or set to <literal>\"jta\"</literal>."
+msgstr ""
+"En otras palabras, todo lo que tienes que hacer en un entorno manejado, es "
+"llamar a <literal>SessionFactory.getCurrentSession()</literal>, hacer tu "
+"trabajo de acceso a datos, y dejar el resto al contenedor. Los límites de "
+"transacción se establecen declarativamente en los descriptores de despliegue "
+"de tu bean de sesión. El ciclo de vida de la sesión es manejado "
+"completamente por Hibernate."
 
-#: index.docbook:499
-msgid "Note that you should choose <literal>org.hibernate.transaction.JTATransactionFactory</literal> if you use JTA directly (BMT), and <literal>org.hibernate.transaction.CMTTransactionFactory</literal> in a CMT session bean, when you configure Hibernate's transaction factory. Remember to also set <literal>hibernate.transaction.manager_lookup_class</literal>. Furthermore, make sure that your <literal>hibernate.current_session_context_class</literal> is either unset (backwards compatiblity), or set to <literal>\"jta\"</literal>."
-msgstr "La <literal>HibernateException</literal>, que envuelve la mayor&#x00ed;a de los errores que pueden ocurrir en la capa de persistencia de Hibernate, en una excepci&#x00f3;n no chequeada (no lo era en versiones anteriores de Hibernate). En nuestra opini&#x00f3;n, no debemos forzar al desarrollador de aplicaciones a capturar una excepci&#x00f3;n irrecuperable en una capa baja. En la mayor&#x00ed;a de los sistemas, las excepciones no chequeadas y fatales son manejadas en uno de los primeros cuadros de la pila de llamadas a m&#x00e9;todos (es decir, en las capas m&#x00e1;s altas) y se presenta un mensaje de error al usuario de la aplicaci&#x00f3;n (o se toma alguna otra acci&#x00f3;n apropiada). Nota que Hibernate podr&#x00ed;a tambi&#x00e9;n lanzar otras excepciones no chequeadas que no sean una <literal>HibernateException</literal>. Una vez m&#x00e1;s, no son recuperables y debe tomarse una acci&#x00f3;n apropiada."
+#. Tag: para
+#: transactions.xml:508
+#, no-c-format
+msgid ""
+"The <literal>getCurrentSession()</literal> operation has one downside in a "
+"JTA environment. There is one caveat to the use of <literal>after_statement</"
+"literal> connection release mode, which is then used by default. Due to a "
+"silly limitation of the JTA spec, it is not possible for Hibernate to "
+"automatically clean up any unclosed <literal>ScrollableResults</literal> or "
+"<literal>Iterator</literal> instances returned by <literal>scroll()</"
+"literal> or <literal>iterate()</literal>. You <emphasis>must</emphasis> "
+"release the underlying database cursor by calling <literal>ScrollableResults."
+"close()</literal> or <literal>Hibernate.close(Iterator)</literal> explicity "
+"from a <literal>finally</literal> block. (Of course, most applications can "
+"easily avoid using <literal>scroll()</literal> or <literal>iterate()</"
+"literal> at all from the JTA or CMT code.)"
+msgstr ""
+"Existe una advertencia al uso del modo de liberación de conexión "
+"<literal>after_statement</literal>. Debido a una limitación tonta de la "
+"especificación de JTA, no es posible para Hibernate limpiar automáticamente "
+"ningún <literal>ScrollableResults</literal> no cerrado ni instancias de "
+"<literal>Iterator</literal> devueltas por <literal>scroll()</literal> o "
+"<literal>iterate()</literal>. <emphasis>Debes</emphasis> liberar el cursor "
+"de base de datos subyacente llamando a <literal>ScrollableResults.close()</"
+"literal> o <literal>Hibernate.close(Iterator)</literal> explícitamente desde "
+"un bloque <literal>finally</literal>. (Por supuesto, la mayoría de las "
+"aplicaciones pueden evitarlo fácilmente no usando en absoluto ningún "
+"<literal>scroll()</literal> o <literal>iterate()</literal> desde el código "
+"CMT.)"
 
-#: index.docbook:508
-msgid "The <literal>getCurrentSession()</literal> operation has one downside in a JTA environment. There is one caveat to the use of <literal>after_statement</literal> connection release mode, which is then used by default. Due to a silly limitation of the JTA spec, it is not possible for Hibernate to automatically clean up any unclosed <literal>ScrollableResults</literal> or <literal>Iterator</literal> instances returned by <literal>scroll()</literal> or <literal>iterate()</literal>. You <emphasis>must</emphasis> release the underlying database cursor by calling <literal>ScrollableResults.close()</literal> or <literal>Hibernate.close(Iterator)</literal> explicity from a <literal>finally</literal> block. (Of course, most applications can easily avoid using <literal>scroll()</literal> or <literal>iterate()</literal> at all from the JTA or CMT code.)"
-msgstr "Hibernate envuelve <literal>SQLException</literal>s lanzadas mientras se interact&#x00fa;a con la base de datos en una <literal>JDBCException</literal>. De hecho, Hibernate intentar&#x00e1; convertir la excepci&#x00f3;n en una subclase de <literal>JDBCException</literal> m&#x00e1;s significativa. La <literal>SQLException</literal> est&#x00e1; siempre disponible v&#x00ed;a <literal>JDBCException.getCause()</literal>. Hibernate convierte la <literal>SQLException</literal> en una subclase de <literal>JDBCException</literal> apropiada usando el <literal>SQLExceptionConverter</literal> adjunto a la <literal>SessionFactory</literal>. Por defecto, el <literal>SQLExceptionConverter</literal> est&#x00e1; definido para el dialecto configurado; sin embargo, es tambi&#x00e9;n posible enchufar una implementaci&#x00f3;n personalizada (ver los javadocs de la clase <literal>SQLExceptionConverterFactory</literal> para los detalles). Los subtipos est&#x00e1;ndar de <literal>JDBCExcep!
 tion</literal> son:"
-
-#: index.docbook:524
+#. Tag: title
+#: transactions.xml:524
+#, no-c-format
 msgid "Exception handling"
-msgstr "<literal>JDBCConnectionException</literal> - indica un error con la comunicaci&#x00f3;n JDBC subyacente."
+msgstr "Manejo de excepciones"
 
-#: index.docbook:526
-msgid "If the <literal>Session</literal> throws an exception (including any <literal>SQLException</literal>), you should immediately rollback the database transaction, call <literal>Session.close()</literal> and discard the <literal>Session</literal> instance. Certain methods of <literal>Session</literal> will <emphasis>not</emphasis> leave the session in a consistent state. No exception thrown by Hibernate can be treated as recoverable. Ensure that the <literal>Session</literal> will be closed by calling <literal>close()</literal> in a <literal>finally</literal> block."
-msgstr "<literal>SQLGrammarException</literal> - indica un problema de gram&#x00e1;tica o sint&#x00e1;xis con el SQL publicado."
+#. Tag: para
+#: transactions.xml:526
+#, no-c-format
+msgid ""
+"If the <literal>Session</literal> throws an exception (including any "
+"<literal>SQLException</literal>), you should immediately rollback the "
+"database transaction, call <literal>Session.close()</literal> and discard "
+"the <literal>Session</literal> instance. Certain methods of "
+"<literal>Session</literal> will <emphasis>not</emphasis> leave the session "
+"in a consistent state. No exception thrown by Hibernate can be treated as "
+"recoverable. Ensure that the <literal>Session</literal> will be closed by "
+"calling <literal>close()</literal> in a <literal>finally</literal> block."
+msgstr ""
+"Si la <literal>Session</literal> lanza una excepción (incluyendo cualquier "
+"<literal>SQLException</literal>), debes inmediatamente deshacer (rollback) "
+"la transacción de base de datos, llamar a <literal>Session.close()</literal> "
+"y descartar la instancia de <literal>Session</literal>. Ciertos métodos de "
+"<literal>Session</literal><emphasis>no</emphasis> dejarán la sesión en un "
+"estado consistente. Ninguna excepción lanzada por Hibernate puede ser "
+"tratada como recuperable. Asegúrate que la <literal>Session</literal> sea "
+"cerrada llamando a <literal>close()</literal> en un bloque <literal>finally</"
+"literal>."
 
-#: index.docbook:537
-msgid "The <literal>HibernateException</literal>, which wraps most of the errors that can occur in a Hibernate persistence layer, is an unchecked exception (it wasn't in older versions of Hibernate). In our opinion, we shouldn't force the application developer to catch an unrecoverable exception at a low layer. In most systems, unchecked and fatal exceptions are handled in one of the first frames of the method call stack (i.e. in higher layers) and an error message is presented to the application user (or some other appropriate action is taken). Note that Hibernate might also throw other unchecked exceptions which are not a <literal>HibernateException</literal>. These are, again, not recoverable and appropriate action should be taken."
-msgstr "<literal>ConstraintViolationException</literal> - indica alguna forma de violaci&#x00f3;n de restricci&#x00f3;n de integridad."
+#. Tag: para
+#: transactions.xml:537
+#, no-c-format
+msgid ""
+"The <literal>HibernateException</literal>, which wraps most of the errors "
+"that can occur in a Hibernate persistence layer, is an unchecked exception "
+"(it wasn't in older versions of Hibernate). In our opinion, we shouldn't "
+"force the application developer to catch an unrecoverable exception at a low "
+"layer. In most systems, unchecked and fatal exceptions are handled in one of "
+"the first frames of the method call stack (i.e. in higher layers) and an "
+"error message is presented to the application user (or some other "
+"appropriate action is taken). Note that Hibernate might also throw other "
+"unchecked exceptions which are not a <literal>HibernateException</literal>. "
+"These are, again, not recoverable and appropriate action should be taken."
+msgstr ""
+"La <literal>HibernateException</literal>, que envuelve la mayoría de los "
+"errores que pueden ocurrir en la capa de persistencia de Hibernate, en una "
+"excepción no chequeada (no lo era en versiones anteriores de Hibernate). En "
+"nuestra opinión, no debemos forzar al desarrollador de aplicaciones a "
+"capturar una excepción irrecuperable en una capa baja. En la mayoría de los "
+"sistemas, las excepciones no chequeadas y fatales son manejadas en uno de "
+"los primeros cuadros de la pila de llamadas a métodos (es decir, en las "
+"capas más altas) y se presenta un mensaje de error al usuario de la "
+"aplicación (o se toma alguna otra acción apropiada). Nota que Hibernate "
+"podría también lanzar otras excepciones no chequeadas que no sean una "
+"<literal>HibernateException</literal>. Una vez más, no son recuperables y "
+"debe tomarse una acción apropiada."
 
-#: index.docbook:549
-msgid "Hibernate wraps <literal>SQLException</literal>s thrown while interacting with the database in a <literal>JDBCException</literal>. In fact, Hibernate will attempt to convert the eexception into a more meningful subclass of <literal>JDBCException</literal>. The underlying <literal>SQLException</literal> is always available via <literal>JDBCException.getCause()</literal>. Hibernate converts the <literal>SQLException</literal> into an appropriate <literal>JDBCException</literal> subclass using the <literal>SQLExceptionConverter</literal> attached to the <literal>SessionFactory</literal>. By default, the <literal>SQLExceptionConverter</literal> is defined by the configured dialect; however, it is also possible to plug in a custom implementation (see the javadocs for the <literal>SQLExceptionConverterFactory</literal> class for details). The standard <literal>JDBCException</literal> subtypes are:"
-msgstr "<literal>LockAcquisitionException</literal> - indica un error adquiriendo un nivel de bloqueo necesario para realizar una operaci&#x00f3;n solicitada."
+#. Tag: para
+#: transactions.xml:549
+#, no-c-format
+msgid ""
+"Hibernate wraps <literal>SQLException</literal>s thrown while interacting "
+"with the database in a <literal>JDBCException</literal>. In fact, Hibernate "
+"will attempt to convert the eexception into a more meningful subclass of "
+"<literal>JDBCException</literal>. The underlying <literal>SQLException</"
+"literal> is always available via <literal>JDBCException.getCause()</"
+"literal>. Hibernate converts the <literal>SQLException</literal> into an "
+"appropriate <literal>JDBCException</literal> subclass using the "
+"<literal>SQLExceptionConverter</literal> attached to the "
+"<literal>SessionFactory</literal>. By default, the "
+"<literal>SQLExceptionConverter</literal> is defined by the configured "
+"dialect; however, it is also possible to plug in a custom implementation "
+"(see the javadocs for the <literal>SQLExceptionConverterFactory</literal> "
+"class for details). The standard <literal>JDBCException</literal> subtypes "
+"are:"
+msgstr ""
+"Hibernate envuelve <literal>SQLException</literal>s lanzadas mientras se "
+"interactúa con la base de datos en una <literal>JDBCException</literal>. De "
+"hecho, Hibernate intentará convertir la excepción en una subclase de "
+"<literal>JDBCException</literal> más significativa. La "
+"<literal>SQLException</literal> está siempre disponible vía "
+"<literal>JDBCException.getCause()</literal>. Hibernate convierte la "
+"<literal>SQLException</literal> en una subclase de <literal>JDBCException</"
+"literal> apropiada usando el <literal>SQLExceptionConverter</literal> "
+"adjunto a la <literal>SessionFactory</literal>. Por defecto, el "
+"<literal>SQLExceptionConverter</literal> está definido para el dialecto "
+"configurado; sin embargo, es también posible enchufar una implementación "
+"personalizada (ver los javadocs de la clase "
+"<literal>SQLExceptionConverterFactory</literal> para los detalles). Los "
+"subtipos estándar de <literal>JDBCException</literal> son:"
 
-#: index.docbook:565
-msgid "<literal>JDBCConnectionException</literal> - indicates an error with the underlying JDBC communication."
-msgstr "<literal>GenericJDBCException</literal> - una excepci&#x00f3;n gen&#x00e9;rica que no cay&#x00f3; en ninguna de las otras categor&#x00ed;as."
+#. Tag: para
+#: transactions.xml:565
+#, no-c-format
+msgid ""
+"<literal>JDBCConnectionException</literal> - indicates an error with the "
+"underlying JDBC communication."
+msgstr ""
+"<literal>JDBCConnectionException</literal> - indica un error con la "
+"comunicación JDBC subyacente."
 
-#: index.docbook:571
-msgid "<literal>SQLGrammarException</literal> - indicates a grammar or syntax problem with the issued SQL."
-msgstr "Control optimista de concurrencia"
+#. Tag: para
+#: transactions.xml:571
+#, no-c-format
+msgid ""
+"<literal>SQLGrammarException</literal> - indicates a grammar or syntax "
+"problem with the issued SQL."
+msgstr ""
+"<literal>SQLGrammarException</literal> - indica un problema de gramática o "
+"sintáxis con el SQL publicado."
 
-#: index.docbook:577
-msgid "<literal>ConstraintViolationException</literal> - indicates some form of integrity constraint violation."
-msgstr "El &#x00fa;nico enfoque que es consistente con alta concurrencia y alta escalabilidad es el control optimista de concurrencia con versionamiento. El chuequeo de versi&#x00f3;n usa n&#x00fa;meros de versi&#x00f3;n, o timestamps, para detectar actualizaciones en conflicto (y para prevenir actualizaciones perdidas). Hibernate provee para tres enfoques posibles de escribir c&#x00f3;digo de aplicaci&#x00f3;n que use concurrencia optimista. Los casos de uso que hemos mostrado est&#x00e1;n en el contexto de transacciones de aplicaci&#x00f3;n largas pero el chequeo de versiones tiene adem&#x00e1;s el beneficio de prevenir actualizaciones perdidas en transacciones de base de datos solas."
+#. Tag: para
+#: transactions.xml:577
+#, no-c-format
+msgid ""
+"<literal>ConstraintViolationException</literal> - indicates some form of "
+"integrity constraint violation."
+msgstr ""
+"<literal>ConstraintViolationException</literal> - indica alguna forma de "
+"violación de restricción de integridad."
 
-#: index.docbook:583
-msgid "<literal>LockAcquisitionException</literal> - indicates an error acquiring a lock level necessary to perform the requested operation."
-msgstr "Chequeo de versiones de aplicaci&#x00f3;n"
+#. Tag: para
+#: transactions.xml:583
+#, no-c-format
+msgid ""
+"<literal>LockAcquisitionException</literal> - indicates an error acquiring a "
+"lock level necessary to perform the requested operation."
+msgstr ""
+"<literal>LockAcquisitionException</literal> - indica un error adquiriendo un "
+"nivel de bloqueo necesario para realizar una operación solicitada."
 
-#: index.docbook:589
-msgid "<literal>GenericJDBCException</literal> - a generic exception which did not fall into any of the other categories."
-msgstr "En una implementaci&#x00f3;n sin mucha ayuda de Hibernate, cada interacci&#x00f3;n con la base de datos ocurre en una nueva <literal>Session</literal> y el desarrollador es responsable de recargar todas las intancias persistentes desde la base de datos antes de manipularlas. Este enfoque fuerza a la aplicaci&#x00f3;n a realizar su propio chequeo de versiones para asegurar el aislamiento de transacciones de base de datos. Es el enfoque m&#x00e1;s similar a los EJBs de entidad."
+#. Tag: para
+#: transactions.xml:589
+#, no-c-format
+msgid ""
+"<literal>GenericJDBCException</literal> - a generic exception which did not "
+"fall into any of the other categories."
+msgstr ""
+"<literal>GenericJDBCException</literal> - una excepción genérica que no cayó "
+"en ninguna de las otras categorías."
 
-#: index.docbook:599
+#. Tag: title
+#: transactions.xml:599
+#, no-c-format
 msgid "Transaction timeout"
+msgstr "Transaction timeout"
+
+#. Tag: para
+#: transactions.xml:601
+#, no-c-format
+msgid ""
+"One extremely important feature provided by a managed environment like EJB "
+"that is never provided for non-managed code is transaction timeout. "
+"Transaction timeouts ensure that no misbehaving transaction can indefinitely "
+"tie up resources while returning no response to the user. Outside a managed "
+"(JTA) environment, Hibernate cannot fully provide this functionality. "
+"However, Hibernate can at least control data access operations, ensuring "
+"that database level deadlocks and queries with huge result sets are limited "
+"by a defined timeout. In a managed environment, Hibernate can delegate "
+"transaction timeout to JTA. This functioanlity is abstracted by the "
+"Hibernate <literal>Transaction</literal> object."
 msgstr ""
-      "<![CDATA[// foo is an instance loaded by a previous Session\n"
-      "session = factory.openSession();\n"
-      "Transaction t = session.beginTransaction();\n"
-      "int oldVersion = foo.getVersion();\n"
-      "session.load( foo, foo.getKey() ); // load the current state\n"
-      "if ( oldVersion != foo.getVersion() ) throw new StaleObjectStateException();\n"
-      "foo.setProperty(\"bar\");\n"
-      "t.commit();\n"
-      "session.close();]]>"
+"One extremely important feature provided by a managed environment like EJB "
+"that is never provided for non-managed code is transaction timeout. "
+"Transaction timeouts ensure that no misbehaving transaction can indefinitely "
+"tie up resources while returning no response to the user. Outside a managed "
+"(JTA) environment, Hibernate cannot fully provide this functionality. "
+"However, Hibernate can at least control data access operations, ensuring "
+"that database level deadlocks and queries with huge result sets are limited "
+"by a defined timeout. In a managed environment, Hibernate can delegate "
+"transaction timeout to JTA. This functioanlity is abstracted by the "
+"Hibernate <literal>Transaction</literal> object."
 
-#: index.docbook:601
-msgid "One extremely important feature provided by a managed environment like EJB that is never provided for non-managed code is transaction timeout. Transaction timeouts ensure that no misbehaving transaction can indefinitely tie up resources while returning no response to the user. Outside a managed (JTA) environment, Hibernate cannot fully provide this functionality. However, Hibernate can at least control data access operations, ensuring that database level deadlocks and queries with huge result sets are limited by a defined timeout. In a managed environment, Hibernate can delegate transaction timeout to JTA. This functioanlity is abstracted by the Hibernate <literal>Transaction</literal> object."
-msgstr "La propiedad <literal>version</literal> se mapea usando <literal>&lt;version&gt;</literal>, e Hibernate la incrementar&#x00e1; autom&#x00e1;ticamente durante la limpieza si la entidad est&#x00e1; sucia."
+#. Tag: programlisting
+#: transactions.xml:614
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"Session sess = factory.openSession();\n"
+"try {\n"
+"    //set transaction timeout to 3 seconds\n"
+"    sess.getTransaction().setTimeout(3);\n"
+"    sess.getTransaction().begin();\n"
+"\n"
+"    // do some work\n"
+"    ...\n"
+"\n"
+"    sess.getTransaction().commit()\n"
+"}\n"
+"catch (RuntimeException e) {\n"
+"    sess.getTransaction().rollback();\n"
+"    throw e; // or display error message\n"
+"}\n"
+"finally {\n"
+"    sess.close();\n"
+"}]]>"
+msgstr ""
 
-#: index.docbook:614
+#. Tag: para
+#: transactions.xml:616
+#, no-c-format
 msgid ""
-      "<![CDATA[\n"
-      "Session sess = factory.openSession();\n"
-      "try {\n"
-      "    //set transaction timeout to 3 seconds\n"
-      "    sess.getTransaction().setTimeout(3);\n"
-      "    sess.getTransaction().begin();\n"
-      "\n"
-      "    // do some work\n"
-      "    ...\n"
-      "\n"
-      "    sess.getTransaction().commit()\n"
-      "}\n"
-      "catch (RuntimeException e) {\n"
-      "    sess.getTransaction().rollback();\n"
-      "    throw e; // or display error message\n"
-      "}\n"
-      "finally {\n"
-      "    sess.close();\n"
-      "}]]>"
-msgstr "Por supuesto, si est&#x00e1;s operando un entorno de baja-concurrencia-de-datos y no requieres chequeo de versiones, puedes usar este enfoque y simplemente saltar el chequeo de versiones. En ese caso, <emphasis>el &#x00fa;ltimo compromiso (commit) gana</emphasis> ser&#x00e1; la estrategia por defecto para tus transacciones de aplicaci&#x00f3;n largas. Ten en mente que esto podr&#x00ed;a confundir a los usuarios de la aplicaci&#x00f3;n, pues podr&#x00ed;an experimentar actualizaciones perdidas sin mensajes de error ni chance de fusionar los cambios conflictivos."
+"Note that <literal>setTimeout()</literal> may not be called in a CMT bean, "
+"where transaction timeouts must be defined declaratively."
+msgstr ""
+"Note that <literal>setTimeout()</literal> may not be called in a CMT bean, "
+"where transaction timeouts must be defined declaratively."
 
-#: index.docbook:616
-msgid "Note that <literal>setTimeout()</literal> may not be called in a CMT bean, where transaction timeouts must be defined declaratively."
-msgstr "Claramente, el chequeo manual de versiones es factible solamente en circunstancias muy triviales, y no es pr&#x00e1;ctico para la mayor&#x00ed;a de aplicaciones. Frecuentemente, no s&#x00f3;lo intancias solas, sino grafos completos de objetos modificados tienen que ser chequeados. Hibernate ofrece chequeo de versiones autom&#x00e1;tico con el paradigma de dise&#x00f1;o de <literal>Session</literal> larga o de instancias separadas."
-
-#: index.docbook:626
+#. Tag: title
+#: transactions.xml:626
+#, no-c-format
 msgid "Optimistic concurrency control"
-msgstr "Sesi&#x00f3;n larga y versionado autom&#x00e1;tico"
+msgstr "Control optimista de concurrencia"
 
-#: index.docbook:628
-msgid "The only approach that is consistent with high concurrency and high scalability is optimistic concurrency control with versioning. Version checking uses version numbers, or timestamps, to detect conflicting updates (and to prevent lost updates). Hibernate provides for three possible approaches to writing application code that uses optimistic concurrency. The use cases we show are in the context of long conversations, but version checking also has the benefit of preventing lost updates in single database transactions."
-msgstr "Una sola instancia de <literal>Session</literal> y sus instancias persistentes son usadas para toda la transacci&#x00f3;n de aplicaci&#x00f3;n. Hibernate chequea las versiones de instancia en el momento de limpieza (flush), lanzando una excepci&#x00f3;n si se detecta una modificaci&#x00f3;n concurrente. Concierne al desarrollador capturar y manejar esta excepci&#x00f3;n (las opciones comunes son la oportunidad del usuario de fusionar los cambios, o recomenzar el proceso de negocio sin datos a&#x00f1;ejos)."
+#. Tag: para
+#: transactions.xml:628
+#, no-c-format
+msgid ""
+"The only approach that is consistent with high concurrency and high "
+"scalability is optimistic concurrency control with versioning. Version "
+"checking uses version numbers, or timestamps, to detect conflicting updates "
+"(and to prevent lost updates). Hibernate provides for three possible "
+"approaches to writing application code that uses optimistic concurrency. The "
+"use cases we show are in the context of long conversations, but version "
+"checking also has the benefit of preventing lost updates in single database "
+"transactions."
+msgstr ""
+"El único enfoque que es consistente con alta concurrencia y alta "
+"escalabilidad es el control optimista de concurrencia con versionamiento. El "
+"chuequeo de versión usa números de versión, o timestamps, para detectar "
+"actualizaciones en conflicto (y para prevenir actualizaciones perdidas). "
+"Hibernate provee para tres enfoques posibles de escribir código de "
+"aplicación que use concurrencia optimista. Los casos de uso que hemos "
+"mostrado están en el contexto de transacciones de aplicación largas pero el "
+"chequeo de versiones tiene además el beneficio de prevenir actualizaciones "
+"perdidas en transacciones de base de datos solas."
 
-#: index.docbook:639
+#. Tag: title
+#: transactions.xml:639
+#, no-c-format
 msgid "Application version checking"
-msgstr "La <literal>Session</literal> se desconecta de cualquier conexi&#x00f3;n JDBC subyacente al esperar por una interacci&#x00f3;n del usuario. Este enfoque es el m&#x00e1;s eficiente en t&#x00e9;rminos de acceso a base de datos. La aplicaci&#x00f3;n no necesita tratar por s&#x00ed; misma con el chequeo de versiones, ni re-uniendo instancias separadas, ni tiene que recargar instancias en cada transacci&#x00f3;n de base de datos."
+msgstr "Chequeo de versiones de aplicación"
 
-#: index.docbook:641
-msgid "In an implementation without much help from Hibernate, each interaction with the database occurs in a new <literal>Session</literal> and the developer is responsible for reloading all persistent instances from the database before manipulating them. This approach forces the application to carry out its own version checking to ensure conversation transaction isolation. This approach is the least efficient in terms of database access. It is the approach most similar to entity EJBs."
+#. Tag: para
+#: transactions.xml:641
+#, no-c-format
+msgid ""
+"In an implementation without much help from Hibernate, each interaction with "
+"the database occurs in a new <literal>Session</literal> and the developer is "
+"responsible for reloading all persistent instances from the database before "
+"manipulating them. This approach forces the application to carry out its own "
+"version checking to ensure conversation transaction isolation. This approach "
+"is the least efficient in terms of database access. It is the approach most "
+"similar to entity EJBs."
 msgstr ""
-      "<![CDATA[// foo is an instance loaded earlier by the Session\n"
-      "session.reconnect(); // Obtain a new JDBC connection\n"
-      "Transaction t = session.beginTransaction();\n"
-      "foo.setProperty(\"bar\");\n"
-      "t.commit(); // End database transaction, flushing the change and checking the version\n"
-      "session.disconnect(); // Return JDBC connection ]]>"
+"En una implementación sin mucha ayuda de Hibernate, cada interacción con la "
+"base de datos ocurre en una nueva <literal>Session</literal> y el "
+"desarrollador es responsable de recargar todas las intancias persistentes "
+"desde la base de datos antes de manipularlas. Este enfoque fuerza a la "
+"aplicación a realizar su propio chequeo de versiones para asegurar el "
+"aislamiento de transacciones de base de datos. Es el enfoque más similar a "
+"los EJBs de entidad."
 
-#: index.docbook:650
+#. Tag: programlisting
+#: transactions.xml:650
+#, no-c-format
 msgid ""
-      "<![CDATA[// foo is an instance loaded by a previous Session\n"
-      "session = factory.openSession();\n"
-      "Transaction t = session.beginTransaction();\n"
-      "\n"
-      "int oldVersion = foo.getVersion();\n"
-      "session.load( foo, foo.getKey() ); // load the current state\n"
-      "if ( oldVersion != foo.getVersion() ) throw new StaleObjectStateException();\n"
-      "foo.setProperty(\"bar\");\n"
-      "\n"
-      "t.commit();\n"
-      "session.close();]]>"
-msgstr "El objeto <literal>foo</literal> todav&#x00ed;a conoce en qu&#x00e9; <literal>Session</literal> fue cargado. <literal>Session.reconnect()</literal> obtiene una nueva conexi&#x00f3;n (o puedes proveer una) y reasume la sesi&#x00f3;n. El m&#x00e9;todo <literal>Session.disconnect()</literal> desconectar&#x00e1; la sesi&#x00f3;n de la conexi&#x00f3;n JDBC y la devolver&#x00e1; la conexi&#x00f3;n al pool (a menos que hayas provisto la conexi&#x00f3;n). Despu&#x00e9;s de la reconexi&#x00f3;n, para forzar un chequeo de versi&#x00f3;n en datos que no est&#x00e9;s actualizando, puedes llamar a <literal>Session.lock()</literal> con <literal>LockMode.READ</literal> sobre cualquier objeto que pudiese haber sido actualizado por otra transacci&#x00f3;n. No necesitas bloquear ning&#x00fa;n dato que <emphasis>s&#x00ed; est&#x00e9;s</emphasis> actualizando."
+"<![CDATA[// foo is an instance loaded by a previous Session\n"
+"session = factory.openSession();\n"
+"Transaction t = session.beginTransaction();\n"
+"\n"
+"int oldVersion = foo.getVersion();\n"
+"session.load( foo, foo.getKey() ); // load the current state\n"
+"if ( oldVersion != foo.getVersion() ) throw new StaleObjectStateException"
+"();\n"
+"foo.setProperty(\"bar\");\n"
+"\n"
+"t.commit();\n"
+"session.close();]]>"
+msgstr ""
 
-#: index.docbook:652
-msgid "The <literal>version</literal> property is mapped using <literal>&lt;version&gt;</literal>, and Hibernate will automatically increment it during flush if the entity is dirty."
-msgstr "Si las llamadas expl&#x00ed;citas a <literal>disconnect()</literal> y <literal>reconnect()</literal> son muy onerosas, puedes usar en cambio <literal>hibernate.connection.release_mode</literal>."
+#. Tag: para
+#: transactions.xml:652
+#, no-c-format
+msgid ""
+"The <literal>version</literal> property is mapped using <literal>&lt;"
+"version&gt;</literal>, and Hibernate will automatically increment it during "
+"flush if the entity is dirty."
+msgstr ""
+"La propiedad <literal>version</literal> se mapea usando <literal>&lt;"
+"version&gt;</literal>, e Hibernate la incrementará automáticamente durante "
+"la limpieza si la entidad está sucia."
 
-#: index.docbook:658
-msgid "Of course, if you are operating in a low-data-concurrency environment and don't require version checking, you may use this approach and just skip the version check. In that case, <emphasis>last commit wins</emphasis> will be the default strategy for your long conversations. Keep in mind that this might confuse the users of the application, as they might experience lost updates without error messages or a chance to merge conflicting changes."
-msgstr "Este patr&#x00f3;n es problem&#x00e1;tico si la <literal>Session</literal> es demasiado grande para ser almacenada durante el tiempo de pensar del usuario, por ejemplo, una <literal>HttpSession</literal> debe mantenerse tan peque&#x00f1;a como sea posible. Ya que la <literal>Session</literal> es tambi&#x00e9;n el cach&#x00e9; (obligatorio) de primer nivel y contiene todos los objetos cargados, podemos probablemente cargar esta estrategia s&#x00f3;lo para unos pocos ciclos petici&#x00f3;n/respuesta. Esto est&#x00e1; de hecho recomendado, ya que la <literal>Session</literal> tendr&#x00e1; pronto tambi&#x00e9;n datos a&#x00f1;ejos."
+#. Tag: para
+#: transactions.xml:658
+#, no-c-format
+msgid ""
+"Of course, if you are operating in a low-data-concurrency environment and "
+"don't require version checking, you may use this approach and just skip the "
+"version check. In that case, <emphasis>last commit wins</emphasis> will be "
+"the default strategy for your long conversations. Keep in mind that this "
+"might confuse the users of the application, as they might experience lost "
+"updates without error messages or a chance to merge conflicting changes."
+msgstr ""
+"Por supuesto, si estás operando un entorno de baja-concurrencia-de-datos y "
+"no requieres chequeo de versiones, puedes usar este enfoque y simplemente "
+"saltar el chequeo de versiones. En ese caso, <emphasis>el último compromiso "
+"(commit) gana</emphasis> será la estrategia por defecto para tus "
+"transacciones de aplicación largas. Ten en mente que esto podría confundir a "
+"los usuarios de la aplicación, pues podrían experimentar actualizaciones "
+"perdidas sin mensajes de error ni chance de fusionar los cambios "
+"conflictivos."
 
-#: index.docbook:667
-msgid "Clearly, manual version checking is only feasible in very trivial circumstances and not practical for most applications. Often not only single instances, but complete graphs of modified ojects have to be checked. Hibernate offers automatic version checking with either an extended <literal>Session</literal> or detached instances as the design paradigm."
-msgstr "Nota tambi&#x00e9;n que debes mantener la <literal>Session</literal> desconectada pr&#x00f3;xima a la capa de persistencia. En otras palabras, usa una sesi&#x00f3;n de EJB con estado para tener la <literal>Session</literal> y no transferirla a la capa web para almacenarla en la <literal>HttpSession</literal> (ni incluso serializarla a una capa separada)."
+#. Tag: para
+#: transactions.xml:667
+#, no-c-format
+msgid ""
+"Clearly, manual version checking is only feasible in very trivial "
+"circumstances and not practical for most applications. Often not only single "
+"instances, but complete graphs of modified ojects have to be checked. "
+"Hibernate offers automatic version checking with either an extended "
+"<literal>Session</literal> or detached instances as the design paradigm."
+msgstr ""
+"Claramente, el chequeo manual de versiones es factible solamente en "
+"circunstancias muy triviales, y no es práctico para la mayoría de "
+"aplicaciones. Frecuentemente, no sólo intancias solas, sino grafos completos "
+"de objetos modificados tienen que ser chequeados. Hibernate ofrece chequeo "
+"de versiones automático con el paradigma de diseño de <literal>Session</"
+"literal> larga o de instancias separadas."
 
-#: index.docbook:678
+#. Tag: title
+#: transactions.xml:678
+#, no-c-format
 msgid "Extended session and automatic versioning"
-msgstr "Objetos separados y versionado autom&#x00e1;tico"
+msgstr "Sesión larga y versionado automático"
 
-#: index.docbook:680
-msgid "A single <literal>Session</literal> instance and its persistent instances are used for the whole conversation, known as <emphasis>session-per-conversation</emphasis>. Hibernate checks instance versions at flush time, throwing an exception if concurrent modification is detected. It's up to the developer to catch and handle this exception (common options are the opportunity for the user to merge changes or to restart the business conversation with non-stale data)."
-msgstr "Cada interacci&#x00f3;n con el almac&#x00e9;n persistente ocurre en una nueva <literal>Session</literal>. Sin embargo, las mismas instancias persistentes son reusadas para cada interacci&#x00f3;n con la base de datos. La aplicaci&#x00f3;n manipula el estado de las instancias separadas originalmente cargadas en otra <literal>Session</literal> y luego las readjunta usando <literal>Session.update()</literal>, <literal>Session.saveOrUpdate()</literal>, o <literal>Session.merge()</literal>."
+#. Tag: para
+#: transactions.xml:680
+#, no-c-format
+msgid ""
+"A single <literal>Session</literal> instance and its persistent instances "
+"are used for the whole conversation, known as <emphasis>session-per-"
+"conversation</emphasis>. Hibernate checks instance versions at flush time, "
+"throwing an exception if concurrent modification is detected. It's up to the "
+"developer to catch and handle this exception (common options are the "
+"opportunity for the user to merge changes or to restart the business "
+"conversation with non-stale data)."
+msgstr ""
+"Una sola instancia de <literal>Session</literal> y sus instancias "
+"persistentes son usadas para toda la transacción de aplicación. Hibernate "
+"chequea las versiones de instancia en el momento de limpieza (flush), "
+"lanzando una excepción si se detecta una modificación concurrente. Concierne "
+"al desarrollador capturar y manejar esta excepción (las opciones comunes son "
+"la oportunidad del usuario de fusionar los cambios, o recomenzar el proceso "
+"de negocio sin datos añejos)."
 
-#: index.docbook:689
-msgid "The <literal>Session</literal> is disconnected from any underlying JDBC connection when waiting for user interaction. This approach is the most efficient in terms of database access. The application need not concern itself with version checking or with reattaching detached instances, nor does it have to reload instances in every database transaction."
+#. Tag: para
+#: transactions.xml:689
+#, no-c-format
+msgid ""
+"The <literal>Session</literal> is disconnected from any underlying JDBC "
+"connection when waiting for user interaction. This approach is the most "
+"efficient in terms of database access. The application need not concern "
+"itself with version checking or with reattaching detached instances, nor "
+"does it have to reload instances in every database transaction."
 msgstr ""
-      "<![CDATA[// foo is an instance loaded by a previous Session\n"
-      "foo.setProperty(\"bar\");\n"
-      "session = factory.openSession();\n"
-      "Transaction t = session.beginTransaction();\n"
-      "session.saveOrUpdate(foo); // Use merge() if \"foo\" might have been loaded already\n"
-      "t.commit();\n"
-      "session.close();]]>"
+"La <literal>Session</literal> se desconecta de cualquier conexión JDBC "
+"subyacente al esperar por una interacción del usuario. Este enfoque es el "
+"más eficiente en términos de acceso a base de datos. La aplicación no "
+"necesita tratar por sí misma con el chequeo de versiones, ni re-uniendo "
+"instancias separadas, ni tiene que recargar instancias en cadatransactions-"
+"demarcation-timeout transacción de base de datos."
 
-#: index.docbook:697
+#. Tag: programlisting
+#: transactions.xml:697
+#, no-c-format
 msgid ""
-      "<![CDATA[// foo is an instance loaded earlier by the old session\n"
-      "Transaction t = session.beginTransaction(); // Obtain a new JDBC connection, start transaction\n"
-      "\n"
-      "foo.setProperty(\"bar\");\n"
-      "\n"
-      "session.flush();    // Only for last transaction in conversation\n"
-      "t.commit();         // Also return JDBC connection\n"
-      "session.close();    // Only for last transaction in conversation]]>"
-msgstr "De nuevo, Hibernate chequear&#x00e1; las versiones de instancia durante la limpieza (flush), lanzando una excepci&#x00f3;n si ocurrieron actualizaciones en conflicto."
+"<![CDATA[// foo is an instance loaded earlier by the old session\n"
+"Transaction t = session.beginTransaction(); // Obtain a new JDBC connection, "
+"start transaction\n"
+"\n"
+"foo.setProperty(\"bar\");\n"
+"\n"
+"session.flush();    // Only for last transaction in conversation\n"
+"t.commit();         // Also return JDBC connection\n"
+"session.close();    // Only for last transaction in conversation]]>"
+msgstr ""
 
-#: index.docbook:698
-msgid "The <literal>foo</literal> object still knows which <literal>Session</literal> it was loaded in. Beginning a new database transaction on an old session obtains a new connection and resumes the session. Committing a database transaction disconnects a session from the JDBC connection and returns the connection to the pool. After reconnection, to force a version check on data you aren't updating, you may call <literal>Session.lock()</literal> with <literal>LockMode.READ</literal> on any objects that might have been updated by another transaction. You don't need to lock any data that you <emphasis>are</emphasis> updating. Usually you would set <literal>FlushMode.MANUAL</literal> on an extended <literal>Session</literal>, so that only the last database transaction cycle is allowed to actually persist all modifications made in this conversation. Hence, only this last database transaction would include the <literal>flush()</literal> operation, and then also <literal>close()!
 </literal> the session to end the conversation."
-msgstr "Puedes tambi&#x00e9;n llamar a <literal>lock()</literal> en vez de <literal>update()</literal> y usar <literal>LockMode.READ</literal> (realizando un chequeo de versi&#x00f3;n, puenteando todos los cach&#x00e9;s) si est&#x00e1;s seguro que el objeto no ha sido modificado."
+#. Tag: para
+#: transactions.xml:698
+#, no-c-format
+msgid ""
+"The <literal>foo</literal> object still knows which <literal>Session</"
+"literal> it was loaded in. Beginning a new database transaction on an old "
+"session obtains a new connection and resumes the session. Committing a "
+"database transaction disconnects a session from the JDBC connection and "
+"returns the connection to the pool. After reconnection, to force a version "
+"check on data you aren't updating, you may call <literal>Session.lock()</"
+"literal> with <literal>LockMode.READ</literal> on any objects that might "
+"have been updated by another transaction. You don't need to lock any data "
+"that you <emphasis>are</emphasis> updating. Usually you would set "
+"<literal>FlushMode.MANUAL</literal> on an extended <literal>Session</"
+"literal>, so that only the last database transaction cycle is allowed to "
+"actually persist all modifications made in this conversation. Hence, only "
+"this last database transaction would include the <literal>flush()</literal> "
+"operation, and then also <literal>close()</literal> the session to end the "
+"conversation."
+msgstr ""
+"El objeto <literal>foo</literal> todavía conoce en qué <literal>Session</"
+"literal> fue cargado. <literal>Session.reconnect()</literal> obtiene una "
+"nueva conexión (o puedes proveer una) y reasume la sesión. El método "
+"<literal>Session.disconnect()</literal> desconectará la sesión de la "
+"conexión JDBC y la devolverá la conexión al pool (a menos que hayas provisto "
+"la conexión). Después de la reconexión, para forzar un chequeo de versión en "
+"datos que no estés actualizando, puedes llamar a <literal>Session.lock()</"
+"literal> con <literal>LockMode.READ</literal> sobre cualquier objeto que "
+"pudiese haber sido actualizado por otra transacción. No necesitas bloquear "
+"ningún dato que <emphasis>sí estés</emphasis> actualizando."
 
-#: index.docbook:713
-msgid "This pattern is problematic if the <literal>Session</literal> is too big to be stored during user think time, e.g. an <literal>HttpSession</literal> should be kept as small as possible. As the <literal>Session</literal> is also the (mandatory) first-level cache and contains all loaded objects, we can probably use this strategy only for a few request/response cycles. You should use a <literal>Session</literal> only for a single conversation, as it will soon also have stale data."
-msgstr "Personalizando el versionado autom&#x00e1;tico"
+#. Tag: para
+#: transactions.xml:713
+#, no-c-format
+msgid ""
+"This pattern is problematic if the <literal>Session</literal> is too big to "
+"be stored during user think time, e.g. an <literal>HttpSession</literal> "
+"should be kept as small as possible. As the <literal>Session</literal> is "
+"also the (mandatory) first-level cache and contains all loaded objects, we "
+"can probably use this strategy only for a few request/response cycles. You "
+"should use a <literal>Session</literal> only for a single conversation, as "
+"it will soon also have stale data."
+msgstr ""
+"Si las llamadas explícitas a <literal>disconnect()</literal> y "
+"<literal>reconnect()</literal> son muy onerosas, puedes usar en cambio "
+"<literal>hibernate.connection.release_mode</literal>."
 
-#: index.docbook:723
-msgid "(Note that earlier Hibernate versions required explicit disconnection and reconnection of a <literal>Session</literal>. These methods are deprecated, as beginning and ending a transaction has the same effect.)"
-msgstr "Puedes deshabilitar el incremento de versi&#x00f3;n autom&#x00e1;tico de Hibernate para propiedades en particular y colecciones estableciendo el atributo de mapeo <literal>optimistic-lock</literal> a <literal>false</literal>. Hibernate entonces no incrementar&#x00e1; ya m&#x00e1;s las versiones si la propiedad est&#x00e1; sucia."
+#. Tag: para
+#: transactions.xml:723
+#, no-c-format
+msgid ""
+"(Note that earlier Hibernate versions required explicit disconnection and "
+"reconnection of a <literal>Session</literal>. These methods are deprecated, "
+"as beginning and ending a transaction has the same effect.)"
+msgstr ""
+"Este patrón es problemático si la <literal>Session</literal> es demasiado "
+"grande para ser almacenada durante el tiempo de pensar del usuario, por "
+"ejemplo, una <literal>HttpSession</literal> debe mantenerse tan pequeña como "
+"sea posible. Ya que la <literal>Session</literal> es también el caché "
+"(obligatorio) de primer nivel y contiene todos los objetos cargados, podemos "
+"probablemente cargar esta estrategia sólo para unos pocos ciclos petición/"
+"respuesta. Esto está de hecho recomendado, ya que la <literal>Session</"
+"literal> tendrá pronto también datos añejos."
 
-#: index.docbook:729
-msgid "Also note that you should keep the disconnected <literal>Session</literal> close to the persistence layer. In other words, use an EJB stateful session bean to hold the <literal>Session</literal> in a three-tier environment, and don't transfer it to the web layer (or even serialize it to a separate tier) to store it in the <literal>HttpSession</literal>."
-msgstr "Los esquemas de base de datos heredados son frecuentemente est&#x00e1;ticos y no pueden ser modificados. U otras aplicaciones podr&#x00ed;an tambi&#x00e9;n acceder la misma base de datos y no saber c&#x00f3;mo manejar los n&#x00fa;meros de versi&#x00f3;n ni incluso timestamps. En ambos casos, el versionado no puede confiarse a una columna en particular en una tabla. Para forzar un chequeo de versiones sin un mapeo de propiedad de versi&#x00f3;n o timestamp, con una comparaci&#x00f3;n del estado de todos los campos en una fila, activa <literal>optimistic-lock=\"all\"</literal> en el mapeo de <literal>&lt;class&gt;</literal>. Nota que esto conceptualmente funciona solamente si Hibernate puede comparar el estado viejo y nuevo, es decir, si usas una sola <literal>Session</literal> larga y no sesi&#x00f3;n-por-petici&#x00f3;n-con-instancias-separadas."
+#. Tag: para
+#: transactions.xml:729
+#, no-c-format
+msgid ""
+"Also note that you should keep the disconnected <literal>Session</literal> "
+"close to the persistence layer. In other words, use an EJB stateful session "
+"bean to hold the <literal>Session</literal> in a three-tier environment, and "
+"don't transfer it to the web layer (or even serialize it to a separate tier) "
+"to store it in the <literal>HttpSession</literal>."
+msgstr ""
+"Nota también que debes mantener la <literal>Session</literal> desconectada "
+"próxima a la capa de persistencia. En otras palabras, usa una sesión de EJB "
+"con estado para tener la <literal>Session</literal> y no transferirla a la "
+"capa web para almacenarla en la <literal>HttpSession</literal> (ni incluso "
+"serializarla a una capa separada)."
 
-#: index.docbook:737
-msgid "The extended session pattern, or <emphasis>session-per-conversation</emphasis>, is more difficult to implement with automatic current session context management. You need to supply your own implementation of the <literal>CurrentSessionContext</literal> for this, see the Hibernate Wiki for examples."
-msgstr "A veces las modificaciones concurrentes pueden permitirse, en cuanto los cambios que hayan sido hechos no se traslapen. Si estableces <literal>optimistic-lock=\"dirty\"</literal> al mapear la <literal>&lt;class&gt;</literal>, Hibernate s&#x00f3;lo comparar&#x00e1; los campos sucios durante la limpieza."
+#. Tag: para
+#: transactions.xml:737
+#, no-c-format
+msgid ""
+"The extended session pattern, or <emphasis>session-per-conversation</"
+"emphasis>, is more difficult to implement with automatic current session "
+"context management. You need to supply your own implementation of the "
+"<literal>CurrentSessionContext</literal> for this, see the Hibernate Wiki "
+"for examples."
+msgstr ""
+"UNTRANSLATED!!! The extended session pattern, or <emphasis>session-per-"
+"conversation</emphasis>, is more difficult to implement with automatic "
+"current session context management. You need to supply your own "
+"implementation of the <literal>CurrentSessionContext</literal> for this, see "
+"the Hibernate Wiki for examples."
 
-#: index.docbook:747
+#. Tag: title
+#: transactions.xml:747
+#, no-c-format
 msgid "Detached objects and automatic versioning"
-msgstr "En ambos casos, con columnas de versi&#x00f3;n/timestamp dedicadas o con comparaci&#x00f3;n de campos completa/sucios, Hibernate usa una sola sentencia <literal>UPDATE</literal> (con una cl&#x00e1;usula <literal>WHERE</literal> apropiada) por entidad para ejecutar el chequeo de versiones y actualizar la informaci&#x00f3;n. Si usas persistencia transitiva para la re-uni&#x00f3;n en cascada de entidades asociadas, Hibernate podr&#x00ed;a ejecutar actualizaciones innecesarias. Esto usualmente no es un problema, pero podr&#x00ed;an ejecutarse disparadores (triggers) <emphasis>on update</emphasis> en la base de datos incluso cuando no se haya hecho ning&#x00fa;n cambio a las instancias separadas. Puedes personalizar este comportamiento estableciendo <literal>select-before-update=\"true\"</literal> en el mapeo de <literal>&lt;class&gt;</literal>, forzando a Hibernate a <literal>SELECT</literal> la instancia para asegurar que las actualizaciones realmente ocurran, antes de!
  actualizar la fila."
+msgstr "Objetos separados y versionado automático"
 
-#: index.docbook:749
-msgid "Each interaction with the persistent store occurs in a new <literal>Session</literal>. However, the same persistent instances are reused for each interaction with the database. The application manipulates the state of detached instances originally loaded in another <literal>Session</literal> and then reattaches them using <literal>Session.update()</literal>, <literal>Session.saveOrUpdate()</literal>, or <literal>Session.merge()</literal>."
-msgstr "Bloqueo pesimista"
+#. Tag: para
+#: transactions.xml:749
+#, no-c-format
+msgid ""
+"Each interaction with the persistent store occurs in a new <literal>Session</"
+"literal>. However, the same persistent instances are reused for each "
+"interaction with the database. The application manipulates the state of "
+"detached instances originally loaded in another <literal>Session</literal> "
+"and then reattaches them using <literal>Session.update()</literal>, "
+"<literal>Session.saveOrUpdate()</literal>, or <literal>Session.merge()</"
+"literal>."
+msgstr ""
+"Cada interacción con el almacén persistente ocurre en una nueva "
+"<literal>Session</literal>. Sin embargo, las mismas instancias persistentes "
+"son reusadas para cada interacción con la base de datos. La aplicación "
+"manipula el estado de las instancias separadas originalmente cargadas en "
+"otra <literal>Session</literal> y luego las readjunta usando "
+"<literal>Session.update()</literal>, <literal>Session.saveOrUpdate()</"
+"literal>, o <literal>Session.merge()</literal>."
 
-#: index.docbook:757
+#. Tag: programlisting
+#: transactions.xml:757
+#, no-c-format
 msgid ""
-      "<![CDATA[// foo is an instance loaded by a previous Session\n"
-      "foo.setProperty(\"bar\");\n"
-      "session = factory.openSession();\n"
-      "Transaction t = session.beginTransaction();\n"
-      "session.saveOrUpdate(foo); // Use merge() if \"foo\" might have been loaded already\n"
-      "t.commit();\n"
-      "session.close();]]>"
-msgstr "No se pretende que los usuarios gasten mucho tiempo preocup&#x00e1;ndose de las estrategias de bloqueo. Usualmente es suficiente con especificar un nivel de aislamiento para las conexiones JDBC y entonces simplemente dejar que la base de datos haga todo el trabajo. Sin embargo, los usuarios avanzados pueden a veces obtener bloqueos exclusivos pesimistas, o reobtener bloqueos al comienzo de una nueva transacci&#x00f3;n."
+"<![CDATA[// foo is an instance loaded by a previous Session\n"
+"foo.setProperty(\"bar\");\n"
+"session = factory.openSession();\n"
+"Transaction t = session.beginTransaction();\n"
+"session.saveOrUpdate(foo); // Use merge() if \"foo\" might have been loaded "
+"already\n"
+"t.commit();\n"
+"session.close();]]>"
+msgstr ""
 
-#: index.docbook:759
-msgid "Again, Hibernate will check instance versions during flush, throwing an exception if conflicting updates occured."
-msgstr "&#x00a1;Hibernate siempre usar&#x00e1; el mecanismo de bloqueo de la base de datos, nunca bloqueo de objetos en memoria!"
+#. Tag: para
+#: transactions.xml:759
+#, no-c-format
+msgid ""
+"Again, Hibernate will check instance versions during flush, throwing an "
+"exception if conflicting updates occured."
+msgstr ""
+"De nuevo, Hibernate chequeará las versiones de instancia durante la limpieza "
+"(flush), lanzando una excepción si ocurrieron actualizaciones en conflicto."
 
-#: index.docbook:764
-msgid "You may also call <literal>lock()</literal> instead of <literal>update()</literal> and use <literal>LockMode.READ</literal> (performing a version check, bypassing all caches) if you are sure that the object has not been modified."
-msgstr "La clase <literal>LockMode</literal> define los diferentes niveles de bloqueo que pueden ser adquiridos por Hibernate. Un bloqueo se obtiene por los siguientes mecanismos:"
+#. Tag: para
+#: transactions.xml:764
+#, no-c-format
+msgid ""
+"You may also call <literal>lock()</literal> instead of <literal>update()</"
+"literal> and use <literal>LockMode.READ</literal> (performing a version "
+"check, bypassing all caches) if you are sure that the object has not been "
+"modified."
+msgstr ""
+"Puedes también llamar a <literal>lock()</literal> en vez de <literal>update()"
+"</literal> y usar <literal>LockMode.READ</literal> (realizando un chequeo de "
+"versión, puenteando todos los cachés) si estás seguro que el objeto no ha "
+"sido modificado."
 
-#: index.docbook:773
+#. Tag: title
+#: transactions.xml:773
+#, no-c-format
 msgid "Customizing automatic versioning"
-msgstr "<literal>LockMode.WRITE</literal> se adquiere autom&#x00e1;ticamente cuando Hibernate actualiza o inserta una fila."
+msgstr "Personalizando el versionado automático"
 
-#: index.docbook:775
-msgid "You may disable Hibernate's automatic version increment for particular properties and collections by setting the <literal>optimistic-lock</literal> mapping attribute to <literal>false</literal>. Hibernate will then no longer increment versions if the property is dirty."
-msgstr "<literal>LockMode.UPGRADE</literal> puede ser adquirido bajo petici&#x00f3;n expl&#x00ed;cita del usuario usando <literal>SELECT ... FOR UPDATE</literal> en base de datos que soporten esa sint&#x00e1;xis."
+#. Tag: para
+#: transactions.xml:775
+#, no-c-format
+msgid ""
+"You may disable Hibernate's automatic version increment for particular "
+"properties and collections by setting the <literal>optimistic-lock</literal> "
+"mapping attribute to <literal>false</literal>. Hibernate will then no longer "
+"increment versions if the property is dirty."
+msgstr ""
+"Puedes deshabilitar el incremento de versión automático de Hibernate para "
+"propiedades en particular y colecciones estableciendo el atributo de mapeo "
+"<literal>optimistic-lock</literal> a <literal>false</literal>. Hibernate "
+"entonces no incrementará ya más las versiones si la propiedad está sucia."
 
-#: index.docbook:782
-msgid "Legacy database schemas are often static and can't be modified. Or, other applications might also access the same database and don't know how to handle version numbers or even timestamps. In both cases, versioning can't rely on a particular column in a table. To force a version check without a version or timestamp property mapping, with a comparison of the state of all fields in a row, turn on <literal>optimistic-lock=\"all\"</literal> in the <literal>&lt;class&gt;</literal> mapping. Note that this concepetually only works if Hibernate can compare the old and new state, i.e. if you use a single long <literal>Session</literal> and not session-per-request-with-detached-objects."
-msgstr "<literal>LockMode.UPGRADE_NOWAIT</literal> puede ser adquirido bajo petici&#x00f3;n expl&#x00ed;cita del usuario usando un <literal>SELECT ... FOR UPDATE NOWAIT</literal> bajo Oracle."
+#. Tag: para
+#: transactions.xml:782
+#, no-c-format
+msgid ""
+"Legacy database schemas are often static and can't be modified. Or, other "
+"applications might also access the same database and don't know how to "
+"handle version numbers or even timestamps. In both cases, versioning can't "
+"rely on a particular column in a table. To force a version check without a "
+"version or timestamp property mapping, with a comparison of the state of all "
+"fields in a row, turn on <literal>optimistic-lock=\"all\"</literal> in the "
+"<literal>&lt;class&gt;</literal> mapping. Note that this concepetually only "
+"works if Hibernate can compare the old and new state, i.e. if you use a "
+"single long <literal>Session</literal> and not session-per-request-with-"
+"detached-objects."
+msgstr ""
+"Los esquemas de base de datos heredados son frecuentemente estáticos y no "
+"pueden ser modificados. U otras aplicaciones podrían también acceder la "
+"misma base de datos y no saber cómo manejar los números de versión ni "
+"incluso timestamps. En ambos casos, el versionado no puede confiarse a una "
+"columna en particular en una tabla. Para forzar un chequeo de versiones sin "
+"un mapeo de propiedad de versión o timestamp, con una comparación del estado "
+"de todos los campos en una fila, activa <literal>optimistic-lock=\"all\"</"
+"literal> en el mapeo de <literal>&lt;class&gt;</literal>. Nota que esto "
+"conceptualmente funciona solamente si Hibernate puede comparar el estado "
+"viejo y nuevo, es decir, si usas una sola <literal>Session</literal> larga y "
+"no sesión-por-petición-con-instancias-separadas."
 
-#: index.docbook:793
-msgid "Sometimes concurrent modification can be permitted as long as the changes that have been made don't overlap. If you set <literal>optimistic-lock=\"dirty\"</literal> when mapping the <literal>&lt;class&gt;</literal>, Hibernate will only compare dirty fields during flush."
-msgstr "<literal>LockMode.READ</literal> es adquirido autom&#x00e1;ticamente cuando Hibernate lee datos bajo los niveles de aislamiento Repeatable Read o Serializable. Puede ser readquirido por pedido expl&#x00ed;cito del usuario."
+#. Tag: para
+#: transactions.xml:793
+#, no-c-format
+msgid ""
+"Sometimes concurrent modification can be permitted as long as the changes "
+"that have been made don't overlap. If you set <literal>optimistic-lock="
+"\"dirty\"</literal> when mapping the <literal>&lt;class&gt;</literal>, "
+"Hibernate will only compare dirty fields during flush."
+msgstr ""
+"A veces las modificaciones concurrentes pueden permitirse, en cuanto los "
+"cambios que hayan sido hechos no se traslapen. Si estableces "
+"<literal>optimistic-lock=\"dirty\"</literal> al mapear la <literal>&lt;"
+"class&gt;</literal>, Hibernate sólo comparará los campos sucios durante la "
+"limpieza."
 
-#: index.docbook:799
-msgid "In both cases, with dedicated version/timestamp columns or with full/dirty field comparison, Hibernate uses a single <literal>UPDATE</literal> statement (with an appropriate <literal>WHERE</literal> clause) per entity to execute the version check and update the information. If you use transitive persistence to cascade reattachment to associated entities, Hibernate might execute uneccessary updates. This is usually not a problem, but <emphasis>on update</emphasis> triggers in the database might be executed even when no changes have been made to detached instances. You can customize this behavior by setting <literal>select-before-update=\"true\"</literal> in the <literal>&lt;class&gt;</literal> mapping, forcing Hibernate to <literal>SELECT</literal> the instance to ensure that changes did actually occur, before updating the row."
-msgstr "<literal>LockMode.NONE</literal> representa la ausencia de un bloqueo. Todos los objetos se pasan a este modo de bloqueo al final de una <literal>Transaction</literal>. Los objetos asociados con una sesi&#x00f3;n v&#x00ed;a una llamada a <literal>update()</literal> o <literal>saveOrUpdate()</literal> tambi&#x00e9;n comienzan en este modo de bloqueo."
+#. Tag: para
+#: transactions.xml:799
+#, no-c-format
+msgid ""
+"In both cases, with dedicated version/timestamp columns or with full/dirty "
+"field comparison, Hibernate uses a single <literal>UPDATE</literal> "
+"statement (with an appropriate <literal>WHERE</literal> clause) per entity "
+"to execute the version check and update the information. If you use "
+"transitive persistence to cascade reattachment to associated entities, "
+"Hibernate might execute uneccessary updates. This is usually not a problem, "
+"but <emphasis>on update</emphasis> triggers in the database might be "
+"executed even when no changes have been made to detached instances. You can "
+"customize this behavior by setting <literal>select-before-update=\"true\"</"
+"literal> in the <literal>&lt;class&gt;</literal> mapping, forcing Hibernate "
+"to <literal>SELECT</literal> the instance to ensure that changes did "
+"actually occur, before updating the row."
+msgstr ""
+"En ambos casos, con columnas de versión/timestamp dedicadas o con "
+"comparación de campos completa/sucios, Hibernate usa una sola sentencia "
+"<literal>UPDATE</literal> (con una cláusula <literal>WHERE</literal> "
+"apropiada) por entidad para ejecutar el chequeo de versiones y actualizar la "
+"información. Si usas persistencia transitiva para la re-unión en cascada de "
+"entidades asociadas, Hibernate podría ejecutar actualizaciones innecesarias. "
+"Esto usualmente no es un problema, pero podrían ejecutarse disparadores "
+"(triggers) <emphasis>on update</emphasis> en la base de datos incluso cuando "
+"no se haya hecho ningún cambio a las instancias separadas. Puedes "
+"personalizar este comportamiento estableciendo <literal>select-before-update="
+"\"true\"</literal> en el mapeo de <literal>&lt;class&gt;</literal>, forzando "
+"a Hibernate a <literal>SELECT</literal> la instancia para asegurar que las "
+"actualizaciones realmente ocurran, antes de actualizar la fila."
 
-#: index.docbook:817
+#. Tag: title
+#: transactions.xml:817
+#, no-c-format
 msgid "Pessimistic Locking"
-msgstr "La \"petici&#x00f3;n expl&#x00ed;cita del usuario\" se expresa en una de las siguientes formas:"
+msgstr "Bloqueo pesimista"
 
-#: index.docbook:819
-msgid "It is not intended that users spend much time worring about locking strategies. Its usually enough to specify an isolation level for the JDBC connections and then simply let the database do all the work. However, advanced users may sometimes wish to obtain exclusive pessimistic locks, or re-obtain locks at the start of a new transaction."
-msgstr "Una llamada a <literal>Session.load()</literal>, especificando un <literal>LockMode</literal>."
+#. Tag: para
+#: transactions.xml:819
+#, no-c-format
+msgid ""
+"It is not intended that users spend much time worring about locking "
+"strategies. Its usually enough to specify an isolation level for the JDBC "
+"connections and then simply let the database do all the work. However, "
+"advanced users may sometimes wish to obtain exclusive pessimistic locks, or "
+"re-obtain locks at the start of a new transaction."
+msgstr ""
+"No se pretende que los usuarios gasten mucho tiempo preocupándose de las "
+"estrategias de bloqueo. Usualmente es suficiente con especificar un nivel de "
+"aislamiento para las conexiones JDBC y entonces simplemente dejar que la "
+"base de datos haga todo el trabajo. Sin embargo, los usuarios avanzados "
+"pueden a veces obtener bloqueos exclusivos pesimistas, o reobtener bloqueos "
+"al comienzo de una nueva transacción."
 
-#: index.docbook:826
-msgid "Hibernate will always use the locking mechanism of the database, never lock objects in memory!"
-msgstr "Una llamada a <literal>Session.lock()</literal>."
+#. Tag: para
+#: transactions.xml:826
+#, no-c-format
+msgid ""
+"Hibernate will always use the locking mechanism of the database, never lock "
+"objects in memory!"
+msgstr ""
+"¡Hibernate siempre usará el mecanismo de bloqueo de la base de datos, nunca "
+"bloqueo de objetos en memoria!"
 
-#: index.docbook:831
-msgid "The <literal>LockMode</literal> class defines the different lock levels that may be acquired by Hibernate. A lock is obtained by the following mechanisms:"
-msgstr "Una llamada a <literal>Query.setLockMode()</literal>."
+#. Tag: para
+#: transactions.xml:831
+#, no-c-format
+msgid ""
+"The <literal>LockMode</literal> class defines the different lock levels that "
+"may be acquired by Hibernate. A lock is obtained by the following mechanisms:"
+msgstr ""
+"La clase <literal>LockMode</literal> define los diferentes niveles de "
+"bloqueo que pueden ser adquiridos por Hibernate. Un bloqueo se obtiene por "
+"los siguientes mecanismos:"
 
-#: index.docbook:838
-msgid "<literal>LockMode.WRITE</literal> is acquired automatically when Hibernate updates or inserts a row."
-msgstr "Si se llama a <literal>Session.load()</literal> con <literal>UPGRADE</literal> o <literal>UPGRADE_NOWAIT</literal>, y el objeto pedido no ha sido a&#x00fa;n cargado por la sesi&#x00f3;n, el objeto es cargado usando <literal>SELECT ... FOR UPDATE</literal>. Si se llama a <literal>load()</literal> para un objeto que ya est&#x00e9; cargado con un bloqueo menos restrictivo que el pedido, Hibernate llama a <literal>lock()</literal> para ese objeto."
+#. Tag: para
+#: transactions.xml:838
+#, no-c-format
+msgid ""
+"<literal>LockMode.WRITE</literal> is acquired automatically when Hibernate "
+"updates or inserts a row."
+msgstr ""
+"<literal>LockMode.WRITE</literal> se adquiere automáticamente cuando "
+"Hibernate actualiza o inserta una fila."
 
-#: index.docbook:844
-msgid "<literal>LockMode.UPGRADE</literal> may be acquired upon explicit user request using <literal>SELECT ... FOR UPDATE</literal> on databases which support that syntax."
-msgstr "<literal>Session.lock()</literal> realiza un chequeo de n&#x00fa;mero de versi&#x00f3;n si el modo de bloqueo especificado es <literal>READ</literal>, <literal>UPGRADE</literal> o <literal>UPGRADE_NOWAIT</literal>. (En el caso de <literal>UPGRADE</literal> o <literal>UPGRADE_NOWAIT</literal>, se usa <literal>SELECT ... FOR UPDATE</literal>.)"
+#. Tag: para
+#: transactions.xml:844
+#, no-c-format
+msgid ""
+"<literal>LockMode.UPGRADE</literal> may be acquired upon explicit user "
+"request using <literal>SELECT ... FOR UPDATE</literal> on databases which "
+"support that syntax."
+msgstr ""
+"<literal>LockMode.UPGRADE</literal> puede ser adquirido bajo petición "
+"explícita del usuario usando <literal>SELECT ... FOR UPDATE</literal> en "
+"base de datos que soporten esa sintáxis."
 
-#: index.docbook:850
-msgid "<literal>LockMode.UPGRADE_NOWAIT</literal> may be acquired upon explicit user request using a <literal>SELECT ... FOR UPDATE NOWAIT</literal> under Oracle."
-msgstr "Si la base de datos no soporta el modo de bloqueo solicitado, Hibernate usar&#x00e1; un modo alternativo apropiado (en vez de lanzar una excepci&#x00f3;n). Esto asegura que las aplicaciones ser&#x00e1;n portables."
+#. Tag: para
+#: transactions.xml:850
+#, no-c-format
+msgid ""
+"<literal>LockMode.UPGRADE_NOWAIT</literal> may be acquired upon explicit "
+"user request using a <literal>SELECT ... FOR UPDATE NOWAIT</literal> under "
+"Oracle."
+msgstr ""
+"<literal>LockMode.UPGRADE_NOWAIT</literal> puede ser adquirido bajo petición "
+"explícita del usuario usando un <literal>SELECT ... FOR UPDATE NOWAIT</"
+"literal> bajo Oracle."
 
-#: index.docbook:856
-msgid "<literal>LockMode.READ</literal> is acquired automatically when Hibernate reads data under Repeatable Read or Serializable isolation level. May be re-acquired by explicit user request."
+#. Tag: para
+#: transactions.xml:856
+#, no-c-format
+msgid ""
+"<literal>LockMode.READ</literal> is acquired automatically when Hibernate "
+"reads data under Repeatable Read or Serializable isolation level. May be re-"
+"acquired by explicit user request."
 msgstr ""
+"<literal>LockMode.READ</literal> es adquirido automáticamente cuando "
+"Hibernate lee datos bajo los niveles de aislamiento Repeatable Read o "
+"Serializable. Puede ser readquirido por pedido explícito del usuario."
 
-#: index.docbook:863
-msgid "<literal>LockMode.NONE</literal> represents the absence of a lock. All objects switch to this lock mode at the end of a <literal>Transaction</literal>. Objects associated with the session via a call to <literal>update()</literal> or <literal>saveOrUpdate()</literal> also start out in this lock mode."
+#. Tag: para
+#: transactions.xml:863
+#, no-c-format
+msgid ""
+"<literal>LockMode.NONE</literal> represents the absence of a lock. All "
+"objects switch to this lock mode at the end of a <literal>Transaction</"
+"literal>. Objects associated with the session via a call to <literal>update()"
+"</literal> or <literal>saveOrUpdate()</literal> also start out in this lock "
+"mode."
 msgstr ""
+"<literal>LockMode.NONE</literal> representa la ausencia de un bloqueo. Todos "
+"los objetos se pasan a este modo de bloqueo al final de una "
+"<literal>Transaction</literal>. Los objetos asociados con una sesión vía una "
+"llamada a <literal>update()</literal> o <literal>saveOrUpdate()</literal> "
+"también comienzan en este modo de bloqueo."
 
-#: index.docbook:872
-msgid "The \"explicit user request\" is expressed in one of the following ways:"
+#. Tag: para
+#: transactions.xml:872
+#, no-c-format
+msgid ""
+"The \"explicit user request\" is expressed in one of the following ways:"
 msgstr ""
+"La \"petición explícita del usuario\" se expresa en una de las siguientes "
+"formas:"
 
-#: index.docbook:878
-msgid "A call to <literal>Session.load()</literal>, specifying a <literal>LockMode</literal>."
+#. Tag: para
+#: transactions.xml:878
+#, no-c-format
+msgid ""
+"A call to <literal>Session.load()</literal>, specifying a <literal>LockMode</"
+"literal>."
 msgstr ""
+"Una llamada a <literal>Session.load()</literal>, especificando un "
+"<literal>LockMode</literal>."
 
-#: index.docbook:883
+#. Tag: para
+#: transactions.xml:883
+#, no-c-format
 msgid "A call to <literal>Session.lock()</literal>."
-msgstr ""
+msgstr "Una llamada a <literal>Session.lock()</literal>."
 
-#: index.docbook:888
+#. Tag: para
+#: transactions.xml:888
+#, no-c-format
 msgid "A call to <literal>Query.setLockMode()</literal>."
-msgstr ""
+msgstr "Una llamada a <literal>Query.setLockMode()</literal>."
 
-#: index.docbook:894
-msgid "If <literal>Session.load()</literal> is called with <literal>UPGRADE</literal> or <literal>UPGRADE_NOWAIT</literal>, and the requested object was not yet loaded by the session, the object is loaded using <literal>SELECT ... FOR UPDATE</literal>. If <literal>load()</literal> is called for an object that is already loaded with a less restrictive lock than the one requested, Hibernate calls <literal>lock()</literal> for that object."
+#. Tag: para
+#: transactions.xml:894
+#, no-c-format
+msgid ""
+"If <literal>Session.load()</literal> is called with <literal>UPGRADE</"
+"literal> or <literal>UPGRADE_NOWAIT</literal>, and the requested object was "
+"not yet loaded by the session, the object is loaded using "
+"<literal>SELECT ... FOR UPDATE</literal>. If <literal>load()</literal> is "
+"called for an object that is already loaded with a less restrictive lock "
+"than the one requested, Hibernate calls <literal>lock()</literal> for that "
+"object."
 msgstr ""
+"Si se llama a <literal>Session.load()</literal> con <literal>UPGRADE</"
+"literal> o <literal>UPGRADE_NOWAIT</literal>, y el objeto pedido no ha sido "
+"aún cargado por la sesión, el objeto es cargado usando <literal>SELECT ... "
+"FOR UPDATE</literal>. Si se llama a <literal>load()</literal> para un objeto "
+"que ya esté cargado con un bloqueo menos restrictivo que el pedido, "
+"Hibernate llama a <literal>lock()</literal> para ese objeto."
 
-#: index.docbook:903
-msgid "<literal>Session.lock()</literal> performs a version number check if the specified lock mode is <literal>READ</literal>, <literal>UPGRADE</literal> or <literal>UPGRADE_NOWAIT</literal>. (In the case of <literal>UPGRADE</literal> or <literal>UPGRADE_NOWAIT</literal>, <literal>SELECT ... FOR UPDATE</literal> is used.)"
+#. Tag: para
+#: transactions.xml:903
+#, no-c-format
+msgid ""
+"<literal>Session.lock()</literal> performs a version number check if the "
+"specified lock mode is <literal>READ</literal>, <literal>UPGRADE</literal> "
+"or <literal>UPGRADE_NOWAIT</literal>. (In the case of <literal>UPGRADE</"
+"literal> or <literal>UPGRADE_NOWAIT</literal>, <literal>SELECT ... FOR "
+"UPDATE</literal> is used.)"
 msgstr ""
+"<literal>Session.lock()</literal> realiza un chequeo de número de versión si "
+"el modo de bloqueo especificado es <literal>READ</literal>, "
+"<literal>UPGRADE</literal> o <literal>UPGRADE_NOWAIT</literal>. (En el caso "
+"de <literal>UPGRADE</literal> o <literal>UPGRADE_NOWAIT</literal>, se usa "
+"<literal>SELECT ... FOR UPDATE</literal>.)"
 
-#: index.docbook:910
-msgid "If the database does not support the requested lock mode, Hibernate will use an appropriate alternate mode (instead of throwing an exception). This ensures that applications will be portable."
+#. Tag: para
+#: transactions.xml:910
+#, no-c-format
+msgid ""
+"If the database does not support the requested lock mode, Hibernate will use "
+"an appropriate alternate mode (instead of throwing an exception). This "
+"ensures that applications will be portable."
 msgstr ""
+"Si la base de datos no soporta el modo de bloqueo solicitado, Hibernate "
+"usará un modo alternativo apropiado (en vez de lanzar una excepción). Esto "
+"asegura que las aplicaciones serán portables."
 
-#: index.docbook:919
+#. Tag: title
+#: transactions.xml:919
+#, no-c-format
 msgid "Connection Release Modes"
-msgstr ""
+msgstr "translator-credits"
 
-#: index.docbook:921
-msgid "The legacy (2.x) behavior of Hibernate in regards to JDBC connection management was that a <literal>Session</literal> would obtain a connection when it was first needed and then hold unto that connection until the session was closed. Hibernate 3.x introduced the notion of connection release modes to tell a session how to handle its JDBC connections. Note that the following discussion is pertinent only to connections provided through a configured <literal>ConnectionProvider</literal>; user-supplied connections are outside the breadth of this discussion. The different release modes are identified by the enumerated values of <literal>org.hibernate.ConnectionReleaseMode</literal>:"
+#. Tag: para
+#: transactions.xml:921
+#, no-c-format
+msgid ""
+"The legacy (2.x) behavior of Hibernate in regards to JDBC connection "
+"management was that a <literal>Session</literal> would obtain a connection "
+"when it was first needed and then hold unto that connection until the "
+"session was closed. Hibernate 3.x introduced the notion of connection "
+"release modes to tell a session how to handle its JDBC connections. Note "
+"that the following discussion is pertinent only to connections provided "
+"through a configured <literal>ConnectionProvider</literal>; user-supplied "
+"connections are outside the breadth of this discussion. The different "
+"release modes are identified by the enumerated values of <literal>org."
+"hibernate.ConnectionReleaseMode</literal>:"
 msgstr ""
 
-#: index.docbook:935
-msgid "<literal>ON_CLOSE</literal> - is essentially the legacy behavior described above. The Hibernate session obatins a connection when it first needs to perform some JDBC access and holds unto that connection until the session is closed."
+#. Tag: para
+#: transactions.xml:935
+#, no-c-format
+msgid ""
+"<literal>ON_CLOSE</literal> - is essentially the legacy behavior described "
+"above. The Hibernate session obatins a connection when it first needs to "
+"perform some JDBC access and holds unto that connection until the session is "
+"closed."
 msgstr ""
 
-#: index.docbook:942
-msgid "<literal>AFTER_TRANSACTION</literal> - says to release connections after a <literal>org.hibernate.Transaction</literal> has completed."
+#. Tag: para
+#: transactions.xml:942
+#, no-c-format
+msgid ""
+"<literal>AFTER_TRANSACTION</literal> - says to release connections after a "
+"<literal>org.hibernate.Transaction</literal> has completed."
 msgstr ""
 
-#: index.docbook:948
-msgid "<literal>AFTER_STATEMENT</literal> (also referred to as aggressive release) - says to release connections after each and every statement execution. This aggressive releasing is skipped if that statement leaves open resources associated with the given session; currently the only situation where this occurs is through the use of <literal>org.hibernate.ScrollableResults</literal>."
+#. Tag: para
+#: transactions.xml:948
+#, no-c-format
+msgid ""
+"<literal>AFTER_STATEMENT</literal> (also referred to as aggressive release) "
+"- says to release connections after each and every statement execution. This "
+"aggressive releasing is skipped if that statement leaves open resources "
+"associated with the given session; currently the only situation where this "
+"occurs is through the use of <literal>org.hibernate.ScrollableResults</"
+"literal>."
 msgstr ""
 
-#: index.docbook:958
-msgid "The configuration parameter <literal>hibernate.connection.release_mode</literal> is used to specify which release mode to use. The possible values:"
+#. Tag: para
+#: transactions.xml:958
+#, no-c-format
+msgid ""
+"The configuration parameter <literal>hibernate.connection.release_mode</"
+"literal> is used to specify which release mode to use. The possible values:"
 msgstr ""
 
-#: index.docbook:965
-msgid "<literal>auto</literal> (the default) - this choice delegates to the release mode returned by the <literal>org.hibernate.transaction.TransactionFactory.getDefaultReleaseMode()</literal> method. For JTATransactionFactory, this returns ConnectionReleaseMode.AFTER_STATEMENT; for JDBCTransactionFactory, this returns ConnectionReleaseMode.AFTER_TRANSACTION. It is rarely a good idea to change this default behavior as failures due to the value of this setting tend to indicate bugs and/or invalid assumptions in user code."
+#. Tag: para
+#: transactions.xml:965
+#, no-c-format
+msgid ""
+"<literal>auto</literal> (the default) - this choice delegates to the release "
+"mode returned by the <literal>org.hibernate.transaction.TransactionFactory."
+"getDefaultReleaseMode()</literal> method. For JTATransactionFactory, this "
+"returns ConnectionReleaseMode.AFTER_STATEMENT; for JDBCTransactionFactory, "
+"this returns ConnectionReleaseMode.AFTER_TRANSACTION. It is rarely a good "
+"idea to change this default behavior as failures due to the value of this "
+"setting tend to indicate bugs and/or invalid assumptions in user code."
 msgstr ""
 
-#: index.docbook:975
-msgid "<literal>on_close</literal> - says to use ConnectionReleaseMode.ON_CLOSE. This setting is left for backwards compatibility, but its use is highly discouraged."
+#. Tag: para
+#: transactions.xml:975
+#, no-c-format
+msgid ""
+"<literal>on_close</literal> - says to use ConnectionReleaseMode.ON_CLOSE. "
+"This setting is left for backwards compatibility, but its use is highly "
+"discouraged."
 msgstr ""
 
-#: index.docbook:981
-msgid "<literal>after_transaction</literal> - says to use ConnectionReleaseMode.AFTER_TRANSACTION. This setting should not be used in JTA environments. Also note that with ConnectionReleaseMode.AFTER_TRANSACTION, if a session is considered to be in auto-commit mode connections will be released as if the release mode were AFTER_STATEMENT."
+#. Tag: para
+#: transactions.xml:981
+#, no-c-format
+msgid ""
+"<literal>after_transaction</literal> - says to use ConnectionReleaseMode."
+"AFTER_TRANSACTION. This setting should not be used in JTA environments. Also "
+"note that with ConnectionReleaseMode.AFTER_TRANSACTION, if a session is "
+"considered to be in auto-commit mode connections will be released as if the "
+"release mode were AFTER_STATEMENT."
 msgstr ""
 
-#: index.docbook:989
-msgid "<literal>after_statement</literal> - says to use ConnectionReleaseMode.AFTER_STATEMENT. Additionally, the configured <literal>ConnectionProvider</literal> is consulted to see if it supports this setting (<literal>supportsAggressiveRelease()</literal>). If not, the release mode is reset to ConnectionReleaseMode.AFTER_TRANSACTION. This setting is only safe in environments where we can either re-acquire the same underlying JDBC connection each time we make a call into <literal>ConnectionProvider.getConnection()</literal> or in auto-commit environments where it does not matter whether we get back the same connection."
+#. Tag: para
+#: transactions.xml:989
+#, no-c-format
+msgid ""
+"<literal>after_statement</literal> - says to use ConnectionReleaseMode."
+"AFTER_STATEMENT. Additionally, the configured <literal>ConnectionProvider</"
+"literal> is consulted to see if it supports this setting "
+"(<literal>supportsAggressiveRelease()</literal>). If not, the release mode "
+"is reset to ConnectionReleaseMode.AFTER_TRANSACTION. This setting is only "
+"safe in environments where we can either re-acquire the same underlying JDBC "
+"connection each time we make a call into <literal>ConnectionProvider."
+"getConnection()</literal> or in auto-commit environments where it does not "
+"matter whether we get back the same connection."
 msgstr ""
-
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
-
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
-

Modified: core/trunk/documentation/manual/translations/es-ES/content/tutorial.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/tutorial.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/tutorial.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,1747 +1,2805 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:48+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:7
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: tutorial.xml:7
+#, no-c-format
 msgid "Introduction to Hibernate"
-msgstr "Introducci&#x00f3;n a Hibernate"
+msgstr "Introducción a Hibernate"
 
-#: index.docbook:10
+#. Tag: title
+#: tutorial.xml:10
+#, no-c-format
 msgid "Preface"
 msgstr "Prefacio"
 
-#: index.docbook:12
-msgid "This chapter is an introductory tutorial for new users of Hibernate. We start with a simple command line application using an in-memory database and develop it in easy to understand steps."
-msgstr "Este cap&#x00ed;tulo es un tutorial introductorio de Hibernate. Comenzamos con una aplicaci&#x00f3;n simple de l&#x00ed;nea de comandos usando un base de datos en-memoria y desarroll&#x00e1;ndola en f&#x00e1;cil para entender los pasos."
+#. Tag: para
+#: tutorial.xml:12
+#, no-c-format
+msgid ""
+"This chapter is an introductory tutorial for new users of Hibernate. We "
+"start with a simple command line application using an in-memory database and "
+"develop it in easy to understand steps."
+msgstr ""
+"Este capítulo es un tutorial introductorio de Hibernate. Comenzamos con una "
+"aplicación simple de línea de comandos usando un base de datos en-memoria y "
+"desarrollándola en fácil para entender los pasos."
 
-#: index.docbook:18
-msgid "This tutorial is intended for new users of Hibernate but requires Java and SQL knowledge. It is based on a tutorial by Michael Gloegl, the third-party libraries we name are for JDK 1.4 and 5.0. You might need others for JDK 1.3."
-msgstr "Este tutorial est&#x00e1; concebido para usuarios nuevos de Hibernate pero requiere conocimiento en Java y SQL. Est&#x00e1; basado en un tutorial de Michael Gloegl. Las bibliotecas de terceros que mencionamos son para JDK 1.4 y 5.0. Podr&#x00ed;as necesitar otras para JDK 1.3."
+#. Tag: para
+#: tutorial.xml:18
+#, no-c-format
+msgid ""
+"This tutorial is intended for new users of Hibernate but requires Java and "
+"SQL knowledge. It is based on a tutorial by Michael Gloegl, the third-party "
+"libraries we name are for JDK 1.4 and 5.0. You might need others for JDK 1.3."
+msgstr ""
+"Este tutorial está concebido para usuarios nuevos de Hibernate pero requiere "
+"conocimiento en Java y SQL. Está basado en un tutorial de Michael Gloegl. "
+"Las bibliotecas de terceros que mencionamos son para JDK 1.4 y 5.0. Podrías "
+"necesitar otras para JDK 1.3."
 
-#: index.docbook:24
-msgid "The source code for the tutorial is included in the distribution in the <literal>doc/reference/tutorial/</literal> directory."
-msgstr "Parte 1 - La primera Aplicaci&#x00f3;n Hibernate"
+#. Tag: para
+#: tutorial.xml:24
+#, no-c-format
+msgid ""
+"The source code for the tutorial is included in the distribution in the "
+"<literal>doc/reference/tutorial/</literal> directory."
+msgstr ""
+"UNTRANSLATED!!! The source code for the tutorial is included in the "
+"distribution in the <literal>doc/reference/tutorial/</literal> directory."
 
-#: index.docbook:32
+#. Tag: title
+#: tutorial.xml:32
+#, no-c-format
 msgid "Part 1 - The first Hibernate Application"
-msgstr "Primero, crearemos una aplicaci&#x00f3;n simple de Hibenate basada en consola. Usamos usamos una base de datos en-memoria (HSQL DB), de modo que no necesitamos instalar ning&#x00fa;n servidor de base de datos."
+msgstr "Parte 1 - La primera Aplicación Hibernate"
 
-#: index.docbook:34
-msgid "First, we'll create a simple console-based Hibernate application. We use an Java database (HSQL DB), so we do not have to install any database server."
-msgstr "Asumamos que necesitamos una aplicaci&#x00f3;n peque&#x00f1;a de base de datos que pueda almacenar eventos que queremos atender, e informaci&#x00f3;n acerca de los hostales de estos eventos."
+#. Tag: para
+#: tutorial.xml:34
+#, no-c-format
+msgid ""
+"First, we'll create a simple console-based Hibernate application. We use an "
+"Java database (HSQL DB), so we do not have to install any database server."
+msgstr ""
+"Primero, crearemos una aplicación simple de Hibenate basada en consola. "
+"Usamos usamos una base de datos en-memoria (HSQL DB), de modo que no "
+"necesitamos instalar ningún servidor de base de datos."
 
-#: index.docbook:39
-msgid "Let's assume we need a small database application that can store events we want to attend, and information about the hosts of these events."
-msgstr "La primera cosa que hacemos, es armar nuestro directorio de desarrollo y poner en &#x00e9;l todas las bibliotecas Java que necesitamos. Descarga la distribuci&#x00f3;n de Hibernate del sitio web de Hibernate. Extrae el paquete y coloca todas las bibliotecas requeridas encontradas en <literal>/lib</literal> dentro del directorio <literal>/lib</literal> de nuestro nuevo directorio de desarrollo de trabajo. Debe asemejarse a esto:"
+#. Tag: para
+#: tutorial.xml:39
+#, no-c-format
+msgid ""
+"Let's assume we need a small database application that can store events we "
+"want to attend, and information about the hosts of these events."
+msgstr ""
+"Asumamos que necesitamos una aplicación pequeña de base de datos que pueda "
+"almacenar eventos que queremos atender, e información acerca de los hostales "
+"de estos eventos."
 
-#: index.docbook:44
-msgid "The first thing we do, is set up our development directory and put all the Java libraries we need into it. Download the Hibernate distribution from the Hibernate website. Extract the package and place all required libraries found in <literal>/lib</literal> into into the <literal>/lib</literal> directory of your new development working directory. It should look like this:"
+#. Tag: para
+#: tutorial.xml:44
+#, no-c-format
+msgid ""
+"The first thing we do, is set up our development directory and put all the "
+"Java libraries we need into it. Download the Hibernate distribution from the "
+"Hibernate website. Extract the package and place all required libraries "
+"found in <literal>/lib</literal> into into the <literal>/lib</literal> "
+"directory of your new development working directory. It should look like "
+"this:"
 msgstr ""
-      "<![CDATA[.\n"
-      "+lib\n"
-      "  antlr.jar\n"
-      "  cglib-full.jar\n"
-      "  asm.jar\n"
-      "  asm-attrs.jars\n"
-      "  commons-collections.jar\n"
-      "  commons-logging.jar\n"
-      "  ehcache.jar\n"
-      "  hibernate3.jar\n"
-      "  jta.jar\n"
-      "  dom4j.jar\n"
-      "  log4j.jar ]]>"
+"La primera cosa que hacemos, es armar nuestro directorio de desarrollo y "
+"poner en él todas las bibliotecas Java que necesitamos. Descarga la "
+"distribución de Hibernate del sitio web de Hibernate. Extrae el paquete y "
+"coloca todas las bibliotecas requeridas encontradas en <literal>/lib</"
+"literal> dentro del directorio <literal>/lib</literal> de nuestro nuevo "
+"directorio de desarrollo de trabajo. Debe asemejarse a esto:"
 
-#: index.docbook:52
+#. Tag: programlisting
+#: tutorial.xml:52
+#, no-c-format
 msgid ""
-      "<![CDATA[.\n"
-      "+lib\n"
-      "  antlr.jar\n"
-      "  cglib.jar\n"
-      "  asm.jar\n"
-      "  asm-attrs.jars\n"
-      "  commons-collections.jar\n"
-      "  commons-logging.jar\n"
-      "  hibernate3.jar\n"
-      "  jta.jar\n"
-      "  dom4j.jar\n"
-      "  log4j.jar ]]>"
-msgstr "Este es el conjunto m&#x00ed;nimo de bibliotecas requeridas para Hibernate (observa que tambi&#x00e9;n hemos copiado hibernate3.jar, el fichero principal). Ver el fichero <literal>README.txt</literal> en el directorio <literal>lib/</literal> de la distribuci&#x00f3;n de Hibernate para m&#x00e1;s informaci&#x00f3;n sobre bibliotecas de terceros requeridas y opcionales. (Realmente, Log4J no es requerida aunque preferida por muchos desarrolladores)."
+"<![CDATA[.\n"
+"+lib\n"
+"  antlr.jar\n"
+"  cglib.jar\n"
+"  asm.jar\n"
+"  asm-attrs.jars\n"
+"  commons-collections.jar\n"
+"  commons-logging.jar\n"
+"  hibernate3.jar\n"
+"  jta.jar\n"
+"  dom4j.jar\n"
+"  log4j.jar ]]>"
+msgstr ""
 
-#: index.docbook:54
-msgid "This is the minimum set of required libraries (note that we also copied hibernate3.jar, the main archive) for Hibernate <emphasis>at the time of writing</emphasis>. The Hibernate release you are using might require more or less libraries. See the <literal>README.txt</literal> file in the <literal>lib/</literal> directory of the Hibernate distribution for more information about required and optional third-party libraries. (Actually, Log4j is not required but preferred by many developers.)"
-msgstr "Por siguiente, creamos una clase que represente el evento que queremos almacenar en base de datos."
+#. Tag: para
+#: tutorial.xml:54
+#, no-c-format
+msgid ""
+"This is the minimum set of required libraries (note that we also copied "
+"hibernate3.jar, the main archive) for Hibernate <emphasis>at the time of "
+"writing</emphasis>. The Hibernate release you are using might require more "
+"or less libraries. See the <literal>README.txt</literal> file in the "
+"<literal>lib/</literal> directory of the Hibernate distribution for more "
+"information about required and optional third-party libraries. (Actually, "
+"Log4j is not required but preferred by many developers.)"
+msgstr ""
+"Este es el conjunto mínimo de bibliotecas requeridas para Hibernate (observa "
+"que también hemos copiado hibernate3.jar, el fichero principal). Ver el "
+"fichero <literal>README.txt</literal> en el directorio <literal>lib/</"
+"literal> de la distribución de Hibernate para más información sobre "
+"bibliotecas de terceros requeridas y opcionales. (Realmente, Log4J no es "
+"requerida aunque preferida por muchos desarrolladores)."
 
-#: index.docbook:63
-msgid "Next we create a class that represents the event we want to store in database."
-msgstr "La primera clase"
+#. Tag: para
+#: tutorial.xml:63
+#, no-c-format
+msgid ""
+"Next we create a class that represents the event we want to store in "
+"database."
+msgstr ""
+"Por siguiente, creamos una clase que represente el evento que queremos "
+"almacenar en base de datos."
 
-#: index.docbook:68
+#. Tag: title
+#: tutorial.xml:68
+#, no-c-format
 msgid "The first class"
-msgstr "Nuestra primera clase persistente es un JavaBean simple con algunas propiedades:"
+msgstr "La primera clase"
 
-#: index.docbook:70
-msgid "Our first persistent class is a simple JavaBean class with some properties:"
+#. Tag: para
+#: tutorial.xml:70
+#, no-c-format
+msgid ""
+"Our first persistent class is a simple JavaBean class with some properties:"
 msgstr ""
-      "<![CDATA[import java.util.Date;\n"
-      "\n"
-      "public class Event {\n"
-      "    private Long id;\n"
-      "\n"
-      "    private String title;\n"
-      "    private Date date;\n"
-      "\n"
-      "    Event() {}\n"
-      "\n"
-      "    public Long getId() {\n"
-      "        return id;\n"
-      "    }\n"
-      "\n"
-      "    private void setId(Long id) {\n"
-      "        this.id = id;\n"
-      "    }\n"
-      "\n"
-      "    public Date getDate() {\n"
-      "        return date;\n"
-      "    }\n"
-      "\n"
-      "    public void setDate(Date date) {\n"
-      "        this.date = date;\n"
-      "    }\n"
-      "\n"
-      "    public String getTitle() {\n"
-      "        return title;\n"
-      "    }\n"
-      "\n"
-      "    public void setTitle(String title) {\n"
-      "        this.title = title;\n"
-      "    }\n"
-      "}]]>"
+"Nuestra primera clase persistente es un JavaBean simple con algunas "
+"propiedades:"
 
-#: index.docbook:74
+#. Tag: programlisting
+#: tutorial.xml:74
+#, no-c-format
 msgid ""
-      "<![CDATA[package events;\n"
-      "\n"
-      "import java.util.Date;\n"
-      "\n"
-      "public class Event {\n"
-      "    private Long id;\n"
-      "\n"
-      "    private String title;\n"
-      "    private Date date;\n"
-      "\n"
-      "    public Event() {}\n"
-      "\n"
-      "    public Long getId() {\n"
-      "        return id;\n"
-      "    }\n"
-      "\n"
-      "    private void setId(Long id) {\n"
-      "        this.id = id;\n"
-      "    }\n"
-      "\n"
-      "    public Date getDate() {\n"
-      "        return date;\n"
-      "    }\n"
-      "\n"
-      "    public void setDate(Date date) {\n"
-      "        this.date = date;\n"
-      "    }\n"
-      "\n"
-      "    public String getTitle() {\n"
-      "        return title;\n"
-      "    }\n"
-      "\n"
-      "    public void setTitle(String title) {\n"
-      "        this.title = title;\n"
-      "    }\n"
-      "}]]>"
-msgstr "Puedes ver que esta clase usa las convenciones de nombrado est&#x00e1;ndar de JavaBean para m&#x00e9;todos getter y setter de propiedad, as&#x00ed; como visibilidad privada para los campos. Esto es un dise&#x00f1;o recomendado, aunque no requerido. Hibernate tambi&#x00e9;n puede acceder a los campos directamente; el beneficio de los m&#x00e9;todos de acceso es la robustez para la refactorizaci&#x00f3;n."
+"<![CDATA[package events;\n"
+"\n"
+"import java.util.Date;\n"
+"\n"
+"public class Event {\n"
+"    private Long id;\n"
+"\n"
+"    private String title;\n"
+"    private Date date;\n"
+"\n"
+"    public Event() {}\n"
+"\n"
+"    public Long getId() {\n"
+"        return id;\n"
+"    }\n"
+"\n"
+"    private void setId(Long id) {\n"
+"        this.id = id;\n"
+"    }\n"
+"\n"
+"    public Date getDate() {\n"
+"        return date;\n"
+"    }\n"
+"\n"
+"    public void setDate(Date date) {\n"
+"        this.date = date;\n"
+"    }\n"
+"\n"
+"    public String getTitle() {\n"
+"        return title;\n"
+"    }\n"
+"\n"
+"    public void setTitle(String title) {\n"
+"        this.title = title;\n"
+"    }\n"
+"}]]>"
+msgstr ""
 
-#: index.docbook:76
-msgid "You can see that this class uses standard JavaBean naming conventions for property getter and setter methods, as well as private visibility for the fields. This is a recommended design - but not required. Hibernate can also access fields directly, the benefit of accessor methods is robustness for refactoring. The no-argument constructor is required to instantiate an object of this class through reflection."
-msgstr "La propiedad <literal>id</literal> tiene un valor &#x00fa;nico de identificador para un evento en particular. Todas las clase de entidad persistentes ( tambi&#x00e9;n hay clases dependientes menos importantes) necesitar&#x00e1;n una propiedad identificadora similar si queremos usar el conjunto completo de funcionalidades de Hibernate. De hecho, la mayor&#x00ed;a de las aplicaciones (esp. aplicaciones web) necesitan distinguir objetos por identificador, de modo que debes considerar esto como un aspecto en vez de una limitaci&#x00f3;n. Sin embargo, usualmente no manipulamos la identidad de un objeto, por lo tanto el m&#x00e9;todo setter debe ser privado. S&#x00f3;lo Hibernate asignar&#x00e1; identificadores cuando un objeto sea salvado. Puedes ver que Hibernate puede acceder a m&#x00e9;todos de acceso p&#x00fa;blicos, privados y protegidos, tanto como directamente a campos (p&#x00fa;blicos, privados y protegidos). La elecci&#x00f3;n est&#x00e1; en ti, y puedes ajustar!
 la a tu dise&#x00f1;o de aplicaci&#x00f3;n."
+#. Tag: para
+#: tutorial.xml:76
+#, no-c-format
+msgid ""
+"You can see that this class uses standard JavaBean naming conventions for "
+"property getter and setter methods, as well as private visibility for the "
+"fields. This is a recommended design - but not required. Hibernate can also "
+"access fields directly, the benefit of accessor methods is robustness for "
+"refactoring. The no-argument constructor is required to instantiate an "
+"object of this class through reflection."
+msgstr ""
+"Puedes ver que esta clase usa las convenciones de nombrado estándar de "
+"JavaBean para métodos getter y setter de propiedad, así como visibilidad "
+"privada para los campos. Esto es un diseño recomendado, aunque no requerido. "
+"Hibernate también puede acceder a los campos directamente; el beneficio de "
+"los métodos de acceso es la robustez para la refactorización."
 
-#: index.docbook:84
-msgid "The <literal>id</literal> property holds a unique identifier value for a particular event. All persistent entity classes (there are less important dependent classes as well) will need such an identifier property if we want to use the full feature set of Hibernate. In fact, most applications (esp. web applications) need to distinguish objects by identifier, so you should consider this a feature rather than a limitation. However, we usually don't manipulate the identity of an object, hence the setter method should be private. Only Hibernate will assign identifiers when an object is saved. You can see that Hibernate can access public, private, and protected accessor methods, as well as (public, private, protected) fields directly. The choice is up to you and you can match it to fit your application design."
-msgstr "El constructor sin argumentos es un requerimiento para todas las clases persistentes. Hibernate tiene que crear objetos para ti, usando reflecci&#x00f3;n Java. El constructor puede ser privado, sin embargo, la visibilidad de paquete es requerida para la generaci&#x00f3;n de proxies en tiempo de ejecuci&#x00f3;n y la recuperaci&#x00f3;n de datos sin instrumentaci&#x00f3;n del bytecode."
+#. Tag: para
+#: tutorial.xml:84
+#, no-c-format
+msgid ""
+"The <literal>id</literal> property holds a unique identifier value for a "
+"particular event. All persistent entity classes (there are less important "
+"dependent classes as well) will need such an identifier property if we want "
+"to use the full feature set of Hibernate. In fact, most applications (esp. "
+"web applications) need to distinguish objects by identifier, so you should "
+"consider this a feature rather than a limitation. However, we usually don't "
+"manipulate the identity of an object, hence the setter method should be "
+"private. Only Hibernate will assign identifiers when an object is saved. You "
+"can see that Hibernate can access public, private, and protected accessor "
+"methods, as well as (public, private, protected) fields directly. The choice "
+"is up to you and you can match it to fit your application design."
+msgstr ""
+"La propiedad <literal>id</literal> tiene un valor único de identificador "
+"para un evento en particular. Todas las clase de entidad persistentes "
+"( también hay clases dependientes menos importantes) necesitarán una "
+"propiedad identificadora similar si queremos usar el conjunto completo de "
+"funcionalidades de Hibernate. De hecho, la mayoría de las aplicaciones (esp. "
+"aplicaciones web) necesitan distinguir objetos por identificador, de modo "
+"que debes considerar esto como un aspecto en vez de una limitación. Sin "
+"embargo, usualmente no manipulamos la identidad de un objeto, por lo tanto "
+"el método setter debe ser privado. Sólo Hibernate asignará identificadores "
+"cuando un objeto sea salvado. Puedes ver que Hibernate puede acceder a "
+"métodos de acceso públicos, privados y protegidos, tanto como directamente a "
+"campos (públicos, privados y protegidos). La elección está en ti, y puedes "
+"ajustarla a tu diseño de aplicación."
 
-#: index.docbook:96
-msgid "The no-argument constructor is a requirement for all persistent classes; Hibernate has to create objects for you, using Java Reflection. The constructor can be private, however, package visibility is required for runtime proxy generation and efficient data retrieval without bytecode instrumentation."
-msgstr "Coloca este fichero de c&#x00f3;digo Java en un directorio llamado <literal>src</literal> en la carpeta de desarrollo. El directorio ahora debe verse como esto:"
+#. Tag: para
+#: tutorial.xml:96
+#, no-c-format
+msgid ""
+"The no-argument constructor is a requirement for all persistent classes; "
+"Hibernate has to create objects for you, using Java Reflection. The "
+"constructor can be private, however, package visibility is required for "
+"runtime proxy generation and efficient data retrieval without bytecode "
+"instrumentation."
+msgstr ""
+"El constructor sin argumentos es un requerimiento para todas las clases "
+"persistentes. Hibernate tiene que crear objetos para ti, usando reflección "
+"Java. El constructor puede ser privado, sin embargo, la visibilidad de "
+"paquete es requerida para la generación de proxies en tiempo de ejecución y "
+"la recuperación de datos sin instrumentación del bytecode."
 
-#: index.docbook:103
-msgid "Place this Java source file in a directory called <literal>src</literal> in the development folder, and in its correct package. The directory should now look like this:"
+#. Tag: para
+#: tutorial.xml:103
+#, no-c-format
+msgid ""
+"Place this Java source file in a directory called <literal>src</literal> in "
+"the development folder, and in its correct package. The directory should now "
+"look like this:"
 msgstr ""
-      "<![CDATA[.\n"
-      "+lib\n"
-      "  <Hibernate and third-party libraries>\n"
-      "+src\n"
-      "  Event.java]]>"
+"Coloca este fichero de código Java en un directorio llamado <literal>src</"
+"literal> en la carpeta de desarrollo. El directorio ahora debe verse como "
+"esto:"
 
-#: index.docbook:108
+#. Tag: programlisting
+#: tutorial.xml:108
+#, no-c-format
 msgid ""
-      "<![CDATA[.\n"
-      "+lib\n"
-      "  <Hibernate and third-party libraries>\n"
-      "+src\n"
-      "  +events\n"
-      "    Event.java]]>"
-msgstr "En el pr&#x00f3;ximo paso, le decimos a Hibernate sobre esta clase persistente."
+"<![CDATA[.\n"
+"+lib\n"
+"  <Hibernate and third-party libraries>\n"
+"+src\n"
+"  +events\n"
+"    Event.java]]>"
+msgstr ""
 
-#: index.docbook:110
+#. Tag: para
+#: tutorial.xml:110
+#, no-c-format
 msgid "In the next step, we tell Hibernate about this persistent class."
-msgstr "El fichero de mapeo"
+msgstr ""
+"En el próximo paso, le decimos a Hibernate sobre esta clase persistente."
 
-#: index.docbook:117
+#. Tag: title
+#: tutorial.xml:117
+#, no-c-format
 msgid "The mapping file"
-msgstr "Hibernate necesita saber c&#x00f3;mo cargar y almacenar objetos de la clase persistente. Aqu&#x00ed; es donde el fichero de mapeo de Hibernate entra en juego. El fichero de mapeo le dice a Hibernate a qu&#x00e9; tabla en la base de datos tiene que acceder, y qu&#x00e9; columnas en esta tabla debe usar."
+msgstr "El fichero de mapeo"
 
-#: index.docbook:119
-msgid "Hibernate needs to know how to load and store objects of the persistent class. This is where the Hibernate mapping file comes into play. The mapping file tells Hibernate what table in the database it has to access, and what columns in that table it should use."
-msgstr "La estructura b&#x00e1;sica de un fichero de mapeo se parece a esto:"
+#. Tag: para
+#: tutorial.xml:119
+#, no-c-format
+msgid ""
+"Hibernate needs to know how to load and store objects of the persistent "
+"class. This is where the Hibernate mapping file comes into play. The mapping "
+"file tells Hibernate what table in the database it has to access, and what "
+"columns in that table it should use."
+msgstr ""
+"Hibernate necesita saber cómo cargar y almacenar objetos de la clase "
+"persistente. Aquí es donde el fichero de mapeo de Hibernate entra en juego. "
+"El fichero de mapeo le dice a Hibernate a qué tabla en la base de datos "
+"tiene que acceder, y qué columnas en esta tabla debe usar."
 
-#: index.docbook:126
+#. Tag: para
+#: tutorial.xml:126
+#, no-c-format
 msgid "The basic structure of a mapping file looks like this:"
+msgstr "La estructura básica de un fichero de mapeo se parece a esto:"
+
+#. Tag: programlisting
+#: tutorial.xml:130
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\"?>\n"
+"<!DOCTYPE hibernate-mapping PUBLIC\n"
+"        \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+"        \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+"\n"
+"<hibernate-mapping>\n"
+"[...]\n"
+"</hibernate-mapping>]]>"
 msgstr ""
-      "<![CDATA[<?xml version=\"1.0\"?>\n"
-      "<!DOCTYPE hibernate-mapping PUBLIC\n"
-      "        \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
-      "        \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
-      "\n"
-      "<hibernate-mapping>\n"
-      "[...]\n"
-      "</hibernate-mapping>]]>"
 
-#: index.docbook:130
+#. Tag: para
+#: tutorial.xml:132
+#, no-c-format
 msgid ""
-      "<![CDATA[<?xml version=\"1.0\"?>\n"
-      "<!DOCTYPE hibernate-mapping PUBLIC\n"
-      "        \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
-      "        \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
-      "\n"
-      "<hibernate-mapping>\n"
-      "[...]\n"
-      "</hibernate-mapping>]]>"
-msgstr "Observa que el DTD de Hibernate es muy sofisticado. Puedes usarlo para autocompleci&#x00f3;n de los elementos y atributos XML de mapeo en tu editor o IDE. Debes tambi&#x00e9;n abrir el fichero DTD en tu editor de texto. Es la forma m&#x00e1;s f&#x00e1;cil para tener un panorama de todos los elementos y atributos y ver los valores por defectos, as&#x00ed; como algunos comentarios. Nota que Hibernate no cargar&#x00e1; el fichero DTD de la web, sino que primero buscar&#x00e1; en el classpath de la aplicaci&#x00f3;n. El fichero DTD est&#x00e1; inclu&#x00ed;do en <literal>hibernate3.jar</literal> as&#x00ed; como tambi&#x00e9;n en el directorio <literal>src/</literal> de la distribuci&#x00f3;n de Hibernate."
+"Note that the Hibernate DTD is very sophisticated. You can use it for auto-"
+"completion of XML mapping elements and attributes in your editor or IDE. You "
+"also should open up the DTD file in your text editor - it's the easiest way "
+"to get an overview of all elements and attributes and to see the defaults, "
+"as well as some comments. Note that Hibernate will not load the DTD file "
+"from the web, but first look it up from the classpath of the application. "
+"The DTD file is included in <literal>hibernate3.jar</literal> as well as in "
+"the <literal>src/</literal> directory of the Hibernate distribution."
+msgstr ""
+"Observa que el DTD de Hibernate es muy sofisticado. Puedes usarlo para "
+"autocompleción de los elementos y atributos XML de mapeo en tu editor o IDE. "
+"Debes también abrir el fichero DTD en tu editor de texto. Es la forma más "
+"fácil para tener un panorama de todos los elementos y atributos y ver los "
+"valores por defectos, así como algunos comentarios. Nota que Hibernate no "
+"cargará el fichero DTD de la web, sino que primero buscará en el classpath "
+"de la aplicación. El fichero DTD está incluído en <literal>hibernate3.jar</"
+"literal> así como también en el directorio <literal>src/</literal> de la "
+"distribución de Hibernate."
 
-#: index.docbook:132
-msgid "Note that the Hibernate DTD is very sophisticated. You can use it for auto-completion of XML mapping elements and attributes in your editor or IDE. You also should open up the DTD file in your text editor - it's the easiest way to get an overview of all elements and attributes and to see the defaults, as well as some comments. Note that Hibernate will not load the DTD file from the web, but first look it up from the classpath of the application. The DTD file is included in <literal>hibernate3.jar</literal> as well as in the <literal>src/</literal> directory of the Hibernate distribution."
-msgstr "Omitiremos la declaraci&#x00f3;n de DTD en futuros ejemplos para acortar el c&#x00f3;digo. Por supuesto, no es opcional."
+#. Tag: para
+#: tutorial.xml:143
+#, no-c-format
+msgid ""
+"We will omit the DTD declaration in future examples to shorten the code. It "
+"is of course not optional."
+msgstr ""
+"Omitiremos la declaración de DTD en futuros ejemplos para acortar el código. "
+"Por supuesto, no es opcional."
 
-#: index.docbook:143
-msgid "We will omit the DTD declaration in future examples to shorten the code. It is of course not optional."
-msgstr "Entre las dos etiquetas <literal>hibernate-mapping</literal>, incluye un elemento <literal>class</literal>. Todas las clases de entidad persistentes (de nuevo, podr&#x00ed;a haber m&#x00e1;s adelante clases dependientes, que no sean entidades de-primera-clase) necesitan dicho mapeo a una tabla en la base de datos SQL:"
+#. Tag: para
+#: tutorial.xml:148
+#, no-c-format
+msgid ""
+"Between the two <literal>hibernate-mapping</literal> tags, include a "
+"<literal>class</literal> element. All persistent entity classes (again, "
+"there might be dependent classes later on, which are not first-class "
+"entities) need such a mapping, to a table in the SQL database:"
+msgstr ""
+"Entre las dos etiquetas <literal>hibernate-mapping</literal>, incluye un "
+"elemento <literal>class</literal>. Todas las clases de entidad persistentes "
+"(de nuevo, podría haber más adelante clases dependientes, que no sean "
+"entidades de-primera-clase) necesitan dicho mapeo a una tabla en la base de "
+"datos SQL:"
 
-#: index.docbook:148
-msgid "Between the two <literal>hibernate-mapping</literal> tags, include a <literal>class</literal> element. All persistent entity classes (again, there might be dependent classes later on, which are not first-class entities) need such a mapping, to a table in the SQL database:"
+#. Tag: programlisting
+#: tutorial.xml:155
+#, no-c-format
+msgid ""
+"<![CDATA[<hibernate-mapping>\n"
+"\n"
+"    <class name=\"events.Event\" table=\"EVENTS\">\n"
+"\n"
+"    </class>\n"
+"\n"
+"</hibernate-mapping>]]>"
 msgstr ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "\n"
-      "    <class name=\"Event\" table=\"EVENTS\">\n"
-      "\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
 
-#: index.docbook:155
+#. Tag: para
+#: tutorial.xml:157
+#, no-c-format
 msgid ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "\n"
-      "    <class name=\"events.Event\" table=\"EVENTS\">\n"
-      "\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
-msgstr "Hasta ahora dijimos a Hibernate c&#x00f3;mo persistir y cargar el objeto de clase <literal>Event</literal> a la tabla <literal>EVENTS</literal>, cada instancia representada por una fila en esta tabla. Ahora continuamos con un mapeo de la propiedad de identificado &#x00fa;nico a la clave primaria de la tabla. Adem&#x00e1;s, como no queremos cuidar del manejo de este identificador, configuramos la estrategia de generaci&#x00f3;n de identificadores para una columna clave primaria delegada:"
+"So far we told Hibernate how to persist and load object of class "
+"<literal>Event</literal> to the table <literal>EVENTS</literal>, each "
+"instance represented by a row in that table. Now we continue with a mapping "
+"of the unique identifier property to the tables primary key. In addition, as "
+"we don't want to care about handling this identifier, we configure "
+"Hibernate's identifier generation strategy for a surrogate primary key "
+"column:"
+msgstr ""
+"Hasta ahora dijimos a Hibernate cómo persistir y cargar el objeto de clase "
+"<literal>Event</literal> a la tabla <literal>EVENTS</literal>, cada "
+"instancia representada por una fila en esta tabla. Ahora continuamos con un "
+"mapeo de la propiedad de identificado único a la clave primaria de la tabla. "
+"Además, como no queremos cuidar del manejo de este identificador, "
+"configuramos la estrategia de generación de identificadores para una columna "
+"clave primaria delegada:"
 
-#: index.docbook:157
-msgid "So far we told Hibernate how to persist and load object of class <literal>Event</literal> to the table <literal>EVENTS</literal>, each instance represented by a row in that table. Now we continue with a mapping of the unique identifier property to the tables primary key. In addition, as we don't want to care about handling this identifier, we configure Hibernate's identifier generation strategy for a surrogate primary key column:"
+#. Tag: programlisting
+#: tutorial.xml:165
+#, no-c-format
+msgid ""
+"<![CDATA[<hibernate-mapping>\n"
+"\n"
+"    <class name=\"events.Event\" table=\"EVENTS\">\n"
+"        <id name=\"id\" column=\"EVENT_ID\">\n"
+"            <generator class=\"native\"/>\n"
+"        </id>\n"
+"    </class>\n"
+"\n"
+"</hibernate-mapping>]]>"
 msgstr ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "\n"
-      "    <class name=\"Event\" table=\"EVENTS\">\n"
-      "        <id name=\"id\" column=\"EVENT_ID\">\n"
-      "            <generator class=\"increment\"/>\n"
-      "        </id>\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
 
-#: index.docbook:165
+#. Tag: para
+#: tutorial.xml:167
+#, no-c-format
 msgid ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "\n"
-      "    <class name=\"events.Event\" table=\"EVENTS\">\n"
-      "        <id name=\"id\" column=\"EVENT_ID\">\n"
-      "            <generator class=\"native\"/>\n"
-      "        </id>\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
-msgstr "El elemento <literal>id</literal> el la declaraci&#x00f3;n de la propiedad identificadora, <literal>name=\"id\"</literal> declara el nombre de la propiedad Java. Hibernate usar&#x00e1; los m&#x00e9;todos getter y setter para acceder a la propiedad. El attributo de columna dice a Hibernate cu&#x00e1;l columna de la tabla <literal>EVENTS</literal> usamos para esta clave primaria. El elemento anidado <literal>generator</literal> especifica la estrategia de generaci&#x00f3;n de identificadores, en este caso usamos <literal>increment</literal>, que es un m&#x00e9;todo muy simple de incremento de n&#x00fa;mero en-memoria &#x00fa;til mayormente para testeo (y tutoriales). Hibernate tambi&#x0e9;n soporta identificadores generados por base de datos, globalmente &#x00fa;nicos, as&#x00ed; como tambi&#x00e9;n asignados por aplicaci&#x00f3;n (o cualquier estrategia para la que hayas escrito una extensi&#x00f3;n)."
+"The <literal>id</literal> element is the declaration of the identifer "
+"property, <literal>name=\"id\"</literal> declares the name of the Java "
+"property - Hibernate will use the getter and setter methods to access the "
+"property. The column attribute tells Hibernate which column of the "
+"<literal>EVENTS</literal> table we use for this primary key. The nested "
+"<literal>generator</literal> element specifies the identifier generation "
+"strategy, in this case we used <literal>native</literal>, which picks the "
+"best strategy depending on the configured database (dialect). Hibernate "
+"supports database generated, globally unique, as well as application "
+"assigned identifiers (or any strategy you have written an extension for)."
+msgstr ""
+"El elemento <literal>id</literal> el la declaración de la propiedad "
+"identificadora, <literal>name=\"id\"</literal> declara el nombre de la "
+"propiedad Java. Hibernate usará los métodos getter y setter para acceder a "
+"la propiedad. El attributo de columna dice a Hibernate cuál columna de la "
+"tabla <literal>EVENTS</literal> usamos para esta clave primaria. El elemento "
+"anidado <literal>generator</literal> especifica la estrategia de generación "
+"de identificadores, en este caso usamos <literal>increment</literal>, que es "
+"un método muy simple de incremento de número en-memoria útil mayormente para "
+"testeo (y tutoriales). Hibernate también soporta identificadores generados "
+"por base de datos, globalmente únicos, así como también asignados por "
+"aplicación (o cualquier estrategia para la que hayas escrito una extensión)."
 
-#: index.docbook:167
-msgid "The <literal>id</literal> element is the declaration of the identifer property, <literal>name=\"id\"</literal> declares the name of the Java property - Hibernate will use the getter and setter methods to access the property. The column attribute tells Hibernate which column of the <literal>EVENTS</literal> table we use for this primary key. The nested <literal>generator</literal> element specifies the identifier generation strategy, in this case we used <literal>native</literal>, which picks the best strategy depending on the configured database (dialect). Hibernate supports database generated, globally unique, as well as application assigned identifiers (or any strategy you have written an extension for)."
-msgstr "Finalmente inclu&#x00ed;mos declaraciones para las propiedades persistentes de la clases en el fichero de mapeo. Por defecto, ninguna propiedad de la clase se considera persistente:"
+#. Tag: para
+#: tutorial.xml:180
+#, no-c-format
+msgid ""
+"Finally we include declarations for the persistent properties of the class "
+"in the mapping file. By default, no properties of the class are considered "
+"persistent:"
+msgstr ""
+"Finalmente incluímos declaraciones para las propiedades persistentes de la "
+"clases en el fichero de mapeo. Por defecto, ninguna propiedad de la clase se "
+"considera persistente:"
 
-#: index.docbook:180
-msgid "Finally we include declarations for the persistent properties of the class in the mapping file. By default, no properties of the class are considered persistent:"
+#. Tag: programlisting
+#: tutorial.xml:186
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<hibernate-mapping>\n"
+"\n"
+"    <class name=\"events.Event\" table=\"EVENTS\">\n"
+"        <id name=\"id\" column=\"EVENT_ID\">\n"
+"            <generator class=\"native\"/>\n"
+"        </id>\n"
+"        <property name=\"date\" type=\"timestamp\" column=\"EVENT_DATE\"/>\n"
+"        <property name=\"title\"/>\n"
+"    </class>\n"
+"\n"
+"</hibernate-mapping>]]>"
 msgstr ""
-      "<![CDATA[\n"
-      "<hibernate-mapping>\n"
-      "\n"
-      "    <class name=\"Event\" table=\"EVENTS\">\n"
-      "        <id name=\"id\" column=\"EVENT_ID\">\n"
-      "            <generator class=\"increment\"/>\n"
-      "        </id>\n"
-      "        <property name=\"date\" type=\"timestamp\" column=\"EVENT_DATE\"/>\n"
-      "        <property name=\"title\"/>\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
 
-#: index.docbook:186
+#. Tag: para
+#: tutorial.xml:188
+#, no-c-format
 msgid ""
-      "<![CDATA[\n"
-      "<hibernate-mapping>\n"
-      "\n"
-      "    <class name=\"events.Event\" table=\"EVENTS\">\n"
-      "        <id name=\"id\" column=\"EVENT_ID\">\n"
-      "            <generator class=\"native\"/>\n"
-      "        </id>\n"
-      "        <property name=\"date\" type=\"timestamp\" column=\"EVENT_DATE\"/>\n"
-      "        <property name=\"title\"/>\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
-msgstr "Al igual que con el elemento <literal>id</literal>, el atributo <literal>name</literal> del elemento <literal>property</literal> dice a Hibernate c&#x00e1;les m&#x00e9;todos getter y setter usar."
+"Just as with the <literal>id</literal> element, the <literal>name</literal> "
+"attribute of the <literal>property</literal> element tells Hibernate which "
+"getter and setter methods to use. So, in this case, Hibernate will look for "
+"<literal>getDate()/setDate()</literal>, as well as <literal>getTitle()/"
+"setTitle()</literal>."
+msgstr ""
+"Al igual que con el elemento <literal>id</literal>, el atributo "
+"<literal>name</literal> del elemento <literal>property</literal> dice a "
+"Hibernate cáles métodos getter y setter usar."
 
-#: index.docbook:188
-msgid "Just as with the <literal>id</literal> element, the <literal>name</literal> attribute of the <literal>property</literal> element tells Hibernate which getter and setter methods to use. So, in this case, Hibernate will look for <literal>getDate()/setDate()</literal>, as well as <literal>getTitle()/setTitle()</literal>."
-msgstr "¿Por qu&#x00e9; el mapeo de la propiedad <literal>date</literal> incluye el atributo <literal>column</literal>, pero el de la de <literal>title</literal> no? Sin el atributo <literal>column</literal> Hibernate usa por defecto el nombre de propiedad como nombre de columna. Esto funciona bien para <literal>title</literal>. Sin embargo, However, <literal>date</literal> es una palabra reservada en la mayor&#x00ed;a de las bases de datos, as&#x00ed; que mejor la mapeamos a un nombre diferente."
+#. Tag: para
+#: tutorial.xml:195
+#, no-c-format
+msgid ""
+"Why does the <literal>date</literal> property mapping include the "
+"<literal>column</literal> attribute, but the <literal>title</literal> "
+"doesn't? Without the <literal>column</literal> attribute Hibernate by "
+"default uses the property name as the column name. This works fine for "
+"<literal>title</literal>. However, <literal>date</literal> is a reserved "
+"keyword in most database, so we better map it to a different name."
+msgstr ""
+"¿Por qué el mapeo de la propiedad <literal>date</literal> incluye el "
+"atributo <literal>column</literal>, pero el de la de <literal>title</"
+"literal> no? Sin el atributo <literal>column</literal> Hibernate usa por "
+"defecto el nombre de propiedad como nombre de columna. Esto funciona bien "
+"para <literal>title</literal>. Sin embargo, However, <literal>date</literal> "
+"es una palabra reservada en la mayoría de las bases de datos, así que mejor "
+"la mapeamos a un nombre diferente."
 
-#: index.docbook:195
-msgid "Why does the <literal>date</literal> property mapping include the <literal>column</literal> attribute, but the <literal>title</literal> doesn't? Without the <literal>column</literal> attribute Hibernate by default uses the property name as the column name. This works fine for <literal>title</literal>. However, <literal>date</literal> is a reserved keyword in most database, so we better map it to a different name."
-msgstr "La pr&#x00f3;xima cosa interesante es que el mapeo de <literal>title</literal> carece de un atributo <literal>type</literal>. Los tipos que declaramos y usamos en el fichero de mapeo no son, como podr&#x00ed;as esperar, tipos de datos Java. Tampoco son tipos de base de datos SQL. Estos tipos son los llamados as&#x00ed; <emphasis>Tipos de mapeo de Hibernate</emphasis>, convertidores que pueden traducir de tipos Java a SQL y vice versa. De nuevo, Hibernate intentar&#x00e1; determinar la conversi&#x00f3;n y el mapeo mismo de tipo correctos si el atributo <literal>type</literal> no estuviese presente en el mapeo. En algunos casos esta detecci&#x00f3;n autom&#x00e1;tica (usando reflecci&#x00f3;n en la clase Java) puede no tener lo que esperas o necesitas. Este es el caso de la propiedad <literal>date</literal>. Hibernate no puede saber is la propiedad mapear&#x00e1; a una columna <literal>date</literal>, <literal>timestamp</literal> o <literal>time</literal>. Declaramos !
 que queremos preservar la informaci&#x00f3;n completa de fecha y hora mapeando la propiedad con un <literal>timestamp</literal>."
+#. Tag: para
+#: tutorial.xml:204
+#, no-c-format
+msgid ""
+"The next interesting thing is that the <literal>title</literal> mapping also "
+"lacks a <literal>type</literal> attribute. The types we declare and use in "
+"the mapping files are not, as you might expect, Java data types. They are "
+"also not SQL database types. These types are so called <emphasis>Hibernate "
+"mapping types</emphasis>, converters which can translate from Java to SQL "
+"data types and vice versa. Again, Hibernate will try to determine the "
+"correct conversion and mapping type itself if the <literal>type</literal> "
+"attribute is not present in the mapping. In some cases this automatic "
+"detection (using Reflection on the Java class) might not have the default "
+"you expect or need. This is the case with the <literal>date</literal> "
+"property. Hibernate can't know if the property (which is of <literal>java."
+"util.Date</literal>) should map to a SQL <literal>date</literal>, "
+"<literal>timestamp</literal>, or <literal>time</literal> column. We preserve "
+"full date and time information by mapping the property with a "
+"<literal>timestamp</literal> converter."
+msgstr ""
+"La próxima cosa interesante es que el mapeo de <literal>title</literal> "
+"carece de un atributo <literal>type</literal>. Los tipos que declaramos y "
+"usamos en el fichero de mapeo no son, como podrías esperar, tipos de datos "
+"Java. Tampoco son tipos de base de datos SQL. Estos tipos son los llamados "
+"así <emphasis>Tipos de mapeo de Hibernate</emphasis>, convertidores que "
+"pueden traducir de tipos Java a SQL y vice versa. De nuevo, Hibernate "
+"intentará determinar la conversión y el mapeo mismo de tipo correctos si el "
+"atributo <literal>type</literal> no estuviese presente en el mapeo. En "
+"algunos casos esta detección automática (usando reflección en la clase Java) "
+"puede no tener lo que esperas o necesitas. Este es el caso de la propiedad "
+"<literal>date</literal>. Hibernate no puede saber is la propiedad mapeará a "
+"una columna <literal>date</literal>, <literal>timestamp</literal> o "
+"<literal>time</literal>. Declaramos que queremos preservar la información "
+"completa de fecha y hora mapeando la propiedad con un <literal>timestamp</"
+"literal>."
 
-#: index.docbook:204
-msgid "The next interesting thing is that the <literal>title</literal> mapping also lacks a <literal>type</literal> attribute. The types we declare and use in the mapping files are not, as you might expect, Java data types. They are also not SQL database types. These types are so called <emphasis>Hibernate mapping types</emphasis>, converters which can translate from Java to SQL data types and vice versa. Again, Hibernate will try to determine the correct conversion and mapping type itself if the <literal>type</literal> attribute is not present in the mapping. In some cases this automatic detection (using Reflection on the Java class) might not have the default you expect or need. This is the case with the <literal>date</literal> property. Hibernate can't know if the property (which is of <literal>java.util.Date</literal>) should map to a SQL <literal>date</literal>, <literal>timestamp</literal>, or <literal>time</literal> column. We preserve full date and time information !
 by mapping the property with a <literal>timestamp</literal> converter."
-msgstr "Este fichero de mapeo debe ser salvado como <literal>Event.hbm.xml</literal>, justo en el directorio pr&#x00f3;ximo al fichero de c&#x00f3;digo fuente de la clase Java <literal>Event</literal>. El nombrado de los ficheros de mapeo puede ser arbitrario, sin embargo, el sufijo <literal>hbm.xml</literal> se ha vuelto una convenci&#x00f3;n el la comunidad de desarrolladores de Hibernate. La estructura de directorio debe ahora verse como esto:"
-
-#: index.docbook:220
-msgid "This mapping file should be saved as <literal>Event.hbm.xml</literal>, right in the directory next to the <literal>Event</literal> Java class source file. The naming of mapping files can be arbitrary, however the <literal>hbm.xml</literal> suffix is a convention in the Hibernate developer community. The directory structure should now look like this:"
+#. Tag: para
+#: tutorial.xml:220
+#, no-c-format
+msgid ""
+"This mapping file should be saved as <literal>Event.hbm.xml</literal>, right "
+"in the directory next to the <literal>Event</literal> Java class source "
+"file. The naming of mapping files can be arbitrary, however the <literal>hbm."
+"xml</literal> suffix is a convention in the Hibernate developer community. "
+"The directory structure should now look like this:"
 msgstr ""
-      "<![CDATA[.\n"
-      "+lib\n"
-      "  <Hibernate and third-party libraries>\n"
-      "+src\n"
-      "  Event.java\n"
-      "  Event.hbm.xml]]>"
+"Este fichero de mapeo debe ser salvado como <literal>Event.hbm.xml</"
+"literal>, justo en el directorio próximo al fichero de código fuente de la "
+"clase Java <literal>Event</literal>. El nombrado de los ficheros de mapeo "
+"puede ser arbitrario, sin embargo, el sufijo <literal>hbm.xml</literal> se "
+"ha vuelto una convención el la comunidad de desarrolladores de Hibernate. La "
+"estructura de directorio debe ahora verse como esto:"
 
-#: index.docbook:228
+#. Tag: programlisting
+#: tutorial.xml:228
+#, no-c-format
 msgid ""
-      "<![CDATA[.\n"
-      "+lib\n"
-      "  <Hibernate and third-party libraries>\n"
-      "+src\n"
-      "  +events\n"
-      "    Event.java\n"
-      "    Event.hbm.xml]]>"
-msgstr "Continuamos con la configuraci&#x00f3;n principal de Hibernate."
+"<![CDATA[.\n"
+"+lib\n"
+"  <Hibernate and third-party libraries>\n"
+"+src\n"
+"  +events\n"
+"    Event.java\n"
+"    Event.hbm.xml]]>"
+msgstr ""
 
-#: index.docbook:230
+#. Tag: para
+#: tutorial.xml:230
+#, no-c-format
 msgid "We continue with the main configuration of Hibernate."
-msgstr "Configuraci&#x00f3;n de Hibernate"
+msgstr "Continuamos con la configuración principal de Hibernate."
 
-#: index.docbook:237
+#. Tag: title
+#: tutorial.xml:237
+#, no-c-format
 msgid "Hibernate configuration"
-msgstr "Tenemos ahora una clase persistente y su fichero de mapeo en su sitio. Es momento de configurar Hibernate. Antes que hagamos esto, necesitaremos una base de datos. HSQL DB, un DBMS SQL en-memoria basado en Java, puede ser descargado del sitio web de HSQL DB. Realmente, de esta descarga s&#x00f3;lo necesitas el <literal>hsqldb.jar</literal>. Coloca este fichero en el directorio <literal>lib/</literal> de la carpeta de desarrollo."
+msgstr "Configuración de Hibernate"
 
-#: index.docbook:239
-msgid "We now have a persistent class and its mapping file in place. It is time to configure Hibernate. Before we do this, we will need a database. HSQL DB, a java-based SQL DBMS, can be downloaded from the HSQL DB website(http://hsqldb.org/). Actually, you only need the <literal>hsqldb.jar</literal> from this download. Place this file in the <literal>lib/</literal> directory of the development folder."
-msgstr "Crea un directorio llamado <literal>data</literal> en la ra&#x00ed;z del directorio de desarrollo. All&#x00ed; es donde HSQL DB almacenar&#x00e1; sus ficheros de datos."
+#. Tag: para
+#: tutorial.xml:239
+#, no-c-format
+msgid ""
+"We now have a persistent class and its mapping file in place. It is time to "
+"configure Hibernate. Before we do this, we will need a database. HSQL DB, a "
+"java-based SQL DBMS, can be downloaded from the HSQL DB website(http://"
+"hsqldb.org/). Actually, you only need the <literal>hsqldb.jar</literal> from "
+"this download. Place this file in the <literal>lib/</literal> directory of "
+"the development folder."
+msgstr ""
+"Tenemos ahora una clase persistente y su fichero de mapeo en su sitio. Es "
+"momento de configurar Hibernate. Antes que hagamos esto, necesitaremos una "
+"base de datos. HSQL DB, un DBMS SQL en-memoria basado en Java, puede ser "
+"descargado del sitio web de HSQL DB. Realmente, de esta descarga sólo "
+"necesitas el <literal>hsqldb.jar</literal>. Coloca este fichero en el "
+"directorio <literal>lib/</literal> de la carpeta de desarrollo."
 
-#: index.docbook:247
-msgid "Create a directory called <literal>data</literal> in the root of the development directory - this is where HSQL DB will store its data files. Now start the database by running <literal>java -classpath ../lib/hsqldb.jar org.hsqldb.Server</literal> in this data directory. You can see it start up and bind to a TCP/IP socket, this is where our application will connect later. If you want to start with a fresh database during this tutorial, shutdown HSQL DB (press <literal>CTRL + C</literal> in the window), delete all files in the <literal>data/</literal> directory, and start HSQL DB again."
-msgstr "Hibernate es la capa en tu aplicaci&#x00f3;n que se conecta a esta base de datos, de modo que necesita informaci&#x00f3;n de conexi&#x00f3;n. Las conexiones se hacen a trav&#x00e9;s de un pool de conexiones JDBC, que tamb&#x00e9;n tenemos que configurar. La distribuci&#x00f3;n de Hibernate contiene muchas herramientas de pooling de conexiones JDBC de c&#x00f3;digo abierto, pero para este tutorial usaremos el pool de conexiones prefabricado dentro de Hibernate. Observa que tienes que copiar la biblioteca requerida en tu classpath y usar diferentes configuraciones de pooling de conexiones si quieres usar un software de pooling JDBC de terceros de calidad de producci&#x00f3;n."
+#. Tag: para
+#: tutorial.xml:247
+#, no-c-format
+msgid ""
+"Create a directory called <literal>data</literal> in the root of the "
+"development directory - this is where HSQL DB will store its data files. Now "
+"start the database by running <literal>java -classpath ../lib/hsqldb.jar org."
+"hsqldb.Server</literal> in this data directory. You can see it start up and "
+"bind to a TCP/IP socket, this is where our application will connect later. "
+"If you want to start with a fresh database during this tutorial, shutdown "
+"HSQL DB (press <literal>CTRL + C</literal> in the window), delete all files "
+"in the <literal>data/</literal> directory, and start HSQL DB again."
+msgstr ""
+"Crea un directorio llamado <literal>data</literal> en la raíz del directorio "
+"de desarrollo. Allí es donde HSQL DB almacenará sus ficheros de datos."
 
-#: index.docbook:257
-msgid "Hibernate is the layer in your application which connects to this database, so it needs connection information. The connections are made through a JDBC connection pool, which we also have to configure. The Hibernate distribution contains several open source JDBC connection pooling tools, but will use the Hibernate built-in connection pool for this tutorial. Note that you have to copy the required library into your classpath and use different connection pooling settings if you want to use a production-quality third party JDBC pooling software."
-msgstr "Para la configuraci&#x00f3;n de Hibernate, podemos usar un fichero <literal>hibernate.properties</literal> simple, un fichero <literal>hibernate.cfg.xml</literal> ligeramente m&#x00e1;s sofisticado, o incluso una configuraci&#x00f3;n completamente program&#x00e1;tica. La mayor&#x00ed;a de los usuarios prefieren el fichero de configuraci&#x00f3;n XML:"
+#. Tag: para
+#: tutorial.xml:257
+#, no-c-format
+msgid ""
+"Hibernate is the layer in your application which connects to this database, "
+"so it needs connection information. The connections are made through a JDBC "
+"connection pool, which we also have to configure. The Hibernate distribution "
+"contains several open source JDBC connection pooling tools, but will use the "
+"Hibernate built-in connection pool for this tutorial. Note that you have to "
+"copy the required library into your classpath and use different connection "
+"pooling settings if you want to use a production-quality third party JDBC "
+"pooling software."
+msgstr ""
+"Hibernate es la capa en tu aplicación que se conecta a esta base de datos, "
+"de modo que necesita información de conexión. Las conexiones se hacen a "
+"través de un pool de conexiones JDBC, que tambén tenemos que configurar. La "
+"distribución de Hibernate contiene muchas herramientas de pooling de "
+"conexiones JDBC de código abierto, pero para este tutorial usaremos el pool "
+"de conexiones prefabricado dentro de Hibernate. Observa que tienes que "
+"copiar la biblioteca requerida en tu classpath y usar diferentes "
+"configuraciones de pooling de conexiones si quieres usar un software de "
+"pooling JDBC de terceros de calidad de producción."
 
-#: index.docbook:267
-msgid "For Hibernate's configuration, we can use a simple <literal>hibernate.properties</literal> file, a slightly more sophisticated <literal>hibernate.cfg.xml</literal> file, or even complete programmatic setup. Most users prefer the XML configuration file:"
+#. Tag: para
+#: tutorial.xml:267
+#, no-c-format
+msgid ""
+"For Hibernate's configuration, we can use a simple <literal>hibernate."
+"properties</literal> file, a slightly more sophisticated <literal>hibernate."
+"cfg.xml</literal> file, or even complete programmatic setup. Most users "
+"prefer the XML configuration file:"
 msgstr ""
-      "<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n"
-      "<!DOCTYPE hibernate-configuration PUBLIC\n"
-      "        \"-//Hibernate/Hibernate Configuration DTD 3.0//EN\"\n"
-      "        \"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd\">\n"
-      "\n"
-      "<hibernate-configuration>\n"
-      "\n"
-      "    <session-factory>\n"
-      "\n"
-      "        <!-- Database connection settings -->\n"
-      "        <property name=\"connection.driver_class\">org.hsqldb.jdbcDriver</property>\n"
-      "        <property name=\"connection.url\">jdbc:hsqldb:data/tutorial</property>\n"
-      "        <property name=\"connection.username\">sa</property>\n"
-      "        <property name=\"connection.password\"></property>\n"
-      "\n"
-      "        <!-- JDBC connection pool (use the built-in) -->\n"
-      "        <property name=\"connection.pool_size\">1</property>\n"
-      "\n"
-      "        <!-- SQL dialect -->\n"
-      "        <property name=\"dialect\">org.hibernate.dialect.HSQLDialect</property>\n"
-      "\n"
-      "        <!-- Echo all executed SQL to stdout -->\n"
-      "        <property name=\"show_sql\">true</property>\n"
-      "\n"
-      "        <!-- Drop and re-create the database schema on startup -->\n"
-      "        <property name=\"hbm2ddl.auto\">create</property>\n"
-      "\n"
-      "        <mapping resource=\"Event.hbm.xml\"/>\n"
-      "\n"
-      "    </session-factory>\n"
-      "\n"
-      "</hibernate-configuration>]]>"
+"Para la configuración de Hibernate, podemos usar un fichero "
+"<literal>hibernate.properties</literal> simple, un fichero "
+"<literal>hibernate.cfg.xml</literal> ligeramente más sofisticado, o incluso "
+"una configuración completamente programática. La mayoría de los usuarios "
+"prefieren el fichero de configuración XML:"
 
-#: index.docbook:273
+#. Tag: programlisting
+#: tutorial.xml:273
+#, no-c-format
 msgid ""
-      "<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n"
-      "<!DOCTYPE hibernate-configuration PUBLIC\n"
-      "        \"-//Hibernate/Hibernate Configuration DTD 3.0//EN\"\n"
-      "        \"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd\">\n"
-      "\n"
-      "<hibernate-configuration>\n"
-      "\n"
-      "    <session-factory>\n"
-      "\n"
-      "        <!-- Database connection settings -->\n"
-      "        <property name=\"connection.driver_class\">org.hsqldb.jdbcDriver</property>\n"
-      "        <property name=\"connection.url\">jdbc:hsqldb:hsql://localhost</property>\n"
-      "        <property name=\"connection.username\">sa</property>\n"
-      "        <property name=\"connection.password\"></property>\n"
-      "\n"
-      "        <!-- JDBC connection pool (use the built-in) -->\n"
-      "        <property name=\"connection.pool_size\">1</property>\n"
-      "\n"
-      "        <!-- SQL dialect -->\n"
-      "        <property name=\"dialect\">org.hibernate.dialect.HSQLDialect</property>\n"
-      "\n"
-      "        <!-- Enable Hibernate's automatic session context management -->\n"
-      "        <property name=\"current_session_context_class\">thread</property>\n"
-      "\n"
-      "        <!-- Disable the second-level cache  -->\n"
-      "        <property name=\"cache.provider_class\">org.hibernate.cache.NoCacheProvider</property>\n"
-      "\n"
-      "        <!-- Echo all executed SQL to stdout -->\n"
-      "        <property name=\"show_sql\">true</property>\n"
-      "\n"
-      "        <!-- Drop and re-create the database schema on startup -->\n"
-      "        <property name=\"hbm2ddl.auto\">create</property>\n"
-      "\n"
-      "        <mapping resource=\"events/Event.hbm.xml\"/>\n"
-      "\n"
-      "    </session-factory>\n"
-      "\n"
-      "</hibernate-configuration>]]>"
-msgstr "Observa que esta configuraci&#x00f3;n XML usa un DTD diferente. Configuramos la <literal>SessionFactory</literal> de Hibernate, una f&#x00e1;brica global responsable de una base de datos en particular. Si tienes varias bases de datos, usa varias configuraciones <literal>&lt;session-factory&gt;</literal> , usualmente en varios ficheros de configuraci&#x00f3;n (para un arranque m&#x00e1;s f&#x00e1;cil)."
+"<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n"
+"<!DOCTYPE hibernate-configuration PUBLIC\n"
+"        \"-//Hibernate/Hibernate Configuration DTD 3.0//EN\"\n"
+"        \"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
+"\">\n"
+"\n"
+"<hibernate-configuration>\n"
+"\n"
+"    <session-factory>\n"
+"\n"
+"        <!-- Database connection settings -->\n"
+"        <property name=\"connection.driver_class\">org.hsqldb.jdbcDriver</"
+"property>\n"
+"        <property name=\"connection.url\">jdbc:hsqldb:hsql://localhost</"
+"property>\n"
+"        <property name=\"connection.username\">sa</property>\n"
+"        <property name=\"connection.password\"></property>\n"
+"\n"
+"        <!-- JDBC connection pool (use the built-in) -->\n"
+"        <property name=\"connection.pool_size\">1</property>\n"
+"\n"
+"        <!-- SQL dialect -->\n"
+"        <property name=\"dialect\">org.hibernate.dialect.HSQLDialect</"
+"property>\n"
+"\n"
+"        <!-- Enable Hibernate's automatic session context management -->\n"
+"        <property name=\"current_session_context_class\">thread</property>\n"
+"\n"
+"        <!-- Disable the second-level cache  -->\n"
+"        <property name=\"cache.provider_class\">org.hibernate.cache."
+"NoCacheProvider</property>\n"
+"\n"
+"        <!-- Echo all executed SQL to stdout -->\n"
+"        <property name=\"show_sql\">true</property>\n"
+"\n"
+"        <!-- Drop and re-create the database schema on startup -->\n"
+"        <property name=\"hbm2ddl.auto\">create</property>\n"
+"\n"
+"        <mapping resource=\"events/Event.hbm.xml\"/>\n"
+"\n"
+"    </session-factory>\n"
+"\n"
+"</hibernate-configuration>]]>"
+msgstr ""
 
-#: index.docbook:275
-msgid "Note that this XML configuration uses a different DTD. We configure Hibernate's <literal>SessionFactory</literal> - a global factory responsible for a particular database. If you have several databases, use several <literal>&lt;session-factory&gt;</literal> configurations, usually in several configuration files (for easier startup)."
-msgstr "Los primeros cuatro elementos <literal>property</literal> contienen la configuraci&#x00f3;n necesaria para la conexi&#x00f3;n JDBC. El elemento de dialecto <literal>property</literal> especifica la variante de SQL en particular que genera Hibernate. La opci&#x00f3;n <literal>hbm2ddl.auto</literal> activa la generaci&#x00f3;n autom&#x00e1;tica de esquemas de base de datos, directamente en la base de datos. Esto, por supuesto, puede desactivarse (quitando la opci&#x00f3;n config) o redirigido a un fichero con la ayuda de la tarea de Ant <literal>SchemaExport</literal>. Finalmente, agregamos el(los) fichero(s) de mapeo para clases persistentes."
+#. Tag: para
+#: tutorial.xml:275
+#, no-c-format
+msgid ""
+"Note that this XML configuration uses a different DTD. We configure "
+"Hibernate's <literal>SessionFactory</literal> - a global factory responsible "
+"for a particular database. If you have several databases, use several "
+"<literal>&lt;session-factory&gt;</literal> configurations, usually in "
+"several configuration files (for easier startup)."
+msgstr ""
+"Observa que esta configuración XML usa un DTD diferente. Configuramos la "
+"<literal>SessionFactory</literal> de Hibernate, una fábrica global "
+"responsable de una base de datos en particular. Si tienes varias bases de "
+"datos, usa varias configuraciones <literal>&lt;session-factory&gt;</"
+"literal> , usualmente en varios ficheros de configuración (para un arranque "
+"más fácil)."
 
-#: index.docbook:283
-msgid "The first four <literal>property</literal> elements contain the necessary configuration for the JDBC connection. The dialect <literal>property</literal> element specifies the particular SQL variant Hibernate generates. Hibernate's automatic session management for persistence contexts will come in handy as you will soon see. The <literal>hbm2ddl.auto</literal> option turns on automatic generation of database schemas - directly into the database. This can of course also be turned off (by removing the config option) or redirected to a file with the help of the <literal>SchemaExport</literal> Ant task. Finally, we add the mapping file(s) for persistent classes to the configuration."
-msgstr "Copia este fichero dentro del directorio de c&#x00f3;digo fuente, de modo que termine ubicado en la rai&#x00ed;z del classpath. Hibernate busca autom&#x00e1;ticamente un fichero llamado <literal>hibernate.cfg.xml</literal> en la ra&#x00ed;z del classpath al arrancar."
+#. Tag: para
+#: tutorial.xml:283
+#, no-c-format
+msgid ""
+"The first four <literal>property</literal> elements contain the necessary "
+"configuration for the JDBC connection. The dialect <literal>property</"
+"literal> element specifies the particular SQL variant Hibernate generates. "
+"Hibernate's automatic session management for persistence contexts will come "
+"in handy as you will soon see. The <literal>hbm2ddl.auto</literal> option "
+"turns on automatic generation of database schemas - directly into the "
+"database. This can of course also be turned off (by removing the config "
+"option) or redirected to a file with the help of the <literal>SchemaExport</"
+"literal> Ant task. Finally, we add the mapping file(s) for persistent "
+"classes to the configuration."
+msgstr ""
+"Los primeros cuatro elementos <literal>property</literal> contienen la "
+"configuración necesaria para la conexión JDBC. El elemento de dialecto "
+"<literal>property</literal> especifica la variante de SQL en particular que "
+"genera Hibernate. La opción <literal>hbm2ddl.auto</literal> activa la "
+"generación automática de esquemas de base de datos, directamente en la base "
+"de datos. Esto, por supuesto, puede desactivarse (quitando la opción config) "
+"o redirigido a un fichero con la ayuda de la tarea de Ant "
+"<literal>SchemaExport</literal>. Finalmente, agregamos el(los) fichero(s) de "
+"mapeo para clases persistentes."
 
-#: index.docbook:296
-msgid "Copy this file into the source directory, so it will end up in the root of the classpath. Hibernate automatically looks for a file called <literal>hibernate.cfg.xml</literal> in the root of the classpath, on startup."
-msgstr "Construyendo con Ant"
+#. Tag: para
+#: tutorial.xml:296
+#, no-c-format
+msgid ""
+"Copy this file into the source directory, so it will end up in the root of "
+"the classpath. Hibernate automatically looks for a file called "
+"<literal>hibernate.cfg.xml</literal> in the root of the classpath, on "
+"startup."
+msgstr ""
+"Copia este fichero dentro del directorio de código fuente, de modo que "
+"termine ubicado en la raiíz del classpath. Hibernate busca automáticamente "
+"un fichero llamado <literal>hibernate.cfg.xml</literal> en la raíz del "
+"classpath al arrancar."
 
-#: index.docbook:305
+#. Tag: title
+#: tutorial.xml:305
+#, no-c-format
 msgid "Building with Ant"
-msgstr "Construiremos ahora el tutorial con Ant. Necesitar&#x00e1;s tener Ant instalado. Obt&#x00e9;nlo de <ulink url=\"http://ant.apache.org/bindownload.cgi\">P&#x00e1;gina de descarga de Ant</ulink>. No se cubrir&#x00e1; aqu&#x00ed; c&#x00f3;mo instalar Ant. Por favor refi&#x00e9;rete al <ulink url=\"http://ant.apache.org/manual/index.html\"> Manual de Ant</ulink>. Despu&#x00e9;s que hayas instalado Ant, podemos comenzar a crear el buildfile. Ser&#x00e1; llamado <literal>build.xml</literal> y colocado directamente en el directorio de desarrollo."
+msgstr "Construyendo con Ant"
 
-#: index.docbook:307
-msgid "We'll now build the tutorial with Ant. You will need to have Ant installed - get it from the <ulink url=\"http://ant.apache.org/bindownload.cgi\">Ant download page</ulink>. How to install Ant will not be covered here. Please refer to the <ulink url=\"http://ant.apache.org/manual/index.html\">Ant manual</ulink>. After you have installed Ant, we can start to create the buildfile. It will be called <literal>build.xml</literal> and placed directly in the development directory."
-msgstr "Reparar Ant"
+#. Tag: para
+#: tutorial.xml:307
+#, no-c-format
+msgid ""
+"We'll now build the tutorial with Ant. You will need to have Ant installed - "
+"get it from the <ulink url=\"http://ant.apache.org/bindownload.cgi\">Ant "
+"download page</ulink>. How to install Ant will not be covered here. Please "
+"refer to the <ulink url=\"http://ant.apache.org/manual/index.html\">Ant "
+"manual</ulink>. After you have installed Ant, we can start to create the "
+"buildfile. It will be called <literal>build.xml</literal> and placed "
+"directly in the development directory."
+msgstr ""
+"Construiremos ahora el tutorial con Ant. Necesitarás tener Ant instalado. "
+"Obténlo de <ulink url=\"http://ant.apache.org/bindownload.cgi\">Página de "
+"descarga de Ant</ulink>. No se cubrirá aquí cómo instalar Ant. Por favor "
+"refiérete al <ulink url=\"http://ant.apache.org/manual/index.html\"> Manual "
+"de Ant</ulink>. Después que hayas instalado Ant, podemos comenzar a crear el "
+"buildfile. Será llamado <literal>build.xml</literal> y colocado directamente "
+"en el directorio de desarrollo."
 
-#: index.docbook:316
+#. Tag: para
+#: tutorial.xml:316
+#, no-c-format
 msgid "A basic build file looks like this:"
-msgstr "Observa que la distribuci&#x00f3;n de Ant est&#x00e1; por defecto rota (como se describe en el FAQ de Ant) y tiene que ser reparado por ti, por ejemplo, si quisieras usar JUnit desde dentro de tu fichero de construcci&#x00f3;n. Para hacer que funcione la tarea de JUnit (no lo necesitaremos en este tutorial), copia junit.jar a <literal>ANT_HOME/lib</literal> o quita el trozo de plugin <literal>ANT_HOME/lib/ant-junit.jar</literal>."
+msgstr "Reparar Ant"
 
-#: index.docbook:320
+#. Tag: programlisting
+#: tutorial.xml:320
+#, no-c-format
 msgid ""
-      "<![CDATA[<project name=\"hibernate-tutorial\" default=\"compile\">\n"
-      "\n"
-      "    <property name=\"sourcedir\" value=\"${basedir}/src\"/>\n"
-      "    <property name=\"targetdir\" value=\"${basedir}/bin\"/>\n"
-      "    <property name=\"librarydir\" value=\"${basedir}/lib\"/>\n"
-      "\n"
-      "    <path id=\"libraries\">\n"
-      "        <fileset dir=\"${librarydir}\">\n"
-      "            <include name=\"*.jar\"/>\n"
-      "        </fileset>\n"
-      "    </path>\n"
-      "\n"
-      "    <target name=\"clean\">\n"
-      "        <delete dir=\"${targetdir}\"/>\n"
-      "        <mkdir dir=\"${targetdir}\"/>\n"
-      "    </target>\n"
-      "\n"
-      "    <target name=\"compile\" depends=\"clean, copy-resources\">\n"
-      "      <javac srcdir=\"${sourcedir}\"\n"
-      "             destdir=\"${targetdir}\"\n"
-      "             classpathref=\"libraries\"/>\n"
-      "    </target>\n"
-      "\n"
-      "    <target name=\"copy-resources\">\n"
-      "        <copy todir=\"${targetdir}\">\n"
-      "            <fileset dir=\"${sourcedir}\">\n"
-      "                <exclude name=\"**/*.java\"/>\n"
-      "            </fileset>\n"
-      "        </copy>\n"
-      "    </target>\n"
-      "\n"
-      "</project>]]>"
-msgstr "Un fichero de construcci&#x00f3;n b&#x00e1;sico se ve como esto:"
+"<![CDATA[<project name=\"hibernate-tutorial\" default=\"compile\">\n"
+"\n"
+"    <property name=\"sourcedir\" value=\"${basedir}/src\"/>\n"
+"    <property name=\"targetdir\" value=\"${basedir}/bin\"/>\n"
+"    <property name=\"librarydir\" value=\"${basedir}/lib\"/>\n"
+"\n"
+"    <path id=\"libraries\">\n"
+"        <fileset dir=\"${librarydir}\">\n"
+"            <include name=\"*.jar\"/>\n"
+"        </fileset>\n"
+"    </path>\n"
+"\n"
+"    <target name=\"clean\">\n"
+"        <delete dir=\"${targetdir}\"/>\n"
+"        <mkdir dir=\"${targetdir}\"/>\n"
+"    </target>\n"
+"\n"
+"    <target name=\"compile\" depends=\"clean, copy-resources\">\n"
+"      <javac srcdir=\"${sourcedir}\"\n"
+"             destdir=\"${targetdir}\"\n"
+"             classpathref=\"libraries\"/>\n"
+"    </target>\n"
+"\n"
+"    <target name=\"copy-resources\">\n"
+"        <copy todir=\"${targetdir}\">\n"
+"            <fileset dir=\"${sourcedir}\">\n"
+"                <exclude name=\"**/*.java\"/>\n"
+"            </fileset>\n"
+"        </copy>\n"
+"    </target>\n"
+"\n"
+"</project>]]>"
+msgstr ""
 
-#: index.docbook:322
-msgid "This will tell Ant to add all files in the lib directory ending with <literal>.jar</literal> to the classpath used for compilation. It will also copy all non-Java source files to the target directory, e.g. configuration and Hibernate mapping files. If you now run Ant, you should get this output:"
+#. Tag: para
+#: tutorial.xml:322
+#, no-c-format
+msgid ""
+"This will tell Ant to add all files in the lib directory ending with "
+"<literal>.jar</literal> to the classpath used for compilation. It will also "
+"copy all non-Java source files to the target directory, e.g. configuration "
+"and Hibernate mapping files. If you now run Ant, you should get this output:"
 msgstr ""
-      "<![CDATA[<project name=\"hibernate-tutorial\" default=\"compile\">\n"
-      "\n"
-      "    <property name=\"sourcedir\" value=\"${basedir}/src\"/>\n"
-      "    <property name=\"targetdir\" value=\"${basedir}/bin\"/>\n"
-      "    <property name=\"librarydir\" value=\"${basedir}/lib\"/>\n"
-      "\n"
-      "    <path id=\"libraries\">\n"
-      "        <fileset dir=\"${librarydir}\">\n"
-      "            <include name=\"*.jar\"/>\n"
-      "        </fileset>\n"
-      "    </path>\n"
-      "\n"
-      "    <target name=\"clean\">\n"
-      "        <delete dir=\"${targetdir}\"/>\n"
-      "        <mkdir dir=\"${targetdir}\"/>\n"
-      "    </target>\n"
-      "\n"
-      "    <target name=\"compile\" depends=\"clean, copy-resources\">\n"
-      "      <javac srcdir=\"${sourcedir}\"\n"
-      "             destdir=\"${targetdir}\"\n"
-      "             classpathref=\"libraries\"/>\n"
-      "    </target>\n"
-      "\n"
-      "    <target name=\"copy-resources\">\n"
-      "        <copy todir=\"${targetdir}\">\n"
-      "            <fileset dir=\"${sourcedir}\">\n"
-      "                <exclude name=\"**/*.java\"/>\n"
-      "            </fileset>\n"
-      "        </copy>\n"
-      "    </target>\n"
-      "\n"
-      "</project>]]>"
+"Observa que la distribución de Ant está por defecto rota (como se describe "
+"en el FAQ de Ant) y tiene que ser reparado por ti, por ejemplo, si quisieras "
+"usar JUnit desde dentro de tu fichero de construcción. Para hacer que "
+"funcione la tarea de JUnit (no lo necesitaremos en este tutorial), copia "
+"junit.jar a <literal>ANT_HOME/lib</literal> o quita el trozo de plugin "
+"<literal>ANT_HOME/lib/ant-junit.jar</literal>."
 
-#: index.docbook:329
+#. Tag: programlisting
+#: tutorial.xml:329
+#, no-c-format
 msgid ""
-      "<![CDATA[C:\\hibernateTutorial\\>ant\n"
-      "Buildfile: build.xml\n"
-      "\n"
-      "copy-resources:\n"
-      "     [copy] Copying 2 files to C:\\hibernateTutorial\\bin\n"
-      "\n"
-      "compile:\n"
-      "    [javac] Compiling 1 source file to C:\\hibernateTutorial\\bin\n"
-      "\n"
-      "BUILD SUCCESSFUL\n"
-      "Total time: 1 second ]]>"
-msgstr "Esto dir&#x00e1; a Ant que agregue todos los ficheros en el directorio lib que terminen con <literal>.jar</literal> al classpath usado para la compilaci&#x00f3;n. Tambi&#x00e9;n copiar&#x00e1; todos los ficheros que no sean c&#x00f3;digo Java al directorio objetivo, por ejemplo, ficheros de configuraci&#x00f3;n y mapeos de Hibernate. Si ahora corres Ant, debes obtener esta salida:"
+"<![CDATA[C:\\hibernateTutorial\\>ant\n"
+"Buildfile: build.xml\n"
+"\n"
+"copy-resources:\n"
+"     [copy] Copying 2 files to C:\\hibernateTutorial\\bin\n"
+"\n"
+"compile:\n"
+"    [javac] Compiling 1 source file to C:\\hibernateTutorial\\bin\n"
+"\n"
+"BUILD SUCCESSFUL\n"
+"Total time: 1 second ]]>"
+msgstr ""
 
-#: index.docbook:334
+#. Tag: title
+#: tutorial.xml:334
+#, no-c-format
 msgid "Startup and helpers"
+msgstr "Un fichero de construcción básico se ve como esto:"
+
+#. Tag: para
+#: tutorial.xml:336
+#, no-c-format
+msgid ""
+"It's time to load and store some <literal>Event</literal> objects, but first "
+"we have to complete the setup with some infrastructure code. We have to "
+"startup Hibernate. This startup includes building a global "
+"<literal>SessionFactory</literal> object and to store it somewhere for easy "
+"access in application code. A <literal>SessionFactory</literal> can open up "
+"new <literal>Session</literal>'s. A <literal>Session</literal> represents a "
+"single-threaded unit of work, the <literal>SessionFactory</literal> is a "
+"thread-safe global object, instantiated once."
 msgstr ""
-      "<![CDATA[C:\\hibernateTutorial\\>ant\n"
-      "Buildfile: build.xml\n"
-      "\n"
-      "copy-resources:\n"
-      "     [copy] Copying 2 files to C:\\hibernateTutorial\\bin\n"
-      "\n"
-      "compile:\n"
-      "    [javac] Compiling 1 source file to C:\\hibernateTutorial\\bin\n"
-      "\n"
-      "BUILD SUCCESSFUL\n"
-      "Total time: 1 second ]]>"
+"Esto dirá a Ant que agregue todos los ficheros en el directorio lib que "
+"terminen con <literal>.jar</literal> al classpath usado para la compilación. "
+"También copiará todos los ficheros que no sean código Java al directorio "
+"objetivo, por ejemplo, ficheros de configuración y mapeos de Hibernate. Si "
+"ahora corres Ant, debes obtener esta salida:"
 
-#: index.docbook:336
-msgid "It's time to load and store some <literal>Event</literal> objects, but first we have to complete the setup with some infrastructure code. We have to startup Hibernate. This startup includes building a global <literal>SessionFactory</literal> object and to store it somewhere for easy access in application code. A <literal>SessionFactory</literal> can open up new <literal>Session</literal>'s. A <literal>Session</literal> represents a single-threaded unit of work, the <literal>SessionFactory</literal> is a thread-safe global object, instantiated once."
+#. Tag: para
+#: tutorial.xml:346
+#, no-c-format
+msgid ""
+"We'll create a <literal>HibernateUtil</literal> helper class which takes "
+"care of startup and makes accessing a <literal>SessionFactory</literal> "
+"convenient. Let's have a look at the implementation:"
 msgstr "Arranque y ayudantes"
 
-#: index.docbook:346
-msgid "We'll create a <literal>HibernateUtil</literal> helper class which takes care of startup and makes accessing a <literal>SessionFactory</literal> convenient. Let's have a look at the implementation:"
-msgstr "Es momento de cargar y almacenar algunos objetos <literal>Event</literal>, pero primero tenemos que completar la configuraci&#x00f3;n de alg&#x00fa;n c&#x00f3;digo de infraestructura. Tenemos que arrancar Hibernate. Este arranque incluye construir un objeto <literal>SessionFactory</literal> global y almacenarlo en alg&#x00fa;n sitio de f&#x00e1;cil acceso en el c&#x00f3;digo de aplicaci&#x00f3;n. Una <literal>SessionFactory</literal> puede abrir nuevas <literal>Session</literal>'s. Una <literal>Session</literal> representa un unidad de trabajo mono-hebra. La <literal>SessionFactory</literal> es un objeto global seguro entre hebras, instanciado una sola vez."
+#. Tag: programlisting
+#: tutorial.xml:352
+#, no-c-format
+msgid ""
+"<![CDATA[package util;\n"
+"\n"
+"import org.hibernate.*;\n"
+"import org.hibernate.cfg.*;\n"
+"\n"
+"public class HibernateUtil {\n"
+"\n"
+"    private static final SessionFactory sessionFactory;\n"
+"\n"
+"    static {\n"
+"        try {\n"
+"            // Create the SessionFactory from hibernate.cfg.xml\n"
+"            sessionFactory = new Configuration().configure()."
+"buildSessionFactory();\n"
+"        } catch (Throwable ex) {\n"
+"            // Make sure you log the exception, as it might be swallowed\n"
+"            System.err.println(\"Initial SessionFactory creation failed.\" + "
+"ex);\n"
+"            throw new ExceptionInInitializerError(ex);\n"
+"        }\n"
+"    }\n"
+"\n"
+"    public static SessionFactory getSessionFactory() {\n"
+"        return sessionFactory;\n"
+"    }\n"
+"\n"
+"}]]>"
+msgstr ""
 
-#: index.docbook:352
+#. Tag: para
+#: tutorial.xml:354
+#, no-c-format
 msgid ""
-      "<![CDATA[package util;\n"
-      "\n"
-      "import org.hibernate.*;\n"
-      "import org.hibernate.cfg.*;\n"
-      "\n"
-      "public class HibernateUtil {\n"
-      "\n"
-      "    private static final SessionFactory sessionFactory;\n"
-      "\n"
-      "    static {\n"
-      "        try {\n"
-      "            // Create the SessionFactory from hibernate.cfg.xml\n"
-      "            sessionFactory = new Configuration().configure().buildSessionFactory();\n"
-      "        } catch (Throwable ex) {\n"
-      "            // Make sure you log the exception, as it might be swallowed\n"
-      "            System.err.println(\"Initial SessionFactory creation failed.\" + ex);\n"
-      "            throw new ExceptionInInitializerError(ex);\n"
-      "        }\n"
-      "    }\n"
-      "\n"
-      "    public static SessionFactory getSessionFactory() {\n"
-      "        return sessionFactory;\n"
-      "    }\n"
-      "\n"
-      "}]]>"
-msgstr "Crearemos una clase de ayuda <literal>HibernateUtil</literal> que cuide del arranque y haga conveniente el manejo de <literal>Session</literal>. El as&#x00ed; llamado patr&#x00f3;n <emphasis>Sesi&#x00f3;n de Hebra Local (ThreadLocal Session)</emphasis> es &#x00fa;til aqu&#x00ed;; mantenemos la unidad de trabajo actual asociada a la hebra actual. Echemos una mirada a la implementaci&#x00f3;n:"
+"This class does not only produce the global <literal>SessionFactory</"
+"literal> in its static initializer (called once by the JVM when the class is "
+"loaded), but also hides the fact that it uses a static singleton. It might "
+"as well lookup the <literal>SessionFactory</literal> from JNDI in an "
+"application server."
+msgstr ""
+"Es momento de cargar y almacenar algunos objetos <literal>Event</literal>, "
+"pero primero tenemos que completar la configuración de algún código de "
+"infraestructura. Tenemos que arrancar Hibernate. Este arranque incluye "
+"construir un objeto <literal>SessionFactory</literal> global y almacenarlo "
+"en algún sitio de fácil acceso en el código de aplicación. Una "
+"<literal>SessionFactory</literal> puede abrir nuevas <literal>Session</"
+"literal>'s. Una <literal>Session</literal> representa un unidad de trabajo "
+"mono-hebra. La <literal>SessionFactory</literal> es un objeto global seguro "
+"entre hebras, instanciado una sola vez."
 
-#: index.docbook:354
-msgid "This class does not only produce the global <literal>SessionFactory</literal> in its static initializer (called once by the JVM when the class is loaded), but also hides the fact that it uses a static singleton. It might as well lookup the <literal>SessionFactory</literal> from JNDI in an application server."
+#. Tag: para
+#: tutorial.xml:361
+#, no-c-format
+msgid ""
+"If you give the <literal>SessionFactory</literal> a name in your "
+"configuration file, Hibernate will in fact try to bind it to JNDI after it "
+"has been built. To avoid this code completely you could also use JMX "
+"deployment and let the JMX-capable container instantiate and bind a "
+"<literal>HibernateService</literal> to JNDI. These advanced options are "
+"discussed in the Hibernate reference documentation."
 msgstr ""
-      "<![CDATA[import org.hibernate.*;\n"
-      "import org.hibernate.cfg.*;\n"
-      "\n"
-      "public class HibernateUtil {\n"
-      "\n"
-      "    public static final SessionFactory sessionFactory;\n"
-      "\n"
-      "    static {\n"
-      "        try {\n"
-      "            // Create the SessionFactory from hibernate.cfg.xml\n"
-      "            sessionFactory = new Configuration().configure().buildSessionFactory();\n"
-      "        } catch (Throwable ex) {\n"
-      "            // Make sure you log the exception, as it might be swallowed\n"
-      "            System.err.println(\"Initial SessionFactory creation failed.\" + ex);\n"
-      "            throw new ExceptionInInitializerError(ex);\n"
-      "        }\n"
-      "    }\n"
-      "\n"
-      "    public static final ThreadLocal session = new ThreadLocal();\n"
-      "\n"
-      "    public static Session currentSession() throws HibernateException {\n"
-      "        Session s = (Session) session.get();\n"
-      "        // Open a new Session, if this thread has none yet\n"
-      "        if (s == null) {\n"
-      "            s = sessionFactory.openSession();\n"
-      "            // Store it in the ThreadLocal variable\n"
-      "            session.set(s);\n"
-      "        }\n"
-      "        return s;\n"
-      "    }\n"
-      "\n"
-      "    public static void closeSession() throws HibernateException {\n"
-      "        Session s = (Session) session.get();\n"
-      "        if (s != null)\n"
-      "            s.close();\n"
-      "        session.set(null);\n"
-      "    }\n"
-      "}]]>"
+"Crearemos una clase de ayuda <literal>HibernateUtil</literal> que cuide del "
+"arranque y haga conveniente el manejo de <literal>Session</literal>. El así "
+"llamado patrón <emphasis>Sesión de Hebra Local (ThreadLocal Session)</"
+"emphasis> es útil aquí; mantenemos la unidad de trabajo actual asociada a la "
+"hebra actual. Echemos una mirada a la implementación:"
 
-#: index.docbook:361
-msgid "If you give the <literal>SessionFactory</literal> a name in your configuration file, Hibernate will in fact try to bind it to JNDI after it has been built. To avoid this code completely you could also use JMX deployment and let the JMX-capable container instantiate and bind a <literal>HibernateService</literal> to JNDI. These advanced options are discussed in the Hibernate reference documentation."
-msgstr "Esta clase no &#x00f3;lo produce la <literal>SessionFactory</literal> global en su inicializador static (llamado s&#x00f3;lo una vez por la JVM al cargar la clase), sino que tambi&#x00e9;n tiene una variable <literal>ThreadLocal</literal> para tener la <literal>Session</literal> para la hebra actual. No importa cu&#x00e1;ndo llames a <literal>HibernateUtil.currentSession()</literal>, siempre devolver&#x00e1; la misma unidad de trabajo de Hibernate en la misma hebra. Una llamada a <literal>HibernateUtil.closeSession()</literal> termina la unidad de trabajo actualmente asociada a la hebra."
+#. Tag: para
+#: tutorial.xml:370
+#, no-c-format
+msgid ""
+"Place <literal>HibernateUtil.java</literal> in the development source "
+"directory, in a package next to <literal>events</literal>:"
+msgstr ""
+"Esta clase no ólo produce la <literal>SessionFactory</literal> global en su "
+"inicializador static (llamado sólo una vez por la JVM al cargar la clase), "
+"sino que también tiene una variable <literal>ThreadLocal</literal> para "
+"tener la <literal>Session</literal> para la hebra actual. No importa cuándo "
+"llames a <literal>HibernateUtil.currentSession()</literal>, siempre "
+"devolverá la misma unidad de trabajo de Hibernate en la misma hebra. Una "
+"llamada a <literal>HibernateUtil.closeSession()</literal> termina la unidad "
+"de trabajo actualmente asociada a la hebra."
 
-#: index.docbook:370
-msgid "Place <literal>HibernateUtil.java</literal> in the development source directory, in a package next to <literal>events</literal>:"
-msgstr "Aseg&#x00fa;rate de entender el concepto Java de una variable local a una hebra antes de usar esta ayuda. Una clase <literal>HibernateUtil</literal> m&#x00e1;s potente puede encontrarse en <literal>CaveatEmptor</literal>, http://caveatemptor.hibernate.org/, as&#x00ed; como en el libro \"Java Persistence with Hibernate\". Observa que esta clase no es necesaria si despliegas Hibernate en un servidor de aplicaciones J2EE: una <literal>Session</literal> ser&#x00e1; autom&#x00e1;ticamente ligada a la transacci&#x00f3;n JTA actual, y puedes buscar la <literal>SessionFactory</literal> a trav&#x00e9;s de JNDI. Si usas JBoss AS, Hibernate puede ser desplegado como un servicio de sistema manejado y autom&#x00e1;ticamente ligar&#x00e1; la <literal>SessionFactory</literal> a un nombre JNDI."
+#. Tag: programlisting
+#: tutorial.xml:375
+#, no-c-format
+msgid ""
+"<![CDATA[.\n"
+"+lib\n"
+"  <Hibernate and third-party libraries>\n"
+"+src\n"
+"  +events\n"
+"    Event.java\n"
+"    Event.hbm.xml\n"
+"  +util\n"
+"    HibernateUtil.java\n"
+"  hibernate.cfg.xml\n"
+"+data\n"
+"build.xml]]>"
+msgstr ""
 
-#: index.docbook:375
+#. Tag: para
+#: tutorial.xml:377
+#, no-c-format
 msgid ""
-      "<![CDATA[.\n"
-      "+lib\n"
-      "  <Hibernate and third-party libraries>\n"
-      "+src\n"
-      "  +events\n"
-      "    Event.java\n"
-      "    Event.hbm.xml\n"
-      "  +util\n"
-      "    HibernateUtil.java\n"
-      "  hibernate.cfg.xml\n"
-      "+data\n"
-      "build.xml]]>"
-msgstr "Coloca <literal>HibernateUtil.java</literal> en el directorio de fuentes de desarrollo, junto a <literal>Event.java</literal>:"
+"This should again compile without problems. We finally need to configure a "
+"logging system - Hibernate uses commons logging and leaves you the choice "
+"between Log4j and JDK 1.4 logging. Most developers prefer Log4j: copy "
+"<literal>log4j.properties</literal> from the Hibernate distribution (it's in "
+"the <literal>etc/</literal> directory) to your <literal>src</literal> "
+"directory, next to <literal>hibernate.cfg.xml</literal>. Have a look at the "
+"example configuration and change the settings if you like to have more "
+"verbose output. By default, only Hibernate startup message are shown on "
+"stdout."
+msgstr ""
+"Asegúrate de entender el concepto Java de una variable local a una hebra "
+"antes de usar esta ayuda. Una clase <literal>HibernateUtil</literal> más "
+"potente puede encontrarse en <literal>CaveatEmptor</literal>, http://"
+"caveatemptor.hibernate.org/, así como en el libro \"Java Persistence with "
+"Hibernate\". Observa que esta clase no es necesaria si despliegas Hibernate "
+"en un servidor de aplicaciones J2EE: una <literal>Session</literal> será "
+"automáticamente ligada a la transacción JTA actual, y puedes buscar la "
+"<literal>SessionFactory</literal> a través de JNDI. Si usas JBoss AS, "
+"Hibernate puede ser desplegado como un servicio de sistema manejado y "
+"automáticamente ligará la <literal>SessionFactory</literal> a un nombre JNDI."
 
-#: index.docbook:377
-msgid "This should again compile without problems. We finally need to configure a logging system - Hibernate uses commons logging and leaves you the choice between Log4j and JDK 1.4 logging. Most developers prefer Log4j: copy <literal>log4j.properties</literal> from the Hibernate distribution (it's in the <literal>etc/</literal> directory) to your <literal>src</literal> directory, next to <literal>hibernate.cfg.xml</literal>. Have a look at the example configuration and change the settings if you like to have more verbose output. By default, only Hibernate startup message are shown on stdout."
+#. Tag: para
+#: tutorial.xml:387
+#, no-c-format
+msgid ""
+"The tutorial infrastructure is complete - and we are ready to do some real "
+"work with Hibernate."
 msgstr ""
-      "<![CDATA[.\n"
-      "+lib\n"
-      "  <Hibernate and third-party libraries>\n"
-      "+src\n"
-      "  Event.java\n"
-      "  Event.hbm.xml\n"
-      "  HibernateUtil.java\n"
-      "  hibernate.cfg.xml\n"
-      "+data\n"
-      "build.xml]]>"
+"Coloca <literal>HibernateUtil.java</literal> en el directorio de fuentes de "
+"desarrollo, junto a <literal>Event.java</literal>:"
 
-#: index.docbook:387
-msgid "The tutorial infrastructure is complete - and we are ready to do some real work with Hibernate."
-msgstr "Esto tambi&#x00e9;n debe compilar sin problemas. Finalmente necesitamos configurar un sistema de logging (registro). Hibernate usa commons logging y te deja la elecci&#x00f3;n entre Log4J y logging de JDK 1.4. La mayor&#x00ed;a de los desarrolladores prefieren Log4J: copia <literal>log4j.properties</literal> de la distribuci&#x00f3;n de Hibernate (est&#x00e1; en el directorio <literal>etc/</literal>) a tu directorio <literal>src</literal>, junto a <literal>hibernate.cfg.xml</literal>. Echa una mirada a la configuraci&#x00f3;n de ejemplo y cambia los ajustes si te gusta tener una salida m&#x00e1;s verborr&#x00e1;gica. Por defecto, s&#x00f3;lo se muestra el mensaje de arranque de Hibernate en la salida."
-
-#: index.docbook:395
+#. Tag: title
+#: tutorial.xml:395
+#, no-c-format
 msgid "Loading and storing objects"
-msgstr "La infraestructura del tutorial est&#x00e1; completa, y estamos listos para hacer alg&#x00fa;n trabajo real con Hibernate."
+msgstr ""
+"Esto también debe compilar sin problemas. Finalmente necesitamos configurar "
+"un sistema de logging (registro). Hibernate usa commons logging y te deja la "
+"elección entre Log4J y logging de JDK 1.4. La mayoría de los desarrolladores "
+"prefieren Log4J: copia <literal>log4j.properties</literal> de la "
+"distribución de Hibernate (está en el directorio <literal>etc/</literal>) a "
+"tu directorio <literal>src</literal>, junto a <literal>hibernate.cfg.xml</"
+"literal>. Echa una mirada a la configuración de ejemplo y cambia los ajustes "
+"si te gusta tener una salida más verborrágica. Por defecto, sólo se muestra "
+"el mensaje de arranque de Hibernate en la salida."
 
-#: index.docbook:397
-msgid "Finally, we can use Hibernate to load and store objects. We write an <literal>EventManager</literal> class with a <literal>main()</literal> method:"
+#. Tag: para
+#: tutorial.xml:397
+#, no-c-format
+msgid ""
+"Finally, we can use Hibernate to load and store objects. We write an "
+"<literal>EventManager</literal> class with a <literal>main()</literal> "
+"method:"
+msgstr ""
+"La infraestructura del tutorial está completa, y estamos listos para hacer "
+"algún trabajo real con Hibernate."
+
+#. Tag: programlisting
+#: tutorial.xml:402
+#, no-c-format
+msgid ""
+"<![CDATA[package events;\n"
+"import org.hibernate.Session;\n"
+"\n"
+"import java.util.Date;\n"
+"\n"
+"import util.HibernateUtil;\n"
+"\n"
+"public class EventManager {\n"
+"\n"
+"    public static void main(String[] args) {\n"
+"        EventManager mgr = new EventManager();\n"
+"\n"
+"        if (args[0].equals(\"store\")) {\n"
+"            mgr.createAndStoreEvent(\"My Event\", new Date());\n"
+"        }\n"
+"\n"
+"        HibernateUtil.getSessionFactory().close();\n"
+"    }\n"
+"\n"
+"    private void createAndStoreEvent(String title, Date theDate) {\n"
+"\n"
+"        Session session = HibernateUtil.getSessionFactory().getCurrentSession"
+"();\n"
+"\n"
+"        session.beginTransaction();\n"
+"\n"
+"        Event theEvent = new Event();\n"
+"        theEvent.setTitle(title);\n"
+"        theEvent.setDate(theDate);\n"
+"\n"
+"        session.save(theEvent);\n"
+"\n"
+"        session.getTransaction().commit();\n"
+"    }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: tutorial.xml:404
+#, no-c-format
+msgid ""
+"We create a new <literal>Event</literal> object, and hand it over to "
+"Hibernate. Hibernate now takes care of the SQL and executes <literal>INSERT</"
+"literal>s on the database. Let's have a look at the <literal>Session</"
+"literal> and <literal>Transaction</literal>-handling code before we run this."
 msgstr "Cargando y almacenando objetos"
 
-#: index.docbook:402
+#. Tag: para
+#: tutorial.xml:411
+#, no-c-format
 msgid ""
-      "<![CDATA[package events;\n"
-      "import org.hibernate.Session;\n"
-      "\n"
-      "import java.util.Date;\n"
-      "\n"
-      "import util.HibernateUtil;\n"
-      "\n"
-      "public class EventManager {\n"
-      "\n"
-      "    public static void main(String[] args) {\n"
-      "        EventManager mgr = new EventManager();\n"
-      "\n"
-      "        if (args[0].equals(\"store\")) {\n"
-      "            mgr.createAndStoreEvent(\"My Event\", new Date());\n"
-      "        }\n"
-      "\n"
-      "        HibernateUtil.getSessionFactory().close();\n"
-      "    }\n"
-      "\n"
-      "    private void createAndStoreEvent(String title, Date theDate) {\n"
-      "\n"
-      "        Session session = HibernateUtil.getSessionFactory().getCurrentSession();\n"
-      "\n"
-      "        session.beginTransaction();\n"
-      "\n"
-      "        Event theEvent = new Event();\n"
-      "        theEvent.setTitle(title);\n"
-      "        theEvent.setDate(theDate);\n"
-      "\n"
-      "        session.save(theEvent);\n"
-      "\n"
-      "        session.getTransaction().commit();\n"
-      "    }\n"
-      "\n"
-      "}]]>"
-msgstr "Finalmente, podemos usar Hibernate para cargar y almacenar objetos. Escribimos una clase <literal>EventManager</literal> con un m&#x00e9;todo <literal>main()</literal>:"
+"A <literal>Session</literal> is a single unit of work. For now we'll keep "
+"things simple and assume a one-to-one granularity between a Hibernate "
+"<literal>Session</literal> and a database transaction. To shield our code "
+"from the actual underlying transaction system (in this case plain JDBC, but "
+"it could also run with JTA) we use the <literal>Transaction</literal> API "
+"that is available on the Hibernate <literal>Session</literal>."
+msgstr ""
+"Finalmente, podemos usar Hibernate para cargar y almacenar objetos. "
+"Escribimos una clase <literal>EventManager</literal> con un método "
+"<literal>main()</literal>:"
 
-#: index.docbook:404
-msgid "We create a new <literal>Event</literal> object, and hand it over to Hibernate. Hibernate now takes care of the SQL and executes <literal>INSERT</literal>s on the database. Let's have a look at the <literal>Session</literal> and <literal>Transaction</literal>-handling code before we run this."
+#. Tag: para
+#: tutorial.xml:419
+#, no-c-format
+msgid ""
+"What does <literal>sessionFactory.getCurrentSession()</literal> do? First, "
+"you can call it as many times and anywhere you like, once you get hold of "
+"your <literal>SessionFactory</literal> (easy thanks to "
+"<literal>HibernateUtil</literal>). The <literal>getCurrentSession()</"
+"literal> method always returns the \"current\" unit of work. Remember that "
+"we switched the configuration option for this mechanism to \"thread\" in "
+"<literal>hibernate.cfg.xml</literal>? Hence, the current unit of work is "
+"bound to the current Java thread that executes our application. However, "
+"this is not the full picture, you also have to consider scope, when a unit "
+"of work begins and when it ends."
 msgstr ""
-      "<![CDATA[import org.hibernate.Transaction;\n"
-      "import org.hibernate.Session;\n"
-      "\n"
-      "import java.util.Date;\n"
-      "\n"
-      "public class EventManager {\n"
-      "\n"
-      "    public static void main(String[] args) {\n"
-      "        EventManager mgr = new EventManager();\n"
-      "\n"
-      "        if (args[0].equals(\"store\")) {\n"
-      "            mgr.createAndStoreEvent(\"My Event\", new Date());\n"
-      "        }\n"
-      "\n"
-      "        HibernateUtil.sessionFactory.close();\n"
-      "    }\n"
-      "\n"
-      "}]]>"
+"Leemos algunos argumentos de la línea de comandos, y si el primer argumento "
+"es \"store\", creamos y almacenamos un nuevo Event:"
 
-#: index.docbook:411
-msgid "A <literal>Session</literal> is a single unit of work. For now we'll keep things simple and assume a one-to-one granularity between a Hibernate <literal>Session</literal> and a database transaction. To shield our code from the actual underlying transaction system (in this case plain JDBC, but it could also run with JTA) we use the <literal>Transaction</literal> API that is available on the Hibernate <literal>Session</literal>."
-msgstr "Leemos algunos argumentos de la l&#x00ed;nea de comandos, y si el primer argumento es \"store\", creamos y almacenamos un nuevo Event:"
+#. Tag: para
+#: tutorial.xml:430
+#, no-c-format
+msgid ""
+"A <literal>Session</literal> begins when it is first needed, when the first "
+"call to <literal>getCurrentSession()</literal> is made. It is then bound by "
+"Hibernate to the current thread. When the transaction ends, either through "
+"commit or rollback, Hibernate automatically unbinds the <literal>Session</"
+"literal> from the thread and closes it for you. If you call "
+"<literal>getCurrentSession()</literal> again, you get a new "
+"<literal>Session</literal> and can start a new unit of work. This "
+"<emphasis>thread-bound</emphasis> programming model is the most popular way "
+"of using Hibernate, as it allows flexible layering of your code (transaction "
+"demarcation code can be separated from data access code, we'll do this later "
+"in this tutorial)."
+msgstr ""
+"Creamos un nuevo objeto <literal>Event</literal>, y se lo damos a Hibernate. "
+"Hibernate cuida ahora del SQL y ejecuta <literal>INSERT</literal>s en la "
+"base de datos. Echemos una mirada al código de manejo de <literal>Session</"
+"literal> y <literal>Transaction</literal> antes de ejecutar esto."
 
-#: index.docbook:419
-msgid "What does <literal>sessionFactory.getCurrentSession()</literal> do? First, you can call it as many times and anywhere you like, once you get hold of your <literal>SessionFactory</literal> (easy thanks to <literal>HibernateUtil</literal>). The <literal>getCurrentSession()</literal> method always returns the \"current\" unit of work. Remember that we switched the configuration option for this mechanism to \"thread\" in <literal>hibernate.cfg.xml</literal>? Hence, the current unit of work is bound to the current Java thread that executes our application. However, this is not the full picture, you also have to consider scope, when a unit of work begins and when it ends."
+#. Tag: para
+#: tutorial.xml:441
+#, no-c-format
+msgid ""
+"Related to the unit of work scope, should the Hibernate <literal>Session</"
+"literal> be used to execute one or several database operations? The above "
+"example uses one <literal>Session</literal> for one operation. This is pure "
+"coincidence, the example is just not complex enough to show any other "
+"approach. The scope of a Hibernate <literal>Session</literal> is flexible "
+"but you should never design your application to use a new Hibernate "
+"<literal>Session</literal> for <emphasis>every</emphasis> database "
+"operation. So even if you see it a few more times in the following (very "
+"trivial) examples, consider <emphasis>session-per-operation</emphasis> an "
+"anti-pattern. A real (web) application is shown later in this tutorial."
 msgstr ""
-      "<![CDATA[private void createAndStoreEvent(String title, Date theDate) {\n"
-      "    Session session = HibernateUtil.currentSession();\n"
-      "    Transaction tx = session.beginTransaction();\n"
-      "\n"
-      "    Event theEvent = new Event();\n"
-      "    theEvent.setTitle(title);\n"
-      "    theEvent.setDate(theDate);\n"
-      "\n"
-      "    session.save(theEvent);\n"
-      "\n"
-      "    tx.commit();\n"
-      "    HibernateUtil.closeSession();\n"
-      "}]]>"
+"Una <literal>Session</literal> es una sola unidad de trabajo. Podría "
+"sorprenderte que tengamos una API adicional, <literal>Transaction</literal>. "
+"Esto implica que una unidad de trabajo puede ser \"más larga\" que una sola "
+"transacción de base de datos; imagina una unidad de trabajo que se abarca "
+"varios ciclos petición/respuesta HTTP (por ejemplo, un diálogo asistente) en "
+"una aplicación web. Separar las transacciones de base de datos de \"las "
+"unidades de trabajo de la aplicación desde el punto de vista del usuario\" "
+"es uno de los conceptos básicos de diseño de Hibernate. Llamamos una unidad "
+"de trabajo larga <emphasis>Transacción de Aplicación</emphasis>, usualmente "
+"encapsulando varias transacciones de base de datos más cortas. Por ahora "
+"mantendremos las cosas simples y asumiremos una granularidad uno-a-uno entre "
+"una <literal>Session</literal> y una <literal>Transaction</literal>."
 
-#: index.docbook:430
-msgid "A <literal>Session</literal> begins when it is first needed, when the first call to <literal>getCurrentSession()</literal> is made. It is then bound by Hibernate to the current thread. When the transaction ends, either through commit or rollback, Hibernate automatically unbinds the <literal>Session</literal> from the thread and closes it for you. If you call <literal>getCurrentSession()</literal> again, you get a new <literal>Session</literal> and can start a new unit of work. This <emphasis>thread-bound</emphasis> programming model is the most popular way of using Hibernate, as it allows flexible layering of your code (transaction demarcation code can be separated from data access code, we'll do this later in this tutorial)."
-msgstr "Creamos un nuevo objeto <literal>Event</literal>, y se lo damos a Hibernate. Hibernate cuida ahora del SQL y ejecuta <literal>INSERT</literal>s en la base de datos. Echemos una mirada al c&#x00f3;digo de manejo de <literal>Session</literal> y <literal>Transaction</literal> antes de ejecutar esto."
+#. Tag: para
+#: tutorial.xml:452
+#, no-c-format
+msgid ""
+"Have a look at <xref linkend=\"transactions\"/> for more information about "
+"transaction handling and demarcation. We also skipped any error handling and "
+"rollback in the previous example."
+msgstr ""
+"¿Qué es lo que hacen <literal>Transaction.begin()</literal> y <literal>commit"
+"()</literal>? ¿Dónde está el rollback en caso que algo vaya mal? La API de "
+"<literal>Transaction</literal> de Hibernate es opcional realmente, pero la "
+"usamos por conveniencia y portabilidad. Si manejases la transacción de base "
+"de datos por ti mismo (por ejemplo, llamando a <literal>session.connection."
+"commit()</literal>), ligarías el código a un entorno de despliegue "
+"particular, en este JDBC directo no manejado. Estableciendo la fábrica de "
+"<literal>Transaction</literal> en tu configuración de Hibernate puedes "
+"desplegar tu capa de persistencia en cualquier sitio. Echa una mirada al "
+"<xref linkend=\"transactions\"/> para más información sobre manejo y "
+"demarcación de transacciones. Hemos saltado también cualquier manejo de "
+"excepciones y rollback en este ejemplo."
 
-#: index.docbook:441
-msgid "Related to the unit of work scope, should the Hibernate <literal>Session</literal> be used to execute one or several database operations? The above example uses one <literal>Session</literal> for one operation. This is pure coincidence, the example is just not complex enough to show any other approach. The scope of a Hibernate <literal>Session</literal> is flexible but you should never design your application to use a new Hibernate <literal>Session</literal> for <emphasis>every</emphasis> database operation. So even if you see it a few more times in the following (very trivial) examples, consider <emphasis>session-per-operation</emphasis> an anti-pattern. A real (web) application is shown later in this tutorial."
-msgstr "Una <literal>Session</literal> es una sola unidad de trabajo. Podr&#x00ed;a sorprenderte que tengamos una API adicional, <literal>Transaction</literal>. Esto implica que una unidad de trabajo puede ser \"m&#x00e1;s larga\" que una sola transacci&#x00f3;n de base de datos; imagina una unidad de trabajo que se abarca varios ciclos petici&#x00f3;n/respuesta HTTP (por ejemplo, un di&#x00e1;logo asistente) en una aplicaci&#x00f3;n web. Separar las transacciones de base de datos de \"las unidades de trabajo de la aplicaci&#x00f3;n desde el punto de vista del usuario\" es uno de los conceptos b&#x00e1;sicos de dise&#x00f1;o de Hibernate. Llamamos una unidad de trabajo larga <emphasis>Transacci&#x00f3;n de Aplicaci&#x00f3;n</emphasis>, usualmente encapsulando varias transacciones de base de datos m&#x00e1;s cortas. Por ahora mantendremos las cosas simples y asumiremos una granularidad uno-a-uno entre una <literal>Session</literal> y una <literal>Transaction</literal>."
+#. Tag: para
+#: tutorial.xml:458
+#, no-c-format
+msgid ""
+"To run this first routine we have to add a callable target to the Ant build "
+"file:"
+msgstr ""
+"Para ejecutar la primera rutina tenemos que agregar un objetivo llamable al "
+"fichero de construcción de Ant:"
 
-#: index.docbook:452
-msgid "Have a look at <xref linkend=\"transactions\"/> for more information about transaction handling and demarcation. We also skipped any error handling and rollback in the previous example."
-msgstr "¿Qu&#x00e9; es lo que hacen <literal>Transaction.begin()</literal> y <literal>commit()</literal>? ¿D&#x00f3;nde est&#x00e1; el rollback en caso que algo vaya mal? La API de <literal>Transaction</literal> de Hibernate es opcional realmente, pero la usamos por conveniencia y portabilidad. Si manejases la transacci&#x00f3;n de base de datos por ti mismo (por ejemplo, llamando a <literal>session.connection.commit()</literal>), ligar&#x00ed;as el c&#x00f3;digo a un entorno de despliegue particular, en este JDBC directo no manejado. Estableciendo la f&#x00e1;brica de <literal>Transaction</literal> en tu configuraci&#x00f3;n de Hibernate puedes desplegar tu capa de persistencia en cualquier sitio. Echa una mirada al <xref linkend=\"transactions\"/> para m&#x00e1;s informaci&#x00f3;n sobre manejo y demarcaci&#x00f3;n de transacciones. Hemos saltado tambi&#x00e9;n cualquier manejo de excepciones y rollback en este ejemplo."
+#. Tag: programlisting
+#: tutorial.xml:462
+#, no-c-format
+msgid ""
+"<![CDATA[<target name=\"run\" depends=\"compile\">\n"
+"    <java fork=\"true\" classname=\"events.EventManager\" classpathref="
+"\"libraries\">\n"
+"        <classpath path=\"${targetdir}\"/>\n"
+"        <arg value=\"${action}\"/>\n"
+"    </java>\n"
+"</target>]]>"
+msgstr ""
 
-#: index.docbook:458
-msgid "To run this first routine we have to add a callable target to the Ant build file:"
-msgstr "Para ejecutar la primera rutina tenemos que agregar un objetivo llamable al fichero de construcci&#x00f3;n de Ant:"
-
-#: index.docbook:462
+#. Tag: para
+#: tutorial.xml:464
+#, no-c-format
 msgid ""
-      "<![CDATA[<target name=\"run\" depends=\"compile\">\n"
-      "    <java fork=\"true\" classname=\"events.EventManager\" classpathref=\"libraries\">\n"
-      "        <classpath path=\"${targetdir}\"/>\n"
-      "        <arg value=\"${action}\"/>\n"
-      "    </java>\n"
-      "</target>]]>"
+"The value of the <literal>action</literal> argument is set on the command "
+"line when calling the target:"
 msgstr ""
-      "<![CDATA[<target name=\"run\" depends=\"compile\">\n"
-      "    <java fork=\"true\" classname=\"EventManager\" classpathref=\"libraries\">\n"
-      "        <classpath path=\"${targetdir}\"/>\n"
-      "        <arg value=\"${action}\"/>\n"
-      "    </java>\n"
-      "</target>]]>"
+"El valor del argumento <literal>action</literal> es establecido por línea de "
+"comandos al llamar al objetivo:"
 
-#: index.docbook:464
-msgid "The value of the <literal>action</literal> argument is set on the command line when calling the target:"
-msgstr "El valor del argumento <literal>action</literal> es establecido por l&#x00ed;nea de comandos al llamar al objetivo:"
-
-#: index.docbook:469
+#. Tag: programlisting
+#: tutorial.xml:469
+#, no-c-format
 msgid "<![CDATA[C:\\hibernateTutorial\\>ant run -Daction=store]]>"
-msgstr "<![CDATA[C:\\hibernateTutorial\\>ant run -Daction=store]]>"
+msgstr ""
 
-#: index.docbook:471
-msgid "You should see, after compilation, Hibernate starting up and, depending on your configuration, lots of log output. At the end you will find the following line:"
-msgstr "Debes ver, despu&#x00e9;s de la compilaci&#x00f3;n, a Hibernate arrancando y, dependiendo de tu configuraci&#x00f3;n mucha salida de registro (log). Al final encontrar&#x00e1;s la siguiente l&#x00ed;nea:"
+#. Tag: para
+#: tutorial.xml:471
+#, no-c-format
+msgid ""
+"You should see, after compilation, Hibernate starting up and, depending on "
+"your configuration, lots of log output. At the end you will find the "
+"following line:"
+msgstr ""
+"Debes ver, después de la compilación, a Hibernate arrancando y, dependiendo "
+"de tu configuración mucha salida de registro (log). Al final encontrarás la "
+"siguiente línea:"
 
-#: index.docbook:476
-msgid "<![CDATA[[java] Hibernate: insert into EVENTS (EVENT_DATE, title, EVENT_ID) values (?, ?, ?)]]>"
-msgstr "<![CDATA[[java] Hibernate: insert into EVENTS (EVENT_DATE, title, EVENT_ID) values (?, ?, ?)]]>"
+#. Tag: programlisting
+#: tutorial.xml:476
+#, no-c-format
+msgid ""
+"<![CDATA[[java] Hibernate: insert into EVENTS (EVENT_DATE, title, EVENT_ID) "
+"values (?, ?, ?)]]>"
+msgstr ""
 
-#: index.docbook:478
-msgid "This is the <literal>INSERT</literal> executed by Hibernate, the question marks represent JDBC bind parameters. To see the values bound as arguments, or to reduce the verbosity of the log, check your <literal>log4j.properties</literal>."
-msgstr "Esta es la <literal>INSERT</literal> ejecutada por Hibernate, los signos de preguntas representan par&#x00e1;metros de ligado JDBC. Para ver los valores ligados como argumentos, o para reducir la verborragia del registro, chequea tu <literal>log4j.properties</literal>."
+#. Tag: para
+#: tutorial.xml:478
+#, no-c-format
+msgid ""
+"This is the <literal>INSERT</literal> executed by Hibernate, the question "
+"marks represent JDBC bind parameters. To see the values bound as arguments, "
+"or to reduce the verbosity of the log, check your <literal>log4j.properties</"
+"literal>."
+msgstr ""
+"Esta es la <literal>INSERT</literal> ejecutada por Hibernate, los signos de "
+"preguntas representan parámetros de ligado JDBC. Para ver los valores "
+"ligados como argumentos, o para reducir la verborragia del registro, chequea "
+"tu <literal>log4j.properties</literal>."
 
-#: index.docbook:484
-msgid "Now we'd like to list stored events as well, so we add an option to the main method:"
-msgstr "Ahora quisi&#x00e9;ramos listar acontecimientos almacenados tambi&#x00e9;n, as&#x00ed; que agregamos una opci&#x00f3;n al m&#x00e9;todo principal:"
+#. Tag: para
+#: tutorial.xml:484
+#, no-c-format
+msgid ""
+"Now we'd like to list stored events as well, so we add an option to the main "
+"method:"
+msgstr ""
+"Ahora quisiéramos listar acontecimientos almacenados también, así que "
+"agregamos una opción al método principal:"
 
-#: index.docbook:488
+#. Tag: programlisting
+#: tutorial.xml:488
+#, no-c-format
 msgid ""
-      "<![CDATA[if (args[0].equals(\"store\")) {\n"
-      "    mgr.createAndStoreEvent(\"My Event\", new Date());\n"
-      "}\n"
-      "else if (args[0].equals(\"list\")) {\n"
-      "    List events = mgr.listEvents();\n"
-      "    for (int i = 0; i < events.size(); i++) {\n"
-      "        Event theEvent = (Event) events.get(i);\n"
-      "        System.out.println(\"Event: \" + theEvent.getTitle() +\n"
-      "                           \" Time: \" + theEvent.getDate());\n"
-      "    }\n"
-      "}]]>"
+"<![CDATA[if (args[0].equals(\"store\")) {\n"
+"    mgr.createAndStoreEvent(\"My Event\", new Date());\n"
+"}\n"
+"else if (args[0].equals(\"list\")) {\n"
+"    List events = mgr.listEvents();\n"
+"    for (int i = 0; i < events.size(); i++) {\n"
+"        Event theEvent = (Event) events.get(i);\n"
+"        System.out.println(\"Event: \" + theEvent.getTitle() +\n"
+"                           \" Time: \" + theEvent.getDate());\n"
+"    }\n"
+"}]]>"
 msgstr ""
-      "<![CDATA[if (args[0].equals(\"store\")) {\n"
-      "    mgr.createAndStoreEvent(\"My Event\", new Date());\n"
-      "}\n"
-      "else if (args[0].equals(\"list\")) {\n"
-      "    List events = mgr.listEvents();\n"
-      "    for (int i = 0; i < events.size(); i++) {\n"
-      "        Event theEvent = (Event) events.get(i);\n"
-      "        System.out.println(\"Event: \" + theEvent.getTitle() +\n"
-      "                           \" Time: \" + theEvent.getDate());\n"
-      "    }\n"
-      "}]]>"
 
-#: index.docbook:490
+#. Tag: para
+#: tutorial.xml:490
+#, no-c-format
 msgid "We also add a new <literal>listEvents() method</literal>:"
-msgstr "Agregamos tambi&#x00e9;n un nuevo m&#x00e9;todo <literal>listEvents()</literal>:"
+msgstr "Agregamos también un nuevo método <literal>listEvents()</literal>:"
 
-#: index.docbook:494
+#. Tag: programlisting
+#: tutorial.xml:494
+#, no-c-format
 msgid ""
-      "<![CDATA[private List listEvents() {\n"
-      "\n"
-      "    Session session = HibernateUtil.getSessionFactory().getCurrentSession();\n"
-      "\n"
-      "    session.beginTransaction();\n"
-      "\n"
-      "    List result = session.createQuery(\"from Event\").list();\n"
-      "\n"
-      "    session.getTransaction().commit();\n"
-      "\n"
-      "    return result;\n"
-      "}]]>"
+"<![CDATA[private List listEvents() {\n"
+"\n"
+"    Session session = HibernateUtil.getSessionFactory().getCurrentSession"
+"();\n"
+"\n"
+"    session.beginTransaction();\n"
+"\n"
+"    List result = session.createQuery(\"from Event\").list();\n"
+"\n"
+"    session.getTransaction().commit();\n"
+"\n"
+"    return result;\n"
+"}]]>"
 msgstr ""
-      "<![CDATA[private List listEvents() {\n"
-      "    Session session = HibernateUtil.currentSession();\n"
-      "    Transaction tx = session.beginTransaction();\n"
-      "\n"
-      "    List result = session.createQuery(\"from Event\").list();\n"
-      "\n"
-      "    tx.commit();\n"
-      "    session.close();\n"
-      "\n"
-      "    return result;\n"
-      "}]]>"
 
-#: index.docbook:496
-msgid "What we do here is use an HQL (Hibernate Query Language) query to load all existing <literal>Event</literal> objects from the database. Hibernate will generate the appropriate SQL, send it to the database and populate <literal>Event</literal> objects with the data. You can create more complex queries with HQL, of course."
-msgstr "Lo que hacemos aqu&#x00ed; es usar una consulta HQL (Lenguaje de Consulta de Hibernate o Hibernate Query Language) para cargar todos los objetos <literal>Event</literal> existentes de la base de datos. Hibernate generar&#x00e1; el SQL apropiado, lo enviar&#x00e1; a la base de datosy poblar&#x00e1; los objetos <literal>Event</literal> con datos. Puedes, por supuesto, crear consultas m&#x00e1;s complejas con HQL."
+#. Tag: para
+#: tutorial.xml:496
+#, no-c-format
+msgid ""
+"What we do here is use an HQL (Hibernate Query Language) query to load all "
+"existing <literal>Event</literal> objects from the database. Hibernate will "
+"generate the appropriate SQL, send it to the database and populate "
+"<literal>Event</literal> objects with the data. You can create more complex "
+"queries with HQL, of course."
+msgstr ""
+"Lo que hacemos aquí es usar una consulta HQL (Lenguaje de Consulta de "
+"Hibernate o Hibernate Query Language) para cargar todos los objetos "
+"<literal>Event</literal> existentes de la base de datos. Hibernate generará "
+"el SQL apropiado, lo enviará a la base de datosy poblará los objetos "
+"<literal>Event</literal> con datos. Puedes, por supuesto, crear consultas "
+"más complejas con HQL."
 
-#: index.docbook:503
+#. Tag: para
+#: tutorial.xml:503
+#, no-c-format
 msgid "Now, to execute and test all of this, follow these steps:"
-msgstr "Si ahora llamas a Ant con <literal>-Daction=list</literal>, debes ver los eventos que has almacenado hasta ahora. Puede sorprenderte que esto no funcione, al menos si has seguido este tutorial paso por paso; el resultado siempre estar&#x00e1; vac&#x00ed;o. La razon de esto es la opci&#x00f3;n <literal>hbm2ddl.auto</literal> en la configuraci&#x00f3;n de Hibernate: Hibernate recrear&#x00e1; la base de datos en cada ejecuci&#x00f3;n. Deshabil&#x00ed;tala quitando la opci&#x00f3;n, y ver&#x00e1;s resultados en tu listado despu&#x00e9;s que llames a la acci&#x00f3;n <literal>store</literal> unas cuantas veces. La generaci&#x00f3;n y exportaci&#x00f3;n de esquema es &#x00fa;til mayormente en testeo unitario."
+msgstr "Now, to execute and test all of this, follow these steps:"
 
-#: index.docbook:509
-msgid "Run <literal>ant run -Daction=store</literal> to store something into the database and, of course, to generate the database schema before through hbm2ddl."
-msgstr "Part 2 - Mapeando asociaciones"
+#. Tag: para
+#: tutorial.xml:509
+#, no-c-format
+msgid ""
+"Run <literal>ant run -Daction=store</literal> to store something into the "
+"database and, of course, to generate the database schema before through "
+"hbm2ddl."
+msgstr ""
+"Run <literal>ant run -Daction=store</literal> to store something into the "
+"database and, of course, to generate the database schema before through "
+"hbm2ddl."
 
-#: index.docbook:515
-msgid "Now disable hbm2ddl by commenting out the property in your <literal>hibernate.cfg.xml</literal> file. Usually you only leave it turned on in continous unit testing, but another run of hbm2ddl would <emphasis>drop</emphasis> everything you have stored - the <literal>create</literal> configuration setting actually translates into \"drop all tables from the schema, then re-create all tables, when the SessionFactory is build\"."
-msgstr "Hemos mapeado un clase de entidad persistente a una tabla. Construyamos sobre esto y agreguemos algunas asociaciones de clase. Primero agregaremos personas a nuestra aplicaci&#x00f3;n, y almacenaremos una lista de eventos en las que participan."
+#. Tag: para
+#: tutorial.xml:515
+#, no-c-format
+msgid ""
+"Now disable hbm2ddl by commenting out the property in your "
+"<literal>hibernate.cfg.xml</literal> file. Usually you only leave it turned "
+"on in continous unit testing, but another run of hbm2ddl would "
+"<emphasis>drop</emphasis> everything you have stored - the <literal>create</"
+"literal> configuration setting actually translates into \"drop all tables "
+"from the schema, then re-create all tables, when the SessionFactory is build"
+"\"."
+msgstr ""
+"Now disable hbm2ddl by commenting out the property in your "
+"<literal>hibernate.cfg.xml</literal> file. Usually you only leave it turned "
+"on in continous unit testing, but another run of hbm2ddl would "
+"<emphasis>drop</emphasis> everything you have stored - the <literal>create</"
+"literal> configuration setting actually translates into \"drop all tables "
+"from the schema, then re-create all tables, when the SessionFactory is build"
+"\"."
 
-#: index.docbook:525
-msgid "If you now call Ant with <literal>-Daction=list</literal>, you should see the events you have stored so far. You can of course also call the <literal>store</literal> action a few times more."
-msgstr "Mapeando la clase Person"
+#. Tag: para
+#: tutorial.xml:525
+#, no-c-format
+msgid ""
+"If you now call Ant with <literal>-Daction=list</literal>, you should see "
+"the events you have stored so far. You can of course also call the "
+"<literal>store</literal> action a few times more."
+msgstr ""
+"If you now call Ant with <literal>-Daction=list</literal>, you should see "
+"the events you have stored so far. You can of course also call the "
+"<literal>store</literal> action a few times more."
 
-#: index.docbook:531
-msgid "Note: Most new Hibernate users fail at this point and we see questions about <emphasis>Table not found</emphasis> error messages regularly. However, if you follow the steps outlined above you will not have this problem, as hbm2ddl creates the database schema on the first run, and subsequent application restarts will use this schema. If you change the mapping and/or database schema, you have to re-enable hbm2ddl once again."
-msgstr "El primer corte de la clase <literal>Person</literal> es simple:"
+#. Tag: para
+#: tutorial.xml:531
+#, no-c-format
+msgid ""
+"Note: Most new Hibernate users fail at this point and we see questions about "
+"<emphasis>Table not found</emphasis> error messages regularly. However, if "
+"you follow the steps outlined above you will not have this problem, as "
+"hbm2ddl creates the database schema on the first run, and subsequent "
+"application restarts will use this schema. If you change the mapping and/or "
+"database schema, you have to re-enable hbm2ddl once again."
+msgstr ""
+"Note: Most new Hibernate users fail at this point and we see questions about "
+"<emphasis>Table not found</emphasis> error messages regularly. However, if "
+"you follow the steps outlined above you will not have this problem, as "
+"hbm2ddl creates the database schema on the first run, and subsequent "
+"application restarts will use this schema. If you change the mapping and/or "
+"database schema, you have to re-enable hbm2ddl once again."
 
-#: index.docbook:544
+#. Tag: title
+#: tutorial.xml:544
+#, no-c-format
 msgid "Part 2 - Mapping associations"
+msgstr "Part 2 - Mapeando asociaciones"
+
+#. Tag: para
+#: tutorial.xml:546
+#, no-c-format
+msgid ""
+"We mapped a persistent entity class to a table. Let's build on this and add "
+"some class associations. First we'll add people to our application, and "
+"store a list of events they participate in."
 msgstr ""
-      "<![CDATA[public class Person {\n"
-      "\n"
-      "    private Long id;\n"
-      "    private int age;\n"
-      "    private String firstname;\n"
-      "    private String lastname;\n"
-      "\n"
-      "    Person() {}\n"
-      "\n"
-      "    // Accessor methods for all properties, private setter for 'id'\n"
-      "\n"
-      "}]]>"
+"Hemos mapeado un clase de entidad persistente a una tabla. Construyamos "
+"sobre esto y agreguemos algunas asociaciones de clase. Primero agregaremos "
+"personas a nuestra aplicación, y almacenaremos una lista de eventos en las "
+"que participan."
 
-#: index.docbook:546
-msgid "We mapped a persistent entity class to a table. Let's build on this and add some class associations. First we'll add people to our application, and store a list of events they participate in."
-msgstr "Crea un fichero de mapeo llamado <literal>Person.hbm.xml</literal>:"
-
-#: index.docbook:552
+#. Tag: title
+#: tutorial.xml:552
+#, no-c-format
 msgid "Mapping the Person class"
-msgstr ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "\n"
-      "    <class name=\"Person\" table=\"PERSON\">\n"
-      "        <id name=\"id\" column=\"PERSON_ID\">\n"
-      "            <generator class=\"increment\"/>\n"
-      "        </id>\n"
-      "        <property name=\"age\"/>\n"
-      "        <property name=\"firstname\"/>\n"
-      "        <property name=\"lastname\"/>\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
+msgstr "Mapeando la clase Person"
 
-#: index.docbook:554
+#. Tag: para
+#: tutorial.xml:554
+#, no-c-format
 msgid "The first cut of the <literal>Person</literal> class is simple:"
-msgstr "Finalmente, agrega el nuevo mapeo a la configuraci&#x00f3;n de Hibernate:"
+msgstr "El primer corte de la clase <literal>Person</literal> es simple:"
 
-#: index.docbook:558
+#. Tag: programlisting
+#: tutorial.xml:558
+#, no-c-format
 msgid ""
-      "<![CDATA[package events;\n"
-      "\n"
-      "public class Person {\n"
-      "\n"
-      "    private Long id;\n"
-      "    private int age;\n"
-      "    private String firstname;\n"
-      "    private String lastname;\n"
-      "\n"
-      "    public Person() {}\n"
-      "\n"
-      "    // Accessor methods for all properties, private setter for 'id'\n"
-      "\n"
-      "}]]>"
+"<![CDATA[package events;\n"
+"\n"
+"public class Person {\n"
+"\n"
+"    private Long id;\n"
+"    private int age;\n"
+"    private String firstname;\n"
+"    private String lastname;\n"
+"\n"
+"    public Person() {}\n"
+"\n"
+"    // Accessor methods for all properties, private setter for 'id'\n"
+"\n"
+"}]]>"
 msgstr ""
-      "<![CDATA[        <mapping resource=\"Event.hbm.xml\"/>\n"
-      "        <mapping resource=\"Person.hbm.xml\"/>\n"
-      "]]>"
 
-#: index.docbook:560
-msgid "Create a new mapping file called <literal>Person.hbm.xml</literal> (don't forget the DTD reference at the top):"
-msgstr "Crearemos ahora una asociaci&#x00f3;n entre estas dos entidades. Obviamente, las personas pueden participar en eventos, y los eventos tienen participantes. Las cuestiones de dise&#x00f1;o con que tenemos que tratar son: direccionalidad, multiplicidad y comportamiento de colecci&#x00f3;n."
+#. Tag: para
+#: tutorial.xml:560
+#, no-c-format
+msgid ""
+"Create a new mapping file called <literal>Person.hbm.xml</literal> (don't "
+"forget the DTD reference at the top):"
+msgstr "Crea un fichero de mapeo llamado <literal>Person.hbm.xml</literal>:"
 
-#: index.docbook:565
+#. Tag: programlisting
+#: tutorial.xml:565
+#, no-c-format
 msgid ""
-      "<![CDATA[<hibernate-mapping>\n"
-      "\n"
-      "    <class name=\"events.Person\" table=\"PERSON\">\n"
-      "        <id name=\"id\" column=\"PERSON_ID\">\n"
-      "            <generator class=\"native\"/>\n"
-      "        </id>\n"
-      "        <property name=\"age\"/>\n"
-      "        <property name=\"firstname\"/>\n"
-      "        <property name=\"lastname\"/>\n"
-      "    </class>\n"
-      "\n"
-      "</hibernate-mapping>]]>"
-msgstr "Una asociaci&#x00f3;n unidireccional basada en Set"
+"<![CDATA[<hibernate-mapping>\n"
+"\n"
+"    <class name=\"events.Person\" table=\"PERSON\">\n"
+"        <id name=\"id\" column=\"PERSON_ID\">\n"
+"            <generator class=\"native\"/>\n"
+"        </id>\n"
+"        <property name=\"age\"/>\n"
+"        <property name=\"firstname\"/>\n"
+"        <property name=\"lastname\"/>\n"
+"    </class>\n"
+"\n"
+"</hibernate-mapping>]]>"
+msgstr ""
 
-#: index.docbook:567
+#. Tag: para
+#: tutorial.xml:567
+#, no-c-format
 msgid "Finally, add the new mapping to Hibernate's configuration:"
-msgstr "Agregaremos una colecci&#x00f3;n de eventos a la clase <literal>Person</literal>. De esta forma podemos navegar facilmente a los eventos de una persona en particular, sin ejecutar una consulta expl&#x00ed;cita, llamando a <literal>aPerson.getEvents()</literal>. Usamos una colecci&#x00f3;n Java, un <literal>Set</literal>, porque la colecci&#x00f3;n no contendr&#x00e1; elementos duplicados y el ordenamiento no nos es relevante."
+msgstr "Finalmente, agrega el nuevo mapeo a la configuración de Hibernate:"
 
-#: index.docbook:571
+#. Tag: programlisting
+#: tutorial.xml:571
+#, no-c-format
 msgid ""
-      "<![CDATA[<mapping resource=\"events/Event.hbm.xml\"/>\n"
-      "<mapping resource=\"events/Person.hbm.xml\"/>]]>"
-msgstr "Hasta ahora hemos dise&#x00f1;ado asociaciones unidireccionales multivaluadas, implementadas con un <literal>Set</literal>. Escribamos el c&#x00f3;digo para esto en las clases Java y luego lo mapeemos:"
+"<![CDATA[<mapping resource=\"events/Event.hbm.xml\"/>\n"
+"<mapping resource=\"events/Person.hbm.xml\"/>]]>"
+msgstr ""
 
-#: index.docbook:573
-msgid "We'll now create an association between these two entities. Obviously, persons can participate in events, and events have participants. The design questions we have to deal with are: directionality, multiplicity, and collection behavior."
+#. Tag: para
+#: tutorial.xml:573
+#, no-c-format
+msgid ""
+"We'll now create an association between these two entities. Obviously, "
+"persons can participate in events, and events have participants. The design "
+"questions we have to deal with are: directionality, multiplicity, and "
+"collection behavior."
 msgstr ""
-      "<![CDATA[public class Person {\n"
-      "\n"
-      "    private Set events = new HashSet();\n"
-      "\n"
-      "    public Set getEvents() {\n"
-      "        return events;\n"
-      "    }\n"
-      "\n"
-      "    public void setEvents(Set events) {\n"
-      "        this.events = events;\n"
-      "    }\n"
-      "}]]>"
+"Crearemos ahora una asociación entre estas dos entidades. Obviamente, las "
+"personas pueden participar en eventos, y los eventos tienen participantes. "
+"Las cuestiones de diseño con que tenemos que tratar son: direccionalidad, "
+"multiplicidad y comportamiento de colección."
 
-#: index.docbook:583
+#. Tag: title
+#: tutorial.xml:583
+#, no-c-format
 msgid "A unidirectional Set-based association"
-msgstr "Antes que mapeemos esta asociaci&#x00f3;n, piensa sobre el otro lado. Claramente, podemos mantener esto solamente unidireccional. O podemos crear otra colecci&#x00f3;n en el <literal>Event</literal>, si queremos ser capaces de navegarlos bidireccionalmente; por ejemplo, <literal>anEvent.getParticipants()</literal>. Esta es una elecci&#x00f3;n de dise&#x00f1;o que recae en ti, pero lo que est&#x00e1; claro de esta discusi&#x00f3;n es la multiplicidad de la asociaci&#x00f3;n: \"multi\" valuada a ambos lados, llamamos a esto una asociaci&#x00f3;n <emphasis>muchos-a-muchos</emphasis>. Por lo tanto, usamos un mapeo many-to-many de Hibernate:"
+msgstr "Una asociación unidireccional basada en Set"
 
-#: index.docbook:585
-msgid "We'll add a collection of events to the <literal>Person</literal> class. That way we can easily navigate to the events for a particular person, without executing an explicit query - by calling <literal>aPerson.getEvents()</literal>. We use a Java collection, a <literal>Set</literal>, because the collection will not contain duplicate elements and the ordering is not relevant for us."
+#. Tag: para
+#: tutorial.xml:585
+#, no-c-format
+msgid ""
+"We'll add a collection of events to the <literal>Person</literal> class. "
+"That way we can easily navigate to the events for a particular person, "
+"without executing an explicit query - by calling <literal>aPerson.getEvents()"
+"</literal>. We use a Java collection, a <literal>Set</literal>, because the "
+"collection will not contain duplicate elements and the ordering is not "
+"relevant for us."
 msgstr ""
-      "<![CDATA[<class name=\"Person\" table=\"PERSON\">\n"
-      "    <id name=\"id\" column=\"PERSON_ID\">\n"
-      "        <generator class=\"increment\"/>\n"
-      "    </id>\n"
-      "    <property name=\"age\"/>\n"
-      "    <property name=\"firstname\"/>\n"
-      "    <property name=\"lastname\"/>\n"
-      "\n"
-      "    <set name=\"events\" table=\"PERSON_EVENT\">\n"
-      "        <key column=\"PERSON_ID\"/>\n"
-      "        <many-to-many column=\"EVENT_ID\" class=\"Event\"/>\n"
-      "    </set>\n"
-      "\n"
-      "</class>]]>"
+"Agregaremos una colección de eventos a la clase <literal>Person</literal>. "
+"De esta forma podemos navegar facilmente a los eventos de una persona en "
+"particular, sin ejecutar una consulta explícita, llamando a <literal>aPerson."
+"getEvents()</literal>. Usamos una colección Java, un <literal>Set</literal>, "
+"porque la colección no contendrá elementos duplicados y el ordenamiento no "
+"nos es relevante."
 
-#: index.docbook:592
-msgid "We need a unidirectional, many-valued associations, implemented with a <literal>Set</literal>. Let's write the code for this in the Java classes and then map it:"
-msgstr "Hibernate soporta todo tipo de mapeos de colecci&#x00f3;n, siendo el m&#x00e1;s com&#x00fa;n un <literal>&lt;set&gt;</literal>. Para una asociaci&#x00f3;n muchos-a-muchos (o relaci&#x00f3;n de entidad <emphasis>n:m</emphasis>), se necesita una tabla de asociaci&#x00f3;n. Cada fila en esta tabla representa un enlace entre una persona y un evento. Esta tabla se configura con el atributo <literal>table</literal> del elemento <literal>set</literal>. El nombre de la columna identificadora en la asociaci&#x00f3;n, para el lado de la persona, se define con el elemento <literal>&lt;key&gt;</literal>. El nombre de columna para el lado del evento se define con el atributo <literal>column</literal> del <literal>&lt;many-to-many&gt;</literal>. Tambi&#x00e9;n tienes que decirle a Hibernate la clase de los objetos en tu colecci&#x00f3;n (correcto: la clase del otro lado de la colecci&#x00f3;n de referencias)."
+#. Tag: para
+#: tutorial.xml:592
+#, no-c-format
+msgid ""
+"We need a unidirectional, many-valued associations, implemented with a "
+"<literal>Set</literal>. Let's write the code for this in the Java classes "
+"and then map it:"
+msgstr ""
+"Hasta ahora hemos diseñado asociaciones unidireccionales multivaluadas, "
+"implementadas con un <literal>Set</literal>. Escribamos el código para esto "
+"en las clases Java y luego lo mapeemos:"
 
-#: index.docbook:597
+#. Tag: programlisting
+#: tutorial.xml:597
+#, no-c-format
 msgid ""
-      "<![CDATA[public class Person {\n"
-      "\n"
-      "    private Set events = new HashSet();\n"
-      "\n"
-      "    public Set getEvents() {\n"
-      "        return events;\n"
-      "    }\n"
-      "\n"
-      "    public void setEvents(Set events) {\n"
-      "        this.events = events;\n"
-      "    }\n"
-      "}]]>"
-msgstr "El esquema de base de datos para este mapeo es, por lo tanto:"
+"<![CDATA[public class Person {\n"
+"\n"
+"    private Set events = new HashSet();\n"
+"\n"
+"    public Set getEvents() {\n"
+"        return events;\n"
+"    }\n"
+"\n"
+"    public void setEvents(Set events) {\n"
+"        this.events = events;\n"
+"    }\n"
+"}]]>"
+msgstr ""
 
-#: index.docbook:599
-msgid "Before we map this association, think about the other side. Clearly, we could just keep this unidirectional. Or, we could create another collection on the <literal>Event</literal>, if we want to be able to navigate it bi-directional, i.e. <literal>anEvent.getParticipants()</literal>. This is not necessary, from a functional perspective. You could always execute an explicit query to retrieve the participants for a particular event. This is a design choice left to you, but what is clear from this discussion is the multiplicity of the association: \"many\" valued on both sides, we call this a <emphasis>many-to-many</emphasis> association. Hence, we use Hibernate's many-to-many mapping:"
+#. Tag: para
+#: tutorial.xml:599
+#, no-c-format
+msgid ""
+"Before we map this association, think about the other side. Clearly, we "
+"could just keep this unidirectional. Or, we could create another collection "
+"on the <literal>Event</literal>, if we want to be able to navigate it bi-"
+"directional, i.e. <literal>anEvent.getParticipants()</literal>. This is not "
+"necessary, from a functional perspective. You could always execute an "
+"explicit query to retrieve the participants for a particular event. This is "
+"a design choice left to you, but what is clear from this discussion is the "
+"multiplicity of the association: \"many\" valued on both sides, we call this "
+"a <emphasis>many-to-many</emphasis> association. Hence, we use Hibernate's "
+"many-to-many mapping:"
 msgstr ""
-      "<![CDATA[\n"
-      "    _____________        __________________\n"
-      "   |             |      |                  |       _____________\n"
-      "   |   EVENTS    |      |   PERSON_EVENT   |      |             |\n"
-      "   |_____________|      |__________________|      |    PERSON   |\n"
-      "   |             |      |                  |      |_____________|\n"
-      "   | *EVENT_ID   | <--> | *EVENT_ID        |      |             |\n"
-      "   |  EVENT_DATE |      | *PERSON_ID       | <--> | *PERSON_ID  |\n"
-      "   |  TITLE      |      |__________________|      |  AGE        |\n"
-      "   |_____________|                                |  FIRSTNAME  |\n"
-      "                                                  |  LASTNAME   |\n"
-      "                                                  |_____________|\n"
-      " ]]>"
+"Antes que mapeemos esta asociación, piensa sobre el otro lado. Claramente, "
+"podemos mantener esto solamente unidireccional. O podemos crear otra "
+"colección en el <literal>Event</literal>, si queremos ser capaces de "
+"navegarlos bidireccionalmente; por ejemplo, <literal>anEvent.getParticipants"
+"()</literal>. Esta es una elección de diseño que recae en ti, pero lo que "
+"está claro de esta discusión es la multiplicidad de la asociación: \"multi\" "
+"valuada a ambos lados, llamamos a esto una asociación <emphasis>muchos-a-"
+"muchos</emphasis>. Por lo tanto, usamos un mapeo many-to-many de Hibernate:"
 
-#: index.docbook:610
+#. Tag: programlisting
+#: tutorial.xml:610
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"events.Person\" table=\"PERSON\">\n"
-      "    <id name=\"id\" column=\"PERSON_ID\">\n"
-      "        <generator class=\"native\"/>\n"
-      "    </id>\n"
-      "    <property name=\"age\"/>\n"
-      "    <property name=\"firstname\"/>\n"
-      "    <property name=\"lastname\"/>\n"
-      "\n"
-      "    <set name=\"events\" table=\"PERSON_EVENT\">\n"
-      "        <key column=\"PERSON_ID\"/>\n"
-      "        <many-to-many column=\"EVENT_ID\" class=\"events.Event\"/>\n"
-      "    </set>\n"
-      "\n"
-      "</class>]]>"
-msgstr "Trabajando la asociaci&#x00f3;n"
+"<![CDATA[<class name=\"events.Person\" table=\"PERSON\">\n"
+"    <id name=\"id\" column=\"PERSON_ID\">\n"
+"        <generator class=\"native\"/>\n"
+"    </id>\n"
+"    <property name=\"age\"/>\n"
+"    <property name=\"firstname\"/>\n"
+"    <property name=\"lastname\"/>\n"
+"\n"
+"    <set name=\"events\" table=\"PERSON_EVENT\">\n"
+"        <key column=\"PERSON_ID\"/>\n"
+"        <many-to-many column=\"EVENT_ID\" class=\"events.Event\"/>\n"
+"    </set>\n"
+"\n"
+"</class>]]>"
+msgstr ""
 
-#: index.docbook:612
-msgid "Hibernate supports all kinds of collection mappings, a <literal>&lt;set&gt;</literal> being most common. For a many-to-many association (or <emphasis>n:m</emphasis> entity relationship), an association table is needed. Each row in this table represents a link between a person and an event. The table name is configured with the <literal>table</literal> attribute of the <literal>set</literal> element. The identifier column name in the association, for the person's side, is defined with the <literal>&lt;key&gt;</literal> element, the column name for the event's side with the <literal>column</literal> attribute of the <literal>&lt;many-to-many&gt;</literal>. You also have to tell Hibernate the class of the objects in your collection (correct: the class on the other side of the collection of references)."
-msgstr "Traigamos alguna gente y eventos juntos en un nuevo m&#x00e9;todo en <literal>EventManager</literal>:"
+#. Tag: para
+#: tutorial.xml:612
+#, no-c-format
+msgid ""
+"Hibernate supports all kinds of collection mappings, a <literal>&lt;set&gt;</"
+"literal> being most common. For a many-to-many association (or <emphasis>n:"
+"m</emphasis> entity relationship), an association table is needed. Each row "
+"in this table represents a link between a person and an event. The table "
+"name is configured with the <literal>table</literal> attribute of the "
+"<literal>set</literal> element. The identifier column name in the "
+"association, for the person's side, is defined with the <literal>&lt;key&gt;"
+"</literal> element, the column name for the event's side with the "
+"<literal>column</literal> attribute of the <literal>&lt;many-to-many&gt;</"
+"literal>. You also have to tell Hibernate the class of the objects in your "
+"collection (correct: the class on the other side of the collection of "
+"references)."
+msgstr ""
+"Hibernate soporta todo tipo de mapeos de colección, siendo el más común un "
+"<literal>&lt;set&gt;</literal>. Para una asociación muchos-a-muchos (o "
+"relación de entidad <emphasis>n:m</emphasis>), se necesita una tabla de "
+"asociación. Cada fila en esta tabla representa un enlace entre una persona y "
+"un evento. Esta tabla se configura con el atributo <literal>table</literal> "
+"del elemento <literal>set</literal>. El nombre de la columna identificadora "
+"en la asociación, para el lado de la persona, se define con el elemento "
+"<literal>&lt;key&gt;</literal>. El nombre de columna para el lado del evento "
+"se define con el atributo <literal>column</literal> del <literal>&lt;many-to-"
+"many&gt;</literal>. También tienes que decirle a Hibernate la clase de los "
+"objetos en tu colección (correcto: la clase del otro lado de la colección de "
+"referencias)."
 
-#: index.docbook:624
+#. Tag: para
+#: tutorial.xml:624
+#, no-c-format
 msgid "The database schema for this mapping is therefore:"
-msgstr ""
-      "<![CDATA[private void addPersonToEvent(Long personId, Long eventId) {\n"
-      "    Session session = HibernateUtil.currentSession();\n"
-      "    Transaction tx = session.beginTransaction();\n"
-      "\n"
-      "    Person aPerson = (Person) session.load(Person.class, personId);\n"
-      "    Event anEvent = (Event) session.load(Event.class, eventId);\n"
-      "\n"
-      "    aPerson.getEvents().add(anEvent);\n"
-      "\n"
-      "    tx.commit();\n"
-      "    HibernateUtil.closeSession();\n"
-      "}]]>"
+msgstr "El esquema de base de datos para este mapeo es, por lo tanto:"
 
-#: index.docbook:628
+#. Tag: programlisting
+#: tutorial.xml:628
+#, no-c-format
 msgid ""
-      "<![CDATA[\n"
-      "    _____________        __________________\n"
-      "   |             |      |                  |       _____________\n"
-      "   |   EVENTS    |      |   PERSON_EVENT   |      |             |\n"
-      "   |_____________|      |__________________|      |    PERSON   |\n"
-      "   |             |      |                  |      |_____________|\n"
-      "   | *EVENT_ID   | <--> | *EVENT_ID        |      |             |\n"
-      "   |  EVENT_DATE |      | *PERSON_ID       | <--> | *PERSON_ID  |\n"
-      "   |  TITLE      |      |__________________|      |  AGE        |\n"
-      "   |_____________|                                |  FIRSTNAME  |\n"
-      "                                                  |  LASTNAME   |\n"
-      "                                                  |_____________|\n"
-      " ]]>"
-msgstr "Despu&#x00e9;s de cargar una <literal>Person</literal> y un <literal>Event</literal>, simplemente modifica la colecci&#x00f3;n usando sus m&#x00e9;todos normales. Como puedes ver, no hay una llamada expl&#x00ed;cita a <literal>update()</literal> o <literal>save()</literal>. Hibernate detecta autom&#x00e1;ticamente que la colecci&#x00f3;n ha sido modificada y necesita ser salvada. Esto es llamado <emphasis>chequeo sucio autom&#x00f3;tico (automatic dirty checking)</emphasis>, y tambi&#x00e9;n puedes intentarlo modificando el nombre de la propiedad de fecha de cualquiera de tus objetos. Mientras est&#x00e9;n en estado <emphasis>persistente</emphasis>, esto es, ligados a una <literal>Session</literal> de Hibernate particular (es decir, justo han sido cargados o almacenados en una unidad de trabajo), Hibernate monitoriza cualquier cambio y ejecuta SQL en estilo escribe-por-detr&#x00e1;s. El proceso de sincronizaci&#x00f3;n del estado de memoria con la base de datos, usu!
 almente s&#x00f3;lo al final de una unidad de trabajo, es llamado <emphasis>limpieza (flushing)</emphasis>."
+"<![CDATA[\n"
+"    _____________        __________________\n"
+"   |             |      |                  |       _____________\n"
+"   |   EVENTS    |      |   PERSON_EVENT   |      |             |\n"
+"   |_____________|      |__________________|      |    PERSON   |\n"
+"   |             |      |                  |      |_____________|\n"
+"   | *EVENT_ID   | <--> | *EVENT_ID        |      |             |\n"
+"   |  EVENT_DATE |      | *PERSON_ID       | <--> | *PERSON_ID  |\n"
+"   |  TITLE      |      |__________________|      |  AGE        |\n"
+"   |_____________|                                |  FIRSTNAME  |\n"
+"                                                  |  LASTNAME   |\n"
+"                                                  |_____________|\n"
+" ]]>"
+msgstr ""
 
-#: index.docbook:633
+#. Tag: title
+#: tutorial.xml:633
+#, no-c-format
 msgid "Working the association"
-msgstr "Podr&#x00ed;as, por supuesto, cargar persona y evento en unidades de trabajo diferentes. O modificas un objeto fuera de una <literal>Session</literal>, cuando no est&#x00e1; en estado persistente (si antes era persistente llamamos a este estado <emphasis>separado (detached) </emphasis>). En c&#x00f3;digo (no muy realista), esto se ver&#x00ed;a como sigue:"
+msgstr "Trabajando la asociación"
 
-#: index.docbook:635
-msgid "Let's bring some people and events together in a new method in <literal>EventManager</literal>:"
+#. Tag: para
+#: tutorial.xml:635
+#, no-c-format
+msgid ""
+"Let's bring some people and events together in a new method in "
+"<literal>EventManager</literal>:"
 msgstr ""
-      "<![CDATA[    private void addPersonToEvent(Long personId, Long eventId) {\n"
-      "\n"
-      "        Session session = HibernateUtil.currentSession();\n"
-      "        Transaction tx = session.beginTransaction();\n"
-      "\n"
-      "        Person aPerson = (Person) session.load(Person.class, personId);\n"
-      "        Event anEvent = (Event) session.load(Event.class, eventId);\n"
-      "\n"
-      "        tx.commit();\n"
-      "        HibernateUtil.closeSession();\n"
-      "\n"
-      "        aPerson.getEvents().add(anEvent); // aPerson is detached\n"
-      "\n"
-      "        Session session2 = HibernateUtil.currentSession();\n"
-      "        Transaction tx2 = session.beginTransaction();\n"
-      "\n"
-      "        session2.update(aPerson); // Reattachment of aPerson\n"
-      "\n"
-      "        tx2.commit();\n"
-      "        HibernateUtil.closeSession();\n"
-      "    }\n"
-      "]]>"
+"Traigamos alguna gente y eventos juntos en un nuevo método en "
+"<literal>EventManager</literal>:"
 
-#: index.docbook:639
+#. Tag: programlisting
+#: tutorial.xml:639
+#, no-c-format
 msgid ""
-      "<![CDATA[private void addPersonToEvent(Long personId, Long eventId) {\n"
-      "\n"
-      "    Session session = HibernateUtil.getSessionFactory().getCurrentSession();\n"
-      "    session.beginTransaction();\n"
-      "\n"
-      "    Person aPerson = (Person) session.load(Person.class, personId);\n"
-      "    Event anEvent = (Event) session.load(Event.class, eventId);\n"
-      "\n"
-      "    aPerson.getEvents().add(anEvent);\n"
-      "\n"
-      "    session.getTransaction().commit();\n"
-      "}]]>"
-msgstr "La llamada a <literal>update</literal> hace a un objeto persistente de nuevo, podr&#x00ed;as decir que la liga a una nueva unidad de trabajo, de modo que cualquier modificaci&#x00f3;n que le hagas mientras est&#x00e9; separado puede ser salvada a base de datos."
+"<![CDATA[private void addPersonToEvent(Long personId, Long eventId) {\n"
+"\n"
+"    Session session = HibernateUtil.getSessionFactory().getCurrentSession"
+"();\n"
+"    session.beginTransaction();\n"
+"\n"
+"    Person aPerson = (Person) session.load(Person.class, personId);\n"
+"    Event anEvent = (Event) session.load(Event.class, eventId);\n"
+"\n"
+"    aPerson.getEvents().add(anEvent);\n"
+"\n"
+"    session.getTransaction().commit();\n"
+"}]]>"
+msgstr ""
 
-#: index.docbook:641
-msgid "After loading a <literal>Person</literal> and an <literal>Event</literal>, simply modify the collection using the normal collection methods. As you can see, there is no explicit call to <literal>update()</literal> or <literal>save()</literal>, Hibernate automatically detects that the collection has been modified and needs to be updated. This is called <emphasis>automatic dirty checking</emphasis>, and you can also try it by modifying the name or the date property of any of your objects. As long as they are in <emphasis>persistent</emphasis> state, that is, bound to a particular Hibernate <literal>Session</literal> (i.e. they have been just loaded or saved in a unit of work), Hibernate monitors any changes and executes SQL in a write-behind fashion. The process of synchronizing the memory state with the database, usually only at the end of a unit of work, is called <emphasis>flushing</emphasis>. In our code, the unit of work ends with a commit (or rollback) of the dat!
 abase transaction - as defined by the <literal>thread</literal> configuration option for the <literal>CurrentSessionContext</literal> class."
-msgstr "Bueno, esto no es muy usado en nuestra situaci&#x00f3;n actual, pero es un concepto importante que puedes dise&#x00f1;ar en tu propia aplicaci&#x00f3;n. Por ahora, completa este ejercicio agregando una nueva acci&#x00f3;n al m&#x00e9;todo main de <literal>EventManager</literal> y ll&#x00e1;mala desde la l&#x00ed;nea de comandos. Si necesitas los identificadores de una persona o evento, el m&#x00e9;todo <literal>save()</literal> los devuelve."
+#. Tag: para
+#: tutorial.xml:641
+#, no-c-format
+msgid ""
+"After loading a <literal>Person</literal> and an <literal>Event</literal>, "
+"simply modify the collection using the normal collection methods. As you can "
+"see, there is no explicit call to <literal>update()</literal> or "
+"<literal>save()</literal>, Hibernate automatically detects that the "
+"collection has been modified and needs to be updated. This is called "
+"<emphasis>automatic dirty checking</emphasis>, and you can also try it by "
+"modifying the name or the date property of any of your objects. As long as "
+"they are in <emphasis>persistent</emphasis> state, that is, bound to a "
+"particular Hibernate <literal>Session</literal> (i.e. they have been just "
+"loaded or saved in a unit of work), Hibernate monitors any changes and "
+"executes SQL in a write-behind fashion. The process of synchronizing the "
+"memory state with the database, usually only at the end of a unit of work, "
+"is called <emphasis>flushing</emphasis>. In our code, the unit of work ends "
+"with a commit (or rollback) of the database transaction - as defined by the "
+"<literal>thread</literal> configuration option for the "
+"<literal>CurrentSessionContext</literal> class."
+msgstr ""
+"Después de cargar una <literal>Person</literal> y un <literal>Event</"
+"literal>, simplemente modifica la colección usando sus métodos normales. "
+"Como puedes ver, no hay una llamada explícita a <literal>update()</literal> "
+"o <literal>save()</literal>. Hibernate detecta automáticamente que la "
+"colección ha sido modificada y necesita ser salvada. Esto es llamado "
+"<emphasis>chequeo sucio automótico (automatic dirty checking)</emphasis>, y "
+"también puedes intentarlo modificando el nombre de la propiedad de fecha de "
+"cualquiera de tus objetos. Mientras estén en estado <emphasis>persistente</"
+"emphasis>, esto es, ligados a una <literal>Session</literal> de Hibernate "
+"particular (es decir, justo han sido cargados o almacenados en una unidad de "
+"trabajo), Hibernate monitoriza cualquier cambio y ejecuta SQL en estilo "
+"escribe-por-detrás. El proceso de sincronización del estado de memoria con "
+"la base de datos, usualmente sólo al final de una unidad de trabajo, es "
+"llamado <emphasis>limpieza (flushing)</emphasis>."
 
-#: index.docbook:656
-msgid "You might of course load person and event in different units of work. Or you modify an object outside of a <literal>Session</literal>, when it is not in persistent state (if it was persistent before, we call this state <emphasis>detached</emphasis>). You can even modify a collection when it is detached:"
-msgstr "Esto fue un ejemplo de una asociaci&#x00f3;n entre dos clases igualmente importantes, dos entidades. Como se ha mencionado anteriormente, hay otras clases y tipos en un modelo t&#x00ed;pico, usualmente \"menos importantes\". Algunos ya los habr&#x00e1;s visto, como un <literal>int</literal> o un <literal>String</literal>. Llamamos a estas clases <emphasis>tipos de valor (value types)</emphasis>, y sus instancias <emphasis>dependen</emphasis> de una entidad en particular. Las instancias de estos tipos no tienen su propia identidad, ni son compartidas entre entidades (dos personas no referencian el mismo objeto <literal>firstname</literal>, incluso si tuvieran el mismo primer nombre). Por supuesto, los tipos de valor no s&#x00f3;lo pueden encontrarse en el JDK (de hecho, en una aplicaci&#x00f3;n Hibernate todas las clases del JDK son consideradas tipos de valor), sino que adem&#x00e1;s puedes escribir por ti mismo clases dependientes, por ejemplo, <literal>Address</li!
 teral> o <literal>MonetaryAmount</literal>."
+#. Tag: para
+#: tutorial.xml:656
+#, no-c-format
+msgid ""
+"You might of course load person and event in different units of work. Or you "
+"modify an object outside of a <literal>Session</literal>, when it is not in "
+"persistent state (if it was persistent before, we call this state "
+"<emphasis>detached</emphasis>). You can even modify a collection when it is "
+"detached:"
+msgstr ""
+"Podrías, por supuesto, cargar persona y evento en unidades de trabajo "
+"diferentes. O modificas un objeto fuera de una <literal>Session</literal>, "
+"cuando no está en estado persistente (si antes era persistente llamamos a "
+"este estado <emphasis>separado (detached) </emphasis>). En código (no muy "
+"realista), esto se vería como sigue:"
 
-#: index.docbook:663
+#. Tag: programlisting
+#: tutorial.xml:663
+#, no-c-format
 msgid ""
-      "<![CDATA[private void addPersonToEvent(Long personId, Long eventId) {\n"
-      "\n"
-      "    Session session = HibernateUtil.getSessionFactory().getCurrentSession();\n"
-      "    session.beginTransaction();\n"
-      "\n"
-      "    Person aPerson = (Person) session\n"
-      "            .createQuery(\"select p from Person p left join fetch p.events where p.id = :pid\")\n"
-      "            .setParameter(\"pid\", personId)\n"
-      "            .uniqueResult(); // Eager fetch the collection so we can use it detached\n"
-      "\n"
-      "    Event anEvent = (Event) session.load(Event.class, eventId);\n"
-      "\n"
-      "    session.getTransaction().commit();\n"
-      "\n"
-      "    // End of first unit of work\n"
-      "\n"
-      "    aPerson.getEvents().add(anEvent); // aPerson (and its collection) is detached\n"
-      "\n"
-      "    // Begin second unit of work\n"
-      "\n"
-      "    Session session2 = HibernateUtil.getSessionFactory().getCurrentSession();\n"
-      "    session2.beginTransaction();\n"
-      "\n"
-      "    session2.update(aPerson); // Reattachment of aPerson\n"
-      "\n"
-      "    session2.getTransaction().commit();\n"
-      "}]]>"
-msgstr "Tambi&#x00e9;n puedes dise&#x00f1;ar una colecci&#x00f3;n de tipos de valor. Esto es conceptualmente muy diferente de una colecci&#x00f3;n de referencias a otras entidades, pero se ve casi lo mismo en Java."
+"<![CDATA[private void addPersonToEvent(Long personId, Long eventId) {\n"
+"\n"
+"    Session session = HibernateUtil.getSessionFactory().getCurrentSession"
+"();\n"
+"    session.beginTransaction();\n"
+"\n"
+"    Person aPerson = (Person) session\n"
+"            .createQuery(\"select p from Person p left join fetch p.events "
+"where p.id = :pid\")\n"
+"            .setParameter(\"pid\", personId)\n"
+"            .uniqueResult(); // Eager fetch the collection so we can use it "
+"detached\n"
+"\n"
+"    Event anEvent = (Event) session.load(Event.class, eventId);\n"
+"\n"
+"    session.getTransaction().commit();\n"
+"\n"
+"    // End of first unit of work\n"
+"\n"
+"    aPerson.getEvents().add(anEvent); // aPerson (and its collection) is "
+"detached\n"
+"\n"
+"    // Begin second unit of work\n"
+"\n"
+"    Session session2 = HibernateUtil.getSessionFactory().getCurrentSession"
+"();\n"
+"    session2.beginTransaction();\n"
+"\n"
+"    session2.update(aPerson); // Reattachment of aPerson\n"
+"\n"
+"    session2.getTransaction().commit();\n"
+"}]]>"
+msgstr ""
 
-#: index.docbook:665
-msgid "The call to <literal>update</literal> makes a detached object persistent again, you could say it binds it to a new unit of work, so any modifications you made to it while detached can be saved to the database. This includes any modifications (additions/deletions) you made to a collection of that entity object."
-msgstr "Colecci&#x00f3;n de valores"
+#. Tag: para
+#: tutorial.xml:665
+#, no-c-format
+msgid ""
+"The call to <literal>update</literal> makes a detached object persistent "
+"again, you could say it binds it to a new unit of work, so any modifications "
+"you made to it while detached can be saved to the database. This includes "
+"any modifications (additions/deletions) you made to a collection of that "
+"entity object."
+msgstr ""
+"La llamada a <literal>update</literal> hace a un objeto persistente de "
+"nuevo, podrías decir que la liga a una nueva unidad de trabajo, de modo que "
+"cualquier modificación que le hagas mientras esté separado puede ser salvada "
+"a base de datos."
 
-#: index.docbook:672
-msgid "Well, this is not much use in our current situation, but it's an important concept you can design into your own application. For now, complete this exercise by adding a new action to the <literal>EventManager</literal>'s main method and call it from the command line. If you need the identifiers of a person and an event - the <literal>save()</literal> method returns it (you might have to modify some of the previous methods to return that identifier):"
-msgstr "Agregamos una colecci&#x00f3;n de objetos tipificados en valor a la entidad <literal>Person</literal>. Queremos almacenar direcciones de email, de modo que el tipo que usamos es <literal>String</literal>, y la colecci&#x00f3;n es nuevamente un <literal>Set</literal>:"
+#. Tag: para
+#: tutorial.xml:672
+#, no-c-format
+msgid ""
+"Well, this is not much use in our current situation, but it's an important "
+"concept you can design into your own application. For now, complete this "
+"exercise by adding a new action to the <literal>EventManager</literal>'s "
+"main method and call it from the command line. If you need the identifiers "
+"of a person and an event - the <literal>save()</literal> method returns it "
+"(you might have to modify some of the previous methods to return that "
+"identifier):"
+msgstr ""
+"Bueno, esto no es muy usado en nuestra situación actual, pero es un concepto "
+"importante que puedes diseñar en tu propia aplicación. Por ahora, completa "
+"este ejercicio agregando una nueva acción al método main de "
+"<literal>EventManager</literal> y llámala desde la línea de comandos. Si "
+"necesitas los identificadores de una persona o evento, el método "
+"<literal>save()</literal> los devuelve."
 
-#: index.docbook:680
+#. Tag: programlisting
+#: tutorial.xml:680
+#, no-c-format
 msgid ""
-      "<![CDATA[else if (args[0].equals(\"addpersontoevent\")) {\n"
-      "    Long eventId = mgr.createAndStoreEvent(\"My Event\", new Date());\n"
-      "    Long personId = mgr.createAndStorePerson(\"Foo\", \"Bar\");\n"
-      "    mgr.addPersonToEvent(personId, eventId);\n"
-      "    System.out.println(\"Added person \" + personId + \" to event \" + eventId);\n"
-      "}]]>"
+"<![CDATA[else if (args[0].equals(\"addpersontoevent\")) {\n"
+"    Long eventId = mgr.createAndStoreEvent(\"My Event\", new Date());\n"
+"    Long personId = mgr.createAndStorePerson(\"Foo\", \"Bar\");\n"
+"    mgr.addPersonToEvent(personId, eventId);\n"
+"    System.out.println(\"Added person \" + personId + \" to event \" + "
+"eventId);\n"
+"}]]>"
 msgstr ""
-      "<![CDATA[private Set emailAddresses = new HashSet();\n"
-      "\n"
-      "public Set getEmailAddresses() {\n"
-      "    return emailAddresses;\n"
-      "}\n"
-      "\n"
-      "public void setEmailAddresses(Set emailAddresses) {\n"
-      "    this.emailAddresses = emailAddresses;\n"
-      "}]]>"
 
-#: index.docbook:682
-msgid "This was an example of an association between two equally important classes, two entities. As mentioned earlier, there are other classes and types in a typical model, usually \"less important\". Some you have already seen, like an <literal>int</literal> or a <literal>String</literal>. We call these classes <emphasis>value types</emphasis>, and their instances <emphasis>depend</emphasis> on a particular entity. Instances of these types don't have their own identity, nor are they shared between entities (two persons don't reference the same <literal>firstname</literal> object, even if they have the same first name). Of course, value types can not only be found in the JDK (in fact, in a Hibernate application all JDK classes are considered value types), but you can also write dependent classes yourself, <literal>Address</literal> or <literal>MonetaryAmount</literal>, for example."
-msgstr "El mapeo de este <literal>Set</literal>:"
+#. Tag: para
+#: tutorial.xml:682
+#, no-c-format
+msgid ""
+"This was an example of an association between two equally important classes, "
+"two entities. As mentioned earlier, there are other classes and types in a "
+"typical model, usually \"less important\". Some you have already seen, like "
+"an <literal>int</literal> or a <literal>String</literal>. We call these "
+"classes <emphasis>value types</emphasis>, and their instances "
+"<emphasis>depend</emphasis> on a particular entity. Instances of these types "
+"don't have their own identity, nor are they shared between entities (two "
+"persons don't reference the same <literal>firstname</literal> object, even "
+"if they have the same first name). Of course, value types can not only be "
+"found in the JDK (in fact, in a Hibernate application all JDK classes are "
+"considered value types), but you can also write dependent classes yourself, "
+"<literal>Address</literal> or <literal>MonetaryAmount</literal>, for example."
+msgstr ""
+"Esto fue un ejemplo de una asociación entre dos clases igualmente "
+"importantes, dos entidades. Como se ha mencionado anteriormente, hay otras "
+"clases y tipos en un modelo típico, usualmente \"menos importantes\". "
+"Algunos ya los habrás visto, como un <literal>int</literal> o un "
+"<literal>String</literal>. Llamamos a estas clases <emphasis>tipos de valor "
+"(value types)</emphasis>, y sus instancias <emphasis>dependen</emphasis> de "
+"una entidad en particular. Las instancias de estos tipos no tienen su propia "
+"identidad, ni son compartidas entre entidades (dos personas no referencian "
+"el mismo objeto <literal>firstname</literal>, incluso si tuvieran el mismo "
+"primer nombre). Por supuesto, los tipos de valor no sólo pueden encontrarse "
+"en el JDK (de hecho, en una aplicación Hibernate todas las clases del JDK "
+"son consideradas tipos de valor), sino que además puedes escribir por ti "
+"mismo clases dependientes, por ejemplo, <literal>Address</literal> o "
+"<literal>MonetaryAmount</literal>."
 
-#: index.docbook:695
-msgid "You can also design a collection of value types. This is conceptually very different from a collection of references to other entities, but looks almost the same in Java."
+#. Tag: para
+#: tutorial.xml:695
+#, no-c-format
+msgid ""
+"You can also design a collection of value types. This is conceptually very "
+"different from a collection of references to other entities, but looks "
+"almost the same in Java."
 msgstr ""
-      "<![CDATA[<set name=\"emailAddresses\" table=\"PERSON_EMAIL_ADDR\">\n"
-      "    <key column=\"PERSON_ID\"/>\n"
-      "    <element type=\"string\" column=\"EMAIL_ADDR\"/>\n"
-      "</set>]]>"
+"También puedes diseñar una colección de tipos de valor. Esto es "
+"conceptualmente muy diferente de una colección de referencias a otras "
+"entidades, pero se ve casi lo mismo en Java."
 
-#: index.docbook:703
+#. Tag: title
+#: tutorial.xml:703
+#, no-c-format
 msgid "Collection of values"
-msgstr "La diferencia comparada con el mapeo anterior es la parte <literal>element</literal>, que le dice a Hibernate que la colecci&#x00f3;n no contiene referencias a otra entidad, sino una colecci&#x00f3;n de elementos de tipo <literal>String</literal> (el nombre en min&#x00fa;sculas te dice que es un tipo/conversor de mapeo de Hibernate). Una vez m&#x00e1;s, el atributo <literal>table</literal> del elemento <literal>set</literal> determina el nombre de la tabla para la colecci&#x00f3;n. El elemento <literal>key</literal> define el nombre de la columna clave for&#x00e1;nea en la tabla de colecci&#x00f3;n. El atributo <literal>column</literal> en el elemento <literal>element</literal> define el nombre de columna donde realmente ser&#x00e1;n almacenados los valores <literal>String</literal>."
+msgstr "Colección de valores"
 
-#: index.docbook:705
-msgid "We add a collection of value typed objects to the <literal>Person</literal> entity. We want to store email addresses, so the type we use is <literal>String</literal>, and the collection is again a <literal>Set</literal>:"
-msgstr "Echa una mirada al esquema actualizado:"
+#. Tag: para
+#: tutorial.xml:705
+#, no-c-format
+msgid ""
+"We add a collection of value typed objects to the <literal>Person</literal> "
+"entity. We want to store email addresses, so the type we use is "
+"<literal>String</literal>, and the collection is again a <literal>Set</"
+"literal>:"
+msgstr ""
+"Agregamos una colección de objetos tipificados en valor a la entidad "
+"<literal>Person</literal>. Queremos almacenar direcciones de email, de modo "
+"que el tipo que usamos es <literal>String</literal>, y la colección es "
+"nuevamente un <literal>Set</literal>:"
 
-#: index.docbook:710
+#. Tag: programlisting
+#: tutorial.xml:710
+#, no-c-format
 msgid ""
-      "<![CDATA[private Set emailAddresses = new HashSet();\n"
-      "\n"
-      "public Set getEmailAddresses() {\n"
-      "    return emailAddresses;\n"
-      "}\n"
-      "\n"
-      "public void setEmailAddresses(Set emailAddresses) {\n"
-      "    this.emailAddresses = emailAddresses;\n"
-      "}]]>"
+"<![CDATA[private Set emailAddresses = new HashSet();\n"
+"\n"
+"public Set getEmailAddresses() {\n"
+"    return emailAddresses;\n"
+"}\n"
+"\n"
+"public void setEmailAddresses(Set emailAddresses) {\n"
+"    this.emailAddresses = emailAddresses;\n"
+"}]]>"
 msgstr ""
-      "<![CDATA[\n"
-      "  _____________        __________________\n"
-      " |             |      |                  |       _____________\n"
-      " |   EVENTS    |      |   PERSON_EVENT   |      |             |       ___________________\n"
-      " |_____________|      |__________________|      |    PERSON   |      |                   |\n"
-      " |             |      |                  |      |_____________|      | PERSON_EMAIL_ADDR |\n"
-      " | *EVENT_ID   | <--> | *EVENT_ID        |      |             |      |___________________|\n"
-      " |  EVENT_DATE |      | *PERSON_ID       | <--> | *PERSON_ID  | <--> |  *PERSON_ID       |\n"
-      " |  TITLE      |      |__________________|      |  AGE        |      |  *EMAIL_ADDR      |\n"
-      " |_____________|                                |  FIRSTNAME  |      |___________________|\n"
-      "                                                |  LASTNAME   |\n"
-      "                                                |_____________|\n"
-      " ]]>"
 
-#: index.docbook:712
+#. Tag: para
+#: tutorial.xml:712
+#, no-c-format
 msgid "The mapping of this <literal>Set</literal>:"
-msgstr "Puedes ver que la clave primaria de la tabla de colecci&#x00f3;n es de hecho una clave compuesta, usando ambas columnas. Esto implica tambi&#x00e9;n que no pueden haber direcciones de email duplicadas por persona, que es exactamente la sem&#x00e1;ntica que necesitamos para un conjunto en Java."
+msgstr "El mapeo de este <literal>Set</literal>:"
 
-#: index.docbook:716
+#. Tag: programlisting
+#: tutorial.xml:716
+#, no-c-format
 msgid ""
-      "<![CDATA[<set name=\"emailAddresses\" table=\"PERSON_EMAIL_ADDR\">\n"
-      "    <key column=\"PERSON_ID\"/>\n"
-      "    <element type=\"string\" column=\"EMAIL_ADDR\"/>\n"
-      "</set>]]>"
-msgstr "Puedes ahora intentar y agregar elementos a esta colecci&#x00f3;n, al igual que hicimos antes enlazando personas y eventos. Es el mismo c&#x00f3;digo en Java."
+"<![CDATA[<set name=\"emailAddresses\" table=\"PERSON_EMAIL_ADDR\">\n"
+"    <key column=\"PERSON_ID\"/>\n"
+"    <element type=\"string\" column=\"EMAIL_ADDR\"/>\n"
+"</set>]]>"
+msgstr ""
 
-#: index.docbook:718
-msgid "The difference compared with the earlier mapping is the <literal>element</literal> part, which tells Hibernate that the collection does not contain references to another entity, but a collection of elements of type <literal>String</literal> (the lowercase name tells you it's a Hibernate mapping type/converter). Once again, the <literal>table</literal> attribute of the <literal>set</literal> element determines the table name for the collection. The <literal>key</literal> element defines the foreign-key column name in the collection table. The <literal>column</literal> attribute in the <literal>element</literal> element defines the column name where the <literal>String</literal> values will actually be stored."
-msgstr "Asociaciones bidireccionales"
+#. Tag: para
+#: tutorial.xml:718
+#, no-c-format
+msgid ""
+"The difference compared with the earlier mapping is the <literal>element</"
+"literal> part, which tells Hibernate that the collection does not contain "
+"references to another entity, but a collection of elements of type "
+"<literal>String</literal> (the lowercase name tells you it's a Hibernate "
+"mapping type/converter). Once again, the <literal>table</literal> attribute "
+"of the <literal>set</literal> element determines the table name for the "
+"collection. The <literal>key</literal> element defines the foreign-key "
+"column name in the collection table. The <literal>column</literal> attribute "
+"in the <literal>element</literal> element defines the column name where the "
+"<literal>String</literal> values will actually be stored."
+msgstr ""
+"La diferencia comparada con el mapeo anterior es la parte <literal>element</"
+"literal>, que le dice a Hibernate que la colección no contiene referencias a "
+"otra entidad, sino una colección de elementos de tipo <literal>String</"
+"literal> (el nombre en minúsculas te dice que es un tipo/conversor de mapeo "
+"de Hibernate). Una vez más, el atributo <literal>table</literal> del "
+"elemento <literal>set</literal> determina el nombre de la tabla para la "
+"colección. El elemento <literal>key</literal> define el nombre de la columna "
+"clave foránea en la tabla de colección. El atributo <literal>column</"
+"literal> en el elemento <literal>element</literal> define el nombre de "
+"columna donde realmente serán almacenados los valores <literal>String</"
+"literal>."
 
-#: index.docbook:728
+#. Tag: para
+#: tutorial.xml:728
+#, no-c-format
 msgid "Have a look at the updated schema:"
-msgstr "A continuacion vamos a mapear una asociaci&#x00f3;n bidireccional, haciendo que la asociaci&#x00f3;n entre persona y evento funcione desde ambos lados en Java. Por supuesto, el esquema de base de datos no cambia; todav&#x00ed;a necesitamos multiplicidad muchos-a-muchos. Una base de datos relacional es m&#x00e1;s flexible que un lenguaje de programaci&#x00f3;n de red, as&#x00ed; que no necesita nada parecido a una direcci&#x00f3;n de navegaci&#x00f3;n; los datos pueden ser vistos y recuperados en cualquier forma posible."
+msgstr "Echa una mirada al esquema actualizado:"
 
-#: index.docbook:732
+#. Tag: programlisting
+#: tutorial.xml:732
+#, no-c-format
 msgid ""
-      "<![CDATA[\n"
-      "  _____________        __________________\n"
-      " |             |      |                  |       _____________\n"
-      " |   EVENTS    |      |   PERSON_EVENT   |      |             |       ___________________\n"
-      " |_____________|      |__________________|      |    PERSON   |      |                   |\n"
-      " |             |      |                  |      |_____________|      | PERSON_EMAIL_ADDR |\n"
-      " | *EVENT_ID   | <--> | *EVENT_ID        |      |             |      |___________________|\n"
-      " |  EVENT_DATE |      | *PERSON_ID       | <--> | *PERSON_ID  | <--> |  *PERSON_ID       |\n"
-      " |  TITLE      |      |__________________|      |  AGE        |      |  *EMAIL_ADDR      |\n"
-      " |_____________|                                |  FIRSTNAME  |      |___________________|\n"
-      "                                                |  LASTNAME   |\n"
-      "                                                |_____________|\n"
-      " ]]>"
-msgstr "Primero agrega una colecci&#x00f3;n de participantes a la clase de eventos <literal>Event</literal>:"
+"<![CDATA[\n"
+"  _____________        __________________\n"
+" |             |      |                  |       _____________\n"
+" |   EVENTS    |      |   PERSON_EVENT   |      |             |       "
+"___________________\n"
+" |_____________|      |__________________|      |    PERSON   |      "
+"|                   |\n"
+" |             |      |                  |      |_____________|      | "
+"PERSON_EMAIL_ADDR |\n"
+" | *EVENT_ID   | <--> | *EVENT_ID        |      |             |      |"
+"___________________|\n"
+" |  EVENT_DATE |      | *PERSON_ID       | <--> | *PERSON_ID  | <--> |  "
+"*PERSON_ID       |\n"
+" |  TITLE      |      |__________________|      |  AGE        |      |  "
+"*EMAIL_ADDR      |\n"
+" |_____________|                                |  FIRSTNAME  |      |"
+"___________________|\n"
+"                                                |  LASTNAME   |\n"
+"                                                |_____________|\n"
+" ]]>"
+msgstr ""
 
-#: index.docbook:734
-msgid "You can see that the primary key of the collection table is in fact a composite key, using both columns. This also implies that there can't be duplicate email addresses per person, which is exactly the semantics we need for a set in Java."
+#. Tag: para
+#: tutorial.xml:734
+#, no-c-format
+msgid ""
+"You can see that the primary key of the collection table is in fact a "
+"composite key, using both columns. This also implies that there can't be "
+"duplicate email addresses per person, which is exactly the semantics we need "
+"for a set in Java."
 msgstr ""
-      "<![CDATA[private Set participants = new HashSet();\n"
-      "\n"
-      "public Set getParticipants() {\n"
-      "    return participants;\n"
-      "}\n"
-      "\n"
-      "public void setParticipants(Set participants) {\n"
-      "    this.participants = participants;\n"
-      "}]]>"
+"Puedes ver que la clave primaria de la tabla de colección es de hecho una "
+"clave compuesta, usando ambas columnas. Esto implica también que no pueden "
+"haber direcciones de email duplicadas por persona, que es exactamente la "
+"semántica que necesitamos para un conjunto en Java."
 
-#: index.docbook:740
-msgid "You can now try and add elements to this collection, just like we did before by linking persons and events. It's the same code in Java:"
-msgstr "Ahora mapea este lado de la asociaci&#x00f3;n tambi&#x00e9;n, en <literal>Event.hbm.xml</literal>."
+#. Tag: para
+#: tutorial.xml:740
+#, no-c-format
+msgid ""
+"You can now try and add elements to this collection, just like we did before "
+"by linking persons and events. It's the same code in Java:"
+msgstr ""
+"Puedes ahora intentar y agregar elementos a esta colección, al igual que "
+"hicimos antes enlazando personas y eventos. Es el mismo código en Java."
 
-#: index.docbook:745
+#. Tag: programlisting
+#: tutorial.xml:745
+#, no-c-format
 msgid ""
-      "<![CDATA[private void addEmailToPerson(Long personId, String emailAddress) {\n"
-      "\n"
-      "    Session session = HibernateUtil.getSessionFactory().getCurrentSession();\n"
-      "    session.beginTransaction();\n"
-      "\n"
-      "    Person aPerson = (Person) session.load(Person.class, personId);\n"
-      "\n"
-      "    // The getEmailAddresses() might trigger a lazy load of the collection\n"
-      "    aPerson.getEmailAddresses().add(emailAddress);\n"
-      "\n"
-      "    session.getTransaction().commit();\n"
-      "}]]>"
+"<![CDATA[private void addEmailToPerson(Long personId, String emailAddress) "
+"{\n"
+"\n"
+"    Session session = HibernateUtil.getSessionFactory().getCurrentSession"
+"();\n"
+"    session.beginTransaction();\n"
+"\n"
+"    Person aPerson = (Person) session.load(Person.class, personId);\n"
+"\n"
+"    // The getEmailAddresses() might trigger a lazy load of the collection\n"
+"    aPerson.getEmailAddresses().add(emailAddress);\n"
+"\n"
+"    session.getTransaction().commit();\n"
+"}]]>"
 msgstr ""
-      "<![CDATA[<set name=\"participants\" table=\"PERSON_EVENT\" inverse=\"true\">\n"
-      "    <key column=\"EVENT_ID\"/>\n"
-      "    <many-to-many column=\"PERSON_ID\" class=\"Person\"/>\n"
-      "</set>]]>"
 
-#: index.docbook:747
-msgid "This time we didnt' use a <emphasis>fetch</emphasis> query to initialize the collection. Hence, the call to its getter method will trigger an additional select to initialize it, so we can add an element to it. Monitor the SQL log and try to optimize this with an eager fetch."
-msgstr "Como ves, estos son mapeos normales de <literal>set</literal> en ambos documentos de mapeo. Nota que los nombres de columnas en <literal>key</literal> y <literal>many-to-many</literal> fueron permutados en ambos documentos de mapeo. Aqu&#x00ed; la adici&#x00f3;n m&#x00e1;s importante es el atributo <literal>inverse=\"true\"</literal> en el elemento <literal>set</literal> del mapeo de colecci&#x00f3;n de <literal>Event</literal>."
+#. Tag: para
+#: tutorial.xml:747
+#, no-c-format
+msgid ""
+"This time we didnt' use a <emphasis>fetch</emphasis> query to initialize the "
+"collection. Hence, the call to its getter method will trigger an additional "
+"select to initialize it, so we can add an element to it. Monitor the SQL log "
+"and try to optimize this with an eager fetch."
+msgstr ""
+"This time we didnt' use a <emphasis>fetch</emphasis> query to initialize the "
+"collection. Hence, the call to its getter method will trigger an additional "
+"select to initialize it, so we can add an element to it. Monitor the SQL log "
+"and try to optimize this with an eager fetch."
 
-#: index.docbook:757
+#. Tag: title
+#: tutorial.xml:757
+#, no-c-format
 msgid "Bi-directional associations"
-msgstr "Lo que esto significa es que Hibernate debe tomar el otro lado - la clase <literal>Person</literal> - cuando necesite descubrir informaci&#x00f3;n sobre el enlace entre las dos. Esto ser&#x00e1; mucho m&#x00e1;s f&#x00e1;cil de entender una vez que veas c&#x00f3;mo se crea el enlace bidireccional entre nuestras dos entidades."
+msgstr "Asociaciones bidireccionales"
 
-#: index.docbook:759
-msgid "Next we are going to map a bi-directional association - making the association between person and event work from both sides in Java. Of course, the database schema doesn't change, we still have many-to-many multiplicity. A relational database is more flexible than a network programming language, so it doesn't need anything like a navigation direction - data can be viewed and retrieved in any possible way."
-msgstr "Trabajando enlaces bidireccionales"
+#. Tag: para
+#: tutorial.xml:759
+#, no-c-format
+msgid ""
+"Next we are going to map a bi-directional association - making the "
+"association between person and event work from both sides in Java. Of "
+"course, the database schema doesn't change, we still have many-to-many "
+"multiplicity. A relational database is more flexible than a network "
+"programming language, so it doesn't need anything like a navigation "
+"direction - data can be viewed and retrieved in any possible way."
+msgstr ""
+"A continuacion vamos a mapear una asociación bidireccional, haciendo que la "
+"asociación entre persona y evento funcione desde ambos lados en Java. Por "
+"supuesto, el esquema de base de datos no cambia; todavía necesitamos "
+"multiplicidad muchos-a-muchos. Una base de datos relacional es más flexible "
+"que un lenguaje de programación de red, así que no necesita nada parecido a "
+"una dirección de navegación; los datos pueden ser vistos y recuperados en "
+"cualquier forma posible."
 
-#: index.docbook:767
-msgid "First, add a collection of participants to the <literal>Event</literal> Event class:"
-msgstr "Primero, ten en mente que Hhibernate no afecta la sem&#x00e1;ntica normal de Java. ¿C&#x00f3;mo hemos creado un enlace entre una <literal>Person</literal> y un <literal>Event</literal> en el ejemplo unidireccional? Hemos agregado una instancia de <literal>Event</literal> a la colecci&#x00f3;n de referencias de eventos de una instancia de <literal>Person</literal>. De modo que, obviamente, si queremos que este enlace funcione bidireccionalmente, tenemos que hacer lo mismo del otro lado, agregando una referencia a <literal>Person</literal> a la colecci&#x00f3;n en un <literal>Event</literal>. Este \"establecer el enlace a ambos lados\" es absolutamente necesario y nunca debes olvidar hacerlo."
+#. Tag: para
+#: tutorial.xml:767
+#, no-c-format
+msgid ""
+"First, add a collection of participants to the <literal>Event</literal> "
+"Event class:"
+msgstr ""
+"Primero agrega una colección de participantes a la clase de eventos "
+"<literal>Event</literal>:"
 
-#: index.docbook:771
+#. Tag: programlisting
+#: tutorial.xml:771
+#, no-c-format
 msgid ""
-      "<![CDATA[private Set participants = new HashSet();\n"
-      "\n"
-      "public Set getParticipants() {\n"
-      "    return participants;\n"
-      "}\n"
-      "\n"
-      "public void setParticipants(Set participants) {\n"
-      "    this.participants = participants;\n"
-      "}]]>"
-msgstr "Muchos desarrolladores programan a la defensiva y crean m&#x00e9;todos de manejo de un enlace para establecer correctamente ambos lados, por ejemplo en <literal>Person</literal>:"
+"<![CDATA[private Set participants = new HashSet();\n"
+"\n"
+"public Set getParticipants() {\n"
+"    return participants;\n"
+"}\n"
+"\n"
+"public void setParticipants(Set participants) {\n"
+"    this.participants = participants;\n"
+"}]]>"
+msgstr ""
 
-#: index.docbook:773
-msgid "Now map this side of the association too, in <literal>Event.hbm.xml</literal>."
+#. Tag: para
+#: tutorial.xml:773
+#, no-c-format
+msgid ""
+"Now map this side of the association too, in <literal>Event.hbm.xml</"
+"literal>."
 msgstr ""
-      "<![CDATA[protected Set getEvents() {\n"
-      "    return events;\n"
-      "}\n"
-      "\n"
-      "protected void setEvents(Set events) {\n"
-      "    this.events = events;\n"
-      "}\n"
-      "\n"
-      "public void addToEvent(Event event) {\n"
-      "    this.getEvents().add(event);\n"
-      "    event.getParticipants().add(this);\n"
-      "}\n"
-      "\n"
-      "public void removeFromEvent(Event event) {\n"
-      "    this.getEvents().remove(event);\n"
-      "    event.getParticipants().remove(this);\n"
-      "}]]>"
+"Ahora mapea este lado de la asociación también, en <literal>Event.hbm.xml</"
+"literal>."
 
-#: index.docbook:777
+#. Tag: programlisting
+#: tutorial.xml:777
+#, no-c-format
 msgid ""
-      "<![CDATA[<set name=\"participants\" table=\"PERSON_EVENT\" inverse=\"true\">\n"
-      "    <key column=\"EVENT_ID\"/>\n"
-      "    <many-to-many column=\"PERSON_ID\" class=\"events.Person\"/>\n"
-      "</set>]]>"
-msgstr "Nota que los m&#x00e9;todos get y set para esta colecci&#x00f3;n son ahora protegidos. Esto le permite a clases en el mismo paquete y a subclases acceder a&#x00fa;n a los m&#x00e9;todos, pero previene a cualquier otro de ensuciarse con la colecci&#x00f3;n directamente (bueno, casi). Probablemente debas hacer lo mismo con la colecci&#x00f3;n al otro lado."
+"<![CDATA[<set name=\"participants\" table=\"PERSON_EVENT\" inverse=\"true"
+"\">\n"
+"    <key column=\"EVENT_ID\"/>\n"
+"    <many-to-many column=\"PERSON_ID\" class=\"events.Person\"/>\n"
+"</set>]]>"
+msgstr ""
 
-#: index.docbook:779
-msgid "As you see, these are normal <literal>set</literal> mappings in both mapping documents. Notice that the column names in <literal>key</literal> and <literal>many-to-many</literal> are swapped in both mapping documents. The most important addition here is the <literal>inverse=\"true\"</literal> attribute in the <literal>set</literal> element of the <literal>Event</literal>'s collection mapping."
-msgstr "Y ¿qu&#x00e9; del atributo de mapeo <literal>inverse</literal>? Para ti, y para Java, un enlace bidireccional es simplemente cuesti&#x00f3;n de establecer correctamente las referencias a ambos lados. Hibernate, sin embargo, no tiene suficiente informaci&#x00f3;n para arreglar correctamente sentencias <literal>INSERT</literal> y <literal>UPDATE</literal> de SQL (para evitar violaci&#x00f3;n de restricciones), y necesita alguna ayuda para manejar asociaciones bidireccionales apropiadamente. El hacer un lado de la asociaci&#x00f3;n <literal>inverse</literal> le dice a Hibernate que basicamente lo ignore, que lo considere un <emphasis>espejo</emphasis> del otro lado. Esto es todo lo necesario para que Hibernate resuelva todas las incidencias al transformar un modelo de navegaci&#x00f3;n direccional a un esquema SQL de base de datos. Las reglas que tienes que recordar son directas: Todas las asociaciones bidireccionales necesitan uno de los lados como <literal>inverse</!
 literal>. En una asociaci&#x00f3;n uno-a-muchos debe ser el lado-de-muchos. En una asociaci&#x00f3;n muchos-a-muchos, puedes tomar cualquier lado, no hay diferencia."
+#. Tag: para
+#: tutorial.xml:779
+#, no-c-format
+msgid ""
+"As you see, these are normal <literal>set</literal> mappings in both mapping "
+"documents. Notice that the column names in <literal>key</literal> and "
+"<literal>many-to-many</literal> are swapped in both mapping documents. The "
+"most important addition here is the <literal>inverse=\"true\"</literal> "
+"attribute in the <literal>set</literal> element of the <literal>Event</"
+"literal>'s collection mapping."
+msgstr ""
+"Como ves, estos son mapeos normales de <literal>set</literal> en ambos "
+"documentos de mapeo. Nota que los nombres de columnas en <literal>key</"
+"literal> y <literal>many-to-many</literal> fueron permutados en ambos "
+"documentos de mapeo. Aquí la adición más importante es el atributo "
+"<literal>inverse=\"true\"</literal> en el elemento <literal>set</literal> "
+"del mapeo de colección de <literal>Event</literal>."
 
-#: index.docbook:787
-msgid "What this means is that Hibernate should take the other side - the <literal>Person</literal> class - when it needs to find out information about the link between the two. This will be a lot easier to understand once you see how the bi-directional link between our two entities is created ."
-msgstr "Summary"
+#. Tag: para
+#: tutorial.xml:787
+#, no-c-format
+msgid ""
+"What this means is that Hibernate should take the other side - the "
+"<literal>Person</literal> class - when it needs to find out information "
+"about the link between the two. This will be a lot easier to understand once "
+"you see how the bi-directional link between our two entities is created ."
+msgstr ""
+"Lo que esto significa es que Hibernate debe tomar el otro lado - la clase "
+"<literal>Person</literal> - cuando necesite descubrir información sobre el "
+"enlace entre las dos. Esto será mucho más fácil de entender una vez que veas "
+"cómo se crea el enlace bidireccional entre nuestras dos entidades."
 
-#: index.docbook:796
+#. Tag: title
+#: tutorial.xml:796
+#, no-c-format
 msgid "Working bi-directional links"
-msgstr "Este tutorial cubri&#x00f3; los fundamentos de escribir una simple aplicaci&#x00f3;n independiente de Hibernate."
+msgstr "Trabajando enlaces bidireccionales"
 
-#: index.docbook:798
-msgid "First, keep in mind that Hibernate does not affect normal Java semantics. How did we create a link between a <literal>Person</literal> and an <literal>Event</literal> in the unidirectional example? We added an instance of <literal>Event</literal> to the collection of event references, of an instance of <literal>Person</literal>. So, obviously, if we want to make this link working bi-directional, we have to do the same on the other side - adding a <literal>Person</literal> reference to the collection in an <literal>Event</literal>. This \"setting the link on both sides\" is absolutely necessary and you should never forget doing it."
-msgstr "Si ya te sientes confidente con Hibernate, contin&#x00fa;a navegando a trav&#x00e9;s de la tabla de contenidos de la documentaci&#x00f3;n de referencia para los temas que encuentres interesantes. Los m&#x00e1;s consultados son procesamiento transaccional (<xref linkend=\"transactions\"/>), rendimiento de recuperaci&#x00f3;n (<xref linkend=\"performance\"/>), o el uso de la API (<xref linkend=\"objectstate\"/>) y las funcionalidades de consulta (<xref linkend=\"objectstate-querying\"/>)."
+#. Tag: para
+#: tutorial.xml:798
+#, no-c-format
+msgid ""
+"First, keep in mind that Hibernate does not affect normal Java semantics. "
+"How did we create a link between a <literal>Person</literal> and an "
+"<literal>Event</literal> in the unidirectional example? We added an instance "
+"of <literal>Event</literal> to the collection of event references, of an "
+"instance of <literal>Person</literal>. So, obviously, if we want to make "
+"this link working bi-directional, we have to do the same on the other side - "
+"adding a <literal>Person</literal> reference to the collection in an "
+"<literal>Event</literal>. This \"setting the link on both sides\" is "
+"absolutely necessary and you should never forget doing it."
+msgstr ""
+"Primero, ten en mente que Hhibernate no afecta la semántica normal de Java. "
+"¿Cómo hemos creado un enlace entre una <literal>Person</literal> y un "
+"<literal>Event</literal> en el ejemplo unidireccional? Hemos agregado una "
+"instancia de <literal>Event</literal> a la colección de referencias de "
+"eventos de una instancia de <literal>Person</literal>. De modo que, "
+"obviamente, si queremos que este enlace funcione bidireccionalmente, tenemos "
+"que hacer lo mismo del otro lado, agregando una referencia a "
+"<literal>Person</literal> a la colección en un <literal>Event</literal>. "
+"Este \"establecer el enlace a ambos lados\" es absolutamente necesario y "
+"nunca debes olvidar hacerlo."
 
-#: index.docbook:808
-msgid "Many developers program defensive and create link management methods to correctly set both sides, e.g. in <literal>Person</literal>:"
-msgstr "No olvides chequear el sitio web de Hibernate por m&#x00e1;s (especializados) tutoriales."
+#. Tag: para
+#: tutorial.xml:808
+#, no-c-format
+msgid ""
+"Many developers program defensive and create link management methods to "
+"correctly set both sides, e.g. in <literal>Person</literal>:"
+msgstr ""
+"Muchos desarrolladores programan a la defensiva y crean métodos de manejo de "
+"un enlace para establecer correctamente ambos lados, por ejemplo en "
+"<literal>Person</literal>:"
 
-#: index.docbook:813
+#. Tag: programlisting
+#: tutorial.xml:813
+#, no-c-format
 msgid ""
-      "<![CDATA[protected Set getEvents() {\n"
-      "    return events;\n"
-      "}\n"
-      "\n"
-      "protected void setEvents(Set events) {\n"
-      "    this.events = events;\n"
-      "}\n"
-      "\n"
-      "public void addToEvent(Event event) {\n"
-      "    this.getEvents().add(event);\n"
-      "    event.getParticipants().add(this);\n"
-      "}\n"
-      "\n"
-      "public void removeFromEvent(Event event) {\n"
-      "    this.getEvents().remove(event);\n"
-      "    event.getParticipants().remove(this);\n"
-      "}]]>"
+"<![CDATA[protected Set getEvents() {\n"
+"    return events;\n"
+"}\n"
+"\n"
+"protected void setEvents(Set events) {\n"
+"    this.events = events;\n"
+"}\n"
+"\n"
+"public void addToEvent(Event event) {\n"
+"    this.getEvents().add(event);\n"
+"    event.getParticipants().add(this);\n"
+"}\n"
+"\n"
+"public void removeFromEvent(Event event) {\n"
+"    this.getEvents().remove(event);\n"
+"    event.getParticipants().remove(this);\n"
+"}]]>"
 msgstr ""
 
-#: index.docbook:815
-msgid "Notice that the get and set methods for the collection are now protected - this allows classes in the same package and subclasses to still access the methods, but prevents everybody else from messing with the collections directly (well, almost). You should probably do the same with the collection on the other side."
+#. Tag: para
+#: tutorial.xml:815
+#, no-c-format
+msgid ""
+"Notice that the get and set methods for the collection are now protected - "
+"this allows classes in the same package and subclasses to still access the "
+"methods, but prevents everybody else from messing with the collections "
+"directly (well, almost). You should probably do the same with the collection "
+"on the other side."
 msgstr ""
+"Nota que los métodos get y set para esta colección son ahora protegidos. "
+"Esto le permite a clases en el mismo paquete y a subclases acceder aún a los "
+"métodos, pero previene a cualquier otro de ensuciarse con la colección "
+"directamente (bueno, casi). Probablemente debas hacer lo mismo con la "
+"colección al otro lado."
 
-#: index.docbook:822
-msgid "What about the <literal>inverse</literal> mapping attribute? For you, and for Java, a bi-directional link is simply a matter of setting the references on both sides correctly. Hibernate however doesn't have enough information to correctly arrange SQL <literal>INSERT</literal> and <literal>UPDATE</literal> statements (to avoid constraint violations), and needs some help to handle bi-directional associations properly. Making one side of the association <literal>inverse</literal> tells Hibernate to basically ignore it, to consider it a <emphasis>mirror</emphasis> of the other side. That's all that is necessary for Hibernate to work out all of the issues when transformation a directional navigation model to a SQL database schema. The rules you have to remember are straightforward: All bi-directional associations need one side as <literal>inverse</literal>. In a one-to-many association it has to be the many-side, in many-to-many association you can pick either side, there!
  is no difference."
+#. Tag: para
+#: tutorial.xml:822
+#, no-c-format
+msgid ""
+"What about the <literal>inverse</literal> mapping attribute? For you, and "
+"for Java, a bi-directional link is simply a matter of setting the references "
+"on both sides correctly. Hibernate however doesn't have enough information "
+"to correctly arrange SQL <literal>INSERT</literal> and <literal>UPDATE</"
+"literal> statements (to avoid constraint violations), and needs some help to "
+"handle bi-directional associations properly. Making one side of the "
+"association <literal>inverse</literal> tells Hibernate to basically ignore "
+"it, to consider it a <emphasis>mirror</emphasis> of the other side. That's "
+"all that is necessary for Hibernate to work out all of the issues when "
+"transformation a directional navigation model to a SQL database schema. The "
+"rules you have to remember are straightforward: All bi-directional "
+"associations need one side as <literal>inverse</literal>. In a one-to-many "
+"association it has to be the many-side, in many-to-many association you can "
+"pick either side, there is no difference."
 msgstr ""
+"Y ¿qué del atributo de mapeo <literal>inverse</literal>? Para ti, y para "
+"Java, un enlace bidireccional es simplemente cuestión de establecer "
+"correctamente las referencias a ambos lados. Hibernate, sin embargo, no "
+"tiene suficiente información para arreglar correctamente sentencias "
+"<literal>INSERT</literal> y <literal>UPDATE</literal> de SQL (para evitar "
+"violación de restricciones), y necesita alguna ayuda para manejar "
+"asociaciones bidireccionales apropiadamente. El hacer un lado de la "
+"asociación <literal>inverse</literal> le dice a Hibernate que basicamente lo "
+"ignore, que lo considere un <emphasis>espejo</emphasis> del otro lado. Esto "
+"es todo lo necesario para que Hibernate resuelva todas las incidencias al "
+"transformar un modelo de navegación direccional a un esquema SQL de base de "
+"datos. Las reglas que tienes que recordar son directas: Todas las "
+"asociaciones bidireccionales necesitan uno de los lados como "
+"<literal>inverse</literal>. En una asociación uno-a-muchos debe ser el lado-"
+"de-muchos. En una asociación muchos-a-muchos, puedes tomar cualquier lado, "
+"no hay diferencia."
 
-#: index.docbook:837
+#. Tag: para
+#: tutorial.xml:837
+#, no-c-format
 msgid "Let's turn this into a small web application."
-msgstr ""
+msgstr "Let's turn this into a small web application."
 
-#: index.docbook:844
+#. Tag: title
+#: tutorial.xml:844
+#, no-c-format
 msgid "Part 3 - The EventManager web application"
-msgstr ""
+msgstr "Part 3 - The EventManager web application"
 
-#: index.docbook:846
-msgid "A Hibernate web application uses <literal>Session</literal> and <literal>Transaction</literal> almost like a standalone application. However, some common patterns are useful. We now write an <literal>EventManagerServlet</literal>. This servlet can list all events stored in the database, and it provides an HTML form to enter new events."
+#. Tag: para
+#: tutorial.xml:846
+#, no-c-format
+msgid ""
+"A Hibernate web application uses <literal>Session</literal> and "
+"<literal>Transaction</literal> almost like a standalone application. "
+"However, some common patterns are useful. We now write an "
+"<literal>EventManagerServlet</literal>. This servlet can list all events "
+"stored in the database, and it provides an HTML form to enter new events."
 msgstr ""
+"A Hibernate web application uses <literal>Session</literal> and "
+"<literal>Transaction</literal> almost like a standalone application. "
+"However, some common patterns are useful. We now write an "
+"<literal>EventManagerServlet</literal>. This servlet can list all events "
+"stored in the database, and it provides an HTML form to enter new events."
 
-#: index.docbook:854
+#. Tag: title
+#: tutorial.xml:854
+#, no-c-format
 msgid "Writing the basic servlet"
-msgstr ""
+msgstr "Writing the basic servlet"
 
-#: index.docbook:856
-msgid "Create a new class in your source directory, in the <literal>events</literal> package:"
+#. Tag: para
+#: tutorial.xml:856
+#, no-c-format
+msgid ""
+"Create a new class in your source directory, in the <literal>events</"
+"literal> package:"
 msgstr ""
+"Create a new class in your source directory, in the <literal>events</"
+"literal> package:"
 
-#: index.docbook:861
+#. Tag: programlisting
+#: tutorial.xml:861
+#, no-c-format
 msgid ""
-      "<![CDATA[package events;\n"
-      "\n"
-      "// Imports\n"
-      "\n"
-      "public class EventManagerServlet extends HttpServlet {\n"
-      "\n"
-      "    // Servlet code\n"
-      "}]]>"
+"<![CDATA[package events;\n"
+"\n"
+"// Imports\n"
+"\n"
+"public class EventManagerServlet extends HttpServlet {\n"
+"\n"
+"    // Servlet code\n"
+"}]]>"
 msgstr ""
 
-#: index.docbook:863
-msgid "The servlet handles HTTP <literal>GET</literal> requests only, hence, the method we implement is <literal>doGet()</literal>:"
+#. Tag: para
+#: tutorial.xml:863
+#, no-c-format
+msgid ""
+"The servlet handles HTTP <literal>GET</literal> requests only, hence, the "
+"method we implement is <literal>doGet()</literal>:"
 msgstr ""
+"The servlet handles HTTP <literal>GET</literal> requests only, hence, the "
+"method we implement is <literal>doGet()</literal>:"
 
-#: index.docbook:868
+#. Tag: programlisting
+#: tutorial.xml:868
+#, no-c-format
 msgid ""
-      "<![CDATA[protected void doGet(HttpServletRequest request,\n"
-      "                     HttpServletResponse response)\n"
-      "        throws ServletException, IOException {\n"
-      "\n"
-      "    SimpleDateFormat dateFormatter = new SimpleDateFormat(\"dd.MM.yyyy\");\n"
-      "\n"
-      "    try {\n"
-      "        // Begin unit of work\n"
-      "        HibernateUtil.getSessionFactory()\n"
-      "                .getCurrentSession().beginTransaction();\n"
-      "\n"
-      "        // Process request and render page...\n"
-      "\n"
-      "        // End unit of work\n"
-      "        HibernateUtil.getSessionFactory()\n"
-      "                .getCurrentSession().getTransaction().commit();\n"
-      "\n"
-      "    } catch (Exception ex) {\n"
-      "        HibernateUtil.getSessionFactory()\n"
-      "                .getCurrentSession().getTransaction().rollback();\n"
-      "        throw new ServletException(ex);\n"
-      "    }\n"
-      "\n"
-      "}]]>"
+"<![CDATA[protected void doGet(HttpServletRequest request,\n"
+"                     HttpServletResponse response)\n"
+"        throws ServletException, IOException {\n"
+"\n"
+"    SimpleDateFormat dateFormatter = new SimpleDateFormat(\"dd.MM.yyyy\");\n"
+"\n"
+"    try {\n"
+"        // Begin unit of work\n"
+"        HibernateUtil.getSessionFactory()\n"
+"                .getCurrentSession().beginTransaction();\n"
+"\n"
+"        // Process request and render page...\n"
+"\n"
+"        // End unit of work\n"
+"        HibernateUtil.getSessionFactory()\n"
+"                .getCurrentSession().getTransaction().commit();\n"
+"\n"
+"    } catch (Exception ex) {\n"
+"        HibernateUtil.getSessionFactory()\n"
+"                .getCurrentSession().getTransaction().rollback();\n"
+"        throw new ServletException(ex);\n"
+"    }\n"
+"\n"
+"}]]>"
 msgstr ""
 
-#: index.docbook:870
-msgid "The pattern we are applying here is called <emphasis>session-per-request</emphasis>. When a request hits the servlet, a new Hibernate <literal>Session</literal> is opened through the first call to <literal>getCurrentSession()</literal> on the <literal>SessionFactory</literal>. Then a database transaction is started&mdash;all data access as to occur inside a transaction, no matter if data is read or written (we don't use the auto-commit mode in applications)."
+#. Tag: para
+#: tutorial.xml:870
+#, fuzzy, no-c-format
+msgid ""
+"The pattern we are applying here is called <emphasis>session-per-request</"
+"emphasis>. When a request hits the servlet, a new Hibernate "
+"<literal>Session</literal> is opened through the first call to "
+"<literal>getCurrentSession()</literal> on the <literal>SessionFactory</"
+"literal>. Then a database transaction is started&mdash;all data access as to "
+"occur inside a transaction, no matter if data is read or written (we don't "
+"use the auto-commit mode in applications)."
 msgstr ""
+"The pattern we are applying here is called <emphasis>session-per-request</"
+"emphasis>. When a request hits the servlet, a new Hibernate "
+"<literal>Session</literal> is opened through the first call to "
+"<literal>getCurrentSession()</literal> on the <literal>SessionFactory</"
+"literal>. Then a database transaction is started&mdash;all data access as to "
+"occur inside a transaction, no matter if data is read or written (we don't "
+"use the auto-commit mode in applications)."
 
-#: index.docbook:879
-msgid "Do <emphasis>not</emphasis> use a new Hibernate <literal>Session</literal> for every database operation. Use one Hibernate <literal>Session</literal> that is scoped to the whole request. Use <literal>getCurrentSession()</literal>, so that it is automatically bound to the current Java thread."
+#. Tag: para
+#: tutorial.xml:879
+#, no-c-format
+msgid ""
+"Do <emphasis>not</emphasis> use a new Hibernate <literal>Session</literal> "
+"for every database operation. Use one Hibernate <literal>Session</literal> "
+"that is scoped to the whole request. Use <literal>getCurrentSession()</"
+"literal>, so that it is automatically bound to the current Java thread."
 msgstr ""
+"Do <emphasis>not</emphasis> use a new Hibernate <literal>Session</literal> "
+"for every database operation. Use one Hibernate <literal>Session</literal> "
+"that is scoped to the whole request. Use <literal>getCurrentSession()</"
+"literal>, so that it is automatically bound to the current Java thread."
 
-#: index.docbook:886
-msgid "Next, the possible actions of the request are processed and the response HTML is rendered. We'll get to that part soon."
+#. Tag: para
+#: tutorial.xml:886
+#, no-c-format
+msgid ""
+"Next, the possible actions of the request are processed and the response "
+"HTML is rendered. We'll get to that part soon."
 msgstr ""
+"Next, the possible actions of the request are processed and the response "
+"HTML is rendered. We'll get to that part soon."
 
-#: index.docbook:891
-msgid "Finally, the unit of work ends when processing and rendering is complete. If any problem occured during processing or rendering, an exception will be thrown and the database transaction rolled back. This completes the <literal>session-per-request</literal> pattern. Instead of the transaction demarcation code in every servlet you could also write a servlet filter. See the Hibernate website and Wiki for more information about this pattern, called <emphasis>Open Session in View</emphasis>&mdash;you'll need it as soon as you consider rendering your view in JSP, not in a servlet."
+#. Tag: para
+#: tutorial.xml:891
+#, fuzzy, no-c-format
+msgid ""
+"Finally, the unit of work ends when processing and rendering is complete. If "
+"any problem occured during processing or rendering, an exception will be "
+"thrown and the database transaction rolled back. This completes the "
+"<literal>session-per-request</literal> pattern. Instead of the transaction "
+"demarcation code in every servlet you could also write a servlet filter. See "
+"the Hibernate website and Wiki for more information about this pattern, "
+"called <emphasis>Open Session in View</emphasis>&mdash;you'll need it as "
+"soon as you consider rendering your view in JSP, not in a servlet."
 msgstr ""
+"Finally, the unit of work ends when processing and rendering is complete. If "
+"any problem occured during processing or rendering, an exception will be "
+"thrown and the database transaction rolled back. This completes the "
+"<literal>session-per-request</literal> pattern. Instead of the transaction "
+"demarcation code in every servlet you could also write a servlet filter. See "
+"the Hibernate website and Wiki for more information about this pattern, "
+"called <emphasis>Open Session in View</emphasis>&mdash;you'll need it as "
+"soon as you consider rendering your view in JSP, not in a servlet."
 
-#: index.docbook:905
+#. Tag: title
+#: tutorial.xml:905
+#, no-c-format
 msgid "Processing and rendering"
-msgstr ""
+msgstr "Processing and rendering"
 
-#: index.docbook:907
-msgid "Let's implement the processing of the request and rendering of the page."
+#. Tag: para
+#: tutorial.xml:907
+#, no-c-format
+msgid ""
+"Let's implement the processing of the request and rendering of the page."
 msgstr ""
+"Let's implement the processing of the request and rendering of the page."
 
-#: index.docbook:911
+#. Tag: programlisting
+#: tutorial.xml:911
+#, no-c-format
 msgid ""
-      "<![CDATA[// Write HTML header\n"
-      "PrintWriter out = response.getWriter();\n"
-      "out.println(\"<html><head><title>Event Manager</title></head><body>\");\n"
-      "\n"
-      "// Handle actions\n"
-      "if ( \"store\".equals(request.getParameter(\"action\")) ) {\n"
-      "\n"
-      "    String eventTitle = request.getParameter(\"eventTitle\");\n"
-      "    String eventDate = request.getParameter(\"eventDate\");\n"
-      "\n"
-      "    if ( \"\".equals(eventTitle) || \"\".equals(eventDate) ) {\n"
-      "        out.println(\"<b><i>Please enter event title and date.</i></b>\");\n"
-      "    } else {\n"
-      "        createAndStoreEvent(eventTitle, dateFormatter.parse(eventDate));\n"
-      "        out.println(\"<b><i>Added event.</i></b>\");\n"
-      "    }\n"
-      "}\n"
-      "\n"
-      "// Print page\n"
-      "printEventForm(out);\n"
-      "listEvents(out, dateFormatter);\n"
-      "\n"
-      "// Write HTML footer\n"
-      "out.println(\"</body></html>\");\n"
-      "out.flush();\n"
-      "out.close();]]>"
+"<![CDATA[// Write HTML header\n"
+"PrintWriter out = response.getWriter();\n"
+"out.println(\"<html><head><title>Event Manager</title></head><body>\");\n"
+"\n"
+"// Handle actions\n"
+"if ( \"store\".equals(request.getParameter(\"action\")) ) {\n"
+"\n"
+"    String eventTitle = request.getParameter(\"eventTitle\");\n"
+"    String eventDate = request.getParameter(\"eventDate\");\n"
+"\n"
+"    if ( \"\".equals(eventTitle) || \"\".equals(eventDate) ) {\n"
+"        out.println(\"<b><i>Please enter event title and date.</i></b>\");\n"
+"    } else {\n"
+"        createAndStoreEvent(eventTitle, dateFormatter.parse(eventDate));\n"
+"        out.println(\"<b><i>Added event.</i></b>\");\n"
+"    }\n"
+"}\n"
+"\n"
+"// Print page\n"
+"printEventForm(out);\n"
+"listEvents(out, dateFormatter);\n"
+"\n"
+"// Write HTML footer\n"
+"out.println(\"</body></html>\");\n"
+"out.flush();\n"
+"out.close();]]>"
 msgstr ""
 
-#: index.docbook:913
-msgid "Granted, this coding style with a mix of Java and HTML would not scale in a more complex application&mdash;keep in mind that we are only illustrating basic Hibernate concepts in this tutorial. The code prints an HTML header and a footer. Inside this page, an HTML form for event entry and a list of all events in the database are printed. The first method is trivial and only outputs HTML:"
+#. Tag: para
+#: tutorial.xml:913
+#, fuzzy, no-c-format
+msgid ""
+"Granted, this coding style with a mix of Java and HTML would not scale in a "
+"more complex application&mdash;keep in mind that we are only illustrating "
+"basic Hibernate concepts in this tutorial. The code prints an HTML header "
+"and a footer. Inside this page, an HTML form for event entry and a list of "
+"all events in the database are printed. The first method is trivial and only "
+"outputs HTML:"
 msgstr ""
+"Granted, this coding style with a mix of Java and HTML would not scale in a "
+"more complex application&mdash;keep in mind that we are only illustrating "
+"basic Hibernate concepts in this tutorial. The code prints an HTML header "
+"and a footer. Inside this page, an HTML form for event entry and a list of "
+"all events in the database are printed. The first method is trivial and only "
+"outputs HTML:"
 
-#: index.docbook:922
+#. Tag: programlisting
+#: tutorial.xml:922
+#, no-c-format
 msgid ""
-      "<![CDATA[private void printEventForm(PrintWriter out) {\n"
-      "    out.println(\"<h2>Add new event:</h2>\");\n"
-      "    out.println(\"<form>\");\n"
-      "    out.println(\"Title: <input name='eventTitle' length='50'/><br/>\");\n"
-      "    out.println(\"Date (e.g. 24.12.2009): <input name='eventDate' length='10'/><br/>\");\n"
-      "    out.println(\"<input type='submit' name='action' value='store'/>\");\n"
-      "    out.println(\"</form>\");\n"
-      "}]]>"
+"<![CDATA[private void printEventForm(PrintWriter out) {\n"
+"    out.println(\"<h2>Add new event:</h2>\");\n"
+"    out.println(\"<form>\");\n"
+"    out.println(\"Title: <input name='eventTitle' length='50'/><br/>\");\n"
+"    out.println(\"Date (e.g. 24.12.2009): <input name='eventDate' "
+"length='10'/><br/>\");\n"
+"    out.println(\"<input type='submit' name='action' value='store'/>\");\n"
+"    out.println(\"</form>\");\n"
+"}]]>"
 msgstr ""
 
-#: index.docbook:924
-msgid "The <literal>listEvents()</literal> method uses the Hibernate <literal>Session</literal> bound to the current thread to execute a query:"
+#. Tag: para
+#: tutorial.xml:924
+#, no-c-format
+msgid ""
+"The <literal>listEvents()</literal> method uses the Hibernate "
+"<literal>Session</literal> bound to the current thread to execute a query:"
 msgstr ""
+"The <literal>listEvents()</literal> method uses the Hibernate "
+"<literal>Session</literal> bound to the current thread to execute a query:"
 
-#: index.docbook:930
+#. Tag: programlisting
+#: tutorial.xml:930
+#, no-c-format
 msgid ""
-      "<![CDATA[private void listEvents(PrintWriter out, SimpleDateFormat dateFormatter) {\n"
-      "\n"
-      "    List result = HibernateUtil.getSessionFactory()\n"
-      "                    .getCurrentSession().createCriteria(Event.class).list();\n"
-      "    if (result.size() > 0) {\n"
-      "        out.println(\"<h2>Events in database:</h2>\");\n"
-      "        out.println(\"<table border='1'>\");\n"
-      "        out.println(\"<tr>\");\n"
-      "        out.println(\"<th>Event title</th>\");\n"
-      "        out.println(\"<th>Event date</th>\");\n"
-      "        out.println(\"</tr>\");\n"
-      "        for (Iterator it = result.iterator(); it.hasNext();) {\n"
-      "            Event event = (Event) it.next();\n"
-      "            out.println(\"<tr>\");\n"
-      "            out.println(\"<td>\" + event.getTitle() + \"</td>\");\n"
-      "            out.println(\"<td>\" + dateFormatter.format(event.getDate()) + \"</td>\");\n"
-      "            out.println(\"</tr>\");\n"
-      "        }\n"
-      "        out.println(\"</table>\");\n"
-      "    }\n"
-      "}]]>"
+"<![CDATA[private void listEvents(PrintWriter out, SimpleDateFormat "
+"dateFormatter) {\n"
+"\n"
+"    List result = HibernateUtil.getSessionFactory()\n"
+"                    .getCurrentSession().createCriteria(Event.class).list"
+"();\n"
+"    if (result.size() > 0) {\n"
+"        out.println(\"<h2>Events in database:</h2>\");\n"
+"        out.println(\"<table border='1'>\");\n"
+"        out.println(\"<tr>\");\n"
+"        out.println(\"<th>Event title</th>\");\n"
+"        out.println(\"<th>Event date</th>\");\n"
+"        out.println(\"</tr>\");\n"
+"        for (Iterator it = result.iterator(); it.hasNext();) {\n"
+"            Event event = (Event) it.next();\n"
+"            out.println(\"<tr>\");\n"
+"            out.println(\"<td>\" + event.getTitle() + \"</td>\");\n"
+"            out.println(\"<td>\" + dateFormatter.format(event.getDate()) + "
+"\"</td>\");\n"
+"            out.println(\"</tr>\");\n"
+"        }\n"
+"        out.println(\"</table>\");\n"
+"    }\n"
+"}]]>"
 msgstr ""
 
-#: index.docbook:932
-msgid "Finally, the <literal>store</literal> action is dispatched to the <literal>createAndStoreEvent()</literal> method, which also uses the <literal>Session</literal> of the current thread:"
+#. Tag: para
+#: tutorial.xml:932
+#, no-c-format
+msgid ""
+"Finally, the <literal>store</literal> action is dispatched to the "
+"<literal>createAndStoreEvent()</literal> method, which also uses the "
+"<literal>Session</literal> of the current thread:"
 msgstr ""
+"Finally, the <literal>store</literal> action is dispatched to the "
+"<literal>createAndStoreEvent()</literal> method, which also uses the "
+"<literal>Session</literal> of the current thread:"
 
-#: index.docbook:938
+#. Tag: programlisting
+#: tutorial.xml:938
+#, no-c-format
 msgid ""
-      "<![CDATA[protected void createAndStoreEvent(String title, Date theDate) {\n"
-      "    Event theEvent = new Event();\n"
-      "    theEvent.setTitle(title);\n"
-      "    theEvent.setDate(theDate);\n"
-      "\n"
-      "    HibernateUtil.getSessionFactory()\n"
-      "                    .getCurrentSession().save(theEvent);\n"
-      "}]]>"
+"<![CDATA[protected void createAndStoreEvent(String title, Date theDate) {\n"
+"    Event theEvent = new Event();\n"
+"    theEvent.setTitle(title);\n"
+"    theEvent.setDate(theDate);\n"
+"\n"
+"    HibernateUtil.getSessionFactory()\n"
+"                    .getCurrentSession().save(theEvent);\n"
+"}]]>"
 msgstr ""
 
-#: index.docbook:940
-msgid "That's it, the servlet is complete. A request to the servlet will be processed in a single <literal>Session</literal> and <literal>Transaction</literal>. As earlier in the standalone application, Hibernate can automatically bind these ojects to the current thread of execution. This gives you the freedom to layer your code and access the <literal>SessionFactory</literal> in any way you like. Usually you'd use a more sophisticated design and move the data access code into data access objects (the DAO pattern). See the Hibernate Wiki for more examples."
+#. Tag: para
+#: tutorial.xml:940
+#, no-c-format
+msgid ""
+"That's it, the servlet is complete. A request to the servlet will be "
+"processed in a single <literal>Session</literal> and <literal>Transaction</"
+"literal>. As earlier in the standalone application, Hibernate can "
+"automatically bind these ojects to the current thread of execution. This "
+"gives you the freedom to layer your code and access the "
+"<literal>SessionFactory</literal> in any way you like. Usually you'd use a "
+"more sophisticated design and move the data access code into data access "
+"objects (the DAO pattern). See the Hibernate Wiki for more examples."
 msgstr ""
+"That's it, the servlet is complete. A request to the servlet will be "
+"processed in a single <literal>Session</literal> and <literal>Transaction</"
+"literal>. As earlier in the standalone application, Hibernate can "
+"automatically bind these ojects to the current thread of execution. This "
+"gives you the freedom to layer your code and access the "
+"<literal>SessionFactory</literal> in any way you like. Usually you'd use a "
+"more sophisticated design and move the data access code into data access "
+"objects (the DAO pattern). See the Hibernate Wiki for more examples."
 
-#: index.docbook:954
+#. Tag: title
+#: tutorial.xml:954
+#, no-c-format
 msgid "Deploying and testing"
-msgstr ""
+msgstr "Deploying and testing"
 
-#: index.docbook:956
-msgid "To deploy this application you have to create a web archive, a WAR. Add the following Ant target to your <literal>build.xml</literal>:"
+#. Tag: para
+#: tutorial.xml:956
+#, no-c-format
+msgid ""
+"To deploy this application you have to create a web archive, a WAR. Add the "
+"following Ant target to your <literal>build.xml</literal>:"
 msgstr ""
+"To deploy this application you have to create a web archive, a WAR. Add the "
+"following Ant target to your <literal>build.xml</literal>:"
 
-#: index.docbook:961
+#. Tag: programlisting
+#: tutorial.xml:961
+#, no-c-format
 msgid ""
-      "<![CDATA[<target name=\"war\" depends=\"compile\">\n"
-      "    <war destfile=\"hibernate-tutorial.war\" webxml=\"web.xml\">\n"
-      "        <lib dir=\"${librarydir}\">\n"
-      "          <exclude name=\"jsdk*.jar\"/>\n"
-      "        </lib>\n"
-      "\n"
-      "        <classes dir=\"${targetdir}\"/>\n"
-      "    </war>\n"
-      "</target>]]>"
+"<![CDATA[<target name=\"war\" depends=\"compile\">\n"
+"    <war destfile=\"hibernate-tutorial.war\" webxml=\"web.xml\">\n"
+"        <lib dir=\"${librarydir}\">\n"
+"          <exclude name=\"jsdk*.jar\"/>\n"
+"        </lib>\n"
+"\n"
+"        <classes dir=\"${targetdir}\"/>\n"
+"    </war>\n"
+"</target>]]>"
 msgstr ""
 
-#: index.docbook:963
-msgid "This target creates a file called <literal>hibernate-tutorial.war</literal> in your project directory. It packages all libraries and the <literal>web.xml</literal> descriptor, which is expected in the base directory of your project:"
+#. Tag: para
+#: tutorial.xml:963
+#, no-c-format
+msgid ""
+"This target creates a file called <literal>hibernate-tutorial.war</literal> "
+"in your project directory. It packages all libraries and the <literal>web."
+"xml</literal> descriptor, which is expected in the base directory of your "
+"project:"
 msgstr ""
+"This target creates a file called <literal>hibernate-tutorial.war</literal> "
+"in your project directory. It packages all libraries and the <literal>web."
+"xml</literal> descriptor, which is expected in the base directory of your "
+"project:"
 
-#: index.docbook:969
+#. Tag: programlisting
+#: tutorial.xml:969
+#, no-c-format
 msgid ""
-      "<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-      "<web-app version=\"2.4\"\n"
-      "    xmlns=\"http://java.sun.com/xml/ns/j2ee\"\n"
-      "    xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-      "    xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd\">\n"
-      "\n"
-      "    <servlet>\n"
-      "        <servlet-name>Event Manager</servlet-name>\n"
-      "        <servlet-class>events.EventManagerServlet</servlet-class>\n"
-      "    </servlet>\n"
-      "\n"
-      "    <servlet-mapping>\n"
-      "        <servlet-name>Event Manager</servlet-name>\n"
-      "        <url-pattern>/eventmanager</url-pattern>\n"
-      "    </servlet-mapping>\n"
-      "</web-app>]]>"
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<web-app version=\"2.4\"\n"
+"    xmlns=\"http://java.sun.com/xml/ns/j2ee\"\n"
+"    xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"    xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee http://java.sun.com/"
+"xml/ns/j2ee/web-app_2_4.xsd\">\n"
+"\n"
+"    <servlet>\n"
+"        <servlet-name>Event Manager</servlet-name>\n"
+"        <servlet-class>events.EventManagerServlet</servlet-class>\n"
+"    </servlet>\n"
+"\n"
+"    <servlet-mapping>\n"
+"        <servlet-name>Event Manager</servlet-name>\n"
+"        <url-pattern>/eventmanager</url-pattern>\n"
+"    </servlet-mapping>\n"
+"</web-app>]]>"
 msgstr ""
 
-#: index.docbook:971
-msgid "Before you compile and deploy the web application, note that an additional library is required: <literal>jsdk.jar</literal>. This is the Java servlet development kit, if you don't have this library already, get it from the Sun website and copy it to your library directory. However, it will be only used for compliation and excluded from the WAR package."
+#. Tag: para
+#: tutorial.xml:971
+#, no-c-format
+msgid ""
+"Before you compile and deploy the web application, note that an additional "
+"library is required: <literal>jsdk.jar</literal>. This is the Java servlet "
+"development kit, if you don't have this library already, get it from the Sun "
+"website and copy it to your library directory. However, it will be only used "
+"for compliation and excluded from the WAR package."
 msgstr ""
+"Before you compile and deploy the web application, note that an additional "
+"library is required: <literal>jsdk.jar</literal>. This is the Java servlet "
+"development kit, if you don't have this library already, get it from the Sun "
+"website and copy it to your library directory. However, it will be only used "
+"for compliation and excluded from the WAR package."
 
-#: index.docbook:979
-msgid "To build and deploy call <literal>ant war</literal> in your project directory and copy the <literal>hibernate-tutorial.war</literal> file into your Tomcat <literal>webapp</literal> directory. If you don't have Tomcat installed, download it and follow the installation instructions. You don't have to change any Tomcat configuration to deploy this application though."
+#. Tag: para
+#: tutorial.xml:979
+#, no-c-format
+msgid ""
+"To build and deploy call <literal>ant war</literal> in your project "
+"directory and copy the <literal>hibernate-tutorial.war</literal> file into "
+"your Tomcat <literal>webapp</literal> directory. If you don't have Tomcat "
+"installed, download it and follow the installation instructions. You don't "
+"have to change any Tomcat configuration to deploy this application though."
 msgstr ""
+"To build and deploy call <literal>ant war</literal> in your project "
+"directory and copy the <literal>hibernate-tutorial.war</literal> file into "
+"your Tomcat <literal>webapp</literal> directory. If you don't have Tomcat "
+"installed, download it and follow the installation instructions. You don't "
+"have to change any Tomcat configuration to deploy this application though."
 
-#: index.docbook:987
-msgid "Once deployed and Tomcat is running, access the application at <literal>http://localhost:8080/hibernate-tutorial/eventmanager</literal>. Make sure you watch the Tomcat log to see Hibernate initialize when the first request hits your servlet (the static initializer in <literal>HibernateUtil</literal> is called) and to get the detailed output if any exceptions occurs."
+#. Tag: para
+#: tutorial.xml:987
+#, no-c-format
+msgid ""
+"Once deployed and Tomcat is running, access the application at "
+"<literal>http://localhost:8080/hibernate-tutorial/eventmanager</literal>. "
+"Make sure you watch the Tomcat log to see Hibernate initialize when the "
+"first request hits your servlet (the static initializer in "
+"<literal>HibernateUtil</literal> is called) and to get the detailed output "
+"if any exceptions occurs."
 msgstr ""
+"Once deployed and Tomcat is running, access the application at "
+"<literal>http://localhost:8080/hibernate-tutorial/eventmanager</literal>. "
+"Make sure you watch the Tomcat log to see Hibernate initialize when the "
+"first request hits your servlet (the static initializer in "
+"<literal>HibernateUtil</literal> is called) and to get the detailed output "
+"if any exceptions occurs."
 
-#: index.docbook:1000
+#. Tag: title
+#: tutorial.xml:1000
+#, no-c-format
 msgid "Summary"
-msgstr ""
+msgstr "Summary"
 
-#: index.docbook:1002
-msgid "This tutorial covered the basics of writing a simple standalone Hibernate application and a small web application."
+#. Tag: para
+#: tutorial.xml:1002
+#, no-c-format
+msgid ""
+"This tutorial covered the basics of writing a simple standalone Hibernate "
+"application and a small web application."
 msgstr ""
+"Este tutorial cubrió los fundamentos de escribir una simple aplicación "
+"independiente de Hibernate."
 
-#: index.docbook:1007
-msgid "If you already feel confident with Hibernate, continue browsing through the reference documentation table of contents for topics you find interesting - most asked are transactional processing (<xref linkend=\"transactions\"/>), fetch performance (<xref linkend=\"performance\"/>), or the usage of the API (<xref linkend=\"objectstate\"/>) and the query features (<xref linkend=\"objectstate-querying\"/>)."
+#. Tag: para
+#: tutorial.xml:1007
+#, no-c-format
+msgid ""
+"If you already feel confident with Hibernate, continue browsing through the "
+"reference documentation table of contents for topics you find interesting - "
+"most asked are transactional processing (<xref linkend=\"transactions\"/>), "
+"fetch performance (<xref linkend=\"performance\"/>), or the usage of the API "
+"(<xref linkend=\"objectstate\"/>) and the query features (<xref linkend="
+"\"objectstate-querying\"/>)."
 msgstr ""
+"Si ya te sientes confidente con Hibernate, continúa navegando a través de la "
+"tabla de contenidos de la documentación de referencia para los temas que "
+"encuentres interesantes. Los más consultados son procesamiento transaccional "
+"(<xref linkend=\"transactions\"/>), rendimiento de recuperación (<xref "
+"linkend=\"performance\"/>), o el uso de la API (<xref linkend=\"objectstate"
+"\"/>) y las funcionalidades de consulta (<xref linkend=\"objectstate-querying"
+"\"/>)."
 
-#: index.docbook:1015
-msgid "Don't forget to check the Hibernate website for more (specialized) tutorials."
+#. Tag: para
+#: tutorial.xml:1015
+#, no-c-format
+msgid ""
+"Don't forget to check the Hibernate website for more (specialized) tutorials."
 msgstr ""
-
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
-
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
-
+"No olvides chequear el sitio web de Hibernate por más (especializados) "
+"tutoriales."

Modified: core/trunk/documentation/manual/translations/es-ES/content/xml.po
===================================================================
--- core/trunk/documentation/manual/translations/es-ES/content/xml.po	2007-10-27 12:53:39 UTC (rev 14153)
+++ core/trunk/documentation/manual/translations/es-ES/content/xml.po	2007-10-27 12:56:49 UTC (rev 14154)
@@ -1,420 +1,448 @@
-#, fuzzy
 msgid ""
 msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-10-25 07:48+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Content-Type: text/plain; charset=utf-8\n"
-#: index.docbook:5
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: xml.xml:5
+#, no-c-format
 msgid "XML Mapping"
 msgstr "Mapeo XML"
 
-#: index.docbook:7
-msgid "Note that this is an experimental feature in Hibernate 3.0 and is under extremely active development."
-msgstr "Nota que esta es una funcionalidad experimental en Hibernate 3.0 y está bajo un desarrollo extremadamente activo."
+#. Tag: emphasis
+#: xml.xml:7
+#, no-c-format
+msgid ""
+"Note that this is an experimental feature in Hibernate 3.0 and is under "
+"extremely active development."
+msgstr ""
+"Nota que esta es una funcionalidad experimental en Hibernate 3.0 y está bajo "
+"un desarrollo extremadamente activo."
 
-#: index.docbook:13
+#. Tag: title
+#: xml.xml:13
+#, no-c-format
 msgid "Working with XML data"
 msgstr "Trabajando con datos XML"
 
-#: index.docbook:15
-msgid "Hibernate lets you work with persistent XML data in much the same way you work with persistent POJOs. A parsed XML tree can be thought of as just another way to represent the relational data at the object level, instead of POJOs."
-msgstr "Hibernate te permite trabajar con datos XML persistentes en casi la misma forma que trabajas con POJOs persistentes. Un árbol XML analizado (parsed) puede ser pensado como sólo otra forma de representar los datos relacionales a nivel de objetos, en vez de POJOs."
+#. Tag: para
+#: xml.xml:15
+#, no-c-format
+msgid ""
+"Hibernate lets you work with persistent XML data in much the same way you "
+"work with persistent POJOs. A parsed XML tree can be thought of as just "
+"another way to represent the relational data at the object level, instead of "
+"POJOs."
+msgstr ""
+"Hibernate te permite trabajar con datos XML persistentes en casi la misma "
+"forma que trabajas con POJOs persistentes. Un árbol XML analizado (parsed) "
+"puede ser pensado como sólo otra forma de representar los datos relacionales "
+"a nivel de objetos, en vez de POJOs."
 
-#: index.docbook:22
-msgid "Hibernate supports dom4j as API for manipulating XML trees. You can write queries that retrieve dom4j trees from the database and have any modification you make to the tree automatically synchronized to the database. You can even take an XML document, parse it using dom4j, and write it to the database with any of Hibernate's basic operations: <literal>persist(), saveOrUpdate(), merge(), delete(), replicate()</literal> (merging is not yet supported)."
-msgstr "Hibernate soporta dom4j como API para manipular árboles XML. Puedes escribir consultas que traigan árboles dom4j de la base de datos y tener cualquier modificación que hagas al árbol sincronizada automáticamente a la base de datos. Puedes incluso tomar un documento XML, analizarlo usando dom4j, y escribirlo a la base de datos con cualquiera de las operaciones básicas de Hibernate: <literal>persist(), saveOrUpdate(), merge(), delete(), replicate()</literal> (la fusión no está aún soportada)."
+#. Tag: para
+#: xml.xml:22
+#, no-c-format
+msgid ""
+"Hibernate supports dom4j as API for manipulating XML trees. You can write "
+"queries that retrieve dom4j trees from the database and have any "
+"modification you make to the tree automatically synchronized to the "
+"database. You can even take an XML document, parse it using dom4j, and write "
+"it to the database with any of Hibernate's basic operations: <literal>persist"
+"(), saveOrUpdate(), merge(), delete(), replicate()</literal> (merging is not "
+"yet supported)."
+msgstr ""
+"Hibernate soporta dom4j como API para manipular árboles XML. Puedes escribir "
+"consultas que traigan árboles dom4j de la base de datos y tener cualquier "
+"modificación que hagas al árbol sincronizada automáticamente a la base de "
+"datos. Puedes incluso tomar un documento XML, analizarlo usando dom4j, y "
+"escribirlo a la base de datos con cualquiera de las operaciones básicas de "
+"Hibernate: <literal>persist(), saveOrUpdate(), merge(), delete(), replicate()"
+"</literal> (la fusión no está aún soportada)."
 
-#: index.docbook:32
-msgid "This feature has many applications including data import/export, externalization of entity data via JMS or SOAP and XSLT-based reporting."
-msgstr "Esta funcionalidad tiene muchas aplicaciones incluyendo la importación/exportación de datos, externalización de datos de entidad vía JMS o SOAP y reportes basados en XSLT."
+#. Tag: para
+#: xml.xml:32
+#, no-c-format
+msgid ""
+"This feature has many applications including data import/export, "
+"externalization of entity data via JMS or SOAP and XSLT-based reporting."
+msgstr ""
+"Esta funcionalidad tiene muchas aplicaciones incluyendo la importación/"
+"exportación de datos, externalización de datos de entidad vía JMS o SOAP y "
+"reportes basados en XSLT."
 
-#: index.docbook:37
-msgid "A single mapping may be used to simultaneously map properties of a class and nodes of an XML document to the database, or, if there is no class to map, it may be used to map just the XML."
-msgstr "Un solo mapeo puede ser usado para mapear simultáneamente las propiedades de una clase y los nodos de un documento XML a la base de datos, o, si no hay ninguna clase a mapear, puede ser usado para mapear sólo el XML."
+#. Tag: para
+#: xml.xml:37
+#, no-c-format
+msgid ""
+"A single mapping may be used to simultaneously map properties of a class and "
+"nodes of an XML document to the database, or, if there is no class to map, "
+"it may be used to map just the XML."
+msgstr ""
+"Un solo mapeo puede ser usado para mapear simultáneamente las propiedades de "
+"una clase y los nodos de un documento XML a la base de datos, o, si no hay "
+"ninguna clase a mapear, puede ser usado para mapear sólo el XML."
 
-#: index.docbook:44
+#. Tag: title
+#: xml.xml:44
+#, no-c-format
 msgid "Specifying XML and class mapping together"
 msgstr "Especificando los mapeos de XML y de clase juntos"
 
-#: index.docbook:46
+#. Tag: para
+#: xml.xml:46
+#, no-c-format
 msgid "Here is an example of mapping a POJO and XML simultaneously:"
 msgstr "He aquí un ejemplo de mapear un POJO y XML simultáneamente:"
 
-#: index.docbook:50
+#. Tag: programlisting
+#: xml.xml:50
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Account\" \n"
-      "        table=\"ACCOUNTS\" \n"
-      "        node=\"account\">\n"
-      "        \n"
-      "    <id name=\"accountId\" \n"
-      "            column=\"ACCOUNT_ID\" \n"
-      "            node=\"@id\"/>\n"
-      "            \n"
-      "    <many-to-one name=\"customer\" \n"
-      "            column=\"CUSTOMER_ID\" \n"
-      "            node=\"customer/@id\" \n"
-      "            embed-xml=\"false\"/>\n"
-      "            \n"
-      "    <property name=\"balance\" \n"
-      "            column=\"BALANCE\" \n"
-      "            node=\"balance\"/>\n"
-      "            \n"
-      "    ...\n"
-      "    \n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Account\" \n"
+"        table=\"ACCOUNTS\" \n"
+"        node=\"account\">\n"
+"        \n"
+"    <id name=\"accountId\" \n"
+"            column=\"ACCOUNT_ID\" \n"
+"            node=\"@id\"/>\n"
+"            \n"
+"    <many-to-one name=\"customer\" \n"
+"            column=\"CUSTOMER_ID\" \n"
+"            node=\"customer/@id\" \n"
+"            embed-xml=\"false\"/>\n"
+"            \n"
+"    <property name=\"balance\" \n"
+"            column=\"BALANCE\" \n"
+"            node=\"balance\"/>\n"
+"            \n"
+"    ...\n"
+"    \n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"Account\" \n"
-      "        table=\"ACCOUNTS\" \n"
-      "        node=\"account\">\n"
-      "        \n"
-      "    <id name=\"accountId\" \n"
-      "            column=\"ACCOUNT_ID\" \n"
-      "            node=\"@id\"/>\n"
-      "            \n"
-      "    <many-to-one name=\"customer\" \n"
-      "            column=\"CUSTOMER_ID\" \n"
-      "            node=\"customer/@id\" \n"
-      "            embed-xml=\"false\"/>\n"
-      "            \n"
-      "    <property name=\"balance\" \n"
-      "            column=\"BALANCE\" \n"
-      "            node=\"balance\"/>\n"
-      "            \n"
-      "    ...\n"
-      "    \n"
-      "</class>]]>"
 
-#: index.docbook:54
+#. Tag: title
+#: xml.xml:54
+#, no-c-format
 msgid "Specifying only an XML mapping"
 msgstr "Especificando sólo un mapeo XML"
 
-#: index.docbook:56
+#. Tag: para
+#: xml.xml:56
+#, no-c-format
 msgid "Here is an example where there is no POJO class:"
 msgstr "He aquí un ejemplo donde no hay ninguna clase POJO:"
 
-#: index.docbook:60
+#. Tag: programlisting
+#: xml.xml:60
+#, no-c-format
 msgid ""
-      "<![CDATA[<class entity-name=\"Account\" \n"
-      "        table=\"ACCOUNTS\" \n"
-      "        node=\"account\">\n"
-      "        \n"
-      "    <id name=\"id\" \n"
-      "            column=\"ACCOUNT_ID\" \n"
-      "            node=\"@id\" \n"
-      "            type=\"string\"/>\n"
-      "            \n"
-      "    <many-to-one name=\"customerId\" \n"
-      "            column=\"CUSTOMER_ID\" \n"
-      "            node=\"customer/@id\" \n"
-      "            embed-xml=\"false\" \n"
-      "            entity-name=\"Customer\"/>\n"
-      "            \n"
-      "    <property name=\"balance\" \n"
-      "            column=\"BALANCE\" \n"
-      "            node=\"balance\" \n"
-      "            type=\"big_decimal\"/>\n"
-      "            \n"
-      "    ...\n"
-      "    \n"
-      "</class>]]>"
+"<![CDATA[<class entity-name=\"Account\" \n"
+"        table=\"ACCOUNTS\" \n"
+"        node=\"account\">\n"
+"        \n"
+"    <id name=\"id\" \n"
+"            column=\"ACCOUNT_ID\" \n"
+"            node=\"@id\" \n"
+"            type=\"string\"/>\n"
+"            \n"
+"    <many-to-one name=\"customerId\" \n"
+"            column=\"CUSTOMER_ID\" \n"
+"            node=\"customer/@id\" \n"
+"            embed-xml=\"false\" \n"
+"            entity-name=\"Customer\"/>\n"
+"            \n"
+"    <property name=\"balance\" \n"
+"            column=\"BALANCE\" \n"
+"            node=\"balance\" \n"
+"            type=\"big_decimal\"/>\n"
+"            \n"
+"    ...\n"
+"    \n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class entity-name=\"Account\" \n"
-      "        table=\"ACCOUNTS\" \n"
-      "        node=\"account\">\n"
-      "        \n"
-      "    <id name=\"id\" \n"
-      "            column=\"ACCOUNT_ID\" \n"
-      "            node=\"@id\" \n"
-      "            type=\"string\"/>\n"
-      "            \n"
-      "    <many-to-one name=\"customerId\" \n"
-      "            column=\"CUSTOMER_ID\" \n"
-      "            node=\"customer/@id\" \n"
-      "            embed-xml=\"false\" \n"
-      "            entity-name=\"Customer\"/>\n"
-      "            \n"
-      "    <property name=\"balance\" \n"
-      "            column=\"BALANCE\" \n"
-      "            node=\"balance\" \n"
-      "            type=\"big_decimal\"/>\n"
-      "            \n"
-      "    ...\n"
-      "    \n"
-      "</class>]]>"
 
-#: index.docbook:62
-msgid "This mapping allows you to access the data as a dom4j tree, or as a graph of property name/value pairs (java <literal>Map</literal>s). The property names are purely logical constructs that may be referred to in HQL queries."
-msgstr "Este mapeo te permite acceder a los datos como un árbol dom4j, o como un grafo de pares nombre/valor de propiedad (<literal>Map</literal>s de Java). Los nombres de propiedades son construcciones puramente lógicas a las que se puede hacer referencia en consultas HQL."
+#. Tag: para
+#: xml.xml:62
+#, no-c-format
+msgid ""
+"This mapping allows you to access the data as a dom4j tree, or as a graph of "
+"property name/value pairs (java <literal>Map</literal>s). The property names "
+"are purely logical constructs that may be referred to in HQL queries."
+msgstr ""
+"Este mapeo te permite acceder a los datos como un árbol dom4j, o como un "
+"grafo de pares nombre/valor de propiedad (<literal>Map</literal>s de Java). "
+"Los nombres de propiedades son construcciones puramente lógicas a las que se "
+"puede hacer referencia en consultas HQL."
 
-#: index.docbook:73
+#. Tag: title
+#: xml.xml:73
+#, no-c-format
 msgid "XML mapping metadata"
 msgstr "Mapeo de metadatos XML"
 
-#: index.docbook:75
-msgid "Many Hibernate mapping elements accept the <literal>node</literal> attribute. This let's you specify the name of an XML attribute or element that holds the property or entity data. The format of the <literal>node</literal> attribute must be one of the following:"
-msgstr "Muchos elementos de mapeo de Hibernate aceptan el atributo <literal>node</literal>. Esto te permite espcificar el nombre de un atributo o elemento XML que contenga los datos de la propiedad o entidad. El formato del atributo <literal>node</literal> debe ser uno de los siguientes:"
+#. Tag: para
+#: xml.xml:75
+#, no-c-format
+msgid ""
+"Many Hibernate mapping elements accept the <literal>node</literal> "
+"attribute. This let's you specify the name of an XML attribute or element "
+"that holds the property or entity data. The format of the <literal>node</"
+"literal> attribute must be one of the following:"
+msgstr ""
+"Muchos elementos de mapeo de Hibernate aceptan el atributo <literal>node</"
+"literal>. Esto te permite espcificar el nombre de un atributo o elemento XML "
+"que contenga los datos de la propiedad o entidad. El formato del atributo "
+"<literal>node</literal> debe ser uno de los siguientes:"
 
-#: index.docbook:84
+#. Tag: para
+#: xml.xml:84
+#, no-c-format
 msgid "<literal>\"element-name\"</literal> - map to the named XML element"
 msgstr "<literal>\"element-name\"</literal> - mapea al elemento XML mencionado"
 
-#: index.docbook:87
+#. Tag: para
+#: xml.xml:87
+#, no-c-format
 msgid "<literal>\"@attribute-name\"</literal> - map to the named XML attribute"
-msgstr "<literal>\"@attribute-name\"</literal> - mapea al atributo XML mencionado"
+msgstr ""
+"<literal>\"@attribute-name\"</literal> - mapea al atributo XML mencionado"
 
-#: index.docbook:90
+#. Tag: para
+#: xml.xml:90
+#, no-c-format
 msgid "<literal>\".\"</literal> - map to the parent element"
 msgstr "<literal>\".\"</literal> - mapea al elemento padre"
 
-#: index.docbook:93
-msgid "<literal>\"element-name/@attribute-name\"</literal> - map to the named attribute of the named element"
-msgstr "<literal>\"element-name/@attribute-name\"</literal> - mapea al atributo mencionado del elemento mencionado"
+#. Tag: para
+#: xml.xml:93
+#, no-c-format
+msgid ""
+"<literal>\"element-name/@attribute-name\"</literal> - map to the named "
+"attribute of the named element"
+msgstr ""
+"<literal>\"element-name/@attribute-name\"</literal> - mapea al atributo "
+"mencionado del elemento mencionado"
 
-#: index.docbook:100
-msgid "For collections and single valued associations, there is an additional <literal>embed-xml</literal> attribute. If <literal>embed-xml=\"true\"</literal>, the default, the XML tree for the associated entity (or collection of value type) will be embedded directly in the XML tree for the entity that owns the association. Otherwise, if <literal>embed-xml=\"false\"</literal>, then only the referenced identifier value will appear in the XML for single point associations and collections will simply not appear at all."
-msgstr "Para las colecciones y asociaciones monovaluadas, existe un atributo adicional <literal>embed-xml</literal>. Si <literal>embed-xml=\"true\"</literal>, que es el valor por defecto, el árbol XML para la entidad asociada (o colección de tipo de valor) será embebida directamente en el árbol XML para la entidad que posee la asociación. En otro caso, si <literal>embed-xml=\"false\"</literal>, sólo el valor identificador referenciado aparecerá en el XML para asociaciones de punto único y para las colecciones simplemente no aparecerá en absoluto."
+#. Tag: para
+#: xml.xml:100
+#, no-c-format
+msgid ""
+"For collections and single valued associations, there is an additional "
+"<literal>embed-xml</literal> attribute. If <literal>embed-xml=\"true\"</"
+"literal>, the default, the XML tree for the associated entity (or collection "
+"of value type) will be embedded directly in the XML tree for the entity that "
+"owns the association. Otherwise, if <literal>embed-xml=\"false\"</literal>, "
+"then only the referenced identifier value will appear in the XML for single "
+"point associations and collections will simply not appear at all."
+msgstr ""
+"Para las colecciones y asociaciones monovaluadas, existe un atributo "
+"adicional <literal>embed-xml</literal>. Si <literal>embed-xml=\"true\"</"
+"literal>, que es el valor por defecto, el árbol XML para la entidad asociada "
+"(o colección de tipo de valor) será embebida directamente en el árbol XML "
+"para la entidad que posee la asociación. En otro caso, si <literal>embed-xml="
+"\"false\"</literal>, sólo el valor identificador referenciado aparecerá en "
+"el XML para asociaciones de punto único y para las colecciones simplemente "
+"no aparecerá en absoluto."
 
-#: index.docbook:110
-msgid "You should be careful not to leave <literal>embed-xml=\"true\"</literal> for too many associations, since XML does not deal well with circularity!"
-msgstr "¡Debes ser cuidadoso de no dejar <literal>embed-xml=\"true\"</literal> para demasiadas asociaciones, ya que XML no trata bien la circularidad!"
+#. Tag: para
+#: xml.xml:110
+#, no-c-format
+msgid ""
+"You should be careful not to leave <literal>embed-xml=\"true\"</literal> for "
+"too many associations, since XML does not deal well with circularity!"
+msgstr ""
+"¡Debes ser cuidadoso de no dejar <literal>embed-xml=\"true\"</literal> para "
+"demasiadas asociaciones, ya que XML no trata bien la circularidad!"
 
-#: index.docbook:115
+#. Tag: programlisting
+#: xml.xml:115
+#, no-c-format
 msgid ""
-      "<![CDATA[<class name=\"Customer\" \n"
-      "        table=\"CUSTOMER\" \n"
-      "        node=\"customer\">\n"
-      "        \n"
-      "    <id name=\"id\" \n"
-      "            column=\"CUST_ID\" \n"
-      "            node=\"@id\"/>\n"
-      "            \n"
-      "    <map name=\"accounts\" \n"
-      "            node=\".\" \n"
-      "            embed-xml=\"true\">\n"
-      "        <key column=\"CUSTOMER_ID\" \n"
-      "                not-null=\"true\"/>\n"
-      "        <map-key column=\"SHORT_DESC\" \n"
-      "                node=\"@short-desc\" \n"
-      "                type=\"string\"/>\n"
-      "        <one-to-many entity-name=\"Account\"\n"
-      "                embed-xml=\"false\" \n"
-      "                node=\"account\"/>\n"
-      "    </map>\n"
-      "    \n"
-      "    <component name=\"name\" \n"
-      "            node=\"name\">\n"
-      "        <property name=\"firstName\" \n"
-      "                node=\"first-name\"/>\n"
-      "        <property name=\"initial\" \n"
-      "                node=\"initial\"/>\n"
-      "        <property name=\"lastName\" \n"
-      "                node=\"last-name\"/>\n"
-      "    </component>\n"
-      "    \n"
-      "    ...\n"
-      "    \n"
-      "</class>]]>"
+"<![CDATA[<class name=\"Customer\" \n"
+"        table=\"CUSTOMER\" \n"
+"        node=\"customer\">\n"
+"        \n"
+"    <id name=\"id\" \n"
+"            column=\"CUST_ID\" \n"
+"            node=\"@id\"/>\n"
+"            \n"
+"    <map name=\"accounts\" \n"
+"            node=\".\" \n"
+"            embed-xml=\"true\">\n"
+"        <key column=\"CUSTOMER_ID\" \n"
+"                not-null=\"true\"/>\n"
+"        <map-key column=\"SHORT_DESC\" \n"
+"                node=\"@short-desc\" \n"
+"                type=\"string\"/>\n"
+"        <one-to-many entity-name=\"Account\"\n"
+"                embed-xml=\"false\" \n"
+"                node=\"account\"/>\n"
+"    </map>\n"
+"    \n"
+"    <component name=\"name\" \n"
+"            node=\"name\">\n"
+"        <property name=\"firstName\" \n"
+"                node=\"first-name\"/>\n"
+"        <property name=\"initial\" \n"
+"                node=\"initial\"/>\n"
+"        <property name=\"lastName\" \n"
+"                node=\"last-name\"/>\n"
+"    </component>\n"
+"    \n"
+"    ...\n"
+"    \n"
+"</class>]]>"
 msgstr ""
-      "<![CDATA[<class name=\"Customer\" \n"
-      "        table=\"CUSTOMER\" \n"
-      "        node=\"customer\">\n"
-      "        \n"
-      "    <id name=\"id\" \n"
-      "            column=\"CUST_ID\" \n"
-      "            node=\"@id\"/>\n"
-      "            \n"
-      "    <map name=\"accounts\" \n"
-      "            node=\".\" \n"
-      "            embed-xml=\"true\">\n"
-      "        <key column=\"CUSTOMER_ID\" \n"
-      "                not-null=\"true\"/>\n"
-      "        <map-key column=\"SHORT_DESC\" \n"
-      "                node=\"@short-desc\" \n"
-      "                type=\"string\"/>\n"
-      "        <one-to-many entity-name=\"Account\"\n"
-      "                embed-xml=\"false\" \n"
-      "                node=\"account\"/>\n"
-      "    </map>\n"
-      "    \n"
-      "    <component name=\"name\" \n"
-      "            node=\"name\">\n"
-      "        <property name=\"firstName\" \n"
-      "                node=\"first-name\"/>\n"
-      "        <property name=\"initial\" \n"
-      "                node=\"initial\"/>\n"
-      "        <property name=\"lastName\" \n"
-      "                node=\"last-name\"/>\n"
-      "    </component>\n"
-      "    \n"
-      "    ...\n"
-      "    \n"
-      "</class>]]>"
 
-#: index.docbook:117
-msgid "in this case, we have decided to embed the collection of account ids, but not the actual account data. The following HQL query:"
-msgstr "en este caso, hemos decidido embeber la colección de ids de cuenta, pero no los datos reales de cuenta. La siguiente consulta HQL:"
+#. Tag: para
+#: xml.xml:117
+#, no-c-format
+msgid ""
+"in this case, we have decided to embed the collection of account ids, but "
+"not the actual account data. The following HQL query:"
+msgstr ""
+"en este caso, hemos decidido embeber la colección de ids de cuenta, pero no "
+"los datos reales de cuenta. La siguiente consulta HQL:"
 
-#: index.docbook:122
-msgid "<![CDATA[from Customer c left join fetch c.accounts where c.lastName like :lastName]]>"
-msgstr "<![CDATA[from Customer c left join fetch c.accounts where c.lastName like :lastName]]>"
+#. Tag: programlisting
+#: xml.xml:122
+#, no-c-format
+msgid ""
+"<![CDATA[from Customer c left join fetch c.accounts where c.lastName like :"
+"lastName]]>"
+msgstr ""
 
-#: index.docbook:124
+#. Tag: para
+#: xml.xml:124
+#, no-c-format
 msgid "Would return datasets such as this:"
 msgstr "devolvería conjuntos de datos como estos:"
 
-#: index.docbook:128
+#. Tag: programlisting
+#: xml.xml:128
+#, no-c-format
 msgid ""
-      "<![CDATA[<customer id=\"123456789\">\n"
-      "    <account short-desc=\"Savings\">987632567</account>\n"
-      "    <account short-desc=\"Credit Card\">985612323</account>\n"
-      "    <name>\n"
-      "        <first-name>Gavin</first-name>\n"
-      "        <initial>A</initial>\n"
-      "        <last-name>King</last-name>\n"
-      "    </name>\n"
-      "    ...\n"
-      "</customer>]]>"
+"<![CDATA[<customer id=\"123456789\">\n"
+"    <account short-desc=\"Savings\">987632567</account>\n"
+"    <account short-desc=\"Credit Card\">985612323</account>\n"
+"    <name>\n"
+"        <first-name>Gavin</first-name>\n"
+"        <initial>A</initial>\n"
+"        <last-name>King</last-name>\n"
+"    </name>\n"
+"    ...\n"
+"</customer>]]>"
 msgstr ""
-      "<![CDATA[<customer id=\"123456789\">\n"
-      "    <account short-desc=\"Savings\">987632567</account>\n"
-      "    <account short-desc=\"Credit Card\">985612323</account>\n"
-      "    <name>\n"
-      "        <first-name>Gavin</first-name>\n"
-      "        <initial>A</initial>\n"
-      "        <last-name>King</last-name>\n"
-      "    </name>\n"
-      "    ...\n"
-      "</customer>]]>"
 
-#: index.docbook:130
-msgid "If you set <literal>embed-xml=\"true\"</literal> on the <literal>&lt;one-to-many&gt;</literal> mapping, the data might look more like this:"
-msgstr "Si estableces <literal>embed-xml=\"true\"</literal> en el mapeo <literal>&lt;one-to-many&gt;</literal>, los datos podrían verse así:"
+#. Tag: para
+#: xml.xml:130
+#, no-c-format
+msgid ""
+"If you set <literal>embed-xml=\"true\"</literal> on the <literal>&lt;one-to-"
+"many&gt;</literal> mapping, the data might look more like this:"
+msgstr ""
+"Si estableces <literal>embed-xml=\"true\"</literal> en el mapeo <literal>&lt;"
+"one-to-many&gt;</literal>, los datos podrían verse así:"
 
-#: index.docbook:135
+#. Tag: programlisting
+#: xml.xml:135
+#, no-c-format
 msgid ""
-      "<![CDATA[<customer id=\"123456789\">\n"
-      "    <account id=\"987632567\" short-desc=\"Savings\">\n"
-      "        <customer id=\"123456789\"/>\n"
-      "        <balance>100.29</balance>\n"
-      "    </account>\n"
-      "    <account id=\"985612323\" short-desc=\"Credit Card\">\n"
-      "        <customer id=\"123456789\"/>\n"
-      "        <balance>-2370.34</balance>\n"
-      "    </account>\n"
-      "    <name>\n"
-      "        <first-name>Gavin</first-name>\n"
-      "        <initial>A</initial>\n"
-      "        <last-name>King</last-name>\n"
-      "    </name>\n"
-      "    ...\n"
-      "</customer>]]>"
+"<![CDATA[<customer id=\"123456789\">\n"
+"    <account id=\"987632567\" short-desc=\"Savings\">\n"
+"        <customer id=\"123456789\"/>\n"
+"        <balance>100.29</balance>\n"
+"    </account>\n"
+"    <account id=\"985612323\" short-desc=\"Credit Card\">\n"
+"        <customer id=\"123456789\"/>\n"
+"        <balance>-2370.34</balance>\n"
+"    </account>\n"
+"    <name>\n"
+"        <first-name>Gavin</first-name>\n"
+"        <initial>A</initial>\n"
+"        <last-name>King</last-name>\n"
+"    </name>\n"
+"    ...\n"
+"</customer>]]>"
 msgstr ""
-      "<![CDATA[<customer id=\"123456789\">\n"
-      "    <account id=\"987632567\" short-desc=\"Savings\">\n"
-      "        <customer id=\"123456789\"/>\n"
-      "        <balance>100.29</balance>\n"
-      "    </account>\n"
-      "    <account id=\"985612323\" short-desc=\"Credit Card\">\n"
-      "        <customer id=\"123456789\"/>\n"
-      "        <balance>-2370.34</balance>\n"
-      "    </account>\n"
-      "    <name>\n"
-      "        <first-name>Gavin</first-name>\n"
-      "        <initial>A</initial>\n"
-      "        <last-name>King</last-name>\n"
-      "    </name>\n"
-      "    ...\n"
-      "</customer>]]>"
 
-#: index.docbook:141
+#. Tag: title
+#: xml.xml:141
+#, no-c-format
 msgid "Manipulating XML data"
 msgstr "Manipulando datos XML"
 
-#: index.docbook:143
-msgid "Let's rearead and update XML documents in the application. We do this by obtaining a dom4j session:"
-msgstr "Vamos a releer y actualizar documentos XML en la aplicación. Hacemos esto obteniendo una sesión dom4j:"
+#. Tag: para
+#: xml.xml:143
+#, no-c-format
+msgid ""
+"Let's rearead and update XML documents in the application. We do this by "
+"obtaining a dom4j session:"
+msgstr ""
+"Vamos a releer y actualizar documentos XML en la aplicación. Hacemos esto "
+"obteniendo una sesión dom4j:"
 
-#: index.docbook:148
+#. Tag: programlisting
+#: xml.xml:148
+#, no-c-format
 msgid ""
-      "<![CDATA[Document doc = ....;\n"
-      "       \n"
-      "Session session = factory.openSession();\n"
-      "Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
-      "Transaction tx = session.beginTransaction();\n"
-      "\n"
-      "List results = dom4jSession\n"
-      "    .createQuery(\"from Customer c left join fetch c.accounts where c.lastName like :lastName\")\n"
-      "    .list();\n"
-      "for ( int i=0; i<results.size(); i++ ) {\n"
-      "    //add the customer data to the XML document\n"
-      "    Element customer = (Element) results.get(i);\n"
-      "    doc.add(customer);\n"
-      "}\n"
-      "\n"
-      "tx.commit();\n"
-      "session.close();]]>"
+"<![CDATA[Document doc = ....;\n"
+"       \n"
+"Session session = factory.openSession();\n"
+"Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
+"Transaction tx = session.beginTransaction();\n"
+"\n"
+"List results = dom4jSession\n"
+"    .createQuery(\"from Customer c left join fetch c.accounts where c."
+"lastName like :lastName\")\n"
+"    .list();\n"
+"for ( int i=0; i<results.size(); i++ ) {\n"
+"    //add the customer data to the XML document\n"
+"    Element customer = (Element) results.get(i);\n"
+"    doc.add(customer);\n"
+"}\n"
+"\n"
+"tx.commit();\n"
+"session.close();]]>"
 msgstr ""
-      "<![CDATA[Document doc = ....;\n"
-      "       \n"
-      "Session session = factory.openSession();\n"
-      "Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
-      "Transaction tx = session.beginTransaction();\n"
-      "\n"
-      "List results = dom4jSession\n"
-      "    .createQuery(\"from Customer c left join fetch c.accounts where c.lastName like :lastName\")\n"
-      "    .list();\n"
-      "for ( int i=0; i<results.size(); i++ ) {\n"
-      "    //add the customer data to the XML document\n"
-      "    Element customer = (Element) results.get(i);\n"
-      "    doc.add(customer);\n"
-      "}\n"
-      "\n"
-      "tx.commit();\n"
-      "session.close();]]>"
 
-#: index.docbook:150
+#. Tag: programlisting
+#: xml.xml:150
+#, no-c-format
 msgid ""
-      "<![CDATA[Session session = factory.openSession();\n"
-      "Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
-      "Transaction tx = session.beginTransaction();\n"
-      "\n"
-      "Element cust = (Element) dom4jSession.get(\"Customer\", customerId);\n"
-      "for ( int i=0; i<results.size(); i++ ) {\n"
-      "    Element customer = (Element) results.get(i);\n"
-      "    //change the customer name in the XML and database\n"
-      "    Element name = customer.element(\"name\");\n"
-      "    name.element(\"first-name\").setText(firstName);\n"
-      "    name.element(\"initial\").setText(initial);\n"
-      "    name.element(\"last-name\").setText(lastName);\n"
-      "}\n"
-      "\n"
-      "tx.commit();\n"
-      "session.close();]]>"
+"<![CDATA[Session session = factory.openSession();\n"
+"Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
+"Transaction tx = session.beginTransaction();\n"
+"\n"
+"Element cust = (Element) dom4jSession.get(\"Customer\", customerId);\n"
+"for ( int i=0; i<results.size(); i++ ) {\n"
+"    Element customer = (Element) results.get(i);\n"
+"    //change the customer name in the XML and database\n"
+"    Element name = customer.element(\"name\");\n"
+"    name.element(\"first-name\").setText(firstName);\n"
+"    name.element(\"initial\").setText(initial);\n"
+"    name.element(\"last-name\").setText(lastName);\n"
+"}\n"
+"\n"
+"tx.commit();\n"
+"session.close();]]>"
 msgstr ""
-      "<![CDATA[Session session = factory.openSession();\n"
-      "Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
-      "Transaction tx = session.beginTransaction();\n"
-      "\n"
-      "Element cust = (Element) dom4jSession.get(\"Customer\", customerId);\n"
-      "for ( int i=0; i<results.size(); i++ ) {\n"
-      "    Element customer = (Element) results.get(i);\n"
-      "    //change the customer name in the XML and database\n"
-      "    Element name = customer.element(\"name\");\n"
-      "    name.element(\"first-name\").setText(firstName);\n"
-      "    name.element(\"initial\").setText(initial);\n"
-      "    name.element(\"last-name\").setText(lastName);\n"
-      "}\n"
-      "\n"
-      "tx.commit();\n"
-      "session.close();]]>"
 
-#: index.docbook:152
-msgid "It is extremely useful to combine this feature with Hibernate's <literal>replicate()</literal> operation to implement XML-based data import/export."
-msgstr "Es extremadamente útil combinar esta funcionalidad con la operación <literal>replicate()</literal> de Hibernate para implementar la importación/exportación de datos basada en XML."
-
-msgid "ROLES_OF_TRANSLATORS"
-msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
-
-msgid "CREDIT_FOR_TRANSLATORS"
-msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
-
+#. Tag: para
+#: xml.xml:152
+#, no-c-format
+msgid ""
+"It is extremely useful to combine this feature with Hibernate's "
+"<literal>replicate()</literal> operation to implement XML-based data import/"
+"export."
+msgstr ""
+"Es extremadamente útil combinar esta funcionalidad con la operación "
+"<literal>replicate()</literal> de Hibernate para implementar la importación/"
+"exportación de datos basada en XML."




More information about the hibernate-commits mailing list