Merge pull request #7299 from Gioggio/master

Docs: Start Italian translations
This commit is contained in:
Kevin Sawicki 2016-09-22 12:21:09 -07:00 committed by GitHub
commit f5694daeb7
3 changed files with 513 additions and 0 deletions

View file

@ -0,0 +1,100 @@
Sii certo di usare la documentazione che corrisponde alla tua versione di
Electron. Il numero della versione dovrebbe fare parte dell'URL della pagina.
Se così non fosse, stai probabilmente utilizzando una documentazione facente
parte di una branch di sviluppo che potrebbe contenere modifiche all'API che non
sono compatibili con la tua versione di Electron. In questo caso, puoi passare a
una differente versione della documentazione dalla lista di
[versioni disponibili](http://electron.atom.io/docs/) su atom.io, o nel caso tu
stia usando l'interfaccia di GitHub, apri il menu a tendina "Switch
branches/tags" e seleziona il tag che corrisponde alla tua versione.
## FAQ
Ci sono domande che vengono chieste abbastanza spesso, quindi controlla questa
sezione prima di creare una issue:
* [Electron FAQ](faq.md)
## Guide
* [Piattaforme Supportate](tutorial/piattaforme-supportate.md)
* [Sicurezza](tutorial/sicurezza.md)
* [Versionamento Electron](tutorial/versionamento-electron.md)
* [Distribuzione dell'Applicazione](tutorial/distribuzione-applicazione.md)
* [Guida Mac App Store](tutorial/guida-mac-app-store.md)
* [Guida Windows Store](tutorial/guida-windows-store.md)
* [Packaging Applicazione](tutorial/packaging-applicazione.md)
* [Usare Moduli Node Nativi](tutorial/usare-moduli-node-nativi.md)
* [Debugging Processo Principale](tutorial/debugging-processo-principale.md)
* [Usare Selenium e WebDriver](tutorial/usare-selenium-e-webdriver.md)
* [Estensioni DevTools](tutorial/estensioni-devtools.md)
* [Usare Plugin Pepper Flash](tutorial/usare-plugin-pepper-flash.md)
* [Usare Plugin Widevine CDM](tutorial/usare-plugin-widevine-cdm.md)
* [Testare su Sistemi Headless CI (Travis, Jenkins)](tutorial/testare-su-sistemi-headless-ci.md)
* [Rendering Offscreen](tutorial/rendering-offscreen.md)
## Tutorial
* [Guida Rapida](tutorial/guida-rapida.md)
* [Integrazione Ambiente Desktop](tutorial/integrazione-ambiente-desktop.md)
* [Rilevazione Eventi Online/Offline](tutorial/eventi-online-offline.md)
## Documentazione API
* [Sinossi](api/sinossi.md)
* [Oggetto Process](api/process.md)
* [Parametri Linea di Comando Chrome Supportati](api/parametri-linea-comando-chrome.md)
* [Variabili di Ambiente](api/variabili-ambiente.md)
### Elementi personalizzati DOM:
* [Oggetto `File`](api/oggetto-file.md)
* [Tag `<webview>`](api/web-view-tag.md)
* [Funzione `window.open`](api/window-open.md)
### Moduli per il Processo Main:
* [app](api/app.md)
* [autoUpdater](api/auto-updater.md)
* [BrowserWindow](api/browser-window.md)
* [contentTracing](api/content-tracing.md)
* [dialog](api/dialog.md)
* [globalShortcut](api/global-shortcut.md)
* [ipcMain](api/ipc-main.md)
* [Menu](api/menu.md)
* [MenuItem](api/menu-item.md)
* [powerMonitor](api/power-monitor.md)
* [powerSaveBlocker](api/power-save-blocker.md)
* [protocol](api/protocol.md)
* [session](api/session.md)
* [systemPreferences](api/system-preferences.md)
* [Tray](api/tray.md)
* [webContents](api/web-contents.md)
### Moduli per il Processo di Rendering (Pagina Web):
* [desktopCapturer](api/desktop-capturer.md)
* [ipcRenderer](api/ipc-renderer.md)
* [remote](api/remote.md)
* [webFrame](api/web-frame.md)
### Moduli per Entrambi i Processi:
* [clipboard](api/clipboard.md)
* [crashReporter](api/crash-reporter.md)
* [nativeImage](api/native-image.md)
* [screen](api/screen.md)
* [shell](api/shell.md)
## Sviluppo
* [Stile Codice](development/stile-codice.md)
* [Struttura Cartella Codice Sorgente](development/struttura-cartella-codice-sorgente.md)
* [Differenze Tecniche da NW.js (precedentemente node-webkit)](development/atom-shell-vs-node-webkit.md)
* [Panoramica Sistema di Build](development/panoramica-sistema-build.md)
* [Istruzioni Build (macOS)](development/istruzioni-build-macos.md)
* [Istruzioni Build (Windows)](development/istruzioni-build-windows.md)
* [Istruzioni Build (Linux)](development/istruzioni-build-linux.md)
* [Istruzioni Debug (macOS)](development/istruzioni-debug-macos.md)
* [Istruzioni Debug (Windows)](development/istruzioni-debug-windows.md)
* [Impostare Symbol Server nel debugger](development/impostare-symbol-server.md)

View file

@ -0,0 +1,167 @@
# Electron FAQ
## Quando verrà utilizzata l'ultima versione di Chrome per Electron?
La versione di Chrome usata da Electron viene aggiornata solitamente entro una o
due settimane dal rilascio di una versione stabile di Chrome. Questa stima non è
garantita e dipende dall'ammontare di lavoro necessario all'aggiornamento.
E' utilizzato solo il canale stabile di Chrome. Se un fix importante si trovasse
sui canali beta o dev, lo applicheremo a una versione precedente.
Per maggiori informazioni, leggi l'[introduzione alla sicurezza](tutorial/sicurezza.md).
## Quando verrà utilizzata l'ultima versione di Node.js per Electron?
Quando una nuova versione di Node.js viene rilasciata, aspettiamo per circa un
mese prima di aggiornare quella di Electron. Possiamo così evitare di essere
influenzati dai bug introdotti nelle nuove versioni di Node.js, cosa che accade
spesso.
Le nuove funzionalità di Node.js sono solitamente introdotte dagli aggiornamenti
di V8. Siccome Electron usa la versione di V8 integrata nel browser Chrome, le
nuove funzionalità di JavaScript implementate nella nuova versione di Node.js
sono già presenti in Electron.
## Come condividere dati tra pagine web?
Il modo più semplice per condividere dati tra pagine web (il processo di
rendering) è usare le API di HTML5 già disponibili nei browser. Alcune buone
opzioni sono [Storage API][storage], [`localStorage`][local-storage],
[`sessionStorage`][session-storage] e [IndexDB][indexed-db].
Oppure puoi usare il sistema IPC, che è specifico di Electron, per memorizzare
gli oggetti nel processo principale come variabile globale e accedervi poi
dai renderer tramite la proprietà `remote` del modulo `electron`:
```javascript
// Nel processo principale.
global.sharedObject = {
someProperty: 'valore di default'
}
```
```javascript
// Nella pagina 1.
require('electron').remote.getGlobal('sharedObject').someProperty = 'nuovo valore'
```
```javascript
// Nella pagina 2.
console.log(require('electron').remote.getGlobal('sharedObject').someProperty)
```
## La finestra/icona della mia app è sparita dopo qualche minuto.
Ciò accade quando una variabile usata per la memorizzazione della finestra/
icona viene garbage-collected.
Se dovessi incontrare questo problema, i seguenti articoli potrebbero esserti
d'aiuto:
* [Gestione Memoria][memory-management]
* [Visibilità Variabili][variable-scope]
Se hai bisogno di un fix veloce, puoi rendere le variabili globali cambiando il
tuo codice da così:
```javascript
const {app, Tray} = require('electron')
app.on('ready', () => {
const tray = new Tray('/percorso/icona.png')
tray.setTitle('ciao mondo')
})
```
a così:
```javascript
const {app, Tray} = require('electron')
let tray = null
app.on('ready', () => {
tray = new Tray('/percorso/icona.png')
tray.setTitle('ciao mondo')
})
```
## Non posso usare jQuery/RequireJS/Meteor/AngularJS in Electron.
Data l'integrazione di Node.js di Electron, vi sono alcuni simboli extra
inseriti nel DOM quali `module`, `exports`, `require`. Ciò causa problemi ad
alcune librerie in quanto vogliono inserire simboli con gli stessi nomi.
Per risolvere il problema, puoi disattivare l'integrazione di Node in Electron:
```javascript
// Nel processo principale.
const {BrowserWindow} = require('electron')
let win = new BrowserWindow({
webPreferences: {
nodeIntegration: false
}
})
win.show()
```
Se invece volessi mantenere la capacità di usare Node.js e le API di Electron,
devi rinominare i simboli nella pagina prima di includere altre librerie:
```html
<head>
<script>
window.nodeRequire = require;
delete window.require;
delete window.exports;
delete window.module;
</script>
<script type="text/javascript" src="jquery.js"></script>
</head>
```
## `require('electron').xxx` is undefined.
Mentre usi il modulo integrato di Electron potresti incorrere in un errore
come questo:
```
> require('electron').webFrame.setZoomFactor(1.0)
Uncaught TypeError: Cannot read property 'setZoomLevel' of undefined
```
Ciò è causato dal fatto che hai il [modulo npm `electron`][electron-module]
installato localmente o globalmente, e ciò sovrascrive il modulo integrato di
Electron.
Per verificare che tu stia usando il modulo integrato corretto, puoi stampare a
schermo il percorso del modulo `electron`:
```javascript
console.log(require.resolve('electron'))
```
e dopodiché controlla che sia in questa forma
```
"/percorso/Electron.app/Contents/Resources/atom.asar/renderer/api/lib/exports/electron.js"
```
Se dovesse essere simile a `node_modules/electron/index.js`, allora devi
rimuovere il modulo npm `electron` oppure rinominarlo.
```bash
npm uninstall electron
npm uninstall -g electron
```
Tuttavia, se usi il modulo integrato e continui a ricevere questo errore è molto
probabile che tu stia usando il modulo in un processo sbagliato. Per esempio
`electron.app` può essere usato solo nel processo principale, mentre
`electron.webFrame` è disponibile solo nel processo di rendering.
[memory-management]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management
[variable-scope]: https://msdn.microsoft.com/library/bzt2dkta(v=vs.94).aspx
[electron-module]: https://www.npmjs.com/package/electron
[storage]: https://developer.mozilla.org/en-US/docs/Web/API/Storage
[local-storage]: https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
[session-storage]: https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage
[indexed-db]: https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API

View file

@ -0,0 +1,246 @@
# Guida allo Stile della Documentazione
Queste sono le linee guida per la stesura della documentazione di Electron.
## Titoli
* Ogni pagina deve avere un singolo titolo di livello `#` all'inizio.
* I capitoli di una stessa pagina devono avere titoli di livello `##`.
* I sotto-capitoli devono avere un numero crescente di `#` a seconda del loro
livello di annidamento.
* Tutte le parole nel titolo della pagina devono iniziare con la lettera
maiuscola, a eccezione delle congiunzioni come "di" ed "e".
* Solo la prima lettera della prima parola di un capitolo deve essere maiuscola.
Prendendo `Guida Rapida` come esempio:
```markdown
# Guida Rapida
...
## Processo principale
...
## Processo di rendering
...
## Esegui la tua app
...
### Crea una distribuzione
...
### Electron scaricato manualmente
...
```
Esistono eccezioni a queste regole per quanto riguarda la documentazione delle
API.
## Regole markdown
* Usa `bash` invece di `cmd` nei blocchi di codice (per via della diversa
evidenziazione della sintassi).
* Le linee devono essere lunghe al massimo 80 caratteri.
* Non annidare le liste per più di due livelli (per via del rendering compiuto
da markdown).
* Tutti i blocchi di codice `js` o `javascript` sono analizzati con
[standard-markdown](http://npm.im/standard-markdown).
## Documentazione API
Le regole seguenti vengono applicate solo alla documentazione delle API.
### Titolo della pagina
Ogni pagina deve avere come titolo il nome dell'oggetto a cui si riferisce
seguito da `require('electron')`, come ad esempio `BrowserWindow`, `autoUpdater`
e `session`.
Sotto il titolo della pagina deve esserci una descrizione della lunghezza di una
linea che comincia con `>`.
Prendendo `session` come esempio:
```markdown
# session
> Gestisce le sessioni browser, cookies, cache, impostazioni proxy, etc.
```
### Metodi ed eventi dei moduli
Per i moduli che non sono classi, i loro metodi ed eventi devono essere elencati
sotto i capitoli `## Metodi` ed `## Eventi`.
Prendendo `autoUpdate` come esempio:
```markdown
# autoUpdater
## Eventi
### Evento: 'error'
## Metodi
### `autoUpdater.setFeedURL(url[, requestHeaders])`
```
### Classi
* Le classi API e le classi che sono parte di moduli devono essere elencate
sotto un capitolo `## Classe: NomeDellaClasse`.
* Una pagina può avere più classi.
* I costruttoi devono essere elencati con un titolo di livello `###`.
* I [Metodi Statici](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static) (Inglese) devono essere elencati sotto un capitolo
`### Metodi Statici`.
* I [Metodi di Istanza](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes#Prototype_methods) (Inglese) devono essere elencati sotto un
capitolo `### Metodi di Istanza`.
* Gli Eventi di Istanza devono essere elencati sotto un capitolo
`## Eventi di Istanza`.
* Le Proprietà di Istanza devono essere elencate sotto un capitolo `## Proprietà di Istanza`.
Prendendo le classi `Session` e `Cookies` come esempi:
```markdown
# session
## Metodi
### session.fromPartition(partition)
## Proprietà
### session.defaultSession
## Classe: Session
### Eventi di Istanza
#### Evento: 'will-download'
### Metodi di Istanza
#### `ses.getCacheSize(callback)`
### Proprietà di Istanza
#### `ses.cookies`
## Classe: Cookies
### Metodi di Istanza
#### `cookies.get(filter, callback)`
```
### Metodi
Il capitolo dei metodi deve seguire il seguente formato:
```markdown
### `objectName.methodName(required[, optional]))`
* `required` String
* `optional` Integer (optional)
...
```
Il titolo può essere di livello `###` o `####` a seconda che sia un metodo di
un modulo o di una classe.
Per i moduli, il `nomeOggetto` è il nome del modulo. Per le classi, deve essere
il nome dell'istanza della classe e non deve essere lo stesso del modulo.
Per esempio, i metodi della classe `Session` sotto il modulo `session` devono
usare `ses` come `nomeOggetto`.
I parametri opzionali sono caratterizzati sia dalle parentesi quadre `[]` che
circondano il parametro, sia dalla virgola obbligatoria in caso il parametro
ne segua un altro.
```
required[, optional]
```
Sotto ogni metodo si trovano informazioni dettagliate su ogni parametro. Il tipo
di parametro è caratterizzato da uno dei tipi di dati comuni:
* [`String`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)
* [`Number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)
* [`Object`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)
* [`Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)
* [`Boolean`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)
* O da un tipo di dati personalizzato come [`WebContent`](api/web-content.md) di
Electron
Se un parametro o un metodo sono limitati a certe piattaforme, esse sono
segnalate, dopo il tipo di dato, attraverso l'uso di una lista di elementi in
corsivo e delimitati da uno spazio. I valori possono essere `macOS`,
`Windows` e `Linux`.
```markdown
* `animate` Boolean (optional) _macOS_ _Windows_
```
I parametri di tipo `Array` devono specificare nella descrizione sottostante
che elementi può contenere l'array.
La descrizione per i parametri di tipo `Funzione` dovrebbero rendere chiaro come
sia possibile chiamarli, ed elencare i tipi di parametri che vi saranno passati.
### Eventi
Il capitolo degli eventi deve seguire il seguente formato:
```markdown
### Evento: 'wake-up'
Ritorna:
* `time` String
...
```
Il titolo può essere di livello `###` o `####` a seconda che sia di un evento di
un modulo o di una classe.
I parametri di un evento seguono le stesse regole di quelli dei metodi.
### Proprietà
Il capitolo delle proprietà deve seguire il seguente formato:
```markdown
### session.defaultSession
...
```
Il titolo può essere di livello `###` o `####` a seconda che sia una proprietà
di un metodo o di una classe.
## Traduzioni della Documentazione
Le traduzioni della documentazione di Electron si trovano nella cartella
`docs-translations`.
Per aggiungere un altro set (o set parziale):
* Crea una sottocartella che abbia come nome il codice della lingua.
* Traduci i file.
* Aggiorna il file README.md dentro la cartella della lingua in modo che
reindirizzi ai file che hai tradotto.
* Aggiungi un collegamento alla cartella della traduzione nel [README](https://github.com/electron/electron#documentation-translations) principale di Electron.
Nota che tutti i file nella cartella `docs-translations` devono includere solo
i file tradotti. I file originali in inglese non devono essere copiati lì.