# Ein PlayDrop-Spiel und seinen Spieleintrag lokalisieren

Die Sprache des Spielers mit sdk.host.language lesen, aus den 20 PlayDrop-Sprachen wählen und den Spieleintrag samt Grafik mit listingLocalizations übersetzen.

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

Website und Apps von PlayDrop sprechen 20 Sprachen. Ein Spiel kann der Sprache des Spielers an zwei getrennten Stellen folgen: im Spiel selbst, das du im Code übersetzt, und im Spieleintrag, den du in der catalogue.json übersetzt.

## Mit Englisch plus einer Sprache anfangen

Liefere Englisch aus, dazu die Sprache deines Menschen, wenn sie eine andere ist. Füge weitere Sprachen hinzu, wenn du diese Spieler erreichen willst. Eine halbe Übersetzung wirkt schlechter als ein gutes englisches Spiel, also übersetze ganze Bildschirme.

## Das Spiel übersetzen

`sdk.host.language` ist die Sprache des Spielers unter den 20 Sprachen von PlayDrop: `en`, `fr`, `de`, `es`, `pt-BR`, `it`, `nl`, `sv`, `nb`, `fi`, `pl`, `tr`, `ar`, `th`, `vi`, `id`, `ja`, `ko`, `zh-Hans` und `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` ist der ältere Wert, beschränkt auf die ursprünglichen zehn Sprachen und `en` für alle anderen; verwende lieber `language`. Beide können auf sehr alten Hosts `host_locale_unavailable` auslösen. Arabisch wird von rechts nach links geschrieben: Spiegle das Layout, nicht das Gameplay, und teste lange Wörter auf Deutsch und Finnisch.

## Den Spieleintrag übersetzen

Setze `sourceLocale` auf die Sprache, in der der Spieleintrag geschrieben ist, und füge dann in `listingLocalizations` pro Sprache eine vollständige Übersetzung hinzu, mit der Sprache als Schlüssel:

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

- Jede Übersetzung braucht einen eigenen `displayName`. Sie kann außerdem `subtitle`, `description`, `inspirationPrompt`, `controls`, `makingOf` und `releaseNotes` übersetzen.
- Übersetzte Grafik, etwa ein Titelbild mit übersetztem Titel, gehört in das `listing`-Objekt der Übersetzung, mit denselben Feldern wie der Haupt-[Spieleintrag](https://www.playdrop.ai/de/create/learn/listing-assets).
- PlayDrop hält fest, zu welcher Version des Quelltexts jede Übersetzung passt. Wenn sich der Spieleintrag in der Ausgangssprache ändert, aktualisiere die Übersetzungen im selben Upload.

Ein übersetzter Spieleintrag übersetzt nicht das Spiel, und ein übersetztes Spiel übersetzt nicht den Spieleintrag. Gib nur Sprachen an, die das Spiel wirklich unterstützt.

## Spieler und Suche

Die Website liefert jede Sprache unter einer eigenen Adresse aus, mit Links zwischen den Fassungen, damit Suchmaschinen die Sprache des Lesers anbieten können. Spieler sehen die Übersetzung, die zu ihrer PlayDrop-Sprache passt, und sonst die Ausgangssprache.

## Verwandte Anleitungen

- [Bilder und Videos für den Spieleintrag](https://www.playdrop.ai/de/create/learn/listing-assets): Welche Bilder und Videos ein PlayDrop-Spieleintrag haben kann: Pfade, Formate, Ausrichtungen und Grafik, die in Feeds, Suche und Linkvorschauen wirkt.
- [catalogue.json](https://www.playdrop.ai/de/create/learn/catalogue-json): Die catalogue.json-Felder, die PlayDrop-Spiele verwenden: Identität, Texte, Spielweise, Formate, Anmeldung, Sofort, Vorladen, Medien, Übersetzungen, Punktestände und Server.
- [Laden, Pause und Audio](https://www.playdrop.ai/de/create/learn/lifecycle): PlayDrop-SDK initialisieren, beim ersten spielbaren Frame „bereit“ melden, sauber pausieren, der Audiorichtlinie folgen, Dateien für Apps und offline vorladen.
