>Este capítulo apunta las características avanzadas de &quantaplus; y cómo usarlas. </para>
<sect1 id="xml-tools-3-2">
<title
>Herramientas &XML;</title>
<para
>La versión 3.2 de &quantaplus; viene con muchas características y herramientas &XML; nuevas. Las herramientas son únicas en su integración con &quantaplus;. Todas estas herramientas usan <application
>Kommander</application
> como interfaz y <application
>libxml2</application
> y <application
>libxslt</application
> como respaldo. La combinación de ambos hace de las herramientas un todo rápido, eficiente, productivo y completo. </para>
<sect2 id="kde-db-3-2">
<title
>Herramientas de documentación de &kde;</title>
<para
>&quantaplus; admite dos herramientas de documentación principales de &kde;: <command
>meinproc</command
> y <command
>checkXML</command
>. </para>
<sect3 id="meinproc-3-2">
<title
><command
>meinproc</command
></title>
<para
>Cualquiera que haya trabajado con la documentación de &kde; conoce <command
>meinproc</command
> y lo bueno que es. Bien, pues dele una oportunidad a un gran interfaz gráfico. No es necesario volver a la shell. Simplemente haga clic sobre el icono que se parece a un procesador y ya está. </para>
<variablelist>
<varlistentry>
<term
><guilabel
>Carpeta de trabajo actual</guilabel
></term>
<listitem>
<para
>Esta aplicación espera que esté presente en la carpeta un archivo <filename
>index.docbook</filename
>. Si <filename
>index.docbook</filename
> está en la carpeta de trabajo actual, simplemente deje marcado <guilabel
>Carpeta de trabajo actual</guilabel
>. Si no lo está, desmarque <guilabel
>Carpeta de trabajo actual</guilabel
> e indique la carpeta que quiera procesar en el campo <guilabel
>Otra carpeta</guilabel
>. </para>
</listitem>
</varlistentry>
</variablelist>
<note>
<para
>Los archivos de salida se ubican en la misma carpeta que los archivos fuente. Todos los archivos &HTML; se eliminan cada vez que se ejecuta <command
>meinproc</command
>. </para>
</note>
</sect3>
<sect3 id="checkxml-3-2">
<title
><command
>checkXML</command
></title>
<para
>De nuevo, cualquiera que haya trabajado con la documentación de &kde; conoce esta útil aplicación. De nuevo, &quantaplus; proporciona un pequeño gran interfaz gráfico. </para>
<variablelist>
<varlistentry>
<term
><guilabel
>Carpeta de trabajo actual</guilabel
></term>
<listitem>
<para
>Si el archivo que está abierto actualmente es <filename
>index.docbook</filename
>, simplemente deje marcado <guilabel
>Carpeta de trabajo actual</guilabel
>. Si no, desmarque <guilabel
>Carpeta de trabajo actual</guilabel
> e indique la carpeta en la que se encuentre <filename
>index.docbook</filename
>. </para>
</listitem>
</varlistentry>
</variablelist>
<note>
<title
>Salida</title>
<para
>Si hay salida, su archivo no es válido. Corrija los errores de los que se informe y pruebe de nuevo. </para>
</note>
</sect3>
</sect2>
<sect2 id="xmlval-3-2">
<title
>Validación &XML;</title>
<para
>&quantaplus; tiene una gran herramienta de validación &XML; que usa como respaldo <command
>xmllint</command
>. </para>
<variablelist>
<varlistentry>
<term
><guilabel
>Archivo actual</guilabel
></term>
<listitem>
<para
>Si el archivo que se va a validar tiene actualmente el foco en &quantaplus;, simplemente deje marcado <guilabel
>Archivo actual</guilabel
>. Si no, desmarque <guilabel
>Archivo actual</guilabel
> y elija el archivo que vaya a validar del selector de archivo Otro. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Verificación bien formada</guilabel
></term>
<listitem>
<para
>Si sólo desea saber si el archivo está bien formado, haga clic sobre la casilla de verificación <guilabel
>Comprobar sólo si está bien formado</guilabel
>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>&URI; de la definición</guilabel
></term>
<listitem>
<para
>Si está usando una &DTD; y se especifica en el archivo &XML;, seleccione la &DTD; (Interna) (predefinida). Si no, elija la &DTD; (Externa) y localice la &DTD; con el selector de archivos de la &URI; de la definición. Se necesitan tanto el esquema &W3C; &XML; como la validación RelaxNG para ser definido externamente por medio del selector de archivo <guilabel
>&URI; de la definición</guilabel
>. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="xsltproc-3-2">
<title
>Procesamiento &XSL;</title>
<para
>Sí, &quantaplus; también tiene una herramienta de procesamiento &XSL;. Usa la herramienta <command
>xsltproc</command
> que viene con <application
>libxml2</application
>. </para>
<variablelist>
<varlistentry>
<term
><guilabel
>Archivo actual</guilabel
></term>
<listitem>
<para
>Si el archivo que se va a procesar tiene el foco en &quantaplus;, simplemente deje marcado <guilabel
>Archivo actual</guilabel
>. Si no lo está, desmarque <guilabel
>Archivo actual</guilabel
> y elija el archivo que se va a procesar del selector <guilabel
>Otro archivo</guilabel
>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Hoja de estilo</term>
<listitem>
<para
>Selecciona el archivo &XSL; que quiera usar. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Nombre del archivo de salida</guilabel
></term>
<listitem>
<para
>Indique el nombre del archivo que quiera para el archivo resultado. De forma predeterminada, el archivo de salida se coloca en su carpeta de inicio. </para>
</listitem>
</varlistentry>
</variablelist>
<note>
<para
>Esta aplicación carece de flexibilidad. Lo sentimos. Intentaremos hacerlo mejor la próxima vez. </para>
>&quantaplus; puede cargar accesorios, que son KPart. El entorno KPart es otro de los potentes entornos de &kde;. Una KPart es un contenedor de funcionalidad relativamente pequeño y reutilizable. Permite a los desarrolladores de &kde; basarse en el trabajo de otros probamadores. Un ejemplo de esto es el propio &quantaplus;. El editor &quantaplus; usa la KPart &kate;. La KPart &kate; ya tiene plena funcionalidad para lo que necesita &quantaplus;, como resaltado de sintaxis. Al integrarlo en &quantaplus;, los desarrolladores de &quantaplus; se pueden permitir centrar su trabajo en lo que podría hacer &quantaplus;, en lugar de tener que afrontar los muchos problemas que traería la escritura desde cero de un componente/KPart editor. </para>
<para
>Los accesorios que carga &quantaplus; pueden no tener que tener nada que ver con el propio &quantaplus;. Esto lo hace un sistema de accesorios muy potente. Se puede beneficiar de funcionalidad extra y no tiene que esperar hasta que alguien lo integre en &quantaplus;. Los accesorios se pueden cargar en varios elementos del &GUI;. Más abajo se habla sobre esto. </para>
</sect2>
<sect2 id="plugin-dialog-3-2">
<title
>Comprender el cuadro de diálogo editar accesorio</title>
<para
>Para instalar un accesorio o una KPart se trabaja desde el menú <menuchoice
> <guimenu
>Accesorios</guimenu
> <guimenuitem
>Editar</guimenuitem
> </menuchoice
>. Esto hará surgir el siguiente cuadro de diálogo: </para>
>Este cuadro de diálogo le permite gestionar todos los accesorios definidos y le permite añadir otros nuevos. Aquí se describen todos los elementos de &GUI;: <variablelist>
<varlistentry>
<term
><guilabel
>Rutas de búsqueda</guilabel
></term>
<listitem>
<para
>Aquí puede completar una patrón de búsqueda. Al agregar un accesorio sin <guilabel
>Ubicación</guilabel
>, &quantaplus; buscará esas rutas para encontrar el accesorio. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Añadir</guilabel
></term>
<listitem>
<para
>Hará surgir un cuadro de diálogo que le permite agregar un accesorio. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Configurar</guilabel
></term>
<listitem>
<para
>Le permite cambiar las preferencias de un accesorio en particular. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Eliminar</guilabel
></term>
<listitem>
<para
>Elimina el accesorio que esté seleccionado en ese momento. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Refrescar</guilabel
></term>
<listitem>
<para
>Refresca el contenido del cuadro de diálogo. </para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para
>Lea <xref linkend="configure-plugins"/> para saber más acerca de los complementos.</para>
</sect2>
</sect1>
<sect1 id="team-members">
<title
>Equipo de desarrollo</title>
<para
>A menudo hay más de una persona trabajando en el proyecto, y hay algún tipo de relación jerárquica entre los miembros del equipo. &quantaplus; admite la noción de miembros del equipo, y se puede configurar en el cuadro de diálogo <menuchoice
>El cuadro de diálogo de edición de miembros del equipo.</para
></caption>
</mediaobject>
<para
>Las entradas <guilabel
>Nombre</guilabel
> y <guilabel
>Correo electrónico</guilabel
> se explican por sí mismas. <guilabel
>Apodo</guilabel
> es al apodo del usuario y se utiliza como identificador único. </para>
<para
><guilabel
>Rol</guilabel
> indica el papel del miembro en el proyecto y puede ser uno de los siguientes: <itemizedlist>
<listitem
><para>
<guilabel
>Líder del equipo</guilabel>
</para
></listitem>
<listitem
><para>
<guilabel
>Líder de subproyecto</guilabel>
</para
></listitem>
<listitem
><para>
<guilabel
>Líder de tarea</guilabel>
</para
></listitem>
<listitem
><para>
<guilabel
>Miembro normal</guilabel>
</para
></listitem>
</itemizedlist>
</para>
<para
><guilabel
>Tarea</guilabel
> es una descripción de la tarea asignada a este miembro.</para>
<para
><guilabel
>Subproyecto</guilabel
>: puede seleccionar una lista de subproyectos. Los subproyectos se pueden configurar y crear pulsando el botón <guilabel
>Editar subproyectos</guilabel
>. Cada subproyecto tiene un nombre visible de usuario y una entrada de ubicación, esta última indicando una ruta relativa a un directorio en el árbol del proyecto. Esto significa que un subproyecto es un directorio del proyecto principal. Por ejemplo, el proyecto principal puede ser el sitio web de su empresa, y un subproyecto puede ser el sitio web de la intranet, ubicado en la carpeta <filename path="intranet"
>intranet</filename
> del proyecto.</para>
<para
>Un miembro puede tener más de un rol en el proyecto, como por ejemplo líder del equipo y líder de subproyecto.</para>
<para
>El usuario debería seleccionarse a sí mismo de la lista de integrantes del equipo. Lo puede hacer seleccionando un integrante del equipo de la lista y presionando el botón <guilabel
>Definir como usted mismo</guilabel
>. El integrante seleccionado actualmente (su identidad) debe aparecer en negrita detrás del texto <guilabel
>Usted es:</guilabel
>.</para>
<para
>Los apodos y la definición de su propia identidad es importante en lo que relativo a la mensajería y a las anotaciones. Puede dirigirse a <xref linkend="annotations"/> para saber más sobre las anotaciones.</para>
<para
>Además de seguir la pista de su equipo, hay una ventaja más si se definen los miembros del equipo: puede configurar un evento para informar a los líderes del equipo que ha sucedido algo. Tiene más información sobre cómo hacer esto en <xref linkend="event-actions"/>.</para>
</sect1>
<sect1 id="event-actions">
<title
>Acciones de eventos</title>
<para
>Las acciones de eventos se producen cuando ocurre algún evento en el proyecto. Un ejemplo sería registrar cuándo se abre y se cierra el proyecto, de tal forma que pueda revisar posteriormente cuánto se ha trabajado en el proyecto, o enviar un correo cuando se guarde un archivo, o añadir el archivo al CVS con la ayuda de un guión cuando el archivo se añada al proyecto. Y la lista continúa.</para>
<para
>En la página <guilabel
>Configuración de eventos</guilabel
> del cuadro de diálogo <menuchoice
> <shortcut
> <keycombo action="simul"
>&Shift;<keycap
>F7</keycap
></keycombo
> </shortcut
> <guimenu
>Proyecto</guimenu
> <guimenuitem
>Propiedades del proyecto</guimenuitem
> </menuchoice
> puede crear, editar y eliminar acciones de eventos. </para>
>El cuadro de diálogo de edición de eventos.</para
></caption>
</mediaobject>
<para
>Las entradas del cuadro de diálogo son:</para>
<variablelist>
<varlistentry>
<term
><guilabel
>Evento</guilabel
></term>
<listitem
><para
>la acción se produce cuando sucede el evento de la lista seleccionado. Los nombres de los eventos se explican por sí mismos.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Acción</guilabel
></term>
<listitem
><para
>el tipo de acción que se produce. Las opciones posibles son </para>
<variablelist>
<varlistentry>
<term
><guilabel
>Acción que no sea de guión</guilabel
></term>
<listitem
><para
>una acción que no sea un guión definido por el usuario . Puede ver en <xref linkend="user-actions"/> algunas acciones de usuario. </para>
<para
><guilabel
>Nombre de la acción</guilabel
> indica qué acción se debe ejecutar cuando suceda el evento.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Enviar correo-e</guilabel
></term>
<listitem
><para
>se envía un correo-e al destinatario seleccionado en la lista <guilabel
>Destinatario</guilabel
> cuando sucede la acción. El destinatario puede ser un equipo o un líder de subproyecto. En <xref linkend="team-members"/> puede ver cómo definir ese tipo de líderes. </para
>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Registrar evento</guilabel
></term>
<listitem
><para
>el evento se registra en un archivo. Los argumentos para esta acción son: </para>
<variablelist>
<varlistentry>
<term
><guilabel
>Archivo de registro</guilabel
></term>
<listitem
><para
>el nombre del archivo, con la ruta completa</para
></listitem>
</varlistentry>
<varlistentry>
<term
>Detalle</term>
<listitem
><para
>Cuánta información debe contener el registro</para
></listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Comportamiento</guilabel
></term>
<listitem
><para
>Si crear o sobreescribir el archivo de registro existente, o si añadir al que ya existe el evento nuevo que se va a registrar.</para
></listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Acción de guión</guilabel
></term>
<listitem
><para
>una acción de guión definida por el usuario. Tiene en <xref linkend="user-actions"/> más información sobre acciones de usuario. </para>
<para
><guilabel
>Nombre de la acción</guilabel
> indica qué acción se debe ejecutar cuando suceda el evento.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
</variablelist>
<para
>Las demás entradas dependen del tipo de <guilabel
>Acción</guilabel
>, como se ha descrito. </para>
</sect1>
<sect1 id="annotations">
<title
>Anotaciones</title>
<para
>Las anotaciones son comentarios especiales en los documentos. Se diferencian de los comentarios normales en los siguientes aspectos: <itemizedlist>
<listitem
><para
>la información la recopila Quanta y se muestra en la vista de la herramienta <guilabel
>Anotaciones</guilabel
>. </para
></listitem>
<listitem
><para
>la información se puede dirigir a un integrante del equipo </para
></listitem>
</itemizedlist>
</para>
<para
>Introducir anotaciones es sencillo. Puede usar la entrada <guilabel
>Anotar</guilabel
> del menú contextual del editor o introducir la clave <emphasis
>@annotation</emphasis
> en un área de comentarios, seguida del texto de la anotación. <example
><title
>Ejemplo de anotación en XML</title
><screen
><!-- @annotation Es posible que este código sea incorrecto. --></screen>
<screen
><!-- @annotation
Anotación con
varias líneas.
--></screen
></example>
<example
><title
>Ejemplo de anotación en PHP</title
><screen
>/* @annotation
Use los comentarios de PHP cuando la anotación esté en una zona de PHP.
*/</screen>
</example>
</para>
<para
>Las anotaciones se pueden dirigir a miembros específicos de su equipo. En ese caso, la sintaxis es <emphasis
>@annotation(apodo)</emphasis
> o <emphasis
>@annotation(rol)</emphasis
>, donde <emphasis
>apodo</emphasis
> es el apodo del integrante del equipo, mientras que <emphasis
>rol</emphasis
> es un rol del proyecto, de entre los que se mencionan a continuación (Nota del traductor: junto a cada definición de rol, y entre paréntesis, está la traducción del rol): <itemizedlist
><listitem
><para
> team leader (líder del equipo) </para
></listitem
> <listitem
><para
> task leader (líder de la tarea) </para
></listitem
> <listitem
><para
> subproject leader (líder del subproyecto) </para
></listitem
> </itemizedlist
> Los líderes de tareas y de subproyectos deberían llevar a continuación el nombre de la correspondiente tarea o del correspondiente subproyecto, como se muestra en los ejemplos siguientes. </para>
<para>
<example
><title
>Hacer una nota para un integrante del equipo con el apodo <emphasis
>eric</emphasis
></title>
<screen
><-- @annotation(eric) Eric, échale un vistazo a esto, por favor. Andras --></screen>
</example>
<example
><title
>Información para el líder del equipo</title>
<screen
><-- @annotation(team leader) Esto es muy importante para el equipo --></screen>
</example>
<example
><title
>Información para el líder del subproyecto <emphasis
>PHP</emphasis
></title>
<screen
>// @annotation(subproject leader:PHP) ¿Qué piensas de esto?</screen>
</example>
</para>
<para
>Los apodos y los nombres de los roles no son sensibles a mayúsculas, pero los espacios junto a los paréntesis y los dos puntos <emphasis
>:</emphasis
> hacen que las anotaciones no sean válidas.</para>
<para
>Tiene más información sobre integrantes de los equipos, roles y apodos en <xref linkend="team-members"/></para>
<para
>Las anotaciones que se encuentran en el proyecto se pueden inspeccionar en la vista <guilabel
>Anotaciones</guilabel
>. Consta de tres solapas: <variablelist
> <varlistentry
> <term
><guilabel
>Archivo actual</guilabel
></term
> <listitem
><para
> La anotación que se encuentra en el archivo actual.</para
></listitem
> </varlistentry
> <varlistentry
> <term
><guilabel
>Para usted</guilabel
></term
> <listitem
><para
> Anotaciones del proyecto dirigidas a usted. Las entradas se agrupan por archivos. </para
></listitem
> </varlistentry
> <varlistentry
> <term
><guilabel
>Todos los archivos</guilabel
></term
> <listitem
><para
> Las anotaciones que se encuentran en todos los archivos del proyectos, agrupadas por archivos. </para
></listitem
> </varlistentry
> </variablelist
> Se hace una búsqueda de las anotaciones al cargar el proyecto y el archivo para hacer modificaciones externas. De esta forma, se pueden reconocer las anotaciones que se hagan desde fuera de &quantaplus;. Puesto que el proceso de búsqueda puede llevar algún tiempo, el cuadro de diálogo con la información sobre las nuevas anotaciones que se refieran a usted puede aparecer algunos segundos después de cargar el proyecto. </para>