@meith/i18n 0.16.0 → 0.17.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.16.0",
3
+ "version": "0.17.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": {
@@ -476,6 +476,27 @@
476
476
  "adminLog.everything": "Everything",
477
477
  "adminLog.filter": "Filter",
478
478
  "adminLog.from": "from {address}",
479
+ "adminMarketplace.browseLede": "The meith.dev catalog, cached on this board and checked against what this build actually contains. Nothing here installs anything.",
480
+ "adminMarketplace.browsePluginsTitle": "Browse plugins",
481
+ "adminMarketplace.browseThemesTitle": "Browse themes",
482
+ "adminMarketplace.emptyPlugins": "The catalog has no plugin listings right now.",
483
+ "adminMarketplace.emptyThemes": "The catalog has no theme listings right now.",
484
+ "adminMarketplace.graduationLink": "This board can't install anything itself — moving to a custom board",
485
+ "adminMarketplace.installDocsLink": "More about the marketplace",
486
+ "adminMarketplace.installSteps": "To install this on your own board:",
487
+ "adminMarketplace.installedVersion": "This board runs {version}.",
488
+ "adminMarketplace.lastFetched": "Catalog fetched {time}",
489
+ "adminMarketplace.neverFetched": "The catalog has not been fetched yet — it refreshes once a day, or press Refresh.",
490
+ "adminMarketplace.repository": "Source",
491
+ "adminMarketplace.status.active": "Active",
492
+ "adminMarketplace.status.incompatible": "Incompatible",
493
+ "adminMarketplace.status.installedDisabled": "Installed — disabled",
494
+ "adminMarketplace.status.notInstalled": "Not installed",
495
+ "adminMarketplace.status.updateAvailable": "Update available",
496
+ "adminMarketplace.tab.browse": "Browse",
497
+ "adminMarketplace.tab.installed": "Installed",
498
+ "adminMarketplace.tabsLabel": "Installed and Browse",
499
+ "adminMarketplace.unreachable": "The catalog could not be loaded — unreachable, or it did not answer with a feed this board understands. The installed list above is still accurate; try Refresh, or check the feed URL under Settings → Marketplace.",
479
500
  "adminNav.admin-antispam.blurb": "The honeypot, the question, the limits, and first-post moderation.",
480
501
  "adminNav.admin-antispam.title": "Anti-spam",
481
502
  "adminNav.admin-api-tokens.blurb": "Issue and revoke tokens, and see what each one may reach.",
@@ -568,6 +589,8 @@
568
589
  "adminPanel.mail.testNote": "Goes to the address on your own account, through the configuration the board has {saved} — so save any changes below first, or you will be testing the old one. A provider that rejects the message says why, and that message is shown here verbatim.",
569
590
  "adminPanel.mail.testNoteSaved": "saved",
570
591
  "adminPanel.mail.title": "How this board sends mail",
592
+ "adminPanel.marketplace.refresh": "Refresh",
593
+ "adminPanel.marketplace.refreshed": "Catalog refreshed.",
571
594
  "adminPanel.password": "Password",
572
595
  "adminPanel.plugin.advanced": " · advanced",
573
596
  "adminPanel.plugin.clearFailures": "Clear failures and re-enable",
@@ -746,6 +769,8 @@
746
769
  "adminSystem.task.countersReconcile.title": "Reconcile denormalised counters",
747
770
  "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.",
748
771
  "adminSystem.task.groupsExpire.title": "Expire timed group memberships",
772
+ "adminSystem.task.marketplaceRefreshCatalog.description": "Fetches the marketplace feed, validates it and caches it for the admin panel's Browse tab, then notifies administrators once per plugin version that becomes available for the first time. A board with no outbound network fails this quietly — logged, not alarmed — and the Browse tab falls back to a plain note that the catalog is unreachable.",
773
+ "adminSystem.task.marketplaceRefreshCatalog.title": "Refresh the plugin and theme catalog",
749
774
  "adminSystem.task.outboxRelay.description": "Moves committed events from the outbox onto the queue. Runs most frequently because user-visible side effects (notifications, search indexing) wait on it.",
750
775
  "adminSystem.task.outboxRelay.title": "Relay domain events",
751
776
  "adminSystem.task.postsRenderBackfill.description": "Rewrites the stored HTML of posts rendered by an older version of the renderer, and converts any body still stored as BBCode. A stale render is rendered live on read, so this never gates correctness — it stops a renderer change, or an import that wrote none, from making every thread page pay for it. Idempotent, and its own progress marker is the row.",
@@ -2274,6 +2299,8 @@
2274
2299
  "notice.pushUnsubscribed": "This browser will no longer receive pushed notifications.",
2275
2300
  "notification.mail.boardFallback": "the forum",
2276
2301
  "notification.mail.greeting": "Hello {username},",
2302
+ "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.",
2303
+ "notification.marketplace.update_available.title": "An installed plugin has a newer listed version",
2277
2304
  "notification.pm.receipt.description": "Somebody opens a private message you sent with a read receipt requested. Raised once, on the first read.",
2278
2305
  "notification.pm.receipt.title": "A message you asked to track is read",
2279
2306
  "notification.pm.received.description": "Somebody sends you a private message. The notification carries who from and the subject, never the message itself.",
@@ -2290,6 +2317,8 @@
2290
2317
  "notification.render.digest.subject": "Your {cadence} digest: {posts, plural, one {# post} other {# posts}} in {threads, plural, one {# thread} other {# threads}}",
2291
2318
  "notification.render.digest.weekly": "weekly",
2292
2319
  "notification.render.generic": "Notification: {kind}",
2320
+ "notification.render.marketplace.body": "Version {version} of {package} is now listed in the marketplace catalog. See the Browse tab on /admin/plugins for the install steps.",
2321
+ "notification.render.marketplace.subject": "{name} has a new version: {version}",
2293
2322
  "notification.render.mentioned.body": "{by} mentioned you by name in a post in {title}.",
2294
2323
  "notification.render.mentioned.subject": "{by} mentioned you in {title}",
2295
2324
  "notification.render.occurrences": "{subject} ({count} times)",
@@ -2780,6 +2809,7 @@
2780
2809
  "setting.group.federation": "Sign-in providers",
2781
2810
  "setting.group.legal": "Legal",
2782
2811
  "setting.group.mail": "Mail",
2812
+ "setting.group.marketplace": "Marketplace",
2783
2813
  "setting.group.posting": "Posting",
2784
2814
  "setting.group.push": "Push",
2785
2815
  "setting.group.registration": "Registration",
@@ -2812,6 +2842,8 @@
2812
2842
  "setting.mail.smtp_username.label": "SMTP username",
2813
2843
  "setting.mail.transport.description": "A provider’s JSON API, an SMTP server, or nothing at all. \"Not sending\" writes each message to the server log and delivers none of them — which is the right default for a board nobody has configured yet, and a broken board the moment registration asks anybody to confirm an address.",
2814
2844
  "setting.mail.transport.label": "How mail is sent",
2845
+ "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.",
2846
+ "setting.marketplace.feed_url.label": "Catalog feed URL",
2815
2847
  "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.",
2816
2848
  "setting.posting.edit_grace_seconds.label": "Silent edit window",
2817
2849
  "setting.posting.flood_seconds.description": "Minimum seconds between posts by one user. 0 disables the check. Users with \"bypass flood check\" are exempt.",