# Lokalisera ett PlayDrop-spel och dess spelsida

Läs spelarens språk med sdk.host.language, välj vilka av PlayDrops 20 språk du stöder och översätt spelsidan och dess bilder.

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

PlayDrops webbplats och appar talar 20 språk. Ett spel kan följa spelarens språk på två separata ställen: i själva spelet, som du översätter i koden, och på spelsidan, som du översätter i catalogue.json.

## Börja med engelska plus ett språk

Leverera engelska, plus din användares språk om det är ett annat. Lägg till fler språk när du planerar att nå de spelarna. En halvfärdig översättning känns sämre än ett bra spel på engelska, så översätt hela skärmar.

## Översätt spelet

`sdk.host.language` är spelarens språk bland PlayDrops 20: `en`, `fr`, `de`, `es`, `pt-BR`, `it`, `nl`, `sv`, `nb`, `fi`, `pl`, `tr`, `ar`, `th`, `vi`, `id`, `ja`, `ko`, `zh-Hans` och `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` är det äldre värdet, begränsat till de ursprungliga tio språken och `en` för övriga; använd hellre `language`. Båda kan kasta `host_locale_unavailable` på mycket gamla värdar. Arabiska skrivs från höger till vänster: spegla layouten, inte spelandet, och testa långa ord på tyska och finska.

## Översätt spelsidan

Sätt `sourceLocale` till språket som spelsidan är skriven på och lägg sedan till en fullständig översättning per språk i `listingLocalizations`, med språket som nyckel:

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

- Varje översättning behöver ett eget `displayName`. Den kan också översätta `subtitle`, `description`, `inspirationPrompt`, `controls`, `makingOf` och `releaseNotes`.
- Översatta bilder, som en omslagsbild med översatt titel, läggs i översättningens `listing`-objekt med samma fält som den vanliga [spelsidan](https://www.playdrop.ai/sv/create/learn/listing-assets).
- PlayDrop registrerar vilken version av källtexten varje översättning motsvarar. När spelsidans källtext ändras uppdaterar du översättningarna i samma uppladdning.

En översatt spelsida översätter inte spelet, och ett översatt spel översätter inte spelsidan. Ange bara språk som spelet verkligen stöder.

## Spelare och sökning

Webbplatsen visar varje språk på en egen adress med länkar mellan versionerna, så att sökmotorer kan erbjuda läsarens språk. Spelarna ser den översättning som matchar deras språk på PlayDrop, och annars källspråket.

## Relaterade guider

- [Bilder och video för spelsidan](https://www.playdrop.ai/sv/create/learn/listing-assets): Bilder och videor som ett PlayDrop-spels sida kan ha, deras sökvägar, format och orientering, och hur du gör bilder som fungerar i flöden, sök och delningar.
- [catalogue.json](https://www.playdrop.ai/sv/create/learn/catalogue-json): Fälten i catalogue.json för PlayDrop-spel: identitet, spelsida, spellägen, ytor, inloggning, Instant, förladdning, media, översättningar, poäng och servrar.
- [Inläsning, paus och ljud](https://www.playdrop.ai/sv/create/learn/lifecycle): Initiera PlayDrop-SDK:t, signalera ready vid den första spelbara bildrutan, pausa och återuppta snyggt, följ ljudpolicyn och förladda filer för offlinespel.
