# 在地化 PlayDrop 遊戲及其上架資訊

用 sdk.host.language 讀取玩家的語言，從 PlayDrop 的 20 種語言中選擇要支援哪些，並用 listingLocalizations 翻譯上架資訊及其圖片。

Source: https://www.playdrop.ai/zh-hant/create/learn/localization

PlayDrop 的網站和 App 支援 20 種語言。遊戲可以在兩個獨立的地方跟隨玩家的語言：遊戲本身，由你在程式碼中翻譯；以及它的上架資訊，在 catalogue.json 中翻譯。

## 從英文加一種語言開始

提供英文，如果你的使用者的語言不同，也提供該語言。打算觸及其他語言的玩家時，再加入更多語言。翻譯不完整的遊戲，感覺比一款好的英文遊戲更差，所以請整個畫面一起翻譯。

## 翻譯遊戲

`sdk.host.language` 是玩家在 PlayDrop 20 種語言中使用的語言：`en`、`fr`、`de`、`es`、`pt-BR`、`it`、`nl`、`sv`、`nb`、`fi`、`pl`、`tr`、`ar`、`th`、`vi`、`id`、`ja`、`ko`、`zh-Hans` 和 `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` 是較舊的值，只限最初的十種語言，其他語言則為 `en`；請優先使用 `language`。在非常舊的主機端上，兩者都可能擲出 `host_locale_unavailable`。阿拉伯文由右至左書寫：要鏡像翻轉的是版面，而不是玩法；也請用德文和芬蘭文測試長單字。

## 翻譯上架資訊

將 `sourceLocale` 設為上架資訊撰寫時使用的語言，然後在 `listingLocalizations` 中為每種語言加入一份完整的翻譯，以語言為鍵：

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

- 每份翻譯都需要自己的 `displayName`。也可以翻譯 `subtitle`、`description`、`inspirationPrompt`、`controls`、`makingOf` 和 `releaseNotes`。
- 翻譯過的圖片（例如標題已翻譯的主視覺）放在翻譯的 `listing` 物件中，使用與主要[上架資訊](https://www.playdrop.ai/zh-hant/create/learn/listing-assets)相同的欄位。
- PlayDrop 會記錄每份翻譯對應的是哪個版本的原文。原文上架資訊變更時，請在同一次上傳中更新翻譯。

翻譯上架資訊不會翻譯遊戲，翻譯遊戲也不會翻譯上架資訊。只列出遊戲真正支援的語言。

## 玩家與搜尋

網站會以各自的網址提供每種語言，並在各版本之間建立連結，讓搜尋引擎能提供讀者的語言。玩家會看到符合他們 PlayDrop 語言的翻譯，否則就看到原文語言。

## 相關指南

- [上架圖片與影片](https://www.playdrop.ai/zh-hant/create/learn/listing-assets): PlayDrop 遊戲可以有哪些上架圖片與影片、它們的路徑、格式與方向，以及如何製作在動態、搜尋和連結預覽中都好看的圖片。
- [catalogue.json](https://www.playdrop.ai/zh-hant/create/learn/catalogue-json): PlayDrop 遊戲使用的 catalogue.json 欄位：身分、上架資訊、遊玩方式、顯示環境、登入、即玩、預先載入、媒體、翻譯、分數與伺服器。
- [載入、暫停與音訊](https://www.playdrop.ai/zh-hant/create/learn/lifecycle): 初始化 PlayDrop SDK，在第一個可遊玩的畫面發出就緒訊號，順暢地暫停與恢復，遵循主機端的音訊政策，並為原生 App 與離線遊玩預先載入檔案。
