PlayDrop 게임과 등록 정보 현지화하기
sdk.host.language로 플레이어의 언어를 읽고, PlayDrop의 20개 언어 중 지원할 언어를 고르고, listingLocalizations로 등록 정보와 아트를 번역하세요.
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 중 하나입니다.
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에 언어를 키로 해서 언어마다 완전한 번역을 하나씩 추가하세요.
{
"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객체에 넣으며, 기본 등록 정보와 같은 필드를 사용합니다. - PlayDrop은 각 번역이 원본 텍스트의 어느 버전에 해당하는지 기록합니다. 원본 등록 정보가 바뀌면 같은 업로드에서 번역도 업데이트하세요.
등록 정보를 번역해도 게임은 번역되지 않고, 게임을 번역해도 등록 정보는 번역되지 않습니다. 게임이 실제로 지원하는 언어만 표시하세요.
플레이어와 검색
웹사이트는 언어마다 별도 주소로 페이지를 제공하고 각 언어 버전을 서로 연결하므로, 검색 엔진이 읽는 사람의 언어로 된 페이지를 보여 줄 수 있습니다. 플레이어는 자신의 PlayDrop 언어와 일치하는 번역을 보고, 번역이 없으면 원본 언어를 봅니다.