v0.12.0
A month of work since v0.11.0. Two headlines: a whole family of games that showed nothing at all
is now reachable, and what the mod does to the game while its window is open is yours to decide.
More games reachable
Unity ships two interface systems. The mod only ever knew one of them.
- Interfaces built on UI Toolkit are translated now. Games that use it instead of the classic
UI showed nothing at all — the mod scanned forever and found no text. Text, fonts, image
replacement, exclusion patterns, font rules by pattern and the in-game inspector all work there,
by the same rules as everywhere else. Nothing new to learn. - The mod's icons no longer take some IL2CPP games down at startup. On builds where Unity had
stripped the constructors they used, the process died with no exception and no log line. An icon
that cannot be built now declines instead of taking the whole interface with it. - Every call to the site would have failed against a server that compresses its answers. The
mod asked for compression and never read it back. It has worked only because the site does not
compress today; the day that changed, every installed copy would have lost the site at once. - A machine set to Traditional Chinese is offered Traditional. It used to fall through to
Simplified.
The game stops reacting behind the mod's window
New Adaptation tab in Options. Typing a translation used to also walk, shoot and open the
game's menus.
- Take the keyboard. Keys go to the mod's window only. By default the game keeps its keys
until you actually type in a field or move through the interface. - Take clicks from the game's menus and take clicks from the game itself are two switches,
because they are two different things. Giving the menus back used to hand over every click as
well, so clicking beside the window fired a weapon. - Take mouse movement. Stops the camera turning while you use the window. Mostly matters in
first-person games. - Freeze the game while the window is open. Off by default. Never in multiplayer — the game's
server does not stop — and greyed out with the reason on games shipping an anti-cheat that could
treat it as cheating. - Every switch is greyed out with its reason when the game does not allow it. That is measured
on your game at startup, not guessed from a list. - Clicking Close no longer presses the button behind it as well, and the window that holds the
keyboard says so.
Your translation has a history
New Backups panel: what your translation was at earlier moments, and a way back.
- Automatic backups and the ones you keep are two separate lists, because they do not live
equally long: an automatic one ages out on its own, one you kept stays until you delete it. - A row says what the backup is — its languages, its line count, whether it was yours — not a
dated file name. Rename, restore, delete. - A copy is kept before a merge.
- The Manager reads the same backups and says the same things about them.
The community works without an account
Downloading a community translation and adding your own lines is a case in its own right now, not
a prompt to sign up.
- See where your file stands. Having an account was tested before every other question, so
somebody signed out was shown a sign-up pitch instead of the state of their translation — while
the mod knew the original had moved. - Merge with the original. The only offer used to be Download Latest, which replaces your
file. You can now merge and keep what you wrote. Nothing is sent anywhere: both are local acts. - Fork without an account. A fork is local from end to end — a new identity for your file, and
nothing published. Publish it later, if and when you want. - Be told when an update is published. Somebody who installed a community translation while
signed out was never told it had been updated, for the life of the install. The panel also names
the author instead of saying "Website".
Publishing, contributions and lineage
- Say a translation is finished, from the game. The mod always sent "in progress", so it could
never be declared complete — and republishing from the game silently reset one you had marked
complete on the site. - Decide whether you take contributions, from the game. When an author does not, the mod says
so and keeps the button dead, instead of letting the server refuse after the work is done. - A contributor is told in the game when their branch has lost its Main, and when the Main
takes nothing in — once, and it can be put away. - What is waiting is described, not just counted. A Main sees rows to decide and lines worth
taking as two numbers, broken down by what each contribution holds: text nobody has, text
somebody retranslated, and lines the Main already held that a contributor read and stood behind. - A fork that is still, line for line, the copy it was made from will not publish. Two
identical entries under two names would compete for the same readers. - A published translation that translates nothing is called out — in the community list,
before you upload one, and on the status card while you play the game concerned, with the way to
take it down. - A fork credits the translation it came from in the community list.
Knowing what a translation is worth
- How much of the game it reaches, as a share, beside the line count. Three thousand lines is
a lot or a little depending on the game. - How far it has been reviewed, on the status card and in the list.
- What it is made of. The quality bar names its bands and says how many lines each holds, not
only its share; lines kept as they are have a segment of their own. - The vote moved to the translation you are actually playing. The list used to let you rate
candidates you had never run. It now shows the count there, and the arrows on the
current-translation card, once enough lines have really appeared on screen. The count is visible
without an account. - Language flags in the community list, the language picker and the status card.
- Whether a translation takes contributions, before you download it.
- The badges and tag chips of the website, drawn the same way, in the same colours.
Settings that travel with a translation
- Fonts, images, exclusions and variables are compared section by section when you take a
translation, and you are asked before anything of yours is replaced. - A download you asked for puts every difference to you. A background sync stays silent when
only one side moved; an explicit download no longer hands your own font back without a word. - Take the online settings back at any time. Options lists the sections that no longer match
the online version and lets you take them back one by one. Nothing applies before Apply. - A merge settles the settings too, upstream merges included.
- Fonts the game knows but has not loaded yet are offered in the fallback picker, marked as
such. One used in an earlier session used to vanish depending on which scenes you had visited.
AI translation
- Google and DeepL can be switched off. The translation switch was in practice a synonym for
"the backend is an LLM": a paid backend could not be turned off at all, quitting while paused
lost which service you had chosen, and per-line retranslation answered "this machine cannot
translate" to every Google and DeepL user. - A refusal is never stored as a translation. Text beyond the backend's limit was cached with
the source text as its own value, tagged as if a human had decided to keep it — a credits screen
could add thirty kilobytes to your file to record that nothing was done, then be uploaded,
hashed and merged. The line simply stays untranslated now, which is the honest signal. - The game's name is given to the model when the game states one — vocabulary a model that
knows the game already has. - Attempts, temperature and seed are visible and adjustable, one set per job (translating,
repairing a broken placeholder, retranslating), in a collapsed Advanced block. - The previous model is released when you pick another one on a local server, instead of two
models sharing a graphics card the game is already using. - The options screen says what an address costs: billed and off your machine, off your machine
and not billed, or neither.
Editing, in the game and in the browser
- Retranslate proposes instead of deciding. In the in-game editor the answer lands in the
field and Save or Revert decides — nothing is written, nothing is lost. Accepting it untouched
files it as machine work rather than claiming a human wrote it. - A live browser session survives the game restarting. A crash never sent the closing signal,
so the session outlived the process while your tab stayed open on it. - Two browser editors on one translation are no longer opened silently. Each holds the whole
file and saves it back entire, so the second to save won without a word. You are asked, and
taking a session over collects what the browser saved first. - The last browser save is applied before the game shuts down.
Interface
- The mod wears the site's and the Manager's theme — rounded corners, card outlines, one
palette, and a quality bar that agrees with the other two products on every band. It disagreed
on three out of five. - Every button that writes says where it writes: this game only, this game and the site, or
the published version. The same three marks sit on the panel titles. - Panels size themselves from what they hold, keep the size you chose, and work out a sensible
default again when you reset. Lists stopped asking for twice the room they need. - Controls that cannot act are greyed out with the reason, instead of failing after the click,
and contextual help now covers the controls that were missing it. - Update checks are yours to schedule — how often, and separately, whether a live connection
stays open.
Speed, memory and reliability
- An available update is offered at every launch, not only the first. The notice appeared on
the launch that found a new version and never came back while it stayed uninstalled — the main
panel's banner went with it. Nothing had been told to skip that version. - Three memory leaks fixed. Nine collections keyed by the same component under five different
cleanup rules became one record with one lifetime; one of them allocated on every frame once it
went stale. - UI Toolkit text no longer half-translates. The scan restarted from the first document every
pass, so the same elements were always reached and the rest never — text translated here and not
there, a font applied here and not there. - A sync check that could not be made is retried at 30 s, 2 min and 5 min, instead of costing
the whole interval — up to six hours, or the rest of the session. - Publishing no longer wakes everybody. The live connection carries your own line only: a Main
used to be woken by every contribution anybody sent, and publishing woke every contributor. - Local change counts are right, counted as the file is written; files already carrying a
wrong count are repaired. - A refused call that carried no token no longer signs you out, and a cached validator is tied
to the server that issued it.
Privacy and safety
- A downloaded translation cannot write outside the mod's images folder. Image replacement
names come from a file another player wrote and reached the file system untouched. - A translation cannot reach the mod's own memory. Variables read values out of the game; the
mod holds what the game does not — your API token, in its settings and in the HTTP header it
sends.
One shared core — and the Manager
The mod, the website and the Manager must never disagree about the same translation. They now
read the same rules rather than each holding their own.
- Language and flag tables, the content hash and the sync verdict, the merge rules, the quality
bands, the badges, the review wording, the vote rules, the prompts, the placeholder rules, the
stored-secret scheme, the theme, the scope marks, the backup questions. The same translation
now reads the same in all three — same words, same numbers, same colours. - The Manager is offered beside the mod's own update. It finds the Unity games on your
machine, installs and updates the mod, and looks after several games from one place. The direct
download stays exactly where it was.