Skip to content

Local-first translation quality feedback #295

Description

@DA-RAE

Problem Statement

When a learner spots a bad translation on a lesson page, there is currently no way to record it. The dictionary and glossary improve only when a maintainer independently notices the same problem, so the people best positioned to catch terminology errors — learners reading the translated page — have no path to report them.

Proposed Solution

A local-first translation feedback capture, consistent with SkillBridge's existing privacy posture.

Capture per entry:

  • original English text
  • translated text
  • target language
  • page / lesson identifier
  • optional user correction
  • positive / negative signal
  • timestamp

Behavior:

  • Nothing is transmitted. No automatic telemetry of any kind.
  • Data leaves the browser only when the user explicitly exports it, as JSON or another portable format.
  • Feedback is scoped per lesson so exported data is actionable for dictionary work.
  • The capture affordance should be lightweight — noticing a bad term and recording it should not require leaving the lesson.

Suggested test coverage: feedback save, correction save, export, delete, recovery from malformed local storage, and per-lesson identification.

Alternatives Considered

Extending the existing Tools ▸ Reports term-report queue (#286) rather than adding a parallel surface. This is probably worth doing — the two features overlap in intent — but it must be an integration, not a replacement. See the constraint below.

Additional Context

An exploratory prototype was attempted locally in August. Its working tree was lost before it could be pushed, so this is filed as a proposal rather than a PR.

One concrete lesson is worth recording, because it is an easy trap: the prototype replaced the existing Reports feature — it deleted src/content/term-reports.js and its e2e spec, and aliased sb.toggleReportsPanel to its own feedback panel. That silently removes shipped functionality. Any implementation here must be additive, or must deliberately and explicitly subsume the term-report queue with migration for existing local data.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions