Packs de langues des présences
Ajoutez des traductions facultatives et typées aux textes d'activité Discord.
Un système runtime distinct
Les packs traduisent les textes envoyés à Discord, comme « Regarde une vidéo » ou « Parcourt Figma ». Ils sont distincts des langues prises en charge pour les métadonnées et les libellés des paramètres.
Les packs sont facultatifs. Une présence sans dossier locales continue d'utiliser ses textes TypeScript inline exactement comme avant.
Structure des fichiers
Une présence localisée fournit les trois dictionnaires runtime :
TEXTlocales/
├── en-US.json
├── fr-FR.json
└── es-ES.jsonChaque fichier doit être un objet JSON plat avec les mêmes clés et uniquement des chaînes. `en-US.json` sert de référence et de repli. Le build rejette le JSON invalide, les locales manquantes, les fichiers inconnus, les valeurs non textuelles et les clés divergentes.
{ "watchingVideo": "Regarde {title}" }Autocomplétion typée
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 }),
})L'import de type fournit l'autocomplétion dans l'IDE et rejette les clés inconnues sans intégrer le JSON au bundle. Aucune génération de types n'est nécessaire.
Les valeurs dynamiques utilisent des placeholders {name} dans le JSON et presence.formatString(template, params) dans le code.
L'utilisateur peut choisir une langue d'activité globale ou une langue différente pour chaque présence localisée.