you're looking to implement localized routing in a Next.js application, next-i18n-router from the next-intl ecosystem is a great choice. Here's a basic example of how you can set it up using a routing.ts configuration.
Check my example
// routing.ts
import { defineRouting } from "next-intl/routing";
export const routing = defineRouting({
locales: ['ro', 'en'],
defaultLocale: 'ro',
localePrefix: 'as-needed', // other options: 'always', 'never'
pathnames: {
'/': '/',
'/blog': '/blog',
'/contact': '/contact',
// Services
'/servicii/creare-website': {
ro: '/servicii/creare-website',
en: '/services/website-creation'
},
'/servicii/dezvoltare-aplicatii': {
ro: '/servicii/dezvoltare-aplicatii',
en: '/services/mobile-app-development'
},
'/servicii/design-si-prototipare': {
ro: '/servicii/design-si-prototipare',
en: '/services/design-and-prototyping'
},
// Marketing subpages
'/servicii/seo': {
ro: '/servicii/seo',
en: '/services/seo'
},
'/servicii/copywriting': {
ro: '/servicii/copywriting',
en: '/services/copywriting'
},
'/servicii/social-media-marketing': {
ro: '/servicii/social-media-marketing',
en: '/services/social-media-marketing'
},
'/servicii/branding': {
ro: '/servicii/branding',
en: '/services/branding'
},
'/servicii/creare-logo': {
ro: '/servicii/creare-logo',
en: '/services/logo-creation'
},
// Portfolio
'/portfolio': {
ro: '/portofoliu',
en: '/portfolio'
},
'/portfolio/audit-seo-automatizat': {
ro: '/portofoliu/audit-seo-automatizat',
en: '/portfolio/seo-audit-tool'
},
'/portfolio/[slug]': {
ro: '/portofoliu/[slug]',
en: '/portfolio/[slug]'
},
// Author pages
'/author/[slug]': {
ro: '/autor/[slug]',
en: '/author/[slug]'
}
}
});