<?xml version="1.0" encoding="UTF-8" ?>

<chapter id="extending-quanta-3-2">
<chapterinfo>
<title
>Estendere &quantaplus;</title>
<authorgroup>
<author
><firstname
>Christopher</firstname
> <surname
>Hornbaker</surname
> <affiliation
> <address
><email
>chrishornbaker@earthlink.net</email
></address>
</affiliation>
</author>
<author
><firstname
>Andr&#225;s</firstname
> <surname
>Mantia</surname
> <affiliation
> <address
><email
>amantia@kde.org</email
></address>
</affiliation>
</author>

<othercredit role="translator"
><firstname
>Samuele</firstname
><surname
>Kaplun</surname
><affiliation
><address
><email
>samuele.kaplun@collegiodimilano.it</email
></address
></affiliation
><contrib
>Traduzione del documento</contrib
></othercredit
> 

</authorgroup>
</chapterinfo>

<title
>Estendere &quantaplus;</title>

<para
>Questo capitolo descrive come personalizzare &quantaplus; per i tuoi particolari bisogni e come puoi aiutare &quantaplus; a diventare migliore. </para>

<!--<sect1 id="kommander-3-2">
<title
>Using Kommander With &quantaplus;</title>

<para>
Kommander, by Marc Britton.
</para>
</sect1
> -->

<sect1 id="dtep-intro-3-2">
<title
>Pacchetto di Editing del Tipo di Documento (&DTEP;)</title>

<para
>I Pacchetti di Editing del Tipo di Documento (&DTEP;) vengono utilizzati in &quantaplus; per aggiungere il supporto per il markup, i linguaggi di scripting e &CSS;. Permettono a &quantaplus; di fornire funzionalità quali l'auto-completamento e gli alberi di nodi. La loro semplicità e flessibilità sono quello che rende &quantaplus; un &IDE; veloce, amichevole agli sviluppatori web. Sono quello che rende &quantaplus; un ambiente semplice da usare e produttivo. </para>

<para
>I &DTEP; sono di due tipi, Famiglia 1, per il markup e Famiglia 2 per lo scripting ed il &CSS;. I &DTEP; sono costituiti da due parti, la Cartella dei Tag e le Barre degli strumenti. Le Cartelle dei Tag sono composte da due tipi di file, i file &descriptionrc; ed i file TagXML, che hanno l'estensione .tag. Le barre degli strumenti sono barre di pulsanti maneggevoli, costituite da icone (poste al di sopra della finestra di editing) che inseriscono il testo nel documento più velocemente di quanto un utente possa scrivere. </para>

<para
>I &DTEP; possono essere creati manualmente (guarda più avanti), <link linkend="download-resources"
>scaricati</link
> o creati automaticamente da DTD esistenti. Guarda <xref linkend="converting-dtd"/> per i dettagli sulla conversione. </para>

<para
>Questo documento descrive come creare i file TagXML, il file &descriptionrc; e le barre degli strumenti. In breve, un &DTEP;. </para>

<para
>I file TagXML (.tag) definiscono sia gli attributi specifici di un tag che la disposizione ed il contenuto della finestra di dialogo delle proprietà che &quantaplus; visualizza per il tag. Il file &descriptionrc; fornisce le regole e le informazioni del &DTEP; stesso. Le barre degli strumenti forniscono un mezzo veloce per aggiungere dei tag in un documento senza preoccuparsi di errori di ortografia e simili. </para>

<sect2 id="dtep-packaging-3-2">
<title
>Impacchettare</title>

<para
>Le Cartelle dei Tag sono proprio questo, cartelle. Sono costituite solamente dai file &descriptionrc; e TagXML. Le Cartelle dei Tag portano il nome del linguaggio di markup e la sua versione, se applicabile. (Per esempio, html-4.01-strict) </para>
</sect2>

<sect2 id="tagxml-3-2">
<title
>TagXML</title>

<para
>La tabella sottostante elenca gli elementi definiti in TagXML e dichiara se sono fondamentali o meno. Anche se non tutti sono fondamentali, ti raccomandiamo di utilizzarne quanti più ne puoi così che gli altri utenti possano avere un'esperienza migliore e maggiori informazioni con cui lavorare. </para>

<informaltable>
<tgroup cols="3">
<thead>
<row>
<entry
>Elemento</entry>
<entry
>Utilizzo Predefinito</entry>
<entry
>Tipologia di Utilizzo</entry>
</row>
</thead>
<tbody>
<row>
<entry
>TAGS</entry>
<entry
>fondamentale</entry>
<entry
>sempre</entry>
</row>
<row>
<entry
>tag</entry>
<entry
>fondamentale</entry>
<entry
>sempre</entry>
</row>
<row>
<entry
>label</entry>
<entry
>opzionale</entry>
<entry
>fondamentale per creare una finestra di dialogo delle proprietà</entry>
</row>
<row>
<entry
>attr</entry>
<entry
>opzionale</entry>
<entry
>fondamentale per definire un attributo</entry>
</row>
<row>
<entry
>tooltip</entry>
<entry
>opzionale</entry>
<entry
>fondamentale per far sì che la finestra di dialogo delle proprietà visualizzi un suggerimento</entry>
</row>
<row>
<entry
>whatsthis</entry>
<entry
>opzionale</entry>
<entry
>fondamentale per far sì che la finestra di dialogo delle proprietà visualizzi un <quote
>Che cos'è</quote
></entry>
</row>
<row>
<entry
>list</entry>
<entry
>opzionale</entry>
<entry
>fondamentale quando un attributo è del tipo <quote
>list</quote
></entry>
</row>
<row>
<entry
>item</entry>
<entry
>opzionale</entry>
<entry
>fondamentale quando viene utilizzato &lt;list
></entry>
</row>
<row>
<entry
>textlocation</entry>
<entry
>opzionale</entry>
<entry
>sempre</entry>
</row>
<row>
<entry
>location</entry>
<entry
>opzionale</entry>
<entry
>fondamentale quando viene utilizzata un'etichetta</entry>
</row>
<row>
<entry
>text</entry>
<entry
>opzionale</entry>
<entry
>fondamentale quando viene utilizzata un'etichetta</entry>
</row>
<row>
<entry
>children</entry>
<entry
>opzionale</entry>
<entry
>elenco dei tag che appaiono all'interno dei tag che si stanno definendo</entry>
</row>
<row>
<entry
>child</entry>
<entry
>fondamentale</entry>
<entry
>un elemento figlio</entry>
</row>
<row>
<entry
>stoppingtags</entry>
<entry
>opzionale</entry>
<entry
>elenco dei tag che dicono ad un altro tag di terminare</entry>
</row>
<row>
<entry
>stoppingtag</entry>
<entry
>fondamentale</entry>
<entry
>una voce stoppingtags</entry>
</row>
</tbody>
</tgroup>
</informaltable>


<sect3 id="dtep-element-descriptions-3-2">
<title
>Descrizione degli Elementi TagXML</title>

<para
>La prossima sezione descriverà, nel dettaglio, ogni elemento. Tutto a partire da dove possono essere utilizzati a ciò che va inserito al loro interno verrà analizzato in una maniera semplice da seguire. </para>

<sect4 id="TAGS-3-2">
<title
>TAGS</title>

<para
>Questo è l'elemento radice di ogni documento TagXML. Può apparire in un documento una sola volta. Può contenere la definizione di diversi tag. È un tipo di elemento solo-elemento. </para>

<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Genitore(i)</entry>
<entry
>Figli</entry>
</row>
</thead>
<tbody>
<row>
<entry
><emphasis
>NESSUNO</emphasis
></entry>
<entry
>tag</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>

<sect4 id="tag-3-2">
<title
>tag</title>

<para
>Contenitore per il tag che si sta definendo. Questo è un elemento di tipo solo-elemento. </para>

<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Genitore(i)</entry>
<entry
>Figli</entry>
</row>
</thead>
<tbody>
<row>
<entry
>TAGS</entry>
<entry
>label, attr, stoppingtags</entry>
</row>
</tbody>
</tgroup>
</informaltable>

<informaltable>
<tgroup cols="6">
<thead>
<row>
<entry
>Attributo</entry
><entry
>Type</entry
><entry
>Valori</entry>
<entry
>Predefinito</entry
><entry
>Uso</entry
><entry
>Descrizione</entry>
</row>
</thead>
<tbody>
<row>
<entry
>name</entry
><entry
>string</entry
><entry
></entry
><entry
></entry>
<entry
>fondamentale</entry
><entry
>Specifica il nome del tag da definire.</entry>
</row>
<row>
<entry
>single</entry
><entry
>boolean</entry
><entry
></entry
><entry
></entry>
<entry
>opzionale</entry
><entry
>Specifica se il tag richiede o meno un tag di chiusura &lt;/(nometag)
>.</entry>
</row>
<row>
<entry
>type</entry
><entry
>string</entry
><entry
></entry
><entry
>xmltag</entry>
<entry
>opzionale</entry
><entry
>Specifica il tipo di tag che si sta definendo.</entry>
</row>
<row>
<entry
></entry
><entry
></entry
><entry
>xmltag</entry
><entry
></entry>
<entry
></entry
><entry
>Il tipo di tag è basato su XML. (Solamente Famiglia 1.)</entry>
</row>
<row>
  <entry
></entry
><entry
></entry
><entry
>entity</entry
><entry
></entry>
  <entry
></entry
><entry
>Il tag descrive un'entità. (Solamente Famiglia 1.)</entry>
</row>
<row>
<entry
></entry
><entry
></entry
><entry
>property</entry
><entry
></entry>
<entry
></entry
><entry
>Il tipo di tag è relativo a &CSS;. (Solamente Famiglia 2.)</entry>
</row>
<row>
<entry
></entry
><entry
></entry
><entry
>function</entry
><entry
></entry>
<entry
></entry
><entry
>Il tipo di tag è una funzione script. Quando viene usato &lt;attr
> rappresenta gli argomenti della funzione. (Solamente Famiglia 2.)</entry>
</row>
<row>
<entry
></entry
><entry
></entry
><entry
>class</entry
><entry
></entry>
<entry
></entry
><entry
>Il tipo di tag è una classe script. (Solamente Famiglia 2.)</entry>
</row>
<row>
<entry
></entry
><entry
></entry
><entry
>method</entry
><entry
></entry>
<entry
></entry
><entry
>Il tipo di tag è un metodo di classe. (Solamente Famiglia 2.)</entry>
</row>
<row>
<entry
>returnType</entry
><entry
>string</entry
><entry
></entry
><entry
>void </entry>
<entry
>opzionale</entry
><entry
>Specifica il tipo di valore restituito dal tag che si sta definendo. (Solamente Famiglia 2.)</entry>
</row>
<row>
<entry
></entry
><entry
></entry
><entry
>void</entry
><entry
></entry>
<entry
></entry
><entry
>Il tipo di tag restituisce void.</entry>
</row>
<row>
<entry
></entry
><entry
></entry
><entry
>int</entry
><entry
></entry>
<entry
></entry
><entry
>Il tipo di tag restituisce int.</entry>
</row>
<row>
<entry
></entry
><entry
></entry
><entry
>float</entry
><entry
></entry>
<entry
></entry
><entry
>Il tipo di tag restituisce float.</entry>
</row>
<row>
<entry
></entry
><entry
></entry
><entry
>long</entry
><entry
></entry>
<entry
></entry
><entry
>Il tipo di tag restituisce long.</entry>
</row>
<row>
<entry
></entry
><entry
></entry
><entry
>string</entry
><entry
></entry>
<entry
></entry
><entry
>Il tipo di tag restituisce string.</entry>
</row>
<row>
  <entry
>version</entry
><entry
>string</entry
><entry
></entry
><entry
></entry>
  <entry
>opzionale</entry
><entry
>Specifica la versione del linguaggio per cui è valido il tag</entry>
</row>
<row>
  <entry
>extends</entry
><entry
>string</entry
><entry
></entry
><entry
></entry>
  <entry
>opzionale</entry
><entry
>Valido solo nel caso in cui il tipo di tag è "class". Il nome della classe base per questa classe. (Solo Famiglia 2.)</entry>
</row>
<row>
  <entry
>class</entry
><entry
>string</entry
><entry
></entry
><entry
></entry>
  <entry
>opzionale</entry
><entry
>Valido solo nel caso in cui il tipo è "method". Specifica il nome della classe a cui appartiene questo metodo. (Solo Famiglia 2.)</entry>
</row>
<row>
  <entry
>common</entry
><entry
>boolean</entry
><entry
></entry
><entry
></entry>
  <entry
>opzionale</entry
><entry
>Se "yes", il tag specifica un attributo comune per il gruppo e gli attributi all'interno di questo tag possono essere collegati a qualsiasi altro tag. (Solo Famiglia 1.)</entry>
</row>
<row>
  <entry
>comment</entry
><entry
>string</entry
><entry
></entry
><entry
></entry>
  <entry
>opzionale</entry
><entry
>la stringa di commento appare vicino al nome del tag nella casella di completamento</entry>
</row
></tbody>
</tgroup>
</informaltable>
</sect4>

<sect4 id="label-3-2">
<title
>label</title>

<para
>Posiziona un'etichetta nella finestra di dialogo. Il testo è specificato dal tag &lt;text
>. Questo è un elemento di tipo solo-elemento. </para>

<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Genitore(i)</entry>
<entry
>Figli</entry>
</row>
</thead>
<tbody>
<row>
<entry
>tag</entry>
<entry
>text, location</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>

<sect4 id="attr-3-2">
<title
>attr</title>

<para
>Definisce un attributo del tag. Questo elemento occorre una volta per ogni attributo. Definisce il nome ed il tipo di attributo. Inoltre contiene dei tag addizionali che specificano come dovrebbe essere visualizzato questo attributo e così via. Questo è un elemento di tipo solo-elemento. </para>

<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Genitore(i)</entry>
<entry
>Figli</entry>
</row>
</thead>
<tbody>
<row>
<entry
>tag</entry>
<entry
>location, list, tooltip, whatsthis, textlocation</entry>
</row>
</tbody>
</tgroup>
</informaltable>

<informaltable>
<tgroup cols="6">
<thead>
<row>
<entry
>Attributo</entry
><entry
>Type</entry
><entry
>Valori</entry>
<entry
>Predefinito</entry
><entry
>Uso</entry
><entry
>Descrizione</entry>
</row>
</thead>
<tbody>
<row>
<entry
>name</entry
><entry
>string</entry
><entry
></entry
><entry
></entry>
<entry
>fondamentale</entry
><entry
>Specifica il nome dell'attributo che si sta definendo.</entry>
</row>
<row>
<entry
>type</entry
><entry
>string</entry
><entry
></entry
><entry
>input</entry>
<entry
>fondamentale</entry
><entry
>Specifica il tipo di attributo che si sta definendo.</entry>
</row>
<row>
<entry
></entry
><entry
></entry
><entry
>input</entry
><entry
></entry>
<entry
></entry
><entry
>Il campo supporta testo libero (campo testo).</entry>
</row>
<row>
<entry
></entry
><entry
></entry
><entry
>check</entry
><entry
></entry>
<entry
></entry
><entry
>Il valore del campo è boolean (casella di selezione).</entry>
</row>
<row>
<entry
></entry
><entry
></entry
><entry
>color</entry
><entry
></entry>
<entry
></entry
><entry
>Il valore del campo è un colore.</entry>
</row>
<row>
<entry
></entry
><entry
></entry
><entry
>url</entry
><entry
></entry>
<entry
></entry
><entry
>Il valore del campo è un &URL;. (File locale a cui fare riferimento.)</entry>
</row>
<row>
<entry
></entry
><entry
></entry
><entry
>list</entry
><entry
></entry>
<entry
></entry
><entry
>Il valore del campo è un elemento di una lista specificata.</entry>
</row>
<row>
<entry
>status</entry
><entry
>string</entry
><entry
></entry
><entry
>opzionale</entry>
<entry
>fondamentale</entry
><entry
>Specifica se l'argomento è fondamentale o meno. (Solamente Famiglia 2.)</entry>
</row>
<row>
<entry
></entry
><entry
></entry
><entry
>opzionale</entry
><entry
></entry>
<entry
></entry
><entry
>L'argomento è opzionale.</entry>
</row>
<row>
<entry
></entry
><entry
></entry
><entry
>fondamentale</entry
><entry
></entry>
<entry
></entry
><entry
>L'argomento è fondamentale.</entry>
</row>
<row>
<entry
></entry
><entry
></entry
><entry
>implicato</entry
><entry
></entry>
<entry
></entry
><entry
>L'argomento è implicato.</entry>
</row>
<row>
  <entry
>source</entry
><entry
>string</entry
><entry
></entry
><entry
></entry>
  <entry
>opzionale</entry
><entry
>Specifica il sorgente utilizzato per riempiere le voci dell'attributo nella finestra di dialogo dell'editor del tag e nell'albero degli attributi</entry>
</row>
<row>
  <entry
></entry
><entry
></entry
><entry
>selection</entry
><entry
></entry>
  <entry
></entry
><entry
>Il testo selezionato viene utilizzato come sorgente</entry>
</row>
<row>
  <entry
></entry
><entry
></entry
><entry
>dcop</entry
><entry
></entry>
  <entry
></entry
><entry
>Viene utilizzato come sorgente il risultato di un metodo dcop</entry>
</row>
<row>
  <entry
>interface</entry
><entry
>string</entry
><entry
></entry
><entry
></entry>
  <entry
>opzionale</entry
><entry
>Richiede source="dcop". Viene utilizzata l'interfaccia dcop all'interno di &quantaplus; per ottenere la sorgente di dati.</entry>
</row>
<row>
  <entry
>method</entry
><entry
>string</entry
><entry
></entry
><entry
></entry>
  <entry
>opzionale</entry
><entry
>Richiede source="dcop" ed il nome di un'interfaccia. Viene utilizzato come sorgente di dati il nome del metodo dcop all'interno di &quantaplus;.</entry>
</row>
<row>
  <entry
>arguments</entry
><entry
>string</entry
><entry
></entry
><entry
></entry>
  <entry
>opzionale</entry
><entry
>Richiede source="dcop", il nome di un'interfaccia ed il nome di un metodo. Gli argomenti passati al metodo. Possono essere vuoti o "%tagname%", per il nome del tag corrente.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>

<sect4 id="tooltip-3-2">
<title
>tooltip</title>

<para
>Definisce il suggerimento per un campo nella finestra di dialogo. Questo elemento è di tipo solo-testo. </para>

<note>
<para
>Per ora, è supportato solamente il testo semplice (non puoi usare nessun markup). </para>
</note>

<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Genitore(i)</entry>
<entry
>Figli</entry>
</row>
</thead>
<tbody>
<row>
<entry
>attr</entry>
<entry
><emphasis
>NESSUNO</emphasis
></entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>

<sect4 id="whatsthis-3-2">
<title
>whatsthis</title>

<para
>Definisce l'aiuto 'Che cos'è di un campo nella finestra di dialogo. Questo elemento è di tipo solo-testo. </para>

<note>
<para
>Per ora, è supportato solamente il testo semplice (non puoi usare nessun markup). </para>
</note>

<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Genitore(i)</entry>
<entry
>Figli</entry>
</row>
</thead>
<tbody>
<row>
<entry
>attr</entry>
<entry
><emphasis
>NESSUNO</emphasis
></entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>

<sect4 id="list-3-2">
<title
>list</title>

<para
>Un tag contenitore che raggruppa insieme gli elementi di una lista. Può apparire solamente una volta per ogni descrizione di attributo. Questo è un elemento di tipo solo-elemento. </para>

<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Genitore(i)</entry>
<entry
>Figli</entry>
</row>
</thead>
<tbody>
<row>
<entry
>attr</entry>
<entry
>item</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>

<sect4 id="item-3-2">
<title
>item</title>

<para
>Definisce un elemento in una lista. Questo elemento è di tipo solo-testo. </para>

<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Genitore(i)</entry>
<entry
>Figli</entry>
</row>
</thead>
<tbody>
<row>
<entry
>list</entry>
<entry
><emphasis
>NESSUNO</emphasis
></entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>

<sect4 id="textlocation-3-2">
<title
>textlocation</title>

<para
>Specifica la posizione del testo dell'attributo di un tag all'interno di una finestra di dialogo. Questo tag può apparire una sola volta per ogni attributo nella finestra di dialogo (cioè una volta per ogni tag &lt;attr
>). Questo elemento è di tipo vuoto. </para>

<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Genitore(i)</entry>
<entry
>Figli</entry>
</row>
</thead>
<tbody>
<row>
<entry
>attr</entry>
<entry
><emphasis
>NESSUNO</emphasis
></entry>
</row>
</tbody>
</tgroup>
</informaltable>

<informaltable>
<tgroup cols="4">
<thead>
<row>
<entry
>Attributo</entry
><entry
>Type</entry>
<entry
>Uso</entry
><entry
>Descrizione</entry>
</row>
</thead>
<tbody>
<row>
<entry
>row</entry
><entry
>nonNegativeInteger</entry>
<entry
>fondamentale</entry
><entry
>Specifica la riga nella disposizione della finestra di dialogo di un campo o di una etichetta.</entry>
</row>
<row>
<entry
>col</entry
><entry
>nonNegativeInteger</entry>
<entry
>fondamentale</entry
><entry
>Specifica la colonna nella disposizione della finestra di dialogo di un campo o di una etichetta.</entry>
</row>
<row>
<entry
>rowspan</entry
><entry
>nonNegativeInteger</entry>
<entry
>opzionale</entry
><entry
>Specifica il numero di righe che un campo dovrebbe occupare.</entry>
</row>
<row>
<entry
>colspan</entry
><entry
>nonNegativeInteger</entry>
<entry
>opzionale</entry
><entry
>Specifica il numero di colonne che un campo dovrebbe occupare.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>

<sect4 id="location-3-2">
<title
>location</title>

<para
>Specifica la posizione e la dimensione di un campo nella finestra di dialogo. Questo tag dovrebbe occorrere una sola volta per ogni campo nella finestra di dialogo (cioè una volta per ogni tag &lt;attr
> e &lt;label
>). Questo elemento è di tipo vuoto. </para>

<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Genitore(i)</entry
><entry
>Figli</entry>
</row>
</thead>
<tbody>
<row>
<entry
>label, attr</entry
><entry
><emphasis
>NESSUNO</emphasis
></entry>
</row>
</tbody>
</tgroup>
</informaltable>

<informaltable>
<tgroup cols="4">
<thead>
<row>
<entry
>Attributo</entry
><entry
>Type</entry>
<entry
>Uso</entry
><entry
>Descrizione</entry>
</row>
</thead>
<tbody>
<row>
<entry
>row</entry
><entry
>nonNegativeInteger</entry>
<entry
>fondamentale</entry
><entry
>Specifica la riga nella disposizione della finestra di dialogo di un campo o di una etichetta.</entry>
</row>
<row>
<entry
>col</entry
><entry
>nonNegativeInteger</entry>
<entry
>fondamentale</entry
><entry
>Specifica la colonna nella disposizione della finestra di dialogo di un campo o di una etichetta.</entry>
</row>
<row>
<entry
>rowspan</entry
><entry
>nonNegativeInteger</entry>
<entry
>opzionale</entry
><entry
>Specifica il numero di righe che un campo dovrebbe occupare.</entry>
</row>
<row>
<entry
>colspan</entry
><entry
>nonNegativeInteger</entry>
<entry
>opzionale</entry
><entry
>Specifica il numero di colonne che un campo dovrebbe occupare.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>

<sect4 id="text-3-2">
<title
>text</title>

<para
>Definisce il testo di un'etichetta o di una casella di selezione. Questo elemento è di tipo solo-testo. </para>

<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Genitore(i)</entry
><entry
>Figli</entry>
</row>
</thead>
<tbody>
<row>
<entry
>label, attr</entry
><entry
><emphasis
>NESSUNO</emphasis
></entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>

<sect4 id="children-3-2">
<title
>children</title>

<para
>Definisce una lista di elementi che possono apparire all'interno del tag che si sta definendo. Questo elemento è di tipo solo-elemento. </para>

<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Genitore(i)</entry
><entry
>Figli</entry>
</row>
</thead>
<tbody>
<row>
<entry
>tag</entry
><entry
>child</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>

<sect4 id="child-3-2">
<title
>child</title>

<para
>Definisce un tag figlio. Questo elemento è di tipo vuoto. </para>

<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Genitore(i)</entry
><entry
>Figli</entry>
</row>
</thead>
<tbody>
<row>
<entry
>children</entry
><entry
><emphasis
>NESSUNO</emphasis
></entry>
</row>
</tbody>
</tgroup>
</informaltable>

<informaltable>
<tgroup cols="4">
<thead>
<row>
<entry
>Attributo</entry
><entry
>Type</entry
><entry
>Valori</entry>
<entry
>Uso</entry
><entry
>Descrizione</entry>
</row>
</thead>
<tbody>
<row>
<entry
>name</entry
><entry
>string</entry
><entry
></entry>
<entry
>fondamentale</entry
><entry
>Specifica un tag che può apparire all'interno di un certo tag.</entry>
</row>
<row>
<entry
>usage</entry
><entry
>string</entry
><entry
></entry>
<entry
>opzionale</entry
><entry
>Specifica la relazione con il genitore.</entry>
</row>
<row>
<entry
></entry
><entry
></entry
><entry
>fondamentale</entry>
<entry
></entry
><entry
>Il genitore deve avere almeno un figlio con questo nome.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>

<sect4 id="stoppingtags-3-2">
<title
>stoppingtags</title>

<para
>Definisce una lista di elementi che forzano la chiusura di un tag. Questo elemento è di tipo solo-elemento. </para>

<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Genitore(i)</entry
><entry
>Figli</entry>
</row>
</thead>
<tbody>
<row>
<entry
>tag</entry
><entry
>stoppingtag</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>

<sect4 id="stoppingtag-3-2">
<title
>stoppingtag</title>

<para
>Definisce un tag di stop. Questo elemento è di tipo vuoto. </para>

<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Genitore(i)</entry
><entry
>Figli</entry>
</row>
</thead>
<tbody>
<row>
<entry
>stoppingtags</entry
><entry
><emphasis
>NESSUNO</emphasis
></entry>
</row>
</tbody>
</tgroup>
</informaltable>

<informaltable>
<tgroup cols="4">
<thead>
<row>
<entry
>Attributo</entry
><entry
>Type</entry>
<entry
>Uso</entry
><entry
>Descrizione</entry>
</row>
</thead>
<tbody>
<row>
<entry
>name</entry
><entry
>string</entry>
<entry
>fondamentale</entry
><entry
>Specifica quali tag forzano la chiusura di altri tag.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>
</sect3>

<sect3 id="tagxml-usage-3-2">
<title
>Utilizzo di TagXML</title>

<para
>Tutti i file TagXML devono iniziare con la dichiarazione &XML;: &lt;?xml version="1.0" encoding="UTF-8"?> e devono essere annidati e conclusi correttamente. </para>

<important>
<para
>Gli spazi bianchi non influenzano negativamente nulla, ma fai attenzione con i caratteri &amp; e &lt;. Questi dovrebbero solitamente essere sostituiti rispettivamente da &amp;amp; e &amp;lt;, in elementi come &lt;tooltip
>, &lt;whatsthis
>, e &lt;text
>. Non farlo non causerà un crash, ma pezzi del tuo lavoro spariranno. </para>
</important>
</sect3>

<sect3 id="tagxml-validation-3-2">
<title
>Validazione dei file TagXML</title>

<para
>Per validare i tuoi file TagXML, fai clic semplicemente sulla finestra di dialogo a comparsa <quote
>Strumenti</quote
> in cima a &quantaplus; e seleziona <quote
>Valida TagXML.</quote
> Verrà aperta una finestra di dialogo e dovrai solo seguire le sue semplice indicazioni. </para>

<note>
<para
>Questa funzionalità non è al momento presente. Per ora la validazione avviene quando i file TagXML sono caricati in &quantaplus;. </para>
</note>
</sect3>

<sect3 id="tagxml-examples-3-2">
<title
>Esempi di TagXML</title>

<sect4 id="family-one-3-2">
<title
>Famiglia 1</title>

<para
>Il paragrafo che segue ti mostrerà un file TagXML valido per la Famiglia 1. Questo file descrive l'elemento &lt;schema
> dell'&XML; &W3C;. Il nome di questo file TagXML dovrebbe essere schema.tag. Semplice, no? </para>

<informalexample>
<literallayout
><markup>
&lt;?xml version="1.0" encoding="UTF-8"?>
&lt;!DOCTYPE TAGS>
&lt;TAGS>
 &lt;tag name="schema">
  &lt;label>
   &lt;text
>id&lt;/text>
   &lt;location col="0" row="0"/>
  &lt;/label>
  &lt;attr name="id" type="input">
   &lt;tooltip
>Un ID unico per l'elemento.&lt;/tooltip>
   &lt;whatsthis
>Un ID unico per l'elemento.&lt;/whatsthis>
   &lt;location col="1" row="0"/>
  &lt;/attr>

  &lt;label>
   &lt;text
>version&lt;/text>
   &lt;location col="0" row="1"/>
  &lt;/label>
  &lt;attr name="version" type="input">
   &lt;tooltip
>Versione dello schema.&lt;/tooltip>
   &lt;whatsthis
>Versione dello schema.&lt;/whatsthis>
   &lt;location col="1" row="1"/>
  &lt;/attr>

  &lt;label>
   &lt;text
>targetNamespace&lt;/text>
   &lt;location col="0" row="2"/>
  &lt;/label>
  &lt;attr name="targetNamespace" type="input">
   &lt;tooltip
>Riferimento &URI; dello spazio dei nomi di questo schema.&lt;/tooltip>
   &lt;whatsthis
>Riferimento &URI; dello spazio dei nomi di questo schema.&lt;/whatsthis>
   &lt;location col="1" row="2"/>
  &lt;/attr>

  &lt;label>
   &lt;text
>xmlns&lt;/text>
   &lt;location col="0" row="3"/>
  &lt;/label>
  &lt;attr name="xmlns" type="input">
   &lt;tooltip
>Riferimento &URI; per uno o più spazi dei nome da utilizzare in questo schema.
   Se non viene utilizzato alcun prefisso, allora i componenti dello spazio dei nomi potrebbero essere usati senza qualifica.&lt;/tooltip>
   &lt;whatsthis
>Riferimento &URI; per uno o più spazi dei nome da utilizzare in questo schema.
   Se non viene utilizzato alcun prefisso, allora i componenti dello spazio dei nomi potrebbero essere usati senza qualifica.&lt;/whatsthis>
   &lt;location col="1" row="3"/>
  &lt;/attr>

  &lt;label>
   &lt;text
>attributeFormDefault&lt;/text>
   &lt;location col="0" row="4"/>
  &lt;/label>
  &lt;attr name="attributeFormDefault" type="list">
   &lt;items>
    &lt;item
>qualified&lt;/item>
    &lt;item
>unqualified&lt;/item>
   &lt;/items>
   &lt;tooltip
>Forma predefinita per tutti gli attributi all'interno di questo schema.&lt;/tooltip>
   &lt;whatsthis
>Forma predefinita per tutti gli attributi all'interno di questo schema.&lt;/whatsthis>
   &lt;location col="1" row="4"/>
  &lt;/attr>

  &lt;label>
   &lt;text
>elementFormDefault&lt;/text>
   &lt;location col="0" row="5"/>
  &lt;/label>
  &lt;attr name="elementFormDefault" type="list">
   &lt;items>
    &lt;item
>qualified&lt;/item>
    &lt;item
>unqualified&lt;/item>
   &lt;/items>
   &lt;tooltip
>Forma predefinita per tutti gli elementi all'interno di questo schema.&lt;/tooltip>
   &lt;whatsthis
>Forma predefinita per tutti gli elementi all'interno di questo schema.&lt;/whatsthis>
   &lt;location col="1" row="5"/>
  &lt;/attr>

  &lt;label>
   &lt;text
>blockDefault&lt;/text>
   &lt;location col="0" row="6"/>
  &lt;/label>
  &lt;attr name="blockDefault" type="input">
   &lt;location col="1" row="6"/>
  &lt;/attr>

  &lt;label>
   &lt;text
>finalDefault&lt;/text>
   &lt;location col="0" row="7"/>
  &lt;/label>
  &lt;attr name="finalDefault" type="input">
   &lt;location col="1" row="7"/>
  &lt;/attr>
 &lt;/tag>
&lt;/TAGS>
</markup
>
</literallayout>
</informalexample>
</sect4>

<sect4 id="family-two-3-2">
<title
>Famiglia 2</title>

<para
>Quanto segue ti mostrerà un file TagXML valido della Famiglia 2. Questo file descrive la funzione overload di &PHP;. Il nome di questo file TagXML dovrebbe essere overload.tag. </para>

<informalexample>
<literallayout
><markup>
&lt;?xml version="1.0" encoding="UTF-8"?>
&lt;!DOCTYPE tags>
&lt;tags>
  &lt;tag name="overload" type="function" returnType="void">
&lt;attr name="class_name" type="string" status="optional"/>
  &lt;/tag>
&lt;/tags>
</markup
>
</literallayout>
</informalexample>
</sect4>
</sect3>
</sect2>

<sect2 id="descriptionrc-3-2">
<title
>&descriptionrc;</title>

<para
>Il file &descriptionrc; è, inoltre, abbastanza semplice ed esiste un suo editor raggiungibile tramite <menuchoice
><guimenu
>DTD</guimenu
><guimenuitem
>Modifica impostazioni DTD</guimenuitem
></menuchoice
>. Verrà così modificato il file &descriptionrc; di un &DTEP; che puoi scegliere da una lista.Per modificare il file &descriptionrc; di un &DTEP; appena creato dovresti creare un semplice &descriptionrc; con le seguenti voci: </para>
<para>
  <informalexample>
    <literallayout
><markup>
        [General]
        Version = Usa 1 per &quantaplus; version &lt;=3.1.2 e 2 per qualsiasi versione successiva.
        Name = stringa di definizione del DTD. (-//&W3C;//DTD HTML 4.01 Transitional//EN)
        NickName = Il nome abbellito del DTD. (HTML 4.01 Transitional). Se non definito verrà
utilizzato Name come NickName.
      </markup
>
    </literallayout>
  </informalexample>
</para>
<para
>Una volta creato mettilo assieme ai file tag, carica il &DTEP; appena creato con <menuchoice
><guimenu
>DTD</guimenu
><guimenuitem
>Carica pacchetto DTD (DTEP)</guimenuitem
></menuchoice
>. Quando sarà caricato potrai cominciare a modificare le impostazioni del &DTEP;. Controlla i suggerimenti e i testi del "Che cos'è?" per le varie voci della finestra di dialogo dell'editor per capire il significato di ogni voce. In alternativa puoi leggere <filename
>quanta/data/dtep/dtd-description.txt</filename
> dal pacchetto tar del sorgente che contiene una descrizione del formato. </para>
</sect2>
</sect1>

<sect1 id="user-actions">
<title
>Azioni definite dall'utente</title>
<para
>Le azioni sono molto comuni in ogni applicazione. Facendo clic sull'icona di una barra degli strumenti, selezionando un elemento del menu o utilizzando una scorciatoia attiva di solito un'azione. In &quantaplus; le azioni vengono portate ad un livello superiore. Invece di essere cablate (cioè create dal programmatore applicativo a livello del codice sorgente) sono creabili e modificabili dall'utente ordinario, permettendo così di aggiungere nuove funzionalità a &quantaplus;. Queste sono le azioni definite dall'utente e persino molte delle azioni predefinite di &quantaplus; sono definite dall'utente (e modificabili dall'utente). </para>
<para
>Esistono tre tipi di azioni definibili dall'utente: <itemizedlist>
<listitem
><para
><link linkend="text-actions"
>Azioni testo</link
></para
></listitem>
<listitem
><para
><link linkend="tag-actions"
>Azioni tag</link
></para
></listitem>
<listitem
><para
><link linkend="script-actions"
>Azioni script</link
></para
></listitem>
</itemizedlist>
</para>
<sect2 id="creating-actions">
<title
>Creare le azioni</title>
<para
>Puoi creare un'azione tramite <menuchoice
><guimenu
>Impostazioni</guimenu
><guimenuitem
>Configura azioni</guimenuitem
></menuchoice
>. Fai clic su <guibutton
>Nuova azione</guibutton
> per incontrare una finestra di dialogo simile alla seguente: <mediaobject
> <imageobject>
<imagedata fileref="dtep_doc_img7.png" format="PNG"/>
</imageobject>
</mediaobject>
<variablelist>
<varlistentry>
<term
><guilabel
>Tipo</guilabel
></term>
<listitem
><para
>Specifica il tipo di azione (<link linkend="text-actions"
>Testo</link
>, <link linkend="tag-actions"
>Tag</link
>, <link linkend="script-actions"
>Script</link
>).</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Testo</guilabel
></term>
<listitem
><para
>Il nome dell'azione visibile all'utente.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Il pulsante accanto all'etichetta <guilabel
>Testo</guilabel
></term>
<listitem
><para
>L'icona assegnata a quest'azione. Fai clic per modificare l'icona corrente.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Suggerimenti</guilabel
></term>
<listitem
><para
>Breve descrizione di cosa fa l'azione.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Scorciatoia</guilabel
></term>
<listitem
><para
>La scorciatoia assegnata a questa azione. Fai clic su <guilabel
>Personalizzato</guilabel
> o vicino al pulsante <guilabel
>Personalizzato</guilabel
> per assegnare una scorciatoia; fai clic su<guilabel
>Nessuno</guilabel
> per rimuovere la scorciatoia attualmente assegnata.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Contenitori della barra degli strumenti</guilabel
></term>
<listitem
><para
>Le barre degli strumenti definite dall'utente dove questa azione appare. Vedi <xref linkend="creating-toolbars-3-2"/>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Impostazioni dettagliate</guilabel
></term>
<listitem
><para
>Specifica le impostazioni per differenti tipi di azioni. Vedi sotto. </para
></listitem>
</varlistentry>
</variablelist>
</para>
</sect2>
<sect2 id="text-actions">
<title
>Azioni testo</title>
<para>
<mediaobject
><imageobject>
<imagedata fileref="text-action.png" format="PNG"/>
</imageobject
></mediaobject
> L'azione più semplice. Puoi inserire del testo nell'area <guilabel
>Impostazioni dettagliate</guilabel
> e ogni volta che l'azione verrà eseguita questo testo sarà inserito nel tuo documento alla posizione corrente del cursore. Vedi l'esempio sotto. </para>
</sect2>
<sect2 id="tag-actions">
<title
>Azioni tag</title>
<para
>Utile per inserire tag XML, ma puoi chiaramente utilizzarle per altri scopi. <mediaobject
><imageobject
> <imagedata fileref="tag-actions.png" format="PNG"/> </imageobject
></mediaobject
> <variablelist
> <varlistentry
> <term
><guilabel
>&lt;tag&gt;</guilabel
></term
> <listitem
><para
>Il nome del tag.</para
></listitem
> </varlistentry
> <varlistentry
> <term
><guilabel
>&lt;/tag&gt;</guilabel
></term
> <listitem
><para
>Se attivato quando l'azione viene eseguita questo testo sarà inserito come tag di chiusura. Se esiste un'area selezionata nel documento prima che tu esegua l'azione, il &lt;tag&gt; sarà inserito prima dell'area selezionata e &lt;/tag&gt; dopo.</para
></listitem
> </varlistentry
> <varlistentry
> <term
><guilabel
>Esegui "Modifica tag" se disponibile</guilabel
></term
> <listitem
><para
>Se attivato ed esiste un file tagXML per questo tag, verrà mostrata una finestra di dialogo di modifica del tag prima dell'inserimento del tag stesso nel documento, così che tu possa regolare finemente gli attributi del tag.</para
></listitem
> </varlistentry
> </variablelist
> &lt;tag&gt; e &lt;/tag&gt; saranno inseriti come sono stati digitati qui. I simboli &lt;, &gt; o / non verranno aggiunti automaticamente. </para>
</sect2>
<sect2 id="script-actions">
<title
>Azioni script</title>
<para>
<mediaobject
><imageobject>
<imagedata fileref="script-action.png" format="PNG"/>
</imageobject
></mediaobject
> Il tipo di azione più potente. Con l'aiuto di questa azione puoi eseguire applicazioni esterne (di solito script, ma non vi è un limite particolare), che possono alterare il tuo documento o utilizzare il tuo documento (o parte del tuo documento) come input. Esempi di &quantaplus; stesso sono la finestra di dialogo <guibutton
>Avvio rapido</guibutton
>, le varie azioni <guilabel
>Visualizza in...</guilabel
> per i DTEP (X)HTML. </para>
<para
>Innanzitutto devi inserire il nome del tuo script incluso l'interprete. Ad esempio: <command
>sh /home/miaHome/mioScript.sh</command
>. </para>
<para
>Anche se puoi utilizzare percorsi completi, è preferibile usare la variabile <command
>%scriptdir</command
> nella riga di comando, come in <command
>sh %scriptdir/mioScript.sh</command
>. In questo modo &quantaplus; proverà a trovare il tuo script nelle seguenti posizioni: <itemizedlist
> <listitem
><para
>la cartella globale degli script: <filename
><envar
>$KDEDIR</envar
>/share/apps/quanta/scripts</filename
></para
></listitem
> <listitem
><para
>la cartella locale degli script: <filename
><envar
>$KDEHOME</envar
>/share/apps/quanta/scripts</filename
></para
></listitem
> <listitem
><para
>il tuo path: <envar
>$PATH</envar
></para
></listitem
> </itemizedlist
> Esistono altre variabili speciali che puoi utilizzare sulla riga di comando: <itemizedlist>
<listitem
><para
><command
>%f</command
>: verrà sostituita dall'URL del documento corrente. Nel caso di documenti locali, il prefisso file:/ verrà rimosso dal nome del documento.</para
></listitem>
<listitem
><para
><command
>%input</command
>: verrà sostituita dall'input selezionato. Vedi sotto.</para
></listitem>
<listitem
><para
><command
>%projectbase</command
>: verrà sostituita dall'URL del progetto corrente. È vuota se non è stato caricato alcun progetto.</para
></listitem>
<listitem
><para
><command
>%pid</command
>: verrà sostituita dal PID del processo di &quantaplus; in esecuzione. Se &quantaplus; è in esecuzione in modalità unica, la stringa "unique" precederà il numero del PID. Utile quando vuoi usare DCOP per controllare &quantaplus; da uno script esterno.</para
></listitem>
<listitem
><para
><command
>%userarguments</command
>: utile nel caso di eventi. Questa variabile verrà sostituita dalle proprietà degli eventi nel seguente ordine: <variablelist>
<varlistentry>
<term
>Primo argomento</term>
<listitem
><para
>L'id univoco dello script</para
></listitem>
</varlistentry>
<varlistentry>
<term
>Secondo argomento</term>
<listitem
><para
>il nome dell'evento</para
></listitem>
</varlistentry>
<varlistentry>
<term
>Terzo argomento</term>
<listitem
><para
>i parametri dell'evento, solitamente il nome del file del documento corrente o il percorso del file del progetto.</para
></listitem>
</varlistentry>
</variablelist>
 </para
></listitem>
</itemizedlist>
</para>
<para
>Accanto ai precedenti metodi lo script può ricevere dell'input da &quantaplus; tramite lo standard input. Nella casella combo <guilabel
>Input</guilabel
> puoi selezionare che cosa deve essere inviato sullo standard input. Le scelte possibili sono: <itemizedlist>
<listitem
><para
><guilabel
>Nulla</guilabel
>: non viene inviato nulla allo script.</para
></listitem>
<listitem
><para
><guilabel
>Documento corrente</guilabel
>: viene inviato allo script l'intero documento.</para
></listitem>
<listitem
><para
><guilabel
>Testo selezionato</guilabel
>: viene inviata allo script l'area del documento selezionata. L'utilizzo della variabile <command
>%input</command
> di solito ha senso solo quando si usa questa impostazione.</para
></listitem>
</itemizedlist>
</para>
<para
>In maniera simile alla voce <guilabel
>Input</guilabel
> puoi catturare l'output dell'applicazione eseguita. Ci sono due tipi di output: <itemizedlist
> <listitem
><para
>l'output normale, stampato sullo standard output;</para
> </listitem
> <listitem
><para
>i messaggi di errore, stampati sullo standard error.</para
> </listitem
> </itemizedlist
> Puoi specificare che cosa debba accadere al testo stampato sullo standard output, modificando il valore della casella combo <guilabel
>Output</guilabel
>: <itemizedlist>
<listitem
><para
><guilabel
>Nulla</guilabel
>: l'output dell'applicazione viene ignorato.</para
></listitem>
<listitem
><para
><guilabel
>Inserisci nella posizione del cursore</guilabel
>: l'output verrà inserito nel documento e nella posizione corrente.</para
></listitem>
<listitem
><para
><guilabel
>Sostituisci selezione</guilabel
>: l'area selezionata del documento verrà sostituita dall'output.</para
></listitem>
<listitem
><para
><guilabel
>Sostituisci selezione</guilabel
>: l'area selezionata del documento verrà sostituita dall'output.</para
></listitem>
<listitem
><para
><guilabel
>Crea un nuovo documento</guilabel
>: verrà creato un nuovo documento contenente  l'intero output dello script.</para
></listitem>
<listitem
><para
><guilabel
>Sostituisci il documento corrente</guilabel
>: l'intero documento verrà sostituito dall'output.</para
></listitem>
<listitem
><para
><guilabel
>Finestra di messaggio</guilabel
>: l'output apparirà nella vista <guilabel
>Messaggi</guilabel
>.</para
></listitem>
</itemizedlist>
</para>
<para
>Le scelte disponibili per lo standard error (<guilabel
>Error</guilabel
>) sono le stesse dell'output normale.</para>
</sect2>
</sect1>

<sect1 id="creating-toolbars-3-2">
<title
>Creare Barre degli strumenti</title>

<para
>Quanto segue ti mostrerà come creare barre degli strumenti per un &DTEP;. Le barre degli strumenti sono degli elementi grafici cui sono assegnate delle azioni. Le azioni in &quantaplus;, sono alla base di quasi tutte le estensioni che &quantaplus; possiede e che acquisirà in futuro. Lo stesso meccanismo che definisce un azione in &quantaplus; abilita anche l'auto-completamento nelle finestre di dialogo dei tag. L'utilizzo che puoi fare delle azioni è virtualmente illimitato. Per fare un esempio, useremo <ulink url="http://tidy.sf.net"
>&HTML; tidy</ulink
> sulle nostre pagine web. </para>

<sect2 id="from-scratch-to-complete-3-2">
<title
>Da Zero al Completo</title>

<para
>Per iniziare, dovrai creare una barra degli strumenti dell'utente. Seleziona <menuchoice
> <guimenu
>Barre degli strumenti</guimenu
> <guimenuitem
>Aggiungi Barra degli strumenti dell'Utente</guimenuitem
> </menuchoice
>. </para>

<para
>Se ci sono molti tag per il linguaggio di markup, ti raccomandiamo di dividerli in gruppi logici. Avrai bisogno di creare una nuova barra degli strumenti per ogni gruppo. In questo caso, non ce ne sono molti, perciò costruiremo solamente una barra degli strumenti e la chiameremo con il nome del markup. </para>

<para
>Una volta che saranno create tutte le tue barre degli strumenti, dovrai aggiungere e configurare le azioni. Per questo, seleziona <menuchoice
> <guimenu
>Impostazioni</guimenu
> <guimenuitem
>Configura Azioni</guimenuitem
> </menuchoice
> <emphasis
> </emphasis
>. </para>

<para
>Le parti di questa finestra sono molto chiare. Premi il pulsante <guibutton
>Nuova azione</guibutton
> alla base della finestra per entrare nella modalità di modifica. </para>

<para
>Completa tutti i campi necessari ed aggiungi il tag alla(/e) barra(/e) degli strumenti appropriata(/e). </para>

<para
>Completa il resto e, se il tag ha degli attributi ed hai intenzioni di usarli sempre, attiva la casella <guilabel
>Apri finestra di dialogo "Modifica tag" se disponibile </guilabel
> così che ti venga proposta ogni volta che usi questa azioni. </para>

<para
>Dovresti aver ottenuto ora qualcosa di molto simile a quanto segue. </para>

<mediaobject>
<imageobject>
<imagedata fileref="dtep_doc_img7.png" format="PNG"/>
</imageobject>
</mediaobject>

<para
>Premi il pulsante <guibutton
>Applica</guibutton
> per vedere l'azione aggiunta alla(/e) barra(/e) degli strumenti che hai selezionato. </para>

<mediaobject>
<imageobject>
<imagedata fileref="dtep_doc_img8.png" format="PNG"/>
</imageobject>
</mediaobject>

<para
>Oh no! Quell'icona è orribile. Come farete tu e gli altri a ricordare che quell'icona è associata a quell'azione? Sostituiamola prima che sopraggiungano dei problemi. </para>

<para
>Per creare un'icona che descriva in maniera più accurata quell'azione, utilizzeremo &kiconedit;. Selezionalo dal &kmenu;, <menuchoice
> <guisubmenu
>Grafica</guisubmenu
> <guisubmenu
>More Applications</guisubmenu
> </menuchoice
> (o dove l'ha posto la tua distribuzione). </para>

<para
>&kiconedit; inizia per impostazione predefinita con la dimensione di 32x32 pixel, ma noi abbiamo bisogno di 22x22. Per cambiare, seleziona <menuchoice
> <guimenu
>Modifica</guimenu
> <guimenuitem
>Ridimensiona</guimenuitem
> </menuchoice
>. </para>

<para
>Tieni a mente che stai creando un'icona che non aiuterà solo te a ricordare quale azione fa cosa, ma anche agli altri utenti del &DTEP;. </para>

<para
>Dato che il tag per cui sto creando l'icona è chiamato <quote
>inizio</quote
>, ho deciso di creare un <quote
>segnale di Start</quote
>. Usando il colore verde (il verde viene spesso interpretato come <quote
>vai</quote
>, <quote
>inizio</quote
> o <quote
>procedi</quote
>) porterà, o dovrebbe trasmettere un messaggio all'utente che facendo clic su questa azione verrà posto un tag &lt;start&gt; nel documento corrente.  </para>

<mediaobject>
<imageobject>
<imagedata fileref="dtep_doc_img15.png" format="PNG"/>
</imageobject>
</mediaobject>

<para
>Adesso che ho finito con la creazione dell'icona, la salverò. </para>

<para
>Una volta che avrai finito di creare l'icona, dovrai associarla con l'azione. Per farlo, apri di nuovo (in &quantaplus;) <menuchoice
> <guimenu
>Impostazioni</guimenu
> <guimenuitem
>Configura Azioni</guimenuitem
> </menuchoice
> e seleziona l'azione per cui hai creato l'icona. A lato del campo <guilabel
>Testo</guilabel
>, vedrai un pulsante su cui fare clic. </para>

<para
>Seleziona <guilabel
>Altre Icone</guilabel
> e poi fai clic sul pulsante <guibutton
>Sfoglia</guibutton
>. </para>

<para
>Raggiungi la cartella in cui hai salvato l'icona, selezionala e fai clic su <guibutton
>OK</guibutton
>. </para>

<para
>Premi il pulsante <guibutton
>Applica</guibutton
> e fai lo stesso per tutti gli altri tag, se ce ne sono, o fai clic su <guibutton
>OK</guibutton
> per finire. </para>

<mediaobject>
<imageobject>
<imagedata fileref="dtep_doc_img18.png" format="PNG"/>
</imageobject>
</mediaobject>

<para
>Supponiamo che tu voglia aggiungere alcune tipiche funzioni di &quantaplus; alla tua barra degli strumenti o magari pensi che la barra degli strumenti sarebbe meglio organizzata in una differente maniera con alcuni separatori per raggruppare le azioni. Apri la finestra di dialogo <guilabel
>Configura le barre degli strumenti</guilabel
> andando su <menuchoice
> <guimenu
>Impostazioni</guimenu
> <guimenuitem
>Configura le barre degli strumenti</guimenuitem
> </menuchoice
>. Assicurati che la tua barra degli strumenti sia selezionata. </para>

<para
>Sceglierò il separatore (in cima alla colonna di sinistra) per la mia barra degli strumenti. Una volta selezionato l'elemento che vuoi aggiungere alla tua barra degli strumenti, premi il pulsante con la freccia a destra. Così verrà aggiunto alla tua barra degli strumenti. </para>

<mediaobject>
<imageobject>
<imagedata fileref="dtep_doc_img21.png" format="PNG"/>
</imageobject>
</mediaobject>

<para
>Penso che avrò bisogno di una maniera rapida per accedere all'<guilabel
>Anteprima di Konqueror</guilabel
>. La selezionerò e l'aggiungerò alla barra degli strumenti. </para>

<mediaobject>
<imageobject>
<imagedata fileref="dtep_doc_img22.png" format="PNG"/>
</imageobject>
</mediaobject>

<para
>Nota come il separatore aiuti a raggruppare. Un utente privo di esperienza avrebbe potuto pensare che il pulsante di &konqueror; fosse stato analogo o addirittura opposto al pulsante start. </para>

<mediaobject>
<imageobject>
<imagedata fileref="dtep_doc_img23.png" format="PNG"/>
</imageobject>
</mediaobject>

<para
>Applica le tue modifiche e, quando hai terminato, premi <guibutton
>OK</guibutton
> per finire. </para>

<para
>Ah, guarda alla nuova e fantastica barra degli strumenti! Molto più maneggevole ora. </para>

<mediaobject>
<imageobject>
<imagedata fileref="dtep_doc_img24.png" format="PNG"/>
</imageobject>
</mediaobject>

<para
>Ricordati di verificare la tua barra degli strumenti, facendo clic su tutti i pulsanti, così da verificare che l'output sia corretto. </para>

<mediaobject>
<imageobject>
<imagedata fileref="dtep_doc_img25.png" format="PNG"/>
</imageobject>
</mediaobject>

<para
>Ora, per salvare la barra degli strumenti, selezioneremo <menuchoice
> <guimenu
>Barre degli strumenti</guimenu
> <guisubmenu
>Salva barre degli strumenti</guisubmenu
> <guimenuitem
>Salva con nome la barra degli strumenti locale</guimenuitem
> </menuchoice
>. </para>

<para
>Salvala nella cartella corretta. Dato che NeXML non esiste, la metterò nella cartella di primo livello, ma la tua barra degli strumenti dovrebbe essere salvata nella cartella corretta. Assicurati di impostare il tuo file &descriptionrc; così da caricare la tua barra degli strumenti quando viene creato un nuovo file di quel tipo. </para>
</sect2>
</sect1>


<sect1 id="creating-quanta-docs-3-2">
<sect1info>
<title
>Creare la Tua Documentazione</title>
<authorgroup>
<author
><firstname
>Robert</firstname
> <surname
>Nickel</surname
> <affiliation
> <address
><email
>robert@artnickel.com</email
></address>
</affiliation>
</author>

<othercredit role="translator"
><firstname
>Samuele</firstname
><surname
>Kaplun</surname
><affiliation
><address
><email
>samuele.kaplun@collegiodimilano.it</email
></address
></affiliation
><contrib
>Traduzione del documento</contrib
></othercredit
> 

</authorgroup>
</sect1info>

<title
>Creare la Tua Documentazione</title>

<para
>Le aggiunte più evidenti in &quantaplus; per l'utente generico saranno, probabilmente, l'aggiunta della documentazione per il linguaggio markup o scripting che ti piace di più. Per questo, questo capitolo spiegherà come creare l'albero della documentazione di &PHP; per il mio uso personale. </para>

<para
>Prima di iniziare a creare la tua documentazione, potresti voler controllare l'<ulink url="http://quanta.sf.net/main1.php?contfile=resource"
>archivio di &quantaplus;</ulink
> per vedere se qualcun altro l'ha già creata. </para>

<para
>Ci sono due fasi in questo processo. Primo, devi procurarti la documentazione esistente per il linguaggio di markup/scripting/eccetera che stai curando. Secondo, devi creare il file <filename
>docrc</filename
>. La prima fase dipende da te, la seconda è quella che affronteremo ora. </para>

<para
>La forma generica del file docrc è la seguente: </para>

<informalexample>
<literallayout
>#File di Configurazione di KDE
[Tree]
Doc dir=<replaceable
>percorso, relativamente a questo file, per i file html della documentazione</replaceable
> ad esempio, php42/
#elementi di primo livello
Top Element=<replaceable
>La tua descrizione per questa documentazione</replaceable
> Ad esempio, documentazione &PHP; 4.2

Sezione 1=Sezione1.html
Sezione 2=#Sez2.1,#Sez2.2,#Sez2.3
Sez2.1=Sez2.1.html
Sez2.2=Sez2.2.html
Sez2.3=Sez2.3.html
...

[Context]
ContextList=funz1,funz2,tag1,tag2,tag3
funz1=funz1.html
funz2=funz2.html
tag1=tag1.html
tag2=tag2.html
tag3=tag3.html
</literallayout>
</informalexample>

<para
>Il file <filename
>docrc</filename
> è suddiviso in due sezioni: Albero e Contesto. </para>

<para
>La sezione Tree definisce l'aspetto con cui viene presentata la documentazione nella scheda omonima. Per esempio, potrai osservare che con la documentazione di &PHP; hai qualcosa di simile a: </para>

<mediaobject>
<imageobject>
<imagedata fileref="doc-view1.png" format="PNG"/>
</imageobject>
</mediaobject>

<para
>Facendo riferimento a quanto mostrato sopra, il mio file <filename
>docrc</filename
> di &PHP; appare così: </para>

<informalexample>
<literallayout
>#KDE Config File

[Tree]

Doc dir=php42/

#top level elements
Top Element=PHP 4.2 documentation

PHP 4.2 documentation=Table of Contents,#Getting Started,#Language Reference

Table of Contents=index.html

Getting Started=Introduction, ...
Introduction=introduction.html
...

Language Reference=Basic syntax, ...
Basic syntax=language.basic-syntax.html
...

</literallayout>
</informalexample>

<para
>Osserva il <literal
>#</literal
> davanti a <quote
>Getting Started</quote
> e <quote
>Language Reference</quote
>. Questo sta ad indicare che questi sono sotto-contenitori dell'albero e che hanno un proprio contenuto. Non credo che ci sia un limite al livello di profondità (oltre a quello indicato dal buonsenso) &mdash; usa il tuo giudizio. </para>

<para
>Per il Sommario, avrai notato che fa riferimento direttamente ad un file (e di conseguenza appare in fondo alla rappresentazione dell'albero &mdash; le cartelle vengono prima!). </para>

<important>
<para
>Gli spazi non influiscono su nulla, ma fai attenzione ai caratteri &amp; e &lt;. Questi dovrebbero essere sostituiti rispettivamente da &amp;amp; e &amp;lt; in tutti i file di risorsa di &quantaplus; basati su &XML;. </para>
</important>

<para
>La sezione Context è la sezione del file docrc che viene usata per facilitare l'aiuto sensibile al contesto. Per esempio, stai scrivendo uno script &PHP; e desideri vedere la documentazione per la funzione <function
>mysql_fetch_array</function
>. Evidenzia semplicemente la funzione e premi <keycombo action="simul"
>&Ctrl;<keycap
>H</keycap
> </keycombo
> per l'aiuto contestuale. Verrà immediatamente visualizzata la documentazione di <function
>mysql_fetch_array</function
>. Ci sono solo due tipi di voci qui: ContextList e le righe di associazione ai file. </para>

<variablelist>
<varlistentry>
<term
>ContextList</term>
<listitem>
<para
>Molto semplicemente, questa è solo una lista di voci di contesto, separati da una virgola, che desideri siano disponibili (per &PHP;, questi sono le funzioni di &PHP;). </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Righe di associazioni dei file</term>
<listitem>
<para
>Queste sono nella forma elemento di contesto=pagina della documentazione html. Ad esempio acos=function.acos.html </para>
</listitem>
</varlistentry>
</variablelist>

<para
>Una versione ridotta della sezione Contesto del mio <filename
>docrc</filename
> è la seguente: </para>

<informalexample>
<literallayout
>#Parole chiave per l'aiuto contestuale
[Context]
ContextList=abs,acos,acosh,addcslashes,addslashes,...

abs=function.abs.html
acos=function.acos.html
acosh=function.acosh.html
addcslashes=function.addcslashes.html
addslashes=function.addslashes.html
...
</literallayout>
</informalexample>

<para
>Adesso è sufficiente salvare il tuo file <filename
>docrc</filename
>, in <filename class="directory"
>$<envar
>HOME</envar
>/.kde/share/apps/quanta/doc</filename
> o <filename class="directory"
>$<envar
>KDEDIR</envar
>/share/apps/quanta/doc</filename
> rispettivamente per un uso locale o globale. Poi occorre creare una cartella (quella specificata nel tuo file <filename
>docrc</filename
>) nella stessa cartella del tuo file <filename
>docrc</filename
> e copiare lì le tue pagine &HTML;. </para>

<para
>Dovrai riavviare &quantaplus; per vedere la tua documentazione. </para>

<para
>Una volta che ti sei accertato che siano buoni e valga la pena condividerli, spedisci il file <filename
>docrc</filename
> assieme ad una descrizione riguardo a qualsiasi informazione pertinente su quale documentazione tu abbia usato all'<ulink url="http://quanta.sf.net/main1.php?contfile=resource"
>archivio di &quantaplus;</ulink
> perché venga usato dalla comunità di &quantaplus;. Non diventerai ricco, ma ti sentirai gratificato sapendo di aver contribuito qualcosa alla miglior piattaforma di sviluppo web che esista. </para>

</sect1>

<sect1 id="sharing-resources">
  <title
>Condivisione delle risorse</title>
  <para
>Con &quantaplus; non sei solo. È possibile condividere con gli altri le diverse risorse (pacchetti DTEP, barre degli strumenti con le relative azioni, script, modelli). Ci sono due modi per farlo: </para>
  <variablelist>
    <varlistentry>
      <term
>Spedire via posta elettronica</term>
      <listitem
><para
>Le risorse possono essere inviate tramite posta elettronica ai tuoi amici, colleghi o altri. Troverai la voce di menu <guilabel
>Invia per posta elettronica</guilabel
> in diversi posti, ad esempio <menuchoice
><guimenu
>DTD</guimenu
><guimenuitem
>Invia il pacchetto DTD (DTEP) per posta elettronica</guimenuitem
></menuchoice
>, <menuchoice
><guimenu
>Barre degli strumenti</guimenu
><guimenuitem
>Invia barra degli strumenti per posta elettronica</guimenuitem
></menuchoice
>, nel menu contestuale dei file e delle cartelle negli alberi <guilabel
>Modelli</guilabel
> e <guilabel
>Script</guilabel
>. </para
></listitem>
    </varlistentry>
    <varlistentry>
      <term
>Spedire al server principale</term>
      <listitem
><para
>Le risorse possono essere spedite al nostro deposito principale, dal quale tutti gli altri utenti di &quantaplus; potranno scaricarle. Gli invii verranno esaminati e resi disponibili solo se la nostra squadra li considererà corretti ed utili per la pubblicazione. Per fare un invio valido ti suggeriamo di firmare le risorse, perciò hai bisogno di una chiave GPG/PGP. Questa informazione viene usata per verificare l'origine delle risorse sia dalla nostra squadra che dagli altri utenti.</para>
        <para
>Riguardo a come ottenere delle risorse dal server principale <xref linkend="download-resources"/>.</para>
      <para
>Durante l'invio ti verrà chiesto di inserire la parola chiave per la tua chiave segreta GPG (la parola chiave non verrà memorizzata), o nel caso tu abbia più chiavi segrete, ti verrà chiesto di scegliere quale intendi utilizzare. Nella finestra di dialogo <guilabel
>Condividi le novità</guilabel
> riempi gli appositi campi (la voce <guilabel
>Anteprima URL</guilabel
> potrà rimanere vuota) e inizia l'invio facendo clic su <guilabel
>OK</guilabel
>.</para>
      <para
>Si può iniziare l'invio tramite il menu <menuchoice
><guimenu
>DTD</guimenu
><guimenuitem
>Invia pacchetto DTD (DTEP)</guimenuitem
></menuchoice
>, <menuchoice
><guimenu
>Barre degli strumenti</guimenu
><guimenuitem
>Invia barra degli strumenti</guimenuitem
></menuchoice
>, nel menu contestuale dei file e delle cartelle nell'albero dei <guilabel
>Modelli</guilabel
> e degli <guilabel
>Script</guilabel
>. </para>
      </listitem>
    </varlistentry>
</variablelist>
</sect1>
<sect1 id="download-resources">
<title
>Ottenere le risorse</title>
<para
>È possibile aggiornare la tua installazione di &quantaplus; senza installarne una nuova versione, scaricando le nuove risorse come i pacchetti DTEP, le barre degli strumenti con le azioni, i modelli, gli script e la documentazione. Una delle possibilità è quella di ottenere le risorse tramite posta elettronica o di scaricarle da un server web, nel qual caso dovrai installarle manualmente. Se sarai fortunato troverai anche uno script di installazione allegato alla risorsa. &quantaplus; possiede, inoltre,  un server dedicato per archiviare le risorse che non sono state incluse nella distribuzione principale o a causa delle loro dimensioni o del loro utilizzo poco frequente, o che sono state contribuite in seguito dagli utenti. Queste risorse vengono installate automaticamente. Per scaricarle utilizza le varie voci <guilabel
>Scarica</guilabel
> nei rispettivi menu. Puoi trovarli nel menu <menuchoice
><guimenu
>DTD</guimenu
><guimenuitem
>Scarica pacchetto DTD (DTEP)</guimenuitem
></menuchoice
>, <menuchoice
><guimenu
>Barre degli strumenti</guimenu
><guimenuitem
>Scarica barra degli strumenti</guimenuitem
></menuchoice
>, nel menu contestuale di un'area libera nell'elemento radice degli alberi <guilabel
>Modelli</guilabel
>, <guilabel
>Script</guilabel
> e <guilabel
>Documentazione</guilabel
>. </para>
<para
>Dopo aver scaricato una risorsa, ma prima di averla installata, &quantaplus; ne verifica la validità, controllandone l'integrità e la firma elettronica. In caso di problemi li segnalerà e potrai decidere di continuare o meno. Per favore, leggi attentamente le finestre di dialogo. Nel caso in cui l'integrità sia corretta e la risorsa sia correttamente firmata, ti verrà comunque mostrata una finestra di dialogo informativa, così che tu possa vedere chi ha creato la risorsa. </para>
<para>
  <caution
><para
>Assicurati di installare le risorse, specialmente per quanto riguarda le barre degli strumenti e gli script, solo da sorgenti sicuri!</para
></caution>
</para>
</sect1>

<sect1 id="converting-dtd">
  <title
>Convertire una DTD in una &DTEP;</title>
  <para
>È possibile lavorare su linguaggi XML non supportati attualmente da &quantaplus; creandone il pacchetto DTEP. Ma la creazione potrebbe impiegare parecchio tempo, in quanto potresti dover creare centinaia di file tag nel formato <link linkend="tagxml-3-2"
>tagXML</link
>. Chiaramente c'è un modo più rapido per farlo, convertendo automaticamente un DTD in un pacchetto DTEP. </para>
  <para
>La conversione può essere avviata dal menu <menuchoice
><guimenu
>DTD</guimenu
><guimenuitem
>Carica e converti DTD</guimenuitem
></menuchoice
>. Seleziona il file <filename
>.dtd</filename
> che definisce il DTD che desideri utilizzare. Vedrai così la finestra di dialogo: <mediaobject
> <imageobject>
        <imagedata fileref="dtd-conversion.png" format="PNG"/>
      </imageobject>
    </mediaobject
>  
  </para>
<para
>Le voci sono:</para>
<itemizedlist>
  <listitem
><para
><guilabel
>Cartella di destinazione:</guilabel
> il nuovo &DTEP; appena creato verrà posto in una cartella con questo nome al di sotto di <filename
><envar
>$KDEHOME</envar
>/share/apps/quanta/dtep</filename
>. </para>
  </listitem>
  <listitem
><para
><guilabel
>Nome:</guilabel
>il nome (stringa di definizione) del DTD</para
></listitem>
  <listitem
><para
><guilabel
>Pseudonimo:</guilabel
> il nome del &DTEP; visibile all'utente</para
></listitem>
  <listitem
><para
><guilabel
>Riga di definizione !DOCTYPE:</guilabel
> la stringa che dovrà apparire nel tag !DOCTYPE, come HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"</para
></listitem>
  <listitem
><para
><guilabel
>URL DTD:</guilabel
> l'URL che punta al file DTD</para
></listitem>
  <listitem
><para
><guilabel
>Estensione predefinita:</guilabel
> l'estensione utilizzata solitamente per i file scritti in questo DTD</para
></listitem>
  <listitem
><para
><guilabel
>Tag e attributi sensibili alle minuscole/maiuscole:</guilabel
> autoesplicativo, di solito vero per le varianti dei linguaggi XML</para
></listitem>
  <listitem
><para
><guilabel
>Raffina il DTEP dopo la conversione:</guilabel
> se selezionato, avvenuta la conversione, &quantaplus; aprirà l'editor del file &descriptionrc;, così che tu possa raffinare il &DTEP; appena creato. Si raccomanda di lasciare questa opzione selezionata.</para
></listitem>
</itemizedlist>

</sect1>
</chapter>
