diff --git a/src/assets/data/team.json b/src/assets/data/team.json
new file mode 100644
index 0000000..e00e476
--- /dev/null
+++ b/src/assets/data/team.json
@@ -0,0 +1,79 @@
+[
+ {
+ "img": "/src/assets/img/team/benjamin-frost.webp",
+ "name": "Benjamin Frost",
+ "lastRole": { "de": "Jury", "en": "Jury" },
+ "hasMultipleRoles": true
+ },
+ {
+ "img": "/src/assets/img/team/jonas-wanke.webp",
+ "name": "Jonas Wanke",
+ "lastRole": { "en": "Expert", "de": "Bundestrainer" },
+ "skill": {
+ "de": "App-Entwicklung",
+ "en": "Mobile Applications Development"
+ },
+ "hasMultipleRoles": true
+ },
+ {
+ "img": "/src/assets/img/team/olaf-kappler.webp",
+ "name": "Dr. Olaf Kappler",
+ "lastRole": { "en": "Expert", "de": "Bundestrainer" },
+ "skill": {
+ "de": "Software-Entwicklung",
+ "en": "Software Applications Development"
+ }
+ },
+ {
+ "img": "/src/assets/img/team/doreen-kappler.webp",
+ "name": "Doreen Kappler",
+ "lastRole": { "de": "Good Fairy", "en": "Good Fairy" }
+ },
+ {
+ "img": "/src/assets/img/team/glenn-skrzypczak.webp",
+ "name": "Glenn Skrzypczak",
+ "lastRole": { "en": "Expert", "de": "Bundestrainer" },
+ "skill": {
+ "de": "Web-Entwicklung",
+ "en": "Web Technologies"
+ },
+ "hasMultipleRoles": true
+ },
+ {
+ "img": "/src/assets/img/team/elisa-boose.webp",
+ "name": "Elisa Boose",
+ "lastRole": { "en": "Trainer", "de": "Trainer" }
+ },
+ {
+ "img": "/src/assets/img/team/michael-boose.webp",
+ "name": "Michael Boose",
+ "lastRole": { "en": "Trainer", "de": "Trainer" }
+ },
+ {
+ "img": "/src/assets/img/team/joachim-schiller.webp",
+ "name": "Joachim Schiller",
+ "lastRole": { "de": "Jury", "en": "Jury" },
+ "hasMultipleRoles": true
+ },
+ {
+ "img": "/src/assets/img/team/justin-konratt.webp",
+ "name": "Justin Konratt",
+ "lastRole": { "de": "Jury", "en": "Jury" },
+ "hasMultipleRoles": true
+ },
+ {
+ "img": "/src/assets/img/team/kai-redmann.webp",
+ "name": "Kai Redmann",
+ "lastRole": { "en": "Workshop-Manager", "de": "Workshop Manager" }
+ },
+ {
+ "img": "/src/assets/img/team/lukas-fischer.webp",
+ "name": "Lukas Fischer",
+ "lastRole": { "en": "Workshop-Manager", "de": "Workshop Manager" }
+ },
+ {
+ "img": "/src/assets/img/team/thomas-steinfeld.webp",
+ "name": "Thomas Steinfeld",
+ "lastRole": { "en": "Mr. Speed Programming", "de": "Mr. Speed Programming" }
+ }
+]
diff --git a/src/assets/img/team.webp b/src/assets/img/team.webp
new file mode 100644
index 0000000..06c68b9
Binary files /dev/null and b/src/assets/img/team.webp differ
diff --git a/src/assets/img/team/benjamin-frost.webp b/src/assets/img/team/benjamin-frost.webp
new file mode 100644
index 0000000..3b893d0
Binary files /dev/null and b/src/assets/img/team/benjamin-frost.webp differ
diff --git a/src/assets/img/team/doreen-kappler.webp b/src/assets/img/team/doreen-kappler.webp
new file mode 100644
index 0000000..367ad76
Binary files /dev/null and b/src/assets/img/team/doreen-kappler.webp differ
diff --git a/src/assets/img/team/elisa-boose.webp b/src/assets/img/team/elisa-boose.webp
new file mode 100644
index 0000000..56e8c57
Binary files /dev/null and b/src/assets/img/team/elisa-boose.webp differ
diff --git a/src/assets/img/team/glenn-skrzypczak.webp b/src/assets/img/team/glenn-skrzypczak.webp
new file mode 100644
index 0000000..781d312
Binary files /dev/null and b/src/assets/img/team/glenn-skrzypczak.webp differ
diff --git a/src/assets/img/team/joachim-schiller.webp b/src/assets/img/team/joachim-schiller.webp
new file mode 100644
index 0000000..08cfc01
Binary files /dev/null and b/src/assets/img/team/joachim-schiller.webp differ
diff --git a/src/assets/img/team/jonas-wanke.webp b/src/assets/img/team/jonas-wanke.webp
new file mode 100644
index 0000000..4e6f63c
Binary files /dev/null and b/src/assets/img/team/jonas-wanke.webp differ
diff --git a/src/assets/img/team/justin-konratt.webp b/src/assets/img/team/justin-konratt.webp
new file mode 100644
index 0000000..3abb48f
Binary files /dev/null and b/src/assets/img/team/justin-konratt.webp differ
diff --git a/src/assets/img/team/kai-redmann.webp b/src/assets/img/team/kai-redmann.webp
new file mode 100644
index 0000000..bd06396
Binary files /dev/null and b/src/assets/img/team/kai-redmann.webp differ
diff --git a/src/assets/img/team/lukas-fischer.webp b/src/assets/img/team/lukas-fischer.webp
new file mode 100644
index 0000000..c3f5172
Binary files /dev/null and b/src/assets/img/team/lukas-fischer.webp differ
diff --git a/src/assets/img/team/michael-boose.webp b/src/assets/img/team/michael-boose.webp
new file mode 100644
index 0000000..7c7a4a0
Binary files /dev/null and b/src/assets/img/team/michael-boose.webp differ
diff --git a/src/assets/img/team/olaf-kappler.webp b/src/assets/img/team/olaf-kappler.webp
new file mode 100644
index 0000000..d95a7ca
Binary files /dev/null and b/src/assets/img/team/olaf-kappler.webp differ
diff --git a/src/assets/img/team/thomas-steinfeld.webp b/src/assets/img/team/thomas-steinfeld.webp
new file mode 100644
index 0000000..ea24f2f
Binary files /dev/null and b/src/assets/img/team/thomas-steinfeld.webp differ
diff --git a/src/components/Header.astro b/src/components/Header.astro
index 47ec657..2ef6258 100644
--- a/src/components/Header.astro
+++ b/src/components/Header.astro
@@ -24,7 +24,7 @@ const skills = [
{
name: t({
de: "Web-Entwicklung",
- en: "Web Technologies"
+ en: "Web Technologies",
}),
href: getRelativeLocaleUrl(lang, "web-technologies"),
},
@@ -46,13 +46,12 @@ const skills = [
-
+
& {
+interface Props {
name: string;
- img: string;
- info?: string;
-};
+ lastRole: Record;
+ imagePath?: string;
+ skill?: Record;
+ hasMultipleRoles?: boolean;
+}
-const { name, img, info, links = [] } = Astro.props;
+const {
+ name,
+ imagePath,
+ lastRole,
+ skill,
+ hasMultipleRoles = false,
+} = Astro.props;
+
+const lang = getLangFromUrl(Astro.url);
+const t = useTranslations(lang);
---
-

-
-
-
{name}
- {info &&
{info}
}
+
+
+
{name}
+
+
+ {t(lastRole)}
+
+
+ {hasMultipleRoles && t({ de: "und mehr", en: "and more" })}
+
-
+
+ {skill ||
}
+
diff --git a/src/components/team/PersonImage.astro b/src/components/team/PersonImage.astro
new file mode 100644
index 0000000..c73d804
--- /dev/null
+++ b/src/components/team/PersonImage.astro
@@ -0,0 +1,23 @@
+---
+import { Image } from "astro:assets";
+import { clsx } from "clsx";
+import WsgHandsImage from "~/assets/img/wsg-hands.svg";
+
+interface Props {
+ imagePath?: string;
+}
+
+const { imagePath } = Astro.props;
+const images = import.meta.glob<{ default: ImageMetadata }>(
+ "/src/assets/**/*.{jpeg,jpg,png,gif,webp}",
+);
+---
+
+
diff --git a/src/components/team/Team.astro b/src/components/team/Team.astro
index 78c968d..e653b5a 100644
--- a/src/components/team/Team.astro
+++ b/src/components/team/Team.astro
@@ -1,23 +1,24 @@
---
-import type { ComponentProps } from "astro/types";
+import team from "~/assets/data/team.json";
import Person from "./Person.astro";
-
-interface Props {
- members: ComponentProps
[];
-}
-
-const { members } = Astro.props;
---
-
- {
- members.map((member) => (
- -
-
-
- ))
- }
-
+
+
+ {
+ team
+ .sort((first, second) => first["name"].localeCompare(second["name"]))
+ .map((member) => (
+
+ ))
+ }
+
+
diff --git a/src/layouts/SkillPage.astro b/src/layouts/SkillPage.astro
index 5d8c884..a5fe1ec 100644
--- a/src/layouts/SkillPage.astro
+++ b/src/layouts/SkillPage.astro
@@ -7,7 +7,6 @@ import HeadedSection from "~/components/sections/HeadedSection.astro";
import WavedSection from "~/components/sections/WavedSection.astro";
import SkillInformation from "~/components/skill/SkillInformation.astro";
import SkillRoadmap from "~/components/skill/SkillRoadmap.astro";
-import type Person from "~/components/team/Person.astro";
import TimeLine from "~/components/timeline/TimeLine.astro";
import { getLangFromUrl, useTranslations } from "~/i18n";
import Layout from "./Layout.astro";
@@ -18,7 +17,6 @@ interface Props {
skillInformation: ComponentProps;
img: ImageMetadata;
contact: string;
- nationalTeam: ComponentProps[];
timelineEntries: ComponentProps["entries"];
additionalLinks: ComponentProps[];
}
@@ -28,7 +26,6 @@ const {
skillDescription,
skillInformation,
img,
- nationalTeam,
timelineEntries,
additionalLinks,
contact,
diff --git a/src/pages/[lang]/our-team.astro b/src/pages/[lang]/our-team.astro
new file mode 100644
index 0000000..d710bbc
--- /dev/null
+++ b/src/pages/[lang]/our-team.astro
@@ -0,0 +1,17 @@
+---
+import TeamImage from "~/assets/img/team.webp";
+import { getLangFromUrl, localeParams, useTranslations } from "~/i18n/utils";
+import Hero from "../../components/Hero.astro";
+import TeamList from "../../components/team/Team.astro";
+import Layout from "../../layouts/Layout.astro";
+
+export const getStaticPaths = localeParams;
+
+const lang = getLangFromUrl(Astro.url);
+const t = useTranslations(lang);
+---
+
+
+
+
+
diff --git a/src/pages/en/it-software-solutions-for-business.astro b/src/pages/en/it-software-solutions-for-business.astro
index 2459759..4fe5abc 100644
--- a/src/pages/en/it-software-solutions-for-business.astro
+++ b/src/pages/en/it-software-solutions-for-business.astro
@@ -24,7 +24,6 @@ const historyData = historyJson[lang]["skill09"];
}}
img={Skill09Image}
contact="mailto:skills@kapplers.de"
- nationalTeam={[]}
timelineEntries={historyData}
additionalLinks={[
{
diff --git a/src/pages/en/mobile-applications-development.astro b/src/pages/en/mobile-applications-development.astro
index 6bcadc6..c654591 100644
--- a/src/pages/en/mobile-applications-development.astro
+++ b/src/pages/en/mobile-applications-development.astro
@@ -24,7 +24,6 @@ const historyData = historyJson[lang]["skill08"];
}}
img={Skill08Image}
contact="mailto:worldskills@jonas-wanke.de"
- nationalTeam={[]}
timelineEntries={historyData}
additionalLinks={[
{
diff --git a/src/pages/en/web-technologies.astro b/src/pages/en/web-technologies.astro
index ab3ba8e..1452a0a 100644
--- a/src/pages/en/web-technologies.astro
+++ b/src/pages/en/web-technologies.astro
@@ -24,7 +24,6 @@ const historyData = historyJson[lang]["skill17"];
}}
img={Skill09Image}
contact="mailto:glenn.skrzypczak@gmail.com"
- nationalTeam={[]}
timelineEntries={historyData}
additionalLinks={[
{
diff --git a/src/pages/it-software-solutions-for-business.astro b/src/pages/it-software-solutions-for-business.astro
index b44454a..e55782c 100644
--- a/src/pages/it-software-solutions-for-business.astro
+++ b/src/pages/it-software-solutions-for-business.astro
@@ -24,7 +24,6 @@ const historyData = historyJson[lang]["skill09"];
}}
img={Skill09Image}
contact="mailto:skills@kapplers.de"
- nationalTeam={[]}
timelineEntries={historyData}
additionalLinks={[
{
diff --git a/src/pages/mobile-applications-development.astro b/src/pages/mobile-applications-development.astro
index 8aeb73e..b867271 100644
--- a/src/pages/mobile-applications-development.astro
+++ b/src/pages/mobile-applications-development.astro
@@ -24,7 +24,6 @@ const historyData = historyJson[lang]["skill08"];
}}
img={Skill08Image}
contact="mailto:worldskills@jonas-wanke.de"
- nationalTeam={[]}
timelineEntries={historyData}
additionalLinks={[
{
diff --git a/src/pages/web-technologies.astro b/src/pages/web-technologies.astro
index 551d870..2667b24 100644
--- a/src/pages/web-technologies.astro
+++ b/src/pages/web-technologies.astro
@@ -24,7 +24,6 @@ const historyData = historyJson[lang]["skill17"];
}}
img={Skill09Image}
contact="mailto:glenn.skrzypczak@gmail.com"
- nationalTeam={[]}
timelineEntries={historyData}
additionalLinks={[
{