diff --git a/public/js/i18n-simple.js b/public/js/i18n-simple.js index d0c35bed..5f6aead6 100644 --- a/public/js/i18n-simple.js +++ b/public/js/i18n-simple.js @@ -104,7 +104,12 @@ const I18n = { const pageResponse = await fetch(`/locales/${lang}/${pageName}.json`); let pageTranslations = {}; if (pageResponse.ok) { - pageTranslations = await pageResponse.json(); + const responseText = await pageResponse.text(); + console.log(`[i18n] DEBUG: Fetched ${responseText.length} characters from ${lang}/${pageName}.json`); + console.log(`[i18n] DEBUG: Response contains "faqs":`, responseText.includes('"faqs"')); + + pageTranslations = JSON.parse(responseText); + console.log(`[i18n] DEBUG: After JSON.parse, pageTranslations has faqs?`, !!pageTranslations.faqs); } else if (pageName !== 'homepage') { // If page-specific translations don't exist, that's okay for some pages console.warn(`[i18n] No translations found for ${lang}/${pageName}, using common only`); @@ -114,10 +119,18 @@ const I18n = { // Deep merge common and page-specific translations (page-specific takes precedence) // Uses deep merge to preserve nested objects like footer in common.json + console.log(`[i18n] DEBUG BEFORE MERGE: pageTranslations has faqs?`, !!pageTranslations.faqs, pageTranslations.faqs ? pageTranslations.faqs.length : 0); + console.log(`[i18n] DEBUG BEFORE MERGE: pageTranslations keys:`, Object.keys(pageTranslations)); + this.translations = this.deepMerge(commonTranslations, pageTranslations); + + console.log(`[i18n] DEBUG AFTER MERGE: this.translations has faqs?`, !!this.translations.faqs, this.translations.faqs ? this.translations.faqs.length : 0); + console.log(`[i18n] DEBUG AFTER MERGE: this.translations keys:`, Object.keys(this.translations)); + // Expose translations globally for components like interactive-diagram window.i18nTranslations = this.translations; console.log(`[i18n] Loaded translations: common + ${pageName}`); + console.log(`[i18n] DEBUG: faqs in window.i18nTranslations?`, !!window.i18nTranslations.faqs, window.i18nTranslations.faqs ? window.i18nTranslations.faqs.length : 0); } catch (error) { console.error(`[i18n] Error loading translations:`, error); // Fallback to English if loading fails diff --git a/public/service-worker.js b/public/service-worker.js index 3d2dab07..9b68c88a 100644 --- a/public/service-worker.js +++ b/public/service-worker.js @@ -5,7 +5,7 @@ * - PWA functionality */ -const CACHE_VERSION = '0.1.1'; +const CACHE_VERSION = '0.1.2'; const CACHE_NAME = `tractatus-v${CACHE_VERSION}`; const VERSION_CHECK_INTERVAL = 3600000; // 1 hour in milliseconds