aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-01-26 00:06:00 -0800
committerAdam Soltys <[email protected]>2024-01-26 00:33:50 -0800
commit3444b3c0fb349395a02d6db1eeaef57460b1a37f (patch)
treeaf815eafd6c6075d49c8231efd955531376d993e /src/routes
parent01fdad8ee4e6bb4213c0c81a8876cda67ad3085a (diff)
downloadcoinos-ui-3444b3c0fb349395a02d6db1eeaef57460b1a37f.tar.gz
coinos-ui-3444b3c0fb349395a02d6db1eeaef57460b1a37f.zip
update translations
Diffstat (limited to 'src/routes')
-rw-r--r--src/routes/(app)/+layout.svelte1
-rw-r--r--src/routes/(app)/[username]/settings/[...tab]/+page.server.js4
-rw-r--r--src/routes/(app)/[username]/settings/[...tab]/+page.svelte1
-rw-r--r--src/routes/(app)/[username]/settings/[...tab]/_pos.svelte5
-rw-r--r--src/routes/(app)/login/+page.server.js2
-rw-r--r--src/routes/(app)/login/+page.svelte3
-rw-r--r--src/routes/(app)/logout/+page.server.js4
-rw-r--r--src/routes/+layout.js14
-rw-r--r--src/routes/+layout.server.js40
-rw-r--r--src/routes/+page.svelte2
10 files changed, 62 insertions, 14 deletions
diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte
index d853dd9e..d33aa193 100644
--- a/src/routes/(app)/+layout.svelte
+++ b/src/routes/(app)/+layout.svelte
@@ -39,7 +39,6 @@
$: update(data);
let update = (data) => {
({ rate, user, subject, token, rates } = data);
- $locale = user?.language || "en";
};
onMount(async () => {
diff --git a/src/routes/(app)/[username]/settings/[...tab]/+page.server.js b/src/routes/(app)/[username]/settings/[...tab]/+page.server.js
index 3c10d897..8b44f452 100644
--- a/src/routes/(app)/[username]/settings/[...tab]/+page.server.js
+++ b/src/routes/(app)/[username]/settings/[...tab]/+page.server.js
@@ -5,7 +5,7 @@ export function load({ cookies, params, url }) {
if (url.pathname.endsWith("settings"))
redirect(307, url.pathname + "/account");
params.cookies = cookies.getAll();
- return { cookies: cookies.getAll(), tab: params.tab }
+ return { cookies: cookies.getAll(), tab: params.tab };
}
export const actions = {
@@ -26,6 +26,8 @@ export const actions = {
return fail(400, { message: e.message });
}
+ if (user.language) cookies.set("lang", user.language, { path: "/" });
+
return { user, success: true };
},
};
diff --git a/src/routes/(app)/[username]/settings/[...tab]/+page.svelte b/src/routes/(app)/[username]/settings/[...tab]/+page.svelte
index 0a08a4b1..383785ec 100644
--- a/src/routes/(app)/[username]/settings/[...tab]/+page.svelte
+++ b/src/routes/(app)/[username]/settings/[...tab]/+page.svelte
@@ -43,7 +43,6 @@
let justUpdated;
let throttledSuccess = () => {
- console.log("justUpdated", justUpdated);
if (!justUpdated) {
justUpdated = true;
success($t("user.settings.saved"), false);
diff --git a/src/routes/(app)/[username]/settings/[...tab]/_pos.svelte b/src/routes/(app)/[username]/settings/[...tab]/_pos.svelte
index 80ae3ad9..4fd61918 100644
--- a/src/routes/(app)/[username]/settings/[...tab]/_pos.svelte
+++ b/src/routes/(app)/[username]/settings/[...tab]/_pos.svelte
@@ -2,20 +2,21 @@
import Icon from "$comp/Icon.svelte";
import LocaleSelector from "$comp/LocaleSelector.svelte";
import Toggle from "$comp/Toggle.svelte";
- import { t } from "$lib/translations";
+ import { locale, t } from "$lib/translations";
import { success, fail } from "$lib/utils";
import { page } from "$app/stores";
export let user, rates, submit;
let fiats = Object.keys(rates);
+ $: user.language = $locale
</script>
<div>
<label for="language" class="font-bold block mb-1"
>{$t("user.settings.locale")}</label
>
- <LocaleSelector style="select-styles block py-3 w-full" bind:user />
+ <LocaleSelector style="select-styles block py-3 w-full" />
</div>
<div>
diff --git a/src/routes/(app)/login/+page.server.js b/src/routes/(app)/login/+page.server.js
index 7b977024..7fb1a6b3 100644
--- a/src/routes/(app)/login/+page.server.js
+++ b/src/routes/(app)/login/+page.server.js
@@ -1,7 +1,7 @@
import { fail, redirect } from "@sveltejs/kit";
import { login, fd } from "$lib/utils";
-export const load = async ({ parent }) => {
+export const load = async ({ parent, url }) => {
let { user } = await parent();
if (user?.pubkey) redirect(307, `/${user.username}`);
};
diff --git a/src/routes/(app)/login/+page.svelte b/src/routes/(app)/login/+page.svelte
index cebbf41c..0afcad44 100644
--- a/src/routes/(app)/login/+page.svelte
+++ b/src/routes/(app)/login/+page.svelte
@@ -18,6 +18,9 @@
$pin = undefined;
localStorage.clear();
sessionStorage.clear();
+
+ let lang = $page.url.searchParams.get("lang");
+ if (lang) document.cookie = `lang=${lang} ;`;
});
export let form;
diff --git a/src/routes/(app)/logout/+page.server.js b/src/routes/(app)/logout/+page.server.js
index 97bb1e73..ab5df7b9 100644
--- a/src/routes/(app)/logout/+page.server.js
+++ b/src/routes/(app)/logout/+page.server.js
@@ -6,7 +6,9 @@ const opts = {
};
export async function load({ cookies }) {
+ let lang = cookies.get("lang");
+ cookies.set("lang", "", opts);
cookies.set("username", "", opts);
cookies.set("token", "", opts);
- redirect(307, "/login");
+ redirect(307, `/login?lang=${lang}`);
}
diff --git a/src/routes/+layout.js b/src/routes/+layout.js
new file mode 100644
index 00000000..03c7ec49
--- /dev/null
+++ b/src/routes/+layout.js
@@ -0,0 +1,14 @@
+import { addTranslations, setLocale, setRoute } from '$lib/translations';
+
+/** @type {import('@sveltejs/kit').Load} */
+export const load = async ({ data }) => {
+ const { i18n, translations } = data;
+ const { locale, route } = i18n;
+
+ addTranslations(translations);
+
+ await setRoute(route);
+ await setLocale(locale);
+
+ return i18n;
+};
diff --git a/src/routes/+layout.server.js b/src/routes/+layout.server.js
index 91d24d3d..5d1688fc 100644
--- a/src/routes/+layout.server.js
+++ b/src/routes/+layout.server.js
@@ -1,7 +1,13 @@
import { auth, get } from "$lib/utils";
-import { loadTranslations, locale } from "$lib/translations";
+import {
+ locales,
+ loadTranslations,
+ translations,
+ defaultLocale,
+} from "$lib/translations";
-export let load = async ({ cookies, url }) => {
+export let load = async ({ cookies, request, url }) => {
+ let { host, pathname } = url;
let user;
let token = cookies.get("token");
if (token) {
@@ -10,8 +16,30 @@ export let load = async ({ cookies, url }) => {
} catch (e) {}
}
- let { host, pathname } = url;
- let locale = user?.language || "en";
- await loadTranslations(locale, pathname);
- return { host, pathname };
+ // Try to get the locale from cookie
+ let locale = user?.language || (cookies.get("lang") || "").toLowerCase();
+
+ // Get user preferred locale
+ if (!locale) {
+ locale = `${`${request.headers.get("accept-language")}`.match(
+ /[a-zA-Z]+?(?=-|_|,|;)/
+ )}`.toLowerCase();
+ }
+
+ // Get defined locales
+ let supportedLocales = locales.get().map((l) => l.toLowerCase());
+
+ // Use default locale if current locale is not supported
+ if (!supportedLocales.includes(locale)) {
+ locale = defaultLocale;
+ }
+
+ await loadTranslations(locale, pathname); // keep this just before the `return`
+
+ return {
+ host,
+ pathname,
+ i18n: { locale, route: pathname },
+ translations: translations.get(),
+ };
};
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index 3cffea21..b06c4fb5 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -7,7 +7,7 @@
import Image from "$comp/Image.svelte";
import Footer from "$comp/Footer.svelte";
- import { t } from "$lib/translations";
+ import { locale, t } from "$lib/translations";
import { onDestroy, onMount, tick } from "svelte";
export let data;