Os comandos de aplicação do seu bot Discord estão aparecendo no idioma errado. Comandos de barra, entradas de menu de contexto e comandos de mensagem podem exibir texto em um idioma que você não configurou. Isso acontece quando os arquivos de localização do desenvolvedor do bot contêm erros, o bot usa dados de tradução desatualizados ou o sistema de cache do Discord serve strings de localidade antigas. Este artigo explica as causas raiz da localização incorreta de comandos e fornece correções passo a passo para desenvolvedores de bots e administradores de servidores.
Principais conclusões: Corrigindo a localização de comandos do bot Discord
- Discord Developer Portal > Application > Bot > Localization Manager: Faça upload dos arquivos de localidade JSON corrigidos para cada idioma alvo.
- Endpoint da API do Discord PATCH /applications/{app_id}/commands: Force uma sincronização completa de comandos para limpar traduções em cache desatualizadas.
- Métodos .setNameLocalizations() e .setDescriptionLocalizations() do construtor de comandos de barra: Use esses métodos no código do seu bot para definir strings por idioma.
Por que os comandos do bot Discord mostram o idioma errado
O Discord oferece suporte à localização de comandos de aplicação por meio do Localization Manager no Developer Portal. Quando um usuário interage com um bot, o Discord verifica a configuração de idioma do cliente do usuário e tenta exibir as strings de localidade correspondentes. Se o arquivo de localidade estiver ausente, incompleto ou contiver chaves incorretas, o Discord usa o idioma padrão definido no construtor de comandos.
Causas da exibição do idioma errado
As causas mais comuns são:
- Entradas de localidade ausentes: O desenvolvedor do bot não forneceu traduções para todos os campos obrigatórios. O Discord mostra o idioma padrão quando uma chave está ausente.
- Códigos de localidade incorretos: O arquivo JSON usa um código de idioma errado, como “en-US” em vez de “en-GB” ou “zh-TW” em vez de “zh-CN”.
- Cache desatualizado nos servidores do Discord: Após atualizar os arquivos de localidade, o Discord pode servir traduções antigas por até 24 horas devido ao cache da CDN.
- Sobrescrita por ferramentas de sincronização automática: Ferramentas que sincronizam comandos automaticamente podem substituir strings localizadas por valores padrão se não forem configuradas corretamente.
Passos para corrigir a localização de comandos do bot
Siga estes passos em ordem para resolver a exibição do idioma errado. O primeiro método aborda a causa mais comum — arquivos de localidade ausentes ou incorretos. O segundo método força o Discord a limpar seu cache.
Método 1: Corrija os arquivos de localidade no Discord Developer Portal
- Abra o Discord Developer Portal
Acesse https://discord.com/developers/applications e selecione a aplicação do seu bot. - Navegue até o Localization Manager
Na barra lateral esquerda, clique em Localization na seção Settings. - Selecione o idioma alvo
Clique no código do idioma para a localidade que está exibindo texto errado. Por exemplo, clique em de para alemão ou fr para francês. - Revise e edite as strings de cada comando
Para cada comando de barra, verifique os campos Name e Description. Verifique também os nomes e descrições das opções. Corrija quaisquer erros de digitação ou traduções erradas. - Salve as alterações
Clique no botão Save Changes no topo da página. Aguarde de 5 a 10 minutos para o Discord processar a atualização. - Teste o comando em um servidor
Digite o comando de barra em um servidor onde você tenha permissão. O comando agora deve mostrar o idioma corrigido. Se ainda mostrar o idioma errado, prossiga para o Método 2.
Método 2: Force uma sincronização completa de comandos via API
Este método limpa as definições de comando em cache do Discord e força uma nova busca dos seus arquivos de localidade. Você precisa de um token de bot com o escopo applications.commands.update.
- Obtenha o token do seu bot e o ID da aplicação
No Developer Portal, vá em Bot e copie o token. Vá em General Information e copie o Application ID. - Envie uma requisição PATCH para o endpoint de comandos globais
Use uma ferramenta como Postman ou curl. Envie uma requisição PATCH para:https://discord.com/api/v10/applications/{application_id}/commands
Inclua o cabeçalhoAuthorization: Bot {seu_token}e um corpo JSON contendo um array vazio[]. Isso limpa todos os comandos globais. - Re-registre todos os comandos com a localização correta
Após limpar, envie uma requisição PUT para o mesmo endpoint com seu array completo de comandos. Use o mesmo cabeçalho. Certifique-se de que cada objeto de comando inclua os camposname_localizationsedescription_localizationscom os códigos de localidade corretos. - Aguarde a propagação do cache
A CDN do Discord pode levar até 1 hora para propagar completamente. Verifique os comandos novamente após 30 minutos.
Se o bot ainda mostrar o idioma errado após a correção
O idioma do cliente Discord do usuário está configurado incorretamente
O usuário vê os comandos no idioma do cliente Discord, não no idioma do servidor. Peça ao usuário para verificar a configuração de idioma: vá em User Settings > Language e certifique-se de que corresponde à localidade esperada. Se o cliente do usuário estiver configurado para espanhol, o bot mostrará traduções em espanhol, mesmo que o idioma do servidor seja inglês.
O bot usa comandos de guild em vez de comandos globais
Comandos de guild substituem comandos globais para aquele servidor específico. Se você atualizou a localização global, mas o bot registrou comandos de guild anteriormente, os comandos de guild ainda usam traduções antigas. Exclua todos os comandos de guild enviando uma requisição DELETE para /guilds/{guild_id}/commands para cada servidor afetado e depois re-registre-os com a localização correta.
Incompatibilidade de código de localidade no código
No código do seu bot, o método setNameLocalizations espera um objeto com códigos de localidade como chaves. Erros comuns incluem usar formato de sublinhado como en_US em vez de hífen en-US, ou usar um código de país sem o código de idioma. Verifique se todas as chaves de localidade correspondem exatamente à lista de localidades suportadas pelo Discord. Por exemplo, use en-GB, não en_GB ou eng.
| Item | Localização no Discord Developer Portal | Localização no código do bot |
|---|---|---|
| Método de atualização | Upload manual de arquivo JSON ou editor inline | Programático via .setNameLocalizations() e .setDescriptionLocalizations() |
| Atraso de cache | 5 a 10 minutos para alterações na interface | Até 1 hora para sincronização via API |
| Localidades suportadas | Todos os idiomas suportados pelo Discord no menu suspenso | Qualquer código de localidade válido, mas deve corresponder à lista do Discord |
| Feedback de erro | Mensagens de validação vermelhas para campos ausentes | Nenhum erro — volta silenciosamente para o idioma padrão |
| Global vs guild | Aplica-se a todos os comandos na aplicação | Pode segmentar comandos globais ou de guild separadamente |
Agora você pode diagnosticar e corrigir a exibição do idioma errado nos comandos de aplicação do seu bot Discord. Comece verificando os arquivos de localidade no Developer Portal e, em seguida, force uma sincronização completa de comandos, se necessário. Para problemas persistentes, verifique o idioma do cliente do usuário e certifique-se de que os comandos de guild não substituam os globais. Dica avançada: use o parâmetro guild_id na sua requisição PATCH para atualizar comandos de um único servidor durante os testes antes de aplicar alterações globais.