-
ESPDocs 1.5.0
StableCI / Lint e auditorias (push) Successful in 45sCI / Trivy (dependências e segredos) (push) Successful in 9sCI / Imagem Docker (linux/arm64) (push) Successful in 2m25sRelease / Plano (reaproveitar a imagem?) (push) Successful in 5sRelease / ci (push) SkippedRelease / Publica a imagem (linux/arm64) (push) Successful in 20sRelease / Cria a release no Gitea (push) Successful in 5sreleased this
2026-11-02 01:43:13 +00:00 | 5 commits to main since this releaseImagem
git.lucasrguerra.dev.br/lucasrguerra/espdocs:1.5.0Adicionado
- Internacionalização completa para os idiomas Francês (
fr) e Alemão (de) (Fase 5):- Ativação do francês e do alemão em
ENABLED_LOCALES = ["pt", "en", "es", "fr", "de"]e no seletor de idiomas do cabeçalho. - Tradução técnica integral e paridade estrutural em
messages/fr.jsonemessages/de.json(15 namespaces), nos arquivos de dados emdata/{fr,de}/(series.json,frameworks.json,conexoes/*.json) elib/data/{fr,de}/(glossario.js,diagnostico.js,componentes.js,topicos.js). - Tradução técnica natural com tratamento formal respeitado: "vous" em francês e "Sie" em alemão.
- 14 exemplos práticos de código com comentários em francês e 14 em alemão em
public/exemplos/{fr,de}/. - Slugs canônicos ASCII por idioma:
- Francês:
/fr/series,/fr/catalogue,/fr/comparaison,/fr/composants,/fr/diagnostic,/fr/frameworks,/fr/glossaire,/fr/selecteur,/fr/a-propos. - Alemão:
/de/serien,/de/katalog,/de/vergleich,/de/komponenten,/de/diagnose,/de/frameworks,/de/glossar,/de/auswahl,/de/ueber-uns.
- Francês:
- Busca dedicada por idioma em
/api/busca/fre/api/busca/decom normalização de acentos, caracteres alemães (ä, ö, ü, ß) e ligaduras francesas (œ, æ), sem menção ao livro e com links diretos aos slugs canônicos. - Exclusão total e estrita de referências ao livro fora do português, com
/fr/livroe/de/livrorespondendo HTTP 404 estrito. - Tabela do catálogo de placas com colunas traduzidas e mapeamento de valores técnicos nos idiomas francês e alemão.
- Negociação de idioma na raiz com roteamento para
froudecom base nos cabeçalhos Accept-Language ou cookiesNEXT_LOCALE=fr/NEXT_LOCALE=de, e fallback padrão paraenpara navegadores com o idioma inativo restante (zh-CN). - Metadados de SEO, Open Graph e Twitter Cards localizados com
og:locale(fr_FR,de_DE),inLanguage(fr,de) ehreflangcruzado entrept-BR,en,es-419,fr-FR,de-DEex-default. - Suporte CSS com hifenação automática (
hyphens: auto) para alemão e francês via atributolangdinâmico no layout raiz. - Extensão da suíte de verificação:
scripts/check-i18n.mjsvalidafrede,scripts/smoke-imagem.shtesta as rotas francesas e alemãs escripts/verifica-vazamentos.pyvarre todas as 36 rotas em francês e 36 em alemão (texto visível e blocos JSON-LD).
- Ativação do francês e do alemão em
Corrigido
- O cabeçalho passou a caber em telas estreitas. Desde o seletor de idioma, a faixa de
ícones ficava com ~410 px de largura mínima e o botão do menu era cortado em
celulares (390 e 360 px). Agora o seletor fica compacto no celular e o logo mostra
só o ícone abaixo de 360 px; sem rolagem horizontal de 320 px para cima.
Downloads
- Internacionalização completa para os idiomas Francês (