- Pass currentLocale to jsonLd.serie and jsonLd.framework to ensure English headline, name, and properties - Localize JSON-LD @id anchors to #article, #about, #glossary, #organization, and #author for English routes - Pass isEn prop to PageHero across all internal pages to prevent breadcrumbs from defaulting to Portuguese - Add scripts/verifica-vazamentos.py to smoke-imagem.sh to permanently test all 36 English URLs (visible text and ld+json) Co-Authored-By: Antigravity <noreply@google.com>
67 lines
1.7 KiB
React
67 lines
1.7 KiB
React
import { paginaMeta, jsonLd } from "@/lib/seo";
|
|
|
|
export async function generateMetadata({ params }) {
|
|
const { locale } = await params;
|
|
const isEn = locale === "en";
|
|
return {
|
|
...paginaMeta({
|
|
titulo: isEn
|
|
? "ESP32 Frameworks & SDKs: Complete Guide and Comparison"
|
|
: "Frameworks & SDKs para ESP32: Guia Completo e Comparativo",
|
|
descricao: isEn
|
|
? "Complete development guide: ESP-IDF, ESP-RainMaker, ESP-Matter, Rust, ESP-ADF, ESP-SR, ESP-WHO, Arduino, and MicroPython with code examples."
|
|
: "Guia completo de desenvolvimento: ESP-IDF, ESP-RainMaker, ESP-Matter, Rust, ESP-ADF, ESP-SR, ESP-WHO, Arduino e MicroPython com exemplos de código.",
|
|
caminho: "/frameworks",
|
|
locale: isEn ? "en" : "pt",
|
|
keywords: isEn
|
|
? [
|
|
"ESP-IDF",
|
|
"ESP-RainMaker",
|
|
"ESP-Matter",
|
|
"Rust ESP32",
|
|
"ESP-SR",
|
|
"ESP-ADF",
|
|
"ESP-IoT-Solution",
|
|
"Arduino ESP32",
|
|
"MicroPython ESP32",
|
|
"frameworks ESP32",
|
|
"program ESP32",
|
|
]
|
|
: [
|
|
"ESP-IDF",
|
|
"ESP-RainMaker",
|
|
"ESP-Matter",
|
|
"Rust ESP32",
|
|
"ESP-SR",
|
|
"ESP-ADF",
|
|
"ESP-IoT-Solution",
|
|
"Arduino ESP32",
|
|
"MicroPython ESP32",
|
|
"frameworks ESP32",
|
|
"programar ESP32",
|
|
],
|
|
}),
|
|
};
|
|
}
|
|
|
|
export default async function FrameworksLayout({ children, params }) {
|
|
const { locale } = await params;
|
|
const isEn = locale === "en";
|
|
return (
|
|
<>
|
|
<script
|
|
type="application/ld+json"
|
|
dangerouslySetInnerHTML={{
|
|
__html: JSON.stringify(
|
|
jsonLd.trilha([
|
|
{ nome: isEn ? "Home" : "Início", caminho: isEn ? "/en" : "/" },
|
|
{ nome: "Frameworks", caminho: isEn ? "/en/frameworks" : "/frameworks" },
|
|
])
|
|
),
|
|
}}
|
|
/>
|
|
{children}
|
|
</>
|
|
);
|
|
}
|