53e4f5afe6
Backend: new GET /api/photos endpoint with cursor-based pagination that queries image/video files sorted by EXIF captured_at (falling back to created_at), joining file_metadata for sort dates. Frontend: dense photo grid grouped by day with lazy-loaded thumbnails, IntersectionObserver infinite scroll, multi-select with batch download/delete, and a full-screen lightbox with prev/next navigation, EXIF metadata display, and download/favorite/delete toolbar. Includes navigation wiring, CSS (with dark theme), and i18n translations for all 9 locales.
367 lines
14 KiB
JSON
Executable File
367 lines
14 KiB
JSON
Executable File
{
|
|
"app": {
|
|
"title": "OxiCloud",
|
|
"description": "Sistema de armazenamento em nuvem minimalista"
|
|
},
|
|
"nav": {
|
|
"files": "Arquivos",
|
|
"shared": "Compartilhados",
|
|
"recent": "Recentes",
|
|
"favorites": "Favoritos",
|
|
"photos": "Fotos",
|
|
"trash": "Lixeira"
|
|
},
|
|
"photos": {
|
|
"empty_state": "Nenhuma foto ainda",
|
|
"empty_hint": "Envie imagens ou vídeos para vê-los aqui",
|
|
"items_selected": "selecionados"
|
|
},
|
|
"actions": {
|
|
"search": "Pesquisar arquivos...",
|
|
"new_folder": "Nova pasta",
|
|
"upload": "Enviar",
|
|
"upload_files": "Enviar arquivos",
|
|
"upload_folder": "Enviar pasta",
|
|
"upload.uploading": "Enviando...",
|
|
"upload.complete": "{count} / {total} enviados",
|
|
"rename": "Renomear",
|
|
"move": "Mover para...",
|
|
"move_to": "Mover para",
|
|
"delete": "Excluir",
|
|
"download": "Baixar",
|
|
"view": "Visualizar",
|
|
"cancel": "Cancelar",
|
|
"confirm": "Confirmar",
|
|
"share": "Compartilhar",
|
|
"favorite": "Adicionar aos favoritos",
|
|
"unfavorite": "Remover dos favoritos",
|
|
"copy": "Copiar",
|
|
"notify": "Notificar",
|
|
"send": "Enviar",
|
|
"clear_recent": "Limpar recentes",
|
|
"logout": "Sair",
|
|
"create": "Criar",
|
|
"search_btn": "Pesquisar",
|
|
"close": "Fechar",
|
|
"delete_permanently": "Excluir permanentemente",
|
|
"empty_trash": "Esvaziar lixeira"
|
|
},
|
|
"user_menu": {
|
|
"appearance": "Aparência",
|
|
"about": "Sobre o OxiCloud",
|
|
"about_description": "Plataforma de armazenamento em nuvem construída com Rust e Arquitetura Limpa. Rápida, segura e privada.",
|
|
"admin_panel": "Painel de administração",
|
|
"profile": "Meu perfil",
|
|
"role_user": "Usuário"
|
|
},
|
|
"share": {
|
|
"dialogTitle": "Link de compartilhamento",
|
|
"linkLabel": "Link compartilhado:",
|
|
"copyLink": "Copiar",
|
|
"permissions": "Permissões:",
|
|
"permissionRead": "Leitura",
|
|
"permissionWrite": "Escrita",
|
|
"permissionReshare": "Recompartilhar",
|
|
"password": "Proteção por senha:",
|
|
"generatePassword": "Gerar",
|
|
"expiration": "Data de expiração:",
|
|
"update": "Atualizar compartilhamento",
|
|
"remove": "Remover compartilhamento",
|
|
"notifyTitle": "Enviar notificação",
|
|
"notifyEmailLabel": "Endereço de e-mail:",
|
|
"notifyMessageLabel": "Mensagem (opcional):",
|
|
"notifySend": "Enviar notificação",
|
|
"shareWithOthers": "Compartilhar com outros",
|
|
"sharePublicly": "Compartilhar publicamente",
|
|
"shareSettings": "Configurações de compartilhamento",
|
|
"shareCopied": "Link copiado para a área de transferência",
|
|
"shareCreated": "Link de compartilhamento criado com sucesso",
|
|
"shareUpdated": "Configurações de compartilhamento atualizadas",
|
|
"shareRemoved": "Compartilhamento removido com sucesso"
|
|
},
|
|
"share_dialogTitle": "Link de compartilhamento",
|
|
"share_linkLabel": "Link compartilhado:",
|
|
"share_copyLink": "Copiar",
|
|
"share_permissions": "Permissões:",
|
|
"share_permissionRead": "Leitura",
|
|
"share_permissionWrite": "Escrita",
|
|
"share_permissionReshare": "Recompartilhar",
|
|
"share_password": "Proteção por senha:",
|
|
"share_generatePassword": "Gerar",
|
|
"share_expiration": "Data de expiração:",
|
|
"share_update": "Atualizar compartilhamento",
|
|
"share_remove": "Remover compartilhamento",
|
|
"share_notifyTitle": "Enviar notificação",
|
|
"share_notifyEmailLabel": "Endereço de e-mail:",
|
|
"share_notifyMessageLabel": "Mensagem (opcional):",
|
|
"share_notifySend": "Enviar notificação",
|
|
"shared": {
|
|
"backToFiles": "Voltar aos arquivos",
|
|
"pageTitle": "Recursos compartilhados",
|
|
"pageDescription": "Gerencie seus arquivos e pastas compartilhados",
|
|
"filterType": "Tipo:",
|
|
"filterAll": "Todos",
|
|
"filterFiles": "Arquivos",
|
|
"filterFolders": "Pastas",
|
|
"sortBy": "Ordenar por:",
|
|
"sortByName": "Nome",
|
|
"sortByDate": "Data de compartilhamento",
|
|
"sortByExpiration": "Expiração",
|
|
"search": "Pesquisar",
|
|
"colName": "Nome",
|
|
"colType": "Tipo",
|
|
"colDateShared": "Data de compartilhamento",
|
|
"colExpiration": "Expiração",
|
|
"colPermissions": "Permissões",
|
|
"colPassword": "Senha",
|
|
"colActions": "Ações",
|
|
"emptyStateTitle": "Nenhum recurso compartilhado ainda",
|
|
"emptyStateDesc": "Quando você compartilhar arquivos ou pastas, eles aparecerão aqui",
|
|
"goToFiles": "Ir para arquivos",
|
|
"typeFile": "Arquivo",
|
|
"typeFolder": "Pasta",
|
|
"noExpiration": "Sem expiração",
|
|
"hasPassword": "Sim",
|
|
"noPassword": "Não",
|
|
"editShare": "Editar compartilhamento",
|
|
"notifyShare": "Notificar alguém",
|
|
"copyLink": "Copiar link",
|
|
"removeShare": "Remover compartilhamento",
|
|
"linkCopied": "Link copiado para a área de transferência!",
|
|
"linkCopyFailed": "Falha ao copiar o link",
|
|
"itemUpdated": "Configurações de compartilhamento atualizadas",
|
|
"itemRemoved": "Compartilhamento removido com sucesso",
|
|
"invalidEmail": "Por favor, insira um endereço de e-mail válido",
|
|
"notificationSent": "Notificação enviada com sucesso",
|
|
"notificationFailed": "Falha ao enviar a notificação"
|
|
},
|
|
"shared_backToFiles": "Voltar aos arquivos",
|
|
"shared_pageTitle": "Recursos compartilhados",
|
|
"shared_pageDescription": "Gerencie seus arquivos e pastas compartilhados",
|
|
"shared_filterType": "Tipo:",
|
|
"shared_filterAll": "Todos",
|
|
"shared_filterFiles": "Arquivos",
|
|
"shared_filterFolders": "Pastas",
|
|
"shared_sortBy": "Ordenar por:",
|
|
"shared_sortByName": "Nome",
|
|
"shared_sortByDate": "Data de compartilhamento",
|
|
"shared_sortByExpiration": "Expiração",
|
|
"shared_search": "Pesquisar",
|
|
"shared_colName": "Nome",
|
|
"shared_colType": "Tipo",
|
|
"shared_colDateShared": "Data de compartilhamento",
|
|
"shared_colExpiration": "Expiração",
|
|
"shared_colPermissions": "Permissões",
|
|
"shared_colPassword": "Senha",
|
|
"shared_colActions": "Ações",
|
|
"shared_emptyStateTitle": "Nenhum recurso compartilhado ainda",
|
|
"shared_emptyStateDesc": "Quando você compartilhar arquivos ou pastas, eles aparecerão aqui",
|
|
"shared_goToFiles": "Ir para arquivos",
|
|
"shared_typeFile": "Arquivo",
|
|
"shared_typeFolder": "Pasta",
|
|
"shared_noExpiration": "Sem expiração",
|
|
"shared_hasPassword": "Sim",
|
|
"shared_noPassword": "Não",
|
|
"shared_editShare": "Editar compartilhamento",
|
|
"shared_notifyShare": "Notificar alguém",
|
|
"shared_copyLink": "Copiar link",
|
|
"shared_removeShare": "Remover compartilhamento",
|
|
"shared_linkCopied": "Link copiado para a área de transferência!",
|
|
"shared_linkCopyFailed": "Falha ao copiar o link",
|
|
"shared_itemUpdated": "Configurações de compartilhamento atualizadas",
|
|
"shared_itemRemoved": "Compartilhamento removido com sucesso",
|
|
"shared_invalidEmail": "Por favor, insira um endereço de e-mail válido",
|
|
"shared_notificationSent": "Notificação enviada com sucesso",
|
|
"shared_notificationFailed": "Falha ao enviar a notificação",
|
|
"files": {
|
|
"name": "Nome",
|
|
"type": "Tipo",
|
|
"size": "Tamanho",
|
|
"modified": "Modificado",
|
|
"no_files": "Nenhum arquivo nesta pasta",
|
|
"loading": "Carregando arquivos…",
|
|
"view_grid": "Visualização em grade",
|
|
"view_list": "Visualização em lista",
|
|
"file_types": {
|
|
"document": "Documento",
|
|
"image": "Imagem",
|
|
"video": "Vídeo",
|
|
"audio": "Áudio",
|
|
"pdf": "PDF",
|
|
"text": "Texto",
|
|
"folder": "Pasta",
|
|
"spreadsheet": "Planilha",
|
|
"presentation": "Apresentação",
|
|
"archive": "Arquivo compactado",
|
|
"installer": "Instalador",
|
|
"code": "Código"
|
|
}
|
|
},
|
|
"dialogs": {
|
|
"rename_folder": "Renomear pasta",
|
|
"rename_file": "Renomear arquivo",
|
|
"new_name": "Novo nome",
|
|
"new_folder_title": "Nova pasta",
|
|
"folder_name": "Nome da pasta",
|
|
"folder_placeholder": "Minha pasta",
|
|
"rename_title": "Renomear",
|
|
"move_file": "Mover arquivo",
|
|
"move_folder": "Mover pasta",
|
|
"select_destination": "Selecione a pasta de destino:",
|
|
"root": "Raiz",
|
|
"delete_confirmation": "Tem certeza de que deseja excluir",
|
|
"and_contents": "e todo o seu conteúdo",
|
|
"no_undo": "Esta ação não pode ser desfeita",
|
|
"confirm_title": "Confirmar ação",
|
|
"confirm_delete": "Mover para a lixeira",
|
|
"confirm_delete_file": "Tem certeza de que deseja mover o arquivo \"{{name}}\" para a lixeira?",
|
|
"confirm_delete_folder": "Tem certeza de que deseja mover a pasta \"{{name}}\" e todo o seu conteúdo para a lixeira?",
|
|
"confirm_permanent_delete": "Excluir permanentemente",
|
|
"confirm_permanent_delete_msg": "Tem certeza de que deseja excluir permanentemente este item? Esta ação não pode ser desfeita.",
|
|
"confirm_empty_trash": "Esvaziar lixeira",
|
|
"confirm_delete_share": "Excluir link de compartilhamento",
|
|
"confirm_delete_share_msg": "Tem certeza de que deseja excluir este link de compartilhamento?",
|
|
"share_file": "Compartilhar arquivo",
|
|
"existing_shares": "Compartilhamentos existentes",
|
|
"share_options": "Opções de compartilhamento",
|
|
"password": "Senha",
|
|
"expiration": "Expiração",
|
|
"permissions": "Permissões",
|
|
"generated_link": "Link gerado",
|
|
"notify": "Enviar notificação",
|
|
"recipient": "Destinatário",
|
|
"message": "Mensagem"
|
|
},
|
|
"dropzone": {
|
|
"drag_files": "Arraste arquivos aqui ou clique para selecionar",
|
|
"drop_files": "Solte os arquivos para enviar"
|
|
},
|
|
"permissions": {
|
|
"read": "Leitura",
|
|
"write": "Escrita",
|
|
"reshare": "Recompartilhar"
|
|
},
|
|
"errors": {
|
|
"file_not_found": "Arquivo não encontrado",
|
|
"folder_not_found": "Pasta não encontrada",
|
|
"delete_error": "Erro ao excluir",
|
|
"upload_error": "Erro ao enviar o arquivo",
|
|
"rename_error": "Erro ao renomear",
|
|
"move_error": "Erro ao mover",
|
|
"empty_name": "O nome não pode estar vazio",
|
|
"name_exists": "Já existe um arquivo ou pasta com esse nome",
|
|
"generic_error": "Ocorreu um erro"
|
|
},
|
|
"breadcrumb": {
|
|
"home": "Início"
|
|
},
|
|
"trash": {
|
|
"empty_trash": "Esvaziar lixeira",
|
|
"empty_state": "A lixeira está vazia",
|
|
"original_location": "Local original",
|
|
"deleted_date": "Data de exclusão",
|
|
"actions": "Ações",
|
|
"restore": "Restaurar",
|
|
"delete_permanently": "Excluir permanentemente",
|
|
"empty_confirm": "Tem certeza de que deseja esvaziar a lixeira? Todos os itens serão excluídos permanentemente."
|
|
},
|
|
"auth": {
|
|
"login_title": "Entrar",
|
|
"username": "Usuário",
|
|
"username_placeholder": "Digite seu nome de usuário",
|
|
"password": "Senha",
|
|
"password_placeholder": "Digite sua senha",
|
|
"login_button": "Entrar",
|
|
"no_account": "Não tem uma conta?",
|
|
"register": "Cadastre-se",
|
|
"admin_setup": "Primeira vez?",
|
|
"setup": "Configurar administrador",
|
|
"register_title": "Criar conta",
|
|
"email": "E-mail",
|
|
"email_placeholder": "Digite seu e-mail",
|
|
"confirm_password": "Confirmar senha",
|
|
"confirm_password_placeholder": "Confirme sua senha",
|
|
"register_button": "Criar conta",
|
|
"have_account": "Já tem uma conta?",
|
|
"login": "Entrar",
|
|
"setup_title": "Configuração inicial",
|
|
"setup_step1": "Admin",
|
|
"setup_step2": "Sistema",
|
|
"setup_step3": "Concluído",
|
|
"admin_username": "Usuário administrador",
|
|
"admin_email": "E-mail do administrador",
|
|
"admin_password": "Senha do administrador",
|
|
"create_admin": "Criar administrador",
|
|
"back_to_login": "Já configurado?",
|
|
"admin_success": "Conta de administrador criada com sucesso! Agora você pode entrar.",
|
|
"account_success": "Conta criada com sucesso! Agora você pode entrar.",
|
|
"passwords_mismatch": "As senhas não coincidem",
|
|
"admin_create_error": "Erro ao criar conta de administrador",
|
|
"or": "ou",
|
|
"sso_login": "Entrar com SSO",
|
|
"sso_login_provider": "Entrar com {{provider}}"
|
|
},
|
|
"storage": {
|
|
"title": "Armazenamento",
|
|
"calculating": "Calculando...",
|
|
"used": "{{percentage}}% usado ({{used}} / {{total}})"
|
|
},
|
|
"viewer": {
|
|
"unsupported_file": "Este tipo de arquivo não pode ser visualizado.",
|
|
"download_file": "Baixar arquivo",
|
|
"zoom_in": "Ampliar",
|
|
"zoom_out": "Reduzir",
|
|
"zoom_reset": "Redefinir zoom"
|
|
},
|
|
"language_selector": {
|
|
"title": "Bem-vindo ao OxiCloud",
|
|
"subtitle": "Por favor, selecione seu idioma",
|
|
"continue": "Continuar",
|
|
"languages": {
|
|
"en": "English",
|
|
"es": "Español",
|
|
"zh": "中文",
|
|
"fa": "فارسی",
|
|
"fr": "Français",
|
|
"de": "Deutsch",
|
|
"pt": "Português"
|
|
}
|
|
},
|
|
"favorites": {
|
|
"empty_state": "Nenhum favorito ainda",
|
|
"empty_hint": "Marque arquivos ou pastas com estrela para adicioná-los aos seus favoritos",
|
|
"add": "Adicionar aos favoritos",
|
|
"remove": "Remover dos favoritos",
|
|
"added_title": "Adicionado aos favoritos",
|
|
"added_msg": "adicionado aos favoritos",
|
|
"removed_title": "Removido dos favoritos",
|
|
"removed_msg": "removido dos favoritos"
|
|
},
|
|
"recent": {
|
|
"title": "Recentes",
|
|
"clear": "Limpar recentes",
|
|
"accessed": "Acessado",
|
|
"empty_state": "Nenhum arquivo recente",
|
|
"empty_hint": "Os arquivos que você abrir aparecerão aqui"
|
|
},
|
|
"notifications": {
|
|
"file_renamed": "Arquivo renomeado",
|
|
"file_renamed_to": "Arquivo renomeado para \"{{name}}\"",
|
|
"folder_renamed": "Pasta renomeada",
|
|
"folder_renamed_to": "Pasta renomeada para \"{{name}}\"",
|
|
"file_uploaded": "Arquivo enviado",
|
|
"file_deleted": "Arquivo movido para a lixeira",
|
|
"folder_deleted": "Pasta movida para a lixeira",
|
|
"item_deleted_permanently": "Item excluído permanentemente",
|
|
"trash_emptied": "Lixeira esvaziada com sucesso"
|
|
},
|
|
"batch": {
|
|
"one_selected": "1 item selecionado",
|
|
"n_selected": "{{count}} itens selecionados",
|
|
"confirm_delete": "Tem certeza de que deseja mover {{count}} itens para a lixeira?",
|
|
"move_title": "Mover {{count}} item(ns)",
|
|
"add_favorites": "Adicionar aos favoritos",
|
|
"move_copy": "Mover ou copiar"
|
|
}
|
|
}
|