diff --git a/src/App.svelte b/src/App.svelte
index 7118944..fa512e0 100644
--- a/src/App.svelte
+++ b/src/App.svelte
@@ -5,7 +5,6 @@
import Header from '@components/layout/Header.svelte'
import Cursor from '@components/layout/Cursor.svelte'
- import LanguageSwitcher from '@components/ui/LanguageSwitcher.svelte'
import Home from '@views/Home.svelte'
import About from '@views/About.svelte'
@@ -95,7 +94,6 @@
{/each}
-
diff --git a/src/i18n/index.js b/src/i18n/index.js
deleted file mode 100644
index aa73357..0000000
--- a/src/i18n/index.js
+++ /dev/null
@@ -1,51 +0,0 @@
-import { locale } from '@state/locale.svelte'
-
-const dict = {
- // Article
- 'published_on': { fr: 'Publié le', en: 'Published on' },
- 'link_copied': { fr: 'Lien copié !', en: 'Link copied!' },
- 'copy_link': { fr: 'Copier le lien', en: 'Copy link' },
- 'share_article': { fr: 'Partager cet article', en: 'Share this article' },
- 'related': { fr: 'Nos recommandations', en: 'Our recommendations' },
- 'share_whatsapp': { fr: 'Partager sur WhatsApp', en: 'Share on WhatsApp' },
- 'share_x': { fr: 'Partager sur X', en: 'Share on X' },
- 'share_facebook': { fr: 'Partager sur Facebook', en: 'Share on Facebook' },
- 'share_linkedin': { fr: 'Partager sur LinkedIn', en: 'Share on LinkedIn' },
- // Blog
- 'loading': { fr: 'Chargement…', en: 'Loading…' },
- 'read_article': { fr: "Lire l'article", en: 'Read article' },
- // Play
- 'play': { fr: 'Jouer', en: 'Play' },
- 'coming_soon': { fr: 'Coming soon', en: 'Coming soon' },
- // Header
- 'close_menu': { fr: 'Fermer le menu', en: 'Close menu' },
- 'open_menu': { fr: 'Ouvrir le menu', en: 'Open menu' },
- // Footer
- 'location': { fr: 'Adresse', en: 'Location' },
- 'contact': { fr: 'Contact', en: 'Contact' },
- 'follow_us': { fr: 'Réseaux', en: 'Follow us' },
- 'newsletter_heading': { fr: 'Inscrivez-vous à notre newsletter !', en: 'Subscribe to our newsletter!' },
- 'newsletter_placeholder': { fr: 'Votre email', en: 'Enter your email' },
- 'newsletter_submit': { fr: "S'inscrire", en: 'Subscribe' },
- 'newsletter_success': { fr: 'Merci pour votre inscription !', en: 'Thank you for subscribing!' },
- 'newsletter_error': { fr: 'Une erreur est survenue.', en: 'An error occurred.' },
- 'copyright': { fr: 'World Game © {year}. Tous droits réservés.', en: 'World Game © {year}. All rights reserved.' },
- 'legal': { fr: 'Mentions légales', en: 'Legal notice' },
- 'cookies': { fr: 'Préférences cookies', en: 'Cookie preferences' },
- 'privacy': { fr: 'Confidentialité', en: 'Privacy' },
- // Menu
- 'menu': { fr: 'MENU', en: 'MENU' },
- 'connect': { fr: 'CONNECT', en: 'CONNECT' },
- 'address': { fr: 'ADRESSE', en: 'LOCATION' },
- 'mail': { fr: 'MAIL', en: 'MAIL' },
- 'socials': { fr: 'RÉSEAUX', en: 'SOCIALS' },
-}
-
-export function t(key, vars = {}) {
- const lang = locale.current
- let str = dict[key]?.[lang] ?? dict[key]?.fr ?? key
- for (const [k, v] of Object.entries(vars)) {
- str = str.replace(`{${k}}`, v)
- }
- return str
-}
diff --git a/src/router/index.js b/src/router/index.js
index cb54766..d035676 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -5,12 +5,7 @@ import { locale } from "@state/locale.svelte";
let siteInitialized = false;
function normalizePath(path) {
- const stripped = path.replace(/^\/en(\/|$)/, '$1') || '/';
- return stripped === '/' ? '/home' : stripped;
-}
-
-function apiPrefix() {
- return locale.current === 'en' ? '/en' : '';
+ return path === "/" ? "/home" : path;
}
/**
@@ -52,7 +47,8 @@ async function loadSlide(path) {
}
try {
- const response = await fetch(`${apiPrefix()}${slidePath}.json`);
+ // Fetch the actual slide path (parent), not the sub-page
+ const response = await fetch(`${slidePath}.json`);
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();
@@ -80,10 +76,7 @@ export function slideTo(path, { skipHistory = false } = {}) {
path = normalizePath(path);
if (!skipHistory) {
- const historyPath = locale.current === 'en'
- ? (path === '/home' ? '/en' : `/en${path}`)
- : (path === '/home' ? '/' : path);
- history.pushState({}, '', historyPath);
+ history.pushState({}, "", path === "/home" ? "/" : path);
}
const idx = findSlideIndex(path);
@@ -101,22 +94,6 @@ export function slideTo(path, { skipHistory = false } = {}) {
}
export async function initRouter() {
- // Language detection: URL prefix > localStorage > navigator
- const hasEnPrefix = window.location.pathname.startsWith('/en');
- if (hasEnPrefix) {
- locale.setLanguage('en');
- localStorage.setItem('wg_lang', 'en');
- } else if (!localStorage.getItem('wg_lang')) {
- const navLang = navigator.language || navigator.languages?.[0] || 'fr';
- if (navLang.startsWith('en')) {
- window.location.replace('/en' + window.location.pathname);
- return;
- }
- } else if (localStorage.getItem('wg_lang') === 'en') {
- window.location.replace('/en' + window.location.pathname);
- return;
- }
-
const initialPath = normalizePath(window.location.pathname);
await loadSlide(initialPath);
diff --git a/src/views/Article.svelte b/src/views/Article.svelte
index 79b7d29..f61bc81 100644
--- a/src/views/Article.svelte
+++ b/src/views/Article.svelte
@@ -4,7 +4,6 @@
* Reçoit les données article via props, pas via le slide system.
*/
import Footer from '@components/layout/Footer.svelte'
- import { t } from '@i18n'
let { data, onBack } = $props()
@@ -21,32 +20,31 @@
const shareUrl = $derived(encodeURIComponent(window.location.href))
-
-
+
{#if copySuccess}
-
{t('link_copied')}
+
Lien copié !
{/if}
@@ -75,23 +73,23 @@
-
{t('share_article')}
+
Partager cet article
@@ -99,7 +97,7 @@
{#if data.related?.length}
- {t('related')}
+ Nos recommandations
{/if}
+
-