@meith/i18n 0.8.0 → 0.10.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 +116 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meith/i18n",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.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": "LGPL-3.0-or-later",
|
|
6
6
|
"repository": {
|
package/src/catalogs/en.json
CHANGED
|
@@ -40,9 +40,12 @@
|
|
|
40
40
|
"accountForm.linked.unlink": "Unlink",
|
|
41
41
|
"accountForm.locked.reason": "Reason given: {reason}",
|
|
42
42
|
"accountForm.notifications.blurb": "Everything is always recorded in your notifications, whether or not you receive an e-mail about it.",
|
|
43
|
+
"accountForm.notifications.channels": "Tell me when…",
|
|
44
|
+
"accountForm.notifications.email": "E-mail",
|
|
43
45
|
"accountForm.notifications.legend": "Send me an e-mail when…",
|
|
44
46
|
"accountForm.notifications.markAllRead": "Mark all as read",
|
|
45
47
|
"accountForm.notifications.markRead": "Mark as read",
|
|
48
|
+
"accountForm.notifications.push": "Push",
|
|
46
49
|
"accountForm.notifications.submit": "Save preferences",
|
|
47
50
|
"accountForm.options.invisible": "Browse invisibly",
|
|
48
51
|
"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.",
|
|
@@ -77,6 +80,15 @@
|
|
|
77
80
|
"accountForm.profile.location": "Location",
|
|
78
81
|
"accountForm.profile.submit": "Save profile",
|
|
79
82
|
"accountForm.profile.website": "Website",
|
|
83
|
+
"accountForm.push.blocked": "This browser is blocking notifications. Allow them in its site settings, then come back.",
|
|
84
|
+
"accountForm.push.blurb": "A pushed notification travels through the push service your browser maker runs. That service learns when this board sends you something, and never what it says.",
|
|
85
|
+
"accountForm.push.failed": "This browser would not subscribe. Try again.",
|
|
86
|
+
"accountForm.push.heading": "This browser",
|
|
87
|
+
"accountForm.push.subscribe": "Push notifications to this browser",
|
|
88
|
+
"accountForm.push.subscribed": "This browser receives pushed notifications.",
|
|
89
|
+
"accountForm.push.unsubscribe": "Stop pushing to this browser",
|
|
90
|
+
"accountForm.push.unsubscribed": "This browser receives no pushed notifications.",
|
|
91
|
+
"accountForm.push.unsupported": "This browser cannot receive pushed notifications.",
|
|
80
92
|
"accountForm.rate.changeTitle": "Change your rating of {username}",
|
|
81
93
|
"accountForm.rate.justComment": "Just a comment",
|
|
82
94
|
"accountForm.rate.negative": "Negative",
|
|
@@ -464,6 +476,7 @@
|
|
|
464
476
|
"adminNav.admin-api-tokens.title": "API tokens",
|
|
465
477
|
"adminNav.admin-content-announcements.title": "Announcements",
|
|
466
478
|
"adminNav.admin-content-attachments.title": "Attachments",
|
|
479
|
+
"adminNav.admin-content-navigation.title": "Navigation",
|
|
467
480
|
"adminNav.admin-content.blurb": "Announcements, attachments, and the housekeeping around them.",
|
|
468
481
|
"adminNav.admin-content.title": "Content",
|
|
469
482
|
"adminNav.admin-forums.blurb": "The tree, each forum’s options, and the permission matrix.",
|
|
@@ -491,6 +504,43 @@
|
|
|
491
504
|
"adminNav.admin.blurb": "What is waiting, the board at a glance, and the latest activity.",
|
|
492
505
|
"adminNav.admin.title": "Overview",
|
|
493
506
|
"adminNav.plugin.blurb": "Every screen {name} adds to the panel.",
|
|
507
|
+
"adminNavigation.address": "Address",
|
|
508
|
+
"adminNavigation.addressHint": "A path on this board — /rules — or a full web address — https://example.com.",
|
|
509
|
+
"adminNavigation.audience": "Shown to",
|
|
510
|
+
"adminNavigation.audience.all": "Everyone",
|
|
511
|
+
"adminNavigation.audience.guests": "Signed-out visitors",
|
|
512
|
+
"adminNavigation.audience.members": "Signed-in members",
|
|
513
|
+
"adminNavigation.audience.staff": "Staff",
|
|
514
|
+
"adminNavigation.builtIn": "from the board",
|
|
515
|
+
"adminNavigation.custom": "added here",
|
|
516
|
+
"adminNavigation.groups": "Groups",
|
|
517
|
+
"adminNavigation.groupsHint": "Tick none to show the item to everyone the audience above admits. Tick some and only members of those groups see it.",
|
|
518
|
+
"adminNavigation.hidden": "hidden",
|
|
519
|
+
"adminNavigation.inside": "Inside",
|
|
520
|
+
"adminNavigation.label": "Label",
|
|
521
|
+
"adminNavigation.labelHint": "Left empty on one of the board’s own items, the item keeps its translated name.",
|
|
522
|
+
"adminNavigation.lede": "The menu across the top of every board page. The six items a new board starts with are ordinary rows here: rename them, reorder them, hide them, or delete them, and add links of your own beside them — to a chat server, a wiki, a shop, or anywhere else.",
|
|
523
|
+
"adminNavigation.newItem": "New menu item",
|
|
524
|
+
"adminNavigation.newTab": "Open in a new tab",
|
|
525
|
+
"adminNavigation.none": "None. The board renders no navigation menu at all.",
|
|
526
|
+
"adminNavigation.removeThis": "Remove this item",
|
|
527
|
+
"adminNavigation.shown": "Shown in the menu",
|
|
528
|
+
"adminNavigation.topLevel": "The top level",
|
|
529
|
+
"adminNavigation.tree.arrowsHint": "Use the arrows to move an item.",
|
|
530
|
+
"adminNavigation.tree.dragHint": "Drag an item by its handle, or use the arrows.",
|
|
531
|
+
"adminNavigation.tree.edit": "Edit {name}",
|
|
532
|
+
"adminNavigation.tree.heading": "The menu",
|
|
533
|
+
"adminNavigation.tree.help": "Dragging an item to the right puts it under the item above, where it becomes a sub-menu that opens when a reader hovers or tabs onto the parent. Sub-menus go one level deep.",
|
|
534
|
+
"adminNavigation.tree.moveHandle": "Move {name}",
|
|
535
|
+
"adminNavigation.tree.nudge.down": "Move {name} down",
|
|
536
|
+
"adminNavigation.tree.nudge.in": "Move {name} under the item above it",
|
|
537
|
+
"adminNavigation.tree.nudge.out": "Move {name} back to the top level",
|
|
538
|
+
"adminNavigation.tree.nudge.up": "Move {name} up",
|
|
539
|
+
"adminNavigation.tree.order.after": "after {after}",
|
|
540
|
+
"adminNavigation.tree.order.first": "first",
|
|
541
|
+
"adminNavigation.tree.placed": "{name} placed {where}, {order}.",
|
|
542
|
+
"adminNavigation.tree.where.topLevel": "at the top level",
|
|
543
|
+
"adminNavigation.tree.where.under": "under {parent}",
|
|
494
544
|
"adminPanel.badge.formats": "PNG, JPEG, WebP or SVG, up to {maxKib} KiB. The contents decide the format, not the file name.",
|
|
495
545
|
"adminPanel.badge.labelSr": "{label} badge",
|
|
496
546
|
"adminPanel.badge.noBadge": "No badge",
|
|
@@ -514,6 +564,7 @@
|
|
|
514
564
|
"adminPanel.mail.title": "How this board sends mail",
|
|
515
565
|
"adminPanel.password": "Password",
|
|
516
566
|
"adminPanel.plugin.advanced": " · advanced",
|
|
567
|
+
"adminPanel.plugin.clearFailures": "Clear failures and re-enable",
|
|
517
568
|
"adminPanel.plugin.disable": "Disable",
|
|
518
569
|
"adminPanel.plugin.empty": "empty",
|
|
519
570
|
"adminPanel.plugin.enable": "Enable",
|
|
@@ -608,8 +659,9 @@
|
|
|
608
659
|
"adminPlugins.ledeBefore": "Everything installable is named in",
|
|
609
660
|
"adminPlugins.migrationsUnknown": "This board could not be asked which plugin migrations have run, so the rows above do not say. On a board running on sample data there is no such table; on a real one, that is worth looking into.",
|
|
610
661
|
"adminPlugins.pendingMigrations": "{count, plural, one {# migration not applied — run community upgrade.} other {# migrations not applied — run community upgrade.}}",
|
|
611
|
-
"adminPlugins.
|
|
612
|
-
"adminPlugins.
|
|
662
|
+
"adminPlugins.recordedFailures": "{count, plural, one {# recorded failure across every instance of this board.} other {# recorded failures across every instance of this board.}}",
|
|
663
|
+
"adminPlugins.serverDisabled": "Switched off after repeated failures, and it stays off until an operator clears the record: {reason}",
|
|
664
|
+
"adminPlugins.uninstallHint": "There is no uninstall button, and that is deliberate: removing a plugin is pnpm remove, a line out of that file, and a redeploy. Run community plugin:purge first if its data should go too — that has to happen while the code is still installed, because it runs the plugin’s own onUninstall. A button that dropped a plugin’s rows and left its code running would leave the board in a state neither installing nor removing produces.",
|
|
613
665
|
"adminSecurity.everything": "Everything",
|
|
614
666
|
"adminSecurity.filter": "Filter",
|
|
615
667
|
"adminSecurity.kind": "Kind",
|
|
@@ -632,6 +684,9 @@
|
|
|
632
684
|
"adminSettings.lede": "Every setting this build has, with what it does. A value equal to its default is not stored, so changing a default in a later release reaches a board that never touched it.",
|
|
633
685
|
"adminSettings.matchCount": "{count, plural, one {# match} other {# matches}} for “{query}”, across every group.",
|
|
634
686
|
"adminSettings.noAddress": "Every link the board sends is built from it, so password resets and confirmations arrive carrying no link at all — they are polite and useless. Feeds and canonical URLs fall back to a localhost address. Set “Board address” below.",
|
|
687
|
+
"adminSettings.pushNoContact": "A push service is told who to contact about the traffic it carries, and this board has nobody to give it: the contact box below is empty, no mail-from address is set, and the board’s own address is not an https one. Fill in any of the three.",
|
|
688
|
+
"adminSettings.pushNoKeys": "This board has no usable VAPID key pair, so no push service will accept anything from it. Generate one with `community push:keys`, or paste a pair into the two boxes below. Nothing is pushed until you do, and members see no subscribe button.",
|
|
689
|
+
"adminSettings.pushNotLive": "Web push is on and nothing is being pushed",
|
|
635
690
|
"adminSettings.searchPlaceholder": "Search every group by name or description",
|
|
636
691
|
"adminSettings.settingCount": "{count, plural, one {# setting} other {# settings}} in {group}.",
|
|
637
692
|
"adminSettings.showAdvanced": "Show {count} advanced",
|
|
@@ -675,6 +730,8 @@
|
|
|
675
730
|
"adminSystem.searchIndexPending": "{count} not yet searchable",
|
|
676
731
|
"adminSystem.task.attachmentsSweep.description": "Deletes objects in the file store that nothing owns, and fails uploads whose re-encoding never finished. An object key is recorded before its bytes are written and forgotten when a row takes ownership, so what this collects is exactly what a crash between those two steps left behind — a question that is an indexed query here and a full bucket listing anywhere else. Purely subtractive, and bounded by a grace period, so an upload in flight is never collected out from under itself.",
|
|
677
732
|
"adminSystem.task.attachmentsSweep.title": "Collect abandoned attachment files",
|
|
733
|
+
"adminSystem.task.authEventsPrune.description": "Drops sign-in activity older than the retention the board is set to keep. Does nothing at all while that setting is 0, which is the default: the log is an audit trail, and one that expires without being asked to is worse than one that grows.",
|
|
734
|
+
"adminSystem.task.authEventsPrune.title": "Prune sign-in activity",
|
|
678
735
|
"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.",
|
|
679
736
|
"adminSystem.task.avatarsSweep.title": "Fail unfinished avatar uploads",
|
|
680
737
|
"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.",
|
|
@@ -895,6 +952,7 @@
|
|
|
895
952
|
"adminUser.banMember": "Ban this member",
|
|
896
953
|
"adminUser.banPasswordNote": "You will be asked for your password again. This revokes their sessions immediately.",
|
|
897
954
|
"adminUser.banned": "Banned. Their sessions have been revoked.",
|
|
955
|
+
"adminUser.clearSecondFactor": "Clear the second factor",
|
|
898
956
|
"adminUser.displayGroup": "Display group",
|
|
899
957
|
"adminUser.displayGroupHint": "Decides only the badge beside their name.",
|
|
900
958
|
"adminUser.email": "Email",
|
|
@@ -928,6 +986,11 @@
|
|
|
928
986
|
"adminUser.saveAccount": "Save account",
|
|
929
987
|
"adminUser.saveGroups": "Save groups",
|
|
930
988
|
"adminUser.saveState": "Save state",
|
|
989
|
+
"adminUser.secondFactor": "Second factor",
|
|
990
|
+
"adminUser.secondFactorCleared": "Cleared.",
|
|
991
|
+
"adminUser.secondFactorHeld": "This member signs in with an authenticator app as well as their password.",
|
|
992
|
+
"adminUser.secondFactorNotHeld": "This member has not set up an authenticator app.",
|
|
993
|
+
"adminUser.secondFactorNote": "For a member who has lost both their authenticator app and their recovery codes. Clearing it signs every one of their sessions out and leaves the account on its password alone, so satisfy yourself that you are talking to the member first. Asks for your password and your own code.",
|
|
931
994
|
"adminUser.sendTo": "Send to",
|
|
932
995
|
"adminUser.sendToHint": "A group means members who hold it as their primary group or as an additional one. The number beside each audience is how many members it would reach right now.",
|
|
933
996
|
"adminUser.staffNote": "Staff note",
|
|
@@ -1026,6 +1089,7 @@
|
|
|
1026
1089
|
"authEvent.password_reset": "Password reset",
|
|
1027
1090
|
"authEvent.recovery_code_used": "A recovery code was used to sign in",
|
|
1028
1091
|
"authEvent.recovery_codes_replaced": "Recovery codes replaced",
|
|
1092
|
+
"authEvent.second_factor_cleared": "Second factor cleared by staff",
|
|
1029
1093
|
"authEvent.second_factor_disabled": "Two-factor authentication turned off",
|
|
1030
1094
|
"authEvent.second_factor_enabled": "Two-factor authentication turned on",
|
|
1031
1095
|
"authEvent.second_factor_failed": "A wrong two-factor code was given",
|
|
@@ -1079,14 +1143,14 @@
|
|
|
1079
1143
|
"authMail.greeting": "Hello {username},",
|
|
1080
1144
|
"authMail.linkHours": "The link is valid for {hours} hours and can be used once.",
|
|
1081
1145
|
"authMail.linkMinutes": "The link is valid for {minutes} minutes and can be used once.",
|
|
1146
|
+
"authMail.reset.action": "Reset your password",
|
|
1082
1147
|
"authMail.reset.ignore": "If this was not you, ignore this message. Your password has not changed, and nothing happens until the link is used.",
|
|
1083
1148
|
"authMail.reset.intro": "Somebody — we hope you — asked to reset the password for your account on {board}.",
|
|
1084
|
-
"authMail.reset.link": "Reset your password: {link}",
|
|
1085
1149
|
"authMail.reset.noLink": "Open {board} and use the “forgot your password” form again once the board has its address configured; the link in this message could not be built.",
|
|
1086
1150
|
"authMail.reset.subject": "Reset your password",
|
|
1151
|
+
"authMail.verify.action": "Confirm your address",
|
|
1087
1152
|
"authMail.verify.ignore": "If you did not create this account, ignore this message. An unconfirmed account cannot be used.",
|
|
1088
1153
|
"authMail.verify.intro": "An account was created for this address on {board}. It cannot be used until the address is confirmed.",
|
|
1089
|
-
"authMail.verify.link": "Confirm your address: {link}",
|
|
1090
1154
|
"authMail.verify.noLink": "Open {board} and use the “resend confirmation” link on the sign-in page to get a working link.",
|
|
1091
1155
|
"authMail.verify.subject": "Confirm your account",
|
|
1092
1156
|
"authNotice.activated": "Your address is confirmed. You can sign in now.",
|
|
@@ -1413,6 +1477,8 @@
|
|
|
1413
1477
|
"error.accounts.address-already-using": "That is the address you are already using.",
|
|
1414
1478
|
"error.accounts.ban-expire-past": "A ban cannot expire in the past.",
|
|
1415
1479
|
"error.accounts.ban-filter-needs-pattern": "A ban filter needs a pattern.",
|
|
1480
|
+
"error.accounts.ban-filter-pattern-long": "A ban filter pattern may be at most {max} characters.",
|
|
1481
|
+
"error.accounts.ban-filter-too-many-wildcards": "A ban filter pattern may use at most {max} wildcards.",
|
|
1416
1482
|
"error.accounts.bio-length": "About me may be at most {max} characters.",
|
|
1417
1483
|
"error.accounts.board-asks-its-staff-for": "This board asks its staff for a code, so this cannot be turned off while you hold that access.",
|
|
1418
1484
|
"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.",
|
|
@@ -1478,6 +1544,7 @@
|
|
|
1478
1544
|
"error.app.board-keeps-signatures": "This board keeps no signatures.",
|
|
1479
1545
|
"error.app.board-manages-sign-ins-for-its": "This board manages sign-ins for its members.",
|
|
1480
1546
|
"error.app.board-offer-two-factor-authentication": "This board does not offer two-factor authentication.",
|
|
1547
|
+
"error.app.board-running-in-memory-navigation": "This board is running on in-memory sample data, so the navigation cannot be edited.",
|
|
1481
1548
|
"error.app.board-running-in-memory-sample-data": "This board is running on in-memory sample data, so it keeps no reputation.",
|
|
1482
1549
|
"error.app.board-running-in-memory-sample-data-10": "This board is running on in-memory sample data, so it has no signatures to save.",
|
|
1483
1550
|
"error.app.board-running-in-memory-sample-data-11": "This board is running on in-memory sample data, which is not indexed for search.",
|
|
@@ -1557,6 +1624,9 @@
|
|
|
1557
1624
|
"error.app.must-logged-report-anything": "You must be logged in to report anything.",
|
|
1558
1625
|
"error.app.must-logged-vote": "You must be logged in to vote.",
|
|
1559
1626
|
"error.app.name-member-choose-group-both": "Name a member or choose a group, not both.",
|
|
1627
|
+
"error.app.navigation-address-path-or-web-address": "Give a path on this board, starting with /, or a full http(s) web address.",
|
|
1628
|
+
"error.app.navigation-audience-unknown": "Choose who the item is shown to.",
|
|
1629
|
+
"error.app.navigation-item-go-further-direction": "That item cannot go any further in that direction.",
|
|
1560
1630
|
"error.app.password-right": "That password is not right.",
|
|
1561
1631
|
"error.app.poll-exist": "That poll does not exist.",
|
|
1562
1632
|
"error.app.post-exist": "That post does not exist.",
|
|
@@ -1623,6 +1693,10 @@
|
|
|
1623
1693
|
"error.db.members-moved-into-group-being": "Members cannot be moved into the group being deleted.",
|
|
1624
1694
|
"error.db.message-needs-body": "A message needs a body.",
|
|
1625
1695
|
"error.db.message-needs-subject": "A message needs a subject.",
|
|
1696
|
+
"error.db.navigation-item-needs-address": "A menu item needs an address.",
|
|
1697
|
+
"error.db.navigation-item-needs-label": "A menu item needs a label.",
|
|
1698
|
+
"error.db.navigation-item-parent-top-level": "A menu item can only sit under a top-level item.",
|
|
1699
|
+
"error.db.navigation-item-with-items-under": "An item with items under it cannot itself go under one.",
|
|
1626
1700
|
"error.db.one-these-accounts-banned-lift": "One of these accounts is banned. Lift the ban before merging.",
|
|
1627
1701
|
"error.db.prefix-needs-label": "A prefix needs a label.",
|
|
1628
1702
|
"error.db.question-needs-asked": "A question needs to be asked.",
|
|
@@ -1636,6 +1710,7 @@
|
|
|
1636
1710
|
"error.db.such-member": "No such member.",
|
|
1637
1711
|
"error.db.such-member-member-under-ban": "No such member, or the member is under a ban. Lift the ban first.",
|
|
1638
1712
|
"error.db.such-message": "No such message.",
|
|
1713
|
+
"error.db.such-navigation-item": "No such menu item.",
|
|
1639
1714
|
"error.db.such-promotion-rule": "No such promotion rule.",
|
|
1640
1715
|
"error.db.such-question": "No such question.",
|
|
1641
1716
|
"error.db.such-smiley": "No such smiley.",
|
|
@@ -1842,6 +1917,8 @@
|
|
|
1842
1917
|
"install.outcome.passwords": "Passwords are never sent back to this page, so any you typed are empty again — retype them.",
|
|
1843
1918
|
"install.password.hint": "At least 12 characters. Nothing on this board can reset it until mail works.",
|
|
1844
1919
|
"install.password.label": "Your password",
|
|
1920
|
+
"install.raced.inFlight": "Another install is already running against this database. Wait for it to finish, then reload this page.",
|
|
1921
|
+
"install.raced.sealed": "Another install sealed the board while this one was running. Nothing here was kept.",
|
|
1845
1922
|
"install.step.admin.detail": "Argon2id, the same registration path a member uses, then promoted.",
|
|
1846
1923
|
"install.step.admin.title": "Create the administrator",
|
|
1847
1924
|
"install.step.forum.detail": "A category and one forum inside it, so the index is not empty.",
|
|
@@ -1930,6 +2007,14 @@
|
|
|
1930
2007
|
"legal.page.privacy.title": "Privacy policy",
|
|
1931
2008
|
"legal.page.terms.footer": "Terms",
|
|
1932
2009
|
"legal.page.terms.title": "Terms of service",
|
|
2010
|
+
"mail.action.fallback": "If the button does not work, open this address in your browser:",
|
|
2011
|
+
"mail.boardFallback": "the forum",
|
|
2012
|
+
"mail.footer.account": "You are receiving this because you have an account on {board}.",
|
|
2013
|
+
"mail.footer.preferences": "Change which e-mails you receive",
|
|
2014
|
+
"mail.footer.preferencesNoLink": "Change which e-mails you receive from your notification preferences.",
|
|
2015
|
+
"mail.footer.sentBy": "Sent by {board}.",
|
|
2016
|
+
"mail.footer.unsubscribe": "Unsubscribe without signing in",
|
|
2017
|
+
"mail.notification.action": "View it on {board}",
|
|
1933
2018
|
"mailTest.action.failed": "The message could not be sent. {error} (Sent through: {configuration}.)",
|
|
1934
2019
|
"mailTest.action.sent": "A test message is on its way to {email}. If it does not arrive within a minute or two, check the spam folder and then the provider’s own log — the board has done everything it can see.",
|
|
1935
2020
|
"mailTest.boardFallback": "your board",
|
|
@@ -2057,13 +2142,13 @@
|
|
|
2057
2142
|
"notice.allRead": "All notifications marked as read.",
|
|
2058
2143
|
"notice.app.account-e-mail-address-send-test": "Your account has no e-mail address to send a test to.",
|
|
2059
2144
|
"notice.app.board-database-api": "This board has no database, so it has no API.",
|
|
2145
|
+
"notice.app.board-offering-web-push": "This board is not offering web push.",
|
|
2060
2146
|
"notice.app.board-reports": "This board has no reports.",
|
|
2061
2147
|
"notice.app.board-running-in-memory-sample-data": "This board is running on in-memory sample data, so it has no warnings.",
|
|
2062
2148
|
"notice.app.board-running-in-memory-sample-data-2": "This board is running on in-memory sample data, so it has no queue.",
|
|
2063
2149
|
"notice.app.board-running-in-memory-sample-data-3": "This board is running on in-memory sample data, so it has no thread tools.",
|
|
2064
2150
|
"notice.app.board-running-in-memory-sample-data-4": "This board is running on in-memory sample data, so it has no moderation tools.",
|
|
2065
2151
|
"notice.app.board-running-in-memory-sample-data-5": "This board is running on in-memory sample data, so it cannot take reports.",
|
|
2066
|
-
"notice.app.board-running-in-memory-sample-data-6": "This board is running on in-memory sample data, so it cannot accept posts.",
|
|
2067
2152
|
"notice.app.board-running-in-memory-sample-data-7": "This board is running on in-memory sample data, so it cannot accept edits.",
|
|
2068
2153
|
"notice.app.board-running-in-memory-sample-data-8": "This board is running on in-memory sample data, so it cannot accept changes.",
|
|
2069
2154
|
"notice.app.board-working-mail-configuration-there": "This board has no working mail configuration, so there is nothing to test. ",
|
|
@@ -2078,6 +2163,7 @@
|
|
|
2078
2163
|
"notice.app.notification-exist": "That notification does not exist.",
|
|
2079
2164
|
"notice.app.passkey-could-found": "That passkey could not be found.",
|
|
2080
2165
|
"notice.app.post-exist": "That post does not exist.",
|
|
2166
|
+
"notice.app.push-subscription-valid": "That push subscription is not valid.",
|
|
2081
2167
|
"notice.app.report-exist": "That report does not exist.",
|
|
2082
2168
|
"notice.app.session-could-found": "That session could not be found.",
|
|
2083
2169
|
"notice.app.session-could-identified-nothing-signed": "This session could not be identified, so nothing was signed out.",
|
|
@@ -2094,6 +2180,8 @@
|
|
|
2094
2180
|
"notice.app.warning-exist": "That warning does not exist.",
|
|
2095
2181
|
"notice.markedRead": "Marked as read.",
|
|
2096
2182
|
"notice.preferencesSaved": "Your notification preferences were saved.",
|
|
2183
|
+
"notice.pushSubscribed": "This browser will now receive pushed notifications.",
|
|
2184
|
+
"notice.pushUnsubscribed": "This browser will no longer receive pushed notifications.",
|
|
2097
2185
|
"notification.mail.boardFallback": "the forum",
|
|
2098
2186
|
"notification.mail.greeting": "Hello {username},",
|
|
2099
2187
|
"notification.pm.receipt.description": "Somebody opens a private message you sent with a read receipt requested. Raised once, on the first read.",
|
|
@@ -2258,6 +2346,7 @@
|
|
|
2258
2346
|
"page.moderator-log": "Moderator log",
|
|
2259
2347
|
"page.moderator-will-look-at-this": "A moderator will look at this. Your report is private.",
|
|
2260
2348
|
"page.my-forums": "My forums",
|
|
2349
|
+
"page.navigation": "Navigation",
|
|
2261
2350
|
"page.never-warned": "Never warned",
|
|
2262
2351
|
"page.new-announcement": "New announcement",
|
|
2263
2352
|
"page.new-thread": "New thread",
|
|
@@ -2561,6 +2650,7 @@
|
|
|
2561
2650
|
"setting.group.legal": "Legal",
|
|
2562
2651
|
"setting.group.mail": "Mail",
|
|
2563
2652
|
"setting.group.posting": "Posting",
|
|
2653
|
+
"setting.group.push": "Push",
|
|
2564
2654
|
"setting.group.registration": "Registration",
|
|
2565
2655
|
"setting.group.reputation": "Reputation",
|
|
2566
2656
|
"setting.group.search": "Search",
|
|
@@ -2597,6 +2687,14 @@
|
|
|
2597
2687
|
"setting.posting.max_length.label": "Maximum post length",
|
|
2598
2688
|
"setting.posting.thread_ratings_enabled.description": "Members with permission can give each thread one 1–5 rating.",
|
|
2599
2689
|
"setting.posting.thread_ratings_enabled.label": "Thread ratings enabled",
|
|
2690
|
+
"setting.push.contact.description": "A mailto: or https: address a push service can use to reach you when this board is sending it something it does not like. Left empty, the board sends the mail-from address, and failing that its own address — but only when that address is an https one. With none of the three, nothing is pushed.",
|
|
2691
|
+
"setting.push.contact.label": "Contact for the push service",
|
|
2692
|
+
"setting.push.enabled.description": "Members can ask this board to push a notification to a device, and the notifications screen grows a button that subscribes the browser they are reading on. Needs the two keys below. Off, no device is asked and no notification leaves by that route; what is already stored on the board stays, so switching it back on resumes where it left off.",
|
|
2693
|
+
"setting.push.enabled.label": "Offer web push",
|
|
2694
|
+
"setting.push.vapid_private_key.description": "The other half of the pair, and the half that signs. Stored on the board. Leave the box empty to keep the key already saved.",
|
|
2695
|
+
"setting.push.vapid_private_key.label": "VAPID private key",
|
|
2696
|
+
"setting.push.vapid_public_key.description": "The board identifies itself to a push service with this key, and every browser stores it when it subscribes. Generate the pair with `community push:keys`. Replacing it invalidates every subscription already stored, because the browsers hold the old one.",
|
|
2697
|
+
"setting.push.vapid_public_key.label": "VAPID public key",
|
|
2600
2698
|
"setting.registration.enabled.description": "Off closes the board to new members: the Register link goes, /register says so instead of offering a form, and the action behind it refuses a submission sent straight to it. Existing members sign in as before, the installer still creates the first administrator, and \"community user:create\" still works — closing the door is not the same as locking yourself out.",
|
|
2601
2699
|
"setting.registration.enabled.label": "Allow new registrations",
|
|
2602
2700
|
"setting.registration.method.description": "\"none\" logs the user straight in. \"email\" requires a link. \"admin\" queues the account for manual approval. \"both\" requires e-mail then admin.",
|
|
@@ -2621,6 +2719,8 @@
|
|
|
2621
2719
|
"setting.search.flood_seconds.label": "Search flood interval",
|
|
2622
2720
|
"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.",
|
|
2623
2721
|
"setting.search.min_word_length.label": "Shortest word a search may rest on",
|
|
2722
|
+
"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.",
|
|
2723
|
+
"setting.security.auth_event_retention_days.label": "Days of sign-in activity to keep",
|
|
2624
2724
|
"setting.security.lockout_minutes.description": "How long an account stays locked after too many failures. The window the counts above are measured over, and the one the per-address limit on the anti-spam screen shares.",
|
|
2625
2725
|
"setting.security.lockout_minutes.label": "Lockout duration (minutes)",
|
|
2626
2726
|
"setting.security.max_account_login_attempts.description": "The same count for one account across every address at once, which is what a guess spread over a botnet meets. Keep it well above the per-address number — it locks the real owner out too, which is the cost of it working at all. 0 disables it.",
|
|
@@ -2826,12 +2926,22 @@
|
|
|
2826
2926
|
"usercp.linkInvalid": "That confirmation link is no longer valid — it may have been used already, expired, or the address may have been taken in the meantime.",
|
|
2827
2927
|
"usercp.passwordChanged": "Your password has been changed. You are still signed in here; every other device has been signed out.",
|
|
2828
2928
|
"usercp.saved": "Saved.",
|
|
2929
|
+
"usercpMail.action": "Confirm the change",
|
|
2829
2930
|
"usercpMail.boardFallback": "the forum",
|
|
2830
2931
|
"usercpMail.greeting": "Hello,",
|
|
2831
2932
|
"usercpMail.ignore": "If this was not you, ignore this message. Nothing changes until the link is used.",
|
|
2832
2933
|
"usercpMail.intro": "Somebody — we hope you — asked to use this address for their account on {board}.",
|
|
2833
|
-
"usercpMail.link": "Confirm the change: {link}",
|
|
2834
2934
|
"usercpMail.noLink": "Open your user control panel on the board and follow the confirmation link there.",
|
|
2935
|
+
"usercpMail.notice.adopted": "The account on {board} that used this address now uses {email}.",
|
|
2936
|
+
"usercpMail.notice.adoptedAction": "Open {board}",
|
|
2937
|
+
"usercpMail.notice.adoptedSecure": "If this was not you, this address can no longer reset the account’s password. Ask the board’s staff to help you recover it.",
|
|
2938
|
+
"usercpMail.notice.adoptedSubject": "Your e-mail address was changed",
|
|
2939
|
+
"usercpMail.notice.nothingToDo": "If you made this change yourself, there is nothing to do. This message asks nothing of you.",
|
|
2940
|
+
"usercpMail.notice.requested": "Somebody — we hope you — asked to move the account on {board} that uses this address to {email}. Nothing changes until that address confirms it.",
|
|
2941
|
+
"usercpMail.notice.requestedAction": "Reset your password",
|
|
2942
|
+
"usercpMail.notice.requestedSecure": "If this was not you, somebody may be signed in to your account. Resetting the password ends every session on it.",
|
|
2943
|
+
"usercpMail.notice.requestedSecureNoLink": "If this was not you, somebody may be signed in to your account. Open the board and use the “forgot your password” form; resetting the password ends every session on it.",
|
|
2944
|
+
"usercpMail.notice.requestedSubject": "Your e-mail address is being changed",
|
|
2835
2945
|
"usercpMail.subject": "Confirm your new e-mail address",
|
|
2836
2946
|
"usercpMail.ttl": "The link is valid for one hour and can be used once.",
|
|
2837
2947
|
"warning.issued": "Warning issued. They are now on {points, plural, one {# point} other {# points}}.",
|