feat(bimi): logo studio, certificate upload and a setup check in the console
The console took pasted SVG text and a URL. It now: - takes a PNG or SVG and makes the logo BIMI accepts (SVG Tiny PS, square, at most 32 KB). An SVG has what the format forbids removed and is told what; a PNG is traced into vectors in the browser (imagetracerjs, public domain), walking down quality presets until it fits. The person positions it as in the photo editor: drag, zoom, background colour, preview in a circle or rounded square, and downloads the exact SVG to give a certificate authority - holds the .pem the authority returns, validated against the logo and domain, and serves it at /.well-known/bimi/vmc.pem (routed by the webmail) - shows the DNS record and runs the setup check (logo, DMARC, record, public URLs, certificate) - a golden-file contract: the SVGs the studio produces are validated by the server's own validator (Go) and pinned by the studio's tests (TS) - found by those tests: an element inside a link kept its onclick when the link was unwrapped; links are now unwrapped before cleaning - the BIMI and photo texts are in Brazilian Portuguese with accents (they had been written without), and in Spanish with accents A VMC cannot be generated from an image: it is issued by a certificate authority. The README and the panel say so. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
109b8360dd
commit
dabd1568d1
15 files changed
+1583
-164
No files matched your search
@@ -115,14 +115,79 @@
|
||||
"totpRemoved": "Segundo factor removido, com os codigos de recuperacao.",
|
||||
"tlsaDigest": "Digest para o registo TLSA (DANE 3 1 1)",
|
||||
"bimiTitle": "BIMI de {domain}",
|
||||
"bimiExplainer": "O BIMI e o unico mecanismo que mostra uma imagem ao lado do seu correio em clientes externos. E por dominio, nao por utilizador. O Gmail e o Outlook so o desenham quando o registo aponta para um VMC.",
|
||||
"bimiExplainer": "O BIMI é o único mecanismo que mostra uma imagem ao lado do seu e-mail em clientes externos. Ele vale por domínio, não por usuário. Envie o logotipo em PNG ou SVG e o sistema o converte para o formato do BIMI. O Gmail e o Apple Mail só o mostram com um certificado (VMC ou CMC) emitido por uma autoridade certificadora, que este sistema não consegue criar.",
|
||||
"bimiConfigured": "Logotipo publicado",
|
||||
"bimiNotConfigured": "Sem logotipo",
|
||||
"bimiNoVmc": "Sem VMC: o Gmail e o Outlook nao vao mostrar este logotipo.",
|
||||
"bimiSvg": "Logotipo (SVG Tiny PS)",
|
||||
"bimiVmc": "URL do VMC (opcional)",
|
||||
"bimiRejected": "O logotipo nao cumpre o SVG Tiny Portable/Secure:",
|
||||
"bimiSaved": "Logotipo guardado."
|
||||
"bimiNoVmc": "Sem certificado: o Gmail e o Apple Mail não vão mostrar este logotipo.",
|
||||
"bimiVmc": "URL do certificado (opcional)",
|
||||
"bimiRejected": "O logotipo não cumpre o SVG Tiny Portable/Secure:",
|
||||
"bimiSaved": "Logotipo salvo.",
|
||||
"bimiNone": "Sem logotipo",
|
||||
"bimiChoose": "Escolher PNG ou SVG",
|
||||
"bimiReplace": "Trocar logotipo",
|
||||
"bimiFormatHint": "PNG ou SVG. O resultado é um SVG Tiny PS quadrado, com no máximo 32 KB.",
|
||||
"bimiDragHint": "Arraste para posicionar. Os clientes de e-mail mostram o logotipo dentro de um círculo ou de um quadrado arredondado.",
|
||||
"bimiZoom": "Zoom",
|
||||
"bimiBackground": "Cor de fundo",
|
||||
"bimiBrandTitle": "Nome da marca (título do SVG)",
|
||||
"bimiMask": "Pré-visualização",
|
||||
"bimiMask_circle": "Círculo",
|
||||
"bimiMask_rounded": "Quadrado arredondado",
|
||||
"bimiMask_none": "Sem máscara",
|
||||
"bimiPreset": "Qualidade da conversão",
|
||||
"bimiPreset_high": "Alta (mais fiel)",
|
||||
"bimiPreset_balanced": "Equilibrada",
|
||||
"bimiPreset_compact": "Compacta",
|
||||
"bimiPreset_tiny": "Mínima",
|
||||
"bimiTraced": "O PNG foi convertido em vetor, o que perde um pouco de detalhe. Para o resultado mais nítido, envie o SVG original.",
|
||||
"bimiAutoLowered": "A qualidade foi reduzida automaticamente para caber em 32 KB.",
|
||||
"bimiSize": "{size} de {max}",
|
||||
"bimiTooBig": "O arquivo passa de 32 KB. Escolha uma qualidade menor ou simplifique o desenho.",
|
||||
"bimiRemoved": "Foram removidos do arquivo, porque o BIMI não os permite: {items}.",
|
||||
"bimiTextWarning": "O logotipo contém texto, que usa a fonte de quem lê a mensagem e pode mudar de aparência. Converta o texto em curvas no seu editor.",
|
||||
"bimiDownload": "Baixar SVG",
|
||||
"bimiSaveLogo": "Salvar logotipo",
|
||||
"bimiCertTitle": "Certificado (VMC ou CMC)",
|
||||
"bimiCertExplainer": "O Gmail e o Apple Mail só mostram o logotipo com um certificado emitido por uma autoridade certificadora, como DigiCert, Entrust ou SSL.com: VMC, para marca registrada, ou CMC, para marca em uso. O sistema não cria esse certificado. Baixe o SVG acima, envie-o à autoridade e coloque aqui o arquivo .pem que ela devolver. O Gmail aceita os dois tipos; outros clientes podem exigir VMC.",
|
||||
"bimiCertChoose": "Enviar arquivo .pem",
|
||||
"bimiCertReplace": "Trocar certificado",
|
||||
"bimiCertPaste": "Ou cole o conteúdo do .pem",
|
||||
"bimiCertSave": "Salvar certificado",
|
||||
"bimiCertValid": "Certificado válido",
|
||||
"bimiCertInvalid": "Certificado com problemas",
|
||||
"bimiCertIssued": "Emitido para {organization} por {issuer}",
|
||||
"bimiCertValidUntil": "Válido até {date}",
|
||||
"bimiCertDomains": "Domínios: {names}",
|
||||
"bimiCertMatches": "Contém exatamente este logotipo.",
|
||||
"bimiCertMismatch": "O logotipo dentro do certificado não é o que está publicado. Envie o SVG para o qual ele foi emitido.",
|
||||
"bimiCertRemove": "Remover certificado",
|
||||
"bimiCertSaved": "Certificado salvo.",
|
||||
"bimiCertRejected": "O certificado foi recusado:",
|
||||
"bimiRecordTitle": "Registro DNS",
|
||||
"bimiRecordHint": "Este registro TXT é criado pela reconciliação do DNS. Confira-o, ou crie-o manualmente no seu provedor.",
|
||||
"bimiCopy": "Copiar",
|
||||
"bimiCopied": "Copiado",
|
||||
"bimiCheckTitle": "Verificar configuração",
|
||||
"bimiCheckExplainer": "Consulta o DNS e as URLs públicas como um servidor de e-mail faria, e diz qual parte está errada.",
|
||||
"bimiCheckRun": "Verificar agora",
|
||||
"bimiCheckRunning": "Verificando...",
|
||||
"bimiCheckReady": "Tudo certo para o BIMI.",
|
||||
"bimiCheckNotReady": "Há itens a corrigir.",
|
||||
"bimiCheckStatus_ok": "OK",
|
||||
"bimiCheckStatus_warn": "Atenção",
|
||||
"bimiCheckStatus_fail": "Falhou",
|
||||
"bimiCheckItem_logo": "Arquivo do logotipo",
|
||||
"bimiCheckItem_dmarc": "Política DMARC",
|
||||
"bimiCheckItem_record": "Registro BIMI no DNS",
|
||||
"bimiCheckItem_logoUrl": "URL pública do logotipo",
|
||||
"bimiCheckItem_certificate": "Certificado",
|
||||
"bimiCheckItem_certificateUrl": "URL pública do certificado",
|
||||
"bimiError_notXml": "Esse arquivo não é um SVG válido.",
|
||||
"bimiError_notSvg": "Esse arquivo não é um SVG.",
|
||||
"bimiError_noSize": "O SVG não tem tamanho (viewBox, ou width e height), por isso não dá para posicioná-lo.",
|
||||
"bimiError_empty": "Não foi possível encontrar um desenho nesse arquivo.",
|
||||
"bimiError_notImage": "Escolha um arquivo PNG ou SVG.",
|
||||
"bimiError_tooComplex": "O desenho é complexo demais para caber em 32 KB."
|
||||
},
|
||||
"auth": {
|
||||
"adminLoginTitle": "Console de administração",
|
||||
@@ -455,12 +520,12 @@
|
||||
},
|
||||
"avatar": {
|
||||
"title": "Foto de perfil",
|
||||
"explainer": "Esta foto aparece dentro do LambdaMail. Servicos externos como Gmail e Outlook nao a leem: para eles, veja BIMI na pagina de dominios.",
|
||||
"explainer": "Esta foto aparece dentro do LambdaMail. Serviços externos como Gmail e Outlook não a leem: para eles, veja o BIMI na página de domínios.",
|
||||
"none": "Sem foto",
|
||||
"choose": "Escolher foto",
|
||||
"replace": "Trocar foto",
|
||||
"zoom": "Zoom",
|
||||
"dragToPosition": "Arraste para posicionar",
|
||||
"notAnImage": "Nao foi possivel ler esse ficheiro como imagem."
|
||||
"notAnImage": "Não foi possível ler esse arquivo como imagem."
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user