From 25152ddb61a89ea3ea29d3aef5de13343429d32a Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Fri, 9 Oct 2026 18:23:52 +0200 Subject: feat: back up the phone's photos to a group, once a day on Wi-Fi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Android application sends the photos taken on the phone to one folder of one group chosen by the member (docs/MESHBAY_DESIGN.md §9.12). The phone lists MediaStore, keeps a ledger of what was sent and hands each photo's bytes to the page by an opaque token on the packaged origin; the page decides when a run is due and uploads through the existing path, one photo at a time under a slot. - Once a day from the last finished run, on an unmetered network only; "Back up now" asks first on mobile data. Leaving Wi-Fi stops after the file in flight. - Photos already on the phone are sent by default, newest first, under /YYYY/MM; edits are sent beside the original as -edited-. - Additive by construction: nothing is ever deleted, renamed or replaced on the node, and a photo deleted on the node is not sent again. - A confirmation names the group, owner, members, folder and size when the destination or starting point changes; a lasting refusal (disk full, folder read-only or gone, no longer a member) is said once and retried a day later. - No ACCESS_MEDIA_LOCATION, so the platform redacts photo locations. - A dataSync foreground service keeps a run going with the screen off. HEIC/HEIF photos are sent but not shown in Photos yet (§15.2). Co-Authored-By: Claude Opus 5.5 --- .../src/meshbay_hub/static/locales/pt-BR.js | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'packages/meshbay-hub/src/meshbay_hub/static/locales/pt-BR.js') diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/pt-BR.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/pt-BR.js index df2d1f8..bd91cee 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/pt-BR.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/pt-BR.js @@ -1277,4 +1277,49 @@ export default { 'native.node_account_confirm': 'O node deste computador está configurado para {current}. Configurá-lo para {next} em vez disso? Ele deixará de servir os grupos que hospeda para {current}.', 'native.browser_access_confirm': 'Permitir o acesso por um navegador? O aplicativo deixará sua identidade em cada node que você usa, selada de forma que apenas sua frase secreta, junto com sua conta no hub, possa abri-la.', 'native.declined': 'Cancelado — nada foi alterado.', + + // Photo backup, Android only (photo-sync.js, photo-sync-settings.js). + 'photosync.heading': "Backup de fotos", + 'photosync.intro': "Envie as fotos tiradas com este celular para uma pasta de um dos seus grupos, uma vez por dia, pelo Wi-Fi. Fotos apagadas do celular continuam no grupo.", + 'photosync.setup': "Configurar", + 'photosync.change': "Alterar", + 'photosync.turn_off': "Desativar", + 'photosync.now': "Fazer backup agora", + 'photosync.permission_needed': "O MeshBay precisa de acesso às fotos deste celular.", + 'photosync.permission_allow': "Permitir acesso", + 'photosync.permission_partial': "O acesso está limitado às fotos que você selecionou: novas fotos não serão salvas até você permitir o acesso a todas.", + 'photosync.group': "Grupo", + 'photosync.choose_group': "Escolha um grupo", + 'photosync.checking_group': "Lendo as pastas do grupo…", + 'photosync.group_offline': "Nenhum node que hospeda este grupo está on-line agora. Tente de novo quando estiver.", + 'photosync.no_folder': "Este grupo não tem nenhuma pasta onde você possa enviar arquivos e que a aba Fotos mostre.", + 'photosync.folder': "Pasta", + 'photosync.albums': "Álbuns deste celular", + 'photosync.album_camera': "Câmera", + 'photosync.album_count': "{n} fotos · {size}", + 'photosync.scope_existing': "As fotos que já estão neste celular, depois as novas", + 'photosync.scope_new': "Somente as fotos tiradas a partir de agora", + 'photosync.start': "Iniciar backup", + 'photosync.confirm': "Suas fotos serão enviadas para {group} (hospedado por @{owner}, {members} membros), na pasta {folder}. Todos os membros deste grupo poderão vê-las e baixá-las.\n\nSerão enviadas {count} fotos ({size}) e, depois, as novas uma vez por dia.\n\nVocê poderá apagar o que enviou, mas não as cópias que outros já tiverem baixado.", + 'photosync.confirm_new': "Suas fotos serão enviadas para {group} (hospedado por @{owner}, {members} membros), na pasta {folder}. Todos os membros deste grupo poderão vê-las e baixá-las.\n\nAs novas fotos serão enviadas uma vez por dia.\n\nVocê poderá apagar o que enviou, mas não as cópias que outros já tiverem baixado.", + 'photosync.metered_confirm': "Você está usando dados móveis — {count} fotos, {size}. Enviar mesmo assim?", + 'photosync.summary': "{group} (@{owner}) → {folder}", + 'photosync.other_account': "Configurado para @{account}. Entre como @{account} para continuar, ou configure de novo aqui.", + 'photosync.sent_total': "Fotos enviadas: {n}", + 'photosync.last_run': "Último backup: {when}", + 'photosync.never': "Ainda sem backup", + 'photosync.state_waiting_wifi': "Aguardando Wi-Fi", + 'photosync.state_connecting': "Conectando ao grupo…", + 'photosync.state_sending': "Enviando {done} / {total}", + 'photosync.state_offline': "Nenhum node do grupo está on-line; nova tentativa mais tarde", + 'photosync.state_interrupted': "Interrompido — continuará na próxima oportunidade", + 'photosync.state_up_to_date': "Atualizado", + 'photosync.notif_progress': "Backup de fotos — {done} / {total}", + 'photosync.fail_disk_full': "Backup de fotos parado: o disco do node está cheio.", + 'photosync.fail_read_only': "Backup de fotos parado: a pasta não aceita mais envios.", + 'photosync.fail_no_folder': "Backup de fotos parado: a pasta não existe mais no grupo.", + 'photosync.fail_unavailable': "Backup de fotos parado: o disco da pasta não está conectado ao node.", + 'photosync.fail_not_member': "Backup de fotos parado: você não é mais membro deste grupo.", + 'photosync.fail_permission': "Backup de fotos parado: o MeshBay não tem mais acesso às fotos.", + 'photosync.fail_other': "Backup de fotos parado.", }; -- cgit v1.2.3