Skip to content

Speak LXX2012+WEB in the Alexa skill instead of the King James Version - #231

Merged
brianglass merged 1 commit into
mainfrom
alexa-lxx2012-web
Sep 11, 2026
Merged

brianglass merged 1 commit into
mainfrom
alexa-lxx2012-web

Conversation

@brianglass

Copy link
Copy Markdown
Owner

The readings page has defaulted to the modern LXX2012+WEB pairing for a while. The Alexa skill was never switched and still spoke the King James Version — it passed no translation at all, so it fell through to bible.DEFAULT_TRANSLATIONS['en'].

KJV (before)         Howbeit then, when ye knew not God, ye did service unto them...
LXX2012-WEB (now)    However at that time, not knowing God, you were in bondage to...

The change

The choice now lives in alexa.speech.TRANSLATION. It has to be passed at six call sites — three get_passage() calls and the four Day() constructors — because Pericope.get_passage takes the translation per call rather than inheriting it from the Day.

The four Day constructors don't strictly matter today, since nothing in the skill uses fetch_content=True. They're set so that a future change there can't silently fall back to KJV.

DEFAULT_TRANSLATIONS['en'] stays KJV. The API and the RSS feeds resolve through it and are deliberately unchanged, as calendarium/views.py already notes.

Help text

help.ssml and the Alexa page both claimed the King James Version.

The spoken one avoids the LXX2012 & WEB label — Alexa would mangle it — and names the translations the way a listener would recognise them: "read from the World English Bible, with an Old Testament translated from the Septuagint." The web page links them the same way the about page does.

Rubrics → practices

"Follow OCA rubrics" becomes "follow OCA practices" in both of those places and in the API description, matching the about page, which already says "the practice of the Orthodox Church in America".

Left alone: the about page's "because the rubrics use Septuagint versification" — that's the lectionary's rubrics in the technical sense, not a claim about whose practice we follow.

Two incidental fixes

Both in the API description, which I was editing anyway:

  • two implicitly-concatenated strings had no space between them, rendering as "...for a given day.The API follow..."
  • "The API follow""follows"

Tests

Two tests pinned KJV phrasing and now pin the new text — deceives his heart for deceiveth his own heart, and The Spirit who lives in us yearns jealously for The spirit that dwelleth in us lusteth to envy. Both keep the old wording in a comment so the reason for the change stays legible.

197 tests pass.

🤖 Generated with Claude Code

https://claude.ai/code/session_019nQRjJpPqW89xqzAf1vsEX

The readings page has defaulted to the modern LXX2012+WEB pairing for a while;
the skill was never switched and still spoke KJV. It passed no translation at
all, so it fell through to bible.DEFAULT_TRANSLATIONS['en'].

That default stays KJV: the API and the RSS feeds resolve through it and are
deliberately unchanged, as calendarium/views.py already notes. The choice is
made in alexa.speech.TRANSLATION instead, and every call site that reads
scripture has to pass it, because Pericope.get_passage takes the translation per
call rather than inheriting it from the Day. Six sites: three get_passage calls
and the four Day constructors, the latter so that a future fetch_content=True
path cannot silently fall back to KJV.

Two tests pinned KJV phrasing and now pin the new text -- "deceives his heart"
for "deceiveth his own heart", and "The Spirit who lives in us yearns jealously"
for "The spirit that dwelleth in us lusteth to envy". Both carry the old wording
in a comment so the reason for the change stays legible.

help.ssml and the Alexa page both claimed the King James Version. The spoken one
avoids the "LXX2012 & WEB" label, which Alexa would mangle, and names the two
translations the way a listener would recognise them; the web page links them
the same way the about page does.

Also changes "follow OCA rubrics" to "follow OCA practices" in those two places
and in the API description, matching the about page, which already says "the
practice of the Orthodox Church in America". Left alone: the about page's
"because the rubrics use Septuagint versification", which is the lectionary's
rubrics in the technical sense rather than a claim about whose practice we
follow.

The API description also gained a space between two implicitly concatenated
strings -- it rendered as "for a given day.The API" -- and "The API follow"
became "follows".

197 tests pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019nQRjJpPqW89xqzAf1vsEX
@brianglass
brianglass merged commit 6fac458 into main Sep 11, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant