+
{t('skills.description')}
+
{t('workflow.description')}
+
{post.excerpt}
@@ -1369,7 +1369,7 @@ export default async function BlogPostPage({ params }: Props) { {post.tags?.map((tag, index) => ( {tag} @@ -1378,7 +1378,7 @@ export default async function BlogPostPage({ params }: Props) { {/* Cover Image */} -+
{post.excerpt}
@@ -181,17 +181,17 @@ function BlogPostCard({ post, locale }: { post: BlogPost; locale: string }) { {post.tags?.slice(0, 3).map((tag, index) => ( {tag} ))} {post.tags && post.tags.length > 3 && ( - + +{post.tags.length - 3} more )} @@ -199,11 +199,11 @@ function BlogPostCard({ post, locale }: { post: BlogPost; locale: string }) { {/* Link Icon */}+
{t('meta.header.subtitle')}
{/* Post count */} -+
{t('ui.pagination.showing', { start: startIndex + 1, end: Math.min(endIndex, allPosts.length), @@ -424,7 +424,7 @@ export default async function BlogPage({ params, searchParams }: Props) { {/* Empty State */} {posts.length === 0 && (
{t('ui.errors.posts')}
+{t('ui.errors.posts')}
{line}
))} @@ -244,25 +244,25 @@ export default async function ImprintPage({ params }: Props) { {/* Liability */}{section.content}
+{section.content}
{c.copyright.content}
+{c.copyright.content}
+
{c.privacy.content}{' '} {c.privacy.link} @@ -282,15 +282,15 @@ export default async function ImprintPage({ params }: Props) {
{c.technical.design}
-{c.technical.tech}
+{c.technical.design}
+{c.technical.tech}
+
© {new Date().getFullYear()} Damjan Savić. {c.copyrightNotice}
+
{service.description[locale as Locale]}
@@ -195,7 +195,7 @@ export default async function ServicePage({ params }: Props) { {service.technologies.map((tech) => ( {tech} @@ -205,19 +205,19 @@ export default async function ServicePage({ params }: Props) { {/* Features Section */} -+
{relatedService.shortDescription[locale as Locale]}
@@ -282,7 +282,7 @@ export default async function ServicePage({ params }: Props) { {/* FAQ Section */}{item.answer}
+{item.answer}
+
{locale === 'de' ? 'Lassen Sie uns besprechen, wie ich Ihnen helfen kann.' : locale === 'sr' @@ -324,7 +324,7 @@ export default async function ServicePage({ params }: Props) {
{locale === 'de' ? 'Projekt besprechen' : locale === 'sr' ? 'Razgovarajte o projektu' : 'Discuss project'}+
{pageSubtitle}
+
{service.shortDescription[locale as Locale]}
+
{service.shortDescription[locale as Locale]}
+
{service.shortDescription[locale as Locale]}
-
+
+
{tech.name}
@@ -418,21 +418,21 @@ export default async function ServicesPage({ params }: Props) {
{/* Cities Section */}
- {citiesSubtitle}
+{citiesSubtitle}
{item.answer}
+{item.answer}
+
{locale === 'de' ? 'Lassen Sie uns besprechen, wie ich Ihnen helfen kann.' : locale === 'sr' @@ -489,7 +489,7 @@ export default async function ServicesPage({ params }: Props) {
{locale === 'de' ? 'Kontakt aufnehmen' : locale === 'sr' ? 'Kontaktirajte me' : 'Get in touch'}+
{city.description[locale as Locale]}
@@ -214,7 +214,7 @@ export default async function CityPage({ params }: Props) { {city.keywords[locale as Locale]?.map((keyword) => ( {keyword} @@ -224,9 +224,9 @@ export default async function CityPage({ params }: Props) { {/* Services Section */} -+
{service.shortDescription[locale as Locale]}
+
{locale === 'de'
? `Neben ${city.name.de} arbeite ich auch mit Unternehmen in:`
: locale === 'sr'
@@ -331,7 +331,7 @@ export default async function CityPage({ params }: Props) {
{city.nearbyAreas.map((area) => (
{area}
@@ -343,7 +343,7 @@ export default async function CityPage({ params }: Props) {
{/* Other Cities */}
{item.answer} {item.answer}
+
{locale === 'de'
? 'Lassen Sie uns besprechen, wie ich Ihnen helfen kann.'
: locale === 'sr'
@@ -408,7 +408,7 @@ export default async function CityPage({ params }: Props) {
+
{tech.description[locale as Locale]}
+
{service.shortDescription[locale as Locale]}
{item.answer} {item.answer}
+
{locale === 'de'
? 'Lassen Sie uns besprechen, wie ich Ihnen helfen kann.'
: locale === 'sr'
@@ -350,7 +350,7 @@ export default async function TechnologyPage({ params }: Props) {
+
{project.meta.description}
+
{project.content.intro}
{project.content.challenge.description} {project.content.challenge.description} {project.content.solution.description} {project.content.solution.description} {project.content.technical.description} {project.content.technical.description} {project.content.implementation.description} {project.content.implementation.description} {project.content.results.description} {project.content.results.description}
+
{project.content.conclusion}
+
{t('sections.subtitle')}
{c.lastUpdated} {c.lastUpdated} {c.intro.content} {c.intro.content} {line} {section.content} {section.content} {c.cookies.intro} {c.cookies.intro} {c.cookies.management} {c.cookies.management}
+
{locale === 'de' ? 'Weitere Standorte' : locale === 'sr' ? 'Ostale lokacije' : 'Other Locations'}
+
{locale === 'de'
? `Häufige Fragen für ${city.name.de}`
: locale === 'sr'
@@ -377,12 +377,12 @@ export default async function CityPage({ params }: Props) {
{faqItems.map((item, index) => (
+
{item.question}
-
+
{locale === 'de'
? `Projekt in ${city.name.de} starten?`
: locale === 'sr'
? `Započnite projekat u ${city.name.sr}?`
: `Start a project in ${city.name.en}?`}
-
+
+
{tech.title[locale as Locale]}
-
+
{locale === 'de' ? `${tech.name} – Was ich anbiete` : locale === 'sr' ? `${tech.name} – Šta nudim` : `${tech.name} – What I offer`}
+
{locale === 'de' ? 'Anwendungsbeispiele' : locale === 'sr' ? 'Primeri primene' : 'Use Cases'}
+
{locale === 'de' ? 'Passende Leistungen' : locale === 'sr' ? 'Odgovarajuće usluge' : 'Related Services'}
+
{service.name[locale as Locale]}
-
+
{locale === 'de' ? 'Weitere Technologien' : locale === 'sr' ? 'Ostale Tehnologije' : 'Other Technologies'}
-
+
+
{otherTech.name}
@@ -287,9 +287,9 @@ export default async function TechnologyPage({ params }: Props) {
{/* Cities Cross-Link */}
-
+
{locale === 'de' ? `${tech.name} Entwickler in Ihrer Stadt` : locale === 'sr' ? `${tech.name} Developer u vašem gradu` : `${tech.name} Developer in your city`}
+
{locale === 'de' ? `Häufige Fragen zu ${tech.name}` : locale === 'sr' ? `Česta pitanja o ${tech.name}` : `FAQ about ${tech.name}`}
+
{item.question}
-
+
{locale === 'de'
? `${tech.name}-Projekt starten?`
: locale === 'sr'
? `Započnite ${tech.name} projekat?`
: `Start a ${tech.name} project?`}
-
+
{project.meta.title}
- {project.content.challenge.title}
- {project.content.challenge.title}
+
{project.content.challenge.points.map((point, index) => (
-
{project.content.solution.title}
- {project.content.solution.title}
+
{project.content.solution.points.map((point, index) => (
-
{project.content.technical.title}
- {project.content.technical.title}
+
{project.content.technical.points.map((point, index) => (
-
)}
{project.content.technical.code && (
-
+
)}
@@ -588,13 +588,13 @@ export default async function ProjectPage({ params }: Props) {
{/* Implementation Section */}
{project.content.implementation && (
{project.content.technical.code}
{project.content.implementation.title}
- {project.content.implementation.title}
+
{project.content.implementation.points.map((point, index) => (
-
{project.content.results.title}
- {project.content.results.title}
+
{project.content.results.points.map((point, index) => (
-
{t('sections.title')}
- {c.title}
- {c.title}
+ {c.intro.title}
- {c.intro.title}
+ {c.controller.title}
- {c.controller.title}
+ {c.dataCollection.title}
+ {c.dataCollection.title}
{c.dataCollection.sections.map((section, index) => (
{section.title}
- {section.title}
+
+
{section.items.map((item, itemIndex) => (
{c.cookies.title}
- {c.cookies.title}
+
-
- Cookie
- {locale === 'de' ? 'Zweck' : locale === 'sr' ? 'Svrha' : 'Purpose'}
- {locale === 'de' ? 'Dauer' : locale === 'sr' ? 'Trajanje' : 'Duration'}
+
+
{c.cookies.types.map((cookie, index) => (
- Cookie
+ {locale === 'de' ? 'Zweck' : locale === 'sr' ? 'Svrha' : 'Purpose'}
+ {locale === 'de' ? 'Dauer' : locale === 'sr' ? 'Trajanje' : 'Duration'}
- {cookie.name}
- {cookie.purpose}
- {cookie.duration}
+
+
))}
{cookie.name}
+ {cookie.purpose}
+ {cookie.duration}
{c.thirdParty.title}
+ {c.thirdParty.title}