@meith/i18n 0.15.0 → 0.16.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.15.0",
3
+ "version": "0.16.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": {
@@ -146,6 +146,12 @@
146
146
  "admin.none": "— none —",
147
147
  "admin.remove": "Remove",
148
148
  "admin.saved": "Saved.",
149
+ "admin.undo": "Undo",
150
+ "admin.undoExpired": "This undo has expired, was already used, or belongs to another admin.",
151
+ "admin.undoInvalid": "The undo request is invalid.",
152
+ "admin.undoSucceeded": "The admin action was undone.",
153
+ "admin.undoUnavailable": "Undo is unavailable while the board uses sample data.",
154
+ "admin.undoUntil": "Undo is available until {time}.",
149
155
  "adminAction.codeReplayed": "That code has been used already. Wait for the next one.",
150
156
  "adminAction.codeWrong": "That code is not right.",
151
157
  "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.",
@@ -1012,6 +1018,20 @@
1012
1018
  "adminUsers.ban": "Ban",
1013
1019
  "adminUsers.banned": "Banned",
1014
1020
  "adminUsers.bannedStateLede": "This member is banned. Lift the ban below to change their state — flipping the column here would leave the ban record active.",
1021
+ "adminUsers.bulkAction": "Bulk action",
1022
+ "adminUsers.bulkApply": "Apply to selected",
1023
+ "adminUsers.bulkBan": "Ban selected",
1024
+ "adminUsers.bulkBanned": "Selected members were banned.",
1025
+ "adminUsers.bulkChoose": "Choose a bulk action.",
1026
+ "adminUsers.bulkGroup": "Add selected to a secondary group",
1027
+ "adminUsers.bulkGrouped": "Selected members were added to the group.",
1028
+ "adminUsers.bulkInvalid": "Select between 1 and 500 members.",
1029
+ "adminUsers.bulkPrune": "Add selected to prune confirmation",
1030
+ "adminUsers.bulkReason": "Shared staff reason",
1031
+ "adminUsers.bulkSelect": "Select {username}",
1032
+ "adminUsers.bulkSelectPage": "Select all members on this page",
1033
+ "adminUsers.bulkSelf": "You cannot include your own account in this bulk action.",
1034
+ "adminUsers.bulkStale": "One or more selected accounts no longer exist or are closed. Refresh and try again.",
1015
1035
  "adminUsers.clear": "Clear",
1016
1036
  "adminUsers.deleted": "deleted",
1017
1037
  "adminUsers.edit": "Edit",
@@ -1054,6 +1074,7 @@
1054
1074
  "adminUsers.pruneLede": "Closes dormant accounts in batches. It will never touch anybody who has posted — including posts still held for approval or already removed — anybody in a staff group or any group carrying staff powers, any forum moderator, or a banned account. Those are exclusions rather than options, because closing one of them does damage a date filter cannot justify.",
1055
1075
  "adminUsers.pruneMemberMeta": "— {email}, registered {date}",
1056
1076
  "adminUsers.pruneNoMatches": "Nothing matches. Every account registered before that date has written something, is staff, moderates a forum, or is banned.",
1077
+ "adminUsers.pruneReview": "Review selected accounts",
1057
1078
  "adminUsers.search": "Search",
1058
1079
  "adminUsers.sharedNetwork": "{count, plural, one {# other account on the same network. A household, an office and a campus all look like this.} other {# other accounts on the same network. A household, an office and a campus all look like this.}}",
1059
1080
  "adminUsers.shownToMember": "Shown to them: {reason}",
@@ -1347,6 +1368,9 @@
1347
1368
  "composer.attachment.uploading": "Uploading…",
1348
1369
  "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.",
1349
1370
  "composer.attachments.label": "Attachments",
1371
+ "composer.autosave.failed": "Autosave failed. Use Save draft to keep this version on the server.",
1372
+ "composer.autosave.saved": "Saved just now.",
1373
+ "composer.autosave.saving": "Saving…",
1350
1374
  "composer.draftSaved": "Draft saved.",
1351
1375
  "composer.edit.delete": "Delete this post",
1352
1376
  "composer.edit.deleteBlurb": "Deleting hides this post from the thread. A moderator can put it back.",
@@ -1387,6 +1411,10 @@
1387
1411
  "composer.newThread.noPrefix": "None",
1388
1412
  "composer.newThread.option": "Option {number}",
1389
1413
  "composer.newThread.optional": "Optional",
1414
+ "composer.newThread.pollChoices": "Options each member may pick",
1415
+ "composer.newThread.pollChoicesHint": "1 for a single choice, or 0 for no limit.",
1416
+ "composer.newThread.pollPublic": "Show who voted for what",
1417
+ "composer.newThread.pollRevote": "Let members change their vote",
1390
1418
  "composer.newThread.prefix": "Prefix",
1391
1419
  "composer.newThread.prefixOptional": "Prefix (optional)",
1392
1420
  "composer.newThread.question": "Question",
@@ -1400,6 +1428,9 @@
1400
1428
  "composer.preview": "Preview",
1401
1429
  "composer.previewEmpty": "Nothing to preview yet.",
1402
1430
  "composer.previewFailed": "The preview could not be rendered. Your post is untouched — switch back to Write.",
1431
+ "composer.recovery.available": "A newer unsent version was recovered from this browser.",
1432
+ "composer.recovery.discard": "Discard",
1433
+ "composer.recovery.restore": "Restore",
1403
1434
  "composer.rendering": "Rendering…",
1404
1435
  "composer.reply.draftSaved": "Draft saved",
1405
1436
  "composer.reply.quick": "Quick reply",
@@ -1827,13 +1858,24 @@
1827
1858
  "error.moderation.warning-type-exist": "That warning type does not exist.",
1828
1859
  "error.moderation.whole-thread-move-instead-splitting": "That is the whole thread. Move it instead of splitting it.",
1829
1860
  "error.notFound": "That page could not be found.",
1861
+ "error.polls.already-voted": "You have already voted in this poll.",
1862
+ "error.polls.choice-limit": "A poll may allow between 1 and {max} choices, or no limit.",
1863
+ "error.polls.choose-at-most": "Choose at most {max} options.",
1864
+ "error.polls.choose-option": "Choose at least one option.",
1830
1865
  "error.polls.choose-rating-from-1-5": "Choose a rating from 1 to 5.",
1866
+ "error.polls.edit-poll": "You may not edit this poll.",
1867
+ "error.polls.edit-window": "A poll may only be edited within {minutes} minutes of being posted.",
1831
1868
  "error.polls.option-count": "A poll needs 2–{max} options.",
1832
1869
  "error.polls.option-length": "A poll option may be at most {max} characters.",
1870
+ "error.polls.option-not-on-poll": "That option is not on this poll.",
1871
+ "error.polls.poll-closed": "That poll is closed.",
1833
1872
  "error.polls.poll-closed-already-voted": "That poll is closed or you have already voted.",
1873
+ "error.polls.poll-exist": "That poll does not exist.",
1834
1874
  "error.polls.poll-must-close-future": "A poll must close in the future.",
1835
1875
  "error.polls.poll-options-must-distinct": "Poll options must be distinct.",
1876
+ "error.polls.public-after-voting": "Voters cannot be made public once voting has started.",
1836
1877
  "error.polls.question-length": "A poll question must be 1–{max} characters.",
1878
+ "error.polls.remove-voted-option": "An option that already has votes cannot be removed.",
1837
1879
  "error.polls.thread-exist": "That thread does not exist.",
1838
1880
  "error.polls.thread-ratings-switched-off": "Thread ratings are switched off.",
1839
1881
  "error.polls.vote-polls": "You may not vote in polls.",
@@ -2050,6 +2092,8 @@
2050
2092
  "installPreflight.warning.other": "You can install without resolving those. Nothing will fail at the time — which is what makes them worth reading.",
2051
2093
  "legal.page.privacy.footer": "Privacy",
2052
2094
  "legal.page.privacy.title": "Privacy policy",
2095
+ "legal.page.rules.footer": "Rules & FAQ",
2096
+ "legal.page.rules.title": "Rules & FAQ",
2053
2097
  "legal.page.terms.footer": "Terms",
2054
2098
  "legal.page.terms.title": "Terms of service",
2055
2099
  "mail.action.fallback": "If the button does not work, open this address in your browser:",
@@ -2295,6 +2339,12 @@
2295
2339
  "offline.kicker": "Offline",
2296
2340
  "offline.logIn": "Log in",
2297
2341
  "offline.title": "The board is closed",
2342
+ "onboarding.dismiss": "Dismiss",
2343
+ "onboarding.firstPost.cta": "Read the rules & FAQ",
2344
+ "onboarding.firstPost.message": "Before you post, here's a quick heads-up.",
2345
+ "onboarding.profile.cta": "Complete your profile",
2346
+ "onboarding.profile.message": "Add a photo and a short bio so other members know who they're talking to.",
2347
+ "onboarding.welcome.message": "Welcome! Have a look around, and post whenever you're ready.",
2298
2348
  "page.account-security": "Account security",
2299
2349
  "page.add-forum": "Add a forum",
2300
2350
  "page.add-group": "Add a group",
@@ -2337,6 +2387,7 @@
2337
2387
  "page.create-account": "Create account",
2338
2388
  "page.create-account-2": "Create your account",
2339
2389
  "page.custom-directives": "Custom directives",
2390
+ "page.edit-poll": "Edit poll",
2340
2391
  "page.edit-post": "Edit post",
2341
2392
  "page.email-cannot-be-unsent": "An email cannot be unsent.",
2342
2393
  "page.email-contains": "Email contains",
@@ -2468,6 +2519,7 @@
2468
2519
  "page.required-without-it-prune-matches": "Required. Without it a prune matches everybody.",
2469
2520
  "page.reset-password": "Reset password",
2470
2521
  "page.reset-password-2": "Reset your password",
2522
+ "page.rules-faq": "Rules & FAQ",
2471
2523
  "page.run-it": "Run it",
2472
2524
  "page.running-this-server": "Running on this server",
2473
2525
  "page.scheduled-tasks": "Scheduled tasks",
@@ -2550,8 +2602,30 @@
2550
2602
  "page.write-message": "Write a message",
2551
2603
  "panel.otherPanels": "Other panels",
2552
2604
  "panel.sections": "Sections",
2605
+ "pollEdit.allowRevote": "Let members change their vote",
2606
+ "pollEdit.back": "Back to the thread",
2607
+ "pollEdit.closesAt": "Closing time",
2608
+ "pollEdit.closesAtHint": "Times are UTC. Leave it empty for a poll that stays open.",
2609
+ "pollEdit.lede": "Options may be added at any time. One that already has votes cannot be removed.",
2610
+ "pollEdit.maxOptions": "Options each member may pick",
2611
+ "pollEdit.maxOptionsHint": "1 for a single choice, or 0 for no limit.",
2612
+ "pollEdit.option": "Option {number}",
2613
+ "pollEdit.optionEmpty": "No votes yet. Clear the label to remove it.",
2614
+ "pollEdit.optionVoted": "{count, plural, one {# vote} other {# votes}}. It can no longer be removed.",
2615
+ "pollEdit.publicVotes": "Show who voted for what",
2616
+ "pollEdit.publicVotesHint": "It cannot be switched on once voting has started.",
2617
+ "pollEdit.question": "Question",
2618
+ "pollEdit.save": "Save poll",
2619
+ "pollForm.changeVote": "Change your vote",
2620
+ "pollForm.chooseAny": "Choose as many options as you like.",
2621
+ "pollForm.chooseUpTo": "Choose up to {max} options.",
2622
+ "pollForm.closed": "Voting has closed.",
2623
+ "pollForm.edit": "Edit poll",
2553
2624
  "pollForm.label": "Poll",
2625
+ "pollForm.moreVoters": "and {count, plural, one {# other} other {# others}}",
2626
+ "pollForm.publicNotice": "Your name is shown beside what you vote for.",
2554
2627
  "pollForm.vote": "Vote",
2628
+ "pollForm.votedBy": "Voted for by {names}",
2555
2629
  "pollForm.votes": "{count, plural, one {# vote} other {# votes}}",
2556
2630
  "postForm.backToForum": "Back to {forum}",
2557
2631
  "postForm.backToThread": "Back to the thread",
@@ -2559,6 +2633,17 @@
2559
2633
  "postForm.editPost": "Edit post",
2560
2634
  "postForm.newThread": "Post a new thread in {forum}",
2561
2635
  "postForm.reply": "Reply to {thread}",
2636
+ "postHistory.back": "Back to post",
2637
+ "postHistory.comparePrevious": "Compare with previous",
2638
+ "postHistory.comparing": "Comparing revision {from} with {to}",
2639
+ "postHistory.confirmRollback": "I understand this creates a new revision",
2640
+ "postHistory.current": "Current version",
2641
+ "postHistory.editedBy": "By {username}, {date}",
2642
+ "postHistory.lede": "See what changed and who made each edit.",
2643
+ "postHistory.revision": "Revision {revision}",
2644
+ "postHistory.revisions": "All revisions",
2645
+ "postHistory.rollback": "Restore this version",
2646
+ "postHistory.title": "Post revision history",
2562
2647
  "presence.invisible": "{count, plural, one {# browsing invisibly.} other {# browsing invisibly.}}",
2563
2648
  "presence.reading": "Reading {title}",
2564
2649
  "presence.somewhere": "Somewhere on the board",
@@ -2639,8 +2724,8 @@
2639
2724
  "setting.antispam.upload_per_hour.label": "Uploads per hour",
2640
2725
  "setting.board.description.description": "Used as the default meta description for the board index.",
2641
2726
  "setting.board.description.label": "Board description",
2642
- "setting.board.legacy_redirects.description": "Answer MyBB addresses — showthread.php, forumdisplay.php, member.php, index.php, and the rewritten Thread-Title-91, Thread-Title--4102 and Forum-Name-3 forms — with a permanent redirect (308) to the imported content. Needs an import: the redirect is a lookup in the legacy id map.",
2643
- "setting.board.legacy_redirects.label": "Redirect old MyBB URLs",
2727
+ "setting.board.legacy_redirects.description": "Answer legacy addresses — MyBB’s showthread.php forms and rewritten routes, plus phpBB’s viewtopic.php, viewforum.php and memberlist.php — with a permanent redirect (308) to the imported content. Needs an import: the redirect is a lookup in the legacy id map.",
2728
+ "setting.board.legacy_redirects.label": "Redirect old forum URLs",
2644
2729
  "setting.board.logo_alt.description": "What a screen reader announces in place of the logo. Leave empty to use the board name, which is usually what the logo says anyway.",
2645
2730
  "setting.board.logo_alt.label": "Logo alt text",
2646
2731
  "setting.board.logo_dark.description": "Used when the reader is in dark mode. Falls back to the light one.",
@@ -2703,6 +2788,8 @@
2703
2788
  "setting.group.security": "Security",
2704
2789
  "setting.legal.privacy.description": "Markdown, published at /privacy and linked from the footer. Emptied, the page and the link go. It ships as a template describing what this software does by default — your host, your mail provider and anything you have added are yours to describe.",
2705
2790
  "setting.legal.privacy.label": "Privacy policy",
2791
+ "setting.legal.rules.description": "Markdown, published at /rules and linked from the footer. Left empty by default — a board explains itself in its own terms, not a template. Once published, the first-post onboarding guidance links new members to it.",
2792
+ "setting.legal.rules.label": "Rules & FAQ",
2706
2793
  "setting.legal.terms.description": "Markdown, published at /terms and linked from the footer. Registration asks the visitor to accept it before the account is created, so emptying this box takes the page, the footer link and the checkbox away together. What ships is a template written to be replaced: read it, make it say what your community actually does, and take advice on it if it matters.",
2707
2794
  "setting.legal.terms.label": "Terms of service",
2708
2795
  "setting.mail.from.description": "The address every message comes from. It must be on a domain the provider has verified — a sender the provider does not recognise is rejected outright, and the rejection is not retried because it would fail identically every time.",