hgbook

diff it/ch11-template.xml @ 803:241859e47472

Minor changes and translation of code snippets for Ch.11.
author Giulio@puck
date Fri Aug 14 18:01:22 2009 +0200 (2009-08-14)
parents 46c4ba8de2b1
children 0a335dc89e1e
line diff
     1.1 --- a/it/ch11-template.xml	Thu Aug 06 01:22:15 2009 +0200
     1.2 +++ b/it/ch11-template.xml	Fri Aug 14 18:01:22 2009 +0200
     1.3 @@ -2,12 +2,12 @@
     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 offre un potente meccanismo basato sui template per permettervi di 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 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.9  
    1.10    <sect1 id="sec:style">
    1.11 -    <title>Usare gli stili di presentazione già pronti</title>
    1.12 -
    1.13 -    <para id="x_579">Mercurial include alcuni stili di presentazione 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 +    <title>Usare gli stili di formattazione già pronti</title>
    1.15 +
    1.16 +    <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.17  
    1.18      <para id="x_57a">Prima di dare un'occhiata agli stili distribuiti con Mercurial, rivediamo il normale risultato di un suo comando.</para>
    1.19  
    1.20 @@ -21,17 +21,17 @@
    1.21  
    1.22      &interaction.template.simple.changelog;
    1.23  
    1.24 -    <para id="x_57d">Non vi sorprenderà sapere che lo stile di output predefinito di Mercurial è chiamato <literal>default</literal>.</para>
    1.25 +    <para id="x_57d">Non vi sorprenderà sapere che lo stile di formattazione predefinito di Mercurial è chiamato <literal>default</literal>.</para>
    1.26  
    1.27      <sect2>
    1.28        <title>Impostare uno stile predefinito</title>
    1.29  
    1.30 -      <para id="x_57e">Potete modificare lo stile di presentazione che Mercurial userà per ogni comando aggiungendo al vostro file <filename role="special">~/.hgrc</filename> il nome dello stile che preferireste usare.</para>
    1.31 +      <para id="x_57e">Potete modificare lo stile di formattazione che Mercurial userà per ogni comando aggiungendo al vostro file <filename role="special">~/.hgrc</filename> il nome dello stile che preferireste usare.</para>
    1.32  
    1.33        <programlisting>[ui]
    1.34  style = compact</programlisting>
    1.35  
    1.36 -      <para id="x_57f">Se scrivete un vostro stile, potete usarlo inserendo il percorso del vostro file di stile, oppure copiando il vostro file di stile in un luogo dove Mercurial possa trovarlo (tipicamente la sottodirectory <literal>templates</literal> della vostra directory di installazione di Mercurial).</para>
    1.37 +      <para id="x_57f">Se create un vostro stile, potete usarlo inserendo il percorso del vostro file di stile, oppure copiando il vostro file di stile in un luogo dove Mercurial possa trovarlo (tipicamente la sottodirectory <literal>templates</literal> della vostra directory di installazione di Mercurial).</para>
    1.38      </sect2>
    1.39    </sect1>
    1.40  
    1.41 @@ -56,11 +56,11 @@
    1.42  
    1.43      &interaction.template.simple.simplest;
    1.44  
    1.45 -    <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> per il comando <command role="hg-cmd">hg log</command> dice a Mercurial di usare il testo dato come template nel stampare ogni changeset.</para>
    1.46 -
    1.47 -    <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 dietro l'altro. Leggete la <xref linkend="sec:template:escape"/> per maggiori dettagli sulle sequenze di escape.</para>
    1.48 -
    1.49 -    <para id="x_587">Un template che stampa una stringa di testo fissata tutte le volte non è molto utile, perciò proviamo qualcosa di un po' più complesso.</para>
    1.50 +    <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.51 +
    1.52 +    <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.53 +
    1.54 +    <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.55  
    1.56      &interaction.template.simple.simplesub;
    1.57  
    1.58 @@ -75,7 +75,7 @@
    1.59      <itemizedlist>
    1.60        <listitem><para id="x_58a"><literal role="template-keyword">author</literal>: stringa. Il nome non modificato dell'autore del changeset.</para>
    1.61        </listitem>
    1.62 -      <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 branch è <literal>default</literal>.</para>
    1.63 +      <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.64        </listitem>
    1.65        <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.66        </listitem>
    1.67 @@ -101,7 +101,7 @@
    1.68  
    1.69      &interaction.template.simple.keywords;
    1.70  
    1.71 -    <para id="x_596">Come abbiamo notato prima, la parola chiave per la data non produce un risultato in forma leggibile, 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.72 +    <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.73  
    1.74      &interaction.template.simple.datekeyword;
    1.75    </sect1>
    1.76 @@ -146,7 +146,7 @@
    1.77      <itemizedlist>
    1.78        <listitem><para id="x_5a2"><literal role="template-filter">addbreaks</literal>: qualsiasi 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.79        </listitem>
    1.80 -      <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 minutes</literal></quote>.</para>
    1.81 +      <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.82        </listitem>
    1.83        <listitem><para id="x_5a4"><literal role="template-filter">basename</literal>: qualsiasi 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.84        </listitem>
    1.85 @@ -170,7 +170,7 @@
    1.86        </listitem>
    1.87        <listitem><para id="x_5ae"><literal role="template-filter">obfuscate</literal>: qualsiasi testo, ma utile soprattutto per la parola chiave <literal role="template-keyword">author</literal>. Riproduce il testo in ingresso rappresentandolo come una sequenza di entità XML. Questo è utile per impedire ad alcuni programmi particolarmente stupidi utilizzati dagli spammer per raccogliere indirizzi email di copiare i dati destinati a essere visualizzati su schermo.</para>
    1.88        </listitem>
    1.89 -      <listitem><para id="x_5af"><literal role="template-kw-filt-author">person</literal>: qualsiasi testo, ma utile soprattutto per la parola chiave <literal role="template-keyword">author</literal>. Produce il testo prima di un indirizzo email. Per esempio, <quote><literal>Bryan O'Sullivan &lt;bos@serpentine.com&gt;</literal></quote> diventa <quote><literal>Bryan O'Sullivan</literal></quote>.</para>
    1.90 +      <listitem><para id="x_5af"><literal role="template-kw-filt-author">person</literal>: qualsiasi testo, ma utile soprattutto per la parola chiave <literal role="template-keyword">author</literal>. Produce il testo che precede un indirizzo email. Per esempio, <quote><literal>Bryan O'Sullivan &lt;bos@serpentine.com&gt;</literal></quote> diventa <quote><literal>Bryan O'Sullivan</literal></quote>.</para>
    1.91        </listitem>
    1.92        <listitem><para id="x_5b0"><literal role="template-kw-filt-date">rfc822date</literal>: parola chiave <literal role="template-keyword">date</literal>. Rappresenta una data usando lo stesso formato impiegato nelle intestazioni email. Produce una stringa come <quote><literal>Mon, 04 Sep 2006 15:13:13 -0700</literal></quote>.</para>
    1.93        </listitem>
    1.94 @@ -203,14 +203,14 @@
    1.95  
    1.96        <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.97  
    1.98 -      <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 da <literal>tabindent|fill68</literal>.</para>
    1.99 +      <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.100      </sect2>
   1.101    </sect1>
   1.102  
   1.103    <sect1>
   1.104      <title>Dai template agli stili</title>
   1.105  
   1.106 -    <para id="x_5bb">Un template a riga di comando fornisce un modo veloce e semplice 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.107 +    <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.108  
   1.109      <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.110  
   1.111 @@ -221,7 +221,7 @@
   1.112  
   1.113        &interaction.template.simple.rev;
   1.114  
   1.115 -      <para id="x_5be">Questo dice a Mercurial, <quote>se stai stampando un changeset, usa il testo sulla destra come template</quote>.</para>
   1.116 +      <para id="x_5be">Questo dice a Mercurial: <quote>se stai stampando un changeset, usa il testo sulla destra come template</quote>.</para>
   1.117      </sect2>
   1.118  
   1.119      <sect2>
   1.120 @@ -261,7 +261,7 @@
   1.121  
   1.122        &interaction.template.svnstyle.syntax.input;
   1.123  
   1.124 -      <para id="x_5ca">Notate che <filename>broken.style</filename> tenta di definire una parola chiave <literal>changeset</literal>, ma dimentica di darle un contenuto qualsiasi. Quando gli si chiede di usare questo file di stile, Mercurial si lamenta prontamente.</para>
   1.125 +      <para id="x_5ca">Notate che <filename>stile.errato</filename> tenta di definire una parola chiave <literal>changeset</literal>, ma dimentica di darle un contenuto qualsiasi. Quando gli si chiede di usare questo file di stile, Mercurial si lamenta prontamente.</para>
   1.126  
   1.127        &interaction.template.svnstyle.syntax.error;
   1.128  
   1.129 @@ -269,18 +269,17 @@
   1.130  
   1.131        <itemizedlist>
   1.132  	<listitem><para id="x_5cc">Il primo componente è semplicemente il modo in cui Mercurial dice <quote>rinuncio</quote>.</para>
   1.133 -	  <programlisting>___abort___: broken.style:1: parse error</programlisting>
   1.134 +	  <programlisting>___fallimento___: stile.errato:1: errore di riconoscimento</programlisting>
   1.135  	</listitem>
   1.136  	<listitem><para id="x_5cd">Subito dopo, trovate il nome del file di stile che contiene l'errore.</para>
   1.137 -	  <programlisting>abort: ___broken.style___:1: parse error</programlisting>
   1.138 +	  <programlisting>fallimento: ___stile.errato___:1: errore di riconoscimento</programlisting>
   1.139  	</listitem>
   1.140  	<listitem><para id="x_5ce">Il nome del file è seguito dal numero di riga dove l'errore è stato incontrato.</para>
   1.141 -	  <programlisting>abort: broken.style:___1___: parse error</programlisting>
   1.142 +	  <programlisting>fallimento: stile.errato:___1___: errore di riconoscimento</programlisting>
   1.143  	</listitem>
   1.144  	<listitem><para id="x_5cf">Infine, viene fornita una descrizione di quello che è andato storto.</para>
   1.145 -	  <programlisting>abort: broken.style:1: ___parse error___</programlisting>
   1.146 -	</listitem>
   1.147 -	<listitem><para id="x_5d0">La descrizione del problema non è sempre chiara (come in questo caso), ma anche quando è criptica, è quasi sempre banale trovare cosa c'è di sbagliato inspezionando visivamente la riga del file di stile che contiene il problema.</para>
   1.148 +	  <programlisting>fallimento: stile.errato:1: ___errore di riconoscimento___</programlisting>
   1.149 +	<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.150  	</listitem>
   1.151        </itemizedlist>
   1.152      </sect2>
   1.153 @@ -300,9 +299,9 @@
   1.154  	</listitem></itemizedlist>
   1.155        <para id="x_5d5">Ecco alcuni usi che potete fare di questo identificatore:</para>
   1.156        <itemizedlist>
   1.157 -	<listitem><para id="x_5d6">come chiave nella tabella di un database che gestisce i repository presenti su un server.</para>
   1.158 -	</listitem>
   1.159 -	<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 esguite un assemblaggio automatico o un'altra attività simile, in modo che possiate <quote>rieseguire</quote> lo stesso assemblaggio in seguito se necessario.</para>
   1.160 +	<listitem><para id="x_5d6">come chiave nella tabella di un database che gestisce i repository presenti su un server;</para>
   1.161 +	</listitem>
   1.162 +	<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.163  	</listitem>
   1.164        </itemizedlist>
   1.165      </sect2>
   1.166 @@ -322,11 +321,11 @@
   1.167  
   1.168        &interaction.template.svnstyle.short;
   1.169  
   1.170 -      <para id="x_5d9">Dato che lo stile della rappresentazione di Subversion è abbastanza semplice, è facile copiare e incollare una parte dei suoi messaggi in un file e rimpiazzare il testo prodotto da Subversion con i valori di template che vorremmo vedere espansi.</para>
   1.171 +      <para id="x_5d9">Dato che lo stile della rappresentazione di Subversion è abbastanza semplice, è facile copiare e incollare uno dei suoi messaggi in un file e rimpiazzare il testo prodotto da Subversion con i valori di template che vorremmo vedere espansi.</para>
   1.172  
   1.173        &interaction.template.svnstyle.template;
   1.174  
   1.175 -      <para id="x_5da">Ci sono alcuni modi in cui questo template si discosta dalla presentazione prodotta da Subversion.</para>
   1.176 +      <para id="x_5da">Questo template si discosta in alcuni modi dalla presentazione prodotta da Subversion.</para>
   1.177        <itemizedlist>
   1.178  	<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.179  	</listitem>