From 7c5b91749bd0a1f050ad7294b376cb159930e8dc Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Sat, 17 Jan 2026 02:15:11 +0100 Subject: [PATCH] wip --- .eslintrc.json | 3 + app/[locale]/contact/page.tsx | 34 +- app/[locale]/products/page.tsx | 24 +- app/[locale]/team/page.tsx | 54 +- components/Footer.tsx | 19 +- components/Header.tsx | 4 +- components/home/CTA.tsx | 10 +- components/home/GallerySection.tsx | 6 +- components/home/Hero.tsx | 19 +- components/home/MeetTheTeam.tsx | 12 +- components/home/ProductCategories.tsx | 66 +- components/home/VideoSection.tsx | 17 +- components/home/WhatWeDo.tsx | 36 +- components/home/WhyChooseUs.tsx | 36 +- ...r-mit-der-richtigen-kabelinfrastruktur.mdx | 2 +- ...der-schluessel-zur-richtigen-kabelwahl.mdx | 2 +- ...2y-mittelspannungskabel-energieprojekt.mdx | 14 +- ...ileiter-mittelspannungskabel-lieferbar.mdx | 24 +- ...on-nieder-bis-hoechstspannung-erklaert.mdx | 6 +- ...s-drei-typische-kabelherausforderungen.mdx | 6 +- ...k-unser-solarkabel-zur-intersolar-2025.mdx | 2 +- ...ruction-three-typical-cable-challenges.mdx | 8 +- ...o-grow-new-strength-in-financial-sales.mdx | 100 +++ ...nductor-medium-voltage-cable-available.mdx | 6 +- ...-low-to-extra-high-voltage-explained-2.mdx | 6 +- ...he-ideal-cable-for-your-energy-project.mdx | 14 +- .../{corporate-3-landing-2.mdx => start.mdx} | 0 data/products/de/{n2x2y-2.mdx => n2x2y.mdx} | 0 data/products/de/{n2xs2y-2.mdx => n2xs2y.mdx} | 0 .../de/{n2xsf2y-2.mdx => n2xsf2y.mdx} | 0 .../de/{n2xsfl2y.mdx => n2xsfl2y-hv.mdx} | 2 +- .../de/{n2xsfl2y-2.mdx => n2xsfl2y-mv.mdx} | 0 data/products/de/{n2xsy-2.mdx => n2xsy.mdx} | 0 data/products/de/{n2xy-2.mdx => n2xy.mdx} | 0 data/products/de/{na2x2y-2.mdx => na2x2y.mdx} | 0 .../de/{na2xs2y-2.mdx => na2xs2y.mdx} | 0 .../de/{na2xsf2y-2.mdx => na2xsf2y.mdx} | 0 .../de/{na2xsfl2y.mdx => na2xsfl2y-hv.mdx} | 671 +++++------------- .../de/{na2xsfl2y-2.mdx => na2xsfl2y-mv.mdx} | 0 data/products/de/{na2xsy-2.mdx => na2xsy.mdx} | 0 data/products/de/{na2xy-2.mdx => na2xy.mdx} | 0 data/products/de/{nay2y-2.mdx => nay2y.mdx} | 0 data/products/de/{naycwy-2.mdx => naycwy.mdx} | 0 data/products/de/{nayy-2.mdx => nayy.mdx} | 0 data/products/de/{ny2y-2.mdx => ny2y.mdx} | 0 data/products/de/{nycwy-2.mdx => nycwy.mdx} | 0 data/products/de/{nyy-2.mdx => nyy.mdx} | 0 .../en/{n2xsfl2y.mdx => n2xsfl2y-hv.mdx} | 0 .../en/{n2xsfl2y-3.mdx => n2xsfl2y-mv.mdx} | 0 .../en/{na2xsfl2y-3.mdx => na2xsfl2y-hv.mdx} | 0 .../en/{na2xsfl2y.mdx => na2xsfl2y-mv.mdx} | 0 messages/de.json | 172 ++++- messages/en.json | 172 ++++- .../uploads/2024/12/1694273920124-copy.webp | Bin 0 -> 217530 bytes .../2024/12/DSC07387-Large-600x400.webp | Bin 0 -> 26932 bytes tsconfig.tsbuildinfo | 2 +- 56 files changed, 818 insertions(+), 731 deletions(-) create mode 100644 .eslintrc.json create mode 100644 data/blog/en/klz-continues-to-grow-new-strength-in-financial-sales.mdx rename data/pages/en/{corporate-3-landing-2.mdx => start.mdx} (100%) rename data/products/de/{n2x2y-2.mdx => n2x2y.mdx} (100%) rename data/products/de/{n2xs2y-2.mdx => n2xs2y.mdx} (100%) rename data/products/de/{n2xsf2y-2.mdx => n2xsf2y.mdx} (100%) rename data/products/de/{n2xsfl2y.mdx => n2xsfl2y-hv.mdx} (99%) rename data/products/de/{n2xsfl2y-2.mdx => n2xsfl2y-mv.mdx} (100%) rename data/products/de/{n2xsy-2.mdx => n2xsy.mdx} (100%) rename data/products/de/{n2xy-2.mdx => n2xy.mdx} (100%) rename data/products/de/{na2x2y-2.mdx => na2x2y.mdx} (100%) rename data/products/de/{na2xs2y-2.mdx => na2xs2y.mdx} (100%) rename data/products/de/{na2xsf2y-2.mdx => na2xsf2y.mdx} (100%) rename data/products/de/{na2xsfl2y.mdx => na2xsfl2y-hv.mdx} (51%) rename data/products/de/{na2xsfl2y-2.mdx => na2xsfl2y-mv.mdx} (100%) rename data/products/de/{na2xsy-2.mdx => na2xsy.mdx} (100%) rename data/products/de/{na2xy-2.mdx => na2xy.mdx} (100%) rename data/products/de/{nay2y-2.mdx => nay2y.mdx} (100%) rename data/products/de/{naycwy-2.mdx => naycwy.mdx} (100%) rename data/products/de/{nayy-2.mdx => nayy.mdx} (100%) rename data/products/de/{ny2y-2.mdx => ny2y.mdx} (100%) rename data/products/de/{nycwy-2.mdx => nycwy.mdx} (100%) rename data/products/de/{nyy-2.mdx => nyy.mdx} (100%) rename data/products/en/{n2xsfl2y.mdx => n2xsfl2y-hv.mdx} (100%) rename data/products/en/{n2xsfl2y-3.mdx => n2xsfl2y-mv.mdx} (100%) rename data/products/en/{na2xsfl2y-3.mdx => na2xsfl2y-hv.mdx} (100%) rename data/products/en/{na2xsfl2y.mdx => na2xsfl2y-mv.mdx} (100%) create mode 100644 public/uploads/2024/12/1694273920124-copy.webp create mode 100644 public/uploads/2024/12/DSC07387-Large-600x400.webp diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 00000000..bffb357a --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/app/[locale]/contact/page.tsx b/app/[locale]/contact/page.tsx index 55361e45..d83f6462 100644 --- a/app/[locale]/contact/page.tsx +++ b/app/[locale]/contact/page.tsx @@ -2,16 +2,16 @@ import { useTranslations } from 'next-intl'; import { Section, Container, Button } from '@/components/ui'; export default function ContactPage() { - const t = useTranslations('Navigation'); // Reusing navigation translations for now + const t = useTranslations('Contact'); return (
-

Get in Touch

+

{t('title')}

- Have questions about our products or need a custom solution? We're here to help. + {t('subtitle')}

@@ -19,17 +19,15 @@ export default function ContactPage() { {/* Contact Info */}
-

Contact Information

+

{t('info.title')}

- - Raiffeisenstraße 22
- 73630 Remshalden
- Germany + + {t('info.address')}

@@ -48,15 +46,15 @@ export default function ContactPage() {

-

Business Hours

+

{t('hours.title')}

  • - Monday - Friday - 8:00 AM - 5:00 PM + {t('hours.weekdays')} + {t('hours.weekdaysTime')}
  • - Saturday - Sunday - Closed + {t('hours.weekend')} + {t('hours.closed')}
@@ -64,21 +62,21 @@ export default function ContactPage() { {/* Contact Form Placeholder */}
-

Send us a message

+

{t('form.title')}

- +
- +
- +
- +
diff --git a/app/[locale]/products/page.tsx b/app/[locale]/products/page.tsx index 81c2fa57..73be2354 100644 --- a/app/[locale]/products/page.tsx +++ b/app/[locale]/products/page.tsx @@ -10,33 +10,33 @@ interface ProductsPageProps { } export default function ProductsPage({ params }: ProductsPageProps) { - const t = useTranslations('Navigation'); + const t = useTranslations('Products'); const categories = [ { - title: 'Low Voltage Cables', - desc: 'Powering everyday essentials with reliability and safety.', + title: t('categories.lowVoltage.title'), + desc: t('categories.lowVoltage.description'), img: '/uploads/2024/12/low-voltage-scaled.webp', icon: '/uploads/2024/11/Low-Voltage.svg', href: `/${params.locale}/products/low-voltage-cables` }, { - title: 'Medium Voltage Cables', - desc: 'The perfect balance between power and performance for industrial and urban grids.', + title: t('categories.mediumVoltage.title'), + desc: t('categories.mediumVoltage.description'), img: '/uploads/2024/12/medium-voltage-scaled.webp', icon: '/uploads/2024/11/Medium-Voltage.svg', href: `/${params.locale}/products/medium-voltage-cables` }, { - title: 'High Voltage Cables', - desc: 'Delivering maximum power over long distances—without compromise.', + title: t('categories.highVoltage.title'), + desc: t('categories.highVoltage.description'), img: '/uploads/2025/06/na2xsfl2y-rendered.webp', icon: '/uploads/2024/11/High-Voltage.svg', href: `/${params.locale}/products/high-voltage-cables` }, { - title: 'Solar Cables', - desc: 'Connecting the sun’s energy to your sustainable future.', + title: t('categories.solar.title'), + desc: t('categories.solar.description'), img: '/uploads/2025/04/3.webp', icon: '/uploads/2024/11/Solar.svg', href: `/${params.locale}/products/solar-cables` @@ -48,9 +48,9 @@ export default function ProductsPage({ params }: ProductsPageProps) {
-

Our Products

+

{t('title')}

- Explore our comprehensive range of high-quality cables designed for every application. + {t('subtitle')}

@@ -77,7 +77,7 @@ export default function ProductsPage({ params }: ProductsPageProps) { {category.desc}

- View Products → + {t('viewProducts')} →
diff --git a/app/[locale]/team/page.tsx b/app/[locale]/team/page.tsx index 7a0b5214..da2749a9 100644 --- a/app/[locale]/team/page.tsx +++ b/app/[locale]/team/page.tsx @@ -3,7 +3,7 @@ import { Section, Container } from '@/components/ui'; import Image from 'next/image'; export default function TeamPage() { - const t = useTranslations('Navigation'); + const t = useTranslations('Team'); return (
@@ -22,10 +22,10 @@ export default function TeamPage() {
- The bright sparks behind the power + {t('hero.title')}

- We connect energy, expertise, and innovation to power a greener future. + {t('hero.subtitle')}

@@ -34,14 +34,14 @@ export default function TeamPage() {
-

Michael Bodemer

+

{t('michael.name')}

- "Challenges exist to be solved, not to debate how complicated they are." + {t('michael.quote')}

- Michael Bodemer is the go-to guy when things get complicated—and let’s face it, that’s often the case with cable networks. With sharp insight and a knack for practical solutions, Michael is one of our key players. He’s not just detail-oriented; he’s a driving force—whether it’s in planning, customer interactions, or securing the best cables for every project. + {t('michael.description')}

- Check Michael's LinkedIn + {t('michael.linkedin')}
Michael Bodemer @@ -68,7 +68,7 @@ export default function TeamPage() {
Legacy
-

A Legacy of Excellence in Every Connection

+

{t('legacy.title')}

- At KLZ, our expertise is built on generations of dedication to the energy industry. With decades of hands-on experience, we’ve grown alongside the evolution of cable technology, combining traditional craftsmanship with modern innovation. Each project we take on reflects a deep understanding of what it takes to create lasting, reliable energy solutions. + {t('legacy.p1')}

- Paired with historic illustrations from the industry’s early days, our story is a reminder of how far cables have come – and how much care has always gone into connecting the world. + {t('legacy.p2')}

@@ -98,20 +98,20 @@ export default function TeamPage() {
Klaus Mintel
-

Klaus Mintel

+

{t('klaus.name')}

- "Sometimes all it takes is a clear head and a good cable to make the world a little better." + {t('klaus.quote')}

- Klaus is the man with the experience, bringing perspective and calm to the table—even when cable chaos threatens to take over. With impressive industry knowledge and a network as solid as our cables, he ensures everything runs smoothly. Klaus isn’t just a problem solver; he’s a strategic thinker who knows how to get to the point with a touch of humor. + {t('klaus.description')}

- Check Klaus' LinkedIn + {t('klaus.linkedin')}
@@ -131,21 +131,14 @@ export default function TeamPage() {
-

Our manifesto

+

{t('manifesto.title')}

- {[ - { title: 'Competence', desc: 'Decades of experience and Europe-wide know-how combined with commitment and new ideas. Production partners up to 525 kV and the most modern systems, test laboratories and ready to invest in the future.' }, - { title: 'Availability', desc: 'Always there for you - no waiting, no delays, just fast and reliable support. Maybe it\'s because we love what we do.' }, - { title: 'Solutions', desc: 'Solutions require a lot of questions. We ask them. You, the manufacturer and ourselves. If you don\'t ask questions, you\'ll pay for it later. We need to prevent that.' }, - { title: 'Logistics', desc: 'Monitoring production, regular exchanges, freight tracking, customs clearance, reloading, paying attention to the delivery time tunnel, invoices, delivery notes - our everyday life. We have the right team for it.' }, - { title: 'Open to new things', desc: 'We listen. From the inquiry, through the offer, to delivery. What can be done better needs to be discussed. If you don\'t adapt your processes, you\'ll no longer be on the highway at some point. Instead, you\'ll end up in a dead end.' }, - { title: 'Reliability', desc: 'We deliver what we promise – every time, without fail.' } - ].map((item, idx) => ( + {[0, 1, 2, 3, 4, 5].map((idx) => (
0{idx + 1}
-

{item.title}

-

{item.desc}

+

{t(`manifesto.items.${idx}.title`)}

+

{t(`manifesto.items.${idx}.description`)}

))}
@@ -156,12 +149,13 @@ export default function TeamPage() { {/* Gallery Section */}
-
+
{[ '/uploads/2024/12/DSC07539-Large-600x400.webp', '/uploads/2024/12/DSC07460-Large-600x400.webp', '/uploads/2024/12/DSC07469-Large-600x400.webp', - '/uploads/2024/12/DSC07433-Large-600x400.webp' + '/uploads/2024/12/DSC07433-Large-600x400.webp', + '/uploads/2024/12/DSC07387-Large-600x400.webp' ].map((src, idx) => (
Team Gallery diff --git a/components/Footer.tsx b/components/Footer.tsx index d2c3138d..ad2a578c 100644 --- a/components/Footer.tsx +++ b/components/Footer.tsx @@ -1,9 +1,10 @@ import Link from 'next/link'; import Image from 'next/image'; -import { useTranslations } from 'next-intl'; +import { useTranslations, useLocale } from 'next-intl'; export default function Footer() { const t = useTranslations('Footer'); + const locale = useLocale(); const currentYear = new Date().getFullYear(); return ( @@ -13,15 +14,15 @@ export default function Footer() { {/* Column 1: Legal & Languages */}
-

Legal

+

{t('legal')}

    -
  • Legal Notice
  • -
  • Privacy Policy
  • -
  • Terms
  • +
  • {t('legalNotice')}
  • +
  • {t('privacyPolicy')}
  • +
  • {t('terms')}
-

Languages

+

{t('languages')}