@meith/i18n 0.31.0 → 0.33.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 +150 -5
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meith/i18n",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.33.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
|
@@ -19,6 +19,11 @@
|
|
|
19
19
|
"accountForm.avatar.removeBlurb": "Removing it takes the image down everywhere it appears.",
|
|
20
20
|
"accountForm.avatar.title": "Your avatar",
|
|
21
21
|
"accountForm.avatar.upload": "Upload",
|
|
22
|
+
"accountForm.boardDigest.description": "How often it arrives, once the board digest is switched on above.",
|
|
23
|
+
"accountForm.boardDigest.legend": "Board digest cadence",
|
|
24
|
+
"accountForm.boardDigest.monthly": "Monthly",
|
|
25
|
+
"accountForm.boardDigest.submit": "Save cadence",
|
|
26
|
+
"accountForm.boardDigest.weekly": "Weekly",
|
|
22
27
|
"accountForm.displayGroup.hint": "Every group you are in is here, and the one you pick decides the title, colour and badge beside your posts. A group you hold only until a date drops off this list when it lapses, and your name goes back to your main group.",
|
|
23
28
|
"accountForm.displayGroup.label": "Shown under your name",
|
|
24
29
|
"accountForm.displayGroup.submit": "Save display group",
|
|
@@ -28,6 +33,20 @@
|
|
|
28
33
|
"accountForm.email.note": "Nothing changes until you follow the link we send to the new address.",
|
|
29
34
|
"accountForm.email.submit": "Send confirmation",
|
|
30
35
|
"accountForm.email.title": "Change your e-mail address",
|
|
36
|
+
"accountForm.feed.active": "Your feed token is active.",
|
|
37
|
+
"accountForm.feed.atomLabel": "Your private Atom address",
|
|
38
|
+
"accountForm.feed.blurb": "Feeds are public by default, so an address you can hand to any reader never carries a private forum. A feed token adds a secret to your feed address that shows exactly the forums you can see when signed in — no more. Treat it like a password.",
|
|
39
|
+
"accountForm.feed.copyNow": "Copy your feed token now — it is shown only once.",
|
|
40
|
+
"accountForm.feed.detail": "Created {created}. Last used {used}.",
|
|
41
|
+
"accountForm.feed.generate": "Generate feed token",
|
|
42
|
+
"accountForm.feed.neverUsed": "not yet",
|
|
43
|
+
"accountForm.feed.none": "You have no feed token. Generate one to follow your private forums by RSS or Atom.",
|
|
44
|
+
"accountForm.feed.regenerate": "Regenerate feed token",
|
|
45
|
+
"accountForm.feed.revealHint": "Keep it secret: anyone who holds this address can read every forum you can. Regenerating it, or changing your password, replaces it and the old address stops working.",
|
|
46
|
+
"accountForm.feed.revoke": "Revoke feed token",
|
|
47
|
+
"accountForm.feed.rssLabel": "Your private RSS address",
|
|
48
|
+
"accountForm.feed.title": "Feed token",
|
|
49
|
+
"accountForm.feed.warning": "Regenerating replaces the token, so any reader using the old address will need the new one.",
|
|
31
50
|
"accountForm.follow.follow": "Follow",
|
|
32
51
|
"accountForm.follow.forum": "Follow this forum",
|
|
33
52
|
"accountForm.follow.frequency": "How often to notify me",
|
|
@@ -52,6 +71,10 @@
|
|
|
52
71
|
"accountForm.notifications.markRead": "Mark as read",
|
|
53
72
|
"accountForm.notifications.push": "Push",
|
|
54
73
|
"accountForm.notifications.submit": "Save preferences",
|
|
74
|
+
"accountForm.options.autoWatchOwnThreads": "Follow threads I start",
|
|
75
|
+
"accountForm.options.autoWatchOwnThreadsHint": "Starting a thread follows it for you at this cadence, and pre-ticks the composer's Notify me of replies box so you can see it coming. Untick the box on any one post to skip it just that once.",
|
|
76
|
+
"accountForm.options.autoWatchRepliedThreads": "Follow threads I reply to",
|
|
77
|
+
"accountForm.options.autoWatchRepliedThreadsHint": "Replying to a thread you are not already following starts following it at this cadence. A thread you have muted stays muted, however you reply to it.",
|
|
55
78
|
"accountForm.options.invisible": "Browse invisibly",
|
|
56
79
|
"accountForm.options.invisibleHint": "You will not appear in the online list, and you will not be counted in it either. Your posts are unaffected, and moderators can still see that you are here.",
|
|
57
80
|
"accountForm.options.locale": "Language",
|
|
@@ -159,6 +182,7 @@
|
|
|
159
182
|
"admin.undoUntil": "Undo is available until {time}.",
|
|
160
183
|
"adminAction.codeReplayed": "That code has been used already. Wait for the next one.",
|
|
161
184
|
"adminAction.codeWrong": "That code is not right.",
|
|
185
|
+
"adminAction.twoFactorExpired": "That took too long. Enter your password again.",
|
|
162
186
|
"adminAction.twoFactorRequired": "This board requires two-factor authentication of anyone who can reach the control panel. Set up an authenticator app on your account security page first.",
|
|
163
187
|
"adminAnnouncements.by": " · by {username}",
|
|
164
188
|
"adminAnnouncements.lede": "A dated notice above the forums. Nobody can reply to one, it disappears on its own date, and removing it removes nothing anybody wrote — which is what makes it a different thing from a pinned thread rather than a worse one.",
|
|
@@ -220,6 +244,7 @@
|
|
|
220
244
|
"adminAttachments.stored": "Stored",
|
|
221
245
|
"adminBanFilter.addFilter": "Add filter",
|
|
222
246
|
"adminBanFilter.added": "Filter added.",
|
|
247
|
+
"adminBanFilter.confirm.remove": "Remove this ban filter? Registrations it currently blocks will be allowed again.",
|
|
223
248
|
"adminBanFilter.note": "Note",
|
|
224
249
|
"adminBanFilter.noteHint": "Optional, and only ever seen here. Why the filter exists, so the next administrator knows whether it still needs to.",
|
|
225
250
|
"adminBanFilter.pattern": "Pattern",
|
|
@@ -255,6 +280,13 @@
|
|
|
255
280
|
"adminContent.captcha.answersHint": "One per line. Any of them is accepted, ignoring case and extra spaces.",
|
|
256
281
|
"adminContent.captcha.question": "Question",
|
|
257
282
|
"adminContent.captcha.questionPlaceholder": "What is the name of this forum?",
|
|
283
|
+
"adminContent.confirm.deleteAnnouncement": "Delete this announcement? It disappears from every page it shows on.",
|
|
284
|
+
"adminContent.confirm.deleteAttachment": "Delete this attachment? The file is removed for good and any post using it loses it.",
|
|
285
|
+
"adminContent.confirm.deleteCaptchaQuestion": "Delete this registration question? It will no longer be asked.",
|
|
286
|
+
"adminContent.confirm.deleteDirective": "Delete this directive? Posts that use it stop rendering it.",
|
|
287
|
+
"adminContent.confirm.deletePrefix": "Delete this prefix? Threads that use it lose it.",
|
|
288
|
+
"adminContent.confirm.deleteSmiley": "Delete this smiley? Its code stops rendering as an image.",
|
|
289
|
+
"adminContent.confirm.deleteWordFilter": "Delete this word filter? Its replacement stops being applied to new posts.",
|
|
258
290
|
"adminContent.directive.block": "Block",
|
|
259
291
|
"adminContent.directive.name": "Name",
|
|
260
292
|
"adminContent.directive.nameHint": "1–16 letters or digits. Written {block} as a block, or {inline} inline.",
|
|
@@ -293,7 +325,6 @@
|
|
|
293
325
|
"adminForum.description": "Description",
|
|
294
326
|
"adminForum.displayOrder": "Display order",
|
|
295
327
|
"adminForum.displayOrderHint": "Its place among the forums beside it, counting from zero. Dragging it on the tree screen writes this for you, and renumbers its siblings to match.",
|
|
296
|
-
"adminForum.inheritsAll": "All inherited",
|
|
297
328
|
"adminForum.inside": "Inside",
|
|
298
329
|
"adminForum.kind": "Kind",
|
|
299
330
|
"adminForum.kind.category": "Category — a heading that holds forums",
|
|
@@ -313,7 +344,6 @@
|
|
|
313
344
|
"adminForum.noRights": "No rights — can read the queue and nothing else",
|
|
314
345
|
"adminForum.options": "Options",
|
|
315
346
|
"adminForum.orGroup": "…or a group",
|
|
316
|
-
"adminForum.overridesSet": "{count, plural, one {# set here} other {# set here}}",
|
|
317
347
|
"adminForum.perm.allowed": "allowed",
|
|
318
348
|
"adminForum.perm.ancestor": "an ancestor",
|
|
319
349
|
"adminForum.perm.denied": "denied",
|
|
@@ -326,14 +356,15 @@
|
|
|
326
356
|
"adminForum.perm.notRequiredOption": "Not required",
|
|
327
357
|
"adminForum.perm.required": "required",
|
|
328
358
|
"adminForum.perm.requiredOption": "Required",
|
|
329
|
-
"adminForum.perm.setHere": "set here: {value}",
|
|
330
359
|
"adminForum.permGroup.approvals": "Approval required",
|
|
331
360
|
"adminForum.permGroup.attachments": "Attachments",
|
|
332
361
|
"adminForum.permGroup.moderation": "Moderation",
|
|
362
|
+
"adminForum.permGroup.numeric": "Numeric limits",
|
|
333
363
|
"adminForum.permGroup.other": "Other",
|
|
334
364
|
"adminForum.permGroup.ownContent": "Own content",
|
|
335
365
|
"adminForum.permGroup.posting": "Posting",
|
|
336
366
|
"adminForum.permGroup.viewing": "Viewing",
|
|
367
|
+
"adminForum.permission": "Permission",
|
|
337
368
|
"adminForum.right.canApproveContent": "Approve content",
|
|
338
369
|
"adminForum.right.canEditPosts": "Edit posts",
|
|
339
370
|
"adminForum.right.canMergeThreads": "Merge threads",
|
|
@@ -345,7 +376,7 @@
|
|
|
345
376
|
"adminForum.right.canStickThreads": "Stick threads",
|
|
346
377
|
"adminForum.saveAppointment": "Save appointment",
|
|
347
378
|
"adminForum.saveForum": "Save forum",
|
|
348
|
-
"adminForum.
|
|
379
|
+
"adminForum.saveMatrix": "Save permissions",
|
|
349
380
|
"adminForum.slug": "Slug",
|
|
350
381
|
"adminForum.slugHint": "Appears in every link to this forum. Lower-case letters, numbers and single hyphens — anything else would have to be escaped, and a URL nobody can paste is worse than an ugly one.",
|
|
351
382
|
"adminForum.title": "Title",
|
|
@@ -548,6 +579,8 @@
|
|
|
548
579
|
"adminNav.admin-users-prune.title": "Prune members",
|
|
549
580
|
"adminNav.admin-users.blurb": "Find an account, change it, merge or prune, or mail the board.",
|
|
550
581
|
"adminNav.admin-users.title": "Users",
|
|
582
|
+
"adminNav.admin-webhooks.blurb": "Deliver new threads, posts and reports to an endpoint you choose.",
|
|
583
|
+
"adminNav.admin-webhooks.title": "Webhooks",
|
|
551
584
|
"adminNav.admin.blurb": "What is waiting, the board at a glance, and the latest activity.",
|
|
552
585
|
"adminNav.admin.title": "Overview",
|
|
553
586
|
"adminNav.plugin.blurb": "Every screen {name} adds to the panel.",
|
|
@@ -559,6 +592,7 @@
|
|
|
559
592
|
"adminNavigation.audience.members": "Signed-in members",
|
|
560
593
|
"adminNavigation.audience.staff": "Staff",
|
|
561
594
|
"adminNavigation.builtIn": "from the board",
|
|
595
|
+
"adminNavigation.confirm.delete": "Delete this navigation link? It is removed from the menu.",
|
|
562
596
|
"adminNavigation.custom": "added here",
|
|
563
597
|
"adminNavigation.groups": "Groups",
|
|
564
598
|
"adminNavigation.groupsHint": "Tick none to show the item to everyone the audience above admits. Tick some and only members of those groups see it.",
|
|
@@ -663,6 +697,7 @@
|
|
|
663
697
|
"adminPanel.system.tokensRemoved": "{removed} token rows removed.",
|
|
664
698
|
"adminPanel.system.upgradeApplied": "Pending migrations applied. This deployment is up to date.",
|
|
665
699
|
"adminPanel.title": "Control panel",
|
|
700
|
+
"adminPanel.token.confirmRevoke": "Revoke this token? Anything using it will immediately stop working, and it cannot be restored.",
|
|
666
701
|
"adminPanel.token.copyNow": "Copy this now — it is not shown again and cannot be recovered.",
|
|
667
702
|
"adminPanel.token.expiresHint": "A whole number of days. Leave it empty for a token that never expires — anything else is refused rather than read as never.",
|
|
668
703
|
"adminPanel.token.expiresInDays": "Expires in (days)",
|
|
@@ -674,8 +709,28 @@
|
|
|
674
709
|
"adminPanel.token.revoke": "Revoke",
|
|
675
710
|
"adminPanel.token.scopes": "Scopes",
|
|
676
711
|
"adminPanel.token.scopesHint": "A token can never do more than its owner may. Scopes narrow it further.",
|
|
712
|
+
"adminPanel.twoFactor.cancel": "Cancel",
|
|
713
|
+
"adminPanel.twoFactor.lede": "Your password was right. Enter the code your authenticator app is showing.",
|
|
714
|
+
"adminPanel.twoFactor.recoveryHint": "Or one of the recovery codes you saved when you set this up.",
|
|
715
|
+
"adminPanel.twoFactor.recoveryHintExhausted": "Or one of the recovery codes you saved when you set this up. You have none left — replace them from your account security page once you are in.",
|
|
716
|
+
"adminPanel.twoFactor.submit": "Enter the control panel",
|
|
717
|
+
"adminPanel.twoFactor.title": "One more step",
|
|
677
718
|
"adminPanel.twoFactorCode": "Two-factor code",
|
|
678
|
-
"adminPanel.
|
|
719
|
+
"adminPanel.webhook.active": "Deliver events to this endpoint",
|
|
720
|
+
"adminPanel.webhook.copyNow": "Copy this signing secret now — it is shown once. Each delivery is signed with it.",
|
|
721
|
+
"adminPanel.webhook.create": "Add subscription",
|
|
722
|
+
"adminPanel.webhook.delete": "Delete",
|
|
723
|
+
"adminPanel.webhook.disable": "Pause",
|
|
724
|
+
"adminPanel.webhook.enable": "Resume",
|
|
725
|
+
"adminPanel.webhook.format": "Payload format",
|
|
726
|
+
"adminPanel.webhook.format.discord": "Discord",
|
|
727
|
+
"adminPanel.webhook.format.json": "Plain JSON",
|
|
728
|
+
"adminPanel.webhook.formatHint": "Discord posts a message with a link. Plain JSON posts the event and its ids, signed.",
|
|
729
|
+
"adminPanel.webhook.topics": "Topics",
|
|
730
|
+
"adminPanel.webhook.topicsHint": "The events this endpoint receives.",
|
|
731
|
+
"adminPanel.webhook.url": "Endpoint",
|
|
732
|
+
"adminPanel.webhook.urlHint": "The https:// address each event is posted to. Plain http:// is refused.",
|
|
733
|
+
"adminPanel.webhook.urlPlaceholder": "https://example.com/hooks/meith",
|
|
679
734
|
"adminPluginDetail.allPlugins": "All plugins",
|
|
680
735
|
"adminPluginDetail.applied": "applied",
|
|
681
736
|
"adminPluginDetail.calls": "Calls",
|
|
@@ -698,6 +753,7 @@
|
|
|
698
753
|
"adminPluginDetail.runningNoDisabled": "no — an administrator turned it off",
|
|
699
754
|
"adminPluginDetail.runningRegisteredDisabled": "registered, but disabled in meith.config.ts",
|
|
700
755
|
"adminPluginDetail.runningUndefined": "a key with no definition",
|
|
756
|
+
"adminPluginDetail.schedule": "at {schedule} UTC",
|
|
701
757
|
"adminPluginDetail.screens": "{plugin} screens",
|
|
702
758
|
"adminPluginDetail.settings": "Settings",
|
|
703
759
|
"adminPluginDetail.settingsHint": "Stored under this plugin’s own namespace, so two plugins cannot collide and neither can reach a board setting.",
|
|
@@ -796,6 +852,8 @@
|
|
|
796
852
|
"adminSystem.task.avatarsSweep.title": "Fail unfinished avatar uploads",
|
|
797
853
|
"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.",
|
|
798
854
|
"adminSystem.task.bansExpire.title": "Expire temporary bans",
|
|
855
|
+
"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.",
|
|
856
|
+
"adminSystem.task.boardDigestSend.title": "Send board activity digests",
|
|
799
857
|
"adminSystem.task.countersReconcile.description": "Recomputes forum and thread counters from source rows. Counters are maintained incrementally on the write path for speed; this is the safety net that repairs drift from a crashed request or a bad import. Idempotent by construction — it writes a computed truth, not a delta.",
|
|
800
858
|
"adminSystem.task.countersReconcile.title": "Reconcile denormalised counters",
|
|
801
859
|
"adminSystem.task.groupsExpire.description": "Deletes secondary group memberships whose expiry has passed and bumps the permission version so derived caches follow. Actor assembly already excludes a lapsed row, so access ended on time regardless — this tidies the table rather than enforcing the boundary, and a doubled tick deletes nothing twice.",
|
|
@@ -1140,6 +1198,16 @@
|
|
|
1140
1198
|
"adminUsers.until": "until",
|
|
1141
1199
|
"adminUsers.username": "Username",
|
|
1142
1200
|
"adminUsers.warningPoints": "{count, plural, one {# warning point} other {# warning points}}",
|
|
1201
|
+
"adminWebhooks.add": "Add a subscription",
|
|
1202
|
+
"adminWebhooks.dead": "failed",
|
|
1203
|
+
"adminWebhooks.delivered": "delivered",
|
|
1204
|
+
"adminWebhooks.empty": "No webhook subscriptions yet.",
|
|
1205
|
+
"adminWebhooks.existing": "Subscriptions",
|
|
1206
|
+
"adminWebhooks.lede": "New threads, posts and reports delivered to an endpoint of your choosing — signed, queued, and retried with backoff.",
|
|
1207
|
+
"adminWebhooks.pending": "pending",
|
|
1208
|
+
"adminWebhooks.recent": "Recent deliveries",
|
|
1209
|
+
"adminWebhooks.state.active": "active",
|
|
1210
|
+
"adminWebhooks.state.paused": "paused",
|
|
1143
1211
|
"appearance.apply": "Apply",
|
|
1144
1212
|
"appearance.scheme.dark": "Dark",
|
|
1145
1213
|
"appearance.scheme.light": "Light",
|
|
@@ -1342,6 +1410,7 @@
|
|
|
1342
1410
|
"board.modlog.ipLookup": "Looked up an address",
|
|
1343
1411
|
"board.modlog.moderation.approve": "Approved held content",
|
|
1344
1412
|
"board.modlog.moderation.reject": "Rejected held content",
|
|
1413
|
+
"board.modlog.post.autohold": "Held content after community reports",
|
|
1345
1414
|
"board.modlog.post.delete": "Deleted a post",
|
|
1346
1415
|
"board.modlog.post.edit": "Edited a post they did not write",
|
|
1347
1416
|
"board.modlog.post.restore": "Restored a post",
|
|
@@ -1395,6 +1464,9 @@
|
|
|
1395
1464
|
"board.reports.deletedAccount": "a deleted account",
|
|
1396
1465
|
"board.reports.deletedMember": "a deleted member",
|
|
1397
1466
|
"board.reports.dismissed": "Report dismissed.",
|
|
1467
|
+
"board.reports.filterAll": "All categories",
|
|
1468
|
+
"board.reports.filterApply": "Filter",
|
|
1469
|
+
"board.reports.filterCategory": "Category",
|
|
1398
1470
|
"board.reports.message": "The reported message",
|
|
1399
1471
|
"board.reports.messageDeleted": "This message has since been deleted by everybody who held it.",
|
|
1400
1472
|
"board.reports.messageFrom": "The reported message, from {username}",
|
|
@@ -1440,13 +1512,20 @@
|
|
|
1440
1512
|
"composer.attachment.uploading": "Uploading…",
|
|
1441
1513
|
"composer.attachments.hint": "Drop files here, or choose up to {count, plural, one {# file} other {# files}} of {size} each — PNG, JPEG, PDF or ZIP. Images are re-encoded, which removes any metadata they carry.",
|
|
1442
1514
|
"composer.attachments.label": "Attachments",
|
|
1515
|
+
"composer.attachments.remove": "Remove",
|
|
1516
|
+
"composer.attachments.removeChosen": "Remove {name}",
|
|
1443
1517
|
"composer.autosave.failed": "Autosave failed. Use Save draft to keep this version on the server.",
|
|
1444
1518
|
"composer.autosave.saved": "Saved just now.",
|
|
1445
1519
|
"composer.autosave.saving": "Saving…",
|
|
1446
1520
|
"composer.draftSaved": "Draft saved.",
|
|
1521
|
+
"composer.edit.attachmentFailed": "Could not be processed.",
|
|
1522
|
+
"composer.edit.attachmentProcessing": "Still being processed.",
|
|
1523
|
+
"composer.edit.attachments": "Current attachments",
|
|
1447
1524
|
"composer.edit.delete": "Delete this post",
|
|
1448
1525
|
"composer.edit.deleteBlurb": "Deleting hides this post from the thread. A moderator can put it back.",
|
|
1449
1526
|
"composer.edit.reason": "Reason for editing (optional)",
|
|
1527
|
+
"composer.edit.remove": "Remove",
|
|
1528
|
+
"composer.edit.removeAttachment": "Remove {name}",
|
|
1450
1529
|
"composer.edit.restore": "Restore this post",
|
|
1451
1530
|
"composer.edit.restoreBlurb": "This post is deleted. Restoring puts it back in the thread and back into the board’s counts.",
|
|
1452
1531
|
"composer.edit.submit": "Save changes",
|
|
@@ -1456,6 +1535,7 @@
|
|
|
1456
1535
|
"composer.help.codeBlock": "a code block, closed by another ```",
|
|
1457
1536
|
"composer.help.codeInline": "code, inline",
|
|
1458
1537
|
"composer.help.heading": "a heading",
|
|
1538
|
+
"composer.help.image": "an image from a URL; the text in brackets describes it",
|
|
1459
1539
|
"composer.help.italic": "italic",
|
|
1460
1540
|
"composer.help.link": "a link",
|
|
1461
1541
|
"composer.help.list": "a list; 1. for a numbered one",
|
|
@@ -1465,6 +1545,9 @@
|
|
|
1465
1545
|
"composer.help.spoiler": "a spoiler, hidden until clicked",
|
|
1466
1546
|
"composer.help.struck": "struck out",
|
|
1467
1547
|
"composer.help.summary": "Formatting help",
|
|
1548
|
+
"composer.help.table": "a table; the row of dashes separates the header",
|
|
1549
|
+
"composer.help.taskList": "a task list item; write - [x] when it is done",
|
|
1550
|
+
"composer.mention.available": "{count, plural, one {# suggestion available} other {# suggestions available}}",
|
|
1468
1551
|
"composer.mention.suggestions": "Mention suggestions",
|
|
1469
1552
|
"composer.message": "Message",
|
|
1470
1553
|
"composer.multiquote.addToReply": "Add to reply",
|
|
@@ -1478,8 +1561,10 @@
|
|
|
1478
1561
|
"composer.multiquote.quotesPartial": "{added, plural, one {# quote} other {# quotes}} added to your reply — {missed} could not be quoted.",
|
|
1479
1562
|
"composer.multiquote.removed": "Removed from multi-quote — {count, plural, =0 {nothing selected} one {# post selected} other {# posts selected}}.",
|
|
1480
1563
|
"composer.multiquote.selectedToQuote": "{count, plural, =0 {Nothing selected to quote} one {# post selected to quote} other {# posts selected to quote}}",
|
|
1564
|
+
"composer.multiquote.tooltip": "Collect posts to quote together in one reply.",
|
|
1481
1565
|
"composer.newThread.addPoll": "Add a poll",
|
|
1482
1566
|
"composer.newThread.choosePrefix": "Choose a prefix…",
|
|
1567
|
+
"composer.newThread.morePollOptions": "More options",
|
|
1483
1568
|
"composer.newThread.noPrefix": "None",
|
|
1484
1569
|
"composer.newThread.option": "Option {number}",
|
|
1485
1570
|
"composer.newThread.optional": "Optional",
|
|
@@ -1494,12 +1579,15 @@
|
|
|
1494
1579
|
"composer.newThread.submit": "Post thread",
|
|
1495
1580
|
"composer.notifyReplies": "Notify me of replies",
|
|
1496
1581
|
"composer.placeholder.bold": "bold text",
|
|
1582
|
+
"composer.placeholder.image": "alt text",
|
|
1497
1583
|
"composer.placeholder.italic": "italic text",
|
|
1498
1584
|
"composer.placeholder.spoiler": "hidden text",
|
|
1499
1585
|
"composer.placeholder.struck": "struck out",
|
|
1586
|
+
"composer.placeholder.table": "Heading",
|
|
1500
1587
|
"composer.preview": "Preview",
|
|
1501
1588
|
"composer.previewEmpty": "Nothing to preview yet.",
|
|
1502
1589
|
"composer.previewFailed": "The preview could not be rendered. Your post is untouched — switch back to Write.",
|
|
1590
|
+
"composer.recipient.suggestions": "Recipient suggestions",
|
|
1503
1591
|
"composer.recovery.available": "A newer unsent version was recovered from this browser.",
|
|
1504
1592
|
"composer.recovery.discard": "Discard",
|
|
1505
1593
|
"composer.recovery.restore": "Restore",
|
|
@@ -1518,14 +1606,20 @@
|
|
|
1518
1606
|
"composer.tool.bulletedList": "Bulleted list",
|
|
1519
1607
|
"composer.tool.code": "Code",
|
|
1520
1608
|
"composer.tool.heading": "Heading",
|
|
1609
|
+
"composer.tool.image": "Image",
|
|
1521
1610
|
"composer.tool.italic": "Italic",
|
|
1522
1611
|
"composer.tool.link": "Link",
|
|
1523
1612
|
"composer.tool.numberedList": "Numbered list",
|
|
1524
1613
|
"composer.tool.quote": "Quote",
|
|
1525
1614
|
"composer.tool.spoiler": "Spoiler",
|
|
1526
1615
|
"composer.tool.strikethrough": "Strikethrough",
|
|
1616
|
+
"composer.tool.table": "Table",
|
|
1617
|
+
"composer.tool.taskList": "Task list",
|
|
1527
1618
|
"composer.toolShortcut": "{label} (Ctrl+{key})",
|
|
1528
1619
|
"composer.write": "Write",
|
|
1620
|
+
"confirm.cancel": "Cancel",
|
|
1621
|
+
"confirm.confirm": "Confirm",
|
|
1622
|
+
"confirm.heading": "Please confirm",
|
|
1529
1623
|
"contacts.added": "{name} is now on your buddy list.",
|
|
1530
1624
|
"contacts.ignored": "You are now ignoring {name}. Their posts are hidden behind a link, and they cannot send you private messages.",
|
|
1531
1625
|
"contacts.removed": "{name} has been taken off your lists.",
|
|
@@ -1612,6 +1706,15 @@
|
|
|
1612
1706
|
"discovery.today.label": "Today's posts",
|
|
1613
1707
|
"discovery.unanswered.blurb": "Threads nobody has replied to yet — a good place to help.",
|
|
1614
1708
|
"discovery.unanswered.label": "Unanswered",
|
|
1709
|
+
"discovery.unread.blurb": "Threads with something new since you last read them.",
|
|
1710
|
+
"discovery.unread.label": "Unread",
|
|
1711
|
+
"draftsPage.confirm.delete": "Delete this draft? What you wrote will be gone for good.",
|
|
1712
|
+
"draftsPage.delete": "Delete",
|
|
1713
|
+
"draftsPage.kind.reply": "Reply",
|
|
1714
|
+
"draftsPage.kind.thread": "New thread",
|
|
1715
|
+
"draftsPage.lede": "Threads and replies you started but never posted. Resuming one drops you back into the composer with what you wrote still there.",
|
|
1716
|
+
"draftsPage.none": "You have no saved drafts.",
|
|
1717
|
+
"draftsPage.resume": "Resume",
|
|
1615
1718
|
"error.accounts.account-already-asks-for-code": "Your account already asks for a code. Turn that off before setting it up again.",
|
|
1616
1719
|
"error.accounts.account-already-asks-for-code-2": "Your account already asks for a code.",
|
|
1617
1720
|
"error.accounts.account-behind-passkey-longer-exists": "The account behind that passkey no longer exists.",
|
|
@@ -1622,6 +1725,7 @@
|
|
|
1622
1725
|
"error.accounts.account-used-board-contact-administrator": "This account cannot be used on this board. Contact an administrator if you believe this is a mistake.",
|
|
1623
1726
|
"error.accounts.address-already-use-board": "That address is already in use on this board.",
|
|
1624
1727
|
"error.accounts.address-already-using": "That is the address you are already using.",
|
|
1728
|
+
"error.accounts.auto-watch-preference": "That is not a follow cadence this board recognises.",
|
|
1625
1729
|
"error.accounts.ban-expire-past": "A ban cannot expire in the past.",
|
|
1626
1730
|
"error.accounts.ban-filter-already-held": "This board already holds that filter.",
|
|
1627
1731
|
"error.accounts.ban-filter-needs-pattern": "A ban filter needs a pattern.",
|
|
@@ -1632,6 +1736,7 @@
|
|
|
1632
1736
|
"error.accounts.board-read-secret-behind-authenticator": "This board cannot read the secret behind your authenticator app. Its AUTH_SECRET has changed, so two-factor authentication must be set up again.",
|
|
1633
1737
|
"error.accounts.could-settle-free-username-for": "Could not settle on a free username for that account. Register with a password instead, then link the two from your account security page.",
|
|
1634
1738
|
"error.accounts.current-password": "That is not your current password.",
|
|
1739
|
+
"error.accounts.digest-cadence-weekly-monthly": "Give weekly or monthly.",
|
|
1635
1740
|
"error.accounts.email-already-registered": "That email is already registered.",
|
|
1636
1741
|
"error.accounts.github-refused-sign-in-code-start": "GitHub refused the sign-in code. Start again from the sign-in page.",
|
|
1637
1742
|
"error.accounts.github-sent-account-with-stable": "GitHub sent an account with no stable identifier.",
|
|
@@ -1689,6 +1794,7 @@
|
|
|
1689
1794
|
"error.app.board-accept-posts": "This board cannot accept posts.",
|
|
1690
1795
|
"error.app.board-cannot-be-upgraded": "This board cannot be upgraded.",
|
|
1691
1796
|
"error.app.board-database-so-api": "This board has no database, so it has no API.",
|
|
1797
|
+
"error.app.board-database-webhooks": "This board has no database, so it keeps no webhooks.",
|
|
1692
1798
|
"error.app.board-keeps-avatars": "This board keeps no avatars.",
|
|
1693
1799
|
"error.app.board-keeps-signatures": "This board keeps no signatures.",
|
|
1694
1800
|
"error.app.board-manages-sign-ins-for-its": "This board manages sign-ins for its members.",
|
|
@@ -1745,6 +1851,7 @@
|
|
|
1745
1851
|
"error.app.enter-password": "Enter your password.",
|
|
1746
1852
|
"error.app.exist": "That does not exist.",
|
|
1747
1853
|
"error.app.expires-days-must-whole-number": "Expires in (days) must be a whole number of days above zero. Leave it empty for a token that never expires.",
|
|
1854
|
+
"error.app.feed-token-needs-database": "The board has no database, so feed tokens are unavailable.",
|
|
1748
1855
|
"error.app.file-png-jpeg-webp-svg": "That file is not a PNG, JPEG, WebP or SVG. The name is not what decides this — the contents are.",
|
|
1749
1856
|
"error.app.filter-match-you-lock-out": "That pattern matches your own account, and saving it would lock you out with no way back through this screen. Narrow it.",
|
|
1750
1857
|
"error.app.form-submitted-settings": "That form submitted no settings.",
|
|
@@ -1817,6 +1924,8 @@
|
|
|
1817
1924
|
"error.app.token-needs-at-least-one": "A token needs at least one scope, or it can do nothing.",
|
|
1818
1925
|
"error.app.use-private-messages": "You cannot use private messages.",
|
|
1819
1926
|
"error.app.valid-date": "That is not a valid date.",
|
|
1927
|
+
"error.app.webhook-needs-at-least-one-topic": "A webhook needs at least one topic, or it delivers nothing.",
|
|
1928
|
+
"error.app.webhook-url-https": "A webhook endpoint must be an https:// URL.",
|
|
1820
1929
|
"error.attachments.bad-type": "“{name}” is not a type this board accepts. Attachments may be PNG, JPEG, PDF or ZIP.",
|
|
1821
1930
|
"error.attachments.damaged": "“{name}” has a damaged header and cannot be read.",
|
|
1822
1931
|
"error.attachments.empty": "“{name}” is empty.",
|
|
@@ -2207,6 +2316,8 @@
|
|
|
2207
2316
|
"messageForm.bcc": "Bcc",
|
|
2208
2317
|
"messageForm.bccHint": "Optional. These names are hidden from the other recipients.",
|
|
2209
2318
|
"messageForm.bodyHint": "Markdown, the same as in a post.",
|
|
2319
|
+
"messageForm.confirm.deleteForever": "Permanently delete the selected messages? This cannot be undone.",
|
|
2320
|
+
"messageForm.confirm.emptyTrash": "Empty the trash? Every message in it is permanently deleted, and this cannot be undone.",
|
|
2210
2321
|
"messageForm.deleteForever": "Delete permanently",
|
|
2211
2322
|
"messageForm.emptyTrash": "Empty trash",
|
|
2212
2323
|
"messageForm.markRead": "Mark read",
|
|
@@ -2232,6 +2343,7 @@
|
|
|
2232
2343
|
"modCpNav.moderation-warn.title": "Warn a member",
|
|
2233
2344
|
"modCpNav.moderation.blurb": "Posts and threads held for approval in the forums you moderate.",
|
|
2234
2345
|
"modCpNav.moderation.title": "Approval queue",
|
|
2346
|
+
"modCpNav.plugin.blurb": "Every moderator screen {name} adds to the panel.",
|
|
2235
2347
|
"modcp.right.approve-content": "Approve content",
|
|
2236
2348
|
"modcp.right.delete-posts": "Delete posts",
|
|
2237
2349
|
"modcp.right.edit-posts": "Edit posts",
|
|
@@ -2241,6 +2353,8 @@
|
|
|
2241
2353
|
"modcp.right.pin-unpin": "Pin and unpin",
|
|
2242
2354
|
"modcp.right.restore-posts": "Restore posts",
|
|
2243
2355
|
"modcp.right.split-threads": "Split threads",
|
|
2356
|
+
"moderationForm.confirm.delete": "Delete the selected items? Members will no longer see them.",
|
|
2357
|
+
"moderationForm.confirm.deleteThread": "Delete this thread? Members will no longer see it.",
|
|
2244
2358
|
"moderationForm.inline.approve": "Approve",
|
|
2245
2359
|
"moderationForm.inline.delete": "Delete",
|
|
2246
2360
|
"moderationForm.inline.moderatePosts": "Moderate selected posts",
|
|
@@ -2261,6 +2375,11 @@
|
|
|
2261
2375
|
"moderationForm.queue.by": "by {author}",
|
|
2262
2376
|
"moderationForm.queue.inForum": "in {forum}",
|
|
2263
2377
|
"moderationForm.queue.reject": "Reject selected",
|
|
2378
|
+
"moderationForm.report.category.abuse": "Abuse",
|
|
2379
|
+
"moderationForm.report.category.off_topic": "Off-topic",
|
|
2380
|
+
"moderationForm.report.category.other": "Something else",
|
|
2381
|
+
"moderationForm.report.category.spam": "Spam",
|
|
2382
|
+
"moderationForm.report.categoryLegend": "Why are you reporting this?",
|
|
2264
2383
|
"moderationForm.report.dismiss": "Dismiss",
|
|
2265
2384
|
"moderationForm.report.hint": "Say what a moderator should look at. The member you are reporting never sees this.",
|
|
2266
2385
|
"moderationForm.report.label": "What is wrong with it?",
|
|
@@ -2320,6 +2439,7 @@
|
|
|
2320
2439
|
"notice.announcementsSaved": "Saved — the board will e-mail you its announcements only while you ask for them.",
|
|
2321
2440
|
"notice.app.account-e-mail-address-send-test": "Your account has no e-mail address to send a test to.",
|
|
2322
2441
|
"notice.app.board-database-api": "This board has no database, so it has no API.",
|
|
2442
|
+
"notice.app.board-database-webhooks": "This board has no database, so it keeps no webhooks.",
|
|
2323
2443
|
"notice.app.board-offering-web-push": "This board is not offering web push.",
|
|
2324
2444
|
"notice.app.board-reports": "This board has no reports.",
|
|
2325
2445
|
"notice.app.board-running-in-memory-sample-data": "This board is running on in-memory sample data, so it has no warnings.",
|
|
@@ -2332,15 +2452,18 @@
|
|
|
2332
2452
|
"notice.app.board-working-mail-configuration-there": "This board has no working mail configuration, so there is nothing to test. ",
|
|
2333
2453
|
"notice.app.choose-approve-reject": "Choose approve or reject.",
|
|
2334
2454
|
"notice.app.choose-post-split-from": "Choose the post to split from.",
|
|
2455
|
+
"notice.app.choose-report-category": "Choose a category.",
|
|
2335
2456
|
"notice.app.choose-resolve-dismiss": "Choose resolve or dismiss.",
|
|
2336
2457
|
"notice.app.choose-what-with-selected-items": "Choose what to do with the selected items.",
|
|
2337
2458
|
"notice.app.enter-number-thread-merge-into": "Enter the number of the thread to merge into.",
|
|
2338
2459
|
"notice.app.exist": "That does not exist.",
|
|
2339
2460
|
"notice.app.forum-exist": "That forum does not exist.",
|
|
2340
2461
|
"notice.app.member-exist": "That member does not exist.",
|
|
2462
|
+
"notice.app.moderators-only-endpoint": "This endpoint is for the board’s moderators.",
|
|
2341
2463
|
"notice.app.notification-exist": "That notification does not exist.",
|
|
2342
2464
|
"notice.app.passkey-could-found": "That passkey could not be found.",
|
|
2343
2465
|
"notice.app.post-exist": "That post does not exist.",
|
|
2466
|
+
"notice.app.push-subscription-limit": "This account already has the most push subscriptions it may register. Remove one before adding another.",
|
|
2344
2467
|
"notice.app.push-subscription-valid": "That push subscription is not valid.",
|
|
2345
2468
|
"notice.app.report-exist": "That report does not exist.",
|
|
2346
2469
|
"notice.app.session-could-found": "That session could not be found.",
|
|
@@ -2349,6 +2472,7 @@
|
|
|
2349
2472
|
"notice.app.sign-in-could-found": "That sign-in could not be found.",
|
|
2350
2473
|
"notice.app.something-went-wrong-please-try": "Something went wrong. Please try again.",
|
|
2351
2474
|
"notice.app.such-token": "No such token.",
|
|
2475
|
+
"notice.app.such-webhook": "No such webhook.",
|
|
2352
2476
|
"notice.app.test-could-run": "The test could not be run.",
|
|
2353
2477
|
"notice.app.thread-exist": "That thread does not exist.",
|
|
2354
2478
|
"notice.app.too-many-calls-endpoint-give": "Too many calls to this endpoint. Give it a moment.",
|
|
@@ -2356,10 +2480,14 @@
|
|
|
2356
2480
|
"notice.app.two-passwords-match": "The two passwords do not match.",
|
|
2357
2481
|
"notice.app.unsubscribe-link-valid": "That unsubscribe link is not valid.",
|
|
2358
2482
|
"notice.app.warning-exist": "That warning does not exist.",
|
|
2483
|
+
"notice.boardDigestCadenceSaved": "Saved — your board digest cadence was updated.",
|
|
2484
|
+
"notice.dismiss": "Dismiss",
|
|
2359
2485
|
"notice.markedRead": "Marked as read.",
|
|
2360
2486
|
"notice.preferencesSaved": "Your notification preferences were saved.",
|
|
2361
2487
|
"notice.pushSubscribed": "This browser will now receive pushed notifications.",
|
|
2362
2488
|
"notice.pushUnsubscribed": "This browser will no longer receive pushed notifications.",
|
|
2489
|
+
"notification.board.digest.description": "Sent only after you have been away a while, listing the busiest threads since your last visit. Off by default — nobody gets this without asking for it.",
|
|
2490
|
+
"notification.board.digest.title": "A recap of what you missed on the board",
|
|
2363
2491
|
"notification.mail.boardFallback": "the forum",
|
|
2364
2492
|
"notification.mail.greeting": "Hello {username},",
|
|
2365
2493
|
"notification.marketplace.update_available.description": "The daily catalog fetch finds a newer, compatible version of a plugin this board runs. Sent once per version, whether or not anybody installs it.",
|
|
@@ -2372,6 +2500,10 @@
|
|
|
2372
2500
|
"notification.post.mentioned.title": "Somebody mentions you in a post",
|
|
2373
2501
|
"notification.post.quoted.description": "Somebody carries your words into their reply with the quote button. The notification links to the reply that quotes you.",
|
|
2374
2502
|
"notification.post.quoted.title": "Somebody quotes your post",
|
|
2503
|
+
"notification.render.boardDigest.entry": "• {title} — {forum}",
|
|
2504
|
+
"notification.render.boardDigest.forumFallback": "the board",
|
|
2505
|
+
"notification.render.boardDigest.monthly": "monthly",
|
|
2506
|
+
"notification.render.boardDigest.subject": "Your {cadence} digest: {threads, plural, one {# thread} other {# threads}} worth catching up on",
|
|
2375
2507
|
"notification.render.digest.daily": "daily",
|
|
2376
2508
|
"notification.render.digest.entry": "• {title} — {count, plural, one {# post} other {# posts}}{author}",
|
|
2377
2509
|
"notification.render.digest.entryAuthor": ", latest from {author}",
|
|
@@ -2483,6 +2615,7 @@
|
|
|
2483
2615
|
"page.create-account": "Create account",
|
|
2484
2616
|
"page.create-account-2": "Create your account",
|
|
2485
2617
|
"page.custom-directives": "Custom directives",
|
|
2618
|
+
"page.drafts": "Drafts",
|
|
2486
2619
|
"page.edit-poll": "Edit poll",
|
|
2487
2620
|
"page.edit-post": "Edit post",
|
|
2488
2621
|
"page.email-cannot-be-unsent": "An email cannot be unsent.",
|
|
@@ -2662,6 +2795,7 @@
|
|
|
2662
2795
|
"page.this-board-running-in-memory-sample-8": "This board is running on in-memory sample data, so promotions cannot run.",
|
|
2663
2796
|
"page.this-board-running-in-memory-sample-9": "This board is running on in-memory sample data, so it stores no questions.",
|
|
2664
2797
|
"page.this-board-running-in-memory-sample-b": "This board is running on in-memory sample data, so it has no API.",
|
|
2798
|
+
"page.this-board-running-in-memory-sample-c": "This board is running on in-memory sample data, so it has no webhooks.",
|
|
2665
2799
|
"page.this-build": "In this build",
|
|
2666
2800
|
"page.this-forum-has-nothing-beneath": "This forum has nothing beneath it.",
|
|
2667
2801
|
"page.this-link-missing-its-token": "This link is missing its token. Request a new one to continue.",
|
|
@@ -2673,6 +2807,7 @@
|
|
|
2673
2807
|
"page.totals": "Totals",
|
|
2674
2808
|
"page.totals-rolled-up-by-scheduled": "The totals are rolled up by a scheduled task, and it has not run.",
|
|
2675
2809
|
"page.unsubscribe": "Unsubscribe",
|
|
2810
|
+
"page.unsubscribe.boardDigestScope": "This will turn off your board activity digest. Nothing else about your notifications changes.",
|
|
2676
2811
|
"page.unsubscribe.emailScope": "This will stop subscription e-mails. What you follow stays as it is, and new posts will still appear in your notifications on the board.",
|
|
2677
2812
|
"page.unsubscribe.massMailScope": "This will stop the board’s announcements. Nothing else changes: you will still be notified about what you follow, and your account stays as it is.",
|
|
2678
2813
|
"page.unsubscribe.targetScope": "This will stop notifications about the thread or forum this message was about. Everything else you follow stays as it is.",
|
|
@@ -2684,6 +2819,7 @@
|
|
|
2684
2819
|
"page.waiting-for": "Waiting for you",
|
|
2685
2820
|
"page.warn-member": "Warn a member",
|
|
2686
2821
|
"page.we-have-sent-confirmation-link": "We have sent a confirmation link. Follow it to finish setting up your account.",
|
|
2822
|
+
"page.webhooks": "Webhooks",
|
|
2687
2823
|
"page.welcome-back": "Welcome back",
|
|
2688
2824
|
"page.what-board-does-schedule-whether": "What the board does on a schedule, and whether it is doing it.",
|
|
2689
2825
|
"page.what-each-control-worth": "What each control is worth",
|
|
@@ -2822,6 +2958,8 @@
|
|
|
2822
2958
|
"setting.antispam.upload_per_hour.label": "Uploads per hour",
|
|
2823
2959
|
"setting.board.description.description": "Used as the default meta description for the board index.",
|
|
2824
2960
|
"setting.board.description.label": "Board description",
|
|
2961
|
+
"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.",
|
|
2962
|
+
"setting.board.digest_lapsed_days.label": "Board digest: days away before a member counts as lapsed",
|
|
2825
2963
|
"setting.board.favicon.description": "The icon browser tabs, bookmarks and an installed shortcut show for this board. Uploaded, not typed. Left empty, an icon is generated from the board name and its theme colours.",
|
|
2826
2964
|
"setting.board.favicon.label": "Favicon",
|
|
2827
2965
|
"setting.board.install_banner.description": "Pins a dismissable bar to the bottom of small screens inviting the reader to add this board to their home screen, with an Install button that opens the browser prompt where one exists and brief directions where none does. It never shows inside the installed app, and dismissing it keeps it away on that device for a year. Off by default: turn it on while you want installs encouraged, and off again once the point is made.",
|
|
@@ -2918,6 +3056,8 @@
|
|
|
2918
3056
|
"setting.mail.transport.label": "How mail is sent",
|
|
2919
3057
|
"setting.marketplace.feed_url.description": "Where the daily catalog fetch and the Browse tab’s Refresh button read the marketplace feed from. The default is meith.dev’s own curated feed; point it at a self-hosted mirror serving the same /v1.json shape to run a private catalog instead. The board fetches this address itself — a member’s browser never does.",
|
|
2920
3058
|
"setting.marketplace.feed_url.label": "Catalog feed URL",
|
|
3059
|
+
"setting.moderation.flag_threshold.description": "How many different members must report the same visible post before the board holds it for a moderator to look at. 0 turns community flagging off. One member reporting the same post many times never trips it — the count is of distinct members.",
|
|
3060
|
+
"setting.moderation.flag_threshold.label": "Community flag threshold",
|
|
2921
3061
|
"setting.posting.edit_grace_seconds.description": "Seconds after posting during which an author fixing their own post leaves no \"edited by\" notice on it. 0 always shows the notice. A moderator editing somebody else's post is never silent, however soon it happens, and the revision history records every edit either way — this hides the line under the post, nothing else.",
|
|
2922
3062
|
"setting.posting.edit_grace_seconds.label": "Silent edit window",
|
|
2923
3063
|
"setting.posting.flood_seconds.description": "Minimum seconds between posts by one user. 0 disables the check. Users with \"bypass flood check\" are exempt.",
|
|
@@ -2956,6 +3096,8 @@
|
|
|
2956
3096
|
"setting.search.enabled.label": "Enable search",
|
|
2957
3097
|
"setting.search.flood_seconds.description": "Minimum seconds between searches per user. Replaces the per-group searchfloodtime permission, which could not obey the numeric combination rule — see docs/reference/mybb-parity.md.",
|
|
2958
3098
|
"setting.search.flood_seconds.label": "Search flood interval",
|
|
3099
|
+
"setting.search.language.description": "The Postgres text-search configuration used to stem posts as they are indexed and to stem the words a member searches for. Match it to the language the board is written in, so a search for one form of a word finds the others — the German configuration ties \"Häuser\" to \"Haus\", where English would leave them apart. \"No stemming\" indexes and matches whole words only, which is the safe choice for a board that mixes languages. Changing it schedules a background reindex: every post is rewritten under the new configuration by the search reindex task, a batch at a time, and stays findable under the old one until its turn comes.",
|
|
3100
|
+
"setting.search.language.label": "Search language",
|
|
2959
3101
|
"setting.search.min_word_length.description": "A search is refused unless at least one of its words is this long, so at 3 \"a good post\" runs and \"a b c\" does not. The short words are not dropped — they are still sent to the index, which drops the ones carrying no meaning on its own. Raise it if short words are what your expensive searches turn out to be.",
|
|
2960
3102
|
"setting.search.min_word_length.label": "Shortest word a search may rest on",
|
|
2961
3103
|
"setting.security.auth_event_retention_days.description": "How long the sign-in activity log holds an entry before the hourly prune drops it. 0 keeps every entry forever, which is the default: an audit trail that deletes itself without being asked is one you cannot rely on. Set a number of days where a retention policy says you must.",
|
|
@@ -2987,6 +3129,7 @@
|
|
|
2987
3129
|
"stats.replies": "{count, plural, one {# reply} other {# replies}}",
|
|
2988
3130
|
"stats.views": "{count, plural, one {# view} other {# views}}",
|
|
2989
3131
|
"subscription.announcementsOff": "Done — the board’s announcements are off. Nothing else has changed, and you can ask for them again from your notification preferences.",
|
|
3132
|
+
"subscription.boardDigestOff": "Done — your board activity digest is off. Everything else about your notifications is unchanged.",
|
|
2990
3133
|
"subscription.doneOne": "Done — you will not be notified about that any more.",
|
|
2991
3134
|
"subscription.emailsOff": "Done — subscription e-mails are off. Your subscriptions are unchanged, and you will still see them in your notifications.",
|
|
2992
3135
|
"subscription.followed": "Saved. You are following this.",
|
|
@@ -3147,6 +3290,8 @@
|
|
|
3147
3290
|
"userCpNav.usercp-avatar.title": "Avatar",
|
|
3148
3291
|
"userCpNav.usercp-contacts.blurb": "Who you follow, and whose posts you would rather not read.",
|
|
3149
3292
|
"userCpNav.usercp-contacts.title": "Buddies and ignored members",
|
|
3293
|
+
"userCpNav.usercp-drafts.blurb": "Threads and replies you started but never posted.",
|
|
3294
|
+
"userCpNav.usercp-drafts.title": "Drafts",
|
|
3150
3295
|
"userCpNav.usercp-options.blurb": "Your timezone, and how much of a thread fits on a page.",
|
|
3151
3296
|
"userCpNav.usercp-options.title": "Options",
|
|
3152
3297
|
"userCpNav.usercp-profile.blurb": "What other members see about you.",
|