Projects BibleWeb Interlinear Dutch Strong's definitions
Done

Dutch Strong's definitions

Area: Interlinear Milestone: v2

Context

Problem: The Strong's lexicon data is in English. Dutch-speaking users viewing the interlinear popup in Dutch mode should see Dutch definitions and meaning alternatives.

Solution: Dutch translations of Strong's definitions, primary glosses, and meaning alternatives stored in dedicated _nl columns. Plus word-level Statenvertaling alignment (sv_gloss) generated via AI.

Not included: A complete Dutch lexicon from scratch. These are translations of the existing English Strong's data.

Functional

When the UI is in Dutch, the interlinear popup shows Dutch definitions and meaning alternatives instead of English.

What shows in Dutch mode:

  • Definition: strongs_greek.definition_nl instead of definition
  • Short gloss: primary_gloss_nl computation
  • Meaning chips: from meanings_nl (JSON array of 10-15 Dutch alternatives)
  • Word-level alignment: greek_words.sv_gloss — the Statenvertaling equivalent of each Greek word
  • "Translated as" drill-down: groups by sv_gloss with Dutch example verses

UX & Design

Same popup layout — just Dutch text where English would be. Automatic based on settings.language.

Technical

Dutch data columns:

  • strongs_greek: definition_nl (5,503 entries), primary_gloss_nl, meanings_nl (JSON array)
  • strongs_hebrew: same three columns
  • greek_words.sv_gloss — per-word SV alignment (generated by scripts/align-sv-glosses.ts via Claude Sonnet)

Fallbacks:

  • If meanings_nl empty → falls back to parsing definition_nl
  • Hebrew has no sv_gloss equivalent → Dutch OT display uses heuristic matching against verses.text_nl

Files:

  • packages/db/src/schema/bible.ts_nl columns on strongs tables, svGloss on greek_words
  • scripts/align-sv-glosses.ts — Claude Sonnet Greek→SV word alignment script
  • apps/web/src/lib/components/bible/InterlinearPopup.svelte — Dutch rendering logic

Status

Current: IN_PROGRESS Milestone: v2

What's done:

  • definition_nl, primary_gloss_nl, meanings_nl columns populated (5,503 Greek entries)
  • sv_gloss per-word alignment generated via AI script
  • Dutch rendering in popup working
  • Dutch drill-down (grouping by sv_gloss) implemented

What remains:

  • Some meanings_nl entries may be empty (enrichment script not run on all entries)
  • Hebrew OT has no sv_gloss — relies on heuristic matching
  • Hebrew strongs_hebrew._nl columns may be sparsely populated

Dependencies:

  • Requires: interlinear popup (DONE), Strong's data (DONE)