Problem/Motivation
Strict no-fallback Accept-Language negotiation (406 with meta.availableTranslations) shipped in #3612442: Accept-Language reads should negotiate strictly, with no implicit fallback, but the two most-read docs still describe the old behaviour:
- README says Drupal "falls back to the entity's default translation when none match, so the request never returns 404" and captions the negotiation example "falls back to an existing translation". A client integrator following this codes no 406 handling and breaks in production. The README even contradicts itself: the menu-items section already describes the strict 406 correctly.
- The README bullet also claims Accept-Language "makes the response uncacheable", which is stale twice over: responses declare a headers:Accept-Language cache context and vary correctly; only the URL-keyed internal page cache is bypassed.
- CONTRIBUTING's curl example is captioned "canonical URL, with fallback" and has no 406 error-case example.
- Separately, the README states the jsonapi_menu_items integration needs ">= 1.2.8" (its menu_link_content: resource-id format), but nothing machine-readable records or enforces that floor: composer require-dev said ^1.2 and no constraint exists for production installs.
Steps to reproduce
Proposed resolution
Update docs to correctly reflect these changes.
Issue fork jsonapi_multilingual-3613673
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #4
lauriii