use runes mode, allow switching locale without js
Signed-off-by: ngn <ngn@ngn.tf>
This commit is contained in:
@@ -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 {
|
||||
|
Reference in New Issue
Block a user