Sistema plugin para MSCLoader do My Winter Car que permite tradução automática sem modificar o código.
Veja em NexusMods
- Copie os arquivos de modelo de
dist/ - Edite dist\Assets\MWC_Localization_Core_BR/config.txt` com as configurações do seu idioma
- Atualize os arquivos de tradução:
translate.txt- Texto principal da interfacetranslate_msc.txt (opcional)- textos do My Summer Car (compatibilidade)translate_magazine.txt- Conteúdo da revista Classificadostranslate_teletext.txt- Conteúdo da TV/Teletextotranslate_mod.txt (opcional)- Conteúdo de mods
- (Opcional) Crie fontes customizadas em
fonts.unity3d - Teste no jogo com recarga (F8)!
& "C:\Program Files\Microsoft Visual Studio\18\Community\MSBuild\Current\Bin\MSBuild.exe" ".\MWC_Localization_Core.sln" /p:Configuration=Release
Tradução automática - Escaneia componentes TextMesh e substitui o texto
Tradução de teletexto/TV - Notícias, tempo e receitas traduzidas
Tradução de revista - Tratamento especial para a revista Classificados
Fontes configuráveis - Mapeie fontes do jogo para fontes localizadas
Ajustes de posição - Ajuste fino do posicionamento do texto por idioma
Recarga ao vivo - Pressione F8 para testar alterações sem reiniciar
Suporte a alfabetos não latinos - coreano, japonês, chinês, cirílico etc.
Compatibilidade com My Summer Car - Use tradução do MSC como base
My Winter Car\Mods
├── My Winter Car\Mods\Assets\MWC_Localization_Core_BR
│ ├── config.txt # Configuração do idioma
│ ├── translate.txt # Traduções principais da interface
│ ├── translate_magazine.txt # Traduções da revista Classificados
│ ├── translate_teletext.txt # Traduções de TV/Teletexto
│ ├── translate_msc.txt # Opcional: compatibilidade My Summer Car
│ ├── translate_mod.txt # Opcional: traduções de mods
│ └── fonts.unity3d # Opcional: bundle de fontes customizadas
└── MWC_Localization_Core.dll # Módulo principal do plugin
# Informações do seu idioma
LANGUAGE_NAME = Coreano
LANGUAGE_CODE = ko-KR| Configuração | Propósito | Exemplo |
|---|---|---|
LANGUAGE_NAME |
Nome exibido | Coreano, Español, 日本語 |
LANGUAGE_CODE |
Código ISO do idioma | ko-KR, es-ES, ja-JP |
Se estiver usando fontes personalizadas, mapeie as fontes originais do jogo para elas no config.txt:
[FONTS]
OriginalGameFont = SuaFontePersonalizada
FugazOne-Regular = MinhaFonte-Bold
Heebo-Black = MinhaFonte-RegularOs assets de fontes devem existir em fonts.unity3d com os nomes correspondentes (valores à direita).
Arquivo principal de tradução que cobre as linhas do My Winter Car.
# Comentários usam #
# As chaves são normalizadas automaticamente: MAIÚSCULAS, sem espaços
BEER = Cerveja
BUCKET = Balde
MONDAY = Segunda-feira
WITHDRAWAL = Retirada
# Suporte a múltiplas linhas (Use \n)
Welcome to My Winter Car = Bem-vindo ao My Winter Car\nSeja bem-vindo
Este arquivo contém lógica especial para lidar com palavras aleatórias separadas por vírgula e a linha de preço na revista Classificados.
# Abreviações da revista (separadas por vírgula)
headlgh.l = esq.farol
headgskt. = cab.gaxeta
supp.arm = susp.braco
# Rótulo de telefone para linhas de preço
# Usado em linhas como "h.149,- puh.123456" -> "149 MK, ${PHONE} - (08)123456"
PHONE = Telefone
Formatação específica da revista:
- Palavras abreviadas usam pontos e vírgulas
- Linhas de preço recebem tratamento especial para números de telefone
- Diferente do texto normal da interface
Traduções por categoria para o teletexto da TV (notícias, tempo, receitas etc.) e páginas de chat da TV. Este arquivo separado foi introduzido para evitar que o jogo sobrescreva constantemente as traduções do plugin.
A ORDEM & [CATEGORIA] IMPORTAM! Pelo menos neste arquivo. Recomenda-se NÃO modificar a ordem/categories.
# As seções de categoria correspondem às páginas do teletexto
[day]
MONDAY = Segunda-feira
TUESDAY = Terça-feira
[kotimaa]
# Manchetes de notícias domésticas (na ordem em que aparecem)
MAKELIN CEO FIRED = MAKELIN CEO DEMITIDO
TAXI REFORM PLANNED = REFORMA DO TÁXI PLANEJADA
[urheilu]
# Notícias esportivas
FOOTBALL RESULTS = RESULTADOS DE FUTEBOL
# Formato multilinha:
Long news
Headline here
=
Notícia longa
Manchete
Categorias:
day- Nomes dos diaskotimaa- Notícias domésticasulkomaat- Notícias estrangeirastalous- Notícias econômicasurheilu- Notícias esportivasruoka- Receitasajatus- Citaçõeskulttuuri- Cultura
Observe que algumas linhas da TV podem não 'parecer traduzidas' devido ao motivo mencionado acima.
Você pode reutilizar arquivos de tradução do My Summer Car como base. Muitos textos da interface são compartilhados entre os jogos.
O conteúdo de translate.txt (específico do MWC) irá sobrescrever as entradas de translate_msc.txt.
Ajuste fino do posicionamento, tamanho, espaçamento e largura do texto para melhor aparência sem alterar o código.
[POSITION_ADJUSTMENTS]
Conditions = X,Y,Z[,Tamanho da fonte,Espaçamento entre linhas,Escala de largura]| Condição | Quando corresponde |
|---|---|
Contains(path) |
O caminho contém o texto |
EndsWith(path) |
O caminho termina com o texto |
StartsWith(path) |
O caminho começa com o texto |
Equals(path) |
O caminho corresponde exatamente |
!Contains(path) |
O caminho NÃO contém (negação) |
Dica: Use o console BepInEx (F12) para ver os caminhos dos GameObjects quando o texto aparece. Isso ajuda a escrever as condições. (Não esta funcionando no MSCLoader)
# Apenas ajuste de posição: mover labels do HUD para baixo (Y = -0.05)
Contains(GUI/HUD/) & EndsWith(/HUDLabel) = 0,-0.05,0
# Tornar o texto mais largo: escala de largura 1.2x (último parâmetro)
Contains(Systems/Narrow/Text) = 0,0,0,,,1.2
# Ajuste completo: posição + tamanho + espaçamento de linha + largura
Contains(GUI/Menu/Title) = 0,0.1,0,0.12,1.0,1.3
# Pular parâmetros com vírgulas: posição + escala de largura (pular tamanho da fonte e espaçamento)
Contains(PERAPORTTI/ATMs/) & EndsWith(/Text) = 0,0.25,0,,,0.9
# Combinar múltiplas condições com negação
Contains(PERAPORTTI/ATMs/) & !Contains(/Row) & EndsWith(/Text) = 0,0.25,0X,Y,Z[,FontSize,LineSpacing,WidthScale]
| Parâmetro | Tipo | Propósito | Exemplos |
|---|---|---|---|
| X | Obrigatório | Deslocamento horizontal (+ para direita, - para esquerda) | 0, 0.5, -0.3 |
| Y | Obrigatório | Deslocamento vertical (+ para cima, - para baixo) | 0, 0.25, -0.05 |
| Z | Obrigatório | Deslocamento em profundidade (raramente necessário) | 0 |
| FontSize | Opcional | Tamanho do caractere (TextMesh.characterSize) | 0.1, 0.15, 0.2 |
| LineSpacing | Opcional | Multiplicador de espaçamento entre linhas | 1.0, 1.2, 0.8 |
| WidthScale | Opcional | Escala de largura dos caracteres (transform.localScale.x) | 1.0, 1.2 (mais largo), 0.8 (mais estreito) |
Dicas:
- Deixe parâmetros opcionais vazios para pular:
0,0,0,,1.2(pular FontSize, definir LineSpacing) - Use
WidthScale > 1.0para deixar o texto mais largo (bom para fontes estreitas) - Use
WidthScale < 1.0para deixar o texto mais estreito (bom para layouts condensados) - Combine com FontSize para controlar altura e largura independentemente
Para idiomas que precisam de suporte especial de fontes (melhor legibilidade, caracteres especiais etc.):
- Prepare as fontes - TrueType (.ttf) ou OpenType (.otf)
- Crie assets no Unity - Use Unity 5.0.0f4 (mesma versão do My Winter Car)
- Construir AssetBundle - Nomeie como
fonts.unity3d - Caso os nomes - Os nomes dos assets de fonte devem corresponder aos valores na seção [FONTS] do
config.txt - Coloque em l10n_assets - Coloque
fonts.unity3djunto com os outros arquivos de tradução
Observações sobre o Unity:
- O Unity 5.0.0f4 tem problemas de licenciamento - instale 5.6.7f1 primeiro para ativar, depois execute 5.0.0f4
- O target do AssetBundle deve corresponder ao jogo (geralmente Windows Standalone)
Pressione F8 no jogo para recarregar instantaneamente todos os arquivos de configuração e tradução:
- Edite
config.txt, arquivos de tradução, etc. - Não é necessário reiniciar o jogo
- Perfeito para trabalho iterativo de tradução
- Ative o console BepInEx: Edite
BepInEx/config/BepInEx.cfg- Defina
Enabled = trueem[Logging.Console]
- Defina
- Inicie o jogo e pressione F12 para abrir o console
- Verifique erros de configuração e o status das traduções
- Observe os caminhos dos GameObjects quando o texto aparece (ajuda nos ajustes de posição)
- Edite os arquivos e pressione F8 para testar as alterações
- Repita até ficar perfeito
Texto não está sendo traduzido?
- Ative mensagens no console via configurações do MSCLoader Mod
- Verifique o console (F12) para erros
- Certifique-se de que a chave corresponde
- Para teletexto, verifique se você está usando a seção de categoria correta
Fonte errada?
- Verifique os nomes das fontes na seção [FONTS] do
config.txt - Verifique se
fonts.unity3dexiste e carrega corretamente - O console exibirá mensagens "Loaded [font] for [original]"
Posição do texto deslocada?
- Use o
Developer Toolkitou outra ferramenta para encontrar o caminho do GameObject - Adicione ajuste de posição no
config.txt - Teste com recarga (F8)
& "C:\Program Files\Microsoft Visual Studio\18\Community\MSBuild\Current\Bin\MSBuild.exe" ".\MWC_Localization_Core.sln" /p:Configuration=Release