use runes mode, allow switching locale without js

Signed-off-by: ngn <ngn@ngn.tf>
This commit is contained in:
ngn
2025-07-24 16:50:32 +03:00
parent ee4b8a1d50
commit 897d445cdc
9 changed files with 41 additions and 28 deletions

View File

@@ -1,14 +1,28 @@
import { redirect } from "@sveltejs/kit";
import { color } from "../lib/util.js";
export async function load({ cookies, request }) {
// set the locale cookie
function set_locale(cookies, locale) {
cookies.set("locale", locale, { path: "/", secure: false, httpOnly: false });
}
export async function load({ cookies, request, url }) {
// if the locale param is specified, use the specified locale
let locale = url.searchParams.get("l");
if (locale) {
set_locale(cookies, locale);
return redirect(307, "/");
}
// attempt get the preferred locale from cookies
let locale = cookies.get("locale");
locale = cookies.get("locale");
/* if that doesn't work, try the accept-language header, and update the
* cookies respectively */
if (!locale) {
locale = request.headers.get("accept-language")?.split(",")[0];
cookies.set("locale", locale, { path: "/" });
set_locale(cookies, locale);
}
return {