refactor: unify recipe routes into [recipeLang] slug with full bilingual support
Consolidate /rezepte and /recipes routes into single [recipeLang] structure to eliminate code duplication. All pages now use conditional API routing and reactive labels based on language parameter. - Merge duplicate route structures into /[recipeLang] with 404 for invalid slugs - Add English API endpoints for search, favorites, tags, and categories - Implement language dropdown in header with localStorage persistence - Convert all pages to use Svelte 5 runes (, , ) - Add German-only redirects (301) for add/edit pages - Make all view pages (list, detail, filters, search, favorites) fully bilingual - Remove floating language switcher in favor of header dropdown
This commit is contained in:
@@ -3,6 +3,12 @@
|
||||
export let englishUrl: string;
|
||||
export let currentLang: 'de' | 'en' = 'de';
|
||||
export let hasTranslation: boolean = true;
|
||||
|
||||
function setLanguagePreference(lang: 'de' | 'en') {
|
||||
if (typeof localStorage !== 'undefined') {
|
||||
localStorage.setItem('preferredLanguage', lang);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
@@ -101,6 +107,7 @@
|
||||
href={germanUrl}
|
||||
class:active={currentLang === 'de'}
|
||||
aria-label="Switch to German"
|
||||
onclick={() => setLanguagePreference('de')}
|
||||
>
|
||||
<span class="flag">🇩🇪</span>
|
||||
<span class="label">DE</span>
|
||||
@@ -110,6 +117,7 @@
|
||||
href={englishUrl}
|
||||
class:active={currentLang === 'en'}
|
||||
aria-label="Switch to English"
|
||||
onclick={() => setLanguagePreference('en')}
|
||||
>
|
||||
<span class="flag">🇬🇧</span>
|
||||
<span class="label">EN</span>
|
||||
|
||||
Reference in New Issue
Block a user