Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/discordplace/discord.place/llms.txt

Use this file to discover all available pages before exploring further.

discord.place has full internationalization support for both the client (website) and the server (API/bot). Translations live in JSON files under the respective locales/ directories and are maintained by community contributors.

Currently Available Locales

English

Code: en
Files: client/locales/en.json, server/src/locales/en.json
Default locale for the platform.

Turkish

Code: tr
Files: client/locales/tr.json, server/src/locales/tr.json

Azerbaijani

Code: az
Files: client/locales/az.json
Client-only locale.

Locale File Format

Both client and server locale files use a flat or nested JSON structure:
{
  "key": "value",
  "nested.key": "translated value"
}
Use the existing English file as the authoritative reference when translating β€” it always contains the full set of keys.

Contributing to an Existing Translation

If your language already exists in the locales/ directory, you can improve it by filling in missing keys or correcting inaccurate translations.
1

Fork and clone the repository

Fork discord.place on GitHub and clone your fork:
git clone https://github.com/YOUR_USERNAME/discord.place.git
cd discord.place
2

Create a translation branch

git checkout -b feat/i18n-update-turkish-client
3

Edit the locale file

Open client/locales/<code>.json (e.g., client/locales/tr.json) and add translations for any missing keys or correct existing ones. Use client/locales/en.json as the reference for all available keys.
4

Commit your changes

Follow the Conventional Commits format with an i18n scope:
git commit -m "feat(i18n): update Turkish client translations"
5

Push and open a pull request

git push origin feat/i18n-update-turkish-client
Open a pull request against the main branch of the original repository.

Adding a New Language

1

Create the locale JSON file

Create a new file at client/locales/xx.json, where xx is the ISO 639-1 language code for your language (e.g., fr.json for French). Copy the keys from en.json and translate the values.
{
  "key": "translated value",
  "nested.key": "another translated value"
}
2

Register the language in client/config.js

Open client/config.js and add your language to the availableLocales array:
{
  name: 'French',
  code: 'fr',
  dateFnsKey: 'fr',
  flag: 'πŸ‡«πŸ‡·',
  countryCode: 'fr'
}
3

Import the locale file

Open client/stores/language/index.js and add an import for your new locale file:
import fr from '@/locales/fr.json';
4

Add to localeContents

In the same file (client/stores/language/index.js), add your locale to the localeContents object:
const localeContents = {
  en,
  tr,
  az,
  fr  // add your locale here
};
5

Add translations to the JSON file

Fill in all translation keys in your new client/locales/xx.json file. Use client/locales/en.json as the reference to ensure you cover all keys.
6

Commit and open a pull request

git commit -m "feat(i18n): add French locale support"
git push origin feat/i18n-add-french
Open a pull request against the main branch.

Changing the Default Locale

If you are self-hosting and need to change the default locale away from English, two additional changes are required beyond adding the locale:
  1. Set the default: true flag on your chosen locale in the availableLocales array in client/config.js (and remove it from the current default).
  2. Update the DEFAULT_LOCALE_CODE environment variable in .github/workflows/client-validate-locale-files.yml to match the new default locale code. Without this change, the locale validation workflow will produce unnecessary errors.
Not all languages are supported by the Discord client. Before adding a new language, verify that Discord supports it natively. Users may see untranslated strings from Discord itself (such as OAuth prompts) even if the discord.place interface is fully translated.

Validation

The repository includes automated GitHub Actions workflows that validate locale files on pull requests targeting client/locales/**. These checks ensure that locale files are well-formed JSON and that no required keys are missing relative to the default locale. Your PR must pass these checks before it can be merged.

Additional Resources

Build docs developers (and LLMs) love