Files
Portfolio/src/i18n/locales-old/sr/blog/index.ts
T
damjan_savicandClaude Opus 4.5 b1ec7b4d61 Migrate from Vite to Next.js 15 with SSR
- Replace Vite + React Router with Next.js 15 App Router
- Implement i18n with next-intl (URL-based: /de, /en, /sr)
- Add SSR/SSG for all pages (48 static pages generated)
- Setup Supabase SSR client for auth
- Migrate all pages: Home, About, Portfolio, Blog, Contact, Login, Dashboard, Imprint, Privacy, Terms
- Add Docker support with standalone output
- Replace i18next with next-intl JSON translations
- Use next/image for optimized images

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 01:00:33 +01:00

176 lines
8.1 KiB
TypeScript

// src/i18n/locales/sr/blog/index.ts
export const blog = {
meta: {
title: 'Blog - JTL Integracija i Digitalna Rešenja',
description: 'Uvidi i najbolje prakse o JTL-WaWi, e-trgovini i digitalnoj transformaciji',
header: {
title: 'Uvidi i Najbolje Prakse',
subtitle: 'Uvidi i najbolje prakse o JTL-WaWi, e-trgovini i digitalnoj transformaciji'
}
},
posts: {
'erp-integration-breuninger': {
title: 'ApparelMagic i TradeByte: Analiza složenih integracija',
date: '2024-02-09',
excerpt: 'Detaljna analiza e-trgovinske integracije između Apparel Magic i Breuninger preko TradeByte',
category: 'Sistemska integracija',
tags: ['ERP', 'Apparel Magic', 'TradeByte', 'API Integration', 'Python', 'MariaDB'],
coverImage: '/images/posts/erp-integration-breuninger/cover.jpg',
content: {
intro: {
title: 'Apparel Magic susreće Breuninger: Tehnička analiza TradeByte integracije',
description: 'Integracija e-trgovinskih sistema sa uspostavljenim tržištima predstavlja poseban izazov za kompanije. U ovom članku delim svoje iskustvo iz složenog integracionog projekta između Apparel Magic kao ERP sistema i Breuninger platforme preko TradeByte.'
},
background: {
title: 'Pozadina projekta',
systems: {
erp: 'Apparel Magic kao ERP sistem za podatke o proizvodima i upravljanje zalihama',
middleware: 'TradeByte kao middleware za Breuninger platformu'
},
challenges: {
sync: 'Dvosmerna sinhronizacija porudžbina',
customers: 'Automatsko kreiranje kupaca',
delivery: 'Upravljanje otpremnicama',
inventory: 'Upravljanje zalihama u realnom vremenu'
}
},
tech: {
title: 'Tehnička arhitektura',
components: {
title: 'Centralne komponente'
},
database: {
title: 'Middleware baza podataka',
description: 'MariaDB baza podataka služi kao centralno skladište podataka za integraciju:'
}
},
api: {
title: 'API integracije',
apparel_magic: {
title: 'Apparel Magic API',
description: 'REST API kompanije Apparel Magic se koristi za kreiranje kupaca i upravljanje zalihama:'
},
tradebyte: {
title: 'TradeByte integracija',
description: 'TradeByte API koristi kombinaciju REST i XML:'
}
},
order_process: {
title: 'Proces porudžbine',
steps: {
fetch: 'Redovno preuzimanje novih porudžbina sa TradeByte',
customers: 'Automatsko kreiranje kupaca u Apparel Magic',
process: 'Obrada porudžbina i ažuriranje statusa',
delivery: 'Generisanje i čuvanje otpremnica'
},
delivery_notes: {
title: 'Upravljanje otpremnicama'
}
},
challenges: {
title: 'Izazovi i rešenja',
status: {
title: '1. Upravljanje statusom',
description: 'Poseban izazov je bio upravljanje statusima porudžbina:'
},
error_handling: {
title: '2. Rukovanje greškama i nadzor',
description: 'Robusno rukovanje greškama bilo je ključno za rad u produkciji:'
}
},
best_practices: {
title: 'Najbolje prakse',
api: {
title: '1. API komunikacija',
items: {
retry: 'Implementacija mehanizama ponovnog pokušaja',
errors: 'Pažljivo rukovanje greškama',
logging: 'Detaljno logovanje svih komunikacija'
}
},
data: {
title: '2. Upravljanje podacima',
items: {
storage: 'Centralno čuvanje podataka u MariaDB',
transactions: 'Sigurnost transakcija pri kritičnim operacijama',
validation: 'Redovna validacija podataka'
}
},
automation: {
title: '3. Automatizacija procesa',
items: {
customers: 'Automatsko kreiranje kupaca',
status: 'Automatsko ažuriranje statusa',
delivery: 'Sistematsko upravljanje otpremnicama'
}
}
},
lessons: {
title: 'Naučene lekcije',
api: {
title: '1. Dizajn API-ja',
items: {
docs: 'Temeljna API dokumentacija je neophodna',
auth: 'Razumevanje različitih metoda autentifikacije',
limits: 'Uzimanje u obzir ograničenja brzine'
}
},
validation: {
title: '2. Validacija podataka',
items: {
rules: 'Implementacija strogih pravila validacije',
edge_cases: 'Pažljivo rukovanje specijalnim slučajevima',
cleanup: 'Automatsko čišćenje podataka'
}
},
optimization: {
title: '3. Optimizacija procesa',
items: {
automation: 'Kontinuirano unapređenje automatizacije',
performance: 'Redovni pregledi performansi',
monitoring: 'Proaktivni nadzor'
}
}
},
conclusion: {
title: 'Zaključak',
requirements: {
understanding: 'Duboko razumevanje oba sistema',
implementation: 'Pažljiva implementacija API komunikacije',
error_handling: 'Robusno rukovanje greškama',
monitoring: 'Kontinuirani nadzor'
},
results: 'Razvijeno rešenje uspešno obrađuje porudžbine i omogućava besprekornu integraciju između sistema. Posebno se automatizovano kreiranje kupaca i upravljanje otpremnicama pokazali kao povećavači efikasnosti.'
}
}
},
},
ui: {
readMore: 'Pročitaj više',
loading: {
posts: 'Učitavaju se blog postovi...',
post: 'Učitava se blog post...'
},
errors: {
posts: 'Greška pri učitavanju blog postova',
post: 'Traženi blog post ne postoji ili je premješten.'
},
backToBlog: 'Nazad na blog',
publishedOn: 'Objavljeno dana',
category: 'Kategorija',
tags: 'Oznake',
notFound: {
title: 'Post nije pronađen',
message: 'Traženi blog post ne postoji ili je premješten.'
}
},
categories: {
'Integration': 'Integracija',
'Entwicklung': 'Razvoj',
'Automatisierung': 'Automatizacija'
}
} as const;
export type BlogConfig = typeof blog;
export type BlogPost = BlogConfig['posts'][keyof BlogConfig['posts']];