2026-05-15 17:02:49 +08:00
import type { TranslationKeys } from "./en.js" ;
export const ptBR : TranslationKeys = {
common : {
upload : "Enviar do computador" ,
process : "Processar" ,
download : "Baixar" ,
cancel : "Cancelar" ,
save : "Salvar" ,
delete : "Excluir" ,
settings : "Configuracoes" ,
search : "Buscar ferramentas..." ,
dropFiles : "Arraste arquivos aqui ou clique no botao de envio" ,
loading : "Carregando..." ,
error : "Ocorreu um erro" ,
confirm : "Confirmar" ,
close : "Fechar" ,
back : "Voltar" ,
next : "Proximo" ,
clear : "Limpar" ,
copy : "Copiar" ,
copied : "Copiado!" ,
noResults : "Nenhum resultado encontrado" ,
showLess : "Mostrar menos" ,
showMore : "Mostrar mais {count}" ,
experimental : "Experimental" ,
enabled : "Ativado" ,
disabled : "Desativado" ,
rename : "Renomear" ,
edit : "Editar" ,
actions : "Acoes" ,
create : "Criar" ,
or : "ou" ,
goHome : "Ir para o inicio" ,
somethingWentWrong : "Algo deu errado" ,
unexpectedError : "Ocorreu um erro inesperado." ,
retry : "Tentar novamente" ,
privacyPolicy : "Politica de privacidade" ,
2026-06-05 22:31:28 +08:00
pageNotFound : "Page not found" ,
2026-06-06 20:47:08 +08:00
pageNotFoundDescription : "The page you are looking for does not exist or has been moved." ,
},
2026-05-15 17:02:49 +08:00
categories : {
essentials : "Essenciais" ,
optimization : "Otimizacao" ,
adjustments : "Ajustes" ,
watermark : "Marca d'agua e sobreposicao" ,
utilities : "Utilitarios" ,
layout : "Layout e composicao" ,
format : "Formato e conversao" ,
ai : "Ferramentas de AI" ,
},
tools : {
resize : {
name : "Redimensionar" ,
description : "Redimensione por pixels, porcentagem ou presets de redes sociais" ,
},
crop : {
name : "Cortar" ,
description : "Corte livre, proporcoes predefinidas, corte por forma" ,
},
rotate : {
name : "Girar e espelhar" ,
description : "Gire, espelhe e endireite imagens" ,
},
convert : { name : "Converter" , description : "Converta entre formatos de imagem" },
compress : {
name : "Comprimir" ,
description : "Reduza o tamanho do arquivo por qualidade ou tamanho alvo" ,
},
"optimize-for-web" : {
name : "Otimizar para web" ,
description :
"Otimize imagens para web com conversao de formato, controle de qualidade e visualizacao ao vivo" ,
},
"strip-metadata" : {
name : "Remover metadados" ,
description : "Remova EXIF, GPS e informacoes da camera" ,
},
"edit-metadata" : {
name : "Editar metadados" ,
description : "Edite EXIF, IPTC, XMP, GPS, palavras-chave e datas" ,
},
"bulk-rename" : {
name : "Renomear em lote" ,
description : "Renomeie varios arquivos com padroes" ,
},
"image-to-pdf" : {
name : "Imagem para PDF" ,
description : "Combine imagens em um documento PDF" ,
},
"pdf-to-image" : {
name : "PDF para imagem" ,
description : "Converta paginas de PDF em imagens" ,
},
favicon : {
name : "Gerador de Favicon" ,
description : "Gere todos os tamanhos de favicon e icones de app" ,
},
"adjust-colors" : {
name : "Ajustar cores" ,
description : "Brilho, contraste, exposicao, saturacao, temperatura, nitidez e efeitos" ,
},
sharpening : {
name : "Nitidez" ,
description : "Nitidez adaptativa, mascara de desfoque e passa-alta com presets" ,
},
"replace-color" : {
name : "Substituir e inverter cor" ,
description : "Substitua cores especificas ou inverta" ,
},
"color-blindness" : {
name : "Simulacao de daltonismo" ,
description :
"Simule como as imagens aparecem com diferentes tipos de deficiencia na visao de cores" ,
},
"remove-background" : {
name : "Remover fundo" ,
description : "Remocao de fundo com AI" ,
},
upscale : {
name : "Ampliar imagem" ,
description : "Melhoria por super-resolucao com AI" ,
},
"erase-object" : {
name : "Apagador de objetos" ,
description : "Remova objetos indesejados com AI" ,
},
ocr : {
name : "OCR / Extracao de texto" ,
description : "Extraia texto de imagens com precisao alimentada por AI" ,
},
"blur-faces" : {
name : "Desfocar rostos / dados sensiveis" ,
description : "Detecte e desfoque automaticamente rostos e informacoes sensiveis" ,
},
"enhance-faces" : {
name : "Melhoria de rostos" ,
description : "Restaure e melhore rostos com AI" ,
},
"smart-crop" : {
name : "Corte inteligente" ,
description : "Corte inteligente por assunto, rosto ou bordas" ,
},
"image-enhancement" : {
name : "Melhoria de imagem" ,
description :
"Melhoria automatica com um clique: exposicao, contraste, cor e nitidez inteligentes" ,
},
"noise-removal" : {
name : "Remocao de ruido" ,
description : "Remocao de ruido e granulacao com AI" ,
},
"red-eye-removal" : {
name : "Remocao de olhos vermelhos" ,
description : "Deteccao e correcao de olhos vermelhos com AI para fotos com flash" ,
},
"restore-photo" : {
name : "Restauracao de fotos" ,
description : "Repare arranhoes, rasgos e danos em fotos antigas com AI" ,
},
"content-aware-resize" : {
name : "Redimensionamento inteligente" ,
description : "Redimensione imagens de forma inteligente preservando o conteudo importante" ,
},
"ai-canvas-expand" : {
name : "Expansao de canvas com AI" ,
description : "Expanda o canvas com preenchimento gerado por AI" ,
},
colorize : {
name : "Colorizacao com AI" ,
description :
"Converta fotos em preto e branco para coloridas usando modelos de aprendizado profundo com AI" ,
},
"passport-photo" : {
name : "Foto para documento" ,
description :
"Crie fotos para passaporte, visto e identidade em conformidade com os requisitos oficiais, com deteccao automatica de rosto" ,
},
"transparency-fixer" : {
name : "Corretor de transparencia PNG" ,
description : "Corrija PNGs com transparencia falsa em um clique" ,
},
"watermark-text" : {
name : "Marca d'agua de texto" ,
description : "Adicione uma marca d'agua de texto em sobreposicao" ,
},
"watermark-image" : {
name : "Marca d'agua de imagem" ,
description : "Sobreponha um logo como marca d'agua" ,
},
"text-overlay" : {
name : "Texto sobreposto" ,
description : "Adicione texto estilizado as imagens" ,
},
compose : {
name : "Composicao de imagem" ,
description : "Sobreponha imagens com posicao e opacidade" ,
},
"meme-generator" : {
name : "Gerador de Meme" ,
description :
"Crie memes com modelos populares ou suas proprias imagens. Texto classico estilo Impact com fontes, cores e posicionamento personalizaveis." ,
},
info : {
name : "Info da imagem" ,
description : "Veja todos os metadados e propriedades da imagem" ,
},
compare : {
name : "Comparar imagens" ,
description : "Comparacao lado a lado de duas imagens" ,
},
"find-duplicates" : {
name : "Encontrar duplicatas" ,
description : "Detecte imagens duplicadas e quase duplicadas" ,
},
"color-palette" : {
name : "Paleta de cores" ,
description : "Extraia as cores dominantes de uma imagem" ,
},
"qr-generate" : {
name : "Gerador de codigos QR" ,
description : "Gere codigos QR estilizados com cores, padroes e logos personalizados" ,
},
2026-06-06 20:47:08 +08:00
"html-to-image" : {
name : "HTML to Image" ,
description : "Capture webpages as high-quality images" ,
},
2026-05-15 17:02:49 +08:00
"barcode-read" : {
name : "Leitor de codigos de barras" ,
description : "Escaneie imagens em busca de codigos QR, codigos de barras e codigos 2D" ,
},
collage : {
name : "Collage / Grade" ,
description : "Combine imagens em belos collages com mais de 25 modelos" ,
},
stitch : {
name : "Juntar / Combinar" ,
description : "Junte imagens lado a lado, empilhadas ou em grade" ,
},
split : {
name : "Divisao de imagem" ,
description : "Divida imagens em grade ou por tamanho em pixels com visualizacao ao vivo" ,
},
border : {
name : "Borda e moldura" ,
description :
"Adicione bordas, preenchimento, cantos arredondados e sombras com presets de um clique" ,
},
beautify : {
name : "Embelezar captura de tela" ,
description :
"Adicione fundos degradados, molduras de dispositivo, sombras e tamanhos para redes sociais as capturas de tela" ,
},
"svg-to-raster" : {
name : "SVG para raster" ,
description :
"Converta SVG para PNG, JPEG, WebP, AVIF, TIFF, GIF ou HEIF em escala e DPI personalizados" ,
},
vectorize : {
name : "Imagem para SVG" ,
description : "Converta imagens em graficos vetoriais escalaveis" ,
},
"gif-tools" : {
name : "Ferramentas GIF" ,
description :
"Redimensione, otimize, altere velocidade, inverta, extraia quadros e gire GIFs animados" ,
},
"image-to-base64" : {
name : "Imagem para Base64" ,
description : "Converta imagens em strings Base64 para incorporar em HTML, CSS e mais" ,
},
pipeline : {
name : "Construtor de Pipeline" ,
description : "Encadeie varias ferramentas em um fluxo de trabalho" ,
},
},
toolSettings : {
compress : {
compressionMode : "Modo de compressao" ,
targetSize : "Tamanho alvo" ,
quality : "Qualidade" ,
smallestFile : "Menor arquivo" ,
bestQuality : "Melhor qualidade" ,
submit : "Comprimir" ,
submitBatch : "Comprimir ({count} arquivos)" ,
progressLabel : "Comprimindo" ,
original : "Original: {size} KB" ,
processed : "Processado: {size} KB" ,
saved : "Economia: {percent}%" ,
},
resize : {
customSize : "Tamanho personalizado" ,
scale : "Escala" ,
presets : "Presets" ,
contentAware : "Consciente do conteudo" ,
widthPx : "Largura (px)" ,
heightPx : "Altura (px)" ,
fitMode : "Modo de ajuste" ,
cropToFit : "Cortar para ajustar" ,
fitInside : "Ajustar dentro" ,
stretch : "Esticar" ,
limitToOriginalSize : "Limitar ao tamanho original" ,
limitToOriginalSizeHint :
"Se a imagem ja for menor que o alvo, ela e mantida como esta ao inves de ser ampliada" ,
scalePercent : "Escala (%)" ,
resizeToSquare : "Redimensionar para quadrado" ,
protectFaces : "Proteger rostos" ,
smoothing : "Suavizacao" ,
edgeSensitivity : "Sensibilidade de bordas" ,
submit : "Redimensionar" ,
submitBatch : "Redimensionar ({count} arquivos)" ,
progressLabel : "Redimensionando" ,
},
crop : {
aspectRatio : "Proporcao" ,
custom : "Personalizado" ,
positionAndSize : "Posicao e tamanho" ,
ruleOfThirds : "Regra dos tercos" ,
leftOffsetPx : "Deslocamento esquerdo (px)" ,
topOffsetPx : "Deslocamento superior (px)" ,
submit : "Cortar" ,
submitBatch : "Cortar ({count} arquivos)" ,
progressLabel : "Cortando" ,
},
rotate : {
rotate : "Girar" ,
angle : "Angulo" ,
straighten : "Endireitar" ,
flip : "Espelhar" ,
horizontal : "Horizontal" ,
vertical : "Vertical" ,
resetAllChanges : "Redefinir todas as alteracoes" ,
submit : "Aplicar" ,
submitBatch : "Aplicar ({count} arquivos)" ,
progressLabel : "Aplicando" ,
},
convert : {
targetFormat : "Formato de destino" ,
sourceFormat : "Formato de origem" ,
quality : "Qualidade" ,
submit : "Converter" ,
submitBatch : "Converter ({count} arquivos)" ,
progressLabel : "Convertendo" ,
},
"optimize-for-web" : {
outputFormat : "Formato de saida" ,
quality : "Qualidade" ,
smallestFile : "Menor arquivo" ,
bestQuality : "Melhor qualidade" ,
maxDimensions : "Dimensoes maximas" ,
maxWidth : "Largura maxima" ,
maxHeight : "Altura maxima" ,
stripMetadata : "Remover metadados" ,
sizeComparison : "Comparacao de tamanho" ,
optimized : "Otimizado:" ,
smaller : "{percent}% menor" ,
larger : "{percent}% maior" ,
submit : "Processar e baixar" ,
submitBatch : "Processar e baixar ({count} arquivos)" ,
progressLabel : "Otimizando" ,
},
"strip-metadata" : {
currentMetadata : "Metadados atuais" ,
readingMetadata : "Lendo metadados..." ,
noMetadataFound : "Nenhum metadado encontrado nesta imagem." ,
removeAllMetadata : "Remover todos os metadados" ,
selectSpecific : "Ou selecione metadados especificos:" ,
stripExif : "Remover EXIF (info da camera, data, exposicao)" ,
stripGps : "Remover GPS (dados de localizacao)" ,
stripIcc : "Remover ICC (perfil de cor)" ,
stripXmp : "Remover XMP (metadados extensiveis)" ,
locationFound : "localizacao encontrada" ,
locationWarning :
"Esta imagem contem sua localizacao precisa. Considere remover os dados GPS antes de compartilha-la." ,
metadataSections : "{count} secao de metadados encontrada" ,
metadataSectionsPlural : "{count} secoes de metadados encontradas" ,
metadataRemoved : "Metadados removidos: {size} KB" ,
submit : "Remover metadados" ,
progressLabel : "Removendo metadados" ,
},
"edit-metadata" : {
readingMetadata : "Lendo metadados..." ,
couldNotReadMetadata : "Nao foi possivel ler os metadados - os campos comecarao vazios." ,
basicInfo : "Informacoes basicas" ,
description : "Descricao" ,
artist : "Artista" ,
copyright : "Copyright" ,
software : "Software" ,
iptc : "IPTC" ,
title : "Titulo" ,
headline : "Titulo principal" ,
city : "Cidade" ,
stateProvince : "Estado/Provincia" ,
country : "Pais" ,
dateAndTime : "Data e hora" ,
editDates : "Editar datas" ,
shiftAllDates : "Ajustar todas as datas" ,
dateModified : "Data de modificacao" ,
dateTaken : "Data da captura" ,
shiftHint :
"Ajuste todos os campos de data por um deslocamento (util para correcoes de fuso horario)" ,
direction : "Direcao" ,
forward : "+ Para frente" ,
backward : "- Para tras" ,
hoursMinutes : "Horas:Minutos" ,
locationGps : "Localizacao (GPS)" ,
locationDataFound : "Dados de localizacao encontrados" ,
noGpsData : "Sem dados GPS. Adicione coordenadas abaixo." ,
latitude : "Latitude" ,
longitude : "Longitude" ,
altitudeMeters : "Altitude (metros)" ,
removeAllGpsData : "Remover todos os dados GPS" ,
keywords : "Palavras-chave" ,
addKeywordPlaceholder : "Adicione palavra-chave e pressione Enter" ,
addToExisting : "Adicionar as existentes" ,
replaceAll : "Substituir todas" ,
allMetadata : "Todos os metadados" ,
templates : "Modelos" ,
templateNamePlaceholder : "Nome do modelo" ,
uploadPrompt : "Envie uma imagem para editar seus metadados." ,
changes : "{count} alteracoes:" ,
modified : "{count} modificados" ,
removed : "{count} removidos" ,
gpsCleared : "GPS removido" ,
gpsAdded : "GPS adicionado" ,
datesShifted : "datas ajustadas" ,
submit : "Aplicar metadados" ,
progressLabel : "Gravando metadados" ,
},
"bulk-rename" : {
pattern : "Padrao" ,
patternHint : "Variaveis: {{index}}, {{padded}}, {{original}}" ,
startIndex : "Indice inicial" ,
preview : "Visualizacao" ,
andMore : "... e mais {count}" ,
renaming : "Renomeando..." ,
submit : "Renomear {count} arquivos" ,
zipDownloaded : "ZIP baixado com sucesso" ,
},
"image-to-pdf" : {
imageCount : "{count} imagem sera convertida em {mode}" ,
imageCountPlural : "{count} imagens serao convertidas em {mode}" ,
singlePdfMode : "um unico PDF, uma imagem por pagina" ,
separatePdfMode : "PDFs separados, um por imagem" ,
combineAllImages : "Combinar todas as imagens em um PDF" ,
pageSize : "Tamanho da pagina" ,
orientation : "Orientacao" ,
portrait : "Retrato" ,
landscape : "Paisagem" ,
margin : "Margem" ,
targetSizeLabel : "Tamanho de arquivo alvo (opcional)" ,
targetSizePlaceholder : "ex. 2" ,
targetSizeHint : "Deixe vazio para qualidade maxima" ,
targetSizeMet : "Alvo atingido" ,
targetSizeNotMet : "Nao foi possivel atingir o alvo. Arquivo comprimido com qualidade minima." ,
targetSizeTooSmall : "O alvo deve ser de pelo menos 50KB" ,
jpegQualityLabel : "Qualidade JPEG utilizada" ,
noImage : "Sem imagem" ,
submitCollate : "Criar PDF ({count} paginas)" ,
submitSeparate : "Criar {count} PDFs" ,
downloadPdf : "Baixar PDF" ,
downloadZip : "Baixar ZIP" ,
progressLabel : "Criando PDF" ,
uploadingImages : "Enviando imagens..." ,
processingPages : "Processando {count} paginas..." ,
},
"pdf-to-image" : {
dropPdf : "Arraste um PDF aqui ou clique para selecionar" ,
readingPdf : "Lendo PDF..." ,
pageCount : "{count} pagina" ,
pageCountPlural : "{count} paginas" ,
outputFormat : "Formato de saida" ,
quality : "Qualidade" ,
resolutionDpi : "Resolucao (DPI)" ,
dpiScreen : "Tela" ,
dpiStandard : "Padrao" ,
dpiPrint : "Impressao" ,
dpiHighQuality : "Alta qualidade" ,
colorMode : "Modo de cor" ,
colorModeColor : "Colorido" ,
colorModeGrayscale : "Escala de cinza" ,
colorModeBw : "P&B" ,
pages : "Paginas" ,
allPages : "Todas as paginas" ,
pagesHint : "ex. 1-3, 5, 8-10 (o documento tem {count} paginas)" ,
converting : "Convertendo..." ,
submit : "Converter {count} pagina" ,
submitPlural : "Converter {count} paginas" ,
downloadAllZip : "Baixar tudo (ZIP)" ,
},
favicon : {
uploadHint :
"Envie imagens quadradas (recomendado 512x512 ou maior) para gerar todos os tamanhos de favicon e icones de app." ,
multipleHint : "Cada uma das {count} imagens recebe sua propria pasta no ZIP." ,
generatedSizes : "Tamanhos gerados (por imagem)" ,
plusManifest : "+ manifest.json + trecho HTML" ,
submit : "Gerar Favicons ({count} imagem)" ,
submitPlural : "Gerar Favicons ({count} imagens)" ,
downloadZip : "Baixar ZIP dos Favicons" ,
progressLabel : "Gerando Favicons" ,
},
"adjust-colors" : {
light : "Luz" ,
brightness : "Brilho" ,
contrast : "Contraste" ,
exposure : "Exposicao" ,
color : "Cor" ,
saturation : "Saturacao" ,
temperature : "Temperatura" ,
temperatureHint : "frio / quente" ,
tint : "Tonalidade" ,
tintHint : "verde / magenta" ,
hue : "Matiz" ,
detail : "Detalhe" ,
sharpness : "Nitidez" ,
effects : "Efeitos" ,
none : "nenhum" ,
grayscale : "escala de cinza" ,
sepia : "sepia" ,
invert : "inverter" ,
colorChannels : "Canais de cor" ,
channelModified : "modificado" ,
red : "Vermelho" ,
green : "Verde" ,
blue : "Azul" ,
resetAll : "Redefinir tudo" ,
submit : "Aplicar" ,
submitBatch : "Aplicar ({count} arquivos)" ,
progressLabel : "Ajustando cores" ,
},
sharpening : {
method : "Metodo" ,
adaptive : "Adaptativo" ,
unsharpMask : "Mascara de desfoque" ,
highPass : "Passa-alta" ,
presets : "Presets" ,
textureAmount : "Quantidade de textura" ,
amount : "Quantidade" ,
strength : "Intensidade" ,
noiseReduction : "Reducao de ruido" ,
off : "desativado" ,
lightDenoise : "leve" ,
mediumDenoise : "medio" ,
strongDenoise : "forte" ,
advancedControls : "Controles avancados" ,
radius : "Raio" ,
flatProtection : "Protecao de areas planas" ,
detailThreshold : "Limiar de detalhe" ,
haloLimitLight : "Limite de halo (claro)" ,
haloLimitDark : "Limite de halo (escuro)" ,
threshold : "Limiar" ,
kernelSize : "Tamanho do kernel" ,
submit : "Aumentar nitidez" ,
submitBatch : "Aumentar nitidez ({count} arquivos)" ,
progressLabel : "Aumentando nitidez" ,
},
"replace-color" : {
sourceColor : "Cor de origem (a substituir)" ,
targetColor : "Cor de destino (substituicao)" ,
makeTransparent : "Tornar transparente em vez disso" ,
tolerance : "Tolerancia" ,
exactMatch : "Correspondencia exata" ,
wideRange : "Faixa ampla" ,
submit : "Substituir cor" ,
submitBatch : "Substituir cor ({count} arquivos)" ,
progressLabel : "Substituindo cor" ,
},
"color-blindness" : {
simulationType : "Tipo de simulacao" ,
redGreen : "Vermelho-Verde" ,
blueYellow : "Azul-Amarelo" ,
monochromatic : "Monocromatico" ,
submit : "Simular" ,
submitBatch : "Simular ({count} arquivos)" ,
progressLabel : "Simulando daltonismo" ,
},
"remove-background" : {
subject : "Assunto" ,
people : "Pessoas" ,
products : "Produtos" ,
general : "Geral" ,
passportIdPhoto : "Foto para passaporte / documento" ,
quality : "Qualidade" ,
fast : "Rapido" ,
hd : "HD" ,
max : "Max" ,
ultra : "Ultra" ,
background : "Fundo" ,
transparent : "Transparente" ,
bgColor : "Cor" ,
gradient : "Degradado" ,
image : "Imagem" ,
gradientDirection : "Direcao" ,
chooseBackgroundImage : "Escolher imagem de fundo" ,
effectsSection : "Efeitos" ,
effectsActive : "ativos" ,
blurBackground : "Desfocar fundo" ,
intensity : "Intensidade" ,
addShadow : "Adicionar sombra" ,
opacity : "Opacidade" ,
2026-06-05 23:14:57 +08:00
outputFormat : "Output Format" ,
edgeSmoothing : "Edge Smoothing" ,
edgeSmoothingOff : "Off" ,
edgeSmoothingLight : "Light" ,
edgeSmoothingMedium : "Medium" ,
edgeSmoothingStrong : "Strong" ,
colorDecontamination : "Color Decontamination" ,
2026-05-15 17:02:49 +08:00
rendering : "Renderizando..." ,
submit : "Remover fundo" ,
submitBatch : "Remover fundo ({count} arquivos)" ,
progressLabel : "Removendo fundo" ,
},
upscale : {
scaleFactor : "Fator de escala" ,
quality : "Qualidade" ,
enhanceFaces : "Melhorar rostos" ,
noiseReduction : "Reducao de ruido" ,
noiseReductionHint :
"Suaviza granulacao e ruido. Valores mais altos removem mais ruido mas podem suavizar os detalhes." ,
outputFormat : "Formato de saida" ,
submit : "Ampliar {scale}x" ,
submitBatch : "Ampliar {scale}x ({count} arquivos)" ,
progressLabel : "Ampliando imagem" ,
progressLabelBatch : "Ampliando {count} imagens" ,
},
"erase-object" : {
brushSize : "Tamanho do pincel" ,
fine : "Fino" ,
wide : "Largo" ,
undo : "Desfazer" ,
clear : "Limpar" ,
outputFormat : "Formato de saida" ,
quality : "Qualidade" ,
paintHint : "Pinte sobre os objetos que deseja remover. Use Ctrl+Z para desfazer." ,
submit : "Apagar objeto" ,
submitBatch : "Apagar todos ({count})" ,
progressLabel : "Apagando objeto" ,
},
ocr : {
quality : "Qualidade" ,
enhanceBeforeScanning : "Melhorar antes da varredura" ,
enhanceHint :
"Endireita, melhora o contraste, remove ruido e amplia a imagem automaticamente antes da varredura para maior precisao." ,
language : "Idioma" ,
autoDetect : "Deteccao automatica" ,
extractedText : "Texto extraido" ,
noTextDetected : "Nenhum texto detectado nesta imagem" ,
characters : "{count} caracteres" ,
submit : "Extrair texto" ,
submitBatch : "Extrair texto ({count} arquivos)" ,
progressLabel : "Extraindo texto" ,
},
"blur-faces" : {
blurRadius : "Raio de desfoque" ,
blurLight : "Leve" ,
blurHeavy : "Forte" ,
detectionSensitivity : "Sensibilidade de deteccao" ,
moreFaces : "Mais rostos" ,
fewerFaces : "Menos rostos" ,
submit : "Desfocar rostos" ,
progressLabel : "Desfocando rostos" ,
},
"enhance-faces" : {
quality : "Qualidade" ,
enhancementStrength : "Intensidade da melhoria" ,
onlyCenterFace : "Apenas o rosto central" ,
detectionSensitivity : "Sensibilidade de deteccao" ,
submit : "Melhorar rostos" ,
submitBatch : "Melhorar rostos ({count} arquivos)" ,
progressLabel : "Melhorando rostos" ,
},
"smart-crop" : {
subjectFocus : "Foco no assunto" ,
faceFocus : "Foco no rosto" ,
autoTrim : "Corte automatico" ,
customSize : "Tamanho personalizado" ,
socialPresets : "Presets de redes sociais" ,
detectionStrategy : "Estrategia de deteccao" ,
detectionStrategyHint :
"Atencao encontra a regiao visualmente mais relevante. Entropia encontra a area com mais detalhes e informacoes." ,
attention : "Atencao" ,
entropy : "Entropia" ,
padding : "Preenchimento" ,
paddingHint : "Espaco extra ao redor da area de foco" ,
outputQuality : "Qualidade de saida" ,
outputQualityHint : "Para saidas JPEG e WebP. PNG e sempre sem perdas." ,
subjectDescription :
"Detecta a regiao mais interessante usando analise de relevancia e corta no tamanho desejado." ,
framing : "Enquadramento" ,
facePadding : "Espaco ao redor do rosto" ,
facePaddingHint : "Espaco extra ao redor dos rostos detectados" ,
fewerFalsePositives : "Menos falsos positivos" ,
faceDescription :
"Usa deteccao facial com AI para manter os rostos bem enquadrados. Se nenhum rosto for detectado, usa o foco no assunto." ,
trimTolerance : "Tolerancia" ,
trimDescription :
"O quanto um pixel da borda pode diferir da cor da borda e ainda ser cortado. Maior = mais agressivo." ,
padToSquare : "Preencher para quadrado" ,
targetSizePx : "Tamanho alvo (px)" ,
padColor : "Cor de preenchimento" ,
trimHint :
'Remove bordas de cor uniforme ao redor do assunto. Ative "Preencher para quadrado" para imagens prontas para e-commerce.' ,
submitSubject : "Corte inteligente" ,
submitFace : "Corte por rosto" ,
submitTrim : "Cortar bordas" ,
},
imageEnhancement : {
enhancementMode : "Modo de melhoria" ,
auto : "Automatico" ,
portrait : "Retrato" ,
landscape : "Paisagem" ,
lowLight : "Pouca luz" ,
food : "Comida" ,
document : "Documento" ,
intensity : "Intensidade" ,
deepEnhance : "Melhoria profunda (AI)" ,
deepEnhanceDescription : "Remove ruido e artefatos usando AI" ,
deepEnhanceRequires : "Requer o pacote de Ampliacao e melhoria" ,
analyzingImage : "Analisando imagem..." ,
detectedIssues : "Problemas detectados" ,
imageLooksGood : "A imagem parece boa. Ajuste com o controle de intensidade." ,
issueUnderexposed : "Baixa exposicao" ,
issueOverexposed : "Superexposta" ,
issueLowContrast : "Contraste plano" ,
issueColorCast : "Dominante de cor" ,
issueDesaturated : "Dessaturada" ,
issueSoftFocus : "Foco suave" ,
issueNoisy : "Ruidosa" ,
submit : "Melhorar" ,
submitDeep : "Melhoria profunda" ,
submitBatch : "Melhorar ({count} arquivos)" ,
submitDeepBatch : "Melhoria profunda ({count} arquivos)" ,
progressLabel : "Melhorando imagem" ,
progressLabelBatch : "Melhorando {count} imagens" ,
},
"noise-removal" : {
denoisingTier : "Nivel de reducao de ruido" ,
quick : "Rapido" ,
balanced : "Equilibrado" ,
quality : "Qualidade" ,
maximum : "Maximo" ,
quickDesc : "Rapido e leve" ,
balancedDesc : "Boa qualidade, velocidade moderada" ,
qualityDesc : "Com AI, lento" ,
maximumDesc : "Melhor modelo AI, mais lento" ,
strength : "Intensidade" ,
subtle : "Sutil" ,
aggressive : "Agressivo" ,
detailPreservation : "Preservacao de detalhes" ,
smooth : "Suave" ,
sharp : "Nitido" ,
colorNoise : "Ruido de cor" ,
heavy : "Intenso" ,
outputFormat : "Formato de saida" ,
gifAiWarning :
"A reducao de ruido com AI em arquivos GIF processa apenas o primeiro quadro. Para GIFs animados, use o nivel Rapido ou Equilibrado." ,
submit : "Remover ruido" ,
submitBatch : "Remover ruido ({count} arquivos)" ,
progressLabel : "Removendo ruido" ,
progressLabelBatch : "Removendo ruido de {count} imagens" ,
},
"red-eye-removal" : {
sensitivity : "Sensibilidade" ,
strict : "Rigorosa" ,
aggressive : "Agressiva" ,
correctionStrength : "Intensidade da correcao" ,
subtle : "Sutil" ,
dark : "Escuro" ,
outputFormat : "Formato de saida" ,
quality : "Qualidade" ,
submit : "Corrigir olhos vermelhos" ,
submitBatch : "Corrigir olhos vermelhos ({count} arquivos)" ,
progressLabel : "Corrigindo olhos vermelhos" ,
progressLabelBatch : "Corrigindo olhos vermelhos em {count} imagens" ,
},
"restore-photo" : {
scratchRemoval : "Remocao de arranhoes" ,
scratchRemovalDesc : "Detecta e repara arranhoes, rasgos e manchas" ,
faceEnhancement : "Melhoria de rostos" ,
faceEnhancementDesc : "Restaura rostos degradados com CodeFormer AI" ,
faceFidelity : "Fidelidade do rosto" ,
enhanced : "Melhorado" ,
faithful : "Fiel" ,
noiseReduction : "Reducao de ruido" ,
noiseReductionDesc : "Remove granulacao e ruido de fotos antigas" ,
denoiseStrength : "Intensidade da reducao de ruido" ,
autoColorize : "Colorizar automaticamente" ,
autoColorizeDesc : "Adicione cor a fotos P&B usando DDColor AI" ,
colorizeStrength : "Intensidade da colorizacao" ,
vivid : "Vivido" ,
submit : "Restaurar foto" ,
submitBatch : "Restaurar fotos ({count})" ,
progressLabel : "Restaurando foto" ,
progressLabelBatch : "Restaurando {count} fotos" ,
},
"content-aware-resize" : {
widthPx : "Largura (px)" ,
heightPx : "Altura (px)" ,
resizeToSquare : "Redimensionar para quadrado" ,
protectFaces : "Proteger rostos" ,
protectFacesHint :
"Detecta e protege as areas do rosto da remocao de costuras usando deteccao facial" ,
smoothing : "Suavizacao" ,
edgeSensitivity : "Sensibilidade de bordas" ,
submit : "Redimensionar" ,
submitBatch : "Redimensionar ({count} arquivos)" ,
progressLabel : "Redimensionamento inteligente" ,
},
"ai-canvas-expand" : {
quality : "Qualidade" ,
fast : "Rapido" ,
balanced : "Equilibrado" ,
highQuality : "Alta qualidade" ,
fastDesc : "Visualizacao rapida, menos passagens AI" ,
balancedDesc : "Boa qualidade, velocidade moderada" ,
highQualityDesc : "Melhores resultados, mais lento" ,
extendToAspectRatio : "Estender para proporcao" ,
extendByPixels : "Estender por (pixels)" ,
top : "Topo" ,
right : "Direita" ,
bottom : "Baixo" ,
left : "Esquerda" ,
newSize : "Novo tamanho: {width} x {height}" ,
submit : "Estender canvas" ,
submitBatch : "Estender ({count} arquivos)" ,
progressLabel : "Estendendo canvas" ,
},
colorize : {
aiModel : "Modelo AI" ,
fast : "Rapido" ,
fastDesc : "Resultados rapidos" ,
balanced : "Equilibrado" ,
balancedDesc : "O melhor disponivel" ,
best : "Melhor" ,
bestDesc : "A mais alta qualidade" ,
colorIntensity : "Intensidade de cor" ,
grayscaleLabel : "Escala de cinza" ,
subtleLabel : "Sutil" ,
naturalLabel : "Natural" ,
vividLabel : "Vivido" ,
intensityHint : "Valores mais baixos produzem cores mais suaves, estilo vintage." ,
strength : "Intensidade da colorizacao" ,
submit : "Colorizar" ,
submitBatch : "Colorizar ({count} arquivos)" ,
progressLabel : "Colorizando" ,
progressLabelBatch : "Colorizando {count} imagens" ,
},
"passport-photo" : {
country : "Pais" ,
searchCountries : "Buscar paises..." ,
noCountriesFound : "Nenhum pais encontrado" ,
customDimensions : "Dimensoes personalizadas" ,
documentType : "Tipo de documento" ,
dimensionsMm : "Dimensoes (mm)" ,
dpi : "DPI" ,
pixelsPerInch : "pixels por polegada" ,
backgroundColor : "Cor de fundo" ,
maxFileSize : "Tamanho maximo do arquivo" ,
noLimit : "Sem limite" ,
customKb : "Personalizado KB..." ,
uploadPortrait : "Envie uma foto tipo retrato" ,
uploadHint :
"Arraste ou envie uma imagem no painel esquerdo para visualizar sua foto para documento" ,
analyzingPhoto : "Analisando foto" ,
detectingLandmarks : "Detectando pontos faciais e removendo fundo..." ,
generatePassportPhoto : "Gerar foto para documento" ,
generating : "Gerando..." ,
downloadPhoto : "Baixar foto" ,
faceCentered : "Rosto centralizado" ,
headLevel : "Cabeca nivelada" ,
lookingStraight : "Olhando para frente" ,
faceSize : "Tamanho do rosto" ,
whatYouSee : "O que voce ve e o que vai baixar" ,
dragToAdjust : "Arraste para ajustar" ,
scrollToZoom : "Role para dar zoom" ,
photoGenerated : "Foto gerada. Baixe pelo painel esquerdo." ,
},
"transparency-fixer" : {
description : "Envie um PNG com fundo transparente falso e corrigimos em um clique." ,
removeWatermark : "Remover marca d'agua" ,
removeWatermarkHelp : "Detecta e remove marcas d'agua semitransparentes" ,
requiresEraser : "Requer o pacote do Apagador de objetos" ,
advanced : "Avancado" ,
defringe : "Remover franjas" ,
outputFormat : "Formato de saida" ,
submit : "Corrigir transparencia" ,
submitBatch : "Corrigir transparencia ({count} arquivos)" ,
progressLabel : "Corrigindo transparencia" ,
},
"watermark-text" : {
watermarkText : "Texto da marca d'agua" ,
fontSize : "Tamanho da fonte" ,
color : "Cor" ,
opacity : "Opacidade" ,
position : "Posicao" ,
rotation : "Rotacao" ,
center : "Centro" ,
topLeft : "Superior esquerdo" ,
topRight : "Superior direito" ,
bottomLeft : "Inferior esquerdo" ,
bottomRight : "Inferior direito" ,
tiled : "Lado a lado" ,
submit : "Adicionar marca d'agua" ,
submitBatch : "Adicionar marca d'agua ({count} arquivos)" ,
progressLabel : "Adicionando marca d'agua" ,
},
"watermark-image" : {
uploadWatermark : "Enviar imagem de marca d'agua" ,
position : "Posicao" ,
opacity : "Opacidade" ,
scale : "Escala" ,
submit : "Aplicar marca d'agua" ,
submitBatch : "Aplicar marca d'agua ({count} arquivos)" ,
},
"text-overlay" : {
text : "Texto" ,
fontSize : "Tamanho da fonte" ,
color : "Cor" ,
position : "Posicao" ,
top : "Topo" ,
center : "Centro" ,
bottom : "Baixo" ,
backgroundBox : "Caixa de fundo" ,
backgroundColor : "Cor de fundo" ,
shadow : "Sombra" ,
submit : "Adicionar texto" ,
submitBatch : "Adicionar texto ({count} arquivos)" ,
progressLabel : "Adicionando texto sobreposto" ,
2026-06-07 18:27:09 +08:00
download : "Download" ,
defaultText : "Your Text Here" ,
2026-05-15 17:02:49 +08:00
},
compose : {
uploadOverlay : "Enviar imagem de sobreposicao" ,
xPosition : "Posicao X" ,
yPosition : "Posicao Y" ,
opacity : "Opacidade" ,
blendMode : "Modo de mesclagem" ,
submit : "Compor" ,
},
"meme-generator" : {
selectTemplate : "Selecione um modelo da galeria ou envie sua propria imagem para comecar." ,
chooseLayout : "Escolha um layout de texto para sua imagem personalizada." ,
textContent : "Conteudo do texto" ,
textStyle : "Estilo do texto" ,
font : "Fonte" ,
fontSize : "Tamanho da fonte" ,
textColor : "Cor do texto" ,
strokeColor : "Cor do contorno" ,
allCaps : "MAIUSCULAS" ,
generate : "Gerar Meme" ,
generating : "Gerando..." ,
downloadMeme : "Baixar Meme" ,
backToGallery : "Voltar para a galeria" ,
},
info : {
loadingInfo : "Carregando informacoes..." ,
filename : "Nome do arquivo" ,
fileSize : "Tamanho do arquivo" ,
dimensions : "Dimensoes" ,
format : "Formato" ,
channels : "Canais" ,
colorSpace : "Espaco de cor" ,
density : "Densidade" ,
bitDepth : "Profundidade de bits" ,
progressive : "Progressivo" ,
pages : "Paginas" ,
hasAlpha : "Tem alfa" ,
hasProfile : "Tem perfil" ,
hasExif : "Tem EXIF" ,
hasIcc : "Tem ICC" ,
hasXmp : "Tem XMP" ,
2026-06-07 18:27:09 +08:00
readInfo : "Read Info" ,
reading : "Reading..." ,
channelStats : "Channel Stats" ,
yes : "Yes" ,
no : "No" ,
na : "N/A" ,
failedToRead : "Failed to read info" ,
2026-05-15 17:02:49 +08:00
},
compare : {
uploadSecondImage : "Enviar segunda imagem" ,
similarity : "Similaridade: {percent}%" ,
submit : "Comparar" ,
downloadDiff : "Baixar diferenca" ,
},
"find-duplicates" : {
preset : "Preset" ,
exact : "Exato" ,
similar : "Similar" ,
loose : "Amplo" ,
exactDesc : "Copias identicas pixel a pixel, mesma imagem em formatos diferentes." ,
similarDesc : "Copias redimensionadas, recomprimidas ou levemente editadas." ,
looseDesc : "Imagens visualmente relacionadas, cortes leves, exposicoes diferentes." ,
threshold : "Limiar" ,
submit : "Buscar duplicatas" ,
scanning : "Escaneando..." ,
},
"color-palette" : {
submit : "Extrair paleta" ,
extracting : "Extraindo..." ,
dominantColors : "Cores dominantes" ,
clickToCopy : "Clique para copiar" ,
},
"qr-generate" : {
contentType : "Tipo de conteudo" ,
url : "URL" ,
text : "Texto" ,
wifi : "WiFi" ,
vcard : "vCard" ,
email : "Email" ,
phone : "Telefone" ,
sms : "SMS" ,
styling : "Estilo" ,
dotStyle : "Estilo dos pontos" ,
cornerSquareStyle : "Estilo do quadrado de canto" ,
cornerDotStyle : "Estilo do ponto de canto" ,
foregroundColor : "Cor do primeiro plano" ,
bgColor : "Cor de fundo" ,
logo : "Logo" ,
downloadFormat : "Formato de download" ,
submit : "Gerar codigo QR" ,
download : "Baixar codigo QR" ,
},
2026-06-06 20:47:08 +08:00
"html-to-image" : {
2026-06-06 21:31:05 +08:00
modeUrl : "URL" ,
modeHtml : "HTML File" ,
htmlFile : "HTML File" ,
2026-06-06 20:47:08 +08:00
url : "URL" ,
2026-06-06 21:29:06 +08:00
urlPlaceholder : "https://snapotter.com" ,
2026-06-06 20:47:08 +08:00
format : "Output Format" ,
quality : "Quality" ,
devicePreset : "Device" ,
viewportWidth : "Width" ,
viewportHeight : "Height" ,
fullPage : "Full Page" ,
submit : "Capture" ,
download : "Download Screenshot" ,
capturing : "Capturing webpage..." ,
errorTimeout : "Page took too long to load" ,
errorBlocked : "This URL cannot be captured" ,
errorUnavailable : "Screenshot service is not available" ,
errorFailed : "Failed to capture the page" ,
placeholder : "Enter a URL and click Capture" ,
presets : {
desktop : "Desktop" ,
tablet : "Tablet" ,
mobile : "Mobile" ,
custom : "Custom" ,
},
},
2026-05-15 17:02:49 +08:00
"barcode-read" : {
submit : "Escanear codigos de barras" ,
submitBatch : "Escanear ({count} arquivos)" ,
scanning : "Escaneando..." ,
noBarcodesFound : "Nenhum codigo de barras encontrado" ,
barcodesFound : "{count} codigo de barras encontrado" ,
barcodesFoundPlural : "{count} codigos de barras encontrados" ,
},
collage : {
template : "Modelo" ,
aspectRatio : "Proporcao" ,
gap : "Espaco" ,
cornerRadius : "Raio do canto" ,
backgroundColor : "Cor de fundo" ,
outputFormat : "Formato de saida" ,
quality : "Qualidade" ,
submit : "Criar collage" ,
downloadCollage : "Baixar collage" ,
},
stitch : {
direction : "Direcao" ,
horizontal : "Horizontal" ,
vertical : "Vertical" ,
grid : "Grade" ,
gridColumns : "Colunas da grade" ,
resizeMode : "Modo de redimensionamento" ,
fit : "Ajustar" ,
original : "Original" ,
stretchMode : "Esticar" ,
cropMode : "Cortar" ,
alignment : "Alinhamento" ,
start : "Inicio" ,
center : "Centro" ,
end : "Fim" ,
gap : "Espaco" ,
border : "Borda" ,
cornerRadius : "Raio do canto" ,
backgroundColor : "Cor de fundo" ,
outputFormat : "Formato de saida" ,
quality : "Qualidade" ,
submit : "Juntar imagens" ,
},
split : {
modeGrid : "Grade" ,
modeTileSize : "Tamanho do bloco" ,
presets : "Presets" ,
columns : "Colunas" ,
rows : "Linhas" ,
tileWidth : "Largura do bloco" ,
tileHeight : "Altura do bloco" ,
outputFormat : "Formato de saida" ,
quality : "Qualidade" ,
submit : "Dividir imagem" ,
downloadAll : "Baixar tudo (ZIP)" ,
},
border : {
presets : "Presets" ,
borderWidth : "Largura da borda" ,
borderColor : "Cor da borda" ,
padding : "Preenchimento" ,
paddingColor : "Cor do preenchimento" ,
cornerRadius : "Raio do canto" ,
shadow : "Sombra" ,
shadowBlur : "Desfoque da sombra" ,
shadowOffsetX : "Deslocamento X da sombra" ,
shadowOffsetY : "Deslocamento Y da sombra" ,
shadowColor : "Cor da sombra" ,
shadowOpacity : "Opacidade da sombra" ,
submit : "Adicionar borda" ,
submitBatch : "Adicionar borda ({count} arquivos)" ,
progressLabel : "Adicionando borda" ,
},
beautify : {
preset : "Preset" ,
backgroundType : "Tipo de fundo" ,
solidColor : "Cor solida" ,
linearGradient : "Degradado linear" ,
radialGradient : "Degradado radial" ,
customImage : "Imagem personalizada" ,
gradientAngle : "Angulo do degradado" ,
padding : "Preenchimento" ,
borderRadius : "Raio da borda" ,
shadowPreset : "Preset de sombra" ,
deviceFrame : "Moldura de dispositivo" ,
submit : "Embelezar" ,
submitBatch : "Embelezar ({count} arquivos)" ,
progressLabel : "Embelezando captura de tela" ,
},
"svg-to-raster" : {
outputFormat : "Formato de saida" ,
sizing : "Dimensionamento" ,
scaleMode : "Escala" ,
customMode : "Personalizado" ,
scalePresets : "Presets de escala" ,
dpiPresets : "Presets de DPI" ,
customWidth : "Largura (px)" ,
customHeight : "Altura (px)" ,
background : "Fundo" ,
bgTransparent : "Transparente" ,
bgColor : "Cor" ,
quality : "Qualidade" ,
submit : "Converter SVG" ,
submitBatch : "Converter ({count} arquivos)" ,
progressLabel : "Convertendo SVG" ,
},
vectorize : {
preset : "Preset" ,
logo : "Logo" ,
illustration : "Ilustracao" ,
photo : "Foto" ,
sketch : "Rascunho" ,
customPreset : "Personalizado" ,
colorMode : "Modo de cor" ,
bw : "P&B" ,
colorModeColor : "Colorido" ,
threshold : "Limiar" ,
colorPrecision : "Precisao de cor" ,
layerDifference : "Diferenca de camadas" ,
filterSpeckle : "Filtrar manchas" ,
pathMode : "Modo de caminho" ,
cornerThreshold : "Limiar de canto" ,
invertColors : "Inverter cores" ,
submit : "Vetorizar" ,
submitBatch : "Vetorizar ({count} arquivos)" ,
progressLabel : "Vetorizando" ,
},
"gif-tools" : {
mode : "Modo" ,
resize : "Redimensionar" ,
optimize : "Otimizar" ,
speed : "Velocidade" ,
reverse : "Inverter" ,
extract : "Extrair" ,
rotateMode : "Girar" ,
pixel : "Pixel" ,
percentage : "Porcentagem" ,
colors : "Cores" ,
dither : "Dithering" ,
effort : "Esforco" ,
speedFactor : "Fator de velocidade" ,
loopControl : "Controle de loop" ,
infinite : "Infinito" ,
once : "Uma vez" ,
customLoop : "Personalizado" ,
loopCount : "Quantidade de loops" ,
extractSingle : "Individual" ,
extractRange : "Faixa" ,
extractAll : "Todos" ,
frameNumber : "Numero do quadro" ,
frameStart : "Quadro inicial" ,
frameEnd : "Quadro final" ,
extractFormat : "Formato" ,
submit : "Processar GIF" ,
submitBatch : "Processar ({count} arquivos)" ,
progressLabel : "Processando GIF" ,
},
"image-to-base64" : {
outputFormat : "Formato de saida" ,
keepOriginal : "Manter original" ,
quality : "Qualidade" ,
maxWidth : "Largura maxima" ,
maxHeight : "Altura maxima" ,
submit : "Converter para Base64" ,
submitBatch : "Converter ({count} arquivos)" ,
copyBase64 : "Copiar Base64" ,
copyDataUri : "Copiar Data URI" ,
copyImgTag : "Copiar tag <img>" ,
copyCssUrl : "Copiar CSS url()" ,
},
"enhance-faces-standalone" : {
model : "Modelo" ,
fast : "Rapido" ,
balanced : "Equilibrado" ,
best : "Melhor" ,
},
},
urlImport : {
title : "Importar de URLs" ,
placeholder : "Cole URLs de imagens, uma por linha..." ,
importButton : "Importar URLs" ,
addButton : "Adicionar {count} arquivos" ,
adding : "Adicionando..." ,
retryButton : "Tentar novamente" ,
cancelButton : "Cancelar" ,
readyCount : "{count} prontos" ,
failedStatus : "Falhou" ,
},
comparison : {
original : "Original" ,
processed : "Processado" ,
before : "Antes" ,
after : "Depois" ,
savings : "Economia" ,
},
toolPage : {
emptyPrompt : "Arraste ou envie uma imagem para comecar" ,
filesCount : "Arquivos ({count})" ,
addMore : "+ Adicionar mais" ,
clearAll : "Limpar tudo" ,
acceptDescription : "Apenas arquivos {exts}" ,
notFound : "Ferramenta nao encontrada" ,
configureAndGenerate : "Configure os ajustes e gere." ,
processingFailed : "Falha ao processar este arquivo" ,
conversionComplete : "Conversao concluida" ,
cannotPreviewDownload :
"Arquivos {type} nao podem ser visualizados no navegador. Use o botao de download para salvar seu arquivo." ,
generatingPreview : "Gerando visualizacao..." ,
cannotPreviewWillProcess :
"Arquivos {ext} nao podem ser visualizados no navegador. A ferramenta processara este arquivo normalmente." ,
previousImage : "Imagem anterior" ,
nextImage : "Proxima imagem" ,
imageCounter : "{current} / {total}" ,
settingsLabel : "Configuracoes" ,
downloadAllZip : "Baixar tudo (ZIP)" ,
hideSettings : "Ocultar configuracoes" ,
imageArea : "Area da imagem" ,
},
homePage : {
generatingPreview : "Gerando visualizacao..." ,
loadingPreview : "Carregando visualizacao..." ,
changeFile : "Alterar arquivo" ,
quickActions : "Acoes rapidas" ,
allTools : "Todas as ferramentas" ,
},
fullscreenGrid : {
searchPlaceholder : "Buscar ferramentas..." ,
hideDetails : "Ocultar detalhes" ,
showDetails : "Mostrar detalhes" ,
switchToSidebar : "Alternar para visualizacao em barra lateral" ,
sidebarButton : "Barra lateral" ,
noToolsFound : "Nenhuma ferramenta encontrada" ,
tryDifferent : "Tente um termo de busca diferente" ,
},
editor : {
menu : {
file : {
label : "Arquivo" ,
new : "Novo" ,
open : "Abrir" ,
save : "Salvar" ,
exportAs : "Exportar como..." ,
quickExportPng : "Exportacao rapida como PNG" ,
close : "Fechar" ,
},
edit : {
label : "Editar" ,
undo : "Desfazer" ,
redo : "Refazer" ,
cut : "Recortar" ,
copy : "Copiar" ,
copyMerged : "Copiar mesclado" ,
paste : "Colar" ,
pasteInPlace : "Colar no lugar" ,
delete : "Excluir" ,
freeTransform : "Transformacao livre" ,
transform : {
label : "Transformar" ,
scale : "Escala" ,
rotate : "Girar" ,
skew : "Inclinar" ,
flipHorizontal : "Espelhar horizontal" ,
flipVertical : "Espelhar vertical" ,
},
},
image : {
label : "Imagem" ,
imageSize : "Tamanho da imagem..." ,
canvasSize : "Tamanho do canvas..." ,
rotation : {
label : "Rotacao da imagem" ,
cw90 : "90 sentido horario" ,
ccw90 : "90 sentido anti-horario" ,
r180 : "180" ,
flipHorizontal : "Espelhar horizontal" ,
flipVertical : "Espelhar vertical" ,
},
trim : "Cortar" ,
adjustments : {
label : "Ajustes" ,
brightnessContrast : "Brilho/Contraste" ,
hueSaturation : "Matiz/Saturacao" ,
colorBalance : "Balanco de cores" ,
levels : "Niveis" ,
curves : "Curvas" ,
},
},
layer : {
label : "Camada" ,
newLayer : "Nova camada" ,
duplicateLayer : "Duplicar camada" ,
deleteLayer : "Excluir camada" ,
arrange : {
label : "Organizar" ,
bringToFront : "Trazer para frente" ,
bringForward : "Trazer para a frente" ,
sendBackward : "Enviar para tras" ,
sendToBack : "Enviar para o fundo" ,
},
mergeDown : "Mesclar para baixo" ,
flattenImage : "Achatar imagem" ,
},
select : {
label : "Selecao" ,
all : "Tudo" ,
deselect : "Desmarcar" ,
inverse : "Inverter" ,
colorRange : "Faixa de cores..." ,
},
filter : {
label : "Filtro" ,
blur : {
label : "Desfoque" ,
gaussian : "Desfoque gaussiano" ,
motion : "Desfoque de movimento" ,
radial : "Desfoque radial" ,
surface : "Desfoque de superficie" ,
},
sharpen : {
label : "Nitidez" ,
sharpen : "Nitidez" ,
unsharpMask : "Mascara de desfoque" ,
},
noise : {
label : "Ruido" ,
addNoise : "Adicionar ruido" ,
reduceNoise : "Reduzir ruido" ,
},
pixelate : {
label : "Pixelizacao" ,
pixelate : "Pixelizar" ,
mosaic : "Mosaico" ,
},
stylize : {
label : "Estilizar" ,
emboss : "Relevo" ,
solarize : "Solarizar" ,
posterize : "Posterizar" ,
},
grayscale : "Escala de cinza" ,
sepia : "Sepia" ,
invert : "Inverter" ,
},
view : {
label : "Visualizar" ,
zoomIn : "Aumentar zoom" ,
zoomOut : "Diminuir zoom" ,
fitOnScreen : "Ajustar a tela" ,
actualPixels : "Pixels reais" ,
rulers : "Reguas" ,
grid : "Grade" ,
guides : "Guias" ,
snap : "Encaixar" ,
panels : "Paineis" ,
},
},
menuBar : {
backTitle : "Voltar ao SnapOtter" ,
},
welcome : {
ariaLabel : "Area de soltar imagem" ,
heading : "Editor de imagens" ,
dropDescription : "Arraste uma imagem aqui para comecar" ,
openImageButton : "Abrir imagem" ,
newDocumentButton : "Novo documento" ,
pasteHint : "Ou cole da area de transferencia (Ctrl+V)" ,
},
mobile : {
heading : "Recomendado para desktop" ,
description :
"O editor de imagens funciona melhor em telas de desktop. Mude para um dispositivo com tela maior para a experiencia completa de edicao." ,
},
errors : {
serverDecodeFailed : "Falha na decodificacao do servidor" ,
},
2026-06-05 16:40:57 +08:00
shapes : {
shape : "Shape" ,
fill : "Fill" ,
stroke : "Stroke" ,
strokeWidth : "Width" ,
cornerRadius : "Radius" ,
sides : "Sides" ,
points : "Points" ,
dashStyle : "Dash" ,
solid : "Solid" ,
dashed : "Dashed" ,
dotted : "Dotted" ,
none : "None" ,
opacity : "Opacity" ,
rectangle : "Rectangle" ,
ellipse : "Ellipse" ,
line : "Line" ,
arrow : "Arrow" ,
polygon : "Polygon" ,
star : "Star" ,
},
2026-05-15 17:02:49 +08:00
},
settings : {
heading : "Configuracoes" ,
nav : {
general : "Geral" ,
systemSettings : "Configuracoes do sistema" ,
security : "Seguranca" ,
people : "Pessoas" ,
teams : "Equipes" ,
roles : "Funcoes" ,
auditLog : "Registro de auditoria" ,
apiKeys : "Chaves API" ,
aiFeatures : "Recursos de AI" ,
tools : "Ferramentas" ,
productAnalytics : "Analitica do produto" ,
about : "Sobre" ,
},
general : {
heading : "Geral" ,
description : "Preferencias do usuario e configuracoes de exibicao." ,
loading : "Carregando..." ,
logOut : "Sair" ,
defaultToolViewLabel : "Visualizacao padrao das ferramentas" ,
defaultToolViewDescription : "Como as ferramentas sao exibidas na pagina inicial" ,
sidebarOption : "Barra lateral" ,
fullscreenGridOption : "Grade em tela cheia" ,
appVersionLabel : "Versao do app" ,
appVersionDescription : "Versao atual do SnapOtter" ,
saveButton : "Salvar configuracoes" ,
saveSuccess : "Configuracoes salvas." ,
saveFailed : "Falha ao salvar as configuracoes." ,
},
system : {
heading : "Configuracoes do sistema" ,
description : "Configuracao do servidor e limites." ,
fileUploadLimitLabel : "Limite de envio de arquivo (MB)" ,
fileUploadLimitDescription : "Tamanho maximo de arquivo por envio" ,
defaultThemeLabel : "Tema padrao" ,
defaultThemeDescription : "Tema aplicado para novas sessoes" ,
lightOption : "Claro" ,
darkOption : "Escuro" ,
systemOption : "Sistema" ,
languageLabel : "Idioma" ,
languageDescription : "Idioma da interface" ,
loginAttemptLimitLabel : "Limite de tentativas de login" ,
loginAttemptLimitDescription :
"Maximo de tentativas de login falhadas por minuto antes do bloqueio" ,
fileManagementHeading : "Gerenciamento de arquivos" ,
maxFileAgeLabel : "Idade maxima dos arquivos (horas)" ,
maxFileAgeDescription :
"Por quanto tempo os arquivos processados sao mantidos antes da limpeza automatica" ,
startupCleanupLabel : "Limpeza na inicializacao" ,
startupCleanupDescription : "Limpa arquivos temporarios antigos quando o servidor inicia" ,
saveButton : "Salvar configuracoes" ,
saveSuccess : "Configuracoes salvas." ,
saveFailed : "Falha ao salvar as configuracoes." ,
limitsAndResources : "Limites e recursos" ,
maxFileSize : "Tamanho maximo de arquivo" ,
maxBatchSize : "Tamanho maximo de lote" ,
concurrentJobs : "Trabalhos simultaneos" ,
workerThreads : "Threads de trabalho" ,
maxPipelineSteps : "Passos maximos do Pipeline" ,
processingTimeout : "Tempo limite de processamento" ,
rateLimitPerMin : "Limite de requisicoes (req/min)" ,
unlimited : "Ilimitado" ,
auto : "Automatico" ,
envOverride : "Definido por variavel de ambiente" ,
maxCanvasPixels : "Pixels maximos do canvas" ,
maxSvgSize : "Tamanho maximo de SVG" ,
maxSplitGrid : "Grade maxima de divisao" ,
maxPdfPages : "Paginas maximas de PDF" ,
sessionDuration : "Duracao da sessao" ,
},
security : {
heading : "Seguranca" ,
description : "Configuracoes de senha e autenticacao." ,
changePasswordHeading : "Alterar senha" ,
currentPasswordPlaceholder : "Senha atual" ,
newPasswordPlaceholder : "Nova senha" ,
confirmPasswordPlaceholder : "Confirmar nova senha" ,
passwordsMismatch : "As senhas nao coincidem" ,
passwordTooShort : "A senha deve ter pelo menos 4 caracteres" ,
changeSuccess : "Senha alterada com sucesso" ,
changeFailed : "Falha ao alterar a senha" ,
currentPasswordIncorrect : "A senha atual esta incorreta" ,
changePasswordButton : "Alterar senha" ,
loginAttemptLimitNote :
"Os limites de tentativas de login podem ser configurados nas Configuracoes do sistema." ,
},
people : {
heading : "Pessoas" ,
description : "Gerencie os membros do espaco de trabalho e suas permissoes" ,
userCount : "{count} usuario" ,
userCountPlural : "{count} usuarios" ,
searchPlaceholder : "Buscar membros..." ,
addMembersButton : "Adicionar membros" ,
newMemberHeading : "Novo membro" ,
usernamePlaceholder : "Nome de usuario" ,
passwordPlaceholder : "Senha" ,
roleUserOption : "Usuario" ,
roleEditorOption : "Editor" ,
roleAdminOption : "Admin" ,
roleUserDescription : "Acesso basico as ferramentas" ,
roleEditorDescription : "Todos os arquivos e pipelines" ,
roleAdminDescription : "Acesso completo" ,
noDescription : "Sem descricao" ,
defaultTeamOption : "Padrao" ,
createButton : "Criar" ,
cancelButton : "Cancelar" ,
createSuccess : "Usuario criado com sucesso" ,
createFailed : "Falha ao criar o usuario" ,
userLimitReached : "Limite de usuarios atingido ({max} maximo)" ,
deleteConfirm : 'Excluir usuario "{username}"? Esta acao nao pode ser desfeita.' ,
deleteSuccess : 'Usuario "{username}" excluido' ,
deleteFailed : "Falha ao excluir o usuario" ,
editHeading : "Editar {username}" ,
updateSuccess : "Usuario atualizado" ,
updateFailed : "Falha ao atualizar o usuario" ,
cannotRemoveOwnAdmin : "Nao e possivel remover sua propria funcao de administrador" ,
resetPasswordHeading : "Redefinir senha de {username}" ,
newPasswordLabel : "Nova senha (min. 8 caracteres)" ,
resetPasswordButton : "Redefinir senha" ,
resetPasswordWarning : "Isso invalidara todas as sessoes e chaves API deste usuario." ,
resetSuccess : "Senha redefinida com sucesso" ,
resetFailed : "Falha ao redefinir a senha" ,
tableHeaderUser : "Usuario" ,
tableHeaderRole : "Funcao" ,
tableHeaderTeam : "Equipe" ,
noSearchResults : "Nenhum membro corresponde a sua busca." ,
noUsersFound : "Nenhum usuario encontrado." ,
authBadgeLocalOidc : "Local + OIDC" ,
authBadgeOidc : "OIDC" ,
editRoleTeamAction : "Editar funcao / equipe" ,
resetPasswordAction : "Redefinir senha" ,
deleteUserAction : "Excluir usuario" ,
saveButton : "Salvar" ,
2026-05-16 23:08:19 +08:00
copyPasswordButton : "Copiar senha" ,
passwordCopied : "Copiado!" ,
copyPasswordWarning : "Copie esta senha agora. Voce nao podera ve-la apos criar o usuario." ,
2026-05-15 17:02:49 +08:00
},
teams : {
heading : "Equipes" ,
description : "Organize os membros em equipes para melhor gerenciamento." ,
createButton : "Criar nova equipe" ,
newTeamHeading : "Nova equipe" ,
teamNamePlaceholder : "Nome da equipe" ,
createSubmitButton : "Criar" ,
cancelButton : "Cancelar" ,
createSuccess : "Equipe criada com sucesso" ,
createFailed : "Falha ao criar a equipe" ,
duplicateTeamError : "Ja existe uma equipe com esse nome" ,
renameSuccess : "Equipe renomeada" ,
renameFailed : "Falha ao renomear a equipe" ,
deleteConfirm : 'Excluir equipe "{name}"? Os membros serao desvinculados.' ,
deleteSuccess : 'Equipe "{name}" excluida' ,
deleteFailed : "Falha ao excluir a equipe" ,
cannotDeleteDefault : "Nao e possivel excluir a equipe padrao ou uma equipe com membros" ,
tableHeaderTeamName : "Nome da equipe" ,
tableHeaderMembers : "Membros" ,
emptyState : "Nenhuma equipe encontrada." ,
renameSaveButton : "Salvar" ,
renameCancelButton : "Cancelar" ,
renameAction : "Renomear" ,
deleteAction : "Excluir" ,
totalMembers : "Total de membros" ,
nameRequired : "O nome da equipe e obrigatorio" ,
nameTooLong : "O nome da equipe deve ter 50 caracteres ou menos" ,
duplicateName : "Ja existe uma equipe com este nome" ,
},
roles : {
heading : "Funcoes" ,
description :
"Gerencie funcoes e suas permissoes. Funcoes predefinidas nao podem ser modificadas." ,
createButton : "Criar funcao personalizada" ,
newRoleHeading : "Nova funcao" ,
roleNamePlaceholder : "Nome da funcao" ,
descriptionPlaceholder : "Descricao (opcional)" ,
permissionsLabel : "Permissoes" ,
createSubmitButton : "Criar" ,
cancelButton : "Cancelar" ,
createSuccess : "Funcao criada com sucesso" ,
createFailed : "Falha ao criar a funcao" ,
duplicateRoleError : "Ja existe uma funcao com esse nome" ,
editHeading : "Editar funcao: {name}" ,
editSaveButton : "Salvar" ,
editCancelButton : "Cancelar" ,
updateSuccess : "Funcao atualizada" ,
updateFailed : "Falha ao atualizar a funcao" ,
deleteConfirm : 'Excluir funcao "{name}"? {count} usuario(s) precisarao ser reatribuidos.' ,
deleteConfirmSimple : 'Excluir funcao "{name}"?' ,
deleteSuccess : 'Funcao "{name}" excluida' ,
deleteFailed : "Falha ao excluir a funcao" ,
emptyState : "Nenhuma funcao encontrada." ,
builtInBadge : "Predefinida" ,
userCountBadge : "{count} usuario(s)" ,
editRoleTitle : "Editar funcao" ,
deleteRoleTitle : "Excluir funcao" ,
permGroup : {
tools : "Ferramentas" ,
files : "Arquivos" ,
apiKeys : "Chaves API" ,
pipelines : "Pipelines" ,
settings : "Configuracoes" ,
users : "Usuarios" ,
teams : "Equipes" ,
system : "Sistema" ,
},
},
auditLog : {
heading : "Registro de auditoria" ,
allActionsFilter : "Todas as acoes" ,
emptyState : "Nenhuma entrada no registro de auditoria." ,
tableHeaderTime : "Hora" ,
tableHeaderUser : "Usuario" ,
tableHeaderAction : "Acao" ,
tableHeaderTarget : "Alvo" ,
paginationInfo : "Pagina {page} de {totalPages} ({total} entradas)" ,
previousButton : "Anterior" ,
nextButton : "Proximo" ,
justNow : "agora mesmo" ,
minutesAgo : "ha {mins}min" ,
hoursAgo : "ha {hrs}h" ,
daysAgo : "ha {days}d" ,
},
apiKeys : {
heading : "Chaves API" ,
description : "Gerencie as chaves API para acesso programatico ao SnapOtter." ,
keyNamePlaceholder : "Nome da chave (opcional)" ,
generateButton : "Gerar chave API" ,
removeScopingLabel : "Remover restricao de permissoes" ,
restrictPermissionsLabel : "Restringir permissoes (opcional)" ,
expiresLabel : "Expira:" ,
clearButton : "Limpar" ,
copyTitle : "Copiar" ,
keyWarning : "Guarde esta chave em local seguro. Ela nao sera exibida novamente." ,
existingKeysHeading : "Chaves existentes" ,
createdPrefix : "Criada em {date}" ,
scopedPrefix : "Escopo:" ,
expiresPrefix : "Expira em {date}" ,
deleteKeyTitle : "Excluir chave" ,
deleteConfirm : "Excluir esta chave API? As integracoes que a utilizam deixarao de funcionar." ,
emptyState : "Nenhuma chave API ainda. Gere uma para comecar." ,
},
tools : {
heading : "Ferramentas" ,
description :
"Ative ou desative ferramentas individuais. Ferramentas desativadas ficam ocultas para todos os usuarios." ,
restartBanner : "E necessario reiniciar para que as alteracoes tenham efeito." ,
searchPlaceholder : "Buscar ferramentas..." ,
noSearchResults : "Nenhuma ferramenta corresponde a sua busca." ,
loadFailedError :
"Falha ao carregar as configuracoes das ferramentas. O salvamento esta desativado para evitar perda de dados." ,
saveButton : "Salvar configuracoes das ferramentas" ,
disabledCount : "{count} ferramenta(s) desativada(s)" ,
},
experimental : {
label : "Ativar ferramentas experimentais" ,
description : "Mostra ferramentas que ainda estao em desenvolvimento. Podem ser instaveis." ,
},
fileManagement : {
title : "Gerenciamento de arquivos" ,
maxAge : "Idade maxima dos arquivos (horas)" ,
maxAgeDescription :
"Por quanto tempo os arquivos processados sao mantidos antes da limpeza automatica" ,
startupCleanup : "Limpeza na inicializacao" ,
startupCleanupDescription : "Limpa arquivos temporarios antigos quando o servidor inicia" ,
},
analytics : {
heading : "Analitica do produto" ,
description : "Compartilhe dados de uso anonimos para ajudar a melhorar o SnapOtter." ,
privacyNote : "Suas imagens nunca saem do seu computador." ,
disabledByAdmin : "A analitica do produto foi desativada pelo administrador do servidor." ,
enabledLabel : "Analitica ativada" ,
disabledLabel : "Analitica desativada" ,
learnMore : "Saiba mais" ,
},
aiFeatures : {
title : "AI Features" ,
description : "Manage AI model bundles for advanced image processing." ,
installAll : "Install All" ,
diskUsage : "Disk usage:" ,
installed : "Installed" ,
notInstalled : "Not installed" ,
queued : "Queued" ,
install : "Install" ,
repair : "Repair" ,
uninstall : "Uninstall" ,
installing : "Installing..." ,
},
about : {
heading : "Sobre" ,
appName : "SnapOtter" ,
appDescription :
2026-06-06 21:23:58 +08:00
"Uma suite de processamento de imagens auto-hospedada e focada em privacidade, com 53 ferramentas. Redimensione, comprima, converta, adicione marcas d'agua e automatize seus fluxos de trabalho de imagens sem enviar dados para a nuvem." ,
2026-05-15 17:02:49 +08:00
versionLabel : "Versao:" ,
linksHeading : "Links" ,
githubLink : "Repositorio no GitHub" ,
docsLink : "Documentacao" ,
apiRefLink : "Referencia da API (Swagger)" ,
2026-06-05 22:31:28 +08:00
licenseLabel : "License:" ,
2026-06-05 23:14:57 +08:00
licenseDescription :
"SnapOtter is open-source software licensed under the GNU Affero General Public License v3 (AGPLv3)." ,
2026-05-15 17:02:49 +08:00
},
},
auth : {
login : "Entrar" ,
logout : "Sair" ,
username : "Nome de usuario" ,
password : "Senha" ,
loginButton : "Entrar" ,
loggingIn : "Entrando..." ,
invalidCredentials : "Nome de usuario ou senha invalidos" ,
connectionError : "Erro de conexao" ,
signInWith : "Entrar com {provider}" ,
signInWithSso : "Entrar com SSO" ,
or : "ou" ,
methodLocal : "Local" ,
methodOidc : "OIDC" ,
methodBoth : "Local + OIDC" ,
oidcAuthFailed : "Autenticacao falhou. Tente novamente." ,
oidcProviderUnreachable :
"Nao foi possivel contatar o provedor de identidade. Tente novamente mais tarde." ,
oidcSessionExpired : "Sessao de login expirada. Tente novamente." ,
oidcUserNotAuthorized :
"Sua conta nao esta autorizada a acessar este aplicativo. Entre em contato com o administrador." ,
oidcUserLimitReached : "Limite de usuarios atingido. Entre em contato com o administrador." ,
oidcGenericError : "Erro de autenticacao. Tente novamente." ,
passwordManagedByProvider :
"Alteracoes de senha sao gerenciadas pelo seu provedor de identidade." ,
enterUsername : "Digite seu nome de usuario" ,
enterPassword : "Digite sua senha" ,
heroTitle : "Suas imagens. Ficam com voce." ,
heroSubtitle : "Todas as ferramentas de imagem que voce precisa." ,
rotatingPhrases : [
"Sem cadastro. Sem contas." ,
"Sem envio para a nuvem. Nunca." ,
"Processamento 100% local." ,
"Gratuito. Para sempre." ,
"Sem limites. Sem tetos ocultos." ,
"Funciona totalmente offline." ,
"Processamento em lote ilimitado." ,
2026-06-06 21:23:58 +08:00
"53 ferramentas de imagem." ,
2026-05-15 17:02:49 +08:00
"15 modelos AI. Seu hardware." ,
"Ultra rapido. Construido sobre Sharp." ,
"Pronto para redes isoladas." ,
"Um unico container Docker." ,
"Codigo aberto. Sempre." ,
"Cada pixel fica no seu hardware." ,
"Seu servidor. Suas regras." ,
"Instala com um unico docker pull." ,
"A alternativa auto-hospedada." ,
"Redimensione, comprima, converta. Localmente." ,
"Editor de imagens gratuito. Sem marcas d'agua." ,
"Processamento em lote de imagens. Ilimitado." ,
"Remova fundos offline." ,
"Alternativa auto-hospedada ao Canva." ,
"Sem chaves API necessarias." ,
"Conformidade LGPD por design." ,
"Funciona sem internet." ,
],
},
changePassword : {
title : "Altere sua senha" ,
description :
"Voce precisa definir uma nova senha antes de continuar. Sua senha deve ter pelo menos 8 caracteres com maiusculas, minusculas e um numero." ,
usernameLabel : "Nome de usuario" ,
currentPasswordLabel : "Senha atual" ,
currentPasswordPlaceholder : "Digite a senha atual" ,
newPasswordLabel : "Nova senha" ,
generateButton : "Gerar senha forte" ,
newPasswordPlaceholder : "Pelo menos 8 caracteres" ,
confirmPasswordLabel : "Confirmar nova senha" ,
confirmPasswordPlaceholder : "Repita a nova senha" ,
passwordsMismatch : "As senhas nao coincidem" ,
failedError : "Falha ao alterar a senha" ,
connectionError : "Erro de conexao" ,
changingButton : "Alterando..." ,
changeButton : "Alterar senha" ,
sidebarTitle : "Quase la" ,
sidebarDescription : "Defina uma senha forte para proteger sua conta e voce estara pronto." ,
},
automate : {
title : "Automatizar" ,
invalidPipelineFile : "Nao e um arquivo Pipeline do SnapOtter valido" ,
newerVersion : "Este Pipeline foi criado com uma versao mais recente do SnapOtter" ,
missingName : "O arquivo Pipeline nao tem nome" ,
noSteps : "O arquivo Pipeline nao tem passos" ,
importFailed : "Falha na importacao" ,
couldNotRead : "Nao foi possivel ler o arquivo Pipeline" ,
fileCount : "{count} arquivo" ,
fileCountPlural : "{count} arquivos" ,
importFromLibrary : "Importar da biblioteca" ,
addButton : "+ Adicionar" ,
libraryButton : "Biblioteca" ,
clearButton : "Limpar" ,
processingFailed : "Falha ao processar este arquivo" ,
processingMultiple : "Processando {count} arquivos..." ,
processingPipeline : "Processando Pipeline..." ,
processButton : "Processar" ,
processButtonMultiple : "Processar ({count})" ,
processAllButton : "Processar todos ({count})" ,
addTool : "Adicionar ferramenta" ,
toolPalette : "Paleta de ferramentas" ,
clickToAdd : "Clique para adicionar ao Pipeline" ,
savedLabel : "Salvo" ,
importButton : "Importar" ,
noSavedPipelines : "Nenhum Pipeline salvo" ,
stepCount : "({count} passo)" ,
stepCountPlural : "({count} passos)" ,
exportPipeline : "Exportar Pipeline" ,
deletePipeline : "Excluir Pipeline" ,
moreCount : "+{count} mais" ,
pipelineBuilder : "Construtor de Pipeline" ,
addToolsPrompt : "Adicione ferramentas da paleta para comecar" ,
stepsConfigured : "{count} passo configurado" ,
stepsConfiguredPlural : "{count} passos configurados" ,
noFilesLoaded : "Nenhum arquivo carregado" ,
downloadZip : "Baixar ZIP" ,
saveButton : "Salvar" ,
pipelineNamePlaceholder : "Nome do Pipeline" ,
descriptionPlaceholder : "Descricao" ,
savingIndicator : "..." ,
cancelButton : "Cancelar" ,
preview : "Visualizacao" ,
previousImage : "Imagem anterior" ,
nextImage : "Proxima imagem" ,
imageCounter : "{current} / {total}" ,
imageArea : "Area da imagem" ,
templateSocialMedia : "Pronto para redes sociais" ,
templatePrivacyClean : "Limpeza de privacidade" ,
templateWebOptimization : "Otimizacao para web" ,
templateProfilePicture : "Foto de perfil" ,
templateWatermarkBatch : "Lote de marcas d'agua" ,
createNew : "Criar nova automacao" ,
savedAutomations : "Automacoes salvas" ,
templates : "Modelos" ,
addStep : "Adicionar passo" ,
removeStep : "Remover" ,
moveUp : "Mover para cima" ,
moveDown : "Mover para baixo" ,
savePipeline : "Salvar Pipeline" ,
runPipeline : "Processar" ,
pipelineName : "Nome do Pipeline" ,
pipelineDescription : "Descricao (opcional)" ,
noStepsPrompt : "Adicione passos para construir sua automacao" ,
2026-06-06 20:47:08 +08:00
noStepsHeading : "No steps yet" ,
2026-06-05 22:31:28 +08:00
searchToolsPlaceholder : "Search tools..." ,
2026-06-06 20:47:08 +08:00
step : "Passo" ,
2026-05-15 17:02:49 +08:00
},
nav : {
tools : "Ferramentas" ,
reader : "Leitor" ,
automate : "Automatizar" ,
editor : "Editor" ,
files : "Arquivos" ,
help : "Ajuda" ,
settings : "Configuracoes" ,
grid : "Grade" ,
},
files : {
2026-06-05 22:31:28 +08:00
myFiles : "My Files" ,
2026-06-05 23:14:57 +08:00
recentTab : "Recent" ,
uploadTab : "Upload Files" ,
fileDetailsAriaLabel : "File Details" ,
fileDetailsHeading : "File Details" ,
2026-06-05 22:31:28 +08:00
searchPlaceholder : "Search files..." ,
selectedCount : "{count} selected" ,
fileCount : "{count} files" ,
fileCountSingular : "{count} file" ,
noFilesFound : "No files found" ,
selectFilePrompt : "Select a file to view details" ,
openFile : "Open File" ,
openInPipeline : "Open in Pipeline" ,
name : "Name" ,
format : "Format" ,
size : "Size" ,
dimensions : "Dimensions" ,
version : "Version" ,
toolsUsed : "Tools Used" ,
none : "None" ,
delete : "Delete" ,
pipeline : "Pipeline" ,
download : "Download" ,
2026-05-15 17:02:49 +08:00
},
dropzone : {
unsupportedFileType : "Este tipo de arquivo nao e suportado por esta ferramenta" ,
urlFetchFailed : "Nao foi possivel obter a imagem da URL" ,
ariaLabel : "Area de soltar arquivos" ,
dropPrompt : "Arraste suas imagens aqui" ,
browseOrPaste : "clique em qualquer lugar para navegar, ou cole da area de transferencia" ,
uploadButton : "Enviar" ,
defaultFormats : "PNG, JPG, WebP, HEIC, RAW, PSD e mais de 65 formatos" ,
orSeparator : "ou" ,
urlPlaceholder : "Cole a URL da imagem..." ,
urlLoadingIndicator : "..." ,
addUrlButton : "Adicionar" ,
importMultipleUrls : "Importar multiplas URLs..." ,
filesSelected : "{count} arquivos selecionados" ,
},
reviewPanel : {
processedResultAlt : "Resultado processado" ,
sizeLabel : "Tamanho: {size}" ,
typeLabel : "Tipo: {type}" ,
processedLabel : "Processado: {time}" ,
undoButton : "Desfazer" ,
downloadButton : "Baixar" ,
openInEditor : "Abrir no editor" ,
reviewHeading : "Revisao" ,
continueEditing : "Continuar editando" ,
},
features : {
notEnabledTitle : "Recurso nao ativado" ,
notEnabledDescription :
"Este recurso nao esta ativado. Peca ao administrador para ativa-lo nas Configuracoes." ,
requiresDownload : "Este recurso requer um download adicional (~{size})" ,
retryButton : "Tentar novamente" ,
queued : "Na fila para instalacao..." ,
enableButton : "Ativar {name}" ,
lessThanMinute : "Menos de um minuto restante" ,
oneMinuteLeft : "~1 minuto restante" ,
minutesLeft : "~{mins} minutos restantes" ,
progressMessages : [
"Quase la... provavelmente..." ,
"Coisas boas levam tempo..." ,
"Ainda mais rapido que ver a tinta secar..." ,
"Sua paciencia e realmente inspiradora..." ,
"Trabalhando mais do que parece..." ,
"Essa e a parte empolgante, confia..." ,
"Fazendo coisas importantes nos bastidores..." ,
"Se voce esta lendo isso, esta funcionando..." ,
"Preparando algo incrivel..." ,
"Vale cada segundo, prometo..." ,
"O suspense faz parte da experiencia..." ,
"Ensinando truques novos ao seu computador..." ,
"Configurando seus superpoderes..." ,
"Suas imagens vao te agradecer depois..." ,
"Carregando... mas com estilo..." ,
"Hora perfeita para um cafezinho..." ,
"Roma tambem nao foi construida em um dia..." ,
"Shhh... genio trabalhando..." ,
"Suas fotos vao ficar com inveja do que vem ai..." ,
"Montando o time dos sonhos..." ,
"Desempacotando coisas incriveis..." ,
"Quase terminei de pensar em comecar... brincadeira..." ,
"Plot twist: isso esta realmente fazendo algo..." ,
"Aquecendo os motores criativos..." ,
"Imaginacao carregando..." ,
"Nao e um protetor de tela, prometemos..." ,
"A grande arte leva tempo para instalar..." ,
"Seu eu do futuro vai te agradecer..." ,
"Buscando arquivos super inteligentes..." ,
"Aguenta firme, o melhor ainda esta por vir..." ,
],
},
help : {
heading : "Ajuda" ,
gettingStarted : {
heading : "Primeiros passos" ,
description :
"Selecione uma ferramenta na barra lateral ou busque uma. Envie uma imagem arrastando-a para a pagina ou clicando na area de envio. Ajuste as configuracoes e baixe seu resultado." ,
},
keyboardShortcuts : {
heading : "Atalhos de teclado" ,
focusSearchBar : "Focar na barra de busca" ,
goToTools : "Ir para ferramentas" ,
toggleTheme : "Alternar tema" ,
goToResize : "Ir para Redimensionar" ,
goToCrop : "Ir para Cortar" ,
goToCompress : "Ir para Comprimir" ,
goToConvert : "Ir para Converter" ,
goToRemoveBackground : "Ir para Remover fundo" ,
goToWatermarkText : "Ir para Marca d'agua de texto" ,
goToStripMetadata : "Ir para Remover metadados" ,
goToImageInfo : "Ir para Info da imagem" ,
},
resources : {
heading : "Recursos" ,
githubLink : "Repositorio no GitHub" ,
reportIssueLink : "Relatar um problema" ,
docsLink : "Documentacao" ,
apiRefLink : "Referencia da API (Swagger)" ,
},
versionLabel : "SnapOtter v{version}" ,
},
errors : {
generic : "Ocorreu um erro" ,
offline : "Voce esta offline" ,
reconnecting : "Reconectando ao servidor..." ,
connected : "Conectado" ,
processingFailed : "Falha ao processar este arquivo" ,
timeout : "A requisicao expirou. O servidor pode estar sobrecarregado. Tente novamente." ,
networkError : "Erro de rede. Verifique sua conexao." ,
invalidCredentials : "Nome de usuario ou senha invalidos" ,
connectionError : "Erro de conexao" ,
},
analytics : {
consentTitle : "Ajude a melhorar o SnapOtter" ,
consentDescription :
"Estatisticas de uso anonimas nos ajudam a corrigir bugs e criar as ferramentas que voce realmente precisa. Suas imagens e arquivos ficam no seu computador." ,
consentChangeable : "Voce pode desativar isso a qualquer momento nas Configuracoes." ,
acceptButton : "Claro, parece bom" ,
declineButton : "Agora nao" ,
settingsTitle : "Analitica do produto" ,
settingsDescription : "Compartilhe dados de uso anonimos para ajudar a melhorar o SnapOtter." ,
settingsPrivacy : "Suas imagens nunca saem do seu computador." ,
settingsDisabledByAdmin :
"A analitica do produto foi desativada pelo administrador do servidor." ,
learnMore : "Saiba mais" ,
},
sidebar : {
tools : "Ferramentas" ,
grid : "Grade" ,
automate : "Automatizar" ,
editor : "Editor" ,
files : "Arquivos" ,
help : "Ajuda" ,
settings : "Configuracoes" ,
},
toolCard : {
addToFavourites : "Adicionar aos favoritos" ,
},
appLayout : {
mobileNavTools : "Ferramentas" ,
mobileNavAutomate : "Automatizar" ,
mobileNavEditor : "Editor" ,
mobileNavFiles : "Arquivos" ,
mobileNavSettings : "Configuracoes" ,
},
} as const ;