Skip to content

v0.12.0

Choose a tag to compare

@djethino djethino released this 25 Aug 13:20
· 16 commits to main since this release

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.