Translate alert titles in Italian (#1076)

<!-- 🚀 Thank you for contributing! -->

<!-- Describe your changes clearly and use examples if possible. -->

<!-- When this PR is merged, the title and body will be -->
<!-- used to generate a release automatically. -->
This commit is contained in:
Francesco Paolo Severino 2025-04-05 11:59:48 +02:00 committed by GitHub
parent 07d0e7a823
commit bf81c16fca
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 23 additions and 17 deletions

View File

@ -7,6 +7,9 @@ Se non hai ancora installato Swift o la Toolbox Vapor, segui la guida di install
- [Installazione &rarr; macOS](../install/macos.md)
- [Installazione &rarr; Linux](../install/linux.md)
!!! tip "Suggerimento"
Il template usato dalla Vapor Toolbox richiede Swift 6.0 o superiore
## Nuovo Progetto
Il primo passo è creare un nuovo progetto Vapor sul tuo computer. Apri il terminale e utilizza il comando `new` della Toolbox. Questo creerà una nuova cartella nella directory corrente contenente il progetto.
@ -15,10 +18,13 @@ Il primo passo è creare un nuovo progetto Vapor sul tuo computer. Apri il termi
vapor new hello -n
```
!!! tip
!!! tip "Suggerimento"
L'opzione `-n` creerà un progetto con il minimo indispensabile, rispondendo automaticamente no a tutte le domande.
!!! tip
!!! tip "Suggerimento"
Puoi anche ottenere il template più recente da GitHub senza la Vapor Toolbox clonando la [repository del template](https://github.com/vapor/template-bare)
!!! tip "Suggerimento"
Vapor e il template ora utilizzano `async`/`await` di default.
Se non puoi aggiornare a macOS 12 e/o hai bisogno di continuare ad utilizzare gli `EventLoopFuture`,
utilizza l'opzione `--branch macos10-15`.

View File

@ -4,7 +4,7 @@ Puoi creare tag Leaf personalizzati usando il protocollo [`LeafTag`](https://api
Per mostrare come funziona, diamo un'occhiata alla creazione di un tag personalizzato `#now` che stampa l'attuale marca temporale. Il tag supporterà anche un singolo parametro opzionale per specificare il formato della data.
!!! tip
!!! tip "Suggerimento"
Se il tuo tag personalizzato renderizza HTML dovresti conformare il tuo tag personalizzato a `UnsafeUnescapedLeafTag` così che l'HTML non sia "escaped". Ricorda di controllare o ripulire ogni input dell'utente.
## `LeafTag`

View File

@ -41,10 +41,10 @@ app.views.use(.leaf)
Questo dice a Vapor di usare `LeafRenderer` quando chiami `req.view` nel tuo codice.
!!! note
!!! note "Nota"
Leaf ha una cache interna per renderizzare le pagine. Quando l'ambiente di `Application` è impostato su `.development` questa cache è disabilitata, così che i cambiamenti ai template abbiano effetto immediatamente. In `.production` e tutti gli altri ambienti la cache è abilitata di default; qualsiasi cambiamento fatto ai template non avrà effetto finché l'applicazione non viene riavviata.
!!! warning
!!! warning "Attenzione"
Per fare in modo che Leaf trovi i template quando gira su Xcode, devi impostare la [directory di lavoro personalizzata](../getting-started/xcode.md#custom-working-directory) per il tuo ambiente di lavoro Xcode.
## Struttura della Cartella
@ -73,7 +73,7 @@ Adesso che Leaf è configurato, renderizziamo il tuo primo template. Dentro la c
Hello, #(name)!
```
!!! tip
!!! tip "Suggerimento"
Se usi VSCode come editor di testo, raccomandiamo di installare l'estensione di Vapor per abilitare l'evidenziazione della sintassi: [Vapor for VS Code](https://marketplace.visualstudio.com/items?itemName=Vapor.vapor-vscode).
Quindi, registra una route (di solito fatto in `routes.swift` o un controller) per renderizzare la view.

View File

@ -278,7 +278,7 @@ Il tag `#unsafeHTML` agisce come un tag di variabile - p.es. `#(variable)`. Per
The time is #unsafeHTML(styledTitle)
```
!!! note
!!! note "Nota"
Dovresti fare attenzione quando usi questo tag per assicurarti che la variabile che gli fornisci non esponga i tuoi utenti a un attacco XSS.
#### `#dumpContext`

View File

@ -4,7 +4,7 @@
Questa libreria è un'integrazione tra Vapor e [**RediStack**](https://github.com/swift-server/RediStack), che è il driver sottostante che comunica con Redis.
!!! note
!!! note "Nota"
La maggior parte delle funzionalità di Redis sono fornite da **RediStack**.
Raccomandiamo fortemente di acquisire familiarità con la sua documentazione.
@ -75,14 +75,14 @@ Questo è l'indice del database che intendi selezionare quando ogni connessione
Questo ti evita di dover mandare il comando `SELECT` a Redis da te.
!!! warning
!!! warning "Attenzione"
La selezione del database non è mantenuta. Stai attento quando mandi il comando `SELECT` da te.
### Opzioni del Pool di Connessioni
> Documentazione dell'API: [`RedisConfiguration.PoolOptions`](https://api.vapor.codes/redis/documentation/redis/redisconfiguration/pooloptions)
!!! note
!!! note "Nota"
Solo le opzioni cambiate più comunemente sono evidenziate qui. Per tutte le altre opzioni, fai riferimento alla documentazione dell'API.
#### minimumConnectionCount
@ -97,7 +97,7 @@ Questa è conosciuta come connessione "cold start", e ha dell'overhead rispetto
Quest'opzione determina il comportamento di come il numero massimo di connessioni è mantenuto.
!!! seealso
!!! seealso "Guarda anche"
Fai riferimento all'API `RedisConnectionPoolSize` per familiarizzare con le opzioni disponibili.
## Inviare un Comando

View File

@ -110,7 +110,7 @@ Questo protocollo richiede che implementi il metodo `authenticate(basic:for:)`,
In questo autenticatore di prova, il nome utente e la password vengono verificati rispetto ai valori codificati. In un autenticatore reale, potresti voler effettuare un controllo su un database o su un'API esterna, per questo motivo il metodo `authenticate` consente di restituire una future.
!!! tip
!!! tip "Suggerimento"
Le password non devono mai essere memorizzate in un database in chiaro. Utilizzate sempre gli hash delle password per il confronto.
Se i parametri di autenticazione sono corretti, in questo caso corrispondono ai valori codificati, viene effettuato l'accesso a uno `User` di nome Vapor. Se i parametri di autenticazione non corrispondono, non viene registrato alcun utente, il che significa che l'autenticazione è fallita.
@ -173,7 +173,7 @@ Questo protocollo richiede l'implementazione di `authenticate(bearer:for:)` che
In questo autenticatore di prova, il token viene testato rispetto a un valore codificato. In un vero autenticatore, potresti voler verificare il token confrontandolo con un database o usando misure crittografiche, come si fa con JWT. Ecco perché il metodo `authenticate` consente di restituire una future.
!!! tip
!!! tip "Suggerimento"
Quando si implementa la verifica dei token, è importante considerare la scalabilità orizzontale. Se l'applicazione deve gestire molti utenti contemporaneamente, l'autenticazione può essere un potenziale collo di bottiglia. Considera il modo in cui il tuo progetto scalerà su più istanze dell'applicazione in esecuzione contemporaneamente.
Se i parametri di autenticazione sono corretti, e in questo caso corrispondono al valore codificato, viene effettuato l'accesso a un `Utente` di nome Vapor. Se i parametri di autenticazione non corrispondono, non viene registrato alcun utente, il che significa che l'autenticazione è fallita.
@ -328,7 +328,7 @@ Non dimenticare di aggiungere la migrazione a `app.migrations`.
app.migrations.add(User.Migration())
```
!!! tip
!!! tip "Suggerimento"
Poiché gli indirizzi email non sono sensibili alle maiuscole e alle minuscole, puoi aggiungere un [`Middleware`](../fluent/model.md#lifecycle) che coercizzi l'indirizzo email in minuscolo prima di salvarlo nella base dati. Tieni presente, però, che `ModelAuthenticatable` usa un confronto sensibile alle maiuscole e alle minuscole, quindi se fai questo devi assicurarti che l'input dell'utente sia tutto minuscolo, o con la coercizione delle maiuscole nel client o con un autenticatore personalizzato.
La prima cosa di cui hai bisogno è un endpoint per creare nuovi utenti. Useremo `POST /users`. Crea una struttura [Content](../basics/content.md) che rappresenti i dati che questo endpoint si aspetta.
@ -749,7 +749,7 @@ Questi middleware svolgono le seguenti funzioni:
* Il middleware delle sessioni prende il cookie di sessione fornito nella richiesta e lo converte in una sessione.
* l'autenticatore di sessione prende la sessione e verifica se esiste un utente autenticato per quella sessione. In caso affermativo, il middleware autentica la richiesta. Nella risposta, l'autenticatore di sessione vede se la richiesta ha un utente autenticato e lo salva nella sessione, in modo che sia autenticato nella richiesta successiva.
!!! note
!!! note "Nota"
Di default, il cookie di sessione non è impostato su `secure` e/o `httpOnly`. Per ulteriori informazioni su come configurare i cookie, consultare le [API di sessione](../advanced/sessions.md#configuration) di Vapor.
### Protezione delle Route

View File

@ -89,5 +89,5 @@ let codes = hotp.generate(counter: 25, range: 2)
```
Nell'esempio qui sopra viene fornito un margine di 2, che significa che le HOTP saranno calcolate con i valori del contatore `23 ... 27`, e tutti questi codici verranno restituiti.
!!! warning
!!! warning "Attenzione"
N.B.: Più grande è il margine di errore usato, maggiore è il tempo e la libertà che ha un attacante per agire, diminuendo la sicurezza dell'algoritmo.

View File

@ -55,7 +55,7 @@ Il primo passo per aggiornare a Vapor 4 è aggiornare il file delle dipendenze d
Tutti i pacchetti che sono stati aggiornati a Vapor 4 avranno la versione major incrementata di 1.
!!! warning
!!! warning "Attenzione"
L'identificatore di pre-rilascio `-rc` indica che alcuni pacchetti di Vapor 4 non sono ancora stati rilasciati ufficialmente.
### Vecchi Pacchetti