Files
Portfolio-Game/frontend/nuxt.config.ts
skycel 262242c7df 🌐 Add full i18n system frontend + API (Story 1.3)
Nuxt i18n with lazy-loaded JSON files, localized routes, hreflang SEO tags,
LanguageSwitcher component. Laravel SetLocale middleware, HasTranslations trait,
API Resources and Controllers for projects/skills with Accept-Language support.

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

61 lines
1.3 KiB
TypeScript

export default defineNuxtConfig({
devtools: { enabled: true },
ssr: true,
future: {
compatibilityVersion: 4,
},
modules: [
'@nuxtjs/i18n',
'@pinia/nuxt',
'@nuxt/image',
'@nuxtjs/sitemap',
],
css: ['~/assets/css/main.css'],
postcss: {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
},
i18n: {
locales: [
{ code: 'fr', iso: 'fr-FR', file: 'fr.json', name: 'Français' },
{ code: 'en', iso: 'en-US', file: 'en.json', name: 'English' },
],
defaultLocale: 'fr',
strategy: 'prefix_except_default',
lazy: true,
langDir: '../i18n/',
detectBrowserLanguage: false,
pages: {
'projets/index': { en: '/projects' },
'projets/[slug]': { en: '/projects/[slug]' },
'competences': { en: '/skills' },
'temoignages': { en: '/testimonials' },
'parcours': { en: '/journey' },
'contact': { en: '/contact' },
'resume': { en: '/resume' },
},
baseUrl: process.env.NUXT_PUBLIC_SITE_URL || 'https://skycel.fr',
},
app: {
pageTransition: { name: 'page', mode: 'out-in' },
},
runtimeConfig: {
public: {
apiUrl: process.env.NUXT_PUBLIC_API_URL || 'http://localhost:8000/api',
apiKey: process.env.NUXT_PUBLIC_API_KEY || '',
},
},
compatibilityDate: '2025-01-01',
})