發布與分享
在地化 PlayDrop 遊戲及其上架資訊
用 sdk.host.language 讀取玩家的語言,從 PlayDrop 的 20 種語言中選擇要支援哪些,並用 listingLocalizations 翻譯上架資訊及其圖片。
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物件中,使用與主要上架資訊相同的欄位。 - PlayDrop 會記錄每份翻譯對應的是哪個版本的原文。原文上架資訊變更時,請在同一次上傳中更新翻譯。
翻譯上架資訊不會翻譯遊戲,翻譯遊戲也不會翻譯上架資訊。只列出遊戲真正支援的語言。
玩家與搜尋
網站會以各自的網址提供每種語言,並在各版本之間建立連結,讓搜尋引擎能提供讀者的語言。玩家會看到符合他們 PlayDrop 語言的翻譯,否則就看到原文語言。