This project is not covered by Drupal’s security advisory policy.
Emits correct, reciprocal hreflang annotations across several independent,
path-prefixed Drupal backends that together form one international site, and
feeds those alternates into the module's own multilingual XML sitemap and a
crawlable country/language selector.
Features
hrefl_client: install on *every* backend. Collects page inventory and
signals, pulls resolved alternates from the hub on cron, stores them locally,
and emits `hreflang` head tags, sitemap alternates, and the selector. No
cross-backend call ever happens at request time.
hrefl_hub: install on the *Global* backend only. Holds the versioned
translation-group registry (source of truth), runs the tiered auto-mapping
engine (deterministic, embeddings, LLM adjudication + title/URL translation
via Copilot or Anthropic - both fully supported and selectable), the CSV
review loop, and the ingest/serve HTTP API.
Installation
Enable the sub-module(s):
drush en hrefl_client # on every backend
drush en hrefl_hub # on the Global backend onlyConfiguration
Then configure the hub URL and credentials at `/admin/config/search/hrefl`
(client). On the hub, `/admin/config/search/hrefl-hub` lets the admin pick the
AI matcher provider - Microsoft Copilot or Anthropic (both fully supported) -
and enter each one's endpoint, model and API key. The API key is referenced by
name from the key module (never stored in
config); for local development set `HREFL_COPILOT_KEY` / `HREFL_ANTHROPIC_KEY`
instead. Only the selected provider is called at run time; the other stays
configured as a ready alternative.
Additional Requirements
- Hreflang Client requires Simple XML sitemap.
Project information
- By jreashor on , updated
This project is not covered by the security advisory policy.
Use at your own risk! It may have publicly disclosed vulnerabilities.


