aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-10-09 18:23:52 +0200
committerChristophe Besson <cbesson@gmail.com>2026-10-09 18:23:56 +0200
commit25152ddb61a89ea3ea29d3aef5de13343429d32a (patch)
treeebf8f11f66146caaa3c01270cd6cfcb0ee51723c /packages/meshbay-hub/src/meshbay_hub/static/locales/en.js
parentc85c7f48e8f29923038d4c90cc1a6f9b8bcd7673 (diff)
downloadmeshbay-25152ddb61a89ea3ea29d3aef5de13343429d32a.tar.gz
feat: back up the phone's photos to a group, once a day on Wi-FiHEADmain
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 <folder>/YYYY/MM; edits are sent beside the original as -edited-<date>. - 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 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-hub/src/meshbay_hub/static/locales/en.js')
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/en.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js
index a25fb2e..013a2a5 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js
@@ -1263,4 +1263,49 @@ export default {
'native.node_account_confirm': 'The node on this computer is set up for {current}. Set it up for {next} instead? It will stop serving the groups it hosts for {current}.',
'native.browser_access_confirm': 'Allow signing in from a browser? The application will leave your identity on every node you use, sealed so that only your passphrase together with your hub account can open it.',
'native.declined': 'Cancelled — nothing was changed.',
+
+ // Photo backup, Android only (photo-sync.js, photo-sync-settings.js).
+ 'photosync.heading': "Photo backup",
+ 'photosync.intro': "Send the photos taken on this phone to a folder of one of your groups, once a day, on Wi-Fi. Photos deleted from the phone stay in the group.",
+ 'photosync.setup': "Set up",
+ 'photosync.change': "Change",
+ 'photosync.turn_off': "Turn off",
+ 'photosync.now': "Back up now",
+ 'photosync.permission_needed': "MeshBay needs access to this phone's photos.",
+ 'photosync.permission_allow': "Allow access",
+ 'photosync.permission_partial': "Access is limited to the photos you selected: new photos will not be backed up until you allow access to all of them.",
+ 'photosync.group': "Group",
+ 'photosync.choose_group': "Choose a group",
+ 'photosync.checking_group': "Looking at the group's folders…",
+ 'photosync.group_offline': "No node hosting this group is online right now. Try again when it is.",
+ 'photosync.no_folder': "This group has no folder you can add to that its Photos tab shows.",
+ 'photosync.folder': "Folder",
+ 'photosync.albums': "Albums on this phone",
+ 'photosync.album_camera': "Camera",
+ 'photosync.album_count': "{n} photos · {size}",
+ 'photosync.scope_existing': "The photos already on this phone, then new ones",
+ 'photosync.scope_new': "Only photos taken from now on",
+ 'photosync.start': "Start backup",
+ 'photosync.confirm': "Your photos will be sent to {group} (hosted by @{owner}, {members} members) into {folder}. Every member of this group will be able to see and download them.\n\n{count} photos ({size}) will be sent, then new ones once a day.\n\nYou can delete what you sent later, but not copies others have already downloaded.",
+ 'photosync.confirm_new': "Your photos will be sent to {group} (hosted by @{owner}, {members} members) into {folder}. Every member of this group will be able to see and download them.\n\nNew photos will be sent once a day.\n\nYou can delete what you sent later, but not copies others have already downloaded.",
+ 'photosync.metered_confirm': "You are on mobile data — {count} photos, {size}. Send them anyway?",
+ 'photosync.summary': "{group} (@{owner}) → {folder}",
+ 'photosync.other_account': "Set up for @{account}. Sign in as @{account} to continue it, or set it up again here.",
+ 'photosync.sent_total': "Photos sent: {n}",
+ 'photosync.last_run': "Last backup: {when}",
+ 'photosync.never': "Not backed up yet",
+ 'photosync.state_waiting_wifi': "Waiting for Wi-Fi",
+ 'photosync.state_connecting': "Connecting to the group…",
+ 'photosync.state_sending': "Sending {done} / {total}",
+ 'photosync.state_offline': "No node hosting the group is online; it will try again later",
+ 'photosync.state_interrupted': "Interrupted — it will carry on at the next chance",
+ 'photosync.state_up_to_date': "Up to date",
+ 'photosync.notif_progress': "Backing up photos — {done} / {total}",
+ 'photosync.fail_disk_full': "Photo backup stopped: the node's disk is full.",
+ 'photosync.fail_read_only': "Photo backup stopped: the folder no longer accepts uploads.",
+ 'photosync.fail_no_folder': "Photo backup stopped: the folder no longer exists in the group.",
+ 'photosync.fail_unavailable': "Photo backup stopped: the folder's drive is not connected to the node.",
+ 'photosync.fail_not_member': "Photo backup stopped: you are no longer a member of this group.",
+ 'photosync.fail_permission': "Photo backup stopped: MeshBay no longer has access to the photos.",
+ 'photosync.fail_other': "Photo backup stopped.",
};