diff --git a/frontend/src/pagerite.js b/frontend/src/pagerite.js index 44d34f3..a004242 100644 --- a/frontend/src/pagerite.js +++ b/frontend/src/pagerite.js @@ -832,6 +832,11 @@ import { reconnectPolicy, socketSlot, watchConnecting } from "./reconnect"; // stylesheet after the server-rendered tag. const userStyle = document.getElementById("pagerite-user"); if (userStyle) document.head.appendChild(userStyle); + // The served language rides on (lang + dir, rtl for e.g. + // Arabic) — follow the swapped page (the editor panel carries its + // own lang="en" dir="ltr", so it is unaffected). + document.documentElement.lang = doc.documentElement.lang; + document.documentElement.dir = doc.documentElement.dir; document.title = doc.title; // Banners may contain scripts (canvas etc.), content pages may too. runScripts(document.getElementById("page-banner")); diff --git a/frontend/src/swapdoc.js b/frontend/src/swapdoc.js index c5b9f24..a41c801 100644 --- a/frontend/src/swapdoc.js +++ b/frontend/src/swapdoc.js @@ -114,6 +114,11 @@ function swapRegions(doc) { } anchor = imported } + // The served language rides on (lang + dir, rtl for e.g. Arabic): + // follow the swapped page. The editor panel carries its own lang="en" + // dir="ltr", so it is unaffected. + document.documentElement.lang = doc.documentElement.lang + document.documentElement.dir = doc.documentElement.dir // The editor keeps its own title while open; only inherit the server title // when navigating outside the editor (e.g. fetch-navigation swaps). if (!document.body.classList.contains('editing')) {