@jant/core 0.6.8 → 0.6.10

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.
Files changed (77) hide show
  1. package/bin/commands/uploads/cleanup.js +1 -0
  2. package/dist/{app-9P4rVCe2.js → app-CGHkOdme.js} +3450 -3121
  3. package/dist/app-D24n0DoH.js +6 -0
  4. package/dist/client/.vite/manifest.json +3 -3
  5. package/dist/client/_assets/{client-CXnEhyyv.js → client-DYrWuaIk.js} +1 -1
  6. package/dist/client/_assets/{client-auth-CSItbyU8.js → client-auth-B5Re0uCd.js} +187 -167
  7. package/dist/client/_assets/client-xWDl78yi.css +2 -0
  8. package/dist/{export-Be082J0n.js → export-DY1v5Iqu.js} +2 -2
  9. package/dist/{github-sync-D1Cw8mOY.js → github-sync-2_T7nbOv.js} +1 -1
  10. package/dist/{github-sync-_kPWM4m9.js → github-sync-LefaslGJ.js} +2 -2
  11. package/dist/index.js +3 -3
  12. package/dist/node.js +4 -4
  13. package/package.json +1 -1
  14. package/src/client/components/__tests__/jant-settings-avatar.test.ts +8 -2
  15. package/src/client/components/__tests__/jant-settings-general.test.ts +64 -12
  16. package/src/client/components/jant-compose-dialog.ts +12 -0
  17. package/src/client/components/jant-settings-general.ts +74 -21
  18. package/src/client/components/settings-types.ts +13 -0
  19. package/src/client/settings-bridge.ts +3 -0
  20. package/src/client/tiptap/__tests__/link-toolbar.test.ts +41 -0
  21. package/src/client/tiptap/__tests__/mark-exit.test.ts +99 -0
  22. package/src/client/tiptap/bubble-menu.ts +37 -4
  23. package/src/client/tiptap/link-toolbar.ts +63 -1
  24. package/src/db/migrations/0026_absent_rhodey.sql +14 -0
  25. package/src/db/migrations/meta/0026_snapshot.json +2511 -0
  26. package/src/db/migrations/meta/_journal.json +7 -0
  27. package/src/db/migrations/pg/0024_high_violations.sql +14 -0
  28. package/src/db/migrations/pg/meta/0024_snapshot.json +3204 -0
  29. package/src/db/migrations/pg/meta/_journal.json +7 -0
  30. package/src/db/pg/schema.ts +36 -0
  31. package/src/db/schema.ts +36 -0
  32. package/src/i18n/__tests__/middleware.test.ts +46 -0
  33. package/src/i18n/locales/settings/en.po +282 -27
  34. package/src/i18n/locales/settings/en.ts +1 -1
  35. package/src/i18n/locales/settings/zh-Hans.po +282 -27
  36. package/src/i18n/locales/settings/zh-Hans.ts +1 -1
  37. package/src/i18n/locales/settings/zh-Hant.po +282 -27
  38. package/src/i18n/locales/settings/zh-Hant.ts +1 -1
  39. package/src/i18n/middleware.ts +17 -8
  40. package/src/i18n/supported-locales.ts +5 -4
  41. package/src/lib/__tests__/feed.test.ts +5 -1
  42. package/src/lib/feed.ts +6 -3
  43. package/src/lib/ids.ts +1 -0
  44. package/src/lib/resolve-config.ts +1 -0
  45. package/src/lib/upload.ts +14 -0
  46. package/src/routes/api/__tests__/settings.test.ts +1 -4
  47. package/src/routes/api/__tests__/upload.test.ts +2 -0
  48. package/src/routes/api/internal/__tests__/uploads.test.ts +19 -1
  49. package/src/routes/api/settings.ts +2 -1
  50. package/src/routes/auth/__tests__/setup.test.ts +14 -0
  51. package/src/routes/dash/__tests__/settings-avatar.test.ts +35 -17
  52. package/src/routes/dash/settings.tsx +22 -4
  53. package/src/routes/feed/__tests__/feed.test.ts +58 -19
  54. package/src/routes/feed/feed.ts +37 -28
  55. package/src/routes/pages/featured.tsx +17 -0
  56. package/src/routes/pages/latest.tsx +25 -0
  57. package/src/services/__tests__/media.test.ts +191 -30
  58. package/src/services/__tests__/settings.test.ts +55 -0
  59. package/src/services/bootstrap.ts +7 -0
  60. package/src/services/export-theme/layouts/_default/baseof.html +2 -1
  61. package/src/services/media.ts +169 -42
  62. package/src/services/post.ts +1 -1
  63. package/src/services/settings.ts +49 -15
  64. package/src/services/upload-session.ts +13 -3
  65. package/src/styles/tokens.css +21 -4
  66. package/src/styles/ui.css +44 -1
  67. package/src/types/bindings.ts +1 -0
  68. package/src/types/config.ts +13 -0
  69. package/src/ui/__tests__/color-themes.test.ts +2 -2
  70. package/src/ui/color-themes.ts +32 -0
  71. package/src/ui/dash/appearance/ColorThemeContent.tsx +264 -29
  72. package/src/ui/dash/settings/GeneralContent.tsx +54 -4
  73. package/src/ui/dash/settings/__tests__/GeneralContent.test.tsx +3 -2
  74. package/src/ui/layouts/BaseLayout.tsx +3 -2
  75. package/src/ui/layouts/__tests__/BaseLayout.test.tsx +17 -4
  76. package/dist/app-DaxS_Cz-.js +0 -6
  77. package/dist/client/_assets/client-C6peCkkD.css +0 -2
@@ -1 +1 @@
1
- /*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"+4Z6iP\":[\"Create the repository on GitHub first — it can be empty.\"],\"+9JI/F\":[\"Connecting will sync your site onto \",[\"repo\"],\"'s default branch on top of its existing history. Existing files outside Jant's managed paths are kept. This can't be undone.\"],\"+AXdXp\":[\"Label and URL are required\"],\"+K0AvT\":[\"Disconnect\"],\"+zy2Nq\":[\"Type\"],\"/3H2/s\":[\"This hosted site signs in through \",[\"providerLabel\"],\". Manage password and hosted access there.\"],\"/JnyjR\":[\"Toggle built-in navigation items. Their order controls what shows in the header and which feed the homepage opens first.\"],\"/ODeyS\":[\"Sets the content language announced to readers (HTML lang, RSS) and the dashboard language. Any BCP 47 tag is accepted; tags without a dashboard translation fall back to English.\"],\"/zOUxl\":[\"QR code linking to the Telegram bot\"],\"0OGSSc\":[\"Avatar display updated.\"],\"0UzCUX\":[\"Update the password you use to sign in\"],\"0bdA9b\":[\"Open Telegram to connect\"],\"10UtuM\":[\"CJK Font\"],\"14BEca\":[\"Read why\"],\"1F6Mzc\":[\"No navigation items yet. Add links or enable system items below.\"],\"1mbBbL\":[\"Connect manually\"],\"1njn7W\":[\"Light\"],\"2B7t+s\":[\"Sessions and password\"],\"2DoBvq\":[\"Feeds\"],\"2FYpfJ\":[\"More\"],\"2Ithfh\":[\"Message the bot any text and it's published as a note.\"],\"2MXb5X\":[\"Field notes on quiet design\"],\"2PTjMB\":[\"I want to delete \",[\"siteName\"]],\"2cFU6q\":[\"Site Footer\"],\"2oWZo7\":[\"Last commit\"],\"2uuy4H\":[\"Connected via Personal Access Token\"],\"35x8eZ\":[\"Showing \",[\"shown\"],\" of \",[\"total\"]],\"39QGku\":[\"Open the bot and send the binding code, then anything you message it becomes a note.\"],\"3Cw1AI\":[\"Add Collection\"],\"3VrybB\":[\"Redirect\"],\"3Yvsaz\":[\"302 (Temporary)\"],\"3n0zbB\":[\"Session management is off in demo mode. Use the shared demo session instead.\"],\"3sYJi5\":[\"Download a Hugo-compatible archive — host it statically or move to another Jant.\"],\"3wKq0C\":[\"Couldn't save. Try again in a moment.\"],\"49Bsal\":[\"Feed settings updated.\"],\"4Jge8E\":[\"Active Sessions\"],\"4KIa+q\":[\"Export downloaded.\"],\"4cEClj\":[\"Sessions\"],\"4zGJ5E\":[\"Delete Account Permanently\"],\"5QlUIt\":[\"Empty repository. Ready to connect.\"],\"5VQnR3\":[\"Use these when you want a feed URL that never changes.\"],\"5dpcN1\":[\"type to search all\"],\"5f1Wo9\":[\"Connected as \",[\"account\"]],\"6ArdBh\":[\"Uses featured posts for /feed.\"],\"6DjeBT\":[\"Demo sites always stay hidden from search engines.\"],\"6E3aK4\":[\"Manage Hosting\"],\"6FFB7q\":[\"Uses the latest public posts for /feed.\"],\"6K1Vef\":[\"Delete this blog permanently? This cannot be undone.\"],\"6NpNLc\":[\"This repository has existing content.\"],\"6V3Ea3\":[\"Copied\"],\"71WIgc\":[\"Get a new code\"],\"746NHh\":[\"this blog\"],\"7811AW\":[\"This repository is already backing up this site.\"],\"7FaY4u\":[\"Usage\"],\"7G9YLi\":[\"Allow search engines to index my site\"],\"7GISOt\":[\"Save bot token\"],\"7MZxzw\":[\"Password changed.\"],\"7vhWI8\":[\"New Password\"],\"81nFIS\":[\"Passwords don't match. Make sure both fields are identical.\"],\"87a/t/\":[\"Label\"],\"89Upyo\":[\"That theme isn't available. Pick another one.\"],\"8BfEpW\":[\"Hosted account\"],\"8N/Mcp\":[\"Archive filter parameters (e.g. format=note&view=list)\"],\"8T46pB\":[\"Bot token\"],\"8U2Z7f\":[\"New Custom URL\"],\"8ZsakT\":[\"Password\"],\"9+vGLh\":[\"Custom CSS\"],\"9As8Nu\":[\"Create one on GitHub\"],\"9Lsvt5\":[\"Signed in \",[\"date\"]],\"9T7Cwm\":[\"Redirects, vanity paths, and URL control\"],\"9aUyym\":[\"See where you're signed in and revoke old sessions\"],\"A1taO8\":[\"Search\"],\"AeXO77\":[\"Account\"],\"AnY+O9\":[\"Show \\\"Build with Jant\\\" at the bottom of the home page\"],\"ApZDMk\":[\"This is used for your favicon and apple-touch-icon. For best results, upload a square PNG with a solid background at least 512x512 pixels.\"],\"B495Gs\":[\"Archive\"],\"B4ESok\":[\"API reference\"],\"BzEFor\":[\"or\"],\"CDAdlf\":[\"Remove bot\"],\"CTAEes\":[\"Select a repository\"],\"CjZZgz\":[\"This repository already has commits\"],\"D8k2s6\":[\"Connect Telegram\"],\"DCKkhU\":[\"Current Password\"],\"DKKKeF\":[\"Manage password and hosted access in \",[\"providerLabel\"]],\"EO3I6h\":[\"Upload didn't go through. Try again in a moment.\"],\"Enslfm\":[\"Destination\"],\"F7FKwe\":[\"Anything you paste here has full access to your visitors' browsers. Only use code from sources you trust.\"],\"FkMol5\":[\"Featured\"],\"G/1oP+\":[\"Remove the webhook and stop syncing. Your repository content will not be deleted.\"],\"G0qJsQ\":[\"Security token missing. Refresh the page and try again.\"],\"G39wnK\":[\"Back up and sync content with a GitHub repository\"],\"GMMWcy\":[\"Name, metadata, language, and search defaults\"],\"GXsAby\":[\"Revoke\"],\"GxkJXS\":[\"Uploading...\"],\"GzKzUa\":[\"Demo limits\"],\"HKH+W+\":[\"Data\"],\"Hp1l6f\":[\"Current\"],\"HxlY7t\":[\"Changing this updates what subscribers get from /feed.\"],\"HxuOlm\":[\"Site Header\"],\"I6gXOa\":[\"Path\"],\"ID38tA\":[\"Account deletion is off in demo mode. The shared demo resets separately.\"],\"IF9tPu\":[\"When to use site export, database backups, and recovery drills.\"],\"IW5PBo\":[\"Copy Token\"],\"IagCbF\":[\"URL\"],\"IreQBq\":[\"Repository\"],\"J6bLeg\":[\"Add a custom link to any URL\"],\"JL7LF5\":[\"available CSS variables, data attributes, and examples.\"],\"JTviaO\":[\"Manage sign-in security, exports, and irreversible actions.\"],\"JcD7qf\":[\"More actions\"],\"JjX0OO\":[\"Copy your token now — it won't be shown again.\"],\"JrFTcr\":[\"Connecting…\"],\"JuN5GC\":[\"No file selected. Choose a file to upload.\"],\"KDw4GX\":[\"Try again\"],\"KSgo21\":[\"Pick a repository\"],\"KVVYBh\":[\"Add collection to navigation\"],\"KiJn9B\":[\"Note\"],\"L3DEwT\":[\"Remove this avatar? Your favicon and header icon will go back to the default.\"],\"L4t4/q\":[\"March 14\"],\"LdyooL\":[\"link\"],\"M/D8PK\":[\"+ Install on another account\"],\"M/haSd\":[\"Always show the light version of the theme.\"],\"M2kIWU\":[\"Font theme\"],\"M6CbAU\":[\"Toggle edit panel\"],\"MaYYE6\":[\"Post notes by messaging a Telegram bot\"],\"Me5t5H\":[\"Connect a GitHub repository to automatically back up your posts as Markdown files. Edits on GitHub sync back to your site.\"],\"Mr4QPw\":[\"Disconnect Telegram? You can reconnect any time with a new binding code.\"],\"MtENL9\":[\"Tune how your site looks, reads, and runs.\"],\"N/8NPV\":[\"Before deleting, download a site export. You won't be able to recover this account after deletion.\"],\"N7UNHY\":[\"Featured feed\"],\"NHnUHF\":[\"Favicon and the profile mark in your header\"],\"NU2Fqi\":[\"Save CSS\"],\"Nldjdr\":[\"No custom URLs yet. Create one to add redirects or custom paths for posts.\"],\"O7rgs6\":[\"Header RSS points to your \",[\"feed\"],\" feed (/feed). Change what /feed returns in General.\"],\"OSJXFg\":[\"Applies to your entire site, including admin pages. Pick a palette, then choose whether it follows the system or stays fixed.\"],\"Ox3+3h\":[\"No matches.\"],\"PEUV5I\":[\"Code injection updated.\"],\"PXj9lw\":[\"Stop accepting posts from Telegram. Your existing notes stay published.\"],\"PZ7HJ8\":[\"Blog Avatar\"],\"Pwqkdw\":[\"Loading…\"],\"PxJ9W6\":[\"Generate Token\"],\"Q/6Y+2\":[\"Needs Contents (read/write) and Webhooks (read/write) on the target repository.\"],\"Q30z/l\":[\"Remove this collection from navigation? The collection itself won't be deleted.\"],\"Q99OtV\":[\"Pin a collection to your navigation bar. An asterisk (*) appears next to collections updated in the last 48 hours.\"],\"QZmz0H\":[\"Built-in links\"],\"Qnrzvb\":[\"Active Tokens\"],\"R6Z4LE\":[\"Download failed. Please try again.\"],\"R9Khdg\":[\"Auto\"],\"RcdDOS\":[\"Create a bot by messaging @BotFather on Telegram, then paste the token it gives you.\"],\"RxsRD6\":[\"Time Zone\"],\"SJmfuf\":[\"Site Name\"],\"SKZhW9\":[\"Token name\"],\"SVQQPe\":[\"Couldn't connect. Check the error and try again.\"],\"SchpMp\":[\"Telegram\"],\"TpF3v+\":[\"Injected before </head>. Use for analytics, custom meta tags, and styles that must load early.\"],\"Tz0i8g\":[\"Settings\"],\"UFK415\":[\"Site-wide HTML for analytics and widgets\"],\"UTvFQq\":[\"Open \",[\"linkOpen\"],\"@\",[\"botUsername\"],[\"linkClose\"],\" and send:\"],\"Uj/btJ\":[\"Display avatar in my site header\"],\"UsODUn\":[\"Select an account\"],\"UxKoFf\":[\"Navigation\"],\"V+bhUy\":[\"Install GitHub App\"],\"V4WsyL\":[\"Add Link\"],\"V5pZwT\":[\"Search settings updated.\"],\"VXUPla\":[\"Connect with GitHub App\"],\"VhMDMg\":[\"Change Password\"],\"Vn3jYy\":[\"Navigation items\"],\"VoZYGU\":[\"This will permanently delete all your data — posts, media, collections, settings, and your account. Your blog will be reset to its initial setup state. This cannot be undone.\"],\"Weq9zb\":[\"General\"],\"Wi9i06\":[\"Follow each visitor's system preference.\"],\"Wx1M8N\":[\"Install the GitHub App to grant access without managing personal tokens. Permissions are scoped per repository and revocable from GitHub.\"],\"X+8FMk\":[\"Current password doesn't match. Try again.\"],\"X1G9eY\":[\"Navigation Preview\"],\"X9Hujr\":[\"Manual Push\"],\"XtBJV8\":[\"Checking repository…\"],\"Xtc16w\":[\"Refresh repository list\"],\"Y/F35r\":[\"Create a post with curl:\"],\"YF6zHf\":[\"Site settings updated.\"],\"YdG2RF\":[\"Export Site\"],\"YkgZi7\":[\"Connect a Telegram bot, then anything you message it gets published as a note.\"],\"YwhjRx\":[\"Manage Account\"],\"ZDY7Fy\":[\"Syncing…\"],\"ZQKLI1\":[\"Danger Zone\"],\"ZS/CBL\":[\"Delete this navigation link? Visitors won't see it in your site header anymore.\"],\"ZhhOwV\":[\"Quote\"],\"ZiooJI\":[\"API Tokens\"],\"Zm7Qb0\":[\"Backup & Restore Guide\"],\"ZmUkwN\":[\"Add custom link to navigation\"],\"a14mj8\":[\"Unknown device\"],\"a3LDKx\":[\"Security\"],\"aAIQg2\":[\"Appearance\"],\"aFkzVF\":[\"The slug of the target post or collection\"],\"alKG0+\":[\"Font Theme\"],\"anibOb\":[\"About this blog\"],\"any7NR\":[\"Theming guide\"],\"b+/jO6\":[\"301 (Permanent)\"],\"bHOiy1\":[\"Password changes are off in demo mode. Sign in with the shared demo credentials.\"],\"bHYIks\":[\"Sign Out\"],\"bmrL08\":[\"Demo mode hides sessions, password changes, and account deletion. Export still works.\"],\"c3MN2z\":[\"all available endpoints and request formats.\"],\"cS7/bk\":[\"Remove the saved bot token? Its webhook is deleted and any connected account is disconnected.\"],\"cSDy01\":[\"Custom CSS updated.\"],\"clzoNp\":[\"Always show the dark version of the theme.\"],\"cnGeoo\":[\"Delete\"],\"d3FRkY\":[\"Could not copy. Try again.\"],\"d5oGUo\":[\"Create a new repository on GitHub\"],\"dEgA5A\":[\"Cancel\"],\"dTXUY+\":[\"Confirm account deletion\"],\"dYKrp3\":[\"Hidden from Latest\"],\"dk7TCH\":[\"Permanently delete all data and reset the blog\"],\"drodVV\":[\"No collections yet. Create one first, then add it to your navigation.\"],\"dsWkIw\":[\"Disconnect from GitHub? The webhook will be removed. Your repository content will not be deleted.\"],\"e/tSI5\":[\"Navigation order updated.\"],\"ePK91l\":[\"Edit\"],\"ebQKK7\":[\"Site\"],\"egK+Yy\":[\"Bearer tokens for scripts and automation\"],\"ehj/zN\":[\"Redirect Type\"],\"eneWvv\":[\"Draft\"],\"erTMh7\":[\"Last synced\"],\"f+m8jj\":[\"Feed URL copied.\"],\"f8fH8W\":[\"Design\"],\"fWYqkz\":[\"Code Injection\"],\"gOWiTY\":[\"Load a serif font optimized for Chinese, Japanese, or Korean content.\"],\"gZ5owP\":[\"Search repositories\"],\"gbqbh6\":[\"Safe to leave this page — syncing continues in the background.\"],\"gkFvVN\":[\"Injected before </body>. Use for chat widgets and scripts that should not block page load.\"],\"gtQsRO\":[\"Create Custom URL\"],\"hBO/y4\":[\"Security token expired. Refresh the page and try again.\"],\"hGmyDl\":[\"Tokens let you access the API from scripts, shortcuts, and other tools without signing in.\"],\"hIHkRy\":[\"Connected via GitHub App\"],\"hdSi1b\":[\"Type \",[\"repo\"],\" to confirm\"],\"he3ygx\":[\"Copy\"],\"i0qMbr\":[\"Home\"],\"iEUzMn\":[\"system\"],\"iSLIjg\":[\"Connect\"],\"iVOMRi\":[\"Home settings updated.\"],\"icB4Cv\":[\"Drag links here to show them under the More menu\"],\"id3vuh\":[\"Telegram is set up, but the bot couldn't be reached. Check the bot token and try again.\"],\"ihn4zD\":[\"Search…\"],\"iiDXZc\":[\"Displayed at the bottom of all posts and pages.\"],\"j4VrG6\":[\"Download Export ZIP\"],\"j5nQL2\":[\"e.g. iOS Shortcuts\"],\"jUV7CU\":[\"Upload Avatar\"],\"jVUmOK\":[\"Markdown supported\"],\"jgBjXJ\":[\"Revoke this token? Any scripts using it will stop working.\"],\"jpctdh\":[\"View\"],\"k1ifdL\":[\"Processing...\"],\"kMXclu\":[\"Download a site export\"],\"kNiQp6\":[\"Pinned\"],\"kRhzWq\":[\"GitHub Sync\"],\"kVQs7s\":[\"Fine-grained styling overrides\"],\"ke1gWS\":[\"Custom URLs\"],\"kfcRb0\":[\"Avatar\"],\"kxDZ2i\":[\"This code runs on every page of your site.\"],\"l2Op2p\":[\"Query Parameters\"],\"lLW3vJ\":[\"Target Slug\"],\"lYHJih\":[\"Revoke this session? That device will need to sign in again.\"],\"mLOk1i\":[\"Push all posts to GitHub right now instead of waiting for the next automatic sync.\"],\"mSNmrX\":[\"List posts:\"],\"nK07ni\":[\"Choose a typographic direction for your site. Each theme changes both the font pairing and the reading rhythm.\"],\"nbfdhU\":[\"Integrations\"],\"ntJYyh\":[\"Domains, plan, and billing in \",[\"providerLabel\"]],\"o/vNDE\":[\"lets you override any theme variable.\"],\"oGC9uP\":[\"owner/repo\"],\"oH2JHg\":[\"We'll prefill the name \",[\"name\"],\". The list refreshes on return.\"],\"oKOOsY\":[\"Color Theme\"],\"oL535e\":[\"Not synced yet\"],\"oNA4If\":[\"All collections are already in your navigation.\"],\"pZq3aX\":[\"Upload failed. Please try again.\"],\"pgTIrt\":[\"Choose the GitHub account and repository to sync with this site.\"],\"psoxDF\":[\"That font theme isn't available. Pick another one.\"],\"pvnfJD\":[\"Dark\"],\"q+hNag\":[\"Collection\"],\"qdcESc\":[\"Create a new repository\"],\"r5EW6f\":[\"This repository is already backing up another Jant site (\",[\"host\"],\"). Pick a different repository.\"],\"rEspiY\":[\"Navigation placement updated.\"],\"rFmBG3\":[\"Color theme\"],\"rlonmB\":[\"Couldn't delete. Try again in a moment.\"],\"satWc6\":[\"Main RSS feed\"],\"sgr2wQ\":[\"collection\"],\"sqxcaY\":[\"Created \",[\"date\"]],\"sxkWRg\":[\"Advanced\"],\"t/YqKh\":[\"Remove\"],\"t3hvHq\":[\"Sync Now\"],\"tJ4H0O\":[\"your Telegram account\"],\"tfDRzk\":[\"Save\"],\"tvgAq5\":[\"No accounts authorized yet\"],\"u1VTd3\":[\"Palette, surface tone, and overall mood\"],\"u3wRF+\":[\"Published\"],\"u6KOjV\":[\"Want more control?\"],\"udPwLB\":[\"Header\"],\"ui6aMF\":[\"These devices are currently signed in to your account. Revoke any session you don't recognize.\"],\"vBEKwo\":[\"Manage this site's active sessions here. Password and hosted access are managed through \",[\"providerLabel\"],\".\"],\"vRldcl\":[\"Typography choices and reading texture\"],\"vSYKYI\":[\"Main feed\"],\"vTuib7\":[\"This controls what /feed returns.\"],\"vXIe7J\":[\"Language\"],\"vmQmHx\":[\"Add custom CSS to override any styles. Use data attributes like [data-page], [data-post], [data-format] to target specific elements.\"],\"vzX5FB\":[\"Delete Account\"],\"w8Rv8T\":[\"Label is required\"],\"wL3cK8\":[\"Latest\"],\"wPmHHc\":[\"Quiet surfaces let writing lead.\"],\"wW6NCp\":[\"Last error\"],\"wc+17X\":[\"/* Your custom CSS here */\"],\"wuLtXn\":[\"No active sessions right now. Signed-in devices show up here.\"],\"xCWek4\":[\"File storage isn't set up. Check your server config.\"],\"xHt036\":[\"Personal Access Token\"],\"xbN8dp\":[\"Soft color should still carry a clear reading rhythm.\"],\"y28hnO\":[\"Post\"],\"y8Md/V\":[\"Language and time updated.\"],\"yNCqOt\":[\"Latest feed\"],\"yQ3kNF\":[\"Type the following phrase to confirm:\"],\"ydq1k2\":[\"Pick an account first\"],\"yjjCV8\":[\"Fixed feed URLs\"],\"yjkELF\":[\"Confirm New Password\"],\"yzF66j\":[\"Link\"],\"z6wakA\":[\"A short intro shown on your home page.\"],\"zEizrk\":[\"Last used \",[\"date\"]],\"zSURJW\":[\"No repositories match.\"],\"zXH2jX\":[\"Language & Time\"],\"zlcDd2\":[\"Delete this custom URL? Visitors using it won't be redirected anymore.\"],\"zwBp5t\":[\"Private\"],\"zxRN6H\":[\"Header links, home feed, and overflow menu\"]}")as Messages;
1
+ /*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"++YsxG\":[\"Readers and search engines see\"],\"+4Z6iP\":[\"Create the repository on GitHub first — it can be empty.\"],\"+9JI/F\":[\"Connecting will sync your site onto \",[\"repo\"],\"'s default branch on top of its existing history. Existing files outside Jant's managed paths are kept. This can't be undone.\"],\"+AXdXp\":[\"Label and URL are required\"],\"+K0AvT\":[\"Disconnect\"],\"+wgt7C\":[\"Muted red-brown background, earthy and warm.\"],\"+zy2Nq\":[\"Type\"],\"/3H2/s\":[\"This hosted site signs in through \",[\"providerLabel\"],\". Manage password and hosted access there.\"],\"/JnyjR\":[\"Toggle built-in navigation items. Their order controls what shows in the header and which feed the homepage opens first.\"],\"/PXXBT\":[\"Nearly white, with a touch of warmth.\"],\"/zOUxl\":[\"QR code linking to the Telegram bot\"],\"0OGSSc\":[\"Avatar display updated.\"],\"0UzCUX\":[\"Update the password you use to sign in\"],\"0bdA9b\":[\"Open Telegram to connect\"],\"0uIjy/\":[\"Light sage-green with a matching green accent.\"],\"10UtuM\":[\"CJK Font\"],\"1F6Mzc\":[\"No navigation items yet. Add links or enable system items below.\"],\"1H7gng\":[\"Dashboard language\"],\"1mbBbL\":[\"Connect manually\"],\"1njn7W\":[\"Light\"],\"1qGdnL\":[\"The default. Calm and easy for long reading.\"],\"2B7t+s\":[\"Sessions and password\"],\"2DoBvq\":[\"Feeds\"],\"2FYpfJ\":[\"More\"],\"2Ithfh\":[\"Message the bot any text and it's published as a note.\"],\"2PTjMB\":[\"I want to delete \",[\"siteName\"]],\"2cFU6q\":[\"Site Footer\"],\"2fPEPI\":[\"A calm, cool backdrop.\"],\"2lkk2l\":[\"Yellow-tinted paper with an olive-green accent.\"],\"2oWZo7\":[\"Last commit\"],\"2uuy4H\":[\"Connected via Personal Access Token\"],\"35x8eZ\":[\"Showing \",[\"shown\"],\" of \",[\"total\"]],\"39QGku\":[\"Open the bot and send the binding code, then anything you message it becomes a note.\"],\"3Cw1AI\":[\"Add Collection\"],\"3VrybB\":[\"Redirect\"],\"3Yvsaz\":[\"302 (Temporary)\"],\"3n0zbB\":[\"Session management is off in demo mode. Use the shared demo session instead.\"],\"3sYJi5\":[\"Download a Hugo-compatible archive — host it statically or move to another Jant.\"],\"3wKq0C\":[\"Couldn't save. Try again in a moment.\"],\"49Bsal\":[\"Feed settings updated.\"],\"4Jge8E\":[\"Active Sessions\"],\"4KIa+q\":[\"Export downloaded.\"],\"4cEClj\":[\"Sessions\"],\"4yyXWu\":[\"Pale bone-white with a muted green accent.\"],\"4zGJ5E\":[\"Delete Account Permanently\"],\"5QlUIt\":[\"Empty repository. Ready to connect.\"],\"5VQnR3\":[\"Use these when you want a feed URL that never changes.\"],\"5dpcN1\":[\"type to search all\"],\"5f1Wo9\":[\"Connected as \",[\"account\"]],\"5o8R81\":[\"Very light ivory with a faint tea-green accent.\"],\"6ArdBh\":[\"Uses featured posts for /feed.\"],\"6DjeBT\":[\"Demo sites always stay hidden from search engines.\"],\"6E3aK4\":[\"Manage Hosting\"],\"6FFB7q\":[\"Uses the latest public posts for /feed.\"],\"6K1Vef\":[\"Delete this blog permanently? This cannot be undone.\"],\"6NpNLc\":[\"This repository has existing content.\"],\"6V3Ea3\":[\"Copied\"],\"71WIgc\":[\"Get a new code\"],\"746NHh\":[\"this blog\"],\"7811AW\":[\"This repository is already backing up this site.\"],\"7FCZPo\":[\"Content language\"],\"7FaY4u\":[\"Usage\"],\"7G9YLi\":[\"Allow search engines to index my site\"],\"7GISOt\":[\"Save bot token\"],\"7MZxzw\":[\"Password changed.\"],\"7vhWI8\":[\"New Password\"],\"81nFIS\":[\"Passwords don't match. Make sure both fields are identical.\"],\"87a/t/\":[\"Label\"],\"89Upyo\":[\"That theme isn't available. Pick another one.\"],\"8BfEpW\":[\"Hosted account\"],\"8N/Mcp\":[\"Archive filter parameters (e.g. format=note&view=list)\"],\"8T46pB\":[\"Bot token\"],\"8U2Z7f\":[\"New Custom URL\"],\"8ZsakT\":[\"Password\"],\"8gEghq\":[\"Bright warm-white with a moss-green accent.\"],\"9+vGLh\":[\"Custom CSS\"],\"9As8Nu\":[\"Create one on GitHub\"],\"9EjI4j\":[\"Warm sand\"],\"9Lsvt5\":[\"Signed in \",[\"date\"]],\"9T7Cwm\":[\"Redirects, vanity paths, and URL control\"],\"9aUyym\":[\"See where you're signed in and revoke old sessions\"],\"A1taO8\":[\"Search\"],\"AeXO77\":[\"Account\"],\"AnY+O9\":[\"Show \\\"Build with Jant\\\" at the bottom of the home page\"],\"ApZDMk\":[\"This is used for your favicon and apple-touch-icon. For best results, upload a square PNG with a solid background at least 512x512 pixels.\"],\"B495Gs\":[\"Archive\"],\"B4ESok\":[\"API reference\"],\"BzEFor\":[\"or\"],\"CDAdlf\":[\"Remove bot\"],\"CTAEes\":[\"Select a repository\"],\"CjZZgz\":[\"This repository already has commits\"],\"D8k2s6\":[\"Connect Telegram\"],\"DCKkhU\":[\"Current Password\"],\"DKKKeF\":[\"Manage password and hosted access in \",[\"providerLabel\"]],\"DVFXa6\":[\"The cleanest, most neutral option.\"],\"EO3I6h\":[\"Upload didn't go through. Try again in a moment.\"],\"Eax/et\":[\"Accent\"],\"Enslfm\":[\"Destination\"],\"F53UDu\":[\"Cool white\"],\"F7FKwe\":[\"Anything you paste here has full access to your visitors' browsers. Only use code from sources you trust.\"],\"F8SNqr\":[\"Warm orange\"],\"Fk3SSD\":[\"Calm and natural, easy on the eyes.\"],\"FkMol5\":[\"Featured\"],\"G/1oP+\":[\"Remove the webhook and stop syncing. Your repository content will not be deleted.\"],\"G0qJsQ\":[\"Security token missing. Refresh the page and try again.\"],\"G39wnK\":[\"Back up and sync content with a GitHub repository\"],\"GMMWcy\":[\"Name, metadata, language, and search defaults\"],\"GXsAby\":[\"Revoke\"],\"GxkJXS\":[\"Uploading...\"],\"GzKzUa\":[\"Demo limits\"],\"H4x7Sk\":[\"The language this admin dashboard shows in. Available in English, 简体中文, and 繁體中文.\"],\"HCNlq3\":[\"Clean and high-contrast, close to white.\"],\"HHDyGw\":[\"Soft green\"],\"HKH+W+\":[\"Data\"],\"Hp1l6f\":[\"Current\"],\"HxlY7t\":[\"Changing this updates what subscribers get from /feed.\"],\"HxuOlm\":[\"Site Header\"],\"I4HRxU\":[\"Every published post, including ones hidden from Latest.\"],\"I6gXOa\":[\"Path\"],\"I76CzF\":[\"Neutral gray\"],\"ID38tA\":[\"Account deletion is off in demo mode. The shared demo resets separately.\"],\"IF9tPu\":[\"When to use site export, database backups, and recovery drills.\"],\"IW5PBo\":[\"Copy Token\"],\"IagCbF\":[\"URL\"],\"IfB3m6\":[\"The language your posts are written in. Announced to readers and search engines through HTML lang and your RSS feed. Any BCP 47 tag works.\"],\"IreQBq\":[\"Repository\"],\"J6bLeg\":[\"Add a custom link to any URL\"],\"JL7LF5\":[\"available CSS variables, data attributes, and examples.\"],\"JTviaO\":[\"Manage sign-in security, exports, and irreversible actions.\"],\"JcD7qf\":[\"More actions\"],\"JjX0OO\":[\"Copy your token now — it won't be shown again.\"],\"JrFTcr\":[\"Connecting…\"],\"JuN5GC\":[\"No file selected. Choose a file to upload.\"],\"KDw4GX\":[\"Try again\"],\"KSgo21\":[\"Pick a repository\"],\"KVVYBh\":[\"Add collection to navigation\"],\"KiJn9B\":[\"Note\"],\"KwOLJF\":[\"The original Jant palette, and a solid everyday pick.\"],\"L3DEwT\":[\"Remove this avatar? Your favicon and header icon will go back to the default.\"],\"L4t4/q\":[\"March 14\"],\"LdyooL\":[\"link\"],\"M/D8PK\":[\"+ Install on another account\"],\"M/haSd\":[\"Always show the light version of the theme.\"],\"M2kIWU\":[\"Font theme\"],\"M6CbAU\":[\"Toggle edit panel\"],\"MaYYE6\":[\"Post notes by messaging a Telegram bot\"],\"Me5t5H\":[\"Connect a GitHub repository to automatically back up your posts as Markdown files. Edits on GitHub sync back to your site.\"],\"Mr4QPw\":[\"Disconnect Telegram? You can reconnect any time with a new binding code.\"],\"MtENL9\":[\"Tune how your site looks, reads, and runs.\"],\"N/8NPV\":[\"Before deleting, download a site export. You won't be able to recover this account after deletion.\"],\"N7UNHY\":[\"Featured feed\"],\"NHnUHF\":[\"Favicon and the profile mark in your header\"],\"NU2Fqi\":[\"Save CSS\"],\"NVjhde\":[\"Warm parchment\"],\"Nldjdr\":[\"No custom URLs yet. Create one to add redirects or custom paths for posts.\"],\"O7rgs6\":[\"Header RSS points to your \",[\"feed\"],\" feed (/feed). Change what /feed returns in General.\"],\"OSJXFg\":[\"Applies to your entire site, including admin pages. Pick a palette, then choose whether it follows the system or stays fixed.\"],\"Ox3+3h\":[\"No matches.\"],\"PEUV5I\":[\"Code injection updated.\"],\"PHh52z\":[\"Warm and rich, with strong brown tones.\"],\"PXj9lw\":[\"Stop accepting posts from Telegram. Your existing notes stay published.\"],\"PZ7HJ8\":[\"Blog Avatar\"],\"Pwqkdw\":[\"Loading…\"],\"PxJ9W6\":[\"Generate Token\"],\"Q/6Y+2\":[\"Needs Contents (read/write) and Webhooks (read/write) on the target repository.\"],\"Q30z/l\":[\"Remove this collection from navigation? The collection itself won't be deleted.\"],\"Q99OtV\":[\"Pin a collection to your navigation bar. An asterisk (*) appears next to collections updated in the last 48 hours.\"],\"QCwsv1\":[\"Warm off-white\"],\"QKvrmL\":[\"Warm-neutral and easy for long reading.\"],\"QZmz0H\":[\"Built-in links\"],\"Qnrzvb\":[\"Active Tokens\"],\"R6Z4LE\":[\"Download failed. Please try again.\"],\"R9Khdg\":[\"Auto\"],\"RcdDOS\":[\"Create a bot by messaging @BotFather on Telegram, then paste the token it gives you.\"],\"RdVIcf\":[\"Cream and coffee brown\"],\"RxsRD6\":[\"Time Zone\"],\"SJmfuf\":[\"Site Name\"],\"SKZhW9\":[\"Token name\"],\"SVQQPe\":[\"Couldn't connect. Check the error and try again.\"],\"SchpMp\":[\"Telegram\"],\"SrGs4T\":[\"Light blue-gray background, cool and even.\"],\"TpF3v+\":[\"Injected before </head>. Use for analytics, custom meta tags, and styles that must load early.\"],\"Tz0i8g\":[\"Settings\"],\"UFK415\":[\"Site-wide HTML for analytics and widgets\"],\"UTvFQq\":[\"Open \",[\"linkOpen\"],\"@\",[\"botUsername\"],[\"linkClose\"],\" and send:\"],\"Uj/btJ\":[\"Display avatar in my site header\"],\"UsODUn\":[\"Select an account\"],\"UxKoFf\":[\"Navigation\"],\"V+bhUy\":[\"Install GitHub App\"],\"V4WsyL\":[\"Add Link\"],\"V5pZwT\":[\"Search settings updated.\"],\"VXUPla\":[\"Connect with GitHub App\"],\"VhMDMg\":[\"Change Password\"],\"Vn3jYy\":[\"Navigation items\"],\"VoZYGU\":[\"This will permanently delete all your data — posts, media, collections, settings, and your account. Your blog will be reset to its initial setup state. This cannot be undone.\"],\"WUnFK2\":[\"Pale cool-white with deep indigo text. High contrast.\"],\"Wa9q4P\":[\"Pure white\"],\"Weq9zb\":[\"General\"],\"Wi9i06\":[\"Follow each visitor's system preference.\"],\"Wx1M8N\":[\"Install the GitHub App to grant access without managing personal tokens. Permissions are scoped per repository and revocable from GitHub.\"],\"X+8FMk\":[\"Current password doesn't match. Try again.\"],\"X1G9eY\":[\"Navigation Preview\"],\"X2Cbc2\":[\"Archive feed\"],\"X9Hujr\":[\"Manual Push\"],\"XtBJV8\":[\"Checking repository…\"],\"Xtc16w\":[\"Refresh repository list\"],\"Y/F35r\":[\"Create a post with curl:\"],\"Y/N5N7\":[\"Soft cream background with a muted green accent.\"],\"YF6zHf\":[\"Site settings updated.\"],\"YdG2RF\":[\"Export Site\"],\"YkgZi7\":[\"Connect a Telegram bot, then anything you message it gets published as a note.\"],\"YwhjRx\":[\"Manage Account\"],\"Yxp859\":[\"Warm cream\"],\"ZDY7Fy\":[\"Syncing…\"],\"ZQKLI1\":[\"Danger Zone\"],\"ZS/CBL\":[\"Delete this navigation link? Visitors won't see it in your site header anymore.\"],\"ZgZX+d\":[\"Pure white with neutral grays. No color tint.\"],\"ZhhOwV\":[\"Quote\"],\"ZiooJI\":[\"API Tokens\"],\"Zm7Qb0\":[\"Backup & Restore Guide\"],\"ZmUkwN\":[\"Add custom link to navigation\"],\"a14mj8\":[\"Unknown device\"],\"a1iEgy\":[\"Warm cream background with deep coffee-brown accents.\"],\"a3LDKx\":[\"Security\"],\"aAIQg2\":[\"Appearance\"],\"aFkzVF\":[\"The slug of the target post or collection\"],\"alKG0+\":[\"Font Theme\"],\"anibOb\":[\"About this blog\"],\"any7NR\":[\"Theming guide\"],\"b+/jO6\":[\"301 (Permanent)\"],\"bHOiy1\":[\"Password changes are off in demo mode. Sign in with the shared demo credentials.\"],\"bHYIks\":[\"Sign Out\"],\"bV2vng\":[\"Warm terracotta\"],\"bbR5vW\":[\"This palette\"],\"bmrL08\":[\"Demo mode hides sessions, password changes, and account deletion. Export still works.\"],\"bviiKV\":[\"Headings, body text, and links in this theme.\"],\"c3MN2z\":[\"all available endpoints and request formats.\"],\"cS7/bk\":[\"Remove the saved bot token? Its webhook is deleted and any connected account is disconnected.\"],\"cSDy01\":[\"Custom CSS updated.\"],\"clzoNp\":[\"Always show the dark version of the theme.\"],\"cnGeoo\":[\"Delete\"],\"d3FRkY\":[\"Could not copy. Try again.\"],\"d5oGUo\":[\"Create a new repository on GitHub\"],\"dEgA5A\":[\"Cancel\"],\"dTXUY+\":[\"Confirm account deletion\"],\"dYKrp3\":[\"Hidden from Latest\"],\"dk7TCH\":[\"Permanently delete all data and reset the blog\"],\"drodVV\":[\"No collections yet. Create one first, then add it to your navigation.\"],\"dsWkIw\":[\"Disconnect from GitHub? The webhook will be removed. Your repository content will not be deleted.\"],\"e/tSI5\":[\"Navigation order updated.\"],\"eOL7vn\":[\"Minimal color, low distraction.\"],\"ePK91l\":[\"Edit\"],\"ebQKK7\":[\"Site\"],\"egK+Yy\":[\"Bearer tokens for scripts and automation\"],\"ehj/zN\":[\"Redirect Type\"],\"eneWvv\":[\"Draft\"],\"erTMh7\":[\"Last synced\"],\"f+m8jj\":[\"Feed URL copied.\"],\"f8fH8W\":[\"Design\"],\"fKRAwQ\":[\"Sandy background with a green accent.\"],\"fWYqkz\":[\"Code Injection\"],\"fYXQnC\":[\"Cozy and bold among the warm tones.\"],\"gOWiTY\":[\"Load a serif font optimized for Chinese, Japanese, or Korean content.\"],\"gZ5owP\":[\"Search repositories\"],\"gbqbh6\":[\"Safe to leave this page — syncing continues in the background.\"],\"gkFvVN\":[\"Injected before </body>. Use for chat widgets and scripts that should not block page load.\"],\"gtQsRO\":[\"Create Custom URL\"],\"hBO/y4\":[\"Security token expired. Refresh the page and try again.\"],\"hGmyDl\":[\"Tokens let you access the API from scripts, shortcuts, and other tools without signing in.\"],\"hIHkRy\":[\"Connected via GitHub App\"],\"hdSi1b\":[\"Type \",[\"repo\"],\" to confirm\"],\"he3ygx\":[\"Copy\"],\"i0qMbr\":[\"Home\"],\"iEUzMn\":[\"system\"],\"iSLIjg\":[\"Connect\"],\"iVOMRi\":[\"Home settings updated.\"],\"icB4Cv\":[\"Drag links here to show them under the More menu\"],\"id3vuh\":[\"Telegram is set up, but the bot couldn't be reached. Check the bot token and try again.\"],\"ihn4zD\":[\"Search…\"],\"iiDXZc\":[\"Displayed at the bottom of all posts and pages.\"],\"itS31B\":[\"A warmer look, like slightly aged paper.\"],\"iwQZvS\":[\"Cool blue-gray\"],\"j4VrG6\":[\"Download Export ZIP\"],\"j5nQL2\":[\"e.g. iOS Shortcuts\"],\"jUV7CU\":[\"Upload Avatar\"],\"jVUmOK\":[\"Markdown supported\"],\"jdVYS8\":[\"Pick the one that fits your writing.\"],\"jgBjXJ\":[\"Revoke this token? Any scripts using it will stop working.\"],\"jpctdh\":[\"View\"],\"k1ifdL\":[\"Processing...\"],\"kLw03Y\":[\"Bright paper white\"],\"kMXclu\":[\"Download a site export\"],\"kNiQp6\":[\"Pinned\"],\"kRhzWq\":[\"GitHub Sync\"],\"kVQs7s\":[\"Fine-grained styling overrides\"],\"ke1gWS\":[\"Custom URLs\"],\"kfcRb0\":[\"Avatar\"],\"kxDZ2i\":[\"This code runs on every page of your site.\"],\"l2Op2p\":[\"Query Parameters\"],\"lLW3vJ\":[\"Target Slug\"],\"lV04bQ\":[\"Warm and earthy, but still light.\"],\"lYHJih\":[\"Revoke this session? That device will need to sign in again.\"],\"mLOk1i\":[\"Push all posts to GitHub right now instead of waiting for the next automatic sync.\"],\"mSNmrX\":[\"List posts:\"],\"nG2qTk\":[\"Example link\"],\"nK07ni\":[\"Choose a typographic direction for your site. Each theme changes both the font pairing and the reading rhythm.\"],\"nbfdhU\":[\"Integrations\"],\"ntJYyh\":[\"Domains, plan, and billing in \",[\"providerLabel\"]],\"o/vNDE\":[\"lets you override any theme variable.\"],\"oGC9uP\":[\"owner/repo\"],\"oH2JHg\":[\"We'll prefill the name \",[\"name\"],\". The list refreshes on return.\"],\"oKOOsY\":[\"Color Theme\"],\"oL535e\":[\"Not synced yet\"],\"oNA4If\":[\"All collections are already in your navigation.\"],\"oUn9Z7\":[\"Near-neutral light gray with a steel-blue accent.\"],\"ofdy2l\":[\"Orange-tinted background. The warmest palette.\"],\"pZq3aX\":[\"Upload failed. Please try again.\"],\"pgTIrt\":[\"Choose the GitHub account and repository to sync with this site.\"],\"psoxDF\":[\"That font theme isn't available. Pick another one.\"],\"pvnfJD\":[\"Dark\"],\"q+hNag\":[\"Collection\"],\"qdcESc\":[\"Create a new repository\"],\"r5EW6f\":[\"This repository is already backing up another Jant site (\",[\"host\"],\"). Pick a different repository.\"],\"rEspiY\":[\"Navigation placement updated.\"],\"rFmBG3\":[\"Color theme\"],\"rlonmB\":[\"Couldn't delete. Try again in a moment.\"],\"satWc6\":[\"Main RSS feed\"],\"sgr2wQ\":[\"collection\"],\"soRdOu\":[\"Off-white paper with a deep forest-green accent.\"],\"sqxcaY\":[\"Created \",[\"date\"]],\"sxkWRg\":[\"Advanced\"],\"t/YqKh\":[\"Remove\"],\"t3hvHq\":[\"Sync Now\"],\"tJ4H0O\":[\"your Telegram account\"],\"tfDRzk\":[\"Save\"],\"tvgAq5\":[\"No accounts authorized yet\"],\"u1VTd3\":[\"Palette, surface tone, and overall mood\"],\"u3wRF+\":[\"Published\"],\"u6KOjV\":[\"Want more control?\"],\"udPwLB\":[\"Header\"],\"ui6aMF\":[\"These devices are currently signed in to your account. Revoke any session you don't recognize.\"],\"vBEKwo\":[\"Manage this site's active sessions here. Password and hosted access are managed through \",[\"providerLabel\"],\".\"],\"vRldcl\":[\"Typography choices and reading texture\"],\"vSYKYI\":[\"Main feed\"],\"vTuib7\":[\"This controls what /feed returns.\"],\"vmQmHx\":[\"Add custom CSS to override any styles. Use data attributes like [data-page], [data-post], [data-format] to target specific elements.\"],\"vzX5FB\":[\"Delete Account\"],\"w8Rv8T\":[\"Label is required\"],\"wL3cK8\":[\"Latest\"],\"wW6NCp\":[\"Last error\"],\"wc+17X\":[\"/* Your custom CSS here */\"],\"wuLtXn\":[\"No active sessions right now. Signed-in devices show up here.\"],\"xCWek4\":[\"File storage isn't set up. Check your server config.\"],\"xHt036\":[\"Personal Access Token\"],\"xKeZ0l\":[\"An earthier, warmer tone.\"],\"xYbozN\":[\"Soft ivory\"],\"xqViCq\":[\"Warm ivory\"],\"xxaahd\":[\"When you want a cooler, sharper look.\"],\"y28hnO\":[\"Post\"],\"y8Md/V\":[\"Language and time updated.\"],\"yNCqOt\":[\"Latest feed\"],\"yQ3kNF\":[\"Type the following phrase to confirm:\"],\"ydq1k2\":[\"Pick an account first\"],\"yjjCV8\":[\"Fixed feed URLs\"],\"yjkELF\":[\"Confirm New Password\"],\"yzF66j\":[\"Link\"],\"z6wakA\":[\"A short intro shown on your home page.\"],\"zEizrk\":[\"Last used \",[\"date\"]],\"zSURJW\":[\"No repositories match.\"],\"zXH2jX\":[\"Language & Time\"],\"zlcDd2\":[\"Delete this custom URL? Visitors using it won't be redirected anymore.\"],\"zwBp5t\":[\"Private\"],\"zxRN6H\":[\"Header links, home feed, and overflow menu\"]}")as Messages;
@@ -33,16 +33,31 @@ msgstr "301 (永久)"
33
33
  msgid "302 (Temporary)"
34
34
  msgstr "302 (临时)"
35
35
 
36
+ #. @context: Slate color theme preview help line
37
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
38
+ msgid "A calm, cool backdrop."
39
+ msgstr "沉静、偏冷的底色。"
40
+
36
41
  #. @context: Help text for site description field
37
42
  #: src/ui/dash/settings/GeneralContent.tsx
38
43
  msgid "A short intro shown on your home page."
39
44
  msgstr "在您的主页上显示的简短介绍."
40
45
 
46
+ #. @context: Parchment color theme preview help line
47
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
48
+ msgid "A warmer look, like slightly aged paper."
49
+ msgstr "更暖一些,像略旧的纸。"
50
+
41
51
  #. @context: Settings form field for site description
42
52
  #: src/ui/dash/settings/GeneralContent.tsx
43
53
  msgid "About this blog"
44
54
  msgstr "关于本博客"
45
55
 
56
+ #. @context: Label next to the theme accent-color swatch in a color theme preview card
57
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
58
+ msgid "Accent"
59
+ msgstr "强调色"
60
+
46
61
  #. @context: Breadcrumb label
47
62
  #. @context: GitHub sync picker — owner dropdown label
48
63
  #. @context: Page title for the account settings menu
@@ -131,6 +146,11 @@ msgstr "始终显示暗色主题."
131
146
  msgid "Always show the light version of the theme."
132
147
  msgstr "始终显示浅色主题。"
133
148
 
149
+ #. @context: Clay color theme preview help line
150
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
151
+ msgid "An earthier, warmer tone."
152
+ msgstr "更偏暖、偏土的色调。"
153
+
134
154
  #. @context: Code Injection security warning body
135
155
  #: src/ui/dash/appearance/CodeInjectionContent.tsx
136
156
  msgid "Anything you paste here has full access to your visitors' browsers. Only use code from sources you trust."
@@ -167,6 +187,11 @@ msgstr "应用于整个站点,包括管理页面。选择一个调色板,然
167
187
  msgid "Archive"
168
188
  msgstr "归档"
169
189
 
190
+ #. @context: Label for the full-archive RSS feed URL
191
+ #: src/ui/dash/settings/GeneralContent.tsx
192
+ msgid "Archive feed"
193
+ msgstr "归档订阅源"
194
+
170
195
  #. @context: Help text for archive custom URL query params
171
196
  #: src/routes/dash/custom-urls.tsx
172
197
  msgid "Archive filter parameters (e.g. format=note&view=list)"
@@ -226,11 +251,26 @@ msgstr "博客头像"
226
251
  msgid "Bot token"
227
252
  msgstr "机器人令牌"
228
253
 
254
+ #. @context: Paper color theme preview title
255
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
256
+ msgid "Bright paper white"
257
+ msgstr "亮纸白"
258
+
259
+ #. @context: Paper color theme preview body
260
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
261
+ msgid "Bright warm-white with a moss-green accent."
262
+ msgstr "明亮的暖白底,配苔绿点缀。"
263
+
229
264
  #. @context: Section heading for built-in nav items
230
265
  #: src/ui/dash/appearance/NavigationContent.tsx
231
266
  msgid "Built-in links"
232
267
  msgstr "内置链接"
233
268
 
269
+ #. @context: Sage color theme preview help line
270
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
271
+ msgid "Calm and natural, easy on the eyes."
272
+ msgstr "平静自然,看着舒服。"
273
+
234
274
  #. @context: Button label to dismiss a dialog or action
235
275
  #. @context: Button label to dismiss a dialog or action
236
276
  #. @context: Button label to dismiss a dialog or action
@@ -294,6 +334,11 @@ msgstr "选择要与此站点同步的 GitHub 账户和仓库。"
294
334
  msgid "CJK Font"
295
335
  msgstr "CJK 字体"
296
336
 
337
+ #. @context: Paper color theme preview help line
338
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
339
+ msgid "Clean and high-contrast, close to white."
340
+ msgstr "干净、高对比,接近纯白。"
341
+
297
342
  #. @context: Breadcrumb label
298
343
  #. @context: Settings item — code injection settings
299
344
  #: src/routes/dash/settings.tsx
@@ -397,6 +442,21 @@ msgstr "连接后会将你的网站同步到 {repo} 的默认分支,并追加
397
442
  msgid "Connecting…"
398
443
  msgstr "连接中…"
399
444
 
445
+ #. @context: Settings form field for the public content language
446
+ #: src/ui/dash/settings/GeneralContent.tsx
447
+ msgid "Content language"
448
+ msgstr "内容语言"
449
+
450
+ #. @context: Slate color theme preview title
451
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
452
+ msgid "Cool blue-gray"
453
+ msgstr "冷蓝灰"
454
+
455
+ #. @context: Frost color theme preview title
456
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
457
+ msgid "Cool white"
458
+ msgstr "冷白"
459
+
400
460
  #. @context: Feedback after copying API token
401
461
  #. @context: Feedback after copying to clipboard
402
462
  #: src/ui/dash/settings/ApiTokensContent.tsx
@@ -447,6 +507,16 @@ msgstr "删除失败。请稍后再试。"
447
507
  msgid "Couldn't save. Try again in a moment."
448
508
  msgstr "保存失败。请稍后再试。"
449
509
 
510
+ #. @context: Ember color theme preview help line
511
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
512
+ msgid "Cozy and bold among the warm tones."
513
+ msgstr "暖色里最浓的一档,温馨。"
514
+
515
+ #. @context: Espresso color theme preview title
516
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
517
+ msgid "Cream and coffee brown"
518
+ msgstr "奶油配深咖"
519
+
450
520
  #. @context: Help text explaining where to get a Telegram bot token
451
521
  #: src/ui/dash/settings/TelegramContent.tsx
452
522
  msgid "Create a bot by messaging @BotFather on Telegram, then paste the token it gives you."
@@ -537,6 +607,11 @@ msgstr "危险操作"
537
607
  msgid "Dark"
538
608
  msgstr "深色"
539
609
 
610
+ #. @context: Settings form field for the admin interface language
611
+ #: src/ui/dash/settings/GeneralContent.tsx
612
+ msgid "Dashboard language"
613
+ msgstr "后台语言"
614
+
540
615
  #. @context: Settings group label for data export/import
541
616
  #: src/ui/dash/settings/AccountMenuContent.tsx
542
617
  msgid "Data"
@@ -684,6 +759,16 @@ msgstr "编辑"
684
759
  msgid "Empty repository. Ready to connect."
685
760
  msgstr "仓库为空。准备连接。"
686
761
 
762
+ #. @context: Help text under the archive feed URL, explaining it is the complete feed
763
+ #: src/ui/dash/settings/GeneralContent.tsx
764
+ msgid "Every published post, including ones hidden from Latest."
765
+ msgstr "已发布的全部帖子,包括从 Latest 中隐藏的那些。"
766
+
767
+ #. @context: Placeholder link label shown in color theme preview cards
768
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
769
+ msgid "Example link"
770
+ msgstr "示例链接"
771
+
687
772
  #. @context: Confirmation text after downloading the site export in delete flow
688
773
  #: src/ui/dash/settings/DeleteAccountContent.tsx
689
774
  msgid "Export downloaded."
@@ -728,11 +813,6 @@ msgstr "订阅源 URL 已复制。"
728
813
  msgid "Feeds"
729
814
  msgstr "订阅源"
730
815
 
731
- #. @context: Color theme preview card title
732
- #: src/ui/dash/appearance/ColorThemeContent.tsx
733
- msgid "Field notes on quiet design"
734
- msgstr "关于静谧设计的笔记"
735
-
736
816
  #. @context: Error toast when file storage is not set up
737
817
  #: src/routes/dash/settings.tsx
738
818
  msgid "File storage isn't set up. Check your server config."
@@ -808,6 +888,11 @@ msgstr "页眉链接、首页信息流和溢出菜单"
808
888
  msgid "Header RSS points to your {feed} feed (/feed). Change what /feed returns in General."
809
889
  msgstr "页眉 RSS 指向你的 {feed} 源 (/feed)。在 常规 中更改 /feed 返回的内容。"
810
890
 
891
+ #. @context: Fallback color theme preview body
892
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
893
+ msgid "Headings, body text, and links in this theme."
894
+ msgstr "这个主题下的标题、正文和链接。"
895
+
811
896
  #. @context: Post badge for posts hidden from Latest
812
897
  #: src/ui/dash/StatusBadge.tsx
813
898
  msgid "Hidden from Latest"
@@ -875,11 +960,6 @@ msgstr "标签和 URL 为必填项"
875
960
  msgid "Label is required"
876
961
  msgstr "标签为必填项"
877
962
 
878
- #. @context: Settings form field for site/admin language
879
- #: src/ui/dash/settings/GeneralContent.tsx
880
- msgid "Language"
881
- msgstr "语言"
882
-
883
963
  #. @context: Settings subsection heading for language and time zone fields
884
964
  #: src/ui/dash/settings/GeneralContent.tsx
885
965
  msgid "Language & Time"
@@ -932,6 +1012,16 @@ msgstr "允许您覆盖任何主题变量."
932
1012
  msgid "Light"
933
1013
  msgstr "浅色"
934
1014
 
1015
+ #. @context: Slate color theme preview body
1016
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1017
+ msgid "Light blue-gray background, cool and even."
1018
+ msgstr "浅蓝灰底,冷静而均匀。"
1019
+
1020
+ #. @context: Sage color theme preview body
1021
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1022
+ msgid "Light sage-green with a matching green accent."
1023
+ msgstr "浅鼠尾草绿底,配同色系的绿。"
1024
+
935
1025
  #. @context: Nav item type badge
936
1026
  #: src/ui/dash/appearance/NavigationContent.tsx
937
1027
  msgid "link"
@@ -1012,6 +1102,11 @@ msgstr "支持 Markdown"
1012
1102
  msgid "Message the bot any text and it's published as a note."
1013
1103
  msgstr "向机器人发送任意文本,它会作为笔记已发布。"
1014
1104
 
1105
+ #. @context: Ink color theme preview help line
1106
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1107
+ msgid "Minimal color, low distraction."
1108
+ msgstr "色彩极少,干扰最小。"
1109
+
1015
1110
  #. @context: Section label for nav items hidden under More dropdown
1016
1111
  #: src/ui/dash/appearance/NavigationContent.tsx
1017
1112
  msgid "More"
@@ -1022,6 +1117,11 @@ msgstr "更多"
1022
1117
  msgid "More actions"
1023
1118
  msgstr "更多操作"
1024
1119
 
1120
+ #. @context: Clay color theme preview body
1121
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1122
+ msgid "Muted red-brown background, earthy and warm."
1123
+ msgstr "低饱和的红棕底,温暖、有泥土感。"
1124
+
1025
1125
  #. @context: Settings item description for general
1026
1126
  #: src/ui/dash/settings/SettingsRootContent.tsx
1027
1127
  msgid "Name, metadata, language, and search defaults"
@@ -1054,11 +1154,26 @@ msgstr "导航位置已更新."
1054
1154
  msgid "Navigation Preview"
1055
1155
  msgstr "导航预览"
1056
1156
 
1157
+ #. @context: Ink color theme preview body
1158
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1159
+ msgid "Near-neutral light gray with a steel-blue accent."
1160
+ msgstr "近中性的浅灰,配钢蓝点缀。"
1161
+
1162
+ #. @context: Cotton color theme preview help line
1163
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1164
+ msgid "Nearly white, with a touch of warmth."
1165
+ msgstr "近乎纯白,带一点暖意。"
1166
+
1057
1167
  #. @context: Help text for GitHub PAT input explaining required permissions
1058
1168
  #: src/ui/dash/settings/GitHubSyncContent.tsx
1059
1169
  msgid "Needs Contents (read/write) and Webhooks (read/write) on the target repository."
1060
1170
  msgstr "需要对目标仓库的 Contents(读/写)和 Webhooks(读/写)。"
1061
1171
 
1172
+ #. @context: Ink color theme preview title
1173
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1174
+ msgid "Neutral gray"
1175
+ msgstr "中性灰"
1176
+
1062
1177
  #. @context: Button to create new custom URL
1063
1178
  #. @context: Button to create new custom URL
1064
1179
  #. @context: Page heading
@@ -1125,6 +1240,11 @@ msgstr "尚未同步"
1125
1240
  msgid "Note"
1126
1241
  msgstr "笔记"
1127
1242
 
1243
+ #. @context: Tufte color theme preview body
1244
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1245
+ msgid "Off-white paper with a deep forest-green accent."
1246
+ msgstr "米白纸底,配深森绿。"
1247
+
1128
1248
  #. @context: Caption inside the manual Telegram binding fallback. {linkOpen}/{linkClose} wrap the bot username as a t.me link — keep them around the @username token in translations.
1129
1249
  #: src/ui/dash/settings/TelegramContent.tsx
1130
1250
  msgid "Open {linkOpen}@{botUsername}{linkClose} and send:"
@@ -1145,11 +1265,26 @@ msgstr "打开机器人并发送绑定码, 然后你发送给它的任何消息
1145
1265
  msgid "or"
1146
1266
  msgstr "或"
1147
1267
 
1268
+ #. @context: Ember color theme preview body
1269
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1270
+ msgid "Orange-tinted background. The warmest palette."
1271
+ msgstr "带橘调的底色。最暖的一套。"
1272
+
1148
1273
  #. @context: GitHub sync picker — placeholder text showing the expected input shape
1149
1274
  #: src/routes/dash/settings.tsx
1150
1275
  msgid "owner/repo"
1151
1276
  msgstr "owner/repo"
1152
1277
 
1278
+ #. @context: Bone color theme preview body
1279
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1280
+ msgid "Pale bone-white with a muted green accent."
1281
+ msgstr "浅骨白底,配低饱和的绿。"
1282
+
1283
+ #. @context: Frost color theme preview body
1284
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1285
+ msgid "Pale cool-white with deep indigo text. High contrast."
1286
+ msgstr "偏冷的浅白底,配深靛蓝文字。高对比。"
1287
+
1153
1288
  #. @context: Settings item description for color theme
1154
1289
  #: src/ui/dash/settings/SettingsRootContent.tsx
1155
1290
  msgid "Palette, surface tone, and overall mood"
@@ -1202,6 +1337,11 @@ msgstr "选择仓库"
1202
1337
  msgid "Pick an account first"
1203
1338
  msgstr "请先选择一个账号"
1204
1339
 
1340
+ #. @context: Fallback color theme preview help line
1341
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1342
+ msgid "Pick the one that fits your writing."
1343
+ msgstr "选一个适合你文字的。"
1344
+
1205
1345
  #. @context: Description in collection picker section
1206
1346
  #: src/ui/dash/appearance/NavigationContent.tsx
1207
1347
  msgid "Pin a collection to your navigation bar. An asterisk (*) appears next to collections updated in the last 48 hours."
@@ -1239,6 +1379,16 @@ msgstr "处理中..."
1239
1379
  msgid "Published"
1240
1380
  msgstr "已发布"
1241
1381
 
1382
+ #. @context: Snow color theme preview title
1383
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1384
+ msgid "Pure white"
1385
+ msgstr "纯白"
1386
+
1387
+ #. @context: Snow color theme preview body
1388
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1389
+ msgid "Pure white with neutral grays. No color tint."
1390
+ msgstr "纯白底配中性灰。不带任何色偏。"
1391
+
1242
1392
  #. @context: Description for manual push action on GitHub Sync settings
1243
1393
  #: src/ui/dash/settings/GitHubSyncContent.tsx
1244
1394
  msgid "Push all posts to GitHub right now instead of waiting for the next automatic sync."
@@ -1254,20 +1404,15 @@ msgstr "链接到 Telegram 机器人的二维码"
1254
1404
  msgid "Query Parameters"
1255
1405
  msgstr "查询参数"
1256
1406
 
1257
- #. @context: Color theme preview card secondary sentence
1258
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1259
- msgid "Quiet surfaces let writing lead."
1260
- msgstr "低调的界面让写作成为焦点."
1261
-
1262
1407
  #. @context: Post format badge - quote
1263
1408
  #: src/ui/dash/FormatBadge.tsx
1264
1409
  msgid "Quote"
1265
1410
  msgstr "引用 (Jant 的帖子格式之一。)"
1266
1411
 
1267
- #. @context: Color theme preview inline link label
1268
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1269
- msgid "Read why"
1270
- msgstr "了解原因"
1412
+ #. @context: Lead text before a live <html lang> preview of the content language
1413
+ #: src/ui/dash/settings/GeneralContent.tsx
1414
+ msgid "Readers and search engines see"
1415
+ msgstr "读者和搜索引擎看到的是"
1271
1416
 
1272
1417
  #. @context: Custom URL target type badge for a redirect
1273
1418
  #. @context: Custom URL type option
@@ -1354,6 +1499,11 @@ msgstr "撤销此令牌?任何使用它的脚本将停止工作。"
1354
1499
  msgid "Safe to leave this page — syncing continues in the background."
1355
1500
  msgstr "放心离开此页面 — 同步会在后台继续进行。"
1356
1501
 
1502
+ #. @context: Dune color theme preview body
1503
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1504
+ msgid "Sandy background with a green accent."
1505
+ msgstr "沙色底,配绿色点缀。"
1506
+
1357
1507
  #. @context: Button to save Code Injection settings
1358
1508
  #. @context: Button to save settings
1359
1509
  #. @context: Button to save settings changes
@@ -1444,11 +1594,6 @@ msgstr "会话"
1444
1594
  msgid "Sessions and password"
1445
1595
  msgstr "会话与密码"
1446
1596
 
1447
- #. @context: Help text under the site language input
1448
- #: src/ui/dash/settings/GeneralContent.tsx
1449
- msgid "Sets the content language announced to readers (HTML lang, RSS) and the dashboard language. Any BCP 47 tag is accepted; tags without a dashboard translation fall back to English."
1450
- msgstr "声明给读者的内容语言(HTML lang、RSS),同时驱动后台界面的语言。可填任意 BCP 47 标签;没有对应翻译时后台会回退为英文。"
1451
-
1452
1597
  #. @context: Breadcrumb label
1453
1598
  #. @context: Page title for the settings home page
1454
1599
  #: src/routes/dash/settings.tsx
@@ -1510,10 +1655,20 @@ msgstr "站点设置已更新."
1510
1655
  msgid "Site-wide HTML for analytics and widgets"
1511
1656
  msgstr "用于分析和小部件的全站 HTML"
1512
1657
 
1513
- #. @context: Color theme preview card body sentence
1658
+ #. @context: Linen color theme preview body
1659
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1660
+ msgid "Soft cream background with a muted green accent."
1661
+ msgstr "柔和的奶油底,配低饱和的绿。"
1662
+
1663
+ #. @context: Sage color theme preview title
1664
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1665
+ msgid "Soft green"
1666
+ msgstr "柔绿"
1667
+
1668
+ #. @context: Cotton color theme preview title
1514
1669
  #: src/ui/dash/appearance/ColorThemeContent.tsx
1515
- msgid "Soft color should still carry a clear reading rhythm."
1516
- msgstr "柔和的颜色仍应保持清晰的阅读节奏。"
1670
+ msgid "Soft ivory"
1671
+ msgstr "柔象牙白"
1517
1672
 
1518
1673
  #. @context: Description for the Telegram disconnect action
1519
1674
  #: src/ui/dash/settings/TelegramContent.tsx
@@ -1566,6 +1721,31 @@ msgstr "该字体主题不可用。请选择另一个。"
1566
1721
  msgid "That theme isn't available. Pick another one."
1567
1722
  msgstr "该主题不可用。请选择其他主题。"
1568
1723
 
1724
+ #. @context: Snow color theme preview help line
1725
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1726
+ msgid "The cleanest, most neutral option."
1727
+ msgstr "最干净、最中性的一档。"
1728
+
1729
+ #. @context: Tufte color theme preview help line
1730
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1731
+ msgid "The default. Calm and easy for long reading."
1732
+ msgstr "默认主题。沉静,适合长时间阅读。"
1733
+
1734
+ #. @context: Help text under the dashboard language picker
1735
+ #: src/ui/dash/settings/GeneralContent.tsx
1736
+ msgid "The language this admin dashboard shows in. Available in English, 简体中文, and 繁體中文."
1737
+ msgstr "后台界面显示的语言。可选 English、简体中文 和 繁體中文。"
1738
+
1739
+ #. @context: Help text under the content language picker
1740
+ #: src/ui/dash/settings/GeneralContent.tsx
1741
+ msgid "The language your posts are written in. Announced to readers and search engines through HTML lang and your RSS feed. Any BCP 47 tag works."
1742
+ msgstr "你撰写内容所用的语言。通过 HTML lang 和 RSS 向读者与搜索引擎声明。支持任意 BCP 47 标签。"
1743
+
1744
+ #. @context: Linen color theme preview help line
1745
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1746
+ msgid "The original Jant palette, and a solid everyday pick."
1747
+ msgstr "Jant 最初的配色,日常稳妥之选。"
1748
+
1569
1749
  #. @context: Custom URL target slug help text
1570
1750
  #: src/routes/dash/custom-urls.tsx
1571
1751
  msgid "The slug of the target post or collection"
@@ -1606,6 +1786,11 @@ msgstr "此托管站点通过 {providerLabel} 登录。请在那里管理密码
1606
1786
  msgid "This is used for your favicon and apple-touch-icon. For best results, upload a square PNG with a solid background at least 512x512 pixels."
1607
1787
  msgstr "此图用于您的 favicon 和 apple-touch-icon。为获得最佳效果,请上传至少 512×512 像素、纯色背景的方形 PNG。"
1608
1788
 
1789
+ #. @context: Fallback color theme preview title
1790
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1791
+ msgid "This palette"
1792
+ msgstr "这套配色"
1793
+
1609
1794
  #. @context: GitHub sync picker — confirmation card heading for foreign repos
1610
1795
  #: src/routes/dash/settings.tsx
1611
1796
  msgid "This repository already has commits"
@@ -1746,6 +1931,11 @@ msgstr "将精选文章用于 /feed。"
1746
1931
  msgid "Uses the latest public posts for /feed."
1747
1932
  msgstr "为 /feed 使用最新的公开帖子。"
1748
1933
 
1934
+ #. @context: Cotton color theme preview body
1935
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1936
+ msgid "Very light ivory with a faint tea-green accent."
1937
+ msgstr "极浅的象牙底,配淡淡的茶绿。"
1938
+
1749
1939
  #. @context: Button to view item on public site
1750
1940
  #: src/ui/dash/ActionButtons.tsx
1751
1941
  msgid "View"
@@ -1756,6 +1946,61 @@ msgstr "查看"
1756
1946
  msgid "Want more control?"
1757
1947
  msgstr "想要更多控制?"
1758
1948
 
1949
+ #. @context: Dune color theme preview help line
1950
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1951
+ msgid "Warm and earthy, but still light."
1952
+ msgstr "温暖、有泥土感,但不显暗。"
1953
+
1954
+ #. @context: Espresso color theme preview help line
1955
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1956
+ msgid "Warm and rich, with strong brown tones."
1957
+ msgstr "暖而厚重,棕调明显。"
1958
+
1959
+ #. @context: Linen color theme preview title
1960
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1961
+ msgid "Warm cream"
1962
+ msgstr "暖奶油色"
1963
+
1964
+ #. @context: Espresso color theme preview body
1965
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1966
+ msgid "Warm cream background with deep coffee-brown accents."
1967
+ msgstr "暖奶油底,配深咖啡棕点缀。"
1968
+
1969
+ #. @context: Tufte color theme preview title
1970
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1971
+ msgid "Warm ivory"
1972
+ msgstr "暖象牙白"
1973
+
1974
+ #. @context: Bone color theme preview title
1975
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1976
+ msgid "Warm off-white"
1977
+ msgstr "暖白"
1978
+
1979
+ #. @context: Ember color theme preview title
1980
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1981
+ msgid "Warm orange"
1982
+ msgstr "暖橘"
1983
+
1984
+ #. @context: Parchment color theme preview title
1985
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1986
+ msgid "Warm parchment"
1987
+ msgstr "暖羊皮纸"
1988
+
1989
+ #. @context: Dune color theme preview title
1990
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1991
+ msgid "Warm sand"
1992
+ msgstr "暖沙色"
1993
+
1994
+ #. @context: Clay color theme preview title
1995
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
1996
+ msgid "Warm terracotta"
1997
+ msgstr "暖陶土色"
1998
+
1999
+ #. @context: Bone color theme preview help line
2000
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
2001
+ msgid "Warm-neutral and easy for long reading."
2002
+ msgstr "暖中性,适合长读。"
2003
+
1759
2004
  #. @context: GitHub sync picker — hint under the create-on-github entry. Placeholder {name} is the suggested repo name.
1760
2005
  #: src/routes/dash/settings.tsx
1761
2006
  msgid "We'll prefill the name {name}. The list refreshes on return."
@@ -1766,6 +2011,16 @@ msgstr "我们会预先填充名称 {name}。返回时列表会刷新。"
1766
2011
  msgid "When to use site export, database backups, and recovery drills."
1767
2012
  msgstr "何时使用站点导出、数据库备份和恢复演练。"
1768
2013
 
2014
+ #. @context: Frost color theme preview help line
2015
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
2016
+ msgid "When you want a cooler, sharper look."
2017
+ msgstr "想要更冷、更利落的观感时。"
2018
+
2019
+ #. @context: Parchment color theme preview body
2020
+ #: src/ui/dash/appearance/ColorThemeContent.tsx
2021
+ msgid "Yellow-tinted paper with an olive-green accent."
2022
+ msgstr "微黄的纸底,配橄榄绿。"
2023
+
1769
2024
  #. @context: Fallback name when a connected Telegram account has no username
1770
2025
  #: src/ui/dash/settings/TelegramContent.tsx
1771
2026
  msgid "your Telegram account"