EN (abaixo segue em ptbr para os falantes do idioma)
Introduction
I recently went through a long and frustrating journey trying to set up the EmuCoach MOP 5.4.8 VIP repack with a Portuguese (ptBR) client, only to be greeted by a bizarre mix of languages. NPC titles like "Re di Roccavento" (Italian) for Varian Wrynn, quest objectives in Italian, but quest texts in English, and interface/dubbing in ptBR. After days of debugging, I finally found the root cause and a clean solution.
The Problem: A Simple, Yet Critical, Database Mapping Inversion
The entire issue boiled down to one thing: the language columns in the world database are mapped incorrectly.
In the standard TrinityCore/EmuCoach structure:
The Solution: A Simple SQL Migration
The fix was straightforward once the root cause was identified. I didn't need to re-translate anything; I just needed to copy the existing ptBR data from loc9 to the proper loc10 slot. Here is the exact process:
A Suggestion for the EmuCoach Development Team
Since the solution is so simple and the issue affects anyone trying to use a ptBR client, I would like to suggest a permanent fix for future releases of the repack.
Instead of making every user run a SQL migration, could you please update the default database mapping so that:
Conclusion
I hope this post helps other users who might be struggling with the same issue. A huge thank you to the EmuCoach team for the repack—it's an excellent piece of work. This small adjustment would just make it even better.
----PT-BR -----
Introdução
Recentemente, passei por uma jornada longa e frustrante tentando configurar o repack EmuCoach MOP 5.4.8 VIP com um cliente em português (ptBR), apenas para ser recebido por uma mistura bizarra de idiomas. Títulos de NPCs como "Re di Roccavento" (italiano) para o Varian Wrynn, objetivos de missão em italiano, mas textos de missão em inglês, e interface/dublagem em ptBR. Depois de dias depurando, finalmente encontrei a causa raiz e uma solução limpa.
O Problema: Uma Inversão Simples, porém Crítica, no Mapeamento do Banco de Dados
Todo o problema se resumia a uma coisa: as colunas de idioma no banco de dados world estão mapeadas incorretamente.
Na estrutura padrão do TrinityCore/EmuCoach:
A Solução: Uma Migração SQL Simples
A correção foi direta, uma vez que a causa raiz foi identificada. Eu não precisei retraduzir nada; apenas copiei os dados em ptBR existentes do loc9 para o slot loc10 correto. Aqui está o processo exato:
Uma Sugestão para a Equipe de Desenvolvimento do EmuCoach
Como a solução é tão simples e o problema afeta qualquer um que tente usar um cliente ptBR, gostaria de sugerir uma correção permanente para versões futuras do repack.
Em vez de fazer cada usuário executar uma migração SQL, seria possível atualizar o mapeamento padrão do banco de dados para que:
Conclusão
Espero que este post ajude outros usuários que possam estar enfrentando o mesmo problema. Um grande agradecimento à equipe do EmuCoach pelo repack — é um excelente trabalho. Este pequeno ajuste o tornaria ainda melhor.
Introduction
I recently went through a long and frustrating journey trying to set up the EmuCoach MOP 5.4.8 VIP repack with a Portuguese (ptBR) client, only to be greeted by a bizarre mix of languages. NPC titles like "Re di Roccavento" (Italian) for Varian Wrynn, quest objectives in Italian, but quest texts in English, and interface/dubbing in ptBR. After days of debugging, I finally found the root cause and a clean solution.
The Problem: A Simple, Yet Critical, Database Mapping Inversion
The entire issue boiled down to one thing: the language columns in the world database are mapped incorrectly.
In the standard TrinityCore/EmuCoach structure:
- loc10 is supposed to be Portuguese (ptBR).
- loc9 is usually an unused or other locale slot.
- loc9 actually contained the ptBR translations.
- loc10 contained Italian (itIT).
The Solution: A Simple SQL Migration
The fix was straightforward once the root cause was identified. I didn't need to re-translate anything; I just needed to copy the existing ptBR data from loc9 to the proper loc10 slot. Here is the exact process:
- Generate the Migration Commands:
First, I generated a list of all the UPDATE commands needed. In HeidiSQL, I ran this query against the world database:
SELECT
CONCAT(
'UPDATE `', TABLE_NAME, '` SET `',
REPLACE(COLUMN_NAME, '_loc9', '_loc10'),
'` = `', COLUMN_NAME, '` WHERE `', COLUMN_NAME, '` IS NOT NULL;'
) AS update_command
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA = 'world'
AND TABLE_NAME LIKE 'locales_%'
AND COLUMN_NAME LIKE '%_loc9'
AND COLUMN_NAME NOT LIKE '%_loc10%';
- Execute the Commands:
This generated ~50 UPDATE statements across all locales_* tables (e.g., locales_creature, locales_quest, locales_item, etc.). I copied and ran them all at once. - Final Configuration:
- In worldserver.conf, set DBC.Locale = 10.
- In the client's Config.wtf, set SET locale "ptBR".
- Restarted the server.
A Suggestion for the EmuCoach Development Team
Since the solution is so simple and the issue affects anyone trying to use a ptBR client, I would like to suggest a permanent fix for future releases of the repack.
Instead of making every user run a SQL migration, could you please update the default database mapping so that:
- loc10 is pre-populated with the ptBR data (or the DBC.Locale index for Portuguese is set to 9 in the worldserver.conf).
- This would save future users hours of debugging and keep the configuration aligned with the expected TrinityCore standard.
Conclusion
I hope this post helps other users who might be struggling with the same issue. A huge thank you to the EmuCoach team for the repack—it's an excellent piece of work. This small adjustment would just make it even better.
----PT-BR -----
Introdução
Recentemente, passei por uma jornada longa e frustrante tentando configurar o repack EmuCoach MOP 5.4.8 VIP com um cliente em português (ptBR), apenas para ser recebido por uma mistura bizarra de idiomas. Títulos de NPCs como "Re di Roccavento" (italiano) para o Varian Wrynn, objetivos de missão em italiano, mas textos de missão em inglês, e interface/dublagem em ptBR. Depois de dias depurando, finalmente encontrei a causa raiz e uma solução limpa.
O Problema: Uma Inversão Simples, porém Crítica, no Mapeamento do Banco de Dados
Todo o problema se resumia a uma coisa: as colunas de idioma no banco de dados world estão mapeadas incorretamente.
Na estrutura padrão do TrinityCore/EmuCoach:
- loc10 deveria ser Português (ptBR) .
- loc9 geralmente é um slot não utilizado ou para outro idioma.
- loc9 continha as traduções em ptBR.
- loc10 continha Italiano (itIT).
A Solução: Uma Migração SQL Simples
A correção foi direta, uma vez que a causa raiz foi identificada. Eu não precisei retraduzir nada; apenas copiei os dados em ptBR existentes do loc9 para o slot loc10 correto. Aqui está o processo exato:
- Gerar os Comandos de Migração:
Primeiro, gerei uma lista de todos os comandos UPDATE necessários. No HeidiSQL, executei esta consulta no banco de dados world:
SELECT
CONCAT(
'UPDATE `', TABLE_NAME, '` SET `',
REPLACE(COLUMN_NAME, '_loc9', '_loc10'),
'` = `', COLUMN_NAME, '` WHERE `', COLUMN_NAME, '` IS NOT NULL;'
) AS update_command
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA = 'world'
AND TABLE_NAME LIKE 'locales_%'
AND COLUMN_NAME LIKE '%_loc9'
AND COLUMN_NAME NOT LIKE '%_loc10%';
- Executar os Comandos:
Isso gerou cerca de 50 declarações UPDATE em todas as tabelas locales_* (por exemplo, locales_creature, locales_quest, locales_item, etc.). Copiei e executei todas de uma vez. - Configuração Final:
- No worldserver.conf, configure DBC.Locale = 10.
- No Config.wtf do cliente, configure SET locale "ptBR".
- Reiniciei o servidor.
Uma Sugestão para a Equipe de Desenvolvimento do EmuCoach
Como a solução é tão simples e o problema afeta qualquer um que tente usar um cliente ptBR, gostaria de sugerir uma correção permanente para versões futuras do repack.
Em vez de fazer cada usuário executar uma migração SQL, seria possível atualizar o mapeamento padrão do banco de dados para que:
- loc10 seja pré-preenchido com os dados ptBR (ou que o índice DBC.Locale para Português seja definido como 9 no worldserver.conf).
- Isso pouparia futuros usuários de horas de depuração e manteria a configuração alinhada com o padrão esperado do TrinityCore.
Conclusão
Espero que este post ajude outros usuários que possam estar enfrentando o mesmo problema. Um grande agradecimento à equipe do EmuCoach pelo repack — é um excelente trabalho. Este pequeno ajuste o tornaria ainda melhor.