@meith/i18n 0.14.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.14.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.",
@@ -227,7 +233,7 @@
227
233
  "adminContent.directive.block": "Block",
228
234
  "adminContent.directive.name": "Name",
229
235
  "adminContent.directive.nameHint": "1–16 letters or digits. Written {block} as a block, or {inline} inline.",
230
- "adminContent.directive.namePlaceholder": "spoiler",
236
+ "adminContent.directive.namePlaceholder": "note",
231
237
  "adminContent.directive.note": "Note",
232
238
  "adminContent.directive.noteHint": "For you. Never shown to members.",
233
239
  "adminContent.enabled": "Enabled",
@@ -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}",
@@ -1344,8 +1365,12 @@
1344
1365
  "board.warnings.item": "{title} — {count, plural, one {# point} other {# points}}",
1345
1366
  "board.warnings.standing": "{points, plural, one {# point} other {# points}}{threshold, select, none {. No threshold reached.} other { — {threshold} at {thresholdPoints}.}}",
1346
1367
  "board.warnings.title": "Warnings for {username}",
1368
+ "composer.attachment.uploading": "Uploading…",
1347
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.",
1348
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…",
1349
1374
  "composer.draftSaved": "Draft saved.",
1350
1375
  "composer.edit.delete": "Delete this post",
1351
1376
  "composer.edit.deleteBlurb": "Deleting hides this post from the thread. A moderator can put it back.",
@@ -1354,6 +1379,7 @@
1354
1379
  "composer.edit.restoreBlurb": "This post is deleted. Restoring puts it back in the thread and back into the board’s counts.",
1355
1380
  "composer.edit.submit": "Save changes",
1356
1381
  "composer.formatting": "Formatting",
1382
+ "composer.help.attachment": "places an uploaded file inline; the toolbar button inserts it",
1357
1383
  "composer.help.bold": "bold",
1358
1384
  "composer.help.codeBlock": "a code block, closed by another ```",
1359
1385
  "composer.help.codeInline": "code, inline",
@@ -1361,10 +1387,13 @@
1361
1387
  "composer.help.italic": "italic",
1362
1388
  "composer.help.link": "a link",
1363
1389
  "composer.help.list": "a list; 1. for a numbered one",
1390
+ "composer.help.mention": "mentions a member; type a few letters for suggestions",
1364
1391
  "composer.help.note": "A single Return is a line break, exactly as you typed it. HTML is shown as text, never rendered.",
1365
1392
  "composer.help.quote": "a quote",
1393
+ "composer.help.spoiler": "a spoiler, hidden until clicked",
1366
1394
  "composer.help.struck": "struck out",
1367
1395
  "composer.help.summary": "Formatting help",
1396
+ "composer.mention.suggestions": "Mention suggestions",
1368
1397
  "composer.message": "Message",
1369
1398
  "composer.multiquote.addToReply": "Add to reply",
1370
1399
  "composer.multiquote.added": "Added to multi-quote — {count, plural, =0 {nothing selected} one {# post selected} other {# posts selected}}.",
@@ -1382,6 +1411,10 @@
1382
1411
  "composer.newThread.noPrefix": "None",
1383
1412
  "composer.newThread.option": "Option {number}",
1384
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",
1385
1418
  "composer.newThread.prefix": "Prefix",
1386
1419
  "composer.newThread.prefixOptional": "Prefix (optional)",
1387
1420
  "composer.newThread.question": "Question",
@@ -1390,10 +1423,14 @@
1390
1423
  "composer.notifyReplies": "Notify me of replies",
1391
1424
  "composer.placeholder.bold": "bold text",
1392
1425
  "composer.placeholder.italic": "italic text",
1426
+ "composer.placeholder.spoiler": "hidden text",
1393
1427
  "composer.placeholder.struck": "struck out",
1394
1428
  "composer.preview": "Preview",
1395
1429
  "composer.previewEmpty": "Nothing to preview yet.",
1396
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",
1397
1434
  "composer.rendering": "Rendering…",
1398
1435
  "composer.reply.draftSaved": "Draft saved",
1399
1436
  "composer.reply.quick": "Quick reply",
@@ -1404,6 +1441,7 @@
1404
1441
  "composer.thanks.count": "{count, plural, one {person has thanked this} other {people have thanked this}}",
1405
1442
  "composer.thanks.thanked": "Thanked",
1406
1443
  "composer.thanks.thanks": "Thanks",
1444
+ "composer.tool.attachment": "Insert attachment",
1407
1445
  "composer.tool.bold": "Bold",
1408
1446
  "composer.tool.bulletedList": "Bulleted list",
1409
1447
  "composer.tool.code": "Code",
@@ -1412,6 +1450,7 @@
1412
1450
  "composer.tool.link": "Link",
1413
1451
  "composer.tool.numberedList": "Numbered list",
1414
1452
  "composer.tool.quote": "Quote",
1453
+ "composer.tool.spoiler": "Spoiler",
1415
1454
  "composer.tool.strikethrough": "Strikethrough",
1416
1455
  "composer.toolShortcut": "{label} (Ctrl+{key})",
1417
1456
  "composer.write": "Write",
@@ -1708,6 +1747,7 @@
1708
1747
  "error.attachments.too-large": "“{name}” is {size}, over the {limit} limit.",
1709
1748
  "error.attachments.too-many-pixels": "“{name}” is {width}×{height}, over the {max} megapixel limit.",
1710
1749
  "error.attachments.too-short": "“{name}” is too short to be a file of any type this board accepts.",
1750
+ "error.attachments.upload-failed": "That file could not be uploaded.",
1711
1751
  "error.avatars.avatar-must-png-jpeg": "An avatar must be a PNG or a JPEG.",
1712
1752
  "error.avatars.give-reason-member-shown": "Give a reason. The member is shown it.",
1713
1753
  "error.avatars.moderator-locked-avatar-so-changed": "A moderator has locked your avatar, so it cannot be changed.",
@@ -1818,13 +1858,24 @@
1818
1858
  "error.moderation.warning-type-exist": "That warning type does not exist.",
1819
1859
  "error.moderation.whole-thread-move-instead-splitting": "That is the whole thread. Move it instead of splitting it.",
1820
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.",
1821
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.",
1822
1868
  "error.polls.option-count": "A poll needs 2–{max} options.",
1823
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.",
1824
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.",
1825
1874
  "error.polls.poll-must-close-future": "A poll must close in the future.",
1826
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.",
1827
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.",
1828
1879
  "error.polls.thread-exist": "That thread does not exist.",
1829
1880
  "error.polls.thread-ratings-switched-off": "Thread ratings are switched off.",
1830
1881
  "error.polls.vote-polls": "You may not vote in polls.",
@@ -2041,6 +2092,8 @@
2041
2092
  "installPreflight.warning.other": "You can install without resolving those. Nothing will fail at the time — which is what makes them worth reading.",
2042
2093
  "legal.page.privacy.footer": "Privacy",
2043
2094
  "legal.page.privacy.title": "Privacy policy",
2095
+ "legal.page.rules.footer": "Rules & FAQ",
2096
+ "legal.page.rules.title": "Rules & FAQ",
2044
2097
  "legal.page.terms.footer": "Terms",
2045
2098
  "legal.page.terms.title": "Terms of service",
2046
2099
  "mail.action.fallback": "If the button does not work, open this address in your browser:",
@@ -2061,6 +2114,7 @@
2061
2114
  "mailTest.subject": "Test message",
2062
2115
  "markdown.quote.attribution": "{author} wrote:",
2063
2116
  "markdown.quote.view-post": "View post",
2117
+ "markdown.spoiler.label": "Spoiler",
2064
2118
  "message.deletedMember": "A deleted member",
2065
2119
  "message.noSubject": "(no subject)",
2066
2120
  "message.notRead": "Not read yet",
@@ -2285,6 +2339,12 @@
2285
2339
  "offline.kicker": "Offline",
2286
2340
  "offline.logIn": "Log in",
2287
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.",
2288
2348
  "page.account-security": "Account security",
2289
2349
  "page.add-forum": "Add a forum",
2290
2350
  "page.add-group": "Add a group",
@@ -2327,6 +2387,7 @@
2327
2387
  "page.create-account": "Create account",
2328
2388
  "page.create-account-2": "Create your account",
2329
2389
  "page.custom-directives": "Custom directives",
2390
+ "page.edit-poll": "Edit poll",
2330
2391
  "page.edit-post": "Edit post",
2331
2392
  "page.email-cannot-be-unsent": "An email cannot be unsent.",
2332
2393
  "page.email-contains": "Email contains",
@@ -2458,6 +2519,7 @@
2458
2519
  "page.required-without-it-prune-matches": "Required. Without it a prune matches everybody.",
2459
2520
  "page.reset-password": "Reset password",
2460
2521
  "page.reset-password-2": "Reset your password",
2522
+ "page.rules-faq": "Rules & FAQ",
2461
2523
  "page.run-it": "Run it",
2462
2524
  "page.running-this-server": "Running on this server",
2463
2525
  "page.scheduled-tasks": "Scheduled tasks",
@@ -2540,8 +2602,30 @@
2540
2602
  "page.write-message": "Write a message",
2541
2603
  "panel.otherPanels": "Other panels",
2542
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",
2543
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.",
2544
2627
  "pollForm.vote": "Vote",
2628
+ "pollForm.votedBy": "Voted for by {names}",
2545
2629
  "pollForm.votes": "{count, plural, one {# vote} other {# votes}}",
2546
2630
  "postForm.backToForum": "Back to {forum}",
2547
2631
  "postForm.backToThread": "Back to the thread",
@@ -2549,6 +2633,17 @@
2549
2633
  "postForm.editPost": "Edit post",
2550
2634
  "postForm.newThread": "Post a new thread in {forum}",
2551
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",
2552
2647
  "presence.invisible": "{count, plural, one {# browsing invisibly.} other {# browsing invisibly.}}",
2553
2648
  "presence.reading": "Reading {title}",
2554
2649
  "presence.somewhere": "Somewhere on the board",
@@ -2629,8 +2724,8 @@
2629
2724
  "setting.antispam.upload_per_hour.label": "Uploads per hour",
2630
2725
  "setting.board.description.description": "Used as the default meta description for the board index.",
2631
2726
  "setting.board.description.label": "Board description",
2632
- "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.",
2633
- "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",
2634
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.",
2635
2730
  "setting.board.logo_alt.label": "Logo alt text",
2636
2731
  "setting.board.logo_dark.description": "Used when the reader is in dark mode. Falls back to the light one.",
@@ -2693,6 +2788,8 @@
2693
2788
  "setting.group.security": "Security",
2694
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.",
2695
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",
2696
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.",
2697
2794
  "setting.legal.terms.label": "Terms of service",
2698
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.",