Skip to content

Suggestion: lightweight UI string override hook for community-driven localization #2088

Description

@gaoyuoppa

Summary

A lightweight "UI string override" hook would let the community localize the web console without burdening you with maintaining translations in every release.

Background

Thank you so much for Technitium DNS Server — it is an excellent, reliable piece of software and the single-developer effort behind it is genuinely impressive.

I understand fully why a complete i18n framework has not been planned (and I appreciate the clear, honest answers you have given on issues #1165 and #1969): every GUI change would need to be re-translated into every language for every release, which is a heavy ongoing burden for a one-person project.

Suggestion

Please consider a much smaller, lower-maintenance mechanism instead of a full i18n framework:

  1. Allow the web console to load an optional, same-origin JSON/JS file (for example www/i18n-overrides.js or a path settable in dns.config/webservice.config) that maps UI strings to overrides.
  2. The file is optional and empty by default — zero impact on existing installs.
  3. The community maintains the translation files themselves, per language, as separate projects. You would not need to translate or maintain any language yourself.

Because the hook is same-origin and loaded directly by the console, it stays compatible with the existing CSP (script-src 'self') and requires no third-party service at runtime.

Why this matters

Browser translation add-ons work for many pages, but they do not reliably translate dynamically rendered content (charts, table row actions, button tooltips, modal dialogs), which is exactly the content that matters most in a DNS management console. Chinese users in particular are a large segment that would benefit, and a community-maintained override file would let us share one consistent translation instead of each relying on browser add-ons.

Offer

I have already built a working proof-of-concept of exactly this approach (a read-only overlay for index.html plus a same-origin dictionary file, with a language toggle persisted in localStorage, version-pinned to the upstream frontend). I would be very happy to share the implementation details or a sample dictionary file if you ever consider adding such a hook — and I completely understand if now is not the right time.

Thank you for reading, and for all the work you put into this project.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions