Sorteia uma placa dos chips da página, com preferência pelas de loja oficial, e
troca só pelas setas, com transição suave. Usa o link de afiliado do idioma
(rel=sponsored) e some quando o chip não tem placa. Vai nas páginas de série, na
comparação e nos dois modos de resultado do seletor.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
O CI caía de forma intermitente em "next/font/google queries have exactly one
entry" (rede do runner). O mesmo código passou em outra execução. O build agora
tenta até 3 vezes.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
O botão do AliExpress passa a ficar no rodapé do card, alinhado entre os cards.
O link usa a coluna Link_<idioma> da planilha (en, es, fr, de, zh-CN) e cai no
Link (Brasil) quando ela está vazia. Colunas de link não viram filtro, e a API
lê A1:AZ1000.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
O job deploy roda depois de publicar a imagem: pede o deploy pela API do
Coolify e acompanha até terminar, falhando o workflow se o deploy falhar.
O digest do latest é comparado antes e depois de publicar, então merge só
de documentação ou tag (que reapontam o latest para o mesmo manifesto) não
reiniciam o container. workflow_dispatch força o deploy.
O script do digest fica em .gitea/scripts para não entrar no hash da
imagem e não provocar rebuild. Precisa dos secrets COOLIFY_URL e
COOLIFY_TOKEN no repositório.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Formação 2 da LASER: slides visuais, apostila, projeto do Wokwi e scanner
I2C, validados no simulador (leitura normal, temperatura negativa e sensor
desconectado). Circuito com pull-ups de 10 kΩ e 4,7 kΩ para 3V3 e aviso
sobre os pull-ups de 5 V da plaquinha PCF8574.
- PDFs prontos dos slides e das apostilas dos módulos 1 e 2;
slides-pdf agora também exporta a apostila.
- Página de entrada em /formacoes e /formacoes/N, gerada por
scripts/formacoes-viewer.mjs a partir do formacao.json de cada pasta.
- A apostila passou de index.html para apostila.html.
- Corrige o link do Fritzing da apostila 1 (/apostilas/1 não existe).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Add full message catalogs and content for French (fr) and German (de)
- Implement ASCII canonical slugs for French and German routes
- Add language-specific search endpoints (/api/busca/fr, /api/busca/de)
- Configure strict 404 responses for /fr/livro and /de/livro
- Localize SEO, OpenGraph (fr_FR, de_DE), Twitter and JSON-LD schemas
- Add localized code example comments across 14 examples for fr and de
- Enable 'fr' and 'de' in ENABLED_LOCALES with root negotiation and redirect
- Extend test suite in check-i18n, smoke-imagem and verifica-vazamentos
Co-Authored-By: Antigravity <noreply@google.com>
Complete implementation of Spanish (es-419) language support:
- Canonical catalogs and data: messages/es.json, data/es/**, lib/data/es/**, public/exemplos/es/**
- Canonical slugs: /es/series, /es/catalogo, /es/comparacion, /es/componentes, /es/diagnostico, /es/frameworks, /es/glosario, /es/selector, /es/acerca
- Dedicated search index at /api/busca/es with Spanish accent normalization
- Strict exclusion of book references in Spanish routes and catalogs
- Language selector and root negotiation with es active (ENABLED_LOCALES = ['pt', 'en', 'es'])
- Extended verification suite: check-i18n, smoke-imagem and verifica-vazamentos
Co-Authored-By: Antigravity <noreply@google.com>
- 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>
- Localize skip-to-content accessibility link and breadcrumb navigation
- Convert section layouts to dynamic generateMetadata with English titles, descriptions, and structured data
- Eliminate mixed language expressions and translate remaining SoC connection pin warnings and descriptions
- Translate component registry items, categories, tags, and IDF Component Manager guide
- Add strict identical string verification to scripts/check-i18n.mjs with technical allowlist
Co-Authored-By: Antigravity <noreply@google.com>
- Translate content to English across messages/en.json, data/en, lib/data/en, and public/exemplos/en
- Implement localized routing, slugs, and language negotiation with fallback to en
- Build dedicated search index for English with strict book exclusion
- Update components and pages to dynamically render localized strings and datasets
- Verify full structural parity and exact 1:1 match on Portuguese pages via comparator
Co-Authored-By: Antigravity <noreply@google.com>
- Add ENABLED_LOCALES configuration in i18n/links.js (currently ["pt"])
- Redirect inactive locale prefixes to /pt via 307 in middleware.js
- Restrict root locale negotiation to active locales with fallback to pt
- Hide LanguageSelector when only one locale is enabled
- Generate sitemap, hreflang alternates, and og:locale only for active locales
- Generate static SSG pages only for active locales in build
- Adapt check:i18n and smoke-imagem.sh to validate active vs inactive locales
Co-Authored-By: Antigravity <noreply@google.com>
Implement Phase 1 of i18n spec:
- Configure next-intl with 6 locales (pt, en, es, fr, de, zh-CN) and pathnames
- Move routes to app/[locale] structure with localized layouts and metadata
- Add middleware for root language negotiation (307), legacy redirects (308), and 404 for non-pt book
- Implement language selector dropdown in header with cookie persistence
- Add system typography rules for zh-CN and word-break/hyphenation for de/fr
Co-Authored-By: Antigravity <noreply@google.com>
CHANGELOG.md in Portuguese, from the project history. The release job builds its
notes from the matching section. The new files are excluded from the image hash,
so the published image is reused. README points at the Gitea repository.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>