Files
ayrisapart/app/[lang]/layout.tsx
T
ayrisdevandClaude Sonnet 4.6 40b4434a7b 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>
2026-06-02 18:05:30 +03:00

87 lines
2.5 KiB
TypeScript

import type { Metadata } from "next";
import { Oranienbaum, Inter } from "next/font/google";
import "../globals.css";
import Navbar from "@/components/Navbar";
import { getDictionary } from "@/dictionaries/get-dictionary";
import Footer from "@/components/Footer";
const oranienbaum = Oranienbaum({
subsets: ["latin", "latin-ext"],
weight: ["400"],
variable: "--font-oranienbaum",
display: "swap",
});
const inter = Inter({
subsets: ["latin", "latin-ext"],
variable: "--font-inter",
display: "swap",
});
export const metadata: Metadata = {
title: "Ayris - Luxury Accommodation",
description: "Experience the ultimate comfort and luxury at Ayris.",
};
export async function generateStaticParams() {
return [{ lang: 'en' }, { lang: 'tr' }]
}
export default async function RootLayout({
children,
params,
}: {
children: React.ReactNode;
params: Promise<{ lang: string }>;
}) {
const { lang } = await params;
const dict = await getDictionary(lang as 'en' | 'tr');
const jsonLd = {
"@context": "https://schema.org",
"@type": "Hotel",
"name": "Ayris Apart",
"description": dict.hero.desc,
"address": {
"@type": "PostalAddress",
"streetAddress": "Orta İskele Caddesi No:71",
"addressLocality": "Milas",
"addressRegion": "Muğla",
"postalCode": "48220",
"addressCountry": "TR"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 37.037,
"longitude": 27.962
},
"url": "https://ayrisapart.com",
"telephone": "+90",
"image": "https://ayrisapart.com/logo.png",
"amenityFeature": [
{ "@type": "LocationFeatureSpecification", "name": "Free Wi-Fi", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Kitchen", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Air Conditioning", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Free Parking", "value": true }
],
"checkinTime": "14:00",
"checkoutTime": "11:00"
};
return (
<html lang={lang} className={`${oranienbaum.variable} ${inter.variable} h-full antialiased`}>
<head>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
/>
</head>
<body className="font-sans min-h-full flex flex-col bg-[#FAF7F0] text-[#1A1A1A]" suppressHydrationWarning>
<Navbar lang={lang} dict={dict} />
{children}
<Footer lang={lang} dict={dict} />
</body>
</html>
);
}