Your Discord bot’s application commands appear in the wrong language. Slash commands, context menu entries, and message commands may show text in a language you did not configure. This happens when the bot developer’s localization files contain errors, the bot uses outdated translation data, or Discord’s caching system serves stale locale strings. This article explains the root causes of incorrect command localization and provides step-by-step fixes for bot developers and server administrators.
Key Takeaways: Fixing Discord Bot Command Localization
- Discord Developer Portal > Application > Bot > Localization Manager: Upload corrected JSON locale files for each target language.
- Discord API endpoint PATCH /applications/{app_id}/commands: Force a full command sync to clear stale cached translations.
- Slash command builder .setNameLocalizations() and .setDescriptionLocalizations(): Use these methods in your bot code to define per-language strings.
Why Discord Bot Commands Show the Wrong Language
Discord supports localization for application commands through the Localization Manager in the Developer Portal. When a user interacts with a bot, Discord checks the user’s client language setting and attempts to display the matching locale strings. If the locale file is missing, incomplete, or contains incorrect keys, Discord falls back to the default language defined in the command builder.
Causes of Wrong Language Display
The most common causes are:
- Missing locale entries: The bot developer did not provide translations for all required fields. Discord shows the default language when a key is absent.
- Incorrect locale codes: The JSON file uses a wrong language code such as “en-US” instead of “en-GB” or “zh-TW” instead of “zh-CN”.
- Stale cache on Discord’s servers: After updating locale files, Discord may serve old translations for up to 24 hours due to CDN caching.
- Overwriting by auto-sync tools: Tools that auto-sync commands can replace localized strings with default values if not configured correctly.
Steps to Fix Bot Command Localization
Follow these steps in order to resolve wrong language display. The first method addresses the most common cause — missing or incorrect locale files. The second method forces Discord to clear its cache.
Method 1: Correct the Locale Files in Discord Developer Portal
- Open the Discord Developer Portal
Go to https://discord.com/developers/applications and select your bot’s application. - Navigate to Localization Manager
In the left sidebar, click Localization under the Settings section. - Select the target language
Click the language code for the locale that shows wrong text. For example, click de for German or fr for French. - Review and edit each command’s strings
For every slash command, check the Name and Description fields. Also check option names and descriptions. Correct any typos or wrong translations. - Save changes
Click the Save Changes button at the top of the page. Wait 5 to 10 minutes for Discord to process the update. - Test the command in a server
Type the slash command in a server where you have permission. The command should now show the corrected language. If it still shows the wrong language, proceed to Method 2.
Method 2: Force a Full Command Sync via API
This method clears Discord’s cached command definitions and forces a fresh pull of your locale files. You need a bot token with the applications.commands.update scope.
- Obtain your bot token and application ID
In the Developer Portal, go to Bot and copy the token. Go to General Information and copy the Application ID. - Send a PATCH request to the global commands endpoint
Use a tool like Postman or curl. Send a PATCH request to:https://discord.com/api/v10/applications/{application_id}/commands
Include the headerAuthorization: Bot {your_token}and a JSON body containing an empty array[]. This clears all global commands. - Re-register all commands with correct localization
After clearing, send a PUT request to the same endpoint with your full command array. Use the same header. Ensure each command object includes thename_localizationsanddescription_localizationsfields with the correct locale codes. - Wait for cache propagation
Discord’s CDN may take up to 1 hour to fully propagate. Check the commands again after 30 minutes.
If the Bot Still Shows Wrong Language After the Fix
User’s Discord Client Language Is Set Incorrectly
The user sees commands in the language of their Discord client, not the server’s language. Ask the user to check their language setting: go to User Settings > Language and ensure it matches the expected locale. If the user’s client is set to Spanish, the bot will show Spanish translations even if the server language is English.
Bot Uses Guild Commands Instead of Global Commands
Guild commands override global commands for that specific server. If you updated global localization but the bot registered guild commands earlier, the guild commands still use old translations. Delete all guild commands by sending a DELETE request to /guilds/{guild_id}/commands for each affected server, then re-register them with correct localization.
Locale Code Mismatch in Code
In your bot code, the setNameLocalizations method expects an object with locale codes as keys. Common mistakes include using underscore format like en_US instead of hyphen format en-US, or using a country code without the language code. Verify all locale keys match Discord’s supported locale list exactly. For example, use en-GB not en_GB or eng.
| Item | Discord Developer Portal Localization | Bot Code Localization |
|---|---|---|
| Update method | Manual JSON file upload or inline editor | Programmatic via .setNameLocalizations() and .setDescriptionLocalizations() |
| Cache delay | 5 to 10 minutes for UI changes | Up to 1 hour for API-driven sync |
| Supported locales | All Discord-supported languages in dropdown | Any valid locale code but must match Discord’s list |
| Error feedback | Red validation messages for missing fields | No error — silently falls back to default language |
| Global vs guild | Applies to all commands in the application | Can target global or guild commands separately |
You can now diagnose and correct wrong language display for your Discord bot’s application commands. Start by verifying the locale files in the Developer Portal, then force a full command sync if needed. For persistent issues, check the user’s client language and ensure guild commands do not override global ones. Advanced tip: use the guild_id parameter in your PATCH request to update commands for a single server during testing before pushing global changes.