diff --git a/src/components/Nav.astro b/src/components/Nav.astro
index 406ba8d..4784f8b 100644
--- a/src/components/Nav.astro
+++ b/src/components/Nav.astro
@@ -1,38 +1,40 @@
+---
+import { translations } from '../data/i18n.js';
+const { lang = 'no' } = Astro.props;
+const t = translations[lang].nav;
+const { pathname } = Astro.url;
+
+function getLangSwitchPath(path, lang) {
+ if (lang === 'no') {
+ if (path === '/') return '/en/';
+ if (path.startsWith('/en/')) return path.replace('/en/', '/');
+ return '/en' + path;
+ } else {
+ if (path === '/en/' || path === '/en') return '/';
+ if (path.startsWith('/en/')) return path.replace('/en', '');
+ return path;
+ }
+}
+
+const langSwitchPath = getLangSwitchPath(pathname, lang);
+---
-
\ No newline at end of file
diff --git a/src/components/Vors.astro b/src/components/Vors.astro
index 510de94..788da63 100644
--- a/src/components/Vors.astro
+++ b/src/components/Vors.astro
@@ -1,18 +1,19 @@
---
const videoUrl = "https://www.youtube.com/watch?v=t7T4RPBpTVY";
+import { translations } from '../data/i18n.js';
+const { lang = 'no' } = Astro.props;
+const t = translations[lang].vors;
---
-
- Sett på låta for litt stemning før dere kommer🔥
+ {t.text}
diff --git a/src/data/en-program.json b/src/data/en-program.json
index 5d4391f..108ed82 100644
--- a/src/data/en-program.json
+++ b/src/data/en-program.json
@@ -1,30 +1,40 @@
{
- "Monday 11th": [
- { "time": "18:00", "event": "Opening party with DJ", "cost": "free" },
- { "time": "21:00", "event": "Sing-a-long karaoke", "cost": "free" },
- { "time": "22:00", "event": "Silent Disco", "cost": "free" }
- ],
- "Tuesday 12th": [
- { "time": "18:00", "event": "Barbecue", "cost": "free" },
- { "time": "19:00", "event": "Qualified Guessing Quiz", "cost": "free" },
- { "time": "21:00", "event": "Live Karaoke", "cost": "free" },
- { "time": "22:00", "event": "Silent Disco", "cost": "free" }
- ],
- "Wednesday 13th": [
- { "time": "18:00", "event": "KKK: Comic Comedian Evening", "cost": "tickets out!" },
- { "time": "18:00", "event": "Hits for Quiz", "cost": "free" },
- { "time": "21:00", "event": "Karaoke", "cost": "free" },
- { "time": "22:00", "event": "Silent Disco", "cost": "free" }
- ],
- "Thursday 14th": [
- { "time": "18:00", "event": "Drunk Impro 4K, VRØVL", "cost": "tickets out!" },
- { "time": "19:00", "event": "Shrek 2 Screening", "cost": "free" },
- { "time": "20:00", "event": "Live Karaoke", "cost": "free" },
- { "time": "22:00", "event": "Silent Disco", "cost": "free" }
- ],
- "Friday 15th": [
- { "time": "21:00", "event": "Sing-a-long karaoke", "cost": "free" },
- { "time": "22:00", "event": "Afterparty", "cost": "free" },
- { "time": "22:00", "event": "Silent Disco", "cost": "free" }
- ]
+ "Monday 11th": [
+ { "time": "18:00", "event": "Opening party with DJ", "cost": "free" },
+ { "time": "21:00", "event": "Sing-a-long karaoke", "cost": "free" },
+ { "time": "22:00", "event": "Silent Disco", "cost": "free" }
+ ],
+ "Tuesday 12th": [
+ { "time": "18:00", "event": "Barbecue", "cost": "free" },
+ { "time": "19:00", "event": "Qualified Guessing Quiz", "cost": "free" },
+ { "time": "21:00", "event": "Live Karaoke", "cost": "free" },
+ { "time": "22:00", "event": "Silent Disco", "cost": "free" }
+ ],
+ "Wednesday 13th": [
+ {
+ "time": "18:00",
+ "event": "KKK: Comic Comedian Evening",
+ "cost": "tickets out!",
+ "url": "https://www.ticketmaster.no/event/studio-komisk-komedie-kveld-billetter/920472981"
+ },
+ { "time": "18:00", "event": "Hits for Quiz", "cost": "free" },
+ { "time": "21:00", "event": "Karaoke", "cost": "free" },
+ { "time": "22:00", "event": "Silent Disco", "cost": "free" }
+ ],
+ "Thursday 14th": [
+ {
+ "time": "18:00",
+ "event": "Drunk Impro 4K, VRØVL",
+ "cost": "tickets out!",
+ "url": "https://www.ticketmaster.no/event/studio-drunk-impro-i-storsalen-med-4k-billetter/912660512"
+ },
+ { "time": "19:00", "event": "Shrek 2 Screening", "cost": "free" },
+ { "time": "20:00", "event": "Live Karaoke", "cost": "free" },
+ { "time": "22:00", "event": "Silent Disco", "cost": "free" }
+ ],
+ "Friday 15th": [
+ { "time": "21:00", "event": "Sing-a-long karaoke", "cost": "free" },
+ { "time": "22:00", "event": "Afterparty", "cost": "free" },
+ { "time": "22:00", "event": "Silent Disco", "cost": "free" }
+ ]
}
diff --git a/src/data/i18n.js b/src/data/i18n.js
new file mode 100644
index 0000000..e51ed7c
--- /dev/null
+++ b/src/data/i18n.js
@@ -0,0 +1,115 @@
+export const translations = {
+ no: {
+ nav: {
+ home: "Hjem",
+ program: "Program",
+ volunteer: "Bli frivillig",
+ about: "Om",
+ langSwitch: "Norsk / English",
+ title: "STUDiO 2025",
+ },
+ hero: {
+ title: "Studentfestivalen i Oslo 2025",
+ alt: "Studentfestivalen i Oslo Logo",
+ },
+ faq: {
+ title: "Ofte stilte spørsmål",
+ q1: "Hvor arrangeres festivalen?",
+ a1: 'På
Chateau Neuf , Majorstuen, Oslo',
+ q2: "Hvem er festivalen for?",
+ a2: "Alle nye og gamle studenter, men arrangementene er åpne for alle som ønsker å delta.",
+ q3: "Koster det penger å delta?",
+ a3: "Gratis inngang hver dag og nesten alle arrangementene er gratis. Kun 2 arrangementer krever kjøp av billett.",
+ q4: "Må jeg har med student ID for å komme inn?",
+ a4: "Nei, men generell legitimasjon er påkrevd.",
+ q5: "Hva er alder årsgrensen på festivalen?",
+ a5: "Alt er ID18+",
+ },
+ about: {
+ title: "Om STUDiO 2025",
+ p1: "STUDiO 2025 er en studentfestival som arrangeres under fadderuka i Oslo fra 11. til 15. august på Chateau Neuf.",
+ p2: "Det blir sosiale og spennende arrangementer hver dag! Festivalen er for alle nye og gamle studenter i Oslo. Opplev høydepunktet i semesteret - ta med fadderbarna eller vennegjengen, eller kom alene og møt nye venner.",
+ p3: "Ikke gå glipp av den største studiekickoffen i Oslo!",
+ p4: "Flere av arrangementene våre er gratis, og alt er ID 18+.",
+ },
+ links: [
+ { href: "https://www.neuf.no", text: "Chateau Neuf" },
+ { href: "https://forms.gle/PvEh37nvRyicLFXn6", text: "Bli frivillig!" },
+ {
+ href: "https://www.instagram.com/studentfestivalenioslo/",
+ text: "Instagram",
+ },
+ { href: "https://www.facebook.com/studentfestivalen", text: "Facebook" },
+ { href: "https://www.tiktok.com/@studentersamfund", text: "TikTok" },
+ ],
+ program: {
+ today: "Hva skjer i dag?",
+ },
+ vors: {
+ text: "Sett på låta for litt stemning før dere kommer🔥",
+ },
+ footer: {
+ address: "Slemdalsveien 15, 0369 Oslo",
+ org: "Studentfestivalen i Oslo 2025",
+ dnsAlt: "Logo for Det Norske Studentersamfund",
+ },
+ },
+ en: {
+ nav: {
+ home: "Home",
+ program: "Program",
+ volunteer: "Become a volunteer",
+ about: "About",
+ langSwitch: "Norsk / English",
+ title: "STUDiO 2025",
+ },
+ hero: {
+ title: "Student Festival in Oslo 2025",
+ alt: "Student Festival in Oslo Logo",
+ },
+ faq: {
+ title: "Frequently Asked Questions",
+ q1: "Where is the festival held?",
+ a1: 'At
Chateau Neuf , Majorstuen, Oslo',
+ q2: "Who is the festival for?",
+ a2: "All new and returning students, but the events are open to everyone who wants to join.",
+ q3: "Does it cost money to participate?",
+ a3: "Free entry every day and almost all events are free. Only 2 events require a ticket.",
+ q4: "Do I need a student ID to enter?",
+ a4: "No, but general identification is required.",
+ q5: "What is the age limit for the festival?",
+ a5: "Everything is 18+",
+ },
+ about: {
+ title: "About STUDiO 2025",
+ p1: "STUDiO 2025 is a student festival held during the buddy week in Oslo from August 11th to 15th at Chateau Neuf.",
+ p2: "There will be social and exciting events every day! The festival is for all new and returning students in Oslo. Experience the highlight of the semester - bring your buddy group or friends, or come alone and meet new people.",
+ p3: "Don't miss the biggest student kickoff in Oslo!",
+ p4: "Many of our events are free, and everything is 18+.",
+ },
+ links: [
+ { href: "https://www.neuf.no", text: "Chateau Neuf" },
+ {
+ href: "https://forms.gle/PvEh37nvRyicLFXn6",
+ text: "Become a volunteer!",
+ },
+ {
+ href: "https://www.instagram.com/studentfestivalenioslo/",
+ text: "Instagram",
+ },
+ { href: "https://www.facebook.com/studentfestivalen", text: "Facebook" },
+ { href: "https://www.tiktok.com/@studentersamfund", text: "TikTok" },
+ ],
+ program: {
+ today: "What's happening today?",
+ },
+ vors: {
+ text: "Play the song to get in the mood before you arrive🔥",
+ },
+ footer: {
+ address: "Slemdalsveien 15, 0369 Oslo",
+ org: "Student Festival in Oslo 2025",
+ dnsAlt: "Logo for the Norwegian Student Society",
+ },
+ },
+};
diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro
index 07cf463..11ebddd 100644
--- a/src/layouts/Layout.astro
+++ b/src/layouts/Layout.astro
@@ -2,10 +2,11 @@
import "@styles/global.css";
import Nav from '@components/Nav.astro';
import Footer from '@components/Footer.astro';
+const { lang = 'no' } = Astro.props;
---
-
+
@@ -14,10 +15,10 @@ import Footer from '@components/Footer.astro';
STUDiO 2025 - Studentfestivalen i Oslo
-
+
-
+
diff --git a/src/pages/about.astro b/src/pages/about.astro
index 2f065ab..171cc21 100644
--- a/src/pages/about.astro
+++ b/src/pages/about.astro
@@ -3,6 +3,6 @@ import Layout from '@layouts/Layout.astro';
import About from '@components/About.astro';
---
-
-
+
+
\ No newline at end of file
diff --git a/src/pages/en-program.astro b/src/pages/en-program.astro
index 8580823..afb5bd7 100644
--- a/src/pages/en-program.astro
+++ b/src/pages/en-program.astro
@@ -1,21 +1,11 @@
---
-import data from '/src/data/en-program.json';
import Layout from '@layouts/Layout.astro';
+import Program from '@components/Program.astro';
+import data from '../data/en-program.json';
---
-
- {Object.entries(data).map(([dayName, items], index) => (
-
-
{dayName}
-
- {items.map((item, itemIndex) => (
-
- {item.time} - {item.event} - {item.price}
-
- ))}
-
-
- ))}
+
+