- Date: 2026-08-07
- Locale tree:
~/mozilla/git/firefox-l10n/pt-BR— commit223ff88505af5dc583cb70b23bfb9e8abfe79447 - en-US reference:
~/mozilla/git/firefox-quarantine - Scope: 241
.ftl+ 113.propertiesfiles (Firefox desktop + shareddom/toolkit/devtools/netwerk/securitystrings) - Method: automated health checks (
moz.l10nparser, hunspell with the repo's own pt-BR dictionary, cross-file consistency grouping) followed by per-directory qualitative review against en-US, using the developer comments as context. Every finding below was verified against the en-US source.
All findings are keyed by string ID, never by line number.
| Check | Result |
|---|---|
Fluent syntax (l10n-lint) |
clean — 0 parse errors |
| Variables / placeholders vs en-US | clean — 0 mismatches |
| Plural-selector structure | 4 flagged, all non-issues (see §2) |
| Markup tag sets vs en-US | 1 real defect (about-glean-adhoc-explanation*), 1 non-issue |
| Access keys not present in their label | 5 flagged, 3 real (see §3.A) |
| Invisible/control characters | 1 real defect (perftools-menu-more-actions-copy-for-startup) |
| Cross-file consistency (same en-US string → different pt-BR) | 173 groups; most are legitimate context differences, the real ones are enumerated in §3.J |
Typographic conventions detected in the tree (deviations are flagged, the conventions themselves are not):
| Convention | Count | Notes |
|---|---|---|
Curly double quotes “ ” |
247 / 243 | the locale's quotation convention |
Straight " in message values |
0 outside HTML attributes | correct |
Straight ' as quote marks |
~25 strings | deviation — enumerated in §3.I |
Ellipsis … |
358 | vs 3 stray ... — enumerated in §3.I |
Em dash — |
90 | vs a handful of hyphens used as separators — §3.I |
| NBSP | 7 | deliberate (icon/link grouping), except 1 stray |
Do not "fix" these.
Upstream en-US defects mirrored in pt-BR (the source has the same problem):
- Unbalanced quotes
“…“(opening quote used as closing):about-logging-invalid-output,about-logging-unknown-logging-preset,about-logging-unknown-profiler-preset,about-logging-unknown-option(toolkit/toolkit/about/aboutLogging.ftl);about-telemetry-data-details-current(aboutTelemetry.ftl);import-safari-permissions-string(browser/browser/migration.ftl) — but note this last one has an additional locale-introduced instance, see §3.I. .propertiesunbalanced quotes:StrictUrlProtocolSetter,CookieInvalidMaxAgeAttribute,CookieRejectedNonRequiresSecureForBeta3,CookieForeignNoPartitionedWarning,CookieForeignNoPartitionedError(netwerk/necko.properties);CSPTrustedTypesPolicyViolation,CSPROTrustedTypesPolicyViolation,CSPTrustedTypesSinkViolation,CSPROTrustedTypesSinkViolation(dom/chrome/security/csp.properties);XFrameOptionsDeny(dom/chrome/security/security.properties);webconsole.group.cookieSameSiteLaxByDefaultEnabled2,…Disabled2(devtools/client/webconsole.properties).- Double space in
statusSeparatorBeforeNumber(browser/chrome/browser/downloads/downloads.properties) — identical in en-US. the thein developer comments (textRecognition.ftl,featureCallout.ftl,aboutSupport.ftl,features.ftl) — comment typos in en-US.
Verified correct, flagged only by tooling:
popup-warning-exceeded-message,addon-confirm-install-some-unsigned-message,tabbrowser-confirm-close-tabs-title,tabbrowser-ctrl-tab-list-all-tabs.label— en-US has only an*[other]variant because the string is used exclusively for counts > 1; a flat pt-BR translation is functionally equivalent.genai-menu-ask-smart-window(accesskeyz) andmain-context-menu-inspect(accesskeyQ) — inherited from en-US, where they also don't match the label.browser-tab-audio-pip=PICTURE-IN-PICTUREin caps — the dev comment asks for all caps.console-stacktrace-anonymous-function—<anonymous>translated to<anônima>; this is display text, not markup.nsserrors.ftlwrapping English protocol message names in straight'…'— a consistent locale convention across ~40 strings, not a per-string defect (but see §3.I for the.propertiescounterpart, which is inconsistent).sync-mobile-promoNBSPs — deliberate, keeps icons attached to their links.
firefox-relay-offer-legal-notice-1—browser/browser/browser.ftl— broken closing tag. Current:…>Aviso de privacidade</label label>.→ Suggest:…>Aviso de privacidade</label>.firefox-relay-offer-legal-notice-control—browser/browser/firefoxRelay.ftl— same broken tag:</label label>→</label>firefox-relay-offer-legal-notice—browser/browser/browser.ftl— stray space inside the link text:…Aviso de privacidade </label>→…Aviso de privacidade</label>perftools-menu-more-actions-copy-for-startup—devtools/client/perftools.ftl— contains two U+200B zero-width spaces ("variáveis de ambiente"). Only invisible-character occurrence in the tree; remove them.about-glean-adhoc-explanation,about-glean-adhoc-explanation2—toolkit/toolkit/about/aboutGlean.ftl— the<i>ad hoc</i>emphasis from en-US is dropped (translated as "mais específicos"). Low impact; restore the italics if the wording is revised.about-glean-about-data-list-item-dictionary—toolkit/toolkit/about/aboutGlean.ftl— missing space renders as "GleanDicionário". Current:<a …>{ -glean-brand-name }Dicionário</a>→ Suggest:<a …>Dicionário do { -glean-brand-name }</a>about-logging-log-tutorial—toolkit/toolkit/about/aboutLogging.ftl— trailing space inside the link text:>Log de HTTP </a>→>Log de HTTP</a>protections-vpn-header-content-subscribed—browser/browser/protections.ftl— trailing space inside the link text:>Apple App Store </a>→>Apple App Store</a>tou-existing-user-spotlight-body—browser/browser/termsofuse.ftl— stray>character left in the text:…Aviso de privacidade</a> >.<br><br>→ remove the>inactive-css-no-size-containment-fix,inactive-css-no-size-containment-fix-1—devtools/client/tooltips.ftl— stray space captured inside the CSS-keyword element:<strong>inline-table </strong>→<strong>inline-table</strong>pictureinpicture-playback-rate-value,pictureinpicture-playback-rate-preset—toolkit/toolkit/pictureinpicture/pictureinpicture.ftl— the multiplier sign was moved in front of the number, contradicting the dev comment's examples (1×,1.25×). Current:× { NUMBER($rate) }→ Suggest:{ NUMBER($rate) }×newtab-widget-lists-completed-list—browser/browser/newtab/newtab.ftl— the parentheses of the en-US format are dropped, leaving a bare number. Current:Tarefas concluídas { $number }→ Suggest:Concluídas ({ $number })- Access keys not remapped to their pt-BR labels (3 real cases; en-US's key does match its own label in each):
firefoxview-history-context-forget-site(F/ "Esquecer este site…"),xpinstall-prompt-install(C/ "Avançar para a instalação"),wizard-macos-button-back(B/ "Voltar").
browser-layout-horizontal-tabs2(.description) —browser/browser/preferences/preferences.ftl— en-US has "Tabs at the top" in both.titleand.description; the description says the opposite. Current:Abas embaixo→ Suggest:Abas no altoabout-networking-networkid-status-known—toolkit/toolkit/about/aboutNetworking.ftl— en-US "Link status is known". Current:Status do link de rede é desconhecido→ Suggest:O status do link de rede é conhecido(the "unknown" case is a separate string)sec-error-cert-not-in-name-space—toolkit/toolkit/neterror/nsserrors.ftl— en-US: the CA "is not permitted to issue". Current:A Autoridade de Certificação deste certificado não permite expedir um certificado com este nome.→ Suggest:A autoridade certificadora deste certificado não está autorizada a emitir um certificado com este nome.CheckLoadURIError—dom/chrome/security/caps.properties— en-US "may not load or link to" is a prohibition. Current:conteúdo em %S pode não ser carregado ou vinculado a %S.→ Suggest:o conteúdo em %S não pode carregar nem criar vínculo para %S.CheckSameOriginError—dom/chrome/security/caps.properties— same modal error. Current:pode não carregar dados de %S.→ Suggest:não pode carregar dados de %S.WindowCloseBlockedWarning—dom/chrome/dom/dom.properties— Current:Scripts podem não fechar janelas…→ Suggest:Scripts não podem fechar janelas que não foram abertas por script.RequestStorageAccessPermissionsPolicy—dom/chrome/dom/dom.properties— "may not be called" → prohibition:pode não ser chamado→não pode ser chamadopageInfo_BrokenEncryption—security/manager/chrome/pippki/pippki.properties— en-US "Broken Encryption", but the pt-BR value is byte-identical topageInfo_EncryptionWithBitsAndProtocol, so a broken connection is reported as a normal encrypted one. Suggest:Criptografia comprometida (%1$S, chaves de %2$S bits, %3$S)accessibility-text-label-issue-image—devtools/client/accessibility.ftl— en-US "Content with images must be labeled" flags the containing content. Current:Imagens de conteúdo devem ser rotuladas.→ Suggest:Conteúdo com imagens deve ser rotulado.printui-error-invalid-start-overflow—toolkit/toolkit/printing/printUI.ftl— en-US "must be smaller than". Current:deve ser menor ou igual ao número da página final→ Suggest:deve ser menor que o número da página finalneterror-file-not-found-filename—toolkit/toolkit/neterror/netError.ftl— Current:Verifique se o nome do arquivo tem letras maiúsculas ou outros erros de digitação.(says uppercase letters are the error) → Suggest:Verifique se há erros de maiúsculas/minúsculas ou de digitação no nome do arquivo.windows-10-eos-challenger-callout-title—browser/browser/newtab/asrouter.ftl— en-US "That's the point" = it's deliberate. Current:Esta é a questão.→ Suggest:E isso é intencional.newtab-sports-widget-delayed/newtab-sports-widget-postponed—browser/browser/newtab/newtab.ftl— two distinct match statuses both render asAdiado. Suggest:Atrasadofor delayed, keepAdiadofor postponed. Same collision innewtab-sports-widget-match-aria-label-upcoming-delayedvs-postponed.
browser
split-view-menuitem-reverse-tabs(.label) —browser/browser/tabbrowser.ftl— the dev comment states "Reverse" is a verb, "reverse the order". Current:Reverter abas(= revert/undo) → Suggest:Inverter abas(which is whattab-context-reverse-split-viewalready uses)webrtc-sharing-menu(.label) —browser/browser/webrtcIndicator.ftl— en-US "Tabs sharing devices" = tabs that are using camera/mic. Current:Abas compartilhadas em dispositivos→ Suggest:Abas compartilhando dispositivostabbrowser-confirm-close-all-duplicate-tabs-text—browser/browser/tabbrowser.ftl— en-US "The last active tab will stay open" (one tab). Current:As com atividade mais recente permanecerão abertas.→ Suggest:A aba com atividade mais recente permanecerá aberta.menu-bookmarks-all-tabs(.label) —browser/browser/menubar.ftl— en-US "Bookmark All Tabs…"; without the object the action is undefined. Current:Adicionar todas as abas…→ Suggest:Adicionar todas as abas aos favoritos…main-context-menu-video-take-snapshot(.label) —browser/browser/browserContext.ftl— translated identically tomain-context-menu-take-screenshot, so two different items in the same menu share a label. Current:Capturar tela…→ Suggest:Capturar imagem do vídeo…genai-chatbot-summarize-sidebar-generic-subtitle—browser/browser/genai.ftl— en-US "sparkles button" became "brightness button". Current:no botão de brilho→ Suggest:no botão de estrelasfirefoxview-closed-tabs-description2—browser/browser/firefoxView.ftl— en-US "in this window". Current:…que você fechou neste computador.→ Suggest:…nesta janela.(the adjacent placeholder string already says "nesta janela")existing-user-tou-message—browser/browser/termsofuse.ftl— en-US "take a moment". Current:Dê uma pausa para revisar e aceitar.→ Suggest:Reserve um momento para revisar e aceitar.report-broken-site-panel-reason-choose(.label) —browser/browser/reportBrokenSite.ftl— en-US "Choose reason". Current:Escolha→ Suggest:Escolha um motivoorigin-controls-state-temporary-access—browser/browser/originControls.ftl— en-US "for this visit" = for the duration of the visit. Current:dados desta visita→ Suggest:dados nesta visitapopup-warning-exceeded-with-redirect-message—browser/browser/browser.ftl— the count is attached to the wrong noun; en-US counts pop-up windows. Suggest:…impediu que este site abrisse mais de { $popupCount } janelas, além de redirecionamentos.turn-on-scheduled-backups-description—browser/browser/backupSettings.ftl— the second condition became a coordinated action. Current:Você pode restaurar se houver um problema ou usar um novo dispositivo.→ Suggest:Você pode restaurá-la se houver um problema ou se você tiver um novo dispositivo.about-logins-vulnerable-alert-text2—browser/browser/aboutLogins.ftl— en-US hedges ("was likely in a data breach"); pt-BR asserts it and shifts the subject to "um site". Suggest:…usada em outra conta que provavelmente foi afetada por um vazamento de dados.addon-install-error-incorrect-hash,addon-local-install-error-incorrect-hash—browser/browser/addonNotifications.ftl— reduced relative clause read as an attributive. Current:…não corresponde à extensão { -brand-short-name } esperada.→ Suggest:…não corresponde à extensão que o { -brand-short-name } esperava.pocket-panel-saved-removed-updated—browser/browser/aboutPocket.ftl— "from Saves" dropped, making it identical topocket-panel-saved-page-removed. Suggest:Página removida do que você salvouabout-private-browsing-focus-promo-cta—browser/browser/aboutPrivateBrowsing.ftl— en-US "Download". Current:Instale o { -focus-brand-name }→ Suggest:Baixe o { -focus-brand-name }customkeys-nav-reload-skip-cache—browser/browser/customkeys.ftl— en-US "Override Cache" = bypass. Current:Recarregar (substituir cache)→ Suggest:Recarregar (ignorar cache)downloads-blocked-download-detailed-info—browser/browser/downloads.ftl— en-US "broken". Current:O site pode estar ruim, ou está tentando…→ Suggest:O site pode estar com problemas ou estar tentando…aiwindow-firstrun-memories-title—browser/browser/aiWindow.ftl— the comparative attaches to "helpful", not to the count. Current:Mais respostas úteis, nos seus termos→ Suggest:Respostas mais úteis, nos seus termosaiwindow-feedback-choose-any—browser/browser/aiWindow.ftl— a multi-select prompt read as single choice. Current:Escolha qualquer um que se aplique→ Suggest:Escolha todas as opções que se aplicamfirefox-relay-offer-why-to-use-relay-1—browser/browser/firefoxRelay.ftl— the final clause turns "with your email hidden" into "stays safe"; the en-US string is identical tofirefox-relay-and-fxa-popup-notification-first-sentence. Suggest aligning with that translation.upgrade-vpn-title—browser/browser/ipProtection.ftl— en-US "beyond the browser". Current:Tenha proteção extra, além da no navegador→ Suggest:Tenha proteção extra, além do navegadoripprotection-location-selection-callout-description-1—browser/browser/ipProtection.ftl— Current:…permite você escolher entre vários locais …, ou deixar ser escolhido o mais rápido para você.→ Suggest:…permite que você escolha entre vários locais …, ou deixe que a gente escolha o mais rápido para você.about-unloads-column-processes(.title) —browser/browser/aboutUnloads.ftl— Current:IDs dos processos encarregados pelo conteúdo da aba→ Suggest:IDs dos processos que hospedam o conteúdo da abaextension-default-theme-description—browser/browser/appExtensionFields.ftl— the missing preposition makes the noun list attach to "sistema operacional". Current:Seguir a configuração do sistema operacional de botões, menus e janelas.→ Suggest:…do sistema operacional para botões, menus e janelas.preferences-ai-controls-tab-group-suggestions-control(.description) —preferences.ftl— en-US "Get suggestions to name and organize your tabs." Current:Receber sugestões de nome e organizar suas abas.→ Suggest:Receba sugestões para nomear e organizar suas abas.permissions-header3(.description) —preferences.ftl— en-US "Manage what websites can access…". Current:Gerencie quais sites podem acessar, controlar ou acionar.→ Suggest:Gerencie o que os sites podem acessar, controlar ou acionar.referrals-section-header(.description) —preferences.ftl— the object is dropped, leaving the sentence incomplete. Current:Convidar a usar o navegador que põe a privacidade em primeiro lugar.→ Suggest:Convide alguém a escolher o navegador que põe a privacidade em primeiro lugar.colors-text-and-background—browser/browser/preferences/colors.ftl— group header for the two pickers below. Current:Cores padrão(= Default colors) → Suggest:Texto e fundoconnection-proxy-socks—browser/browser/preferences/connection.ftl— "Host" is not "Domínio" (which is already used for Domain inpermissions-doh-col). Current:Domínio SOCKS→ Suggest:Servidor SOCKSfxa-qrcode-error-title—browser/browser/preferences/fxaPairDevice.ftl— en-US "Pairing unsuccessful." Current:Conexão falhou.→ Suggest:Falha no pareamento.autofill-address-country—browser/browser/preferences/formAutofill.ftl— en-US distinguishes "Country or Region" from "Country" (autofill-address-country-only); both arePaís. Suggest:País ou regiãohome-prefs-highlights-option-most-recent-download(.label) —preferences.ftl/newtab.ftl— en-US is singular. Current:Downloads mais recentes→ Suggest:Download mais recentemore-from-moz-mozilla-monitor-global-description—moreFromMozilla.ftl— Current:Receba alertas quando seus dados estiverem em vazamentos de dados.→ Suggest:Receba alertas quando seus dados aparecerem em um vazamento.performance-use-recommended-settings-desc—preferences.ftl— contains a sentence that no longer exists in en-US: "Desmarque se quiser alterar o uso de aceleração de hardware." Suggest: drop it.newtab-sports-widget-keep-tabs—newtab.ftl— the dev comment explains "Keep tabs on" is an idiom for staying updated; it was translated with browser tabs. Current:Mantenha abas sobre a Copa do Mundo→ Suggest:Fique por dentro da Copa do Mundonewtab-sports-widget-loading-more—newtab.ftl— "matches" = football matches. Current:Carregando mais ocorrências…→ Suggest:Carregando mais jogos…newtab-sports-widget-round-16/newtab-sports-widget-round-32—newtab.ftl— Brazilian football terms. Current:Rodada de 16/Rodada de 32→ Suggest:Oitavas de final/16 avos de final(the file already uses "Quartas de final"/"Semifinais")newtab-sports-widget-upcoming—newtab.ftl— Current:Seguintes→ Suggest:Próximos(matchesnewtab-sports-widget-menu-view-upcoming= "Ver próximos")newtab-sports-widget-message-day-in-play-title—newtab.ftl— Current:Acompanhe os jogos diariamente com widgets do { -brand-product-name }→ Suggest:Mantenha seu dia em jogo com os widgets do { -brand-product-name }newtab-section-follow-highlight-subtitle—newtab.ftl— Current:Siga o que você se interessa para aparecer mais do que você gosta.→ Suggest:Siga seus interesses para ver mais do que você gosta.home-prefs-firefox-home-disabled-notice(.message) —newtab.ftl— Current:…defina novas abas ou novas janelas no { -firefox-home-brand-name }.→ Suggest:…como { -firefox-home-brand-name }.newtab-appearance-explore-more-themes-button—newtab.ftl— "Explore more themes" and "See more themes" (newtab-appearance-more-themes-button) both becameMais temas. Suggest:Explorar mais temasfor the former.spotlight-public-wifi-vpn-body—asrouter.ftl— en-US "coffee shops". Current:aeroportos e restaurantes→ Suggest:aeroportos e cafésset-default-menu-message-split-layout-title—asrouter.ftl— the[macos]variant ("Keep { -brand-short-name } at your fingertips") was translated identically to*[other], losing the Dock-specific message. Suggest:Tenha o { -brand-short-name } sempre à mãomr2022-onboarding-welcome-pin-header—onboarding.ftl— Current:Abra-se uma internet incrível(ungrammatical) → Suggest:Descubra uma internet incrível(the dev comment explicitly allows "discover")mr1-onboarding-get-started-primary-button-label—onboarding.ftl— a button label rendered as a noun. Current:Introdução→ Suggest:Começarcreate-backup-screen-1-subtitle—onboarding.ftl— en-US "in 1–2 minutes". Current:em menos de 2 minutos→ Suggest:em 1 a 2 minutospolicy-DisabledCiphers—policies-descriptions.ftl— the policy disables specific ciphers, not encryption. Current:Desativar criptografia.→ Suggest:Desativar cifras.policy-PostQuantumKeyAgreementEnabled—policies-descriptions.ftl— "key agreement" isacordo de chavesinpolicy-CNSA2KeyAgreementEnabled. Current:Ativar aceitação de chave pós-quantum para TLS.→ Suggest:Ativar acordo de chaves pós-quântico para TLS.policy-Windows10SSO—policies-descriptions.ftl— three account types collapsed into one. Current:…em contas da Microsoft no trabalho e na escola.→ Suggest:…em contas da Microsoft, corporativas e escolares.policy-DisableDefaultBrowserAgent—policies-descriptions.ftl— modifier scope. Current:o agente padrão do navegador→ Suggest:o agente de navegador padrãosafeb-palm-advisory-desc—safebrowsing/blockedSite.ftl— "Advisory" is the notice, not consulting. Current:Assessoria fornecida por…→ Suggest:Aviso fornecido por…
toolkit
cert-error-revoked-certificate,cert-error-bad-signature,cert-error-key-pinning-failure,cert-error-bad-der,cert-error-cert-not-in-name-space,cert-error-inadequate-cert-type,cert-error-path-len-constraint-invalid,cert-error-invalid-key,cert-error-unknown-critical-extension,cert-error-extension-value-invalid,cert-error-untrusted-issuer,cert-error-untrusted-cert,cert-error-invalid-integer-encoding,cert-error-unsupported-keyalg,cert-error-issuer-no-longer-trusted,cert-error-signature-algorithm-mismatch,fp-certerror-revoked-why-dangerous-body,fp-certerror-untrusted-issuer-why-dangerous-body—toolkit/toolkit/neterror/certError.ftl— 18 strings render en-US "the certificate provided for { $hostname }" asfornecido **por** { $hostname }, i.e. the host is described as the issuer. Suggest:fornecido para { $hostname }.about-telemetry-show-subsession-data—aboutTelemetry.ftl— "subsession" → "subsection". Current:Mostrar dados da subseção→ Suggest:Mostrar dados da subsessãoabout-processes-total-memory-size-changed(.title) —aboutProcesses.ftl— en-US "Evolution:". Current:Execução:→ Suggest:Evolução:certificate-viewer-fingerprints—certviewer.ftl— cert hashes, not thumbnails. Current:Miniaturas de chaves→ Suggest:Impressões digitaiscertificate-viewer-ocsp-stapling—certviewer.ftl— not timestamping. Current:Estampa de tempo do OCSP→ Suggest:OCSP Stapling/Grampeamento de OCSPcertificate-viewer-common-name—certviewer.ftl— a cert field, not a company field. Current:Nome da empresa→ Suggest:Nome comum (CN)certificate-viewer-given-name—certviewer.ftl— duplicatescertificate-viewer-name=Nome; the dev comment says it is the non-surname part of a person's name. Suggest:Nome própriocopy-raw-data-to-clipboard-label(aboutSupport.ftl) andthird-party-button-copy-to-clipboard(aboutThirdParty.ftl) — en-US "Copy raw data to clipboard". Current (both):Copiar como estrutura de dados→ Suggest:Copiar dados brutos para a área de transferênciatitle-label—aboutPlugins.ftl— the page title "About Plugins" was translated as the list heading, duplicatinginstalled-plugins-label. Current:Plugins instalados→ Suggest:Sobre os pluginsabout-webrtc-aec-logging-on-state-msg,about-webrtc-aec-logging-toggled-on-state-msg—aboutWebrtc.ftl— "caller" is the person on the call. Current:fale com o remetente da chamada→ Suggest:fale com o interlocutor da chamadaabout-webrtc-sdp-set-at-timestamp-local,-remote—aboutWebrtc.ftl— headers stating when the SDP was set, not an action. Current:Definir SDP local na estampa de tempo …→ Suggest:SDP local definido na estampa de tempo …about-webauthn-results-pin-auth-blocked-error—aboutWebauthn.ftl— "in a row" = consecutively. Current:Tentativas demais falharam em seguida.→ Suggest:Houve tentativas falhas demais em sequência.url-classifier-content-classifier-verdict-miss—url-classifier.ftl— "Miss" = no match (there is a separate error verdict). Current:Falha→ Suggest:Sem correspondênciaabout-logging-title—aboutLogging.ftl— about:logging is no longer network-only. Current:Log de tráfego de rede→ Suggest:Sobre o registro em logrecommended-theme-1—aboutAddons.ftl— en-US "Feeling creative?". Current:Sentindo criatividade?→ Suggest:Está com vontade de criar?addon-detail-updates-label—aboutAddons.ftl— en-US "Allow automatic updates"; the permission verb is dropped, making it identical todetail-update-type. Current:Atualização automática→ Suggest:Permitir atualizações automáticasabout-reader-font-weight-light—aboutReader.ftl— this is font weight, and it collides withabout-reader-color-light-theme=Claro. Current:Claro→ Suggest:Finathird-party-detail-publisher—aboutThirdParty.ftl— Current:Publicador(calque) → Suggest:Fornecedor/Editormozilla-pkix-error-invalid-integer-encoding—nsserrors.ftl— en-US "longer than necessary". Current:codificações que não são necessárias→ Suggest:codificações mais longas do que o necessário(cert-error-invalid-integer-encodinggets it right)mozilla-pkix-error-ocsp-response-for-cert-missing—nsserrors.ftl/.properties— Current:não inclui um estado para poder verificar o certificado→ Suggest:não inclui um status do certificado que está sendo verificadosec-error-filing-key—nsserrors.ftl/.properties— en-US "refiling". Current:Erro ao preencher a chave→ Suggest:Erro ao rearquivar a chavesec-error-unknown-critical-extension—nsserrors.ftl— Current:extensão obrigatória desconhecida→ Suggest:extensão crítica desconhecida(sec-error-crl-v1-critical-extensionandcertError.ftlboth use "crítica")sec-error-crl-expired—nsserrors.ftl— Current:A CRL para emissores de certificados expirou.→ Suggest:A CRL do emissor do certificado expirou.sec-error-bad-info-access-method—nsserrors.ftl— Current:Informação do método de acesso desconhecido…→ Suggest:Método de acesso a informações desconhecido…SSL_ERROR_INAPPROPRIATE_FALLBACK_ALERT—security/manager/chrome/pipnss/nsserrors.properties— en-US: the client downgraded. Current:porque o cliente suporta uma versão TLS mais antiga do que é suportado pelo servidor.→ Suggest:porque o cliente rebaixou a conexão para uma versão do TLS anterior à suportada pelo servidor.SSL_ERROR_WEAK_SERVER_EPHEMERAL_DH_KEY— same file — the protocol message name is scrambled. Current:na mensagem de handshake da chave do servidor de troca→ Suggest:na mensagem de handshake Server Key ExchangeSEC_ERROR_KRL_BAD_SIGNATURE— same file — leftover text from the preceding entry. Current:A validade da KRL do certificado deste site tem uma assinatura inválida.→ Suggest:A KRL do certificado deste site tem uma assinatura inválida.MOZILLA_PKIX_ERROR_V1_CERT_USED_AS_CA— same file — en-US "that is not a trust anchor". Current:que não é confiado→ Suggest:que não é uma âncora de confiançacertmgr-fingerprint-sha-256(.label) —security/manager/security/certificates/certManager.ftl— en-US "SHA-256 Fingerprint"; "Assinatura" is a different cert field. Current:Assinatura SHA-256→ Suggest:Impressão digital SHA-256clientAuthKeyUsages(pippki.properties) andclient-auth-cert-details-key-usages(pippki.ftl) — en-US "Key Usages" (the key-usage extension). Current:Chaves usadas→ Suggest:Usos da chave(already used bySEC_ERROR_INADEQUATE_KEY_USAGE)pdfjs-document-properties-creator—pdfviewer/viewer.ftl— "Creator" is the authoring application, and it collides with…-creation-date(Data da criação:). Current:Criação:→ Suggest:Criador:pdfjs-editor-add-signature-dialog-label—pdfviewer/viewer.ftl— Current:…salvar a assinatura usar novamente.→ Suggest:…salvar a assinatura para usar novamente.datetime-time(.aria-label) —global/datetimebox.ftl— label for the time field only. Current:Data e hora→ Suggest:Horadatetime-calendar(.aria-label) —global/datetimebox.ftl— Current:Agenda→ Suggest:Calendáriowebext-perms-description-proxy—global/extensionPermissions.ftl— en-US "browser proxy settings". Current:configurações de proxy de navegação→ Suggest:configurações de proxy do navegadorcsp-error-illegal-protocol—global/cspErrors.ftl— the scheme's colon is read as sentence punctuation, splitting the phrase. Current:contém um { $scheme } proibido: origem do protocolo→ Suggest:contém uma origem de protocolo { $scheme }: proibidaprofiledowngrade-window2(.title) —global/profileDowngrade.ftl— "launched". Current:Você lançou uma versão mais antiga…→ Suggest:Você iniciou uma versão mais antiga…theme-picker-tide(.label) andtheme-picker-tide-aria-label—global/theme-picker.ftl— the dev comment says "Refers to ocean tides". Current:Onda→ Suggest:Marévideocontrols-closed-caption-off(.offlabel) —global/videocontrols.ftl— a state label, not a command. Current:Desligar→ Suggest:Desligadopictureinpicture-subtitles-label—pictureinpicture.ftl— false friend; the siblingpictureinpicture-subtitles-btnusesLegendas. Current:Subtítulos→ Suggest:Legendaswebauthn-related-origin-create-header,webauthn-related-origin-use-header—webauthnDialog.ftl— "passkey" rendered assenha, conflicting withwebauthn-a-passkey-label(chave de acesso). Suggest:chave de acessowebauthn-pin-auth-blocked-prompt—webauthnDialog.ftl— "power cycle (unplug and re-insert)" refers to the security key, not a battery charger. Current:precisa de um ciclo de carregamento de bateria (desconectar e conectar novamente o carregador)→ Suggest:precisa ser desconectado e conectado novamentecrashreporter-crash-identifier—toolkit/crashreporter/crashreporter.ftl— en-US "Crash ID" translated the same as "Report ID" (id-headinginaboutcrashes.ftl). Current:ID do relatório: { $id }→ Suggest:ID da falha: { $id }experimental-features-link-previews-description-no-ai—firefoxlabs/features.ftl— en-US "reading time". Current:hora da leitura→ Suggest:tempo de leitura(the sibling…-descriptiongets it right)generatedPasswordWillBeSaved—toolkit/chrome/passwordmgr/passwordmgr.properties— en-US has no mention of an account. Current:%S salvará a senha com sua conta deste site.→ Suggest:O %S salvará esta senha para este site.ScriptDialogLabel—toolkit/chrome/global/commonDialogs.properties— a checkbox label, not a question. Current:Bloquear janelas de confirmação desta página?→ Suggest:Impedir que esta página crie mais janelas de diálogo
devtools
about-debugging-connection-prompt-enable-button/-disable-button—aboutdebugging.ftl— en-US "Enable/Disable connection prompt": the button toggles the prompt. Current:Pedido de ativar conexão/Pedido de desativar conexão→ Suggest:Ativar pedido de conexão/Desativar pedido de conexãoabout-debugging-page-title-runtime-page—aboutdebugging.ftl— "Runtime" is the page name, not a duration. Current:Depuração - Tempo de execução / { $selectedRuntimeId }→ Suggest:Depuração - Runtime / { $selectedRuntimeId }about-debugging-setup-usb-step-enable-dev-menu2,-enable-debug2—aboutdebugging.ftl— the Android UI the string points at is "Opções do desenvolvedor". Current:menu de desenvolvimento→ Suggest:menu do desenvolvedorperftools-thread-timer(.title) —perftools.ftl— en-US "The thread handling timers"; subject and object are swapped. Current:Os timers de manipulação de threads (…)→ Suggest:A thread que gerencia os timers (…)inspector-element-specific-pseudo-classes-heading—inspector.ftl— en-US "Element-specific pseudo-classes". Current:Pseudo-classes de elementos específicos→ Suggest:Pseudo-classes específicas do elementonetwork-menu-summary-finish—netmonitor.ftl— en-US "Finish:" is when the last request finished;Tempoalso collides withnetwork-menu-summary-tooltip-finish. Current:Tempo: { $formattedTime }→ Suggest:Conclusão: { $formattedTime }toolbox-meatball-menu-noautohide-label—toolbox.ftl— en-US "Disable Popup Auto-Hide"; per the dev comment it keeps popups/panels visible on blur. Current:Desativar ocultamento automático de janelas ou abas→ Suggest:Desativar ocultamento automático de popupsinactive-scroll-padding-when-not-scroll-container—tooltips.ftl— Current:pois não desliza (scroll)→ Suggest:pois não é rolável(pt-BR uses "rolar"/"rolagem"; the English gloss is not in the source)whypaused-debugger-statement—devtools/shared/debugger-paused-reasons.ftl— per the dev comment this is a literaldebuggerstatement in the page's code. Current:Pausado em instrução do depurador→ Suggest:Pausado em instrução debuggerserviceworker-list-aboutdebugging—application.ftl— en-US "Open about:debugging for Service Workers from other domains". Current:Abrir <a>about:debugging</a> de service workers de outros domínios→ Suggest:…para ver service workers de outros domínios
dom / security / netwerk
netTimeout—dom/chrome/appstrings.properties— en-US "The operation timed out"; the string is also used for non-connection operations. Current:A conexão atingiu o tempo limite→ Suggest:A operação atingiu o tempo limitefileAlreadyExistsError—dom/chrome/nsWebBrowserPersist.properties— en-US: the clash is with the_filesdirectory name. Current:já existe um arquivo de mesmo nome no diretório ‘_files’→ Suggest:já existe um arquivo com o mesmo nome do diretório ‘_files’switch—dom/chrome/accessibility/AccessFu.properties— a role name (noun), not the action. Current:trocar→ Suggest:interruptorunderscript— same file — MathMLmunderscript position. Current:sublinhado(= underlined) → Suggest:subscrito abaixooverscript/superscript— same file — both render assobrescrito, so a screen reader cannot distinguish the two MathML roles. Suggest differentiating.marquee—dom/chrome/accessibility/mac/accessible.properties— the scrolling-text ARIA role. Current:marcação→ Suggest:letreiropageofpages—dom/chrome/layout/printing.properties— the connector was left in English, so printed footers read "1 of 5". Current:%1$d of %2$d→ Suggest:%1$d de %2$dCannotEncodeAllUnicode—dom/chrome/layout/HtmlForm.properties— en-US "which cannot encode all Unicode characters". Current:que não tem todos os caracteres Unicode→ Suggest:que não pode codificar todos os caracteres UnicodeignoringStrictDynamic—dom/chrome/security/csp.properties— en-US "Ignoring source". Current:Ignorar código “%1$S”→ Suggest:Ignorando a fonte “%1$S”SanitizerRcvdNoInput—dom/chrome/security/security.properties— Current:Recebido vazio ou sem entrada.→ Suggest:Entrada vazia ou ausente.PushMessageBadSalt—dom/chrome/dom/dom.properties— en-US "must be base64url-encoded", andbase64urlmust not be split. Current:deve incluir codificado em base64-url→ Suggest:deve estar codificado em base64urlxml-nostylesheet-xslt-disabled—dom/dom/XMLPrettyPrint.ftl— the relative clause is lost. Current:Ele usa XSLT, não há suporte no navegador. … que permita ver.→ Suggest:Ele usa XSLT, que não tem suporte no navegador. … que permita visualizá-lo.LocalNetworkAccessDetected—netwerk/necko.properties— en-US "prompt action" = the action taken in the permission prompt. Current:ação imediata: %8$S→ Suggest:ação do prompt: %8$SCookieAllowedForFpiByHeuristic—netwerk/necko.properties— en-US "First-Party isolation". Current:para o isolamento próprio “%2$S”→ Suggest:para o isolamento de primeira parte (First-Party) “%2$S”TrackerUriBlocked—netwerk/necko.properties— en-US "The resource at". Current:O conteúdo “%1$S” foi bloqueado…→ Suggest:O recurso em “%1$S”…(as in the three sibling strings)
toolkit/toolkit/intl/languageNames.ftl:
language-name-ie— duplicateslanguage-name-ia(Interlíngua); Interlingue/Occidental is a different constructed language. → Suggest:Interlinguelanguage-name-ng— Current:Dongo(initial N dropped; not a language name) → Suggest:Ndongalanguage-name-rm— Current:Rhaeto-romance(hybrid English/French form) → Suggest:Reto-romano/Romanchelanguage-name-or— the source was renamed to "Odia". Current:Oriya→ Suggest:Oriá/Odialanguage-name-dsb/-hsb/-wen— three spellings and orders for the same family:Sorábio Baixo/Alto sórbio/Sórbio→ Suggest:Baixo sorábio/Alto sorábio/Sorábiolanguage-name-ttvslanguage-name-crh—TatáricovsTártaro da Crimeia→ Suggest:Tártaroforttlanguage-name-nsovslanguage-name-st—Soto setentrionalvsSoto do sul→ Suggest:Soto do norte/Soto do sul(matching thend/nrpair)
toolkit/toolkit/intl/regionNames.ftl:
region-name-sx— duplicatesregion-name-mf(São Martinho), so the two halves of the island are indistinguishable. → Suggest:Sint Maartenregion-name-vc— Current:São Vincente e Granadinas→ Suggest:São Vicente e Granadinas(spelling)region-name-cm— en-US uses the short name "Cameroon"; no other entry invents a long form. Current:República dos Camarões→ Suggest:Camarõesregion-name-cz-2019— this ID exists because en-US moved to the short name "Czechia". Current:República Tcheca→ Suggest:Tchéquiaregion-name-pg— hyphen misplaced. Current:Papua Nova-Guiné→ Suggest:Papua-Nova Guinéregion-name-tl— Current:Timor Leste→ Suggest:Timor-Leste(official hyphenated form, matching en-US)region-name-qx— agreement. Current:Ilhas Glorioso→ Suggest:Ilhas Gloriosas- Inconsistent with
newtab.ftl:region-name-ba=Bósnia-Herzegovinavsnewtab-sports-widget-team-name-label-bih=Bósnia e Herzegovina. newtab-clock-city-us-new-york(Nova Iorque) vsnewtab-weather-static-city(Cidade de Nova York) — same city, two spellings in one file.newtab-clock-city-us-washington-dc— Current:Washington D.C.→ Suggest:Washington, D.C.
genai-onboarding-copilot-learn—browser/browser/genai.ftl— brand misspelled. Current:Mais informações sobre o Copitor→ Suggest:Saiba mais sobre o Copilotperplexity-callout-theme-2-title,perplexity-callout-theme-1-subtitle-1—browser/browser/featureCallout.ftl— brand misspelled. Current:Perflexity→ Suggest:Perplexity(the same file spells it correctly in three other strings; these are the only two wrong instances in the tree)glean-debug-ping-viewer-brand-name—toolkit/toolkit/about/aboutGlean.ftl— the file header asks for Glean brand names in English, anddebugois not a word. Current:Visor de ping de debugo do { -glean-brand-name }→ Suggest:{ -glean-brand-name } Debug Ping ViewerWi-Fi→WiFi(9 strings; en-US uses the trademarked hyphenated form):ipprotection-feature-introduction-title-captive-portal,ipprotection-feature-introduction-description-captive-portal,upgrade-vpn-description,ipprotection-bandwidth-upgrade-text,ip-protection-vpn-upgrade-link(.description) —ipProtection.ftl;about-private-browsing-hide-activity-1—aboutPrivateBrowsing.ftl;spotlight-public-wifi-vpn-header,newtab-privacy-message-promo-vpn-1,newtab-privacy-message-promo-vpn-2—asrouter.ftl/newtab.ftl;neterror-dns-not-found-offline-hint-reconnect,fp-neterror-offline-what-can-you-do-body—netError.ftl.policy-DisableFirefoxScreenshots—policies-descriptions.ftl— the dev comment says "Firefox Screenshots is the name of the feature, and should not be translated". Current:Desativar o recurso de captura de tela do Firefox.→ Suggest:Desativar o recurso Firefox Screenshots.appmenuitem-banner-update-restart(.label) —browser/browser/appmenu.ftl— hardcodes "Firefox" instead of the brand term, and replaces the em dash with a comma. Current:Atualização disponível, reiniciar o Firefox→ Suggest:Atualização disponível — reiniciar agoraprofiles-launch-profile—toolkit/toolkit/about/aboutProfiles.ftl— hardcodes "Firefox" where every other string in the file uses the brand term. Current:Abrir outro Firefox com este perfil→ Suggest:Abrir outro { -brand-short-name } com este perfilErrorNoSettingsPath—toolkit/crashreporter/crashreporter.ini— leaves the product name in English while the rest of the file uses "relator de falhas". Suggest:…as configurações do relator de falhas.- Term-parameter dropped — en-US passes
-fxaccount-brand-name(capitalization: "sentence")but pt-BR omits it, so the term falls back to*[title]and renders "Conta Firefox" mid-sentence:fxa-signout-dialog2-title(sync.ftl),login-intro-instructions-fxa(aboutLogins.ftl),appmenu-fxa-header2(appmenu.ftl),toolbar-button-fxaccount(.label,.tooltiptext) (browserContext.ftl). The pt-BR term correctly defines both variants. PushMessageBadEncodingHeader—dom/chrome/dom/dom.properties— a do-not-translate token was split by a space. Current:‘aesgcm 128‘→ Suggest:‘aesgcm128’GTK2Conflict2,WinConflict2—dom/chrome/dom/dom.properties— the comment says do not localizekey=,modifiers=,id=. Current:tecla=“%S” modificadores=“%S” id=“%S”→ Suggest: keep the English attribute names.CSSContainerRuleSingleConditionWarning—dom/chrome/dom/dom.properties— an API name broken by a space. Current:use CSSContainerRule. conditions.→ Suggest:use CSSContainerRule.conditions.RequestStorageAccessPermissionsPolicy—dom/chrome/dom/dom.properties— the comment says do not translate "Permissions Policy" andstorage-access. Current:o recurso de acesso ao armazenamento é bloqueado pela diretiva “Permissions”→ Suggest:o recurso storage-access é bloqueado pela Permissions Policywebconsole-commands-usage-block—devtools/shared/webconsole-commands.ftl— the underscore was dropped from the literal argument name, so the prose no longer matches the:block URL_STRINGusage line two lines above. Current:um argumento URLSTRING→ Suggest:um argumento URL_STRINGcss-selector-warning-sibling-combinator-after-scope—devtools/client/tooltips.ftl— the comment marks only:scopeas do-not-translate, but the subject noun phrase was left in English. Current:Sibling selectors após <strong>:scope</strong>…→ Suggest:Seletores irmãos após <strong>:scope</strong>…AttributeParsingError,AttributeParsingErrorNoTag,LengthParsingError—dom/chrome/mathml/mathml.properties— the note says to followcss.propertiesquoting conventions, which use‘…’. Current:'%1$S'→ Suggest:‘%1$S’action-log-read-page—browser/browser/aiWindowContent.ftl— the comment says "Read is past tense, to indicate that the action has been completed". Current:Ler o conteúdo da página→ Suggest:Leu o conteúdo da página(the siblingsaction-log-searched-web,-checked-memoriesare past tense)crashed-subframe-title(.title) —browser/browser/contentCrash.ftl— the comment requires this to matchcrashed-subframe-messageminus markup; the wording and clause order differ.default-browser-guidance-notification-v2-body—browser/browser/defaultBrowserNotification.ftl— the comment says the quoted text is a keyword to look for in the Windows Settings app, but the same label is quoted two ways:“Definir padrão”in…-body-instruction-win11vs“Definir como padrão”here.browser-main-private-window-title—browser/browser/browser.ftl— the comment states only macOS should use a-separator, but both[macos]and*[other]are identical, making thePLATFORM()selector pointless.trademarkInfo—browser/branding/official/brand.ftl— the legal entity name is translated. Current:marcas registradas da Fundação Mozilla→ Suggest:…da Mozilla Foundation(also inmr2022-onboarding-gratitude-subtitleandonboarding-gratitude-security-and-privacy-subtitle). Maintainer call — flagging because en-US treats it as a proper name.
addon-permissions-empty—aboutAddons.ftl—nenhum permissão→nenhuma permissãoabout-logins-confirm-remove-all-sync-dialog-message(*[other]) —aboutLogins.ftl—Serão removidas todos as contas→todas as contascrashed-report-sent—aboutTabCrashed.ftl—Relato do falha→Relato da falhacrashreporter-plea—toolkit/crashreporter/crashreporter.ftl—um relatório do falha→um relatório de falhaabout-webrtc-aec-logging-toggled-off-state-msg,about-webrtc-aec-logging-off-state-msg—aboutWebrtc.ftl—Arquivos de log capturados podem ser encontradas→encontrados(also fixes the stray lowercase initial in the second string)abuse-report-messagebar-error-recent-submit—abuseReports.ftl—outra denúncia foi enviado→foi enviadathird-party-tag-background(.title) —aboutThirdParty.ftl— subject is "este módulo":foi carregada→foi carregadoabout-processes-web-isolated-property-private—aboutProcesses.ftl— the other items in the list are masculine:privativa→privativoabout-glean-label-for-tag-pings-with-requirements—aboutGlean.ftl—Defina um tag→Defina uma tag(the same file uses "uma tag de debug")discopane-intro3—aboutAddons.ftl— subject "Extensões e temas" is mixed-gender → masculine:Elas podem melhorar→Eles podem melhorar(discopane-introalready uses "Eles")about-service-workers-warning-no-service-workers—aboutServiceWorkers.ftl—Nenhum Service Workers registrado.→Nenhum Service Worker registrado.rights-webservices-term-7—aboutRights.ftl— "parte" is feminine:for identificado como inválido→for identificada como inválidacert-error-invalid-key—certError.ftl— refers to "chave":Provavelmente é pequeno demais→pequena demaissec-error-unknown-aia-location-type—nsserrors.ftl—Tipo de localização desconhecida na extensão do certificado AIA→Tipo de localização desconhecido na extensão AIA do certificadofp-neterror-invalid-header-value-intro—netError.ftl—caracteres vazios, não permitido pelas normas→não permitidos pelas normaspdfjs-editor-alt-text-decorative-tooltip—pdfviewer/viewer.ftl— refers to "imagem":Marcado como decorativa→Marcada como decorativavideocontrols-picture-in-picture-explainer3—global/videocontrols.ftl—Mais telas é mais diversão.→Mais telas, mais diversão.security-privacy-issue-warning-popup-blocker(.description) —preferences.ftl—Abertura de janelas é intrusivo→A abertura de janelas é intrusivaappearance-window-density-touch(.description) —preferences.ftl—…maiores, otimizado para telas de toque→otimizadosabout-private-browsing-nova-info-subheader,-subheader2—aboutPrivateBrowsing.ftl— mixed-gender subject "pesquisas e acessos" → masculine:serão excluídas→serão excluídosurlbar-dismissal-acknowledgment-weather,urlbar-trending-dismissal-acknowledgment,urlbar-result-dismissal-acknowledgment-market,urlbar-result-dismissal-acknowledgment-all—browser.ftl— postposed plural subject:Não irá mais aparecer sugestões→Não irão mais aparecer sugestões;Não aparecerá mais pesquisas populares→Não aparecerãoidentity-description-insecure,identity-description-active-loaded-insecure—browser.ftl— only the head noun pluralizes:cartões de créditos→cartões de créditoabout-unloads-no-unloadable-tab—aboutUnloads.ftl—abas a ser descarregadas→abas a serem descarregadasactive-policies-tab,active-policies-tab-title(.title) —aboutPolicies.ftl— "diretivas" is plural:Ativa→Ativasipprotection-message-bandwidth-warning(.message),-mb(.message),ip-protection-bandwidth-warning-infobar-message-90,-90-mb—ipProtection.ftl—GB restante este mês→GB restantes este mês;Tem { $usageLeft } GB restante→Você tem { $usageLeft } GB restantes(the-75sibling is correct)newtab-topsites-url-validation—newtab.ftl—É necessário uma URL válida→É necessária uma URL válidanewtab-privacy-message-promo-signin-1—newtab.ftl— mixed-gender list → masculine plural:favoritos, senhas e abas criptografadas→criptografadosnewtab-section-toast-block—newtab.ftl—Não aparecerá mais histórias→Não aparecerão mais históriasnewtab-wallpaper-light-color,newtab-wallpaper-dark-color—newtab.ftl— colors must agree with "Formas":Formas azul, rosa e amarelo/Formas vermelho e azul→Formas em tons de azul, rosa e amarelo/Formas em tons de vermelho e azul(matching thenewtab-wallpaper-abstract-*pattern)cfr-doorhanger-doh-body—asrouter.ftl—suas requisição de DNS→suas requisições de DNSmr2022-onboarding-get-started-primary-subtitle—onboarding.ftl— refers to "versão":Está repleto→Está repletafx-backup-confirmation-screen-easy-setup-item-text-3—onboarding.ftl—métodos de pagamentos→métodos de pagamentopolicy-DisableRemoteImprovements—policies-descriptions.ftl—de uma atualizações para outra→de uma atualização para outrapolicy-NoDefaultBookmarks—policies-descriptions.ftl—os favoritos inteligente→os favoritos inteligentescorruptedContentErrorv2—dom/chrome/appstrings.properties— antecedent "violação" is feminine:que não pode ser reparado→reparada(the siblingnetworkProtocolErroris correct)xml-nostylesheet—dom/dom/XMLPrettyPrint.ftl—informação de estilo associado a ele→associada a eleImageMapRectBoundsError,ImageMapCircleWrongNumberOfCoords,ImageMapCircleNegativeRadius,ImageMapPolyWrongNumberOfCoords,ImageMapPolyOddNumberOfCoords—dom/chrome/layout/layout_errors.properties— "tag" is feminine in pt-BR:do tag <area …>→da tag <area …>. AlsoChildCountIncorrect(dom/chrome/mathml/mathml.properties):filhos do tag→da tag.errLtSlashGt,errLtGt,errBadStartTagInNoscriptInHead—dom/chrome/layout/htmlparser.properties—tag de fechamento incorreto/tag de início incorreto→incorretaerrQuoteBeforeAttributeName,errQuoteInAttributeName— same file — "aspas" is plural:Encontrada aspas→Encontradas aspas;falta da aspas correspondente→faltam as aspas correspondentesCORSMultipleAllowOriginNotAllowed—dom/chrome/security/security.properties—não é permitido vários cabeçalhos→não são permitidos vários cabeçalhosImportMapNotAllowedMultiple—dom/chrome/dom/dom.properties—Não é permitido vários mapas→Não são permitidos vários mapasPushMessageBadPaddingError—dom/chrome/dom/dom.properties— agreement with "registro":não foi preenchida corretamente→não foi preenchido corretamenteMalformedIntegrityHash—dom/chrome/security/security.properties—uma hash mal formadavsO hashin the sibling strings →um hash mal formadoPrivateSlotDescription—security/manager/chrome/pipnss/pipnss.properties—Chaves privada do PSM→Chaves privadas do PSMMOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY/mozilla-pkix-error-ca-cert-used-as-end-entity—nsserrors.properties/.ftl—extensão de restrições básica identificado-o como uma autoridade certificadora→extensão de restrições básicas que o identifica como uma autoridade certificadoraSEC_ERROR_PKCS12_UNSUPPORTED_TRANSPORT_MODE/sec-error-pkcs12-unsupported-transport-mode—Só é suportado integridade de senha e modos de privacidade.→Só são suportados os modos de integridade e de privacidade por senha.pageInfo_MixedContent2—security/manager/chrome/pippki/pippki.properties—antes de ser transmitidas→antes de serem transmitidasweakCryptoUsed—dom/chrome/appstrings.properties—de ser roubadas→de serem roubadascollection-studies-description—preferences.ftl—antes de ser liberados para todos→antes de serem liberados para todosabout-glean-label-for-log-pings—aboutGlean.ftl—ao ser enviados→ao serem enviadosstorage-idb-delete-blocked—devtools/client/storage.ftl—após ser fechadas todas as conexões→após serem fechadas todas as conexõesinspector-color-scheme-emulation-light/-dark(.title),inspector-emulation-panel-color-scheme-light/-dark(.aria-label) —devtools/client/inspector.ftl— it is the scheme that is light or dark (prefers-color-scheme: light|dark):emulação de esquema de cores claras / escuras→esquema de cores claro / escuro-smart-window-brand-namegender —browser/browser/aiWindow.ftl— the term is feminine in pt-BR ("Janela inteligente"), but ~9 strings use masculine articles:aiwindow-firstrun-title,-model-subtitle,-memories-subtitle,-memories-relevance-body,-memories-choose-label,-memories-checkbox-chats,-memories-no-create,-default-title,aiwindow-history-menu-settings.appmenuitem-new-ai-windowandfxa-signout-dialog-body-aiwindowin the same file already treat it as feminine, andaiFeatures.ftl/aiWindowContent.ftlare masculine throughout — this needs one locale-wide decision (feminine is the grammatical one). Alsoaiwindow-firstrun-memories-subtitle: "memórias … Eles tornam" →Elas tornam.
sanitize-selected-warning—sanitize.ftl— en-US "All selected items will be cleared." Current:Será limpo tudo dos itens selecionados.→ Suggest:Todos os itens selecionados serão limpos.skip-troubleshoot-refresh-profile—safeMode.ftl—ao invés demeans "on the contrary"; substitution requiresem vez de, and the preceding comma is spurious. Same error infonts-allow-own(.label,preferences/fonts.ftl).auto-safe-mode-description—safeMode.ftl— spurious comma splitting verb from adverbial:resolver o problema, usando o modo de segurança→resolver o problema usando o modo de segurançawebrtc-reason-for-no-permanent-allow-screen—webrtcIndicator.ftl— missing crase and article:permanente a sua tela→permanente à sua tela; addObefore the brand term (the two neighbouring strings have it)browser-theme-group(.description) —preferences.ftl— wrong contraction before a plural noun (only instance ofà+ plural in the tree). Current:se aplicam à barras de ferramentas, menus e mensagens→ Suggest:se aplicam às barras de ferramentas, aos menus e às mensagensrights-webservices-term-4—aboutRights.ftl— missing crase, parallel with "quanto à qualidade" later in the same sentence:quanto a seleção dos Serviços→quanto à seleção dos Serviçosrights-intro-point-5-unbranded—aboutRights.ftl—devem tem um link→devem ter um linkrights-intro-point-2—aboutRights.ftl—incluindo, entre outras, ao nome ou logotipo do Firefox→incluindo, entre outros, o nome ou o logotipo do Firefoxrights-intro-point-3—aboutRights.ftl— missing object:permissão para usar para aperfeiçoar seus produtos→permissão para usá-la para aperfeiçoar seus produtosrights-webservices-unbranded—aboutRights.ftl— European clitic placement:instruções de como os desativar→instruções de como desativá-losaddon-sitepermissions-required—aboutAddons.ftl— en-US "Grants the following capabilities to ". Current:Concede as seguintes capacidades e <span…>→ Suggest:…capacidades a <span…>abuse-report-unwanted-example—abuseReports.ftl— missing object:uma aplicação instalou sem minha permissão→uma aplicação a instalou sem minha permissãoabuse-report-settings-suggestions-search,-homepage—abuseReports.ftl— en-US imperative "Change your…":Muda sua configuração→Mude sua configuraçãoabout-glean-label-for-controls-submit—aboutGlean.ftl— mood mixing:…para marcar todos os pings … e envie o ping selecionado→…e enviar o ping selecionadoabout-processes-utility-actor-windows-file-dialog—aboutProcesses.ftl—Diálogo arquivos do Windows→Diálogo de arquivos do Windowsabout-pdf-promo(.message) —aboutPDF.ftl— the.headingis imperative but the message uses bare infinitives:Abrir PDFs no … e lidar com o básico→Abra PDFs no … e resolva o básicowindows-messages-intro—aboutWindowsMessages.ftl— missing subject:precisa recarregar a página→você precisa recarregar a páginafp-certerror-unknown-issuer-why-dangerous-body—certError.ftl—tenha criado um algo que→tenha criado algo que(thefp-certerror-bad-domain-why-dangerous-bodysibling is correct)fp-neterror-http-error-intro—netError.ftl—O servidor de <strong>{ $hostname }</strong>→O servidor em <strong>{ $hostname }</strong>(all siblingfp-neterror-*strings use "em")ssl-error-extract-public-key-failure/SSL_ERROR_EXTRACT_PUBLIC_KEY_FAILURE—nsserrors.ftl/.properties—do certificado sistema remoto→do certificado do sistema remotosec-error-token-not-logged-in/SEC_ERROR_TOKEN_NOT_LOGGED_IN— proclisis after negation:não identificou-se (login)→não se identificou (login)ssl-error-revoked-cert-alert,ssl-error-expired-cert-alert—nsserrors.ftl— missing object pronoun:por considerar revogado / expirado→por considerá-lo revogado / expiradoclient-auth-site-description,client-auth-site-identification—security/manager/security/pippki/pippki.ftl— enclisis is not allowed after "que":solicitou que você identifique-se→solicitou que você se identifiquecertErrorTrust_UnknownIssuer2—pipnss.properties—pode não está enviando→pode não estar enviandopageInfo_WeakCipher—pippki.properties—Outras pessoas poder ver→Outras pessoas podem verpageInfo_Privacy_None4,pageInfo_Privacy_Encrypted1—pippki.properties—antes ser transmitida→antes de ser transmitidareportURInotHttpsOrHttp2—dom/chrome/security/csp.properties— missing verb:deve uma URI HTTP ou HTTPS→deve ser uma URI HTTP ou HTTPSignoringInvalidGroupSyntax— same file — verb form inconsistent with all sibling "Ignorando…" strings:Ignorado grupo→Ignorando o grupoisprinting—dom/chrome/appstrings.properties— dangling infinitive after a preposition:durante a impressão ou visualizar impressão→durante a impressão ou a visualização de impressãoPERR_GFX_PRINTER_DOC_IS_BUSY/_PP—dom/chrome/layout/printing.properties—Ainda não pode imprimir este documento→Ainda não é possível imprimir este documentoEditContextCharacterBoundsWarning—dom/chrome/dom/dom.properties—em alguns usuários→para alguns usuáriosmoz-box-item-reorder-handle,moz-box-item-reorder-handle-named(.aria-label) —global/mozBoxBase.ftl—Reordene item usando…→Reordenar o item usando…form-post-secure-to-insecure-warning-message—global/htmlForm.ftl— wrong demonstrative + queísmo:inseriu nessa página … Tem certeza que quer enviar essas informações?→inseriu nesta página … Tem certeza de que quer enviar estas informações?VK_LEFT,VK_RIGHT—toolkit/chrome/global/keys.properties—Seta para esquerda/Seta para direita→Seta para a esquerda/Seta para a direitaloginsDescriptionAll2—toolkit/chrome/passwordmgr/passwordmgr.properties—estão armazenadas deste computador→neste computadorbadApp—toolkit/chrome/mozapps/downloads/unknownContentType.properties— infinitive instead of imperative in instructions:Verificar o nome do arquivo ou selecionar outro aplicativo.→Verifique o nome do arquivo ou selecione outro aplicativo.permission-dialog-set-change-app-link—global/handlerDialog.ftl— full sentence missing its final period:Escolher outro aplicativo→Escolher outro aplicativo.about-debugging-worker-action-push2(.disabledTitle) —devtools/client/aboutdebugging.ftl— en-US "for multiprocess"; the three parallel strings use "para":está desativado no multiprocessamento→está desativado para multiprocessamentoinactive-css-not-block—devtools/client/tooltips.ftl—a nível deis not correct pt-BR:elementos a nível de bloco→elementos de nível de blocoinactive-css-text-wrap-balance-fragmented-fix,-fix-1—devtools/client/tooltips.ftl— the "e.g." period was carried over, producing a sentence-ending period followed by a lowercase continuation:por exemplo. removendo colunas→por exemplo, removendo colunasreport-broken-site-panel-reason-media-moz-box-button(.label),report-broken-site-panel-reason-media2(.label) —reportBrokenSite.ftl— mixes gerund and past participle on one auxiliary:O vídeo não está carregando ou reproduzido→O vídeo não está sendo reproduzido ou carregadoorigin-controls-options(.label) —originControls.ftl— en-US ends with a colon because the options follow directly:A extensão pode ler e alterar dados→…dados:pointerlock-warning-no-domain—browser.ftl— the siblingpointerlock-warning-domainuses the imperative:Pressionar Esc→Pressione Escxpinstall-prompt-message—addonNotifications.ftl—Tenha certeza se confia neste site→Tenha certeza de que confia neste site(the-unknownsibling is correct)addon-confirm-install-message,addon-confirm-install-unsigned-message,addon-confirm-install-some-unsigned-message,addon-install-error-file-access,addon-local-install-error-file-access—addonNotifications.ftl— missing definite article before the brand term:em { -brand-short-name }→no { -brand-short-name };porque { -brand-short-name } não pode modificar→porque o { -brand-short-name } não pode modificarcontent-blocking-etp-blocking-desc,is-default,is-not-default,is-default-browser-2—preferences.ftl— these four start with a bare{ -brand-short-name }while the rest of the file usesO { -brand-short-name }content-blocking-fpi-incompatibility-warning—preferences.ftl—configurações de cookies de { -brand-short-name }→do { -brand-short-name }safeb-blocked-unwanted-page-short-desc—safebrowsing/blockedSite.ftl— missing the article used in all sibling strings:{ -brand-short-name } bloqueou→O { -brand-short-name } bloqueouai-window-learn-from-browsing-activity(.label) —aiFeatures.ftl— matches the paired option "Aprender com conversas":Aprender da navegação em→Aprender com a navegação emwebext-quarantine-confirmation-line-2—extensionsUI.ftl—em sites com restrição pela { -vendor-short-name }→em sites restritos pela { -vendor-short-name }identity-credential-policy-description—identityCredentialNotification.ftl— a sentence-initial proclitic makes it parse as a subordinate clause with no main clause:Se autenticar em { $host } … está sujeito à…→Autenticar-se em { $host } … está sujeito à…firefoxview-tabpickup-password-locked-description—firefoxView.ftl— dropped subject:precisa inserir→você precisa inserirfirefoxview-closed-tabs-placeholder-body—firefoxView.ftl— transitive verb without object:você pode recuperar aqui→você pode recuperá-la aquidefault-browser-prompt-message-pin,-pin-msix,-pin-mac—defaultBrowserNotification.ftl— missing object pronouns:torne seu navegador padrão e fixe na barra de tarefas→torne-o seu navegador padrão e fixe-o na barra de tarefasdefault-browser-guidance-notification-title— same file — stacked bare infinitives:Concluir definir o { -brand-short-name } como padrão→Conclua a definição do { -brand-short-name } como padrãoappmenuitem-monitor-title2—appmenu.ftl—Esteja à frente de roubo de identidade→Fique à frente do roubo de identidadebookmark-overlay-keyword-caption-label-2—editBookmarkOverlay.ftl— the sibling caption uses "Use":Usar uma única palavra-chave→Use uma única palavra-chaveaction-log-searching-web-with-exa—aiWindowContent.ftl— an in-progress action as infinitive:Pesquisar na web com <a…>Exa</a>→Pesquisando na web com <a…>Exa</a>(cf.action-log-searching-web)contextual-manager-export-passwords-dialog-message—contextual-manager.ftl—recomendamos excluir, para que outros→recomendamos excluir o arquivo para que outras pessoasredirect-warning-with-popup-message(*[other]) —browser.ftl— missing conjunction (the[1]variant has it):impediu redirecionamentos { $popupCount } aberturas de janelas→impediu redirecionamentos e { $popupCount } aberturas de janelaspreferences-ai-controls-state-description-available—preferences.ftl— dangling transitive verb:O recurso aparece e você pode usar.→…e você pode usá-lo.site-data-settings-description—preferences/siteDataSettings.ftl— dangling transitive verb plus comma before "e":até você excluir, e apaga dados de sites→até você excluí-los e apaga dados de sitesctrl-tab-recently-used-order(.label) —preferences.ftl— en-US is a finite verb:Ctrl+Tab alternar entre abas→Ctrl+Tab alterna entre abasabout-logins-confirm-remove-all-dialog-message,about-logins-confirm-remove-all-sync-dialog-message(all variants) —aboutLogins.ftl— restrictive relative with indefinite antecedent:quaisquer alertas de vazamento que aparecem aqui→que apareçam aqui(the newer…-message2/-message3avoid the construction)permissions-exceptions-addons-desc—preferences/permissions.ftl— all sibling strings use "quais sites":especificar que sites têm permissão→especificar quais sites têm permissãoappearance-browser-icon-entry-group(.description) —preferences/browserIcon.ftl— missing articles:para barra de tarefas, área de trabalho e menu Iniciar→para a barra de tarefas, a área de trabalho e o menu Iniciarapp-manager-handle-file—preferences/applicationManager.ftl— Current:Estes aplicativos podem ser usados para gerenciar conteúdo { $type }.→ Suggest:Os seguintes aplicativos podem ser usados para lidar com conteúdo { $type }.(matchingapp-manager-handle-protocol)more-from-moz-qr-code-firefox-mobile-img(.alt) andnewtab-download-mobile-highlight-image(.aria-label) —moreFromMozilla.ftl/newtab.ftl—o { -brand-product-name } de dispositivos móveis→o { -brand-product-name } para dispositivos móveisnetwork-proxy-group2(.description) —preferences.ftl— same en-US source asnetwork-proxy-connection-description:se conecta com a internet→se conecta à internetbrowsing-use-full-keyboard-navigation(.label) —preferences.ftl— all neighbouring checkbox labels use the infinitive, and the key name is lowercased:Use a tecla “tab” para mover o foco→Usar a tecla Tab para mover o focopassport-capture-save-doorhanger-description—preferences/formAutofill.ftl— same en-US source asaddress-capture-save-doorhanger-description, but one is imperative and the other infinitive:Salvar informações no…→Salve informações no…default-bookmarks-toolbarfolder-description—profile/default-bookmarks.ftl—Adicione favoritos nesta pasta para aparecer na barra de favoritos→…para que apareçam na barra de favoritosdefault-bookmarks-crashes— same file — word order:Todas as falhas suas→Todas as suas falhassafeb-blocked-addon-page-short-desc—safebrowsing/blockedSite.ftl— missing object:porque uma de suas extensões tentou abrir→tentou abri-lapolicy-Bookmarks—policies-descriptions.ftl—ou uma pasta especificada dentro deles→ou em uma pasta especificada dentro delesspotlight-peace-mind-body—asrouter.ftl— doubled preposition:bloqueia em média de mais de 3.000 rastreadores→bloqueia em média mais de 3.000 rastreadores(thejuly-jam-bodysibling is correct)multi-profile-spotlight-body—onboarding.ftl—Alterne facilmente entre navegação de trabalho ou diversão.→…entre navegação de trabalho e diversão.onboarding-infrequent-import-subtitle—onboarding.ftl—lembre que pode importar→lembre-se de que pode importarnewtab-privacy-message-promo-relay-1—newtab.ftl— "confiar" requires "em":para quem você confia→para as pessoas em quem você confianewtab-empty-section-topstories—newtab.ftl—mais grandes histórias através da web→mais grandes histórias de toda a web(the generic variant uses "na web")newtab-wallpaper-blue-flowers—newtab.ftl— the "a + infinitive" progressive is European Portuguese:flores de pétalas azuis a desabrochar→flores de pétalas azuis desabrochandotab-context-move-split-view-to-new-group(.label) —tabbrowser.ftl—Adicionar exibição dividida em novo grupo→…a novo grupo(matchingtab-context-move-tab-to-new-group)
Missing / wrong accents and plain typos:
trustpanel-etp-description-disabled—browser.ftl—o máximo possivel→possívelsidebar-widget-hide-sidebar2(.tooltiptext) —sidebar.ftl—Ocular painel lateral→Ocultar painel lateralpaw-print-avatar-tooltip(.tooltiptext) —profiles.ftl—avatar de pagada de pata→pegada de pata(paw-print-avataris correct)contextual-manager-passwords-remove-login-card-message—contextual-manager.ftl—Isto não pode ser defeito.→desfeitocustomkeys-file-focus-search—customkeys.ftl— duplicated article:Foco na a barra de pesquisa→Foco na barra de pesquisasmart-window-model-custom-name/-url(.placeholder) —aiFeatures.ftl—Examplo:→Exemplo:(2 instances)content-sharing-modal-generic-error-2(.message) —contentSharing.ftl— missing space:Tente novamentemais tarde.→Tente novamente mais tarde.newtab-wallpaper-beach-at-sunrise—newtab.ftl— duplicated word:Praia ao ao nascer do sol→Praia ao nascer do solnewtab-widget-message-copy—newtab.ftl—intervalos para estivar as pernas→esticar as pernas("estivar" = to stow cargo)about-debugging-runtime-disconnect-button—devtools/client/aboutdebugging.ftl—Deconectar→Desconectar(the same file spells "Desconectado" correctly)blocked-mismatched-version—aboutSupport.ftl—driver de video→driver de vídeo(also missing the final period present in en-US)pdfjs-bookmark-button-label—pdfviewer/viewer.ftl—Pagina atual→Página atual(the sibling.titleis correct)sec-error-pkcs12-decoding-pfx/SEC_ERROR_PKCS12_DECODING_PFX—nsserrors.ftl/.properties—Arquivo invalido.→Arquivo inválido.MalformedIntegrityHash—dom/chrome/security/security.properties—<algorítmo do hash>→<algoritmo do hash>("algoritmo" has no accent in pt-BR)data-collection-backlogged-crash-reports(.description) —preferences.ftl— stray uppercase:OS relatórios podem incluir→Os relatórios podem incluir
Post-1990 orthography / hyphenation:
printui-paper-tabloid—printing/printUI.ftl—Tablóide→Tabloidenewtab-sports-widget-message-wallpapers-semifinals-title—newtab.ftl—semi-finais→semifinais(the file's ownnewtab-sports-widget-semi-finalsuses "Semifinais")mr2022-background-update-toast-text—asrouter.ftl—anti-rastreamento→antirrastreamentoabout-networking-rcwn-std-dev-long—aboutNetworking.ftl—Desvio-padrão→Desvio padrãoaddon-confirm-install-unsigned-message—addonNotifications.ftl—extensão não-verificada/extensões não-verificadas→não verificada/não verificadas(addon-install-error-not-signedis already correct)mlmodel-link-preview—aboutAddons.ftl—pontos chave→pontos-chavelink-preview-generation-error-missing-data-v2,link-preview-settings-key-points(.label),link-preview-optin-message,link-preview-key-points-header,link-preview-key-points-disclaimer,link-preview-setup-faster-next-time—genai.ftl—pontos chave/Pontos chave→pontos-chave/Pontos-chave(6 instances)pictureinpicture-fullscreen-btn2(.tooltip),pictureinpicture-exit-fullscreen-btn2(.tooltip),pdfjs-document-outline-button(.title),pdfjs-layers-button(.title), plusdocument_outline.titleandnetmonitor.toolbar.resizeColumnToFitContent.titlein.properties—duplo-clique/Duplo-clique→clique duplo(unhyphenated; low priority, but currently inconsistent)
European-Portuguese forms in a pt-BR tree:
notSupportingDirective,IgnoringSrcBecauseOfDirective—dom/chrome/security/csp.properties—Directiva/directiva→Diretiva/diretivaServiceWorkerRegisterStorageError—dom/chrome/dom/dom.properties—Falha ao registar/atualizar→Falha ao registrar/atualizar(the sibling network/mime errors use "registrar")InvalidIntegrityBase64—dom/chrome/security/security.properties—não pôde ser descodificado→decodificadoerrNcrSurrogate—dom/chrome/layout/htmlparser.properties—Referência do carácter expande para substituto.→Referência a caractere expandiu-se para um substituto (surrogate).(matching the ~8 sibling strings)pageInfo_WeakCipherand neighbours —security/manager/chrome/pippki/pippki.properties—encriptação→criptografia(the rest of the file uses "criptografia"); likewisePushMessageBadPaddingError(dom.properties):mensagem encriptada→mensagem criptografadaSEC_ERROR_NOT_A_RECIPIENT,SEC_ERROR_PKCS12_UNABLE_TO_EXPORT_KEY—nsserrors.properties—chave privativa→chave privada(used in ~6 other entries in the same file)- Push/crypto strings in
dom/chrome/dom/dom.properties—decriptografar(non-standard) inPushMessageBadEncryptionHeader,PushMessageBadCryptoKeyHeader,PushMessageBadEncodingHeader,PushMessageBadSenderKey,PushMessageBadSalt,PushMessageBadRecordSize,PushMessageBadPaddingErrorvsdescriptografarinPushMessageBadEncryptionKeyHeader,PushMessageBadCryptoError→ standardize ondescriptografar
... instead of … (only 3 in the tree, all with … in en-US):
main-context-menu-pdfjs-save-page (.label, browserContext.ftl), home-homepage-custom-url (.placeholder, preferences.ftl), newtab-discovery-empty-section-topstories-loading (newtab.ftl).
Locale-introduced unbalanced / wrong quote characters:
import-safari-permissions-string—migration.ftl—a pasta “Safari“→“Safari”(the other quotes in the same string are correct; note en-US also has this defect in this string)SSL_ERROR_RX_MALFORMED_HELLO_REQUEST,…_CLIENT_HELLO,…_SERVER_HELLO,…_CERTIFICATE,…_SERVER_KEY_EXCH,…_CERT_REQUEST,…_HELLO_DONE,…_CERT_VERIFY,…_CLIENT_KEY_EXCH,…_FINISHED—security/manager/chrome/pipnss/nsserrors.properties— 10 strings with“…“; en-US has no quotes at all here, so these are locale-introduced. The adjacent…_CHANGE_CIPHER/…_RX_UNEXPECTED_*entries are correct.smartwindow-sidebar-auto-open-callout-accepted-subtitle—onboarding.ftl— uses U+02DD (˝) instead of quotes:Use ˝Fazer uma pergunta˝→Use “Fazer uma pergunta”ExecCommandPasteDeniedNotInputDriven—dom/chrome/dom/dom.properties— mismatched pair:document.execCommand('paste’)→document.execCommand(‘paste’)
Straight ' used as quotation marks (locale convention is “ ”):
restore-page-problem-desc (aboutSessionRestore.ftl), crashed-single-offer-help-message, crashed-multiple-offer-help-message (aboutTabCrashed.ftl), enable-devtools-popup-description2 (browser.ftl), pin-tabs-callout-1-subtitle, pin-tabs-callout-2-subtitle (featureCallout.ftl), permissions-exceptions-manage-etp-desc (preferences/permissions.ftl), update-setting-write-failure-message2 (preferences.ftl), default-browser-agent-task-description (backgroundtasks/defaultagent.ftl), toolbox-always-on-top-enabled2, -disabled2 (devtools/client/toolbox.ftl), inactive-css-resize (devtools/client/tooltips.ftl), crashreporter-error-no-home-dir (crashreporter.ftl), neterror-not-cached-try-again (netError.ftl), csp-error-missing-directive (global/cspErrors.ftl), netOffline (dom/chrome/appstrings.properties), profileTooltip (mozapps/profile/profileSelection.properties). In most of these en-US has no quotes at all, so removing them is equally acceptable.
Straight " used as quotation marks:
rights-webservices, rights-safebrowsing-term-3 (aboutRights.ftl — the only straight " in that scope), profile-has-selectable-profiles-message (global/profileSelection.ftl), experimental-features-cookie-samesite-none-requires-secure2-description (featuregates/features.ftl), experimental-features-fx-web-apps-description (firefoxlabs/features.ftl), policy-Extensions (mixes both styles in one string), policy-DisableForgetButton, policy-DisableProfileRefresh, policy-HardwareAcceleration, policy-OfferToSaveLogins (policies-descriptions.ftl), clientAuthMessage2 (pippki.properties), SuperfluousAuth, AutomaticAuth, CookieRejectedNonRequiresSecure2, CookieLaxForcedForBeta2, CookieSameSiteValueInvalid2 (netwerk/necko.properties — AutomaticAuth mixes both styles in one string), PrincipalWritingModePropagationWarning, CompositorAnimationWarningOpacityFrameInactive, CompositorAnimationWarningHasCurrentColor (dom/chrome/layout/layout_errors.properties), PEUnknownAtRule (css.properties), ForgotPostWarning, ForgotFileEnctypeWarning, CannotEncodeAllUnicode (HtmlForm.properties — en-US has no quotes), MalformedIntegrityHash, IneligibleResource, UnsupportedHashAlg (security.properties), MediaLoadUnsupportedTypeAttribute, MediaLoadUnsupportedMimeType (dom.properties).
Missing typographic apostrophe:
pdfjs-editor-alt-text-mark-decorative-description — pdfviewer/viewer.ftl — marcas d'água → marcas d’água
Double / stray spaces:
pin-tabs-callout-2-subtitle—featureCallout.ftl—escolha 'Fixar aba'webrtc-allow-share-camera-and-microphone-with-file—webrtcIndicator.ftl—sua câmera e microfone?(also missing the possessive: →sua câmera e seu microfone?)languages-code-format(.label) —preferences/languages.ftl—{ $locale } [{ $code }]→ single spaceabout-processes-remote-sandbox-broker-process—aboutProcesses.ftl—remoto ({ $pid })→ single spacerights-intro-point-1—aboutRights.ftl— double NBSP after a period → single spaceneterror-proxy-connect-failure-contact-admin—netError.ftl— stray NBSP:está funcionando→está funcionandoPEAttSelUnexpected—dom/chrome/layout/css.properties—seletor de atributo: ‘%1$S’ModuleResolveFailureWarnRelative—dom/chrome/dom/dom.properties—devem começar com “./”CSPROTrustedTypesPolicyViolation—dom/chrome/security/csp.properties—Trusted Types porquepageInfo_Privacy_None2(pippki.properties) and entry8"Read %1$S" (netwerk/necko.properties) — explicit trailingnot present in en-USdiscopane-notice-recommendations,discopane-notice-recommendations2(.message) —aboutAddons.ftl— trailing space before the line wrap
Space before punctuation:
genai-settings-chat-lechat-links—genai.ftl—da Mistral AI .→da Mistral AI.fp-certerror-not-yet-valid-why-dangerous-body—certError.ftl—…) } .→…) }.CORSMethodNotFound—dom/chrome/security/security.properties—do CORS ).→do CORS).pdfjs-print-progress-percent—pdfviewer/viewer.ftl—{ $progress } %→{ $progress }%(cf.pdfjs-page-scale-percent)
Missing space:
inactive-css-first-letter-pseudo-element-not-supported,inactive-css-placeholder-pseudo-element-not-supported,inactive-css-cue-pseudo-element-not-supported—devtools/client/tooltips.ftl—Não há suporte para<strong>→para <strong>(thefirst-linesibling has the space)
Wrong dash / separator (en-US uses an em dash):
webrtc-indicator-title—webrtcIndicator.ftl—{ -brand-short-name } - Indicador…→—(the adjacentwebrtc-indicator-windowuses—)page-info-page(.title) —pageInfo.ftl—Informações da página - { $website }→—page-info-frame(.title) —pageInfo.ftl— the separator was dropped entirely:Informações do frame { $website }→Informações do frame — { $website }tabbrowser-container-tab-title—tabbrowser.ftl—{ $title } - { $containerName }→—taskbar-tab-title-profile—taskbartabs.ftl—- { -brand-full-name }→— { -brand-full-name }TitleWithStatus—dom/chrome/layout/MediaDocument.properties—%S - %S→%S — %S
pt-BR number format:
main-context-menu-media-play-speed-slow-2,-normal-2,-fast-2,-faster-2(.label) —browserContext.ftl— decimal point kept from the source:0.5×,1.0×,1.25×,1.5×→0,5×,1,0×,1,25×,1,5×connection-proxy-noproxy-localhost-desc-2—preferences/connection.ftl— serial comma before "e" is not pt-BR usage:127.0.0.1/8, e ::1→127.0.0.1/8 e ::1
Punctuation added/dropped vs en-US:
- Missing sentence break:
urlbar-dismissal-acknowledgment-weather,urlbar-trending-dismissal-acknowledgment(browser.ftl) —Obrigado por sua opinião Não irá…→ add the period (the twourlbar-result-dismissal-acknowledgment-*siblings have it) - Comma where a period belongs:
contextual-manager-passwords-no-passwords-message(contextual-manager.ftl) —são criptografadas, Estamos atentos→criptografadas. Estamos atentos - Comma splice:
ipprotection-site-settings-callout-subtitle(ipProtection.ftl) —em um site específico, isso será lembrado→…e isso será lembrado;about-logins-confirm-export-dialog-message(aboutLogins.ftl) — also drops the consecutive "so" and the object pronoun →…, portanto qualquer pessoa … poderá vê-las. - Final period dropped:
ipprotection-feature-introduction-link-text-captive-portal-1(ipProtection.ftl),policy-GenerativeAI(policies-descriptions.ftl) - Trailing period added where en-US has none:
ipprotection-connection-status-blocked-error-title-1(.aria-labeltoo),security-privacy-issue-warning-third-party-cookies(.label,preferences.ftl),newtab-wallpaper-sky-with-pink-clouds,newtab-shortcuts-highlight-title,newtab-report-ads-reason-seen-it-too-many-times(.label) (newtab.ftl),windows-10-eos-callout-addons-title(asrouter.ftl),tab-groups-onboarding-feature-callout-title(onboarding.ftl)
Capitalization:
menu-application-hide-other(.label) —menubar.ftl—Ocultar Outros→Ocultar outrosbookmarks-tools-toolbar-visibility-menuitem(.label) —browser.ftl— the[true]variant isOcultar Barra de Favoritoswhile*[other]is sentence casetabbrowser-tab-label-tab-split-view-right—tabbrowser.ftl—, Exibição dividida à direita→ lowercase (the-leftpair is lowercase)addons-button-label2(.label,.title),addons-button-label—preferences.ftl—Extensões e Temas→Extensões e temasautofill-card-expires-month,autofill-card-expires-year—preferences/formAutofill.ftl—Mês de Expiração/Ano de Expiração→ sentence case (the-2variants are correct)audio-backend,max-audio-channels,a11y-instantiator(aboutSupport.ftl),about-telemetry-option-group-older(aboutTelemetry.ftl) — stray Title Case in otherwise sentence-case filesstorage-add-button(.title),storage-context-menu-add-item(.label) —devtools/client/storage.ftl—Adicionar Item→Adicionar itemabout-logins-import-report-added2,-modified2,-no-change2—aboutLogins.ftl— thedetailsspans start lowercase, unlike the identical non-2variants and en-US- Lowercase where the sibling is capitalized:
about-webrtc-fold-hide-msg/-show-msg,about-webrtc-raw-cand-hide-msg/-show-msg,about-webrtc-log-hide-msg/-show-msgand the matching.titleattributes (aboutWebrtc.ftl);about-webrtc-aec-logging-off-state-msg,about-webrtc-save-page-msg(aboutWebrtc.ftl);about-telemetry-current-data-sidebar(aboutTelemetry.ftl);quickactions-cmd-clearhistory,quickactions-cmd-private(browser.ftl);autofill-category-organization(toolkit/toolkit/formautofill/formAutofill.ftl);migration-list-payment-methods-label(migrationWizard.ftl) nova-early-access-infobar-primary-button—asrouter.ftl—Ok→OK(used everywhere else)
These are the cross-file consistency hits that look like real drift rather than context differences. Each is a choose-one decision.
browser
- "Reverse Tabs":
Inverter abas(tab-context-reverse-split-view) vsReverter abas(split-view-menuitem-reverse-tabs) — see §C,Inverteris correct - "Verified by":
Homologado por:(security-view-identity-verifier.value,pageInfo.ftl) vsVerificado por:(identity-verifier-label,browser.ftl) - "Search the web":
Pesquisar na webvsPesquisar na internet— adjacent stringsabout-private-browsing-search-placeholder/-search-btn.titleandnewtab-search-box-input/newtab-search-box-text - "search terms":
urlbar-placeholder-search-mode-other-bookmarks(.placeholder) usesbusca, its four siblings usepesquisa - "Search bookmarks"/"Search history":
Pesquisar nos favoritos/Pesquisar no histórico(menubar, firefoxView) vsProcurar favoritos/Procurar no histórico(places.ftl, browser.ftl) - "Sort by name":
Ordenar pelo nome(places-sortby-name) vsOrdenar por nome(places-view-sortby-name) - "Close reader view":
Desativar modo de leitura(browser, menubar) vsFechar modo de leitura(aboutReader.ftl) - "AI chatbot":
robô de conversa(genai-onboarding-description,sidebar-customization-callout-1-subtitle) vschatbot de inteligência artificialeverywhere else — including the next sentence ofgenai-onboarding-descriptionitself - "Ask { $provider }":
Consultar(genai-menu-ask-provider,genai-input-ask-provider,genai-shortcut-button) vsPerguntar ao(genai-menu-ask-provider-2) - "sidebar":
genai-chatbot-summarize-footer-generic-subtitleusesbarra lateral; every other string usespainel lateral - "chat":
aiwindow-feedback-include-page-contentleaveschatin English; the file usesconversa - "Use your own LLM":
Use seu próprio LLMvsUsar seu próprio LLMin adjacentaiWindow.ftlstrings - "link preview":
visualização de links(genai.ftl) vsexibição prévia de links(link-preview-onboarding-callout-title); "key points":pontos-chavevspontos principais(link-preview-first-time-setup-message) - "tab pickup":
Escolha de abas(firefoxview-tabpickup-header) vscoleta de abas(continuous-onboarding-firefox-view-tab-pickup-title) vssincronização de abas(callout-firefox-view-tab-pickup-title) - "backup":
backupon the toggles (settings-data-backup-toggle-on2) vscópia de segurançain the modals (turn-on-scheduled-backups-header,-confirm-button,-encryption-label,enable-backup-encryption-header) andwindows-10-eos-global-infobar-primary-button - "hidden tabs":
abas ocultadas(appmenu-tab-hide-controlled) vsabas ocultas(all-tabs-menu-hidden-tabs) - "Report"/"Relatar":
crashed-request-auto-submit-titleusesInformar; the rest ofaboutTabCrashed.ftlusesRelatar - "software":
xpinstall-prompt,xpinstall-disabled-locked,xpinstall-disabled,xpinstall-disabled-by-policy,addon-domain-blocked-by-policy,addon-install-domain-blocked-by-policyrender it asum programa/software/programas - "Site vazado" (
about-logins-list-item-breach-icon.title) reads as though the site leaked →Site com vazamento de dados(matchingabout-logins-list-section-breach) login-item-timeline-action-created— the three timeline labels are parallel participles (Atualizada,Usada) except this one:Criação→Criadadownloads-error-generic— different subject/tense from its two siblings:O arquivo não pôde ser salvo porque…→O download não pode ser salvo porque…firefoxview-syncedtabs-adddevice-primarybutton—para celular→para dispositivos móveis(as in the two sibling promos)bookmark-overlay-keyword-2(.value) — the field is labelledAtalhowhile its own caption calls it "palavra-chave" →Palavra-chavecustomkeys-conflict-unusable-title,-body—chave(= key/password) for a keyboard key →tecla(customkeys-conflict-confirm-bodyis correct)customkeys-dev-profiler-capture—um profile de desempenho→um perfil de desempenho;customkeys-dev-debugger—Debugger de JavaScript→Depurador de JavaScriptprofiler-button-dropmarker(.label,.tooltiptext) —painel do profiler→painel do Analisador(as inprofiler-popup-button-*)identity-etsi—Regulamento (EU) 2024/1183→Regulamento (UE) 2024/1183(União Europeia)unified-extensions-mb-blocklist-warning-single2,-multiple2,-multiple(.message) —habilitar→ativar(as in the-singlesibling and everywhere else)removed-search-engine-message/-message2(vá em configurações) vsreset-search-settings-message(vá nas configurações)report-broken-site-panel-send-more-info-button/-link—Envie mais informações→Enviar mais informações(all other buttons in the file use the infinitive)sidebar-show-on-the-right/sidebar-show-on-the-left—Painel no lado direitovsMover o painel para a esquerda; en-US is a matched pairprofiles.ftlavatar labels —edit-profile-page-avatar-header-2usesSímbolowhere the file usesavatar;sparkle-single-avatar-tooltipsaysbrilhowhilesparkle-single-avatarsaysFaísca;video-game-controller-avatar-tooltipsayscontrole de videogamewhilevideo-game-controller-avatarsaysControlador de videogame;picture-avatar-tooltipsaysde imagemwhilepicture-avatarsaysFoto;folder-avatar-tooltip/palette-avatar-tooltipuseda pasta/da paletawhile all ~25 siblings usede Xappearance-browser-icon-unlocked(.message) — "bonus icons" isícones de bônushere butícones extras de raposasinappearance-browser-icon-requirementcontainers-dialog(.buttonlabelaccept) — "Done" isConcluídohere andProntoincontainers-panel-create-buttonlanguages-customize-select-language(.placeholder) —um idioma a adicionarvsum idioma para adicionarinbrowser-languages-select-languagebrowser-languages-errorandbrowser-language-install-error(.message) —à Internetcapitalized; the rest of the tree uses lowercaseinternetautofill-address-prefecture—Provínciacollides withautofill-address-province→Prefeiturafor the Japanese prefecture fieldapplications-use-os-default(.label, all three PLATFORM variants) —aplicaçãoappears only here; the whole scope usesaplicativo. Same pt-PT term insafeb-blocked-harmful-page-error-desc-override/-no-overrideandpolicy-AppAutoUpdate/policy-RequestedLocalessearch-suggestions-cant-show,search-suggestions-cant-show-2(.message) —barra de endereço(singular); ~20 other strings usebarra de endereçossettings-translations-subpage-download-progress—Transferência em andamento…→Download em andamento…(the file uses "Download"/"Baixar" throughout)preferences-ai-controls-block-confirmation-description—melhorias→aprimoramentos de inteligência artificial(as in the rest of the section)content-blocking-suspected-fingerprinters-label,preferences-etp-custom-suspect-fingerprinting-protection-enabled,-enabled-context—Suspeitos de ser rastreadores…→Rastreadores de identidade digital (fingerprinters) suspeitos(parallel to the "…conhecidos" label; and "de ser" would need "de serem")windows-10-eos-sync-callout-privacy-screen-1-title—bloqueia mineração de criptomoedas→bloqueia mineradores de criptomoedas(cryptominers are agents;preferences.ftluses "mineradores de criptomoedas")newtab.ftlwidget terms — "Dismiss":Dispensar(newtab-menu-dismiss) vsDescartar(4 other strings); "Unfollow":Parar de seguir(newtab-section-unfollow-button) vsDeixar de seguir(3 others); "feed":canal de notícias/canal de informações/feed; "break":Intervalovspausain the timer strings; "teams":equipes(newtab-sports-widget-follow-teams-title) vstimeseverywhere elsejuly-jam-body(asrouter.ftl) andmr2022-onboarding-get-started-primary-subtitle(onboarding.ftl) address the user asvocês(plural) while the rest of the tree uses singularvocêonboarding-live-language-skip-button-label—Ignorar→Pular(used by the three other "Skip" strings)sync-to-mobile-button-labelvsdesktop-to-mobile-subtitle— the subtitle tells the user to select "Sincronizar com dispositivos móveis" but the button reads "Sincronização com dispositivos móveis"onboarding-refresh-gratitude-subtitle—o único principal navegador→o único grande navegador(as inwelcome-back-spotlight-subtitle)policy-Extensions— the comment says the keys may be translated as verbs:"Bloqueado"→“Bloquear”
toolkit
- "Warning":
Ícone de alerta(about-debugging-message-warning-icon.alt) vsavisoeverywhere else (about-debugging-message-details-label-warning,icon-warning,accessibility-warning) - "cross-origin isolated":
isolamento de origem cruzada(about-processes-with-coop-coep-process*) vscross-origin isolado(about-processes-web-isolated-property-with-coop-coep) - "Off Main Thread":
fora do processo principal(off-main-thread-paint-enabled) vsfora do thread principal(off-main-thread-paint-worker-count) — it is a thread - "trace log":
registro de acompanhamentovsregistro de execução(about-webrtc-debug-mode-off-state-msg/-on-state-msg) - "frames":
about-webrtc-frameskeepsframe/frames; the file usesQuadroselsewhere - "Timestamp":
about-webrtc-sdp-set-timestampleaves it in English; the siblings useestampa de tempo about-webrtc-rtp-stats-heading—Estatística RTP(singular) vsEstatísticas ICE/Estatísticas da sessão- "cache" gender:
active-cache-name,waiting-cache-name(aboutServiceWorkers.ftl) treat it as feminine (da cache ativa);aboutSupport.ftltreats it as masculine throughout - "Homepage":
Página web(addon-detail-homepage-label) vsSite(detail-home.label) - "Rating"/"Reviews":
Avaliaçãois used for both the star rating and the reviews, whileClassificaçãois used elsewhere —five-star-rating.title,detail-rating,addon-detail-rating-label,addon-detail-reviews-link - "Manage Your X" headings:
Gerenciamento de…/Gerencie suas…/Gerenciar…acrossextension-heading,theme-heading,plugin-heading,dictionary-heading,locale-heading,updates-heading,sitepermission-heading,shortcuts-heading details-notification-blocked,details-notification-softblockedprependOto an arbitrary add-on name; all sibling notifications don't (and the article can disagree with the name)details-notification-hard-blocked-other,details-notification-soft-blocked-other-disabled2,-other-enabled2,-other-disabled,-other-enabled— the-othervariants exist because the add-on is not an extension (en-US "This add-on"), but they all sayEsta extensão- "uses this":
usa isso(mlmodel-about-inference,mlmodel-link-preview,mlmodel-formfill-engine) vsusa isto(mlmodel-pdfjs,mlmodel-smart-tab-*) - "log":
registroinurl-classifier.ftl(url-classifier-debug-module-btn,-debug-file-btn,-debug-js-log-chk,-debug-sb-modules,-debug-modules,-debug-file,-disable-sbjs-log,-enable-sbjs-log) vslogthroughoutaboutLogging.ftl - "profile" (performance profile):
about-logging-view-uploaded-profile,about-logging-delete-profile-confirm-titleuseperfil, colliding with user profiles; the rest of the file usesprofile - "clipboard":
raw-data-copied,text-copied(aboutSupport.ftl),windows-messages-copy-to-clipboard(aboutWindowsMessages.ftl) drop the article:para área de transferência→para a área de transferência - "Experimental features":
Funcionalidades experimentais(devtools/client/toolbox-options.ftl) vsRecursos experimentais(aboutSupport.ftl) - "Set log file"/"Set log modules":
url-classifier.ftlusesConfigurar arquivo de registro/módulo de registro;aboutLogging.ftlusesarquivo de log/módulos de log - "scrolling" in
pdfviewer/viewer.ftl:Rolagem de página(pdfjs-scroll-page-button) vsDeslocamento vertical/-horizontal/-wrapped - "Start typing…":
Comece a digitar…(pdfjs-free-text2.default-content) vsComeçar a digitar…(pdfjs-editor-edit-comment-dialog-text-input.placeholder) - "Legal" paper size:
Jurídico(pdfjs-document-properties-page-size-name-legal) vsLegal(printui-paper-legal) theme-picker-pine(.label)Pinhovstheme-picker-pine-aria-labelPinheiro— the dev comment says pine treesEnterUserPasswordFor2—seu usuário e senha→seu nome de usuário e senha(as in the neighbouring strings)- "Tem certeza que" (queísmo) in
form-post-secure-to-insecure-warning-message,formPostSecureToInsecureWarning.message,download-ui-confirm-quit-cancel-downloads,-cancel-downloads-mac,download-ui-confirm-leave-private-browsing-windows-cancel-downloads,download-ui-file-executable-security-warning→Tem certeza de que certErrorTrust_SelfSigned/cert-error-trust-self-signedvsmozilla-pkix-error-self-signed-cert—não é confiávelvsnão é considerado confiávelfor the same en-US sentencesec-error-js-add-mod-failure/sec-error-js-del-mod-failure(Não foi possível adicionar/excluir o módulo) vsadd-module-failure/del-module-error(…adicionar/excluir módulo)remove-primary-password-info(Precisa digitar a senha atual…) vsremove-info(Você deve fornecer a senha atual…) for the same en-US stringforms-primary-pw-fips-title(O FIPS exige) vspp-change2empty-in-fips-mode(O modo FIPS exige)certmgr-add-exception(Adicionar exceção…) vspermissions-disable-etp(Adicionar exceção)
devtools
- "parent":
ao parent do elementoininactive-css-not-grid-or-flex-or-absolutely-positioned-item-fix,-not-grid-or-absolutely-positioned-item-fix,-not-grid-item-fix-2,-not-flex-item-fix-2, and the four-1/-3revisions →ao pai do elemento(which the two newest revisions already use); this is prose, not a CSS keyword - "W3C standards":
padrões W3C(css-compatibility-deprecated-experimental-message) vsnormas W3C(the four siblingcss-compatibility-*strings) - "Preset":
Configuração prévia(perftools-presets-debug-description) vsAjuste prévio(the other 8perftools-presets-*-description) - "target":
O target(session-history-target-unsupported) vsalvo(options-tool-not-supported-label,compatibility-target-browsers-header, aboutdebugging) - "Session storage":
Armazenagem de sessão(storage-tree-labels-session-storage) vsArmazenamentoeverywhere else in the file - "debugger"/"debug":
toolbox-options.ftlmixesno debugger,ferramentas de debug,debugarwithdepuração remota;application.ftlmixesDebugwithdepuradosand<span>Debugger</span>
dom / netwerk / security
- ARIA landmark
banner:aviso(win/accessible.properties) vsbanner(mac/accessible.properties) vsfaixa(AccessFu.properties) — one term, please heading:cabeçalho(mac/accessible.properties) vstítulo(AccessFu.properties, which usescabeçalhoforheader)- CSP "policy" vs "directive" — both render as
diretiva, producing strings like "(diretiva Report-Only) … viola a seguinte diretiva". Affected: allCSPRO*prefixes (~10),CSPROViolation,CSPTrustedTypesPolicyViolation,CSPROTrustedTypesPolicyViolation,ignoringReportOnlyDirective,reportURINorReportToNotInReportOnlyHeader,reportURInotInReportOnlyHeader(csp.properties);CORS*"A diretiva Same Origin" (16 strings),FeaturePolicy*,ReferrerPolicyDisallowRelaxing*(security.properties);SEC_ERROR_INVALID_POLICY_MAPPING,SEC_ERROR_POLICY_VALIDATION_FAILED(nsserrors.properties);download-cert-message-desc(pippki.ftl);CookieLaxForced2(necko.properties). Suggestpolíticafor policy. triedToSendReport(csp.properties) —relato→relatório(as intooManyReports)IntegrityPolicyReportOnlyBlockedStylesheet(security.properties) —folha de estilo→folha de estilos(as in the…Enforce…sibling)delete-user-cert-impact(certManager.ftl) — missing object pronoun:não poderá mais usar para se identificar→não poderá mais usá-lo para se identificarsec-error-cert-not-in-name-spaceusesAutoridade de Certificação; the rest of the tree usesautoridade certificadora
These are in the same categories as above, listed together because they live in the older .properties format.
browser/pdfviewer/viewer.properties
bookmark1_label—Pagina atual→Página atual(same typo as the.ftlpdfjs-bookmark-button-label; every other entry in the file uses "Página")document_properties_page_size_name_legal— a paper-size name translated as a subject area. Current:Jurídico→ Suggest:Ofícioor keepLegal(the sibling…_name_lettercorrectly usesCarta)print_progress_percent— space before%:{{progress}} %→{{progress}}%(cf.page_scale_percent)document_outline.title—duplo-clique→duplo clique
browser/installer/
InvalidOpcode(override.properties) —opcode invalido→opcode inválidoShowDetailsBtn(override.properties) — indicative instead of a label:Mostra &detalhes→Mostrar &detalhesClickNext,ClickInstall,ClickUninstall(override.properties) — infinitive wherecustom.propertiesandmui.propertiesuse the imperative:Clicar em Avançar para continuar.→Clique em Avançar para continuar.DirText(override.properties) — "another folder" became "the other folder", plus infinitive-for-imperative:…clicar em Procurar e selecionar a outra pasta.→…clique em Procurar e selecione outra pasta.CreatedUninstaller(override.properties) — a past-tense log line rendered as an action label, making it indistinguishable fromCreateFolder/CreateShortcut:Criar desinstalador:→Desinstalador criado:Skipped(override.properties) —Ignorando:→Ignorado:FileError_NoIgnore(override.properties) — straight quotes around button names where the parallelFileErroruses“ ”UN_SURVEY_CHECKBOX_LABEL(custom.properties) — indirect interrogative needspor que, and the brand article is missing:Fale para a Mozilla porque você desinstalou $BrandShortName→Diga à Mozilla por que você desinstalou o $BrandShortNameERROR_DOWNLOAD_CONT(nsisstrings.properties) — stray space after the newline escape:\n Escolha OK→\nEscolha OKMUI_INNERTEXT_STARTMENU_TOP(mui.properties) —pasta do Menu Iniciar→pasta do menu Iniciar(lowercase inMUI_TEXT_STARTMENU_TITLE/_SUBTITLEandICONS_STARTMENU)
browser/chrome/
e10s.accessibilityNotice.jawsMessage(browser.properties) — subject "A exibição" is feminine:foi desativado→foi desativadatroubleshootModeRestartPromptMessage(browser.properties) — mixed-gender list → masculine plural, and en-US is future:são temporariamente desativadas→serão temporariamente desativadossidebar.moveToLeft,sidebar.moveToRight(browser.properties) —Mover painel para esquerda/para direita→para a esquerda/para a direitapermission.canvas.label(sitePermissions.properties) — "canvas" rendered astela, colliding withpermission.screen.label(Compartilhar a tela);browser.propertieskeeps "canvas". Current:Extrair dados da tela→ Suggest:Extrair dados do canvaspermission.popup-only.label,permission.popup.label,permission.popup-and-framebusting.label(sitePermissions.properties) — the pop-up qualifier is dropped, so the permission reads as any window/tab opening:Abrir janelas ou abas→Abrir janelas popup;Abertura de janelas e redirecionamento de terceiros→Janelas popup e redirecionamentos de terceirosaddProtocolHandlerMessage(feeds/subscribe.properties) —uma aplicação→um aplicativo(the button right below it,addProtocolHandlerAddButton, uses "aplicativo")unsafeContentType(overrides/appstrings.properties) —Entre em contate com→Entre em contato comcorruptedContentErrorv2,isprinting(overrides/appstrings.properties) — same two defects as indom/chrome/appstrings.properties(see §3.F, §3.G); fix both copiesunknownProtocolFound(overrides/appstrings.properties) —por causa do protocolo (%S) não estar associado→porque o protocolo (%S) não está associadoxfoBlocked(overrides/appstrings.properties) —diretiva X-Frame-OptionsvspolíticaincspBlockedimmediately aboveupdateCreditCardMessage(extensions/formautofill/formautofill.properties) — stray]in the visible string, plus singular where the parallelupdateAddressMessageis plural:Quer] atualizar seu cartão de crédito com esta nova informação?→Quer atualizar seu cartão de crédito com essas novas informações?
devtools/client/debugger.properties
sourceTabs.prettyPrint— "Pretty print" read as paper printing. Current:Formatar fonte para impressão→ Suggest:Formatar código-fonte(the siblingssourceTabs.removePrettyPrint,sourceFooter.prettyPrint.*,settings.autoPrettyPrint.labelall avoid "impressão")inlinePreview.toggle.label— en-US "Inline Variable Preview"; "variável" reads as an adjective:Previsão variável inline→Previsão de variáveis inlinesettings.autoPrettyPrint.tooltip—códigos fonte … serão formatadas→códigos-fonte … serão formatadossourceFooter.mappedSourceTooltip—(fonte mapeado de %S)→(fonte mapeada de %S)sourceFooter.mappedGeneratedSource.tooltip—fonte original relacionado→fonte original relacionadascopes.loadingOriginalScopes—variáveis do fonte original→variáveis da fonte originalscopes.showOriginalScopesTooltip—variáveis mapeadas para o fonte original→mapeados para a fonte originaleditorNotificationFooter.noOriginalScopes— missing space after the closing backtick:`%S`no painel→`%S` no painelexpressions.noOriginalScopes,scopes.noOriginalScopes,editorNotificationFooter.noOriginalScopes— "original" attached to the wrong noun; the checkbox they refer to isscopes.mapping.label= "Mapear nomes originais de variáveis". Current:O mapeamento original de nomes de variáveis→ Suggest:O mapeamento de nomes originais de variáveissetDirectoryRoot.label,removeDirectoryRoot.label—raiz do diretório→diretório raiz(as indirectoryRoot.tooltip.label,noSourcesInDirectoryRootText)ignoreContextItem.unignoreLines—Não ignorar linhas→Deixar de ignorar linhas(the six sibling "unignore" entries use that form)pauseOnDebuggerStatement—debuggeris the JS keyword here:Pausar na instrução do depurador→Pausar na instrução debuggereventlisteners.log.label—Logar eventos no console→Registrar eventos no console
devtools/client/netmonitor.properties
netmonitor.timings.handledByServiceWorker— missing the trailing colon that all sibling Timings labels havenetworkMenu.ws.summary.framesCount2— stray space before the plural separator:#1 mensagem ;#1 mensagens→#1 mensagem;#1 mensagenscharts.totalSecondsNonBlocking— stray space after the plural separator:…#1 segundo; Tempo sem bloqueio:→…#1 segundo;Tempo sem bloqueio:netmonitor.context.useAsFetch— imperative in a context-menu command where all siblings use the infinitive:Use como busca (fetch) no Console→Usar como busca (fetch) no consolenetmonitor.ws.toolbar.retry— a column header for the SSEretryfield (an interval), not a button:Tentar novamente→Repetição(or keepRetry, like the sibling headersopCode,maskBit,finBit)netmonitor.toolbar.resizeColumnToFitContent.title—Duplo-clique→Duplo clique
devtools/client/inspector.properties
eventsTooltip.Capturing— phase name as a participle while its siblingeventsTooltip.Bubblingis a noun:Capturando→Capturainspector.eyedropper.label2— same en-US string asinspector.eyedropper.label, one imperative, one infinitive:Capture uma cor da página (%S)→Capturar uma cor da página (%S)inspectorScreenshotNode.label—área de tela= "screen area", not screenshot:Capturar área de tela do node→Capturar tela do node
devtools/client/webconsole.properties (and the identical devtools/shared/webconsole.properties — fix both copies)
webconsole.group.cookieSameSiteLaxByDefaultDisabled2— "recommended" dropped, making this string a bare prefix of…Enabled2and erasing the distinction between the two warning groups. Suggest:…o atributo “SameSite“ recomendadowebconsole.input.editor.onboarding.label— "Iterate on your code" became "interact with":Interaja mais rápido com seu código→Itere mais rápido no seu códigonoGroupLabel— English word order inside a Portuguese phrase:<sem group label>→<sem rótulo de grupo>evaluationNotifcation.noOriginalVariableMapping.msg— renders "debugger" asdepuradortwice while 18 other occurrences in scope keepdebuggerwebconsole.message.commands.startTracingToProfiler—Começou a gravar para o profiler … ao parar a gravação.→Começou a registrar no profiler … ao parar de registrar.(matching the four sibling tracing messages)
Other devtools/
accessibility.pref.scroll.into.view.title,….label(accessibility.properties) — "scroll" asdeslizar(to slide); Firefox pt-BR uses rolar/rolagem. →Rolar automaticamente o node selecionado para dentro da visão/Rolar para dentro da visãoaccessibility.pick(accessibility.properties) — a stray "de" turns the action into a noun phrase:Escolha de um objeto acessível da página→Escolher um objeto acessível da páginatraceValues(startup.properties) —Logar argumentos passados→Registrar argumentos passados(the six siblingtrace*entries use "Registrar")toolbox.parentProcessBrowserToolboxTitle(toolbox.properties) — modifier attached to the wrong noun:Ferramentas do navegador de processos superiores→Ferramentas do navegador do processo paiplayer.animationEndDelayLabel(animationinspector.properties) —endDelayis the delay after the animation ends:Final do atraso:→Atraso final:responsive.devicePixelRatio.auto(responsive.properties) —%1$Sis the device that sets the DPR:definida automaticamente como %1$S→definida automaticamente por %1$Sresponsive.screenshot(responsive.properties) —área visível→área de exibição(the term used byresponsive.rotate,…changeDevicePixelRatio,…leftAlignViewport)fontinspector.allFontsOnPageHeader(font-inspector.properties) —Todos as fontes na página→Todas as fontes na páginaflexbox.itemSizing.itemContentSize(layout.properties) — en-US "Content Size":Tipo do conteúdo→Tamanho do conteúdolayout.toggleGridHighlighter(layout.properties) — the only place CSS Grid becomesgradein all of devtools:realçador de grade→realçador de griddropShadowPlaceholder(filterwidget.properties) — en-US "x y radius color" is the parameter order the user types:Cor do raio x y→x y raio coremptyPresetList(filterwidget.properties) — transitive verb without its object:você pode reusar com facilidade→você pode reusá-los com facilidadeboxmodel.offsetParent.title(boxmodel.properties) —Superior de deslocamento do elemento selecionado→Elemento pai de deslocamento do elemento selecionadoeyedropper.label(menus.properties) — labels the Eyedropper with the term reserved for the color picker (seletor de coresinlayout.colorSwatch.tooltip,rule.colorSwatch.tooltip): →Conta-gotassearchModifier.wholeWordModifier(components.properties) — missing crase:Corresponder a palavra inteira→Corresponder à palavra inteirascreenshotFilenameManual(devtools/shared/screenshot.properties) — straight"where en-US uses curly quotes; the only straight-quote value in the whole devtools scopescreenshotClipboardManual,screenshotFullPageManual,screenshotFileManual(devtools/shared/screenshot.properties) — locale-added straight'True'(en-US has no quotes)
toolkit/chrome/
Prompt(global/commonDialogs.properties) — the title of awindow.prompt()text-input dialog. Current:Confirmação— which both misdescribes it and collides withConfirm=Confirmar→ Suggest:SolicitaçãorememberPassword(passwordmgr/passwordmgr.properties) —gerenciador de senha→gerenciador de senhasprofileMissing(mozapps/profile/profileSelection.properties) — second clause not in the infinitive governed by "pode":Ele pode não existir ou está inacessível.→…ou estar inacessível.profileNotEncryptedButPrefOn(same file) — "this build of %S" rendered two ways in adjacent entries:esta versão do %S→esta compilação do %S(matchingprofileEncryptedButPrefOff)chooseFolder(same file) — trailing colon on a dialog title:Selecione a pasta do perfil:→Selecione a pasta do perfilautoConfigMsg(autoconfig/autoconfig.properties) — the same en-US sentence translated two ways in one file:Avise o administrador do sistema.→Entre em contato com o administrador do sistema.(matchingreadConfigMsg)
Also upstream in this area (do not fix): webconsole.cssFilterButton.inactive.tooltip miscapitalizes "Javascript" — identical in en-US.
Clean, no findings: devtools/client/{sourceeditor, styleeditor, jsonview, network-throttling, shared, device, dom, har, changes, memory}.properties, devtools/shared/{accessibility, debugger, eyedropper, shared, styleinspector}.properties, mobile/android/chrome/*, browser/branding/official/brand.properties, and the remaining toolkit/chrome files.
| Area | Findings |
|---|---|
browser/browser/*.ftl (top level) |
~120 |
browser/browser/preferences/ |
~40 |
browser/browser/newtab/ + branding/policies/safebrowsing/profile |
~65 |
toolkit/toolkit/about/ |
~60 |
toolkit/ (non-about/, incl. intl, neterror, pdfviewer, global, printing, crashreporter) |
~65 |
devtools/ |
~35 |
dom/ + security/ + netwerk/ + mobile/ |
~70 |
browser/**/*.properties (incl. installer, pdfviewer, extensions) |
~25 |
devtools/**/*.properties |
~40 |
toolkit/chrome/**/*.properties |
~12 |
| Cross-cutting typography / terminology buckets | see §3.I, §3.J |
These are large normalization passes, best done as separate, deliberate changes:
-smart-window-brand-namegender —aiWindow.ftltreats it as masculine in ~9 strings and feminine in 2;aiFeatures.ftlandaiWindowContent.ftlare masculine throughout. Pick one (feminine is grammatical for "Janela inteligente") and normalize the whole tree.- Quote characters — the locale convention is
“ ”, but ~25.ftlstrings and ~25.propertiesentries use straight'or"(and two use˝/‘…’mismatches). In most cases en-US has no quotes at all, so removing them is also correct. .propertiesquoting innsserrors/csp/layout— the.ftlnsserrorsfile consistently uses'…'while the.propertiescounterpart uses unbalanced“…“; decide on one and apply per file.Wi-FivsWiFi— 9 strings; en-US uses the trademarked form throughout.- CSP/CORS "policy" vs "directive" — both currently render as
diretivaacross ~35 entries, which makes several messages self-contradictory. pushcrypto verbs —decriptografarvsdescriptografar(7 vs 2 entries).- Access-key remapping — 3 keys still carry the en-US letter (§3.A). Small enough to fix directly, but it is a UI-conflict-sensitive change.
- Sentence case vs Title Case — a handful of stragglers in otherwise sentence-case files (§3.I, Capitalization).
- The §3.J terminology list — each entry is a choose-one call for the locale team, not an objective defect.
If only a small set gets fixed, these have the highest user impact:
browser-layout-horizontal-tabs2.description— says the opposite of the setting it describespageInfo_BrokenEncryption— reports a broken connection as a normal encrypted oneabout-networking-networkid-status-known— says "unknown" where en-US says "known"sec-error-cert-not-in-name-space,CheckLoadURIError,CheckSameOriginError,WindowCloseBlockedWarning,RequestStorageAccessPermissionsPolicy— security messages with inverted modality- The 18
certError.ftlstrings saying the host issued the certificate firefox-relay-offer-legal-notice-1/-control— broken</label label>markupCopitor→ Copilot,Perflexity→ Perplexity — misspelled third-party brandslanguage-name-ieandregion-name-sx— duplicate entries that make two distinct languages/territories indistinguishablepictureinpicture-playback-rate-value/-preset—× 1.25instead of1.25×updateCreditCardMessage— a stray]in a user-facing doorhanger: "Quer] atualizar…"permission.canvas.label/permission.popup*.label— permission labels that describe the wrong capabilitySão Vincente,possivel,Ocular,Deconectar,Examplo,defeito,Foco na a,Praia ao ao,estivar,Pagina atual(×2),Arquivo invalido,opcode invalido,Entre em contate,Todos as fontes— visible spelling errors