Files
picpeak/frontend/src/i18n/locales/pt.json
T
LucaandClaude Opus 4.6 032a43ad01 i18n(customers): add nl / pt / ru / fr translations for customer portal
Previously these locales fell through to en for every customer.* /
customers.* / settings.customerSurface / settings.features.customerPortal
key. Machine-translated and flagged in the PR description as needing
native review.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-05-11 02:13:08 +02:00

2880 lines
134 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"userManagement": {
"title": "Gerenciamento de Usuários",
"subtitle": "Gerenciar usuários administradores e convites",
"loading": "Carregando usuários...",
"loadError": "Falha ao carregar usuários. Tente novamente.",
"inviteUser": "Convidar Usuário",
"createInvitation": "Criar Convite",
"email": "Endereço de E-mail",
"emailPlaceholder": "[email protected]",
"role": "Função",
"selectRole": "Selecione uma função",
"sendInvitation": "Enviar Convite",
"editUser": "Editar Usuário",
"editingUser": "Editando usuário",
"saveChanges": "Salvar Alterações",
"deactivateUser": "Desativar Usuário",
"cancelInvitation": "Cancelar Convite",
"invitationSent": "Convite enviado com sucesso",
"invitationError": "Falha ao enviar convite",
"invitationCancelled": "Convite cancelado",
"cancelInvitationError": "Falha ao cancelar convite",
"userUpdated": "Usuário atualizado com sucesso",
"updateUserError": "Falha ao atualizar usuário",
"userDeactivated": "Usuário desativado com sucesso",
"deactivateUserError": "Falha ao desativar usuário",
"noRole": "Sem Função",
"neverLoggedIn": "Nunca acessou",
"expired": "Expirado",
"deactivate": "Desativar",
"cancel": "Cancelar",
"tabs": {
"users": "Usuários",
"invitations": "Convites"
},
"stats": {
"totalUsers": "Total de Usuários",
"activeUsers": "Usuários Ativos",
"pendingInvitations": "Convites Pendentes",
"inactiveUsers": "Usuários Inativos"
},
"status": {
"active": "Ativo",
"inactive": "Inativo"
},
"table": {
"user": "Usuário",
"email": "E-mail",
"role": "Função",
"status": "Status",
"lastLogin": "Último Acesso",
"actions": "Ações",
"invitedBy": "Convidado por",
"expires": "Expira em"
},
"validation": {
"emailRequired": "O e-mail é obrigatório",
"emailInvalid": "Formato de e-mail inválido",
"roleRequired": "A função é obrigatória"
},
"searchUsersPlaceholder": "Buscar usuários...",
"searchInvitationsPlaceholder": "Buscar convites...",
"noUsers": "Nenhum usuário encontrado",
"noUsersFound": "Nenhum usuário corresponde à sua busca",
"noInvitations": "Nenhum convite pendente",
"noInvitationsFound": "Nenhum convite corresponde à sua busca",
"confirmDeactivate": {
"title": "Desativar Usuário",
"message": "Tem certeza que deseja desativar {{name}}? Eles não poderão mais fazer login."
},
"confirmCancelInvitation": {
"title": "Cancelar Convite",
"message": "Tem certeza que deseja cancelar o convite para {{email}}?"
}
},
"common": {
"loading": "Carregando...",
"error": "Erro",
"save": "Salvar",
"cancel": "Cancelar",
"delete": "Excluir",
"edit": "Editar",
"add": "Adicionar",
"sortBy": "Ordenar por",
"yes": "Sim",
"no": "Não",
"back": "Voltar",
"next": "Próximo",
"previous": "Anterior",
"close": "Fechar",
"logout": "Sair",
"change": "Alterar",
"remove": "Remover",
"download": "Baixar",
"downloadAll": "Baixar Todos",
"photo": "foto",
"photos": "fotos",
"video": "vídeo",
"media": "mídia",
"upload": "Enviar",
"customize": "Customizar",
"hide": "Ocultar",
"unknown": "Desconhecido",
"notSet": "Não definido",
"of": "de",
"selected": "Selecionado",
"chunk": "Fragmento",
"optional": "opcional",
"tryAgain": "Tentar novamente",
"active": "Ativo",
"inactive": "Inativo",
"create": "Criar",
"unknownDate": "Data desconhecida",
"pageOf": "Página {{current}} de {{total}}",
"collapse": "Recolher",
"expand": "Expandir",
"submitting": "A enviar…",
"copy": "Copiar",
"copied": "Copiado!",
"applying": "A aplicar…",
"done": "Concluído",
"retry": "Tentar novamente",
"characters": "caracteres",
"saveChanges": "Salvar alterações",
"resetChanges": "Repor alterações",
"dismiss": "Dispensar",
"discard": "Descartar"
},
"upload": {
"photoCategory": "Categoria da Foto",
"noCategory": "Sem categoria",
"eventSpecific": "(Específico do evento)",
"clickToUpload": "Clique para enviar ou arraste e solte",
"fileRequirements": "JPEG, PNG ou WebP (máx. 50MB por arquivo, {{limit}} arquivos por envio)",
"selectedFiles": "Arquivos selecionados",
"uploading": "Enviando...",
"uploadComplete": "Envio concluído!",
"someFilesFailed": "Falha ao enviar alguns arquivos",
"replaceByName": "Substituir fotos existentes com o mesmo nome",
"uploadPhotos": "Enviar Fotos",
"uploadMedia": "Enviar Fotos e Vídeos",
"maxFilesReached": "Máximo de {{limit}} arquivos permitido",
"someFilesSkipped": "Apenas {{allowed}} arquivos adicionais podem ser adicionados (limite {{limit}})",
"tooManyFiles": "O limite máximo é de {{limit}} arquivos por vez",
"limitInfo": "{{selected}} de {{limit}} arquivos selecionados ({{remaining}} restantes)",
"limitReached": "Limite de envio atingido ({{limit}} arquivos por lote)",
"replacedFiles_many": "{{count}} fotos substituídas",
"replacedFiles_one": "{{count}} foto substituída",
"replacedFiles_other": "{{count}} fotos substituídas",
"processingFailed_many": "{{count}} fotos falharam ao processar",
"processingFailed_one": "{{count}} foto falhou ao processar",
"processingFailed_other": "{{count}} fotos falharam ao processar",
"processing": "A processar fotos…",
"processingProgress": "{{complete}} de {{total}} concluídos",
"processingHint": "Os ficheiros foram enviados. O PicPeak está a gerar miniaturas e a ler metadados. Pode sair desta página — o trabalho continua em segundo plano.",
"transferring": "A transferir",
"uploadingChunks_many": "{{count}} fragmentos a enviar",
"uploadingChunks_one": "{{count}} fragmento a enviar",
"uploadingChunks_other": "{{count}} fragmentos a enviar",
"retryFailed": "Tentar novamente os falhados"
},
"navigation": {
"dashboard": "Painel",
"events": "Eventos",
"settings": "Configurações",
"archives": "Arquivos",
"emailSettings": "Configurações de e-mail",
"branding": "Identidade visual",
"eventTypes": "Tipos de evento",
"backup": "Backup e Restauração",
"cmsPages": "Páginas CMS",
"users": "Utilizadores",
"calendar": "Calendário",
"customers": "Clientes"
},
"archives": {
"title": "Arquivos",
"subtitle": "Gerenciar galerias de fotos arquivadas",
"loadingArchives": "Carregando arquivos...",
"totalArchives": "Total de Arquivos",
"storageUsed": "Espaço Utilizado",
"totalPhotos": "Total de Fotos",
"avgArchiveSize": "Tamanho Médio do Arquivo",
"searchPlaceholder": "Buscar arquivos...",
"allTypes": "Todos os Tipos",
"wedding": "Casamento",
"birthday": "Aniversário",
"corporate": "Corporativo",
"other": "Outro",
"sortByDate": "Ordenar por Data",
"sortByName": "Ordenar por Nome",
"sortBySize": "Ordenar por Tamanho",
"tableHeaders": {
"event": "Evento",
"type": "Tipo",
"archivedDate": "Data de Arquivamento",
"size": "Tamanho",
"photos": "Fotos",
"actions": "Ações"
},
"noArchivesFound": "Nenhum arquivo encontrado",
"eventDateNA": "Data do evento: N/A",
"processing": "Processando...",
"download": "Baixar",
"restore": "Restaurar",
"delete": "Excluir",
"showing": "Mostrando de {{from}} a {{to}} de {{total}} arquivos",
"page": "Página {{current}} de {{total}}",
"storageManagement": "Gerenciamento de Armazenamento",
"storageInfo": "Arquivos são armazenados permanentemente, a menos que sejam excluídos manualmente. Considere implementar uma política de retenção para gerenciar custos.",
"confirmRestore": "Tem certeza que deseja restaurar este arquivo? O evento ficará ativo novamente.",
"confirmDelete": "Tem certeza que deseja excluir permanentemente este arquivo? Esta ação não pode ser desfeita.",
"restoreSuccess": "Arquivo restaurado com sucesso",
"deleteSuccess": "Arquivo excluído permanentemente"
},
"auth": {
"password": "Senha",
"enterPassword": "Digite a Senha da Galeria",
"passwordPlaceholder": "Digite a senha da galeria",
"invalidPassword": "Senha inválida",
"wrongPassword": "Senha incorreta. Verifique e tente novamente.",
"tooManyAttempts": "Muitas tentativas falhas. Tente novamente mais tarde.",
"pleaseEnterPassword": "Por favor, digite uma senha",
"passwordHint": "A senha foi fornecida pelo organizador do evento. Entre em contato se não a tiver."
},
"gallery": {
"expires": "Expira",
"expired": "Expirada",
"contactOrganizer": "Entre em contato com o organizador do evento se precisar de acesso a estas fotos",
"searchPhotos": "Buscar fotos por nome de arquivo...",
"sortByDate": "Ordenar por Data",
"sortByName": "Ordenar por Nome",
"sortBySize": "Ordenar por Tamanho",
"allPhotos": "Todas as Fotos",
"feedbackFilter": "Filtro de Feedback",
"all": "Todos",
"liked": "Curtidas",
"favorited": "Favoritadas",
"favorites": "Favoritas",
"needHelp": "Precisa de ajuda? Contate-nos em",
"noPhotosFound": "Nenhuma foto encontrada",
"failedToLoad": "Falha ao carregar fotos",
"tryAgain": "Tentar Novamente",
"loading": "Carregando galeria...",
"expiredOn": "Esta galeria expirou em {{date}}.",
"downloadBefore": "Baixe suas fotos antes que fiquem indisponíveis.",
"viewGallery": "Ver Galeria",
"downloadAll": "Baixar Todas",
"downloadError": "Algumas fotos não puderam ser baixadas",
"selectPhotos": "Selecionar Fotos",
"cancelSelection": "Cancelar Seleção",
"selectAll": "Selecionar Todas",
"deselectAll": "Desmarcar Todas",
"deleteSelected": "Excluir Selecionadas",
"searchByFilename": "Buscar por nome do arquivo...",
"uncategorized": "Sem categoria",
"sortAscending": "Ordem crescente",
"sortDescending": "Ordem decrescente",
"remaining": "restantes",
"selectPhotosHint": "Dica: Use Ctrl+Clique (Cmd+Clique no Mac) para selecionar várias fotos rapidamente",
"filters": "Filtros",
"toggleMenu": "Alternar menu",
"allCategories": "Todas as Categorias",
"categories": "Categorias",
"mediaType": "Mídia",
"allMedia": "Toda a mídia",
"photosOnly": "Apenas Fotos",
"videosOnly": "Apenas Vídeos",
"download": "Baixar",
"noMedia": "Nenhuma mídia enviada ainda",
"searchPlaceholder": "Buscar fotos...",
"sortBy": "Ordenar Por",
"sortByCaptureDate": "Ordenar por Data de Captura",
"sortByRating": "Ordenar por Avaliação",
"photoGallery": "Galeria de Fotos",
"photos": "Fotos",
"allRightsReserved": "Todos os direitos reservados",
"searchMemories": "Buscar lembranças...",
"thankYou": "Obrigado",
"thankYouMessage": "Por fazer parte da nossa história e tornar nosso dia especial inesquecível.",
"feedback": {
"title": "Feedback",
"shareThoughts": "Compartilhe sua opinião sobre \"{{name}}\"",
"rateThisMoment": "Avalie este momento",
"comments": "Comentários",
"noComments": "Ainda sem comentários. Seja o primeiro!",
"yourName": "Seu nome",
"yourEmail": "Seu e-mail",
"writeLovelyNote": "Escreva uma mensagem carinhosa...",
"postComment": "Postar Comentário",
"anonymous": "Anônimo"
},
"rated": "Avaliado",
"commented": "Comentado",
"expiresIn_many": "A galeria expira em {{count}} dias",
"expiresIn_one": "A galeria expira em {{count}} dia",
"expiresIn_other": "A galeria expira em {{count}} dias",
"downloading_many": "A descarregar {{count}} fotos…",
"downloading_one": "A descarregar 1 foto…",
"downloading_other": "A descarregar {{count}} fotos…",
"photosSelected_many": "{{count}} fotos selecionadas",
"photosSelected_one": "{{count}} foto selecionada",
"photosSelected_other": "{{count}} fotos selecionadas",
"downloadSelected_many": "Descarregar {{count}} fotos",
"downloadSelected_one": "Descarregar {{count}} foto",
"downloadSelected_other": "Descarregar {{count}} fotos",
"guestRecovery": {
"invalidEmail": "Introduza um endereço de e-mail válido",
"codeSent": "Verifique a sua caixa de entrada para um código de verificação.",
"requestError": "Não foi possível enviar o código. Tente novamente.",
"invalidCode": "Introduza o código de 6 dígitos",
"verifyError": "Código inválido ou expirado.",
"back": "Voltar",
"title": "Recuperar as suas seleções",
"emailStepDescription": "Introduza o e-mail que utilizou anteriormente. Enviaremos um código de verificação de 6 dígitos.",
"codeStepDescription": "Introduza o código de 6 dígitos que enviámos para o seu e-mail.",
"emailLabel": "E-mail",
"sendCode": "Enviar código",
"codeLabel": "Código de verificação",
"verifyCode": "Verificar e continuar"
},
"guestPrompt": {
"nameRequired": "O nome é obrigatório",
"invalidEmail": "Endereço de e-mail inválido",
"emailRequired": "O e-mail é obrigatório",
"error": "Falha no registo",
"title": "Bem-vindo — qual é o seu nome?",
"description": "As suas seleções serão guardadas com este nome para que o fotógrafo saiba quais as fotos de que gosta.",
"nameLabel": "O seu nome",
"namePlaceholder": "Introduza o seu nome",
"emailLabelRequired": "E-mail",
"emailLabel": "E-mail (opcional)",
"emailPlaceholder": "[email protected]",
"submit": "Continuar",
"alreadyHere": "Já estive aqui antes"
},
"footer": {
"forgetMeConfirm": "O seu nome e seleções serão removidos desta galeria.",
"forgetMe": "Esquecer-me ({{name}})",
"socials": "Redes sociais"
},
"photosCount_many": "{{count}} fotos",
"photosCount_one": "{{count}} foto",
"photosCount_other": "{{count}} fotos",
"poweredBy": "Desenvolvido por PicPeak"
},
"categories": {
"title": "Categorias de Fotos",
"addCategory": "Adicionar Categoria",
"eventSpecificCategories": "Categorias Específicas do Evento",
"noEventSpecificCategories": "Sem categorias específicas. As categorias globais estão disponíveis por padrão.",
"globalCategoriesAlwaysAvailable": "Categorias Globais (sempre disponíveis):",
"deleteCategoryTitle": "Excluir categoria",
"categoryCreatedSuccess": "Categoria criada com sucesso",
"categoryDeletedSuccess": "Categoria excluída com sucesso",
"failedToCreateCategory": "Falha ao criar categoria",
"failedToDeleteCategory": "Falha ao excluir categoria",
"categoryName": "Nome da categoria",
"noCategoriesYet": "Ainda não há categorias. Crie sua primeira categoria para organizar as fotos.",
"deleteConfirm": "Tem certeza que deseja excluir \"{{name}}\"?",
"setCoverPhoto": "Definir Foto de Capa",
"removeCoverPhoto": "Remover Foto de Capa",
"coverPhotoSet": "Foto de capa definida com sucesso",
"coverPhotoRemoved": "Foto de capa removida",
"failedToSetCoverPhoto": "Falha ao definir foto de capa",
"categoryHeroHint": "Se nenhuma foto de capa for definida, a foto de destaque padrão será usada."
},
"events": {
"title": "Eventos",
"create": "Criar",
"createEvent": "Criar Evento",
"totalViews": "Visualizações Totais",
"totalDownloads": "Downloads Totais",
"uniqueVisitors": "Visitantes Únicos",
"eventNamePlaceholder": "ex: Casamento de João e Maria",
"welcomeMessagePlaceholder": "Bem-vindo ao nosso dia especial! Sinta-se à vontade para baixar e compartilhar...",
"hostEmailPlaceholder": "[email protected]",
"adminEmailPlaceholder": "[email protected]",
"adminEmailPickFromAdmins": "Escolher entre administradores:",
"adminEmailCustom": "E-mail personalizado",
"accessAndSecurity": "Acesso e Segurança",
"enterPassword": "Digite a senha",
"passwordPlaceholder": "Digite uma senha segura",
"confirmPasswordPlaceholder": "Confirme a senha",
"eventDetails": "Detalhes do Evento",
"eventName": "Nome do Evento",
"eventType": "Tipo de Evento",
"eventDate": "Data do Evento",
"hostEmail": "E-mail do Cliente",
"hostName": "Nome do Cliente",
"hostNamePlaceholder": "João Silva",
"adminEmail": "E-mail do Administrador",
"expirationDate": "Data de Expiração",
"active": "Ativo",
"archived": "Arquivado",
"totalSize": "Tamanho Total",
"shareLink": "Link de Compartilhamento",
"copyLink": "Copiar Link",
"linkCopied": "Link copiado!",
"viewGallery": "Ver Galeria",
"uploadPhotos": "Enviar Fotos",
"archiveEvent": "Arquivar Evento",
"archiveConfirm": "Tem certeza que deseja arquivar este evento? Esta ação não pode ser desfeita.",
"extendExpiration": "Estender {{days}} Dias",
"backToEvents": "Voltar para Eventos",
"loadingEventDetails": "Carregando detalhes do evento...",
"saveChanges": "Salvar Alterações",
"eventExpiresIn": "Este evento expira em {{days}} dias",
"overview": "Visão Geral",
"photos": "Fotos",
"categories": "Categorias",
"eventInformation": "Informações do Evento",
"sourceMode": "Modo de Origem",
"sourceModeManaged": "Gerenciado (upload para o PicPeak)",
"sourceModeReference": "Referenciar pasta externa",
"sourceModeHelp": "Use o modo gerenciado para uploads diretos ou aponte para uma pasta /external-media montada ao usar armazenamento local.",
"externalFolder": "Pasta Externa",
"externalFolderHint": "Estas pastas são lidas da montagem /external-media no seu contêiner ou host.",
"externalFolderRequired": "Selecione uma pasta externa antes de salvar.",
"externalFolderEmpty": "Sem subpastas",
"clearSelection": "Limpar",
"welcomeMessage": "Mensagem de Boas-vindas",
"created": "Criado",
"expires": "Expira",
"shareWithGuests": "Compartilhe este link com os convidados. Eles precisarão da senha para acessar.",
"shareWithGuestsPublic": "Compartilhe este link com os convidados. Nenhuma senha é necessária para esta galeria.",
"resetGalleryPassword": "Redefinir Senha da Galeria",
"resendCreationEmail": "Reenviar E-mail de Criação",
"creationEmailResent": "O e-mail de criação foi enfileirado para envio",
"failedToResendEmail": "Falha ao reenviar e-mail de criação",
"photoStatistics": "Estatísticas de Fotos",
"totalPhotos": "Total de Fotos",
"managePhotos": "Gerenciar Fotos",
"actions": "Ações",
"archivingInfo": "O arquivamento criará um arquivo ZIP de todas as fotos e removerá a galeria do acesso público.",
"archivedOn": "Arquivado em",
"downloadArchive": "Baixar Arquivo",
"loadingPhotos": "Carregando fotos...",
"photoCategories": "Categorias de Fotos",
"organizeCategoriesInfo": "Organize suas fotos em categorias para ajudar na navegação.",
"categoriesTip": "Dica: Categorias são específicas de cada evento. Crie nomes como \"Cerimônia\", \"Recepção\", etc.",
"galleryPassword": "Senha da Galeria",
"requirePasswordToggle": "Exigir senha para esta galeria",
"requirePasswordToggleHelp": "Desative se quiser compartilhar a galeria sem senha. Qualquer pessoa com o link poderá ver as fotos.",
"publicGalleryWarning": "Galerias públicas são acessíveis a qualquer pessoa com o link. Considere ativar marcas d'água.",
"passwordHelperText": "Você pode usar datas como \"04.07.2025\" ou qualquer texto com mais de 6 caracteres",
"confirmPassword": "Confirmar Senha",
"newPasswordLabel": "Nova Senha da Galeria",
"passwordReset": {
"title": "Redefinir Senha da Galeria",
"newTitle": "Nova Senha",
"description": "Defina uma nova senha para {{eventName}} ou deixe ambos os campos vazios para gerar uma automaticamente.",
"newPasswordLabel": "Nova senha",
"placeholder": "Deixe em branco para gerar automaticamente",
"helperText": "Use 6+ caracteres, ou deixe em branco para gerar automaticamente",
"confirmLabel": "Confirmar senha",
"sendEmail": "Enviar notificação por e-mail",
"sendEmailHelp": "Notifique o anfitrião sobre a alteração de senha",
"warning": "Observação: A senha antiga não funcionará mais. Certifique-se de compartilhar a nova senha com o anfitrião.",
"submit": "Redefinir Senha",
"successHeading": "Senha redefinida com sucesso!",
"emailSentNote": "Uma notificação por e-mail foi enviada ao anfitrião.",
"generatedLabel": "Senha da galeria gerada automaticamente",
"saveSecurelyNote": "Importante: Salve esta senha com segurança. Ela não pode ser recuperada após fechar esta janela.",
"done": "Concluído",
"toastSuccess": "Senha redefinida com sucesso",
"toastError": "Falha ao redefinir senha",
"toastCopied": "Senha copiada para a área de transferência",
"errorMinLength": "A senha deve ter pelo menos 6 caracteres",
"errorMismatch": "As senhas não coincidem"
},
"themeAndStyle": "Tema e Estilo",
"galleryExpiration": "Expiração da Galeria",
"daysAfterEvent": "dias após a data do evento",
"expiresOn": "Expira em",
"noExpiration": "Sem Expiração",
"noExpirationHelp": "Esta galeria permanecerá ativa até ser arquivada manualmente.",
"photoCap": "Limite de Fotos",
"photoCapHelp": "Número máximo de fotos permitidas. 0 = ilimitado",
"userUploads": "Configurações de Upload do Usuário",
"allowUserUploads": "Permitir que convidados enviem fotos",
"allowUserUploadsHelp": "Habilite convidados a enviarem suas próprias fotos para esta galeria",
"allowUserUploadsDescription": "Permite que os convidados façam upload de suas próprias fotos",
"uploadCategory": "Categoria de Upload",
"selectCategory": "Selecione uma categoria para os uploads dos usuários",
"uploadCategoryHelp": "Todas as fotos enviadas por usuários serão adicionadas a esta categoria",
"allowDownloads": "Permitir download de fotos",
"downloadsDisabled": "Downloads Desativados",
"downloadProtection": "Proteção de Download",
"disableRightClick": "Bloquear menu do botão direito",
"watermarkDownloads": "Adicionar marca d'água aos downloads",
"enableDevtoolsProtection": "Detectar ferramentas de desenvolvedor",
"useCanvasRendering": "Renderização em Canvas (proteção avançada)",
"protectionInfo": "Recursos de proteção ajudam a evitar downloads não autorizados, mas não bloqueiam todos os métodos.",
"protectionLevelBasic": "Básico - Apenas bloqueio de botão direito",
"protectionLevelStandard": "Padrão - Atalhos de teclado bloqueados",
"protectionLevelEnhanced": "Aprimorado - Detecção de Print Screen",
"protectionLevelMaximum": "Máximo - Detecção de DevTools e renderização em Canvas",
"heroLogoSettings": "Configurações da Logo de Destaque (Hero)",
"heroLogoVisible": "Exibir logo na seção de destaque",
"heroLogoSize": "Tamanho da Logo",
"heroLogoSizeSmall": "Pequena",
"heroLogoSizeMedium": "Média",
"heroLogoSizeLarge": "Grande",
"heroLogoSizeXLarge": "Extra Grande",
"heroLogoPosition": "Posição da Logo",
"heroLogoPositionTop": "Topo (acima do título)",
"heroLogoPositionCenter": "Centro (entre título e datas)",
"heroLogoPositionBottom": "Base (abaixo das datas)",
"heroLogoInfo": "Estas configurações se aplicam ao layout Hero. Você pode ocultar a logo ou personalizar seu tamanho e posição.",
"eventCustomLogo": "Logo Personalizada do Evento",
"eventCustomLogoDescription": "Envie uma logo para este evento. Isso substitui a logo global apenas para esta galeria.",
"uploadEventLogo": "Enviar Logo",
"replaceLogo": "Substituir",
"removeLogo": "Remover",
"eventLogoUploaded": "Logo do evento enviada com sucesso",
"eventLogoUploadFailed": "Falha ao enviar logo do evento",
"eventLogoRemoved": "Logo do evento removida com sucesso",
"eventLogoRemoveFailed": "Falha ao remover logo do evento",
"heroLogoVisibleLabel": "Logo visível",
"heroLogoSizeLabel": "Tamanho",
"heroLogoPositionLabel": "Posição",
"heroLogoHidden": "Logo oculta",
"heroPhoto": "Foto de Destaque (Hero)",
"heroPhotoHelp": "Selecione uma foto de destaque padrão. Você pode substituir isso por categoria.",
"selectHeroPhoto": "Selecionar Foto de Destaque",
"noHeroPhotoSelected": "Nenhuma foto selecionada",
"heroPhotoSelected": "Foto de destaque selecionada",
"heroImageAnchor": "Posição de Corte da Imagem de Destaque",
"heroImageAnchorDescription": "Clique na imagem para definir o ponto focal para o corte.",
"heroImageAnchorTop": "Topo",
"heroImageAnchorCenter": "Centro",
"heroImageAnchorBottom": "Base",
"heroPreview": "Prévia do Destaque",
"noPhotosAvailable": "Nenhuma foto disponível",
"inactive": "Inativo",
"expired": "Expirado",
"draft": "Rascunho",
"publishAndNotify": "Publicar e notificar cliente",
"publishConfirm": "Isso tornará a galeria acessível e enviará o e-mail de notificação ao cliente. Continuar?",
"publishSuccess": "Galeria publicada e cliente notificado!",
"draftBanner": "Esta galeria está em modo rascunho. Envie suas fotos e publique quando estiver pronto.",
"subtitle": "Gerencie suas galerias de fotos e eventos",
"failedToLoadEvents": "Falha ao carregar eventos",
"tryAgain": "Tentar Novamente",
"bulkArchivePartial": "{{success}} eventos arquivados, {{failed}} falharam",
"deleteSelected": "Excluir selecionados",
"bulkDelete": {
"warning": "Os eventos selecionados, todas as suas fotos, arquivos e logs de auditoria serão excluídos permanentemente. Esta ação não pode ser desfeita.",
"confirmLabel": "Digite {{literal}} para confirmar",
"confirmHelp": "Uma confirmação digitada evita exclusões acidentais e não é afetada pelo autopreenchimento do navegador ou atalhos de passkey.",
"successPartial": "{{success}} eventos excluídos, {{failed}} com falha",
"errorGeneric": "Falha ao excluir eventos",
"successAll_many": "{{count}} eventos eliminados permanentemente",
"successAll_one": "{{count}} evento eliminado permanentemente",
"successAll_other": "{{count}} eventos eliminados permanentemente",
"title_many": "Eliminar permanentemente {{count}} eventos?",
"title_one": "Eliminar permanentemente {{count}} evento?",
"title_other": "Eliminar permanentemente {{count}} eventos?",
"processing_many": "A eliminar {{count}} eventos. Pode demorar alguns minutos — não feche esta janela.",
"processing_one": "A eliminar {{count}} evento. Pode demorar alguns minutos — não feche esta janela.",
"processing_other": "A eliminar {{count}} eventos. Pode demorar alguns minutos — não feche esta janela.",
"submit_many": "Eliminar {{count}} eventos",
"submit_one": "Eliminar {{count}} evento",
"submit_other": "Eliminar {{count}} eventos"
},
"searchEventsPlaceholder": "Buscar eventos...",
"all": "Todos",
"expiring": "Expirando",
"clear": "Limpar",
"archiveSelected": "Arquivar Selecionados",
"publicAccess": "Acesso público",
"passwordProtected": "Protegido por senha",
"newPasswordRequired": "Defina uma senha antes de ativar a proteção.",
"event": "Evento",
"type": "Tipo",
"date": "Data",
"status": "Status",
"noEventsFound": "Nenhum evento encontrado",
"stats": {
"totalEvents": "Total de Eventos",
"activeEvents": "Eventos Ativos",
"totalPhotos": "Total de Fotos",
"expiringEvents": "Expirando em Breve"
},
"viewDetails": "Ver Detalhes",
"archiveEventAction": "Arquivar Evento",
"downloadArchiveAction": "Baixar Arquivo",
"deleteEvent": "Excluir Evento",
"deleteEventConfirm": "Tem certeza que deseja excluir este evento?",
"downloadArchiveSoon": "Download do arquivo disponível em breve",
"eventExpiredMessage": "Este evento expirou",
"guestsCannotAccessGallery": "Os convidados não podem mais acessar a galeria. Considere arquivá-la.",
"warningEmailsHaveBeenSent": "E-mails de aviso foram enviados ao cliente.",
"extendSevenDays": "Estender 7 Dias",
"welcomeMessageLabel": "Mensagem de Boas-vindas",
"noWelcomeMessageSet": "Nenhuma mensagem definida",
"copy": "Copiar",
"copied": "Copiado!",
"archiveStatusTitle": "Status do Arquivo",
"downloadingArchive": "Baixando arquivo de {{name}}...",
"downloadStarted": "Download iniciado",
"failedToDownloadArchive": "Falha ao baixar arquivo",
"galleryTheme": "Tema da Galeria",
"noThemeSet": "Nenhum tema configurado",
"customizingThemeFor": "Customizando tema para {{event}}",
"customCssTemplate": "Modelo CSS Personalizado",
"customCssTemplateDesc": "Aplique um modelo CSS para estilizar a galeria com efeitos visuais únicos.",
"noTemplate": "Sem Modelo",
"useThemeOnly": "Usar apenas predefinição do tema",
"customTemplate": "Modelo Personalizado",
"rename": {
"button": "Renomear",
"title": "Renomear Evento",
"validating": "Validando novo nome...",
"renamingFiles": "Renomeando arquivos...",
"complete": "Concluído!",
"failed": "Falha ao renomear",
"confirm": "Renomear Evento",
"success": "Evento renomeado com sucesso!",
"filesRenamed_many": "{{count}} ficheiros atualizados",
"filesRenamed_one": "{{count}} ficheiro atualizado",
"filesRenamed_other": "{{count}} ficheiros atualizados",
"newLink": "Novo link da galeria",
"currentName": "Nome atual:",
"newName": "Novo nome do evento",
"enterNewName": "Introduza o novo nome do evento",
"newUrl": "Nova URL:",
"checkingAvailability": "A verificar disponibilidade…",
"resendEmail": "Reenviar e-mail de convite com o novo link da galeria",
"emailTo": "Enviar e-mail de acesso atualizado para",
"warningTitle": "Atenção:",
"warning1": "O URL da galeria irá mudar",
"warning2": "Os URLs antigos serão automaticamente redirecionados para o novo URL",
"warning3": "Os ficheiros de fotos podem ser renomeados"
},
"bulkArchiveSuccess_many": "{{count}} eventos arquivados com sucesso",
"bulkArchiveSuccess_one": "{{count}} evento arquivado com sucesso",
"bulkArchiveSuccess_other": "{{count}} eventos arquivados com sucesso",
"daysLeft_many": "({{count}} dias restantes)",
"daysLeft_one": "({{count}} dia restante)",
"daysLeft_other": "({{count}} dias restantes)",
"eventsSelected_many": "{{count}} eventos selecionados",
"eventsSelected_one": "{{count}} evento selecionado",
"eventsSelected_other": "{{count}} eventos selecionados",
"paginationLabel": "{{from}}{{to}} de {{total}}",
"filtered": "filtrado",
"pageOf": "Página {{page}} de {{totalPages}}",
"notFound": "Evento não encontrado",
"customerPhone": "Telefone do cliente",
"customerPhonePlaceholder": "+351 912 345 678",
"allowPresignedDownload": "Permitir download direto S3 (sem marca d'água, apenas modo S3)",
"neverExpires": "Nunca",
"rightClickBlocked": "Clique direito bloqueado",
"devtoolsDetection": "Deteção de ferramentas de desenvolvedor",
"watermarked": "Com marca d'água",
"importExternal": "Importar de pasta externa",
"externalImportInfo": "Todas as imagens da pasta selecionada serão importadas.",
"selectExternalFolder": "Selecionar pasta externa em /external-media",
"importFromSelectedFolder": "Importar da pasta selecionada",
"promoBanner": {
"title": "Banner Promocional",
"help": "Escolha como esta galeria lida com o banner promocional. \"Herdar\" usa o padrão global; \"Personalizado\" substitui apenas neste evento; \"Desligado\" oculta o banner para este evento.",
"mode_inherit": "Herdar padrão global",
"mode_custom": "Personalizado para este evento",
"mode_off": "Desligado (ocultar neste evento)",
"placeholder": "Conteúdo em Markdown (ex.: **Oferta especial:** [agende sua próxima sessão](https://example.com))",
"preview": "Pré-visualização"
}
},
"settings": {
"title": "Configurações do Sistema",
"subtitle": "Configurar preferências e ajustes globais do sistema",
"loadingSettings": "Carregando configurações...",
"general": {
"title": "Geral",
"siteConfiguration": "Configuração do Site",
"siteUrl": "URL do Site",
"siteUrlHelp": "Usada para gerar links de galeria nos e-mails",
"defaultExpiration": "Expiração Padrão (dias)",
"maxFileSize": "Tamanho Máx. do Arquivo (MB)",
"maxFilesPerUpload": "Máx. de Arquivos por Envio",
"maxFilesPerUploadHelp": "Número máximo de fotos permitidas em um único lote (1-{{max}}).",
"allowedFileTypes": "Tipos de Arquivos Permitidos",
"allowedFileTypesHelp": "Lista de extensões separadas por vírgula",
"featureToggles": "Funcionalidades",
"enableAnalytics": "Ativar rastreamento de análises",
"enableRegistration": "Permitir auto-registro para admins",
"enableShortGalleryUrls": "Usar URLs curtas para galerias",
"enableShortGalleryUrlsHelp": "Remove o slug do evento de novos links, mantendo os antigos funcionando.",
"maintenanceMode": "Ativar modo de manutenção",
"language": "Idioma",
"defaultLanguageHelp": "Idioma exibido aos convidados antes do login",
"saveGeneralSettings": "Salvar Configurações Gerais",
"dateTimeFormat": "Formato de Data e Hora",
"dateFormat": "Formato de Data",
"dateFormatHelp": "Como as datas são exibidas nos e-mails e no sistema",
"accountSection": "Conta Admin",
"accountUsername": "Usuário Admin",
"accountUsernameHelp": "Exibido na interface e logs de atividade.",
"accountUsernameRequired": "Usuário é obrigatório",
"accountUsernameLength": "O usuário deve ter pelo menos 3 caracteres",
"accountEmail": "E-mail Admin",
"accountEmailHelp": "Usado para login e notificações de segurança.",
"accountEmailRequired": "E-mail é obrigatório",
"accountEmailInvalid": "Insira um e-mail válido",
"accountSaveButton": "Salvar detalhes da conta",
"accountSaveSuccess": "Detalhes da conta atualizados"
},
"publicSite": {
"badge": "Landing Page",
"title": "Página Inicial Pública",
"subtitle": "Publique uma landing page customizada quando visitarem seu domínio.",
"loading": "Carregando configurações do site público...",
"enabled": "Ativado",
"disabled": "Desativado",
"htmlLabel": "HTML da Landing Page",
"htmlPlaceholder": "Forneça o HTML para as seções e chamadas de ação da sua página.",
"htmlHelp": "O HTML bruto é higienizado ao salvar. Tokens como {{company_name}}, {{company_tagline}} e {{support_email}} serão substituídos pelos valores das configurações de Identidade Visual.",
"cssLabel": "CSS Personalizado",
"cssPlaceholder": "Ajustes de layout, cores ou tipografia via CSS.",
"cssHelp": "Imports e URLs de JavaScript são removidos. Use seletores CSS padrão.",
"saveCta": "Salvar site público",
"saving": "Salvando...",
"saveSuccess": "Configurações do site público salvas.",
"saveError": "Falha ao salvar configurações do site público.",
"resetCta": "Redefinir para o padrão",
"resetting": "Redefinindo...",
"resetSuccess": "Modelo do site público redefinido.",
"resetError": "Falha ao redefinir modelo.",
"previewTitle": "Prévia ao Vivo",
"previewSandboxed": "Prévia isolada",
"previewDisabled": "Ative o site público para ver a prévia.",
"sanitizationNotice": "Scripts e atributos inseguros são removidos. Apenas HTML, links e imagens seguros são permitidos.",
"htmlRequired": "Forneça conteúdo HTML antes de ativar o site público."
},
"storage": {
"totalUsed": "Total Utilizado",
"archiveStorage": "Armazenamento de Arquivos",
"storageLimit": "Limite de Armazenamento",
"storageLimitHelper": "Defina um limite consultivo para o uso de espaço.",
"softLimitInputLabel": "Limite (GB)",
"softLimitHelper": "Insira o limite máximo preferencial em gigabytes.",
"recommendedSoftLimit": "Limite Sugerido",
"diskCapacity": "Capacidade do Disco",
"diskCapacityReported": "Capacidade (reportada)",
"diskAvailable": "Disponível",
"diskAvailableReported": "Disponível (reportada)",
"diskFreeReported": "Livre (reportada)",
"diskMetricsUnavailable": "Métricas de disco não estão disponíveis em ambientes virtualizados ou Docker Desktop.",
"applyRecommended": "Usar recomendado",
"applyAvailable": "Igualar disponível",
"invalidSoftLimit": "Insira um número válido para o limite.",
"saveSoftLimit": "Salvar limite",
"limitNotEnforced": "Este limite é apenas consultivo e não é aplicado automaticamente.",
"overrideTitle": "Substituição Manual de Capacidade",
"diskOverrideEnvNote": "A capacidade é controlada por variáveis de ambiente e não pode ser editada aqui.",
"diskOverrideSettingsHelp": "Defina valores manuais se o Docker reportar números irreais.",
"overrideCapacityLabel": "Capacidade total (GB)",
"overrideCapacityHelper": "Deixe em branco para usar a leitura automática.",
"overrideAvailableLabel": "Espaço disponível (GB)",
"overrideAvailableHelper": "Opcional. Deixe em branco para calcular automaticamente.",
"saveOverride": "Salvar substituição",
"capacityRequiredForAvailable": "Insira a capacidade total antes de definir o espaço disponível.",
"availableExceedsCapacity": "O espaço disponível não pode exceder a capacidade total.",
"storageUsage": "Uso de Armazenamento",
"unlimited": "Ilimitado"
},
"security": {
"title": "Segurança",
"passwordSettings": "Configurações de Senha",
"minPasswordLength": "Comprimento Mínimo da Senha",
"passwordComplexity": "Complexidade da Senha",
"passwordComplexityHelp": "Nível de segurança exigido para senhas",
"complexitySimple": "Simples (6+ caracteres, qualquer texto)",
"complexityModerate": "Moderada (8+ caracteres, letras/números)",
"complexityStrong": "Forte (12+ caracteres, maiúsculas/minúsculas/números)",
"complexityVeryStrong": "Muito Forte (12+ caracteres, todos os tipos)",
"sessionAuth": "Sessão e Autenticação",
"sessionTimeout": "Tempo de Sessão (minutos)",
"maxLoginAttempts": "Máximo de Tentativas de Login",
"maxLoginAttemptsHelp": "Falhas permitidas por IP antes do bloqueio",
"attemptWindowMinutes": "Janela de Tentativas (minutos)",
"attemptWindowMinutesHelp": "Tempo para contabilizar falhas de login",
"lockoutDurationMinutes": "Duração do Bloqueio (minutos)",
"lockoutDurationMinutesHelp": "Tempo que a conta permanece bloqueada após falhas",
"enable2FA": "Ativar autenticação de dois fatores para admins",
"recaptchaSettings": "Configurações de reCAPTCHA",
"enableRecaptcha": "Ativar reCAPTCHA nos formulários de login",
"siteKey": "Chave do Site",
"secretKey": "Chave Secreta",
"recaptchaHelp": "Obtenha suas chaves em",
"saveSecuritySettings": "Salvar Configurações de Segurança"
},
"categories": {
"title": "Categorias",
"about": "Sobre Categorias de Fotos",
"aboutText": "Categorias globais estão disponíveis para todos os eventos. Você também pode criar categorias específicas ao editar um evento. Elas ajudam a organizar as fotos e permitem filtros por tipo."
},
"systemStatus": {
"title": "Status do Sistema",
"storageOverview": "Visão Geral do Espaço",
"systemInfo": "Informações do Sistema",
"databaseInfo": "Informações do Banco de Dados",
"platform": "Plataforma",
"nodeVersion": "Versão do Node",
"uptime": "Tempo de Atividade",
"cpuCores": "Núcleos de CPU",
"memoryUsage": "Uso de Memória",
"memoryUsed": "Memória Utilizada",
"photos": "Fotos",
"admins": "Admins",
"dbSize": "Tamanho do Banco",
"services": "Serviços de Segundo Plano",
"fileWatcher": "Monitor de Arquivos",
"fileWatcherDesc": "Monitora novas fotos",
"expirationChecker": "Verificador de Expiração",
"expirationCheckerDesc": "Arquiva galerias expiradas",
"emailProcessor": "Processador de E-mails",
"emailProcessorDesc": "Envia e-mails na fila",
"emailQueue": "Status da Fila de E-mails",
"pending": "Pendentes",
"sent": "Enviados",
"failed": "Falhas",
"lastUpdate": "Última atualização"
},
"photoDimensions": {
"title": "Dimensões das Fotos",
"totalPhotos": "Total de Fotos",
"withDimensions": "Com Dimensões",
"missingDimensions": "Sem Dimensões",
"repairButton": "Reparar Dimensões",
"repairing": "Reparando...",
"noneToRepair": "Todas as fotos já possuem dimensões",
"resultSuccess": "Último reparo: {{success}} atualizadas, {{failed}} falhas",
"description": "Preenche larguras/alturas ausentes para fotos antigas. Necessário para layouts Masonry e Mosaic."
},
"updateNotifications": {
"title": "Notificações de Atualização",
"description": "Receba e-mails quando novas versões do PicPeak estiverem disponíveis.",
"enableEmails": "Ativar notificações por e-mail",
"enableEmailsDesc": "Enviar e-mail para admins sobre novas versões",
"recipients": "Destinatários",
"recipientsPlaceholder": "[email protected], [email protected]",
"recipientsHelper": "E-mails separados por vírgula. Deixe vazio para todos os admins.",
"lastNotified": "Última notificação enviada para versão: {{version}}",
"checkNow": "Verificar e Notificar",
"sendTest": "Enviar E-mail de Teste",
"saved": "Configurações salvas",
"saveError": "Falha ao salvar configurações",
"emailFailed": "Falha ao enviar notificação",
"checkSuccess": "Notificação enviada para nova versão",
"checkNoAction": "Nenhuma ação necessária: {{reason}}",
"checkError": "Falha ao verificar atualizações",
"emailSent_many": "E-mail de notificação enviado para {{count}} destinatários",
"emailSent_one": "E-mail de notificação enviado para {{count}} destinatário",
"emailSent_other": "E-mail de notificação enviado para {{count}} destinatários"
},
"events": {
"title": "Criação de Eventos",
"requiredFields": "Campos Obrigatórios",
"requiredFieldsDescription": "Configure quais campos são obrigatórios ao criar novos eventos.",
"requireCustomerName": "Exigir nome do cliente",
"requireCustomerNameHelp": "O nome deve ser fornecido obrigatoriamente",
"requireCustomerEmail": "Exigir e-mail do cliente",
"requireCustomerEmailHelp": "O e-mail deve ser fornecido obrigatoriamente",
"customerEmailWarning": "Necessário para enviar convites da galeria",
"requireAdminEmail": "Exigir e-mail do admin",
"requireAdminEmailHelp": "O e-mail do admin deve ser fornecido",
"adminEmailWarning": "Necessário para notificações do sistema",
"requireEventDate": "Exigir data do evento",
"requireEventDateHelp": "A data deve ser informada na criação",
"eventDateWarning": "URLs usarão identificadores aleatórios sem a data",
"requireExpiration": "Exigir data de expiração",
"requireExpirationHelp": "Galerias devem ter uma data de término",
"expirationWarning": "Galerias sem expiração ficarão ativas até arquivamento manual",
"saveSettings": "Salvar Configurações de Evento",
"noteTitle": "Nota",
"noteText": "Estas configurações afetam apenas novos eventos. O padrão exige todos os campos.",
"defaultRequirePassword": "Exigir senha por padrão",
"defaultRequirePasswordHelp": "Pré-marcar «Exigir senha» ao criar novos eventos. Desative para criar galerias públicas mais rapidamente.",
"showGalleryFilterBar": "Mostrar barra de filtros nas galerias",
"showGalleryFilterBarHelp": "Exibe a pesquisa por nome de ficheiro e os controlos de ordenação acima das galerias em grelha. Desative para um layout mais limpo.",
"enablePhoneField": "Ativar campo de número de telefone",
"enablePhoneFieldHelp": "Adiciona um campo opcional de número de telefone ao formulário de evento. Útil para automatizações como entrega via WhatsApp com n8n. Sempre opcional mesmo quando ativado."
},
"imageSecurity": {
"title": "Proteção de Imagem",
"saveSuccess": "Configurações de segurança salvas",
"saveError": "Falha ao salvar configurações",
"loadError": "Falha ao carregar configurações de segurança",
"defaultProtection": "Configurações de Proteção Padrão",
"defaultProtectionHelp": "Aplicado a novos eventos por padrão. Podem ser substituídas individualmente.",
"protectionLevel": "Nível de Proteção Padrão",
"imageQuality": "Qualidade de Imagem Padrão",
"fragmentationLevel": "Nível de Fragmentação",
"enableDevtools": "Ativar detecção de DevTools por padrão",
"enableCanvas": "Ativar renderização em Canvas por padrão",
"rateLimiting": "Limite de Requisições",
"rateLimitingHelp": "Limita quantas imagens podem ser solicitadas para evitar raspagem (scraping).",
"requestsPerMinute": "Requisições por minuto",
"requestsPer5Minutes": "Requisições por 5 min",
"requestsPerHour": "Requisições por hora",
"securityMonitoring": "Monitoramento de Segurança",
"suspiciousThreshold": "Limite para atividade suspeita",
"autoBlockThreshold": "Limite para bloqueio automático",
"enableMonitoring": "Ativar monitoramento de segurança",
"blockSuspiciousIps": "Bloquear IPs suspeitos automaticamente",
"logEvents": "Registrar eventos de segurança no banco de dados",
"infoTitle": "Sobre a Proteção de Imagem",
"infoText": "Estes recursos evitam cópias fáceis, mas não bloqueiam todos os métodos. Considere marcas d'água para proteção total."
},
"moderation": {
"title": "Moderação",
"wordFilters": "Filtros de Palavras",
"description": "Gerencie palavras que devem ser filtradas ou bloqueadas nos comentários",
"addFilter": "Adicionar Novo Filtro",
"enterWord": "Digite a palavra para filtrar",
"searchFilters": "Buscar filtros...",
"filterAdded": "Filtro adicionado com sucesso",
"filterExists": "Este filtro já existe",
"addError": "Falha ao adicionar filtro",
"filterUpdated": "Filtro atualizado com sucesso",
"updateError": "Falha ao atualizar filtro",
"filterDeleted": "Filtro excluído com sucesso",
"deleteError": "Falha ao excluir filtro",
"wordRequired": "Insira uma palavra para filtrar",
"confirmDelete": "Tem certeza que deseja excluir este filtro?",
"loading": "Carregando filtros...",
"noMatchingFilters": "Nenhum filtro correspondente",
"noFilters": "Nenhum filtro configurado ainda",
"severityLow": "Baixa",
"severityModerate": "Moderada",
"severityHigh": "Alta",
"severityBlock": "Bloquear",
"severityLevels": "Níveis de Gravidade",
"lowDescription": "A palavra é sinalizada para revisão, mas não bloqueada",
"moderateDescription": "O comentário exige aprovação manual para ficar visível",
"highDescription": "O comentário é ocultado e exige revisão do admin",
"blockDescription": "O comentário é rejeitado imediatamente"
},
"styling": {
"title": "CSS Personalizado"
},
"thumbnails": {
"title": "Miniaturas",
"dimensionsTitle": "Dimensões e Qualidade das Miniaturas",
"dimensionsHelp": "Configura o tamanho e qualidade das prévias automáticas.",
"width": "Largura (px)",
"widthHelp": "50-1000 pixels",
"height": "Altura (px)",
"heightHelp": "50-1000 pixels",
"quality": "Qualidade",
"qualityHelp": "1-100 (maior = melhor qualidade, arquivo maior)",
"format": "Formato",
"fit": "Modo de Ajuste",
"fitHelp": "Como as imagens são redimensionadas. \"Cover\" corta para preencher, \"Contain\" ajusta aos limites.",
"regenerateTitle": "Regenerar Miniaturas",
"regenerateHelp": "Após alterar as configurações, regenere as miniaturas existentes. Isso pode demorar.",
"regenerateButton": "Regenerar Todas as Miniaturas",
"regenerateStarted": "Regeneração de miniaturas iniciada",
"regenerateError": "Falha ao iniciar regeneração",
"saveSuccess": "Configurações de miniaturas salvas",
"saveError": "Falha ao salvar configurações",
"loadError": "Falha ao carregar configurações",
"infoTitle": "Sobre Miniaturas",
"infoText": "Miniaturas são versões menores das fotos. Aumentar o tamanho melhora a aparência, mas usa mais espaço e banda.",
"fit_cover": "Cover (cortar para preencher)",
"fit_contain": "Contain (ajustar ao espaço)",
"fit_fill": "Fill (esticar)",
"fit_inside": "Inside (encolher para caber)",
"fit_outside": "Outside (expandir para cobrir)"
},
"seo": {
"title": "SEO e Robots",
"indexingTitle": "Indexação em Buscadores",
"allowIndexing": "Permitir indexação em mecanismos de busca",
"allowIndexingHelp": "Se desativado, crawlers serão bloqueados via robots.txt. Recomendado desativar para galerias privadas.",
"sitemapUrl": "URL do Sitemap",
"sitemapUrlHelp": "Opcional. Adicionado ao robots.txt se fornecido.",
"aiBlockingTitle": "Bloqueio de IA e Bots",
"blockAiCrawlers": "Bloquear crawlers de IA/LLM",
"blockAiCrawlersHelp": "Impede bots de treinamento de IA de acessarem seu conteúdo.",
"blockedAgents": "Agentes de IA bloqueados",
"addAgentPlaceholder": "Nome do agente...",
"blockSocialBots": "Bloquear bots de prévia de redes sociais",
"blockSocialBotsHelp": "Impede prévias de links no Twitter, Facebook, LinkedIn, etc.",
"metaTagsTitle": "Meta Tags e Regras Customizadas",
"metaNoindex": "Adicionar meta tag noindex",
"metaNoindexHelp": "Diz aos buscadores para não indexarem as páginas.",
"metaNofollow": "Adicionar meta tag nofollow",
"metaNofollowHelp": "Diz aos buscadores para não seguirem links nas páginas.",
"metaNoai": "Adicionar meta tag noai/noimageai",
"metaNoaiHelp": "Sinaliza que o conteúdo não deve ser usado para treinar IA.",
"customRules": "Regras personalizadas do robots.txt",
"ruleAgentPlaceholder": "User-agent",
"rulePathPlaceholder": "Caminho proibido (Disallow)",
"showPreview": "Mostrar prévia do robots.txt",
"hidePreview": "Ocultar prévia do robots.txt",
"saveSettings": "Salvar Configurações de SEO"
},
"analytics": {
"title": "Análise",
"umamiIntegration": "Integração com Umami Analytics",
"enableUmami": "Ativar Umami Analytics",
"umamiUrl": "URL do Umami",
"umamiUrlHelp": "A URL da sua instância Umami (ex: https://analytics.seudominio.com)",
"websiteId": "ID do Website",
"websiteIdHelp": "O ID do site no painel do Umami",
"shareUrl": "URL de Compartilhamento (Opcional)",
"shareUrlHelp": "URL pública para incorporar o painel completo",
"umamiInfo": "Sobre o Umami Analytics",
"umamiInfoText": "Umami é uma plataforma de análise focada em privacidade e código aberto.",
"learnMore": "Saiba mais sobre o Umami",
"saveAnalyticsSettings": "Salvar Configurações de Análise",
"backendAnalytics": "Análise de Backend",
"backendAnalyticsText": "O sistema rastreia métricas básicas no servidor para segurança e performance.",
"tracked": "Métricas Monitoradas",
"galleryViews": "Visualizações de galeria",
"photoDownloads": "Downloads individuais e em lote",
"uniqueVisitors": "Visitantes únicos por IP",
"deviceTypes": "Tipos de dispositivos",
"privacy": "Privacidade",
"privacyText": "Endereços IP são anonimizados. Dados são retidos por 90 dias."
},
"groups": {
"general": "Geral",
"display": "Apresentação",
"privacySecurity": "Privacidade e Segurança",
"integrations": "Integrações",
"system": "Sistema",
"appearance": "Conteúdo e Aparência",
"communication": "Comunicação"
},
"apiTokens": {
"title": "Tokens de API",
"createError": "Falha ao criar token",
"revoked": "Token revogado",
"subtitle": "Tokens bearer de longa duração para a interface pública /api/v1 — integrações n8n, apps personalizadas, scripts. Os tokens atuam como o utilizador administrador que os criou, com as permissões escolhidas.",
"copyNow": "Copie este token agora — não será mostrado novamente.",
"copied": "Copiado",
"copyFailed": "Falha ao copiar",
"name": "Nome",
"namePlaceholder": "ex.: n8n produção",
"scopes": "Âmbitos",
"generate": "Gerar token",
"scopeHint": "admin > escrita > leitura. Um token só de leitura não pode fazer alterações, mesmo que o proprietário seja super_admin.",
"existing": "Tokens existentes",
"lastUsed": "Último uso",
"created": "Criado",
"status": "Estado",
"statusRevoked": "Revogado",
"statusExpired": "Expirado",
"statusActive": "Ativo",
"confirmRevoke": "Revogar este token? Esta ação é irreversível.",
"revoke": "Revogar",
"empty": "Ainda sem tokens. Gere um acima para começar."
},
"webhooks": {
"title": "Webhooks",
"subtitle": "Envie notificações POST para o seu URL quando algo acontecer — galeria publicada, foto enviada, evento arquivado, etc. Assinado com HMAC-SHA256 no cabeçalho X-PicPeak-Signature.",
"piiNotice": "Os payloads event.* incluem informações de contacto do cliente (nome, e-mail, telefone) e o token de partilha da galeria se estiverem guardados. Aponte webhooks apenas para recetores em que confia.",
"copyNow": "Copie este segredo de assinatura agora — não será mostrado novamente.",
"name": "Nome",
"url": "URL do recetor",
"events": "Subscrever eventos",
"filter": "Filtro (JSON, opcional)",
"template": "Modelo (opcional)",
"create": "Criar webhook",
"existing": "Webhooks existentes",
"empty": "Ainda sem webhooks. Crie um acima para começar a receber notificações."
},
"sectionLabel": "Secção de configurações",
"navAriaLabel": "Navegação de configurações",
"eventTypes": {
"title": "Tipos de Evento"
},
"cms": {
"title": "Páginas CMS"
},
"email": {
"title": "Configurações de E-mail"
},
"backup": {
"title": "Backup"
},
"branding": {
"title": "Identidade Visual"
},
"features": {
"title": "Recursos",
"intro": "Ative ou desative os recursos do produto. Os recursos ativados aparecem na navegação à esquerda e ficam disponíveis para sua equipe. Alguns recursos ainda estão em beta — ative-os para experimentar ou desative-os para ocultar.",
"notYetAvailable": "Ainda não disponível — este controle será ativado quando o recurso for lançado.",
"sidebarHidden": "Sem item na barra lateral — executa em segundo plano",
"unsavedChanges": "Você tem alterações não salvas",
"preview": {
"title": "Visualização da barra lateral",
"note": "Reflete alterações não salvas",
"legend": "Itens em verde são controlados pelos interruptores acima."
},
"sections": {
"core": "Núcleo",
"communication": "Comunicação",
"scheduling": "Agendamento",
"sales": "Vendas",
"insights": "Análises & Acesso",
"customers": "Clientes"
},
"status": {
"stable": "estável",
"beta": "beta",
"new": "novo",
"experimental": "experimental",
"roadmap": "planejado"
},
"galleries": {
"title": "Galerias",
"description": "A interface principal do PicPeak. Sempre disponível.",
"locked": "Galerias são a base do PicPeak e não podem ser desativadas."
},
"reminderEmails": {
"title": "E-mails de Lembrete",
"description": "Lembretes automáticos para convidados antes que sua galeria expire e para administradores sobre uploads pendentes."
},
"messaging": {
"title": "Mensagens",
"description": "Conversas no aplicativo com convidados, vinculadas a uma galeria. E-mail é suficiente para a maioria das equipes — isto é para estúdios que querem tudo em um só lugar.",
"sidebar": "Mensagens"
},
"calendar": {
"title": "Calendário",
"description": "Veja todos os eventos futuros e passados em uma visualização mensal/semanal. Opcionalmente aceite novos agendamentos de clientes.",
"sidebar": "Calendário"
},
"quotes": {
"title": "Orçamentos",
"description": "Envie orçamentos com itens detalhados aos clientes. Eles podem aceitar ou recusar por um link público; o pagamento é controlado manualmente.",
"sidebar": "Orçamentos"
},
"bills": {
"title": "Faturas",
"description": "Gere uma fatura a partir de qualquer orçamento aceito. Marque como pago manualmente — sem integração com processadores de pagamento.",
"sidebar": "Faturas"
},
"analytics": {
"title": "Análises",
"description": "Uso de armazenamento, visualizações de galerias, contagens de downloads e estatísticas por evento."
},
"userManagement": {
"title": "Gerenciamento de Usuários",
"description": "Suporte a múltiplos administradores com permissões baseadas em função. Desative se você é um estúdio individual.",
"warning": "Contas de usuário existentes permanecem válidas; a interface administrativa para gerenciá-las ficará oculta até você reativar isto."
},
"customerPortal": {
"title": "Portal do cliente",
"description": "Logins persistentes para clientes. Clientes recorrentes veem todas as galerias atribuídas em um só lugar — sem senhas por evento. Base para Calendário / Orçamentos / Faturas (que só aparecem no painel do cliente quando isto está ativo)."
}
},
"customerSurface": {
"brandingTitle": "Cabeçalho do painel do cliente",
"brandingHint": "Controla o que aparece no cabeçalho de /customer/dashboard. Galerias públicas e áreas administrativas não são afetadas.",
"showLogo": "Mostrar logo no cabeçalho do cliente",
"showLogoHint": "Usa o mesmo logo de branding configurado acima.",
"showCompanyName": "Mostrar nome da empresa no cabeçalho do cliente",
"showCompanyNameHint": "Oculte se seu logo já inclui o nome da empresa.",
"save": "Salvar alterações",
"saved": "Branding do painel do cliente salvo",
"error": "Não foi possível salvar as configurações"
}
},
"analytics": {
"title": "Painel de Análise",
"subtitle": "Acompanhe a performance das galerias e o engajamento",
"detailedSubtitle": "Análises detalhadas via Umami",
"loadingAnalytics": "Carregando análises...",
"showSummaryView": "Ver Resumo",
"fullDashboard": "Painel Completo",
"refresh": "Atualizar",
"last7Days": "Últimos 7 dias",
"last30Days": "Últimos 30 dias",
"last90Days": "Últimos 90 dias",
"pageViews": "Visualizações",
"uniqueVisitors": "Visitantes Únicos",
"totalDownloads": "Downloads Totais",
"topGallery": "Melhor Galeria",
"topPages": "Páginas Principais",
"views": "visualizações",
"visitors": "visitantes únicos",
"topDownloadsByGallery": "Downloads por Galeria",
"deviceBreakdown": "Uso por Dispositivo",
"desktop": "Desktop",
"mobile": "Celular",
"tablet": "Tablet",
"storageUsage": "Uso de Espaço",
"used": "Usado",
"of": "de",
"totalPhotos": "Total de Fotos",
"activeEvents": "Eventos Ativos",
"notConfigured": "Umami Analytics não configurado",
"configureInstructions": "Para ver dados reais, configure o Umami nas variáveis de ambiente e no painel admin."
},
"branding": {
"title": "Marca e Temas",
"subtitle": "Personalize a aparência das suas galerias",
"loadingBranding": "Carregando identidade visual...",
"themeAndStyle": "Tema e Estilo",
"companyInfo": "Informações da Empresa",
"companyName": "Nome da Empresa",
"companyNameHelp": "Exibido no cabeçalho das galerias e e-mails",
"companyTagline": "Slogan da Empresa",
"companyTaglineHelp": "Uma descrição curta do seu negócio",
"supportEmail": "E-mail de Suporte",
"supportEmailHelp": "E-mail de contato para convidados",
"footerText": "Texto do Rodapé",
"logo": "Logo",
"uploadLogo": "Enviar Logo",
"logoHelp": "Tamanho recomendado: 200x60px, PNG ou JPEG",
"favicon": "Favicon",
"currentFavicon": "Favicon atual",
"uploadFavicon": "Enviar Favicon",
"removeFavicon": "Remover Favicon",
"faviconHelp": "Formato PNG ou ICO, recomendado 32x32px",
"watermarkSettings": "Configurações de Marca d'água",
"enableWatermarks": "Ativar Marcas d'água",
"watermarkHelp": "Adiciona o nome da sua empresa nas fotos baixadas",
"watermarkLogo": "Logo da Marca d'água",
"currentWatermark": "Marca d'água atual",
"uploadWatermarkLogo": "Enviar Logo da Marca d'água",
"watermarkPosition": "Posição da Marca d'água",
"topLeft": "Superior Esquerda",
"topRight": "Superior Direita",
"center": "Centro",
"bottomLeft": "Inferior Esquerda",
"bottomRight": "Inferior Direita",
"watermarkOpacity": "Opacidade",
"watermarkSize": "Tamanho",
"theme": "Tema",
"galleryTheme": "Tema da Galeria",
"colors": "Cores",
"accentColor": "Cor de Destaque",
"backgroundColor": "Cor de Fundo",
"textColor": "Cor do Texto",
"colorMode": "Modo de Cor",
"colorModeLight": "Claro",
"colorModeDark": "Escuro",
"colorModeAuto": "Automático",
"colorModeHelp": "Segue a preferência do sistema do visitante.",
"preview": "Prévia",
"saveChanges": "Salvar Alterações",
"applyLivePreview": "Aplicar alterações imediatamente (Prévia ao Vivo)",
"eventSpecificThemes": "Temas Específicos por Evento",
"eventThemesInfo": "Você pode sobrepor estas configurações para eventos individuais.",
"themePresets": "Temas Prontos",
"galleryLayout": "Layout da Galeria",
"layoutSettings": "Configurações de Layout",
"photoSpacing": "Espaçamento entre Fotos",
"spacing": {
"tight": "Justo",
"normal": "Normal",
"relaxed": "Espaçado"
},
"photoAnimation": "Animação das Fotos",
"animation": {
"none": "Nenhuma",
"fade": "Fade",
"scale": "Escala",
"slide": "Deslizar"
},
"columns": "Colunas",
"mobile": "Celular",
"tablet": "Tablet",
"desktop": "Desktop",
"enableAutoplay": "Ativar Autoplay",
"autoplayInterval": "Intervalo do Autoplay (segundos)",
"groupPhotosBy": "Agrupar Fotos Por",
"grouping": {
"day": "Dia",
"week": "Semana",
"month": "Mês"
},
"masonryMode": "Modo de Layout",
"masonryModeOptions": {
"columns": "Colunas (Estilo Pinterest)",
"rows": "Linhas (Justificado customizado)",
"flickr": "Flickr (Justificado clássico)",
"justified": "Google Photos (Algoritmo Knuth-Plass)"
},
"masonryModeHint": {
"columns": "Colunas verticais com alturas variadas",
"rows": "Layout justificado baseado em linhas",
"flickr": "Algoritmo de layout justificado do Flickr",
"justified": "Linhas estilo Google Photos para quebras ideais"
},
"targetRowHeight": "Altura Alvo da Linha",
"targetRowHeightHint": "Altura em pixels (150-400). As fotos escalam para caber.",
"lastRowBehavior": "Alinhamento da Última Linha",
"lastRowOptions": {
"left": "Alinhado à esquerda",
"center": "Centralizado",
"justify": "Justificado (esticar)"
},
"thumbnailScale": "Escala de Miniaturas",
"thumbnailScaleOptions": {
"xs": "XS — Mais fotos",
"sm": "SM — Muitas fotos",
"md": "MD — Padrão",
"lg": "LG — Fotos maiores",
"xl": "XL — Fotos grandes"
},
"thumbnailScaleHint": "Ajusta a contagem de colunas em relação às colunas base da grade",
"typographyAndStyle": "Tipografia e Estilo",
"bodyFont": "Fonte do Corpo",
"headingFont": "Fonte de Títulos",
"sameAsBody": "Igual ao corpo",
"fontSize": "Tamanho da Fonte",
"fontSizes": {
"small": "Pequeno",
"normal": "Normal",
"large": "Grande"
},
"borderRadius": "Arredondamento das Bordas",
"borderRadiusOptions": {
"none": "Nenhum",
"small": "Pequeno",
"medium": "Médio",
"large": "Grande"
},
"shadowStyle": "Estilo de Sombra",
"shadowOptions": {
"none": "Nenhuma",
"subtle": "Sutil",
"normal": "Normal",
"dramatic": "Dramática"
},
"backgroundPattern": "Fundo",
"backgroundOptions": {
"none": "Nenhum",
"dots": "Pontos",
"grid": "Grade",
"waves": "Ondas"
},
"customCSSHelp": "Avançado: Adicione CSS personalizado para ajustar a aparência",
"cssInstructions": {
"title": "Como usar CSS Personalizado",
"variables": "Variáveis CSS do Tema",
"variablesDesc": "Use estas variáveis para combinar com seus temas:",
"layouts": "Layouts de Galeria Customizados",
"layoutsDesc": "Alvo de elementos com estes seletores:",
"glassEffect": "Efeito Glassmorphism",
"glassEffectDesc": "Crie efeitos modernos de vidro:",
"tip": "Dica",
"tipText": "Use Modelos CSS em Configurações > Modelos CSS para designs prontos."
},
"resetToDefault": "Redefinir para o Padrão",
"applyTheme": "Aplicar Tema",
"saveTheme": "Salvar Tema",
"previewLayout": "Visualizar Layout",
"livePreview": "Prévia ao Vivo",
"heroPlaceholderText": "A foto de destaque do seu evento aparecerá aqui",
"whiteLabel": "White Label",
"hidePoweredBy": "Ocultar selo \"Powered by PicPeak\"",
"hidePoweredByHelp": "Remove a atribuição do PicPeak do rodapé da galeria",
"logoCustomization": "Customização da Logo",
"changeLogo": "Alterar Logo",
"logoSizeSmall": "Pequena (32px)",
"logoSizeMedium": "Média (48px)",
"logoSizeLarge": "Grande (64px)",
"logoSizeXLarge": "Extra Grande (96px)",
"logoSizeCustom": "Customizado",
"logoMaxHeight": "Altura Máxima (pixels)",
"logoMaxHeightHelp": "Define uma altura máxima para a logo (20-200 px)",
"logoPosition": "Posição da Logo no Cabeçalho",
"logoDisplayMode": "Modo de Exibição",
"logoOnly": "Apenas Logo",
"textOnly": "Apenas Nome da Empresa",
"logoAndText": "Logo e Nome da Empresa",
"showLogoInHeader": "Mostrar logo no cabeçalho",
"showLogoInHeaderHelp": "Exibe a logo na barra principal superior",
"showLogoInHero": "Mostrar logo na seção Hero",
"showLogoInHeroHelp": "Exibe a logo na seção de destaque",
"headerStyle": "Estilo do Cabeçalho",
"headerStyleDescription": "Escolha como o topo da galeria aparece.",
"heroDividerStyle": "Estilo do Divisor",
"heroDividerDescription": "Transição entre a imagem de destaque e o conteúdo.",
"controlsStyle": "Estilo dos Controles",
"controlsStyleDescription": "Escolha como filtros e controles são exibidos.",
"controlsStyleOptions": {
"classic": "Clássico",
"sidebar": "Barra Lateral"
},
"controlsStyleDescriptions": {
"classic": "Barra de filtros abaixo do cabeçalho",
"sidebar": "Botão de menu abre lateral com filtros"
},
"controlsStyleHeroWarning": "A barra lateral é recomendada para cabeçalhos Hero.",
"betaThumbnailWarningTitle": "Baixa resolução de miniatura detectada",
"betaThumbnailWarningText": "Suas miniaturas são atualmente {{width}}×{{height}}px. Temas beta exibem fotos em tamanhos maiores e requerem pelo menos {{recommended}}×{{recommended}}px para boa qualidade. Aumente as dimensões das miniaturas em Configurações > Miniaturas e regenere.",
"betaThumbnailWarningLink": "Ir para configurações de miniaturas",
"logoSize": "Tamanho do logótipo",
"surfaceColor": "Superfície",
"elevatedColor": "Elevado",
"borderColor": "Borda",
"mutedTextColor": "Texto atenuado",
"accentDarkColor": "Destaque (preenchido)",
"syncFromBranding": "Sincronizar com identidade visual",
"forceColorMode": "Forçar modo de cor",
"forceColorModeHelp": "Bloqueia todo o site de administração e público em modo escuro ou claro. O botão de alternância escuro/claro fica oculto quando um bloqueio está ativo.",
"forceColorModeNone": "Sem forçar (escolha do utilizador)",
"forceColorModeDark": "Forçar modo escuro",
"forceColorModeLight": "Forçar modo claro",
"colorGroupSurfaces": "Superfícies",
"colorGroupSurfacesHelp": "As camadas neutras atrás do seu conteúdo. O fundo fica mais atrás; Superfície e Elevado ficam por cima.",
"backgroundColorHelp": "A própria página — fundo de cada galeria, página de administração e página CMS.",
"surfaceColorHelp": "Cartões, barra lateral, cabeçalho e navegação. A primeira camada acima do fundo.",
"elevatedColorHelp": "Painéis que flutuam acima dos cartões: espaços reservados para imagens, linhas ao passar o rato, cabeçalhos modais, blocos de código.",
"borderColorHelp": "Divisores, linhas de grelha de tabelas, contornos de cartões, bordas de inputs.",
"colorGroupText": "Texto",
"colorGroupTextHelp": "Cores de texto em primeiro plano. Primário para tudo em que os leitores se focam; Secundário para texto de apoio.",
"textColorHelp": "Títulos, corpo de texto, células de tabelas, valores de inputs, etiquetas de navegação — a cor principal do texto.",
"mutedTextColorHelp": "Legendas, texto de ajuda sob inputs, cabeçalhos de colunas, links de rodapé, datas e metadados.",
"colorGroupAccent": "Destaque",
"colorGroupAccentHelp": "Cores de marca que realçam elementos interativos. Use um par de cores forte — Destaque para contornos/texto, Destaque (preenchido) para botões preenchidos.",
"accentColorHelp": "Links, ícones, anéis de foco, estados ao passar o rato em botões primários, sublinhado do item ativo da barra lateral.",
"accentDarkColorHelp": "Botões CTA preenchidos, fundo do item ativo da barra lateral, distintivos e etiquetas. Necessita contraste suficiente para texto branco legível.",
"cssTemplate": "Modelo CSS",
"cssTemplateDescription": "Selecione um modelo CSS pré-construído para aplicar estilos globais a esta galeria. Os modelos podem ser geridos em Configurações > Modelos CSS.",
"noTemplate": "Sem modelo",
"noTemplateDescription": "Usar apenas as definições de tema sem modelo CSS",
"templateSlot": "Posição {{slot}}",
"eventCustomCSS": "CSS personalizado por evento",
"layoutDescriptions": {
"grid": "Grelha clássica com tamanhos de foto uniformes",
"masonry": "Estilo Pinterest com alturas variadas",
"carousel": "Apresentação a ecrã inteiro com navegação",
"timeline": "Fotos organizadas por data",
"mosaic": "Disposição artística com tamanhos mistos",
"gallery-premium": "Tema claro elegante com hero e masonry (Beta)",
"gallery-story": "Tema escuro cinemático com secções de cena (Beta)"
},
"headerStyleOptions": {
"hero": "Imagem Hero",
"standard": "Standard",
"banner": "Banner",
"minimal": "Mínimo",
"none": "Sem cabeçalho"
},
"headerStyleDescriptions": {
"hero": "Imagem de altura total com sobreposição de info do evento",
"standard": "Cabeçalho compacto com detalhes do evento",
"banner": "Cabeçalho standard com banner colorido acima",
"minimal": "Cabeçalho compacto com informações essenciais",
"none": "Ocultar cabeçalho completamente"
},
"dividerOptions": {
"none": "Nenhum",
"wave": "Onda",
"straight": "Reto",
"angle": "Ângulo",
"curve": "Curva"
}
},
"admin": {
"title": "Painel Admin",
"recentActivity": "Atividade Recente",
"storageUsed": "Espaço Utilizado",
"totalPhotos": "Total de Fotos",
"storagePercent": "{{percent}}% do limite de {{limit}}",
"storageSoftLimitConfigured": "Limite configurado: {{limit}}",
"storageSoftLimitRecommended": "Limite sugerido: {{limit}}",
"version": "Versão",
"archivedEvents": "Eventos Arquivados",
"systemHealth": "Saúde do Sistema",
"health": {
"checking": "Verificando...",
"healthy": "Saudável",
"warning": "Aviso",
"error": "Erro"
},
"updates": {
"available": "Atualização Disponível",
"newVersion": "Versão {{version}} disponível",
"currentVersion": "Atual: {{version}}",
"channel": "Canal: {{channel}}",
"channelStable": "Estável",
"channelBeta": "Beta",
"beta": "BETA",
"viewReleaseNotes": "Ver Notas de Lançamento",
"updateAvailableShort": "v{{version}} disponível",
"upToDate": "Sistema atualizado",
"updateNow": "Atualizar Agora",
"updateDialog": {
"title": "Atualizar PicPeak",
"detectedEnv": "Ambiente Detectado",
"beforeUpdating": "Antes de atualizar:",
"updateCommands": "Comandos de Atualização:",
"afterUpdating": "Após atualizar:",
"copyAllCommands": "Copiar Todos os Comandos",
"completeChecklist": "Complete a lista antes de atualizar",
"error": "Falha ao carregar instruções de atualização"
}
},
"notifications": "Notificações",
"markAllRead": "Marcar tudo como lido",
"clearAll": "Limpar tudo",
"close": "Fechar",
"noNotificationsMessage": "Nenhuma notificação",
"notificationMessages": {
"eventCreated": "Novo evento \"{{eventName}}\" criado",
"eventArchived": "Evento \"{{eventName}}\" arquivado",
"eventUpdated": "Evento \"{{eventName}}\" atualizado",
"eventDeleted": "Evento \"{{eventName}}\" excluído",
"photoDeleted": "Foto excluída de \"{{eventName}}\"",
"eventExpiring": "O evento \"{{eventName}}\" expira em {{days}} dias",
"eventExpired": "O evento \"{{eventName}}\" expirou",
"passwordChanged": "Senha alterada por {{actorName}}",
"passwordReset": "Senha redefinida para \"{{eventName}}\"",
"settingsUpdated": "Configurações de {{type}} atualizadas",
"emailTemplateUpdated": "Modelo de e-mail \"{{template}}\" atualizado",
"storageWarning": "Uso de armazenamento em {{percentage}}%",
"adminLogout": "Admin {{actorName}} saiu do sistema",
"categoryCreated": "Categoria \"{{name}}\" criada para \"{{eventName}}\"",
"categoryUpdated": "Categoria \"{{name}}\" atualizada para \"{{eventName}}\"",
"categoryDeleted": "Categoria \"{{name}}\" excluída de \"{{eventName}}\"",
"cmsPageUpdated": "Página CMS \"{{slug}}\" atualizada",
"emailConfigUpdated": "Configuração de e-mail atualizada",
"faviconUploaded": "Favicon enviado",
"brandingUpdated": "Configurações de marca atualizadas",
"generalSettingsUpdated": "Configurações gerais atualizadas",
"securitySettingsUpdated": "Configurações de segurança atualizadas",
"themeUpdated": "Configurações de tema atualizadas",
"archiveDownloaded": "Arquivo baixado para \"{{eventName}}\"",
"archiveDeleted": "Arquivo excluído de \"{{eventName}}\"",
"archiveRestored": "Arquivo restaurado para \"{{eventName}}\"",
"systemActivity": "Atividade do sistema: {{type}}",
"adminProfileUpdated": "Perfil admin atualizado por {{actorName}}",
"photosUploaded_many": "{{count}} fotos enviadas para \"{{eventName}}\"",
"photosUploaded_one": "{{count}} foto enviada para \"{{eventName}}\"",
"photosUploaded_other": "{{count}} fotos enviadas para \"{{eventName}}\"",
"photosBulkDeleted_many": "{{count}} fotos eliminadas de \"{{eventName}}\"",
"photosBulkDeleted_one": "{{count}} foto eliminada de \"{{eventName}}\"",
"photosBulkDeleted_other": "{{count}} fotos eliminadas de \"{{eventName}}\"",
"bulkDownload_many": "{{count}} fotos descarregadas de \"{{eventName}}\"",
"bulkDownload_one": "{{count}} foto descarregada de \"{{eventName}}\"",
"bulkDownload_other": "{{count}} fotos descarregadas de \"{{eventName}}\""
},
"notificationToasts": {
"markedAllRead": "Todas as notificações marcadas como lidas",
"clearedAll_many": "{{count}} notificações removidas",
"clearedAll_one": "{{count}} notificação removida",
"clearedAll_other": "{{count}} notificações removidas"
},
"changePassword": "Alterar Senha",
"darkMode": "Alternar para modo escuro",
"lightMode": "Alternar para modo claro",
"loadingDashboard": "Carregando painel...",
"activeEvents": "Eventos Ativos",
"expiringSoon": "Expirando em Breve",
"next7Days": "Próximos 7 dias",
"totalViews": "Total de Visualizações",
"downloads": "Downloads",
"percentFromLastWeek": "{{percent}}% em relação à última semana",
"dashboardSubtitle": "Bem-vindo! Confira o que está acontecendo nas suas galerias.",
"eventsExpiringSoon": "Eventos Expirando em Breve",
"noEventsExpiring": "Nenhum evento expira nos próximos 7 dias",
"noRecentActivity": "Nenhuma atividade recente",
"photos": {
"hidden": "Oculta",
"hideSelected": "Ocultar",
"showSelected": "Exibir",
"hiddenSuccess": "Fotos ocultadas dos visitantes",
"visibleSuccess": "Fotos agora visíveis aos visitantes",
"processingStatus": "A processar…",
"processingFailed": "Falhado",
"retryQueued": "Nova tentativa em fila"
},
"events": {
"tabs": {
"guests": "Convidados"
}
},
"daysLeft_many": "{{count}} dias restantes",
"daysLeft_one": "{{count}} dia restante",
"daysLeft_other": "{{count}} dias restantes",
"viewAllExpiringEvents_many": "Ver todos os {{count}} eventos a expirar",
"viewAllExpiringEvents_one": "Ver o {{count}} evento a expirar",
"viewAllExpiringEvents_other": "Ver todos os {{count}} eventos a expirar",
"guests": {
"loading": "A carregar…",
"aggregate": {
"empty": "Ainda sem seleções de convidados.",
"description": "Fotos ordenadas pelo número de convidados distintos que as gostaram ou marcaram como favoritas."
},
"inviteCreated": "Convite criado",
"inviteCreateError": "Falha ao criar convite",
"inviteRevoked": "Convite revogado",
"inviteRevokeError": "Falha ao revogar convite",
"invitesTitle": "Convites de convidados",
"createInvite": "Criar convite",
"inviteName": "Nome do convidado",
"inviteEmail": "E-mail (opcional)",
"generateInvite": "Gerar link de convite",
"existingInvites": "Convites existentes",
"noInvites": "Ainda sem convites",
"copyLink": "Copiar link",
"revokeInvite": "Revogar",
"deletedToast": "Convidado removido",
"deletedError": "Falha ao remover convidado",
"mergedToast": "Convidados fundidos",
"mergedError": "Falha ao fundir convidados",
"forgetGuestConfirm": "Remover este convidado? As suas seleções serão anonimizadas mas mantidas nos totais agregados.",
"exportError": "Falha na exportação",
"mergeSelectAtLeastTwo": "Selecione pelo menos 2 convidados para fundir",
"mergeConfirm_many": "Fundir {{count}} convidados com {{name}}? Esta ação é irreversível.",
"mergeConfirm_one": "Fundir {{count}} convidado com {{name}}? Esta ação é irreversível.",
"mergeConfirm_other": "Fundir {{count}} convidados com {{name}}? Esta ação é irreversível.",
"backToList": "Voltar à lista",
"title": "Convidados",
"mergeSelected_many": "{{count}} selecionados",
"mergeSelected_one": "{{count}} selecionado",
"mergeSelected_other": "{{count}} selecionados",
"mergeNow": "Fundir selecionados",
"aggregateView": "Por popularidade",
"mergeMode": "Fundir",
"exportAll": "Exportar tudo",
"empty": "Ainda sem convidados registados.",
"columns": {
"name": "Nome",
"email": "E-mail",
"likes": "Gostos",
"favorites": "Favoritos",
"comments": "Comentários",
"ratings": "Avaliações",
"lastSeen": "Última visita"
},
"view": "Ver detalhes",
"export": "Exportar",
"forgetGuest": "Remover convidado",
"loadingDetail": "A carregar seleções…",
"detail": {
"noComments": "Sem comentários",
"empty": "Sem seleções nesta categoria",
"all": "Todos",
"liked": "Gostou",
"favorited": "Favorito",
"rated": "Avaliado",
"commented": "Comentado"
},
"inviteStatus": {
"pending": "Pendente",
"redeemed": "Utilizado",
"revoked": "Revogado"
}
},
"analytics": "Análise",
"activities": {
"event_created": "Novo evento criado: {{eventName}}",
"photos_uploaded": "{{count}} fotos carregadas para {{eventName}}",
"event_archived": "Evento arquivado: {{eventName}}",
"archive_restored": "Arquivo restaurado: {{eventName}}",
"archive_deleted": "Arquivo eliminado: {{eventName}}",
"archive_downloaded": "Arquivo descarregado: {{eventName}}",
"email_config_updated": "Configuração de e-mail atualizada",
"email_template_updated": "Modelo de e-mail atualizado: {{template}}",
"branding_updated": "Definições de identidade visual atualizadas",
"theme_updated": "Definições de tema atualizadas",
"bulk_download": "{{count}} fotos descarregadas de {{eventName}}",
"gallery_password_entry": "Palavra-passe inserida para {{eventName}}",
"expiration_warning_viewed": "Aviso de expiração visualizado para {{eventName}}",
"event_updated": "Evento atualizado: {{eventName}}",
"event_deleted": "Evento eliminado: {{eventName}}",
"event_activated": "Evento ativado: {{eventName}}",
"event_deactivated": "Evento desativado: {{eventName}}",
"bulk_archive_completed": "Arquivamento em massa concluído",
"photo_deleted": "Foto eliminada de {{eventName}}",
"photos_bulk_deleted": "{{count}} fotos eliminadas de {{eventName}}",
"password_changed": "Palavra-passe alterada",
"admin_logout": "Admin {{actorName}} terminou sessão",
"category_created": "Categoria criada: {{categoryName}}",
"category_updated": "Categoria atualizada: {{categoryName}}",
"category_deleted": "Categoria eliminada: {{categoryName}}",
"feedback_settings_updated": "Definições de feedback atualizadas",
"feedback_moderated": "Feedback moderado",
"feedback_deleted": "Feedback eliminado",
"word_filter_added": "Filtro de palavras adicionado",
"cms_page_updated": "Página CMS atualizada: {{page}}",
"email_resent": "E-mail de criação reenviado para: {{eventName}}",
"settings_updated": "Definições atualizadas",
"favicon_uploaded": "Favicon carregado",
"password_reset": "Palavra-passe redefinida para: {{eventName}}",
"external_import_completed": "Importação de média externo concluída ({{imported}} importados, {{skipped}} ignorados)",
"photo_like": "Foto curtida em {{eventName}}",
"photo_favorite": "Foto adicionada aos favoritos em {{eventName}}",
"general_settings_updated": "Definições gerais atualizadas",
"analytics_settings_updated": "Definições de análise atualizadas",
"security_settings_updated": "Definições de segurança atualizadas",
"event_renamed": "Evento renomeado: {{eventName}}",
"photo_rating": "Foto avaliada em {{eventName}}",
"photo_comment": "Foto comentada em {{eventName}}",
"guest_feedback_like": "Convidado curtiu uma foto em {{eventName}}",
"guest_feedback_favorite": "Convidado adicionou uma foto aos favoritos em {{eventName}}",
"guest_feedback_rating": "Convidado avaliou uma foto em {{eventName}}",
"guest_feedback_comment": "Convidado comentou uma foto em {{eventName}}",
"system_activity": "Atividade do sistema: {{type}}",
"unknown": "Atividade desconhecida"
}
},
"acceptInvitation": {
"title": "Aceitar Convite",
"subtitle": "Crie sua conta administrativa",
"validating": "Validando convite...",
"invalidToken": "Convite Inválido",
"invalidTokenMessage": "Este link de convite é inválido ou expirou. Contate o administrador.",
"alreadyUsedMessage": "Este convite já foi usado para criar uma conta.",
"invitedAs": "Você foi convidado como",
"expiresAt": "O convite expira em",
"usernameLabel": "Usuário",
"usernamePlaceholder": "Escolha um nome de usuário",
"usernameHelp": "3-50 caracteres, apenas letras, números, sublinhados e hífens",
"passwordLabel": "Senha",
"passwordPlaceholder": "Crie uma senha forte",
"confirmPasswordLabel": "Confirmar Senha",
"confirmPasswordPlaceholder": "Confirme sua senha",
"passwordStrength": "Força da senha",
"requirements": {
"title": "Requisitos da senha:",
"minLength": "Pelo menos 12 caracteres",
"uppercase": "Pelo menos uma letra maiúscula",
"lowercase": "Pelo menos uma letra minúscula",
"number": "Pelo menos um número",
"special": "Pelo menos um caractere especial"
},
"strength": {
"weak": "Fraca",
"fair": "Razoável",
"good": "Boa",
"strong": "Forte"
},
"createAccount": "Criar Conta",
"success": "Conta Criada!",
"successMessage": "Sua conta foi criada com sucesso. Você já pode fazer login.",
"redirecting": "Redirecionando para login em {{seconds}}s...",
"goToLogin": "Ir para Login",
"contactAdminMessage": "Entre em contato com o administrador para solicitar um novo convite.",
"passwordsMatch": "As senhas coincidem",
"alreadyHaveAccount": "Já possui uma conta?",
"signIn": "Entrar",
"errors": {
"usernameRequired": "Usuário é obrigatório",
"usernameTooShort": "Usuário deve ter pelo menos 3 caracteres",
"usernameTooLong": "Usuário deve ter no máximo 50 caracteres",
"usernameInvalid": "O usuário só pode conter letras, números, sublinhados e hífens",
"passwordRequired": "Senha é obrigatória",
"passwordsDoNotMatch": "As senhas não coincidem",
"confirmPasswordRequired": "Confirme sua senha",
"genericError": "Falha ao criar conta. Tente novamente."
}
},
"errors": {
"galleryNotFound": "Galeria Não Encontrada",
"galleryNotFoundMessage": "Esta galeria não existe ou foi removida.",
"somethingWentWrong": "Algo deu errado",
"tryAgainLater": "Tente novamente mais tarde",
"refreshPage": "Atualizar Página",
"oopsSomethingWentWrong": "Ops! Algo deu errado",
"unexpectedError": "Encontramos um erro inesperado. Não se preocupe, seus dados estão seguros.",
"goToHomepage": "Ir para Página Inicial",
"errorDetails": "Detalhes do Erro",
"requiredFields": "Preencha todos os campos obrigatórios",
"enterTestEmail": "Insira um endereço de e-mail para teste",
"eventCreationFailed": "Criação de evento falhou",
"noShareLink": "Nenhum link de partilha disponível",
"copyFailed": "Falha ao copiar link"
},
"validation": {
"eventNameRequired": "O nome do evento é obrigatório",
"hostEmailRequired": "O e-mail do cliente é obrigatório",
"hostNameRequired": "O nome do cliente é obrigatório",
"adminEmailRequired": "O e-mail do admin é obrigatório",
"invalidEmailFormat": "Formato de e-mail inválido",
"passwordRequired": "Senha é obrigatória",
"passwordMinLength": "A senha deve ter pelo menos 6 caracteres",
"passwordsDoNotMatch": "As senhas não coincidem",
"expirationRange": "A expiração deve ser entre 1 e 365 dias",
"required": "Este campo é obrigatório",
"expirationRequired": "A data de expiração é obrigatória.",
"eventDateRequired": "A data do evento é obrigatória",
"passwordTooSimple": "A senha não pode ser apenas números. Considere um formato como \"04.07.2025\""
},
"legal": {
"impressum": "Aviso Legal",
"datenschutz": "Política de Privacidade"
},
"toast": {
"saveSuccess": "Alterações salvas com sucesso",
"saveError": "Falha ao salvar alterações",
"deleteSuccess": "Excluído com sucesso",
"deleteError": "Falha ao excluir",
"uploadSuccess": "Envio concluído com sucesso",
"uploadError": "Falha no envio",
"linkCopied": "Link copiado para a área de transferência",
"eventCreated": "Evento criado com sucesso",
"eventUpdated": "Evento atualizado com sucesso",
"eventArchived": "Evento arquivado com sucesso",
"settingsSaved": "Configurações salvas com sucesso",
"themeUpdated": "Tema atualizado com sucesso",
"brandingUpdated": "Identidade visual atualizada com sucesso",
"categoryUpdated": "Categoria atualizada com sucesso",
"emailConfigSaved": "Configuração de e-mail salva com sucesso",
"brandingThemeMissing": "Ainda não foi guardado nenhum tema de identidade visual.",
"brandingPaletteSynced": "Paleta sincronizada com a identidade visual."
},
"email": {
"title": "Configuração de E-mail",
"subtitle": "Configure os ajustes de e-mail para notificações",
"loadingSettings": "Carregando configurações de e-mail...",
"smtpConfiguration": "Configuração SMTP",
"smtpHost": "Servidor SMTP",
"fromEmail": "E-mail de Origem",
"fromName": "Nome do Remetente",
"emailTemplates": "Modelos de E-mail",
"smtpSettings": "Configurações SMTP",
"testEmailSuccess": "E-mail de teste enviado com sucesso",
"saveSmtpSettings": "Salvar Ajustes SMTP",
"testEmailSection": "E-mail de Teste",
"beforeTesting": "Antes de testar:",
"saveSmtpFirst": "Salve suas configurações SMTP primeiro",
"ensureFirewall": "Garanta que seu firewall permite saída SMTP",
"gmailAppPassword": "Para Gmail, use uma senha de aplicativo",
"testEmailAddressLabel": "Endereço de E-mail de Teste",
"sendTestEmailButton": "Enviar E-mail de Teste",
"commonSmtpSettings": "Configurações SMTP comuns:",
"editTemplate": "Editar Modelo",
"templateName": "Nome do Modelo",
"subjectLine": "Linha de Assunto",
"emailBody": "Corpo do E-mail",
"preview": "Visualizar",
"save": "Salvar",
"templates": "Modelos",
"port": "Porta",
"security": "Segurança",
"username": "Usuário",
"password": "Senha",
"enterPassword": "Digite a senha",
"ignoreSslErrors": "Ignorar erros de certificado SSL/TLS",
"ignoreSslWarning": "Aviso: Desabilitar a verificação torna a conexão vulnerável. Ative apenas se confiar no servidor.",
"brandingTitle": "Identidade Visual do Email",
"brandingDescription": "Personalize as cores usadas nos modelos de email. As alterações se aplicam à barra de cabeçalho, botões, links e fundo do rodapé.",
"primaryColor": "Cor Primária",
"secondaryColor": "Fundo do Rodapé",
"saveEmailColors": "Salvar Cores do Email",
"editor": {
"bold": "Negrito",
"italic": "Itálico",
"bulletList": "Lista com Marcadores",
"numberedList": "Lista Numerada",
"blockquote": "Citação",
"link": "Adicionar Link",
"horizontalRule": "Linha Horizontal",
"alignLeft": "Alinhar à Esquerda",
"alignCenter": "Centralizar",
"alignRight": "Alinhar à Direita",
"clearFormatting": "Limpar Formatação",
"undo": "Desfazer",
"redo": "Refazer",
"insertVariable": "Inserir Variável",
"sourceMode": "Código",
"visualMode": "Visual",
"enterUrl": "Digite a URL...",
"addLink": "Adicionar",
"cancel": "Cancelar"
},
"copiedFromLanguage": "Conteúdo copiado de {{language}}",
"noTranslation": "Ainda sem tradução",
"noTranslationYet": "Ainda não existe tradução para este idioma. Copie de um idioma existente para começar:",
"copyFrom": "Copiar de",
"syncedFromBranding": "Cores de e-mail sincronizadas com a identidade visual. Clique em Guardar para aplicar.",
"syncFromBranding": "Sincronizar com identidade visual",
"primaryColorHelp": "Barra de cabeçalho, títulos H2, fundo dos botões, cor dos links. Corresponde a Identidade Visual → Destaque (preenchido).",
"secondaryColorHelp": "Fundo da barra de rodapé. Corresponde a Identidade Visual → Superfície.",
"bodyBgColor": "Fundo da página",
"bodyBgColorHelp": "O envoltório à volta do cartão de e-mail — o que o destinatário vê atrás do e-mail. Corresponde a Identidade Visual → Fundo.",
"containerBgColor": "Cartão de e-mail",
"containerBgColorHelp": "O cartão branco que contém o conteúdo do e-mail. Corresponde a Identidade Visual → Superfície.",
"listBgColor": "Painel de informação",
"listBgColorHelp": "Fundo dos painéis de informação com marcadores no corpo do e-mail. Corresponde a Identidade Visual → Elevado.",
"bodyTextColor": "Texto do corpo",
"bodyTextColorHelp": "Cor de parágrafos e texto a negrito. Corresponde a Identidade Visual → Texto primário.",
"mutedTextColor": "Texto do rodapé",
"mutedTextColorHelp": "Texto do rodapé e linha de copyright. Corresponde a Identidade Visual → Texto secundário.",
"buttonTextColor": "Texto dos botões",
"buttonTextColorHelp": "Cor do texto em botões preenchidos. Deve contrastar bem com a cor primária. Geralmente branco."
},
"cms": {
"title": "Páginas CMS",
"subtitle": "Gerenciar páginas legais e informativas",
"loadingPages": "Carregando páginas...",
"pages": "Páginas",
"previewLinks": "Links de Prévia",
"englishVersion": "Versão em Inglês",
"germanVersion": "Versão em Alemão",
"editPage": "Editar {{page}}",
"pageTitle": "Título da Página",
"pageContent": "Conteúdo da Página",
"pageTitlePlaceholder": "Digite o título da página...",
"lastUpdated": "Última atualização:",
"pageUpdated": "Página atualizada com sucesso",
"useExternalUrl": "Usar URL externa",
"useExternalUrlHelp": "Redirecione os visitantes para uma página externa em vez de mostrar o conteúdo interno. O título e o conteúdo internos permanecem salvos como fallback.",
"externalUrl": "URL externa",
"externalUrlPlaceholder": "https://example.com/impressum",
"externalUrlInvalid": "Deve ser uma URL https:// válida",
"externalUrlActive": "URL externa está ativa — o conteúdo interno é preservado, mas não é exibido aos visitantes.",
"logoUploaded": "Logótipo enviado",
"logoCleared": "Logótipo removido",
"pageLogo": "Logótipo da página",
"pageLogoHelp": "Opcional. Se definido, é usado em vez do logótipo global da identidade visual nesta página.",
"noLogo": "sem substituição",
"replaceLogo": "Substituir logótipo",
"uploadLogo": "Enviar logótipo",
"clearLogo": "Usar padrão do site"
},
"eventTypes": {
"title": "Tipos de Evento",
"subtitle": "Personalize os tipos de evento e seus temas padrão",
"loading": "Carregando tipos de evento...",
"loadError": "Falha ao carregar tipos de evento",
"createNew": "Novo Tipo de Evento",
"edit": "Editar Tipo de Evento",
"created": "Tipo de evento criado com sucesso",
"updated": "Tipo de evento atualizado com sucesso",
"deleted": "Tipo de evento excluído com sucesso",
"createError": "Falha ao criar tipo de evento",
"updateError": "Falha ao atualizar tipo de evento",
"deleteError": "Falha ao excluir tipo de evento",
"searchPlaceholder": "Buscar tipos de evento...",
"showInactive": "Mostrar inativos",
"noResults": "Nenhum tipo de evento encontrado",
"empty": "Nenhum tipo de evento cadastrado",
"system": "Sistema",
"table": {
"type": "Tipo",
"slugPrefix": "Prefixo de URL",
"theme": "Tema Padrão",
"status": "Status",
"actions": "Ações"
},
"form": {
"name": "Nome de Exibição",
"namePlaceholder": "ex: Ensaio de Família",
"slugPrefix": "Prefixo de URL",
"slugPrefixPlaceholder": "ex: familia",
"slugPreview": "Exemplo de URL:",
"emoji": "Ícone",
"themePreset": "Tema Padrão",
"isActive": "Ativo (visível na criação de eventos)"
},
"validation": {
"slugFormat": "Apenas letras, números e hífens permitidos"
},
"slugInfo": {
"title": "Informação do Prefixo de URL:",
"description": "O prefixo é usado para gerar a URL da galeria. Ex: um tipo \"família\" criará URLs como familia-silva-2025."
},
"deleteConfirm": {
"title": "Excluir Tipo de Evento",
"message": "Tem certeza que deseja excluir",
"warning": "Esta ação não pode ser desfeita. Certifique-se de que nenhum evento usa este tipo."
}
},
"backup": {
"title": "Gerenciamento de Backup",
"subtitle": "Gerencie backups do sistema, configure backups automáticos e restaure dados.",
"tabs": {
"dashboard": "Painel",
"configuration": "Configuração",
"history": "Histórico de Backups",
"restore": "Restaurar"
},
"status": {
"inProgress": "Backup em progresso...",
"lastBackup": "Último backup",
"noBackups": "Nenhum backup encontrado",
"nextBackup": "Próximo backup",
"notScheduled": "Não agendado",
"enabled": "Ativado",
"disabled": "Desativado"
},
"actions": {
"runBackupNow": "Executar Backup Agora",
"starting": "Iniciando...",
"testConnection": "Testar Conexão",
"delete": "Excluir",
"view": "Ver Detalhes",
"download": "Baixar"
},
"dashboard": {
"health": {
"title": "Saúde do Backup"
},
"healthMessages": {
"noBackups": "Nenhum backup encontrado",
"lastBackupFailed": "O último backup falhou",
"upToDate": "Backup atualizado",
"recent": "Backup recente",
"gettingOld": "Backup ficando antigo",
"outdated": "Backup desatualizado"
},
"stats": {
"totalBackups": "Total de Backups",
"backupSize": "Tamanho do Backup",
"lastDuration": "Última Duração",
"backupStatus": "Status do Backup",
"last": "Último",
"files": "arquivos",
"active": "Ativo",
"inactive": "Inativo",
"noBackupsYet": "Ainda sem backups"
},
"recentActivity": {
"title": "Atividade Recente de Backup"
},
"notConfigured": {
"title": "Backup Não Configurado",
"message": "Configure as definições de backup na aba Configuração antes de executar."
},
"actions": {
"runBackupNow": "Executar Backup Agora",
"running": "Executando..."
},
"coverage": {
"title": "Cobertura do Backup",
"included": "Incluído",
"excluded": "Excluído"
},
"storageDestination": "Destino do Armazenamento",
"backupType": "Backup {{type}}",
"noDestinationSet": "Nenhum destino definido",
"healthStatus": {
"warning": "Aviso",
"excellent": "Excelente",
"good": "Bom",
"critical": "Crítico"
}
},
"configuration": {
"enableBackup": "Ativar Backups Automáticos",
"enableBackupHelp": "Criar backups automaticamente conforme o agendamento",
"destinationType": "Destino do Backup",
"destinationTypes": {
"local": {
"name": "Armazenamento Local",
"description": "Armazena no sistema de arquivos do servidor local"
},
"rsync": {
"name": "Servidor Remoto (Rsync)",
"description": "Sincroniza backups para um servidor remoto via SSH"
},
"s3": {
"name": "Armazenamento S3 Compatível",
"description": "Armazena no Amazon S3 ou storage compatível"
}
},
"fields": {
"destinationPath": "Caminho de Destino",
"destinationPathHelp": "Diretório local para armazenar os backups",
"destinationPathPlaceholder": "/caminho/para/diretorio/de/backup",
"rsyncHost": "Host Remoto",
"rsyncHostPlaceholder": "backup.exemplo.com",
"rsyncUser": "Usuário SSH",
"rsyncUserPlaceholder": "usuario-backup",
"rsyncPath": "Caminho Remoto",
"rsyncPathPlaceholder": "/home/backup/fotos",
"rsyncSshKey": "Chave Privada SSH",
"rsyncSshKeyHelp": "Chave SSH para autenticação (opcional)",
"rsyncSshKeyPlaceholder": "-----BEGIN RSA PRIVATE KEY-----",
"s3Endpoint": "Endpoint S3",
"s3EndpointHelp": "URL da API S3 (ex: s3.amazonaws.com)",
"s3Bucket": "Nome do Bucket",
"s3AccessKey": "ID da Chave de Acesso",
"s3SecretKey": "Chave de Acesso Secreta",
"s3Region": "Região"
},
"schedule": {
"title": "Agendamento de Backup",
"scheduleType": "Tipo de Agendamento",
"options": {
"hourly": "A cada hora",
"daily": "Diário",
"weekly": "Semanal",
"custom": "Expressão cron personalizada"
},
"customCron": "Expressão Cron",
"customCronHelp": "Insira uma expressão cron válida (ex: 0 3 * * *)",
"retention": "Período de Retenção",
"retentionDays": "Manter backups por",
"retentionHelp": "dias (backups antigos serão excluídos automaticamente)"
},
"whatToBackup": {
"title": "O que incluir no Backup",
"database": "Banco de Dados",
"databaseHelp": "Todos os eventos, configurações e dados",
"photos": "Fotos",
"photosHelp": "Todas as fotos originais nas galerias ativas",
"archives": "Arquivos",
"archivesHelp": "Arquivos ZIP de eventos arquivados",
"thumbnails": "Miniaturas",
"thumbnailsHelp": "Imagens de prévia geradas (podem ser recriadas)"
},
"advancedOptions": {
"title": "Opções Avançadas",
"compression": "Ativar Compressão",
"compressionHelp": "Comprime os arquivos para economizar espaço",
"encryption": "Ativar Criptografia",
"encryptionHelp": "Criptografa os backups para maior segurança",
"encryptionPassphrase": "Frase de Senha da Criptografia",
"encryptionPassphraseHelp": "Senha forte para criptografar os backups"
},
"messages": {
"requiredFields": "Preencha todos os campos obrigatórios",
"connectionSuccess": "Teste de conexão bem-sucedido!",
"connectionFailed": "Teste de conexão falhou"
},
"testingConnection": "Testando conexão...",
"saveSettings": "Salvar Configuração",
"savingSettings": "Salvando..."
},
"history": {
"searchPlaceholder": "Buscar backups...",
"columns": {
"status": "Status",
"dateTime": "Data e Hora",
"type": "Tipo",
"size": "Tamanho",
"duration": "Duração",
"actions": "Ações"
},
"details": {
"backupDetails": "Detalhes do Backup",
"destination": "Destino",
"started": "Iniciado",
"completed": "Concluído",
"contentBackedUp": "Conteúdo Incluído",
"errorDetails": "Detalhes do Erro",
"manifest": "Manifesto"
},
"pagination": {
"showing": "Mostrando {{from}}-{{to}} de {{total}} backups",
"previous": "Anterior",
"next": "Próximo"
}
},
"restore": {
"steps": {
"selectSource": "Selecionar Origem",
"chooseBackup": "Escolher Backup",
"restoreOptions": "Opções de Restauração",
"reviewConfirm": "Revisar e Confirmar",
"progress": "Progresso da Restauração"
},
"source": {
"title": "Selecionar Origem do Backup",
"subtitle": "Escolha de onde restaurar o backup",
"local": {
"name": "Backup Local",
"description": "Restaurar do sistema de arquivos local"
},
"s3": {
"name": "Armazenamento S3",
"description": "Restaurar de um bucket S3"
},
"upload": {
"name": "Enviar Backup",
"description": "Fazer upload de um arquivo de backup",
"comingSoon": "Funcionalidade de upload disponível em breve"
},
"configuration": {
"s3": "Configuração S3",
"endpoint": "URL do Endpoint S3",
"bucket": "Nome do Bucket",
"accessKey": "ID da Chave de Acesso",
"secretKey": "Chave de Acesso Secreta"
}
},
"backup": {
"title": "Escolher Backup para Restaurar",
"subtitle": "Selecione entre os backups disponíveis",
"noBackupsFound": "Nenhum backup encontrado na origem selecionada",
"encrypted": "Backup Criptografado",
"encryptedMessage": "Você precisará da frase de senha para restaurar este backup.",
"enterPassphrase": "Digite a frase de senha da criptografia",
"at": "em"
},
"restoreTypes": {
"full": {
"name": "Restauração Completa",
"description": "Restaura tudo: banco, fotos e arquivos",
"warning": "Isso substituirá todos os dados atuais"
},
"database": {
"name": "Apenas Banco de Dados",
"description": "Restaura apenas as configurações, eventos e usuários",
"warning": "O banco de dados atual será substituído"
},
"files": {
"name": "Apenas Arquivos",
"description": "Restaura apenas fotos e arquivos ZIP",
"warning": "Arquivos existentes podem ser sobrescritos"
},
"selective": {
"name": "Restauração Seletiva",
"description": "Escolha itens específicos para restaurar",
"warning": "Apenas os itens selecionados serão restaurados"
}
},
"options": {
"title": "Opções de Restauração",
"subtitle": "Escolha o que restaurar",
"additionalOptions": {
"title": "Opções Adicionais",
"skipPreBackup": "Pular Backup de Segurança",
"skipPreBackupHelp": "Por padrão, um backup é criado antes da restauração. Marque para pular.",
"force": "Forçar Restauração",
"forceHelp": "Ignora verificações de segurança (use com cautela)"
}
},
"confirmation": {
"title": "Revisar e Confirmar",
"subtitle": "Verifique sua configuração de restauração",
"validation": {
"passed": "Validação Concluída",
"failed": "Validação Falhou",
"checking": "Validando configuração de restauração..."
},
"spaceCheck": {
"title": "Espaço de Armazenamento",
"required": "Necessário",
"available": "Disponível",
"insufficient": "Espaço insuficiente em disco"
},
"summary": {
"title": "Resumo da Restauração",
"source": "Origem",
"backupDate": "Data do Backup",
"restoreType": "Tipo de Restauração",
"preBackup": "Backup Prévio",
"enabled": "Ativado",
"skipped": "Pulado"
},
"warning": {
"title": "Aviso Importante",
"message": "Esta operação substituirá dados existentes. Certifique-se de ter um backup recente. Esta ação não pode ser desfeita."
}
},
"progress": {
"title": "Progresso da Restauração",
"inProgress": "Restauração em andamento...",
"completed": "Restauração concluída",
"overallProgress": "Progresso Geral",
"current": "Atual",
"statusDetails": "Detalhes do Status",
"restoreLogs": "Logs da Restauração",
"success": {
"title": "Restauração Concluída com Sucesso",
"message": "Seus dados foram restaurados. Verifique se tudo está funcionando corretamente."
}
},
"actions": {
"back": "Voltar",
"next": "Próximo",
"startRestore": "Iniciar Restauração",
"starting": "Iniciando...",
"validating": "Validando...",
"startNewRestore": "Iniciar Nova Restauração"
}
},
"messages": {
"backupStarted": "Backup iniciado com sucesso",
"backupFailed": "Falha ao iniciar backup",
"configUpdated": "Configuração de backup atualizada",
"configUpdateFailed": "Falha ao atualizar configuração"
}
},
"cssTemplates": {
"title": "Modelos CSS Personalizados",
"template": "Modelo",
"templateName": "Nome do Modelo",
"enableTemplate": "Ativar este modelo",
"enableHint": "Modelos ativados podem ser selecionados ao criar eventos",
"cssContent": "Conteúdo CSS",
"cssHint": "Use .gallery-page para aplicar estilos. Variáveis disponíveis: --gallery-bg, --gallery-text, --gallery-accent",
"securityNotice": "Aviso de Segurança",
"securityText": "O CSS é higienizado por segurança. URLs externas, @import e expressões JavaScript são bloqueados.",
"resetToDefault": "Redefinir para o Padrão",
"resetConfirm": "Redefinir este modelo? Suas alterações serão perdidas.",
"unsavedChanges": "Alterações não salvas",
"saveTemplate": "Salvar Modelo",
"lastUpdated": "Última atualização",
"saved": "Modelo salvo com sucesso",
"saveFailed": "Falha ao salvar modelo",
"sanitizationWarning": "Alguns padrões CSS foram bloqueados por segurança",
"reset": "Modelo redefinido para o padrão",
"resetFailed": "Falha ao redefinir modelo"
},
"maintenance": {
"title": "Manutenção do Sistema",
"message": "Estamos realizando uma manutenção programada para melhorar nosso serviço. Voltaremos em breve.",
"urgentMatters": "Para assuntos urgentes, contate"
},
"passwordChange": {
"title": "Alterar Senha",
"currentPassword": "Senha Atual",
"newPassword": "Nova Senha",
"confirmPassword": "Confirmar Nova Senha",
"currentPasswordPlaceholder": "Digite a senha atual",
"newPasswordPlaceholder": "Digite a nova senha",
"confirmPasswordPlaceholder": "Confirme a nova senha",
"requirements": "Requisitos da Senha:",
"minLength": "Pelo menos 6 caracteres",
"mustDiffer": "Deve ser diferente da senha atual",
"success": "Senha alterada com sucesso",
"failed": "Falha ao alterar senha",
"currentRequired": "Senha atual é obrigatória",
"newRequired": "Nova senha é obrigatória",
"minLengthError": "A senha deve ter pelo menos 6 caracteres",
"confirmRequired": "Confirme sua nova senha",
"noMatch": "As senhas não coincidem",
"mustBeDifferent": "A nova senha deve ser diferente da atual",
"cancel": "Cancelar"
},
"mandatoryPasswordChange": {
"title": "Alteração de Senha Obrigatória",
"description": "Por motivos de segurança, você deve alterar sua senha antes de acessar o painel admin.",
"success": "Senha alterada com sucesso! Você já pode acessar o painel.",
"minLength": "Pelo menos 12 caracteres",
"mustContainUpperLower": "Deve conter letras maiúsculas e minúsculas",
"mustContainNumbers": "Deve conter números",
"mustContainSpecial": "Deve conter caracteres especiais (!@#$%^&*)",
"minLengthError": "A senha deve ter pelo menos 12 caracteres",
"mustContainLowercase": "A senha deve conter letras minúsculas",
"mustContainUppercase": "A senha deve conter letras maiúsculas",
"mustContainNumbersError": "A senha deve conter números",
"mustContainSpecialError": "A senha deve conter caracteres especiais"
},
"offline": {
"backOnline": "De volta online",
"noConnection": "Sem conexão com a internet"
},
"download": {
"downloading": "Baixando...",
"percentComplete": "% concluído"
},
"passwordGenerator": {
"weak": "Fraca",
"fair": "Razoável",
"good": "Boa",
"strong": "Forte",
"generating": "Gerando...",
"generatePassword": "Gerar Senha",
"showSuggestions": "Mostrar sugestões de senha",
"moreOptions": "Mais Opções",
"suggestions": "Sugestões de Senha",
"characters": "caracteres",
"copyPassword": "Copiar senha",
"use": "Usar",
"pattern": "Padrão:",
"patternDescription": "As senhas são geradas usando o nome e data do evento. Ex: \"Evento2024$Agosto\" para melhor memorização."
},
"feedback": {
"comments": "Comentários",
"addComment": "Adicionar Comentário",
"yourName": "Seu nome",
"yourEmail": "Seu e-mail",
"writeComment": "Escreva um comentário...",
"submit": "Enviar",
"commentSubmitted": "Comentário enviado",
"commentError": "Falha ao enviar comentário",
"rateLimited": "Aguarde antes de comentar novamente",
"commentRequired": "Comentário é obrigatório",
"nameRequired": "Nome é obrigatório",
"emailRequired": "E-mail é obrigatório",
"anonymous": "Anônimo",
"pendingApproval": "Aguardando aprovação",
"noComments": "Ainda sem comentários. Seja o primeiro!",
"rating": "Avaliação",
"likes": "Curtidas",
"settings": {
"title": "Configurações de Feedback de Convidados",
"enableFeedback": "Ativar feedback",
"feedbackTypes": "Tipos de Feedback",
"ratings": "Avaliações por Estrelas",
"ratingsDesc": "Permite avaliar fotos (1-5 estrelas)",
"likes": "Curtidas",
"likesDesc": "Funcionalidade simples de curtir",
"comments": "Comentários",
"commentsDesc": "Comentários em texto nas fotos",
"favorites": "Favoritos",
"favoritesDesc": "Marcar fotos como favoritas",
"identityMode": "Modo de identidade",
"identityModeSimple": "Feedback simples",
"identityModeSimpleDesc": "Anónimo, baseado no dispositivo. Todos os visitantes no mesmo dispositivo partilham o estado.",
"identityModeGuest": "Seleções por convidado",
"identityModeGuestDesc": "Cada visitante introduz o seu nome. Ativa o rastreamento por convidado e informações de administração.",
"privacyModeration": "Privacidade e Moderação",
"requireInfo": "Exigir nome e e-mail",
"requireInfoDesc": "Os convidados devem fornecer nome e e-mail para deixar feedback",
"moderateComments": "Moderar comentários",
"moderateCommentsDesc": "Os comentários necessitam de aprovação antes de serem visíveis",
"showToGuests": "Mostrar feedback aos convidados",
"showToGuestsDesc": "Outros convidados podem ver avaliações, gostos e comentários aprovados",
"enableRateLimiting": "Ativar limitação de taxa",
"rateLimitingDesc": "Previne spam limitando a frequência de feedback",
"timeWindow": "Janela de tempo (minutos)",
"maxRequests": "Pedidos máx."
},
"settingsUpdated": "Definições de feedback atualizadas",
"settingsUpdateError": "Falha ao atualizar definições",
"moderated": "Feedback moderado",
"deleted": "Feedback eliminado",
"exported": "Feedback exportado",
"exportError": "Falha ao exportar feedback",
"title": "Gestão de feedback",
"exportCSV": "Exportar CSV",
"exportJSON": "Exportar JSON",
"tabs": {
"settings": "Definições",
"feedback": "Feedback",
"analytics": "Análise",
"moderation": "Moderação"
},
"allTypes": "Todos os tipos",
"types": {
"rating": "Avaliações",
"like": "Gostos",
"comment": "Comentários",
"favorite": "Favoritos"
},
"allStatuses": "Todos os estados",
"status": {
"pending": "Pendente",
"approved": "Aprovado",
"hidden": "Oculto"
},
"noFeedback": "Sem feedback encontrado",
"approve": "Aprovar",
"hide": "Ocultar",
"unhide": "Mostrar",
"confirmDelete": "Tem a certeza que quer eliminar este feedback?",
"avgRating": "Avaliação média",
"totalRatings_many": "{{count}} avaliações",
"totalRatings_one": "{{count}} avaliação",
"totalRatings_other": "{{count}} avaliações",
"totalLikes": "Total de gostos",
"totalComments": "Total de comentários",
"pendingModeration_many": "{{count}} pendentes",
"pendingModeration_one": "{{count}} pendente",
"pendingModeration_other": "{{count}} pendentes",
"totalInteractions": "Interações totais",
"topRated": "Fotos mais bem avaliadas",
"recentComments": "Comentários recentes",
"wordFilters": "Filtros de palavras",
"wordFiltersDesc": "Gerir palavras bloqueadas para moderação de comentários",
"manageFilters": "Gerir filtros de palavras",
"manage": "Gerir feedback",
"ratingSubmitted": "Avaliação submetida",
"ratingError": "Falha ao submeter avaliação",
"rateStar_many": "Avaliar {{count}} estrelas",
"rateStar_one": "Avaliar {{count}} estrela",
"rateStar_other": "Avaliar {{count}} estrelas",
"ratingsCount_many": "{{count}} avaliações",
"ratingsCount_one": "{{count}} avaliação",
"ratingsCount_other": "{{count}} avaliações",
"likeError": "Falha ao atualizar gosto",
"unlike": "Remover gosto",
"like": "Gostar",
"favoriteError": "Falha ao atualizar favorito",
"unfavorite": "Remover dos favoritos",
"favorite": "Adicionar aos favoritos",
"invalidEmail": "Endereço de e-mail inválido",
"identityRequired": "A sua informação é necessária",
"identityReason": "Por favor forneça o seu nome e e-mail para submeter {{type}}.",
"namePlaceholder": "Introduza o seu nome",
"emailPlaceholder": "Introduza o seu e-mail",
"submitFeedback": "Submeter feedback",
"moderationSuccess": "Feedback moderado com sucesso",
"pendingModeration": "Pendente de moderação",
"pending": "pendente",
"noPendingComments": "Sem comentários pendentes de moderação",
"onPhoto": "Na foto",
"showAll_many": "Mostrar todos os {{count}} comentários pendentes",
"showAll_one": "Mostrar o {{count}} comentário pendente",
"showAll_other": "Mostrar todos os {{count}} comentários pendentes",
"viewAllFeedback": "Ver todo o feedback e definições"
},
"filter": {
"feedbackFilters": "Filtros de Feedback",
"clear": "Limpar",
"rating": "Avaliação",
"hasLikes": "Possui curtidas",
"hasFavorites": "Possui favoritos",
"hasComments": "Possui comentários",
"showingPhotos": "Total de fotos",
"withRatings": "Com avaliações",
"combineWith": "Combinar com",
"allPhotos": "Todas as fotos",
"anyRating": "Qualquer avaliação",
"oneStarPlus": "1+ estrela",
"twoStarsPlus": "2+ estrelas",
"threeStarsPlus": "3+ estrelas",
"fourStarsPlus": "4+ estrelas",
"fiveStarsOnly": "Apenas 5 estrelas"
},
"adminLogin": {
"title": "Login Administrativo",
"subtitle": "Entre para gerenciar suas galerias de fotos",
"sessionExpired": "Sua sessão expirou. Por favor, faça login novamente.",
"emailLabel": "Endereço de E-mail",
"emailPlaceholder": "[email protected]",
"emailRequired": "O e-mail é obrigatório",
"invalidEmail": "Formato de e-mail inválido",
"passwordLabel": "Senha",
"passwordPlaceholder": "Digite sua senha",
"passwordRequired": "A senha é obrigatória",
"passwordMinLength": "A senha deve ter pelo menos 6 caracteres",
"rememberMe": "Lembrar-me",
"signIn": "Entrar",
"loginSuccess": "Login realizado com sucesso!",
"networkError": "Erro de rede. Verifique sua conexão.",
"tooManyAttempts": "Muitas tentativas. Tente novamente mais tarde.",
"invalidCredentials": "E-mail ou senha inválidos",
"generalError": "Ocorreu um erro. Tente novamente.",
"needHelp": "Precisa de ajuda? Contate",
"poweredBy": "Distribuído por PicPeak",
"devModeHint": "Modo Desenvolvimento: E-mail: [email protected], Senha: admin123"
},
"clientAccess": {
"title": "Acesso do Cliente",
"description": "Revise as fotos e gerencie a visibilidade antes de compartilhar a galeria com os convidados.",
"pinLabel": "PIN do Cliente",
"pinPlaceholder": "Digite seu PIN de cliente",
"enterPin": "Por favor, digite seu PIN de cliente",
"invalidPin": "PIN inválido. Por favor, tente novamente.",
"loginFailed": "Autenticação falhou. Por favor, tente novamente.",
"loginButton": "Acessar Galeria",
"guestHint": "Procurando pela galeria de convidados?",
"guestLink": "Ir para a visualização de convidados",
"banner": "Modo Cliente",
"visibleCount": "{{visible}} de {{total}} fotos visíveis para os convidados",
"hideSelected": "Ocultar Selecionadas",
"showSelected": "Mostrar Selecionadas",
"adminTitle": "Acesso do Cliente",
"enableToggle": "Ativar Acesso do Cliente",
"enableDescription": "Permitir que clientes revisem e ocultem fotos antes de a galeria ser compartilhada com os convidados.",
"pinHelperText": "O cliente usará este PIN para acessar a página de revisão.",
"pinUpdated": "PIN do cliente atualizado",
"setPin": "Definir PIN",
"linkLabel": "Link de Acesso do Cliente",
"regenerateToken": "Regenerar link",
"tokenRegenerated": "Link de acesso do cliente regenerado"
},
"export": {
"button": "Exportar",
"success": "Exportação baixada com sucesso",
"error": "Falha na exportação: ",
"exportFiltered": "Exportar fotos filtradas",
"hint": "Selecione fotos ou aplique filtros para exportar",
"exportSelected_many": "Exportar {{count}} selecionados",
"exportSelected_one": "Exportar {{count}} selecionado",
"exportSelected_other": "Exportar {{count}} selecionados"
},
"photoSort": {
"defaultSort": "Ordenação padrão das fotos",
"uploadDateNewest": "Data de envio (Mais recentes)",
"uploadDateOldest": "Data de envio (Mais antigas)",
"captureDateNewest": "Data da captura (Mais recentes)",
"captureDateOldest": "Data da captura (Mais antigas)",
"filenameAZ": "Nome do arquivo (A-Z)",
"filenameZA": "Nome do arquivo (Z-A)",
"dateTaken": "Data da captura"
},
"photos": {
"moveToCategory_many": "Mover {{count}} fotos para categoria",
"moveToCategory_one": "Mover {{count}} foto para categoria",
"moveToCategory_other": "Mover {{count}} fotos para categoria",
"selectCategory": "Selecionar categoria",
"uncategorized": "Sem categoria",
"movePhotos": "Mover fotos",
"selectedCategory": "categoria selecionada",
"movedToCategory_many": "{{count}} fotos movidas para {{category}}",
"movedToCategory_one": "{{count}} foto movida para {{category}}",
"movedToCategory_other": "{{count}} fotos movidas para {{category}}",
"moveToCategoryFailed": "Falha ao mover fotos para categoria",
"moveToCategory": "Mover para categoria"
},
"customer": {
"login": {
"title": "Acesso do cliente",
"subtitle": "Acesse todas as suas galerias de fotos em um só lugar.",
"email": "E-mail",
"password": "Senha",
"emailRequired": "O e-mail é obrigatório",
"invalidEmail": "Informe um e-mail válido",
"passwordRequired": "A senha é obrigatória",
"showPassword": "Mostrar senha",
"hidePassword": "Ocultar senha",
"signIn": "Entrar",
"loginSuccess": "Bem-vindo de volta!",
"invalidCredentials": "E-mail ou senha inválidos",
"tooManyAttempts": "Muitas tentativas — tente novamente mais tarde.",
"networkError": "Não foi possível acessar o servidor. Tente novamente.",
"generalError": "Falha no login. Tente novamente.",
"acceptedToast": "Conta pronta — faça login.",
"adminHint": "Procurando o painel de administração? Acesse /admin/login.",
"emailPlaceholder": "[email protected]",
"passwordPlaceholder": "Sua senha",
"needHelp": "Precisa de ajuda?",
"poweredBy": "Desenvolvido por PicPeak"
},
"acceptInvite": {
"title": "Configure sua conta",
"invalidToken": "Este link de convite é inválido ou expirou. Peça um novo convite ao seu fotógrafo.",
"emailWillBe": "Seu e-mail de conta será ",
"invitedBy": ", convidado por ",
"name": "Seu nome",
"nameRequired": "Informe seu nome",
"password": "Escolha uma senha",
"confirm": "Confirmar senha",
"passwordTooShort": "A senha deve ter pelo menos 8 caracteres",
"passwordsMismatch": "As senhas não coincidem",
"passwordHint": "Pelo menos 8 caracteres, com uma letra maiúscula e um número.",
"submit": "Criar conta",
"successToast": "Conta criada — faça login.",
"alreadyExists": "Já existe uma conta com este e-mail. Faça login.",
"invalidSubmission": "Não foi possível criar sua conta.",
"generalError": "Não foi possível criar sua conta. Tente novamente.",
"subtitle": "Confirme ou preencha seus dados. Você pode editar tudo depois na página de perfil.",
"displayName": "Nome de exibição",
"section": {
"personal": "Pessoal",
"contact": "Contato & empresa (opcional)",
"address": "Endereço de cobrança (opcional)",
"password": "Escolha uma senha"
}
},
"dashboard": {
"title": "Suas galerias",
"subtitle": "Clique em uma galeria para abri-la. O botão Baixar empacota todas as fotos em um zip.",
"loadError": "Não foi possível carregar suas galerias. Tente novamente.",
"emptyTitle": "Nenhuma galeria ainda",
"emptyBody": "Assim que seu fotógrafo te atribuir a uma galeria, ela aparecerá aqui.",
"openAria": "Abrir galeria {{name}}",
"opening": "Abrindo…",
"expiresOn": "Expira em {{date}}",
"expiredOn": "Expirou em {{date}}",
"eventExpired": "Esta galeria expirou.",
"eventForbidden": "Você não tem mais acesso a esta galeria.",
"openError": "Não foi possível abrir esta galeria. Tente novamente.",
"download": "Baixar",
"preparingDownload": "Preparando…",
"quickDownloadAria": "Baixar todas as fotos de {{name}}",
"downloadStarted": "Download iniciado para {{name}}",
"downloadError": "Não foi possível iniciar o download. Tente novamente.",
"sortLabel": "Ordenar por",
"sortNewest": "Mais recentes",
"sortOldest": "Mais antigos",
"sortName": "Por nome",
"open": "Abrir"
},
"layout": {
"greeting": "Olá, {{name}}"
},
"nav": {
"galleries": "Galerias",
"calendar": "Calendário",
"quotes": "Orçamentos",
"bills": "Faturas",
"profile": "Perfil",
"soon": "Em breve"
},
"comingSoon": {
"tag": "Em breve"
},
"calendar": {
"title": "Calendário",
"body": "Próximas sessões, datas de entrega de galerias e outros eventos relacionados a sessões aparecerão aqui. Avisaremos quando estiver pronto."
},
"quotes": {
"title": "Orçamentos",
"body": "Revise e aceite orçamentos para sessões futuras em um só lugar. Ainda estamos construindo — por enquanto, seu fotógrafo continuará enviando orçamentos da maneira habitual."
},
"bills": {
"title": "Faturas",
"body": "Faturas e histórico de pagamentos das suas sessões estarão disponíveis aqui. Enviaremos um e-mail quando estiver no ar."
},
"profile": {
"title": "Perfil do cliente",
"subtitle": "Mantenha seus dados de contato e cobrança atualizados — eles aparecem em orçamentos e faturas quando essas funções forem ativadas.",
"savedToast": "Perfil salvo",
"saveError": "Não foi possível salvar o perfil.",
"loadError": "Não foi possível carregar seu perfil.",
"save": "Salvar alterações",
"salutation": {
"none": "— Não especificado —",
"herr": "Sr.",
"frau": "Sra.",
"mx": "Mx",
"dr": "Dr."
},
"section": {
"personal": "Informações pessoais",
"contact": "Contato & empresa",
"address": "Endereço de cobrança",
"password": "Alterar senha"
},
"field": {
"email": "E-mail (login)",
"emailHint": "Contate seu fotógrafo se precisar mudar o e-mail de login.",
"salutation": "Saudação",
"firstName": "Nome",
"lastName": "Sobrenome",
"displayName": "Nome de exibição",
"displayNameHint": "Como te cumprimentamos no painel.",
"phone": "Telefone",
"companyName": "Nome da empresa",
"vatId": "CNPJ / IVA",
"addressLine1": "Endereço linha 1",
"addressLine2": "Endereço linha 2",
"postalCode": "CEP",
"city": "Cidade",
"state": "Estado / região",
"countryCode": "País"
},
"password": {
"current": "Senha atual",
"next": "Nova senha",
"confirm": "Confirmar nova senha",
"submit": "Atualizar senha",
"hint": "Pelo menos 8 caracteres com uma letra maiúscula e um número.",
"currentRequired": "Informe sua senha atual",
"tooShort": "Pelo menos 8 caracteres",
"mismatch": "As senhas não coincidem",
"wrong": "Senha atual incorreta",
"savedToast": "Senha atualizada",
"error": "Não foi possível alterar a senha"
}
},
"resetPassword": {
"title": "Redefinir sua senha",
"invalidToken": "Este link de redefinição é inválido ou expirou. Peça ao seu fotógrafo um novo.",
"forEmail": "Definindo uma nova senha para ",
"password": "Nova senha",
"confirm": "Confirmar nova senha",
"submit": "Atualizar senha",
"hint": "Pelo menos 8 caracteres com uma letra maiúscula e um número.",
"tooShort": "A senha deve ter pelo menos 8 caracteres",
"mismatch": "As senhas não coincidem",
"successToast": "Senha atualizada. Faça login.",
"invalidSubmission": "Não foi possível atualizar sua senha.",
"generalError": "Não foi possível atualizar sua senha. Tente novamente."
}
},
"customers": {
"pageTitle": "Clientes",
"pageSubtitle": "Contas de clientes recorrentes que podem entrar em /customer/login.",
"unnamed": "Sem nome",
"empty": "Nenhum cliente ainda. Clique em \"Convidar cliente\" para adicionar um.",
"loadError": "Não foi possível carregar os clientes",
"loadInvitationsError": "Não foi possível carregar os convites",
"tabs": {
"customers": "Clientes",
"invitations": "Convites"
},
"search": {
"placeholder": "Buscar por e-mail, nome ou empresa"
},
"table": {
"name": "Nome",
"email": "E-mail",
"company": "Empresa",
"eventCount": "Eventos",
"lastLogin": "Último acesso",
"status": "Status"
},
"status": {
"active": "Ativo",
"inactive": "Desativado"
},
"invite": {
"button": "Convidar cliente",
"title": "Convidar um cliente",
"description": "Eles receberão um e-mail com um link para configurar a conta. Após aceitarem, você pode atribuí-los a eventos.",
"email": "E-mail",
"submit": "Enviar convite",
"success": "Convite enviado",
"error": "Não foi possível enviar o convite.",
"conflict": "Já existe um cliente com este e-mail ou um convite pendente.",
"invalidEmail": "Informe um e-mail válido",
"showPrefill": "+ Adicionar detalhes de contato (opcional)",
"hidePrefill": " Ocultar detalhes de contato",
"prefillHint": "Qualquer dado preenchido será pré-preenchido na página de cadastro do cliente — ele ainda pode editá-lo."
},
"invitations": {
"empty": "Nenhum convite pendente.",
"email": "E-mail",
"invitedBy": "Convidado por",
"expiresAt": "Expira",
"createdAt": "Criado em",
"cancel": "Cancelar"
},
"deactivate": {
"button": "Desativar",
"title": "Desativar cliente?",
"body": "Ele não conseguirá mais entrar. Você pode convidá-lo novamente depois.",
"success": "Cliente desativado",
"error": "Não foi possível desativar o cliente"
},
"cancelInvitation": {
"title": "Cancelar convite?",
"body": "O link do convite deixará de funcionar imediatamente.",
"success": "Convite cancelado",
"error": "Não foi possível cancelar o convite"
},
"detail": {
"loadError": "Não foi possível carregar o cliente",
"saved": "Cliente salvo",
"saveError": "Não foi possível salvar as alterações.",
"emailConflict": "Este e-mail já está em uso por outro cliente.",
"save": "Salvar alterações",
"expires": "expira em",
"accountSection": "Conta",
"personalSection": "Informações pessoais",
"billingSection": "Endereço & cobrança",
"notesSection": "Notas internas",
"eventsSection": "Eventos atribuídos",
"noEvents": "Ainda não atribuído a nenhum evento. Adicione este cliente a um evento pelo formulário do evento.",
"email": "E-mail",
"preferredLanguage": "Idioma preferido",
"salutation": "Saudação",
"salutationNone": "—",
"firstName": "Nome",
"lastName": "Sobrenome",
"displayName": "Nome de exibição",
"phone": "Telefone",
"company": "Empresa",
"billingEmail": "E-mail de cobrança",
"vatId": "CNPJ / IVA",
"addressLine1": "Endereço linha 1",
"addressLine2": "Endereço linha 2",
"postalCode": "CEP",
"city": "Cidade",
"state": "Estado / região",
"countryCode": "País (ISO 2)",
"notesHint": "Visível apenas para administradores. Nunca mostrado ao cliente.",
"featuresSection": "Funções do cliente",
"featuresHint": "Substituições por cliente para as abas do portal. Os toggles globais em Configurações → Recursos são a chave principal — quando o global está DESLIGADO ninguém vê a aba, independente do que você definir aqui. Os padrões são LIGADOS; desligue um para ocultar uma aba para este cliente específico.",
"passwordSection": "Ações da conta",
"passwordHint": "Envia um link de redefinição de uso único (7 dias) ao e-mail do cliente. A senha atual continua funcionando até o cliente clicar no link e definir uma nova.",
"passwordReset": {
"button": "Enviar e-mail de redefinição",
"success": "E-mail de redefinição enviado",
"error": "Não foi possível enviar a redefinição",
"inactive": "Reative o cliente antes de enviar uma redefinição."
}
},
"reactivate": {
"button": "Reativar",
"success": "Cliente reativado",
"error": "Não foi possível reativar o cliente"
},
"erase": {
"button": "Apagar dados do cliente",
"title": "Apagar dados do cliente?",
"body": "Remove nome, e-mail, telefone, endereço, empresa e credenciais do cliente. O registro da conta permanece para que registros históricos de acesso e logs de auditoria ainda o referenciem. Esta ação é irreversível — você não poderá restaurar os dados depois.",
"confirm": "Apagar permanentemente",
"confirmInFlight": "Apagando…",
"success": "Cliente apagado",
"error": "Não foi possível apagar o cliente"
}
}
}