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 = [ const languageList = [
{ name: "English", value: "en" }, { name: "English", value: "en" },
{ name: "日本語", value: "jp" }, { name: "日本語", value: "jp" },
{ name: "Français", value: "fr"}
]; ];
--- ---

View file

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

View file

@ -3,7 +3,7 @@ import { ui, defaultLang } from "./ui";
type LanguageKeys = keyof typeof ui; type LanguageKeys = keyof typeof ui;
type TranslationKeys = keyof (typeof ui)[typeof defaultLang]; 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) { function getLangFromUrl(url: URL) {
// comma lol // comma lol

View file

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

View file

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