lablup / lablup/backend.ai-webui

Terminology governance — enforce a blocking i18n terminology gate (wayfinder map)

Open
#8,240 0 comments 0 reactions 0 assignees View on GitHub
i18n terminology wayfinder:map
Dominant language
TypeScript
Stars
133
Forks
81
Avg merge
1d 11h
Merged PRs (30d)
344

Description

## Destination

The i18n terminology gate **ENFORCES** the termbase: `check-terminology-i18n.mjs --strict` runs **blocking** in `scripts/verify.sh` / CI (and optionally pre-commit), so a bare-English forbidden term (an `avoid[]` ERROR-severity match) cannot merge. The termbase is comprehensive across `en` (+ best-effort `ko`/`ja`/`th`), and the CHECK 3 candidate backlog is cleared. (Destination chosen 2026-07-10: **Enforced/blocking**, not advisory.)

## Notes

Domain: docs / i18n terminology governance for backend.ai-webui. Builds on the merged machine-readable `terminology.json` + `check-terminology-i18n.mjs` (FR-3048) and the governance layer + verbs + CHECK 3 (FR-3052). This map **carries execution** — its tickets implement and ship PRs (per the terminology roadmap), not decisions-only. Ship order is stack-aware (Graphite); each ticket keeps `verify.sh` green. Consult: `packages/backend.ai-webui-docs/TERMINOLOGY.md` (Precedence / Governance / Rename checklist), the terminology `.claude` rules.

## Decisions so far

- [Phase 0 — fix shipped i18n drift + repair docs-lint parser (FR-3021)](https://lablup.atlassian.net/browse/FR-3021) — merged; AppProxy/Proejct/ko drift fixed, broken awk parser repaired.
- [Phase 1+2 — machine-readable terminology.json + i18n checker (FR-3048)](https://lablup.atlassian.net/browse/FR-3048) — merged; single source of truth + CHECK 1 (drift) / CHECK 2 (divergence, opt-in).
- [Phase 4 — governance: verbs, CHECK 3, precedence & rename rules (FR-3052)](https://lablup.atlassian.net/browse/FR-3052) — merged (#7748, eb6ecf29d); verbs[] (8), CHECK 3 unknown-noun (opt-in), precedence / term-owner / new-term gate / rename checklist.
- **Destination = ENFORCED** (2026-07-10) — the gate will block, not merely warn. This makes FR-3049 the capstone and keeps FR-3051 (ko/ja/th) in scope.

## Not yet specified

- Component-library locale store (`packages/backend.ai-ui/src/locale`, `comp:` ns) — confirm the blocking gate covers it (highest blast radius) at flip time; may graduate into an FR-3049 sub-check.
- CHECK 3 default-on promotion timing — after the candidate backlog (FR-3302) is cleared; graduates from FR-3302's tail.
- Whether a team-facing "how terminology governance works" doc is needed beyond TERMINOLOGY.md.

## Out of scope

- External TMS (Weblate / DeepL glossary / TBX) — rejected for this scale in the original proposal (git-native chosen).
- Per-locale approved-verb forms — deferred; v1 is English-canonical only (destructive-confirmation UX is language-agnostic).
- i18n language-set reconciliation (the "22 vs 21 languages" / Thai absent from `i18n.config.js` scanner) — separate concern, not on the enforce route.

JIRA Issue: FR-3311

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with check-terminology-i18n.mjs, scripts/verify.sh, and the merged terminology.json; read packages/backend.ai-webui-docs/TERMINOLOGY.md for governance and rename rules. Trace the existing strict and opt-in checks, including the component-library locale store, then make the strict gate blocking in verification/CI. Done means forbidden bare-English terms fail the check and verify.sh remains green.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, shell, typescript
Domain
ci-cd, documentation, internationalization
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.