fix(locale): align all English MDX page links and add automated links validation test to prevent language drift
All checks were successful
Build & Deploy / 🔍 Prepare (push) Successful in 18s
Build & Deploy / 🧪 QA (push) Successful in 1m6s
Build & Deploy / 🏗️ Build (push) Successful in 2m44s
Build & Deploy / 🚀 Deploy (push) Successful in 28s
Build & Deploy / 🧪 Post-Deploy Verification (push) Successful in 43s
Build & Deploy / 🔔 Notify (push) Successful in 1s
All checks were successful
Build & Deploy / 🔍 Prepare (push) Successful in 18s
Build & Deploy / 🧪 QA (push) Successful in 1m6s
Build & Deploy / 🏗️ Build (push) Successful in 2m44s
Build & Deploy / 🚀 Deploy (push) Successful in 28s
Build & Deploy / 🧪 Post-Deploy Verification (push) Successful in 43s
Build & Deploy / 🔔 Notify (push) Successful in 1s
This commit is contained in:
@@ -12,7 +12,7 @@ layout: "fullBleed"
|
|||||||
backgroundImage={{ url: '/assets/photos/DSC08653.JPG' }}
|
backgroundImage={{ url: '/assets/photos/DSC08653.JPG' }}
|
||||||
alignment="center"
|
alignment="center"
|
||||||
ctaLabel="Request a project"
|
ctaLabel="Request a project"
|
||||||
ctaHref="/en/kontakt"
|
ctaHref="/en/contact"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div className="container px-4 max-w-7xl mx-auto py-16">
|
<div className="container px-4 max-w-7xl mx-auto py-16">
|
||||||
@@ -77,5 +77,5 @@ layout: "fullBleed"
|
|||||||
title="Looking for a trenchless solution?"
|
title="Looking for a trenchless solution?"
|
||||||
text="We would be happy to advise you on the possibilities of horizontal directional drilling for your project."
|
text="We would be happy to advise you on the possibilities of horizontal directional drilling for your project."
|
||||||
buttonText="Contact us"
|
buttonText="Contact us"
|
||||||
buttonLink="/en/kontakt"
|
buttonLink="/en/contact"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ layout: "fullBleed"
|
|||||||
backgroundImage={{ url: '/assets/photos/DSC01129.JPG' }}
|
backgroundImage={{ url: '/assets/photos/DSC01129.JPG' }}
|
||||||
alignment="center"
|
alignment="center"
|
||||||
ctaLabel="Request a project"
|
ctaLabel="Request a project"
|
||||||
ctaHref="/en/kontakt"
|
ctaHref="/en/contact"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div className="container px-4 max-w-7xl mx-auto py-16">
|
<div className="container px-4 max-w-7xl mx-auto py-16">
|
||||||
@@ -75,5 +75,5 @@ layout: "fullBleed"
|
|||||||
title="Are you planning an FTTX expansion?"
|
title="Are you planning an FTTX expansion?"
|
||||||
text="We are happy to advise you on all aspects of FTTX and fiber optic expansion."
|
text="We are happy to advise you on all aspects of FTTX and fiber optic expansion."
|
||||||
buttonText="Contact us"
|
buttonText="Contact us"
|
||||||
buttonLink="/en/kontakt"
|
buttonLink="/en/contact"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ layout: "fullBleed"
|
|||||||
backgroundImage={{ url: '/assets/photos/DSC01123.JPG' }}
|
backgroundImage={{ url: '/assets/photos/DSC01123.JPG' }}
|
||||||
alignment="center"
|
alignment="center"
|
||||||
ctaLabel="Request a project"
|
ctaLabel="Request a project"
|
||||||
ctaHref="/en/kontakt"
|
ctaHref="/en/contact"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div className="container px-4 max-w-7xl mx-auto py-16">
|
<div className="container px-4 max-w-7xl mx-auto py-16">
|
||||||
@@ -79,5 +79,5 @@ layout: "fullBleed"
|
|||||||
title="Do you have a specific project?"
|
title="Do you have a specific project?"
|
||||||
text="We would be happy to advise you on all questions regarding cable civil engineering and line laying."
|
text="We would be happy to advise you on all questions regarding cable civil engineering and line laying."
|
||||||
buttonText="Contact us"
|
buttonText="Contact us"
|
||||||
buttonLink="/en/kontakt"
|
buttonLink="/en/contact"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -100,6 +100,6 @@ layout: "fullBleed"
|
|||||||
title="Speculative Application (m/f/d)"
|
title="Speculative Application (m/f/d)"
|
||||||
description="Can you imagine taking on a long-term challenge in our company but can't find a suitable job offer? Apply speculatively."
|
description="Can you imagine taking on a long-term challenge in our company but can't find a suitable job offer? Apply speculatively."
|
||||||
ctaLabel="To the contact form"
|
ctaLabel="To the contact form"
|
||||||
ctaHref="/en/kontakt"
|
ctaHref="/en/contact"
|
||||||
theme="dark"
|
theme="dark"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ layout: "fullBleed"
|
|||||||
description="As a full-service partner in the field of cable civil engineering, we cover the entire spectrum of modern infrastructure projects."
|
description="As a full-service partner in the field of cable civil engineering, we cover the entire spectrum of modern infrastructure projects."
|
||||||
videoUrl="/assets/videos/web/hero-bohrung.mp4"
|
videoUrl="/assets/videos/web/hero-bohrung.mp4"
|
||||||
linkText="Get in Touch"
|
linkText="Get in Touch"
|
||||||
linkHref="/en/kontakt"
|
linkHref="/en/contact"
|
||||||
secondaryCtaLabel="View References"
|
secondaryCtaLabel="View References"
|
||||||
secondaryCtaHref="/en/#referenzen"
|
secondaryCtaHref="/en/#referenzen"
|
||||||
/>
|
/>
|
||||||
@@ -20,7 +20,7 @@ layout: "fullBleed"
|
|||||||
badge="Core Competencies"
|
badge="Core Competencies"
|
||||||
title="Precision & Performance"
|
title="Precision & Performance"
|
||||||
ctaLabel="Request a project"
|
ctaLabel="Request a project"
|
||||||
ctaHref="/en/kontakt"
|
ctaHref="/en/contact"
|
||||||
items={[
|
items={[
|
||||||
{
|
{
|
||||||
title: "Cable Construction",
|
title: "Cable Construction",
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ layout: "fullBleed"
|
|||||||
description="Get to know the E-TIB Group at the leading industry trade fairs."
|
description="Get to know the E-TIB Group at the leading industry trade fairs."
|
||||||
videoUrl="/assets/videos/web/hero-bahnkreuzung.mp4"
|
videoUrl="/assets/videos/web/hero-bahnkreuzung.mp4"
|
||||||
linkText="Get in Touch"
|
linkText="Get in Touch"
|
||||||
linkHref="/en/kontakt"
|
linkHref="/en/contact"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div id="termine">
|
<div id="termine">
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ layout: "fullBleed"
|
|||||||
backgroundImage={{ url: '/assets/photos/DJI_0048.JPG' }}
|
backgroundImage={{ url: '/assets/photos/DJI_0048.JPG' }}
|
||||||
alignment="center"
|
alignment="center"
|
||||||
ctaLabel="Request a project"
|
ctaLabel="Request a project"
|
||||||
ctaHref="/en/kontakt"
|
ctaHref="/en/contact"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div className="container px-4 max-w-7xl mx-auto py-16">
|
<div className="container px-4 max-w-7xl mx-auto py-16">
|
||||||
@@ -75,5 +75,5 @@ layout: "fullBleed"
|
|||||||
title="Do you need planning security?"
|
title="Do you need planning security?"
|
||||||
text="Let's talk about your project. We are at your side with our engineering knowledge."
|
text="Let's talk about your project. We are at your side with our engineering knowledge."
|
||||||
buttonText="Contact us"
|
buttonText="Contact us"
|
||||||
buttonLink="/en/kontakt"
|
buttonLink="/en/contact"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -86,5 +86,5 @@ layout: "fullBleed"
|
|||||||
title="Become part of our team"
|
title="Become part of our team"
|
||||||
text="We are always looking for motivated talents for exciting infrastructure projects."
|
text="We are always looking for motivated talents for exciting infrastructure projects."
|
||||||
buttonText="View open positions"
|
buttonText="View open positions"
|
||||||
buttonLink="/en/karriere"
|
buttonLink="/en/career"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ layout: "fullBleed"
|
|||||||
description="Since 2015, we have been growing continuously to meet the demands of the energy transition and digitalization. As a corporate group, we pool specialized expertise under one roof."
|
description="Since 2015, we have been growing continuously to meet the demands of the energy transition and digitalization. As a corporate group, we pool specialized expertise under one roof."
|
||||||
videoUrl="/assets/videos/web/hero-bahnkreuzung.mp4"
|
videoUrl="/assets/videos/web/hero-bahnkreuzung.mp4"
|
||||||
linkText="Open Positions"
|
linkText="Open Positions"
|
||||||
linkHref="/en/karriere"
|
linkHref="/en/career"
|
||||||
secondaryCtaLabel="Discover Company"
|
secondaryCtaLabel="Discover Company"
|
||||||
secondaryCtaHref="#structure"
|
secondaryCtaHref="#structure"
|
||||||
/>
|
/>
|
||||||
@@ -128,5 +128,5 @@ layout: "fullBleed"
|
|||||||
title="Ready for Your Project?"
|
title="Ready for Your Project?"
|
||||||
description="We are always looking for new challenges and strong partners. Contact us for a non-binding consultation on your project."
|
description="We are always looking for new challenges and strong partners. Contact us for a non-binding consultation on your project."
|
||||||
ctaLabel="Contact Us Now"
|
ctaLabel="Contact Us Now"
|
||||||
ctaHref="/en/kontakt"
|
ctaHref="/en/contact"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ layout: "fullBleed"
|
|||||||
backgroundImage={{ url: '/assets/photos/DSC08653.JPG' }}
|
backgroundImage={{ url: '/assets/photos/DSC08653.JPG' }}
|
||||||
alignment="center"
|
alignment="center"
|
||||||
ctaLabel="Request a project"
|
ctaLabel="Request a project"
|
||||||
ctaHref="/en/kontakt"
|
ctaHref="/en/contact"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div className="container px-4 max-w-7xl mx-auto py-16">
|
<div className="container px-4 max-w-7xl mx-auto py-16">
|
||||||
@@ -77,5 +77,5 @@ layout: "fullBleed"
|
|||||||
title="Are you facing high documentation requirements?"
|
title="Are you facing high documentation requirements?"
|
||||||
text="Contact us for professional surveying and GIS services."
|
text="Contact us for professional surveying and GIS services."
|
||||||
buttonText="Contact us"
|
buttonText="Contact us"
|
||||||
buttonLink="/en/kontakt"
|
buttonLink="/en/contact"
|
||||||
/>
|
/>
|
||||||
|
|||||||
26
tests/mdx-links.test.ts
Normal file
26
tests/mdx-links.test.ts
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
import { describe, it, expect } from 'vitest';
|
||||||
|
import fs from 'fs';
|
||||||
|
import path from 'path';
|
||||||
|
|
||||||
|
describe('English MDX Content Links', () => {
|
||||||
|
it('should not contain German slug routes like /en/kontakt or /en/karriere', () => {
|
||||||
|
const enContentDir = path.join(process.cwd(), 'content', 'en');
|
||||||
|
const files = fs.readdirSync(enContentDir).filter(f => f.endsWith('.mdx'));
|
||||||
|
|
||||||
|
const forbiddenLinks = ['/en/kontakt', '/en/karriere'];
|
||||||
|
const infractions: string[] = [];
|
||||||
|
|
||||||
|
files.forEach(file => {
|
||||||
|
const filePath = path.join(enContentDir, file);
|
||||||
|
const content = fs.readFileSync(filePath, 'utf8');
|
||||||
|
|
||||||
|
forbiddenLinks.forEach(link => {
|
||||||
|
if (content.includes(link)) {
|
||||||
|
infractions.push(`${file} contains forbidden link "${link}"`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(infractions).toEqual([]);
|
||||||
|
});
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user