mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
- Fix selective metadata stripping (P1): use Sharp's keepExif()/keepIccProfile()
instead of broken withMetadata({}) that preserved everything
- Fix meme font mapping (P1): add ArchivoBlack and ComicNeue fonts, map
arial-black and comic-sans to correct TTF files instead of Anton
- Fix meme contentType (P2): detect actual output format from Sharp metadata
instead of hardcoding image/png
- Fix info/text-overlay/color-palette i18n (P2): wire up existing translation
keys that were imported but never used
- Fix info and color-palette displayMode (P2): change from before-after to
no-comparison since neither tool produces a processed image
- Add missing i18n keys across all 21 locales
- Update displayMode test assertions
2075 lines
75 KiB
TypeScript
2075 lines
75 KiB
TypeScript
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",
|
|
pageNotFound: "Page not found",
|
|
pageNotFoundDescription: "The page you are looking for does not exist or has been moved.",
|
|
},
|
|
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",
|
|
},
|
|
"html-to-image": {
|
|
name: "HTML to Image",
|
|
description: "Capture webpages as high-quality images",
|
|
},
|
|
"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",
|
|
outputFormat: "Output Format",
|
|
edgeSmoothing: "Edge Smoothing",
|
|
edgeSmoothingOff: "Off",
|
|
edgeSmoothingLight: "Light",
|
|
edgeSmoothingMedium: "Medium",
|
|
edgeSmoothingStrong: "Strong",
|
|
colorDecontamination: "Color Decontamination",
|
|
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",
|
|
download: "Download",
|
|
defaultText: "Your Text Here",
|
|
},
|
|
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",
|
|
readInfo: "Read Info",
|
|
reading: "Reading...",
|
|
channelStats: "Channel Stats",
|
|
yes: "Yes",
|
|
no: "No",
|
|
na: "N/A",
|
|
failedToRead: "Failed to read info",
|
|
},
|
|
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",
|
|
},
|
|
"html-to-image": {
|
|
modeUrl: "URL",
|
|
modeHtml: "HTML File",
|
|
htmlFile: "HTML File",
|
|
url: "URL",
|
|
urlPlaceholder: "https://snapotter.com",
|
|
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",
|
|
},
|
|
},
|
|
"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",
|
|
},
|
|
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",
|
|
},
|
|
},
|
|
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",
|
|
copyPasswordButton: "Copiar senha",
|
|
passwordCopied: "Copiado!",
|
|
copyPasswordWarning: "Copie esta senha agora. Voce nao podera ve-la apos criar o usuario.",
|
|
},
|
|
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:
|
|
"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.",
|
|
versionLabel: "Versao:",
|
|
linksHeading: "Links",
|
|
githubLink: "Repositorio no GitHub",
|
|
docsLink: "Documentacao",
|
|
apiRefLink: "Referencia da API (Swagger)",
|
|
licenseLabel: "License:",
|
|
licenseDescription:
|
|
"SnapOtter is open-source software licensed under the GNU Affero General Public License v3 (AGPLv3).",
|
|
},
|
|
},
|
|
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.",
|
|
"53 ferramentas de imagem.",
|
|
"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",
|
|
noStepsHeading: "No steps yet",
|
|
searchToolsPlaceholder: "Search tools...",
|
|
step: "Passo",
|
|
},
|
|
nav: {
|
|
tools: "Ferramentas",
|
|
reader: "Leitor",
|
|
automate: "Automatizar",
|
|
editor: "Editor",
|
|
files: "Arquivos",
|
|
help: "Ajuda",
|
|
settings: "Configuracoes",
|
|
grid: "Grade",
|
|
},
|
|
files: {
|
|
myFiles: "My Files",
|
|
recentTab: "Recent",
|
|
uploadTab: "Upload Files",
|
|
fileDetailsAriaLabel: "File Details",
|
|
fileDetailsHeading: "File Details",
|
|
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",
|
|
},
|
|
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;
|