I was being really dumb about how different languages were handled, should be better now :D
This commit is contained in:
parent
00ed3fe3b4
commit
92952437d8
5 changed files with 9 additions and 20 deletions
|
|
@ -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"}
|
||||||
];
|
];
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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", () => {
|
||||||
|
|
|
||||||
|
|
@ -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/");
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue