-
Notifications
You must be signed in to change notification settings - Fork 0
Support german language #33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
12 commits
Select commit
Hold shift + click to select a range
203565c
feat: Implement bilingual site support (EN/DE) with dynamic routing a…
Colin23 68aa42f
refactor: centralize "portfolio home route" check logic
Colin23 3fe8882
feat: add locale-based content loading for CV page
Colin23 ddfba8b
refactor: improve localization and CV content handling
Colin23 4b586a9
refactor: improve locale-agnostic path handling and reorganize portfo…
Colin23 5a25276
feat: add `heroGreeting` localization key for dynamic language suppor…
Colin23 4fa28f8
refactor: centralize `FAMILIARITY_TITLES_BY_LOCALE` for reuse across …
Colin23 3f9790a
refactor: extract `resolveLocaleFromPath` function for improved reada…
Colin23 08aa838
feat: enhance localization and accessibility across components
Colin23 ceff27e
feat: refine certificate card props and improve locale handling
Colin23 fa9d1e5
feat: improve site localization and normalize familiarity titles
Colin23 1106ea5
feat: enhance locale handling and improve certificate parsing
Colin23 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,84 @@ | ||
| import fs from "node:fs"; | ||
| import path from "node:path"; | ||
|
|
||
| const BASE = path.resolve("src/lib/content"); | ||
| const locales = ["en", "de"]; | ||
| const requiredFiles = [ | ||
| "profile.md", | ||
| "contact.md", | ||
| "skills.md", | ||
| "experience.md", | ||
| "education.md", | ||
| "languages.md", | ||
| "projects.md", | ||
| "certificates.md" | ||
| ]; | ||
|
|
||
| /** | ||
| * Lists all Markdown files in a given locale directory. | ||
| * @param {string} locale - The locale directory. | ||
| * @returns {string[]} List of Markdown file names. | ||
| */ | ||
| function listMarkdownFiles(locale) { | ||
| const dir = path.join(BASE, locale); | ||
| if (!fs.existsSync(dir)) { | ||
| throw new Error(`Missing locale directory: ${dir}`); | ||
| } | ||
|
|
||
| return fs | ||
| .readdirSync(dir, { withFileTypes: true }) | ||
| .filter(entry => entry.isFile() && entry.name.endsWith(".md")) | ||
| .map(entry => entry.name) | ||
| .sort(); | ||
| } | ||
|
|
||
| /** | ||
| * Asserts that all required files exist in a given locale. | ||
| * @param {string} locale - The locale directory. | ||
| * @param {string[]} files - List of Markdown file names. | ||
| */ | ||
| function assertRequiredFilesExist(locale, files) { | ||
| const missing = requiredFiles.filter(file => !files.includes(file)); | ||
| if (missing.length > 0) { | ||
| throw new Error(`Locale "${locale}" is missing required files: ${missing.join(", ")}`); | ||
| } | ||
| } | ||
|
|
||
| /** | ||
| * Main function to run the i18n consistency check. | ||
| */ | ||
| function main() { | ||
| const localeFiles = Object.fromEntries(locales.map(locale => [locale, listMarkdownFiles(locale)])); | ||
|
|
||
| for (const locale of locales) { | ||
| assertRequiredFilesExist(locale, localeFiles[locale]); | ||
| } | ||
|
|
||
| const [first, ...rest] = locales; | ||
| for (const locale of rest) { | ||
| const missingInLocale = localeFiles[first].filter(file => !localeFiles[locale].includes(file)); | ||
| const extraInLocale = localeFiles[locale].filter(file => !localeFiles[first].includes(file)); | ||
|
|
||
| if (missingInLocale.length > 0 || extraInLocale.length > 0) { | ||
| throw new Error( | ||
| [ | ||
| `File mismatch between "${first}" and "${locale}":`, | ||
| missingInLocale.length ? `- Missing in ${locale}: ${missingInLocale.join(", ")}` : "", | ||
| extraInLocale.length ? `- Extra in ${locale}: ${extraInLocale.join(", ")}` : "" | ||
| ] | ||
| .filter(Boolean) | ||
| .join("\n") | ||
| ); | ||
| } | ||
| } | ||
|
|
||
| console.log("✅ i18n content consistency check passed"); | ||
| } | ||
|
|
||
| try { | ||
| main(); | ||
| } catch (error) { | ||
| console.error("❌ i18n consistency check failed"); | ||
| console.error(error instanceof Error ? error.message : error); | ||
| process.exit(1); | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| # Zertifikate | ||
|
|
||
| ## Microsoft zertifiziert: Azure Grundlagen | ||
|
|
||
| _Microsoft, 2024_ | ||
|
|
||
| - [Zum Zertifikat](https://learn.microsoft.com/de-de/users/colinmoerbe/credentials/3f640b77279204a5) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| # Kontakt | ||
|
|
||
| - **Name:** Colin Mörbe | ||
| - **Role:** Backend Software Engineer | ||
| - **Location:** 72654 Neckartenzlingen | ||
| - **Phone:** +49 1577 5842277 | ||
| - **Email:** colin@familie-moerbe.de | ||
| - **LinkedIn:** [linkedin.com/in/colin-moerbe](https://linkedin.com/in/colin-moerbe) | ||
| - **GitHub:** [github.com/Colin23](https://github.com/Colin23) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| # Ausbildung | ||
|
|
||
| ## 03/2020 – 08/2023 | ||
|
|
||
| ### Hochschule Reutlingen | ||
|
|
||
| B.Sc. Medien- und Kommunikationsinformatik (Note: 2,0) | ||
|
|
||
| ## 10/2018 – 02/2020 | ||
|
|
||
| ### Universität Stuttgart | ||
|
|
||
| B.Sc. Softwaretechnik |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,38 @@ | ||
| # Berufserfahrung | ||
|
|
||
| ## 09/2023 – Heute | ||
|
|
||
| ### SSC-Services GmbH — Böblingen | ||
|
|
||
| **Software Engineer** | ||
|
|
||
| - Entwicklung und kontinuierliche Verbesserung einer containerisierten Microservice-Landschaft (~15–20 Services) in | ||
| einer unternehmensweiten Systemumgebung. | ||
| - Analyse, Design und technische Umsetzung von Geschäftsanforderungen in enger Zusammenarbeit mit dem Kunden. | ||
| - Entwicklung von ereignis- und workflowbasierten Backend-Services für die Prozessautomatisierung. | ||
| - Implementierung von hochleistungsfähigen Delta-Load-Migrationsprozessen (mehr als drei Millionen Datensätze) unter | ||
| Verwendung von Parallelisierung. | ||
| - Entwicklung von Kafka-basierten Integrationsschnittstellen mit hohem Durchsatz. | ||
| - Entwicklung, Containerisierung und Betrieb von Backend-Services auf Kubernetes (Azure) sowie Aufbau einer | ||
| AWS-Infrastruktur mit CDK (Java). | ||
| - Verbesserung der CI/CD-Pipelines und nachhaltige Reduzierung wiederkehrender Produktionsprobleme durch | ||
| Refaktorisierung und verbesserte Protokollierungs- und Überwachungsstrategien. | ||
| - Leitung einer unternehmensweiten Lerninitiative, einschließlich Design und Entwicklung eines internen Tools zur | ||
| Abbildung von Lernpfaden und Kompetenzen. | ||
|
|
||
| ## 11/2022 – 06/2023 | ||
|
|
||
| ### envite consulting GmbH — Stuttgart | ||
|
|
||
| **Werkstudent DevOps Engineer** | ||
|
|
||
| - Implementierung von CI/CD-Pipelines. | ||
| - Entwicklung einer Methodik zur Schätzung des Energieverbrauchs von Build- und Deployment-Pipelines. | ||
|
|
||
| ## 03/2022 – 08/2022 | ||
|
|
||
| ### pronexon GmbH — Reutlingen | ||
|
|
||
| **Praktikum, System Integration** | ||
|
|
||
| - Entwicklung und Implementierung von Server-, Speicher- und Backup-Lösungen. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| # Sprachen | ||
|
|
||
| - Deutsch (Muttersprache) | ||
| - Englisch (verhandlungssicher) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| # Profil | ||
|
|
||
| Backend-Softwareentwickler mit Schwerpunkt auf modularen, ereignisbasierten Systemen in Cloud-Umgebungen. Erfahrung in | ||
| der Konzeption und Entwicklung skalierbarer Backend-Services sowie im Betrieb containerisierter Anwendungen auf | ||
| Kubernetes (Azure) mit einem starken Fokus auf Architektur, Automatisierung und Systemzuverlässigkeit. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| # Projekte | ||
|
|
||
| ## Persönliches Portfolio | ||
|
|
||
| _SvelteKit, Tailwind CSS, Bun, mdsvex_ | ||
|
|
||
| - Eine hochperformante, SEO-freundliche Portfolio-Website. | ||
| - Automatisierte PDF-Generierung aus Markdown-Inhalten. | ||
| - Statisches Hosting auf Netlify. | ||
|
|
||
| [GitHub](https://github.com/Colin23/portfolio) | ||
| [Live Demo](https://colinmoerbe.com) |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.