diff --git a/app/[locale]/bible/reader.tsx b/app/[locale]/bible/reader.tsx index 8140dd5..f0df315 100644 --- a/app/[locale]/bible/reader.tsx +++ b/app/[locale]/bible/reader.tsx @@ -350,12 +350,15 @@ export default function BibleReaderNew({ initialVersion, initialBook, initialCha if (data.success && data.versions) { setVersions(data.versions) - // Only auto-select if there's NO current selection - if (!selectedVersion) { - // Try to load user's favorite version first + // Check if current version is available in the new locale's versions + const currentVersionAvailable = selectedVersion && data.versions.find((v: BibleVersion) => v.id === selectedVersion) + + // Auto-select if there's NO current selection OR if current version is not available in new locale + if (!selectedVersion || (!showAllVersions && !currentVersionAvailable)) { let versionToSelect = null - if (user) { + // Try to load user's favorite version first, but only if it matches the current locale + if (user && !showAllVersions) { const token = localStorage.getItem('authToken') if (token) { try { @@ -365,6 +368,7 @@ export default function BibleReaderNew({ initialVersion, initialBook, initialCha const favoriteData = await favoriteRes.json() if (favoriteData.success && favoriteData.favoriteBibleVersion) { + // Check if favorite version is in the current locale's versions const favoriteVersion = data.versions.find((v: BibleVersion) => v.id === favoriteData.favoriteBibleVersion) if (favoriteVersion) { versionToSelect = favoriteVersion @@ -376,9 +380,11 @@ export default function BibleReaderNew({ initialVersion, initialBook, initialCha } } - // Fall back to default version or first version + // Fall back to default version for this locale or first version if (!versionToSelect) { - versionToSelect = data.versions.find((v: BibleVersion) => v.isDefault) || data.versions[0] + versionToSelect = data.versions.find((v: BibleVersion) => v.isDefault && v.language.toLowerCase() === locale.toLowerCase()) + || data.versions.find((v: BibleVersion) => v.isDefault) + || data.versions[0] } if (versionToSelect) { diff --git a/components/layout/language-switcher.tsx b/components/layout/language-switcher.tsx index 6dc2087..930b404 100644 --- a/components/layout/language-switcher.tsx +++ b/components/layout/language-switcher.tsx @@ -33,12 +33,22 @@ export function LanguageSwitcher() { setAnchorEl(null) } - const handleLanguageChange = (newLocale: string) => { - // Remove current locale from pathname and add new one - const pathWithoutLocale = pathname.replace(`/${locale}`, '') || '/' - const newPath = `/${newLocale}${pathWithoutLocale === '/' ? '' : pathWithoutLocale}` + const handleLanguageChange = async (newLocale: string) => { + // Check if we're on a Bible page + const isBiblePage = pathname.includes('/bible/') + + if (isBiblePage) { + // For Bible pages, redirect to Bible reader without specific version + // Let the reader component select appropriate version for the new language + const newPath = `/${newLocale}/bible` + router.push(newPath) + } else { + // For other pages, just change the locale in the URL + const pathWithoutLocale = pathname.replace(`/${locale}`, '') || '/' + const newPath = `/${newLocale}${pathWithoutLocale === '/' ? '' : pathWithoutLocale}` + router.push(newPath) + } - router.push(newPath) handleClose() }