Add getting started italian translation (#808)

* Add getting started italian translation

* Minor fixes

* Add italian to translation issue template
This commit is contained in:
Paul Toffoloni 2023-05-30 12:11:26 +02:00 committed by GitHub
parent 8a3448d7a6
commit 20de69867a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 355 additions and 3 deletions

View File

@ -9,5 +9,6 @@ Languages:
- [ ] Chinese
- [ ] German
- [ ] Dutch
- [ ] Italian
Assigned to @vapor/translations - please submit a PR with the relevant updates and check the box once merged. Please ensure you tag your PR with the `translation-update` so it doesn't create a new issue!
Assigned to @vapor/translations - please submit a PR with the relevant updates and check the box once merged. Please ensure you tag your PR with the `translation-update` so it doesn't create a new issue!

View File

@ -0,0 +1,81 @@
# Struttura della Cartella
Dopo aver creato, compilato ed eseguito la vostra prima applicazione, è il momento di dare un'occhiata a come Vapor struttura la cartella del progetto. La struttura si basa su [SwiftPM](spm.md), quindi se avete già familiarità con SwiftPM vi sentirete a casa.
```
.
├── Public
├── Sources
│ ├── App
│ │ ├── Controllers
│ │ ├── Migrations
│ │ ├── Models
│ │ ├── configure.swift
│ │ ├── entrypoint.swift
│ │ └── routes.swift
├── Tests
│ └── AppTests
└── Package.swift
```
Le seguenti sezioni spiegano in maggior dettaglio la struttura della cartella.
## Public
Questa cartella contiene tutti i file pubblici che saranno messi a disposizione dall'applicazione se `FileMiddleware` è abilitato. In genere si tratta di immagini, fogli di stile e script del browser. Ad esempio, una richiesta a `localhost:8080/favicon.ico` controlla se `Public/favicon.ico` esiste e lo restituisce.
Perché Vapor possa servire i file pubblici, bisognerà abilitare `FileMiddleware` nel file `configure.swift`.
```swift
// Fornisce i file dalla cartella `Public/`
let fileMiddleware = FileMiddleware(
publicDirectory: app.directory.publicDirectory
)
app.middleware.use(fileMiddleware)
```
## Sources
Questa cartella contiene tutti i file sorgente Swift che verranno utilizzati dal progetto.
La cartella di primo livello, `App`, riflette il modulo del vostro pacchetto, come dichiarato nel manifesto [SwiftPM](spm.md).
### App
La cartella `App` contiene tutta la logica dell'applicazione.
#### Controllers
I controller sono un ottimo modo per raggruppare la logica dell'applicazione. La maggior parte dei controller ha diverse funzioni che accettano una richiesta e restituiscono qualche tipo di risposta.
#### Migrations
Se si utilizza Fluent, questa cartella contiene le migrazioni del database.
#### Models
La cartella dei modelli è un ottimo posto per memorizzare le strutture `Content` e i modelli di Fluent.
#### configure.swift
Questo file contiene la funzione `configure(_:)`. Questo metodo viene chiamato da `entrypoint.swift` per configurare la nuova `Application` creata. Qui vengono registrati gli endpoints, i database, i providers e altro ancora.
#### entrypoint.swift
Questo file contiene la funzione `main(_:)`. Questo metodo viene chiamato dal sistema operativo per avviare l'applicazione. In genere non è necessario modificarlo.
#### routes.swift
Questo file contiene la funzione `routes(_:)`. Questo metodo viene chiamato da `configure(_:)` per registrare gli endpoints dell'applicazione.
## Tests
Per ogni mdulo non eseguibile nella cartella `Sources` si può avere una cartella corrispondente in `Tests`. Essa conterrà i test per quel modulo scritti sulla base del modulo di testing `XCTest`. I test possono essere eseguiti utilizzando `swift test` da riga di comando o premendo ⌘+U in Xcode.
### AppTests
Questa cartella contiene gli unit tests per il codice del modulo `App`.
## Package.swift
Infine, abbiamo il manifesto del pacchetto [SPM](spm.md).

View File

@ -0,0 +1,78 @@
# Ciao, mondo
Questa guida vi mostrerà, passo dopo passo, come creare, compilare ed eseguire il vostro primo progetto con Vapor.
Se non avete ancora installato Swift o la Toolbox Vapor, seguite la guida di installazione prima di continuare.
- [Installazione → macOS](../install/macos.md)
- [Installazione → Linux](../install/linux.md)
## Nuovo Progetto
Il primo passo è creare un nuovo progetto Vapor sul vostro computer. Aprite il terminale e utilizzate il comando `new` della Toolbox. Questo creerà una nuova cartella nella directory corrente contenente il progetto.
```sh
vapor new hello -n
```
!!! tip
L'opzione `-n` creerà un progetto con il minimo indispensabile, rispondendo automaticamente no a tutte le domande.
!!! tip
Vapor e il template ora utilizzano `async`/`await` di default.
Se non potete aggiornare a macOS 12 e/o avete bisogno di continuare ad utilizzare gli `EventLoopFuture`s,
utilizzate l'opzione `--branch macos10-15`.
Una volta terminato il comando, entrate nella cartella appena creata:
```sh
cd hello
```
## Compilazione ed Esecuzione
### Xcode
Per prima cosa, aprite il progetto in Xcode:
```sh
open Package.swift
```
Xcode inizierà automaticamente a scaricare le dipendenze di Swift Package Manager. La prima volta che aprite un progetto ci vorrà un po' di tempo. Quando la risoluzione delle dipendenze sarà completata, Xcode popolerà gli schemi disponibili.
Nella parte superiore della finestra, alla destra dei pulsanti Play e Stop, cliccate sul nome del progetto per selezionare lo schema del progetto e selezionate un target di esecuzione appropriato, spesso "My Mac". Cliccate sul pulsante play per compilare ed eseguire il progetto.
Dovreste ora veder apparire la Console nella parte inferiore della finestra di Xcode.
```sh
[ INFO ] Server starting on http://
```
### Linux
Su Linux e altri sistemi operativi (e anche su macOS se non volete utilizzare Xcode) potete modificare il progetto nel vostro editor preferito, come Vim o VSCode. Per maggiori dettagli su come configurare altri IDE, consultate le [Guide di Swift sul Server](https://github.com/swift-server/guides/blob/main/docs/setup-and-ide-alternatives.md)
Per compilare ed eseguire il progetto, nel Terminale eseguite:
```sh
swift run
```
Questo comando compilerà ed eseguirà il progetto. La prima volta che lo eseguite ci vorrà un po' di tempo per scaricare e indicizzare le dipendenze. Una volta avviato, dovrebbe apparire il seguente codice nel terminale:
```sh
[ INFO ] Server starting on http://127.0.0.1:8080
```
## Visitare Localhost
Ora che il progetto è in esecuzione, aprite il vostro browser e visitate <a href="http://localhost:8080/hello" target="_blank">localhost:8080/hello</a> oppure <a href="http://127.0.0.1:8080" target="_blank">http://127.0.0.1:8080</a>.
Dovrebbe apparire la seguente pagina:
```html
Hello, world!
```
Congratulazioni per aver creato, compilato ed eseguito il vostro primo progetto Vapor! 🎉

View File

@ -0,0 +1,95 @@
# Swift Package Manager
Il [Swift Package Manager](https://swift.org/package-manager/) (SPM) è utilizzato per la compilazione del codice sorgente e delle dipendenze del vostro progetto. Poiché Vapor si basa molto su SPM, è una buona idea capire i suoi funzionamenti di base.
SPM è simile a Cocoapods, Ruby gems e NPM. Si può utilizzare SPM dalla riga di comando con comandi come `swift build` e `swift test` o con IDE compatibili. Tuttavia, a differenza di alcuni altri package manager, non esiste un indice centrale dei pacchetti SPM. Esso sfrutta invece gli URL delle repository Git e le dipendenze delle versioni utilizzando i [tag Git](https://git-scm.com/book/en/v2/Git-Basics-Tagging).
## Manifesto del Pacchetto
Il primo posto in cui SPM cerca nel vostro progetto è il manifesto del pacchetto. Questo dovrebbe sempre essere situato nella directory principale del vostro progetto e chiamarsi `Package.swift`.
Diamo un'occhiata a questo esempio di manifesto del pacchetto.
```swift
// swift-tools-version:5.8
import PackageDescription
let package = Package(
name: "MyApp",
platforms: [
.macOS(.v12)
],
dependencies: [
.package(url: "https://github.com/vapor/vapor.git",
from: "4.76.0"),
],
targets: [
.executableTarget(
name: "App",
dependencies: [
.product(name: "Vapor", package: "vapor")
]
),
.testTarget(name: "AppTests", dependencies: [
.target(name: "App"),
.product(name: "XCTVapor", package: "vapor"),
])
]
)
```
Nelle sezioni seguenti vengono spiegate tutte le parti del manifesto.
### Versione degli Strumenti
La prima riga di un manifesto del pacchetto indica la versione degli strumenti Swift richiesta. Essa specifica la versione minima di Swift che il pacchetto supporta. L'API della descrizione del pacchetto può anche cambiare tra le versioni di Swift, quindi questa riga assicura che Swift sappia come analizzare il manifesto.
### Nome del Pacchetto
Il primo argomento di `Package` è il nome del pacchetto. Se il pacchetto è pubblico, bisogna utilizzare l'ultimo segmento dell'URL della repo Git come nome.
### Piattaforme
L'array `platforms` specifica quali piattaforme il pacchetto supporta. Specificando `.macOS(.v12)` il pacchetto richiederà macOS 12 o successivi. Quando Xcode caricherà il progetto, imposterà automaticamente la versione di distribuzione minima su macOS 12 in modo che si possano utilizzare tutte le API disponibili.
### Dipendenze
Le dipendenze sono altri pacchetti SPM da cui il pacchetto dipende. Tutte le applicazioni Vapor si basano sul pacchetto Vapor, ma se ne possono aggiungere senza limiti.
Nell'esempio precedente, si può notare che il pacchetto dipende da [vapor/vapor](https://github.com/vapor/vapor), versione 4.76.0 o successive. Nel momento in cui si aggiunge una dipendenza al pacchetto, bisogna segnalare quali [target](#targets) dipendono dai moduli appena inseriti.
### Target
I target sono i moduli che compongono il vostro pacchetto. I target possono essere eseguibili, librerie o test. Solitamente un progetto Vapor ha due target, tuttavia se ne possono aggiungere in modo da organizzare il codice.
Ogni target dichiara i moduli da cui dipende. Per poter importare ed usare i vari moduli nel codice bisogna dichiarare qui i loro nomi. Un target può dipendere da altri target nello stesso pacchetto o da qualsiasi modulo presente nei pacchetti aggiunto all'array delle [dipendenze principali](#dependencies).
## Struttura della Cartella
Questa è la tipica struttura di una cartella di un pacchetto SPM:
```
.
├── Sources
│ └── App
│ └── (Source code)
├── Tests
│ └── AppTests
└── Package.swift
```
Ogni `.target` o `.executableTarget` corrisponde a una cartella nella cartella `Sources`.
Ogni `.testTarget` corrisponde a una cartella nella cartella `Tests`.
## Package.resolved
La prima volta che il progetto viene compilato, SPM creerà il file `Package.resolved` che contiene l'elenco delle dipendenze e delle versioni utilizzate. Durante le compilazioni successive saranno quelle le versioni utilizzate, anche se ce ne dovessero essere di più recenti.
Per aggiornare le dipendenze basta eseguire `swift package update` e SPM aggiornerà automaticamente il file `Package.resolved` con le versioni più recenti.
# Xcode
Usando Xcode qualsiasi cambiamento a dipendenze, target, prodotti ecc. sarà automatico non appena si salva il file `Package.swift`.
Per aggiornare le dipendenze, basta andare su File &rarr; Swift Packages &rarr; Update to Latest Package Versions.
In genere è consigliabile aggiungere il file `.swiftpm` al `.gitignore`. Questo file contiene la configurazione del progetto di Xcode.

View File

@ -0,0 +1,44 @@
# Xcode
Questa pagina contiene alcuni consigli e trucchi per l'utilizzo di Xcode. Non è necessaria se si preferisce usare un ambiente di sviluppo diverso.
## Directory di lavoro personalizzata
Di default Xcode eseguirà il progetto dalla cartella _DerivedData_. Questa cartella non è la stessa della cartella principale del progetto (dove si trova il file _Package.swift_). Questo significa che Vapor non sarà in grado di trovare file e cartelle come _.env_ o _Public_.
Si può notare che questo sta accadendo se si vede il seguente avviso quando si esegue il progetto.
```fish
[ WARNING ] No custom working directory set for this scheme, using /path/to/DerivedData/project-abcdef/Build/
```
Per risolvere questo problema bisogna impostare una directory di lavoro personalizzata nello schema Xcode del progetto.
Per prima cosa, modificare lo schema del progetto cliccando sul selettore dello schema vicino ai pulsanti play e stop.
![Xcode Scheme Area](../images/xcode-scheme-area.png)
Selezionare _Edit Scheme..._ dal menu a tendina.
![Xcode Scheme Menu](../images/xcode-scheme-menu.png)
Nell'editor dello schema, scegliere l'azione _App_ e la scheda _Options_. Selezionare _Use custom working directory_ e inserire il percorso alla cartella principale del progetto.
![Xcode Scheme Options](../images/xcode-scheme-options.png)
Si può ottenere il percorso completo alla cartella principale del progetto eseguendo `pwd` da una finestra del terminale aperta lì.
```fish
# verificare di essere nella cartella del progetto vapor
vapor --version
# ottenere il percorso di questa cartella
pwd
```
Si dovrebbe vedere un output simile al seguente.
```
framework: 4.x.x
toolbox: 18.x.x
/path/to/project
```

View File

@ -93,6 +93,10 @@ plugins:
name: German
site_name: Vapor Dokumentation
build: true
it:
name: Italiano
site_name: Documentazione di Vapor
build: true
# Add navigation translations here
nav_translations:
nl:
@ -132,7 +136,7 @@ plugins:
Custom Tags: Zelfgemaakte Tags
Contributing: Bijdragen
Contributing Guide: Gids Bijdragen
fr:
fr:
Welcome: Bienvenue
Install: Installer
Getting Started: Commencer
@ -242,7 +246,56 @@ plugins:
Contributing: 贡献
Contributing Guide: 贡献指南
Version (4.0): 版本 (4.0)
it:
Welcome: Benvenuto
Install: Installazione
Getting Started: Inizio
Hello, world: Ciao, mondo
Folder Structure: Struttura della Cartella
SwiftPM: SwiftPM
Xcode: Xcode
Basics: Basi
Routing: Routing
Content: Contenuto
Client: Client
Validation: Validazione
Async: Asincrono
Logging: Logging
Environment: Ambiente
Errors: Errori
Fluent: Fluent
Overview: Panoramica
Model: Modello
Relations: Relazioni
Migrations: Migrazioni
Query: Query
Transactions: Transazioni
Schema: Schema
Leaf: Leaf
Custom Tags: Tag Personalizzati
Redis: Redis
Advanced: Avanzate
Middleware: Middleware
Testing: Test
Server: Server
Files: File
Commands: Comandi
Queues: Code
WebSockets: WebSockets
Sessions: Sessioni
Services: Servizi
Security: Sicurezza
APNS: APNS
Deploy: Deploy
Authentication: Autenticazione
Crypto: Crittografia
Passwords: Password
JWT: JWT
Contributing: Contribuire
Contributing Guide: Guida alla Contribuzione
Version (4.0): Versione (4.0)
Legacy Docs: Documentazione Legacy
Upgrading: Aggiornamento
nav:
- Welcome: "index.md"