From ea97a5fe61f444a3a7106702a076cc6babdc5566 Mon Sep 17 00:00:00 2001 From: Lucas Rayan Date: Tue, 3 Nov 2026 14:58:26 -0300 Subject: [PATCH] =?UTF-8?q?feat(sobre):=20reescreve=20a=20p=C3=A1gina=20So?= =?UTF-8?q?bre=20e=20remove=20o=20bot=C3=A3o=20avulso=20do=20menu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sobre fica só no menu Biblioteca (desktop), em todos os idiomas. A página mostra as ferramentas atuais, os seis idiomas e os dados novos do autor. Co-Authored-By: Claude Sonnet 5.5 --- CHANGELOG.md | 7 + app/[locale]/sobre/page.jsx | 752 +++++++++++++++++++++++------------- components/Header.jsx | 4 - lib/seo.js | 2 + public/autor.jpg | Bin 0 -> 13513 bytes 5 files changed, 500 insertions(+), 265 deletions(-) create mode 100644 public/autor.jpg diff --git a/CHANGELOG.md b/CHANGELOG.md index 81e390b..e47b2de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,13 @@ Tudo o que muda de relevante no ESPDocs está aqui. O formato segue o ### Alterado +- Página Sobre reescrita nos seis idiomas: mostra tudo o que o ESPDocs tem hoje (séries, + comparador, seletor, catálogo, diagnóstico, componentes, frameworks, glossário, busca, + livro em pt e os seis idiomas), com cartões que levam a cada ferramenta, e traz os dados + atualizados do autor (cargo na RNP, formação, reconhecimentos, foto e links do site + pessoal). O JSON-LD do autor ganhou cargo e empregador. +- O botão avulso "Sobre" saiu da barra do desktop em todos os idiomas: a página continua no + menu Biblioteca, no menu móvel e no rodapé. - A apostila de cada formação passou de `index.html` para `apostila.html`; o `index.html` agora é a página de entrada. diff --git a/app/[locale]/sobre/page.jsx b/app/[locale]/sobre/page.jsx index 05ce49b..1bc7579 100644 --- a/app/[locale]/sobre/page.jsx +++ b/app/[locale]/sobre/page.jsx @@ -1,55 +1,416 @@ +import Link from "next/link"; import { paginaMeta, jsonLd, SITE } from "@/lib/seo"; +import { getLocalizedHref } from "@/i18n/links"; import Header from "@/components/Header"; import Footer from "@/components/Footer"; import PageHero from "@/components/PageHero"; import Image from "next/image"; import GiteaMark from "@/components/GiteaMark"; -import { ArrowUpRight, Code, Globe, GitCompare, Info, Languages } from "lucide-react"; +import { + AlertTriangle, + ArrowUpRight, + BookA, + BookMarked, + BookOpen, + Box, + Cpu, + Info, + Scale, + Search, + SlidersHorizontal, + Sparkles, +} from "lucide-react"; const REPOSITORIO = SITE.repositorio; +const LANGS = ["pt", "en", "es", "fr", "de", "zh-CN"]; + +/** Ferramentas e conteúdos do site: ícone e rota fixos, texto por idioma (ordem = ordem de FERRAMENTAS). */ +const FERRAMENTAS = [ + { icon: Cpu, href: "/series" }, + { icon: Scale, href: "/comparacao" }, + { icon: SlidersHorizontal, href: "/seletor" }, + { icon: Box, href: "/catalogo" }, + { icon: AlertTriangle, href: "/diagnostico" }, + { icon: Search, href: "/componentes" }, + { icon: BookOpen, href: "/frameworks" }, + { icon: BookA, href: "/glossario" }, + { icon: Sparkles, href: null }, + { icon: BookMarked, href: "/livro", soPt: true }, +]; + +const T = { + pt: { + metaTitulo: "Sobre o projeto", + metaDesc: + "O ESPDocs é uma plataforma independente, em seis idiomas, que reúne a documentação do ecossistema ESP32, com séries, comparador, seletor de chip, catálogo de placas, diagnóstico e glossário. Conheça o projeto e o autor.", + keywords: ["ESPDocs", "documentação ESP32 português", "projeto open source ESP32"], + inicio: "Início", + trilha: "Sobre", + tituloHero: "Sobre o ESPDocs", + label: "Projeto independente", + lede: "Uma plataforma não oficial, em seis idiomas, que organiza as informações técnicas do ESP32, ajuda a escolher o chip certo e leva você à documentação oficial da Espressif. Feita para a comunidade de hardware livre.", + repo: "Ver o repositório", + missaoTitulo: "Missão", + missao: + "Facilitar o acesso e a compreensão do ecossistema ESP32: organizar especificações, comparar séries, ajudar na escolha do chip e das placas, explicar erros comuns e centralizar os links da documentação oficial. O objetivo é economizar o seu tempo no desenvolvimento de firmware e IoT.", + porqueTitulo: "Por que o ESPDocs existe", + porque: + "As informações sobre os ESP32 costumam estar espalhadas entre datasheets densos, manuais de referência (TRM) e repositórios secundários, quase sempre só em inglês. O ESPDocs condensa e estrutura esses dados para a triagem rápida, antes de você aprofundar na engenharia oficial.", + temTitulo: "O que você encontra aqui", + temLede: "O projeto começou como uma tabela de séries e hoje reúne:", + ferramentas: [ + ["12 séries ESP32", "Especificações, diagramas de pinos interativos e pinos com restrição de uso, do ESP32 clássico ao ESP32-P4."], + ["Comparador", "Até quatro séries lado a lado, com as diferenças em destaque."], + ["Seletor inteligente", "Diga o que o projeto precisa e veja quais chips atendem."], + ["Catálogo de placas", "DevKits com pinos, filtros e links de compra para o seu país."], + ["Diagnóstico", "Brownout, bootloop, watchdog e mais: sintomas, causas e um decodificador de logs."], + ["Component Registry", "42 componentes e drivers do registro oficial, com o manifest idf_component.yml pronto."], + ["Frameworks e SDKs", "14 frameworks, do ESP-IDF e Arduino a Rust e Matter, com exemplos de código."], + ["Glossário técnico", "Os termos que aparecem nos datasheets, explicados por categoria."], + ["Busca inteligente", "Pergunte “pino 32 esp32-s3” ou “qual ESP32 tem PSRAM” e receba a resposta direta, com link para a fonte."], + ["O livro", "Microcontroladores ESP32: hardware e firmware em 12 partes e 78 capítulos."], + ], + idiomasTitulo: "Seis idiomas", + idiomas: + "O site inteiro está em português, inglês, espanhol, francês, alemão e chinês simplificado: interface, dados, busca e exemplos de código com comentários traduzidos. O livro existe só em português.", + contribuirTitulo: "Como contribuir", + contribuir: "Correções de tradução, ajustes em tabelas e novos exemplos de código são muito bem-vindos. O projeto cresce com a comunidade.", + passos: [ + "Faça o fork do repositório no Gitea.", + "Implemente as melhorias e confira as referências técnicas oficiais.", + "Abra um Pull Request descrevendo os ajustes feitos.", + ], + acessTitulo: "Acessibilidade", + acess: + "O ESPDocs prioriza a legibilidade, o contraste alto (nível AAA da WCAG), o tema claro e escuro e a navegação completa por teclado. Se encontrar alguma barreira de leitura ou navegação, abra uma issue no repositório.", + asideLabel: "Autor e aviso legal", + autorCargo: "Técnico de Operações do PoP-PE na RNP", + autorBio: [ + "Desenvolvedor full-stack JavaScript com especialização em resposta a incidentes e forense, entre código, circuitos e investigação digital.", + "Cursa Ciência da Computação na UFRPE e Blockchain e Criptografia Digital na FMU. Criador do Ciência Embarcada, autor de livros técnicos e de ferramentas livres de segurança.", + ], + destaquesTitulo: "Reconhecimentos", + destaques: [ + "Prêmio de Inovação RNP 2026", + "1º lugar no CyberGame do Hackers do Bem (CSBC 2025)", + "HackerOne, nível Signal Specialist", + "12º lugar civil na Operação Curupira 3.0", + ], + siteAutor: "Site pessoal", + blog: "Visitar o Ciência Embarcada", + avisoTitulo: "Aviso legal", + aviso: + "O ESPDocs é um agregador e organizador. Os manuais e repositórios referenciados pertencem à Espressif Systems. Em projetos críticos ou comerciais, consulte sempre a documentação oficial.", + }, + en: { + metaTitulo: "About the Project", + metaDesc: + "ESPDocs is an independent platform in six languages that brings together ESP32 documentation: series, comparator, chip selector, board catalog, diagnostics and glossary. Learn about the project and its author.", + keywords: ["ESPDocs", "ESP32 documentation", "open source ESP32 project"], + inicio: "Home", + trilha: "About", + tituloHero: "About ESPDocs", + label: "Independent project", + lede: "An unofficial platform in six languages that organizes technical information about the ESP32, helps you pick the right chip and links you to the official Espressif documentation. Built for the open hardware community.", + repo: "View repository", + missaoTitulo: "Mission", + missao: + "Make the ESP32 ecosystem easier to reach and understand: organize specifications, compare series, help choose the chip and the board, explain common errors and centralize links to the official documentation. The goal is to save you time in firmware and IoT development.", + porqueTitulo: "Why ESPDocs exists", + porque: + "Information about the ESP32 is often scattered across dense datasheets, Technical Reference Manuals (TRM) and secondary repositories. ESPDocs condenses and structures this data for rapid evaluation before you dive into the official engineering documentation.", + temTitulo: "What you will find here", + temLede: "The project started as a table of series and now brings together:", + ferramentas: [ + ["12 ESP32 series", "Specifications, interactive pinout diagrams and restricted-use pins, from the classic ESP32 to the ESP32-P4."], + ["Comparator", "Up to four series side by side, with the differences highlighted."], + ["Smart selector", "Say what the project needs and see which chips fit."], + ["Board catalog", "DevKits with pins, filters and purchase links for your country."], + ["Diagnostics", "Brownout, bootloop, watchdog and more: symptoms, causes and a log decoder."], + ["Component Registry", "42 components and drivers from the official registry, with the idf_component.yml manifest ready."], + ["Frameworks and SDKs", "14 frameworks, from ESP-IDF and Arduino to Rust and Matter, with code examples."], + ["Technical glossary", "The terms that show up in datasheets, explained by category."], + ["Smart search", "Ask “pin 32 esp32-s3” or “which ESP32 has PSRAM” and get a direct answer with a link to the source."], + ], + idiomasTitulo: "Six languages", + idiomas: + "The whole site is available in Portuguese, English, Spanish, French, German and Simplified Chinese: interface, data, search and code examples with translated comments.", + contribuirTitulo: "How to contribute", + contribuir: "Translation fixes, table refinements and new code examples are welcome. The project grows with the community.", + passos: ["Fork the repository on Gitea.", "Implement improvements and verify official technical references.", "Open a Pull Request describing the changes."], + acessTitulo: "Accessibility", + acess: + "ESPDocs prioritizes readability, high contrast (WCAG AAA level), light and dark themes, and full keyboard navigation. If you encounter any accessibility or navigation hurdles, please open an issue in the repository.", + asideLabel: "Author and legal notice", + autorCargo: "Operations Technician at PoP-PE, RNP", + autorBio: [ + "Full-stack JavaScript developer specialized in incident response and forensics, working between code, circuits and digital investigation.", + "Studying Computer Science at UFRPE and Blockchain and Digital Cryptography at FMU. Creator of Ciência Embarcada and author of free security tools.", + ], + destaquesTitulo: "Recognition", + destaques: [ + "RNP Innovation Award 2026", + "1st place at the Hackers do Bem CyberGame (CSBC 2025)", + "HackerOne, Signal Specialist level", + "12th place (civil) at Operação Curupira 3.0", + ], + siteAutor: "Personal website", + blog: "Visit Ciência Embarcada", + avisoTitulo: "Legal notice", + aviso: + "ESPDocs is an aggregator and curation platform. Referenced manuals and repositories are property of Espressif Systems. In mission-critical or commercial designs, always consult official documentation.", + }, + es: { + metaTitulo: "Acerca del proyecto", + metaDesc: + "ESPDocs es una plataforma independiente, en seis idiomas, que reúne la documentación del ecosistema ESP32: series, comparador, selector de chip, catálogo de placas, diagnóstico y glosario. Conozca el proyecto y a su autor.", + keywords: ["ESPDocs", "documentación ESP32", "proyecto open source ESP32", "código abierto"], + inicio: "Inicio", + trilha: "Acerca", + tituloHero: "Acerca de ESPDocs", + label: "Proyecto independiente", + lede: "Una plataforma no oficial, en seis idiomas, que organiza la información técnica del ESP32, le ayuda a elegir el chip adecuado y le conecta con la documentación oficial de Espressif. Creada para la comunidad de hardware abierto.", + repo: "Ver el repositorio", + missaoTitulo: "Misión", + missao: + "Facilitar el acceso y la comprensión del ecosistema ESP32: organizar especificaciones, comparar series, ayudar a elegir el chip y la placa, explicar errores comunes y centralizar los enlaces a la documentación oficial. El objetivo es ahorrar tiempo en el desarrollo de firmware e IoT.", + porqueTitulo: "¿Por qué existe ESPDocs?", + porque: + "La información sobre el ESP32 suele estar dispersa entre hojas de datos densas, manuales de referencia técnica (TRM) y repositorios secundarios. ESPDocs condensa y estructura estos datos para una evaluación rápida antes de profundizar en la ingeniería oficial.", + temTitulo: "Qué encontrará aquí", + temLede: "El proyecto empezó como una tabla de series y hoy reúne:", + ferramentas: [ + ["12 series ESP32", "Especificaciones, diagramas de pines interactivos y pines con restricciones de uso, del ESP32 clásico al ESP32-P4."], + ["Comparador", "Hasta cuatro series lado a lado, con las diferencias resaltadas."], + ["Selector inteligente", "Indique lo que necesita el proyecto y vea qué chips lo cumplen."], + ["Catálogo de placas", "DevKits con pines, filtros y enlaces de compra para su país."], + ["Diagnóstico", "Brownout, bootloop, watchdog y más: síntomas, causas y un decodificador de logs."], + ["Component Registry", "42 componentes y drivers del registro oficial, con el manifest idf_component.yml listo."], + ["Frameworks y SDKs", "14 frameworks, de ESP-IDF y Arduino a Rust y Matter, con ejemplos de código."], + ["Glosario técnico", "Los términos que aparecen en las hojas de datos, explicados por categoría."], + ["Búsqueda inteligente", "Pregunte “pin 32 esp32-s3” o “qué ESP32 tiene PSRAM” y reciba la respuesta directa, con enlace a la fuente."], + ], + idiomasTitulo: "Seis idiomas", + idiomas: + "Todo el sitio está en portugués, inglés, español, francés, alemán y chino simplificado: interfaz, datos, búsqueda y ejemplos de código con comentarios traducidos.", + contribuirTitulo: "Cómo contribuir", + contribuir: "Las correcciones de traducción, ajustes en tablas y nuevos ejemplos de código son muy bienvenidos. El proyecto crece junto con la comunidad.", + passos: [ + "Haga un fork del repositorio en Gitea.", + "Implemente las mejoras y verifique las referencias técnicas oficiales.", + "Abra una solicitud de extracción (Pull Request) describiendo los cambios realizados.", + ], + acessTitulo: "Accesibilidad", + acess: + "ESPDocs prioriza la legibilidad, el alto contraste (nivel AAA de WCAG), los temas claro y oscuro y la navegación completa por teclado. Si encuentra alguna barrera de lectura o navegación, abra un issue en el repositorio.", + asideLabel: "Autor y aviso legal", + autorCargo: "Técnico de Operaciones del PoP-PE en la RNP", + autorBio: [ + "Desarrollador full-stack JavaScript especializado en respuesta a incidentes y forense, entre código, circuitos e investigación digital.", + "Cursa Ciencias de la Computación en la UFRPE y Blockchain y Criptografía Digital en la FMU. Creador de Ciência Embarcada y autor de herramientas libres de seguridad.", + ], + destaquesTitulo: "Reconocimientos", + destaques: [ + "Premio de Innovación RNP 2026", + "1.er lugar en el CyberGame de Hackers do Bem (CSBC 2025)", + "HackerOne, nivel Signal Specialist", + "12.º lugar civil en la Operação Curupira 3.0", + ], + siteAutor: "Sitio personal", + blog: "Visitar Ciência Embarcada", + avisoTitulo: "Aviso legal", + aviso: + "ESPDocs es un agregador y organizador. Los manuales y repositorios referenciados pertenecen a Espressif Systems. En proyectos críticos o comerciales, consulte siempre la documentación oficial.", + }, + fr: { + metaTitulo: "À propos du projet", + metaDesc: + "ESPDocs est une plateforme indépendante, en six langues, qui rassemble la documentation de l'écosystème ESP32 : séries, comparateur, sélecteur de puce, catalogue de cartes, diagnostic et glossaire. Découvrez le projet et son auteur.", + keywords: ["ESPDocs", "documentation ESP32", "projet open source ESP32", "open source"], + inicio: "Accueil", + trilha: "À propos", + tituloHero: "À propos d'ESPDocs", + label: "Projet indépendant", + lede: "Une plateforme non officielle, en six langues, qui organise les informations techniques de l'ESP32, vous aide à choisir la bonne puce et vous oriente vers la documentation officielle d'Espressif. Conçue pour la communauté du matériel libre.", + repo: "Voir le dépôt", + missaoTitulo: "Mission", + missao: + "Faciliter l'accès à l'écosystème ESP32 et sa compréhension : organiser les spécifications, comparer les séries, aider à choisir la puce et la carte, expliquer les erreurs courantes et centraliser les liens vers la documentation officielle. L'objectif est de vous faire gagner du temps dans le développement de firmware et d'IoT.", + porqueTitulo: "Pourquoi ESPDocs existe", + porque: + "Les informations sur l'ESP32 sont souvent dispersées entre des fiches techniques denses, des manuels de référence technique (TRM) et des dépôts secondaires. ESPDocs condense et structure ces données pour une évaluation rapide avant d'approfondir l'ingénierie officielle.", + temTitulo: "Ce que vous trouverez ici", + temLede: "Le projet a commencé comme un tableau de séries et rassemble aujourd'hui :", + ferramentas: [ + ["12 séries ESP32", "Spécifications, schémas de brochage interactifs et broches à usage restreint, de l'ESP32 classique à l'ESP32-P4."], + ["Comparateur", "Jusqu'à quatre séries côte à côte, avec les différences mises en évidence."], + ["Sélecteur intelligent", "Dites ce dont le projet a besoin et voyez quelles puces conviennent."], + ["Catalogue de cartes", "DevKits avec broches, filtres et liens d'achat pour votre pays."], + ["Diagnostic", "Brownout, bootloop, watchdog et plus : symptômes, causes et décodeur de logs."], + ["Component Registry", "42 composants et pilotes du registre officiel, avec le manifest idf_component.yml prêt."], + ["Frameworks et SDK", "14 frameworks, d'ESP-IDF et Arduino à Rust et Matter, avec des exemples de code."], + ["Glossaire technique", "Les termes des fiches techniques, expliqués par catégorie."], + ["Recherche intelligente", "Demandez « broche 32 esp32-s3 » ou « quel ESP32 a de la PSRAM » et obtenez la réponse directe, avec le lien vers la source."], + ], + idiomasTitulo: "Six langues", + idiomas: + "Tout le site est disponible en portugais, anglais, espagnol, français, allemand et chinois simplifié : interface, données, recherche et exemples de code avec commentaires traduits.", + contribuirTitulo: "Comment contribuer", + contribuir: "Les corrections de traduction, les ajustements de tableaux et les nouveaux exemples de code sont très appréciés. Le projet grandit avec la communauté.", + passos: [ + "Forkez le dépôt sur Gitea.", + "Apportez les améliorations et vérifiez les références techniques officielles.", + "Ouvrez une Pull Request décrivant les modifications apportées.", + ], + acessTitulo: "Accessibilité", + acess: + "ESPDocs privilégie la lisibilité, un contraste élevé (niveau AAA du WCAG), les thèmes clair et sombre et une navigation complète au clavier. Si vous rencontrez un obstacle de lecture ou de navigation, ouvrez un ticket dans le dépôt.", + asideLabel: "Auteur et mentions légales", + autorCargo: "Technicien d'opérations du PoP-PE au RNP", + autorBio: [ + "Développeur full-stack JavaScript spécialisé en réponse aux incidents et en forensique, entre code, circuits et investigation numérique.", + "Étudie l'informatique à l'UFRPE et la blockchain et la cryptographie numérique à la FMU. Créateur de Ciência Embarcada et auteur d'outils libres de sécurité.", + ], + destaquesTitulo: "Distinctions", + destaques: [ + "Prix de l'innovation RNP 2026", + "1re place au CyberGame de Hackers do Bem (CSBC 2025)", + "HackerOne, niveau Signal Specialist", + "12e place civile à l'Operação Curupira 3.0", + ], + siteAutor: "Site personnel", + blog: "Visiter Ciência Embarcada", + avisoTitulo: "Mentions légales", + aviso: + "ESPDocs est une plateforme d'agrégation et de synthèse. Les manuels et dépôts référencés appartiennent à Espressif Systems. Pour les projets critiques ou commerciaux, consultez systématiquement la documentation officielle.", + }, + de: { + metaTitulo: "Über das Projekt", + metaDesc: + "ESPDocs ist eine unabhängige Plattform in sechs Sprachen, die die Dokumentation des ESP32-Ökosystems bündelt: Serien, Vergleich, Chip-Auswahl, Board-Katalog, Diagnose und Glossar. Lernen Sie das Projekt und den Autor kennen.", + keywords: ["ESPDocs", "ESP32 Dokumentation", "ESP32 Open-Source-Projekt", "Open Source"], + inicio: "Startseite", + trilha: "Über uns", + tituloHero: "Über ESPDocs", + label: "Unabhängiges Projekt", + lede: "Eine inoffizielle Plattform in sechs Sprachen, die technische Informationen zum ESP32 strukturiert, bei der Wahl des passenden Chips hilft und Sie mit der offiziellen Dokumentation von Espressif verbindet. Entwickelt für die Open-Hardware-Community.", + repo: "Repository ansehen", + missaoTitulo: "Mission", + missao: + "Den Zugang zum ESP32-Ökosystem und das Verständnis dafür erleichtern: Spezifikationen bündeln, Serien vergleichen, bei der Wahl von Chip und Board helfen, häufige Fehler erklären und Links zur offiziellen Dokumentation zentralisieren. Ziel ist es, Entwicklungszeit bei Firmware und IoT-Projekten zu sparen.", + porqueTitulo: "Warum es ESPDocs gibt", + porque: + "Informationen über den ESP32 sind oft über dichte Datenblätter, technische Referenzhandbücher (TRM) und sekundäre Repositories verstreut. ESPDocs verdichtet und strukturiert diese Daten für eine schnelle Vorabauswahl, bevor Sie tiefer in die offizielle Technik einsteigen.", + temTitulo: "Was Sie hier finden", + temLede: "Das Projekt begann als Tabelle von Serien und umfasst heute:", + ferramentas: [ + ["12 ESP32-Serien", "Spezifikationen, interaktive Pinbelegungen und Pins mit Nutzungseinschränkungen, vom klassischen ESP32 bis zum ESP32-P4."], + ["Vergleich", "Bis zu vier Serien nebeneinander, Unterschiede hervorgehoben."], + ["Intelligente Auswahl", "Sagen Sie, was das Projekt braucht, und sehen Sie, welche Chips passen."], + ["Board-Katalog", "DevKits mit Pins, Filtern und Kauflinks für Ihr Land."], + ["Diagnose", "Brownout, Bootloop, Watchdog und mehr: Symptome, Ursachen und ein Log-Decoder."], + ["Component Registry", "42 Komponenten und Treiber aus der offiziellen Registry, mit fertigem idf_component.yml-Manifest."], + ["Frameworks und SDKs", "14 Frameworks, von ESP-IDF und Arduino bis Rust und Matter, mit Codebeispielen."], + ["Technisches Glossar", "Die Begriffe aus den Datenblättern, nach Kategorie erklärt."], + ["Intelligente Suche", "Fragen Sie „Pin 32 esp32-s3“ oder „welcher ESP32 hat PSRAM“ und erhalten Sie die direkte Antwort mit Link zur Quelle."], + ], + idiomasTitulo: "Sechs Sprachen", + idiomas: + "Die gesamte Website gibt es auf Portugiesisch, Englisch, Spanisch, Französisch, Deutsch und vereinfachtem Chinesisch: Oberfläche, Daten, Suche und Codebeispiele mit übersetzten Kommentaren.", + contribuirTitulo: "Wie Sie beitragen können", + contribuir: "Übersetzungskorrekturen, Tabellenanpassungen und neue Codebeispiele sind herzlich willkommen. Das Projekt wächst gemeinsam mit der Community.", + passos: [ + "Erstellen Sie einen Fork des Repositories auf Gitea.", + "Implementieren Sie die Verbesserungen und prüfen Sie die offiziellen technischen Referenzen.", + "Eröffnen Sie einen Pull Request mit einer Beschreibung der vorgenommenen Änderungen.", + ], + acessTitulo: "Barrierefreiheit", + acess: + "ESPDocs legt großen Wert auf Lesbarkeit, hohen Kontrast (WCAG-Stufe AAA), helles und dunkles Design und vollständige Tastaturnavigation. Wenn Sie auf Lese- oder Navigationsbarrieren stoßen, eröffnen Sie bitte ein Issue im Repository.", + asideLabel: "Autor und rechtlicher Hinweis", + autorCargo: "Betriebstechniker des PoP-PE beim RNP", + autorBio: [ + "Full-Stack-JavaScript-Entwickler mit Spezialisierung auf Incident Response und Forensik, zwischen Code, Schaltungen und digitaler Ermittlung.", + "Studiert Informatik an der UFRPE sowie Blockchain und digitale Kryptographie an der FMU. Gründer von Ciência Embarcada und Autor freier Sicherheitswerkzeuge.", + ], + destaquesTitulo: "Auszeichnungen", + destaques: [ + "RNP-Innovationspreis 2026", + "1. Platz beim CyberGame von Hackers do Bem (CSBC 2025)", + "HackerOne, Stufe Signal Specialist", + "12. Platz (zivil) bei der Operação Curupira 3.0", + ], + siteAutor: "Persönliche Website", + blog: "Ciência Embarcada besuchen", + avisoTitulo: "Rechtlicher Hinweis", + aviso: + "ESPDocs ist ein Aggregator und Kurator. Die referenzierten Handbücher und Repositories sind Eigentum von Espressif Systems. Konsultieren Sie bei geschäftskritischen oder kommerziellen Projekten stets die offizielle Dokumentation.", + }, + "zh-CN": { + metaTitulo: "关于本项目", + metaDesc: "ESPDocs 是一个独立平台,提供六种语言,汇集 ESP32 生态的文档:系列、对比、芯片选择、开发板目录、诊断与术语表。了解本项目及其作者。", + keywords: ["ESPDocs", "ESP32 文档", "开源 ESP32 项目"], + inicio: "首页", + trilha: "关于", + tituloHero: "关于 ESPDocs", + label: "独立项目", + lede: "一个非官方平台,提供六种语言,整理 ESP32 的技术信息,帮助你选出合适的芯片,并直接链接到乐鑫官方文档。为开源硬件社区而做。", + repo: "查看代码仓库", + missaoTitulo: "使命", + missao: "让 ESP32 生态更易获取、更易理解:整理规格、对比系列、帮助选择芯片和开发板、解释常见错误,并集中官方文档链接。目标是节省固件与物联网项目的开发时间。", + porqueTitulo: "ESPDocs 为什么存在", + porque: "ESP32 的信息常常分散在冗长的数据手册、技术参考手册(TRM)和零散的代码仓库中。ESPDocs 把这些数据浓缩并结构化,便于在深入工程文档之前快速评估。", + temTitulo: "你能在这里找到什么", + temLede: "项目最初只是一张系列对照表,如今汇集了:", + ferramentas: [ + ["12 个 ESP32 系列", "规格、交互式引脚图,以及有使用限制的引脚,从经典 ESP32 到 ESP32-P4。"], + ["系列对比", "最多四个系列并排对比,差异一目了然。"], + ["智能选型", "说出项目的需求,看看哪些芯片合适。"], + ["开发板目录", "DevKit 的引脚、筛选条件,以及适用于你所在国家的购买链接。"], + ["故障诊断", "Brownout、bootloop、看门狗等:症状、原因和日志解码器。"], + ["Component Registry", "来自官方注册表的 42 个组件和驱动,附现成的 idf_component.yml。"], + ["框架与 SDK", "14 个框架,从 ESP-IDF、Arduino 到 Rust 和 Matter,并附代码示例。"], + ["技术术语表", "数据手册里的术语,按类别解释。"], + ["智能搜索", "问“esp32-s3 32号引脚”或“哪款 ESP32 有 PSRAM”,直接得到答案,并附来源链接。"], + ], + idiomasTitulo: "六种语言", + idiomas: "整个网站提供葡萄牙语、英语、西班牙语、法语、德语和简体中文:界面、数据、搜索,以及注释已翻译的代码示例。", + contribuirTitulo: "如何参与贡献", + contribuir: "欢迎提交翻译修正、表格改进和新的代码示例。项目与社区一同成长。", + passos: ["在 Gitea 上 Fork 本仓库。", "实现改进,并核对官方技术资料。", "发起 Pull Request 并说明改动。"], + acessTitulo: "无障碍", + acess: "ESPDocs 重视可读性、高对比度(WCAG AAA 级)、浅色与深色主题和完整的键盘导航。如果你遇到任何无障碍或导航上的障碍,请在代码仓库中提交 issue。", + asideLabel: "作者与法律声明", + autorCargo: "RNP PoP-PE 运维技术员", + autorBio: [ + "全栈 JavaScript 开发者,专注于事件响应与取证,穿梭于代码、电路与数字调查之间。", + "在 UFRPE 就读计算机科学,在 FMU 学习区块链与数字密码学。Ciência Embarcada 创始人,开源安全工具作者。", + ], + destaquesTitulo: "荣誉", + destaques: ["2026 年 RNP 创新奖", "Hackers do Bem CyberGame 第 1 名(CSBC 2025)", "HackerOne Signal Specialist 等级", "Operação Curupira 3.0 平民组第 12 名"], + siteAutor: "个人网站", + blog: "访问 Ciência Embarcada", + avisoTitulo: "法律声明", + aviso: "ESPDocs 是一个聚合与整理平台。所引用的手册和代码仓库归乐鑫系统(Espressif Systems)所有。在关键任务或商业设计中,请始终查阅官方文档。", + }, +}; + 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"; + const t = T[locale] ?? T.pt; return paginaMeta({ - titulo: isZh ? "关于本项目" : isDe - ? "Über das Projekt" - : isFr - ? "À propos du projet" - : isEs - ? "Acerca del proyecto" - : isEn - ? "About the Project" - : "Sobre o projeto", - descricao: isZh ? "ESPDocs 是一个独立平台,整理 ESP32 生态的技术文档。了解本项目以及如何参与贡献。" : isDe - ? "ESPDocs ist eine unabhängige Plattform, die die technische Dokumentation des ESP32-Ökosystems strukturiert. Erfahren Sie mehr über das Projekt und wie Sie beitragen können." - : isFr - ? "ESPDocs est une plateforme indépendante qui organise la documentation technique de l'écosystème ESP32. Découvrez le projet et comment contribuer." - : isEs - ? "ESPDocs es una plataforma independiente que organiza la documentación técnica del ecosistema ESP32. Conozca el proyecto y cómo contribuir." - : isEn - ? "ESPDocs is an independent platform organizing technical documentation of the ESP32 ecosystem. Learn about the project and how to contribute." - : "O ESPDocs é uma plataforma independente que reúne a documentação do ecossistema ESP32 em português brasileiro. Saiba como o projeto nasceu e como contribuir.", + titulo: t.metaTitulo, + descricao: t.metaDesc, caminho: "/sobre", - keywords: isZh ? ["ESPDocs", "ESP32 文档", "开源 ESP32 项目"] : isDe - ? ["ESPDocs", "ESP32 Dokumentation", "ESP32 Open-Source-Projekt", "Open Source"] - : isFr - ? ["ESPDocs", "documentation ESP32", "projet open source ESP32", "open source"] - : isEs - ? ["ESPDocs", "documentación ESP32", "proyecto open source ESP32", "código abierto"] - : isEn - ? ["ESPDocs", "ESP32 documentation", "open source ESP32 project"] - : ["ESPDocs", "documentação ESP32 português", "projeto open source ESP32"], + keywords: t.keywords, locale, }); } export default async function Sobre({ params }) { const { locale } = await params; + const t = T[locale] ?? T.pt; const isPt = locale === "pt"; const isEn = locale === "en"; const isEs = locale === "es"; @@ -57,63 +418,26 @@ export default async function Sobre({ params }) { const isDe = locale === "de"; const isZh = locale === "zh-CN"; - const featuresPt = [ - { icon: Languages, title: "Em português", desc: "Dados técnicos organizados e apresentados em português do Brasil." }, - { icon: GitCompare, title: "Comparações visuais", desc: "Tabelas e diagramas para escolher a série certa sem abrir dez datasheets." }, - { icon: Globe, title: "Acesso centralizado", desc: "Links diretos para a documentação oficial, repositórios e exemplos." }, - { icon: Code, title: "Código aberto", desc: "Contribuições são bem-vindas no Gitea." }, - ]; + const getLinkHref = (href) => getLocalizedHref(`/${locale}${href}`, locale); + const homePath = getLinkHref("/"); + const sobrePath = getLinkHref("/sobre"); - const featuresEn = [ - { icon: Languages, title: "Curated Content", desc: "Structured technical data presented clearly without datasheet noise." }, - { icon: GitCompare, title: "Visual comparisons", desc: "Tables and diagrams to select the right series without opening ten datasheets." }, - { icon: Globe, title: "Centralized access", desc: "Direct links to official documentation, repositories and examples." }, - { icon: Code, title: "Open source", desc: "Contributions are welcome on Gitea." }, - ]; + // A lista de textos do inglês ao chinês não traz "O livro": ele só existe em pt. + const ferramentas = FERRAMENTAS.filter((f) => isPt || !f.soPt).map((f, i) => ({ ...f, titulo: t.ferramentas[i][0], desc: t.ferramentas[i][1] })); - const featuresEs = [ - { icon: Languages, title: "En español", desc: "Datos técnicos organizados y presentados de forma clara en español neutro." }, - { icon: GitCompare, title: "Comparaciones visuales", desc: "Tablas y diagramas para elegir la serie adecuada sin abrir diez hojas de datos." }, - { icon: Globe, title: "Acceso centralizado", desc: "Enlaces directos a la documentación oficial, repositorios y ejemplos." }, - { icon: Code, title: "Código abierto", desc: "Las contribuciones son bienvenidas en Gitea." }, - ]; - - const featuresFr = [ - { icon: Languages, title: "En français", desc: "Données techniques organisées et présentées clairement en français." }, - { icon: GitCompare, title: "Comparaisons visuelles", desc: "Tableaux et schémas pour choisir la bonne série sans ouvrir dix datasheets." }, - { icon: Globe, title: "Accès centralisé", desc: "Liens directs vers la documentation officielle, les dépôts et les exemples." }, - { icon: Code, title: "Open source", desc: "Les contributions sont les bienvenues sur Gitea." }, - ]; - - const featuresDe = [ - { icon: Languages, title: "Auf Deutsch", desc: "Technische Daten übersichtlich und strukturiert auf Deutsch aufbereitet." }, - { icon: GitCompare, title: "Visuelle Vergleiche", desc: "Tabellen und Diagramme zur Auswahl der richtigen Serie, ohne zehn Datenblätter zu öffnen." }, - { icon: Globe, title: "Zentraler Zugang", desc: "Direkte Links zu offizieller Dokumentation, Repositories und Beispielen." }, - { icon: Code, title: "Open Source", desc: "Beiträge sind auf Gitea herzlich willkommen." }, - ]; - const featuresZh = [ - { icon: Languages, title: "精心整理的内容", desc: "结构化的技术数据,清晰呈现,没有数据手册的冗余。" }, - { icon: GitCompare, title: "可视化对比", desc: "用表格和图示选出合适的系列,无需翻阅十份数据手册。" }, - { icon: Globe, title: "集中入口", desc: "直达官方文档、代码仓库与示例的链接。" }, - { icon: Code, title: "开源", desc: "欢迎在 Gitea 上贡献。" }, - ]; - - const features = isZh ? featuresZh : isDe ? featuresDe : isFr ? featuresFr : isEs ? featuresEs : isEn ? featuresEn : featuresPt; + const nomesIdiomas = { pt: "Português", en: "English", es: "Español", fr: "Français", de: "Deutsch", "zh-CN": "简体中文" }; return (
{/* Metadados E-E-A-T de autoria e organização para o Google */} -