A critique lens for Korean and English translation.

Self-hosted analysis for working translators. It reads the source and surfaces the right terminology. You do the translating.

In development · glossary/vocab phase Apache-2.0 Analysis-only · local-first
SOURCE / KO
본 계약의 해석에 관하여 당사자 간 분쟁이 발생한 경우, 신의성실의 원칙에 따라 해결한다.
Review신의성실 信義誠實. "Good faith" undertranslates the doctrinal weight.
Warn해석. Interpretation versus construction.
Info당사자. Party versus counterparty.
What it is

Four lenses, one workbench.

A self-hosted critique workbench for Korean–English legal translators. It reads the source and serves the reference — it never produces the target text for you.

01Source analysis
L1, L2, and L3 flags on the matched spans: misleading calques, Sino-Korean morphology, and tradition mismatch.
02Project glossary
The active build phase: expanding curated glossary and vocabulary packs so analysis catches real translator decisions, not just generic dictionary matches.
03Served legal reference
A topic-filtered reference at /legal-ref; glossary wikiUrls deep-link into it. The proprietary corpus stays local, out of the repo and any demo.
04Manual bilingual editor
Your draft and the source, aligned. Term compliance is checked against the glossary as you write.
Analysis levels — loose → strict

Loose to strict, in three levels.

Three lenses you dial in. Contextual choices are rule-pack driven, not generic disambiguation.

L1LEXICAL

Surface and sense

Misleading calques, category mismatch, and public-domain Webster sense hints, with Korean-source rules.

law school → 로스쿨 (transliteration) · l1
L2ETYMOLOGY

Roots and morphology

Hanja decomposition, Sino-Korean and wasei-kango morphology, and per-segment glossary hits.

신의성실 → 信義誠實 (good faith and sincerity) · l2-v7
L3TRADITION

Frame and lineage

Frame mismatch across Buddhist, Taoist, and Confucian readings. Skeleton today — runs the L2 pass; curated rules land next.

법학전문대학원 → institutional term, not a calque · l3-v0 · skeleton
Architecture — data flow

Browser → API → engine, isolated by project.

The static demo runs the same engine entirely in the browser — no API, no writes.

Browser
apps/web · React+Vite
Fastify API
apps/api · TypeScript
@translens/engine
L1/L2/L3 · browser-safe
per-project SQLite
glossary · edits · runs
served /legal-ref
local only
apps/web
React + Vite — source canvas (hero) + tabbed rail (Flags / Translation / Glossary / History); installable offline PWA.
apps/api
Fastify + TS — analyze routes, manual critique, per-project SQLite, served /legal-ref.
apps/demo
Static read-only public demo — engine runs in the browser, no API, no writes.
packages/engine
@translens/engine — portable analysis core, browser/mobile-safe, zero native deps.
packages/contract
Shared API error keys + analysis-level labels (web + api).
packages/tokens
Design tokens (CSS) + fonts — the single design system.

Toolchain — Node 22 · pnpm 9.15.9 (pinned). CI = pnpm verify (tests + production build).

Learning loop & review

Edits become glossary, not training.

A pair is promoted only after ≥3 same-sentence, topic-scoped occurrences — a glossary suggestion, never MT training.

edit logged same pair ≥ 3× suggest term lock in glossary

Manual critique

Original and translation are checked together: source-side flags, Korean-output lint, and locked glossary terms stay visible without generating target text.

MCP server (Phase B)

One stdio MCP server — analyze_source + check_terms — plugs the engine into Claude, Cursor, Codex, and Grok. Stateless, analysis-only: your editor writes the translation, TransLens reviews it.

Hard invariants — design law

What it will not do.

The boundaries are the point. They keep your work yours and the analysis honest.

/No machine translation

The tool analyzes and references. You, or a tool you choose, write the target; TransLens reviews the result.

/No cloud, no Docker, no Word add-in

Self-hosted and offline-capable. No account, no API key to start, no document leaves your machine (read-only public demo, 403 on writes).

/Project-scoped data

Glossary and reference are filtered per project. No cross-project reads without an explicit share/import path.

/Your reference stays local

The proprietary legal corpus and private dictionaries are never committed and never bundled into a public demo.

/Retrieval sources

Japanese Wikipedia for Hanja/Kanji (CC BY-SA 4.0 footer required); public-domain Webster (default 1913 Gutenberg, labeled distinctly from 1828).

/DualDraft stays separate

The sister drafting app is not merged or bundled here.

Roadmap

Current phase: glossary and vocabulary.

Foundation
Done
Portable analysis engine, browser demo, PWA shell, and MCP access are in place.
Glossary + vocab
Active
The important work now: adding legal glossary entries, vocabulary families, Hanja/Sino-Korean roots, and term packs that make the analysis useful.
Analysis depth
Next
Grow the L2/L3 rule packs from that vocabulary: better false-friend checks, tradition-frame warnings, and topic-specific term compliance.
Native apps
Later
Desktop and mobile wrappers come after the glossary and vocabulary base is strong enough to carry real translator work.