# Lokalisoi PlayDrop-peli ja sen pelisivu

Lue pelaajan kieli sdk.host.language-arvosta, valitse, mitä PlayDropin 20 kielestä tuet, ja käännä pelisivu ja sen kuvat.

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

PlayDropin verkkosivusto ja sovellukset puhuvat 20 kieltä. Peli voi seurata pelaajan kieltä kahdessa erillisessä paikassa: itse pelissä, jonka käännät koodissa, ja pelisivulla, jonka käännät catalogue.json-tiedostossa.

## Aloita englannista ja yhdestä muusta

Julkaise peli englanniksi sekä ihmisesi kielellä, jos se on eri. Lisää kieliä, kun aiot tavoittaa niiden pelaajia. Osittainen käännös tuntuu huonommalta kuin hyvä englanninkielinen peli, joten käännä kokonaisia näkymiä.

## Käännä peli

`sdk.host.language` on pelaajan kieli PlayDropin 20 kielen joukosta: `en`, `fr`, `de`, `es`, `pt-BR`, `it`, `nl`, `sv`, `nb`, `fi`, `pl`, `tr`, `ar`, `th`, `vi`, `id`, `ja`, `ko`, `zh-Hans` ja `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` on vanhempi arvo, joka rajoittuu alkuperäisiin kymmeneen kieleen ja on muille kielille `en`; suosi `language`-arvoa. Molemmat voivat heittää virheen `host_locale_unavailable` hyvin vanhoissa isännissä. Arabiaa kirjoitetaan oikealta vasemmalle: peilaa asettelu, älä pelimekaniikkaa, ja testaa pitkiä sanoja saksaksi ja suomeksi.

## Käännä pelisivu

Aseta `sourceLocale` kieleen, jolla pelisivu on kirjoitettu, ja lisää sitten kenttään `listingLocalizations` yksi täydellinen käännös kieltä kohden, avaimena kielikoodi:

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

- Jokainen käännös tarvitsee oman `displayName`-kentän. Se voi kääntää myös kentät `subtitle`, `description`, `inspirationPrompt`, `controls`, `makingOf` ja `releaseNotes`.
- Käännetyt kuvat, kuten pääkuva käännetyllä nimellä, menevät käännöksen `listing`-olioon samoilla kentillä kuin varsinaisessa [pelisivussa](https://www.playdrop.ai/fi/create/learn/listing-assets).
- PlayDrop kirjaa, mitä lähdetekstin versiota kukin käännös vastaa. Kun lähdekielinen pelisivu muuttuu, päivitä käännökset samassa latauksessa.

Käännetty pelisivu ei käännä peliä, eikä käännetty peli käännä pelisivua. Ilmoita vain kielet, joita peli oikeasti tukee.

## Pelaajat ja haku

Verkkosivusto tarjoaa jokaisen kielen omassa osoitteessaan ja linkittää versiot toisiinsa, joten hakukoneet voivat tarjota lukijan kieltä. Pelaajat näkevät käännöksen, joka vastaa heidän PlayDrop-kieltään, ja muuten lähdekielen.

## Liittyvät oppaat

- [Pelisivun kuvat ja video](https://www.playdrop.ai/fi/create/learn/listing-assets): Pelisivun kuvat ja videot, joita PlayDrop-pelillä voi olla, niiden polut, muodot ja suunnat sekä kuvat, jotka toimivat syötteissä, haussa ja esikatseluissa.
- [catalogue.json](https://www.playdrop.ai/fi/create/learn/catalogue-json): PlayDrop-pelien catalogue.json-kentät: tunniste, pelisivu, pelitavat, näkymät, kirjautuminen, Instant, esilataus, media, käännökset, pisteet ja palvelimet.
- [Lataus, tauko ja ääni](https://www.playdrop.ai/fi/create/learn/lifecycle): Alusta SDK, ilmoita valmiudesta ensimmäisellä pelattavalla ruudulla, hoida tauko ja jatko, noudata äänikäytäntöä ja esilataa tiedostot offline-käyttöön.
