Command Palette

Search for a command to run...

프레즌스 언어 팩

Discord 활동 텍스트에 선택적 타입 지정 번역을 추가하세요.

별도의 런타임 시스템

언어 팩은 “동영상 시청 중”, “Figma 탐색 중”처럼 Discord로 보내는 텍스트를 번역합니다. 메타데이터와 설정 레이블에 사용하는 지원 로케일과는 별개입니다.

언어 팩은 선택 사항입니다. locales 디렉터리가 없는 프레즌스는 이전과 동일하게 인라인 TypeScript 문자열을 사용합니다.

파일 구조

현지화된 프레즌스는 세 런타임 사전을 모두 제공합니다.

TEXT
locales/
├── en-US.json
├── fr-FR.json
└── es-ES.json

각 파일은 동일한 키와 문자열 값을 가진 평면 JSON 객체여야 합니다. en-US.json은 참조 사전이자 대체 사전입니다. 빌드는 잘못된 JSON, 누락된 로케일, 지원되지 않는 파일, 문자열이 아닌 값, 키 불일치를 거부합니다.

{ "watchingVideo": "Watching {title}" }

타입 지정 자동 완성

import type enUS from "./locales/en-US.json"

const locale = await presence.getStrings<typeof enUS>()
const title = document.title

await presence.setActivity({
  details: presence.formatString(locale.watchingVideo, { title }),
})

타입 전용 import는 IDE 자동 완성을 제공하고 JSON을 번들에 추가하지 않은 채 알 수 없는 키를 거부합니다. 타입 생성 명령은 필요하지 않습니다.

JSON에서는 {name} 플레이스홀더를, 프레즌스 코드에서는 presence.formatString(template, params)를 사용합니다.

사용자는 전역 활동 언어 하나를 선택하거나 현지화된 프레즌스마다 다른 언어를 선택할 수 있습니다.