ZecHub DAO — Proposal A149: Phase 1 Progress Report

A149 progress update — from the Italian pilot to a fully-private, multilingual rollout

Summary

The Phase 1 framework is proven, so the work since then has been about scale and staying true to the privacy goal end-to-end. The pilot has grown from one language to a multilingual rollout on a shared ~180-page curated set. For the translation job I used both ChatGPT 5.4 and a local model. This is a progress report and the plan ahead.

Language coverage

Locale Status
English, Italian :white_check_mark: Baseline (Phase 1)
French, Spanish, German, Portuguese, Arabic, Chinese :white_check_mark: Full curated set translated + UI dictionaries + wiring
Hindi, Russian, Japanese, Korean, Turkish, Ukrainian :white_check_mark: Full curated set translated + UI dictionaries + wiring
Swahili, Yoruba, Igbo, Twi, Ewe :counterclockwise_arrows_button: Underway now (specialized local model — see below)

That’s all 12 curated languages beyond the English/Italian baseline drafted end-to-end — the full ~180-page set, UI dictionaries, and frontend wiring — now consolidated and staged for review. The five African languages are actively being translated as I write this.

Same principles as the pilot throughout: repository-controlled content, English fallback, protected-terms CI, no runtime Google Translate.

What’s new

A private translation pipeline. Rather than one cloud API, each language is routed to the best-fit engine, chosen partly for privacy:

  • ChatGPT 5.4 for high-resource languages,
  • a local open model running on my own GPU for others,
  • a specialized open translation model (NLLB-200), also fully local, for low-resource languages.

Quality measured against the live baseline. Google Translate is what readers get today, so it’s my yardstick. Every language is scored with an automatic round-trip check against GT before shipping. Result so far: high/medium-resource languages are on par with or better than Google Translate; nothing ships that regresses below the GT baseline users already have.

Terminology at scale. The protected-terms glossary + CI now enforces the Zcash term list across every language, not just Italian — so “Arborist Calls” stays “Arborist Calls” everywhere.

A broader privacy audit. The original scope was Google Translate; I went further and audited the whole site for other third-party touchpoints (fonts, embeds, CDNs, map tiles, the AI assistant, analytics). Findings were cross-checked by an independent second model. Removing Google Translate is by far the biggest win; the rest are queued as small, self-contained follow-ups.

African languages — the honest part

General-purpose LLMs are strong on major languages but unreliable on low-resource ones, in testing they produced confident-looking output that mistranslated core meaning. So these five use a specialized open translation model built for exactly these languages (Meta’s NLLB-200), run entirely on my own GPU. This track is now in progress: the pipeline is markdown- and terminology-aware — code, links and protected terms are shielded during translation, and any line where a link or term can’t be safely preserved falls back to English rather than risk a broken page. Each language is held to a simple bar: ship only where quality is at least as good as the Google Translate already live (a pure privacy win, no regression), measured with the same automatic round-trip check as every other language. Native speakers can then refine pages over time — improvement is welcome, not a blocker.

Status against the plan

Item Status
Framework, glossary, contributor docs, Italian pilot :white_check_mark: Delivered (Phase 1)
Multi-language expansion (12 curated languages) :white_check_mark: Drafted + staged for review
Private, local translation pipeline :white_check_mark: Built
Automatic quality benchmark vs Google Translate :white_check_mark: Built
Low-resource (African) languages :counterclockwise_arrows_button: In progress (specialized local model)
Full-site privacy hardening (beyond GT) :next_track_button: Follow-ups
Community refinement :next_track_button: Ongoing

Next steps

  1. Settle the merge structure for the batch and open the 12 curated languages for community/editorial review; ship each as it clears the quality bar.
  2. Finish the African languages on the specialized-model path, run each through the no-regression benchmark, and ship the ones that pass — with community refinement to follow.
  3. Land the deferred privacy follow-ups as small PRs.

I am also considering implementing a system that will update translated pages semi-automatically when an English update is released.

However, it is important to remember that machine drafts still need people. Automatic scores tell me a translation didn’t regress; they don’t replace a native read. Static translation remains an ongoing community effort, not a one-time automation. Also, round-trip metrics are a screen, not a verdict. They’re biased toward the tool used to measure them, so “within a few points of Google Translate” should be read as “effectively on par,” and native corrections are always welcome.

Your opinion and comments welcome!

5 Likes