Translate (Translation): foundations

accepted

Translate (Translation) — foundations RFC

Status

*ccepted*— 20260509. Sector bootstrap (skeleton + 5 impl tickets) landed as part of /k-go services/ai audit wave (Modo C). Q1 resolved: NMTfirst (NLLB200 v1) with LLM fallback for lowconfidence/longform. Q2 resolved: glossary lives in this sector — koder-official.toml versioned in repo + per-tenant overlays via API.

Summary

Tradução ptBR ↔ enUS ↔ outros como service — separado de libras/ (sign language).

Motivation

Stack inteira é bilingual (chat ptBR, produtos enUS). Hoje tradução acontece ad-hoc com gateway+LLM custoso. Service dedicado: cache, qualidade controlada, custo menor.

Scope

In

  • Text translation (ptBR/enUS prioritário, +eszhja secundário)
  • Document translation (preserve format)
  • Terminology glossary

Out (yet)

  • Real-time speech translation (escopo synth+voice combinados)

Initial design

Surfaces

  • backend/ — Go API + worker
  • app/ — não aplicável v1

Key APIs

  • POST /v1/translate/text — texto direto
  • POST /v1/translate/document — preserva format
  • POST /v1/translate/glossary — gerencia terminologia

Dependencies

  • services/ai/gateway — LLM-based fallback
  • services/ai/cache — cache de traduções repetidas
  • services/ai/prompt — templates de translation

Relation to existing sectors

  • Distinto de libras/ (sign language)
  • Consumido por i18n/ workflows internos

Selfhostedfirst analysis (5 gates)

  • *1 Feature parity* zero
  • *2 Performance* N/A
  • *3 Stability* N/A
  • *4 Capability* NLLB/M2M-100 + LLM via gateway viáveis
  • *5 Critical-path readiness* destrava i18n efficient

Open questions

  • Q1: NMT (modelo dedicado) vs LLM only?
  • Q2: Glossary — onde mora terminologia Koder oficial?

Next steps

  1. Ratificar esta RFC (1 round de comments).
  2. Criar sector dir services/ai/translate/ com koder.toml, README.md, skeleton.
  3. Abrir tickets de implementação em services/ai/translate/backlog/pending/.
  4. Registrar em meta/docs/stack/registries/self-hosted-pairs.md se substituir externo.

Source: ../home/koder/dev/koder/meta/docs/stack/rfcs/translate-RFC-001-foundations.kmd