06 - Tags e variáveis: o que são e como funcionam
Uma breve explicação sobre o funcionamento de tags e variáveis.
Tradução de videogame, diferente de áreas mais tradicionais, como tradução literária ou legendagem, exige um certo conhecimento técnico sobre computadores e software. Se você parar para pensar, faz sentido: jogos são programas sendo executados em um computador — e videogames não passam de computadores com função exclusiva — então, entender um pouco sobre como as coisas decorrem por trás dos panos dá uma grande vantagem no ato de traduzir em si.
Aqui, vou tentar explicar um pouco sobre os aspectos que tradutores de videogame precisam saber porque, mais cedo ou mais tarde, vão acabar encontrando isso em algum trabalho.
Jogos serem software significa que tiram completa vantagem de certas questões técnicas na programação, permitindo criar o aspecto interativo que tanto conhecemos. A questão mais relevante para tradutores terem em mente é, especificamente, as…
Variáveis
Em programação, há um tipo de parâmetro pré-definido pelo programador que é chamado de variável: um pedaço de código que contém um valor simbólico ou numérico capaz de ser alterado por outros parâmetros pré-definidos. Quando você começa um RPG e precisa dar nome ao protagonista, por exemplo, o nome fica armazenado em uma variável, e esta variável vai ser indicada no texto dentro do código — seja em diálogos ou na interface — toda vez que for necessário citar o nome do protagonista.
Outro uso comum é em jogos que indicam valores numéricos que se alteram de acordo com outros valores numéricos, como ao indicar o dano que o personagem causa ao equipar uma arma. Qualquer valor numérico também pode ser uma variável, e um pode influenciar o outro de diversas maneiras, estando ou não sob controle direto do jogador.
Podemos dizer que valores ou símbolos pré-definidos, que não podem ser alterados no jogo, são constantes, enquanto que valores ou símbolos que podem ser alterados no jogo, seja diretamente pelo jogador ou não, são… variáveis. É daí que vem o termo.
“Ah, mas o nome do personagem não vai mudar durante o jogo.” Sim, não vai, mas como o jogador define o nome, e ele pode ser diferente a cada partida, o nome é uma variável. Por exemplo: o nome que você dá ao seu personagem em Skyrim é uma variável, porque a cada novo jogo você pode dar um nome diferente e ele pode aparecer em textos enquanto joga; já o nome da protagonista de Tomb Raider, não, porque ela vai sempre ser a Lara Croft em todo texto dentro do jogo.
Para evitar que os tradutores tenham que digitar código durante a tradução — já que um pequeno typo pode quebrar o código ou gerar bugs — as CAT Tools possuem configurações que trocam códigos por…
Tags
Qualquer coisa que não seja parte obrigatória de um texto a ser traduzido pode ser transformada em tag, um símbolo substituto que reserva aquele espaço no texto para o que quer que deva estar ali, sem alteração do tradutor.
Na imagem abaixo, por exemplo, eu transformei partes do código — que não pode ser removido — em tags dentro do MemoQ e, ao apertar F9, ele simplesmente copia um bloco por vez do lado do source para o lado do target, na exata posição do cursor, garantindo que tudo seja mantido como deve ser.

(O trabalho poderia ter sido melhor, mas isso já serve para fins didáticos, que era mostrar a aparência de uma tag. Por favor, não me julguem, hahaha.)
Variáveis sempre são pedaços de código, então, em um arquivo que foi preparado adequadamente, elas sempre aparecerão como tags. Porém, não há um padrão de formato para isso, pois depende de como cada jogo foi programado, então enquanto em um projeto a variável pode ser indicada como $1, em outro pode ser <name>, e assim por diante. Cabe sempre ao tradutor ter o desconfiômetro ligado para reconhecer e lidar com essas questões, nem que seja para perguntar ao cliente o que aquela variável significa e confirmar como será usada.
Porém, outras coisas também podem ser tags. Na imagem acima, devido ao mau uso de filtros por mim durante a importação (haha), pedaços de código importantes acabaram saindo junto ao texto, então foram transformados em tags para que o tradutor não tenha que digitar uma sequência complicada de caracteres sem cometer typos1.
Mas, mais do que isso, textos que vão ser usados em videogame frequentemente utilizam uma formatação diferente da existente em processadores de texto comuns, como o Word2. Frequentemente, jogos utilizam códigos de html, uma linguagem de marcação da internet, então coisas como <br>, <p> e <em>3 são transformadas em tags, bastando apenas o clique de um botão para que o tradutor posicione corretamente sem medo de errar o código.
Ou seja, podemos dizer que tags são pedaços de código que foram cristalizados no texto para o benefício do tradutor.
Exemplos de uso
Explicar coisas na teoria apenas pode ser meio confuso, então vou dar aqui alguns exemplos. Por questões de confidencialidade, não posso compartilhar exemplos reais ou imagens do meu MemoQ com projetos abertos, então vou seguir com exemplos hipotéticos.
Nome de personagem
Considere a seguinte frase:
Insert your character name: <character_name>
Como explicado na parte de variáveis, todo personagem que você pode nomear, em qualquer jogo, vai ter esse nome armazenado em uma variável. Tudo que está entre “<“ e “>” vai ser transformado em uma única tag pela CAT Tool, permitindo que o tradutor utilize o comando de copiar tag4 em vez de ter que digitar “<character_name>” toda vez que a variável aparecer (tal como estou fazendo ao digitar esse texto).
Traduzido, esse texto ficaria da seguinte forma:
Insira um nome: <character_name>5
Vamos supor que o nome do personagem seja “Zé”. Isso significa que, dentro do jogo, a linha apareceria como:
Insira um nome: Zé
Como explicado anteriormente, sempre que for necessário referenciar o personagem nomeado pelo jogador, o texto do jogo vai usar uma variável. Sendo assim, caso o jogador encontre um NPC6, a primeira linha dita pelo NPC pode ser algo tipo:
Hello, <character_name>!
Que traduzido, dentro da CAT Tool, seria
Olá, <character_name>!
Mas, dentro do jogo, vai aparecer como:
Olá, Zé!
Nesse caso, a variável é usada para armazenar o nome do personagem, mas outras variáveis podem conter outros tipos de palavras, como algo tipo <character_class> em um RPG para exibir a classe do personagem. As possibilidades são infinitas, e cada projeto vai ter sua própria forma de funcionamento. A própria variável pode mudar entre projetos, onde no projeto X ela é <character_name>, mas no projeto Y pode ser $1 ou {name} ou, literalmente, qualquer outra coisa.
Valores numéricos
Outra função da variável é armazenar valores que podem… bem, variar durante o jogo. O uso em “dano”, para indicar quanto de dano um personagem vai causar ao equipar uma certa arma, seria algo tipo:
Dano: <d_value>
E pronto. Só isso. Mas esse valor também pode aparecer em um texto corrido, como ao abrir o inventário para equipar a arma. Um caso assim poderia ser, por exemplo:
Esta arma causa <d_value> de dano de impacto.
Imagine agora que uma arma pode causar dano de impacto e de fogo ao mesmo tempo, e os dois tipos de dano são definidos no texto. Teríamos, então:
Esta arma causa <d_value> de dano de impacto e <f_value> de dano de fogo.
Nesse caso, <d_value> é a variável para dano de impacto, e <f_value> é a variável para dano de fogo, e cada uma sempre vai referenciar esse tipo específico de dano. Também convém dizer que, diferente do exemplo anterior, as variáveis não são definidas pelo jogador, mas por uma matemática interna do próprio jogo que calcula esses valores. A função do tradutor é apenas encaixar a variável em um lugar da frase que faça sentido no português.
O exemplo acima, visto dentro do jogo, poderia ser algo como:
Esta arma causa 15 de dano de impacto e 10 de dano de fogo.
Formatação
Como falado anteriormente, a formatação de texto frequentemente utiliza tags em vez de comandos típicos de processadores de texto (embora eles ainda estejam disponíveis). O uso do itálico para destacar palavras, por exemplo, costuma ser definido pelas tags <em> e </em>, onde a primeira tag marca o início do itálico e a segunda, o fim. Então, esta frase aqui:
Você disse <em>mesmo</em> isso?
Apareceria no jogo desta forma:
Você disse mesmo isso?
Assim como em outros casos, não há garantias de que as tags serão sempre as mesmas em todos os projetos, mas, para os casos de formatação de texto, elas costumam ser inspiradas nos comandos de html, então é possível aprender a reconhecer o que cada uma faz — ou buscar o significado na internet.
Vale dizer que, nessa categoria, além de itálico, quebra de linha e quebra de parágrafo, também entram coisas como negrito, cores, efeitos visuais nas palavras ou símbolos incomuns — como emojis — e qualquer outra alteração gráfica na renderização da fonte do texto.
Enfim
Esse artigo já está um pouco longo e não quero complicar demais as coisas, mas ainda há alguns pontos importantes para abordar. Vou tocar neles na próxima newsletter, para evitar overdose de informação nessa, já que são coisas relativamente simples, mas que dependem de compreender bem esses conceitos básicos. Os comentários estão (ou devem estar) abertos, então caso algo tenha ficado confuso, basta perguntar que respondo logo que for possível.
Antes de encerrar, eu queria relembrar a importância do cargo de engenheiro de localização, que é meio obscuro. Basta ver a bagunça que o texto na imagem das tags dentro do MemoQ ficou para perceber a falta que faz. Um engenheiro (algo que estou longe de ser) saberia extrair e filtrar melhor as informações do arquivo para que, ao adicionar ele no MemoQ, apenas a parte que realmente deve ser traduzida — as frases entre aspas, nesse caso — aparecesse na coluna do source.
Traduzir videogame é um trabalho em equipe, e há muito mais pessoas envolvidas nesse processo do que apenas o tradutor e revisor. Pretendo explicar melhor o trabalho que o engenheiro de localização faz em uma newsletter futura.
A próxima newsletter deve sair algum dia do mês que vem, dando continuidade ao assunto de tags e variáveis.
Nos vemos lá.
Tags também não costumam entrar na contagem de palavras do texto a traduzir, barateando o custo da tradução para o cliente em casos onde não é possível remover parte do código. ↩
Esse tipo de formatação usada por processadores de texto é chamada de Rich Text ↩
Comandos para, respectivamente: quebra de linha, quebra de parágrafo, início de itálico. ↩
F9 no MemoQ e, salvo engano, F8 no Phrase, mas toda CAT Tool tem um botão ou atalho que permite passar tags to source para o target diretamente. ↩
Não usei “Insira o nome do personagem” porque, dessa maneira, a linha serve para personagens de qualquer gênero. ↩
Non-playable character, ou personagem não jogável, às vezes abreviado em português como PNJ. São todos os personagens controlados pelo computador. ↩
Add a comment: