# Localizza un gioco PlayDrop e la sua scheda

Leggi la lingua del giocatore con sdk.host.language, scegli quali delle 20 lingue di PlayDrop supportare e traduci scheda e immagini con listingLocalizations.

Source: https://www.playdrop.ai/it/create/learn/localization

Il sito e le app di PlayDrop parlano 20 lingue. Un gioco può seguire la lingua del giocatore in due punti separati: il gioco stesso, che traduci nel codice, e la sua scheda, che traduci in catalogue.json.

## Inizia con l’inglese più una lingua

Pubblica in inglese e anche nella lingua del tuo utente, se diversa. Aggiungi altre lingue quando intendi raggiungere quei giocatori. Una traduzione parziale fa un’impressione peggiore di un buon gioco in inglese, quindi traduci schermate intere.

## Traduci il gioco

`sdk.host.language` è la lingua del giocatore tra le 20 di PlayDrop: `en`, `fr`, `de`, `es`, `pt-BR`, `it`, `nl`, `sv`, `nb`, `fi`, `pl`, `tr`, `ar`, `th`, `vi`, `id`, `ja`, `ko`, `zh-Hans` e `zh-Hant`.

```js
const STRINGS = { en: { play: "Play" }, fr: { play: "Jouer" } };
let language = "en";
try { language = sdk.host.language; } catch { /* older host */ }
const t = STRINGS[language] ?? STRINGS[language.split("-")[0]] ?? STRINGS.en;
```

`sdk.host.locale` è il valore meno recente, limitato alle dieci lingue originali e con `en` per le altre; preferisci `language`. Entrambi possono generare `host_locale_unavailable` sugli host molto vecchi. L’arabo si scrive da destra a sinistra: rispecchia il layout, non il gameplay, e prova le parole lunghe in tedesco e finlandese.

## Traduci la scheda

Imposta `sourceLocale` sulla lingua in cui è scritta la scheda, poi aggiungi una traduzione completa per lingua in `listingLocalizations`, con la lingua come chiave:

```json
{
  "sourceLocale": "en",
  "displayName": "Moon Jump",
  "description": "Jump between lunar platforms and reach the flag.",
  "listingLocalizations": {
    "fr": {
      "displayName": "Saut lunaire",
      "subtitle": "Des plateformes lunaires contre la montre",
      "description": "Sautez de plateforme en plateforme et atteignez le drapeau.",
      "controls": "Touchez ou appuyez sur Espace pour sauter.",
      "listing": { "heroLandscape": "listing/locales/fr/hero-landscape.png" }
    }
  }
}
```

- Ogni traduzione richiede un proprio `displayName`. Può tradurre anche `subtitle`, `description`, `inspirationPrompt`, `controls`, `makingOf` e `releaseNotes`.
- Le immagini tradotte, come un’immagine principale con il titolo tradotto, vanno nell’oggetto `listing` della traduzione, con gli stessi campi della [scheda](https://www.playdrop.ai/it/create/learn/listing-assets) principale.
- PlayDrop registra a quale versione del testo originale corrisponde ogni traduzione. Quando la scheda originale cambia, aggiorna le traduzioni nello stesso caricamento.

Una scheda tradotta non traduce il gioco, e un gioco tradotto non traduce la scheda. Indica solo le lingue che il gioco supporta davvero.

## Giocatori e ricerca

Il sito pubblica ogni lingua a un indirizzo proprio, con link tra le versioni, così i motori di ricerca possono proporre la lingua di chi legge. I giocatori vedono la traduzione che corrisponde alla loro lingua su PlayDrop, altrimenti la lingua originale.

## Guide correlate

- [Immagini e video della scheda](https://www.playdrop.ai/it/create/learn/listing-assets): Immagini e video della scheda di un gioco PlayDrop: percorsi, formati, orientamenti e come creare immagini efficaci in feed, ricerca e anteprime dei link.
- [catalogue.json](https://www.playdrop.ai/it/create/learn/catalogue-json): Campi di catalogue.json usati dai giochi PlayDrop: identità, scheda, modalità, superfici, accesso, Instant, precarico, media, traduzioni, punteggi e server.
- [Caricamento, pausa e audio](https://www.playdrop.ai/it/create/learn/lifecycle): Inizializza l’SDK, chiama ready al primo frame giocabile, gestisci pausa e ripresa, rispetta l’audio dell’host e precarica i file per app native e offline.
