promotional bannermobile promotional banner

FTB Quests Translator

Client-side addon for FTB Quests that adds a translate button to quest panels. Translates titles, subtitles and descriptions on-the-fly.

File Details

FTB Quests Translator 1.3.2-1.20.4 (NeoForge)

  • R
  • Apr 18, 2026
  • 81.10 KB
  • 5
  • 1.20.4
  • NeoForge

File Name

ftbquesttransl-1.20.4-neoforge-1.3.2.jar

Supported Versions

  • 1.20.4

Curse Maven Snippet

NeoForge

implementation "curse.maven:ftb-quests-translator-1504552:7944704"
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

### Added
- **DoH (DNS-over-HTTPS) Bypass Rewrite**: Completely rewrote the DoH bypass using raw SSL sockets with `InetAddress.getByAddress()`. Java automatically sets correct TLS SNI from the hostname while connecting to the DoH-resolved IP, and a manually constructed HTTP/1.1 request ensures the proper `Host` header. This enables reliable Google Translate access for users in regions with DNS-level censorship (e.g., Russia).
- **Batch Translation**: All text segments (title, subtitle, description lines) are now joined with a unique separator and sent in a **single HTTP request** instead of 7+ parallel requests. Dramatically reduces API rate limiting risk and improves translation speed.
- **HTML Entity Decoding**: Added `decodeHtmlEntities()` to convert API-returned HTML entities (`&quot;` → `"`, `&amp;` → `&`, `&lt;` → `<`, etc.) back to plain text before rendering.
- **Format Code Sanitizer**: Added `sanitizeFormatCodes()` that strips `&` before any character that isn't a valid Minecraft formatting code, preventing "Invalid formatting!" errors in quest UI.

### Fixed
- **DoH 404 Error**: The old `HttpsURLConnection`-based DoH approach returned HTTP 404 because Google's edge servers couldn't route requests from raw IP + Host header. The new raw SSL socket approach resolves this completely.
- **`&quot;` Artifacts in Quest Text**: MyMemory API returns HTML-encoded responses. After the format sanitizer stripped `&` from `&quot;`, the text `quot;` remained visible. Fixed by decoding HTML entities before format sanitization.
- **AUTO Provider Selecting Wrong Provider**: When switching providers in config, stale probe results incorrectly marked Google as unavailable. Now `providerAvailability` is cleared on provider change, forcing a fresh availability check.
- **Google Translate JSON Parsing**: Raw SSL socket responses include chunked encoding remnants after the JSON body, causing `MalformedJsonException`. Added JSON boundary detection and lenient parsing to handle this.