Files
ESPDocs/app/[locale]/glossario/layout.jsx
T
Lucas RayanandClaude Sonnet 5.5 5a9fe676fc
CI / Lint e auditorias (push) Successful in 1m10s
CI / Trivy (dependências e segredos) (push) Successful in 12s
CI / Imagem Docker (linux/arm64) (push) Successful in 2m39s
Release / Plano (reaproveitar a imagem?) (push) Successful in 6s
Release / ci (push) Skipped
Release / Publica a imagem (linux/arm64) (push) Successful in 18s
Release / Cria a release no Gitea (push) Successful in 5s
feat(i18n): Simplified Chinese (zh-CN), search answers per locale, fr/de/es data fixes
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-01 23:28:39 -03:00

143 lines
6.1 KiB
React

import { paginaMeta, jsonLd } from "@/lib/seo";
import { categoriasGlossario as categoriasGlossarioPt } from "@/lib/glossarioData";
import { categoriasGlossario as categoriasGlossarioEn } from "@/lib/data/en/glossario.js";
import { categoriasGlossario as categoriasGlossarioEs } from "@/lib/data/es/glossario.js";
import { categoriasGlossario as categoriasGlossarioFr } from "@/lib/data/fr/glossario.js";
import { categoriasGlossario as categoriasGlossarioDe } from "@/lib/data/de/glossario.js";
import { categoriasGlossario as categoriasGlossarioZh } from "@/lib/data/zh-CN/glossario.js";
export async function generateMetadata({ params }) {
const { locale } = await params;
const isEn = locale === "en";
const isEs = locale === "es";
const isFr = locale === "fr";
const isDe = locale === "de";
const isZh = locale === "zh-CN";
return paginaMeta({
titulo: isEs
? "Glosario técnico de ESP32: Términos y conceptos"
: isEn
? "ESP32 Technical Glossary: Terms and Concepts"
: isFr
? "Glossaire technique de l'ESP32 : termes et concepts"
: isZh ? "ESP32 技术术语表:术语与概念" : isDe
? "Technisches ESP32-Glossar: Begriffe und Konzepte"
: "Glossário Técnico do ESP32: Termos e Conceitos",
descricao: isEs
? "Más de 50 conceptos esenciales de ESP32 explicados: GPIO, Strapping Pins, ULP, PSRAM, FreeRTOS, eFuse, Deep Sleep, OTA, Secure Boot, ECDSA, Matter y Thread."
: isEn
? "Over 50 essential ESP32 concepts explained: GPIO, Strapping Pins, ULP, PSRAM, FreeRTOS, eFuse, Deep Sleep, OTA, Secure Boot, ECDSA, Matter, and Thread."
: isFr
? "Plus de 50 concepts essentiels de l'ESP32 expliqués : GPIO, Strapping Pins, ULP, PSRAM, FreeRTOS, eFuse, Deep Sleep, OTA, Secure Boot, ECDSA, Matter et Thread."
: isZh ? "50 多个 ESP32 生态的核心术语与概念详解:GPIO、启动配置引脚(Strapping)、ULP、PSRAM、FreeRTOS、eFuse、Deep Sleep、OTA、Secure Boot、ECDSA、Matter 和 Thread。" : isDe
? "Über 50 wichtige ESP32-Konzepte verständlich erklärt: GPIO, Strapping-Pins, ULP, PSRAM, FreeRTOS, eFuse, Deep Sleep, OTA, Secure Boot, ECDSA, Matter und Thread."
: "Mais de 50 termos e conceitos essenciais do ecossistema ESP32 explicados em português: GPIO, Strapping Pins, ULP, PSRAM, FreeRTOS, eFuse, Deep Sleep, OTA, Secure Boot, ECDSA, Matter e Thread.",
caminho: "/glossario",
locale,
keywords: isEs
? [
"glosario ESP32",
"qué es GPIO",
"qué son strapping pins",
"qué es ESP32 ULP",
"qué es ESP32 PSRAM",
"términos técnicos microcontrolador",
"conceptos ESP32 hardware",
]
: isEn
? [
"ESP32 glossary",
"what is GPIO",
"what are strapping pins",
"what is ESP32 ULP",
"what is ESP32 PSRAM",
"microcontroller technical terms",
"ESP32 hardware concepts",
]
: isFr
? [
"glossaire ESP32",
"qu'est-ce que le GPIO",
"que sont les strapping pins",
"qu'est-ce que l'ESP32 ULP",
"qu'est-ce que l'ESP32 PSRAM",
"termes techniques microcontrôleur",
"concepts matériels ESP32",
]
: isZh ? ["ESP32 术语表", "什么是 GPIO", "什么是启动配置引脚", "什么是 ESP32 ULP", "什么是 ESP32 PSRAM", "微控制器技术术语", "ESP32 概念"] : isDe
? [
"ESP32 Glossar",
"was ist GPIO",
"was sind Strapping-Pins",
"was ist ESP32 ULP",
"was ist ESP32 PSRAM",
"technische Mikrocontroller-Begriffe",
"ESP32 Hardware-Konzepte",
]
: [
"glossário ESP32",
"o que é GPIO",
"o que é strapping pins",
"o que é ULP ESP32",
"o que é PSRAM ESP32",
"termos técnicos microcontrolador",
"conceitos ESP32 português",
],
});
}
export default async function GlossarioLayout({ children, params }) {
const { locale } = await params;
const isEn = locale === "en";
const isEs = locale === "es";
const isFr = locale === "fr";
const isDe = locale === "de";
const isZh = locale === "zh-CN";
const categorias = isEs ? categoriasGlossarioEs : isEn ? categoriasGlossarioEn : isFr ? categoriasGlossarioFr : isZh ? categoriasGlossarioZh : isDe ? categoriasGlossarioDe : categoriasGlossarioPt;
const canonPath = isEs ? "/es/glosario" : isEn ? "/en/glossary" : isFr ? "/fr/glossaire" : isZh ? "/zh-CN/glossary" : isDe ? "/de/glossar" : "/glossario";
return (
<>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(jsonLd.glossario(categorias, locale)),
}}
/>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(
jsonLd.trilha([
{ nome: isEs ? "Inicio" : isEn ? "Home" : isFr ? "Accueil" : isZh ? "首页" : isDe ? "Startseite" : "Início", caminho: isEs ? "/es" : isEn ? "/en" : isFr ? "/fr" : isZh ? "/zh-CN" : isDe ? "/de" : "/" },
{ nome: isEs ? "Glosario técnico" : isEn ? "Technical Glossary" : isFr ? "Glossaire technique" : isZh ? "技术术语表" : isDe ? "Technisches Glossar" : "Glossário Técnico", caminho: canonPath },
])
),
}}
/>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(
jsonLd.aplicacaoWeb({
nome: isEs ? "Glosario técnico de ESP32" : isEn ? "ESP32 Technical Glossary" : isFr ? "Glossaire technique de l'ESP32" : isZh ? "ESP32 技术术语表" : isDe ? "Technisches ESP32-Glossar" : "Glossário Técnico do ESP32",
descricao: isEs
? "Enciclopedia de términos técnicos y conceptos de hardware y software del ecosistema ESP32."
: isEn
? "Encyclopedia of hardware and software technical terms for the ESP32 ecosystem."
: isFr
? "Encyclopédie des termes techniques et des concepts matériels et logiciels de l'écosystème ESP32."
: isZh ? "ESP32 生态硬件与软件技术术语和概念的百科。" : isDe
? "Enzyklopädie technischer Begriffe und Hardware-/Softwarekonzepte für das ESP32-Ökosystem."
: "Enciclopédia de termos técnicos e conceitos de hardware e software do ecossistema ESP32.",
caminho: canonPath,
locale,
})
),
}}
/>
{children}
</>
);
}