# Lokaliser et PlayDrop-spill og spilloppføringen

Les spillerens språk med sdk.host.language, velg hvilke av PlayDrops 20 språk du vil støtte, og oversett oppføringen og bildene i den.

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

PlayDrops nettsted og apper snakker 20 språk. Et spill kan følge spillerens språk på to atskilte steder: selve spillet, som du oversetter i koden, og oppføringen, som du oversetter i catalogue.json.

## Start med engelsk pluss ett

Lever engelsk, pluss språket til brukeren din når det er et annet. Legg til flere språk når du planlegger å nå de spillerne. En delvis oversettelse føles verre enn et godt engelsk spill, så oversett hele skjermer.

## Oversett spillet

`sdk.host.language` er spillerens språk blant PlayDrops 20: `en`, `fr`, `de`, `es`, `pt-BR`, `it`, `nl`, `sv`, `nb`, `fi`, `pl`, `tr`, `ar`, `th`, `vi`, `id`, `ja`, `ko`, `zh-Hans` og `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` er den eldre verdien, begrenset til de opprinnelige ti språkene og `en` for de andre; bruk heller `language`. Begge kan kaste `host_locale_unavailable` på svært gamle verter. Arabisk skrives fra høyre mot venstre: speilvend oppsettet, ikke spillingen, og test lange ord på tysk og finsk.

## Oversett oppføringen

Sett `sourceLocale` til språket oppføringen er skrevet på, og legg deretter til én fullstendig oversettelse per språk i `listingLocalizations`, med språket som nøkkel:

```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" }
    }
  }
}
```

- Hver oversettelse trenger sin egen `displayName`. Den kan også oversette `subtitle`, `description`, `inspirationPrompt`, `controls`, `makingOf` og `releaseNotes`.
- Oversatte bilder, som et hovedbilde med oversatt tittel, legges i oversettelsens `listing`-objekt, med de samme feltene som i [hovedoppføringen](https://www.playdrop.ai/nb/create/learn/listing-assets).
- PlayDrop registrerer hvilken versjon av kildeteksten hver oversettelse samsvarer med. Når kildeoppføringen endres, oppdaterer du oversettelsene i samme opplasting.

En oversatt oppføring oversetter ikke spillet, og et oversatt spill oversetter ikke oppføringen. Oppgi bare språk spillet faktisk støtter.

## Spillere og søk

Nettstedet viser hvert språk på sin egen adresse med lenker mellom versjonene, slik at søkemotorer kan tilby leserens språk. Spillerne ser oversettelsen som samsvarer med PlayDrop-språket deres, og ellers kildespråket.

## Relaterte veiledninger

- [Oppføringsbilder og video](https://www.playdrop.ai/nb/create/learn/listing-assets): Oppføringsbildene og -videoene et PlayDrop-spill kan ha, stier, formater og retninger, og hvordan du lager bilder som virker i feeder, søk og forhåndsvisninger.
- [catalogue.json](https://www.playdrop.ai/nb/create/learn/catalogue-json): catalogue.json-feltene PlayDrop-spill bruker: identitet, oppføring, spillmåter, flater, innlogging, Instant, forhåndslasting, medier, oversettelser, poeng og servere.
- [Lasting, pause og lyd](https://www.playdrop.ai/nb/create/learn/lifecycle): Initialiser PlayDrop-SDK-en, meld klar ved første spillbare bilde, sett på pause og gjenoppta ryddig, følg lydreglene og forhåndslast filer for spill uten nett.
