From 0a584d8cbbac018edf2ee91cf1613c767490ec18 Mon Sep 17 00:00:00 2001 From: Benjamin Frost Date: Tue, 15 Oct 2024 10:36:31 +0200 Subject: [PATCH 1/6] chore: remove middleware --- astro.config.mjs | 1 - src/middleware.ts | 29 ----------------------------- 2 files changed, 30 deletions(-) delete mode 100644 src/middleware.ts diff --git a/astro.config.mjs b/astro.config.mjs index f9c5a25..f02cee1 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -10,7 +10,6 @@ export default defineConfig({ i18n: { defaultLocale: defaultLang, locales: Object.keys(languages), - routing: "manual", // see: src/middleware.ts }, integrations: [tailwind(), react(), icon()], site: "https://blz-it.de", diff --git a/src/middleware.ts b/src/middleware.ts deleted file mode 100644 index 5897297..0000000 --- a/src/middleware.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { defineMiddleware } from "astro:middleware"; -import { defaultLang, languages } from "./i18n"; - -export const onRequest = defineMiddleware(async (ctx, next) => { - if (ctx.url.pathname === "/youtube") { - return Response.redirect("https://youtube.de/@GermanITSkills", 301); - } - - if (ctx.url.pathname.startsWith("/_image")) { - return next(); - } - - const [, lang] = ctx.url.pathname.split("/"); - const isValidLanguage = lang in languages; - - const response = await next( - isValidLanguage - ? undefined - : new URL(`/${defaultLang}${ctx.url.pathname}`, ctx.url), - ); - - if (response.status === 404) { - return next( - new URL(`/${isValidLanguage ? lang : defaultLang}/404`, ctx.url), - ); - } - - return response; -}); From 3b361ea0e2756dde655f7d6072fcaa3c5c13e7be Mon Sep 17 00:00:00 2001 From: Benjamin Frost Date: Tue, 15 Oct 2024 10:52:01 +0200 Subject: [PATCH 2/6] fix: home and skill pages --- src/pages/[lang]/index.astro | 150 ------------------ .../it-software-solutions-for-business.astro | 68 -------- .../mobile-applications-development.astro | 68 -------- src/pages/en/index.astro | 104 ++++++++++++ .../it-software-solutions-for-business.astro | 42 +++++ .../en/mobile-applications-development.astro | 43 +++++ src/pages/index.astro | 105 ++++++++++++ .../it-software-solutions-for-business.astro | 42 +++++ .../mobile-applications-development.astro | 42 +++++ 9 files changed, 378 insertions(+), 286 deletions(-) delete mode 100644 src/pages/[lang]/index.astro delete mode 100644 src/pages/[lang]/it-software-solutions-for-business.astro delete mode 100644 src/pages/[lang]/mobile-applications-development.astro create mode 100644 src/pages/en/index.astro create mode 100644 src/pages/en/it-software-solutions-for-business.astro create mode 100644 src/pages/en/mobile-applications-development.astro create mode 100644 src/pages/it-software-solutions-for-business.astro create mode 100644 src/pages/mobile-applications-development.astro diff --git a/src/pages/[lang]/index.astro b/src/pages/[lang]/index.astro deleted file mode 100644 index 2127000..0000000 --- a/src/pages/[lang]/index.astro +++ /dev/null @@ -1,150 +0,0 @@ ---- -import { getRelativeLocaleUrl } from "astro:i18n"; -import Cta from "~/components/Cta.astro"; -import Hero from "~/components/Hero.astro"; -import Link from "~/components/Link.astro"; -import HeadedSection from "~/components/sections/HeadedSection.astro"; -import WavedSection from "~/components/sections/WavedSection.astro"; -import { localeParams, useTranslations } from "~/i18n"; -import Layout from "~/layouts/Layout.astro"; - -export const getStaticPaths = localeParams; - -const { lang } = Astro.params; -const t = useTranslations(lang); ---- - - - - -
-

- - WorldSkills International - - { - t({ - de: 'hat es sich zur Aufgabe gemacht, nachhaltig die Attraktivität der beruflichen Bildung zu verbessern. Zu diesem Zweck werden alle zwei Jahre die "Weltmeisterschaften der Berufe" ausgetragen, in der sich talentierte, junge Menschen untereinander messen. Die deutsche Ausprägung dieser Initiative ist', - en: 'have made it their mission to increase the attractivity of vocational education. For this purpose, the "world championships of skills" are held every two years, in which talented, young people compete with each other. The German manifestation of this initiative is', - }) - } - - WorldSkills Germany{ - t({ - de: ", die beispielsweise selbst nationale und internationale Wettbewerbe veranstaltet. Zu den einzelnen Berufen gehört in Deutschland jeweils ein Bundesleistungszentrum.", - en: ", which for example also hosts national and international competitions. In Germany, a National Training Centre belongs to a each skill respectively.", - }) - } -

-

- { - t({ - de: "Die Bundesleistungszentren von WorldSkills Germany haben die Aufgabe, zusätzlich zu den Trainings nach WorldSkills-Prinzipien für eine möglichst breite Teilnehmerschaft auch die zukünftigen Mitglieder der deutschen Nationalmannschaft und somit Teilnehmer an internationalen Wettbewerben zu trainieren. Sie werden pro Skill-Disziplin exklusiv nur einmal ernannt. Die Ernennung erfolgt durch die Skills-Paten (Verbände, Unternehmen, Institutionen) gemeinsam mit WorldSkills Germany.", - en: "The National Training Centres by WorldSkills Germany have the task of training future members of the German national team and thus participants in international competitions, in addition to training according to WorldSkills principles for as broad a group of participants as possible. They are appointed exclusively only once per skills discipline. The appointment is made by the skills mentors (associations, companies, institutions) together with WorldSkills Germany.", - }) - } -

-
-
- -

- { - t({ - de: "Die Bundesleistungszentren der Softwareentwicklung haben ihren Standort am", - en: "The National Training Centres in Software Development are located at the", - }) - } - - Albert-Einstein-Gymnasium Neubrandenburg{ - t({ - de: ". An diesem Standort sind", - en: ". At this location,", - }) - } - - Skill 08: Mobile Applications Development - - {t({ de: "und", en: "and" })} - - Skill 09: IT Software Solutions for Business - - { - t({ - de: "vertreten. Mehr Informationen zu den einzelnen Skills finden sich auf den jeweiligen Unterseiten.", - en: "are represented. More information on the individual skills can be found on the respective subpages.", - }) - } -

-
-
-

- Mobile Applications Development -

-

- { - t({ - de: "Als Softwareentwickler*in mit der Spezialisierung auf Mobile Applications bist du Programmierer*in und Designer*in in einem. Du sorgst dafür, dass die Apps auf den mobilen Endgeräten der Benutzer*innen funktionieren, ansprechend aussehen und Spaß machen.", - en: "As a software developer with a specialization in mobile applications, you are a programmer and designer in one. You ensure that the apps work on users' mobile devices, look appealing, and are fun to use.", - }) - } -

-
-
-

- IT Software Solutions for Business -

-

- { - t({ - de: "Die Disziplin IT Software Solutions for Business bildet das gesamte Spektrum der Software-entwickelnden IT-Berufe ab. Geeignet sind alle Full-Stack-Programmierer*innen. Dazu zählen Desktop-, Server-, Datenbank-, Mobile-App- und Webentwicklung.", - en: "The skill IT Software Solutions for Business represents the entire spectrum of software-developing IT professions. All full-stack programmers are suitable. This includes desktop, server, database, mobile app, and web development.", - }) - } -

-
-
-
- - - -
diff --git a/src/pages/[lang]/it-software-solutions-for-business.astro b/src/pages/[lang]/it-software-solutions-for-business.astro deleted file mode 100644 index 9164ad7..0000000 --- a/src/pages/[lang]/it-software-solutions-for-business.astro +++ /dev/null @@ -1,68 +0,0 @@ ---- -import historyJson from "~/assets/data/history.json"; -import Skill09Image from "~/assets/img/skill-09.jpg"; -import { localeParams, useTranslations } from "~/i18n"; -import SkillPage from "~/layouts/SkillPage.astro"; - -export const getStaticPaths = localeParams; - -const { lang } = Astro.params; -const t = useTranslations(lang); - -const historyData = historyJson[lang]["skill09"]; ---- - -
Für den Beruf brauchst du ein gutes technisches Verständnis und logisches Denkvermögen. Du musst die Anforderungen und Wünsche der Auftraggeber*innen verstehen und Programme entwickeln, die zuverlässig, aktualisierbar und für Benutzer*innen leicht zu verstehen und zu verwenden sind.", - en: "The skill IT Software Solutions for Business represents the entire spectrum of software-developing IT professions. All full-stack programmers are suitable. This includes desktop, server, database, mobile app and web development.

For this job you need a good technical understanding and logical thinking. You need to understand the requirements and wishes of the client and develop programs that are reliable, updatable, and easy for users to understand and use.", - }), - requirements: t({ - de: "Du beherrschst mindestens eine Programmiersprache, z.B. C#, programmierst Desktop-, Server-, Web- und mobile Anwendungen, hast Kenntnisse in UML und Datenbanken (SQL) und verstehst englischsprachige Aufgabenstellungen.", - en: "You are proficient in at least one programming language, e.g., C#, can program desktop, server, web, and mobile applications, have knowledge of UML and databases (SQL), and understand English-language tasks.", - }), - videoUrl: t({ - de: "https://www.youtube.com/embed/3F0T3nOrp70", - en: "https://www.youtube.com/embed/tSGg8S-_I4k", - }), - occupation: { - title: t({ - de: "Ein Beruf mit Zukunft und stets am Puls der Zeit", - en: "A Career with a future and always on the cutting edge", - }), - text: t({ - de: "Die Möglichkeiten der Kommunikation und des Informationsaustauschs nehmen stetig zu. Mit einem Abschluss in der IT bist du gefragt: Im Jahr 2021 wurden ca. 12 % mehr IT-Talente gesucht als im Vorjahr. Als Softwareentwickler*in gehörst du somit zu einer der am schnellsten wachsenden Berufsgruppen.

Dein Hauptarbeitsmittel ist der Computer. Du bist also in Sachen Arbeitsort und -zeit fast ungebunden, sofern kein Kundentermin ansteht. Das einzige, was du brauchst, ist eine stabile Internetverbindung.", - en: "The possibilities for communication and information exchange are constantly increasing. With a degree in IT, you are in demand: In 2021, approximately 12 % more IT talents were sought than in the previous year. As a software developer, you belong to one of the fastest growing occupational groups.

Your main working tool is the computer. This means that you are almost unrestricted in terms of where and when you work, as long as you don't have a customer appointment. The only thing you need is a stable Internet connection.", - }), - }, - }} - img={Skill09Image} - contact="mailto:skills@kapplers.de" - nationalTeam={[]} - timelineEntries={Object.values(historyData)} - additionalLinks={[ - { - name: "worldskills.org", - text: t({ - de: "Skill 09 bei WorldSkills International", - en: "Skill 09 at WorldSkills International", - }), - href: "https://worldskills.org/skills/id/221/", - }, - { - name: "worldskills2024.com", - text: t({ - de: "Skill 09 bei den WorldSkills Lyon 2024", - en: "Skill 09 at the WorldSkills Lyon 2024", - }), - href: "https://worldskills2024.com/en/skills/it-software-solutions-for-business", - }, - ]} -/> diff --git a/src/pages/[lang]/mobile-applications-development.astro b/src/pages/[lang]/mobile-applications-development.astro deleted file mode 100644 index 70301fb..0000000 --- a/src/pages/[lang]/mobile-applications-development.astro +++ /dev/null @@ -1,68 +0,0 @@ ---- -import historyJson from "~/assets/data/history.json"; -import Skill08Image from "~/assets/img/skill-08.jpg"; -import { localeParams, useTranslations } from "~/i18n"; -import SkillPage from "~/layouts/SkillPage.astro"; - -export const getStaticPaths = localeParams; - -const { lang } = Astro.params; -const t = useTranslations(lang); - -const historyData = historyJson[lang]["skill08"]; ---- - -
Für den Beruf brauchst du ein gewisses Verständnis für Technologie und Design. Du musst die Anforderungen und Wünsche der Auftraggeber*innen verstehen und ein Produkt entwickeln, das zuverlässig, aktualisierbar und für Benutzer*innen leicht zu verstehen und zu verwenden ist.", - en: "As a software developer with a specialization in mobile applications, you are a programmer and designer in one. You ensure that the apps work on users' mobile devices, look appealing, and are fun to use.

For the job, you need a certain understanding of technology and design. You need to understand the requirements and wishes of the clients and develop a product that is reliable, updatable, and easy for users to understand and use.", - }), - requirements: t({ - de: "Du beherrschst mindestens eine Programmiersprache, z. B. Dart oder Kotlin, und programmierst Android-Apps, auch mit Verknüpfung zu Webschnittstellen und der Verwendung integrierter Sensoren. Du verstehst englischsprachige Aufgabenstellungen.", - en: "You master at least one programming language, e.g. Dart or Kotlin, and program mobile apps, including the connection to online APIs and the use of integrated sensors. You understand task in English.", - }), - videoUrl: t({ - de: "https://www.youtube.com/embed/v7I124lty3s", - en: "https://www.youtube.com/embed/Qe0ZaQAOQUY", - }), - occupation: { - title: t({ - de: "Ein Beruf mit Zukunft und stets am Puls der Zeit", - en: "A Career with a future and always on the cutting edge", - }), - text: t({ - de: "Die Möglichkeiten der Kommunikation und des Informationsaustauschs nehmen stetig zu. Mit einem Abschluss in der IT bist du gefragt: Im Jahr 2021 wurden ca. 12 % mehr IT-Talente gesucht als im Vorjahr. Der Mobile Applications Developer ist somit einer der am schnellsten wachsenden Berufe.

Dein Hauptarbeitsmittel ist dein Laptop. Du bist also in Sachen Arbeitsort und -zeit fast ungebunden, sofern kein Kundentermin ansteht. Das Einzige, was du brauchst, ist eine stabile Internetverbindung.", - en: "The possibilities of communication and information exchange are constantly increasing. With a degree in IT, you are in demand: in 2021, about 12 % more IT talents were sought than in the previous year. The Mobile Applications Developer is therefore one of the fastest growing occupations.

Your main working tool is your laptop, so you are almost unrestricted in terms of work location and time, as long as there is no customer appointment. The only thing you need is a stable internet connection.", - }), - }, - }} - img={Skill08Image} - contact="mailto:worldskills@jonas-wanke.de" - nationalTeam={[]} - timelineEntries={Object.values(historyData)} - additionalLinks={[ - { - name: "worldskills.org", - text: t({ - de: "Skill 08 bei WorldSkills International", - en: "Skill 08 at WorldSkills International", - }), - href: "https://worldskills.org/skills/id/562/", - }, - { - name: "worldskills2024.com", - text: t({ - de: "Skill 08 bei den WorldSkills Lyon 2024", - en: "Skill 08 at the WorldSkills Lyon 2024", - }), - href: "https://worldskills2024.com/en/skills/mobile-applications-development", - }, - ]} -/> diff --git a/src/pages/en/index.astro b/src/pages/en/index.astro new file mode 100644 index 0000000..397866b --- /dev/null +++ b/src/pages/en/index.astro @@ -0,0 +1,104 @@ +--- +import { getRelativeLocaleUrl } from "astro:i18n"; +import Cta from "~/components/Cta.astro"; +import Hero from "~/components/Hero.astro"; +import Link from "~/components/Link.astro"; +import HeadedSection from "~/components/sections/HeadedSection.astro"; +import WavedSection from "~/components/sections/WavedSection.astro"; +import { defaultLang, type Language } from "~/i18n"; +import Layout from "~/layouts/Layout.astro"; + +const lang = (Astro.currentLocale || defaultLang) as Language; +--- + + + + +
+

+ + WorldSkills International + + have made it their mission to increase the attractivity of vocational education. + For this purpose, the "world championships of skills" are held every two + years, in which talented, young people compete with each other. The German + manifestation of this initiative is + + WorldSkills Germany, which for example also hosts national and international competitions. + In Germany, a National Training Centre belongs to a each skill + respectively. +

+

+ The National Training Centres by WorldSkills Germany have the task of + training future members of the German national team and thus + participants in international competitions, in addition to training + according to WorldSkills principles for as broad a group of participants + as possible. They are appointed exclusively only once per skills + discipline. The appointment is made by the skills mentors (associations, + companies, institutions) together with WorldSkills Germany. +

+
+
+ +

+ The National Training Centres in Software Development are located at the + + Albert-Einstein-Gymnasium Neubrandenburg. At this location, + + Skill 08: Mobile Applications Development + + und + + Skill 09: IT Software Solutions for Business + + are represented. More information on the individual skills can be found on + the respective subpages. +

+
+
+

+ Mobile Applications Development +

+

+ As a software developer with a specialization in mobile applications, + you are a programmer and designer in one. You ensure that the apps + work on users' mobile devices, look appealing, and are fun to use. +

+
+
+

+ IT Software Solutions for Business +

+

+ The skill IT Software Solutions for Business represents the entire + spectrum of software-developing IT professions. All full-stack + programmers are suitable. This includes desktop, server, database, + mobile app, and web development. +

+
+
+
+ + + +
diff --git a/src/pages/en/it-software-solutions-for-business.astro b/src/pages/en/it-software-solutions-for-business.astro new file mode 100644 index 0000000..57b4cdc --- /dev/null +++ b/src/pages/en/it-software-solutions-for-business.astro @@ -0,0 +1,42 @@ +--- +import historyJson from "~/assets/data/history.json"; +import Skill09Image from "~/assets/img/skill-09.jpg"; +import { defaultLang, type Language } from "~/i18n"; +import SkillPage from "~/layouts/SkillPage.astro"; + +const lang = (Astro.currentLocale || defaultLang) as Language; +const historyData = historyJson[lang]["skill09"]; +--- + +
For this job you need a good technical understanding and logical thinking. You need to understand the requirements and wishes of the client and develop programs that are reliable, updatable, and easy for users to understand and use.", + requirements: + "You are proficient in at least one programming language, e.g., C#, can program desktop, server, web, and mobile applications, have knowledge of UML and databases (SQL), and understand English-language tasks.", + videoUrl: "https://www.youtube.com/embed/tSGg8S-_I4k", + occupation: { + title: "A Career with a future and always on the cutting edge", + text: "The possibilities for communication and information exchange are constantly increasing. With a degree in IT, you are in demand: In 2021, approximately 12 % more IT talents were sought than in the previous year. As a software developer, you belong to one of the fastest growing occupational groups.

Your main working tool is the computer. This means that you are almost unrestricted in terms of where and when you work, as long as you don't have a customer appointment. The only thing you need is a stable Internet connection.", + }, + }} + img={Skill09Image} + contact="mailto:skills@kapplers.de" + nationalTeam={[]} + timelineEntries={Object.values(historyData)} + additionalLinks={[ + { + name: "worldskills.org", + text: "Skill 09 at WorldSkills International", + href: "https://worldskills.org/skills/id/221/", + }, + { + name: "worldskills2024.com", + text: "Skill 09 at the WorldSkills Lyon 2024", + href: "https://worldskills2024.com/en/skills/it-software-solutions-for-business", + }, + ]} +/> diff --git a/src/pages/en/mobile-applications-development.astro b/src/pages/en/mobile-applications-development.astro new file mode 100644 index 0000000..2dd031a --- /dev/null +++ b/src/pages/en/mobile-applications-development.astro @@ -0,0 +1,43 @@ +--- +import historyJson from "~/assets/data/history.json"; +import Skill08Image from "~/assets/img/skill-08.jpg"; +import { defaultLang, type Language } from "~/i18n"; +import SkillPage from "~/layouts/SkillPage.astro"; + +const lang = (Astro.currentLocale || defaultLang) as Language; +const historyData = historyJson[lang]["skill08"]; +--- + +
For the job, you need a certain understanding of technology and design. You need to understand the requirements and wishes of the clients and develop a product that is reliable, updatable, and easy for users to understand and use.", + requirements: + "You master at least one programming language, e.g. Dart or Kotlin, and program mobile apps, including the connection to online APIs and the use of integrated sensors. You understand task in English.", + videoUrl: "https://www.youtube.com/embed/Qe0ZaQAOQUY", + occupation: { + title: "A Career with a future and always on the cutting edge", + text: "The possibilities of communication and information exchange are constantly increasing. With a degree in IT, you are in demand: in 2021, about 12 % more IT talents were sought than in the previous year. The Mobile Applications Developer is therefore one of the fastest growing occupations.

Your main working tool is your laptop, so you are almost unrestricted in terms of work location and time, as long as there is no customer appointment. The only thing you need is a stable internet connection.", + }, + }} + img={Skill08Image} + contact="mailto:worldskills@jonas-wanke.de" + nationalTeam={[]} + timelineEntries={Object.values(historyData)} + additionalLinks={[ + { + name: "worldskills.org", + text: "Skill 08 at WorldSkills International", + href: "https://worldskills.org/skills/id/562/", + }, + { + name: "worldskills2024.com", + text: "Skill 08 at the WorldSkills Lyon 2024", + href: "https://worldskills2024.com/en/skills/mobile-applications-development", + }, + ]} +/> diff --git a/src/pages/index.astro b/src/pages/index.astro index e69de29..6559a82 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -0,0 +1,105 @@ +--- +import { getRelativeLocaleUrl } from "astro:i18n"; +import Cta from "~/components/Cta.astro"; +import Hero from "~/components/Hero.astro"; +import Link from "~/components/Link.astro"; +import HeadedSection from "~/components/sections/HeadedSection.astro"; +import WavedSection from "~/components/sections/WavedSection.astro"; +import { defaultLang, type Language } from "~/i18n"; +import Layout from "~/layouts/Layout.astro"; + +const lang = (Astro.currentLocale || defaultLang) as Language; +--- + + + + +
+

+ + WorldSkills International + + hat es sich zur Aufgabe gemacht, nachhaltig die Attraktivität der beruflichen + Bildung zu verbessern. Zu diesem Zweck werden alle zwei Jahre die "Weltmeisterschaften + der Berufe" ausgetragen, in der sich talentierte, junge Menschen untereinander + messen. Die deutsche Ausprägung dieser Initiative ist + + WorldSkills Germany, die beispielsweise selbst nationale und internationale Wettbewerbe + veranstaltet. Zu den einzelnen Berufen gehört in Deutschland jeweils ein + Bundesleistungszentrum. +

+

+ Die Bundesleistungszentren von WorldSkills Germany haben die Aufgabe, + zusätzlich zu den Trainings nach WorldSkills-Prinzipien für eine + möglichst breite Teilnehmerschaft auch die zukünftigen Mitglieder der + deutschen Nationalmannschaft und somit Teilnehmer an internationalen + Wettbewerben zu trainieren. Sie werden pro Skill-Disziplin exklusiv nur + einmal ernannt. Die Ernennung erfolgt durch die Skills-Paten (Verbände, + Unternehmen, Institutionen) gemeinsam mit WorldSkills Germany. +

+
+
+ +

+ Die Bundesleistungszentren der Softwareentwicklung haben ihren Standort am + + Albert-Einstein-Gymnasium Neubrandenburg. An diesem Standort sind + + Skill 08: Mobile Applications Development + + und + + Skill 09: IT Software Solutions for Business + + vertreten. Mehr Informationen zu den einzelnen Skills finden sich auf den jeweiligen + Unterseiten. +

+
+
+

+ Mobile Applications Development +

+

+ Als Softwareentwickler*in mit der Spezialisierung auf Mobile + Applications bist du Programmierer*in und Designer*in in einem. Du + sorgst dafür, dass die Apps auf den mobilen Endgeräten der + Benutzer*innen funktionieren, ansprechend aussehen und Spaß machen. +

+
+
+

+ IT Software Solutions for Business +

+

+ Die Disziplin IT Software Solutions for Business bildet das gesamte + Spektrum der Software-entwickelnden IT-Berufe ab. Geeignet sind alle + Full-Stack-Programmierer*innen. Dazu zählen Desktop-, Server-, + Datenbank-, Mobile-App- und Webentwicklung. +

+
+
+
+ + + +
diff --git a/src/pages/it-software-solutions-for-business.astro b/src/pages/it-software-solutions-for-business.astro new file mode 100644 index 0000000..87423e1 --- /dev/null +++ b/src/pages/it-software-solutions-for-business.astro @@ -0,0 +1,42 @@ +--- +import historyJson from "~/assets/data/history.json"; +import Skill09Image from "~/assets/img/skill-09.jpg"; +import { defaultLang, type Language } from "~/i18n"; +import SkillPage from "~/layouts/SkillPage.astro"; + +const lang = (Astro.currentLocale || defaultLang) as Language; +const historyData = historyJson[lang]["skill09"]; +--- + +
Für den Beruf brauchst du ein gutes technisches Verständnis und logisches Denkvermögen. Du musst die Anforderungen und Wünsche der Auftraggeber*innen verstehen und Programme entwickeln, die zuverlässig, aktualisierbar und für Benutzer*innen leicht zu verstehen und zu verwenden sind.", + requirements: + "Du beherrschst mindestens eine Programmiersprache, z.B. C#, programmierst Desktop-, Server-, Web- und mobile Anwendungen, hast Kenntnisse in UML und Datenbanken (SQL) und verstehst englischsprachige Aufgabenstellungen.", + videoUrl: "https://www.youtube.com/embed/3F0T3nOrp70", + occupation: { + title: "Ein Beruf mit Zukunft und stets am Puls der Zeit", + text: "Die Möglichkeiten der Kommunikation und des Informationsaustauschs nehmen stetig zu. Mit einem Abschluss in der IT bist du gefragt: Im Jahr 2021 wurden ca. 12 % mehr IT-Talente gesucht als im Vorjahr. Als Softwareentwickler*in gehörst du somit zu einer der am schnellsten wachsenden Berufsgruppen.

Dein Hauptarbeitsmittel ist der Computer. Du bist also in Sachen Arbeitsort und -zeit fast ungebunden, sofern kein Kundentermin ansteht. Das einzige, was du brauchst, ist eine stabile Internetverbindung.", + }, + }} + img={Skill09Image} + contact="mailto:skills@kapplers.de" + nationalTeam={[]} + timelineEntries={Object.values(historyData)} + additionalLinks={[ + { + name: "worldskills.org", + text: "Skill 09 bei WorldSkills International", + href: "https://worldskills.org/skills/id/221/", + }, + { + name: "worldskills2024.com", + text: "Skill 09 bei den WorldSkills Lyon 2024", + href: "https://worldskills2024.com/en/skills/it-software-solutions-for-business", + }, + ]} +/> diff --git a/src/pages/mobile-applications-development.astro b/src/pages/mobile-applications-development.astro new file mode 100644 index 0000000..5180e4e --- /dev/null +++ b/src/pages/mobile-applications-development.astro @@ -0,0 +1,42 @@ +--- +import historyJson from "~/assets/data/history.json"; +import Skill08Image from "~/assets/img/skill-08.jpg"; +import { defaultLang, type Language } from "~/i18n"; +import SkillPage from "~/layouts/SkillPage.astro"; + +const lang = (Astro.currentLocale || defaultLang) as Language; +const historyData = historyJson[lang]["skill08"]; +--- + +
Für den Beruf brauchst du ein gewisses Verständnis für Technologie und Design. Du musst die Anforderungen und Wünsche der Auftraggeber*innen verstehen und ein Produkt entwickeln, das zuverlässig, aktualisierbar und für Benutzer*innen leicht zu verstehen und zu verwenden ist.", + requirements: + "Du beherrschst mindestens eine Programmiersprache, z. B. Dart oder Kotlin, und programmierst Android-Apps, auch mit Verknüpfung zu Webschnittstellen und der Verwendung integrierter Sensoren. Du verstehst englischsprachige Aufgabenstellungen.", + videoUrl: "https://www.youtube.com/embed/v7I124lty3s", + occupation: { + title: "Ein Beruf mit Zukunft und stets am Puls der Zeit", + text: "Die Möglichkeiten der Kommunikation und des Informationsaustauschs nehmen stetig zu. Mit einem Abschluss in der IT bist du gefragt: Im Jahr 2021 wurden ca. 12 % mehr IT-Talente gesucht als im Vorjahr. Der Mobile Applications Developer ist somit einer der am schnellsten wachsenden Berufe.

Dein Hauptarbeitsmittel ist dein Laptop. Du bist also in Sachen Arbeitsort und -zeit fast ungebunden, sofern kein Kundentermin ansteht. Das Einzige, was du brauchst, ist eine stabile Internetverbindung.", + }, + }} + img={Skill08Image} + contact="mailto:worldskills@jonas-wanke.de" + nationalTeam={[]} + timelineEntries={Object.values(historyData)} + additionalLinks={[ + { + name: "worldskills.org", + text: "Skill 08 bei WorldSkills International", + href: "https://worldskills.org/skills/id/562/", + }, + { + name: "worldskills2024.com", + text: "Skill 08 bei den WorldSkills Lyon 2024", + href: "https://worldskills2024.com/en/skills/mobile-applications-development", + }, + ]} +/> From aae897c4e3e63bb41527442ae9bf166a1dcd7eb2 Mon Sep 17 00:00:00 2001 From: Benjamin Frost Date: Tue, 15 Oct 2024 11:01:18 +0200 Subject: [PATCH 3/6] fix: 404 routing --- src/pages/404.astro | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/pages/404.astro diff --git a/src/pages/404.astro b/src/pages/404.astro new file mode 100644 index 0000000..91eff5f --- /dev/null +++ b/src/pages/404.astro @@ -0,0 +1,35 @@ +--- +// This page automatically redirects to 404 page for user's locale +import { defaultLang, languages } from "~/i18n"; + +const langs = Object.keys(languages); +--- + + + + + 404 PAGE NOT FOUND + + + + + + + +

404 PAGE NOT FOUND

+ TOP PAGE + + From f991da1050c48fa072d774072e5f28046c565ccb Mon Sep 17 00:00:00 2001 From: Benjamin Frost Date: Tue, 15 Oct 2024 11:18:03 +0200 Subject: [PATCH 4/6] fix: i18n routing --- src/i18n/utils.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/i18n/utils.ts b/src/i18n/utils.ts index 33a2923..3a48198 100644 --- a/src/i18n/utils.ts +++ b/src/i18n/utils.ts @@ -15,11 +15,19 @@ export function useTranslations(lang: Language) { }; } +const removeLocalePrefix = (path: string): string => { + const localePattern = new RegExp( + `^/(${Object.keys(languages).join("|")})\\b`, + ); + return path.replace(localePattern, ""); +}; + export type LocalePath = { lang: Language; path: string }; export const getLocalePaths = (url: URL): LocalePath[] => { + const cleanPath = removeLocalePrefix(url.pathname); return Object.keys(languages).map((lang) => ({ lang: lang as Language, - path: getRelativeLocaleUrl(lang, url.pathname.replace(/^\/[a-zA-Z-]+/, "")), + path: getRelativeLocaleUrl(lang, cleanPath), })); }; From a98b5340422a716a1fa87db38a5716bcf91f55bb Mon Sep 17 00:00:00 2001 From: Benjamin Frost Date: Tue, 15 Oct 2024 11:42:58 +0200 Subject: [PATCH 5/6] chore: address review --- src/pages/404.astro | 2 +- src/pages/en/index.astro | 7 +++---- src/pages/en/mobile-applications-development.astro | 3 +-- src/pages/index.astro | 1 - 4 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/pages/404.astro b/src/pages/404.astro index 91eff5f..527faf4 100644 --- a/src/pages/404.astro +++ b/src/pages/404.astro @@ -18,7 +18,7 @@ const langs = Object.keys(languages);