I was being really dumb about how different languages were handled, should be better now :D

This commit is contained in:
wearrrrr 2024-07-26 23:23:39 -05:00
parent 00ed3fe3b4
commit 92952437d8
5 changed files with 9 additions and 20 deletions

View file

@ -14,6 +14,7 @@ const themeList = [
const languageList = [
{ name: "English", value: "en" },
{ name: "日本語", value: "jp" },
{ name: "Français", value: "fr"}
];
---

View file

@ -1,9 +1,11 @@
import en from "./en.json";
import jp from "./jp.json";
import fr from "./fr.json";
export const defaultLang = "en";
export const ui = {
en,
jp,
fr,
};

View file

@ -3,7 +3,7 @@ import { ui, defaultLang } from "./ui";
type LanguageKeys = keyof typeof ui;
type TranslationKeys = keyof (typeof ui)[typeof defaultLang];
export const STATIC_PATHS = [{ params: { lang: "en" } }, { params: { lang: "jp" } }];
export const STATIC_PATHS = [{ params: { lang: "en" } }, { params: { lang: "jp" } }, { params: { lang: "fr" } }];
function getLangFromUrl(url: URL) {
// comma lol

View file

@ -382,15 +382,8 @@ export function getStaticPaths() {
let currentLanguage = window.location.pathname.split("/")[1];
// Do nothing.. because we're already on the page.
if (value == currentLanguage) return;
switch (value) {
case "en":
window.location.href = "/en/settings/";
break;
case "jp":
window.location.href = "/jp/settings/";
break;
window.location.href = `/${value}/settings`;
}
}
}
document.addEventListener("astro:after-swap", () => {
setTimeout(() => {

View file

@ -26,17 +26,7 @@ import { ViewTransitions } from "astro:transitions";
if (currentLang) {
try {
let parsed = JSON.parse(currentLang).value;
switch (parsed) {
case "en":
redirect("/en/");
break;
case "jp":
redirect("/jp/");
break;
default:
redirect("/en/");
break;
}
redirect(`/${parsed}/`);
} catch {
localStorage.clear();
window.location.reload();
@ -45,6 +35,9 @@ import { ViewTransitions } from "astro:transitions";
if (navigator.language.includes("ja")) {
localStorage.setItem("alu__selectedLanguage", JSON.stringify({ value: "jp" }));
redirect("/jp/");
} else if (navigator.language.includes("fr")) {
localStorage.setItem("alu__selectedLanguage", JSON.stringify({ value: "fr" }));
redirect("/fr/");
} else {
localStorage.setItem("alu__selectedLanguage", JSON.stringify({ value: "en" }));
redirect("/en/");