Ask an AI about this

This is where the actual translating happens: a side-by-side view of the game's original text and your version, with filters, translation memory, and machine assist to speed you up.

The Translate page

This is where the actual translating happens: a side-by-side view of the game's original text and your version, with filters, translation memory, and machine assist to speed you up.

The Translate page is where you'll spend most of your time as a translator, so it's built like a good workbench: everything within reach, nothing in the way. The idea is simple. The game's text arrives as a long list of strings (a menu label, an item name, one line of dialogue each), and you work through them: original on the left, your translation on the right. Everything else on the page exists to make that loop faster and more consistent.

8,413Translated4,070Not translated12,483Total strings
67.4%
Done
NPC_BENCH_REST_02

Source · English

Rest here. The kingdom can wait a moment longer.

● Target · Japanese

ここで休むといい。王国はもう少し待てる。

20 charsSaves itself as you type
One string, start to finish. Nothing is submitted and no button is pressed: the row goes from To do to Done the moment there is text in the box, and the counters at the top move with it.

The string list

Here's a real row, editable. Try typing into the right side:

To do
NPC_MELINA_GREET_01
Source · English
Ah, Tarnished. I have been waiting for you at the foot of the Erdtree, {player_name}.
● Target · Japanese
AI suggestionああ、褪せ人よ。黄金樹のふもとで、ずっと待っていた、{player_name}。
NPC · Dialogue
0 chars
Ctrl→nextCtrl←prev
One string from a game. The number on the left is its place in the list; the key and file path beside it tell you where it lives in the game. The speaker icon plays the original voice line when there is one. The {player_name} token is tinted because the game fills it in while it runs, so it has to survive into your translation (more on those below).
WhereWhat it does
Status badgesEvery row reads To do or Done, and a row you have marked "no translation needed" says so instead. Done arrives the moment the box has text in it, which makes the remaining work visible as you scroll.
Quick filtersThree pills above the list: All, Untranslated, and With audio. Untranslated is the one you'll live in. With audio counts a line spoken inside a longer recording too, so a cutscene's lines are in it even though no clip belongs to any one of them.
Numbers and the countRows are numbered by their place in the list, and the toolbar says how many strings match the filters you have on. Narrow to one label or search for a word and the count tells you the size of what is left, while the numbers tell you how far into it you have scrolled.
Search and sortSearch runs over both the source and your translation. The sort menu reorders the list thirteen ways, including untranslated first, recently updated, and AI translated first.
FilesThe left rail groups the game's text by file with a percentage on each, so "finish chapter 2" is a click rather than a search.
LabelsTag rows (NPC dialogue, UI, items) and filter by tag. Useful for splitting work with teammates or doing all of one kind of text in a sitting.
No translation neededSome strings are asset names or debug text that must stay in English. Mark one and it drops out of every coverage number instead of sitting there as unfinished work forever.

Where the strings come from

Most Unreal games keep their text in translation bundles, one per language, and that is what Tranzio reads when you add a game. Some keep part of it somewhere else: inside the game's own asset files, in what Unreal calls a string table. Nothing about those strings appears in any translation bundle, so a tool that only reads bundles leaves them in English no matter how complete the translation looks.

A third arrangement is a data table: a spreadsheet inside the game with one row per line and one column per language. Games that ship voice acting often keep their whole script this way, because the row's name is also the name of the recording. Here too nothing reaches a translation bundle, and the gap can be most of the game: one such title keeps 2,117 menu and document strings in its bundles and all 3,356 of its spoken lines in a single table.

A few studios skip Unreal's system altogether and invent their own text format. Those games ship a translation bundle that is technically present and completely empty, which is the most confusing case of all: everything looks like it worked, and the editor opens with almost nothing in it.

Tranzio reads all four. Each source shows up in the list as its own document, named after the file it lives in, and they all translate exactly like everything else. At build time the last three take a different road home: instead of writing a translation bundle, Tranzio rewrites the file itself around your text and packs the rewritten copy. You do not have to know which kind a string is, and nothing in the game folder is modified either way.

A data table is the one case where Tranzio has to choose what to overwrite, since every language sits in the same file. It writes over the column of the language you are translating from, which is the one the game reads while you are playing it, so your text appears exactly where the original did.

How much of a game lives outside the bundle varies wildly. Little Nightmares II keeps its entire menu and every tutorial hint in string tables, 208 strings that were invisible before. Hogwarts Legacy is the extreme case: its translation bundles hold one placeholder string between them, and all 53,844 of its real lines are in a format Avalanche wrote for themselves. Plenty of other games keep everything in the bundle and have none of this.

If a game really does keep its text somewhere Tranzio cannot read yet, the translate-game run says so at the end rather than leaving you to work it out from an empty editor.

Two ways to work

The page has two shapes and a toggle in its header. Workspace is the three-pane view: files on the left, the string list in the middle, and translation memory, string info, audio and comments on the right. Focus gives you one string at a time, big, with the same panels kept beside it and everything a row can do in the toolbar above it: play the audio, see the pictures, translate with AI, bookmark, flag, delete. Panels hides the side column for a long dialogue session, and Esc brings the workspace back.

Files
Strings
Context

Files on the left, the string list in the middle, memory and context on the right.

The same page, two shapes. Focus keeps the panels beside the line, and one switch hides them.

Your progress, always visible

Five cards sit under the page title and update as you type: how many strings there are in total, how many are translated, how many are not, how many you have excused from translation, and how many carry a voice line. Watching the second number climb is half the motivation.

Total strings
12,483
Japanese
Translated
8,412
67.4% done
Not translated
4,071
32.6% left
No need to translate
216
1.7% of all
With audio
2,841
22.8% voiced
The stats strip from the top of the page. The percentages under each number are the share of the whole game, so you can see progress without doing arithmetic.

Bookmarks, for coming back to a line

Some lines you cannot finish on the spot. A pun with no obvious equivalent, a term the team has not settled on, a string whose context you want to check in-game first. Click the bookmark icon on a card (or the button in Focus mode) and the line joins a list in the Marks tab of the left sidebar. Clicking it there takes you straight back, however deep in the document it sits.

Bookmarks are yours alone. They live on this computer, they are never uploaded, and nobody else on the adaptation sees them, so you can flag anything you like without it reading as an instruction to a teammate. They also never travel inside a published build.

The Marks tab. A note is optional; without one the row shows when you flagged it. Removing a bookmark leaves the translation untouched.

Saving your work

Typing does not write to the database straight away. Each line you change is held as a draft, and a bar appears along the bottom of the page counting them: 3 unsaved changes. That bar is the thing to watch, because it is the only place the count lives.

ControlWhat it does
Save allWrites every draft you have open to your computer at once. The button carries the count, so you always know how much is pending.
⌘ + SThe same thing from the keyboard, without reaching for the bar.
DiscardThrows every pending draft away and reloads the saved text. There is no undo for this, so read the count first.

Because drafts are not written until you save them, the bar showing a count is your cue that there is work in the page that is not yet on disk. Save before you close the game or switch to another one.

Placeholders, handle with care

Some strings contain tokens like {playerName}, %d, or <color>. The game fills these in (or styles text with them) while running: %d might become "42", {playerName} becomes whatever the player typed. Treat them as sealed boxes: move them to wherever your language's grammar wants them in the sentence, but never translate, respell, or delete them.

Moved, not touchedWorks

What you write

{player_name}、骨を%d個あつめてくれ。

What the player sees

Hornet、骨を12個あつめてくれ。

Both tokens survived. Word order is yours to change.

One line written four ways, with what the game prints underneath each. Only the first take leaves the tokens alone, and it is the only one that works.

A missing or mistyped placeholder can crash the game or print blank text at that spot. Nothing checks this for you yet, so it is worth a glance every time a row has a token in it: count the tokens in the source, count them in yours, and make sure they are spelled identically.

Translation memory

Games repeat themselves constantly, and so will you. As you move onto a string, Tranzio searches everything you have already translated in this project for lines that read like it and shows the closest matches with a similarity score. Click one and it drops into your box, ready to adjust.

Translation memory · 2 matches
Translation memory for the string in hand. A 94% match usually needs one word changed; a 71% match is a starting point rather than an answer.

Identical strings, settled at once

Under it sits a stricter panel: Same source, for strings whose source text is exactly identical. A game can carry the same "Continue" under forty different keys, and the panel lists them one row per string, each with the key and file that locate it and whatever is written for it today. Translated rows come first, identical wordings sit together, and the ones nobody has touched are listed too. Only an exact match counts: "NEW GAME" never reaches "Begin a new game", however close the two read.

Same source5 strings

This source is translated 2 different ways. Pick one to keep them consistent.

Where else it appears
  • /UI_MAINMENU_NEWGAMEMainMenu_Game.locres

    新しいゲーム

    Same as yours
  • /UI_NEWGAME_TITLEMainMenu_Game.locres

    新しいゲーム

    Same as yours
  • /UI_PAUSE_NEWGAMEHUD_Tooltips.locres

    ニューゲーム

  • /UI_TITLE_NEWGAME_CONFIRMSettings.locres

    Not translated yet

Four keys shipping the same English, saying two different things. Reading the list top to bottom is the fastest way to catch that.

It works in both directions, which is the useful part.

WhereWhat it does
Copy to your translationPulls that row's wording into the box you are editing, replacing what is in it. Good when a twin already got it right. A row that already matches what you have says so instead of offering the button.
Apply your translation to allPushes the wording in your box out to every identical string at once. This is the alternative to searching the project and retyping a phrase forty times after you change your mind about it.

The push asks before it writes, because it can overwrite work. The confirmation shows the exact source being matched, the wording about to go in, and the wordings about to be replaced, and it lets you choose between all identical strings and only the empty ones. Afterwards the toast carries an Undo that puts every previous translation back, so settling on a phrase is never a decision you have to be sure about in advance.

Repeated English does not always want repeated target text. A noun and a button label can share a word in English and need different wording in yours. Read the list before you push, and use "only the empty ones" when you are filling blanks rather than settling an argument.

About the line you clicked

When a line is selected, the panel on the right starts with facts about it: which of the game's files it lives in, its name inside the game, and whether the game speaks it. The Skip switch marks a line you do not want to translate at all, such as a code, a file name or a person's name; skipped lines stay in the original language and stop counting against your progress.

Seeing and hearing the line in the game

Under the facts come the things that show the line in place. Where it appears holds pictures of the moment the line shows on screen, taken from videos you added in the Studio, which tell you how much room the words have and what tone the scene needs. Videos lists the videos the line is in, so you can watch the moment. And when the game speaks the line, the voice is there to play, so you hear the pace and the feeling before you write your version.

Comments on a line

The last block is notes between you and your teammates about this one line: a question, the reason for a choice, a reminder to come back. Comments stay with the line inside Tranzio and never go into the game.

Machine assist

The Translate with AI button in the header pre-fills rows for you. You choose what it should produce (text, labels, or both), which strings it works on, and how many of them. You do not choose a model: whoever set up your server picks one for everybody, so every translation on a game comes from the same one. Tranzio prices the run before it starts, on the strings it will send and how much text is in them, and streams the results in as they arrive so you can watch and stop. That price is the most it can cost: you are charged for the lines that come back, so a run you stop, or one the model only half answers, costs less.

One line at a time is quicker. The sparkle on a row, the button under String info and the one in Focus's toolbar open a small card instead of the dialog: what that line will cost, what you have left, and two ways on. Translate now runs it at once, text only, with your notes and glossary terms as every run has them. Options opens the dialog with the line already picked, for when you want labels too or a few more lines with it.

One line at a time works too. Every row has an AI button beside its bookmark, and the string panel on the right has one as well, so a line you would rather not start from a blank box takes one click. It is charged the same way, and a line that already has a translation is done again rather than skipped.

Tranzio also remembers. A line another game already taught it, such as a menu item or a button label, is answered from that memory rather than sent to a model again, and a translator who corrected such a line is what every later game gets. The price of a run is the same either way; what changes is that a common line is right more often.

When a run assigns labels it may only use the categories the game allows, which you curate in the dialog under Labels it may use. Take out the ones this game does not have (no achievements, no codex) and the model stops offering them, on every route. The list is kept with the game, so you set it once rather than per run.

For long games this is a real accelerator: fixing a decent draft is much faster than typing from zero. Just never publish the raw output. Automatic translations miss tone, context, and every joke; a machine line is a starting point, and your edit is the translation. Rows written by AI are marked as such in the string info panel, so you can always tell what still needs a human pass.

Some lines come back and are not stored. Tranzio reads every machine-written line before it saves it, and refuses one that is not a translation: the original text handed back unchanged, text written in the wrong alphabet for the language you are translating into, or a line that dropped a {Placeholder} the game fills in at runtime. Those strings stay in the untranslated list rather than being quietly marked done, and you are not charged for them. The run says how many were left out and why, and does not spend a second request on them: the same line gets the same answer, so they are yours to write. A line that is genuinely meant to stay as it is, a driver's name or a sponsor, is kept: the check only refuses a string that had words to translate in the first place.

When it assigns labels it also decides which of them are speech, and ticks Dialogue / subtitle label on those as it creates them. That is the box the Audio and Studio tools filter on to find the lines an actor has to record, so a game labeled this way arrives ready to dub rather than needing every label opened and ticked by hand. It only ever sets it on a label it creates: one you already made keeps whatever you decided about it.

Keyboard flow

The editor is built to keep your hands on the keyboard:

ShortcutAction
Ctrl+SSave every pending change
Ctrl+FFocus the search box
Ctrl+→Next entry
Ctrl+←Previous entry
EscExit focus mode

Keeping quality high

  • Watch the coverage numbers on the Build page. Text, audio and fonts each get their own percentage there, which is the clearest picture of what is actually left.
  • Use the identical-source panel to settle on one wording per repeated string, rather than discovering three of them after release.
  • Play your own translation early and often. Text that looks perfect in a list can overflow a button or read strangely in a cutscene. Build, install locally, and see it in-game.