mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-09-29 15:30:53 -04:00
23 lines
730 B
TypeScript
23 lines
730 B
TypeScript
import { createMiddleware, setServerData } from "one";
|
|
import { supportedLanguages } from "~/providers/translations.ssr";
|
|
|
|
export default createMiddleware(({ request, next }) => {
|
|
const systemLanguage = request.headers
|
|
.get("accept-languages")
|
|
?.split(",")
|
|
.map((x) => {
|
|
const [lang, q] = x.trim().split(";q=");
|
|
return [lang, q ? Number.parseFloat(q) : 1] as const;
|
|
})
|
|
.sort(([_, q1], [__, q2]) => q1 - q2)
|
|
.flatMap(([lang]) => {
|
|
const [base, spec] = lang.split("-");
|
|
if (spec) return [lang, base];
|
|
return [lang];
|
|
})
|
|
.find((x) => supportedLanguages.includes(x));
|
|
setServerData("systemLanguage", systemLanguage);
|
|
setServerData("cookies", request.headers.get("Cookies") ?? "");
|
|
return next();
|
|
});
|