From fb01966a0086333554b9c6662d513ce1a48a1b21 Mon Sep 17 00:00:00 2001 From: RicSchonfelder Date: Wed, 7 Oct 2026 17:03:20 -0300 Subject: [PATCH] i18n: add Brazilian Portuguese (pt-br) UI translation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add pt-br as a fifth interface language beside English, Simplified Chinese, Traditional Chinese (Taiwan) and Japanese. `crates/ui-egui/locales/pt-br.json` and `pt-br-formats.json` carry the messages and the format strings; the language table gains the entry (`PtBr, "pt-br", "Português (Brasil)", "Latn", ...`), and Edit > Language plus `app.language.portuguese` select it. Locale tags pt-BR, pt_BR.UTF-8 and pt all normalize to the same language. Translation follows pt-BR UI conventions (Adobe terms: revelação, balanço de branco, máscara, cópia virtual…); proper nouns and file formats stay as written (LightCraft, ArtCraft, GitHub, DNG, TIFF, XMP). Placeholders, format specs and punctuation match the English source; the English plural suffix is consumed with `{:.0}` where Portuguese does not need it. Tests: every_language_has_a_catalog_covering_the_source, catalogs_agree_on_placeholders_and_report_gaps, locale_tags_normalize and the painted-window test now cover pt-br. Docs: localization.md, a new localization-pt-br.md and the parity rows. Co-Authored-By: DeepSeek V4 Flash (opencode) --- crates/ui-egui/locales/pt-br-formats.json | 122 ++ crates/ui-egui/locales/pt-br.json | 1261 +++++++++++++++++++++ crates/ui-egui/src/i18n.rs | 11 + crates/ui-egui/src/menus.rs | 2 + docs/localization-pt-br.md | 36 + docs/localization.md | 7 +- docs/parity.md | 4 +- xtask/src/parity.rs | 2 +- 8 files changed, 1439 insertions(+), 6 deletions(-) create mode 100644 crates/ui-egui/locales/pt-br-formats.json create mode 100644 crates/ui-egui/locales/pt-br.json create mode 100644 docs/localization-pt-br.md diff --git a/crates/ui-egui/locales/pt-br-formats.json b/crates/ui-egui/locales/pt-br-formats.json new file mode 100644 index 00000000..50b0f2ab --- /dev/null +++ b/crates/ui-egui/locales/pt-br-formats.json @@ -0,0 +1,122 @@ +{ + " ({} in Recently Deleted)": " ({} em Excluídos recentemente)", + " · {skipped} skipped (file exists)": " · {skipped} ignorada(s) (arquivo existente)", + " · {} duplicate{} skipped": " · {} duplicada{:.0} ignorada", + " · {} failed: {}": " · {} falhou: {}", + " · {} moved": " · {} movida(s)", + " · {} not readable": " · {} não legível", + ", {failed} file{} not readable": ", {failed} arquivo{:.0} não legível", + "Add {local_n} to My Photos": "Adicionar {local_n} a Minhas fotos", + "Add {} Photo{}": "Adicionar {} foto{:.0}", + "Add “{}” to Favorites": "Adicionar “{}” aos favoritos", + "Added {n} photo{} to My Photos": "Adicionada {n} foto{:.0} a Minhas fotos", + "Added {n} photo{} to “{}”": "Adicionada {n} foto{:.0} a “{}”", + "Adding photos… {} of {}": "Adicionando fotos… {} de {}", + "All {n} selected photos move by the same amount.": "Todas as {n} fotos selecionadas se movem pela mesma quantidade.", + "Already in the library, in Recently Deleted: {} photo{} selected · right-click ▸ Restore, or Delete Permanently to import afresh": "Já na biblioteca, em Excluídos recentemente: {} foto{:.0} selecionada · clique com o botão direito ▸ Restaurar, ou Excluir permanentemente para importar de novo", + "Already in the library: {} photo{} selected in All Photos": "Já na biblioteca: {} foto{:.0} selecionada em Todas as fotos", + "Auto ({})": "Automático ({})", + "Auto Sync: edits apply to {n} photos": "Sincronização automática: edições aplicadas a {n} fotos", + "Automatic ({} MB)": "Automático ({} MB)", + "Build 1:1 Previews ({scope})": "Gerar pré-visualizações 1:1 ({scope})", + "Build Smart Previews ({scope})": "Gerar pré-visualizações inteligentes ({scope})", + "Build Standard-Sized Previews ({scope})": "Gerar pré-visualizações em tamanho padrão ({scope})", + "Click {}:1": "Clique em {}:1", + "Create {n} Virtual Copies": "Criar {n} cópias virtuais", + "Decoder: {reason}": "Decodificador: {reason}", + "Delete \"{label}\"": "Excluir \"{label}\"", + "Delete \"{label}\" (and the mask)": "Excluir \"{label}\" (e a máscara)", + "Delete {n} Photos": "Excluir {n} fotos", + "Delete “{current}”": "Excluir “{current}”", + "Discard Smart Previews ({scope})": "Descartar pré-visualizações inteligentes ({scope})", + "Duplicate \"{label}\"": "Duplicar \"{label}\"", + "Example: {example}": "Exemplo: {example}", + "Exported {n} photo{}": "Exportada {n} foto{:.0}", + "Exported {ok} of {total} photo{}": "Exportadas {ok} de {total} foto{:.0}", + "Exported {} point curve preset{}": "Exportadas {} predefinição{:.0} de curva de pontos", + "Exported {} preset{}": "Exportadas {} predefinição{:.0}", + "Exporting {} of {total}": "Exportando {} de {total}", + "Filter bar — {active} active filter{}": "Barra de filtros — {active} filtro{:.0} ativo", + "Healed {n} dust spot{}": "Recuperadas {n} mancha{:.0} de poeira", + "Import cancelled · {} photo{} added": "Importação cancelada · {} foto{:.0} adicionada", + "Imported {n} point curve preset{}": "Importadas {n} predefinição{:.0} de curva de pontos", + "Imported {n} preset{}": "Importadas {n} predefinição{:.0}", + "Imported {n} preset{}, {f} file{} not readable": "Importadas {n} predefinição{:.0}, {f} arquivo{:.0} não legível", + "Imported {} photo{}": "Importadas {} foto{:.0}", + "Label Set: {name}": "Conjunto de rótulos: {name}", + "Matches: {}": "Correspondências: {}", + "Merging… {stage} {:.0}%": "Mesclando… {stage} {:.0}%", + "Move {what} to Recently Deleted?": "Mover {what} para Excluídos recentemente?", + "Named ({named_n})": "Nomeadas ({named_n})", + "Paste into {n} photo{} — only settings that were copied are pasted": "Colar em {n} foto{:.0} — somente os ajustes copiados são colados", + "Preset: {name}": "Predefinição: {name}", + "Preview only — editing the camera's embedded JPEG ({})": "Somente pré-visualização — editando o JPEG incorporado da câmera ({})", + "Preview only — {}": "Somente pré-visualização — {}", + "Profile: {}": "Perfil: {}", + "Proof Copy ({})": "Cópia de prova ({})", + "Proof Preview · {}": "Pré-visualização de prova · {}", + "Quick Develop · {n} photos": "Revelação rápida · {n} fotos", + "Quick Develop: {name}": "Revelação rápida: {name}", + "Rated {}": "Avaliada {}", + "Reading photos… {done} of {total}": "Lendo fotos… {done} de {total}", + "Reading photos… {} of {}": "Lendo fotos… {} de {}", + "Redo {}": "Refazer {}", + "Remove “{}” from Favorites": "Remover “{}” dos favoritos", + "Rename {n} Photos…": "Renomear {n} fotos…", + "Rename “{name}”": "Renomear “{name}”", + "Rendering on the CPU: {why}": "Renderizando na CPU: {why}", + "Reset {name}": "Redefinir {name}", + "Reset {} Channel": "Redefinir canal {}", + "Saved export preset “{}”": "Predefinição de exportação “{}” salva", + "Show {hidden} hidden location{}": "Mostrar {hidden} local{:.0} oculto", + "Showing {n} of {}": "Mostrando {n} de {}", + "Smart album: {}": "Álbum inteligente: {}", + "Undo {}": "Desfazer {}", + "Updated “{name}”": "“{name}” atualizado", + "Version {} — a clean-room, pure-Rust photo library and raw developer.": "Versão {} — uma biblioteca de fotos e revelador RAW em Rust puro, desenvolvida de forma independente.", + "Version: {}": "Versão: {}", + "none (CPU rendering): {why}": "nenhum (renderização na CPU): {why}", + "the {n} selected photos": "as {n} fotos selecionadas", + "the {} photos in view": "as {} fotos em exibição", + "these {count} photos": "estas {count} fotos", + "{count} smart preview{} · {:.1} MB": "{count} pré-visualizações{:.0} · {:.1} MB", + "{f} folders (and their subfolders)": "{f} pastas (e suas subpastas)", + "{label} Grading": "Graduação de {label}", + "{label} {d:+} on every selected photo": "{label} {d:+} em cada foto selecionada", + "{label}, {n} photos": "{label}, {n} fotos", + "{matching} of {t} photos": "{matching} de {t} fotos", + "{matching} photos": "{matching} fotos", + "{mode} spot {} of {}": "{mode}: ponto {} de {}", + "{month}": "{month}", + "{month} {year}": "{month}/{year}", + "{msg} ({failed} failed)": "{msg} ({failed} com falha)", + "{name} Label": "Rótulo {name}", + "{name} Off": "{name} desativado", + "{name} On": "{name} ativado", + "{name} — double-click to reset it": "{name} — clique duas vezes para redefinir", + "{n} change{} saved in memory but not written to disk: {e}\nLightCraft retries automatically; quitting now would lose {}.": "{n} alteração{:.0} salva na memória mas não gravada no disco: {e}\nO LightCraft tenta novamente automaticamente; encerrar agora perderia {}.", + "{n} found · {sel} selected": "{n} encontradas · {sel} selecionadas", + "{n} photos": "{n} fotos", + "{n} photos in {} are hidden by the filters above": "{n} fotos em {} estão ocultas pelos filtros acima", + "{n} photo{}": "{n} foto{:.0}", + "{n} photo{} match · updates automatically as photos change": "{n} foto{:.0} correspondente(s) · atualiza automaticamente conforme as fotos mudam", + "{n} photo{} now · updates automatically as photos change": "{n} foto{:.0} agora · atualiza automaticamente conforme as fotos mudam", + "{sel_n} selected · {counted}": "{sel_n} selecionadas · {counted}", + "{stage}… {:.0}%": "{stage}… {:.0}%", + "{verb} {n} Photo{}": "{verb} {n} foto{:.0}", + "{weekday}, {day}": "{weekday}, {day}", + "{weekday}, {day} {month} {year}": "{weekday}, {day}/{month}/{year}", + "{what} merge added": "{what} mesclagem adicionada", + "{what} merge failed: {e}": "{what} falha na mesclagem: {e}", + "{year}": "{year}", + "{} and higher": "{} ou superior", + "{} files": "{} arquivos", + "{} files and {f} folder{}": "{} arquivos e {f} pasta{:.0}", + "{} of 4 guides — drag along lines that should be vertical or horizontal.": "{} de 4 guias — arraste ao longo das linhas que devem ficar verticais ou horizontais.", + "{} photos": "{} fotos", + "{} photo{} not readable": "{} foto{:.0} não legível", + "{} spot(s) on this photo": "{} ponto(s) nesta foto", + "· {dups} already in the library": "· {dups} já na biblioteca", + "· {n} photo{}": "· {n} foto{:.0}", + "… and {more} more": "… e mais {more}" +} diff --git a/crates/ui-egui/locales/pt-br.json b/crates/ui-egui/locales/pt-br.json new file mode 100644 index 00000000..503b2eda --- /dev/null +++ b/crates/ui-egui/locales/pt-br.json @@ -0,0 +1,1261 @@ +{ + "+ Group": "+ Grupo", + "+ Rule": "+ Regra", + "0: nothing is rejected.": "0: nada é rejeitado.", + "A filter is hiding this view's photos: change it, or clear it (View → Clear Filters)": "Um filtro está ocultando as fotos desta exibição: altere-o ou limpe-o (Exibir → Limpar filtros)", + "A one-time download of about": "Um download único de cerca de", + "About LightCraft": "Sobre o LightCraft", + "Activity": "Atividade", + "Actual size": "Tamanho real", + "Add": "Adicionar", + "Add Catchlight": "Adicionar brilho no olho", + "Add Folder to Local": "Adicionar pasta ao Local", + "Add Point Color Sample": "Adicionar amostra de cor por ponto", + "Add Red Eye Correction": "Adicionar correção de olhos vermelhos", + "Add Remove Spot": "Adicionar Remover manchas", + "Add Selected Photos": "Adicionar as fotos selecionadas", + "Add a rule (⌥-click: a group)": "Adicionar uma regra (⌥-clique: um grupo)", + "Add in place": "Adicionar no local", + "Add in place: the library references the files where they are; nothing is copied or moved.": "Adicionar no local: a biblioteca referencia os arquivos onde eles estão; nada é copiado nem movido.", + "Add keyword": "Adicionar palavra-chave", + "Add number": "Adicionar número", + "Add to": "Adicionar a", + "Add to Album": "Adicionar ao álbum", + "Add to Favorites": "Adicionar aos favoritos", + "Add to My Photos": "Adicionar às Minhas fotos", + "Add to Selected Photos": "Adicionar às fotos selecionadas", + "Add to Target Album": "Adicionar ao álbum de destino", + "Add to this mask": "Adicionar a esta máscara", + "Add/Subtract/Intersect Mask": "Adicionar/Subtrair/Interseção de máscara", + "Added to photos you import that don't already have it.": "Adicionado às fotos importadas que ainda não têm isso.", + "Adding": "Adicionando", + "Advanced search…": "Busca avançada…", + "After": "Depois", + "After 30 days": "Após 30 dias", + "After 7 days": "Após 7 dias", + "After 90 days": "Após 90 dias", + "After a year": "Após um ano", + "Album": "Álbum", + "Albums": "Álbuns", + "All": "Tudo", + "All Metadata": "Todos os metadados", + "All Metadata…": "Todos os metadados…", + "All Photos": "Todas as fotos", + "All rights reserved": "Todos os direitos reservados", + "All types": "Todos os tipos", + "Alt Text": "Texto alternativo", + "Always": "Sempre", + "Amount": "Quantidade", + "Aperture": "Abertura", + "Application": "Aplicativo", + "Apply Color Label Set": "Aplicar conjunto de rótulos de cor", + "Apply Filter Preset": "Aplicar predefinição de filtro", + "Apply Metadata Preset": "Aplicar predefinição de metadados", + "Apply Point Curve Preset": "Aplicar predefinição de curva de pontos", + "Apply Preset": "Aplicar predefinição", + "Apply Settings JSON": "Aplicar configurações JSON", + "Approved": "Aprovado", + "Aqua": "Ciano", + "Aqua Hue": "Matiz do ciano", + "Aqua Luminance": "Luminância do ciano", + "Aqua Saturation": "Saturação do ciano", + "ArtCraft Website": "Site do ArtCraft", + "ArtCraft — more creative apps": "ArtCraft — mais aplicativos criativos", + "As Shot": "Como capturado", + "As shot": "Como capturado", + "Ascending": "Crescente", + "Aspect": "Proporção", + "Aspect Ratio": "Proporção de aspecto", + "Assisted Culling": "Seleção assistida", + "Assisted Culling…": "Seleção assistida…", + "Auto": "Automático", + "Auto Advance": "Avanço automático", + "Auto Advance Off": "Avanço automático desativado", + "Auto Advance On": "Avanço automático ativado", + "Auto Advance after rating or flagging": "Avanço automático após classificar ou marcar", + "Auto Advance: move to the next photo after rating or flagging": "Avanço automático: vai para a próxima foto após classificar ou marcar", + "Auto Align": "Alinhamento automático", + "Auto B&W Mix": "Mistura P&B automática", + "Auto Crop": "Recorte automático", + "Auto Import": "Importação automática", + "Auto Import Now": "Importar tudo agora", + "Auto Import Settings": "Configurações da importação automática", + "Auto Mask": "Máscara automática", + "Auto Settings": "Ajustes automáticos", + "Auto Straighten": "Endireitamento automático", + "Auto Sync": "Sincronização automática", + "Auto-Stack by Capture Time": "Empilhar automaticamente por horário de captura", + "Auto-Stack by Capture Time…": "Empilhar automaticamente por horário de captura…", + "Auto-Tag Photos from Tracklog": "Etiquetar fotos automaticamente pelo tracklog", + "Auto-Tag from Tracklog": "Etiquetar automaticamente pelo tracklog", + "Auto-Tag from Tracklog…": "Etiquetar automaticamente pelo tracklog…", + "Automatic": "Automático", + "Automatically Write Changes into XMP": "Gravar alterações automaticamente no XMP", + "Automatically write changes into XMP sidecars": "Grava automaticamente as alterações nos arquivos XMP auxiliares", + "Autumn Gold": "Ouro de outono", + "B&W": "P&B", + "B&W Mix": "Mistura P&B", + "B&W Mixer": "Misturador P&B", + "Back": "Voltar", + "Back Up Library…": "Fazer backup da biblioteca…", + "Back to Edit": "Voltar à edição", + "Back to Edit (E)": "Voltar à edição (E)", + "Back to Grid": "Voltar à grade", + "Background": "Fundo", + "Balance": "Balanço", + "Basic": "Básico", + "Before": "Antes", + "Before/After (Y)": "Antes/Depois (Y)", + "Before/After Settings": "Configurações de Antes/Depois", + "Before/After Split": "Divisão Antes/Depois", + "Before/After Split Top/Bottom": "Divisão Antes/Depois topo/base", + "Before/After Top/Bottom": "Antes/Depois topo/base", + "Begin Interaction": "Iniciar interação", + "Bit depth": "Profundidade de bits", + "Black & White": "Preto e branco", + "Blacks": "Pretos", + "Bleach Bypass": "Branqueamento omitido", + "Bleached": "Descolorido", + "Blending": "Mesclagem", + "Blue": "Azul", + "Blue Hour Boost": "Realce da hora azul", + "Blue Hue": "Matiz do azul", + "Blue Luminance": "Luminância do azul", + "Blue Primary": "Azul primário", + "Blue Saturation": "Saturação do azul", + "Blue channel": "Canal azul", + "Blue/Yellow Fringe": "Franja azul/amarela", + "Blurry photos below the score are flagged as rejects.": "Fotos desfocadas abaixo da pontuação são marcadas como rejeitadas.", + "Boundary Warp": "Deformação de borda", + "Bright & Airy": "Luminoso e arejado", + "Bring All to Front": "Trazer tudo para a frente", + "Browse Folder": "Navegar na pasta", + "Browse Folder…": "Navegar na pasta…", + "Browse Profiles": "Navegar pelos perfis", + "Browse…": "Navegar…", + "Brush": "Pincel", + "Brush Settings": "Configurações do pincel", + "Brush Stroke": "Traço do pincel", + "Build Previews": "Gerar prévias", + "Build Smart Previews": "Gerar prévias inteligentes", + "By Date": "Por data", + "By day (YYYY/YYYY-MM-DD)": "Por dia (AAAA/AAAA-MM-DD)", + "By month (YYYY/YYYY-MM)": "Por mês (AAAA/AAAA-MM)", + "Calibration": "Calibração", + "Camera": "Câmera", + "Cameras and Cards": "Câmeras e cartões", + "Cancel": "Cancelar", + "Cancel Download": "Cancelar download", + "Cancel Interaction": "Cancelar interação", + "Cancel Preview Build": "Cancelar geração de prévia", + "Candidate": "Candidato", + "Caption": "Legenda", + "Capture Date": "Data de captura", + "Captured": "Capturada", + "Catalog Statistics": "Estatísticas do catálogo", + "Check All": "Marcar todos", + "Check Output Path": "Verificar caminho de saída", + "Choose Another Library…": "Escolher outra biblioteca…", + "Choose Edit Settings to Copy": "Escolher ajustes de edição a copiar", + "Choose Edit Settings to Copy…": "Escolher ajustes de edição a copiar…", + "Choose Folder…": "Escolher pasta…", + "Choose a photo in the grid or filmstrip": "Escolha uma foto na grade ou na película", + "Choose…": "Escolher…", + "Cinematic": "Cinematográfico", + "City": "Cidade", + "Clarity": "Clareza", + "Clean Studio": "Estúdio limpo", + "Clear": "Limpar", + "Clear Cache": "Limpar cache", + "Clear Filters": "Limpar filtros", + "Clear Guides": "Limpar guias", + "Clear History": "Limpar histórico", + "Clear Preview Cache": "Limpar cache de prévias", + "Clear Quick Collection": "Limpar coleção rápida", + "Clear Reference": "Limpar referência", + "Clear all": "Limpar tudo", + "Clear form": "Limpar formulário", + "Cleared History": "Histórico limpo", + "Click Zoom Ratio": "Proporção de zoom por clique", + "Click a tag to insert it. Examples are for IMG_0042.CR3 taken 14 Jan 2026, 05:58:48.": "Clique em uma tag para inseri-la. Os exemplos são de IMG_0042.CR3 tirada em 14 de jan. de 2026, 05:58:48.", + "Click photos in the grid to toggle the keyword; Esc stops": "Clique nas fotos da grade para alternar a palavra-chave; Esc encerra", + "Click the photo to pick a colour · ⇧-click adds more": "Clique na foto para escolher uma cor · ⇧-clique adiciona mais", + "Click the photo to pick a colour; ⇧-click adds more (up to 5)": "Clique na foto para escolher uma cor; ⇧-clique adiciona mais (até 5)", + "Clone": "Clonar", + "Close": "Fechar", + "Close Panel": "Fechar painel", + "Close Window": "Fechar janela", + "Close all": "Fechar tudo", + "Close file": "Fechar arquivo", + "Cloudy": "Nublado", + "Collapse All Stacks": "Recolher todas as pilhas", + "Color": "Cor", + "Color Grading": "Graduação de cores", + "Color Label Names": "Nomes dos rótulos de cor", + "Color Label Sets": "Conjuntos de rótulos de cor", + "Color Mixer": "Misturador de cores", + "Color Noise Reduction": "Redução de ruído de cor", + "Color Priority": "Prioridade de cor", + "Color Range": "Intervalo de cor", + "Color space": "Espaço de cor", + "Color space: sRGB (AVIF)": "Espaço de cor: sRGB (AVIF)", + "Combine files…": "Combinar arquivos…", + "Command Journal": "Diário de comandos", + "Comments panel": "Painel de comentários", + "Compare": "Comparar", + "Compare (Shift+C)": "Comparar (Shift+C)", + "Compare Before and After": "Comparar antes e depois", + "Compare needs at least two photos": "A comparação requer pelo menos duas fotos", + "Component options": "Opções do componente", + "Compression": "Compressão", + "Concrete Cool": "Concreto frio", + "Confirm before deleting": "Confirmar antes de excluir", + "Confirm before moving photos to Recently Deleted": "Confirmar antes de mover as fotos para Excluídos recentemente", + "Constrain Crop": "Restringir recorte", + "Continue Without Saving": "Continuar sem salvar", + "Contrast": "Contraste", + "Convert to DNG": "Converter para DNG", + "Cool Fade": "Esmaecimento frio", + "Cool Morning": "Manhã fria", + "Copy": "Copiar", + "Copy After's Settings to Before": "Copiar os ajustes de Depois para Antes", + "Copy Before's Settings to After": "Copiar os ajustes de Antes para Depois", + "Copy Edit Settings": "Copiar ajustes de edição", + "Copy History Step Settings to Before": "Copiar os ajustes da etapa do histórico para Antes", + "Copy Metadata": "Copiar metadados", + "Copy as DNG": "Copiar como DNG", + "Copy into the library (else use the files where they are)": "Copiar para a biblioteca (caso contrário, use os arquivos onde estão)", + "Copy pages": "Copiar páginas", + "Copy the files (into the library's Originals/, or a folder you choose)": "Copiar os arquivos (para a pasta Originals/ da biblioteca ou para uma pasta de sua escolha)", + "Copy to": "Copiar para", + "Copy to Clipboard": "Copiar para a área de transferência", + "Copy: the files are copied to the folder below and the library uses the copies; the originals are left as they are.": "Copiar: os arquivos são copiados para a pasta abaixo e a biblioteca usa as cópias; os originais ficam como estão.", + "Copyright": "Direitos autorais", + "Copyright Info URL": "URL das informações de direitos autorais", + "Copyright Status": "Status dos direitos autorais", + "Country": "País", + "Create Album": "Criar álbum", + "Create Album…": "Criar álbum…", + "Create Folder": "Criar pasta", + "Create Folder…": "Criar pasta…", + "Create New Mask": "Criar nova máscara", + "Create PDF from clipboard": "Criar PDF a partir da área de transferência", + "Create PDF from file…": "Criar PDF a partir de arquivo…", + "Create PDF from images…": "Criar PDF a partir de imagens…", + "Create Preset": "Criar predefinição", + "Create Preset…": "Criar predefinição…", + "Create Proof Copy": "Criar cópia de prova", + "Create Smart Album": "Criar álbum inteligente", + "Create Smart Album from Filter…": "Criar álbum inteligente a partir do filtro…", + "Create Smart Album…": "Criar álbum inteligente…", + "Create Stack": "Criar pilha", + "Create Version": "Criar versão", + "Create Version from Step": "Criar versão a partir da etapa", + "Create Virtual Copy": "Criar cópia virtual", + "Creator": "Criador", + "Crisp Landscape": "Paisagem nítida", + "Crisp Vista": "Vista nítida", + "Crop": "Recortar", + "Crop & Rotate": "Recortar e girar", + "Crop & Rotate (C)": "Recortar e girar (C)", + "Crop Aspect": "Proporção do recorte", + "Cross Process": "Processamento cruzado", + "Culling": "Triagem", + "Curve": "Curva", + "Custom": "Personalizado", + "Custom…": "Personalizado…", + "Cut": "Recortar", + "Cut pages": "Recortar páginas", + "Cycle Crop Overlay": "Alternar sobreposição de recorte", + "Cycle Crop Overlay Orientation": "Alternar orientação da sobreposição de recorte", + "Cycle Info Overlay": "Alternar sobreposição de informações", + "Cycle Mask Overlay Color": "Alternar cor da sobreposição da máscara", + "Cycle Mask Overlay Mode": "Alternar modo da sobreposição da máscara", + "Cylindrical": "Cilíndrico", + "Dark & Moody": "Escuro e sombrio", + "Darken": "Escurecer", + "Darks": "Escuros", + "Date Groups": "Grupos por data", + "Day": "Dia", + "Daylight": "Luz do dia", + "Decrease Brush Feather": "Diminuir esfumado do pincel", + "Decrease Brush Size": "Diminuir tamanho do pincel", + "Deep Sky": "Céu profundo", + "Defringe": "Remover franjas", + "Deghost Amount": "Quantidade de remoção de fantasmas", + "Dehaze": "Remover neblina", + "Delete": "Excluir", + "Delete (⌫)": "Excluir (⌫)", + "Delete Album": "Excluir álbum", + "Delete All Masks": "Excluir todas as máscaras", + "Delete Color Label Set": "Excluir conjunto de rótulos de cor", + "Delete Export Preset": "Excluir predefinição de exportação", + "Delete Filter Preset": "Excluir predefinição de filtro", + "Delete Imported Profile": "Excluir perfil importado", + "Delete Keyword": "Excluir palavra-chave", + "Delete Keyword Set": "Excluir conjunto de palavras-chave", + "Delete Mask": "Excluir máscara", + "Delete Metadata Preset": "Excluir predefinição de metadados", + "Delete Permanently": "Excluir permanentemente", + "Delete Photo": "Excluir foto", + "Delete Photos": "Excluir fotos", + "Delete Point Color Sample": "Excluir amostra de cor por ponto", + "Delete Point Curve Preset": "Excluir predefinição de curva de pontos", + "Delete Preset": "Excluir predefinição", + "Delete Red Eye Correction": "Excluir correção de olhos vermelhos", + "Delete Spot": "Excluir mancha", + "Delete Version": "Excluir versão", + "Delete all": "Excluir tudo", + "Delete all spots": "Excluir todas as manchas", + "Delete mask": "Excluir máscara", + "Delete them": "Excluí-las", + "Density": "Densidade", + "Depth Range": "Intervalo de profundidade", + "Descending": "Decrescente", + "Describe…": "Descrever…", + "Deselect": "Desmarcar", + "Deselect All": "Desmarcar tudo", + "Desert Heat": "Calor do deserto", + "Desert Warmth": "Calidez do deserto", + "Detail": "Detalhe", + "Detail (D)": "Detalhe (D)", + "Details": "Detalhes", + "Diagonal": "Diagonal", + "Discard Preview Cache": "Descartar cache de prévias", + "Display P3": "Display P3", + "Display theme": "Tema de exibição", + "Distortion": "Distorção", + "Document properties…": "Propriedades do documento…", + "Don't enlarge": "Não ampliar", + "Done": "Concluído", + "Drag along the horizon; double-click for Auto": "Arraste ao longo do horizonte; clique duplo para Automático", + "Drag over an eye on the photo; the pupil inside is found automatically.": "Arraste sobre um olho na foto; a pupila dentro dele é encontrada automaticamente.", + "Draw Guides": "Desenhar guias", + "Duplicate": "Duplicar", + "Duplicate Mask": "Duplicar máscara", + "Duplicate and Invert Mask": "Duplicar e inverter máscara", + "Each / starts a folder level; tags are filled in per photo (a level with missing metadata is \"unknown\").": "Cada / inicia um nível de pasta; as tags são preenchidas foto a foto (um nível sem metadados é \"desconhecido\").", + "Edit": "Editar", + "Edit (E)": "Editar (E)", + "Edit Capture Time": "Editar horário de captura", + "Edit Capture Time…": "Editar horário de captura…", + "Edit Color Label Names": "Editar nomes dos rótulos de cor", + "Edit Color Label Names…": "Editar nomes dos rótulos de cor…", + "Edit Copy for External Editor": "Editar cópia para o editor externo", + "Edit Info": "Editar informações", + "Edit Label Names…": "Editar nomes dos rótulos…", + "Edit Mask Component": "Editar componente da máscara", + "Edit Sections": "Editar seções", + "Edit Smart Album": "Editar álbum inteligente", + "Edit Smart Album…": "Editar álbum inteligente…", + "Edit Spot": "Editar mancha", + "Edit in External Editor": "Editar no editor externo", + "Edited": "Editada", + "Effect": "Efeito", + "Effects": "Efeitos", + "Enable Lens Corrections": "Ativar correções de lente", + "End Interaction": "Encerrar interação", + "English": "Inglês", + "Enter Full Screen": "Entrar em tela cheia", + "Erase": "Apagar", + "Every EXIF, GPS and XMP field in the file": "Todos os campos EXIF, GPS e XMP do arquivo", + "Existing previews": "Prévias existentes", + "Exit": "Sair", + "Expand All Stacks": "Expandir todas as pilhas", + "Expand/Collapse Stack": "Expandir/recolher pilha", + "Export": "Exportar", + "Export Album with Preset": "Exportar álbum com predefinição", + "Export Album…": "Exportar álbum…", + "Export As…": "Exportar como…", + "Export Group…": "Exportar grupo…", + "Export Now": "Exportar agora", + "Export Point Curve Presets": "Exportar predefinições de curva de pontos", + "Export Point Curve Presets…": "Exportar predefinições de curva de pontos…", + "Export Presets": "Exportar predefinições", + "Export Presets…": "Exportar predefinições…", + "Export User Presets…": "Exportar predefinições do usuário…", + "Export with Preset": "Exportar com predefinição", + "Export with Previous": "Exportar como antes", + "Exporting": "Exportando", + "Export…": "Exportar…", + "Exposure": "Exposição", + "Exposure (shutter · aperture · ISO)": "Exposição (tempo de exposição · abertura · ISO)", + "Extended Description": "Descrição estendida", + "External Editor": "Editor externo", + "Faded Matte": "Fosco desbotado", + "Faded Slide": "Slide desbotado", + "Faded Urban": "Urbano desbotado", + "Favorite Preset": "Predefinição favorita", + "Favorite Profile": "Perfil favorito", + "Favorites": "Favoritos", + "Feather": "Esfumado", + "File": "Arquivo", + "File & date": "Arquivo e data", + "File Name": "Nome do arquivo", + "File Path": "Caminho do arquivo", + "File Size": "Tamanho do arquivo", + "File name": "Nome do arquivo", + "Fill Edges": "Preencher bordas", + "Film": "Filme", + "Filmstrip": "Película", + "Filmstrip (/)": "Película (/)", + "Filter": "Filtro", + "Filter Bar": "Barra de filtros", + "Filter Presets": "Predefinições de filtro", + "Filter bar": "Barra de filtros", + "Filter fields": "Campos de filtro", + "Find Dust Spots": "Localizar manchas de poeira", + "Find Missing Photos": "Localizar fotos ausentes", + "Find Missing Photos…": "Localizar fotos ausentes…", + "Find Similar Photos": "Localizar fotos semelhantes", + "Find tools and commands…": "Localizar ferramentas e comandos…", + "Find…": "Localizar…", + "Fit": "Ajustar", + "Fit (F)": "Ajustar (F)", + "Fit on Screen": "Ajustar à tela", + "Fit to width": "Ajustar à largura", + "Fit visible": "Ajustar ao visível", + "Flag": "Marcar", + "Flag as Pick": "Marcar como seleção", + "Flag as Reject": "Marcar como rejeitada", + "Flash": "Flash", + "Flip H": "Espelhar H", + "Flip Horizontal": "Espelhar horizontalmente", + "Flip Overlay (⇧O)": "Inverter sobreposição (⇧O)", + "Flip V": "Espelhar V", + "Flip Vertical": "Espelhar verticalmente", + "Flow": "Fluxo", + "Fluorescent": "Fluorescente", + "Focal length": "Distância focal", + "Folder": "Pasta", + "Folder name (renamed on disk; its photos follow)": "Nome da pasta (renomeada no disco; as fotos acompanham)", + "Folders": "Pastas", + "Folders and {date} use the capture time; a photo without one uses today's date.": "Pastas e {date} usam o horário de captura; uma foto sem esse dado usa a data de hoje.", + "Food": "Comida", + "Forget Unchanged Local Photos": "Esquecer fotos locais inalteradas", + "Forget unchanged photos": "Esquecer fotos inalteradas", + "Form fields panel": "Painel de campos de formulário", + "Format": "Formato", + "Forward": "Avançar", + "Free": "Livre", + "Fresh & Bright": "Fresco e brilhante", + "Friday": "Sexta-feira", + "Full": "Completa", + "Full Screen Preview": "Pré-visualização em tela cheia", + "Full screen mode": "Modo tela cheia", + "Full size": "Tamanho completo", + "GPS Track Log": "Registro de trajeto GPS", + "GPU Rendering": "Renderização por GPU", + "General": "Geral", + "Geometry": "Geometria", + "Get Develop Settings": "Obter ajustes de revelação", + "Global Hue": "Matiz global", + "Global Luminance": "Luminância global", + "Global Saturation": "Saturação global", + "Glossy": "Brilhante", + "Go to History Step": "Ir para etapa do histórico", + "Golden": "Dourado", + "Golden Glow": "Brilho dourado", + "Golden Hour": "Hora dourada", + "Grain": "Granulado", + "Graphic": "Gráfico", + "Green": "Verde", + "Green Amount": "Quantidade de verde", + "Green Hue": "Matiz do verde", + "Green Hue High": "Matiz do verde alta", + "Green Hue Low": "Matiz do verde baixa", + "Green Luminance": "Luminância do verde", + "Green Primary": "Primária verde", + "Green Saturation": "Saturação do verde", + "Green channel": "Canal verde", + "Grid": "Grade", + "Grid Info": "Informações da grade", + "Gritty Street": "Urbano cru", + "Group": "Grupo", + "Group by Date: Automatic": "Agrupar por data: automático", + "Group by Day": "Agrupar por dia", + "Group by Month": "Agrupar por mês", + "Group by Year": "Agrupar por ano", + "Group by date": "Agrupar por data", + "Group into Stack": "Agrupar em pilha", + "Guided": "Guiado", + "Guided Upright": "Vertical guiado", + "Guided Upright Guides": "Guias do vertical guiado", + "HDR Merge": "Mesclagem HDR", + "HDR Panorama Merge": "Mesclagem de panorama HDR", + "HDR Panorama with Last Settings": "Panorama HDR com os últimos ajustes", + "HDR Panorama…": "Panorama HDR…", + "HDR with Last Settings": "HDR com os últimos ajustes", + "HDR…": "HDR…", + "Heal": "Recuperar", + "Heal the small, soft dark spots sensor dust leaves on smooth areas": "Recupera as pequenas manchas escuras e suaves que a poeira do sensor deixa em áreas lisas", + "Height": "Altura", + "Height (px)": "Altura (px)", + "Help": "Ajuda", + "Hide LightCraft": "Ocultar LightCraft", + "Hide Mask": "Ocultar máscara", + "Hide Others": "Ocultar outras", + "Hides this shortcut only; the folder and its photos stay as they are": "Oculta apenas este atalho; a pasta e suas fotos permanecem como estão", + "High": "Alto", + "High Contrast B&W": "P&B de alto contraste", + "Highlight": "Realce", + "Highlights": "Altas luzes", + "Highlights Hue": "Matiz das altas luzes", + "Highlights Luminance": "Luminância das altas luzes", + "Highlights Saturation": "Saturação das altas luzes", + "Highlights split": "Divisão de altas luzes", + "Histogram": "Histograma", + "History": "Histórico", + "History & Activity (Y)": "Histórico e atividade (Y)", + "Horizontal": "Horizontal", + "Horizontal text": "Texto horizontal", + "Hue": "Matiz", + "Hue Range": "Faixa de matiz", + "If file exists": "Se o arquivo existir", + "Image": "Imagem", + "Import": "Importar", + "Import Date": "Data de importação", + "Import Photos": "Importar fotos", + "Import Photos…": "Importar fotos…", + "Import Point Curve Presets": "Importar predefinições de curva de pontos", + "Import Point Curve Presets…": "Importar predefinições de curva de pontos…", + "Import Presets": "Importar predefinições", + "Import Presets…": "Importar predefinições…", + "Import Profiles": "Importar perfis", + "Import Profiles & Presets…": "Importar perfis e predefinições…", + "Import from Device": "Importar de dispositivo", + "Import from Folder…": "Importar de pasta…", + "Import photos with File → Import Photos… (Cmd+Shift+I), or drop them here": "Importe fotos com Arquivo → Importar fotos… (Cmd+Shift+I) ou solte-as aqui", + "Imported Photos": "Fotos importadas", + "Importing": "Importando", + "Importing scans the source for photos; it doesn't add the folder to Local (use Local → Browse Folder… to work in a folder without importing).": "A importação examina a origem em busca de fotos; ela não adiciona a pasta a Local (use Local → Procurar pasta… para trabalhar em uma pasta sem importar).", + "In Recently Deleted": "Em Recentemente excluídos", + "In library": "Na biblioteca", + "In memory — nothing is saved": "Na memória — nada é salvo", + "In use": "Em uso", + "In-memory session: these settings last until LightCraft quits.": "Sessão na memória: estes ajustes duram até o LightCraft ser encerrado.", + "Include subfolders": "Incluir subpastas", + "Increase Brush Feather": "Aumentar suavização do pincel", + "Increase Brush Size": "Aumentar tamanho do pincel", + "Info": "Informações", + "Info (I)": "Informações (I)", + "Info overlay": "Sobreposição de informações", + "Inspect Photo": "Inspecionar foto", + "Instant ’70s": "Instantâneo anos 70", + "Interface": "Interface", + "Interface language": "Idioma da interface", + "Intersect": "Interseccionar", + "Intersect with": "Interseccionar com", + "Into one folder": "Em uma única pasta", + "Invert": "Inverter", + "Invert Mask": "Inverter máscara", + "JPEG (Large)": "JPEG (grande)", + "JPEG (Small)": "JPEG (pequeno)", + "Join the ArtCraft Discord": "Entrar no Discord do ArtCraft", + "Join the ArtCraft Discord…": "Entrar no Discord do ArtCraft…", + "Keep in Local": "Manter em Local", + "Keep it on a drive with room: smart previews are about 1 MB per photo. The thumbnail cache stays in the library.": "Guarde em um disco com espaço: as pré-visualizações inteligentes ocupam cerca de 1 MB por foto. O cache de miniaturas permanece na biblioteca.", + "Keyboard Shortcuts": "Atalhos de teclado", + "Keyboard shortcuts": "Atalhos de teclado", + "Keyword": "Palavra-chave", + "Keyword Painter": "Pincel de palavras-chave", + "Keyword Set": "Conjunto de palavras-chave", + "Keyword Sets": "Conjuntos de palavras-chave", + "Keyword Suggestions": "Sugestões de palavras-chave", + "Keyword to paint": "Palavra-chave a pintar", + "Keywords": "Palavras-chave", + "Keywords (K)": "Palavras-chave (K)", + "Keywords you add appear here; ⌥1–⌥9 apply them.": "As palavras-chave que você adiciona aparecem aqui; ⌥1–⌥9 as aplicam.", + "Landscape": "Paisagem", + "Language": "Idioma", + "Largest long edge the Detail view renders at; larger is sharper on big displays but slower.": "Maior aresta longa em que a exibição Detalhe é renderizada; maior deixa mais nítida em telas grandes, mas mais lenta.", + "Last": "Último", + "Last view": "Última exibição", + "Lateral Chromatic Aberration": "Aberração cromática lateral", + "Layer": "Camada", + "Layers": "Camadas", + "Leave them": "Deixá-los", + "Lens": "Lente", + "Lens Corrections": "Correções de lente", + "Level": "Nível", + "Library": "Biblioteca", + "Library Info": "Informações da biblioteca", + "Library Originals": "Originais da biblioteca", + "Library Preferences": "Preferências da biblioteca", + "Library State": "Estado da biblioteca", + "Licence:": "Licença:", + "Light": "Luz", + "LightCraft Default": "Padrão do LightCraft", + "LightCraft Help": "Ajuda do LightCraft", + "LightCraft Preset": "Predefinição do LightCraft", + "LightCraft Presets": "Predefinições do LightCraft", + "LightCraft Website": "Site do LightCraft", + "LightCraft couldn't find where to keep your library.": "O LightCraft não conseguiu encontrar onde guardar sua biblioteca.", + "LightCraft couldn't open the library at": "O LightCraft não conseguiu abrir a biblioteca em", + "LightCraft on GitHub": "LightCraft no GitHub", + "LightCraft website": "Site do LightCraft", + "LightCraft — Second Window": "LightCraft — segunda janela", + "Lights": "Luzes", + "Limit file size (KB, 0 = off)": "Limitar tamanho do arquivo (KB, 0 = desativado)", + "Linear Gradient": "Gradiente linear", + "List Albums": "Listar álbuns", + "List Develop Controls": "Listar controles de revelação", + "List History": "Listar histórico", + "List Presets": "Listar predefinições", + "List Profiles": "Listar perfis", + "List this folder in Local from now on": "Listar esta pasta em Local a partir de agora", + "Local": "Local", + "Local folders": "Pastas locais", + "Local library — no cloud account needed": "Biblioteca local — não precisa de conta na nuvem", + "Locate Missing File…": "Localizar arquivo ausente…", + "Locate Photo": "Localizar foto", + "Location": "Local", + "Long Edge": "Aresta longa", + "Looking for photos…": "Procurando fotos…", + "Lossless": "Sem perdas", + "Low": "Baixo", + "Luminance": "Luminância", + "Luminance Range": "Faixa de luminância", + "Lush Greens": "Verdes exuberantes", + "Magenta": "Magenta", + "Magenta Hue": "Matiz do magenta", + "Magenta Luminance": "Luminância do magenta", + "Magenta Saturation": "Saturação do magenta", + "Make Candidate the Select": "Tornar a candidata a selecionada", + "Manual": "Manual", + "Marquee zoom": "Zoom por seleção", + "Masking": "Máscara", + "Masking (M)": "Máscara (M)", + "Masks": "Máscaras", + "Match": "Igualar", + "Match Total Exposures": "Igualar exposições totais", + "Matte": "Fosco", + "Matte Soft": "Fosco suave", + "Med": "Médio", + "Medium Contrast": "Contraste médio", + "Megapixels": "Megapixels", + "Memory Budget": "Orçamento de memória", + "Memory Usage": "Uso de memória", + "Memory for caches": "Memória para caches", + "Menu": "Menu", + "Merge": "Mesclar", + "Merge Keywords": "Mesclar palavras-chave", + "Merge into…": "Mesclar em…", + "Merging…": "Mesclando…", + "Meta's terms, not LightCraft's. Downloading it means accepting them.": "Termos da Meta, não do LightCraft. Baixá-lo significa aceitá-los.", + "Metadata": "Metadados", + "Metadata Preset": "Predefinição de metadados", + "Metadata Presets": "Predefinições de metadados", + "Metadata preset": "Predefinição de metadados", + "Midpoint": "Ponto médio", + "Midtones": "Meios-tons", + "Midtones Hue": "Matiz dos meios-tons", + "Midtones Luminance": "Luminância dos meios-tons", + "Midtones Saturation": "Saturação dos meios-tons", + "Midtones split": "Divisão de meios-tons", + "Minimize": "Minimizar", + "Missing Photos": "Fotos ausentes", + "Misty Morning": "Manhã enevoada", + "Mode": "Modo", + "Modified Date": "Data de modificação", + "Monday": "Segunda-feira", + "Mono Red Filter": "Mono com filtro vermelho", + "Mono Rich": "Mono intenso", + "Mono Soft": "Mono suave", + "Monochrome": "Monocromático", + "Month": "Mês", + "Moody": "Atmosférico", + "Moody Portrait": "Retrato atmosférico", + "More": "Mais", + "More preset options": "Mais opções de predefinição", + "Move": "Mover", + "Move Album": "Mover álbum", + "Move Down in Stack": "Mover para baixo na pilha", + "Move Folder": "Mover pasta", + "Move Folder To…": "Mover pasta para…", + "Move Mask": "Mover máscara", + "Move Preset to Group": "Mover predefinição para grupo", + "Move Up in Stack": "Mover para cima na pilha", + "Move the files (into the library's Originals/, or a folder you choose), removing them from the source": "Move os arquivos (para Originals/ da biblioteca ou uma pasta que você escolher), removendo-os da origem", + "Move them": "Movê-los", + "Move to": "Mover para", + "Move to Group": "Mover para grupo", + "Move: the files are moved to the folder below; each original (and its XMP sidecar) is removed from the source only after its copy is verified. Duplicates and files that fail stay where they are.": "Mover: os arquivos são movidos para a pasta abaixo; cada original (e seu sidecar XMP) é removido da origem somente após a cópia ser verificada. Duplicatas e arquivos que falham permanecem onde estão.", + "Muted": "Suave", + "Muted Film": "Filme suave", + "My Photos": "Minhas fotos", + "My Photos Panel": "Painel Minhas fotos", + "Name": "Nome", + "Named": "Nomeado", + "Names appear in the label menu, the filter bar and the Info panel, and are written to XMP. Empty = the colour's name.": "Os nomes aparecem no menu de rótulos, na barra de filtros e no painel Informações, e são gravados no XMP. Vazio = o nome da cor.", + "Navigator": "Navegador", + "Needs Work": "Precisa de ajustes", + "Neon Dusk": "Crepúsculo neon", + "Neon Night": "Noite neon", + "Neutral": "Neutro", + "Never": "Nunca", + "New": "Novo", + "New Album": "Novo álbum", + "New Album…": "Novo álbum…", + "New Folder…": "Nova pasta…", + "New Group…": "Novo grupo…", + "New Smart Album": "Novo álbum inteligente", + "New Smart Album from Filter…": "Novo álbum inteligente a partir do filtro…", + "New Smart Album…": "Novo álbum inteligente…", + "New album": "Novo álbum", + "New album…": "Novo álbum…", + "New blank PDF": "Novo PDF em branco", + "New name": "Novo nome", + "New…": "Novo…", + "Next Photo": "Próxima foto", + "Night Blue": "Azul noturno", + "No": "Não", + "No Camera or Card Found": "Nenhuma câmera ou cartão encontrado", + "No Date Groups": "Sem grupos de datas", + "No Stars": "Sem estrelas", + "No Tool": "Sem ferramenta", + "No automatic versions.": "Sem versões automáticas.", + "No camera": "Sem câmera", + "No date": "Sem data", + "No dust spots found": "Nenhuma mancha de poeira encontrada", + "No edits yet.": "Ainda sem edições.", + "No exposure information": "Sem informações de exposição", + "No filter presets yet": "Ainda não há predefinições de filtro", + "No lens data embedded in this file (DNG lens opcodes only).": "Nenhum dado de lente incorporado neste arquivo (somente opcodes de lente DNG).", + "No masks yet. Choose a mask type above.": "Ainda não há máscaras. Escolha um tipo de máscara acima.", + "No matching photos": "Nenhuma foto correspondente", + "No metadata found": "Nenhum metadado encontrado", + "No new presets": "Nenhuma predefinição nova", + "No photo selected": "Nenhuma foto selecionada", + "No photos": "Sem fotos", + "No photos found": "Nenhuma foto encontrada", + "No photos in this folder": "Nenhuma foto nesta pasta", + "No photos match the active filters": "Nenhuma foto corresponde aos filtros ativos", + "No photos match the filters (View → Clear Filters)": "Nenhuma foto corresponde aos filtros (Exibir → Limpar filtros)", + "No raw photos yet: cameras appear here once their photos are in the library.": "Ainda não há fotos RAW: as câmeras aparecem aqui quando suas fotos estiverem na biblioteca.", + "No reference photo": "Nenhuma foto de referência", + "No usable GPU found: rendering on the CPU": "Nenhuma GPU utilizável encontrada: renderizando na CPU", + "No versions yet. Create one to keep this look.": "Ainda não há versões. Crie uma para manter este visual.", + "Noise": "Ruído", + "Noise Reduction": "Redução de ruído", + "Non-raw photos": "Fotos não RAW", + "None": "Nenhum", + "Nothing to compare": "Nada para comparar", + "Nothing to survey": "Nada para inspecionar", + "Nudge Develop Value": "Ajustar valor de revelação", + "OK": "OK", + "Object": "Objeto", + "Off": "Desativado", + "Offset X": "Deslocamento X", + "Offset Y": "Deslocamento Y", + "Opacity": "Opacidade", + "Opacity (%)": "Opacidade (%)", + "Open Library": "Abrir biblioteca", + "Open Library…": "Abrir biblioteca…", + "Open in": "Abrir em", + "Open in Detail": "Abrir em Detalhe", + "Open the place in OpenStreetMap": "Abrir o local no OpenStreetMap", + "Open…": "Abrir…", + "Optics": "Óptica", + "Optimize Library": "Otimizar biblioteca", + "Optional name": "Nome opcional", + "Options": "Opções", + "Orange": "Laranja", + "Orange Hue": "Matiz do laranja", + "Orange Luminance": "Luminância do laranja", + "Orange Saturation": "Saturação do laranja", + "Orientation": "Orientação", + "Original": "Original", + "Original + Settings": "Original + ajustes", + "Original files": "Arquivos originais", + "Original offline · editing the smart preview": "Original offline · editando a pré-visualização inteligente", + "Original offline · no smart preview": "Original offline · sem pré-visualização inteligente", + "Originals": "Originais", + "Other images (JPEG, PNG, TIFF, HEIC…)": "Outras imagens (JPEG, PNG, TIFF, HEIC…)", + "Overlay": "Sobreposição", + "Overwrite": "Substituir", + "Pages": "Páginas", + "Paint": "Pintar", + "Paint only areas like the one under the brush": "Pinta apenas áreas como a que está sob o pincel", + "Paint over a distraction on the photo to remove it.": "Pinte sobre uma distração na foto para removê-la.", + "Paint overlay": "Sobreposição de pintura", + "Panorama Merge": "Mesclagem de panorama", + "Panorama with Last Settings": "Panorama com os últimos ajustes", + "Panorama…": "Panorama…", + "Parametric curve": "Curva paramétrica", + "Paste": "Colar", + "Paste Edit Settings": "Colar ajustes de edição", + "Paste Metadata": "Colar metadados", + "Paste Selected Settings": "Colar ajustes selecionados", + "Paste Selected Settings…": "Colar ajustes selecionados…", + "Paste Settings from Previous": "Colar ajustes da anterior", + "Paste pages": "Colar páginas", + "Pastel Haze": "Névoa pastel", + "Percent": "Porcentagem", + "Percentage": "Porcentagem", + "Performance": "Desempenho", + "Perspective": "Perspectiva", + "Pet Eye": "Olho de animal", + "Pet Eye Catchlight": "Brilho no olhar de animal", + "Photo": "Foto", + "Photo Grid": "Grade de fotos", + "Photo Grid (G)": "Grade de fotos (G)", + "Photo Merge": "Mesclagem de fotos", + "Photo ▸ Edit in External Editor (⇧⌘E) renders a 16-bit TIFF copy, stacks it with the original and opens it here (an app name on macOS, a program path elsewhere).": "Foto → Editar no editor externo (⇧⌘E) renderiza uma cópia TIFF de 16 bits, empilha-a com o original e a abre aqui (um nome de aplicativo no macOS, um caminho de programa em outros sistemas).", + "Photos": "Fotos", + "Photos seen in Local but never added or changed leave the catalog when their folder hasn't been browsed for this long (checked when the library opens). Files stay on disk; browsing the folder shows them again.": "Fotos vistas em Local mas nunca adicionadas nem alteradas saem do catálogo quando sua pasta não é navegada por esse período (verificado ao abrir a biblioteca). Os arquivos permanecem no disco; navegar pela pasta as mostra novamente.", + "Photos that arrive in this folder (tethering, a scanner, a sync app) are added as soon as they're complete.": "Fotos que chegam a esta pasta (captura conectada, um scanner, um app de sincronização) são adicionadas assim que ficam completas.", + "Pick": "Escolher", + "Pick a colour on the photo with the eyedropper.": "Escolha uma cor na foto com o conta-gotas.", + "Pick the sharpest photo of each burst": "Escolher a foto mais nítida de cada sequência", + "Picked": "Escolhida", + "Picks": "Escolhidas", + "Pixels": "Pixels", + "Point Color": "Cor pontual", + "Point Curve": "Curva de pontos", + "Point Curve Presets": "Predefinições de curva de pontos", + "Point curve": "Curva de pontos", + "Portrait": "Retrato", + "Position": "Posição", + "Preferences": "Preferências", + "Preferences…": "Preferências…", + "Preset": "Predefinição", + "Preset name": "Nome da predefinição", + "Presets": "Predefinições", + "Presets & Profiles": "Predefinições e perfis", + "Presets (Shift+P)": "Predefinições (Shift+P)", + "Presets ▾": "Predefinições", + "Preview": "Pré-visualização", + "Preview Build Progress": "Progresso da geração de pré-visualizações", + "Preview only": "Somente pré-visualização", + "Preview size": "Tamanho da pré-visualização", + "Previews": "Pré-visualizações", + "Previous Photo": "Foto anterior", + "Print": "Imprimir", + "Print…": "Imprimir…", + "Profile": "Perfil", + "Profile Browser": "Navegador de perfis", + "Profile Distortion": "Distorção do perfil", + "Profile Menu": "Menu de perfis", + "Profile Vignetting": "Vinheta do perfil", + "Profile:": "Perfil:", + "Profiles": "Perfis", + "Projection": "Projeção", + "Properties": "Propriedades", + "Public domain": "Domínio público", + "Pupil Size": "Tamanho da pupila", + "Purple": "Roxo", + "Purple Amount": "Quantidade de roxo", + "Purple Hue": "Matiz do roxo", + "Purple Hue High": "Matiz do roxo alta", + "Purple Hue Low": "Matiz do roxo baixa", + "Purple Luminance": "Luminância do roxo", + "Purple Saturation": "Saturação do roxo", + "Put the locations you removed from Local back (no files change)": "Devolve os locais removidos de Local (nenhum arquivo muda)", + "Quality": "Qualidade", + "Query Photos": "Consultar fotos", + "Quick Collection": "Coleção rápida", + "Quick Develop": "Revelação rápida", + "Quiet Green": "Verde tranquilo", + "Quit": "Sair", + "Quit LightCraft": "Sair do LightCraft", + "Radial Gradient": "Gradiente radial", + "Radius": "Raio", + "Range": "Faixa", + "Rating": "Avaliação", + "Ratings & flags": "Avaliações e marcações", + "Raw default": "Padrão RAW", + "Raw defaults": "Padrões RAW", + "Raw files": "Arquivos RAW", + "Raw photos": "Fotos RAW", + "Raw photos as DNG, with the edits embedded. Size, color and output options don't apply.": "Fotos RAW como DNG, com as edições incorporadas. As opções de tamanho, cor e saída não se aplicam.", + "Read Metadata from File": "Ler metadados do arquivo", + "Read mode": "Modo de leitura", + "Read the SAM License": "Ler a licença do SAM", + "Reading": "Lendo", + "Reading folder…": "Lendo pasta…", + "Recently Added": "Adicionados recentemente", + "Recently Deleted": "Excluídos recentemente", + "Red": "Vermelho", + "Red Eye": "Olhos vermelhos", + "Red Hue": "Matiz do vermelho", + "Red Luminance": "Luminância do vermelho", + "Red Primary": "Primária vermelha", + "Red Saturation": "Saturação do vermelho", + "Red channel": "Canal vermelho", + "Red/Cyan Fringe": "Franja vermelha/ciano", + "Redo": "Refazer", + "Reference": "Referência", + "Reference View": "Exibição de referência", + "Reference the files where they are": "Referenciar os arquivos onde estão", + "Refine Mask Edges": "Refinar bordas da máscara", + "Refresh Source": "Atualizar origem", + "Refresh Source (/)": "Atualizar origem (/)", + "Reject": "Rejeitar", + "Reject below focus": "Rejeitar abaixo do foco", + "Rejected": "Rejeitada", + "Rejects": "Rejeitadas", + "Reload from Disk": "Recarregar do disco", + "Remove": "Remover", + "Remove (H)": "Remover (H)", + "Remove CA": "Remover AC", + "Remove Chromatic Aberration": "Remover aberração cromática", + "Remove from Album": "Remover do álbum", + "Remove from Favorites": "Remover dos favoritos", + "Remove from Local": "Remover de Local", + "Remove from Photo": "Remover da foto", + "Remove from Selected Photos": "Remover das fotos selecionadas", + "Remove from Stack": "Remover da pilha", + "Remove from survey": "Remover da inspeção", + "Remove location info": "Remover informações de local", + "Remove this filter": "Remover este filtro", + "Remove this group": "Remover este grupo", + "Remove this rule": "Remover esta regra", + "Rename": "Renomear", + "Rename Album": "Renomear álbum", + "Rename Folder": "Renomear pasta", + "Rename Folder…": "Renomear pasta…", + "Rename Keyword": "Renomear palavra-chave", + "Rename Keyword…": "Renomear palavra-chave…", + "Rename Mask": "Renomear máscara", + "Rename Photos": "Renomear fotos", + "Rename Photos…": "Renomear fotos…", + "Rename Preset": "Renomear predefinição", + "Rename Preview": "Renomear pré-visualização", + "Rename Template Tags": "Renomear marcadores do modelo", + "Rename Version": "Renomear versão", + "Rename…": "Renomear…", + "Rendering": "Renderizando", + "Rendering…": "Renderizando…", + "Reset": "Redefinir", + "Reset All Curves": "Redefinir todas as curvas", + "Reset Before to Import State": "Redefinir Antes para o estado de importação", + "Reset Control": "Redefinir controle", + "Reset Crop": "Redefinir recorte", + "Reset Edits": "Redefinir edições", + "Reset Parametric Curve": "Redefinir curva paramétrica", + "Reset Section": "Redefinir seção", + "Reset Tone Curve": "Redefinir curva de tonalidade", + "Reset all curves: point curves (all channels) and parametric (double-click a channel to reset only that one)": "Redefine todas as curvas: curvas de pontos (todos os canais) e paramétrica (clique duas vezes em um canal para redefinir apenas ele)", + "Reset all edits (Cmd+Shift+R)": "Redefinir todas as edições (Cmd+Shift+R)", + "Resize to": "Redimensionar para", + "Resolution (ppi)": "Resolução (ppi)", + "Restore": "Restaurar", + "Restore Library from Backup…": "Restaurar biblioteca do backup…", + "Restore Version": "Restaurar versão", + "Retouch": "Retoque", + "Revert": "Reverter", + "Review Import": "Revisar importação", + "Right-click a photo ▸ Set as Reference Photo, then View → Reference View (Shift+R)": "Clique com o botão direito em uma foto → Definir como foto de referência, depois Exibir → Exibição de referência (Shift+R)", + "Right-click a preset to delete it": "Clique com o botão direito em uma predefinição para excluí-la", + "Rights Usage Terms": "Termos de uso dos direitos", + "Rotate": "Girar", + "Rotate Crop Aspect": "Girar proporção do recorte", + "Rotate Left": "Girar à esquerda", + "Rotate Right": "Girar à direita", + "Roughness": "Aspereza", + "Roundness": "Arredondamento", + "SAM 3 download stopped: it resumes where it left off next time.": "O download do SAM 3 foi interrompido: ele continua de onde parou na próxima vez.", + "Same as raw default": "Igual ao padrão RAW", + "Sample Mask Color": "Amostrar cor da máscara", + "Sample a colour on the photo": "Amostrar uma cor na foto", + "Saturation": "Saturação", + "Saturation Range": "Faixa de saturação", + "Saturday": "Sábado", + "Save": "Salvar", + "Save As…": "Salvar como…", + "Save Color Label Set": "Salvar conjunto de rótulos de cor", + "Save Current Filter as Preset…": "Salvar filtro atual como predefinição…", + "Save Current Keywords as Set…": "Salvar palavras-chave atuais como conjunto…", + "Save Export Preset": "Salvar predefinição de exportação", + "Save Filter Preset": "Salvar predefinição de filtro", + "Save Keyword Set": "Salvar conjunto de palavras-chave", + "Save Metadata Preset": "Salvar predefinição de metadados", + "Save Metadata Preset…": "Salvar predefinição de metadados…", + "Save Metadata to File": "Salvar metadados no arquivo", + "Save Point Curve Preset": "Salvar predefinição de curva de pontos", + "Save Point Curve…": "Salvar curva de pontos…", + "Save as Preset": "Salvar como predefinição", + "Save as Smart Album…": "Salvar como álbum inteligente…", + "Save as set": "Salvar como conjunto", + "Save as…": "Salvar como…", + "Save preset": "Salvar predefinição", + "Scale": "Escala", + "Scanning": "Examinando", + "Scores stay on the photos: filter or make smart albums with Focus and Best of Similar Shots.": "As pontuações ficam nas fotos: filtre ou crie álbuns inteligentes com Foco e Melhor de fotos semelhantes.", + "Screen": "Tela", + "Search Photos": "Pesquisar fotos", + "Search…": "Pesquisar…", + "Seasons": "Estações", + "Second Window": "Segunda janela", + "Select": "Selecionar", + "Select All": "Selecionar tudo", + "Select Luminance Range": "Selecionar faixa de luminância", + "Select Mask": "Selecionar máscara", + "Select Photos": "Selecionar fotos", + "Select Spot": "Selecionar ponto", + "Select a photo to edit": "Selecione uma foto para editar", + "Select by": "Selecionar por", + "Select by Flag, Rating or Label": "Selecionar por marcação, avaliação ou rótulo", + "Select photos, then choose View → Survey (N)": "Selecione fotos e escolha Exibir → Inspeção (N)", + "Select two photos, then choose View → Compare (Shift+C)": "Selecione duas fotos e escolha Exibir → Comparar (Shift+C)", + "Selected": "Selecionada", + "Selenium Tone": "Tom de selênio", + "Send Feedback…": "Enviar comentários…", + "Sepia Tone": "Tom sépia", + "Services": "Serviços", + "Set Before": "Definir Antes", + "Set Color Label": "Definir rótulo de cor", + "Set Crop": "Definir recorte", + "Set Develop Values": "Definir valores de revelação", + "Set Flag": "Definir marcação", + "Set Mask Adjustments": "Definir ajustes da máscara", + "Set Point Curve": "Definir curva de pontos", + "Set Profile": "Definir perfil", + "Set Rating": "Definir avaliação", + "Set as Album Cover": "Definir como capa do álbum", + "Set as Before": "Definir como Antes", + "Set as Reference Photo": "Definir como foto de referência", + "Set as Target Album": "Definir como álbum de destino", + "Set as Target Album (B adds to it)": "Definir como álbum de destino (B adiciona a ele)", + "Set as Top of Stack": "Definir como topo da pilha", + "Set the mix from the photo's colours": "Define a mistura a partir das cores da foto", + "Settings": "Configurações", + "Settings new raw photos start from. Changing them doesn't touch photos already in the library.": "Configurações das quais novas fotos RAW partem. Alterá-las não afeta fotos já na biblioteca.", + "Settings to include": "Configurações a incluir", + "Settings…": "Configurações…", + "Shade": "Sombra", + "Shadow": "Sombra", + "Shadows": "Sombras", + "Shadows Hue": "Matiz das sombras", + "Shadows Luminance": "Luminância das sombras", + "Shadows Saturation": "Saturação das sombras", + "Shadows Tint": "Tonalidade das sombras", + "Shadows split": "Divisão de sombras", + "Sharpen": "Nitidez", + "Sharpening": "Nitidez", + "Sharpness": "Nitidez", + "Short Edge": "Aresta curta", + "Show All": "Mostrar tudo", + "Show Clipping": "Mostrar recorte de tons", + "Show Deghost Overlay": "Mostrar sobreposição de remoção de fantasma", + "Show Hidden Local Locations": "Mostrar locais ocultos de Local", + "Show Luminance Map": "Mostrar mapa de luminância", + "Show Mask": "Mostrar máscara", + "Show Mask Overlay": "Mostrar sobreposição da máscara", + "Show Mask Pins": "Mostrar pinos da máscara", + "Show Original": "Mostrar original", + "Show Photo Counts": "Mostrar contagem de fotos", + "Show Photos with Keyword": "Mostrar fotos com a palavra-chave", + "Show Pins": "Mostrar pinos", + "Show Source": "Mostrar origem", + "Show Thumbnails": "Mostrar miniaturas", + "Show destination gamut warning": "Mostrar aviso de gamut de destino", + "Show display gamut warning": "Mostrar aviso de gamut da tela", + "Show file names": "Mostrar nomes dos arquivos", + "Show in Finder": "Mostrar no Finder", + "Show on Map": "Mostrar no mapa", + "Show overlay (O)": "Mostrar sobreposição (O)", + "Show ratings, flags and edit badges": "Mostrar avaliações, marcações e indicadores de edição", + "Show the Navigator while zoomed in": "Mostrar o Navegador quando ampliado", + "Show the template tags; click one to insert it": "Mostrar os marcadores do modelo; clique em um para inseri-lo", + "Show/Hide Mask": "Mostrar/ocultar máscara", + "Show/hide My Photos panel": "Mostrar/ocultar painel Minhas fotos", + "Shutter speed": "Velocidade do obturador", + "Side panels": "Painéis laterais", + "Sidecar names": "Nomes dos sidecars", + "Size": "Tamanho", + "Size (% of short edge)": "Tamanho (% da aresta curta)", + "Size limit": "Limite de tamanho", + "Skip": "Pular", + "Sky": "Céu", + "Slideshow": "Apresentação de slides", + "Smart Album": "Álbum inteligente", + "Smart Album Rule Fields": "Campos de regras do álbum inteligente", + "Smart Preview Status": "Status das pré-visualizações inteligentes", + "Smart Previews Location": "Local das pré-visualizações inteligentes", + "Smart previews": "Pré-visualizações inteligentes", + "Smoothness": "Suavidade", + "Soft B&W": "P&B suave", + "Soft Pastel": "Pastel suave", + "Soft Proofing": "Prova suave", + "Soft Skin": "Pele suave", + "Sort": "Classificar", + "Sort by": "Classificar por", + "Source": "Origem", + "Source code on GitHub": "Código-fonte no GitHub", + "Spherical": "Esférico", + "Spiral": "Espiral", + "Split Stack": "Dividir pilha", + "Spring Fresh": "Frescor da primavera", + "Square Grid": "Grade quadrada", + "Square Grid (G toggles)": "Grade quadrada (G alterna)", + "Square Grid: show file names and formats": "Grade quadrada: mostrar nomes e formatos dos arquivos", + "Stack": "Pilha", + "Stack photos taken within this time of each other:": "Empilhar fotos tiradas dentro deste intervalo:", + "Stacks": "Pilhas", + "Standard": "Padrão", + "Start at": "Começar em", + "Start number": "Número inicial", + "Startup": "Inicialização", + "State / Province": "Estado / província", + "Stop": "Parar", + "Stop Building Previews": "Parar geração de pré-visualizações", + "Stop Using as Target Album": "Parar de usar como álbum de destino", + "Stopping…": "Parando…", + "Straighten": "Endireitar", + "Straighten Tool": "Ferramenta Endireitar", + "Strong Contrast": "Contraste forte", + "Style": "Estilo", + "Subfolder": "Subpasta", + "Subfolder name": "Nome da subpasta", + "Subject": "Assunto", + "Subtract": "Subtrair", + "Subtract from this mask": "Subtrair desta máscara", + "Suggestions": "Sugestões", + "Summer Haze": "Névoa de verão", + "Sunday": "Domingo", + "Survey": "Inspeção", + "Survey (N)": "Inspeção (N)", + "Swap": "Trocar", + "Swap Aspect (X)": "Trocar proporção (X)", + "Swap Before and After Settings": "Trocar ajustes de Antes e Depois", + "Swap Compare Photos": "Trocar fotos da comparação", + "Switch light / dark theme": "Alternar tema claro / escuro", + "Sync Settings": "Sincronizar configurações", + "System Info": "Informações do sistema", + "System Info…": "Informações do sistema…", + "System default": "Padrão do sistema", + "Tags": "Marcadores", + "Tags: see Tags beside the template. Files are renamed on disk (with their XMP sidecars); existing names get -1, -2…": "Marcadores: consulte Marcadores ao lado do modelo. Os arquivos são renomeados no disco (com seus sidecars XMP); nomes existentes recebem -1, -2…", + "Take a snapshot": "Tirar um instantâneo", + "Targeted Adjustment": "Ajuste direcionado", + "Targeted adjustment: drag up/down on the photo to adjust the colours there": "Ajuste direcionado: arraste para cima/baixo na foto para ajustar as cores ali", + "Targeted adjustment: drag up/down on the photo to adjust the curve there": "Ajuste direcionado: arraste para cima/baixo na foto para ajustar a curva ali", + "Teal & Amber": "Verde-azulado e âmbar", + "Teal & Orange": "Verde-azulado e laranja", + "Temp": "Temp", + "Temperature": "Temperatura", + "Template": "Modelo", + "Temporary session — your library isn't open, and nothing you do here is saved.": "Sessão temporária — sua biblioteca não está aberta e nada do que você fizer aqui é salvo.", + "Text": "Texto", + "Text direction": "Direção do texto", + "Texture": "Textura", + "The SAM 3 model is installed: Object and Describe masks are ready.": "O modelo SAM 3 está instalado: as máscaras Objeto e Descrever estão prontas.", + "The download didn't work:": "O download não funcionou:", + "The original files, unchanged, each with an XMP sidecar holding its edits.": "Os arquivos originais, inalterados, cada um com um sidecar XMP contendo suas edições.", + "The photo has these settings": "A foto tem estas configurações", + "Theme": "Tema", + "They can be restored from Recently Deleted until it is emptied.": "Elas podem ser restauradas em Excluídos recentemente até que ele seja esvaziado.", + "Thirds": "Terços", + "This folder is not available (drive disconnected?). Smart previews are not built or used until it is back or you choose another folder.": "Esta pasta não está disponível (unidade desconectada?). As pré-visualizações inteligentes não são geradas nem usadas até ela voltar ou você escolher outra pasta.", + "This photo can't be opened": "Não foi possível abrir esta foto", + "Threshold": "Limite", + "Thumbnail cache": "Cache de miniaturas", + "Thursday": "Quinta-feira", + "Tint": "Tonalidade", + "Title": "Título", + "Toggle Keyword from Set": "Alternar palavra-chave do conjunto", + "Toggle Section": "Alternar seção", + "Toggle Zoom": "Alternar zoom", + "Tone Curve": "Curva de tonalidade", + "Tools": "Ferramentas", + "Top Level": "Nível superior", + "Transfer": "Transferir", + "Treatment": "Tratamento", + "Triangle": "Triângulo", + "Try Again": "Tentar novamente", + "Tuesday": "Terça-feira", + "Tungsten": "Tungstênio", + "Turn Off": "Desativar", + "Turn on Include subfolders, or pick another folder under Local": "Ative Incluir subpastas ou escolha outra pasta em Local", + "Type": "Tipo", + "Uncheck All": "Desmarcar tudo", + "Undo": "Desfazer", + "Unedited": "Não editada", + "Unflag": "Remover marcação", + "Unflagged": "Sem marcação", + "Ungroup Stack": "Desagrupar pilha", + "Unknown Date": "Data desconhecida", + "Unrated": "Sem avaliação", + "Unreadable": "Ilegível", + "Update": "Atualizar", + "Update Mask Shape": "Atualizar forma da máscara", + "Update Preset with Current Settings": "Atualizar predefinição com as configurações atuais", + "Update Rules from Current Filter": "Atualizar regras a partir do filtro atual", + "Update Version": "Atualizar versão", + "Update Version with Current Settings": "Atualizar versão com as configurações atuais", + "Update with Current Settings": "Atualizar com as configurações atuais", + "Upright": "Vertical", + "Urban": "Urbano", + "Use Keyword Set": "Usar conjunto de palavras-chave", + "Use Library Folder": "Usar pasta da biblioteca", + "Use camera-specific defaults": "Usar padrões específicos da câmera", + "Use the GPU for rendering": "Usar a GPU para renderização", + "User Presets": "Predefinições do usuário", + "Value": "Valor", + "Variance": "Variância", + "Version": "Versão", + "Version name": "Nome da versão", + "Versions": "Versões", + "Versions (Shift+V)": "Versões (Shift+V)", + "Vertical": "Vertical", + "Vertical text": "Texto vertical", + "Vibrance": "Intensidade", + "Videos": "Vídeos", + "View": "Exibir", + "Vignette": "Vinheta", + "Vignetting": "Vinheta", + "Vintage": "Vintage", + "Virtual Copy": "Cópia virtual", + "Visible": "Visível", + "Visualize Spots": "Visualizar manchas", + "Visualize Spots (A)": "Visualizar manchas (A)", + "Visualize range": "Faixa de visualização", + "Vivid": "Vívido", + "Vivid Pop": "Cores vívidas", + "Warm Film": "Filme quente", + "Warm Glow": "Brilho quente", + "Warm Print": "Impressão quente", + "Warm Table": "Mesa quente", + "Watched folder": "Pasta monitorada", + "Watermark": "Marca d'água", + "Wednesday": "Quarta-feira", + "What's New": "Novidades", + "When rated or hovered": "Ao avaliar ou passar o mouse", + "White Balance": "Balanço de branco", + "White Balance Selector": "Seletor de balanço de branco", + "White Balance Selector (W)": "Seletor de balanço de branco (W)", + "Whites": "Brancos", + "Width": "Largura", + "Width (% of photo)": "Largura (% da foto)", + "Width (px)": "Largura (px)", + "Width × Height": "Largura × altura", + "Window": "Janela", + "Winter Blue": "Azul invernal", + "XMP Sidecar Preferences": "Preferências de sidecar XMP", + "XMP sidecars": "Sidecars XMP", + "Year": "Ano", + "Yellow": "Amarelo", + "Yellow Hue": "Matiz do amarelo", + "Yellow Luminance": "Luminância do amarelo", + "Yellow Saturation": "Saturação do amarelo", + "Yes": "Sim", + "You can close this: the download continues, and resumes if interrupted.": "Você pode fechar isto: o download continua e retoma se for interrompido.", + "Your library couldn't be opened": "Não foi possível abrir sua biblioteca", + "Zoom": "Zoom", + "Zoom 100%": "Zoom 100%", + "Zoom In": "Ampliar", + "Zoom Out": "Reduzir", + "Zoom to Fit": "Ajustar à tela", + "Zoom to page level": "Zoom no nível da página", + "and": "e", + "comma, separated": "separado por vírgulas", + "memory only": "somente memória", + "none": "nenhum", + "not available here": "não disponível aqui", + "of the following rules:": "das seguintes regras:", + "saved in": "salvo em", + "this photo": "esta foto", + "− harder border · + softer border": "− borda mais dura · + borda mais suave" +} diff --git a/crates/ui-egui/src/i18n.rs b/crates/ui-egui/src/i18n.rs index 3fc90644..98763184 100644 --- a/crates/ui-egui/src/i18n.rs +++ b/crates/ui-egui/src/i18n.rs @@ -120,6 +120,7 @@ language_table! { ZhHans, "zh-hans", "简体中文", "Hans", include_str!("../locales/zh-hans.json"); ZhHant, "zh-hant", "繁體中文(台灣)", "Hant", include_str!("../locales/zh-hant.json"); Ja, "ja", "日本語", "Jpan", include_str!("../locales/ja.json"); + PtBr, "pt-br", "Português (Brasil)", "Latn", include_str!("../locales/pt-br.json"); } // The settings file stores the BCP-47 code (`"zh-hans"`), never the Rust variant name, so a @@ -339,6 +340,10 @@ mod tests { assert_eq!(Locale::parse_tag("zh-Hant-TW"), Some(Locale::ZhHant)); assert_eq!(Locale::parse_tag("zh-CN"), Some(Locale::ZhHans)); assert_eq!(Locale::parse_tag("ja_JP.UTF-8"), Some(Locale::Ja)); + assert_eq!(Locale::parse_tag("pt-br"), Some(Locale::PtBr)); + assert_eq!(Locale::parse_tag("pt-BR"), Some(Locale::PtBr)); + assert_eq!(Locale::parse_tag("pt_BR.UTF-8"), Some(Locale::PtBr)); + assert_eq!(Locale::parse_tag("pt"), Some(Locale::PtBr)); assert_eq!(Locale::parse_tag("de"), None); } @@ -353,6 +358,9 @@ mod tests { assert_eq!(tr("A string no catalog has"), "A string no catalog has"); set_language(Locale::Ja); assert_eq!(tr("Exposure"), "露出"); + set_language(Locale::PtBr); + assert_eq!(tr("Exposure"), "Exposição"); + assert_eq!(tr("Settings"), "Configurações"); set_language(Locale::En); assert_eq!(tr("Exposure"), "Exposure"); } @@ -457,6 +465,7 @@ mod tests { ("app.language.english", Locale::En), ("app.language.simplifiedChinese", Locale::ZhHans), ("app.language.japanese", Locale::Ja), + ("app.language.portuguese", Locale::PtBr), ]; // One command per language, and every command reachable from the menu table. assert_eq!(commands.len(), Locale::ALL.len()); @@ -559,6 +568,8 @@ mod tests { assert!(text.contains("マイフォト") && text.contains("すべての写真"), "{text}"); let text = painted_text(&ctx, &mut app, Locale::ZhHans); assert!(text.contains("我的照片") && text.contains("所有照片"), "{text}"); + let text = painted_text(&ctx, &mut app, Locale::PtBr); + assert!(text.contains("Minhas fotos") && text.contains("Todas as fotos"), "{text}"); set_language(Locale::En); } diff --git a/crates/ui-egui/src/menus.rs b/crates/ui-egui/src/menus.rs index 5fc2b9bc..9e62a382 100644 --- a/crates/ui-egui/src/menus.rs +++ b/crates/ui-egui/src/menus.rs @@ -17,6 +17,7 @@ pub const LANGUAGE_COMMANDS: &[UiCommand] = &[ ("app.language.simplifiedChinese", crate::i18n::Locale::ZhHans.name(), None, "Edit>Language"), ("app.language.traditionalChinese", crate::i18n::Locale::ZhHant.name(), None, "Edit>Language"), ("app.language.japanese", crate::i18n::Locale::Ja.name(), None, "Edit>Language"), + ("app.language.portuguese", crate::i18n::Locale::PtBr.name(), None, "Edit>Language"), ]; /// Every UI command: the languages, then everything else. `xtask parity` reads both tables from @@ -33,6 +34,7 @@ pub fn language_from_command(id: &str) -> Option { "app.language.simplifiedChinese" => Some(crate::i18n::Locale::ZhHans), "app.language.traditionalChinese" => Some(crate::i18n::Locale::ZhHant), "app.language.japanese" => Some(crate::i18n::Locale::Ja), + "app.language.portuguese" => Some(crate::i18n::Locale::PtBr), _ => None, } } diff --git a/docs/localization-pt-br.md b/docs/localization-pt-br.md new file mode 100644 index 00000000..72d5fcfe --- /dev/null +++ b/docs/localization-pt-br.md @@ -0,0 +1,36 @@ +# LightCraft em português do Brasil + +O LightCraft pode ser exibido em inglês, chinês simplificado, chinês tradicional (Taiwan), japonês e +português do Brasil. A preferência de idioma é gravada em `language` no `ui.json`. + +- Troque em **Editar → Idioma** ou em **Configurações → Geral → Idioma**. A escolha é mantida nas + próximas inicializações. +- Traduzimos menus, edição de fotos, máscaras, recorte, configurações, importação, exportação e as + principais mensagens de progresso. +- Menus, telas e o texto com valores variáveis usam as fontes Inter (regular e semibold). Texto em + chinês e japonês exibido nos nomes de idioma (por exemplo, 日本語) continua dependendo do repositório + de fontes [storytold/craft-fonts](https://github.com/storytold/craft-fonts). +- A tradução fica na camada de apresentação. IDs de comandos, nomes de arquivos de fotos e metadados + digitados pelo usuário nunca são alterados. +- Erros técnicos, informações complementares e notas de versão não traduzidos aparecem em inglês. +- A tradução para chinês está em [`localization-zh-hans.md`](localization-zh-hans.md); para japonês, + em [`localization-ja.md`](localization-ja.md). Como adicionar outro idioma está em + [`localization.md`](localization.md). + +## Manutenção da tradução + +Os textos fixos ficam em `crates/ui-egui/locales/pt-br.json` e os textos com valores variáveis em +`crates/ui-egui/locales/pt-br-formats.json`. O inglês é usado como chave. + +Toda tradução de formato é verificada por `format!` do Rust no build. Referencie os valores por nome +(`{n}`) ou por posição (`{0}`, `{1}`) e use as mesmas especificações de formato do inglês +(`{:.1}`, `{d:+}`, `{:.0}%`). Quando o plural inglês (`"s"` / `""`) não for necessário em português, +consuma o argumento correspondente com `{:.0}` — um texto com precisão 0 não imprime nada. + +Aparência, fontes, troca de idioma, persistência da preferência e estabilidade dos IDs de comando são +verificadas por `cargo test -p lightcraft-ui-egui i18n::tests` (a checagem de glifos só roda com +`CRAFT_FONTS_DIR`). Para visualizar o idioma, renderize sem interface gráfica: + +```sh +LIGHTCRAFT_LANGUAGE=pt-br lightcraft-cli snapshot --demo --script tour.jsonl -o out.png --size 1600x1000 +``` diff --git a/docs/localization.md b/docs/localization.md index f6db12ff..c0feb4f5 100644 --- a/docs/localization.md +++ b/docs/localization.md @@ -2,9 +2,9 @@ The interface ships in the language it is written in (English) plus every language in the table in `crates/ui-egui/src/i18n.rs`. Today that is English, Simplified Chinese (`zh-hans`), Traditional -Chinese (`zh-hant`, Taiwan) and Japanese (`ja`). This file is the reference for **adding or maintaining a language**; the per-language notes -are in [`localization-zh-hans.md`](localization-zh-hans.md), [`localization-zh-hant.md`](localization-zh-hant.md) and -[`localization-ja.md`](localization-ja.md). +Chinese (`zh-hant`, Taiwan), Japanese (`ja`) and Brazilian Portuguese (`pt-br`). This file is the reference for **adding or maintaining a language**; the per-language notes +are in [`localization-zh-hans.md`](localization-zh-hans.md), [`localization-zh-hant.md`](localization-zh-hant.md), +[`localization-ja.md`](localization-ja.md) and [`localization-pt-br.md`](localization-pt-br.md). ## Adding a language @@ -24,6 +24,7 @@ are in [`localization-zh-hans.md`](localization-zh-hans.md), [`localization-zh-h ZhHans, "zh-hans", "简体中文", "Hans", include_str!("../locales/zh-hans.json"); ZhHant, "zh-hant", "繁體中文(台灣)", "Hant", include_str!("../locales/zh-hant.json"); Ja, "ja", "日本語", "Jpan", include_str!("../locales/ja.json"); + PtBr, "pt-br", "Português (Brasil)", "Latn", include_str!("../locales/pt-br.json"); } ``` diff --git a/docs/parity.md b/docs/parity.md index 82729971..09759ae0 100644 --- a/docs/parity.md +++ b/docs/parity.md @@ -505,8 +505,8 @@ under the UI command that wraps it (a no-op error); the UI command now wins. | LR-BEHAV-EMPTY-STATES | Empty states | P1 | ✅ | `crates/ui-egui/src/panels/mod.rs` (`empty_message`) | | | LR-BEHAV-TOOLTIPS | Tooltips with shortcuts | P0 | ✅ | `crates/ui-egui/src/panels/bottombar.rs` | | | LR-BEHAV-ACCESS | Accessibility | P2 | 🟡 | `crates/ui-egui/src/widgets.rs`, `crates/ui-egui/src/panels/grid.rs` | AccessKit (VoiceOver / Narrator / AT-SPI): sliders announce control and value, buttons / icon buttons / dropdowns / section headers / sources their labels and state, grid thumbnails file name, rating, flag and label; the canvas tools (crop, masks) are pointer-only; not audited with a screen reader | -| LR-BEHAV-LOCALE | Language options | P2 | ✅ | `cmd:app.language.english`, `cmd:app.language.simplifiedChinese`, `cmd:app.language.traditionalChinese`, `cmd:app.language.japanese` | Edit > Language lists every language in the table and the active one is checked; shared with Settings > General (docs/localization.md) | -| LR-BEHAV-LOCALIZE | Localisation | P2 | 🟡 | `crates/ui-egui/src/i18n.rs`, `crates/ui-egui/locales/`, `docs/localization.md`, `docs/localization-zh-hans.md`, `docs/localization-zh-hant.md`, `docs/localization-ja.md` | One table entry per language (code, endonym, ISO 15924 script, catalog): English, Simplified Chinese, Traditional Chinese (Taiwan) and Japanese UI with a persisted language preference and craft-fonts regular/bold faces per script; menus, edit, crop/masks, settings, import/export and primary progress messages. Adding a language is a table entry plus two catalogs. Stock presets/profiles, history steps, library headings, date headings and capture times are localised (user-named items stay verbatim); the Traditional Chinese catalog is the most complete, the others fall back to English for messages they lack. Technical errors/release notes remain English; Traditional Chinese borrows the Simplified Chinese face (no TC face in craft-fonts yet), and the web build embeds only the Japanese face. | +| LR-BEHAV-LOCALE | Language options | P2 | ✅ | `cmd:app.language.english`, `cmd:app.language.simplifiedChinese`, `cmd:app.language.traditionalChinese`, `cmd:app.language.japanese`, `cmd:app.language.portuguese` | Edit > Language lists every language in the table and the active one is checked; shared with Settings > General (docs/localization.md) | +| LR-BEHAV-LOCALIZE | Localisation | P2 | 🟡 | `crates/ui-egui/src/i18n.rs`, `crates/ui-egui/locales/`, `docs/localization.md`, `docs/localization-zh-hans.md`, `docs/localization-zh-hant.md`, `docs/localization-ja.md`, `docs/localization-pt-br.md` | One table entry per language (code, endonym, ISO 15924 script, catalog): English, Simplified Chinese, Traditional Chinese (Taiwan), Japanese and Brazilian Portuguese UI with a persisted language preference and craft-fonts regular/bold faces per script; menus, edit, crop/masks, settings, import/export and primary progress messages. Adding a language is a table entry plus two catalogs. Stock presets/profiles, history steps, library headings, date headings and capture times are localised (user-named items stay verbatim); the Traditional Chinese catalog is the most complete, the others fall back to English for messages they lack. Technical errors/release notes remain English; Traditional Chinese borrows the Simplified Chinese face (no TC face in craft-fonts yet), and the web build embeds only the Japanese face. | | LR-BEHAV-LEARN | Tutorials | OOS | 🚫 | | | | LR-BEHAV-WHATSNEW | What's new | P2 | ✅ | `cmd:app.whatsNew`, `docs/whats-new.md` | Help ▸ What's New: release highlights | | LR-BEHAV-AI-EA | Early-access badges | P2 | ⬜ | | | diff --git a/xtask/src/parity.rs b/xtask/src/parity.rs index fc87ecc3..bad6a5b1 100644 --- a/xtask/src/parity.rs +++ b/xtask/src/parity.rs @@ -452,7 +452,7 @@ old fn reads_the_language_commands_from_menus_rs() { let menus = include_str!("../../crates/ui-egui/src/menus.rs"); let ids = ui_command_ids(menus); - for id in ["view.detail", "app.language.english", "app.language.japanese", "app.language.simplifiedChinese"] { + for id in ["view.detail", "app.language.english", "app.language.japanese", "app.language.simplifiedChinese", "app.language.portuguese"] { assert!(ids.iter().any(|known| known == id), "{id} not found"); } assert_eq!(ids.iter().filter(|id| id.as_str() == "app.language.english").count(), 1, "one Language menu entry per language");