Patchlator

Quick rating

Community listing page, reviews here may not be monitored by the author.

Patchlator

By d1n-0Owner

No reviews yet

Live-translates Wynncraft dialogue into your language inside the native dialogue HUD, and logs the original lines for translation work.

Mod Loaders
Minecraft

About

Description

Patchlator

A client-side Fabric mod that live-translates Wynncraft dialogue into your language — directly inside the custom dialogue HUD, preserving the original layout pixel-perfectly.

  • Minecraft 1.21.11 and 26.1.x (separate jar per version) · Fabric Loader ≥ 0.18.1 · Fabric API
  • Works with Google Translate (no key needed) or DeepL; the target language follows your game language by default
  • Translates the dialogue body and choice options; hand-curated entries in a local table override machine translation
  • Optional logging of every original line (with NPC name) for building that table
  • Toggle key, hold-to-show-original key, in-game settings screen
  • Hooks the final overlay sink, so it stays compatible with mods that rewrite the actionbar (e.g. Wynntils)

How to use

  1. Drop the jar into .minecraft/mods together with Fabric API.

  2. Join Wynncraft. Dialogue is translated automatically once the typewriter animation settles.

    Key (rebindable) Action
    F8 Open the settings screen
    F7 Toggle translation on/off
    G (hold) Show the original text
  3. Press F8 — or use the ModMenu config button — to open the settings screen:

    Setting Description
    Translation Master on/off switch (same as the toggle key)
    Translator Google Translate / DeepL
    Google API Key Optional. Empty = unofficial free endpoint, set = official Cloud Translation v2
    DeepL API Key Required for DeepL. Keys ending in :fx use the free host
    Source language auto = detect
    Target language auto = follow the game language; the label hints the code for your language (e.g. fr, ja, zh-CN)

    Settings persist in config/patchlator.json.

  4. To collect sentences for the translation table, launch with -Dpatchlator.log=true — original dialogue (plus translations) is then appended to .minecraft/patchlator.log. The player name is normalized to <playername> so entries are reusable:

    time=… npc="Rusty Bartender" text="Would you like a Nemract Whiskey?" choice0="Yes." choice1="No, thank you."
    time=… translated npc="Rusty Bartender" text="Yes." result="Oui."
    
  5. To curate translations by hand, add entries to config/patchlator/translations.json — they take priority over machine translation (reloaded when you save the settings screen):

    {
      "Would you like a Nemract Whiskey?": "Tu veux un whiskey de Nemract ?",
      "Greetings, <playername>!": "Salutations, <playername> !"
    }
    

Building

Requires JDK 25 for the Gradle JVM (sources target Java 21 / 25 per Minecraft version).

./gradlew build -PmcVer=1.21.11   # → build/libs/patchlator-<v>+1.21.11.jar
./gradlew build -PmcVer=26.1.2    # → build/libs/patchlator-<v>+26.1.2.jar

One shared codebase written against Mojang mappings targets both versions: for 1.21.11 the fabric-loom-remap plugin remaps the jar to intermediary names; 26.1+ is unobfuscated, so the plain fabric-loom plugin builds it directly (one jar cannot run on both sides of that boundary). Per-version settings live in versions/<ver>.properties, and the few APIs that differ are isolated in src/compat-remap / src/compat-modern (one Compat class each). Supporting a future version is adding a properties file and, if APIs moved, a compat variant.

Fonts

Translated text is rendered with bundled fonts (swappable via -Dpatchlator.replacementFont):

  • Pretendard — Latin, Hangul, Cyrillic, Greek
  • Noto Sans SC (Medium, subset to CJK ranges) — kana, Han ideographs, CJK punctuation

Together they cover all languages shipped in the mod's lang/ files.

License

MIT. Bundled fonts are licensed under the SIL Open Font License 1.1.