@meith/i18n 0.21.1 → 0.22.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meith/i18n",
3
- "version": "0.21.1",
3
+ "version": "0.22.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": {
@@ -3,6 +3,11 @@
3
3
  "accountForm.activity.detail": "{at} · {device} · {address}",
4
4
  "accountForm.activity.none": "Nothing recorded yet.",
5
5
  "accountForm.activity.title": "Recent security activity",
6
+ "accountForm.announcements.blurb": "You can turn this off again here, or from the link at the foot of any announcement. Nothing else the board sends you depends on it.",
7
+ "accountForm.announcements.description": "Occasional e-mails written by the board’s organisers and sent to everybody who has asked for them — a change of venue, a closure, something every member needs to know. Off unless you turn it on.",
8
+ "accountForm.announcements.legend": "Announcements from the organisers",
9
+ "accountForm.announcements.submit": "Save announcements",
10
+ "accountForm.announcements.title": "E-mail me the board’s announcements",
6
11
  "accountForm.avatar.choose": "Choose an image",
7
12
  "accountForm.avatar.failed": "That image could not be processed.",
8
13
  "accountForm.avatar.hint": "PNG or JPEG, up to {max} MB. It is scaled to fit {width}×{height} and re-encoded, which removes any metadata it carries — including where the photograph was taken.",
@@ -989,7 +994,7 @@
989
994
  "adminUser.displayGroupHint": "Decides only the badge beside their name.",
990
995
  "adminUser.email": "Email",
991
996
  "adminUser.emailHint": "Changing this does not re-verify it, and does not tell the member.",
992
- "adminUser.everyMember": "Every member with a verified address ({audience})",
997
+ "adminUser.everyMember": "Every member who has asked for announcements ({audience})",
993
998
  "adminUser.liftBan": "Lift this ban",
994
999
  "adminUser.lifted": "Lifted. They are back in the group they held when they were banned.",
995
1000
  "adminUser.mailPasswordNote": "You will be asked for your password again. An email cannot be unsent, and a mistake reaches everybody at once.",
@@ -1000,7 +1005,7 @@
1000
1005
  "adminUser.mergeNote": "You will be asked for your password again. There is no undo: everything this account ever posted becomes {username}’s, its sessions are destroyed, and the account is closed.",
1001
1006
  "adminUser.merged": "Merged. Everything now belongs to {username}, and this account has been closed.",
1002
1007
  "adminUser.message": "Message",
1003
- "adminUser.messageHint": "Plain text. It is sent as written — there is no template and no unsubscribe link, so keep it to things every member needs to know.",
1008
+ "adminUser.messageHint": "Plain text. It is sent as written — there is no template under a footer carrying the unsubscribe link every announcement has to have.",
1004
1009
  "adminUser.moveNextBatch": "Move the next batch",
1005
1010
  "adminUser.primaryGroup": "Primary group",
1006
1011
  "adminUser.primaryGroupHint": "Decides what they may do.",
@@ -1024,7 +1029,7 @@
1024
1029
  "adminUser.secondFactorNotHeld": "This member has not set up an authenticator app.",
1025
1030
  "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.",
1026
1031
  "adminUser.sendTo": "Send to",
1027
- "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.",
1032
+ "adminUser.sendToHint": "A group means members who hold it as their primary group or as an additional one. The number beside each audience counts only its members who have asked for announcements, so it is how many would hear from you right now.",
1028
1033
  "adminUser.staffNote": "Staff note",
1029
1034
  "adminUser.staffNoteHint": "Never shown to them. This is where the reasoning goes.",
1030
1035
  "adminUser.state.active": "Active",
@@ -1072,8 +1077,8 @@
1072
1077
  "adminUsers.lastSeenFrom": ", last seen from {address}",
1073
1078
  "adminUsers.lede": "Every criterion is combined, and every one is optional — an empty search is everybody. The filter is in the address bar, so this page can be bookmarked or handed to somebody else.",
1074
1079
  "adminUsers.massMailContinues": "A campaign that stops half way is continued, never restarted — restarting would mail everybody a second time.",
1075
- "adminUsers.massMailLede": "Sends one message to every member of a group. It goes only to addresses the board has verified — an unverified address is as often a typo, or somebody else’s mailbox, as it is the member’s.",
1076
- "adminUsers.massMailNoUnsubscribe": "There is no unsubscribe link and no per-member opt-out, so this is for things every member needs to know rather than for anything promotional.",
1080
+ "adminUsers.massMailLede": "Sends one message to every member of a group who has asked for the board’s announcements. It goes only to addresses the board has verified — an unverified address is as often a typo, or somebody else’s mailbox, as it is the member’s.",
1081
+ "adminUsers.massMailOptIn": "It reaches only members who asked for announcements, nobody else. Every message carries an unsubscribe link, and a member who uses it is out of every campaign that follows.",
1077
1082
  "adminUsers.massMailQueued": "Nothing is sent immediately. Messages are queued and go out as the scheduled tick drains them.",
1078
1083
  "adminUsers.memberLede": "#{id} · registered {registered}{lastSeen}{deleted}",
1079
1084
  "adminUsers.memberMeta": "{posts} · {threads} · {reputation} reputation · {warnings} · {email}",
@@ -1156,6 +1161,8 @@
1156
1161
  "authForm.passkey.signIn": "Sign in with a passkey",
1157
1162
  "authForm.passkey.waiting": "Waiting for your device…",
1158
1163
  "authForm.passwordHint": "{min, plural, one {At least # character.} other {At least # characters.}}",
1164
+ "authForm.register.announcements": "E-mail me the board’s announcements",
1165
+ "authForm.register.announcementsHint": "Optional, and off unless you tick it. Occasional e-mails from the organisers to everybody who asked for them. You can stop them at any time.",
1159
1166
  "authForm.register.challengeHint": "A question set by this board, to show you are not a script.",
1160
1167
  "authForm.register.honeypot": "Leave this field empty",
1161
1168
  "authForm.register.password": "Password",
@@ -2032,12 +2039,13 @@
2032
2039
  "install.password.label": "Your password",
2033
2040
  "install.raced.inFlight": "Another install is already running against this database. Wait for it to finish, then reload this page.",
2034
2041
  "install.raced.sealed": "Another install sealed the board while this one was running. Nothing here was kept.",
2042
+ "install.schema.missing": "The database does not have every table this board needs. Migrations run before the board serves anything — as `community migrate` in the deploy build command, or from the container entrypoint. Run that against this database and reload this page.",
2035
2043
  "install.step.admin.detail": "Argon2id, the same registration path a member uses, then promoted.",
2036
2044
  "install.step.admin.title": "Create the administrator",
2037
2045
  "install.step.forum.detail": "A category and one forum inside it, so the index is not empty.",
2038
2046
  "install.step.forum.title": "Create a first forum",
2039
- "install.step.migrate.detail": "Creates every table, index and seeded usergroup. Forward-only.",
2040
- "install.step.migrate.title": "Apply migrations",
2047
+ "install.step.migrate.detail": "Confirms every table is there. Migrations run before the board starts.",
2048
+ "install.step.migrate.title": "Check the schema",
2041
2049
  "install.step.seal.detail": "Irreversible. /install answers 404 from here on.",
2042
2050
  "install.step.seal.title": "Disable the installer",
2043
2051
  "install.step.settings.detail": "The only settings the installer writes. Everything else has a default and a screen.",
@@ -2125,6 +2133,9 @@
2125
2133
  "mail.action.fallback": "If the button does not work, open this address in your browser:",
2126
2134
  "mail.boardFallback": "the forum",
2127
2135
  "mail.footer.account": "You are receiving this because you have an account on {board}.",
2136
+ "mail.footer.announcementsConsent": "You are receiving this because you asked the board for its announcements.",
2137
+ "mail.footer.announcementsNoLink": "Stop these announcements from your notification preferences.",
2138
+ "mail.footer.announcementsStop": "Stop these announcements",
2128
2139
  "mail.footer.preferences": "Change which e-mails you receive",
2129
2140
  "mail.footer.preferencesNoLink": "Change which e-mails you receive from your notification preferences.",
2130
2141
  "mail.footer.sentBy": "Sent by {board}.",
@@ -2256,6 +2267,7 @@
2256
2267
  "nav.unanswered": "Unanswered",
2257
2268
  "nav.userCp": "Your control panel",
2258
2269
  "notice.allRead": "All notifications marked as read.",
2270
+ "notice.announcementsSaved": "Saved — the board will e-mail you its announcements only while you ask for them.",
2259
2271
  "notice.app.account-e-mail-address-send-test": "Your account has no e-mail address to send a test to.",
2260
2272
  "notice.app.board-database-api": "This board has no database, so it has no API.",
2261
2273
  "notice.app.board-offering-web-push": "This board is not offering web push.",
@@ -2607,6 +2619,7 @@
2607
2619
  "page.totals-rolled-up-by-scheduled": "The totals are rolled up by a scheduled task, and it has not run.",
2608
2620
  "page.unsubscribe": "Unsubscribe",
2609
2621
  "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.",
2622
+ "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.",
2610
2623
  "page.unsubscribe.targetScope": "This will stop notifications about the thread or forum this message was about. Everything else you follow stays as it is.",
2611
2624
  "page.upgrade-pending": "Upgrade pending.",
2612
2625
  "page.username-contains": "Username contains",
@@ -2881,7 +2894,7 @@
2881
2894
  "setting.reputation.min_posts_to_give.label": "Posts required before rating",
2882
2895
  "setting.search.enabled.description": "Off takes the Search link out of the board navigation, replaces /search and any results page still linked to with a line saying so, and answers GET /api/v1/search with a 403. The index is kept and goes on being maintained, so switching it back on needs no reindex.",
2883
2896
  "setting.search.enabled.label": "Enable search",
2884
- "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/mybb-parity.md.",
2897
+ "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.",
2885
2898
  "setting.search.flood_seconds.label": "Search flood interval",
2886
2899
  "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.",
2887
2900
  "setting.search.min_word_length.label": "Shortest word a search may rest on",
@@ -2913,6 +2926,7 @@
2913
2926
  "stats.posts": "{count, plural, one {# post} other {# posts}}",
2914
2927
  "stats.replies": "{count, plural, one {# reply} other {# replies}}",
2915
2928
  "stats.views": "{count, plural, one {# view} other {# views}}",
2929
+ "subscription.announcementsOff": "Done — the board’s announcements are off. Nothing else has changed, and you can ask for them again from your notification preferences.",
2916
2930
  "subscription.doneOne": "Done — you will not be notified about that any more.",
2917
2931
  "subscription.emailsOff": "Done — subscription e-mails are off. Your subscriptions are unchanged, and you will still see them in your notifications.",
2918
2932
  "subscription.followed": "Saved. You are following this.",