hgbook

diff it/ch11-template.xml @ 853:eed01b9ad3e6

Typography.
author gpiancastelli
date Sat Aug 22 21:55:05 2009 +0200 (2009-08-22)
parents c06e8bddfcf9
children 18b67e30ba27
line diff
     1.1 --- a/it/ch11-template.xml	Sat Aug 22 17:26:06 2009 +0200
     1.2 +++ b/it/ch11-template.xml	Sat Aug 22 21:55:05 2009 +0200
     1.3 @@ -2,14 +2,14 @@
     1.4    <?dbhtml filename="personalizzare-i-messaggi-di-mercurial.html"?>
     1.5    <title>Personalizzare i messaggi di Mercurial</title>
     1.6  
     1.7 -  <para id="x_578">Mercurial vi offre un potente meccanismo basato sui template (letteralmente, modelli) per controllare il modo in cui visualizza le informazioni. Potete usare i template per generare una specifica presentazione dei risultati di un singolo comando, o per personalizzare l'intero aspetto dell'interfaccia web predefinita.</para>
     1.8 +  <para id="x_578">Mercurial vi offre un potente meccanismo basato sui template (letteralmente, modelli) per controllare il modo in cui visualizza le informazioni. Potete usare i template per generare una specifica presentazione dei risultati di un singolo comando, o per personalizzare l&rsquo;intero aspetto dell&rsquo;interfaccia web predefinita.</para>
     1.9  
    1.10    <sect1 id="sec:style">
    1.11      <title>Usare gli stili di formattazione già pronti</title>
    1.12  
    1.13      <para id="x_579">Mercurial include alcuni stili di formattazione che potete usare immediatamente. Uno stile è semplicemente un template già pronto che qualcuno ha scritto e installato in una posizione nota a Mercurial.</para>
    1.14  
    1.15 -    <para id="x_57a">Prima di dare un'occhiata agli stili distribuiti con Mercurial, rivediamo il normale risultato di un suo comando.</para>
    1.16 +    <para id="x_57a">Prima di dare un&rsquo;occhiata agli stili distribuiti con Mercurial, rivediamo il normale risultato di un suo comando.</para>
    1.17  
    1.18      &interaction.template.simple.normal;
    1.19  
    1.20 @@ -17,7 +17,7 @@
    1.21  
    1.22      &interaction.template.simple.compact;
    1.23  
    1.24 -    <para id="x_57c">Lo stile <literal>changelog</literal> ci dà un'idea di quale sia il potere espressivo del motore di template di Mercurial. Questo stile tenta di seguire le linee guida per la formattazione di un registro dei cambiamenti stabilite dal progetto GNU <citation><xref linkend="bib:gnu"/></citation>.</para>
    1.25 +    <para id="x_57c">Lo stile <literal>changelog</literal> ci dà un&rsquo;idea di quale sia il potere espressivo del motore di template di Mercurial. Questo stile tenta di seguire le linee guida per la formattazione di un registro dei cambiamenti stabilite dal progetto GNU <citation><xref linkend="bib:gnu"/></citation>.</para>
    1.26  
    1.27      &interaction.template.simple.changelog;
    1.28  
    1.29 @@ -48,7 +48,7 @@
    1.30  
    1.31      <para id="x_582">Nella sua forma più semplice, un template Mercurial è un frammento di testo. Parte del testo non cambia mai, mentre altre parti vengono <emphasis>espanse</emphasis>, cioè sostituite con nuovo testo, quando è necessario.</para>
    1.32  
    1.33 -    <para id="x_583">Prima di continuare, diamo un'altra occhiata al semplice esempio del normale risultato di un comando Mercurial.</para>
    1.34 +    <para id="x_583">Prima di continuare, diamo un&rsquo;altra occhiata al semplice esempio del normale risultato di un comando Mercurial.</para>
    1.35  
    1.36      &interaction.template.simple.normal;
    1.37  
    1.38 @@ -56,15 +56,15 @@
    1.39  
    1.40      &interaction.template.simple.simplest;
    1.41  
    1.42 -    <para id="x_585">Questo esempio illustra il template più semplice possibile, composto solo da un messaggio di testo statico stampato una volta per ogni changeset. L'opzione <option role="hg-opt-log">--template</option> del comando <command role="hg-cmd">hg log</command> dice a Mercurial di usare il testo dato come template per stampare ogni changeset.</para>
    1.43 -
    1.44 -    <para id="x_586">Notate che la stringa di template appena usata termina con il testo <quote><literal>\n</literal></quote>. Questa è una <emphasis>sequenza di escape</emphasis> che dice a Mercurial di stampare una carattere di nuova riga alla fine di ogni elemento di template. Se omettete questa nuova riga, Mercurial mostrerà un messaggio di testo di seguito all'altro. Leggete la <xref linkend="sec:template:escape"/> per maggiori dettagli sulle sequenze di escape.</para>
    1.45 -
    1.46 -    <para id="x_587">Un template che stampa una stringa di testo fissa tutte le volte non è molto utile, perciò proviamo qualcosa di un po' più complesso.</para>
    1.47 +    <para id="x_585">Questo esempio illustra il template più semplice possibile, composto solo da un messaggio di testo statico stampato una volta per ogni changeset. L&rsquo;opzione <option role="hg-opt-log">--template</option> del comando <command role="hg-cmd">hg log</command> dice a Mercurial di usare il testo dato come template per stampare ogni changeset.</para>
    1.48 +
    1.49 +    <para id="x_586">Notate che la stringa di template appena usata termina con il testo <quote><literal>\n</literal></quote>. Questa è una <emphasis>sequenza di escape</emphasis> che dice a Mercurial di stampare una carattere di nuova riga alla fine di ogni elemento di template. Se omettete questa nuova riga, Mercurial mostrerà un messaggio di testo di seguito all&rsquo;altro. Leggete la <xref linkend="sec:template:escape"/> per maggiori dettagli sulle sequenze di escape.</para>
    1.50 +
    1.51 +    <para id="x_587">Un template che stampa una stringa di testo fissa tutte le volte non è molto utile, perciò proviamo qualcosa di un po&rsquo; più complesso.</para>
    1.52  
    1.53      &interaction.template.simple.simplesub;
    1.54  
    1.55 -    <para id="x_588">Come potete vedere, la stringa <quote><literal>{desc}</literal></quote> nel template è stata sostituita con la descrizione di ogni changeset nel messaggio. Ogni volta che Mercurial trova un testo racchiuso tra parentesi graffe (<quote><literal>{</literal></quote> e <quote><literal>}</literal></quote>), proverà a sostituire le parentesi e il testo con l'espansione di qualunque cosa vi sia contenuta. Per stampare una parentesi graffa letterale dovete effettuarne l'escape, come descritto nella <xref linkend="sec:template:escape"/>.</para>
    1.56 +    <para id="x_588">Come potete vedere, la stringa <quote><literal>{desc}</literal></quote> nel template è stata sostituita con la descrizione di ogni changeset nel messaggio. Ogni volta che Mercurial trova un testo racchiuso tra parentesi graffe (<quote><literal>{</literal></quote> e <quote><literal>}</literal></quote>), proverà a sostituire le parentesi e il testo con l&rsquo;espansione di qualunque cosa vi sia contenuta. Per stampare una parentesi graffa letterale dovete effettuarne l&rsquo;escape, come descritto nella <xref linkend="sec:template:escape"/>.</para>
    1.57    </sect1>
    1.58  
    1.59    <sect1 id="sec:template:keyword">
    1.60 @@ -73,11 +73,11 @@
    1.61      <para id="x_589">Potete cominciare immediatamente a scrivere semplici template usando le seguenti parole chiave.</para>
    1.62  
    1.63      <itemizedlist>
    1.64 -      <listitem><para id="x_58a"><literal role="template-keyword">author</literal>: stringa. Il nome non modificato dell'autore del changeset.</para>
    1.65 +      <listitem><para id="x_58a"><literal role="template-keyword">author</literal>: stringa. Il nome non modificato dell&rsquo;autore del changeset.</para>
    1.66        </listitem>
    1.67        <listitem><para id="x_58b"><literal role="template-keyword">branches</literal>: stringa. Il nome del ramo su cui il changeset è stato inserito. Sarà vuoto se il nome del ramo è <literal>default</literal>.</para>
    1.68        </listitem>
    1.69 -      <listitem><para id="x_58c"><literal role="template-keyword">date</literal>: informazioni di data. La data in cui il changeset è stato inserito. Questa informazione <emphasis>non</emphasis> è rappresentata in maniera comprensibile, bensì dovete passarla attraverso un filtro per presentarla in maniera appropriata. Leggete la <xref linkend="sec:template:filter"/> per maggiori informazioni sui filtri. La data viene espressa come una coppia di numeri. Il primo numero è una marcatura temporale che segue l'UTC Unix (e indica il numero di secondi trascorsi dal 1° gennaio 1970); il secondo è la differenza tra il fuso orario dell'autore del commit e l'UTC, espressa in secondi.</para>
    1.70 +      <listitem><para id="x_58c"><literal role="template-keyword">date</literal>: informazioni di data. La data in cui il changeset è stato inserito. Questa informazione <emphasis>non</emphasis> è rappresentata in maniera comprensibile, bensì dovete passarla attraverso un filtro per presentarla in maniera appropriata. Leggete la <xref linkend="sec:template:filter"/> per maggiori informazioni sui filtri. La data viene espressa come una coppia di numeri. Il primo numero è una marcatura temporale che segue l&rsquo;UTC Unix (e indica il numero di secondi trascorsi dal 1° gennaio 1970); il secondo è la differenza tra il fuso orario dell&rsquo;autore del commit e l&rsquo;UTC, espressa in secondi.</para>
    1.71        </listitem>
    1.72        <listitem><para id="x_58d"><literal role="template-keyword">desc</literal>: stringa. Il testo della descrizione del changeset.</para>
    1.73        </listitem>
    1.74 @@ -87,7 +87,7 @@
    1.75        </listitem>
    1.76        <listitem><para id="x_590"><literal role="template-keyword">file_dels</literal>: lista di stringhe. I file rimossi da questo changeset.</para>
    1.77        </listitem>
    1.78 -      <listitem><para id="x_591"><literal role="template-keyword">node</literal>: stringa. L'hash di identificazione del changeset, sotto forma di una stringa esadecimale di 40 caratteri.</para>
    1.79 +      <listitem><para id="x_591"><literal role="template-keyword">node</literal>: stringa. L&rsquo;hash di identificazione del changeset, sotto forma di una stringa esadecimale di 40 caratteri.</para>
    1.80        </listitem>
    1.81        <listitem><para id="x_592"><literal role="template-keyword">parents</literal>: lista di stringhe. I genitori del changeset.</para>
    1.82        </listitem>
    1.83 @@ -101,7 +101,7 @@
    1.84  
    1.85      &interaction.template.simple.keywords;
    1.86  
    1.87 -    <para id="x_596">Come abbiamo notato prima, la parola chiave per la data non produce un risultato comprensibile, così dobbiamo trattarla in maniera speciale. Questo implica l'uso dei <emphasis>filtri</emphasis>, che verranno trattati in maniera più approfondita nella <xref linkend="sec:template:filter"/>.</para>
    1.88 +    <para id="x_596">Come abbiamo notato prima, la parola chiave per la data non produce un risultato comprensibile, così dobbiamo trattarla in maniera speciale. Questo implica l&rsquo;uso dei <emphasis>filtri</emphasis>, che verranno trattati in maniera più approfondita nella <xref linkend="sec:template:filter"/>.</para>
    1.89  
    1.90      &interaction.template.simple.datekeyword;
    1.91    </sect1>
    1.92 @@ -128,20 +128,20 @@
    1.93        <listitem><para id="x_59e"><literal>\}</literal>: parentesi graffa chusa, <quote><literal>}</literal></quote>, codice ASCII 175.</para>
    1.94        </listitem></itemizedlist>
    1.95  
    1.96 -    <para id="x_59f">Come appena indicato, se volete che l'espansione di un template contenga un carattere <quote><literal>\</literal></quote>, <quote><literal>{</literal></quote>, o <quote><literal>{</literal></quote> letterale, dovete effettuarne l'escape.</para>
    1.97 +    <para id="x_59f">Come appena indicato, se volete che l&rsquo;espansione di un template contenga un carattere <quote><literal>\</literal></quote>, <quote><literal>{</literal></quote>, o <quote><literal>{</literal></quote> letterale, dovete effettuarne l&rsquo;escape.</para>
    1.98    </sect1>
    1.99  
   1.100    <sect1 id="sec:template:filter">
   1.101      <title>Filtrare le parole chiave per modificarne i risultati</title>
   1.102  
   1.103 -    <para id="x_5a0">Alcuni dei risultati dell'espansione dei template non sono immediatamente facili da usare. Mercurial vi permette di specificare una catena opzionale di <emphasis>filtri</emphasis> per modificare il risultato dell'espansione di una parola chiave. Avete già visto in azione un filtro comune, <literal role="template-kw-filt-date">isodate</literal>, usato precedentemente per rendere leggibile una data.</para>
   1.104 -
   1.105 -    <para id="x_5a1">Qui di seguito viene presentata una lista dei filtri più comunemente usati che Mercurial supporta. Mentre alcuni filtri possono essere applicati a qualunque testo, altri possono essere usati solo in circostanze specifiche. Il nome di ogni filtro è seguito prima da un'indicazione del contesto in cui può essere usato e poi da una descrizione dei suoi effetti.</para>
   1.106 +    <para id="x_5a0">Alcuni dei risultati dell&rsquo;espansione dei template non sono immediatamente facili da usare. Mercurial vi permette di specificare una catena opzionale di <emphasis>filtri</emphasis> per modificare il risultato dell&rsquo;espansione di una parola chiave. Avete già visto in azione un filtro comune, <literal role="template-kw-filt-date">isodate</literal>, usato precedentemente per rendere leggibile una data.</para>
   1.107 +
   1.108 +    <para id="x_5a1">Qui di seguito viene presentata una lista dei filtri più comunemente usati che Mercurial supporta. Mentre alcuni filtri possono essere applicati a qualunque testo, altri possono essere usati solo in circostanze specifiche. Il nome di ogni filtro è seguito prima da un&rsquo;indicazione del contesto in cui può essere usato e poi da una descrizione dei suoi effetti.</para>
   1.109  
   1.110      <itemizedlist>
   1.111 -      <listitem><para id="x_5a2"><literal role="template-filter">addbreaks</literal>: qualunque testo. Aggiunge un elemento XHTML <quote><literal>&lt;br/&gt;</literal></quote> prima della fine di ogni riga tranne l'ultima. Per esempio, <quote><literal>foo\nbar</literal></quote> diventa <quote><literal>foo&lt;br/&gt;\nbar</literal></quote>.</para>
   1.112 -      </listitem>
   1.113 -      <listitem><para id="x_5a3"><literal role="template-kw-filt-date">age</literal>: parola chiave <literal role="template-keyword">date</literal>. Rappresenta l'età della data, relativa all'ora corrente. Produce stringhe come <quote><literal>10 minuti</literal></quote>.</para>
   1.114 +      <listitem><para id="x_5a2"><literal role="template-filter">addbreaks</literal>: qualunque testo. Aggiunge un elemento XHTML <quote><literal>&lt;br/&gt;</literal></quote> prima della fine di ogni riga tranne l&rsquo;ultima. Per esempio, <quote><literal>foo\nbar</literal></quote> diventa <quote><literal>foo&lt;br/&gt;\nbar</literal></quote>.</para>
   1.115 +      </listitem>
   1.116 +      <listitem><para id="x_5a3"><literal role="template-kw-filt-date">age</literal>: parola chiave <literal role="template-keyword">date</literal>. Rappresenta l&rsquo;età della data, relativa all&rsquo;ora corrente. Produce stringhe come <quote><literal>10 minuti</literal></quote>.</para>
   1.117        </listitem>
   1.118        <listitem><para id="x_5a4"><literal role="template-filter">basename</literal>: qualunque testo, ma utile soprattutto per la parola chiave <literal role="template-keyword">files</literal> e simili. Tratta il testo come un percorso e restituisce il nome di base. Per esempio, <quote><literal>foo/bar/baz</literal></quote> diventa <quote><literal>baz</literal></quote>.</para>
   1.119        </listitem>
   1.120 @@ -171,22 +171,22 @@
   1.121        </listitem>
   1.122        <listitem><para id="x_5b1"><literal role="template-kw-filt-node">short</literal>: hash di changeset. Produce la forma breve di un hash di changeset, cioè una stringa esadecimale di 12 caratteri.</para>
   1.123        </listitem>
   1.124 -      <listitem><para id="x_5b2"><literal role="template-kw-filt-date">shortdate</literal>: parola chiave <literal role="template-keyword">date</literal>. Rappresenta l'anno, il mese e il giorno della data. Produce una stringa come <quote><literal>2006-09-04</literal></quote>.</para>
   1.125 -      </listitem>
   1.126 -      <listitem><para id="x_5b3"><literal role="template-filter">strip</literal>: qualunque testo. Rimuove lo spazio bianco all'inizio e alla fine di una stringa.</para>
   1.127 +      <listitem><para id="x_5b2"><literal role="template-kw-filt-date">shortdate</literal>: parola chiave <literal role="template-keyword">date</literal>. Rappresenta l&rsquo;anno, il mese e il giorno della data. Produce una stringa come <quote><literal>2006-09-04</literal></quote>.</para>
   1.128 +      </listitem>
   1.129 +      <listitem><para id="x_5b3"><literal role="template-filter">strip</literal>: qualunque testo. Rimuove lo spazio bianco all&rsquo;inizio e alla fine di una stringa.</para>
   1.130        </listitem>
   1.131        <listitem><para id="x_5b4"><literal role="template-filter">tabindent</literal>: qualunque testo. Produce il testo, facendo cominciare ogni riga tranne la prima con un carattere di tabulazione.</para>
   1.132        </listitem>
   1.133 -      <listitem><para id="x_5b5"><literal role="template-filter">urlescape</literal>: qualunque testo. Effettua l'escape di tutti i caratteri che sono considerati <quote>speciali</quote> dai riconoscitori di URL. Per esempio, <literal>foo bar</literal> diventa <literal>foo%20bar</literal>.</para>
   1.134 -      </listitem>
   1.135 -      <listitem><para id="x_5b6"><literal role="template-kw-filt-author">user</literal>: qualunque testo, ma utile soprattutto per la parola chiave <literal role="template-keyword">author</literal>. Restituisce la porzione dell'<quote>utente</quote> di un indirizzo email. Per esempio <quote><literal>Bryan O'Sullivan &lt;bos@serpentine.com&gt;</literal></quote> diventa <quote><literal>bos</literal></quote>.</para>
   1.136 +      <listitem><para id="x_5b5"><literal role="template-filter">urlescape</literal>: qualunque testo. Effettua l&rsquo;escape di tutti i caratteri che sono considerati <quote>speciali</quote> dai riconoscitori di URL. Per esempio, <literal>foo bar</literal> diventa <literal>foo%20bar</literal>.</para>
   1.137 +      </listitem>
   1.138 +      <listitem><para id="x_5b6"><literal role="template-kw-filt-author">user</literal>: qualunque testo, ma utile soprattutto per la parola chiave <literal role="template-keyword">author</literal>. Restituisce la porzione dell&rsquo;<quote>utente</quote> di un indirizzo email. Per esempio <quote><literal>Bryan O'Sullivan &lt;bos@serpentine.com&gt;</literal></quote> diventa <quote><literal>bos</literal></quote>.</para>
   1.139        </listitem>
   1.140      </itemizedlist>
   1.141  
   1.142      &interaction.template.simple.manyfilters;
   1.143  
   1.144      <note>
   1.145 -      <para id="x_5b7">Se provate ad applicare un filtro a un frammento di dati che non può elaborare, Mercurial fallirà e stamperà un'eccezione Python. Per esempio, non è una buona idea provare a utilizzare l'output della parola chiave <literal role="template-keyword">desc</literal> con il filtro <literal role="template-kw-filt-date">isodate</literal>.</para>
   1.146 +      <para id="x_5b7">Se provate ad applicare un filtro a un frammento di dati che non può elaborare, Mercurial fallirà e stamperà un&rsquo;eccezione Python. Per esempio, non è una buona idea provare a utilizzare l&rsquo;output della parola chiave <literal role="template-keyword">desc</literal> con il filtro <literal role="template-kw-filt-date">isodate</literal>.</para>
   1.147      </note>
   1.148  
   1.149      <sect2>
   1.150 @@ -196,9 +196,9 @@
   1.151  
   1.152        &interaction.template.simple.combine;
   1.153  
   1.154 -      <para id="x_5b9">Notate l'uso di <quote><literal>\t</literal></quote> (un carattere di tabulazione) nel template per indentare la prima riga, necessario dato che <literal role="template-keyword">tabindent</literal> indenta tutte le righe <emphasis>tranne</emphasis> la prima.</para>
   1.155 -
   1.156 -      <para id="x_5ba">Tenete a mente che l'ordine dei filtri in una catena è significativo. Il primo filtro viene applicato al risultato della parola chiave, il secondo al risultato del primo filtro, e così via. Per esempio, usare <literal>fill68|tabindent</literal> dà risultati molto diversi rispetto a <literal>tabindent|fill68</literal>.</para>
   1.157 +      <para id="x_5b9">Notate l&rsquo;uso di <quote><literal>\t</literal></quote> (un carattere di tabulazione) nel template per indentare la prima riga, necessario dato che <literal role="template-keyword">tabindent</literal> indenta tutte le righe <emphasis>tranne</emphasis> la prima.</para>
   1.158 +
   1.159 +      <para id="x_5ba">Tenete a mente che l&rsquo;ordine dei filtri in una catena è significativo. Il primo filtro viene applicato al risultato della parola chiave, il secondo al risultato del primo filtro, e così via. Per esempio, usare <literal>fill68|tabindent</literal> dà risultati molto diversi rispetto a <literal>tabindent|fill68</literal>.</para>
   1.160      </sect2>
   1.161    </sect1>
   1.162  
   1.163 @@ -207,7 +207,7 @@
   1.164  
   1.165      <para id="x_5bb">Un template a riga di comando fornisce un modo semplice e veloce per formattare il risultato di un certo comando. Ma i template possono diventare prolissi, quindi è utile essere in grado di dare un nome a un template. Un file di stile è un template con un nome, memorizzato in un file.</para>
   1.166  
   1.167 -    <para id="x_5bc">Ma soprattutto, l'impiego di un file di stile sfrutta la potenza del motore di template di Mercurial in modi che non sono possibili usando l'opzione <option role="hg-opt-log">--template</option> a riga di comando.</para>
   1.168 +    <para id="x_5bc">Ma soprattutto, l&rsquo;impiego di un file di stile sfrutta la potenza del motore di template di Mercurial in modi che non sono possibili usando l&rsquo;opzione <option role="hg-opt-log">--template</option> a riga di comando.</para>
   1.169  
   1.170      <sect2>
   1.171        <title>Il più semplice dei file di stile</title>
   1.172 @@ -227,15 +227,15 @@
   1.173        <itemizedlist>
   1.174  	<listitem><para id="x_5c0">Il file viene elaborato una riga alla volta.</para>
   1.175  	</listitem>
   1.176 -	<listitem><para id="x_5c1">Gli spazi bianchi all'inizio e alla fine di una riga vengono ignorati.</para>
   1.177 +	<listitem><para id="x_5c1">Gli spazi bianchi all&rsquo;inizio e alla fine di una riga vengono ignorati.</para>
   1.178  	</listitem>
   1.179  	<listitem><para id="x_5c2">Le righe vuote vengono saltate.</para>
   1.180  	</listitem>
   1.181 -	<listitem><para id="x_5c3">Se una riga comincia con un carattere <quote><literal>#</literal></quote> o <quote><literal>;</literal></quote>, l'intera riga viene trattata come un commento e saltata come se fosse vuota.</para>
   1.182 +	<listitem><para id="x_5c3">Se una riga comincia con un carattere <quote><literal>#</literal></quote> o <quote><literal>;</literal></quote>, l&rsquo;intera riga viene trattata come un commento e saltata come se fosse vuota.</para>
   1.183  	</listitem>
   1.184  	<listitem><para id="x_5c4">Una riga comincia con una parola chiave, che deve iniziare con un carattere alfabetico o di sottolineatura e successivamente può contenere qualsiasi carattere alfanumerico o di sottolineatura. (Nella notazione per le espressioni regolari, una parola chiave deve corrispondere a <literal>[A-Za-z_][A-Za-z0-9_]*</literal>.)</para>
   1.185  	</listitem>
   1.186 -	<listitem><para id="x_5c5">L'elemento successivo deve essere un carattere <quote><literal>=</literal></quote>, che può essere preceduto o seguito da una quantità arbitraria di spazio bianco.</para>
   1.187 +	<listitem><para id="x_5c5">L&rsquo;elemento successivo deve essere un carattere <quote><literal>=</literal></quote>, che può essere preceduto o seguito da una quantità arbitraria di spazio bianco.</para>
   1.188  	</listitem>
   1.189  	<listitem><para id="x_5c6">Se il resto della riga comincia e finisce con caratteri corrispettivi di apice o di virgolette, viene trattato come il corpo di un template.</para>
   1.190  	</listitem>
   1.191 @@ -266,15 +266,15 @@
   1.192  	<listitem><para id="x_5cc">Il primo componente è semplicemente il modo in cui Mercurial dice <quote>rinuncio</quote>.</para>
   1.193  	  <programlisting>___fallimento___: stile.errato:1: errore di riconoscimento</programlisting>
   1.194  	</listitem>
   1.195 -	<listitem><para id="x_5cd">Subito dopo, trovate il nome del file di stile che contiene l'errore.</para>
   1.196 +	<listitem><para id="x_5cd">Subito dopo, trovate il nome del file di stile che contiene l&rsquo;errore.</para>
   1.197  	  <programlisting>fallimento: ___stile.errato___:1: errore di riconoscimento</programlisting>
   1.198  	</listitem>
   1.199 -	<listitem><para id="x_5ce">Il nome del file è seguito dal numero di riga dove l'errore è stato incontrato.</para>
   1.200 +	<listitem><para id="x_5ce">Il nome del file è seguito dal numero di riga dove l&rsquo;errore è stato incontrato.</para>
   1.201  	  <programlisting>fallimento: stile.errato:___1___: errore di riconoscimento</programlisting>
   1.202  	</listitem>
   1.203  	<listitem><para id="x_5cf">Infine, viene fornita una descrizione di quello che è andato storto.</para>
   1.204  	  <programlisting>fallimento: stile.errato:1: ___errore di riconoscimento___</programlisting>
   1.205 -	<para id="x_5d0">La descrizione del problema non è sempre chiara (come in questo caso) ma, anche quando è criptica, è quasi sempre banale trovare la causa dell'errore inspezionando visivamente la riga del file di stile che contiene il problema.</para>
   1.206 +	<para id="x_5d0">La descrizione del problema non è sempre chiara (come in questo caso) ma, anche quando è criptica, è quasi sempre banale trovare la causa dell&rsquo;errore inspezionando visivamente la riga del file di stile che contiene il problema.</para>
   1.207  	</listitem>
   1.208        </itemizedlist>
   1.209      </sect2>
   1.210 @@ -290,13 +290,13 @@
   1.211        <itemizedlist>
   1.212  	<listitem><para id="x_5d3">Questa tecnica non funzionerà in un repository completamente vuoto, perché un tale repository non possiede la revisione zero.</para>
   1.213  	</listitem>
   1.214 -	<listitem><para id="x_5d4">Questa tecnica non funzionerà nemmeno nel caso (estremamente raro) in cui un repository sia l'unione di due o più repository precedentemente indipendenti e quei repository siano ancora nei paraggi.</para>
   1.215 +	<listitem><para id="x_5d4">Questa tecnica non funzionerà nemmeno nel caso (estremamente raro) in cui un repository sia l&rsquo;unione di due o più repository precedentemente indipendenti e quei repository siano ancora nei paraggi.</para>
   1.216  	</listitem></itemizedlist>
   1.217        <para id="x_5d5">Ecco alcuni usi che potete fare di questo identificatore:</para>
   1.218        <itemizedlist>
   1.219  	<listitem><para id="x_5d6">come chiave nella tabella di un database che gestisce i repository presenti su un server;</para>
   1.220  	</listitem>
   1.221 -	<listitem><para id="x_5d7">come metà di una tupla {<emphasis>identificatore di repository</emphasis>, <emphasis>identificatore di revisione</emphasis>}. Salvate questa informazione da qualche parte quando eseguite un assemblaggio automatico o un'altra attività simile, in modo che possiate <quote>rieseguire</quote> lo stesso assemblaggio in seguito se necessario.</para>
   1.222 +	<listitem><para id="x_5d7">come metà di una tupla {<emphasis>identificatore di repository</emphasis>, <emphasis>identificatore di revisione</emphasis>}. Salvate questa informazione da qualche parte quando eseguite un assemblaggio automatico o un&rsquo;altra attività simile, in modo che possiate <quote>rieseguire</quote> lo stesso assemblaggio in seguito se necessario.</para>
   1.223  	</listitem>
   1.224        </itemizedlist>
   1.225      </sect2>
   1.226 @@ -322,11 +322,11 @@
   1.227  
   1.228        <para id="x_5da">Questo template si discosta in alcuni modi dalla presentazione prodotta da Subversion.</para>
   1.229        <itemizedlist>
   1.230 -	<listitem><para id="x_5db">Subversion stampa una data <quote>leggibile</quote> (il <quote><literal>Wed, 27 Sep 2006</literal></quote> nel risultato dell'esempio precedente) tra parentesi. Il motore di template di Mercurial non fornisce un modo per visualizzare una data in questo formato senza stampare anche l'ora e il fuso orario.</para>
   1.231 +	<listitem><para id="x_5db">Subversion stampa una data <quote>leggibile</quote> (il <quote><literal>Wed, 27 Sep 2006</literal></quote> nel risultato dell&rsquo;esempio precedente) tra parentesi. Il motore di template di Mercurial non fornisce un modo per visualizzare una data in questo formato senza stampare anche l&rsquo;ora e il fuso orario.</para>
   1.232  	</listitem>
   1.233  	<listitem><para id="x_5dc">Emuliamo la stampa di righe <quote>separatrici</quote> piene di caratteri <quote><literal>-</literal></quote> da parte di Subversion concludendo il template con una riga di quel tipo. Usiamo la parola chiave <literal role="template-keyword">header</literal> del motore di template per stampare una riga separatrice come prima riga (vedete più avanti), quindi ottenendo un risultato simile a quello di Subversion.</para>
   1.234  	</listitem>
   1.235 -	<listitem><para id="x_5dd">Il formato di Subversion include nell'intestazione il conteggio del numero di righe del messaggio di commit. Non possiamo replicare questa caratteristica in Mercurial, poiché attualmente il motore di template non fornisce un filtro che conti il numero di righe generate dal template.</para>
   1.236 +	<listitem><para id="x_5dd">Il formato di Subversion include nell&rsquo;intestazione il conteggio del numero di righe del messaggio di commit. Non possiamo replicare questa caratteristica in Mercurial, poiché attualmente il motore di template non fornisce un filtro che conti il numero di righe generate dal template.</para>
   1.237  	</listitem></itemizedlist>
   1.238        <para id="x_5de">Non mi ci sono voluti più di uno o due minuti di lavoro per sostituire il testo letterale di un esempio del messaggio di Subversion con alcune parole chiave e alcuni filtri per ottenere il template appena visto. Il file di stile fa semplicemente riferimento al template.</para>
   1.239