What's new
  • NEW: Happy Cataclysm gaming! The fresh 4.3.4 Cataclysm Repack V20.0 is now live - and downloadable from our brand-new Emucoach App.
    Download it now
  • Mists of Pandaria is calling! Heya - did you know that the newest 5.4.8 MoP Repack - version 7.1 - is now live?
    Download now

The Great MOP Localization Mystery: Solving the Italian + Portuguese Mix-Up (and a Suggestion for the Dev Team)

MAtaliao

MoP Premium
3
2026
0
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:

  • loc10 is supposed to be Portuguese (ptBR).
  • loc9 is usually an unused or other locale slot.
However, in this repack, the data was inverted:

  • loc9 actually contained the ptBR translations.
  • loc10 contained Italian (itIT).
This meant that when I set DBC.Locale = 10 (expecting ptBR), the server was sending Italian. When I forced DBC.Locale = 9, the Portuguese appeared. The client itself was fine; it was just displaying what the server was sending.

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:

  1. 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%';

  1. 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.
  2. Final Configuration:
    • In worldserver.conf, set DBC.Locale = 10.
    • In the client's Config.wtf, set SET locale "ptBR".
    • Restarted the server.
After this, everything worked perfectly. All NPC names, titles, quest texts, and objectives appeared in ptBR, with English as a fallback where loc10 was NULL.

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.
This is a very minor change that would significantly improve the out-of-the-box experience for Portuguese-speaking players.

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.
No entanto, neste repack, os dados estavam invertidos:

  • loc9 continha as traduções em ptBR.
  • loc10 continha Italiano (itIT).
Isso significava que, quando eu configurável DBC.Locale = 10 (esperando ptBR), o servidor estava enviando italiano. Quando eu forçava DBC.Locale = 9, o português aparecia. O cliente em si estava bem; ele apenas exibia o que o servidor enviava.

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:

  1. 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%';

  1. 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.
  2. Configuração Final:
    • No worldserver.conf, configure DBC.Locale = 10.
    • No Config.wtf do cliente, configure SET locale "ptBR".
    • Reiniciei o servidor.
Depois disso, tudo funcionou perfeitamente. Todos os nomes de NPCs, títulos, textos de missões e objetivos apareceram em ptBR, com o inglês como fallback onde loc10 estava NULL.

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.
Esta é uma mudança muito pequena que melhoraria significativamente a experiência "pronta para uso" para jogadores de língua portuguesa.

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.
 
Back
Top