[PEDIDO] The MISSING: J.J. Macfield and the Island of Memories

Local onde devem ser feitos os pedidos de traduções à Tribo Gamer. Confira se já existe um pedido de tradução para o jogo antes de postar um novo.

[PEDIDO] The MISSING: J.J. Macfield and the Island of Memories

Em 13 Fev 2019, 19:21

Imagem
Gênero: Ação, Aventura, Indie - Desenvolvedor: White Owls Inc. - Distribuidora: Arc System Works - Lançamento: 11/out/2018

J.J percorre uma ilha para encontrar sua melhor amiga, que desapareceu durante uma viagem de acampamento. Para salvar sua melhor amiga, ela coloca seu próprio corpo e vida em risco, morrendo e revivendo infinitamente, à medida que avança.

Re: [PEDIDO] The MISSING: J.J. Macfield and the Island of Memories

Em 13 Fev 2019, 19:27

Estou traduzindo!

Imagem
Imagem

Agradecimentos ao Kaplas por ter me passado a tool.

Só espero que não aconteça como a tradução do The Bunker, onde os arquivos que eu traduzi são incompatíveis com a versão mais recente da Steam.
Meu jogo é de outubro de 2018 (da igg games).

Re: [PEDIDO] The MISSING: J.J. Macfield and the Island of Memories

Em 14 Fev 2019, 08:05

Parece interessante esse jogo brisado, com a tradução fica bem melhor para entender.
Caso deseja apoiar minhas traduções ou agradecer: Imagem

Imagem

Re: [PEDIDO] The MISSING: J.J. Macfield and the Island of Memories

Em 16 Fev 2019, 14:59

Tradução lançada:
https://drive.google.com/file/d/1ZzYLGr ... G7_r7/view

EDIT

Infelizmente parece que as mensagens no celular ficam cortadas por limite de espaço na tela. (não sei se acontece com todas)
Infelizmente eu não vou encurta-las. Já gastei várias horas traduzindo o jogo. Estou cansado de mexer na tradução dele.
Só vou zerar e não vou mais mexer com ele.

E também o que importa mesmo são as legendas da história.

EDIT2
Esse é o problema:
Imagem

A solução seria editar todos os textos, abreviando o máximo possível. Mas isso vai demorar tanto quanto a própria tradução. Então não vou fazer.

Re: [PEDIDO] The MISSING: J.J. Macfield and the Island of Memories

Em 16 Fev 2019, 16:19

Se alguém quiser encurtar as mensagens aqui está o source da tradução + a tool: https://drive.google.com/file/d/1bTo0ah ... 340WT/view

Clique em ''archivo - abrir traducion'' para abir um arquivo de texto da pasta ''Fonte Editável'' e ''archivo - exportar'' para exportar o .txt

Desculpem, mas não tenho a intenção de mexer nesse jogo novamente. Na verdade, se eu soubesse dessa limitação e nem teria traduzido. Ela é igual a limitação ao traduzir com o hex editor. A linha deve ser menor ou igual a original. É uma dor de cabeça.
Mas é possível fazer, abreviando.

Re: [PEDIDO] The MISSING: J.J. Macfield and the Island of Memories

Em 16 Fev 2019, 20:53

Porque diabos não lança pela Tribo? :vish:
Imagem

"O ontem é história, o amanhã é um mistério, mas o hoje é uma dádiva. É por isso que se chama presente."
Imagem
Traduções
Imagem

Re: [PEDIDO] The MISSING: J.J. Macfield and the Island of Memories

Em 16 Fev 2019, 21:10

Ogoshi escreveu:
16 Fev 2019, 20:53
Porque diabos não lança pela Tribo? :vish:
Eu já falei com o Herdell, ele deve estar baixando o jogo pra testar.

Mas o problema do texto nas mensagens é algo bem ruim porque as mensagens são uns 70% dos textos do jogo.
São 7 contatos com 200 a 300 mensagens curtas cada um.
O único que faz falta mesmo são os textos da mãe da personagem. Lá tem uma revelação muito importante, e os outros 6 contatos se conectam a ela.

Se desse pra editar a área de exibição das mensagens...
Talvez pelos arquivos .sprite?. As mensagens do professor tem uma área de exibição enorme, se isso for por .sprite então daria pra criar uma cópia e substituir as outras.

edit
Dei uma olhada rápida e não parece ser por .sprite. Talvez a configuração da área de exibição esteja numa .dll ou até mesmo no executável. Eu não sei onde está, não sei editar e nem sei se seria possível.
A solução seria abreviar as mensagens, trocando por exemplo ''muito bom'' para ''mt bom'' etc. Se aparecer alguém pra fazer esses ajustes será ótimo, mas eu duvido que vão se oferecer.
Eu não vou mexer até porque não achei o jogo tão legal quanto eu pensei que seria. Vou zerar logo e partir pra outro.

Mesmo assim, ter legendas durante o gameplay já é muito bom.

Re: [PEDIDO] The MISSING: J.J. Macfield and the Island of Memories

Em 17 Fev 2019, 07:30

Vi na imagem que vc postou que alguns dos textos possuem mais de uma linha, o "txt" não possui algum caractere de controle para quebra de linha? Algo tipo \n ou \r ?

Re: [PEDIDO] The MISSING: J.J. Macfield and the Island of Memories

Em 17 Fev 2019, 10:19

Delutto escreveu:
17 Fev 2019, 07:30
Vi na imagem que vc postou que alguns dos textos possuem mais de uma linha, o "txt" não possui algum caractere de controle para quebra de linha? Algo tipo \n ou \r ?
Infelizmente não. Ou então o programa não as exibe. E tem uns números estranhos ao longo de todos os arquivos, como pode ver no final da imagem.
Imagem
Aqui estão os .txt originais e os .txt traduzidos, caso queira dar uma olhada: https://drive.google.com/file/d/1X6Nxrs ... 4PTx3/view
Realmente, os próprios textos controlarem a área de exibição faz sentido.

Eu detesto fazer coisas de forma malfeita, mas eu passei 3 dias usando todo o meu tempo livre traduzindo, foram horas e mais horas gastas, então quando eu abro o programa pra encurtar já bate um desanimo gigantesco por ter que ''refazer'' tudo. E deixar pra corrigir em outro momento não vai dar, eu sempre me sobrecarrego de coisas pra fazer, nesse momento mesmo já estou de olho nos textos do NightCry.

EDIT

O jogo NightCry possui essa quebra de linha, como pode ver na imagem: https://i.imgur.com/eWY1XrX.jpg
O que devo fazer nesse caso?

Re: [PEDIDO] The MISSING: J.J. Macfield and the Island of Memories

Em 17 Fev 2019, 14:40

Matt Rick escreveu:
17 Fev 2019, 10:19
Aqui estão os .txt originais e os .txt traduzidos, caso queira dar uma olhada...
Precisava mesmo é dos arquivos originais do jogo, os quais contém esses textos.
Matt Rick escreveu:
17 Fev 2019, 10:19
O que devo fazer nesse caso?
Esses "\n" controlam a quebra de linha, ou seja, o texto após essa tag vai aparecer abaixo do anterior, daí se a tradução extrapolar a área de exibição, basta vc mudar essa tag de lugar.

Re: [PEDIDO] The MISSING: J.J. Macfield and the Island of Memories

Em 17 Fev 2019, 15:39

Delutto escreveu:
17 Fev 2019, 14:40
Matt Rick escreveu:
17 Fev 2019, 10:19
Aqui estão os .txt originais e os .txt traduzidos, caso queira dar uma olhada...
Precisava mesmo é dos arquivos originais do jogo, os quais contém esses textos.
Então, os .txt são os arquivos originais do jogo, acontece que eles são encriptados, por isso é necessária aquela tool pra editar.
Como eu disse, aqui está os .txt originais e os traduzidos: https://drive.google.com/file/d/1X6Nxrs ... 4PTx3/view

E a tool está aqui https://drive.google.com/file/d/1bTo0ah ... 340WT/view

Re: [PEDIDO] The MISSING: J.J. Macfield and the Island of Memories

Em 01 Mar 2019, 03:52

A área de exibição das mensagens pode ser editada, vou olhar isso depois!
E se for rápido de fazer, eu mesmo atualizo a tradução.
Mas se demorar ou for difícil, vou deixar para outra pessoa fazer, caso queira...

Mensagem do Kaplas:
Hello Matt! I'm sorry, but the other day I was busy and I forgot to tell you about how to edit the message box sizes in the phone for the translation. These are the full instructions to translate the game:



First, you need to extract this files:

- msg????en.txt
- resources_00001.-13
- mplus-1m-regular.ttf (you need to install in your system to calculate the text width)
- TT_NewCinemaB-D.ttf (I had to edit this font to make "áéíóú" have the same width than "aeiou")

You can translate msg files with my app.

The resources_00001.-13 contains the size of the textboxes where the mobile messages appear. Every box is associated with a string by a internal id. Its structure is:

- At offset 0x150 there is stored the number of textboxes in the file
- At offset 0x154 starts the first textbox info. Each registry have this structure
· Int32 idNameLength;
· string idName;
· Int32 id;
· Int32 languageCount; // Always 4
· float japaneseBoxWidth;
· float japaneseBoxHeight;
· float englishBoxWidth;
· float englishBoxHeight;
· float chineseBoxWidth;
· float chineseBoxHeight;
· float koreanBoxWidth;
· float koreanBoxHeight;

These are the internal id of each string:

https://mega.nz/#!KVEVDaiL!7U2-GJ-OO0dj ... p5XbXa3GVA

So, when you translate any of this strings in the msg files, you have to update its textbox size in this file.

What I did was put all the strings into a excel file with their id and used this macro to calculate the box size:

Function TextSize(str As String) As String
Dim splitedText() As String
splitedText = Split(str, " ")

Dim lines As Integer
lines = 1
Dim maxWidth As Double
maxWidth = 0
Dim acum As Double
If (Left$(str, 1) = " ") Then
acum = 43.5
Else
acum = 34
End If
Dim i As Integer
Dim tempWidth As Double
For i = 0 To UBound(splitedText)
tempWidth = GetWordWidth(splitedText(i), i <> UBound(splitedText))
If (acum + tempWidth < 347.5) Then
acum = acum + tempWidth
If acum > maxWidth Then
maxWidth = acum
End If
Else
acum = 34 + tempWidth
lines = lines + 1
End If
Next i

Dim height As Integer
height = lines * 24 + 28

TextSize = RoundUp(maxWidth) & ";" & height
End Function

Function GetWordWidth(word As String, addSpace As Boolean) As Double
Dim char As String
Dim i As Integer

Dim result As Double
result = 0
For i = 1 To Len(word)
char = Mid$(word, i, 1)
result = result + GetCharWidth(char)
Next i

If addSpace Then
result = result + 9.5
End If

GetWordWidth = result
End Function

Function GetCharWidth(char As String) As Double
Dim charWidth As Integer

If (char = " " Or char = "'") Then
charWidth = 9
ElseIf (Asc(char) = 160) Then
charWidth = 18
Else
charWidth = Application.Run("PixelWidth", char, "M+ 1m", 18) ' This is a function from SeoTools (https://seotoolsforexcel.com/)
End If

If charWidth = 9 Then
GetCharWidth = 9.5
Else
GetCharWidth = 19.5
End If
End Function

This works in most of the strings, but sometimes you need to edit manually because the game don't split the words where it is supposed to do.

Then I exported a csv file with the id and the size and used this app to update the resources_00001.-13:

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Text;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Gibbed.IO;

namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var dict = new Dictionary<int, SizeF>();
var lines = File.ReadAllLines(@"F:\tmp\Traduccion JJ\boxsizes.csv");
foreach (var line in lines)
{
var splt = line.Split(';');
var key = Convert.ToInt32(splt[0]);
var width = Convert.ToSingle(splt[1]);
var height = Convert.ToSingle(splt[2]);

var sz = new SizeF(width, height);

dict.Add(key, sz);
}

using (var input = new BinaryReader(new FileStream(@"F:\tmp\Traduccion JJ\original_resources_00001.-13", FileMode.Open)))
using (var output = new BinaryWriter(new FileStream(@"G:\Games\The Missing JJ Macfield and the Island of Memories\TheMISSING_Data\Unity_Assets_Files\resources\resources_00001.-13", FileMode.Open)))
{
input.Seek(0x150, SeekOrigin.Begin);
output.Seek(0x150, SeekOrigin.Begin);
var heightCount = input.ReadInt32();
for (var i = 0; i < heightCount; i++)
{
var nameLength = input.ReadInt32();
var name = input.ReadChars(nameLength + 1);
var msgEnum = input.ReadInt32();
input.ReadInt32();
input.ReadBytes(8);
output.Seek((int)input.BaseStream.Position, SeekOrigin.Begin);
if (dict.ContainsKey(msgEnum))
{
var sz = dict[msgEnum];
output.Write(sz.Width);
output.Write(sz.Height);
}

input.ReadBytes(24);
}
}
}
}
}


Best regards!
EDIT

Li rapidamente e não entendi como usar esses códigos que ele passou.

''What I did was put all the strings into a excel file with their id and used this macro to calculate the box size:''
e
''Then I exported a csv file with the id and the size and used this app to update the resources_00001.-13:''

Re: [PEDIDO] The MISSING: J.J. Macfield and the Island of Memories

Em 01 Mar 2019, 12:35

Hoje eu li o tutorial com mais atenção e infelizmente não entendi nada.
Tipo, como é que se abre o resources_00001.-13? e os scripts que ele passou, como se usa isso?

Re: [PEDIDO] The MISSING: J.J. Macfield and the Island of Memories

Em 01 Mar 2019, 18:33

Eu pedi uma explicação melhor ao Kaplas sobre como aumentar a área dos textos.
Ele disse que é necessário uma extensão pro excel chamada ''seotools'' que contém a ferramenta ''PixelWidth'' e é necessário usar um script que ele fez num tal de c#
Quem me acompanha aqui sabe que eu sou um cara muito esforçado e dedicado, mas isso ai tá completamente fora da minha alçada.
Eu não entendi absolutamente nada da explicação dele, e tenho três trabalhos da escola pra fazer. Então eu não posso gastar tempo quebrando a cabeça com isso. Eu conheço meus limites e sei que gastaria vários dias tentando entender e no fim não daria em nada.

Então deixo aqui, no spoiler, as instruções que ele me passou sobre como editar a área dos textos, no caso de alguém querer fazer essa expansão por mim:

Eu gastei mais 3 horas hoje revisando a tradução e traduzindo algumas linhas que deixei passar.
Aqui está o novo source da tradução: https://drive.google.com/file/d/1OtvFWd ... 4dqgR/view ele será necessário caso alguém queira fazer a expansão.

Instruções do Kaplas: (abra o spoiler) (é necessário ler a primeira mensagem dele, no spoiler da minha outra mensagem)
Hello Matt!



Ok, I'll try to explain better what I did to translate the game:



First, install mplus-1m-regular.ttf font in your system. It is the font used in the phone messages and you'll need it to be able to calculate the sizes.



Then, download and install https://seotoolsforexcel.com/

They are a collection of Excel tools. One of them is "PixelWidth" that calculate the width of a given string.

If you want to use this tools, you may need to purchase them (or search for a "pirate" version in internet).



Once installed, download this file https://mega.nz/#!KVEVDaiL!7U2-GJ-OO0dj ... p5XbXa3GVA and open it in Excel. You'll have 2 columns: A->"ID" and B->"STRING". Add a new column C with the translated texts.



Open the Visual Basic window in Excel and paste this code in a module:

Function TextSize(str As String) As String
Dim splitedText() As String
splitedText = Split(str, " ")

Dim lines As Integer
lines = 1
Dim maxWidth As Double
maxWidth = 0
Dim acum As Double
If (Left$(str, 1) = " ") Then
acum = 43.5
Else
acum = 34
End If
Dim i As Integer
Dim tempWidth As Double
For i = 0 To UBound(splitedText)
tempWidth = GetWordWidth(splitedText(i), i <> UBound(splitedText))
If (acum + tempWidth < 347.5) Then
acum = acum + tempWidth
If acum > maxWidth Then
maxWidth = acum
End If
Else
acum = 34 + tempWidth
lines = lines + 1
End If
Next i

Dim height As Integer
height = lines * 24 + 28

TextSize = RoundUp(maxWidth) & ";" & height
End Function

Function GetWordWidth(word As String, addSpace As Boolean) As Double
Dim char As String
Dim i As Integer

Dim result As Double
result = 0
For i = 1 To Len(word)
char = Mid$(word, i, 1)
result = result + GetCharWidth(char)
Next i

If addSpace Then
result = result + 9.5
End If

GetWordWidth = result
End Function

Function GetCharWidth(char As String) As Double
Dim charWidth As Integer

If (char = " " Or char = "'") Then
charWidth = 9
ElseIf (Asc(char) = 160) Then
charWidth = 18
Else
charWidth = Application.Run("PixelWidth", char, "M+ 1m", 18) ' This is a function from SeoTools (https://seotoolsforexcel.com/)
End If

If charWidth = 9 Then
GetCharWidth = 9.5
Else
GetCharWidth = 19.5
End If
End Function

It is a Excel function that calculates the box size needed for a given string.



Add the formula: "=TextSize($C2)" to the "D2" cell and propagate it down to cover all the strings.



So, at this moment, you have a Excel Sheet with 4 columns: ID, ORIGINAL TEXT, TRANSLATED TEXT, SIZE



Export columns "A" and "D" to a csv file using semicolons ( ; ) to separate fields. (I saved it as "F:\tmp\Traduccion JJ\boxsizes.csv". If you use other name or other path, you'll need to change it before compiling the second app)



Make a copy of the original resources_00001.-13 file. (I saved it as "F:\tmp\Traduccion JJ\original_resources_00001.-13". Same as before, if you save it to another path, you'll need to change it in the app)



Now you can compile and execute this app written in C#:

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Text;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Gibbed.IO;

namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var dict = new Dictionary<int, SizeF>();
var lines = File.ReadAllLines(@"F:\tmp\Traduccion JJ\boxsizes.csv");
foreach (var line in lines)
{
var splt = line.Split(';');
var key = Convert.ToInt32(splt[0]);
var width = Convert.ToSingle(splt[1]);
var height = Convert.ToSingle(splt[2]);

var sz = new SizeF(width, height);

dict.Add(key, sz);
}

using (var input = new BinaryReader(new FileStream(@"F:\tmp\Traduccion JJ\original_resources_00001.-13", FileMode.Open)))
using (var output = new BinaryWriter(new FileStream(@"G:\Games\The Missing JJ Macfield and the Island of Memories\TheMISSING_Data\Unity_Assets_Files\resources\resources_00001.-13", FileMode.Open)))
{
input.Seek(0x150, SeekOrigin.Begin);
output.Seek(0x150, SeekOrigin.Begin);
var heightCount = input.ReadInt32();
for (var i = 0; i < heightCount; i++)
{
var nameLength = input.ReadInt32();
var name = input.ReadChars(nameLength + 1);
var msgEnum = input.ReadInt32();
input.ReadInt32();
input.ReadBytes(8);
output.Seek((int)input.BaseStream.Position, SeekOrigin.Begin);
if (dict.ContainsKey(msgEnum))
{
var sz = dict[msgEnum];
output.Write(sz.Width);
output.Write(sz.Height);
}

input.ReadBytes(24);
}
}
}
}
}

It will read the "boxsizes.csv" file and update the "resources_00001.-13" located at "G:\Games\The Missing JJ Macfield and the Island of Memories\TheMISSING_Data\Unity_Assets_Files\resources\". As I said before, you'll have to edit the app code if you use different file paths.



Once finished, you can repack the game files and try it.



The function that calculates the box size isn't perfect, and some messages are cut off in the game. In this case, edit the box size by hand in the excel, export again the csv, run the c# app and test again. You'll need a 100% completed game to check if all the phone messages are correct.



I hope I've explained myself better now.



Best regards!
Essa é a segunda tradução que eu fiz ''atoa'', a primeira foi a do jogo ''The Bunker''. Confesso que isso arrancou parte da vontade que eu tenho de traduzir mais jogos.

Vou pedir ao Herdell para pelo menos criar a página do jogo para que eu possa postar a tradução do jeito que está na área de downloads, assim o trabalho não será totalmente perdido como foi no ''The Bunker''.

edit
Atualizei o arquivo do source da tradução, adicionando o arquivo resources_00001.-13 que o Kaplas mencionou
Editado pela última vez por Matt Rick em 01 Mar 2019, 19:55, em um total de 1 vez.

Re: [PEDIDO] The MISSING: J.J. Macfield and the Island of Memories

Em 01 Mar 2019, 19:30

Aqui está a tradução atualizada: https://drive.google.com/file/d/1YJHJgg ... fyBnB/view

Como eu disse, revisei os textos durante umas 3 horas, corrigi dezenas de erros de digitação e traduzi linhas que tinha deixado passar.
A explicação de como corrigir as mensagens do celular está ai, só precisa de alguém que entenda e queira corrigir.

Mesmo não dando pra ler as mensagens no celular, os diálogos in-game estão sem problema algum e é perfeitamente possível entender a história. Vai perder algumas informações, mas é melhor do que nada.

Bom, eu já fiz tudo o que podia fazer para esse jogo.


Voltar para “Pedido de Traduções”

Ir para

Quem está online


Usuários navegando neste fórum: Nenhum usuário registrado e 19 visitantes