Author: garak Date: 2010-02-10 12:19:08 +0100 (Wed, 10 Feb 2010) New Revision: 27809
Modified: doc/branches/1.4/more-with-symfony/it/01-Introduction.markdown doc/branches/1.4/more-with-symfony/it/03-Enhance-your-Productivity.markdown doc/branches/1.4/more-with-symfony/it/04-Emails.markdown doc/branches/1.4/more-with-symfony/it/06-Advanced-Forms.markdown doc/branches/1.4/more-with-symfony/it/07-Extending-the-Web-Debug-Toolbar.markdown doc/branches/1.4/more-with-symfony/it/08-Advanced-Doctrine-Usage.markdown doc/branches/1.4/more-with-symfony/it/09-Doctrine-Form-Inheritance.markdown doc/branches/1.4/more-with-symfony/it/10-Symfony-Internals.markdown doc/branches/1.4/more-with-symfony/it/12-Developing-for-Facebook.markdown doc/branches/1.4/more-with-symfony/it/13-Leveraging-the-Power-of-the-Command-Line.markdown doc/branches/1.4/more-with-symfony/it/14-Playing-with-Symfony-Config-Cache.markdown doc/branches/1.4/more-with-symfony/it/15-Working-with-the-Symfony-Community.markdown doc/branches/1.4/more-with-symfony/it/translators.markdown Log: [doc-it][1.4] minor fixes Modified: doc/branches/1.4/more-with-symfony/it/01-Introduction.markdown =================================================================== --- doc/branches/1.4/more-with-symfony/it/01-Introduction.markdown 2010-02-10 11:01:32 UTC (rev 27808) +++ doc/branches/1.4/more-with-symfony/it/01-Introduction.markdown 2010-02-10 11:19:08 UTC (rev 27809) @@ -63,7 +63,7 @@ Questo libro è stato scritto da dieci autori che usano symfony quotidianamente, come sviluppatori o project manager. Hanno un'approfondita conoscenza del -framework ed hanno provato a condividere essa e la loro esperienza in +framework e hanno provato a condividere essa e la loro esperienza in questi capitoli. Ammissioni @@ -75,7 +75,7 @@ la comunità in un progetto così grande è fondamentale. Ho inziato a parlare dell'idea durante la PHP conference in Giappone e in un paio d'ore il team di traduttori giapponesi era pronto a partecipare. È stato bellissimo! La -risposta dagli autori e dai traduttori è stata incoraggiante ed in un brevissimo +risposta dagli autori e dai traduttori è stata incoraggiante e in un brevissimo tempo "Di più con symfony" è nato. Voglio ringraziare tutti quelli che hanno partecipato in qualche modo alla Modified: doc/branches/1.4/more-with-symfony/it/03-Enhance-your-Productivity.markdown =================================================================== --- doc/branches/1.4/more-with-symfony/it/03-Enhance-your-Productivity.markdown 2010-02-10 11:01:32 UTC (rev 27808) +++ doc/branches/1.4/more-with-symfony/it/03-Enhance-your-Productivity.markdown 2010-02-10 11:19:08 UTC (rev 27809) @@ -167,10 +167,9 @@ continuamente sempre gli stessi task, è possibile creare il proprio script di installazione e modificare l'installazione per il proprio progetto di symfony nel modo desiderato. Creare un nuovo progetto con un programma di installazione -è molto più rapido, ed inoltre evita di dimenticarsi di alcuni passi. Si possono +è molto più rapido e inoltre evita di dimenticarsi di alcuni passi. Si possono anche condividere i propri script di installazione con quelli degli altri! - Sviluppare più velocemente -------------------------- @@ -451,7 +450,7 @@ facile, ma richiede tempo. Ma siccome ogni file di test funzionale è uno scenario che simula un utente che naviga nel sito e siccome navigare una applicazione è più rapido che scrivere del codice PHP, l'ideale sarebbe registrare -una sessione del browser ed averla convertita automaticamente in codice PHP. +una sessione del browser e averla convertita automaticamente in codice PHP. Fortunatamente, symfony ha un tale plugin. Si chiama [swFunctionalTestGenerationPlugin](http://www.symfony-project.org/plugins/swFunctionalTestGenerationPlugin), e permette di generare in pochi minuti degli scheletri di test pronti per Modified: doc/branches/1.4/more-with-symfony/it/04-Emails.markdown =================================================================== --- doc/branches/1.4/more-with-symfony/it/04-Emails.markdown 2010-02-10 11:01:32 UTC (rev 27808) +++ doc/branches/1.4/more-with-symfony/it/04-Emails.markdown 2010-02-10 11:19:08 UTC (rev 27809) @@ -451,7 +451,7 @@ end() ; -Il secondo parametro del metodo `checkHeader()` ed il primo parametro del metodo +Il secondo parametro del metodo `checkHeader()` e il primo parametro del metodo `checkBody()` possono essere: * una stringa che corrisponda esattamente a quella restituita; @@ -584,7 +584,7 @@ ### Inviare una email con ~Gmail~ Se non si ha a disposizione un server SMTP ma solo un account Gmail, -è possibile usare quest'ultimo per inviare ed archiviare i messaggi: +è possibile usare quest'ultimo per inviare e archiviare i messaggi: [yml] transport: Modified: doc/branches/1.4/more-with-symfony/it/06-Advanced-Forms.markdown =================================================================== --- doc/branches/1.4/more-with-symfony/it/06-Advanced-Forms.markdown 2010-02-10 11:01:32 UTC (rev 27808) +++ doc/branches/1.4/more-with-symfony/it/06-Advanced-Forms.markdown 2010-02-10 11:19:08 UTC (rev 27809) @@ -475,7 +475,7 @@ `sfForm` genera automaticamente un terzo array chiamato `sfFormFieldSchema`. Questo array contiene un oggetto speciale per ciascun campo, che agisce come una classe helper responsabile per la visualizzazione dei campi. L'oggetto, di tipo -~`sfFormField`~, è una combinazione di widget validator di ogni campo, ed è +~`sfFormField`~, è una combinazione di widget validator di ogni campo ed è creato automaticamente. [php] @@ -582,7 +582,7 @@ >**NOTE** >La maggior parte del processo di salvataggio avviene all'interno del metodo ->~`sfFormObject::doSave()`~, che è chiamato da `sfFormObject::save()`, ed esegue +>~`sfFormObject::doSave()`~, che è chiamato da `sfFormObject::save()` ed esegue >una transazione nel database. Se c'è la necessità di modificare il processo di >salvataggio stesso, generalmente `sfFormObject::doSave()` è il posto migliore >per farlo. @@ -728,7 +728,7 @@ >restituirà un solo valore. L'ultimo passo è quello di sovrascrivere il metodo `saveEmbeddedForms()` di -`ProductForm`, per cancellare i form di foto vuoti, ed evitare si salvare una foto +`ProductForm`, per cancellare i form di foto vuoti ed evitare di salvare una foto vuota nel database (altrimenti dovrebbe lanciare una eccezione, dal momento che la colonna `caption` è obbligatoria): Modified: doc/branches/1.4/more-with-symfony/it/07-Extending-the-Web-Debug-Toolbar.markdown =================================================================== --- doc/branches/1.4/more-with-symfony/it/07-Extending-the-Web-Debug-Toolbar.markdown 2010-02-10 11:01:32 UTC (rev 27808) +++ doc/branches/1.4/more-with-symfony/it/07-Extending-the-Web-Debug-Toolbar.markdown 2010-02-10 11:19:08 UTC (rev 27809) @@ -14,11 +14,11 @@  Da symfony 1.2, gli sviluppatori possono creare facilmente i propri -*pannelli di debug* ed aggiungerli alla web debug toolbar. In questo +*pannelli di debug* e aggiungerli alla web debug toolbar. In questo capitolo creeremo alcuni *pannelli di web debug* e giocheremo un po' con i vari strumenti e con le personalizzazioni disponibili. Inoltre il plugin [ac2009WebDebugPlugin](http://www.symfony-project.org/plugins/ac2009WebDebugPlugin) -contiene molti pannelli di debug utili ed interessanti, che usano +contiene molti pannelli di debug utili e interessanti, che usano alcune tecniche analizzate in questo capitolo. Creare un Nuovo Pannello di Debug @@ -57,7 +57,7 @@ * ~`sfWebDebugPanel::getTitle()`~: Stabilisce come il pannello apparirà nella toolbar stessa. Come la maggior parte dei pannelli, il nostro pannello - personalizzato include una piccola icona ed un breve nome per il pannello. + personalizzato include una piccola icona e un breve nome per il pannello. * ~`sfWebDebugPanel::getPanelTitle()`~: Usato come testo del tag `h1` che apparirà in cima al contenuto del panello. È anche usato come attributo @@ -117,7 +117,7 @@ ### Il Tipo di Pannello *Solo-Icona* -Il tipo più elementare di pannello è quello che mostra una icona ed un testo +Il tipo più elementare di pannello è quello che mostra una icona e un testo nella toolbar, niente di più. Il classico esempio è il pannello `memory`, che mostra l'uso della memoria, ma non fa nulla se viene cliccato. Per creare un pannello *solo-icona*, si imposti semplicemente il pannello per restituire @@ -171,10 +171,10 @@ Personalizzare il Contenuto del Pannello ---------------------------------------- -Ora che abbiamo creato ed aggiunto un pannello personalizzato alla toolbar, +Ora che abbiamo creato e aggiunto un pannello personalizzato alla toolbar, l'aggiunta di contenuto può essere fatta facilmente con il metodo `getPanelContent()`. Symfony fornisce diversi metodi che aiutano a -rendere questo contenuto ricco ed usabile. +rendere questo contenuto ricco e usabile. ### ~`sfWebDebugPanel::setStatus()`~ @@ -234,7 +234,7 @@ } Il metodo `getToggler` accetta due paramentri: l'`id` del DOM dell'elemento -da mostrare/nascondere ed un titolo `title` da attribuire al collegamento. +da mostrare/nascondere e un titolo `title` da attribuire al collegamento. Occorre creare a mano sia l'attributo `id` che qualsiasi eventuale etichetta descrittiva (come ad esempio "Elementi della Lista"). Modified: doc/branches/1.4/more-with-symfony/it/08-Advanced-Doctrine-Usage.markdown =================================================================== --- doc/branches/1.4/more-with-symfony/it/08-Advanced-Doctrine-Usage.markdown 2010-02-10 11:01:32 UTC (rev 27808) +++ doc/branches/1.4/more-with-symfony/it/08-Advanced-Doctrine-Usage.markdown 2010-02-10 11:19:08 UTC (rev 27809) @@ -773,5 +773,5 @@ ) Bene questo è tutto! Abbastanza semplice vero? Si spera che quanto detto possa -tornare utile e che come risultato la comunità crei dei nuovi ed interessanti +tornare utile e che come risultato la comunità crei dei nuovi e interessanti idratatori! Modified: doc/branches/1.4/more-with-symfony/it/09-Doctrine-Form-Inheritance.markdown =================================================================== --- doc/branches/1.4/more-with-symfony/it/09-Doctrine-Form-Inheritance.markdown 2010-02-10 11:01:32 UTC (rev 27808) +++ doc/branches/1.4/more-with-symfony/it/09-Doctrine-Form-Inheritance.markdown 2010-02-10 11:19:08 UTC (rev 27809) @@ -261,7 +261,7 @@ Prima di symfony 1.3, l'~ereditarietà delle tabelle~ con Doctrine non era pienamente supportata dal framework, perché le classi dei filtri e dei form non ereditavano dalla classe base. Di conseguenza, gli sviluppatori che avevano bisogno di usare l'ereditarietà erano -forzati a modificare form e filtri, ed erano costretti a sovrascrivere molti metodi +forzati a modificare form e filtri ed erano costretti a sovrascrivere molti metodi per ottenere il comportamento dell'ereditarietà. Grazie al feedback della comunità, il team del core di symfony ha migliorato form e @@ -754,7 +754,7 @@ quantity: 1 Una volta che il plugin `csDoctrineActAsSortablePlugin` è installato e il modello dei dati -è pronto, il nuovo plugin, per essere caricato ed utilizzato, deve essere attivato nella +è pronto, il nuovo plugin, per essere caricato e utilizzato, deve essere attivato nella classe ~`ProjectConfiguration`~, presente nel file `config/ProjectConfiguration.class.php`: [php] @@ -997,14 +997,14 @@ utilizzare il drag & drop grazie al plugin jQuery ~`tableDnD`~. Una chiamata ajax sarà eseguita quando l'utente si fermerà di muovere una riga nella tabella HTML. -Per prima cosa scaricare ed installare il framework jQuery sotto la cartella `web/js` e poi -ripetere l'operazione per il plugin `tableDnD` il cui codice sorgente è ospitato su un +Per prima cosa, scaricare e installare il framework jQuery sotto la cartella `web/js` e poi +ripetere l'operazione per il plugin `tableDnD`, il cui codice sorgente è ospitato su un repository di [Google Code](http://code.google.com/p/tablednd/). Per lavorare, il visualizzatore dell'elenco di ogni modulo deve includere il frammento -JavaScript, ed entrambe le tabelle hanno bisogno di un attributo `id`. Come tutti i +JavaScript ed entrambe le tabelle hanno bisogno di un attributo `id`. Come tutti i template del generatore di amministrativo. Siccome nel generatore di amministrativo -i template ed i partial possono essere sovrascritti, il file `_list.php` presente +i template e i partial possono essere sovrascritti, il file `_list.php`, presente nella cache per impostazione predefinita, deve essere copiato in entrambi i moduli. Ma ragioniamo un attimo... copiare il file `_list.php` sotto la cartella `templates/` di entrambi i @@ -1172,7 +1172,7 @@ } C'è ancora un'ultima funzionalità mancante da realizzare. Per ora, le righe delle -tabelle non sono trascinabili ed inoltre non è eseguita nessuna chiamata ajax quando una +tabelle non sono trascinabili e inoltre non è eseguita nessuna chiamata ajax quando una riga spostata viene rilasciata. Per realizzare questo, entrambi i moduli hanno bisogno di una rotta specifica per accedere alle loro corrispondenti azioni `move`. Di conseguenza, il file `apps/backend/config/routing.yml` può accogliere le due nuove @@ -1231,7 +1231,7 @@ e la nuova posizione di una riga è automaticamente salvata grazie ad una chiamata ajax. Con pochi pezzi di codice, l'usabilità del backend è stata ampiamente migliorata per offrire all'utente finale una migliore esperienza. Il generatore di amministrativo è -abbastanza flessibile per essere esteso e personalizzato, ed inoltre lavora perfettamente +abbastanza flessibile per essere esteso e personalizzato e inoltre lavora perfettamente con l'ereditarietà delle tabelle di Doctrine. Sentitevi liberi di migliorare i due backend rimuovendo le vecchie azioni `moveUp` e Modified: doc/branches/1.4/more-with-symfony/it/10-Symfony-Internals.markdown =================================================================== --- doc/branches/1.4/more-with-symfony/it/10-Symfony-Internals.markdown 2010-02-10 11:01:32 UTC (rev 27808) +++ doc/branches/1.4/more-with-symfony/it/10-Symfony-Internals.markdown 2010-02-10 11:19:08 UTC (rev 27809) @@ -376,8 +376,8 @@ >**NOTE** >[`sfGeneratorConfigHandler`](http://trac.symfony-project.org/browser/branches/1.3/lib/config/sfGeneratorConfigHandler.class.php) > è ->uno speciale gestore di configurazione che si occupa di istanziare la giusta ->classe generatore per il modulo, ed eseguirla. Per ulteriori informazioni sulla +>uno speciale gestore di configurazione, che si occupa di istanziare la giusta +>classe generatore per il modulo ed eseguirla. Per ulteriori informazioni sulla >configurazione dei gestori, vedere *Una parola sul gestore di configurazione* >in questo capitolo. Inoltre, per maggiori informazioni su `generator.yml`, >vedere >il [capitolo 6 della guida di riferimento a >symfony](http://www.symfony-project.org/reference/1_4/it/06-Admin-Generator). Modified: doc/branches/1.4/more-with-symfony/it/12-Developing-for-Facebook.markdown =================================================================== --- doc/branches/1.4/more-with-symfony/it/12-Developing-for-Facebook.markdown 2010-02-10 11:01:32 UTC (rev 27808) +++ doc/branches/1.4/more-with-symfony/it/12-Developing-for-Facebook.markdown 2010-02-10 11:19:08 UTC (rev 27809) @@ -33,10 +33,10 @@ Le Applicazioni Facebook sono applicazioni web che funzionano all'interno del social software. La loro principale qualità è quella di essere inclusa nella piattaforma social utilizzata da oltre 300 milioni di utenti, e di conseguenza ogni applicazione virale sviluppata cresce a velocità incredibile. -Farmville è uno dei più importanti ed ultimi esempi, con oltre 60 milioni di utenti attivi ogni mese e +Farmville è uno dei più importanti e ultimi esempi, con oltre 60 milioni di utenti attivi ogni mese e 2 milioni di fan racimolati in pochi mesi! Un numero che potrebbe rappresentare l'equivalente della popolazione Francese che torna alle proprie fattorie virtuali ogni mese! Le Applicazioni Facebook -interagiscono con il sito Facebook ed il suo social graph in diversi modi. Qui di seguito una spiegazione su +interagiscono con il sito Facebook e il suo social graph in diversi modi. Qui di seguito una spiegazione su dove una applicazione può apparire: #### Il Canvas @@ -65,7 +65,7 @@ Alcune informazioni statiche, associate ad uno specifico utente o ad una applicazione, possono essere mostrate in una scheda informazioni del profilo utente. Subito sotto l'età, -l'indirizzo ed il curriculum. +l'indirizzo e il curriculum. #### Pubblicare avvisi all'interno dello Stream @@ -190,8 +190,8 @@ plugin riproduce il comportamento del metodo `sfGuardPlugin` dopo la registrazione. * `js_framework` può essere utilizzato per specificare qual'è il framework JS da usare. È - particolarmente raccomandato l'uso di un framework javascript come jQuery su un sito Facebook Connect - in quanto il javascript utilizzato da Facebook Connect è pesante e può causare, se non istanziato al momento giusto, + particolarmente raccomandato l'uso di un framework JavaScript come jQuery su un sito Facebook Connect + in quanto il JavaScript utilizzato da Facebook Connect è pesante e può causare, se non istanziato al momento giusto, errori fatali (!) ad IE6. * `user_permissions` è un array di permessi che sarà associato al nuovo utente @@ -201,7 +201,7 @@ La connessione tra un utente Facebook e un utente di `sfGuardPlugin` è fatta abbastanza logicamente usando una colonna `facebook_uid` nella tabella `Profile`. Il plugin -presuppone che il legame tra l'utente `sfGuardUser` ed il suo profilo sia fatto utilizzando +presuppone che il legame tra l'utente `sfGuardUser` e il suo profilo sia fatto utilizzando il metodo `getProfile()`. Questo è il comportamento predefinito di `sfPropelGuardPlugin`, ma deve essere configurato come tale in `sfDoctrineGuardPlugin`. Qui di seguito un possibile file `schema.yml`: @@ -283,7 +283,7 @@ Se il progetto è un sito con Facebook Connect, c'è solo una scelta: XFBML. Mentre, se si tratta di una applicazione Facebook, le scelte possibili sono due: - * Includere l'applicazione all'interno di un Iframe all'interno di una pagina applicazione, ed usare + * Includere l'applicazione all'interno di un Iframe all'interno di una pagina applicazione e usare quindi XFBML all'interno di questo Iframe; * Lasciare a Facebook il compito di visualizzare l'applicazione, trasparentemente, @@ -303,7 +303,7 @@ Ma l'utilizzo di FBML ha anche alcuni svantaggi notevoli: - * Ogni javascript è eseguito all'interno di una sandbox, rendendo impossibile l'uso + * Ogni JavaScript è eseguito all'interno di una sandbox, rendendo impossibile l'uso di librerie esterne come quelle di Google Maps, jQuery o un qualsiasi sistema di statistiche diverso da Google Analytics, ufficialmente supportato da Facebook; @@ -313,8 +313,8 @@ * E più difficile fare il debug, in particolare per l'errore HTTP 500, che Facebook sostituisce con messaggi di errore standard. -Allora, qual è la scelta consigliata? La buona notizia è che con symfony ed il plugin -`sfFacebookConnectPlugin` non bisogna scegliere nulla! E possibile scrivere +Allora, qual è la scelta consigliata? La buona notizia è che con symfony e il plugin +`sfFacebookConnectPlugin` non bisogna scegliere nulla! È possibile scrivere applicazioni agnostiche e passare indifferentemente da un iframe ad una applicazione embedded per un sito con Facebook Connect utilizzando lo stesso codice. Ciò è possibile perché tecnicamente la differenza principale è in realtà nel layout... che è @@ -474,7 +474,7 @@ spesso connessi su Facebook durante la navigazione in Internet. In questo caso il filtro `sfFacebookConnectRememberMeFilter` si dimostra molto utile, in quanto fa il log-in automatico sul sito. Esattamente come se ci fosse una funzionalità "Ricordati di me" -tra Facebook Connect ed il sito. +tra Facebook Connect e il sito. [php] $sfGuardUser = sfFacebook::getSfGuardUserByFacebookSession(); @@ -488,14 +488,14 @@ Facebook, il filtro provvederà a riconnetterli automaticamente. Bisogna usarlo quindi con cautela. -### Una implementazione pulita per evitare un errore irreversibile di IE con javascript +### Una implementazione pulita per evitare un errore irreversibile di IE con JavaScript Uno dei bug più temibili che è possibile avere su un sito web è quello per IE che esegue una "Operazione interrotta", cioé l'errore può bloccare il rendering del sito... client-side! -Ciò è dovuto alla cattiva qualità del motore di rendering di IE6 ed IE7, +Ciò è dovuto alla cattiva qualità del motore di rendering di IE6 e IE7, che può mandare in crash il browser, se si aggiungono elementi DOM per il tag `body` da uno script che non è direttamente un figlio del tag `body`. E questo è esattamente -il caso del javascript di Facebook Connect quando viene caricato senza fare attenzione al +il caso del JavaScript di Facebook Connect quando viene caricato senza fare attenzione al completo caricamento del documento. Fortunatamente questo bug può essere risolto con symfony utilizzando gli slot. Infatti è possibile utilizzare uno slot per inserire lo script di Facebook Connect ogni volta che è necessario nel template, e caricarlo @@ -531,7 +531,7 @@ raggiungibile da remoto al fine di poter scambiare i cookie di autenticazione. Inoltre c'è un altro vincolo: una applicazione Facebook Connect può essere collegata ad un solo host. Questo è un problema spinoso se l'applicazione è sviluppata su una macchina, testata su un'altra, -messa in pre-produzione su un terzo server ed utilizzata, infine, su un quarto. +messa in pre-produzione su un terzo server e utilizzata, infine, su un quarto. In tal caso la soluzione più semplice è quella di creare effettivamente una applicazione per ogni server e creare quindi un ambiente symfony per ciascuno di essi. Questo è molto semplice in symfony: basta fare un semplice copia e incolla del file `frontend_dev.php`, Modified: doc/branches/1.4/more-with-symfony/it/13-Leveraging-the-Power-of-the-Command-Line.markdown =================================================================== --- doc/branches/1.4/more-with-symfony/it/13-Leveraging-the-Power-of-the-Command-Line.markdown 2010-02-10 11:01:32 UTC (rev 27808) +++ doc/branches/1.4/more-with-symfony/it/13-Leveraging-the-Power-of-the-Command-Line.markdown 2010-02-10 11:19:08 UTC (rev 27809) @@ -241,8 +241,8 @@ )); } -In questo esempio l'applicazione `frontend` verrà usata automaticamente, ed a -meno di non specificare un ambiente il task verrà eseguito nell'ambiente `dev`. +In questo esempio l'applicazione `frontend` verrà usata automaticamente e, a +meno di non specificare un ambiente, il task verrà eseguito nell'ambiente `dev`. Accedere al database -------------------- @@ -289,7 +289,7 @@ >**NOTE** >Fate molta attenzione quando eseguite processi batch utilizzando gli oggetti >del vostro ORM preferito. Sia Propel che Doctrine soffrono di un ben noto bug ->di PHP legato alle referenze cicliche ed al garbage collector che si manifestano +>di PHP legato alle referenze cicliche e al garbage collector che si manifestano >con una perdita di memoria. Questo è stato parzialmente risolto in PHP 5.3. Inviare email @@ -347,9 +347,9 @@ ### Utilizzare il decorator plugin di Swift Mailer Swift Mailer mette a disposizione un plugin conosciuto come -[`Decorator`](http://swiftmailer.org/docs/decorator-plugin) che non è altro che -un semplicissimo, quanto efficiente, template engine che può prendere delle coppie -di valori recipiente-rimpiazzo da utilizzare ed applicarli a tutte le email da inviare. +[`Decorator`](http://swiftmailer.org/docs/decorator-plugin), che non è altro che +un semplicissimo, quanto efficiente, motore di template, che può prendere delle coppie +di valori recipiente-rimpiazzo da utilizzare e applicarli a tutte le email da inviare. Leggere la [documentazione di Swift Mailer](http://swiftmailer.org/docs/) per ulteriori informazioni. @@ -668,7 +668,7 @@ [php] $this->runTask('cache:clear'); -Ovviamente, si possono passare parametri ed opzioni (in questo ordine): +Ovviamente, si possono passare parametri e opzioni (in questo ordine): [php] $this->runTask('plugin:install', array('sfGuardPlugin'), array('install_deps' => true)); @@ -721,7 +721,7 @@ ----------------------------------------- Un altro uso comune dei task è quello di generare file. I file possono essere -generati facilmente, usando gli scheletri ed il summenzionato metodo +generati facilmente, usando gli scheletri e il summenzionato metodo `sfFilesystem::replaceTokens()`. Come il nome suggerisce, questo metodo sostituisce dei token dentro un insieme di file. Quindi, si passa un array di file, una lista di token ed esso sostituisce ogni occorrenza di ogni token col valore assegnato, @@ -855,14 +855,14 @@ Il sistema dei task di symfony prova fortemente a rendere la vita dello sviluppatore più facile, fornendo dei metodi di aiuto per operazioni -comuni, come scrivere nei log ed interagire con l'utente. +comuni, come scrivere nei log e interagire con l'utente. Si possono facilmente mandare in output dei messaggi, usando la famiglia dei metodi `log`: * `log`, accetta un array di messaggi * `logSection`, un po' più elaborato, formatta il messaggio con un prefisso - (primo parametro) ed un tipo di messaggio (quarto parametro). Quando si + (primo parametro) e un tipo di messaggio (quarto parametro). Quando si inserisce un messaggio troppo lungo, come il percorso di un file, `logSection` solitamente lo accorcia, il che potrebbe risultare fastidioso. Usare il terzo parametro per specificare una dimensione @@ -894,7 +894,7 @@ * `askAndValidate()`, molto utile, scrive una domanda e valida la risposta dell'utente tramite un `sfValidator`, passato come secondo parametro. Il terzo parametro è un array di opzioni in cui si può passare un valore - predefinito (`value`), un numero massimo di tentativi (`attempts`) ed uno + predefinito (`value`), un numero massimo di tentativi (`attempts`) e uno stile di formattazione (`style`). Ad esempio, si può chiedere all'utente il suo indirizzo email e validarlo al volo: @@ -909,7 +909,7 @@ tramite un meccanismo noto come *cron*. Il *cron* controlla un file di configurazione (chiamato *crontab*), che contiene comandi da eseguire a determinati orari. I task di symfony possono essere facilmente integrati -nel crontab ed il task `project:send-emails` è un perfetto candidato come +nel crontab e il task `project:send-emails` è un perfetto candidato come esempio: MAILTO="[email protected]" @@ -923,7 +923,7 @@ >Per maggiori informazioni sulla configurazione di crontab, si può scrivere >`man 5 crontab` in un terminale. -Si può, e in realtà si dovrebbe, passare parametri ed opzioni: +Si può, e in realtà si dovrebbe, passare parametri e opzioni: MAILTO="[email protected]" 0 3 * * * /usr/bin/php /var/www/yourproject/symfony project:send-emails --env=prod --application=frontend @@ -980,4 +980,4 @@ Quello che si può ottenere coi task è limitato solo dalla propria immaginazione. Il sistema dei task di symfony è abbastanza potente e flessibile da poter fare quasi ogni cosa vi possa venire in mente. -Aggiungete la potenza del terminale UNIX ed amerete veramente i task. +Aggiungete la potenza del terminale UNIX e amerete veramente i task. Modified: doc/branches/1.4/more-with-symfony/it/14-Playing-with-Symfony-Config-Cache.markdown =================================================================== --- doc/branches/1.4/more-with-symfony/it/14-Playing-with-Symfony-Config-Cache.markdown 2010-02-10 11:01:32 UTC (rev 27808) +++ doc/branches/1.4/more-with-symfony/it/14-Playing-with-Symfony-Config-Cache.markdown 2010-02-10 11:19:08 UTC (rev 27809) @@ -66,7 +66,7 @@ <?php echo $form['body']->render(array('class' => 'comment')) ?> -Queste modifiche sono facili ed intuitive. Ma se c'è la necessità di modificare +Queste modifiche sono facili e intuitive. Ma se c'è la necessità di modificare un messaggio di errore?  Modified: doc/branches/1.4/more-with-symfony/it/15-Working-with-the-Symfony-Community.markdown =================================================================== --- doc/branches/1.4/more-with-symfony/it/15-Working-with-the-Symfony-Community.markdown 2010-02-10 11:01:32 UTC (rev 27808) +++ doc/branches/1.4/more-with-symfony/it/15-Working-with-the-Symfony-Community.markdown 2010-02-10 11:19:08 UTC (rev 27809) @@ -171,12 +171,12 @@ ### Conferenze ed eventi Oltre a partecipare alla comunità attraverso i canali digitali come descritto -in precedenza, è possibile comunicare con la comunità alle conferenze ed in -occasione di altri eventi. La maggioranza delle conferenze legate a PHP ed anche +in precedenza, è possibile comunicare con la comunità alle conferenze e in +occasione di altri eventi. La maggioranza delle conferenze legate a PHP e anche alcune di quelle dedicate ad un pubblico più ampio del solo PHP, vedono alcuni membri della comunità di symfony come partecipanti, oppure come relatori. Grazie al lavoro di questi membri della comunità alle conferenze è possibile ricevere -aiuto ed imparare cose nuove. Esistono eventi completamente dedicati a symfony. +aiuto e imparare cose nuove. Esistono eventi completamente dedicati a symfony. Alcuni esempi lampanti sono [Symfony Live](http://www.symfony-live.com/), [Symfony Day](http://www.symfonyday.com/) e [SymfonyCamp](http://www.symfonycamp.com/). Tutti questi eventi hanno alle spalle un'azienda, ma gran parte del lavoro è frutto @@ -222,7 +222,7 @@ fosse nessuno che offre qualcosa alla comunità, non ci sarebbe niente da prendere e la comunità stessa non esisterebbe. Quindi come si prende qualcosa dalla comunità, è utile pensare anche a come dare il proprio contributo. Come aiutarla -a migliorare e crescere? Come contribuire all'esistenza ed alla forza +a migliorare e crescere? Come contribuire all'esistenza e alla forza della comunità? Si vedranno assieme alcune vie percorribili per dare il proprio contributo. @@ -476,7 +476,7 @@ [SymfonyDay Cologne](http://www.symfonyday.com/). Entrambe le conferenze vennero organizzate da aziende che sviluppano con PHP utilizzando symfony e che volevano offrire qualcosa alla comunità. Tutte queste conferenze ottennero una buona -partecipazione, con in programma partecipanti noti, ed un bellissimo spirito di +partecipazione, con in programma partecipanti noti, e un bellissimo spirito di comunità. ### Diventare attivi localmente @@ -486,7 +486,7 @@ parlare di symfony solamente online. Ci si può attivare localmente. Un buon esempio per questo, sono i gruppi di utenti symfony. Durante l'anno scorso si sono viste diverse iniziative per l'avvio di nuovi gruppi di utenti, molti hanno -organizzato diversi incontri per persone interessate a symfony ed al suo utilizzo. +organizzato diversi incontri per persone interessate a symfony e al suo utilizzo. Gran parte di questi eventi sono molto informali, gratuiti e sono completamente guidati dalla comunità. @@ -545,7 +545,7 @@ Da diverso tempo ormai, symfony ha una pagina speciale sul wiki intitolata [Come contribuire a symfony](http://trac.symfony-project.org/wiki/HowToContributeToSymfony). Questa pagina elenca tutte le possibilità per dare il proprio aiuto a symfony -come progetto ed alla sua comunità, qualsiasi siano le proprie abilità, indicando +come progetto e alla sua comunità, qualsiasi siano le proprie abilità, indicando i posti migliori dove si potrebbe essere d'aiuto. È una lettura raccomandata per tutti quelli che vogliano partecipare attivamente alla comunità di symfony. @@ -560,7 +560,7 @@ #### Symfonians La [comunità Symfonians](http://www.symfonians.net/) è una comunità che elenca -le persone e le aziende che lavorano con symfony ed i progetti realizzati con +le persone e le aziende che lavorano con symfony e i progetti realizzati con symfony. Il sito permette alle aziende di pubblicare offerte di lavoro e permette agli utenti di ricercare utenti, aziende e progetti nel proprio paese. Modified: doc/branches/1.4/more-with-symfony/it/translators.markdown =================================================================== --- doc/branches/1.4/more-with-symfony/it/translators.markdown 2010-02-10 11:01:32 UTC (rev 27808) +++ doc/branches/1.4/more-with-symfony/it/translators.markdown 2010-02-10 11:19:08 UTC (rev 27809) @@ -1,7 +1,6 @@ A proposito dei traduttori ========================== - Fabrizio Pucci -------------- @@ -21,8 +20,8 @@ Francesco Fullone è un geek che cerca di spacciarsi per il CEO di una piccola web agency italiana chiamata Ideato, con la quale cerca, con un certo successo, -di portare i principi dello sviluppo agile anche nel mondo PHP. E’ un -evangelista PHP ed Open- Source e l’attuale presidente del GrUSP, il principale +di portare i principi dello sviluppo agile anche nel mondo PHP. È un +evangelista PHP e Open- Source e l’attuale presidente del GrUSP, il principale PHP User Group italiano, che ha come scopo il miglioramento dell’ecosistema PHP in Italia e che ogni anno organizza il phpDay in giro per la penisola. Si sente felice ogni volta che qualche altro sviluppatore italiano partecipa attivamente @@ -44,7 +43,7 @@ Daniel Londero è uno sviluppatore PHP dal 2005, anno in cui consegue la laurea in Informatica. Negli ultimi anni ha raccolto parecchia esperienza anche con PostgreSQL, XHTML e CSS. Nel 2007 si avvicina a symfony, che inizia a -studiare per hobby, decidendo poi di introdurlo ed utilizzarlo in azienda per +studiare per hobby, decidendo poi di introdurlo e utilizzarlo in azienda per importanti progetti web. Nel tempo libero dà il suo contributo alla community di symfony, traducendo la documentazione ufficiale e cercando di chiudere qualche ticket aperto dagli utenti. Linux è il suo unico sistema operativo. -- You received this message because you are subscribed to the Google Groups "symfony SVN" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/symfony-svn?hl=en.
