From 5ffbb242a2bcddb9c54b326b94313aeea8f18f6f Mon Sep 17 00:00:00 2001 From: Jessie Ssebuliba Date: Thu, 9 Apr 2026 10:51:22 +0300 Subject: [PATCH 1/3] update support and care url Signed-off-by: Jessie Ssebuliba --- .../component-logos/apache-commons.svg | 0 .../component-logos/apache-log4j.png | Bin .../component-logos/apache-maven.svg | 0 .../component-logos/eclipse-temurin.svg | 0 .../component-logos/junit.svg | 0 .../foundation-logos/afs.svg | 0 .../foundation-logos/eclipse.png | Bin .../foundation-logos/lf.svg | 0 .../networking.png | Bin .../oe-delivers-container.png | Bin .../os-benefits-de.png | Bin .../os-benefits.png | Bin .../pyramid.png | Bin .../roundtable.png | Bin .../services-pictograms/custom-containers.svg | 0 .../services-pictograms/documentation.svg | 0 .../services-pictograms/long-term-support.svg | 0 .../services-pictograms/security.svg | 0 .../services-pictograms/workshops.svg | 0 .../support-and-care-logo.svg | 0 .../support-care-logo.svg | 0 .../tree.png | Bin src/app/[locale]/newsletter/page.tsx | 11 +- src/app/[locale]/support-care-maven/page.tsx | 763 +----------------- .../layout.tsx | 0 src/app/[locale]/support-care/page.tsx | 757 +++++++++++++++++ src/data-temp/mainMenu.json | 4 +- src/data/mainMenu.json | 4 +- 28 files changed, 773 insertions(+), 766 deletions(-) rename public/{support-care-maven => support-care}/component-logos/apache-commons.svg (100%) rename public/{support-care-maven => support-care}/component-logos/apache-log4j.png (100%) rename public/{support-care-maven => support-care}/component-logos/apache-maven.svg (100%) rename public/{support-care-maven => support-care}/component-logos/eclipse-temurin.svg (100%) rename public/{support-care-maven => support-care}/component-logos/junit.svg (100%) rename public/{support-care-maven => support-care}/foundation-logos/afs.svg (100%) rename public/{support-care-maven => support-care}/foundation-logos/eclipse.png (100%) rename public/{support-care-maven => support-care}/foundation-logos/lf.svg (100%) rename public/{support-care-maven => support-care}/networking.png (100%) rename public/{support-care-maven => support-care}/oe-delivers-container.png (100%) rename public/{support-care-maven => support-care}/os-benefits-de.png (100%) rename public/{support-care-maven => support-care}/os-benefits.png (100%) rename public/{support-care-maven => support-care}/pyramid.png (100%) rename public/{support-care-maven => support-care}/roundtable.png (100%) rename public/{support-care-maven => support-care}/services-pictograms/custom-containers.svg (100%) rename public/{support-care-maven => support-care}/services-pictograms/documentation.svg (100%) rename public/{support-care-maven => support-care}/services-pictograms/long-term-support.svg (100%) rename public/{support-care-maven => support-care}/services-pictograms/security.svg (100%) rename public/{support-care-maven => support-care}/services-pictograms/workshops.svg (100%) rename public/{support-care-maven => support-care}/support-and-care-logo.svg (100%) rename public/{support-care-maven => support-care}/support-care-logo.svg (100%) rename public/{support-care-maven => support-care}/tree.png (100%) rename src/app/[locale]/{support-care-maven => support-care}/layout.tsx (100%) create mode 100644 src/app/[locale]/support-care/page.tsx diff --git a/public/support-care-maven/component-logos/apache-commons.svg b/public/support-care/component-logos/apache-commons.svg similarity index 100% rename from public/support-care-maven/component-logos/apache-commons.svg rename to public/support-care/component-logos/apache-commons.svg diff --git a/public/support-care-maven/component-logos/apache-log4j.png b/public/support-care/component-logos/apache-log4j.png similarity index 100% rename from public/support-care-maven/component-logos/apache-log4j.png rename to public/support-care/component-logos/apache-log4j.png diff --git a/public/support-care-maven/component-logos/apache-maven.svg b/public/support-care/component-logos/apache-maven.svg similarity index 100% rename from public/support-care-maven/component-logos/apache-maven.svg rename to public/support-care/component-logos/apache-maven.svg diff --git a/public/support-care-maven/component-logos/eclipse-temurin.svg b/public/support-care/component-logos/eclipse-temurin.svg similarity index 100% rename from public/support-care-maven/component-logos/eclipse-temurin.svg rename to public/support-care/component-logos/eclipse-temurin.svg diff --git a/public/support-care-maven/component-logos/junit.svg b/public/support-care/component-logos/junit.svg similarity index 100% rename from public/support-care-maven/component-logos/junit.svg rename to public/support-care/component-logos/junit.svg diff --git a/public/support-care-maven/foundation-logos/afs.svg b/public/support-care/foundation-logos/afs.svg similarity index 100% rename from public/support-care-maven/foundation-logos/afs.svg rename to public/support-care/foundation-logos/afs.svg diff --git a/public/support-care-maven/foundation-logos/eclipse.png b/public/support-care/foundation-logos/eclipse.png similarity index 100% rename from public/support-care-maven/foundation-logos/eclipse.png rename to public/support-care/foundation-logos/eclipse.png diff --git a/public/support-care-maven/foundation-logos/lf.svg b/public/support-care/foundation-logos/lf.svg similarity index 100% rename from public/support-care-maven/foundation-logos/lf.svg rename to public/support-care/foundation-logos/lf.svg diff --git a/public/support-care-maven/networking.png b/public/support-care/networking.png similarity index 100% rename from public/support-care-maven/networking.png rename to public/support-care/networking.png diff --git a/public/support-care-maven/oe-delivers-container.png b/public/support-care/oe-delivers-container.png similarity index 100% rename from public/support-care-maven/oe-delivers-container.png rename to public/support-care/oe-delivers-container.png diff --git a/public/support-care-maven/os-benefits-de.png b/public/support-care/os-benefits-de.png similarity index 100% rename from public/support-care-maven/os-benefits-de.png rename to public/support-care/os-benefits-de.png diff --git a/public/support-care-maven/os-benefits.png b/public/support-care/os-benefits.png similarity index 100% rename from public/support-care-maven/os-benefits.png rename to public/support-care/os-benefits.png diff --git a/public/support-care-maven/pyramid.png b/public/support-care/pyramid.png similarity index 100% rename from public/support-care-maven/pyramid.png rename to public/support-care/pyramid.png diff --git a/public/support-care-maven/roundtable.png b/public/support-care/roundtable.png similarity index 100% rename from public/support-care-maven/roundtable.png rename to public/support-care/roundtable.png diff --git a/public/support-care-maven/services-pictograms/custom-containers.svg b/public/support-care/services-pictograms/custom-containers.svg similarity index 100% rename from public/support-care-maven/services-pictograms/custom-containers.svg rename to public/support-care/services-pictograms/custom-containers.svg diff --git a/public/support-care-maven/services-pictograms/documentation.svg b/public/support-care/services-pictograms/documentation.svg similarity index 100% rename from public/support-care-maven/services-pictograms/documentation.svg rename to public/support-care/services-pictograms/documentation.svg diff --git a/public/support-care-maven/services-pictograms/long-term-support.svg b/public/support-care/services-pictograms/long-term-support.svg similarity index 100% rename from public/support-care-maven/services-pictograms/long-term-support.svg rename to public/support-care/services-pictograms/long-term-support.svg diff --git a/public/support-care-maven/services-pictograms/security.svg b/public/support-care/services-pictograms/security.svg similarity index 100% rename from public/support-care-maven/services-pictograms/security.svg rename to public/support-care/services-pictograms/security.svg diff --git a/public/support-care-maven/services-pictograms/workshops.svg b/public/support-care/services-pictograms/workshops.svg similarity index 100% rename from public/support-care-maven/services-pictograms/workshops.svg rename to public/support-care/services-pictograms/workshops.svg diff --git a/public/support-care-maven/support-and-care-logo.svg b/public/support-care/support-and-care-logo.svg similarity index 100% rename from public/support-care-maven/support-and-care-logo.svg rename to public/support-care/support-and-care-logo.svg diff --git a/public/support-care-maven/support-care-logo.svg b/public/support-care/support-care-logo.svg similarity index 100% rename from public/support-care-maven/support-care-logo.svg rename to public/support-care/support-care-logo.svg diff --git a/public/support-care-maven/tree.png b/public/support-care/tree.png similarity index 100% rename from public/support-care-maven/tree.png rename to public/support-care/tree.png diff --git a/src/app/[locale]/newsletter/page.tsx b/src/app/[locale]/newsletter/page.tsx index be8461f6..8702d990 100644 --- a/src/app/[locale]/newsletter/page.tsx +++ b/src/app/[locale]/newsletter/page.tsx @@ -1,6 +1,6 @@ import type { Metadata } from 'next'; -import { notFound } from 'next/navigation'; import Image from 'next/image'; +import { redirect } from '@/i18n/routing'; import NewsletterForm from '@/components/newsletter/NewsletterForm'; interface NewsletterPageProps { @@ -14,13 +14,6 @@ export async function generateMetadata({ }: NewsletterPageProps): Promise { const { locale } = await params; - if (locale !== 'de') { - return { - title: 'Page Not Available - Open Elements', - description: 'This page is not available in this language', - }; - } - const title = 'Newsletter - Open Elements'; const description = 'Melde dich zu unserem Newsletter an, um auf dem Laufenden zu bleiben.'; @@ -51,7 +44,7 @@ export default async function NewsletterPage({ params }: NewsletterPageProps) { const { locale } = await params; if (locale !== 'de') { - notFound(); + redirect({ href: '/newsletter', locale: 'de' }); } return ( diff --git a/src/app/[locale]/support-care-maven/page.tsx b/src/app/[locale]/support-care-maven/page.tsx index f8cb8949..c3caa316 100644 --- a/src/app/[locale]/support-care-maven/page.tsx +++ b/src/app/[locale]/support-care-maven/page.tsx @@ -1,757 +1,14 @@ -'use client'; +import { redirect } from '@/i18n/routing'; -import { useTranslations } from 'next-intl'; -import Image from 'next/image'; -import Link from 'next/link'; - -export default function SupportCareMavenPage() { - const t = useTranslations('support_care.landingpage'); - const tm = useTranslations('support_care.maven'); - - return ( -
-
-
- {/* Hero Section */} -
- {t('logoAlt')} -
-
-

- {t('heroParagraph')} -

- {/* Component logos row */} -
- Eclipse Temurin - Apache Maven - JUnit - Apache Log4j - Apache Commons -
-

- {t('heroBody')} -

-
- - {t('heroContact')} - - - {t('heroDiscover')} - -
-
- -
- - {/* The Problem Section */} -

- {t('problemTitle')} -

-

{t('problemP1')}

-
- {t('problemHighlight')} -
-

{t('problemP2')}

-

- {t('problemBulletTitle')} -

-
    -
  • {t('problemBullet1')}
  • -
  • - {t('problemBullet2').split('Log4Shell')[0]} - - {t('problemBullet2Link')} - - {t('problemBullet2').split('Log4Shell')[1]} -
  • -
  • {t('problemBullet3')}
  • -
- - {/* Supported Components Section */} -

- {t('componentsTitle')} -

-

{t('componentsIntro')}

- -
- {[ - { - img: '/support-care-maven/component-logos/eclipse-temurin.svg', - name: t('temurin.name'), - desc: t('temurin.desc'), - alt: 'Eclipse Temurin', - width: 225, - }, - { - img: '/support-care-maven/component-logos/apache-maven.svg', - name: t('maven.name'), - desc: t('maven.desc'), - alt: 'Apache Maven', - width: 190, - }, - { - img: '/support-care-maven/component-logos/junit.svg', - name: t('junit.name'), - desc: t('junit.desc'), - alt: 'JUnit', - width: 169, - }, - { - img: '/support-care-maven/component-logos/apache-log4j.png', - name: t('log4j.name'), - desc: t('log4j.desc'), - alt: 'Apache Log4j', - width: 116, - }, - { - img: '/support-care-maven/component-logos/apache-commons.svg', - name: t('commons.name'), - desc: t('commons.desc'), - alt: 'Apache Commons', - width: 110, - }, - ].map(comp => ( -
- {comp.alt} - - {comp.name} - -

-

- ))} -
- -
- {t('componentsHighlight')} -
- - {/* Where Support & Care Steps In */} -

- {t('layersTitle')} -

-

{t('layersIntro')}

- -
- {t('pyramidAlt')} -
- -
    -
  1. - {t('layer1')} -
    - {t('layer1Desc')} -
  2. -
  3. - {t('layer2')} -
    - {t('layer2Desc')} -
  4. -
  5. - {t('layer3')} -
    - {t('layer3Desc')} -
  6. -
- -
- {t('layersHighlight').split('Log4Shell')[0]} - - Log4Shell - - {t('layersHighlight').split('Log4Shell')[1]} -
- - {/* Our Services Section */} -

- {t('servicesTitle')} -

-

{t('servicesIntro')}

- -
- {[ - { - img: '/support-care-maven/services-pictograms/long-term-support.svg', - name: t('lts.name'), - desc: t('lts.desc'), - }, - { - img: '/support-care-maven/services-pictograms/security.svg', - name: t('security.name'), - desc: t('security.desc'), - }, - { - img: '/support-care-maven/services-pictograms/documentation.svg', - name: t('documentation.name'), - desc: t('documentation.desc'), - }, - { - img: '/support-care-maven/services-pictograms/workshops.svg', - name: t('workshops.name'), - desc: t('workshops.desc'), - }, - { - img: '/support-care-maven/services-pictograms/workshops.svg', - name: t('webinars.name'), - desc: t('webinars.desc'), - }, - { - img: '/support-care-maven/services-pictograms/custom-containers.svg', - name: t('customBuilds.name'), - desc: t('customBuilds.desc'), - }, - ].map(svc => ( -
- {svc.name} - - {svc.name} - -

- {svc.desc} -

-
- ))} -
- - {/* CRA Section */} -

- {t('craTitle')} -

-

{t('craP1')}

-

- {t('craBulletTitle')} -

-
    -
  • {t('craBullet1')}
  • -
  • {t('craBullet2')}
  • -
  • {t('craBullet3')}
  • -
  • {t('craBullet4')}
  • -
  • {t('craBullet5')}
  • -
  • {t('craBullet6')}
  • -
-
- {t('craHighlight')} -
- - {/* Hardened Containers Section */} -

- {t('containersTitle')} -

-

{t('containersP1')}

-

{t('containersP2')}

-

- {t('containersBulletTitle')} -

-
    -
  • {t('containersBullet1')}
  • -
  • {t('containersBullet2')}
  • -
  • {t('containersBullet3')}
  • -
  • {t('containersBullet4')}
  • -
  • {t('containersBullet5')}
  • -
- -
- {t('containersImgAlt')} -
-

- {t('containersImgAlt')} -

- - {/* Our Model Section */} -

- {t('modelTitle')} -

-

{t('modelP1')}

-

{t('modelSubtitle')}

-
    -
  • - 1. {t('modelPrinciple1')} -
  • -
  • - 2. {t('modelPrinciple2')} -
  • -
  • - 3. {t('modelPrinciple3')} -
      -
    • {t('modelBullet1')}
    • -
    • {t('modelBullet2')}
    • -
    • {t('modelBullet3')}
    • -
    • {t('modelBullet4')}
    • -
    -
  • -
- -
- {t('modelHighlight')} -
- -

{t('modelP2')}

- - {/* Subscription Packages */} -
- {/* Basic Subscription */} -
-
-
- {tm('basic.name')} -
- -
    - {[ - 'bullet1', - 'bullet2', - 'bullet3', - 'bullet4', - 'bullet5', - 'bullet6', - ].map(b => ( -
  • -
    - - -
    -
  • - ))} -
-
- - {tm('contactUs')} - -
- {/* Standard Subscription */} -
-
-
- {tm('standard.name')} -
- -
    - {[ - 'bullet1', - 'bullet2', - 'bullet3', - 'bullet4', - 'bullet5', - 'bullet6', - 'bullet7', - 'bullet8', - ].map(b => ( -
  • -
    - - -
    -
  • - ))} -
-
- - {tm('contactUs')} - -
- {/* Premium Subscription */} -
-
-
- {tm('premium.name')} -
- -
    - {[ - 'bullet1', - 'bullet2', - 'bullet3', - 'bullet4', - 'bullet5', - 'bullet6', - 'bullet7', - 'bullet8', - ].map(b => ( -
  • -
    - - -
    -
  • - ))} -
-
- - {tm('contactUs')} - -
-
- - {/* Why Open Elements */} -

- {t('whyTitle')} -

-

{t('whyP1')}

- -
- - Hendrik Ebbers - - Hendrik Ebbers - - - {t('hendrikRole')} - - - - Sandra Parsick - - Sandra Parsick - - - {t('sandraRole')} - - - - Sebastian Tiemann - - Sebastian Tiemann - - - {t('sebastianRole')} - - -
- -

{t('whyP2')}

- -
- {[ - { - img: '/support-care-maven/foundation-logos/eclipse.png', - name: 'Eclipse Foundation', - desc: t('eclipseDesc'), - imgWidth: 180, - imgHeight: 64, - }, - { - img: '/support-care-maven/foundation-logos/lf.svg', - name: 'Linux Foundation', - desc: t('lfDesc'), - imgWidth: 120, - imgHeight: 64, - }, - { - img: '/support-care-maven/foundation-logos/afs.svg', - name: 'Apache Software Foundation', - desc: t('asfDesc'), - imgWidth: 120, - imgHeight: 64, - }, - ].map(f => ( -
- {f.name} - - {f.name} - -

- {f.desc} -

-
- ))} -
- -
- {t('whyHighlight')} -
- - {/* FAQ Section */} -

- {t('faqTitle')} -

- -
- {[ - { q: t('faq1Q'), a: t('faq1A') }, - { q: t('faq2Q'), a: t('faq2A') }, - { q: t('faq3Q'), a: t('faq3A') }, - { q: t('faq4Q'), a: t('faq4A') }, - { q: t('faq5Q'), a: t('faq5A') }, - { q: t('faq6Q'), a: t('faq6A') }, - { q: t('faq7Q'), a: t('faq7A') }, - ].map((faq, i) => ( -
- - {faq.q} - -

{faq.a}

-
- ))} -
- - {/* CTA Section */} -

- {t('ctaTitle')} -

-

{t('ctaP1')}

- -
- - {t('ctaContact')} - -
+interface RedirectPageProps { + params: Promise<{ + locale: string; + }>; +} - {/* Footnotes */} -
-
- 1 {t('footnote1')} -
- 2 {t('footnote2')} -
- 3 {t('footnote3')} -
- 4 {t('footnote4')} -
- 5 {t('footnote5')} -
-
+export default async function RedirectPage({ params }: RedirectPageProps) { + const { locale } = await params; - {/* Decorative Circles at Bottom */} -
- - -
-
-
- ); + // Forward legacy URL natively to the correct new domain. + redirect({ href: '/support-care', locale }); } diff --git a/src/app/[locale]/support-care-maven/layout.tsx b/src/app/[locale]/support-care/layout.tsx similarity index 100% rename from src/app/[locale]/support-care-maven/layout.tsx rename to src/app/[locale]/support-care/layout.tsx diff --git a/src/app/[locale]/support-care/page.tsx b/src/app/[locale]/support-care/page.tsx new file mode 100644 index 00000000..a527aa86 --- /dev/null +++ b/src/app/[locale]/support-care/page.tsx @@ -0,0 +1,757 @@ +'use client'; + +import { useTranslations } from 'next-intl'; +import Image from 'next/image'; +import Link from 'next/link'; + +export default function SupportCareMavenPage() { + const t = useTranslations('support_care.landingpage'); + const tm = useTranslations('support_care.maven'); + + return ( +
+
+
+ {/* Hero Section */} +
+ {t('logoAlt')} +
+
+

+ {t('heroParagraph')} +

+ {/* Component logos row */} +
+ Eclipse Temurin + Apache Maven + JUnit + Apache Log4j + Apache Commons +
+

+ {t('heroBody')} +

+
+ + {t('heroContact')} + + + {t('heroDiscover')} + +
+
+ +
+ + {/* The Problem Section */} +

+ {t('problemTitle')} +

+

{t('problemP1')}

+
+ {t('problemHighlight')} +
+

{t('problemP2')}

+

+ {t('problemBulletTitle')} +

+
    +
  • {t('problemBullet1')}
  • +
  • + {t('problemBullet2').split('Log4Shell')[0]} + + {t('problemBullet2Link')} + + {t('problemBullet2').split('Log4Shell')[1]} +
  • +
  • {t('problemBullet3')}
  • +
+ + {/* Supported Components Section */} +

+ {t('componentsTitle')} +

+

{t('componentsIntro')}

+ +
+ {[ + { + img: '/support-care/component-logos/eclipse-temurin.svg', + name: t('temurin.name'), + desc: t('temurin.desc'), + alt: 'Eclipse Temurin', + width: 225, + }, + { + img: '/support-care/component-logos/apache-maven.svg', + name: t('maven.name'), + desc: t('maven.desc'), + alt: 'Apache Maven', + width: 190, + }, + { + img: '/support-care/component-logos/junit.svg', + name: t('junit.name'), + desc: t('junit.desc'), + alt: 'JUnit', + width: 169, + }, + { + img: '/support-care/component-logos/apache-log4j.png', + name: t('log4j.name'), + desc: t('log4j.desc'), + alt: 'Apache Log4j', + width: 116, + }, + { + img: '/support-care/component-logos/apache-commons.svg', + name: t('commons.name'), + desc: t('commons.desc'), + alt: 'Apache Commons', + width: 110, + }, + ].map(comp => ( +
+ {comp.alt} + + {comp.name} + +

+

+ ))} +
+ +
+ {t('componentsHighlight')} +
+ + {/* Where Support & Care Steps In */} +

+ {t('layersTitle')} +

+

{t('layersIntro')}

+ +
+ {t('pyramidAlt')} +
+ +
    +
  1. + {t('layer1')} +
    + {t('layer1Desc')} +
  2. +
  3. + {t('layer2')} +
    + {t('layer2Desc')} +
  4. +
  5. + {t('layer3')} +
    + {t('layer3Desc')} +
  6. +
+ +
+ {t('layersHighlight').split('Log4Shell')[0]} + + Log4Shell + + {t('layersHighlight').split('Log4Shell')[1]} +
+ + {/* Our Services Section */} +

+ {t('servicesTitle')} +

+

{t('servicesIntro')}

+ +
+ {[ + { + img: '/support-care/services-pictograms/long-term-support.svg', + name: t('lts.name'), + desc: t('lts.desc'), + }, + { + img: '/support-care/services-pictograms/security.svg', + name: t('security.name'), + desc: t('security.desc'), + }, + { + img: '/support-care/services-pictograms/documentation.svg', + name: t('documentation.name'), + desc: t('documentation.desc'), + }, + { + img: '/support-care/services-pictograms/workshops.svg', + name: t('workshops.name'), + desc: t('workshops.desc'), + }, + { + img: '/support-care/services-pictograms/workshops.svg', + name: t('webinars.name'), + desc: t('webinars.desc'), + }, + { + img: '/support-care/services-pictograms/custom-containers.svg', + name: t('customBuilds.name'), + desc: t('customBuilds.desc'), + }, + ].map(svc => ( +
+ {svc.name} + + {svc.name} + +

+ {svc.desc} +

+
+ ))} +
+ + {/* CRA Section */} +

+ {t('craTitle')} +

+

{t('craP1')}

+

+ {t('craBulletTitle')} +

+
    +
  • {t('craBullet1')}
  • +
  • {t('craBullet2')}
  • +
  • {t('craBullet3')}
  • +
  • {t('craBullet4')}
  • +
  • {t('craBullet5')}
  • +
  • {t('craBullet6')}
  • +
+
+ {t('craHighlight')} +
+ + {/* Hardened Containers Section */} +

+ {t('containersTitle')} +

+

{t('containersP1')}

+

{t('containersP2')}

+

+ {t('containersBulletTitle')} +

+
    +
  • {t('containersBullet1')}
  • +
  • {t('containersBullet2')}
  • +
  • {t('containersBullet3')}
  • +
  • {t('containersBullet4')}
  • +
  • {t('containersBullet5')}
  • +
+ +
+ {t('containersImgAlt')} +
+

+ {t('containersImgAlt')} +

+ + {/* Our Model Section */} +

+ {t('modelTitle')} +

+

{t('modelP1')}

+

{t('modelSubtitle')}

+
    +
  • + 1. {t('modelPrinciple1')} +
  • +
  • + 2. {t('modelPrinciple2')} +
  • +
  • + 3. {t('modelPrinciple3')} +
      +
    • {t('modelBullet1')}
    • +
    • {t('modelBullet2')}
    • +
    • {t('modelBullet3')}
    • +
    • {t('modelBullet4')}
    • +
    +
  • +
+ +
+ {t('modelHighlight')} +
+ +

{t('modelP2')}

+ + {/* Subscription Packages */} +
+ {/* Basic Subscription */} +
+
+
+ {tm('basic.name')} +
+ +
    + {[ + 'bullet1', + 'bullet2', + 'bullet3', + 'bullet4', + 'bullet5', + 'bullet6', + ].map(b => ( +
  • +
    + + +
    +
  • + ))} +
+
+ + {tm('contactUs')} + +
+ {/* Standard Subscription */} +
+
+
+ {tm('standard.name')} +
+ +
    + {[ + 'bullet1', + 'bullet2', + 'bullet3', + 'bullet4', + 'bullet5', + 'bullet6', + 'bullet7', + 'bullet8', + ].map(b => ( +
  • +
    + + +
    +
  • + ))} +
+
+ + {tm('contactUs')} + +
+ {/* Premium Subscription */} +
+
+
+ {tm('premium.name')} +
+ +
    + {[ + 'bullet1', + 'bullet2', + 'bullet3', + 'bullet4', + 'bullet5', + 'bullet6', + 'bullet7', + 'bullet8', + ].map(b => ( +
  • +
    + + +
    +
  • + ))} +
+
+ + {tm('contactUs')} + +
+
+ + {/* Why Open Elements */} +

+ {t('whyTitle')} +

+

{t('whyP1')}

+ +
+ + Hendrik Ebbers + + Hendrik Ebbers + + + {t('hendrikRole')} + + + + Sandra Parsick + + Sandra Parsick + + + {t('sandraRole')} + + + + Sebastian Tiemann + + Sebastian Tiemann + + + {t('sebastianRole')} + + +
+ +

{t('whyP2')}

+ +
+ {[ + { + img: '/support-care/foundation-logos/eclipse.png', + name: 'Eclipse Foundation', + desc: t('eclipseDesc'), + imgWidth: 180, + imgHeight: 64, + }, + { + img: '/support-care/foundation-logos/lf.svg', + name: 'Linux Foundation', + desc: t('lfDesc'), + imgWidth: 120, + imgHeight: 64, + }, + { + img: '/support-care/foundation-logos/afs.svg', + name: 'Apache Software Foundation', + desc: t('asfDesc'), + imgWidth: 120, + imgHeight: 64, + }, + ].map(f => ( +
+ {f.name} + + {f.name} + +

+ {f.desc} +

+
+ ))} +
+ +
+ {t('whyHighlight')} +
+ + {/* FAQ Section */} +

+ {t('faqTitle')} +

+ +
+ {[ + { q: t('faq1Q'), a: t('faq1A') }, + { q: t('faq2Q'), a: t('faq2A') }, + { q: t('faq3Q'), a: t('faq3A') }, + { q: t('faq4Q'), a: t('faq4A') }, + { q: t('faq5Q'), a: t('faq5A') }, + { q: t('faq6Q'), a: t('faq6A') }, + { q: t('faq7Q'), a: t('faq7A') }, + ].map((faq, i) => ( +
+ + {faq.q} + +

{faq.a}

+
+ ))} +
+ + {/* CTA Section */} +

+ {t('ctaTitle')} +

+

{t('ctaP1')}

+ +
+ + {t('ctaContact')} + +
+ + {/* Footnotes */} +
+
+ 1 {t('footnote1')} +
+ 2 {t('footnote2')} +
+ 3 {t('footnote3')} +
+ 4 {t('footnote4')} +
+ 5 {t('footnote5')} +
+
+ + {/* Decorative Circles at Bottom */} +
+ + +
+
+
+ ); +} diff --git a/src/data-temp/mainMenu.json b/src/data-temp/mainMenu.json index 0f52ca10..f531eb07 100644 --- a/src/data-temp/mainMenu.json +++ b/src/data-temp/mainMenu.json @@ -27,7 +27,7 @@ "name": "Support & Care", "i18nKey": "supportAndCare", "altI18nKey": "supportAndCareDescription", - "link": "/support-care-maven/", + "link": "/support-care/", "visibleInNavigation": true, "visibleInFooter": true }, @@ -51,7 +51,7 @@ "name": "Support & Care for Maven", "i18nKey": "mavenSupport", "altI18nKey": "mavenSupportDescription", - "link": "/support-care-maven/", + "link": "/support-care/", "visibleInNavigation": false, "visibleInFooter": false }, diff --git a/src/data/mainMenu.json b/src/data/mainMenu.json index 91f4f791..30bd0057 100644 --- a/src/data/mainMenu.json +++ b/src/data/mainMenu.json @@ -27,7 +27,7 @@ "name": "Support & Care", "i18nKey": "supportAndCare", "altI18nKey": "supportAndCareDescription", - "link": "/support-care-maven/", + "link": "/support-care/", "visibleInNavigation": true, "visibleInFooter": true }, @@ -51,7 +51,7 @@ "name": "Support & Care for Maven", "i18nKey": "mavenSupport", "altI18nKey": "mavenSupportDescription", - "link": "/support-care-maven/", + "link": "/support-care/", "visibleInNavigation": false, "visibleInFooter": false }, From 5c199ec1cea42a07bb56ce40d71c943b5b244142 Mon Sep 17 00:00:00 2001 From: Jessie Ssebuliba Date: Thu, 9 Apr 2026 10:59:20 +0300 Subject: [PATCH 2/3] add support care redirection Signed-off-by: Jessie Ssebuliba --- next.config.js | 19 +++++++++++++++++++ src/app/[locale]/support-care-maven/page.tsx | 14 -------------- 2 files changed, 19 insertions(+), 14 deletions(-) delete mode 100644 src/app/[locale]/support-care-maven/page.tsx diff --git a/next.config.js b/next.config.js index 567b1fcd..e66876ac 100644 --- a/next.config.js +++ b/next.config.js @@ -14,6 +14,25 @@ const nextConfig = { }, ], }, + async redirects() { + return [ + { + source: '/support-care-maven', + destination: '/support-care', + permanent: true, + }, + { + source: '/en/support-care-maven', + destination: '/en/support-care', + permanent: true, + }, + { + source: '/de/support-care-maven', + destination: '/de/support-care', + permanent: true, + }, + ]; + }, }; export default withNextIntl(nextConfig); diff --git a/src/app/[locale]/support-care-maven/page.tsx b/src/app/[locale]/support-care-maven/page.tsx deleted file mode 100644 index c3caa316..00000000 --- a/src/app/[locale]/support-care-maven/page.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { redirect } from '@/i18n/routing'; - -interface RedirectPageProps { - params: Promise<{ - locale: string; - }>; -} - -export default async function RedirectPage({ params }: RedirectPageProps) { - const { locale } = await params; - - // Forward legacy URL natively to the correct new domain. - redirect({ href: '/support-care', locale }); -} From 68375aa371216994a9287dec63bd3c14a727c49c Mon Sep 17 00:00:00 2001 From: Jessie Ssebuliba Date: Mon, 13 Apr 2026 10:03:31 +0300 Subject: [PATCH 3/3] fix up Signed-off-by: Jessie Ssebuliba --- src/app/[locale]/newsletter/page.tsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/app/[locale]/newsletter/page.tsx b/src/app/[locale]/newsletter/page.tsx index 8702d990..be8461f6 100644 --- a/src/app/[locale]/newsletter/page.tsx +++ b/src/app/[locale]/newsletter/page.tsx @@ -1,6 +1,6 @@ import type { Metadata } from 'next'; +import { notFound } from 'next/navigation'; import Image from 'next/image'; -import { redirect } from '@/i18n/routing'; import NewsletterForm from '@/components/newsletter/NewsletterForm'; interface NewsletterPageProps { @@ -14,6 +14,13 @@ export async function generateMetadata({ }: NewsletterPageProps): Promise { const { locale } = await params; + if (locale !== 'de') { + return { + title: 'Page Not Available - Open Elements', + description: 'This page is not available in this language', + }; + } + const title = 'Newsletter - Open Elements'; const description = 'Melde dich zu unserem Newsletter an, um auf dem Laufenden zu bleiben.'; @@ -44,7 +51,7 @@ export default async function NewsletterPage({ params }: NewsletterPageProps) { const { locale } = await params; if (locale !== 'de') { - redirect({ href: '/newsletter', locale: 'de' }); + notFound(); } return (