feat: i18n fixes, blog rename, footer cleanup, and contact info update

- Rename /news route to /blog across all pages, links, and sitemap
- Fix hardcoded English text in Experiences, QuoteSection, and Footer
  by wiring all content through the TR/EN dictionaries
- Clean up Footer: remove non-existent page links, add contact column
- Update contact info: new phone numbers, bilgi@ email, No:71 address,
  Instagram @ayrisapart link
- Add suppressHydrationWarning to <body> to silence browser-extension
  attribute mismatch errors
- Add sizes prop to all fill-mode Next.js Image components

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-02 18:05:30 +03:00
co-authored by Claude Sonnet 4.6
parent 433252a05d
commit 40b4434a7b
34 changed files with 2864 additions and 509 deletions
+22 -22
View File
@@ -8,48 +8,48 @@ import Image from 'next/image'
const heroSlots = [
{
srcs: [
'https://images.unsplash.com/photo-1582719478250-c89cae4dc85b?q=80&w=2070&auto=format&fit=crop',
'https://images.unsplash.com/photo-1566665797739-1674de7a421a?q=80&w=2070&auto=format&fit=crop',
'https://images.unsplash.com/photo-1590490360182-c33d57733427?q=80&w=2070&auto=format&fit=crop',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641696/ayrisapart/hero/1_cxfvrw.jpg',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641696/ayrisapart/hero/9_vym2pc.jpg',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641696/ayrisapart/hero/8_kjih1z.jpg',
],
rotate: -12,
top: '15%',
rotate: 15,
top: '5%',
left: '22%',
size: 'w-48 h-64 md:w-64 md:h-80',
delay: 0.2
},
{
srcs: [
'https://images.unsplash.com/photo-1544124499-58912cbddaad?q=80&w=2127&auto=format&fit=crop',
'https://images.unsplash.com/photo-1520250497591-112f2f40a3f4?q=80&w=2127&auto=format&fit=crop',
'https://images.unsplash.com/photo-1571896349842-33c89424de2d?q=80&w=2127&auto=format&fit=crop',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641695/ayrisapart/hero/7_yuouc0.jpg',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641695/ayrisapart/hero/4_eeyoge.jpg',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641695/ayrisapart/hero/3_tolqzo.jpg',
],
rotate: 10,
top: '10%',
rotate: -15,
top: '8%',
left: '58%',
size: 'w-52 h-64 md:w-72 md:h-80',
delay: 0.4
},
{
srcs: [
'https://images.unsplash.com/photo-1507525428034-b723cf961d3e?q=80&w=2073&auto=format&fit=crop',
'https://images.unsplash.com/photo-1519046904884-53103b34b206?q=80&w=2073&auto=format&fit=crop',
'https://images.unsplash.com/photo-1506929199020-feee17651703?q=80&w=2073&auto=format&fit=crop',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641695/ayrisapart/hero/2_dfrmwi.jpg',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641695/ayrisapart/hero/5_mmcnjw.jpg',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641696/ayrisapart/hero/6_x44c4w.jpg',
],
rotate: -8,
top: '65%',
top: '60%',
left: '18%',
size: 'w-48 h-60 md:w-64 md:h-72',
delay: 0.6
},
{
srcs: [
'https://images.unsplash.com/photo-1536935338218-422119932906?q=80&w=1964&auto=format&fit=crop',
'https://images.unsplash.com/photo-1618773928121-c32242e63f39?q=80&w=1964&auto=format&fit=crop',
'https://images.unsplash.com/photo-1560185007-cde436f6a4d0?q=80&w=1964&auto=format&fit=crop',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641695/ayrisapart/hero/4_eeyoge.jpg',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641695/ayrisapart/hero/5_mmcnjw.jpg',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641696/ayrisapart/hero/9_vym2pc.jpg',
],
rotate: 15,
top: '72%',
rotate: -8,
top: '62%',
left: '62%',
size: 'w-52 h-64 md:w-72 md:h-88',
delay: 0.8
@@ -112,7 +112,7 @@ function FloatingSlot({ slot, idx }: { slot: typeof heroSlots[0], idx: number })
export default function Hero({ lang, dict }: { lang: string, dict: any }) {
return (
<section className="sticky top-0 z-[20] h-screen w-full bg-[#FAF7F0] flex items-center justify-center overflow-hidden">
<section className="sticky top-30 z-[20] h-screen w-full bg-[#FAF7F0] flex items-center justify-center overflow-hidden">
{/* BACKGROUND TEXT */}
<motion.div
initial={{ opacity: 0, scale: 0.95 }}
@@ -120,7 +120,7 @@ export default function Hero({ lang, dict }: { lang: string, dict: any }) {
transition={{ duration: 1.5, ease: [0.33, 1, 0.68, 1] }}
className="relative z-10 w-full text-center px-4"
>
<h1 className="text-[14vw] leading-[0.8] font-serif tracking-[-0.04em] text-[#1A1A1A] uppercase select-none drop-shadow-sm">
<h1 className="text-[18vw] leading-[0.8] font-serif tracking-[-0.04em] text-[#1F1C19] uppercase select-none drop-shadow-sm">
{dict.hero.title}
</h1>
</motion.div>
@@ -131,7 +131,7 @@ export default function Hero({ lang, dict }: { lang: string, dict: any }) {
))}
{/* BOTTOM CONTENT */}
<div className="absolute bottom-12 right-12 z-30 max-w-sm text-right flex flex-col items-end space-y-6">
<div className="absolute bottom-36 right-12 z-30 max-w-sm text-right flex flex-col items-end space-y-6">
<motion.p
initial={{ opacity: 0, x: 20 }}
animate={{ opacity: 1, x: 0 }}