github new-usemame/Calibre-Web-NextGen v4.0.57
v4.0.57 — OPDS language fully follows you through navigation

latest releases: v4.1.4, v4.1.3, v4.1.2...
one month ago

v4.0.56 added the ?lang=hu URL override for anonymous OPDS clients, but every link in the response was built with bare url_for(...) calls and dropped the language on the floor. Set ?lang=hu on /opds, get a Hungarian root page, click any nav entry → flip back to English. This release closes that loop.

docker pull ghcr.io/new-usemame/calibre-web-nextgen:v4.0.57
docker pull ghcr.io/new-usemame/calibre-web-nextgen:latest

Fixes (user-facing)

  • OPDS ?lang= survives every click (closes @droM4X's follow-up on #160). The language you pick on /opds?lang=hu now follows you into /opds/new, /opds/books, pagination "Next" / "Previous", search results, and OpenSearch auto-discovery. Pagination tooltips show in the right language too ("Következő" in Hungarian, "Nächste" in German). The /opds/osd OpenSearch description advertises the resolved request locale instead of hardcoded en-EN. Search via /opds/search/<term>?lang=hu returns the correct results (previously the lang query string contaminated the search term). Thanks again @droM4X for the careful repro.

Verification

Live-verified end-to-end on cwn-local against a 21-book sample library:

  • /opds?lang=hu → titles Hungarian, every nav href carries ?lang=hu
  • /opds/new?lang=hu&offset=5rel=next = …&offset=10, rel=first strips offset, pagination tooltip in Hungarian
  • /opds/search/crime?lang=hu → 1 match (Crime and Punishment), identical to no-lang variant
  • /opds/osd?lang=de<Language>de</Language>, clean URL templates
  • Mixed 60 concurrent requests (30 anon + 30 admin) → all 200, zero errors
  • Malformed lang= (empty, garbage, SQLi-shaped, <script>) → 200 with English fallback, no 500s
  • Locale normalization: pt-BRpt_BR ≡ Portuguese (Brazil); zh-Hans-CN → Chinese Simplified
  • 4-quadrant auth matrix (anon-on/off × creds valid/invalid) unchanged from PR #137/#178
  • #121 regression: 0 WARN log lines for anonymous probes
  • tests/unit/test_translations_compile.py green across all 30 shipped locales

CHANGES rows

See CHANGES-vs-upstream.md for per-PR detail.

Don't miss a new Calibre-Web-NextGen release

NewReleases is sending notifications on new releases.