Refactor navigation structure to enhance language learning features

- Renamed 'vocabtrainer' to 'sprachenlernen' in the navigation structure for better clarity.
- Introduced a nested structure under 'sprachenlernen' for 'vocabtrainer' and 'sprachkurse', improving organization of language-related resources.
- Updated internationalization files for both German and English to reflect the new naming and structure, ensuring consistency across the application.
This commit is contained in:
Torsten Schulz (local)
2026-01-19 11:24:46 +01:00
parent b6a4607e60
commit e1b3dfb00a
3 changed files with 29 additions and 12 deletions

View File

@@ -50,10 +50,19 @@ const menuStructure = {
visible: ["all"], visible: ["all"],
path: "/socialnetwork/gallery" path: "/socialnetwork/gallery"
}, },
vocabtrainer: { sprachenlernen: {
visible: ["all"], visible: ["all"],
path: "/socialnetwork/vocab", children: {
children: {} vocabtrainer: {
visible: ["all"],
path: "/socialnetwork/vocab",
children: {}
},
sprachkurse: {
visible: ["all"],
path: "/socialnetwork/vocab/courses"
}
}
}, },
blockedUsers: { blockedUsers: {
visible: ["all"], visible: ["all"],
@@ -377,9 +386,9 @@ class NavigationController {
const rights = userRights.map(ur => ur.rightType?.title).filter(Boolean); const rights = userRights.map(ur => ur.rightType?.title).filter(Boolean);
const filteredMenu = await this.filterMenu(menuStructure, rights, age, user.id); const filteredMenu = await this.filterMenu(menuStructure, rights, age, user.id);
// Dynamisches Submenü: Treffpunkt → Vokabeltrainer → (Neue Sprache + abonnierte/angelegte) // Dynamisches Submenü: Treffpunkt → Sprachen lernen → Vokabeltrainer → (Neue Sprache + abonnierte/angelegte)
// Wichtig: "Neue Sprache" soll IMMER sichtbar sein auch wenn die DB-Abfrage (noch) fehlschlägt. // Wichtig: "Neue Sprache" soll IMMER sichtbar sein auch wenn die DB-Abfrage (noch) fehlschlägt.
if (filteredMenu?.socialnetwork?.children?.vocabtrainer) { if (filteredMenu?.socialnetwork?.children?.sprachenlernen?.children?.vocabtrainer) {
const children = { const children = {
newLanguage: { path: '/socialnetwork/vocab/new' }, newLanguage: { path: '/socialnetwork/vocab/new' },
}; };
@@ -391,7 +400,7 @@ class NavigationController {
} catch (e) { } catch (e) {
console.warn('[menu] Konnte Vokabeltrainer-Sprachen nicht laden:', e?.message || e); console.warn('[menu] Konnte Vokabeltrainer-Sprachen nicht laden:', e?.message || e);
} }
filteredMenu.socialnetwork.children.vocabtrainer.children = children; filteredMenu.socialnetwork.children.sprachenlernen.children.vocabtrainer.children = children;
} }
res.status(200).json(filteredMenu); res.status(200).json(filteredMenu);

View File

@@ -20,7 +20,7 @@
"usersearch": "Benutzersuche", "usersearch": "Benutzersuche",
"forum": "Forum", "forum": "Forum",
"gallery": "Galerie", "gallery": "Galerie",
"vocabtrainer": "Vokabeltrainer", "sprachenlernen": "Sprachen lernen",
"blockedUsers": "Blockierte Benutzer", "blockedUsers": "Blockierte Benutzer",
"oneTimeInvitation": "Einmal-Einladungen", "oneTimeInvitation": "Einmal-Einladungen",
"diary": "Tagebuch", "diary": "Tagebuch",
@@ -29,8 +29,12 @@
"pictures": "Bilder", "pictures": "Bilder",
"videos": "Videos" "videos": "Videos"
}, },
"m-vocabtrainer": { "m-sprachenlernen": {
"newLanguage": "Neue Sprache" "vocabtrainer": "Vokabeltrainer",
"sprachkurse": "Sprachkurse",
"m-vocabtrainer": {
"newLanguage": "Neue Sprache"
}
} }
}, },
"m-minigames": { "m-minigames": {

View File

@@ -20,7 +20,7 @@
"usersearch": "User search", "usersearch": "User search",
"forum": "Forum", "forum": "Forum",
"gallery": "Gallery", "gallery": "Gallery",
"vocabtrainer": "Vocabulary trainer", "sprachenlernen": "Learn Languages",
"blockedUsers": "Blocked users", "blockedUsers": "Blocked users",
"oneTimeInvitation": "One-time invitations", "oneTimeInvitation": "One-time invitations",
"diary": "Diary", "diary": "Diary",
@@ -29,8 +29,12 @@
"pictures": "Pictures", "pictures": "Pictures",
"videos": "Videos" "videos": "Videos"
}, },
"m-vocabtrainer": { "m-sprachenlernen": {
"newLanguage": "New language" "vocabtrainer": "Vocabulary trainer",
"sprachkurse": "Language courses",
"m-vocabtrainer": {
"newLanguage": "New language"
}
} }
}, },
"m-minigames": { "m-minigames": {