Files
Portfolio/src/i18n/config.ts
T
damjan_savicandClaude Opus 4.6 62ae5140b9 Tailwind v4 migration, massive SEO optimization, and fixes
- Migrate to Tailwind CSS v4 with @theme, @layer, @plugin syntax
- Upgrade to Next.js 16.1, React 19.2, TypeScript 5.9.3
- Add 8 technology landing pages (Next.js, React, TypeScript, Tailwind CSS, Claude AI, Python, n8n, KI-Agenten)
- Expand SEO keywords across all locales (de/en/sr) for home, layout, cities, services
- Add tech-specific keywords to all 22 city pages
- Add FAQ schema + seoKeywords to service detail pages
- Add CollectionPage JSON-LD to blog listing
- Fix city page: dynamic region, BASE_URL canonicals, x-default hreflang
- Rewrite terms page with full German AGB, English and Serbian translations
- Remove dead crypto import and unused CSRF middleware (Edge Runtime fix)
- Remove crawlDelay from robots.ts
- Update sitemap with technology pages (~198 indexed URLs)
- Remove deprecated tailwind.config.js

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 20:40:19 +01:00

130 lines
2.8 KiB
TypeScript

export const locales = ['de', 'en', 'sr'] as const;
export const defaultLocale = 'de' as const;
export type Locale = (typeof locales)[number];
export const localeNames: Record<Locale, string> = {
de: 'Deutsch',
en: 'English',
sr: 'Srpski',
};
export const localeFlags: Record<Locale, string> = {
de: '🇩🇪',
en: '🇬🇧',
sr: '🇷🇸',
};
// Extended locale metadata for SEO
export const localeMetadata: Record<Locale, {
language: string;
region: string;
hreflang: string;
ogLocale: string;
script: string;
territory: string;
currency: string;
}> = {
de: {
language: 'de',
region: 'DE',
hreflang: 'de-DE',
ogLocale: 'de_DE',
script: 'Latn',
territory: 'Germany',
currency: 'EUR',
},
en: {
language: 'en',
region: 'US',
hreflang: 'en-US',
ogLocale: 'en_US',
script: 'Latn',
territory: 'United States',
currency: 'USD',
},
sr: {
language: 'sr',
region: 'RS',
hreflang: 'sr-RS',
ogLocale: 'sr_RS',
script: 'Latn', // Using Latin script for web compatibility (Cyrillic: Cyrl)
territory: 'Serbia',
currency: 'RSD',
},
};
// SEO keywords per locale
export const seoKeywords: Record<Locale, string[]> = {
de: [
'Fullstack Developer',
'KI Entwickler',
'Künstliche Intelligenz',
'Claude AI Entwickler',
'Next.js Entwickler',
'React Entwickler',
'TypeScript Entwickler',
'Tailwind CSS',
'AI Agentenentwicklung',
'KI-Agenten Entwicklung',
'Prozessautomatisierung',
'Voice AI',
'n8n Automatisierung',
'Python Entwickler',
'Köln',
'Deutschland',
],
en: [
'Fullstack Developer',
'AI Developer',
'Claude AI Developer',
'Claude AI Integration',
'Next.js Developer',
'React Developer',
'TypeScript Developer',
'Tailwind CSS Developer',
'Artificial Intelligence',
'AI Agent Developer',
'AI Agent Development',
'Process Automation Expert',
'Voice AI Developer',
'n8n Automation',
'Python Developer',
'SaaS Development',
'Remote Developer Europe',
'Remote Developer USA',
'Remote Developer UK',
'Freelance AI Developer',
'London',
'New York',
'Los Angeles',
'Miami',
'San Francisco',
],
sr: [
'Fullstack Programer',
'AI Programer Srbija',
'AI Developer Beograd',
'Claude AI Developer',
'Next.js Programer',
'React Programer',
'TypeScript Programer',
'Veštačka Inteligencija',
'Razvoj AI Agenata',
'Automatizacija Procesa',
'Voice AI Srbija',
'n8n Automatizacija',
'Python Programer Srbija',
'React Programer Beograd',
'Beograd',
'Novi Sad',
'Niš',
'Kragujevac',
'Subotica',
'Srbija',
'Softverski Razvoj Srbija',
'Remote Developer Dijaspora',
'Freelance Programer Srbija',
],
};