@meith/i18n 0.33.4 → 0.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/catalogs/en.json +148 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meith/i18n",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.35.0",
|
|
4
4
|
"description": "The message catalog and the locale-aware formatters: ICU messages, plural categories, locale negotiation, and the registry themes and plugins add their own catalogs to.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
package/src/catalogs/en.json
CHANGED
|
@@ -242,6 +242,59 @@
|
|
|
242
242
|
"adminAttachments.ready": "Ready",
|
|
243
243
|
"adminAttachments.status": "Status",
|
|
244
244
|
"adminAttachments.stored": "Stored",
|
|
245
|
+
"adminBackups.backToSystem": "System health",
|
|
246
|
+
"adminBackups.bundles.download": "Download",
|
|
247
|
+
"adminBackups.bundles.empty": "No bundles yet. Take one now, or turn on the schedule.",
|
|
248
|
+
"adminBackups.bundles.local": "on the server, {size}",
|
|
249
|
+
"adminBackups.bundles.offSite": "off-site, {size}",
|
|
250
|
+
"adminBackups.bundles.restoreHint": "To restore, deploy a fresh, empty board and pick the bundle on its installer — the operations guide walks through it. A download is your copy off the machine.",
|
|
251
|
+
"adminBackups.bundles.title": "Bundles",
|
|
252
|
+
"adminBackups.confirm.delete": "Delete this bundle from the server and from the off-site destination? There is no undo; a restore point deleted is gone.",
|
|
253
|
+
"adminBackups.destination.fromBoard": "Configured in the board settings.",
|
|
254
|
+
"adminBackups.destination.fromEnvironment": "Configured in the environment (BACKUP_S3_* or BACKUP_WEBDAV_*), which wins over the board settings.",
|
|
255
|
+
"adminBackups.destination.listFailed": "The destination could not be listed: {error}",
|
|
256
|
+
"adminBackups.destination.none": "Bundles stay on this server. A ring on the server protects against a bad upgrade or a deleted forum, not against losing the server: name a bucket in the board settings and every bundle is shipped there too.",
|
|
257
|
+
"adminBackups.destination.shipsTo": "Every bundle is also shipped to {destination}.",
|
|
258
|
+
"adminBackups.destination.title": "Off-site destination",
|
|
259
|
+
"adminBackups.destination.unusable": "A destination is configured but cannot be used.",
|
|
260
|
+
"adminBackups.lede": "A bundle is the database dump and, when the settings say so, the uploads — everything a fresh deployment needs to become this board again. Bundles live in the backup directory on the server and, with a destination configured, in a bucket off it.",
|
|
261
|
+
"adminBackups.now.hint": "Queues a bundle for the scheduler, which picks it up within a minute and runs it beside the board without stopping it. A large board takes a few minutes; this screen shows the run once it starts.",
|
|
262
|
+
"adminBackups.now.queued": "A backup is queued and starts on the next tick.",
|
|
263
|
+
"adminBackups.now.running": "A backup has been running since {since}.",
|
|
264
|
+
"adminBackups.now.title": "Back up now",
|
|
265
|
+
"adminBackups.plan.beforeUpgrade": "Before a migration:",
|
|
266
|
+
"adminBackups.plan.change": "Change the schedule, retention, uploads and destination in the board settings.",
|
|
267
|
+
"adminBackups.plan.next": "next at {time}",
|
|
268
|
+
"adminBackups.plan.off": "no bundle is taken",
|
|
269
|
+
"adminBackups.plan.on": "a bundle is taken first",
|
|
270
|
+
"adminBackups.plan.retention": "Retention:",
|
|
271
|
+
"adminBackups.plan.ring": "Backup directory:",
|
|
272
|
+
"adminBackups.plan.schedule": "Schedule:",
|
|
273
|
+
"adminBackups.plan.title": "Schedule and retention",
|
|
274
|
+
"adminBackups.plan.uploads": "Uploads:",
|
|
275
|
+
"adminBackups.plan.uploadsIncluded": "included in every bundle",
|
|
276
|
+
"adminBackups.plan.uploadsSkipped": "not in the bundle",
|
|
277
|
+
"adminBackups.reauth": "Downloading a bundle asks for a fresh password. Sign out of the control panel, sign in again, and try the download within fifteen minutes.",
|
|
278
|
+
"adminBackups.retention.count": "the newest {count, plural, one {# bundle} other {# bundles}}",
|
|
279
|
+
"adminBackups.retention.countAndDays": "the newest {count, plural, one {# bundle} other {# bundles}}, none older than {days, plural, one {# day} other {# days}}",
|
|
280
|
+
"adminBackups.run.done": "done",
|
|
281
|
+
"adminBackups.run.failed": "failed",
|
|
282
|
+
"adminBackups.run.incomplete": "done, incomplete",
|
|
283
|
+
"adminBackups.run.queued": "queued",
|
|
284
|
+
"adminBackups.run.running": "running",
|
|
285
|
+
"adminBackups.runs.empty": "Nothing has run yet.",
|
|
286
|
+
"adminBackups.runs.shipped": "shipped off-site",
|
|
287
|
+
"adminBackups.runs.skipped": "{count, plural, one {# object skipped} other {# objects skipped}}",
|
|
288
|
+
"adminBackups.runs.title": "Recent runs",
|
|
289
|
+
"adminBackups.sample": "This board is running on in-memory sample data, so there is nothing to back up.",
|
|
290
|
+
"adminBackups.schedule.daily": "every day at {time} UTC",
|
|
291
|
+
"adminBackups.schedule.off": "no automatic backups",
|
|
292
|
+
"adminBackups.schedule.weekly": "every {weekday} at {time} UTC",
|
|
293
|
+
"adminBackups.serverless": "This deployment runs on serverless functions, which have no database client tools and no disk of their own, so backups cannot run from here. Take them with the operator CLI from any machine that holds the project’s variables — the deployment guide shows the command — and they will appear below once they reach the off-site destination.",
|
|
294
|
+
"adminBackups.trigger.cli": "from the CLI",
|
|
295
|
+
"adminBackups.trigger.manual": "requested from the panel",
|
|
296
|
+
"adminBackups.trigger.schedule": "scheduled",
|
|
297
|
+
"adminBackups.trigger.upgrade": "before a migration",
|
|
245
298
|
"adminBanFilter.addFilter": "Add filter",
|
|
246
299
|
"adminBanFilter.added": "Filter added.",
|
|
247
300
|
"adminBanFilter.confirm.remove": "Remove this ban filter? Registrations it currently blocks will be allowed again.",
|
|
@@ -570,6 +623,7 @@
|
|
|
570
623
|
"adminNav.admin-security.title": "Sign-in activity",
|
|
571
624
|
"adminNav.admin-settings.blurb": "Every setting this build has, grouped and searchable.",
|
|
572
625
|
"adminNav.admin-settings.title": "Board settings",
|
|
626
|
+
"adminNav.admin-system-backups.title": "Backups",
|
|
573
627
|
"adminNav.admin-system.blurb": "Scheduled tasks, the search index, caches, and the build.",
|
|
574
628
|
"adminNav.admin-system.title": "System",
|
|
575
629
|
"adminNav.admin-themes.blurb": "Installed themes, their tokens, and this board’s overrides.",
|
|
@@ -622,6 +676,13 @@
|
|
|
622
676
|
"adminNavigation.tree.placed": "{name} placed {where}, {order}.",
|
|
623
677
|
"adminNavigation.tree.where.topLevel": "at the top level",
|
|
624
678
|
"adminNavigation.tree.where.under": "under {parent}",
|
|
679
|
+
"adminPanel.backup.already": "A backup is already queued or running.",
|
|
680
|
+
"adminPanel.backup.delete": "Delete",
|
|
681
|
+
"adminPanel.backup.deleted": "Deleted {name}.",
|
|
682
|
+
"adminPanel.backup.now": "Back up now",
|
|
683
|
+
"adminPanel.backup.queued": "Queued. The scheduler starts it within a minute; reload this page to follow it.",
|
|
684
|
+
"adminPanel.backup.reachable": "The destination answered and holds {count, plural, one {# bundle} other {# bundles}}.",
|
|
685
|
+
"adminPanel.backup.test": "Test the destination",
|
|
625
686
|
"adminPanel.badge.formats": "PNG, JPEG, WebP or SVG, up to {maxKib} KiB. The contents decide the format, not the file name.",
|
|
626
687
|
"adminPanel.badge.labelSr": "{label} badge",
|
|
627
688
|
"adminPanel.badge.noBadge": "No badge",
|
|
@@ -781,6 +842,7 @@
|
|
|
781
842
|
"adminSecurity.member": "member {id}",
|
|
782
843
|
"adminSecurity.noAccount": "no account named",
|
|
783
844
|
"adminSettings.advancedShown": " Advanced settings are shown.",
|
|
845
|
+
"adminSettings.backupFromEnvironment": "The off-site destination is set in the environment (BACKUP_S3_* or BACKUP_WEBDAV_*), which wins over the destination fields below: they are stored but not used until those variables go away.",
|
|
784
846
|
"adminSettings.configureMail": "configure mail",
|
|
785
847
|
"adminSettings.configureMailEnd": ", which takes effect without a redeploy and has a button to prove it works.",
|
|
786
848
|
"adminSettings.environmentAddressAfterUrl": ", from ",
|
|
@@ -853,6 +915,8 @@
|
|
|
853
915
|
"adminSystem.task.authEventsPrune.title": "Prune sign-in activity",
|
|
854
916
|
"adminSystem.task.avatarsSweep.description": "Marks avatar uploads whose re-encode never finished, so the member is told to try again rather than left looking at a spinner that is not there. Separate from the attachment sweep because it acts on users rather than on the object ledger, and because an operator asking why an avatar is stuck should not have to read a task about attachments. Purely corrective, and safe to run twice.",
|
|
855
917
|
"adminSystem.task.avatarsSweep.title": "Fail unfinished avatar uploads",
|
|
918
|
+
"adminSystem.task.backupRun.description": "Runs the backup an administrator asked for, or the one the schedule says is due, one at a time: the database dump, the uploads when the settings include them, a bundle in the backup directory, a copy at the off-site destination, and the pruning of whatever the retention rules no longer keep. Checks every minute and does nothing most of the time. The worker runs it in a lane of its own, because a dump of a large board takes minutes and the outbox should not wait for it.",
|
|
919
|
+
"adminSystem.task.backupRun.title": "Take due backups",
|
|
856
920
|
"adminSystem.task.bansExpire.description": "Lifts bans whose expiry has passed, restoring each user to the group they held when banned. Acts on outstanding state rather than on what expired since the last run, so a skipped day costs a delay and nothing else, and a doubled tick lifts nothing twice.",
|
|
857
921
|
"adminSystem.task.bansExpire.title": "Expire temporary bans",
|
|
858
922
|
"adminSystem.task.boardDigestSend.description": "Sends the recap a member opted into after they have been away long enough to count as lapsed, and only once their own cadence — weekly or monthly — is due. Content is fetched per recipient through the same permission filter as the rest of the board, so a digest never names a thread its reader could not open. Hourly, for the same reason the subscription digest is: a due check is a query that finds nobody most of the time.",
|
|
@@ -901,6 +965,7 @@
|
|
|
901
965
|
"adminSystem.taskStatus.healthy": "healthy",
|
|
902
966
|
"adminSystem.taskStatus.late": "late",
|
|
903
967
|
"adminSystem.taskStatus.never-run": "never run",
|
|
968
|
+
"adminSystem.taskStatus.running": "running",
|
|
904
969
|
"adminSystem.taskStatus.stale": "stale",
|
|
905
970
|
"adminSystem.tasksFailing": "{count, plural, one {# task is failing repeatedly — running, and losing. The log below says why.} other {# tasks are failing repeatedly — running, and losing. The log below says why.}}",
|
|
906
971
|
"adminSystem.tasksOverdue": "{count, plural, one {# task is overdue by several of its own intervals.} other {# tasks are overdue by several of their own intervals.}}",
|
|
@@ -1791,6 +1856,7 @@
|
|
|
1791
1856
|
"error.app.account-longer-exists": "That account no longer exists.",
|
|
1792
1857
|
"error.app.account-longer-post": "Your account can no longer post.",
|
|
1793
1858
|
"error.app.attach-files-forum": "You may not attach files in this forum.",
|
|
1859
|
+
"error.app.backups-not-on-this-deployment": "Backups cannot run on this deployment; take them with the operator CLI instead.",
|
|
1794
1860
|
"error.app.ban-lasts-whole-number-days": "A ban lasts a whole number of days, or is permanent.",
|
|
1795
1861
|
"error.app.board-accept-avatar-uploads": "This board cannot accept avatar uploads.",
|
|
1796
1862
|
"error.app.board-accept-file-attachments": "This board cannot accept file attachments.",
|
|
@@ -1889,11 +1955,15 @@
|
|
|
1889
1955
|
"error.app.navigation-address-path-or-web-address": "Give a path on this board, starting with /, or a full http(s) web address.",
|
|
1890
1956
|
"error.app.navigation-audience-unknown": "Choose who the item is shown to.",
|
|
1891
1957
|
"error.app.navigation-item-go-further-direction": "That item cannot go any further in that direction.",
|
|
1958
|
+
"error.app.no-off-site-destination": "No off-site destination is configured.",
|
|
1959
|
+
"error.app.no-such-bundle": "No bundle by that name is on the server or at the off-site destination.",
|
|
1960
|
+
"error.app.not-a-backup-bundle-name": "That is not the name of a backup bundle.",
|
|
1892
1961
|
"error.app.password-right": "That password is not right.",
|
|
1893
1962
|
"error.app.poll-exist": "That poll does not exist.",
|
|
1894
1963
|
"error.app.post-exist": "That post does not exist.",
|
|
1895
1964
|
"error.app.rating": "That is not a rating.",
|
|
1896
1965
|
"error.app.reach-control-panel": "You cannot reach the control panel.",
|
|
1966
|
+
"error.app.restore-needs-empty-board": "This board already has members, so the installer will not restore over it.",
|
|
1897
1967
|
"error.app.restore-post": "You cannot restore that post.",
|
|
1898
1968
|
"error.app.say-why-member-shown-reason": "Say why. The member is shown this reason.",
|
|
1899
1969
|
"error.app.select-at-least-one-item": "Select at least one item.",
|
|
@@ -2197,6 +2267,28 @@
|
|
|
2197
2267
|
"install.password.label": "Your password",
|
|
2198
2268
|
"install.raced.inFlight": "Another install is already running against this database. Wait for it to finish, then reload this page.",
|
|
2199
2269
|
"install.raced.sealed": "Another install sealed the board while this one was running. Nothing here was kept.",
|
|
2270
|
+
"install.restore.confirm": "I have the same AUTH_SECRET this board ran with. Without it, every member’s authenticator-app enrolment and every sealed credential in the backup is lost.",
|
|
2271
|
+
"install.restore.doneDetail": "{bundle}, taken by version {version}, is the board again: {posts, plural, one {# post} other {# posts}}.",
|
|
2272
|
+
"install.restore.doneTitle": "Restored",
|
|
2273
|
+
"install.restore.hint": "A bundle taken by another deployment of this board — the nightly one, or the one you took before the server died — becomes this board again. It replaces the empty schema the migrator just wrote, applies any migrations the bundle predates, and puts the uploads back. Nothing here can be overwritten: a board with members refuses to restore.",
|
|
2274
|
+
"install.restore.idleNote": "Takes seconds for a small board and minutes for a large one. When it finishes, the installer is gone and the board is back.",
|
|
2275
|
+
"install.restore.migrated": "{count, plural, one {# migration the bundle predates was} other {# migrations the bundle predates were}} applied on top.",
|
|
2276
|
+
|
|
2277
|
+
"install.restore.next": "Restart the web and worker containers so nothing holds a connection from before the restore, then sign in with an account from the restored board.",
|
|
2278
|
+
"install.restore.noUploads": "The bundle carried no uploads. If they lived in an object store, point this deployment at the same bucket; otherwise posts will have broken images.",
|
|
2279
|
+
"install.restore.noneAnywhere": "No bundles in the backup directory, and none at {destination}.",
|
|
2280
|
+
"install.restore.noneLocal": "No bundles in the backup directory, and no off-site destination in the environment to fetch one from. Put a bundle in the directory, or set the BACKUP_S3_* or BACKUP_WEBDAV_* variables and reload.",
|
|
2281
|
+
"install.restore.notRestored": "The restore did not finish.",
|
|
2282
|
+
"install.restore.offSite": "at the off-site destination",
|
|
2283
|
+
"install.restore.onServer": "on this server",
|
|
2284
|
+
"install.restore.pendingNote": "Restoring the dump. A large board takes minutes — do not reload.",
|
|
2285
|
+
"install.restore.pick": "Which bundle",
|
|
2286
|
+
"install.restore.restoring": "Restoring…",
|
|
2287
|
+
"install.restore.signIn": "Sign in",
|
|
2288
|
+
"install.restore.skipped": "The backup that made this bundle could not read {count, plural, one {# object} other {# objects}}, so posts referring to them have broken images.",
|
|
2289
|
+
"install.restore.submit": "Restore this bundle",
|
|
2290
|
+
"install.restore.takenAt": "Taken {time}",
|
|
2291
|
+
"install.restore.title": "Or restore a backup",
|
|
2200
2292
|
"install.schema.missing": "The database does not have every table this board needs. Migrations run before the board serves anything — as `meith migrate` in the deploy build command, or from the container entrypoint. Run that against this database and reload this page.",
|
|
2201
2293
|
"install.step.admin.detail": "Argon2id, the same registration path a member uses, then promoted.",
|
|
2202
2294
|
"install.step.admin.title": "Create the administrator",
|
|
@@ -2286,6 +2378,19 @@
|
|
|
2286
2378
|
"installPreflight.tickSecret.setTitle": "TICK_SECRET is set",
|
|
2287
2379
|
"installPreflight.warning.one": "You can install without resolving that. Nothing will fail at the time — which is what makes it worth reading.",
|
|
2288
2380
|
"installPreflight.warning.other": "You can install without resolving those. Nothing will fail at the time — which is what makes them worth reading.",
|
|
2381
|
+
"installRestore.alreadyInstalled": "This board is already installed; the installer has nothing left to do.",
|
|
2382
|
+
"installRestore.busy": "Another install or restore is running on this board. Wait for it and reload.",
|
|
2383
|
+
"installRestore.confirmFirst": "Confirm that you hold the AUTH_SECRET the board ran with before restoring.",
|
|
2384
|
+
"installRestore.failed": "The restore stopped: {error}",
|
|
2385
|
+
|
|
2386
|
+
"installRestore.pickOne": "Pick a bundle to restore.",
|
|
2387
|
+
"installUnlock.button": "Unlock the installer",
|
|
2388
|
+
"installUnlock.incorrect": "That does not match the AUTH_SECRET this board runs with.",
|
|
2389
|
+
"installUnlock.label": "AUTH_SECRET",
|
|
2390
|
+
"installUnlock.lede": "Only the operator who deployed this board holds its AUTH_SECRET. Paste it to prove you are that operator before choosing the administrator account or restoring a backup.",
|
|
2391
|
+
"installUnlock.pending": "Checking…",
|
|
2392
|
+
"installUnlock.required": "Unlock the installer with the board's AUTH_SECRET first.",
|
|
2393
|
+
"installUnlock.title": "Prove you deployed this board",
|
|
2289
2394
|
"legal.page.privacy.footer": "Privacy",
|
|
2290
2395
|
"legal.page.privacy.title": "Privacy policy",
|
|
2291
2396
|
"legal.page.rules.footer": "Rules & FAQ",
|
|
@@ -2598,6 +2703,7 @@
|
|
|
2598
2703
|
"page.awaiting-activation": "Awaiting activation",
|
|
2599
2704
|
"page.awaiting-processing": "Awaiting processing",
|
|
2600
2705
|
"page.back-their-profile": "Back to their profile",
|
|
2706
|
+
"page.backups": "Backups",
|
|
2601
2707
|
"page.ban-filters": "Ban filters",
|
|
2602
2708
|
"page.before-installing": "Before installing",
|
|
2603
2709
|
"page.before-press-it": "Before you press it:",
|
|
@@ -2965,6 +3071,47 @@
|
|
|
2965
3071
|
"setting.antispam.search_per_hour.label": "Searches per hour",
|
|
2966
3072
|
"setting.antispam.upload_per_hour.description": "Attachments and avatars. 0 disables the limit.",
|
|
2967
3073
|
"setting.antispam.upload_per_hour.label": "Uploads per hour",
|
|
3074
|
+
"setting.backup.before_upgrade.description": "Take a bundle before the migrator applies a pending schema migration, so a new release always has a restore point in front of it. The bundle lands in the backup directory and ships off-site like any other. The upgrade is refused if that backup fails — a migration is forward-only, and the backup is the only way back. Needs the migrate container to mount the backup directory, which the shipped compose files do.",
|
|
3075
|
+
"setting.backup.before_upgrade.label": "Back up before migrating",
|
|
3076
|
+
"setting.backup.destination.description": "Where every bundle is also shipped, so a backup survives the server. \"None\" keeps bundles on this machine only. An S3-compatible bucket takes the bucket fields below; a WebDAV folder — Nextcloud, ownCloud, a Hetzner Storage Box — takes the WebDAV fields. Setting BACKUP_S3_* or BACKUP_WEBDAV_* in the environment overrides this whole group and makes its fields inert.",
|
|
3077
|
+
"setting.backup.destination.label": "Off-site destination",
|
|
3078
|
+
"setting.backup.keep.description": "How many of the newest bundles survive a run, in the backup directory and at the off-site destination alike. Pruning happens only after a new bundle is safely written, so a run that fails never eats the good ones. Each bundle that carries the uploads is roughly the size of the board, so this is also the disk knob.",
|
|
3079
|
+
"setting.backup.keep.label": "Backups to keep",
|
|
3080
|
+
"setting.backup.keep_days.description": "Bundles older than this many days are pruned as well, however few remain — except the newest, which always survives. 0 keeps a bundle until the count above pushes it out.",
|
|
3081
|
+
"setting.backup.keep_days.label": "Days to keep a backup",
|
|
3082
|
+
"setting.backup.s3_access_key_id.description": "A credential with write and list on that bucket alone — nothing wider. It ships bundles, lists them, and prunes the oldest.",
|
|
3083
|
+
"setting.backup.s3_access_key_id.label": "Access key id",
|
|
3084
|
+
"setting.backup.s3_bucket.description": "An S3-compatible bucket every bundle is also shipped to — Backblaze B2, Cloudflare R2, Hetzner, Scaleway, MinIO on a machine you trust. A bucket of its own, never the one the uploads live in: a backup of the uploads should not sit where losing the uploads loses it. Read when the destination above is the bucket.",
|
|
3085
|
+
"setting.backup.s3_bucket.label": "Off-site bucket",
|
|
3086
|
+
"setting.backup.s3_endpoint.description": "The API address for anything that is not AWS itself — R2, MinIO, Spaces. Leave empty for AWS. Switches the client to path-style addressing, the way S3_ENDPOINT does for the uploads.",
|
|
3087
|
+
"setting.backup.s3_endpoint.label": "Endpoint",
|
|
3088
|
+
"setting.backup.s3_prefix.description": "A folder inside the bucket, so one bucket can hold several boards. Left empty, bundles sit at the root.",
|
|
3089
|
+
"setting.backup.s3_prefix.label": "Key prefix",
|
|
3090
|
+
"setting.backup.s3_region.description": "The bucket’s region, or \"auto\" for a provider that ignores it, such as R2.",
|
|
3091
|
+
"setting.backup.s3_region.label": "Bucket region",
|
|
3092
|
+
"setting.backup.s3_secret_access_key.description": "Stored on the board, sealed under AUTH_SECRET: the database row holds ciphertext, and a copy of the database alone cannot read it. The seal is also why AUTH_SECRET has to survive a restore for the destination to.",
|
|
3093
|
+
"setting.backup.s3_secret_access_key.label": "Secret access key",
|
|
3094
|
+
"setting.backup.schedule.description": "How often the board takes a backup of itself without being asked. Each run bundles the database dump and, by default, the uploads into one file in the backup directory, ships it to the off-site destination below when one is configured, and prunes the oldest bundles under the retention rules. A failed run is reported on the System screen and notified to administrators the way any failing task is.",
|
|
3095
|
+
"setting.backup.schedule.label": "Automatic backups",
|
|
3096
|
+
"setting.backup.time.description": "When the automatic backup starts, as a 24-hour clock in UTC — 02:00 is two in the morning UTC, whatever the server or your browser thinks the local time is. Pick the quietest hour the board has; the dump reads every table while it runs.",
|
|
3097
|
+
"setting.backup.time.label": "Time of day",
|
|
3098
|
+
"setting.backup.uploads.description": "Whether a bundle carries the avatars, attachments and board images. \"Automatic\" includes them when they live on the local disk or a Vercel Blob store, where the bundle is the only copy, and leaves an S3 bucket alone, because a bucket has a backup story of its own. A bundle without the uploads restores a board whose posts have broken images.",
|
|
3099
|
+
"setting.backup.uploads.label": "Uploads in the bundle",
|
|
3100
|
+
"setting.backup.webdav_password.description": "Stored on the board, sealed under AUTH_SECRET the way the bucket secret is: the database row holds ciphertext, and a copy of the database alone cannot read it.",
|
|
3101
|
+
"setting.backup.webdav_password.label": "WebDAV password",
|
|
3102
|
+
"setting.backup.webdav_url.description": "The full address of a folder that already exists, such as https://cloud.example/remote.php/dav/files/backups/board/ on Nextcloud. Bundles are written into it and the oldest pruned from it; the folder itself is never created or removed.",
|
|
3103
|
+
"setting.backup.webdav_url.label": "WebDAV folder address",
|
|
3104
|
+
"setting.backup.webdav_username.description": "The account the bundles are written as. Nextcloud and ownCloud let you make an app password for one purpose; use that rather than the account password.",
|
|
3105
|
+
"setting.backup.webdav_username.label": "WebDAV username",
|
|
3106
|
+
"setting.backup.weekday.description": "Which day a weekly backup runs on. Ignored unless the schedule is weekly.",
|
|
3107
|
+
"setting.backup.weekday.label": "Day of the week",
|
|
3108
|
+
"setting.backup.weekday.option.0": "Sunday",
|
|
3109
|
+
"setting.backup.weekday.option.1": "Monday",
|
|
3110
|
+
"setting.backup.weekday.option.2": "Tuesday",
|
|
3111
|
+
"setting.backup.weekday.option.3": "Wednesday",
|
|
3112
|
+
"setting.backup.weekday.option.4": "Thursday",
|
|
3113
|
+
"setting.backup.weekday.option.5": "Friday",
|
|
3114
|
+
"setting.backup.weekday.option.6": "Saturday",
|
|
2968
3115
|
"setting.board.description.description": "Used as the default meta description for the board index.",
|
|
2969
3116
|
"setting.board.description.label": "Board description",
|
|
2970
3117
|
"setting.board.digest_lapsed_days.description": "A member whose board activity digest is switched on only receives one once their last visit is at least this many days ago — a member who drops in daily should not be told what they already saw. Their own chosen cadence, weekly or monthly, decides how often after that.",
|
|
@@ -3026,6 +3173,7 @@
|
|
|
3026
3173
|
"setting.federation.passkeys_enabled.description": "Lets a member add a passkey from their account security page and sign in with it afterwards — a fingerprint, a face, or a security key, with no password to phish. Nothing leaves this board: the passkey is created against your own address and no third party is involved. A member who has one keeps their password unless they clear it themselves.",
|
|
3027
3174
|
"setting.federation.passkeys_enabled.label": "Allow passkeys",
|
|
3028
3175
|
"setting.group.antispam": "Anti-spam",
|
|
3176
|
+
"setting.group.backup": "Backups",
|
|
3029
3177
|
"setting.group.board": "Board",
|
|
3030
3178
|
"setting.group.display": "Display",
|
|
3031
3179
|
"setting.group.federation": "Sign-in providers",
|