# PlayDrop 게임과 등록 정보 현지화하기

sdk.host.language로 플레이어의 언어를 읽고, PlayDrop의 20개 언어 중 지원할 언어를 고르고, listingLocalizations로 등록 정보와 아트를 번역하세요.

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

PlayDrop 웹사이트와 앱은 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`은 이전 값으로, 원래의 10개 언어로 제한되며 나머지 언어에서는 `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/ko/create/learn/listing-assets)와 같은 필드를 사용합니다.
- PlayDrop은 각 번역이 원본 텍스트의 어느 버전에 해당하는지 기록합니다. 원본 등록 정보가 바뀌면 같은 업로드에서 번역도 업데이트하세요.

등록 정보를 번역해도 게임은 번역되지 않고, 게임을 번역해도 등록 정보는 번역되지 않습니다. 게임이 실제로 지원하는 언어만 표시하세요.

## 플레이어와 검색

웹사이트는 언어마다 별도 주소로 페이지를 제공하고 각 언어 버전을 서로 연결하므로, 검색 엔진이 읽는 사람의 언어로 된 페이지를 보여 줄 수 있습니다. 플레이어는 자신의 PlayDrop 언어와 일치하는 번역을 보고, 번역이 없으면 원본 언어를 봅니다.

## 관련 가이드

- [등록 정보 아트와 동영상](https://www.playdrop.ai/ko/create/learn/listing-assets): PlayDrop 게임에 넣을 수 있는 등록 정보 이미지와 동영상의 경로, 형식, 방향, 그리고 피드, 검색, 링크 미리 보기에서 잘 보이는 아트를 만드는 방법을 알아보세요.
- [catalogue.json](https://www.playdrop.ai/ko/create/learn/catalogue-json): PlayDrop 게임이 쓰는 catalogue.json 필드: 식별 정보, 등록 정보, 플레이 방식, 화면, 로그인, 인스턴트, 미리 로드, 미디어, 번역, 점수, 서버.
- [로딩, 일시 정지, 오디오](https://www.playdrop.ai/ko/create/learn/lifecycle): PlayDrop SDK를 초기화하고, 첫 플레이 가능 프레임에서 준비를 알리고, 깔끔하게 일시 정지·재개하고, 호스트 오디오 정책을 따르고, 네이티브·오프라인 플레이용 파일을 미리 로드하세요.
