Skip to content

Commit b17c9d3

Browse files
fine traduzione iniziale
1 parent 6c0d96a commit b17c9d3

File tree

2 files changed

+33
-33
lines changed

2 files changed

+33
-33
lines changed

8-web-components/5-slots-composition/article.md

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ Restituisce questo flattened DOM con due elementi dentro `<slot name="username">
156156

157157
## Slot fallback content
158158

159-
Se inseriamo qualcosa dentro uno `<slot>`, diverrà il contenuto di ripiego, quello "default". Il browser mostrerà questo, nel caso in cui non vi fossero contenuti corrispondenti nel light DOM.
159+
Se inseriamo qualcosa dentro uno `<slot>`, quest'ultimo rappresenterà il contenuto di ripiego, cioè quello "predefinito". Nel caso in cui non vi fossero contenuti corrispondenti nel light DOM, sarà questo il contenuto mostrato dal browser.
160160

161161
Per esempio, in questo pezzo di shadow DOM, verrà visualizzato `Anonymous` se non ci sono `slot="username"` nel light DOM.
162162

@@ -322,9 +322,9 @@ Certamente possiamo andare ad aggiungere più funzionalità: eventi metodi e via
322322

323323
E se volessimo aggiungere e rimuovere elementi del menù dinamicamente?
324324

325-
**Il browser monitora dgli slots e aggiorna la visualizzazione all'inserimento o rimozione di elementi slottati.**
325+
**Il browser monitora gli slots e aggiorna la visualizzazione all'inserimento o rimozione di elementi slottati.**
326326

327-
Inoltre, dal momento che i nodi del light DOM non vengono copiati, ma solo visualizzati negli slots, le modifiche al loro interno divengono immmediatamente visibili.
327+
Inoltre, dal momento che i nodi del light DOM non vengono copiati, ma solo visualizzati negli slots, le modifiche al loro interno saranno immediatamente visibili.
328328

329329
Quindi non dobbiamo fare nulla per aggiornare la visualizzazione. Ma se il codice del componente vuole avere dei dettagli sulla modifica degli slots, allora si potrà usare l'evento `slotchange`.
330330

@@ -374,7 +374,7 @@ In questo esempio, ci sono due eventi `slotchange`:
374374

375375
Norta bene: non ci sono eventi `slotchange` dopo 2 secondi, quando viene modificato il contenuto di `slot="title"`. Questo perché non ci sono modifiche slot. Abbiamo modificato il contenuto dentro l'elemento slotted, che è tutt'altra cosa.
376376

377-
Se volessimo tenere traccia delle modifiche interne del light DOM tramite JavaScript, si potrebbe anche usare un meccanismo più generico: I [MutationObserver](info:mutation-observer).
377+
Volendo tenere traccia delle modifiche interne al light DOM tramite JavaScript, potremmo anche usare un meccanismo più generico come quello dei [MutationObserver](info:mutation-observer).
378378

379379
## Slot API
380380

@@ -383,18 +383,18 @@ Infine, citiamo i metodi JavaScript inerenti gli slots.
383383
Come già visto, JavaScript osserva il DOM "effettivo", privo di flattening. Ma, se lo shadow tree ha il `{mode: 'open'}`, possiamo vedere quali elementi vengono assegnati a uno slot e, vice versa, lo slot con l'elemento al suo interno:
384384

385385
- `node.assignedSlot` -- restiuisce l'elemento `<slot>` a cui è assegnato il `node`.
386-
- `slot.assignedNodes({flatten: true/false})` -- nodi DOM, assegnati allo slot. L'opzione `flatten` è `false` di default. Se impostata explicitly set to `true`, then it looks more deeply into the flattened DOM, returning nested slots in case of nested components and the fallback content if no node assigned.
387-
- `slot.assignedElements({flatten: true/false})` -- DOM elements, assigned to the slot (same as above, but only element nodes).
386+
- `slot.assignedNodes({flatten: true/false})` -- nodi DOM, assegnati allo slot. L'opzione `flatten` è `false` di default. Se impostata esplicitamente a `true`, analizzerà più in profondità nel flattened DOM, restituendo gli slot annidati in caso di componenti annidati o il fallsback content se non vi fossero nodi assegnati.
387+
- `slot.assignedElements({flatten: true/false})` -- Elementi DOM, assegnati allo slot (come sopra, ma solo elementi nodi).
388388

389-
These methods are useful when we need not just show the slotted content, but also track it in JavaScript.
389+
Questi metodi sono utili quando dobbiamo non solo mostrare lo sloetted content, ma anche tracciarli in JavaScript.
390390

391-
For example, if `<custom-menu>` component wants to know, what it shows, then it could track `slotchange` and get the items from `slot.assignedElements`:
391+
Ad esempio, se il componente `<custom-menu>` component vuole sapere, cosa mostra, può tracciare `slotchange` ed ottenere gli elementi da `slot.assignedElements`:
392392

393393
```html run untrusted height=120
394394
<custom-menu id="menu">
395-
<span slot="title">Candy menu</span>
396-
<li slot="item">Lollipop</li>
397-
<li slot="item">Fruit Toast</li>
395+
<span slot="title">Menù dei dolciumi</span>
396+
<li slot="item">Lecca-lecca</li>
397+
<li slot="item">Toast alla frutta</li>
398398
</custom-menu>
399399

400400
<script>
@@ -408,7 +408,7 @@ customElements.define('custom-menu', class extends HTMLElement {
408408
<ul><slot name="item"></slot></ul>
409409
</div>`;
410410
411-
// triggers when slot content changes
411+
// viene generato quando cambia il contenuto dello slot
412412
*!*
413413
this.shadowRoot.firstElementChild.addEventListener('slotchange', e => {
414414
let slot = e.target;
@@ -421,37 +421,37 @@ customElements.define('custom-menu', class extends HTMLElement {
421421
}
422422
});
423423
424-
// items update after 1 second
424+
// gli elementi vengono aggiornati dopo 1 secondo
425425
setTimeout(() => {
426426
menu.insertAdjacentHTML('beforeEnd', '<li slot="item">Cup Cake</li>')
427427
}, 1000);
428428
</script>
429429
```
430430

431431

432-
## Summary
432+
## Riepilogo
433433

434-
Usually, if an element has shadow DOM, then its light DOM is not displayed. Slots allow to show elements from light DOM in specified places of shadow DOM.
434+
Generalmente, se un elemento ha lo shadow DOM, il suo light DOM non viene mostrato. Gli slots permettono di mostrare gli elementi del light DOM ne punti contrassegnati dello shadow DOM.
435435

436-
There are two kinds of slots:
436+
Esistono due tipi di slots:
437437

438-
- Named slots: `<slot name="X">...</slot>` -- gets light children with `slot="X"`.
439-
- Default slot: the first `<slot>` without a name (subsequent unnamed slots are ignored) -- gets unslotted light children.
440-
- If there are many elements for the same slot -- they are appended one after another.
441-
- The content of `<slot>` element is used as a fallback. It's shown if there are no light children for the slot.
438+
- Named slots: `<slot name="X">...</slot>` -- ottiene i figli light tramite `slot="X"`.
439+
- Default slot: il primot `<slot>` senza un nome ( i successivi elementi privi di nome vengono ignorati) -- ottiene i figli light unslotted.
440+
- Se ci sono più elementi per uno stesso slot -- vengono accodati uno dopo l'altro.
441+
- Il contenuto dell'elemento `<slot>` viene usato come un ripeigo (fallback). Viene mostrato se non ci sono figli light per un determinato slot.
442442

443-
The process of rendering slotted elements inside their slots is called "composition". The result is called a "flattened DOM".
443+
Il processo di rendering degli elementi slotted all'interno dei loro slots viene chiamato "composition". Il risultato viene soprannominato "flattened DOM".
444444

445-
Composition does not really move nodes, from JavaScript point of view the DOM is still same.
445+
La Composition non sposta realmente i nodi, dal punto di vista di JavaScript il DOM rimane immutato.
446446

447-
JavaScript can access slots using methods:
448-
- `slot.assignedNodes/Elements()` -- returns nodes/elements inside the `slot`.
449-
- `node.assignedSlot` -- the reverse property, returns slot by a node.
447+
JavaScript può accedere agli slots tramite:
448+
- `slot.assignedNodes/Elements()` -- restituisce i nodi o gli elementi dentro lo `slot`.
449+
- `node.assignedSlot` -- la proprietà inversa, restiuisce lo slot partendo dal nodo.
450450

451-
If we'd like to know what we're showing, we can track slot contents using:
452-
- `slotchange` event -- triggers the first time a slot is filled, and on any add/remove/replace operation of the slotted element, but not its children. The slot is `event.target`.
453-
- [MutationObserver](info:mutation-observer) to go deeper into slot content, watch changes inside it.
451+
Se volessimo conoscere cosa stiamo mostrando, possiamo tracciare il contenuto degli slot tramite:
452+
- `slotchange` evento -- viene generato la prima volta che uno slot viene viene riempito, e per ogni operazione di aggiunta/rimozione degli elementi slotted, ma non i loro figli. Lo slot sarà `event.target`.
453+
- [MutationObserver](info:mutation-observer) se vogliamo andare in profondità all'interno dello slot content, e tenere traccia dei cambiamenti all'interno di essi.
454454

455-
Now, as we know how to show elements from light DOM in shadow DOM, let's see how to style them properly. The basic rule is that shadow elements are styled inside, and light elements -- outside, but there are notable exceptions.
455+
Ora, dal momento che conosciamo come mostrare gli elementi dal light DOM allo shadow DOM, possiamo vedere come stilizzarli in maniera consona. La regola di base è che gli elementi shadow vegono stilizzati dentro, mentre gli elementi light esternamente, ma ci sono delle eccezioni degne di nota.
456456

457-
We'll see the details in the next chapter.
457+
Lo vedremo in dettaglio nel prossimo capitolo.

8-web-components/5-slots-composition/menu.view/index.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@
4747
</script>
4848

4949
<custom-menu>
50-
<span slot="title">Candy menu</span>
51-
<li slot="item">Lollipop</li>
52-
<li slot="item">Fruit Toast</li>
50+
<span slot="title">Menù dei dolciumi</span>
51+
<li slot="item">Lecca-lecca</li>
52+
<li slot="item">Toast alla frutta</li>
5353
<li slot="item">Cup Cake</li>
5454
</custom-menu>

0 commit comments

Comments
 (0)