Skip to content

Support multiple bundled Bible translations #14

Description

@vmrocha

Goal

Allow Bible Terminal to bundle, discover, and select more than one legally redistributable Bible translation while preserving offline operation, deterministic builds, and exact publisher text.

This is a tracking issue. Implement it through focused linked issues and pull requests rather than one large change.

Workstreams

  • Record an ADR for the bundled-data model: one combined database versus independently embedded translation databases.
  • Introduce a selected translation ID in the storage and domain interfaces.
  • Remove runtime engwebp assumptions from reading, navigation, search, books, and random selection.
  • Filter full-text search by the selected translation so results never mix texts.
  • Add global --translation <id> selection with precedence: explicit flag, saved preference, application default.
  • Validate saved translation preferences against the bundled catalog instead of a hardcoded allowlist.
  • Extend deterministic generation to consume multiple reviewed manifests and reject identifier or canon collisions.
  • Add a small multi-translation fixture and contract tests before introducing another complete Bible text.
  • Research and approve a second redistributable translation, including source provenance, checksum, canon, attribution, trademark requirements, and text policy.
  • Import and bundle the approved translation without modifying publisher verse text.
  • Measure binary size, startup time, search latency, and memory use with two translations.
  • Update discovery, configuration, installation, and release documentation.

Acceptance criteria

  • bible translations lists at least two bundled translations with complete provenance and rights metadata.
  • bible --translation <id> read, search, random, navigation, and book discovery operate only on the selected translation.
  • A saved translation acts as the default and an explicit flag overrides it.
  • Piped output remains stable and translation selection is covered by CLI and storage contract tests.
  • The application remains fully offline and release builds remain deterministic.
  • Size and performance changes are measured and documented before release.

Out of scope

  • Remote marketplaces or automatic downloads.
  • User-installed translation packs; evaluate these after measuring the two-translation binary.
  • Bundling any text without verified redistribution permission.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesttrackingCoordinates multiple dependent issues or pull requests

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions