diff --git a/.gitignore b/.gitignore
index 9ecd2f6..94ff649 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,3 +23,24 @@ dist-ssr
*.sln
*.sw?
/.vscode
+.DS_Store
+node_modules
+dist
+test-results/
+package-lock.json
+yarn.lock
+vite.config.js.timestamp-*
+/packages/create-svelte/template/CHANGELOG.md
+/packages/package/test/**/package
+/documentation/types.js
+.env
+.vercel_build_output
+.svelte-kit
+.cloudflare
+.pnpm-debug.log
+.netlify
+.turbo
+.vercel
+.test-tmp
+symlink-from
+.idea/
diff --git a/.svelte-kit/generated/client/app.js b/.svelte-kit/generated/client/app.js
index 744cd3a..4a13723 100644
--- a/.svelte-kit/generated/client/app.js
+++ b/.svelte-kit/generated/client/app.js
@@ -9,7 +9,7 @@ export const nodes = [
() => import('./nodes/5')
];
-export const server_loads = [];
+export const server_loads = [0];
export const dictionary = {
"/": [2],
diff --git a/.svelte-kit/generated/client/nodes/0.js b/.svelte-kit/generated/client/nodes/0.js
index 45d0407..fed1375 100644
--- a/.svelte-kit/generated/client/nodes/0.js
+++ b/.svelte-kit/generated/client/nodes/0.js
@@ -1,3 +1 @@
-import * as universal from "../../../../src/routes/+layout.js";
-export { universal };
export { default as component } from "../../../../src/routes/+layout.svelte";
\ No newline at end of file
diff --git a/.svelte-kit/generated/server/internal.js b/.svelte-kit/generated/server/internal.js
index 8a81a08..51304ee 100644
--- a/.svelte-kit/generated/server/internal.js
+++ b/.svelte-kit/generated/server/internal.js
@@ -21,7 +21,7 @@ export const options = {
app: ({ head, body, assets, nonce, env }) => "\n\n
\n \n \n \n \n " + head + "\n \n \n " + body + "
\n \n\n",
error: ({ status, message }) => "\n\n\t\n\t\t\n\t\t" + message + "\n\n\t\t\n\t\n\t\n\t\t\n\t\t\t
" + status + "\n\t\t\t
\n\t\t\t\t
" + message + "
\n\t\t\t\n\t\t
\n\t\n\n"
},
- version_hash: "lnkeyd"
+ version_hash: "1f4q059"
};
export async function get_hooks() {
diff --git a/.svelte-kit/types/route_meta_data.json b/.svelte-kit/types/route_meta_data.json
index 2deec3b..b087fe6 100644
--- a/.svelte-kit/types/route_meta_data.json
+++ b/.svelte-kit/types/route_meta_data.json
@@ -1,15 +1,15 @@
{
"/": [
- "src/routes/+layout.js",
- "src/routes/+layout.js"
+ "src/routes/+layout.server.js",
+ "src/routes/+layout.server.js"
],
"/about": [
- "src/routes/+layout.js"
+ "src/routes/+layout.server.js"
],
"/donate": [
- "src/routes/+layout.js"
+ "src/routes/+layout.server.js"
],
"/viewer": [
- "src/routes/+layout.js"
+ "src/routes/+layout.server.js"
]
}
\ No newline at end of file
diff --git a/.svelte-kit/types/src/routes/$types.d.ts b/.svelte-kit/types/src/routes/$types.d.ts
index 0dd5022..d086b2b 100644
--- a/.svelte-kit/types/src/routes/$types.d.ts
+++ b/.svelte-kit/types/src/routes/$types.d.ts
@@ -14,13 +14,15 @@ export type Snapshot = Kit.Snapshot;
type PageParentData = EnsureDefined;
type LayoutRouteId = RouteId | "/" | "/about" | "/donate" | "/viewer" | null
type LayoutParams = RouteParams & { }
+type LayoutServerParentData = EnsureDefined<{}>;
type LayoutParentData = EnsureDefined<{}>;
export type PageServerData = null;
export type PageData = Expand;
export type PageProps = { data: PageData }
-export type LayoutServerData = null;
-export type LayoutLoad = OutputDataShape> = Kit.Load;
-export type LayoutLoadEvent = Parameters[0];
-export type LayoutData = Expand>>> & OptionalUnion>>>>>;
-export type LayoutProps = { data: LayoutData; children: import("svelte").Snippet }
\ No newline at end of file
+export type LayoutServerLoad = OutputDataShape> = Kit.ServerLoad;
+export type LayoutServerLoadEvent = Parameters[0];
+export type LayoutServerData = Expand>>>>>;
+export type LayoutData = Expand & EnsureDefined>;
+export type LayoutProps = { data: LayoutData; children: import("svelte").Snippet }
+export type RequestEvent = Kit.RequestEvent;
\ No newline at end of file
diff --git a/.svelte-kit/types/src/routes/proxy+layout.js b/.svelte-kit/types/src/routes/proxy+layout.js
deleted file mode 100644
index 12a3ece..0000000
--- a/.svelte-kit/types/src/routes/proxy+layout.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// @ts-nocheck
-import { loadTranslations } from '$lib/translations';
-
-/** */
-export const load = async () => {
- const initLocale = primaryLanguage(navigator.language) || 'en';
-
- // TODO: Fix the undefined location issue
- await loadTranslations(initLocale);
-
- return {};
-};
-
-const primaryLanguage = (/** @type {string} */ locale) => {
- if (!locale) return '';
- return locale.split('-')[0];
-};
diff --git a/package-lock.json b/package-lock.json
index a5b662f..e50385b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,6 +8,7 @@
"name": "embroidery-viewer",
"version": "0.0.1",
"dependencies": {
+ "accept-language-parser": "^1.5.0",
"sveltekit-i18n": "^2.4.2"
},
"devDependencies": {
@@ -1165,6 +1166,12 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/accept-language-parser": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/accept-language-parser/-/accept-language-parser-1.5.0.tgz",
+ "integrity": "sha512-QhyTbMLYo0BBGg1aWbeMG4ekWtds/31BrEU+DONOg/7ax23vxpL03Pb7/zBmha2v7vdD3AyzZVWBVGEZxKOXWw==",
+ "license": "MIT"
+ },
"node_modules/acorn": {
"version": "8.14.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
diff --git a/package.json b/package.json
index 738de6b..ff8b29b 100644
--- a/package.json
+++ b/package.json
@@ -31,6 +31,7 @@
"vite": "^6.2.6"
},
"dependencies": {
+ "accept-language-parser": "^1.5.0",
"sveltekit-i18n": "^2.4.2"
}
}
diff --git a/src/lib/components/Header.svelte b/src/lib/components/Header.svelte
index cec69b3..2559f43 100644
--- a/src/lib/components/Header.svelte
+++ b/src/lib/components/Header.svelte
@@ -1,5 +1,5 @@