import { createRouter, createWebHistory } from "vue-router"; import Faq from "../components/FaqPage.vue"; import AdditionalModules from "../view/AdditionalModules.vue"; import CalendarLink from "../components/CalendarLink.vue"; import Imprint from "../view/ImprintPage.vue"; import PrivacyPolicy from "../view/PrivacyPolicy.vue"; import RenameModules from "../components/RenameModules.vue"; import RoomFinder from "../view/RoomFinder.vue"; import EditCalendarView from "../view/EditCalendarView.vue"; import EditAdditionalModules from "../components/editCalendar/EditAdditionalModules.vue"; import EditModules from "../components/editCalendar/EditModules.vue"; import CourseSelection from "../view/CourseSelection.vue"; import i18n from "../i18n"; const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes: [ { path: "/", name: "course-selection", component: CourseSelection, }, { path: "/rooms", name: "room-finder", component: RoomFinder, }, { path: "/faq", name: "faq", component: Faq, }, { path: "/additional-modules", name: "additional-modules", component: AdditionalModules, }, { path: "/edit-additional-modules", name: "edit-additional-modules", component: EditAdditionalModules, }, { path: "/edit-calendar", name: "edit-calendar", component: EditModules, }, { path: "/calendar-link", name: "calendar-link", component: CalendarLink, }, { path: "/edit", name: "edit", component: EditCalendarView, }, { path: "/privacy-policy", name: "privacy-policy", component: PrivacyPolicy, }, { path: "/imprint", name: "imprint", component: Imprint, }, { path: "/rename-modules", name: "rename-modules", component: RenameModules, }, ], }); router.beforeEach(async (to, from) => { const newLocale = to.params.locale; const prevLocale = from.params.locale; // If the locale hasn't changed, do nothing if (newLocale === prevLocale) { return; } i18n.setLocale(newLocale); }); export default router;