Problem: A single English gloss for a Greek/Hebrew word is reductive. The Greek "logos" can mean word, reason, speech, message, or account. Users need to see the full semantic range.
Solution: When expanding a word card in the interlinear popup, users see all available translation options — from Strong's meanings, KJV usage patterns, and BSB glosses — displayed as selectable chips.
Not included: User-defined custom glosses. Options come from the lexicon data.
User flow:
kjv_usage or definitionEdge cases:
meaningsNl chips from strongs_greek.meanings_nl (JSON array) or parsed from definition_nlExpanded card sections:
Meaning sources:
extractGreekMeanings(kjv_usage) in text.ts — parses up to 12 alternativesextractHebrewMeanings(definition) — parses up to 8 from ;-separated definitionmeanings_nl JSON array from strongs_greek (may be empty, falls back to parsing definition_nl)"Translated as" API: GET /api/interlinear/translations/{strongsNumber}?lang=en|nl
greek_words by bsb_gloss (en) or sv_gloss (nl) for that Strong's numberFiles:
apps/web/src/lib/components/bible/InterlinearPopup.svelte — expand/collapse + chip selectionapps/web/src/routes/api/interlinear/translations/[strongsNumber]/+server.ts — frequency APIapps/web/src/lib/utils/text.ts — meaning extraction functionsCurrent: DONE Milestone: v2 Priority: High — core of the interlinear study experience
Dependencies: