<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -11,15 +11,15 @@
 
 	&lt;div class=&quot;halftitlepage&quot;&gt;
 		&lt;h1 class=&quot;no-toc&quot;&gt;Ruby on Rails 2.1&lt;/h1&gt;
-		&lt;h2 class=&quot;no-toc&quot;&gt;What's New&lt;/h2&gt;
-		&lt;h3 class=&quot;no-toc&quot;&gt;First Edition&lt;/h3&gt;
+		&lt;h2 class=&quot;no-toc&quot;&gt;Novit&#224; introdotte&lt;/h2&gt;
+		&lt;h3 class=&quot;no-toc&quot;&gt;Prima edizione&lt;/h3&gt;
 	&lt;/div&gt;
 
 	&lt;div class=&quot;titlepage&quot;&gt;
 	&lt;h1 class=&quot;no-toc&quot;&gt;Ruby on Rails 2.1&lt;/h1&gt;
 
-	&lt;h2 class=&quot;no-toc&quot;&gt;What's New&lt;/h2&gt;
-	&lt;h3 class=&quot;no-toc&quot;&gt;First Edition&lt;/h3&gt;
+	&lt;h2 class=&quot;no-toc&quot;&gt;Novit&#224; introdotte&lt;/h2&gt;
+	&lt;h3 class=&quot;no-toc&quot;&gt;Prima edizione&lt;/h3&gt;
 
 	&lt;p class=&quot;no-toc&quot;&gt;Carlos Brando&lt;br/&gt;Marcos Tapaj&#243;s&lt;/p&gt;
 	&lt;!-- also, the publisher's name would typically be printed here --&gt;
@@ -28,7 +28,7 @@
 	&lt;div class=&quot;imprint&quot;&gt;
 		&lt;p&gt;&amp;copy; Copyright 2008 Carlos Brando. All Rights Reserved.&lt;/p&gt;
 		&lt;br/&gt;
-		&lt;p&gt;First edition: June 2008&lt;/p&gt;
+		&lt;p&gt;Prima edizione: giugno 2008&lt;/p&gt;
 		&lt;br/&gt;
 		&lt;p&gt;Carlos Brando&lt;br/&gt;Website: www.nomedojogo.com&lt;/p&gt;
 		&lt;p&gt;Marcos Tapaj&#243;s&lt;br/&gt;Website: www.improveit.com.br/en/company/tapajos&lt;/p&gt;</diff>
      <filename>layout/pdf_template.html</filename>
    </modified>
    <modified>
      <diff>@@ -61,9 +61,9 @@ a { text-decoration: none; color: black }
 /* cross-references */
 
 a.pageref::after { content: &quot; on page &quot; target-counter(attr(href), page); }
-a.chapref::before { content: &quot; Chapter &quot; target-counter(attr(href), chapter) &quot;, &quot;; }
-a.figref { content: &quot; Figure &quot; target-counter(attr(href), figure); }
-a.tableref { content: &quot; Table &quot; target-counter(attr(href), figure); }
+a.chapref::before { content: &quot; Capitolo &quot; target-counter(attr(href), chapter) &quot;, &quot;; }
+a.figref { content: &quot; Figura &quot; target-counter(attr(href), figure); }
+a.tableref { content: &quot; Tabella &quot; target-counter(attr(href), figure); }
 
 /* sidenotes */
 
@@ -409,7 +409,7 @@ ul.toc &gt; li.endmatter a::after {
   font-style: normal;
 }
 ul.toc &gt; li.chapter::before {
-  content: &quot;Chapter &quot; counter(toc-chapter, decimal);
+  content: &quot;Capitolo &quot; counter(toc-chapter, decimal);
   display: block;
   margin: 1em 0 0.1em -2.5cm;
   font-weight: normal;
@@ -428,14 +428,14 @@ h1::before {
   content: &quot;\B0  \B0  \B0  \B0  \B0 \A&quot;;  /* ornaments */
 }
 
-div.chapter h1::before { content: &quot;Chapter &quot; counter(chapter) &quot; \A&quot;; }
+div.chapter h1::before { content: &quot;Capitolo &quot; counter(chapter) &quot; \A&quot;; }
 
 div.frontcover h1::before, div.titlepage h1::before, div.halftitlepage h1::before {
   content: normal;                  /* that is, none */
 }
 
 h1 { string-set: header content();}
-div.chapter h1 { string-set: header &quot;Chapter &quot; counter(chapter) &quot;: &quot; content(); }
+div.chapter h1 { string-set: header &quot;Capitolo &quot; counter(chapter) &quot;: &quot; content(); }
 
 /* index */
 </diff>
      <filename>layout/second.css</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-#Introduction
+#Introduzione
 
 Around July of 2004 David Heinemeier Hansson publicly released the Ruby on Rails framework, which had been extracted from a web application called Basecamp. More than three years later, on the December 7th, 2007 Ruby on Rails version 2.0 was released with numerous important changes.
 
@@ -25,26 +25,32 @@ To Daniel Lopes who made the beautiful cover for this edition.
 
 To all of the Ruby on Rails Brazilian community that helped directly or indirectly with this book, commenting on blog posts and giving suggestions. It's like I always say, the best of Rails is its community! Keep creating, inventing, and specially sharing.
 
-## Translators
+## Traduttori
 
-This book was proudly translated to english by these Brazilian guys:
+Questo testo &#232; stato tradotto in italiano dalla comunit&#224; Ruby:
 
-**Pedro Pimentel** - [http://www.pedropimentel.com](http://www.pedropimentel.com)
+**Carlo Pecchia** - [http://carlopecchia.eu](http://carlopecchia.ru)
 
-Chapters 3-8 and 10-13
+Capitoli 2
 
-**Rafael Barbosa** - [http://www.act-as-newbie.com](http://www.act-as-newbie.com/)
+**Ali Panick** - []()
 
-Introduction and chapter 1
+Capitoli 10-12
 
-**Ricardo S Yasuda** - [http://blog.shadowmaru.org](http://blog.shadowmaru.org/)
+**Piero Bozzolo** - []()
 
-Chapter 14
+Capitolo 5
 
-**Caike Souza** - [http://tech-death.blogspot.com](http://tech-death.blogspot.com/)
+**Oscar Del Ben** - []()
 
-Chapter 2
+Capitolo 8
 
-**Abra&#227;o Coelho** - [http://abrcoelho.net](http://abrcoelho.net/)
+**Andrea Reginato** - []()
 
-Chapter 9
\ No newline at end of file
+Capitolo 13
+
+**Carmine Moleti** - []()
+
+Capitolo 14
+
+Si ringrazia inoltre, per il supporto e le revisioni: TBD
\ No newline at end of file</diff>
      <filename>text/0/0_Title.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-# Prototype and script.aculo.us
+# Prototype e script.aculo.us</diff>
      <filename>text/09_Prototype e script.aculo.us/00.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,3 @@
 ## Prototype
 
-Rails 2.1 now uses Prototype version 1.6.0.1. It serves as a preparatory to version 1.8.1 of script.aculo.us.
+Rails 2.1 usa ora la versione 1.6.0.1 di Prototype. E' designato per la versione 1.8 di script.aculo.us
\ No newline at end of file</diff>
      <filename>text/09_Prototype e script.aculo.us/01_prototype.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
-## Details
+## Dettagli
 
-The main focus of Rails changes was Ruby 1.9, even minor details were analyzed to increase Rails compatibility with the new Ruby version. Details like changing from **File.exists?** to **File.exist?** were not kept aside.
+Il focus principale dei cambiamenti in Rails riguardano Ruby 1.9, persino i minori dettagli sono stati analizzati per incrementare la compatibilit&#224; con la nuova versione di Ruby. I dettagli come i cambiamenti da File.exists? a File.exist? non sono stati tralasciati.
 
-Also, in Ruby 1.9, the module **Base64** (base64.rb) was removed, because of that, all references to it were replaced by **ActiveSupport::Base64**.
+In Ruby 1.9, il modulo Base64 (base64.rb) &#232; stato rimosso, e per questo tutti i riferimenti ad esso sono stati sostituiti da ActiveSupport::Base64.</diff>
      <filename>text/10_Ruby 1.9/01_details.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
-##New methodos for DateTime class
+## Nuovi metodi per la classe DateTime
 
-In order to keep compatibility (duck-typing) with **Time** class, three new methods were added to **DateTime** class. The methods are **#utc**, **#utc?** and **#utc\_offset**. Look an example for each one:
+Per mantenere la compatibilit&#224; (duck-typing) come la classe Time, tre nuovi metodi sono stati aggiunti alla classe DateTime. I metodi in questione sono, #utc, #utc? e #utc_offset. Vediamo un esempio d'uso per ognuno di essi:
 
 	&gt;&gt; date = DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(-6, 24))
 	#=&gt; Mon, 21 Feb 2005 10:11:12 -0600</diff>
      <filename>text/10_Ruby 1.9/02_date.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,3 @@
-##Native Ruby-debug
+## Ruby-debug nativo
 
-It was enabled again the option for using **ruby-debug** in Rails tests. Now, since you already have the gem installed, it only needs the **debugger** method.
+E' stata nuovamente abilitata l'opzione per usare **ruby-debug** nei test di Rails. Ora, a patto di avere la gemma installata, &#232; sufficiente usare il metodo **debugger**.</diff>
      <filename>text/11_Debug/01_ruby_debug.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-# Additional Information
+# Informazioni aggiuntive</diff>
      <filename nil="true"></filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
-## Protecting from Cross Site Scripting
+## Proteggersi dal &quot;Cross site scripting&quot;
 
-In Rails 2.0 the file *application.rb* looks like this:
+In Rails 2.0 il file *application.rb* &#232; molto simile a:
 
 	class ApplicationController &lt; ActionController::Base
 	  helper :all
@@ -8,20 +8,22 @@ In Rails 2.0 the file *application.rb* looks like this:
 	  protect_from_forgery
 	end
 
-Notice the call to the method **protect\_from\_forgery**.
- 
-Have you heard about Cross Site Scripting? This is the name of a security failure easily found in most websites and web applications that allows evil people (here I'm talking about teenagers with nothing to do and no social life) to alter the content of web pages, perform fishing attacks, take over the control of the browser through JavaScript code and in most cases force the user to execute some command they wish. That last type of attack is called cross-site request forgery.
+Osservate la chiamata al metodo **protect\_from\_forgery**.
 
-Cross Site Request Forgery is a type of attack that forces legit users to execute a series of commands without even knowing. And with the increasing use of Ajax, things are getting even worse.
+Avete mai sentito parlare di &quot;Cross site scripting&quot;? E' questo il nome dato ad una falla nella sicurezza facilmente riscontrabile in molti siti internet ed applicazioni web, essa consente a persone malintenzionate (e mi riferisco a teenager che non hanno nulla da fare n&#233; alcuna vita sociale) di alterare il contenuto delle pagine web, effettuare attacchi di tipo &quot;phishing&quot;, e prendere il controllo del browser tramite codice JavaScript ed in molti casi forzare l'utente ad eseguire i comandi da essi (i teenager) desiderati. Quest ultimo tipo di attacco viene chiamato &quot;cross-site request forgery&quot;.
 
-Actually, this method is useful to make sure that all forms your application is receiving are coming from itself, and not from a lost link in another site. It achieves it by including a token based on the session in all forms and Ajax requests generated by Rails, and later checking the authenticity of this token in the controller.
+Cross Site Request Forgery &#232; un tipo di attacco che obbliga utenti legittimi ad eseguire dei comandi senza che gli stessi ne siano a conoscenza. Con l'aumento dell'utilizzo di AJAX, la cosa si fa ancora pi&#249; grave.
 
-Remember that GET requests are not protected. But it won't be a problem if we use it only to bring data, and never to alter or save anything in our database.
+Allo stato attuale, questo metodo &#232; utile per far s&#236; che tutti i form che la vostra applicazione ricever&#224;
+provengano da essa stessa, e non da un link appartenente ad altro sito. Lo scopo viene raggiunto includendo in tutti i form e le richieste AJAX generate da Rails un token che poggia sulla sessione corrente inoltre, in seconda battuta, lo stesso token &#232; soggetto a verifica da parte del controller.
 
-If you want to learn more about CSRF (Cross-Site Request Forgery) use the addresses below:
+Ricordiamo che le richieste di tipo &quot;GET&quot; non sono protette. Tuttavia, rispettandone la semantica (recupero e _mai_ modifica o salvataggio delle informazioni) ci&#242; non costituisce un problema.
+
+Per saperne di pi&#249; sul CSRF potete far riferimento a:
 
 * [http://www.nomedojogo.com/2008/01/14/como-um-garoto-chamado-samy-pode-derrubar-seu-site/isc.sans.org/diary.html?storyid=1750](http://www.nomedojogo.com/2008/01/14/como-um-garoto-chamado-samy-pode-derrubar-seu-site/isc.sans.org/diary.html?storyid=1750)
 
 * [http://www.nomedojogo.com/2008/01/14/como-um-garoto-chamado-samy-pode-derrubar-seu-site/isc.sans.org/diary.html?storyid=1750](http://www.nomedojogo.com/2008/01/14/como-um-garoto-chamado-samy-pode-derrubar-seu-site/isc.sans.org/diary.html?storyid=1750)
 
-But remember that this is not a definitive solution to our problem, or like we usually say, it's not a silver bullet.
+E' bene ricordare che questa non &#232; la soluzione definitiva al problema
+o, in gergo, non &#232; la pallottola d'argento.</diff>
      <filename nil="true"></filename>
    </modified>
    <modified>
      <diff>@@ -1,8 +1,10 @@
-## Used method\_missing, then don't leave loose ends
+## Utilizzando method\_missing, fate attenzione a non lasciare il fianco scoperto
 
-Due to Ruby's dynamic nature, the method **respond\_to?** is crucial. How many times we had to check if a method exists in the object we're dealing with, or even check if the object is the same that we are expecting (**is\_a?**)?
+Il metodo **respond\_to?** &#232; curciale per via della natura dinamica di ruby. Quante volte abbiamo dovuto
+controllare l'esistenza di un metodo o, addirittura, la corrispondenza di tipo di un oggetto (**is\_a?**)?
 
-However there's something really important that many people forget. Look at this class that uses the method **method\_missing**:
+Comunque, c'&#232; qualcosa di molto importante che molti dimenticano. Date uno sguardo alla classe che
+segue che fa uso di **method\_missing**:
 
 	class Dog
 	  def method_missing(method, *args, &amp;block)
@@ -19,14 +21,17 @@ However there's something really important that many people forget. Look at this
 	rex.bark! #=&gt; woofwoof!
 	rex.bark_and_run #=&gt; woofwoof!
 
-I think you already know **method\_missing**, don't you? In the example above I'm creating an instance of the class **Dog** and calling the methods **bark**, **bark!** e **bark\_and\_run** that don't exist. Then the method **method\_missing** is called, where I use a simple regular expression to return &quot;woofwoof!&quot;, whenever the name of the method begins with bark.
+Credo che conosciate gi&#224; **method\_missing**, non &#232; vero? Nell'esempio di cui sopra, ho creato un'istanza
+della classe **Dog** e chiamato i metodi **bark**, **bark!** e **bark\_and\_run** che non esistono. Quindi, il metodo **method\_missing** viene invocato che, tramite una semplice espressione regolare, restituisce &quot;woofwoof!&quot; ogni qualvolta il metodo inizia con bark.
 
-But look what happens when I try to use the method **respond\_to?**:
+Osserviamo per&#242; cosa accade quando cerco di usare il metodo **respond\_to?**:
 
 	rex.respond_to? :bark #=&gt; false
 	rex.bark #=&gt; woofwoof!
 
-It returns false, and that makes all sense since the method doesn't really exist. Then it's my responsibility to change the method **respond\_to?** to work properly using my special rule. I'll change my class to this:
+Viene restituito false, il che ha un senso visto che la classe non implementa il metodo richiesto.
+Dunque, la responsabilit&#8225; di modificare il metodo **respond\_to?** affinch&#233; lavori correttamente
+con la mia regola speciale, &#232; nostra. Cambieremo la classe come segue:
 
 	class Dog
 	  METHOD_BARK = /^bark/
@@ -49,8 +54,9 @@ It returns false, and that makes all sense since the method doesn't really exist
 	rex.respond_to?(:bark) #=&gt; true
 	rex.bark #=&gt; woofwoof!
 
-Now we're talking! This is a common mistake that I've seen in some codes, Rails itself included. Try to execute a  **respond\_to?** to check the existence of methods like **find\_by\_name**, for example.
 
-Ruby is an amazing and highly flexible language, but if we don't watch it we can leave loose ends like this.
+Adesso stiamo ragionando! Questo &#232; un errore frequentemente riscontrato in molto codice, anche in Rails stesso. Provate ad eseguire **respond\_to?** per verificare l'esistenza di **find\_by\_name** ad esempio.
 
-Of course that in Rails 2.1 this problem was fixed, we can use **respond\_to?** to check the existence of methods like **find\_by\_something**.
+Ruby &#232; un linguaggio incredibile e molto flessibile ma, come abbiamo visto, se non prestiamo attenzione &#232; facile lasciare il fianco scoperto.
+
+Ovviamente, in Rails 2.1 il problema &#232; stato risolto e quindi possiamo usare **respond\_to?** per verificare l'esistenza di metodi come **find\_by\_something**.</diff>
      <filename nil="true"></filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,3 @@
 ## PostgreSQL
 
-In Rails 2.0, the adapter for **PostgreSQL** had support only for versions 8.1 up to 8.3. It has been added support for versions 7.4 up to 8.3.
+In Rails 2.0 l'adapter per **PostgreSQL** supportava solo le versioni dalla 8.1 alla 8.3. Adesso, le versioni supportate coprono dalla 7.4 alla 8.3.</diff>
      <filename nil="true"></filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>4a5d198960a961ed760aa960ef9e216d35098634</id>
    </parent>
  </parents>
  <author>
    <name>Carlo Pecchia</name>
    <email>c.pecchia@gmail.com</email>
  </author>
  <url>http://github.com/pilu/rails21-book/commit/77a02bfbc348b76bd204d188044f9e28ce4434cd</url>
  <id>77a02bfbc348b76bd204d188044f9e28ce4434cd</id>
  <committed-date>2008-06-13T06:48:16-07:00</committed-date>
  <authored-date>2008-06-13T06:48:16-07:00</authored-date>
  <message>Aggiunte le traduzioni per i capp. 10 11 14 + un pezzo dell'intro.</message>
  <tree>f687523a17ec04c21e633c018c4134419fbc9f22</tree>
  <committer>
    <name>Carlo Pecchia</name>
    <email>c.pecchia@gmail.com</email>
  </committer>
</commit>
