Skip to content

Chore / Language #7

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 29 commits into from
Jun 23, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
302dcfc
init language feature config
emapeire Aug 20, 2024
8f4e07b
add lang-switcher component
emapeire Aug 20, 2024
57fc158
header and flag config
emapeire Aug 20, 2024
70cdff6
404 page config
emapeire Aug 20, 2024
e1b5f43
add check box in mode toggle theme component
emapeire Aug 20, 2024
33a8d88
fix not-found page's styles
emapeire Aug 20, 2024
40e4f42
hide footer in 404 page
emapeire Aug 20, 2024
9ea51cf
fix i18n config
emapeire Aug 20, 2024
e6ad028
fix styles in 404 page
emapeire Aug 20, 2024
a3dedf4
fix dropdown menu content
emapeire Aug 20, 2024
c3f280a
sync header and footer translation function
emapeire Aug 21, 2024
a5a1935
adapt mode toggle to translation
emapeire Aug 21, 2024
e97d75e
hero translation
emapeire Aug 21, 2024
2285747
settings config
emapeire Aug 21, 2024
7b8d6c6
fix padding in settings
emapeire Aug 21, 2024
43f5934
fix padding in settings
emapeire Aug 21, 2024
f8e07e7
add rotate transitions
emapeire Aug 21, 2024
ac9518d
add contact and form translation
emapeire Aug 26, 2024
7bdbf8f
Add form validation translation
emapeire Aug 26, 2024
3cc9c16
Add translation to career page
emapeire Aug 27, 2024
a454dfd
fix data
emapeire Aug 27, 2024
e5038ee
pagination translations
emapeire Aug 27, 2024
caf9c60
Add projects translations
emapeire Aug 27, 2024
9545e75
add work exp
emapeire Aug 27, 2024
a68b029
add project translations
emapeire Aug 27, 2024
6144bd8
fix json data
emapeire Aug 27, 2024
85320fb
fixing projects items list
emapeire Aug 29, 2024
971126e
feat: update translations
emapeire Jun 23, 2025
c8bf349
refactor: constants
emapeire Jun 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ module.exports = {
'@typescript-eslint/space-before-function-paren': 'off',
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/strict-boolean-expressions': 'off',
'@typescript-eslint/no-misused-promises': 'off',
'react-refresh/only-export-components': 'off',
'react/prop-types': 'off',
'react/jsx-no-target-blank': [2, { allowReferrer: false }]
Expand Down
2 changes: 1 addition & 1 deletion components.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"tsx": true,
"tailwind": {
"config": "tailwind.config.ts",
"css": "src/app/globals.css",
"css": "src/app/styles/globals.css",
"baseColor": "neutral",
"cssVariables": true,
"prefix": ""
Expand Down
6 changes: 5 additions & 1 deletion next.config.mjs
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
import createNextIntlPlugin from 'next-intl/plugin'

const withNextIntl = createNextIntlPlugin()

/** @type {import('next').NextConfig} */
const nextConfig = {
images: {
formats: ['image/avif', 'image/webp']
}
}

export default nextConfig
export default withNextIntl(nextConfig)
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
"geist": "^1.3.1",
"lucide-react": "^0.331.0",
"next": "14.1.0",
"next-intl": "^3.17.4",
"next-themes": "^0.3.0",
"next-view-transitions": "^0.1.1",
"react": "^18.3.1",
Expand All @@ -49,7 +50,7 @@
"eslint-plugin-promise": "^6.6.0",
"eslint-plugin-react": "^7.35.0",
"eslint-plugin-react-hooks": "^4.6.2",
"eslint-plugin-react-refresh": "^0.4.9",
"eslint-plugin-react-refresh": "^0.4.10",
"postcss": "^8.4.41",
"tailwindcss": "^3.4.10",
"typescript": "^5.5.4"
Expand Down
111 changes: 97 additions & 14 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file added public/assets/page-not-found.webm
Binary file not shown.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.
5 changes: 5 additions & 0 deletions src/app/[locale]/[...rest]/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import { notFound } from 'next/navigation'

export default function CatchAllPage() {
notFound()
}
File renamed without changes.
File renamed without changes.
57 changes: 33 additions & 24 deletions src/app/layout.tsx → src/app/[locale]/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,22 +12,29 @@ import { Toaster } from '@/components/ui/sonner'
import { Toaster as ToasterProvider } from '@/components/ui/toaster'
import { Analytics } from '@vercel/analytics/react'
import { SpeedInsights } from '@vercel/speed-insights/next'
import { NextIntlClientProvider } from 'next-intl'
import { getMessages } from 'next-intl/server'
import { type Locale } from '@/i18n'
import { cn } from '@/lib/utils'
import './globals.css'
import '../styles/globals.css'

const metadata: Metadata = {
title: 'Portfolio | Emanuel Peire',
description: 'My personal portfolio: showcasing my work and skills.'
}

export default function RootLayout({
children
export default async function RootLayout({
children,
params: { locale }
}: {
children: React.ReactNode
params: { locale: Locale }
}) {
const messages = await getMessages()

return (
<html
lang='en'
lang={locale}
className={cn(
'min-h-screen bg-background font-sans antialiased overflow-y-scroll',
GeistSans.variable,
Expand All @@ -37,26 +44,28 @@ export default function RootLayout({
>
<Head metadata={metadata} />
<body className='w-full'>
<ViewTransitions>
<ThemeProvider
attribute='class'
defaultTheme='system'
enableSystem
disableTransitionOnChange
>
<TooltipProvider>
<main className='flex flex-col items-center justify-center min-h-screen pt-24 pb-8 px-4'>
<Header />
{children}
<Footer />
</main>
</TooltipProvider>
<Toaster />
<ToasterProvider />
</ThemeProvider>
<Analytics />
<SpeedInsights />
</ViewTransitions>
<NextIntlClientProvider messages={messages}>
<ViewTransitions>
<ThemeProvider
attribute='class'
defaultTheme='system'
enableSystem
disableTransitionOnChange
>
<TooltipProvider>
<main className='flex flex-col items-center justify-center min-h-screen pt-24 pb-8 px-4'>
<Header />
{children}
<Footer />
</main>
</TooltipProvider>
<Toaster />
<ToasterProvider />
</ThemeProvider>
<Analytics />
<SpeedInsights />
</ViewTransitions>
</NextIntlClientProvider>
</body>
</html>
)
Expand Down
Loading