Files
picpeak/frontend/src/i18n/locales/pt.json
T
Paul Nothaft 633d4a0f30 feat: sort photos by capture date with configurable default sort (#283)
Add per-event default photo sort setting with 6 options:
- Upload Date (Newest/Oldest First)
- Date Taken (Newest/Oldest First) — uses EXIF captured_at
- Filename (A-Z / Z-A)

Backend:
- Migration 077 adds default_photo_sort column to events table
- Event create/update handlers accept and validate the setting
- Gallery info endpoint returns default_photo_sort for frontend

Frontend:
- "Date Taken" added to gallery sort dropdown (alongside Date, Name,
  Size, Rating)
- Gallery initializes with event's default sort instead of hardcoded
  "date"
- "Default Photo Sort" dropdown in event create and edit forms
- Photos without EXIF dates fall back to upload date

i18n: All 5 locales (EN, DE, NL, PT, RU) updated with sort labels.

Closes #283
2026-04-09 15:10:51 +02:00

2411 lines
114 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": "Gerencie usuários administradores e convites",
"loading": "Carregando usuários...",
"loadError": "Falha ao carregar usuários. Por favor, tente novamente.",
"inviteUser": "Convidar Usuário",
"createInvitation": "Criar Convite",
"email": "Endereço de email",
"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 fez login",
"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": "Email",
"role": "Função",
"status": "Status",
"lastLogin": "Último Login",
"actions": "Ações",
"invitedBy": "Convidado Por",
"expires": "Expira"
},
"validation": {
"emailRequired": "Email é obrigatório",
"emailInvalid": "Formato de email inválido",
"roleRequired": "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}}? Ele(a) não poderá 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",
"search": "Buscar",
"filter": "Filtrar",
"sortBy": "Ordenar por",
"yes": "Sim",
"no": "Não",
"back": "Voltar",
"next": "Próximo",
"previous": "Anterior",
"close": "Fechar",
"logout": "Sair",
"menu": "Menu",
"change": "Alterar",
"remove": "Remover",
"download": "Baixar",
"downloadAll": "Baixar Tudo",
"uploading": "Enviando...",
"uploaded": "Enviado",
"photo": "foto",
"photos": "fotos",
"video": "vídeo",
"videos": "vídeos",
"media": "mídia",
"restore": "Restaurar",
"actions": "Ações",
"refresh": "Atualizar",
"preview": "Pré-visualização",
"processing": "Processando...",
"upload": "Enviar",
"days": "dias",
"customize": "Personalizar",
"hide": "Ocultar",
"unknown": "Desconhecido",
"notSet": "Não definido",
"of": "de",
"up": "Cima",
"select": "Selecionar",
"selected": "Selecionado",
"chunk": "Lote",
"optional": "opcional"
},
"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)",
"fileRequirementsMedia": "Imagens JPEG, PNG ou WebP, além de vídeos MP4/MOV/WEBM (máx. 50MB por arquivo, {{limit}} arquivos por envio)",
"unsupportedFiles": "Alguns arquivos foram ignorados porque o formato não é compatível (use JPEG/PNG/WebP/MP4/MOV/WEBM).",
"selectedFiles": "Arquivos selecionados",
"uploading": "Enviando...",
"uploadComplete": "Envio concluído!",
"uploadFailed": "Falha no envio",
"someFilesFailed": "Alguns arquivos falharam ao enviar",
"uploadPhotos": "Enviar Fotos",
"uploadMedia": "Enviar Fotos e Vídeos",
"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",
"maxFilesReached": "Máximo de {{limit}} arquivos permitido",
"someFilesSkipped": "Apenas {{allowed}} arquivo(s) pode(m) ser adicionado(s) (limite {{limit}})",
"tooManyFiles": "Máximo de {{limit}} arquivos podem ser enviados de uma vez",
"limitInfo": "{{selected}} de {{limit}} arquivos selecionados ({{remaining}} restantes)",
"limitReached": "Limite de envio atingido ({{limit}} arquivos por lote)",
"uploadingChunks": "Enviando {{count}} arquivos em {{total}} lotes...",
"mediaCategory": "Categoria de mídia",
"uploadAction": "Enviar {{count}} arquivos"
},
"navigation": {
"dashboard": "Painel",
"events": "Eventos",
"archives": "Arquivos",
"settings": "Configurações",
"eventTypes": "Tipos de Evento",
"branding": "Identidade Visual",
"analytics": "Análises",
"emailSettings": "Configurações de Email",
"backup": "Backup e Restauração",
"cmsPages": "Páginas CMS",
"users": "Usuários"
},
"archives": {
"title": "Arquivos",
"subtitle": "Gerencie galerias de fotos arquivadas",
"loadingArchives": "Carregando arquivos...",
"totalArchives": "Total de Arquivos",
"storageUsed": "Armazenamento Usado",
"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 Arquivo",
"size": "Tamanho",
"photos": "Fotos",
"actions": "Ações"
},
"noArchivesFound": "Nenhum arquivo encontrado",
"eventDateNA": "Data do evento: N/D",
"processing": "Processando...",
"download": "Baixar",
"restore": "Restaurar",
"delete": "Excluir",
"showing": "Exibindo {{from}} a {{to}} de {{total}} arquivos",
"page": "Página {{current}} de {{total}}",
"storageManagement": "Gerenciamento de Armazenamento",
"storageInfo": "Os arquivos são armazenados permanentemente, a menos que sejam excluídos manualmente. Considere implementar uma política de retenção para gerenciar os custos de armazenamento.",
"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": {
"login": "Entrar",
"password": "Senha",
"enterPassword": "Digite a Senha da Galeria",
"passwordPlaceholder": "Digite a senha da galeria",
"invalidPassword": "Senha inválida",
"wrongPassword": "Senha incorreta. Por favor, verifique sua senha e tente novamente.",
"tooManyAttempts": "Muitas tentativas de login malsucedidas. Por favor, tente novamente mais tarde.",
"sessionExpired": "Sessão expirada",
"pleaseEnterPassword": "Por favor, digite uma senha",
"passwordHint": "A senha foi fornecida pelo organizador do evento. Entre em contato com ele se você não a tiver."
},
"gallery": {
"title": "Galeria de Fotos",
"welcomeMessage": "Mensagem de Boas-vindas",
"expiresOn": "Expira em",
"expires": "Expira",
"expired": "Expirado",
"daysRemaining": "{{days}} dias restantes",
"dayRemaining": "1 dia restante",
"hoursRemaining": "{{hours}} horas restantes",
"expiredMessage": "Esta galeria expirou em {{date}}",
"contactOrganizer": "Por favor, entre em contato com o organizador do evento se precisar de acesso a essas fotos.",
"searchPhotos": "Buscar fotos por nome de arquivo...",
"sortByDate": "Ordenar por Data",
"sortByName": "Ordenar por Nome",
"sortBySize": "Ordenar por Tamanho",
"allPhotos": "Todas as Fotos",
"filter": "Filtrar",
"feedbackFilter": "Filtro de Feedback",
"all": "Todas",
"liked": "Curtidas",
"favorited": "Favoritadas",
"favorites": "Favoritos",
"downloadSelected": "Baixar {{count}} Selecionadas",
"shareGallery": "Compartilhar Galeria",
"needHelp": "Precisa de ajuda? Entre em contato em",
"noPhotosFound": "Nenhuma foto encontrada",
"failedToLoad": "Falha ao carregar fotos",
"tryAgain": "Tentar Novamente",
"loading": "Carregando galeria...",
"expiredOn": "Esta galeria expirou em {{date}}.",
"expiresIn": "A galeria expira em {{count}} dia",
"expiresIn_plural": "A galeria expira em {{count}} dias",
"downloadBefore": "Baixe suas fotos antes que elas não estejam mais disponíveis.",
"publicGalleryTitle": "Esta galeria é de acesso público",
"publicGallerySubtitle": "Carregando as fotos agora...",
"viewGallery": "Ver Galeria",
"downloadAll": "Baixar Tudo",
"downloading": "Baixando {{count}} foto...",
"downloading_plural": "Baixando {{count}} fotos...",
"downloadedPhotos": "{{count}} foto baixada!",
"downloadedPhotos_plural": "{{count}} fotos baixadas!",
"downloadError": "Algumas fotos falharam ao baixar",
"selectPhotos": "Selecionar Fotos",
"cancelSelection": "Cancelar Seleção",
"photosSelected": "{{count}} selecionadas",
"selectAll": "Selecionar Tudo",
"deselectAll": "Desmarcar Tudo",
"deleteSelected": "Excluir Selecionadas",
"photosCount": "{{count}} foto",
"photosCount_plural": "{{count}} fotos",
"searchByFilename": "Buscar por nome de arquivo...",
"uncategorized": "Sem categoria",
"sortAscending": "Ordenar crescente",
"sortDescending": "Ordenar decrescente",
"remaining": "restantes",
"selectPhotosHint": "Dica: Use Ctrl+Clique (Cmd+Clique no Mac) para selecionar várias fotos rapidamente",
"filters": "Filtros",
"openFilters": "Abrir filtros",
"toggleSidebar": "Alternar barra lateral",
"toggleMenu": "Alternar menu",
"allCategories": "Todas as Categorias",
"categories": "Categorias",
"mediaType": "Mídia",
"allMedia": "Toda a mídia",
"photosOnly": "Fotos",
"videosOnly": "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 memórias...",
"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": "Nenhum comentário ainda. Seja o primeiro!",
"yourName": "Seu nome",
"yourEmail": "Seu email",
"writeLovelyNote": "Escreva uma mensagem carinhosa...",
"postComment": "Publicar Comentário",
"anonymous": "Anônimo"
},
"rated": "Avaliado",
"commented": "Comentado"
},
"categories": {
"title": "Categorias de Fotos",
"global": "Categorias Globais",
"eventSpecific": "Categorias Específicas do Evento",
"addCategory": "Adicionar Categoria",
"organizationInfo": "Organize suas fotos em categorias. As categorias ajudam os convidados a navegar e encontrar tipos específicos de fotos.",
"eventSpecificCategories": "Categorias Específicas do Evento",
"noEventSpecificCategories": "Sem categorias específicas do evento. 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",
"noCategory": "Sem categoria",
"noCategoriesYet": "Nenhuma categoria ainda. Crie sua primeira categoria para organizar as fotos.",
"deleteConfirm": "Tem certeza de que deseja excluir \"{{name}}\"?",
"cannotDelete": "Não é possível excluir uma categoria com fotos. Reatribua as fotos primeiro.",
"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 para uma categoria, a foto hero padrão será utilizada."
},
"events": {
"title": "Eventos",
"create": "Criar",
"createEvent": "Criar Evento",
"totalViews": "Total de Visualizações",
"totalDownloads": "Total de Downloads",
"uniqueVisitors": "Visitantes Únicos",
"createNewEvent": "Criar Novo Evento",
"setupNewGallery": "Configure uma nova galeria de fotos para seu evento",
"createNewEventSubtitle": "Configure uma nova galeria de fotos para seu evento",
"eventNamePlaceholder": "Ex.: Casamento de João e Maria",
"welcomeMessageOptional": "Mensagem de Boas-Vindas (Opcional)",
"welcomeMessagePlaceholder": "Bem-vindo(a) ao nosso dia especial! Sinta-se à vontade para baixar e compartilhar essas memórias...",
"hostEmailPlaceholder": "[email protected]",
"adminEmailPlaceholder": "[email protected]",
"securityAndAccess": "Segurança e Acesso",
"accessAndSecurity": "Acesso e Segurança",
"enterPassword": "Digite a senha",
"passwordPlaceholder": "Digite uma senha segura",
"confirmPasswordPlaceholder": "Confirme a senha",
"galleryExpiresOn": "A galeria expirará em {{date}}",
"guestsWillReceiveWarning": "Os convidados receberão um email de aviso 7 dias antes da expiração.",
"types": {
"wedding": "Casamento",
"birthday": "Aniversário",
"corporate": "Corporativo",
"other": "Outro"
},
"themes": {
"default": "Padrão",
"oceanBlue": "Azul Oceano",
"royalPurple": "Roxo Real",
"roseGold": "Ouro Rosé",
"sunsetAmber": "Âmbar Pôr do Sol"
},
"eventDetails": "Detalhes do Evento",
"eventName": "Nome do Evento",
"eventType": "Tipo de Evento",
"eventDate": "Data do Evento",
"hostEmail": "Email do Cliente",
"hostName": "Nome do Cliente",
"hostNamePlaceholder": "João Silva",
"adminEmail": "Email do Administrador",
"adminNotificationEmail": "Email de Notificação do Administrador",
"expirationDate": "Data de Expiração",
"active": "Ativo",
"archived": "Arquivado",
"photoCount": "{{count}} fotos",
"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 de que deseja arquivar este evento? Esta ação não pode ser desfeita.",
"extendExpiration": "Estender {{days}} Dias",
"backToEvents": "Voltar aos Eventos",
"loadingEventDetails": "Carregando detalhes do evento...",
"saveChanges": "Salvar Alterações",
"eventExpired": "Este evento expirou",
"eventExpiresIn": "Este evento expira em {{days}} dias",
"guestsNoAccess": "Os convidados não podem mais acessar a galeria. Considere arquivar este evento.",
"warningEmailsSent": "Emails de aviso foram enviados ao cliente.",
"overview": "Visão Geral",
"photos": "Fotos",
"categories": "Categorias",
"eventInformation": "Informações do Evento",
"sourceMode": "Modo de Origem",
"sourceModeManaged": "Gerenciado (enviar 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": "Essas pastas são lidas do ponto de montagem /external-media dentro do seu container ou host.",
"externalFolderRequired": "Selecione uma pasta externa antes de salvar.",
"welcomeMessage": "Mensagem de Boas-Vindas",
"noWelcomeMessage": "Nenhuma mensagem de boas-vindas definida",
"created": "Criado",
"expires": "Expira",
"shareWithGuests": "Compartilhe este link com os convidados. Eles precisarão da senha para acessar a galeria.",
"shareWithGuestsPublic": "Compartilhe este link com os convidados. Nenhuma senha é necessária para esta galeria.",
"resetGalleryPassword": "Redefinir Senha da Galeria",
"resendCreationEmail": "Reenviar Email de Criação",
"creationEmailResent": "Email de criação foi colocado na fila para envio",
"failedToResendEmail": "Falha ao reenviar email 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.",
"statistics": "Estatísticas",
"views": "Visualizações",
"downloads": "Downloads",
"noStatistics": "Nenhuma estatística disponível ainda",
"archiveStatus": "Status do Arquivo",
"archivedOn": "Arquivado Em",
"downloadArchive": "Baixar Arquivo",
"loadingPhotos": "Carregando fotos...",
"photoCategories": "Categorias de Fotos",
"organizeCategoriesInfo": "Organize suas fotos em categorias. As categorias ajudam os convidados a navegar e encontrar tipos específicos de fotos.",
"categoriesTip": "Dica: As categorias são específicas para cada evento. Você pode criar categorias personalizadas como \"Cerimônia\", \"Recepção\", \"Retratos\", etc.",
"contactInformation": "Informações de Contato",
"hostEmailHelp": "O cliente receberá notificações de criação e expiração da galeria",
"adminEmailHelp": "Receberá notificações do sistema e confirmações de arquivamento",
"securityAccess": "Segurança e Acesso",
"galleryPassword": "Senha da Galeria",
"requirePasswordToggle": "Exigir senha para esta galeria",
"requirePasswordToggleHelp": "Desative isso 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 nos downloads e monitorar a atividade.",
"passwordHelperText": "Você pode usar datas como \"04.07.2025\" ou qualquer texto com 6+ caracteres",
"confirmPassword": "Confirmar Senha",
"showPasswords": "Mostrar senhas",
"newPasswordLabel": "Nova Senha da Galeria",
"gallerySettings": "Configurações da Galeria",
"themeAndStyle": "Tema e Estilo",
"colorTheme": "Tema de Cores",
"galleryExpiration": "Expiração da Galeria",
"galleryExpiresIn": "A Galeria Expira Em",
"daysAfterEvent": "dias após a data do evento",
"expiresOn": "Expira em",
"galleryWillExpireOn": "A galeria expirará em {{date}}",
"expirationWarning": "Os convidados receberão um email de aviso 7 dias antes da expiração.",
"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 de Convidados",
"allowUserUploads": "Permitir que convidados enviem fotos",
"allowUserUploadsHelp": "Habilitar convidados a enviar suas próprias fotos para esta galeria",
"allowUserUploadsDescription": "Habilitar convidados a enviar suas próprias fotos para esta galeria",
"uploadCategory": "Categoria de Upload",
"selectCategory": "Selecione uma categoria para uploads de convidados",
"uploadCategoryHelp": "Todas as fotos enviadas por convidados serão adicionadas a esta categoria",
"userUploadWarning": "Os uploads de convidados serão moderados e podem ser removidos por administradores a qualquer momento.",
"allowDownloads": "Permitir download de fotos",
"allowDownloadsHelp": "Permitir que convidados baixem fotos desta galeria",
"downloadPermissions": "Permissões de Download",
"downloadsEnabled": "Downloads Habilitados",
"downloadsDisabled": "Downloads Desabilitados",
"downloadProtection": "Proteção de Download",
"disableRightClick": "Bloquear menu de contexto (botão direito)",
"watermarkDownloads": "Adicionar marca d'água aos downloads",
"enableDevtoolsProtection": "Detectar ferramentas do desenvolvedor",
"useCanvasRendering": "Renderização em canvas (proteção avançada)",
"protectionInfo": "Os recursos de proteção ajudam a evitar downloads não autorizados, mas não podem bloquear todos os métodos.",
"protectionLevelBasic": "Básico - Apenas bloqueio de clique 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 do Logo Hero",
"heroLogoVisible": "Exibir logo na seção hero",
"heroLogoSize": "Tamanho do Logo",
"heroLogoSizeSmall": "Pequeno",
"heroLogoSizeMedium": "Médio",
"heroLogoSizeLarge": "Grande",
"heroLogoSizeXLarge": "Extra Grande",
"heroLogoPosition": "Posição do Logo",
"heroLogoPositionTop": "Topo (acima do título)",
"heroLogoPositionCenter": "Centro (entre o título e as datas)",
"heroLogoPositionBottom": "Rodapé (abaixo das datas)",
"heroLogoInfo": "Essas configurações se aplicam quando a galeria usa o layout Hero. Você pode ocultar o logo ou personalizar seu tamanho e posição.",
"eventCustomLogo": "Logo Personalizado do Evento",
"eventCustomLogoDescription": "Envie um logo personalizado para este evento. Isso substitui o logo de identidade visual global somente para esta galeria.",
"uploadEventLogo": "Enviar Logo",
"replaceLogo": "Substituir",
"removeLogo": "Remover",
"eventLogoUploaded": "Logo do evento enviado com sucesso",
"eventLogoUploadFailed": "Falha ao enviar logo do evento",
"eventLogoRemoved": "Logo do evento removido com sucesso",
"eventLogoRemoveFailed": "Falha ao remover logo do evento",
"heroLogoVisibleLabel": "Logo visível",
"heroLogoSizeLabel": "Tamanho",
"heroLogoPositionLabel": "Posição",
"heroLogoHidden": "Logo oculto",
"heroPhoto": "Foto Hero",
"heroPhotoHelp": "Selecione uma foto hero padrão para a galeria. Você pode substituí-la por categoria.",
"selectHeroPhoto": "Selecionar Foto Hero",
"noHeroPhotoSelected": "Nenhuma foto hero selecionada",
"heroPhotoSelected": "Foto hero selecionada",
"heroImageAnchor": "Posição de Corte da Imagem Hero",
"heroImageAnchorDescription": "Clique na imagem para definir o ponto focal do corte.",
"heroImageAnchorTop": "Topo",
"heroImageAnchorCenter": "Centro",
"heroImageAnchorBottom": "Rodapé",
"heroPreview": "Pré-visualização Hero",
"noPhotosAvailable": "Nenhuma foto disponível",
"processingRequest": "Processando sua solicitação...",
"eventTypeWedding": "Casamento",
"eventTypeBirthday": "Aniversário",
"eventTypeCorporate": "Corporativo",
"eventTypeOther": "Outro",
"days30": "30 dias",
"days60": "60 dias",
"days90": "90 dias",
"days365": "1 ano",
"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.",
"daysLeft": "({{count}} dia restante)",
"daysLeft_plural": "({{count}} dias restantes)",
"subtitle": "Gerencie suas galerias de fotos e eventos",
"loadingEvents": "Carregando eventos...",
"failedToLoadEvents": "Falha ao carregar eventos",
"tryAgain": "Tentar Novamente",
"bulkArchiveSuccess": "{{count}} eventos arquivados com sucesso",
"bulkArchivePartial": "{{success}} eventos arquivados, {{failed}} com falha",
"searchEventsPlaceholder": "Buscar eventos...",
"all": "Todos",
"expiring": "Expirando",
"eventsSelected": "{{count}} evento selecionado",
"eventsSelected_plural": "{{count}} eventos selecionados",
"clear": "Limpar",
"archiveSelected": "Arquivar Selecionados",
"publicAccess": "Acesso público",
"passwordProtected": "Protegido por senha",
"newPasswordRequired": "Por favor, defina uma senha antes de habilitar 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 de que deseja excluir este evento?",
"downloadArchiveSoon": "Download do arquivo em breve",
"eventExpiredMessage": "Este evento expirou",
"guestsCannotAccessGallery": "Os convidados não podem mais acessar a galeria. Considere arquivar este evento.",
"warningEmailsHaveBeenSent": "Emails de aviso foram enviados ao cliente.",
"extendSevenDays": "Estender 7 Dias",
"welcomeMessageLabel": "Mensagem de Boas-Vindas",
"noWelcomeMessageSet": "Nenhuma mensagem de boas-vindas definida",
"createdOn": "Criado",
"copy": "Copiar",
"copied": "Copiado!",
"organizingPhotosInfo": "Organize suas fotos em categorias. As categorias ajudam os convidados a navegar e encontrar tipos específicos de fotos.",
"archiveStatusTitle": "Status do Arquivo",
"downloadingArchive": "Baixando arquivo de {{name}}...",
"downloadStarted": "Download iniciado",
"failedToDownloadArchive": "Falha ao baixar arquivo",
"statisticsNotAvailable": "Nenhuma estatística disponível ainda",
"photoFilters": "Filtros de Fotos",
"noStatisticsAvailableYet": "Nenhuma estatística disponível ainda",
"addPlus": "Adicionar+",
"galleryTheme": "Tema da Galeria",
"customizeTheme": "Personalizar Tema",
"noThemeSet": "Nenhum tema configurado",
"customizingTheme": "Personalizando tema da galeria",
"customizingThemeFor": "Personalizando tema para {{event}}",
"customCssTemplate": "Modelo de CSS Personalizado",
"customCssTemplateDesc": "Aplique um modelo de CSS personalizado para estilizar a galeria com efeitos visuais únicos.",
"noTemplate": "Sem Modelo",
"useThemeOnly": "Usar apenas o tema predefinido",
"customTemplate": "Modelo Personalizado",
"rename": {
"button": "Renomear",
"title": "Renomear Evento",
"validating": "Validando novo nome...",
"renamingFiles": "Renomeando arquivos...",
"complete": "Concluído!",
"failed": "Falha ao renomear",
"filesRenamed": "{{count}} arquivos atualizados",
"confirm": "Renomear Evento"
},
"activeFilter": "Ativos",
"archivedFilter": "Arquivados",
"sortByName": "Por nome",
"sortByDate": "Por data",
"sortByExpiration": "Por expiração",
"photosCount": "Fotos",
"moreActions": "Mais ações",
"copyLinkTooltip": "Copiar link",
"viewGalleryTooltip": "Ver galeria",
"uploadPhotosTooltip": "Enviar fotos",
"editTooltip": "Editar",
"archiveTooltip": "Arquivar",
"noEvents": "Nenhum evento encontrado",
"noEventsDescription": "Crie seu primeiro evento para começar.",
"bulkArchive": "Arquivar",
"confirmBulkArchive": "Tem certeza de que deseja arquivar {{count}} evento(s)?",
"confirmBulkArchiveDescription": "Esta ação não pode ser desfeita. Eventos arquivados não serão mais acessíveis publicamente."
},
"settings": {
"title": "Configurações do Sistema",
"subtitle": "Defina as configurações e preferências globais do sistema",
"loadingSettings": "Carregando configurações...",
"general": {
"title": "Geral",
"siteConfiguration": "Configuração do Site",
"siteUrl": "URL do Site",
"siteUrlHelp": "Usado para gerar links de galeria nos emails",
"defaultExpiration": "Expiração Padrão (dias)",
"defaultExpirationHelp": "Por quanto tempo as galerias permanecem ativas por padrão",
"maxFileSize": "Tamanho Máximo de Arquivo (MB)",
"maxFileSizeHelp": "Tamanho máximo por foto enviada",
"maxFilesPerUpload": "Máximo de Arquivos por Upload",
"maxFilesPerUploadHelp": "Número máximo de fotos permitidas em um único lote de upload (1-{{max}}).",
"allowedFileTypes": "Tipos de Arquivo Permitidos",
"allowedFileTypesHelp": "Lista de extensões de arquivo separadas por vírgula",
"featureToggles": "Alternância de Recursos",
"enableAnalytics": "Habilitar rastreamento de análises",
"enableRegistration": "Permitir auto-registro para administradores",
"enableShortGalleryUrls": "Usar URLs curtas de galeria",
"enableShortGalleryUrlsHelp": "Remove o slug do evento dos novos links de compartilhamento, mantendo os links existentes funcionando.",
"maintenanceMode": "Habilitar modo de manutenção",
"language": "Idioma",
"defaultLanguage": "Idioma Padrão",
"defaultLanguageHelp": "Idioma exibido para convidados antes do login",
"defaultWelcomeMessage": "Mensagem de Boas-Vindas Padrão",
"welcomeMessage": "Mensagem de Boas-Vindas",
"welcomeMessagePlaceholder": "Digite uma mensagem de boas-vindas padrão que será incluída nos emails de criação de galeria",
"welcomeMessageHelp": "Esta mensagem será incluída em todos os emails de criação de galeria, a menos que seja substituída ao criar um evento",
"saveSettings": "Salvar Configurações Gerais",
"saveGeneralSettings": "Salvar Configurações Gerais",
"dateTimeFormat": "Formato de Data e Hora",
"dateFormat": "Formato de Data",
"dateFormatHelp": "Como as datas são exibidas nos emails e em todo o aplicativo",
"accountSection": "Conta do Administrador",
"accountUsername": "Nome de Usuário do Administrador",
"accountUsernameHelp": "Exibido na interface administrativa e usado nos registros de atividade.",
"accountUsernameRequired": "Nome de usuário é obrigatório",
"accountUsernameLength": "O nome de usuário deve ter pelo menos 3 caracteres",
"accountEmail": "email do Administrador",
"accountEmailHelp": "Usado para login e recebimento de notificações de segurança.",
"accountEmailRequired": "O endereço de email é obrigatório",
"accountEmailInvalid": "Digite um endereço de email válido",
"accountSaveButton": "Salvar detalhes da conta",
"accountSaveSuccess": "Detalhes da conta atualizados"
},
"publicSite": {
"tabLabel": "Site Público",
"badge": "Landing Pública",
"title": "Página de Landing Pública",
"subtitle": "Publique uma página de landing personalizada para convidados quando visitarem seu domínio.",
"loading": "Carregando configurações do site público...",
"enabled": "Habilitado",
"disabled": "Desabilitado",
"htmlLabel": "HTML da Página de Landing",
"htmlPlaceholder": "Forneça o código HTML para o hero, seções e chamadas para ação da sua página de landing.",
"htmlHelp": "O HTML bruto é sanitizado ao salvar. Tags inseguras, scripts inline e atributos não permitidos são removidos automaticamente. 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": "Substituições CSS opcionais para ajustar layout, cores ou tipografia.",
"cssHelp": "Imports e URLs de JavaScript são removidos. Use seletores CSS padrão para substituir o estilo 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 para os padrões.",
"resetError": "Falha ao redefinir modelo do site público.",
"previewTitle": "Pré-visualização ao Vivo",
"previewSandboxed": "Pré-visualização em sandbox",
"previewDisabled": "Habilite o site público para ver a pré-visualização ao vivo.",
"sanitizationNotice": "Scripts, frames incorporados e atributos inseguros são removidos antes da publicação. Apenas HTML seguro, links e imagens são permitidos.",
"htmlRequired": "Forneça conteúdo HTML antes de habilitar o site público."
},
"storage": {
"title": "Armazenamento",
"overview": "Visão Geral do Armazenamento",
"totalUsed": "Total Utilizado",
"archiveStorage": "Armazenamento de Arquivos",
"storageLimit": "Limite de Armazenamento",
"storageLimitHelper": "Defina um limite para o uso de armazenamento de fotos. Este limite é indicativo e será destacado quando atingido.",
"softLimitInputLabel": "Limite (GB)",
"softLimitHelper": "Digite o uso máximo de armazenamento preferido em gigabytes.",
"recommendedSoftLimit": "Limite Sugerido",
"diskCapacity": "Capacidade do Disco",
"diskCapacityReported": "Capacidade do Disco (informada)",
"diskAvailable": "Disponível",
"diskAvailableReported": "Disponível (informado)",
"diskFree": "Livre",
"diskFreeReported": "Livre (informado)",
"diskMetricsUnavailable": "As métricas de disco não estão disponíveis no Docker Desktop ou em ambientes virtualizados.",
"applyRecommended": "Usar recomendado",
"applyAvailable": "Corresponder disponível",
"invalidSoftLimit": "Digite um número válido para o limite.",
"saveSoftLimit": "Salvar limite",
"limitNotEnforced": "Este limite é apenas indicativo e não é aplicado automaticamente.",
"overrideTitle": "Substituição manual de capacidade",
"diskOverrideEnvNote": "A capacidade do disco é controlada por variáveis de ambiente e não pode ser editada aqui.",
"diskOverrideSettingsHelp": "Defina valores de capacidade personalizados quando 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 a partir da capacidade total menos o armazenamento utilizado.",
"saveOverride": "Salvar substituição de capacidade",
"capacityRequiredForAvailable": "Digite uma 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",
"storageByEvent": "Armazenamento por Evento",
"storageManagement": "Gerenciamento de Armazenamento",
"storageManagementHelp": "Considere arquivar ou excluir eventos antigos para liberar espaço de armazenamento. Eventos arquivados são comprimidos e usam menos armazenamento do que galerias ativas.",
"noEventsUsingStorage": "Nenhum evento usando armazenamento",
"unlimited": "Ilimitado"
},
"security": {
"title": "Segurança",
"passwordSettings": "Configurações de Senha",
"minPasswordLength": "Comprimento Mínimo da Senha",
"minPasswordLengthHelp": "Número mínimo de caracteres para senhas de galeria",
"passwordComplexity": "Complexidade da Senha",
"passwordComplexityHelp": "Nível de segurança exigido para senhas de galeria",
"complexitySimple": "Simples (6+ caracteres, qualquer texto)",
"complexityModerate": "Moderado (8+ caracteres, maiúsculas/números)",
"complexityStrong": "Forte (12+ caracteres, maiúsculas/minúsculas/números)",
"complexityVeryStrong": "Muito Forte (12+ caracteres, todos os tipos de caracteres)",
"sessionAuth": "Sessão e Autenticação",
"sessionTimeout": "Tempo Limite de Sessão (minutos)",
"sessionTimeoutHelp": "Tempo limite de sessão do administrador em minutos",
"maxLoginAttempts": "Máximo de Tentativas de Login",
"maxLoginAttemptsHelp": "Máximo de tentativas de login com falha por IP antes do bloqueio",
"attemptWindowMinutes": "Janela de Tentativas (minutos)",
"attemptWindowMinutesHelp": "Quanto tempo considerar ao contabilizar tentativas de login com falha",
"lockoutDurationMinutes": "Duração do Bloqueio (minutos)",
"lockoutDurationMinutesHelp": "Por quanto tempo a galeria ou conta fica bloqueada após muitas tentativas falhas",
"enable2FA": "Habilitar autenticação de dois fatores para administradores",
"recaptchaSettings": "Configurações de reCAPTCHA",
"enableRecaptcha": "Habilitar reCAPTCHA para formulários de login",
"siteKey": "Chave do Site",
"siteKeyHelp": "Sua chave de site reCAPTCHA v2 (pública)",
"secretKey": "Chave Secreta",
"secretKeyHelp": "Sua chave secreta reCAPTCHA v2 (mantenha privada)",
"recaptchaHelp": "Obtenha suas chaves reCAPTCHA em",
"saveSettings": "Salvar Configurações de Segurança",
"saveSecuritySettings": "Salvar Configurações de Segurança"
},
"categories": {
"title": "Categorias",
"about": "Sobre Categorias de Fotos",
"aboutText": "As categorias globais estão disponíveis para todos os eventos. Você também pode criar categorias específicas do evento ao editar eventos individuais. As categorias ajudam a organizar as fotos e permitem que os convidados filtrem fotos por tipo na visualização da galeria."
},
"systemStatus": {
"title": "Status do Sistema",
"storageOverview": "Visão Geral do Armazenamento",
"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": "Administradores",
"dbSize": "Tamanho do Banco de Dados",
"services": "Serviços em Segundo Plano",
"fileWatcher": "Monitoramento de Arquivos",
"fileWatcherDesc": "Monitora novas fotos",
"expirationChecker": "Verificador de Expiração",
"expirationCheckerDesc": "Arquiva galerias expiradas",
"emailProcessor": "Processador de Email",
"emailProcessorDesc": "Envia emails na fila",
"emailQueue": "Status da Fila de Email",
"pending": "Pendente",
"sent": "Enviado",
"failed": "Com Falha",
"lastUpdate": "Última atualização"
},
"photoDimensions": {
"title": "Dimensões das Fotos",
"totalPhotos": "Total de Fotos",
"withDimensions": "Com Dimensões",
"missingDimensions": "Dimensões Ausentes",
"repairButton": "Reparar Dimensões",
"repairing": "Reparando...",
"alreadyRunning": "O reparo já está em andamento",
"started": "Iniciou o reparo de {{count}} fotos",
"noneToRepair": "Todas as fotos já possuem dimensões",
"resultSuccess": "Último reparo: {{success}} atualizadas, {{failed}} com falha",
"description": "Preencha largura/altura ausentes para fotos enviadas antes da implementação do rastreamento de dimensões. Necessário para os layouts Masonry e Mosaico."
},
"updateNotifications": {
"title": "Notificações de Atualização",
"description": "Receba notificações por email quando novas versões do PicPeak estiverem disponíveis.",
"enableEmails": "Habilitar notificações por email",
"enableEmailsDesc": "Enviar email aos administradores quando uma nova versão estiver disponível",
"recipients": "Destinatários do Email",
"recipientsPlaceholder": "[email protected], [email protected]",
"recipientsHelper": "Endereços de email separados por vírgula. Deixe em branco para enviar a todos os usuários administradores.",
"lastNotified": "Última notificação enviada para a versão: {{version}}",
"checkNow": "Verificar e Notificar",
"sendTest": "Enviar Email de Teste",
"saved": "Configurações salvas",
"saveError": "Falha ao salvar configurações",
"emailSent": "Email de notificação enviado para {{count}} destinatários",
"emailFailed": "Falha ao enviar notificação",
"checkSuccess": "Notificação enviada para nova versão",
"checkNoAction": "Nenhuma notificação necessária: {{reason}}",
"checkError": "Falha ao verificar atualizações"
},
"events": {
"title": "Criação de Eventos",
"requiredFields": "Campos Obrigatórios",
"requiredFieldsDescription": "Configure quais campos de contato são obrigatórios ao criar novos eventos.",
"requireCustomerName": "Exigir nome do cliente",
"requireCustomerNameHelp": "O nome do cliente deve ser fornecido para novos eventos",
"requireCustomerEmail": "Exigir email do cliente",
"requireCustomerEmailHelp": "O email do cliente deve ser fornecido para novos eventos",
"customerEmailWarning": "Obrigatório para enviar convites de galeria",
"requireAdminEmail": "Exigir email do administrador",
"requireAdminEmailHelp": "O email do administrador deve ser fornecido para novos eventos",
"adminEmailWarning": "Obrigatório para receber notificações de eventos",
"requireEventDate": "Exigir data do evento",
"requireEventDateHelp": "A data do evento deve ser fornecida ao criar eventos",
"eventDateWarning": "As URLs da galeria usarão identificadores aleatórios em vez de datas",
"requireExpiration": "Exigir data de expiração",
"requireExpirationHelp": "As galerias devem ter uma data de expiração",
"expirationWarning": "Galerias sem expiração permanecerão ativas até serem arquivadas manualmente",
"saveSettings": "Salvar Configurações de Eventos",
"noteTitle": "Nota",
"noteText": "Essas configurações afetam apenas a criação de novos eventos. Eventos existentes não são afetados. O comportamento padrão exige todos os campos."
},
"imageSecurity": {
"title": "Proteção de Imagens",
"saveSuccess": "Configurações de segurança de imagem salvas",
"saveError": "Falha ao salvar configurações",
"loadError": "Falha ao carregar configurações de segurança de imagem",
"defaultProtection": "Configurações de Proteção Padrão",
"defaultProtectionHelp": "Essas configurações se aplicam a todos os novos eventos. Eventos individuais podem substituir esses padrões.",
"protectionLevel": "Nível de Proteção Padrão",
"imageQuality": "Qualidade de Imagem Padrão",
"fragmentationLevel": "Nível de Fragmentação",
"enableDevtools": "Habilitar detecção de DevTools por padrão",
"enableCanvas": "Habilitar renderização em canvas por padrão (proteção avançada)",
"rateLimiting": "Limitação de Taxa",
"rateLimitingHelp": "Limite quantas imagens podem ser solicitadas para evitar raspagem.",
"requestsPerMinute": "Solicitações por minuto",
"requestsPer5Minutes": "Solicitações por 5 min",
"requestsPerHour": "Solicitações por hora",
"securityMonitoring": "Monitoramento de Segurança",
"suspiciousThreshold": "Limite de atividade suspeita",
"autoBlockThreshold": "Limite de bloqueio automático",
"enableMonitoring": "Habilitar monitoramento de segurança",
"blockSuspiciousIps": "Bloquear automaticamente IPs suspeitos",
"logEvents": "Registrar eventos de segurança no banco de dados",
"infoTitle": "Sobre Proteção de Imagens",
"infoText": "Esses recursos de proteção ajudam a evitar downloads e cópias não autorizados, mas não podem bloquear todos os métodos. Usuários determinados ainda podem encontrar formas de capturar imagens. Considere usar marcas d'água e contratos legais para proteção abrangente."
},
"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 a filtrar",
"searchFilters": "Buscar filtros...",
"filterAdded": "Filtro de palavra adicionado com sucesso",
"filterExists": "Este filtro de palavra já existe",
"addError": "Falha ao adicionar filtro de palavra",
"filterUpdated": "Filtro de palavra atualizado com sucesso",
"updateError": "Falha ao atualizar filtro de palavra",
"filterDeleted": "Filtro de palavra excluído com sucesso",
"deleteError": "Falha ao excluir filtro de palavra",
"wordRequired": "Por favor, digite uma palavra para filtrar",
"confirmDelete": "Tem certeza de que deseja excluir este filtro de palavra?",
"loading": "Carregando filtros de palavras...",
"noMatchingFilters": "Nenhum filtro correspondente encontrado",
"noFilters": "Nenhum filtro de palavra configurado ainda",
"severityLow": "Baixo",
"severityModerate": "Moderado",
"severityHigh": "Alto",
"severityBlock": "Bloquear",
"severityLevels": "Níveis de Severidade",
"lowDescription": "A palavra é sinalizada para revisão, mas não bloqueada automaticamente",
"moderateDescription": "O comentário requer aprovação manual antes de ser visível",
"highDescription": "O comentário é ocultado automaticamente e requer revisão do administrador",
"blockDescription": "O comentário é rejeitado imediatamente e não pode ser enviado"
},
"styling": {
"title": "CSS Personalizado"
},
"thumbnails": {
"title": "Miniaturas",
"dimensionsTitle": "Dimensões e Qualidade das Miniaturas",
"dimensionsHelp": "Configure o tamanho e a qualidade das miniaturas geradas automaticamente. Valores mais altos produzem pré-visualizações de melhor aparência, mas aumentam o armazenamento e os tempos de carregamento.",
"width": "Largura (px)",
"widthHelp": "50-1000 pixels",
"height": "Altura (px)",
"heightHelp": "50-1000 pixels",
"quality": "Qualidade",
"qualityHelp": "1-100, maior = melhor qualidade mas arquivos maiores",
"format": "Formato",
"fit": "Modo de Ajuste",
"fitHelp": "Como as imagens são redimensionadas para caber nas dimensões da miniatura. \"Cobrir\" corta para preencher, \"Conter\" cabe dentro dos limites.",
"fit_cover": "Cobrir (cortar para preencher)",
"fit_contain": "Conter (caber dentro)",
"fit_fill": "Preencher (esticar)",
"fit_inside": "Interior (reduzir para caber)",
"fit_outside": "Exterior (expandir para cobrir)",
"regenerateTitle": "Regenerar Miniaturas",
"regenerateHelp": "Após alterar as configurações de miniaturas, regenere todas as miniaturas existentes para aplicar a nova configuração. Isso é executado em segundo plano e pode demorar para galerias grandes.",
"regenerateButton": "Regenerar Todas as Miniaturas",
"regenerateStarted": "Regeneração de miniaturas iniciada",
"regenerateError": "Falha ao iniciar regeneração de miniaturas",
"saveSuccess": "Configurações de miniaturas salvas",
"saveError": "Falha ao salvar configurações de miniaturas",
"loadError": "Falha ao carregar configurações de miniaturas",
"infoTitle": "Sobre Miniaturas",
"infoText": "As miniaturas são imagens de pré-visualização menores geradas a partir dos originais. Aumentar o tamanho ou a qualidade melhora a aparência das fotos na grade da galeria, mas usa mais armazenamento e largura de banda. Após alterar as configurações, use \"Regenerar Todas as Miniaturas\" para atualizar as fotos existentes."
},
"seo": {
"title": "SEO e Robôs",
"indexingTitle": "Indexação por Mecanismos de Busca",
"allowIndexing": "Permitir indexação por mecanismos de busca",
"allowIndexingHelp": "Quando desabilitado, todos os rastreadores são bloqueados via robots.txt. Recomendado desativado para plataformas de fotos privadas.",
"sitemapUrl": "URL do Sitemap",
"sitemapUrlHelp": "Opcional. Adicionado ao robots.txt se fornecido.",
"aiBlockingTitle": "Bloqueio de IA e Bots",
"blockAiCrawlers": "Bloquear rastreadores de IA/LLM",
"blockAiCrawlersHelp": "Impedir que bots de treinamento de IA acessem seu conteúdo.",
"blockedAgents": "Agentes de IA bloqueados",
"addAgentPlaceholder": "Digite o nome do agente...",
"blockSocialBots": "Bloquear bots de pré-visualização de redes sociais",
"blockSocialBotsHelp": "Impedir pré-visualizações de links no Twitter, Facebook, LinkedIn, etc.",
"metaTagsTitle": "Meta Tags e Regras Personalizadas",
"metaNoindex": "Adicionar meta tag noindex",
"metaNoindexHelp": "Informa aos mecanismos de busca para não indexar páginas (nível HTML, complementa robots.txt).",
"metaNofollow": "Adicionar meta tag nofollow",
"metaNofollowHelp": "Informa aos mecanismos de busca para não seguir links nas páginas.",
"metaNoai": "Adicionar meta tag noai/noimageai",
"metaNoaiHelp": "Sinaliza que o conteúdo não deve ser usado para treinamento de IA.",
"customRules": "Regras personalizadas de robots.txt",
"ruleAgentPlaceholder": "User-agent",
"rulePathPlaceholder": "Caminho para Disallow",
"showPreview": "Mostrar pré-visualização do robots.txt",
"hidePreview": "Ocultar pré-visualização do robots.txt",
"saveSettings": "Salvar Configurações de SEO"
},
"analytics": {
"title": "Análises",
"umamiIntegration": "Integração com Umami Analytics",
"enableUmami": "Habilitar Umami Analytics",
"umamiUrl": "URL do Umami",
"umamiUrlHelp": "A URL da sua instância do Umami (ex.: https://analytics.seudominio.com)",
"websiteId": "ID do Site",
"websiteIdHelp": "O ID do seu site no Umami (encontrado no painel do Umami)",
"shareUrl": "URL de Compartilhamento (Opcional)",
"shareUrlHelp": "URL pública de compartilhamento para incorporar o painel completo (criar no Umami)",
"umamiInfo": "Sobre o Umami Analytics",
"umamiInfoText": "O Umami é uma plataforma de análises open-source focada em privacidade. Rastreia visualizações de página, visitantes únicos e eventos personalizados sem usar cookies.",
"learnMore": "Saiba mais sobre o Umami",
"saveAnalyticsSettings": "Salvar Configurações de Análises",
"backendAnalytics": "Análises do Backend",
"backendAnalyticsText": "O sistema também rastreia análises básicas no lado do servidor para monitoramento de segurança e desempenho.",
"tracked": "Métricas Rastreadas",
"galleryViews": "Visualizações de página da galeria",
"photoDownloads": "Downloads individuais e em massa",
"uniqueVisitors": "Visitantes únicos por IP",
"deviceTypes": "Tipos de dispositivo por user agents",
"privacy": "Privacidade",
"privacyText": "Os endereços IP são hasheados para privacidade. Nenhum dado pessoal é armazenado. Os dados de análises são retidos por 90 dias."
}
},
"analytics": {
"title": "Painel de Análises",
"titleSimple": "Análises",
"subtitle": "Acompanhe o desempenho das galerias e o engajamento dos visitantes",
"detailedSubtitle": "Análises detalhadas fornecidas pelo Umami",
"loadingAnalytics": "Carregando análises...",
"showSummaryView": "Mostrar Visão Resumida",
"fullDashboard": "Painel Completo",
"refresh": "Atualizar",
"last7Days": "Últimos 7 dias",
"last30Days": "Últimos 30 dias",
"last90Days": "Últimos 90 dias",
"pageViews": "Visualizações de Página",
"uniqueVisitors": "Visitantes Únicos",
"totalDownloads": "Total de Downloads",
"topGallery": "Galeria Mais Visitada",
"topPages": "Páginas Mais Visitadas",
"views": "visualizações",
"visitors": "visitantes únicos",
"topDownloadsByGallery": "Top Downloads por Galeria",
"deviceBreakdown": "Distribuição por Dispositivo",
"desktop": "Desktop",
"mobile": "Mobile",
"tablet": "Tablet",
"storageUsage": "Uso de Armazenamento",
"used": "Utilizado",
"of": "de",
"totalPhotos": "Total de Fotos",
"activeEvents": "Eventos Ativos",
"notConfigured": "Umami Analytics Não Configurado",
"configureInstructions": "Para ver dados reais de análises, configure o Umami nas variáveis de ambiente e nas configurações do painel administrativo.",
"noData": "Nenhum dado disponível",
"percentChange": "{{percent}}% em relação ao período anterior"
},
"branding": {
"title": "Identidade Visual e Temas",
"titleFull": "Identidade Visual e Personalização",
"subtitle": "Personalize a aparência das suas galerias",
"loadingBranding": "Carregando configurações de identidade visual...",
"themeAndStyle": "Tema e Estilo",
"companyInfo": "Informações da Empresa",
"companyName": "Nome da Empresa",
"companyNameHelp": "Exibido nos cabeçalhos das galerias e nos emails",
"companyTagline": "Slogan da Empresa",
"companyTaglineHelp": "Uma breve descrição do seu negócio",
"supportEmail": "Email de Suporte",
"supportEmailHelp": "email de contato para suporte aos convidados",
"footerText": "Texto do Rodapé",
"footerTextHelp": "Exibido na parte inferior das galerias",
"logo": "Logo",
"currentLogo": "Logo atual",
"uploadLogo": "Enviar Logo",
"removeLogo": "Remover Logo",
"logoHelp": "Tamanho recomendado: 200x60px, PNG ou JPEG",
"favicon": "Favicon",
"currentFavicon": "Favicon atual",
"uploadFavicon": "Enviar Favicon",
"removeFavicon": "Remover Favicon",
"faviconHelp": "Formato PNG ou ICO, tamanho recomendado: 32x32px",
"watermark": "Marca d'Água",
"watermarkSettings": "Configurações de Marca d'Água",
"enableWatermarks": "Habilitar Marcas d'Água",
"watermarkHelp": "Adicione o nome da sua empresa como marca d'água nas fotos baixadas",
"watermarkLogo": "Logo da Marca d'Água",
"currentWatermark": "Marca d'água atual",
"uploadWatermarkLogo": "Enviar Logo para Marca d'Água",
"watermarkPosition": "Posição da Marca d'Água",
"topLeft": "Superior Esquerdo",
"topRight": "Superior Direito",
"center": "Centro",
"bottomLeft": "Inferior Esquerdo",
"bottomRight": "Inferior Direito",
"watermarkOpacity": "Opacidade da Marca d'Água",
"watermarkSize": "Tamanho da Marca d'Água",
"theme": "Tema",
"galleryTheme": "Tema da Galeria",
"themeCustomization": "Personalização do Tema",
"selectPreset": "Selecione um tema predefinido",
"colors": "Cores",
"primaryColor": "Cor Primária",
"secondaryColor": "Cor Secundária",
"accentColor": "Cor de Destaque",
"backgroundColor": "Cor de Fundo",
"textColor": "Cor do Texto",
"colorMode": "Modo de Cor",
"colorModeLight": "Claro",
"colorModeDark": "Escuro",
"colorModeAuto": "Automático",
"colorModeHelp": "Automático segue a preferência do sistema do visitante.",
"customCSS": "CSS Personalizado",
"preview": "Pré-visualização",
"previewInNewTab": "Pré-visualizar em Nova Aba",
"reset": "Redefinir",
"saveChanges": "Salvar Alterações",
"applyLivePreview": "Aplicar alterações imediatamente (Pré-visualização ao Vivo)",
"eventSpecificThemes": "Temas Específicos do Evento",
"eventThemesInfo": "Você pode substituir essas configurações de tema globais para eventos individuais ao criá-los ou editá-los.",
"themePresets": "Temas Predefinidos",
"galleryLayout": "Layout da Galeria",
"layoutDescriptions": {
"grid": "Layout de grade clássico com tamanhos de foto uniformes",
"masonry": "Layout estilo Pinterest com alturas variadas",
"carousel": "Slideshow em tela cheia com navegação",
"timeline": "Fotos organizadas por data",
"hero": "Imagem em destaque com grade abaixo",
"mosaic": "Layout artístico com tamanhos mistos",
"justified": "Layout baseado em linhas preservando as proporções",
"gallery-premium": "Tema claro elegante com hero e masonry (Beta)",
"gallery-story": "Tema escuro cinematográfico com seções de cenas (Beta)"
},
"layoutSettings": "Configurações de Layout",
"photoSpacing": "Espaçamento das Fotos",
"spacing": {
"tight": "Compacto",
"normal": "Normal",
"relaxed": "Espaçado"
},
"photoAnimation": "Animação das Fotos",
"animation": {
"none": "Nenhuma",
"fade": "Fade",
"scale": "Escala",
"slide": "Deslizamento"
},
"columns": "Colunas",
"mobile": "Mobile",
"tablet": "Tablet",
"desktop": "Desktop",
"enableAutoplay": "Habilitar Reprodução Automática",
"autoplayInterval": "Intervalo de Reprodução Automática (segundos)",
"groupPhotosBy": "Agrupar Fotos Por",
"grouping": {
"day": "Dia",
"week": "Semana",
"month": "Mês"
},
"masonryMode": "Modo de Layout",
"masonryModeOptions": {
"columns": "Colunas (estilo Pinterest)",
"rows": "Linhas (Justified personalizado)",
"flickr": "Flickr (Justified testado)",
"justified": "Google Fotos (algoritmo Knuth-Plass)"
},
"masonryModeHint": {
"columns": "Colunas verticais estilo Pinterest com alturas variadas",
"rows": "Layout justified por linhas personalizado",
"flickr": "Algoritmo de layout justified open-source do Flickr",
"justified": "Layout de linhas estilo Google Fotos usando o algoritmo Knuth-Plass para quebras otimizadas"
},
"targetRowHeight": "Altura Alvo da Linha",
"targetRowHeightHint": "Altura em pixels (150-400). As fotos serão dimensionadas para caber nas linhas.",
"lastRowBehavior": "Alinhamento da Última Linha",
"lastRowOptions": {
"left": "Alinhado à esquerda",
"center": "Centralizado",
"justify": "Justified (esticado)"
},
"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",
"showHeroSection": "Mostrar Seção Hero",
"showHeroSectionHint": "Exibir uma imagem hero em destaque acima da galeria justified",
"heroHeight": "Altura da Seção Hero",
"heroHeightOptions": {
"small": "Pequena (40-50%)",
"medium": "Média (50-70%)",
"large": "Grande (60-80%)"
},
"heroOverlayOpacity": "Opacidade do Overlay Hero",
"heroOverlayHint": "Escureça a imagem hero para melhorar a legibilidade do texto",
"typographyAndStyle": "Tipografia e Estilo",
"bodyFont": "Fonte do Corpo",
"headingFont": "Fonte dos 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 personalizar ainda mais a aparência",
"cssInstructions": {
"title": "Como usar CSS Personalizado",
"variables": "Variáveis CSS do Tema",
"variablesDesc": "Use essas variáveis CSS para corresponder aos seus temas predefinidos:",
"layouts": "Layouts de Galeria Personalizados",
"layoutsDesc": "Direcione elementos da galeria com esses seletores:",
"glassEffect": "Efeito Glassmorphism",
"glassEffectDesc": "Crie efeitos de vidro modernos:",
"tip": "Dica",
"tipText": "Use Modelos de CSS em Configurações > Modelos CSS para designs pré-construídos como Apple Liquid Glass."
},
"resetToDefault": "Redefinir para Padrão",
"applyTheme": "Aplicar Tema",
"customTheme": "Tema Personalizado",
"customizeTheme": "Personalizar Tema",
"saveTheme": "Salvar Tema",
"previewLayout": "Pré-visualizar Layout",
"livePreview": "Pré-visualização ao Vivo",
"heroPlaceholderText": "A foto hero do seu evento aparecerá aqui",
"whiteLabel": "White Label",
"hidePoweredBy": "Ocultar marca \"Desenvolvido por PicPeak\"",
"hidePoweredByHelp": "Remover a atribuição do PicPeak dos rodapés das galerias para uma experiência totalmente white-label",
"logoCustomization": "Personalização do Logo",
"changeLogo": "Alterar Logo",
"logoSizeSmall": "Pequeno (32px)",
"logoSizeMedium": "Médio (48px)",
"logoSizeLarge": "Grande (64px)",
"logoSizeXLarge": "Extra Grande (96px)",
"logoSizeCustom": "Personalizado",
"logoMaxHeight": "Altura Máxima (pixels)",
"logoMaxHeightHelp": "Defina uma altura máxima personalizada para o logo (20-200 pixels)",
"logoPosition": "Posição do Logo no Cabeçalho",
"positionLeft": "Esquerda",
"positionCenter": "Centro",
"positionRight": "Direita",
"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 da galeria",
"showLogoInHeaderHelp": "Exibir o logo na barra de cabeçalho principal",
"showLogoInHero": "Mostrar logo na seção hero",
"showLogoInHeroHelp": "Exibir o logo nas seções hero (para layouts não-grade)",
"headerStyle": "Estilo do Cabeçalho",
"headerStyleDescription": "Escolha como o cabeçalho da galeria é exibido. O estilo do cabeçalho é independente do layout das fotos.",
"headerStyleOptions": {
"hero": "Imagem Hero",
"standard": "Banner Padrão",
"minimal": "Minimalista",
"none": "Sem Cabeçalho"
},
"headerStyleDescriptions": {
"hero": "Imagem em altura total com sobreposição de informações do evento",
"standard": "Banner clássico com detalhes do evento",
"minimal": "Cabeçalho compacto com informações essenciais",
"none": "Ocultar cabeçalho completamente"
},
"heroDividerStyle": "Estilo do Divisor",
"heroDividerDescription": "Escolha como é a transição entre a imagem hero e o conteúdo da galeria.",
"dividerOptions": {
"wave": "Onda",
"straight": "Reto",
"angle": "Ângulo",
"curve": "Curva",
"none": "Nenhum"
},
"controlsStyle": "Estilo dos Controles",
"controlsStyleDescription": "Escolha como os filtros e controles da galeria são exibidos.",
"controlsStyleOptions": {
"classic": "Clássico",
"sidebar": "Barra Lateral"
},
"controlsStyleDescriptions": {
"classic": "Barra de filtros inline abaixo do cabeçalho",
"sidebar": "Botão de menu abre barra lateral com filtros"
},
"controlsStyleHeroWarning": "A barra lateral é recomendada para cabeçalhos hero para evitar que os controles apareçam acima da imagem 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"
},
"admin": {
"title": "Painel Admin",
"welcome": "Bem-vindo de volta, {{name}}",
"recentActivity": "Atividade Recente",
"systemStatus": "Status do Sistema",
"totalEvents": "Total de Eventos",
"activeGalleries": "Galerias Ativas",
"storageUsed": "Armazenamento Usado",
"totalPhotos": "Total de Fotos",
"storagePercent": "{{percent}}% do limite {{limit}}",
"storageSoftLimitConfigured": "Limite configurado: {{limit}}",
"storageSoftLimitRecommended": "Limite sugerido: {{limit}}",
"version": "Versão",
"archivedEvents": "Eventos Arquivados",
"systemHealth": "Saúde do Sistema",
"health": {
"healthy": "Saudável",
"warning": "Aviso",
"error": "Erro",
"checking": "Verificando..."
},
"updates": {
"available": "Atualização Disponível",
"newVersion": "A versão {{version}} está disponível",
"currentVersion": "Atual: {{version}}",
"channel": "Canal: {{channel}}",
"channelStable": "Estável",
"channelBeta": "Beta",
"beta": "BETA",
"viewReleaseNotes": "Ver Notas de Versão",
"updateAvailableShort": "v{{version}} disponível",
"checkForUpdates": "Verificar Atualizações",
"upToDate": "Você está atualizado",
"lastChecked": "Última verificação: {{time}}",
"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 de verificação antes de atualizar",
"error": "Falha ao carregar as instruções de atualização"
}
},
"notifications": "Notificações",
"viewAllNotifications": "Ver todas as notificações",
"noNotifications": "Nenhuma notificação nova",
"markAllRead": "Marcar todas como lidas",
"clearAll": "Limpar tudo",
"close": "Fechar",
"noNotificationsMessage": "Nenhuma notificação",
"notificationMessages": {
"eventCreated": "Novo evento \"{{eventName}}\" foi criado",
"eventArchived": "Evento \"{{eventName}}\" foi arquivado",
"eventUpdated": "Evento \"{{eventName}}\" foi atualizado",
"eventDeleted": "Evento \"{{eventName}}\" foi excluído",
"photosUploaded": "{{count}} fotos enviadas para \"{{eventName}}\"",
"photoDeleted": "Foto excluída de \"{{eventName}}\"",
"photosBulkDeleted": "{{count}} fotos excluídas 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 email \"{{template}}\" atualizado",
"bulkDownload": "{{count}} fotos baixadas de \"{{eventName}}\"",
"storageWarning": "Uso de armazenamento em {{percentage}}%",
"adminLogout": "Admin {{actorName}} encerrou a sessão",
"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 email atualizada",
"faviconUploaded": "Favicon enviado",
"brandingUpdated": "Configurações de identidade visual 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 para \"{{eventName}}\"",
"archiveRestored": "Arquivo restaurado para \"{{eventName}}\"",
"systemActivity": "Atividade do sistema: {{type}}",
"adminProfileUpdated": "Perfil admin atualizado por {{actorName}}"
},
"notificationToasts": {
"markedAllRead": "Todas as notificações marcadas como lidas",
"clearedAll": "{{count}} notificações apagadas",
"profileUpdated": "Perfil admin atualizado"
},
"markAsRead": "Marcar como lida",
"markAllAsRead": "Marcar todas como lidas",
"notificationSettings": "Configurações de Notificação",
"changePassword": "Alterar Senha",
"darkMode": "Mudar para modo escuro",
"lightMode": "Mudar para modo claro",
"accountSettings": {
"title": "Conta admin",
"description": "Atualize as credenciais usadas para entrar no PicPeak.",
"username": "Nome de usuário",
"usernamePlaceholder": "Admin",
"email": "Email",
"emailPlaceholder": "[email protected]",
"updateButton": "Atualizar perfil"
},
"profileUpdateError": "Não foi possível atualizar o perfil admin. Por favor, tente novamente.",
"loadingDashboard": "Carregando painel...",
"activeEvents": "Eventos Ativos",
"expiringSoon": "Expirando em Breve",
"next7Days": "Próximos 7 dias",
"totalViews": "Total de Visualizações",
"downloads": "Downloads",
"percentFromLastWeek": "{{percent}}% da semana passada",
"dashboardSubtitle": "Bem-vindo de volta! Veja o que está acontecendo com suas galerias.",
"eventsExpiringSoon": "Eventos Expirando em Breve",
"noEventsExpiring": "Nenhum evento expirando nos próximos 7 dias",
"daysLeft": "{{count}} dia restante",
"daysLeft_plural": "{{count}} dias restantes",
"viewAllExpiringEvents": "Ver todos os {{count}} eventos expirando",
"noRecentActivity": "Nenhuma atividade recente",
"viewAllActivity": "Ver toda a atividade",
"quickActions": "Ações Rápidas",
"viewArchives": "Ver Arquivos",
"analytics": "Análises",
"activities": {
"event_created": "Novo evento criado: {{eventName}}",
"photos_uploaded": "{{count}} fotos enviadas para {{eventName}}",
"event_archived": "Evento arquivado: {{eventName}}",
"archive_restored": "Arquivo restaurado: {{eventName}}",
"archive_deleted": "Arquivo excluído: {{eventName}}",
"archive_downloaded": "Arquivo baixado: {{eventName}}",
"email_config_updated": "Configuração de email atualizada",
"email_template_updated": "Modelo de email atualizado: {{template}}",
"branding_updated": "Configurações de identidade visual atualizadas",
"theme_updated": "Configurações de tema atualizadas",
"bulk_download": "{{count}} fotos baixadas de {{eventName}}",
"gallery_password_entry": "Senha inserida para {{eventName}}",
"expiration_warning_viewed": "Aviso de expiração visualizado para {{eventName}}",
"feedback_settings_updated": "Configurações de feedback atualizadas",
"feedback_moderated": "Feedback moderado",
"feedback_deleted": "Feedback excluído",
"photo_like": "Foto curtida em {{eventName}}",
"photo_favorite": "Foto favoritada em {{eventName}}",
"photo_rating": "Foto avaliada em {{eventName}}",
"photo_comment": "Foto comentada em {{eventName}}",
"guest_feedback_like": "Visitante curtiu uma foto em {{eventName}}",
"guest_feedback_favorite": "Visitante favoritou uma foto em {{eventName}}",
"guest_feedback_rating": "Visitante avaliou uma foto em {{eventName}}",
"guest_feedback_comment": "Visitante comentou em uma foto em {{eventName}}",
"word_filter_added": "Filtro de palavras adicionado",
"external_import_completed": "Importação de mídia externa concluída ({{imported}} importadas, {{skipped}} ignoradas)",
"bulk_archive_completed": "Arquivamento em massa concluído",
"event_activated": "Evento ativado: {{eventName}}",
"event_deactivated": "Evento desativado: {{eventName}}",
"photo_deleted": "Foto excluída de {{eventName}}",
"photos_bulk_deleted": "{{count}} fotos excluídas de {{eventName}}",
"settings_updated": "Configurações atualizadas",
"event_updated": "Evento atualizado: {{eventName}}",
"event_renamed": "Evento renomeado: {{eventName}}",
"event_deleted": "Evento excluído: {{eventName}}",
"password_changed": "Senha alterada",
"email_resent": "Email de criação reenviado para: {{eventName}}",
"category_created": "Categoria criada: {{categoryName}}",
"category_updated": "Categoria atualizada: {{categoryName}}",
"category_deleted": "Categoria excluída: {{categoryName}}",
"general_settings_updated": "Configurações gerais atualizadas",
"favicon_uploaded": "Favicon enviado",
"analytics_settings_updated": "Configurações de análise atualizadas",
"cms_page_updated": "Página CMS atualizada: {{page}}",
"security_settings_updated": "Configurações de segurança atualizadas",
"password_reset": "Senha redefinida para: {{eventName}}",
"admin_logout": "Admin {{actorName}} encerrou a sessão",
"system_activity": "Atividade do sistema: {{type}}",
"unknown": "Atividade desconhecida"
},
"userManagement": "Gerenciamento de Usuários",
"inviteUser": "Convidar Usuário",
"pendingInvitations": "Convites Pendentes",
"roles": {
"super_admin": "Super Admin",
"admin": "Admin",
"editor": "Editor",
"viewer": "Visualizador"
},
"userStatus": {
"active": "Ativo",
"inactive": "Inativo"
},
"inviteForm": {
"email": "Endereço de Email",
"role": "Função",
"send": "Enviar Convite"
},
"acceptInvite": {
"title": "Aceitar Convite de Admin",
"username": "Escolha um Nome de Usuário",
"password": "Criar Senha",
"submit": "Criar Conta"
},
"photos": {
"hidden": "Oculta",
"hideSelected": "Ocultar",
"showSelected": "Exibir",
"hiddenSuccess": "Fotos ocultadas dos visitantes",
"visibleSuccess": "Fotos agora visíveis aos visitantes"
}
},
"permissions": {
"insufficient": "Você não tem permissão para realizar esta ação",
"viewOnly": "Somente Visualização"
},
"acceptInvitation": {
"title": "Aceitar Convite",
"subtitle": "Crie sua conta admin",
"validating": "Validando convite...",
"invalidToken": "Convite Inválido",
"invalidTokenMessage": "Este link de convite é inválido ou expirou. Entre em contato com seu administrador para um novo convite.",
"expiredToken": "Convite Expirado",
"expiredTokenMessage": "Este convite expirou. Solicite um novo convite ao seu administrador.",
"alreadyUsed": "Convite Já Utilizado",
"alreadyUsedMessage": "Este convite já foi usado para criar uma conta.",
"invitedAs": "Você foi convidado como",
"expiresAt": "O convite expira em",
"usernameLabel": "Nome de 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",
"creating": "Criando conta...",
"success": "Conta Criada!",
"successMessage": "Sua conta foi criada com sucesso. Agora você pode entrar com suas credenciais.",
"redirecting": "Redirecionando para o login em {{seconds}}...",
"goToLogin": "Ir para Login",
"contactAdminMessage": "Entre em contato com seu administrador para solicitar um novo convite.",
"passwordsMatch": "As senhas coincidem",
"alreadyHaveAccount": "Já tem uma conta?",
"signIn": "Entrar",
"errors": {
"usernameRequired": "Nome de usuário é obrigatório",
"usernameTooShort": "O nome de usuário deve ter pelo menos 3 caracteres",
"usernameTooLong": "O nome de usuário deve ter no máximo 50 caracteres",
"usernameInvalid": "O nome de usuário só pode conter letras, números, sublinhados e hífens",
"passwordRequired": "Senha é obrigatória",
"passwordTooShort": "A senha deve ter pelo menos 12 caracteres",
"passwordsDoNotMatch": "As senhas não coincidem",
"confirmPasswordRequired": "Por favor, confirme sua senha",
"usernameTaken": "Este nome de usuário já está em uso",
"emailTaken": "Já existe uma conta com este email",
"genericError": "Falha ao criar conta. Por favor, tente novamente."
}
},
"errors": {
"notFound": "Não Encontrado",
"galleryNotFound": "Galeria Não Encontrada",
"galleryNotFoundMessage": "Esta galeria não existe ou foi removida.",
"galleryArchived": "Galeria Arquivada",
"galleryArchivedMessage": "Esta galeria foi arquivada e não está mais acessível. Entre em contato com o organizador do evento se precisar de acesso a estas fotos.",
"unauthorized": "Não Autorizado",
"forbidden": "Acesso Negado",
"serverError": "Erro no Servidor",
"somethingWentWrong": "Algo deu errado",
"tryAgainLater": "Por favor, tente novamente mais tarde",
"refreshPage": "Recarregar Página",
"oopsSomethingWentWrong": "Ops! Algo deu errado",
"unexpectedError": "Encontramos um erro inesperado. Não se preocupe, seus dados estão seguros.",
"goToHomepage": "Ir para a Página Inicial",
"errorDetails": "Detalhes do Erro",
"requiredFields": "Por favor, preencha todos os campos obrigatórios",
"enterTestEmail": "Por favor, insira um endereço de email de teste",
"failedToCreateEvent": "Falha ao criar evento",
"eventCreationFailed": "Falha ao criar evento",
"networkError": "Erro de rede. Por favor, verifique sua conexão e tente novamente.",
"sessionExpired": "Sessão expirada. Por favor, faça login novamente."
},
"validation": {
"eventNameRequired": "O nome do evento é obrigatório",
"hostEmailRequired": "O email do cliente é obrigatório",
"hostNameRequired": "O nome do cliente é obrigatório",
"adminEmailRequired": "O email do admin é obrigatório",
"invalidEmailFormat": "Formato de email inválido",
"passwordRequired": "Senha é obrigatória",
"passwordMinLength": "A senha deve ter pelo menos 6 caracteres",
"passwordsDoNotMatch": "As senhas não coincidem",
"passwordSecurityRequirements": "A senha não atende aos requisitos de segurança",
"expirationRange": "A expiração deve ser entre 1 e 365 dias"
},
"legal": {
"impressum": "Aviso Legal",
"datenschutz": "Política de Privacidade",
"termsOfService": "Termos de Serviço",
"cookiePolicy": "Política de Cookies"
},
"toast": {
"saveSuccess": "Alterações salvas com sucesso",
"saveError": "Falha ao salvar alterações",
"deleteSuccess": "Excluído com sucesso",
"deleteError": "Falha ao excluir",
"uploadSuccess": "Upload concluído com sucesso",
"uploadError": "Falha no upload",
"loginSuccess": "Login realizado com sucesso",
"loginError": "Falha no login",
"passwordChanged": "Senha alterada com sucesso",
"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",
"categoryAdded": "Categoria adicionada com sucesso",
"categoryDeleted": "Categoria excluída com sucesso",
"categoryUpdated": "Categoria atualizada com sucesso",
"emailConfigSaved": "Configuração de email salva com sucesso",
"testEmailSent": "Email de teste enviado com sucesso",
"pageUpdated": "Página atualizada com sucesso",
"archiveRestored": "Arquivo restaurado com sucesso",
"archiveDeleted": "Arquivo excluído permanentemente"
},
"email": {
"title": "Configuração de Email",
"subtitle": "Configure as definições de email para notificações",
"loadingSettings": "Carregando configurações de email...",
"smtpConfiguration": "Configuração SMTP",
"smtpHost": "Host SMTP",
"smtpHostHelp": "O nome do host do seu servidor de email",
"smtpPort": "Porta SMTP",
"smtpPortHelp": "Geralmente 587 para TLS, 465 para SSL, 25 para sem criptografia",
"smtpSecure": "Usar SSL/TLS",
"smtpSecureHelp": "Ative para transmissão segura de email",
"smtpUsername": "Usuário SMTP",
"smtpUsernameHelp": "O nome de usuário da sua conta de email",
"smtpPassword": "Senha SMTP",
"smtpPasswordHelp": "A senha da sua conta de email",
"fromDetails": "Detalhes do Remetente",
"fromEmail": "Email do Remetente",
"fromEmailHelp": "Endereço de email que aparece como remetente",
"fromName": "Nome do Remetente",
"fromNameHelp": "Nome que aparece como remetente",
"testConfiguration": "Testar Configuração",
"testEmail": "Endereço de Email de Teste",
"testEmailHelp": "Envie um email de teste para verificar as configurações",
"sendTestEmail": "Enviar Email de Teste",
"saveConfiguration": "Salvar Configuração",
"emailTemplates": "Modelos de Email",
"templateVariables": "Variáveis Disponíveis",
"previewTemplate": "Pré-visualizar Modelo",
"smtpSettings": "Configurações SMTP",
"testEmailSuccess": "Email de teste enviado com sucesso",
"saveSmtpSettings": "Salvar Configurações SMTP",
"testEmailSection": "Email de Teste",
"beforeTesting": "Antes de testar:",
"saveSmtpFirst": "Salve suas configurações SMTP primeiro",
"ensureFirewall": "Certifique-se de que seu firewall permite SMTP de saída",
"gmailAppPassword": "Para Gmail, use uma senha específica de aplicativo",
"testEmailAddressLabel": "Endereço de Email de Teste",
"sendTestEmailButton": "Enviar Email de Teste",
"commonSmtpSettings": "Configurações SMTP Comuns:",
"editTemplate": "Editar Modelo",
"templateName": "Nome do Modelo",
"subjectLine": "Linha de Assunto",
"emailBody": "Corpo do Email",
"preview": "Pré-visualizar",
"save": "Salvar",
"saveChanges": "Salvar Alterações",
"templates": "Modelos",
"variableHelp": "Use estas variáveis no seu modelo. Elas serão substituídas pelos valores reais quando os emails forem enviados.",
"port": "Porta",
"security": "Segurança",
"username": "Usuário",
"password": "Senha",
"enterPassword": "Digite a senha",
"required": "obrigatório",
"ignoreSslErrors": "Ignorar erros de certificado SSL/TLS",
"ignoreSslWarning": "Aviso: Desativar a verificação de certificado torna a conexão vulnerável a ataques man-in-the-middle. Ative isso somente se você confia no servidor SMTP e compreende as implicações de segurança.",
"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",
"primaryColorHint": "Usada para cabeçalho, botões e links",
"secondaryColor": "Fundo do Rodapé",
"secondaryColorHint": "Usada para o fundo da seção de 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"
},
"cms": {
"title": "Páginas CMS",
"subtitle": "Gerencie páginas legais e informativas",
"loadingPages": "Carregando páginas...",
"pages": "Páginas",
"previewLinks": "Links de Visualização",
"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...",
"saveChanges": "Salvar Alterações",
"lastUpdated": "Última atualização:",
"impressum": "Aviso Legal",
"datenschutz": "Política de Privacidade",
"pageUpdated": "Página atualizada com sucesso"
},
"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": "Pesquisar tipos de evento...",
"showInactive": "Mostrar inativos",
"noResults": "Nenhum tipo de evento encontrado",
"empty": "Nenhum tipo de evento ainda",
"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": "URL de exemplo:",
"emoji": "Ícone",
"themePreset": "Tema Padrão",
"isActive": "Ativo (visível na criação de eventos)"
},
"validation": {
"slugFormat": "Apenas letras, números e hifens são permitidos"
},
"slugInfo": {
"title": "Informações sobre o Prefixo de URL:",
"description": "O prefixo de URL é usado para gerar as URLs das galerias. Por exemplo, um tipo de evento com o prefixo \"familia\" criará URLs como: familia-silva-familia-2025-01-22"
},
"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 está usando este tipo."
}
},
"backup": {
"external": {
"warning": {
"title": "Mídia externa excluída",
"body": "Esta instalação referencia fotos de /external-media. Esses originais estão excluídos dos backups. Miniaturas e banco de dados ainda são incluídos no backup."
}
},
"title": "Gerenciamento de Backup",
"subtitle": "Gerencie backups do sistema, configure backups automatizados e restaure a partir de backups anteriores.",
"tabs": {
"dashboard": "Painel",
"configuration": "Configuração",
"history": "Histórico de Backups",
"restore": "Restaurar"
},
"status": {
"inProgress": "Backup em andamento...",
"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...",
"running": "Executando...",
"testConnection": "Testar Conexão",
"save": "Salvar Configuração",
"delete": "Excluir",
"view": "Ver Detalhes",
"download": "Baixar",
"refresh": "Atualizar"
},
"dashboard": {
"backupHealth": "Integridade do Backup",
"healthStatus": {
"excellent": "Excelente",
"good": "Bom",
"warning": "Atenção",
"critical": "Crítico"
},
"health": {
"title": "Integridade do Backup"
},
"healthMessages": {
"noBackups": "Nenhum backup encontrado",
"lastBackupFailed": "Último backup falhou",
"upToDate": "Backup está atualizado",
"recent": "Backup é recente",
"gettingOld": "Backup está ficando antigo",
"outdated": "Backup está desatualizado",
"failed": "Último backup falhou",
"old": "Backup está ficando antigo"
},
"stats": {
"totalBackups": "Total de Backups",
"backupSize": "Tamanho do Backup",
"lastDuration": "Duração do Último",
"backupStatus": "Status do Backup",
"last": "Último",
"files": "arquivos",
"minutes": "{{count}}m",
"active": "Ativo",
"inactive": "Inativo",
"noBackupsYet": "Nenhum backup ainda"
},
"recentActivity": {
"title": "Atividade Recente de Backup"
},
"notConfigured": {
"title": "Backup Não Configurado",
"message": "Por favor, configure as definições de backup na aba Configuração antes de executar backups."
},
"actions": {
"runBackupNow": "Executar Backup Agora",
"running": "Executando..."
},
"coverage": {
"title": "Cobertura do Backup",
"database": "Banco de Dados",
"photos": "Fotos",
"archives": "Arquivos",
"systemFiles": "Arquivos do Sistema",
"included": "Incluído",
"excluded": "Excluído",
"optional": "Opcional"
},
"storageDestination": "Destino de Armazenamento",
"nextScheduledBackup": "Próximo Backup Agendado",
"backupType": "Backup {{type}}",
"noDestinationSet": "Nenhum destino definido"
},
"configuration": {
"enableBackup": "Ativar Backups Automatizados",
"enableBackupHelp": "Criar backups automaticamente de acordo com o agendamento configurado",
"destinationType": "Destino do Backup",
"destinationTypes": {
"local": {
"name": "Armazenamento Local",
"description": "Armazenar backups no sistema de arquivos local do servidor"
},
"rsync": {
"name": "Servidor Remoto (Rsync)",
"description": "Sincronizar backups para um servidor remoto via SSH/Rsync"
},
"s3": {
"name": "Armazenamento S3 Compatível",
"description": "Armazenar backups no Amazon S3 ou armazenamento de objetos compatível"
}
},
"fields": {
"destinationPath": "Caminho de Destino",
"destinationPathHelp": "Caminho do diretório local para armazenar backups",
"destinationPathPlaceholder": "/caminho/para/diretorio/backup",
"rsyncHost": "Host Remoto",
"rsyncHostHelp": "Nome do host SSH ou endereço IP",
"rsyncHostPlaceholder": "backup.exemplo.com",
"rsyncUser": "Usuário SSH",
"rsyncUserHelp": "Nome de usuário para conexão SSH",
"rsyncUserPlaceholder": "usuario-backup",
"rsyncPath": "Caminho Remoto",
"rsyncPathHelp": "Caminho do diretório no servidor remoto",
"rsyncPathPlaceholder": "/home/backup/compartilhamento-fotos",
"rsyncSshKey": "Chave Privada SSH",
"rsyncSshKeyHelp": "Chave privada SSH para autenticação (opcional)",
"rsyncSshKeyPlaceholder": "-----BEGIN RSA PRIVATE KEY-----",
"s3Endpoint": "Endpoint S3",
"s3EndpointHelp": "Endpoint da API S3 (ex.: s3.amazonaws.com)",
"s3EndpointPlaceholder": "https://s3.amazonaws.com",
"s3Bucket": "Nome do Bucket",
"s3BucketHelp": "Bucket S3 para armazenar backups",
"s3BucketPlaceholder": "meu-bucket-de-backup",
"s3AccessKey": "ID da Chave de Acesso",
"s3AccessKeyHelp": "ID da chave de acesso AWS/S3",
"s3AccessKeyPlaceholder": "AKIAIOSFODNN7EXAMPLE",
"s3SecretKey": "Chave de Acesso Secreta",
"s3SecretKeyHelp": "Chave de acesso secreta AWS/S3",
"s3SecretKeyPlaceholder": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"s3Region": "Região",
"s3RegionHelp": "Região S3 (ex.: us-east-1)",
"s3RegionPlaceholder": "us-east-1"
},
"schedule": {
"title": "Agendamento de Backup",
"scheduleType": "Tipo de Agendamento",
"scheduleOptions": {
"hourly": "A cada hora",
"daily": "Diariamente",
"weekly": "Semanalmente",
"custom": "Expressão cron personalizada"
},
"options": {
"hourly": "A cada hora",
"daily": "Diariamente",
"weekly": "Semanalmente",
"custom": "Expressão cron personalizada"
},
"customCron": "Expressão Cron",
"customCronHelp": "Digite uma expressão cron válida (ex.: 0 3 * * *)",
"retention": "Período de Retenção",
"retentionDays": "Manter backups por",
"retentionHelp": "dias (backups mais antigos serão excluídos automaticamente)"
},
"whatToBackup": {
"title": "O Que Incluir no Backup",
"database": "Banco de Dados",
"databaseHelp": "Todos os dados de eventos, configurações e definições",
"photos": "Fotos",
"photosHelp": "Todas as fotos enviadas em galerias ativas",
"archives": "Arquivos",
"archivesHelp": "Arquivos ZIP de eventos arquivados",
"thumbnails": "Miniaturas",
"thumbnailsHelp": "Imagens de miniatura geradas (podem ser recriadas)",
"tempFiles": "Arquivos Temporários",
"tempFilesHelp": "Arquivos temporários de upload e processamento"
},
"advancedOptions": {
"title": "Opções Avançadas",
"compression": "Ativar Compressão",
"compressionHelp": "Comprimir arquivos de backup para economizar espaço de armazenamento",
"encryption": "Ativar Criptografia",
"encryptionHelp": "Criptografar backups para segurança adicional",
"encryptionPassphrase": "Senha de Criptografia",
"encryptionPassphraseHelp": "Senha forte para criptografia de backup",
"confirmPassphrase": "Confirmar Senha",
"passphrasesDontMatch": "As senhas não coincidem"
},
"validation": {
"requiredFields": "Por favor, preencha todos os campos obrigatórios",
"invalidCron": "Expressão cron inválida",
"connectionTestFailed": "Teste de conexão falhou",
"connectionTestSuccess": "Teste de conexão bem-sucedido!"
},
"messages": {
"requiredFields": "Por favor, 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": "Pesquisar backups...",
"allStatus": "Todos os Status",
"status": {
"completed": "Concluído",
"failed": "Falhou",
"running": "Executando",
"partial": "Parcial"
},
"deleteConfirm": "Tem certeza que deseja excluir este backup de {{date}}?",
"noBackups": "Nenhum backup encontrado",
"tableHeaders": {
"date": "Data",
"type": "Tipo",
"status": "Status",
"size": "Tamanho",
"duration": "Duração",
"actions": "Ações"
},
"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 no Backup",
"errorDetails": "Detalhes do Erro",
"manifest": "Manifesto"
},
"statistics": "Estatísticas",
"errors": "Erros",
"backupDetails": {
"backupId": "ID do Backup",
"startTime": "Hora de Início",
"endTime": "Hora de Término",
"destination": "Destino",
"filesProcessed": "Arquivos Processados",
"totalSize": "Tamanho Total",
"compressionRatio": "Taxa de Compressão",
"errorLog": "Log de Erros",
"noErrors": "Nenhum erro ocorreu"
},
"pagination": {
"showing": "Exibindo {{from}}-{{to}} de {{total}} backups",
"previous": "Anterior",
"next": "Próximo"
},
"filter": {
"allStatus": "Todos os Status",
"completed": "Concluído",
"failed": "Falhou",
"running": "Executando",
"partial": "Parcial"
},
"noBackupsFound": "Nenhum backup encontrado",
"backupsWillAppear": "Os backups aparecerão aqui quando criados",
"messages": {
"deleteSuccess": "Backup excluído com sucesso"
}
},
"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 a partir do sistema de arquivos local"
},
"s3": {
"name": "Armazenamento S3",
"description": "Restaurar a partir do bucket S3"
},
"upload": {
"name": "Enviar Backup",
"description": "Enviar um arquivo de backup",
"comingSoon": "Funcionalidade de upload 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á fornecer a senha de criptografia para restaurar este backup.",
"enterPassphrase": "Digite a senha de criptografia",
"at": "às"
},
"restoreTypes": {
"full": {
"name": "Restauração Completa",
"description": "Restaurar tudo, incluindo banco de dados, fotos e arquivos",
"warning": "Isso substituirá todos os dados atuais"
},
"database": {
"name": "Somente Banco de Dados",
"description": "Restaurar apenas o banco de dados (configurações, eventos, usuários)",
"warning": "O banco de dados atual será substituído"
},
"files": {
"name": "Somente Arquivos",
"description": "Restaurar apenas fotos e arquivos",
"warning": "Arquivos existentes podem ser sobrescritos"
},
"selective": {
"name": "Restauração Seletiva",
"description": "Escolher 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": "Ignorar Backup Pré-Restauração",
"skipPreBackupHelp": "Por padrão, um backup é criado antes da restauração. Marque esta opção para ignorar.",
"force": "Forçar Restauração",
"forceHelp": "Ignorar verificações e avisos de segurança (use com cuidado)"
}
},
"confirmation": {
"title": "Revisar e Confirmar",
"subtitle": "Por favor, revise sua configuração de restauração",
"validation": {
"passed": "Validação Aprovada",
"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 de armazenamento insuficiente"
},
"summary": {
"title": "Resumo da Restauração",
"source": "Origem",
"backupDate": "Data do Backup",
"restoreType": "Tipo de Restauração",
"preBackup": "Pré-backup",
"enabled": "Ativado",
"skipped": "Ignorado"
},
"warning": {
"title": "Aviso Importante",
"message": "Esta operação de restauração substituirá os dados existentes. Certifique-se de ter um backup atual antes de continuar. 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 de Restauração",
"steps": {
"completed": "Concluído",
"running": "Executando",
"failed": "Falhou",
"pending": "Pendente"
},
"success": {
"title": "Restauração Concluída com Sucesso",
"message": "Seus dados foram restaurados. Por favor, 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": {
"restoreStarted": "Restauração iniciada com sucesso"
}
},
"messages": {
"backupStarted": "Backup iniciado com sucesso",
"backupFailed": "Falha ao iniciar backup",
"configUpdated": "Configuração de backup atualizada",
"configUpdateFailed": "Falha ao atualizar configuração",
"backupDeleted": "Backup excluído com sucesso",
"deleteFailed": "Falha ao excluir backup",
"testEmailSent": "Teste de conexão bem-sucedido!",
"testEmailFailed": "Teste de conexão falhou"
}
},
"cssTemplates": {
"title": "Modelos de CSS Personalizado",
"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 à galeria. Variáveis disponíveis: --gallery-bg, --gallery-text, --gallery-accent",
"securityNotice": "Aviso de Segurança",
"securityText": "O CSS é sanitizado para evitar código malicioso. URLs externas, @import e expressões JavaScript são bloqueados.",
"resetToDefault": "Redefinir para Padrão",
"resetConfirm": "Redefinir este modelo para o padrão? 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 manutenção programada para melhorar nosso serviço. Voltaremos em breve.",
"expectedCompletion": "Previsão de conclusão:",
"checkBackLater": "Por favor, volte mais tarde",
"urgentMatters": "Para assuntos urgentes, entre em contato com"
},
"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 de Senha:",
"minLength": "Pelo menos 6 caracteres",
"mustDiffer": "Deve ser diferente da senha atual",
"success": "Senha alterada com sucesso",
"failed": "Falha ao alterar senha",
"currentRequired": "A senha atual é obrigatória",
"newRequired": "A nova senha é obrigatória",
"minLengthError": "A senha deve ter pelo menos 6 caracteres",
"confirmRequired": "Por favor, confirme sua nova senha",
"noMatch": "As senhas não coincidem",
"mustBeDifferent": "A nova senha deve ser diferente da senha atual",
"cancel": "Cancelar"
},
"mandatoryPasswordChange": {
"title": "Alteração de Senha Obrigatória",
"description": "Por razões de segurança, você deve alterar sua senha antes de acessar o painel de administração.",
"success": "Senha alterada com sucesso! Você já pode acessar o painel de administração.",
"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": "Conexão restabelecida",
"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 a data do seu evento. Exemplo: \"Local2024$Agosto\" para maior segurança e facilidade de memorização."
},
"feedback": {
"comments": "Comentários",
"addComment": "Adicionar Comentário",
"yourName": "Seu nome",
"yourEmail": "Seu email",
"writeComment": "Escreva um comentário...",
"submit": "Enviar",
"commentSubmitted": "Comentário enviado",
"commentError": "Falha ao enviar comentário",
"rateLimited": "Por favor, aguarde antes de comentar novamente",
"commentRequired": "O comentário é obrigatório",
"nameRequired": "O nome é obrigatório",
"emailRequired": "O email é obrigatório",
"anonymous": "Anônimo",
"pendingApproval": "Aguardando aprovação",
"noComments": "Nenhum comentário ainda. Seja o primeiro a comentar!",
"rating": "Avaliação",
"ratePhoto": "Avaliar esta foto",
"yourRating": "Sua avaliação",
"averageRating": "Avaliação média",
"totalRatings": "avaliações",
"likes": "Curtidas",
"favorites": "Favoritos",
"likePhoto": "Curtir esta foto",
"favoritePhoto": "Adicionar aos favoritos",
"photoFeedback": "Feedback da Foto",
"hasFeedback": "Tem feedback",
"hasComments": "Tem comentários",
"hasRating": "Tem avaliação",
"settings": {
"title": "Configurações de Feedback dos Convidados",
"enableFeedback": "Ativar feedback",
"feedbackTypes": "Tipos de Feedback",
"ratings": "Avaliações por Estrelas",
"ratingsDesc": "Permitir que convidados avaliem fotos (1-5 estrelas)",
"likes": "Curtidas",
"likesDesc": "Funcionalidade simples de curtir/descurtir",
"comments": "Comentários",
"commentsDesc": "Comentários de texto nas fotos",
"favorites": "Favoritos",
"favoritesDesc": "Marcar fotos como favoritas"
}
},
"filter": {
"feedbackFilters": "Filtros de Feedback",
"clear": "Limpar",
"rating": "Avaliação",
"allPhotos": "Todas as Fotos",
"anyRating": "Qualquer Avaliação",
"oneStarPlus": "1+ Estrela",
"twoStarsPlus": "2+ Estrelas",
"threeStarsPlus": "3+ Estrelas",
"fourStarsPlus": "4+ Estrelas",
"fiveStarsOnly": "Apenas 5 Estrelas",
"hasLikes": "Tem curtidas",
"hasFavorites": "Tem favoritos",
"hasComments": "Tem comentários",
"showingPhotos": "Total de fotos",
"withRatings": "Com avaliações"
},
"adminLogin": {
"title": "Login de Administrador",
"subtitle": "Entre para gerenciar suas galerias de fotos",
"sessionExpired": "Sua sessão expirou. Por favor, faça login novamente.",
"emailLabel": "Endereço de email",
"emailPlaceholder": "[email protected]",
"emailRequired": "O email é obrigatório",
"invalidEmail": "Formato de email inválido",
"passwordLabel": "Senha",
"passwordPlaceholder": "Digite sua senha",
"passwordRequired": "A senha é obrigatória",
"passwordMinLength": "A senha deve ter pelo menos 6 caracteres",
"rememberMe": "Lembrar de mim",
"forgotPassword": "Esqueceu a senha?",
"signIn": "Entrar",
"loginSuccess": "Login realizado com sucesso!",
"networkError": "Erro de rede. Por favor, verifique sua conexão e tente novamente.",
"tooManyAttempts": "Muitas tentativas de login. Por favor, tente novamente mais tarde.",
"invalidCredentials": "email ou senha inválidos",
"generalError": "Ocorreu um erro. Por favor, tente novamente.",
"needHelp": "Precisa de ajuda? Entre em contato com",
"poweredBy": "Desenvolvido por PicPeak",
"devModeHint": "Modo de Desenvolvimento: Use email: [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: ",
"exportSelected": "Exportar {{count}} selecionados",
"exportFiltered": "Exportar fotos filtradas",
"hint": "Selecione fotos ou aplique filtros para exportar"
},
"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"
}
}