feat(i18n): Simplified Chinese (zh-CN), search answers per locale, fr/de/es data fixes
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
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
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ae61416468
commit
5a9fe676fc
61 files changed
+2517
-920
No files matched your search
@@ -6,8 +6,9 @@ export async function generateMetadata({ params }) {
|
||||
const isEs = locale === "es";
|
||||
const isFr = locale === "fr";
|
||||
const isDe = locale === "de";
|
||||
const isZh = locale === "zh-CN";
|
||||
return paginaMeta({
|
||||
titulo: isDe
|
||||
titulo: isZh ? "该选哪款 ESP32" : isDe
|
||||
? "Welchen ESP32 wählen"
|
||||
: isFr
|
||||
? "Quel ESP32 choisir"
|
||||
@@ -16,7 +17,7 @@ export async function generateMetadata({ params }) {
|
||||
: isEn
|
||||
? "Which ESP32 to Choose"
|
||||
: "Qual ESP32 escolher",
|
||||
descricao: isDe
|
||||
descricao: isZh ? "回答几个关于连接(Wi-Fi 6、5GHz、Matter)、功耗、外设和安全的简单问题,或使用参数筛选器,找到最合适的 ESP32。" : isDe
|
||||
? "Beantworten Sie einfache Fragen zu Konnektivität (Wi-Fi 6, 5 GHz, Matter), Energie, Peripherie und Sicherheit oder nutzen Sie den parametrischen Filter, um den perfekten ESP32 zu finden."
|
||||
: isFr
|
||||
? "Répondez à des questions simples sur la connectivité (Wi-Fi 6, 5 GHz, Matter), l'énergie, les périphériques et la sécurité ou utilisez le filtre paramétrique pour trouver l'ESP32 parfait."
|
||||
@@ -27,7 +28,7 @@ export async function generateMetadata({ params }) {
|
||||
: "Responda a perguntas simples sobre conectividade (Wi-Fi 6, 5GHz, Matter), energia, periféricos e segurança ou use o filtro paramétrico para encontrar o ESP32 perfeito.",
|
||||
caminho: "/seletor",
|
||||
locale,
|
||||
keywords: isDe
|
||||
keywords: isZh ? ["该选哪款 ESP32", "该用哪款 ESP32", "微控制器选型", "适合我项目的 ESP32", "ESP32 对比"] : isDe
|
||||
? ["welchen ESP32 wählen", "welchen ESP32 verwenden", "Mikrocontroller auswählen", "ESP32 für mein Projekt", "ESP32 vergleichen"]
|
||||
: isFr
|
||||
? ["quel ESP32 choisir", "quel ESP32 utiliser", "choisir microcontrôleur", "ESP32 pour mon projet", "comparer ESP32"]
|
||||
@@ -133,6 +134,24 @@ const faqsDe = [
|
||||
resposta: "Kompakte RISC-V-Mikrocontroller mit ULP-Coprozessor wie der ESP32-C2, ESP32-C3 und ESP32-H2 (dediziert für 802.15.4 ohne Wi-Fi-Funk) bieten extrem niedrige Deep-Sleep-Ströme im Bereich von 5 µA bis 10 µA.",
|
||||
},
|
||||
];
|
||||
const faqsZh = [
|
||||
{
|
||||
pergunta: "新手该选哪款 ESP32?",
|
||||
resposta: "对刚入门物联网的创客和开发者来说,经典 ESP32(NodeMCU/DevKitC)或 ESP32-C3 是首选:库支持丰富,Arduino IDE 示例现成,文档也很完整。",
|
||||
},
|
||||
{
|
||||
pergunta: "哪款 ESP32 支持 Wi-Fi 6、蓝牙 6 以及 Thread/Zigbee/Matter?",
|
||||
resposta: "ESP32-C6 和 ESP32-C5 是面向现代网络的主力系列。ESP32-C6 提供 2.4 GHz Wi-Fi 6 和 802.15.4 射频(Zigbee 3.0 / Thread / Matter)。ESP32-C5 则首次在 2.4 GHz 和 5 GHz 两个频段同时支持双频 Wi-Fi 6。",
|
||||
},
|
||||
{
|
||||
pergunta: "做 AI(TinyML)和显示屏,哪款 ESP32 性能最强?",
|
||||
resposta: "ESP32-P4(400 MHz 双核 RISC-V,带 AI 向量扩展、MIPI-CSI/DSI 接口,最高 64 MB PSRAM)和 ESP32-S3(240 MHz 双核 Xtensa,带神经网络向量加速并支持 RGB LCD)为边缘 AI 和丰富的图形界面提供最高速度。",
|
||||
},
|
||||
{
|
||||
pergunta: "电池供电的项目,哪款 ESP32 最省电?",
|
||||
resposta: "带有 ULP 协处理器的紧凑型 RISC-V 微控制器,如 ESP32-C2、ESP32-C3 和 ESP32-H2(专用 802.15.4,无 Wi-Fi),深度睡眠电流可低至 5 µA 到 10 µA。",
|
||||
},
|
||||
];
|
||||
|
||||
export default async function Layout({ children, params }) {
|
||||
const { locale } = await params;
|
||||
@@ -140,7 +159,8 @@ export default async function Layout({ children, params }) {
|
||||
const isEs = locale === "es";
|
||||
const isFr = locale === "fr";
|
||||
const isDe = locale === "de";
|
||||
const faqs = isDe ? faqsDe : isFr ? faqsFr : isEs ? faqsEs : isEn ? faqsEn : faqsPt;
|
||||
const isZh = locale === "zh-CN";
|
||||
const faqs = isZh ? faqsZh : isDe ? faqsDe : isFr ? faqsFr : isEs ? faqsEs : isEn ? faqsEn : faqsPt;
|
||||
|
||||
return (
|
||||
<>
|
||||
@@ -149,7 +169,7 @@ export default async function Layout({ children, params }) {
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: JSON.stringify(
|
||||
jsonLd.aplicacaoWeb({
|
||||
nome: isDe
|
||||
nome: isZh ? "智能 ESP32 选型器" : isDe
|
||||
? "Intelligente ESP32-Auswahl"
|
||||
: isFr
|
||||
? "Sélecteur intelligent d'ESP32"
|
||||
@@ -158,7 +178,7 @@ export default async function Layout({ children, params }) {
|
||||
: isEn
|
||||
? "Intelligent ESP32 Selector"
|
||||
: "Seletor Inteligente de ESP32",
|
||||
descricao: isDe
|
||||
descricao: isZh ? "交互式工具,分析连接、功耗、外设和安全需求,推荐最合适的 ESP32 系列。" : isDe
|
||||
? "Interaktives Werkzeug zur Analyse von Konnektivität, Stromverbrauch, Peripherie und Sicherheit zur Ermittlung der idealen ESP32-Serie."
|
||||
: isFr
|
||||
? "Outil interactif analysant la connectivité, la consommation, les périphériques et la sécurité pour recommander la série idéale d'ESP32."
|
||||
@@ -167,7 +187,7 @@ export default async function Layout({ children, params }) {
|
||||
: isEn
|
||||
? "Interactive tool analyzing connectivity, power consumption, peripherals, and security to recommend the ideal ESP32 series."
|
||||
: "Ferramenta interativa que analisa conectividade, consumo, periféricos e segurança para indicar a série ideal de ESP32.",
|
||||
caminho: isDe
|
||||
caminho: isZh ? "/zh-CN/selector" : isDe
|
||||
? "/de/auswahl"
|
||||
: isFr
|
||||
? "/fr/selecteur"
|
||||
@@ -187,11 +207,11 @@ export default async function Layout({ children, params }) {
|
||||
__html: JSON.stringify(
|
||||
jsonLd.trilha([
|
||||
{
|
||||
nome: isDe ? "Startseite" : isFr ? "Accueil" : isEs ? "Inicio" : isEn ? "Home" : "Início",
|
||||
caminho: isDe ? "/de" : isFr ? "/fr" : isEs ? "/es" : isEn ? "/en" : "/",
|
||||
nome: isZh ? "首页" : isDe ? "Startseite" : isFr ? "Accueil" : isEs ? "Inicio" : isEn ? "Home" : "Início",
|
||||
caminho: isZh ? "/zh-CN" : isDe ? "/de" : isFr ? "/fr" : isEs ? "/es" : isEn ? "/en" : "/",
|
||||
},
|
||||
{
|
||||
nome: isDe
|
||||
nome: isZh ? "ESP32 选型器" : isDe
|
||||
? "ESP32-Auswahl"
|
||||
: isFr
|
||||
? "Sélecteur d'ESP32"
|
||||
@@ -200,7 +220,7 @@ export default async function Layout({ children, params }) {
|
||||
: isEn
|
||||
? "ESP32 Selector"
|
||||
: "Seletor de ESP32",
|
||||
caminho: isDe
|
||||
caminho: isZh ? "/zh-CN/selector" : isDe
|
||||
? "/de/auswahl"
|
||||
: isFr
|
||||
? "/fr/selecteur"
|
||||
|
||||
+417
-174
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user