

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Utilizzare gli helper modello di messaggio
<a name="message-template-helpers"></a>

Con i modelli di messaggio di Amazon Connect, i clienti possono creare modelli di messaggio riutilizzabili basati sul linguaggio Handlebars.js. Gli helper offrono una varietà di funzionalità come la formattazione di un prezzo nella valuta di una regione specifica o l'aggiunta di una località in base al fuso orario. Un helper può utilizzare una stringa o un numero intero specifico per il valore o una variabile di messaggio Amazon Connect specifica.

Di seguito sono elencate le categorie di helper, descritte nelle sezioni seguenti.

## Helper predefiniti
<a name="defaulthelpers"></a>

Questa sezione descrive gli helper **integrati** forniti da Handlebars. 

**Importante**  
L’helper `with` integrato fornito da Handlebars non è supportato. Tuttavia, tutti gli altri helper di Handlebars sono completamente supportati. Per un elenco completo, consulta la sezione relativa agli [helper integrati](https://handlebarsjs.com/guide/builtin-helpers.html) nel sito [handlebarsjs.com](https://handlebarsjs.com). 

 Di seguito sono descritti gli helper integrati:
+ `each`: itera un elenco.
**Nota**  
La dimensione massima dell'elenco è di 15 elementi.
+ `if`: valuta un'istruzione.

*each*  
Itera un elenco. Questo helper utilizza solo un blocco di istruzioni. Facoltativamente puoi:   
+ Passare `@index` nella richiesta per fare riferimento all'indice del loop corrente.
+ Usare l'helper `this` per fare riferimento all'elemento iterato corrente.
+ Restituire la risposta dell'helper in un elenco mediante il tag `<li>`.
**Utilizzo**  
`{{#each {{value}}}}`  
Il valore alla posizione `{{@index}}` è `{{this}}`.  
`{{else}}`  
La condizione è false.  
`{{/each}}`  
`each` deve essere preceduto dal simbolo di sterlina (`#`) e seguito dal simbolo di chiusura `{{/each}}` nel blocco di istruzioni.  
**Esempio**  
In questo esempio, `each` viene utilizzato per restituire l'elenco dei colori preferiti di un utente. Per `false`, viene restituita un'istruzione `else`. Se la richiesta è simile alla seguente:  
`{{#each User.UserAttributes.FavoriteColors}}`  
`<li>{{this}}</li>`  
`{{else}}`  
{{You have no favorite colors.}}  
`{{/each}}` restituisce  
+ {{red}}
+ {{blue}}
+ {{yellow}}
per un'istruzione true.

*if*  
Valuta se un'istruzione è vera (true) e restituisce una risposta basata sulla valutazione.   
**Utilizzo**  
`{{#if {{value}}}}`  
Il valore non è indefinito  
`{{else}}`  
Il valore è indefinito  
`{{/if}}`  
`if` deve essere preceduto dal simbolo di sterlina (`#`) e seguito dal simbolo di chiusura `{{/if}}` nel blocco di istruzioni.  
**Esempio**  
In questo esempio, l'helper `if` viene utilizzato per valutare se si tratta del nome di un utente. Se viene trovato il nome, viene restituito un messaggio di saluto che riporta il nome dell'utente nella risposta. In caso contrario, l'istruzione `else` restituisce un saluto alternativo.  
`{{#if User.UserAttributes.FirstName.[0]}}`  
`{{Hello}} {{User.UserAttributes.FirstName.[0]}}{{,}}`  
`{{else}}`  
{{Hello,}}  
`{{/if}}`  
restituisce {{Hello, Jane}} se l'`if`helper è vero.

## Helper condizionali
<a name="conditionhelpers"></a>

Questa sezione descrive gli helper **condizionali**. 

Gli helper condizionali possono essere usati su un'unica riga o in un blocco di istruzioni. È possibile personalizzare la risposta indipendentemente dal metodo helper utilizzato. È possibile passare helper condizionali aggiuntivi sia all'interno di istruzioni a riga singola che a blocchi di istruzioni. I seguenti helper condizionali mostrano l'utilizzo prima per una singola riga e poi per un blocco di istruzioni utilizzando una clausola `else` facoltativa. Di seguito sono descritti gli helper condizionali:
+ `and`: confronta tutti gli elementi passati per verificare se sono uguali.
+ `eq`: verifica se due elementi sono uguali.
+ `gt`: verifica se un elemento è maggiore di un altro.
+ `gte`: verifica se un elemento è maggiore o uguale a un altro.
+ `if`: valuta se un elemento è vero.
+ `lt`: verifica se un elemento è inferiore a un altro.
+ `lte`: verifica se un elemento è minore o uguale a un altro.
+ `neq`: valuta se due elementi non sono uguali.
+ `not`: inverte la risposta di un’operazione booleana.
+ `or`: confronta se alcuni degli elementi dell'argomento sono uguali.

*and*  
Confronta se *tutti* gli elementi passati in un argomento sono uguali e quindi restituisce la risposta in base al risultato. Questo helper può essere utilizzato per valori non booleani. È necessario passare almeno due elementi per la condizione.  
**Utilizzo**  
+ `{{and {{valuea}} {{valueb}} {{valuec}} {{valued}} yes='{{y}}' no='{{n}}'}}`

  È possibile sostituire {{y}} e {{n}} con altri valori, ad esempio {{yes}} and{{no}}, o qualsiasi altra stringa che si desidera restituire, a seconda della condizione.
+ `{{#and {{valuea}} {{valueb}}}}`

  La condizione è true.

  `{{else}}`

  La condizione è false.

  `{{/and}}`

  `and` deve essere preceduto dal simbolo di sterlina (`#`) e seguito dal simbolo di chiusura `{{/and}}` nel blocco di istruzioni.
**Esempio**  
In questo esempio, `eq` viene utilizzato all'interno del blocco di istruzioni `and` per determinare se entrambe le stringhe passate per gli attributi `Location.City ` e `Location.Country` sono true. Se entrambe le condizioni sono uguali, viene restituita un'istruzione true. Se uno di questi attributi è false, viene restituita un'istruzione `else`.  
`{{#and (eq Location.City "Los Angeles") (eq Location.Country "US")}}`  
{{You live in Los Angeles and the US.}}  
`{{else}}`  
{{You don’t live in Los Angeles and the US.}}  
`{{/and}}`

*eq*  
Verifica se due elementi sono uguali o se il valore di un elemento è uguale a una stringa passata.  
**Utilizzo**  
+ `{{eq {{valuea}} {{valueb}} yes='{{y}}' no='{{n}}'}}`

  È possibile sostituire {{y}} e {{n}} con altri valori, ad esempio {{yes}} and{{no}}, o qualsiasi altra stringa che si desidera restituire, a seconda della condizione.
+ `{{#eq {{valuea}} {{valueb}}}}`

  La condizione è true.

  `{{else}}`

  La condizione è false.

  `{{/eq}}`

  `eq` deve essere preceduto dal simbolo di sterlina (`#`) e seguito dal simbolo di chiusura `{{/eq}}` nel blocco di istruzioni.
**Esempio**  
In questo esempio, `eq` viene utilizzato per valutare se il valore di `User.UserAttributes.FavoriteColors.[0]` è{{Red}}. Se la risposta è `true`, viene restituita un'istruzione true. Se la risposta è `false`, viene restituita un'istruzione `else`.  
`{{#eq User.UserAttributes.FavoriteColors.[0] "{{red}}"}}`  
{{Your favorite color is red.}}  
`{{else}}`  
{{You don't like red.}}  
`{{/eq}}`

*gt*  
Verifica se il valore di un elemento è maggiore di un altro.   
**Utilizzo**  
+ `{{gt {{valuea}} {{valueb}} yes='{{y}}' no='{{n}}'}}`

  È possibile sostituire {{y}} e {{n}} con altri valori, come {{yes}} and{{no}}, o qualsiasi altra stringa che si desidera restituire, a seconda della condizione.
+ `{{#gt {{valuea}} {{valueb}}}}`

  La condizione è true.

  `{{else}}`

  La condizione è false.

  `{{/gt}}`

  `gt` deve essere preceduto dal simbolo di sterlina (`#`) e seguito dal simbolo di chiusura `{{/gt}}` nel blocco di istruzioni.
**Esempio**  
In questo esempio, l'helper confronta il valore dell'`User.UserAttributes.UserAge.[0]`attributo con una stringa{{17}}, per verificare se l'età dell'utente è maggiore di 17 anni. Se la risposta è `true`, viene restituita un'istruzione true. Se la risposta è `false`, viene restituita un'istruzione `else`.  
`{{#gt User.UserAttributes.UserAge.[0] "{{17}}"}}`  
{{You are old enough to rent a car.}}  
`{{else}}`  
{{You are not old enough to rent a car.}}  
`{{/gt}}`

*gte*  
Verifica se il valore di un elemento è maggiore o uguale a un altro.  
`Usage`  
+ `{{gte {{valuea}} {{valueb}} yes='{{y}}' no='{{n}}'}}`

  È possibile sostituire {{y}} e {{n}} con altri valori, ad esempio {{yes}} and{{no}}, o qualsiasi altra stringa che si desidera restituire, a seconda della condizione.
+ `{{#gte {{valuea}} {{valueb}}}}`

  La condizione è true.

  `{{else}}`

  La condizione è false.

  `{{/gte}}`

  `get` deve essere preceduto dal simbolo di sterlina (`#`) e seguito dal simbolo di chiusura `{{/gte}}` nel blocco di istruzioni.
**Esempio**  
In questo esempio, l'helper confronta l'`User.UserAttributes.UserAge.[0]`attributo con una stringa{{18}}, per verificare se l'età dell'utente è maggiore o uguale a 18 anni. Se la risposta è `true`, viene restituita un'istruzione true. Se la risposta è `false`, viene restituita un'istruzione `else`.  
`{{#gte User.UserAttributes.UserAge.[0] "{{18}}"}}`  
{{You are old enough to rent a car.}}  
`{{else}}`  
{{You are not old enough to rent a car.}}  
`{{/gte}}`

*if*  
Valuta se un'istruzione è vera (true) e restituisce una risposta basata sulla valutazione.  
**Utilizzo**  
+ `{{#if {{value}}}}`

  È possibile sostituire {{y}} e {{n}} con altri valori, ad esempio {{yes}} and{{no}}, o qualsiasi altra stringa che si desidera restituire, a seconda della condizione.
+ `{{#if {{value}}}}`

  La condizione è true.

  `{{else}}`

  La condizione è false.

  `{{/if}}`

  `if` deve essere preceduto dal simbolo di sterlina (`#`) e seguito dal simbolo di chiusura `{{/if}}` nel blocco di istruzioni.
**Esempio**  
In questo esempio, l'helper viene utilizzato per valutare se si tratta del nome di un utente. Se viene trovato il nome, viene restituito un messaggio di saluto che riporta il nome dell'utente nella risposta. In caso contrario, l'istruzione else restituisce un saluto alternativo.  
`{{#if User.UserAttributes.FirstName.[0]}}`  
{{Hello}} `{{User.UserAttributes.FirstName.[0]}}`{{,}}  
`{{else}}`  
{{Hello,}}  
`{{/if}}`  
restituisce {{Hello Jane,}} se l'helper è vero.

*lt*  
Verifica se il valore di un elemento è minore del valore di un altro.  
**Utilizzo**  
+ `{{lt {{valuea}} {{valueb}} yes='{{y}}' no='{{n}}'}}`

  È possibile sostituire {{y}} e {{n}} con altri valori, ad esempio {{yes}} and{{no}}, o qualsiasi altra stringa che si desidera restituire, a seconda della condizione.
+ `{{#lt {{valuea}} {{valueb}}}}`

  La condizione è true.

  `{{else}}`

  La condizione è false.

  `{{/lt}}`

  `lt` deve essere preceduto dal simbolo di sterlina (`#`) e seguito dal simbolo di chiusura `{{/lt}}` nel blocco di istruzioni.
**Esempio**  
In questo esempio, l'helper confronta l'`User.UserAttributes.UserAge.[0]`attributo con una stringa{{18}}, per verificare se l'età dell'utente è inferiore a 18 anni. Se la risposta è `true`, viene restituita un'istruzione true. Se la risposta è `false`, viene restituita un'istruzione `else`.  
`{{#lt User.UserAttributes.UserAge.[0] "{{18}}"}}`  
{{You are not old enough to rent a car.}}  
`{{else}}`  
{{You are old enough to rent a car.}}  
`{{/lt}}`

*lte*  
Verifica se il valore di un elemento è minore o uguale a un altro.  
**Utilizzo**  
+ `{{lte {{valuea}} {{valueb}} yes='{{y}}' no='{{n}}'}}`

  È possibile sostituire {{y}} e {{n}} con altri valori, ad esempio {{yes}} and{{no}}, o qualsiasi altra stringa che si desidera restituire, a seconda della condizione.
+ `{{#lte {{valuea}} {{valueb}}}}`

  La condizione è true.

  `{{else}}`

  La condizione è false.

  `{{/lte}}`

  `lte` deve essere preceduto dal simbolo di sterlina (`#`) e seguito dal simbolo di chiusura `{{/lte}}` nel blocco di istruzioni.
**Esempio**  
In questa istruzione di blocco, l'helper confronta l'`User.UserAttributes.UserAge.[0]`attributo con una stringa{{17}}, per verificare se l'età dell'utente è pari o inferiore a 17 anni. Se la risposta è `true`, viene restituita un'istruzione true. Se la risposta è `false`, viene restituita un'istruzione `else`.  
`{{#lte User.UserAttributes.Age.[0] "{{17}}"}}`  
{{You are not old enough to rent a car.}}  
`{{else}}`  
{{You are old enough to rent a car.}}  
`{{/lte}}`

*neq*  
Verifica se due elementi *non* sono uguali.  
**Utilizzo**  
+ `{{neq {{valuea}} {{valueb}} yes='{{y}}' no='{{n}}'}}`

  È possibile sostituire {{y}} e {{n}} con altri valori, ad esempio {{yes}} and{{no}}, o qualsiasi altra stringa che si desidera restituire, a seconda della condizione.
+ `{{#neq {{valuea}} {{valueb}}}}`

  La condizione è true.

  `{{else}}`

  La condizione è false.

  `{{/neq}}`

  `neq` deve essere preceduto dal simbolo di sterlina (`#`) e seguito dal simbolo di chiusura `{{/neq}}` nel blocco di istruzioni.
**Esempio**  
In questo blocco di istruzioni, l’attributo `User.UserAttributes.FavoriteColors.[0]` viene confrontato con una stringa (`{{Red}}`). Se la risposta è `true`, viene restituita un'istruzione true. Se la risposta è `false`, viene restituita un'istruzione `else`.  
`{{#neq User.UserAttributes.Favorite.Colors.[0] "{{red}}"}}`  
{{You do not like red.}}  
`{{else}}`  
{{You like red.}}  
`{{/neq}}`

*not*  
Inverte la risposta di un'operazione booleana, in modo che se `not` è un confronto positivo, viene restituita un'istruzione `true`. Se la risposta è false, viene restituita un'istruzione else.   
**Utilizzo**  
+ `{{not {{value}} yes='{{y}}' no='{{n}}'}}`

  È possibile sostituire {{y}} e {{n}} con altri valori, ad esempio {{yes}} and{{no}}, o qualsiasi altra stringa che si desidera restituire, a seconda della condizione.
+ `{{#not {{value}}}}`

  La condizione è true.

  `{{else}}`

  La condizione è false.

  `{{/not}}`

  `not` deve essere preceduto dal simbolo di sterlina (`#`) e seguito dal simbolo di chiusura `{{/not}}` nel blocco di istruzioni.
**Esempio**  
In questa istruzione di blocco, l'`User.UerAttributes.FavoriteColors.[0]`attributo viene confrontato con una stringa {{red}} utilizzando l'`eq`helper. L'helper `not` restituisce quindi l'opposto dell'helper `eq`. Se la risposta restituisce un colore diverso da quello{{red}}, viene restituita `true` un'istruzione. Se la risposta viene restituita{{red}}, viene restituita un'`else`istruzione che indica una dichiarazione falsa.  
`{{#not (eq User.UserAttributes.Favorite.Colors.[0] "{{red}}")}}`  
{{You do not like red.}}  
`{{else}}`  
{{You like red.}}  
`{{/not}}`  
**Esempio**  
In questo esempio:   
`{{not (eq User.UserAttributes.FavoriteColors.[0] "{{red}}")}}`  
restituisce falso se lo `User.UserAttributes.FavoriteColors.[0]` è{{red}}.

*or*  
Confronta se *uno qualsiasi* degli elementi dell'argomento è uguale e quindi restituisce una risposta in base al risultato. Questo helper può essere utilizzato per valori non booleani.  
**Utilizzo**  
+ `{{or {{valuea}} {{valueb}} {{valuec}} {{valued}} yes='{{y}}' no='{{n}}'}}`

  È possibile sostituire {{y}} e {{n}} con altri valori, ad esempio {{yes}} and{{no}}, o qualsiasi altra stringa che si desidera restituire, a seconda della condizione. È necessario passare almeno due elementi per la condizione.
+ `{{#or {{valuea}} {{valueb}}}}`

  La condizione è true.

  `{{else}}`

  La condizione è false.

  `{{/or}}`

  `or` deve essere preceduto dal simbolo di sterlina (`#`) e seguito dal simbolo di chiusura `{{/or}}` nel blocco di istruzioni.
**Esempio**  
In questo blocco di istruzioni `or`, vengono confrontate due stringhe per l'attributo `Location.City` utilizzando l'helper `eq`. Se uno degli attributi è `true`, viene restituita un'istruzione true. Se una o più risposte sono `false`, viene restituita un'istruzione `else`.  
`{{#or (eq Location.City "Los Angeles") (eq Location.City "Seattle")}}`  
{{You live on the West Coast of the United States.}}  
`{{else}}`  
{{You do not live on the West Coast of the United States.}}  
`{{/or}}`

## Helper stringa
<a name="stringhelpers"></a>

Questa sezione descrive i seguenti helper **stringa**:
+ `abbreviate`: tronca un valore.
+ `capitalize`: converte in maiuscolo ogni parola tra spazi.
+ `capitalizeFirst`: converte in maiuscolo il primo carattere di un valore.
+ `center`: centra un valore.
+ `cut`: taglia un valore.
+ `dateFormat`: imposta lo stile della data.
+ `inflect`: restituisce una stringa singolare o plurale in base al conteggio.
+ `join`: unisce un array, un iteratore o un oggetto iterabile.
+ `ljust`: giustifica un valore al margine sinistro.
+ `lower`: converte un valore in lettere minuscole.
+ `now`: stampa la data corrente.
+ `ordinalize`: ordina un valore numerico.
+ `replace`: sostituisce una stringa con un'altra.
+ `rjust`: giustifica un valore al margine destro.
+ `slugify`: converte un valore in minuscolo e rimuove i caratteri non verbali, converte gli spazi in trattini e rimuove gli spazi finali.
+ `stripTags`: elimina i tag [X]HTML da un valore.
+ `substring`: restituisce una nuova stringa come sottostringa di un valore passato.
+ `upper`: converte il valore passato in lettere maiuscole.
+ `yesno`: sostituisce true, false e no con Yes, No e Maybe.

*abbreviate*  
Tronca un valore se supera il numero specificato. Gli spazi sono inclusi nel conteggio della lunghezza. Nella risposta vengono visualizzati i puntini di sospensione per indicare un valore troncato. I puntini di sospensione contano ai fini del valore troncato nella risposta. Questo tipo di helper è utile in presenza di una tabella di grandi dimensioni, ma di uno spazio minimo. Il troncamento dei valori in una cella fa sì che la tabella abbia un aspetto più uniforme.  
**Utilizzo**  
 `{{abbreviate {{value}} {{X}}}}`, sostituendo {{X}} con un valore numerico che indica il numero di caratteri da conservare. I numeri negativi non sono supportati.  
**Esempio**  
In questo esempio, `abbreviate` viene utilizzato per troncare `User.UserAttributes.LastName.[0]` a sei (6) caratteri. La risposta include i puntini di sospensione, che vengono considerati ai fini del conteggio del totale di sei caratteri.  
`{{abbreviate {{User.UserAttributes.LastName.[0]}} {{6}}}}` restituisce  
{{Ale...}}if {{Alejandro}} è il valore di. `[0]`

*capitalize*  
Converte in maiuscolo ogni parola tra spazi.  
**Utilizzo**  
 `{{capitalize {{value}}}}`  
**Esempio**  
In questo esempio, a ogni parola dell'istruzione `Attributes.description.[0]` viene applicata la maiuscola iniziale.  
`{{capitalize {{Attributes.description.[0]}}}}`  
Se `Attributes.description.[0]` restituisce   
 {{My First Post}}, se il valore di `Attributes.description.[0]` è{{my first post}}.

*capitalizeFirst*  
Converte in maiuscolo il primo carattere di un valore.  
**Utilizzo**  
`{{capitalizeFirst {{value}}}}`  
**Esempio**  
In questo esempio, la maiuscola viene applicata al primo carattere della prima parola dell'istruzione `Attributes.description.[0]`.  
`{{capitalizeFirst {{Attributes.description.[0]}}}}` restituisce  
 {{My first post}}, se il valore di `{{Attributes.description.[0]}}` è{{my first post}}.  
**Esempio**

*center*  
Centra il valore in un campo di una data larghezza per il numero specificato. Facoltativamente, puoi passare un carattere da visualizzare come carattere di riempimento o lasciare vuoto il campo. Se non viene passato alcun carattere, viene utilizzato uno spazio.  
**Utilizzo**  
 `{{center {{value}} size={{X}} [pad=" "}}`, sostituendo {{X}} con un valore numerico.  
Se `pad` viene lasciato vuoto, nella risposta viene utilizzato uno spazio come carattere di riempimento. Se passi un carattere, il carattere specificato viene visualizzato in ogni spazio da riempire. I numeri negativi non sono supportati.  
**Esempio**  
In questo esempio, il valore di `Location.City ` è centrato con una dimensione di. {{19}}  
`{{center {{Location.City}} size={{19}}}}` restituisce   
{{"    Los Angeles    "}}Se lo `Location.City` è{{Los Angeles}}. Si noti che le virgolette visualizzate nell'output di esempio sono fornite solo per evidenziare il concetto trattato.

*cut*  
Rimuove il valore specificato da una stringa.   
**Utilizzo**  
 `{{cut {{value}} [{{" "}}]}}`, sostituendo lo spazio all'interno del parametro " " con il valore da tagliare. Se per il parametro non viene passato alcun valore, viene utilizzato uno spazio.   
**Esempio**  
Questo esempio rimuove la lettera {{e}} dall'`Location.City`attributo.  
`{{cut Location.City "{{e}}"}}` restituisce  
{{Los Angls}}se `[Location.City` è{{Los Angeles}}.

*dateFormat*  
Imposta lo stile di data predefinito per la data in qualsiasi risposta. Per un elenco del fuso orario IDs, vedere[https://en.wikipedia.org/wiki/List_of_tz_database_time_zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).  
**Utilizzo**  
`{{dateFormat date [inputFormat="format1"] [outputFormat="format2"] [tz=timeZoneId] [locale=localeID]}}`  
Il parametro `format` deve avere una delle seguenti impostazioni.  
+ "`full`": formato di data completo. Ad esempio: {{Tuesday, September 19, 2020}}
+ "`long`": formato di data esteso. Ad esempio: {{September 19, 2020}}
+ "`medium`": formato di data medio. Ad esempio: {{Sept 19, 2020}}
+ "`short`": formato di data breve. Ad esempio: {{9/19/20}}
+ "`pattern`": utilizza un formato di modello di data personalizzato. Per ulteriori informazioni sui modelli di data, consulta [https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html).
"`locale`": utilizza un formato di data basato su una determinata impostazione locale. Per ulteriori informazioni sulle impostazioni locali, consulta [https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-](https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-).  
Se un formato non viene passato, viene utilizzato `medium` per impostazione predefinita.   
**Esempio**  
In questo esempio, la `[0]` voce per `{{User.UserAttributes.StartDate.[0]}}` è **09/19/2020** e un messaggio viene inviato a un utente utilizzando il formato della `full` data basato sul fuso {{America/Los\_Angeles}} orario.  
`We can meet with you any time on ``{{dateFormat User.UserAttributes.StartDate.[0] inputFormat="MM/dd/yyyy" outputFormat="full" tz=America/Los_Angeles}}.` restituisce  
{{We can meet with you any time on Tuesday, September 19, 2020.}}

*inflect*  
Restituisce una stringa singolare o plurale in base al valore del conteggio.  
**Utilizzo**  
 `{{inflect {{count}} {{singular}} {{plural}} [includeCount=false]}}`  
+ Immetti le forme singolare e plurale della stringa che desideri passare all'argomento.
+ Se `includeCount` è impostato su `false`, nella risposta non viene restituito alcun conteggio. Se invece è impostato su `true`, `count` viene incluso nella risposta.
**Esempio**  
Gli esempi seguenti mostrano l'inflessione dell'acquisto di mele, con e senza `includeCount`.  
`Thank you for your purchase of {{inflect {{3}} {{apple}} {{apples}} includeCount={{false}}}}.` restituisce:  
{{Thank you for your purchase of apples.}}  
Se `includeCount` è impostato su `true`, la risposta è  
{{Thank you for your purchase of 3 apples.}}

*join*  
Unisce un array, un iteratore o un oggetto iterabile. La risposta restituisce un elenco, con ogni valore dell'elenco concatenato dal carattere passato in `join`. Ad esempio, è possibile separare i valori utilizzando una virgola (`,`). Il valore di questo helper deve essere un elenco senza un indice di posizione dell'attributo, ad esempio `Attributes.custom_attribute`.  
**Utilizzo**  
`{{join {{value}} " // " [prefix=""] [suffix=""]}}`  
**Esempio**  
In questo esempio, viene restituito un elenco di colori separati da una virgola e uno spazio (`", "`):  
`{{join {{Attributes.favorite_colors}} "{{, }}"}}` restituisce   
{{blue, red, green}}if `Attributes.favorite_colors` è l'elenco{{blue,red,green}}.

*ljust*  
Giustifica il valore al margine sinistro e aggiunge spazio a destra in modo che la lunghezza del valore corrisponda al numero. I numeri negativi non sono supportati.  
Facoltativamente, puoi passare un carattere da visualizzare per `pad` o lasciare vuoto il campo. Se lasci vuoto il valore `pad`, il valore predefinito è uno spazio.  
**Utilizzo**  
`{{ljust {{value}} size={{X}} [pad=" "]}}`, dove {{X}} è la lunghezza totale del valore, compreso lo spazio bianco.   
**Esempio**  
In questo esempio, un valore di giustificazione sinistra di {{15 }} viene applicato a Location.City.  
`{{ljust {{Location.City}} size={{15}}}}` restituisce  
{{"Los Angeles    "}}se il valore di è. `Location.City` {{Los Angeles}} Si noti che le virgolette visualizzate nell'output di esempio sono fornite solo per evidenziare il concetto trattato.

*lower*  
Converte un valore in formato tutto minuscolo.  
**Utilizzo**  
`{{lower {{value}}}}`  
**Esempio**  
In questo esempio, la voce `[0]` per `User.UserAttributes.LastName.[0]` viene modificata nel formato minuscolo.  
`{{lower {{User.UserAttributes.LastName.[0]}}}}` restituisce  
{{santos}}if {{Santos}} è il valore di`[0]`.

*ora*  
Stampa la data corrente in base all'ID del fuso orario passato. Per un elenco del fuso orario IDs, vedere[https://en.wikipedia.org/wiki/List_of_tz_database_time_zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).  
**Utilizzo**  
`{{now ["format"] [tz=timeZoneId] [locale=localeID]}}`  
Il parametro `format` deve avere una delle seguenti impostazioni.  
+ "`full`": formato di data completo. Ad esempio: {{Tuesday, September 19, 2020}}
+ "`long`": formato di data esteso. Ad esempio: {{September 19, 2020}}
+ "`medium`": formato di data medio. Ad esempio: 19 settembre 2020
+ "`short`": formato di data breve. Ad esempio, 19/9/20
+ "`pattern`": modello di data. Per ulteriori informazioni sui modelli di data, consulta [https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html). 
"`locale`": utilizza un formato di data basato su una determinata impostazione locale. Per ulteriori informazioni sulle impostazioni locali, consulta [https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-](https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-).  
Se un formato non viene passato, viene utilizzato `medium` per impostazione predefinita.  
**Esempio**  
In questo esempio, la data corrente di Los Angeles viene restituita con nel formato `medium`.  
`{{now "medium" tz={{America/Los_Angeles}}}}` restituisce   
{{Sept 19, 2020}}.

*ordinalize*  
Converte in ordinale il valore numerico passato nell'argomento. Ad esempio, {{1}} è ordinalizzato come {{1st}} e {{2}} come{{2nd}}. Sono supportati solo valori numerici.  
**Utilizzo**  
`{{ordinalize [{{number}}]}} `  
**Esempio**  
In questo esempio, la voce `[0]` di `User.UserAttributes.UserAge` viene convertita in ordinale e restituita assieme a un messaggio.   
`Congratulations on your {{ordinalize User.UserAttributes.UserAge.[0]}} birthday!`restituisce {{22}} ordinalizzato come. {{22nd}}  
{{Congratulations on your 22nd birthday\!}}

*replace*  
Sostituisce una stringa con un'altra. Una stringa o un valore numerico deve essere letterale. I caratteri jolly non sono supportati.  
**Utilizzo**  
`{{replace {{stringToReplace}} {{replacementValue}}}}`  
**Esempio**  
In questo esempio, un carattere di sottolineatura (\_) sostituisce uno spazio.  
`{{replace {{Location.City}} {{" " "_"}}}}` restituisce  
{{Los\_Angeles}}se lo `Location.City ` è{{Los Angeles}}.

*rjust*  
Giustifica il valore al margine destro e aggiunge spazio a sinistra in modo che la lunghezza del valore corrisponda al numero. I numeri negativi non sono supportati.  
Facoltativamente, puoi passare un carattere da visualizzare per `pad` o lasciare vuoto il campo. Se lasci vuoto il valore `pad`, il valore predefinito è uno spazio.  
**Utilizzo**  
`{{rjust {{value}} size={{X}} [pad=" "]}}`, dove {{X}} è la lunghezza totale del valore, compreso lo spazio bianco.   
**Esempio**  
In questo esempio, all'`Location.City`attributo {{15}} viene applicato un valore di giustificazione corretto di.  
`{{rjust {{Location.City}} size={{15}}}}` restituisce  
{{"    Los Angeles" }}. se lo `Location.City` è{{Los Angeles}}. Si noti che le virgolette visualizzate nell'output sono fornite solo per evidenziare il concetto trattato.

*slugify*  
Converte il valore passato in minuscolo, rimuove i caratteri non letterali (alfanumerici e trattini bassi), converte gli spazi in trattini e rimuove gli spazi iniziali o finali.  
**Utilizzo**  
`{{slugify {{value}}}}`  
**Esempio**  
In questo esempio, viene eseguito slugify per l'attributo `Location.City`.   
`{{slugify {{Location.City}}}}` restituisce  
{{los-angeles}}se `Location.City` è{{Los Angeles}}.

*stripTags*  
Elimina i tag [X]HTML da un valore.  
**Utilizzo**  
 `{{stripTags {{value}}}}`  
**Esempio**  
In questo esempio, i tag HTML per l'utente. UserAttributes.interest. [0] vengono rimossi.   
`{{stripTags {{User.UserAttributes.interests.[0]}}}}` restituisce  
{{Art}}, se lo `User.UserAttributes.interests.[0]` è`<h1>Art</h1>`.

*substring*  
Restituisce una nuova stringa come sottostringa del valore passato. La lunghezza e la posizione sono determinate dai parametri `startOffset` e `endOffset`, che devono essere numeri interi. I numeri negativi non sono supportati. Se `endOffset` viene passato, la sottostringa utilizza il valore finale originale della stringa.  
**Utilizzo**  
`{{substring {{value}} {{startOffset}} {{[endOffset]}}}}`  
**Esempio**  
In questo esempio, all'attributo Location.City vengono applicati offset impostato su 4 e endOffset impostato su 9.   
`{{substring {{Location.City 4 9}}}} ` restituisce  
`{{Angel}}`se Los Angeles è il nostro `Location.City` valore{{Los Angeles}}.

*upper*  
Converte il valore passato in lettere maiuscole.  
**Utilizzo**  
`{{upper {{value}}}}`  
**Esempio**  
In questo esempio, la voce `[0] ` relativa all'attributo `User.UserAttributes.LastName` viene convertita interamente in lettere maiuscole.  
`{{upper User.UserAttributes.LastName.[0]}}` restituisce  
{{ROE}}se il `User.UserAttributes.LastName.[0]` valore è{{Roe}}.

*yesno*  
Sostituisce `true`, `false` e `NULL` con `Yes`, `No` e `Maybe`.  
**Utilizzo**  
`{{yesno value [yes="yes"] [no="no"] maybe=["maybe"]}}`  
**Esempio**  
In questo esempio, l'attributo `IsUserSubscribed` restituisce un valore indicante se un utente è iscritto a un elenco particolare.  
`{{yesno Attributes.IsUserSubscribed}}` restituisce   
{{yes}}se `Attributes.IsUserSubscribed` è{{true}}.

## Helper matematici e di codifica
<a name="mathhelpers"></a>

Questa sezione descrive gli helper **matematici** e di codifica.
+ `add`: restituisce la somma di due numeri.
+ `ceiling`: arrotonda un numero intero al relativo limite matematico superiore.
+ `decode64`: decodifica un valore codificato in formato base64 in una stringa.
+ `divide`: restituisce il quoziente di due numeri.
+ `encode64`: codifica una stringa utilizzando base64.
+ `floor`: arrotonda un numero intero al relativo limite matematico inferiore.
+ `md5`— Esegue l'hash di una stringa passata utilizzando l' MD5algoritmo.
+ `modulo`: restituisce il resto di due numeri utilizzando virgola mobile.
+ `multiply`: restituisce il prodotto di due numeri.
+ `round`: arrotonda un decimale al numero intero più vicino.
+ `sha256`: esegue l'hash di una stringa passata utilizzando SHA-256.
+ `sha512`: esegue l'hash di una stringa passata utilizzando SHA-512.
+ `subtract`: restituisce la differenza tra due numeri.
+ `uuid`: genera casualmente un UUID in un formato a 128 bit.

*aggiungi*  
Restituisce la somma di due numeri assieme alle virgole mobili.  
**Utilizzo**  
`{{add {{arg1}} {{arg2}}}}`  
**Esempio**  
`{{add {{5 2.3}}}} ` restituisce  
{{7.3}}

*ceiling*  
Arrotonda un numero intero al relativo limite matematico superiore, che è il numero intero più alto più vicino al valore passato.  
**Utilizzo**  
`{{ceiling {{value}}}}`  
**Esempio**  
`{{ceiling {{5.23}}}}` restituisce  
{{6}}

*decode64*  
Decodifica un valore in formato base64 in una stringa.  
**Utilizzo**  
`{{decode64 "{{string}}"}}`  
**Esempio**  
`{{decode64 "{{SGVsbG8gd29ybGQ}}="}}` restituisce  
{{Hello World}}

*divide*  
Restituisce il quoziente di due numeri, incluse le virgole mobili.  
**Utilizzo**  
 `{{divide {{arg1}} {{arg2}}}}`  
**Esempio**  
`{{divide {{5 2.3}}}}` restituisce  
{{2.17391304}}

*encode64*  
Codifica la stringa passata nell’argomento utilizzando base64.  
**Utilizzo**  
`{{encode64 "{{string}}"}}`  
**Esempio**  
`{{encode64 "{{Hello World"}}}}`  
{{SGVsbG8gd29ybGQ=}}

*floor*  
Arrotonda un numero intero al relativo limite matematico inferiore, che è il numero intero più basso più vicino al valore passato.  
**Utilizzo**  
`{{floor {{value}}}}`  
**Esempio**  
`{{floor {{5.23}}}}` restituisce  
{{5}}

*md5*  
Esegue l'hash di una stringa passata utilizzando l'algoritmo MD5 .  
**Utilizzo**  
`{{md5 "{{string}}"}}`  
**Esempio**  
`{{md5 "{{Hello World}}"}}`  
{{3e25960a79dbc69b674cd4ec67a72c62}}

*modulo*  
Restituisce il resto di due numeri utilizzando virgola mobile.  
**Utilizzo**  
`{{modulo {{arg1}} {{arg2}}}}`  
**Esempio**  
`{{modulo {{7 2}}}}` restituisce  
{{1}}

*multiply*  
Restituisce il prodotto di due numeri, con qualsiasi virgola mobile.  
**Utilizzo**  
`{{multiply {{arg1}} {{arg2}}}}`  
**Esempio**  
`{{multiply {{5 2.3}}}}` restituisce  
{{11.5}}

*round*  
Arrotonda una cifra decimale per eccesso o per difetto al numero intero più vicino.  
**Utilizzo**  
`{{round {{value}}}}`  
**Esempio**  
`You spent an average of {{round {{19.21}}}} minutes on our website each day.` restituisce:  
{{You spent an average of 19 minutes on our website each day.}}

*sha256*  
Esegue l'hash di una stringa passata utilizzando la sicurezza crittografica SHA-256.  
**Utilizzo**  
`{{sha256 "{{string}}"}}`  
**Esempio**  
`{{sha256 "{{Hello World}}"}}` restituisce  
{{a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e}}

*sha512*  
Esegue l'hash di una stringa passata utilizzando la sicurezza crittografica SHA-512.  
**Utilizzo**  
`{{sha512 "{{string}}"}}`  
**Esempio**  
`{{sha512 "{{Hello World}}"}}` restituisce  
{{2c74fd17edafd80e8447b0d46741ee243b7eb74dd2149a0ab1b9246fb30382f27e853d8585719e0e67cbda0daa8f51671064615d645ae27acb15bfb1447f459b}}

*subtract*  
Restituisce la differenza di due numeri, con qualsiasi virgola mobile.  
**Utilizzo**  
`{{subtract {{arg1}} {{arg2}}}}`  
**Esempio**  
`{{subtract {{5 2.3}}}} ` restituisce  
{{2.7}}

*uuid*  
Genera casualmente un UUID in un formato standard a 128 bit. Non è necessario passare valori nell'argomento.  
**Utilizzo**  
`{{uuid}}`  
**Esempio**  
`{{uuid}} ` restituisce  
{{{{95f36680-152c-4052-99ec-cc3cdf7ca594}}}}

## Parziali inline
<a name="inlinepartials"></a>

Anche se tecnicamente non sono considerati helper, i parziali inline sono un modo con cui Handlebars semplifica i modelli che includono stringhe ripetute, facilitandone il riutilizzo. Per ulteriori informazioni, consulta la pagina relativa ai [parziali inline](https://handlebarsjs.com/guide/partials.html#inline-partials) nel sito web [handlebarsjs.com](https://handlebarsjs.com). 

**Utilizzo**

`{{#* inline "inlineName"}}Content to reuse{{/inline}}`

Per fare riferimento al contenuto del parziale inline in una posizione diversa, usa:

` {{> inlineName}}`

**Esempio**

Ad esempio, potresti creare un parziale inline contenente il nome del destinatario e, se disponibile, il cognome aggiungendo il codice seguente all’inizio del modello:

`{{#* inline "{{fullName}}"}}`

`{{User.UserAttributes.FirstName.[0]}} {{#if User.UserAttributes.LastName.[0]}} {{User.UserAttributes.LastName.[0]}} {{/if}}`

`{{/inline}}`

Una volta creato il parziale `fullName`, puoi includerlo in qualsiasi punto del modello anteponendo al nome del parziale il segno "maggiore di" (`>`) seguito da uno spazio, come nell'esempio seguente: `{{> fullName}}`.

{{` Hello {{> fullName}}`}}

restituisce il nome e il cognome dell'utente se vero, {{Hello Jane Doe}} ad esempio. Altrimenti, se non viene trovato alcun cognome, {{Hello Jane}} viene restituito.

In Handlebars sono disponibili altre funzionalità oltre a quelle documentate in questa sezione. Per ulteriori informazioni, consulta [handlebarsjs.com](https://handlebarsjs.com/).

## Utilizzare variabili con gli helper dei modelli di messaggio
<a name="template-helpers-variables"></a>

I nomi degli attributi personalizzati di Amazon Connect supportano gli spazi. Per avere un attributo personalizzato denominato `"Last Name"`, devi formattare l’attributo come `Attributes.[Last Name]`. 

## Utilizzare helper annidati
<a name="template-helpers-nesting"></a>

 Puoi annidare più helper modello di messaggi l'uno nell'altro. L'esempio seguente mostra come formattare due helper: `{{ first helper (second helper)}}`. Il secondo helper viene elaborato per primo, seguito dal primo helper. Ricorda che è il primo helper a determinare sempre l'output. Gli helper successivi devono essere annidati all'interno dell'helper precedente nel seguente modo: `{{ first helper (second helper (third helper) )}}`

L'esempio seguente mostra come annidare due helper per modificare **JANE** in **Jane**: `{{capitalizeFirst (lower "JANE")}}`. `lower` converte innanzitutto **JANE** in **jane**. Quindi `capitalizeFirst` converte **jane** in **Jane**.