@jant/core 0.3.6 → 0.3.8
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/dist/app.js +11 -21
- package/dist/client.js +1 -0
- package/dist/db/schema.js +15 -0
- package/dist/i18n/locales/en.js +1 -1
- package/dist/i18n/locales/zh-Hans.js +1 -1
- package/dist/i18n/locales/zh-Hant.js +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/image.js +3 -3
- package/dist/lib/media-helpers.js +43 -0
- package/dist/lib/nav-reorder.js +27 -0
- package/dist/lib/navigation.js +35 -0
- package/dist/lib/schemas.js +32 -2
- package/dist/lib/sse.js +7 -8
- package/dist/lib/theme-components.js +49 -0
- package/dist/routes/api/posts.js +101 -5
- package/dist/routes/api/timeline.js +115 -0
- package/dist/routes/api/upload.js +9 -5
- package/dist/routes/dash/media.js +38 -0
- package/dist/routes/dash/navigation.js +274 -0
- package/dist/routes/dash/posts.js +45 -6
- package/dist/routes/feed/rss.js +10 -1
- package/dist/routes/pages/archive.js +14 -27
- package/dist/routes/pages/collection.js +10 -19
- package/dist/routes/pages/home.js +88 -98
- package/dist/routes/pages/page.js +19 -38
- package/dist/routes/pages/post.js +61 -48
- package/dist/routes/pages/search.js +13 -26
- package/dist/services/collection.js +13 -0
- package/dist/services/index.js +3 -1
- package/dist/services/media.js +55 -2
- package/dist/services/navigation.js +115 -0
- package/dist/services/post.js +26 -1
- package/dist/theme/components/MediaGallery.js +107 -0
- package/dist/theme/components/PostForm.js +158 -2
- package/dist/theme/components/PostList.js +5 -0
- package/dist/theme/components/index.js +3 -0
- package/dist/theme/components/timeline/ArticleCard.js +50 -0
- package/dist/theme/components/timeline/ImageCard.js +86 -0
- package/dist/theme/components/timeline/LinkCard.js +62 -0
- package/dist/theme/components/timeline/NoteCard.js +37 -0
- package/dist/theme/components/timeline/QuoteCard.js +51 -0
- package/dist/theme/components/timeline/ThreadPreview.js +52 -0
- package/dist/theme/components/timeline/TimelineFeed.js +43 -0
- package/dist/theme/components/timeline/TimelineItem.js +25 -0
- package/dist/theme/components/timeline/index.js +8 -0
- package/dist/theme/layouts/DashLayout.js +8 -0
- package/dist/theme/layouts/SiteLayout.js +160 -0
- package/dist/theme/layouts/index.js +1 -0
- package/dist/types/sortablejs.d.js +5 -0
- package/dist/types.js +27 -0
- package/package.json +3 -2
- package/src/__tests__/helpers/app.ts +6 -1
- package/src/__tests__/helpers/db.ts +20 -0
- package/src/app.tsx +11 -25
- package/src/client.ts +1 -0
- package/src/db/migrations/0002_add_media_attachments.sql +3 -0
- package/src/db/migrations/0003_add_navigation_links.sql +8 -0
- package/src/db/migrations/meta/0003_snapshot.json +821 -0
- package/src/db/migrations/meta/_journal.json +14 -0
- package/src/db/schema.ts +15 -0
- package/src/i18n/locales/en.po +170 -58
- package/src/i18n/locales/en.ts +1 -1
- package/src/i18n/locales/zh-Hans.po +162 -71
- package/src/i18n/locales/zh-Hans.ts +1 -1
- package/src/i18n/locales/zh-Hant.po +162 -71
- package/src/i18n/locales/zh-Hant.ts +1 -1
- package/src/index.ts +13 -1
- package/src/lib/__tests__/schemas.test.ts +89 -1
- package/src/lib/__tests__/sse.test.ts +13 -1
- package/src/lib/__tests__/theme-components.test.ts +107 -0
- package/src/lib/image.ts +3 -3
- package/src/lib/media-helpers.ts +54 -0
- package/src/lib/nav-reorder.ts +26 -0
- package/src/lib/navigation.ts +46 -0
- package/src/lib/schemas.ts +47 -1
- package/src/lib/sse.ts +10 -11
- package/src/lib/theme-components.ts +76 -0
- package/src/routes/api/__tests__/posts.test.ts +239 -0
- package/src/routes/api/__tests__/timeline.test.ts +242 -0
- package/src/routes/api/posts.ts +134 -5
- package/src/routes/api/timeline.tsx +145 -0
- package/src/routes/api/upload.ts +9 -5
- package/src/routes/dash/media.tsx +50 -0
- package/src/routes/dash/navigation.tsx +306 -0
- package/src/routes/dash/posts.tsx +79 -7
- package/src/routes/feed/rss.ts +14 -1
- package/src/routes/pages/archive.tsx +15 -23
- package/src/routes/pages/collection.tsx +8 -15
- package/src/routes/pages/home.tsx +121 -88
- package/src/routes/pages/page.tsx +17 -30
- package/src/routes/pages/post.tsx +64 -40
- package/src/routes/pages/search.tsx +18 -22
- package/src/services/__tests__/collection.test.ts +102 -0
- package/src/services/__tests__/media.test.ts +282 -7
- package/src/services/__tests__/navigation.test.ts +213 -0
- package/src/services/__tests__/post-timeline.test.ts +220 -0
- package/src/services/collection.ts +19 -0
- package/src/services/index.ts +7 -0
- package/src/services/media.ts +78 -2
- package/src/services/navigation.ts +165 -0
- package/src/services/post.ts +48 -1
- package/src/styles/components.css +59 -0
- package/src/theme/components/MediaGallery.tsx +128 -0
- package/src/theme/components/PostForm.tsx +170 -2
- package/src/theme/components/PostList.tsx +7 -0
- package/src/theme/components/index.ts +13 -0
- package/src/theme/components/timeline/ArticleCard.tsx +57 -0
- package/src/theme/components/timeline/ImageCard.tsx +80 -0
- package/src/theme/components/timeline/LinkCard.tsx +66 -0
- package/src/theme/components/timeline/NoteCard.tsx +41 -0
- package/src/theme/components/timeline/QuoteCard.tsx +55 -0
- package/src/theme/components/timeline/ThreadPreview.tsx +49 -0
- package/src/theme/components/timeline/TimelineFeed.tsx +52 -0
- package/src/theme/components/timeline/TimelineItem.tsx +39 -0
- package/src/theme/components/timeline/index.ts +8 -0
- package/src/theme/layouts/DashLayout.tsx +10 -0
- package/src/theme/layouts/SiteLayout.tsx +184 -0
- package/src/theme/layouts/index.ts +1 -0
- package/src/types/sortablejs.d.ts +23 -0
- package/src/types.ts +97 -0
- package/dist/app.d.ts +0 -38
- package/dist/app.d.ts.map +0 -1
- package/dist/auth.d.ts +0 -25
- package/dist/auth.d.ts.map +0 -1
- package/dist/db/index.d.ts +0 -10
- package/dist/db/index.d.ts.map +0 -1
- package/dist/db/schema.d.ts +0 -1507
- package/dist/db/schema.d.ts.map +0 -1
- package/dist/i18n/Trans.d.ts +0 -25
- package/dist/i18n/Trans.d.ts.map +0 -1
- package/dist/i18n/context.d.ts +0 -69
- package/dist/i18n/context.d.ts.map +0 -1
- package/dist/i18n/detect.d.ts +0 -20
- package/dist/i18n/detect.d.ts.map +0 -1
- package/dist/i18n/i18n.d.ts +0 -32
- package/dist/i18n/i18n.d.ts.map +0 -1
- package/dist/i18n/index.d.ts +0 -41
- package/dist/i18n/index.d.ts.map +0 -1
- package/dist/i18n/locales/en.d.ts +0 -3
- package/dist/i18n/locales/en.d.ts.map +0 -1
- package/dist/i18n/locales/zh-Hans.d.ts +0 -3
- package/dist/i18n/locales/zh-Hans.d.ts.map +0 -1
- package/dist/i18n/locales/zh-Hant.d.ts +0 -3
- package/dist/i18n/locales/zh-Hant.d.ts.map +0 -1
- package/dist/i18n/locales.d.ts +0 -11
- package/dist/i18n/locales.d.ts.map +0 -1
- package/dist/i18n/middleware.d.ts +0 -21
- package/dist/i18n/middleware.d.ts.map +0 -1
- package/dist/index.d.ts +0 -16
- package/dist/index.d.ts.map +0 -1
- package/dist/lib/config.d.ts +0 -83
- package/dist/lib/config.d.ts.map +0 -1
- package/dist/lib/constants.d.ts +0 -37
- package/dist/lib/constants.d.ts.map +0 -1
- package/dist/lib/image.d.ts +0 -73
- package/dist/lib/image.d.ts.map +0 -1
- package/dist/lib/index.d.ts +0 -9
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/markdown.d.ts +0 -60
- package/dist/lib/markdown.d.ts.map +0 -1
- package/dist/lib/schemas.d.ts +0 -113
- package/dist/lib/schemas.d.ts.map +0 -1
- package/dist/lib/sqid.d.ts +0 -60
- package/dist/lib/sqid.d.ts.map +0 -1
- package/dist/lib/sse.d.ts +0 -192
- package/dist/lib/sse.d.ts.map +0 -1
- package/dist/lib/theme.d.ts +0 -44
- package/dist/lib/theme.d.ts.map +0 -1
- package/dist/lib/time.d.ts +0 -90
- package/dist/lib/time.d.ts.map +0 -1
- package/dist/lib/url.d.ts +0 -82
- package/dist/lib/url.d.ts.map +0 -1
- package/dist/middleware/auth.d.ts +0 -24
- package/dist/middleware/auth.d.ts.map +0 -1
- package/dist/middleware/onboarding.d.ts +0 -26
- package/dist/middleware/onboarding.d.ts.map +0 -1
- package/dist/routes/api/posts.d.ts +0 -13
- package/dist/routes/api/posts.d.ts.map +0 -1
- package/dist/routes/api/search.d.ts +0 -13
- package/dist/routes/api/search.d.ts.map +0 -1
- package/dist/routes/api/upload.d.ts +0 -16
- package/dist/routes/api/upload.d.ts.map +0 -1
- package/dist/routes/dash/collections.d.ts +0 -13
- package/dist/routes/dash/collections.d.ts.map +0 -1
- package/dist/routes/dash/index.d.ts +0 -15
- package/dist/routes/dash/index.d.ts.map +0 -1
- package/dist/routes/dash/media.d.ts +0 -16
- package/dist/routes/dash/media.d.ts.map +0 -1
- package/dist/routes/dash/pages.d.ts +0 -15
- package/dist/routes/dash/pages.d.ts.map +0 -1
- package/dist/routes/dash/posts.d.ts +0 -13
- package/dist/routes/dash/posts.d.ts.map +0 -1
- package/dist/routes/dash/redirects.d.ts +0 -13
- package/dist/routes/dash/redirects.d.ts.map +0 -1
- package/dist/routes/dash/settings.d.ts +0 -15
- package/dist/routes/dash/settings.d.ts.map +0 -1
- package/dist/routes/feed/rss.d.ts +0 -13
- package/dist/routes/feed/rss.d.ts.map +0 -1
- package/dist/routes/feed/sitemap.d.ts +0 -13
- package/dist/routes/feed/sitemap.d.ts.map +0 -1
- package/dist/routes/pages/archive.d.ts +0 -15
- package/dist/routes/pages/archive.d.ts.map +0 -1
- package/dist/routes/pages/collection.d.ts +0 -13
- package/dist/routes/pages/collection.d.ts.map +0 -1
- package/dist/routes/pages/home.d.ts +0 -13
- package/dist/routes/pages/home.d.ts.map +0 -1
- package/dist/routes/pages/page.d.ts +0 -15
- package/dist/routes/pages/page.d.ts.map +0 -1
- package/dist/routes/pages/post.d.ts +0 -13
- package/dist/routes/pages/post.d.ts.map +0 -1
- package/dist/routes/pages/search.d.ts +0 -13
- package/dist/routes/pages/search.d.ts.map +0 -1
- package/dist/services/collection.d.ts +0 -31
- package/dist/services/collection.d.ts.map +0 -1
- package/dist/services/index.d.ts +0 -28
- package/dist/services/index.d.ts.map +0 -1
- package/dist/services/media.d.ts +0 -27
- package/dist/services/media.d.ts.map +0 -1
- package/dist/services/post.d.ts +0 -31
- package/dist/services/post.d.ts.map +0 -1
- package/dist/services/redirect.d.ts +0 -15
- package/dist/services/redirect.d.ts.map +0 -1
- package/dist/services/search.d.ts +0 -26
- package/dist/services/search.d.ts.map +0 -1
- package/dist/services/settings.d.ts +0 -18
- package/dist/services/settings.d.ts.map +0 -1
- package/dist/theme/color-themes.d.ts +0 -30
- package/dist/theme/color-themes.d.ts.map +0 -1
- package/dist/theme/components/ActionButtons.d.ts +0 -43
- package/dist/theme/components/ActionButtons.d.ts.map +0 -1
- package/dist/theme/components/CrudPageHeader.d.ts +0 -23
- package/dist/theme/components/CrudPageHeader.d.ts.map +0 -1
- package/dist/theme/components/DangerZone.d.ts +0 -36
- package/dist/theme/components/DangerZone.d.ts.map +0 -1
- package/dist/theme/components/EmptyState.d.ts +0 -27
- package/dist/theme/components/EmptyState.d.ts.map +0 -1
- package/dist/theme/components/ListItemRow.d.ts +0 -15
- package/dist/theme/components/ListItemRow.d.ts.map +0 -1
- package/dist/theme/components/PageForm.d.ts +0 -14
- package/dist/theme/components/PageForm.d.ts.map +0 -1
- package/dist/theme/components/Pagination.d.ts +0 -46
- package/dist/theme/components/Pagination.d.ts.map +0 -1
- package/dist/theme/components/PostForm.d.ts +0 -11
- package/dist/theme/components/PostForm.d.ts.map +0 -1
- package/dist/theme/components/PostList.d.ts +0 -10
- package/dist/theme/components/PostList.d.ts.map +0 -1
- package/dist/theme/components/ThreadView.d.ts +0 -15
- package/dist/theme/components/ThreadView.d.ts.map +0 -1
- package/dist/theme/components/TypeBadge.d.ts +0 -12
- package/dist/theme/components/TypeBadge.d.ts.map +0 -1
- package/dist/theme/components/VisibilityBadge.d.ts +0 -12
- package/dist/theme/components/VisibilityBadge.d.ts.map +0 -1
- package/dist/theme/components/index.d.ts +0 -13
- package/dist/theme/components/index.d.ts.map +0 -1
- package/dist/theme/index.d.ts +0 -21
- package/dist/theme/index.d.ts.map +0 -1
- package/dist/theme/layouts/BaseLayout.d.ts +0 -23
- package/dist/theme/layouts/BaseLayout.d.ts.map +0 -1
- package/dist/theme/layouts/DashLayout.d.ts +0 -17
- package/dist/theme/layouts/DashLayout.d.ts.map +0 -1
- package/dist/theme/layouts/index.d.ts +0 -3
- package/dist/theme/layouts/index.d.ts.map +0 -1
- package/dist/types.d.ts +0 -213
- package/dist/types.d.ts.map +0 -1
package/src/i18n/locales/en.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"+7Wr2a\":[\"Edit: \",[\"title\"]],\"+MACwa\":[\"No collections yet.\"],\"+owNNn\":[\"Posts\"],\"+zy2Nq\":[\"Type\"],\"/0D1Xp\":[\"Edit Collection\"],\"/Rj5P4\":[\"Your Name\"],\"07Epll\":[\"This will theme both your site and your dashboard. All color themes support dark mode.\"],\"0JkyS7\":[\"Create your first page\"],\"0a6MpL\":[\"New Redirect\"],\"1CU1Td\":[\"URL-safe identifier (lowercase, numbers, hyphens)\"],\"1DBGsz\":[\"Notes\"],\"2N0qpv\":[\"Post title...\"],\"2q/Q7x\":[\"Visibility\"],\"2rJGtU\":[\"Page title...\"],\"3Yvsaz\":[\"302 (Temporary)\"],\"4/SFQS\":[\"View Site\"],\"40TVQj\":[\"Custom Path (optional)\"],\"4KzVT6\":[\"Delete Page\"],\"4b3oEV\":[\"Content\"],\"4mDPGp\":[\"The URL path for this page. Use lowercase letters, numbers, and hyphens.\"],\"6WdDG7\":[\"Page\"],\"6YtxFj\":[\"Name\"],\"7G4SBz\":[\"Page content (Markdown supported)...\"],\"7Mk+/h\":[\"Update Collection\"],\"7Q1KKN\":[\"From Path\"],\"7aECQB\":[\"Invalid or Expired Link\"],\"7nGhhM\":[\"What's on your mind?\"],\"7p5kLi\":[\"Dashboard\"],\"7vhWI8\":[\"New Password\"],\"8ZsakT\":[\"Password\"],\"90Luob\":[[\"count\"],\" replies\"],\"A1taO8\":[\"Search\"],\"AeXO77\":[\"Account\"],\"AyHO4m\":[\"What's this collection about?\"],\"B373X+\":[\"Edit Post\"],\"B495Gs\":[\"Archive\"],\"BjF0Jv\":[\"Lowercase letters, numbers, and hyphens only\"],\"D9Oea+\":[\"Permalink\"],\"DCKkhU\":[\"Current Password\"],\"DHhJ7s\":[\"Previous\"],\"DoJzLz\":[\"Collections\"],\"E80cJw\":[\"Deleting this media will remove it permanently from storage.\"],\"EEYbdt\":[\"Publish\"],\"EGwzOK\":[\"Complete Setup\"],\"EkH9pt\":[\"Update\"],\"FGrimz\":[\"New Post\"],\"FkMol5\":[\"Featured\"],\"Fxf4jq\":[\"Description (optional)\"],\"GA5A5H\":[\"Delete Collection\"],\"GX2VMa\":[\"Create your admin account.\"],\"GbVAnd\":[\"This password reset link is invalid or has expired. Please generate a new one.\"],\"GorKul\":[\"Welcome to Jant\"],\"GrZ6fH\":[\"New Page\"],\"GxkJXS\":[\"Uploading...\"],\"HfyyXl\":[\"My Blog\"],\"HiETwV\":[\"Quiet (normal)\"],\"Hzi9AA\":[\"No posts found.\"],\"I6gXOa\":[\"Path\"],\"IagCbF\":[\"URL\"],\"J4FNfC\":[\"No posts in this collection.\"],\"JIBC/T\":[\"Supported formats: JPEG, PNG, GIF, WebP, SVG. Max size: 10MB.\"],\"Jed1wB\":[\"Need help? Visit the <0>documentation</0>\"],\"JiP4aa\":[\"Published pages are accessible via their path. Drafts are not visible.\"],\"K9NcLu\":[\"Use this URL to embed the media in your posts.\"],\"KbS2K9\":[\"Reset Password\"],\"KiJn9B\":[\"Note\"],\"L85WcV\":[\"Slug\"],\"LkvLQe\":[\"No pages yet.\"],\"M1RvTd\":[\"Click image to view full size\"],\"M8kJqa\":[\"Drafts\"],\"M9xgHy\":[\"Redirects\"],\"MHrjPM\":[\"Title\"],\"MZbQHL\":[\"No results found.\"],\"Mhf/H/\":[\"Create Redirect\"],\"MqghUt\":[\"Search posts...\"],\"N40H+G\":[\"All\"],\"O3oNi5\":[\"Email\"],\"OCNZaU\":[\"The path to redirect from\"],\"ODiSoW\":[\"No posts yet.\"],\"ONWvwQ\":[\"Upload\"],\"Pbm2/N\":[\"Create Collection\"],\"RDjuBN\":[\"Setup\"],\"Rj01Fz\":[\"Links\"],\"RwGhWy\":[\"Thread with \",[\"count\"],\" posts\"],\"SJmfuf\":[\"Site Name\"],\"ST+lN2\":[\"No media uploaded yet.\"],\"Tt5T6+\":[\"Articles\"],\"TxE+Mj\":[\"1 reply\"],\"Tz0i8g\":[\"Settings\"],\"U5v6Gh\":[\"Edit Page\"],\"UDMjsP\":[\"Quick Actions\"],\"UGT5vp\":[\"Save Settings\"],\"VUSy8D\":[\"Search failed. Please try again.\"],\"VhMDMg\":[\"Change Password\"],\"WDcQq9\":[\"Unlisted\"],\"Weq9zb\":[\"General\"],\"WmZ/rP\":[\"To Path\"],\"Y+7JGK\":[\"Create Page\"],\"ZQKLI1\":[\"Danger Zone\"],\"ZhhOwV\":[\"Quote\"],\"aAIQg2\":[\"Appearance\"],\"an5hVd\":[\"Images\"],\"b+/jO6\":[\"301 (Permanent)\"],\"bHYIks\":[\"Sign Out\"],\"biOepV\":[\"← Back to home\"],\"cnGeoo\":[\"Delete\"],\"dEgA5A\":[\"Cancel\"],\"e6Jr7Q\":[\"← Back to Collections\"],\"ePK91l\":[\"Edit\"],\"eWLklq\":[\"Quotes\"],\"eneWvv\":[\"Draft\"],\"er8+x7\":[\"Demo account pre-filled. Just click Sign In.\"],\"f6e0Ry\":[\"Article\"],\"fG7BxZ\":[\"Upload images via the API: POST /api/upload with a file form field.\"],\"fttd2R\":[\"My Collection\"],\"hG89Ed\":[\"Image\"],\"hWOZIv\":[\"Enter your new password.\"],\"hXzOVo\":[\"Next\"],\"he3ygx\":[\"Copy\"],\"iH8pgl\":[\"Back\"],\"ig4hg2\":[\"Let's set up your site.\"],\"jpctdh\":[\"View\"],\"k1ifdL\":[\"Processing...\"],\"mTOYla\":[\"View all posts →\"],\"n1ekoW\":[\"Sign In\"],\"oYPBa0\":[\"Update Page\"],\"p2/GCq\":[\"Confirm Password\"],\"pRhYH2\":[\"Posts in Collection (\",[\"count\"],\")\"],\"pZq3aX\":[\"Upload failed. Please try again.\"],\"qMyM2u\":[\"Source URL (optional)\"],\"r1MpXi\":[\"Quiet\"],\"rFmBG3\":[\"Color theme\"],\"rdUucN\":[\"Preview\"],\"rzNUSl\":[\"Thread with 1 post\"],\"sGajR7\":[\"Thread start\"],\"ssqvZi\":[\"Save Profile\"],\"t/YqKh\":[\"Remove\"],\"tfrt7B\":[\"No redirects configured.\"],\"tiq7kl\":[\"Page \",[\"page\"]],\"u2f7vd\":[\"Site Description\"],\"u3wRF+\":[\"Published\"],\"u6Hp4N\":[\"Markdown\"],\"uAQUqI\":[\"Status\"],\"vERlcd\":[\"Profile\"],\"vXIe7J\":[\"Language\"],\"vzU4k9\":[\"New Collection\"],\"wEF6Ix\":[\"The destination path or URL\"],\"wK4OTM\":[\"Title (optional)\"],\"wM5UXj\":[\"Delete Media\"],\"wRR604\":[\"Pages\"],\"wja8aL\":[\"Untitled\"],\"x+doid\":[\"Images are automatically optimized: resized to max 1920px, converted to WebP, and metadata stripped.\"],\"x0mzE0\":[\"Create your first post\"],\"x4RuFo\":[\"Back to home\"],\"xYilR2\":[\"Media\"],\"y28hnO\":[\"Post\"],\"yQ2kGp\":[\"Load more\"],\"yjkELF\":[\"Confirm New Password\"],\"yzF66j\":[\"Link\"],\"z8ajIE\":[\"Found 1 result\"],\"zH6KqE\":[\"Found \",[\"count\"],\" results\"]}")as Messages;
|
|
1
|
+
/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"+7Wr2a\":[\"Edit: \",[\"title\"]],\"+MACwa\":[\"No collections yet.\"],\"+bHzpy\":[\"Display text for the link\"],\"+owNNn\":[\"Posts\"],\"+zy2Nq\":[\"Type\"],\"/0D1Xp\":[\"Edit Collection\"],\"/Rj5P4\":[\"Your Name\"],\"07Epll\":[\"This will theme both your site and your dashboard. All color themes support dark mode.\"],\"0JkyS7\":[\"Create your first page\"],\"0a6MpL\":[\"New Redirect\"],\"1CU1Td\":[\"URL-safe identifier (lowercase, numbers, hyphens)\"],\"1DBGsz\":[\"Notes\"],\"1o+wgo\":[\"e.g. The Verge, John Doe\"],\"2N0qpv\":[\"Post title...\"],\"2fUwEY\":[\"Select Media\"],\"2q/Q7x\":[\"Visibility\"],\"2rJGtU\":[\"Page title...\"],\"3Yvsaz\":[\"302 (Temporary)\"],\"4/SFQS\":[\"View Site\"],\"40TVQj\":[\"Custom Path (optional)\"],\"4KzVT6\":[\"Delete Page\"],\"4b3oEV\":[\"Content\"],\"4mDPGp\":[\"The URL path for this page. Use lowercase letters, numbers, and hyphens.\"],\"6WdDG7\":[\"Page\"],\"6YtxFj\":[\"Name\"],\"7G4SBz\":[\"Page content (Markdown supported)...\"],\"7Mk+/h\":[\"Update Collection\"],\"7Q1KKN\":[\"From Path\"],\"7aECQB\":[\"Invalid or Expired Link\"],\"7nGhhM\":[\"What's on your mind?\"],\"7p5kLi\":[\"Dashboard\"],\"7vhWI8\":[\"New Password\"],\"87a/t/\":[\"Label\"],\"8ZsakT\":[\"Password\"],\"90Luob\":[[\"count\"],\" replies\"],\"A1taO8\":[\"Search\"],\"AeXO77\":[\"Account\"],\"AyHO4m\":[\"What's this collection about?\"],\"B373X+\":[\"Edit Post\"],\"B495Gs\":[\"Archive\"],\"BjF0Jv\":[\"Lowercase letters, numbers, and hyphens only\"],\"D9Oea+\":[\"Permalink\"],\"DCKkhU\":[\"Current Password\"],\"DHhJ7s\":[\"Previous\"],\"DPfwMq\":[\"Done\"],\"DoJzLz\":[\"Collections\"],\"E80cJw\":[\"Deleting this media will remove it permanently from storage.\"],\"EEYbdt\":[\"Publish\"],\"EGwzOK\":[\"Complete Setup\"],\"EkH9pt\":[\"Update\"],\"FGrimz\":[\"New Post\"],\"FkMol5\":[\"Featured\"],\"Fxf4jq\":[\"Description (optional)\"],\"GA5A5H\":[\"Delete Collection\"],\"GX2VMa\":[\"Create your admin account.\"],\"GbVAnd\":[\"This password reset link is invalid or has expired. Please generate a new one.\"],\"GorKul\":[\"Welcome to Jant\"],\"GrZ6fH\":[\"New Page\"],\"GxkJXS\":[\"Uploading...\"],\"HfyyXl\":[\"My Blog\"],\"HiETwV\":[\"Quiet (normal)\"],\"Hzi9AA\":[\"No posts found.\"],\"I6gXOa\":[\"Path\"],\"I8hDlV\":[\"At least 1 image required for image posts.\"],\"IUwGEM\":[\"Save Changes\"],\"IagCbF\":[\"URL\"],\"J4FNfC\":[\"No posts in this collection.\"],\"JIBC/T\":[\"Supported formats: JPEG, PNG, GIF, WebP, SVG. Max size: 10MB.\"],\"Jed1wB\":[\"Need help? Visit the <0>documentation</0>\"],\"JiP4aa\":[\"Published pages are accessible via their path. Drafts are not visible.\"],\"K9NcLu\":[\"Use this URL to embed the media in your posts.\"],\"KbS2K9\":[\"Reset Password\"],\"KiJn9B\":[\"Note\"],\"KmGXnO\":[\"Are you sure you want to delete this post? This cannot be undone.\"],\"L85WcV\":[\"Slug\"],\"LkvLQe\":[\"No pages yet.\"],\"M1RvTd\":[\"Click image to view full size\"],\"M8kJqa\":[\"Drafts\"],\"M9xgHy\":[\"Redirects\"],\"MHrjPM\":[\"Title\"],\"MWBOxm\":[\"Collections (optional)\"],\"MZbQHL\":[\"No results found.\"],\"Mhf/H/\":[\"Create Redirect\"],\"MqghUt\":[\"Search posts...\"],\"N40H+G\":[\"All\"],\"O3oNi5\":[\"Email\"],\"OCNZaU\":[\"The path to redirect from\"],\"ODiSoW\":[\"No posts yet.\"],\"ONWvwQ\":[\"Upload\"],\"Pbm2/N\":[\"Create Collection\"],\"QEbNBb\":[\"Path (e.g. /archive) or full URL (e.g. https://example.com)\"],\"RDjuBN\":[\"Setup\"],\"Rj01Fz\":[\"Links\"],\"RwGhWy\":[\"Thread with \",[\"count\"],\" posts\"],\"SJmfuf\":[\"Site Name\"],\"ST+lN2\":[\"No media uploaded yet.\"],\"Tt5T6+\":[\"Articles\"],\"TxE+Mj\":[\"1 reply\"],\"Tz0i8g\":[\"Settings\"],\"U5v6Gh\":[\"Edit Page\"],\"UDMjsP\":[\"Quick Actions\"],\"UGT5vp\":[\"Save Settings\"],\"UxKoFf\":[\"Navigation\"],\"VUSy8D\":[\"Search failed. Please try again.\"],\"VhMDMg\":[\"Change Password\"],\"WDcQq9\":[\"Unlisted\"],\"Weq9zb\":[\"General\"],\"WmZ/rP\":[\"To Path\"],\"Y+7JGK\":[\"Create Page\"],\"Z3FXyt\":[\"Loading...\"],\"ZQKLI1\":[\"Danger Zone\"],\"ZhhOwV\":[\"Quote\"],\"aAIQg2\":[\"Appearance\"],\"aaGV/9\":[\"New Link\"],\"an5hVd\":[\"Images\"],\"b+/jO6\":[\"301 (Permanent)\"],\"bHYIks\":[\"Sign Out\"],\"biOepV\":[\"← Back to home\"],\"cnGeoo\":[\"Delete\"],\"dEgA5A\":[\"Cancel\"],\"e6Jr7Q\":[\"← Back to Collections\"],\"ePK91l\":[\"Edit\"],\"eWLklq\":[\"Quotes\"],\"eneWvv\":[\"Draft\"],\"er8+x7\":[\"Demo account pre-filled. Just click Sign In.\"],\"f6e0Ry\":[\"Article\"],\"fG7BxZ\":[\"Upload images via the API: POST /api/upload with a file form field.\"],\"fttd2R\":[\"My Collection\"],\"gDx5MG\":[\"Edit Link\"],\"hG89Ed\":[\"Image\"],\"hWOZIv\":[\"Enter your new password.\"],\"hXzOVo\":[\"Next\"],\"he3ygx\":[\"Copy\"],\"iH8pgl\":[\"Back\"],\"ig4hg2\":[\"Let's set up your site.\"],\"jpctdh\":[\"View\"],\"k1ifdL\":[\"Processing...\"],\"kd7eBB\":[\"Create Link\"],\"mTOYla\":[\"View all posts →\"],\"n1ekoW\":[\"Sign In\"],\"oJFOZk\":[\"Source Name (optional)\"],\"oYPBa0\":[\"Update Page\"],\"p2/GCq\":[\"Confirm Password\"],\"pRhYH2\":[\"Posts in Collection (\",[\"count\"],\")\"],\"pZq3aX\":[\"Upload failed. Please try again.\"],\"qMyM2u\":[\"Source URL (optional)\"],\"qiXmlF\":[\"Add Media\"],\"r1MpXi\":[\"Quiet\"],\"rFmBG3\":[\"Color theme\"],\"rdUucN\":[\"Preview\"],\"rzNUSl\":[\"Thread with 1 post\"],\"sGajR7\":[\"Thread start\"],\"smzF8S\":[\"Show \",[\"remainingCount\"],\" more \",[\"0\"]],\"ssqvZi\":[\"Save Profile\"],\"t/YqKh\":[\"Remove\"],\"tfrt7B\":[\"No redirects configured.\"],\"tiq7kl\":[\"Page \",[\"page\"]],\"u2f7vd\":[\"Site Description\"],\"u3wRF+\":[\"Published\"],\"u6Hp4N\":[\"Markdown\"],\"uAQUqI\":[\"Status\"],\"vERlcd\":[\"Profile\"],\"vXIe7J\":[\"Language\"],\"vzU4k9\":[\"New Collection\"],\"wEF6Ix\":[\"The destination path or URL\"],\"wK4OTM\":[\"Title (optional)\"],\"wM5UXj\":[\"Delete Media\"],\"wRR604\":[\"Pages\"],\"wdGjkd\":[\"No navigation links configured.\"],\"wja8aL\":[\"Untitled\"],\"x+doid\":[\"Images are automatically optimized: resized to max 1920px, converted to WebP, and metadata stripped.\"],\"x0mzE0\":[\"Create your first post\"],\"x4RuFo\":[\"Back to home\"],\"xYilR2\":[\"Media\"],\"y28hnO\":[\"Post\"],\"yQ2kGp\":[\"Load more\"],\"yjkELF\":[\"Confirm New Password\"],\"yzF66j\":[\"Link\"],\"z8ajIE\":[\"Found 1 result\"],\"zH6KqE\":[\"Found \",[\"count\"],\" results\"]}")as Messages;
|
|
@@ -23,13 +23,6 @@ msgstr "{count} 条回复"
|
|
|
23
23
|
msgid "← Back to Collections"
|
|
24
24
|
msgstr "← 返回收藏夹"
|
|
25
25
|
|
|
26
|
-
#. @context: Navigation link
|
|
27
|
-
#. @context: Navigation link
|
|
28
|
-
#: src/routes/pages/collection.tsx:76
|
|
29
|
-
#: src/routes/pages/post.tsx:51
|
|
30
|
-
msgid "← Back to home"
|
|
31
|
-
msgstr "← 返回首页"
|
|
32
|
-
|
|
33
26
|
#. @context: Archive post reply indicator - single
|
|
34
27
|
#: src/routes/pages/archive.tsx:175
|
|
35
28
|
msgid "1 reply"
|
|
@@ -50,6 +43,11 @@ msgstr "302(临时)"
|
|
|
50
43
|
msgid "Account"
|
|
51
44
|
msgstr "账户"
|
|
52
45
|
|
|
46
|
+
#. @context: Button to open media picker
|
|
47
|
+
#: src/theme/components/PostForm.tsx:178
|
|
48
|
+
msgid "Add Media"
|
|
49
|
+
msgstr "添加媒体"
|
|
50
|
+
|
|
53
51
|
#. @context: Archive filter - all types
|
|
54
52
|
#: src/routes/pages/archive.tsx:115
|
|
55
53
|
msgid "All"
|
|
@@ -61,17 +59,20 @@ msgid "Appearance"
|
|
|
61
59
|
msgstr "外观"
|
|
62
60
|
|
|
63
61
|
#. @context: Archive page title
|
|
64
|
-
#. @context: Navigation link to archive page
|
|
65
62
|
#: src/routes/pages/archive.tsx:102
|
|
66
|
-
#: src/routes/pages/home.tsx:30
|
|
67
63
|
msgid "Archive"
|
|
68
64
|
msgstr "档案馆"
|
|
69
65
|
|
|
66
|
+
#. @context: Confirmation dialog when deleting a post from the list
|
|
67
|
+
#: src/theme/components/PostList.tsx:56
|
|
68
|
+
msgid "Are you sure you want to delete this post? This cannot be undone."
|
|
69
|
+
msgstr ""
|
|
70
|
+
|
|
70
71
|
#. @context: Post type badge - article
|
|
71
72
|
#. @context: Post type label - article
|
|
72
73
|
#. @context: Post type option
|
|
73
74
|
#: src/routes/pages/archive.tsx:28
|
|
74
|
-
#: src/theme/components/PostForm.tsx:
|
|
75
|
+
#: src/theme/components/PostForm.tsx:67
|
|
75
76
|
#: src/theme/components/TypeBadge.tsx:20
|
|
76
77
|
msgid "Article"
|
|
77
78
|
msgstr "文章"
|
|
@@ -81,30 +82,28 @@ msgstr "文章"
|
|
|
81
82
|
msgid "Articles"
|
|
82
83
|
msgstr "文章"
|
|
83
84
|
|
|
85
|
+
#. @context: Hint for image post type media requirement
|
|
86
|
+
#: src/theme/components/PostForm.tsx:130
|
|
87
|
+
msgid "At least 1 image required for image posts."
|
|
88
|
+
msgstr "图像帖子至少需要 1 张图片。"
|
|
89
|
+
|
|
84
90
|
#. @context: Button to go back to media list
|
|
85
91
|
#: src/routes/dash/media.tsx:245
|
|
86
92
|
msgid "Back"
|
|
87
93
|
msgstr "返回"
|
|
88
94
|
|
|
89
|
-
#. @context: Navigation link back to home page
|
|
90
|
-
#. @context: Navigation link back to home page
|
|
91
|
-
#. @context: Navigation link back to home page
|
|
92
|
-
#: src/routes/pages/archive.tsx:209
|
|
93
|
-
#: src/routes/pages/page.tsx:37
|
|
94
|
-
#: src/routes/pages/search.tsx:144
|
|
95
|
-
msgid "Back to home"
|
|
96
|
-
msgstr "返回首页"
|
|
97
|
-
|
|
98
95
|
#. @context: Button to cancel and go back
|
|
99
96
|
#. @context: Button to cancel form
|
|
100
97
|
#. @context: Button to cancel form
|
|
101
98
|
#. @context: Button to cancel form
|
|
102
99
|
#. @context: Button to cancel form
|
|
100
|
+
#. @context: Button to cancel form
|
|
103
101
|
#: src/routes/dash/collections.tsx:176
|
|
104
102
|
#: src/routes/dash/collections.tsx:345
|
|
103
|
+
#: src/routes/dash/navigation.tsx:182
|
|
105
104
|
#: src/routes/dash/redirects.tsx:167
|
|
106
105
|
#: src/theme/components/PageForm.tsx:161
|
|
107
|
-
#: src/theme/components/PostForm.tsx:
|
|
106
|
+
#: src/theme/components/PostForm.tsx:312
|
|
108
107
|
msgid "Cancel"
|
|
109
108
|
msgstr "取消"
|
|
110
109
|
|
|
@@ -127,13 +126,18 @@ msgstr "点击图片查看完整尺寸"
|
|
|
127
126
|
msgid "Collections"
|
|
128
127
|
msgstr "收藏夹"
|
|
129
128
|
|
|
129
|
+
#. @context: Post form field - assign to collections
|
|
130
|
+
#: src/theme/components/PostForm.tsx:261
|
|
131
|
+
msgid "Collections (optional)"
|
|
132
|
+
msgstr "集合(可选)"
|
|
133
|
+
|
|
130
134
|
#. @context: Appearance settings heading
|
|
131
135
|
#: src/routes/dash/settings.tsx:301
|
|
132
136
|
msgid "Color theme"
|
|
133
137
|
msgstr "颜色主题"
|
|
134
138
|
|
|
135
139
|
#. @context: Setup form submit button
|
|
136
|
-
#: src/app.tsx:
|
|
140
|
+
#: src/app.tsx:248
|
|
137
141
|
msgid "Complete Setup"
|
|
138
142
|
msgstr "完成设置"
|
|
139
143
|
|
|
@@ -143,14 +147,14 @@ msgid "Confirm New Password"
|
|
|
143
147
|
msgstr "确认新密码"
|
|
144
148
|
|
|
145
149
|
#. @context: Password reset form field
|
|
146
|
-
#: src/app.tsx:
|
|
150
|
+
#: src/app.tsx:490
|
|
147
151
|
msgid "Confirm Password"
|
|
148
152
|
msgstr "确认密码"
|
|
149
153
|
|
|
150
154
|
#. @context: Page form field label - content
|
|
151
155
|
#. @context: Post form field
|
|
152
156
|
#: src/theme/components/PageForm.tsx:95
|
|
153
|
-
#: src/theme/components/PostForm.tsx:
|
|
157
|
+
#: src/theme/components/PostForm.tsx:103
|
|
154
158
|
msgid "Content"
|
|
155
159
|
msgstr "内容"
|
|
156
160
|
|
|
@@ -166,6 +170,11 @@ msgstr "复制"
|
|
|
166
170
|
msgid "Create Collection"
|
|
167
171
|
msgstr "创建集合"
|
|
168
172
|
|
|
173
|
+
#. @context: Button to save new navigation link
|
|
174
|
+
#: src/routes/dash/navigation.tsx:176
|
|
175
|
+
msgid "Create Link"
|
|
176
|
+
msgstr "创建链接"
|
|
177
|
+
|
|
169
178
|
#. @context: Button to create new page
|
|
170
179
|
#: src/theme/components/PageForm.tsx:155
|
|
171
180
|
msgid "Create Page"
|
|
@@ -177,7 +186,7 @@ msgid "Create Redirect"
|
|
|
177
186
|
msgstr "创建重定向"
|
|
178
187
|
|
|
179
188
|
#. @context: Setup page description
|
|
180
|
-
#: src/app.tsx:
|
|
189
|
+
#: src/app.tsx:190
|
|
181
190
|
msgid "Create your admin account."
|
|
182
191
|
msgstr "创建您的管理员账户。"
|
|
183
192
|
|
|
@@ -197,7 +206,7 @@ msgid "Current Password"
|
|
|
197
206
|
msgstr "当前密码"
|
|
198
207
|
|
|
199
208
|
#. @context: Post form field
|
|
200
|
-
#: src/theme/components/PostForm.tsx:
|
|
209
|
+
#: src/theme/components/PostForm.tsx:285
|
|
201
210
|
msgid "Custom Path (optional)"
|
|
202
211
|
msgstr "自定义路径(可选)"
|
|
203
212
|
|
|
@@ -214,7 +223,9 @@ msgid "Dashboard"
|
|
|
214
223
|
msgstr "仪表板"
|
|
215
224
|
|
|
216
225
|
#. @context: Button to delete item
|
|
226
|
+
#. @context: Button to delete navigation link
|
|
217
227
|
#. @context: Button to delete redirect
|
|
228
|
+
#: src/routes/dash/navigation.tsx:66
|
|
218
229
|
#: src/routes/dash/redirects.tsx:60
|
|
219
230
|
#: src/theme/components/ActionButtons.tsx:80
|
|
220
231
|
msgid "Delete"
|
|
@@ -241,7 +252,7 @@ msgid "Deleting this media will remove it permanently from storage."
|
|
|
241
252
|
msgstr "删除此媒体将永久从存储中移除。"
|
|
242
253
|
|
|
243
254
|
#. @context: Hint shown on signin page when demo credentials are pre-filled
|
|
244
|
-
#: src/app.tsx:
|
|
255
|
+
#: src/app.tsx:339
|
|
245
256
|
msgid "Demo account pre-filled. Just click Sign In."
|
|
246
257
|
msgstr "演示账户已预填。只需点击登录。"
|
|
247
258
|
|
|
@@ -252,11 +263,21 @@ msgstr "演示账户已预填。只需点击登录。"
|
|
|
252
263
|
msgid "Description (optional)"
|
|
253
264
|
msgstr "描述(可选)"
|
|
254
265
|
|
|
266
|
+
#. @context: Navigation label help text
|
|
267
|
+
#: src/routes/dash/navigation.tsx:139
|
|
268
|
+
msgid "Display text for the link"
|
|
269
|
+
msgstr "链接的显示文本"
|
|
270
|
+
|
|
271
|
+
#. @context: Close media picker button
|
|
272
|
+
#: src/theme/components/PostForm.tsx:334
|
|
273
|
+
msgid "Done"
|
|
274
|
+
msgstr "完成"
|
|
275
|
+
|
|
255
276
|
#. @context: Page status option - draft
|
|
256
277
|
#. @context: Post visibility badge - draft
|
|
257
278
|
#. @context: Post visibility option
|
|
258
279
|
#: src/theme/components/PageForm.tsx:132
|
|
259
|
-
#: src/theme/components/PostForm.tsx:
|
|
280
|
+
#: src/theme/components/PostForm.tsx:249
|
|
260
281
|
#: src/theme/components/VisibilityBadge.tsx:38
|
|
261
282
|
msgid "Draft"
|
|
262
283
|
msgstr "草稿"
|
|
@@ -266,18 +287,25 @@ msgstr "草稿"
|
|
|
266
287
|
msgid "Drafts"
|
|
267
288
|
msgstr "草稿"
|
|
268
289
|
|
|
290
|
+
#. @context: Source name placeholder
|
|
291
|
+
#: src/theme/components/PostForm.tsx:214
|
|
292
|
+
msgid "e.g. The Verge, John Doe"
|
|
293
|
+
msgstr "例如:The Verge,John Doe"
|
|
294
|
+
|
|
269
295
|
#. @context: Button to edit collection
|
|
270
296
|
#. @context: Button to edit collection
|
|
271
297
|
#. @context: Button to edit item
|
|
298
|
+
#. @context: Button to edit navigation link
|
|
272
299
|
#. @context: Button to edit page
|
|
273
300
|
#. @context: Button to edit page
|
|
274
301
|
#. @context: Button to edit post
|
|
275
302
|
#. @context: Button to edit post
|
|
276
303
|
#: src/routes/dash/collections.tsx:66
|
|
277
304
|
#: src/routes/dash/collections.tsx:210
|
|
305
|
+
#: src/routes/dash/navigation.tsx:61
|
|
278
306
|
#: src/routes/dash/pages.tsx:64
|
|
279
307
|
#: src/routes/dash/pages.tsx:134
|
|
280
|
-
#: src/routes/dash/posts.tsx:
|
|
308
|
+
#: src/routes/dash/posts.tsx:142
|
|
281
309
|
#: src/theme/components/ActionButtons.tsx:72
|
|
282
310
|
#: src/theme/components/PostList.tsx:46
|
|
283
311
|
msgid "Edit"
|
|
@@ -288,33 +316,36 @@ msgstr "编辑"
|
|
|
288
316
|
msgid "Edit Collection"
|
|
289
317
|
msgstr "编辑集合"
|
|
290
318
|
|
|
319
|
+
#. @context: Page heading
|
|
320
|
+
#: src/routes/dash/navigation.tsx:105
|
|
321
|
+
msgid "Edit Link"
|
|
322
|
+
msgstr "编辑链接"
|
|
323
|
+
|
|
291
324
|
#. @context: Edit page main heading
|
|
292
325
|
#: src/routes/dash/pages.tsx:176
|
|
293
326
|
msgid "Edit Page"
|
|
294
327
|
msgstr "编辑页面"
|
|
295
328
|
|
|
296
329
|
#. @context: Page heading
|
|
297
|
-
#: src/routes/dash/posts.tsx:
|
|
330
|
+
#: src/routes/dash/posts.tsx:185
|
|
298
331
|
msgid "Edit Post"
|
|
299
332
|
msgstr "编辑帖子"
|
|
300
333
|
|
|
301
334
|
#. @context: Setup/signin form field - email
|
|
302
335
|
#. @context: Setup/signin form field - email
|
|
303
|
-
#: src/app.tsx:
|
|
304
|
-
#: src/app.tsx:
|
|
336
|
+
#: src/app.tsx:219
|
|
337
|
+
#: src/app.tsx:353
|
|
305
338
|
msgid "Email"
|
|
306
339
|
msgstr "电子邮件"
|
|
307
340
|
|
|
308
341
|
#. @context: Password reset page description
|
|
309
|
-
#: src/app.tsx:
|
|
342
|
+
#: src/app.tsx:460
|
|
310
343
|
msgid "Enter your new password."
|
|
311
344
|
msgstr "输入您的新密码。"
|
|
312
345
|
|
|
313
|
-
#. @context: Post visibility badge
|
|
314
346
|
#. @context: Post visibility badge - featured
|
|
315
347
|
#. @context: Post visibility option
|
|
316
|
-
#: src/
|
|
317
|
-
#: src/theme/components/PostForm.tsx:131
|
|
348
|
+
#: src/theme/components/PostForm.tsx:237
|
|
318
349
|
#: src/theme/components/VisibilityBadge.tsx:26
|
|
319
350
|
msgid "Featured"
|
|
320
351
|
msgstr "精选"
|
|
@@ -345,7 +376,7 @@ msgstr "常规"
|
|
|
345
376
|
#. @context: Post type label - image
|
|
346
377
|
#. @context: Post type option
|
|
347
378
|
#: src/routes/pages/archive.tsx:37
|
|
348
|
-
#: src/theme/components/PostForm.tsx:
|
|
379
|
+
#: src/theme/components/PostForm.tsx:76
|
|
349
380
|
#: src/theme/components/TypeBadge.tsx:29
|
|
350
381
|
msgid "Image"
|
|
351
382
|
msgstr "图像"
|
|
@@ -361,10 +392,15 @@ msgid "Images are automatically optimized: resized to max 1920px, converted to W
|
|
|
361
392
|
msgstr "图像会自动优化:调整大小至最大 1920px,转换为 WebP,并去除元数据。"
|
|
362
393
|
|
|
363
394
|
#. @context: Password reset error heading
|
|
364
|
-
#: src/app.tsx:
|
|
395
|
+
#: src/app.tsx:525
|
|
365
396
|
msgid "Invalid or Expired Link"
|
|
366
397
|
msgstr "无效或过期的链接"
|
|
367
398
|
|
|
399
|
+
#. @context: Navigation link form field
|
|
400
|
+
#: src/routes/dash/navigation.tsx:126
|
|
401
|
+
msgid "Label"
|
|
402
|
+
msgstr "标签"
|
|
403
|
+
|
|
368
404
|
#. @context: Settings form field
|
|
369
405
|
#: src/routes/dash/settings.tsx:171
|
|
370
406
|
msgid "Language"
|
|
@@ -374,7 +410,7 @@ msgstr "语言"
|
|
|
374
410
|
#. @context: Post type label - link
|
|
375
411
|
#. @context: Post type option
|
|
376
412
|
#: src/routes/pages/archive.tsx:32
|
|
377
|
-
#: src/theme/components/PostForm.tsx:
|
|
413
|
+
#: src/theme/components/PostForm.tsx:70
|
|
378
414
|
#: src/theme/components/TypeBadge.tsx:24
|
|
379
415
|
msgid "Link"
|
|
380
416
|
msgstr "链接"
|
|
@@ -384,11 +420,18 @@ msgstr "链接"
|
|
|
384
420
|
msgid "Links"
|
|
385
421
|
msgstr "链接"
|
|
386
422
|
|
|
423
|
+
#. @context: Button to load more posts in timeline
|
|
387
424
|
#. @context: Pagination button - load more items
|
|
388
425
|
#: src/theme/components/Pagination.tsx:103
|
|
426
|
+
#: src/theme/components/timeline/TimelineFeed.tsx:43
|
|
389
427
|
msgid "Load more"
|
|
390
428
|
msgstr "加载更多"
|
|
391
429
|
|
|
430
|
+
#. @context: Loading state for media picker
|
|
431
|
+
#: src/theme/components/PostForm.tsx:345
|
|
432
|
+
msgid "Loading..."
|
|
433
|
+
msgstr "加载中..."
|
|
434
|
+
|
|
392
435
|
#. @context: Page path validation message
|
|
393
436
|
#: src/theme/components/PageForm.tsx:76
|
|
394
437
|
msgid "Lowercase letters, numbers, and hyphens only"
|
|
@@ -401,7 +444,9 @@ msgstr "Markdown"
|
|
|
401
444
|
|
|
402
445
|
#. @context: Dashboard navigation - media library
|
|
403
446
|
#. @context: Media main heading
|
|
447
|
+
#. @context: Post form field - media attachments
|
|
404
448
|
#: src/routes/dash/media.tsx:138
|
|
449
|
+
#: src/theme/components/PostForm.tsx:121
|
|
405
450
|
#: src/theme/layouts/DashLayout.tsx:105
|
|
406
451
|
msgid "Media"
|
|
407
452
|
msgstr "媒体"
|
|
@@ -416,6 +461,13 @@ msgstr "我的收藏"
|
|
|
416
461
|
msgid "Name"
|
|
417
462
|
msgstr "姓名"
|
|
418
463
|
|
|
464
|
+
#. @context: Dashboard heading
|
|
465
|
+
#. @context: Dashboard navigation - navigation links management
|
|
466
|
+
#: src/routes/dash/navigation.tsx:29
|
|
467
|
+
#: src/theme/layouts/DashLayout.tsx:133
|
|
468
|
+
msgid "Navigation"
|
|
469
|
+
msgstr "导航"
|
|
470
|
+
|
|
419
471
|
#. @context: Help text with link
|
|
420
472
|
#: src/routes/dash/index.tsx:78
|
|
421
473
|
msgid "Need help? Visit the <0>documentation</0>"
|
|
@@ -430,6 +482,15 @@ msgstr "需要帮助吗?访问<0>文档</0>。"
|
|
|
430
482
|
msgid "New Collection"
|
|
431
483
|
msgstr "新收藏"
|
|
432
484
|
|
|
485
|
+
#. @context: Button to create new navigation link
|
|
486
|
+
#. @context: Button to create new navigation link
|
|
487
|
+
#. @context: Page heading
|
|
488
|
+
#: src/routes/dash/navigation.tsx:33
|
|
489
|
+
#: src/routes/dash/navigation.tsx:46
|
|
490
|
+
#: src/routes/dash/navigation.tsx:106
|
|
491
|
+
msgid "New Link"
|
|
492
|
+
msgstr "新链接"
|
|
493
|
+
|
|
433
494
|
#. @context: Button to create new page
|
|
434
495
|
#. @context: New page main heading
|
|
435
496
|
#: src/routes/dash/pages.tsx:37
|
|
@@ -439,7 +500,7 @@ msgstr "新页面"
|
|
|
439
500
|
|
|
440
501
|
#. @context: Password form field
|
|
441
502
|
#. @context: Password reset form field
|
|
442
|
-
#: src/app.tsx:
|
|
503
|
+
#: src/app.tsx:474
|
|
443
504
|
#: src/routes/dash/settings.tsx:417
|
|
444
505
|
msgid "New Password"
|
|
445
506
|
msgstr "新密码"
|
|
@@ -479,6 +540,11 @@ msgstr "尚未有任何收藏。"
|
|
|
479
540
|
msgid "No media uploaded yet."
|
|
480
541
|
msgstr "尚未上传任何媒体。"
|
|
481
542
|
|
|
543
|
+
#. @context: Empty state message
|
|
544
|
+
#: src/routes/dash/navigation.tsx:42
|
|
545
|
+
msgid "No navigation links configured."
|
|
546
|
+
msgstr "未配置导航链接。"
|
|
547
|
+
|
|
482
548
|
#. @context: Empty state message when no pages exist
|
|
483
549
|
#: src/routes/dash/pages.tsx:46
|
|
484
550
|
msgid "No pages yet."
|
|
@@ -498,7 +564,7 @@ msgstr "此集合中没有帖子。"
|
|
|
498
564
|
|
|
499
565
|
#. @context: Empty state message on home page
|
|
500
566
|
#. @context: Empty state message when no posts exist
|
|
501
|
-
#: src/routes/pages/home.tsx:
|
|
567
|
+
#: src/routes/pages/home.tsx:42
|
|
502
568
|
#: src/theme/components/PostList.tsx:25
|
|
503
569
|
msgid "No posts yet."
|
|
504
570
|
msgstr "还没有帖子。"
|
|
@@ -517,7 +583,7 @@ msgstr "未找到结果。"
|
|
|
517
583
|
#. @context: Post type label - note
|
|
518
584
|
#. @context: Post type option
|
|
519
585
|
#: src/routes/pages/archive.tsx:27
|
|
520
|
-
#: src/theme/components/PostForm.tsx:
|
|
586
|
+
#: src/theme/components/PostForm.tsx:64
|
|
521
587
|
#: src/theme/components/TypeBadge.tsx:19
|
|
522
588
|
msgid "Note"
|
|
523
589
|
msgstr "注意"
|
|
@@ -562,8 +628,8 @@ msgstr "页面"
|
|
|
562
628
|
|
|
563
629
|
#. @context: Setup/signin form field - password
|
|
564
630
|
#. @context: Setup/signin form field - password
|
|
565
|
-
#: src/app.tsx:
|
|
566
|
-
#: src/app.tsx:
|
|
631
|
+
#: src/app.tsx:234
|
|
632
|
+
#: src/app.tsx:362
|
|
567
633
|
msgid "Password"
|
|
568
634
|
msgstr "密码"
|
|
569
635
|
|
|
@@ -572,20 +638,25 @@ msgstr "密码"
|
|
|
572
638
|
msgid "Path"
|
|
573
639
|
msgstr "路径"
|
|
574
640
|
|
|
641
|
+
#. @context: Navigation URL help text
|
|
642
|
+
#: src/routes/dash/navigation.tsx:161
|
|
643
|
+
msgid "Path (e.g. /archive) or full URL (e.g. https://example.com)"
|
|
644
|
+
msgstr "路径(例如 /archive)或完整 URL(例如 https://example.com)"
|
|
645
|
+
|
|
575
646
|
#. @context: Link to individual post in thread
|
|
576
647
|
#. @context: Link to permanent URL of post
|
|
577
|
-
#: src/routes/pages/post.tsx:
|
|
648
|
+
#: src/routes/pages/post.tsx:52
|
|
578
649
|
#: src/theme/components/ThreadView.tsx:68
|
|
579
650
|
msgid "Permalink"
|
|
580
651
|
msgstr "永久链接"
|
|
581
652
|
|
|
582
653
|
#. @context: Default post title
|
|
583
|
-
#: src/routes/dash/posts.tsx:
|
|
654
|
+
#: src/routes/dash/posts.tsx:131
|
|
584
655
|
msgid "Post"
|
|
585
656
|
msgstr "帖子"
|
|
586
657
|
|
|
587
658
|
#. @context: Post title placeholder
|
|
588
|
-
#: src/theme/components/PostForm.tsx:
|
|
659
|
+
#: src/theme/components/PostForm.tsx:93
|
|
589
660
|
msgid "Post title..."
|
|
590
661
|
msgstr "帖子标题..."
|
|
591
662
|
|
|
@@ -624,7 +695,7 @@ msgid "Profile"
|
|
|
624
695
|
msgstr "个人资料"
|
|
625
696
|
|
|
626
697
|
#. @context: Button to publish new post
|
|
627
|
-
#: src/theme/components/PostForm.tsx:
|
|
698
|
+
#: src/theme/components/PostForm.tsx:306
|
|
628
699
|
msgid "Publish"
|
|
629
700
|
msgstr "发布"
|
|
630
701
|
|
|
@@ -651,7 +722,7 @@ msgid "Quiet"
|
|
|
651
722
|
msgstr "安静"
|
|
652
723
|
|
|
653
724
|
#. @context: Post visibility option
|
|
654
|
-
#: src/theme/components/PostForm.tsx:
|
|
725
|
+
#: src/theme/components/PostForm.tsx:231
|
|
655
726
|
msgid "Quiet (normal)"
|
|
656
727
|
msgstr "安静(正常)"
|
|
657
728
|
|
|
@@ -659,7 +730,7 @@ msgstr "安静(正常)"
|
|
|
659
730
|
#. @context: Post type label - quote
|
|
660
731
|
#. @context: Post type option
|
|
661
732
|
#: src/routes/pages/archive.tsx:33
|
|
662
|
-
#: src/theme/components/PostForm.tsx:
|
|
733
|
+
#: src/theme/components/PostForm.tsx:73
|
|
663
734
|
#: src/theme/components/TypeBadge.tsx:25
|
|
664
735
|
msgid "Quote"
|
|
665
736
|
msgstr "引用"
|
|
@@ -677,17 +748,24 @@ msgid "Redirects"
|
|
|
677
748
|
msgstr "重定向"
|
|
678
749
|
|
|
679
750
|
#. @context: Button to remove post from collection
|
|
751
|
+
#. @context: Remove media attachment button
|
|
680
752
|
#: src/routes/dash/collections.tsx:257
|
|
753
|
+
#: src/theme/components/PostForm.tsx:161
|
|
681
754
|
msgid "Remove"
|
|
682
755
|
msgstr "移除"
|
|
683
756
|
|
|
684
757
|
#. @context: Password reset form submit button
|
|
685
758
|
#. @context: Password reset page heading
|
|
686
|
-
#: src/app.tsx:
|
|
687
|
-
#: src/app.tsx:
|
|
759
|
+
#: src/app.tsx:454
|
|
760
|
+
#: src/app.tsx:505
|
|
688
761
|
msgid "Reset Password"
|
|
689
762
|
msgstr "重置密码"
|
|
690
763
|
|
|
764
|
+
#. @context: Button to save edited navigation link
|
|
765
|
+
#: src/routes/dash/navigation.tsx:172
|
|
766
|
+
msgid "Save Changes"
|
|
767
|
+
msgstr "保存更改"
|
|
768
|
+
|
|
691
769
|
#. @context: Button to save profile
|
|
692
770
|
#: src/routes/dash/settings.tsx:378
|
|
693
771
|
msgid "Save Profile"
|
|
@@ -710,6 +788,11 @@ msgstr "搜索"
|
|
|
710
788
|
msgid "Search posts..."
|
|
711
789
|
msgstr "搜索帖子..."
|
|
712
790
|
|
|
791
|
+
#. @context: Media picker dialog title
|
|
792
|
+
#: src/theme/components/PostForm.tsx:324
|
|
793
|
+
msgid "Select Media"
|
|
794
|
+
msgstr "选择媒体"
|
|
795
|
+
|
|
713
796
|
#. @context: Dashboard heading
|
|
714
797
|
#. @context: Dashboard heading
|
|
715
798
|
#. @context: Dashboard heading
|
|
@@ -717,14 +800,20 @@ msgstr "搜索帖子..."
|
|
|
717
800
|
#: src/routes/dash/settings.tsx:118
|
|
718
801
|
#: src/routes/dash/settings.tsx:290
|
|
719
802
|
#: src/routes/dash/settings.tsx:341
|
|
720
|
-
#: src/theme/layouts/DashLayout.tsx:
|
|
803
|
+
#: src/theme/layouts/DashLayout.tsx:143
|
|
721
804
|
msgid "Settings"
|
|
722
805
|
msgstr "设置"
|
|
723
806
|
|
|
807
|
+
#. @context: Link to show remaining thread replies
|
|
808
|
+
#. placeholder {0}: remainingCount === 1 ? "reply" : "replies"
|
|
809
|
+
#: src/theme/components/timeline/ThreadPreview.tsx:38
|
|
810
|
+
msgid "Show {remainingCount} more {0}"
|
|
811
|
+
msgstr "显示 {remainingCount} 个更多 {0}"
|
|
812
|
+
|
|
724
813
|
#. @context: Sign in form submit button
|
|
725
814
|
#. @context: Sign in page heading
|
|
726
|
-
#: src/app.tsx:
|
|
727
|
-
#: src/app.tsx:
|
|
815
|
+
#: src/app.tsx:330
|
|
816
|
+
#: src/app.tsx:375
|
|
728
817
|
msgid "Sign In"
|
|
729
818
|
msgstr "登录"
|
|
730
819
|
|
|
@@ -750,8 +839,13 @@ msgstr "网站名称"
|
|
|
750
839
|
msgid "Slug"
|
|
751
840
|
msgstr "缩略名"
|
|
752
841
|
|
|
842
|
+
#. @context: Post form field - name of the source website or author
|
|
843
|
+
#: src/theme/components/PostForm.tsx:204
|
|
844
|
+
msgid "Source Name (optional)"
|
|
845
|
+
msgstr "来源名称(可选)"
|
|
846
|
+
|
|
753
847
|
#. @context: Post form field
|
|
754
|
-
#: src/theme/components/PostForm.tsx:
|
|
848
|
+
#: src/theme/components/PostForm.tsx:188
|
|
755
849
|
msgid "Source URL (optional)"
|
|
756
850
|
msgstr "源网址(可选)"
|
|
757
851
|
|
|
@@ -776,7 +870,7 @@ msgid "The URL path for this page. Use lowercase letters, numbers, and hyphens."
|
|
|
776
870
|
msgstr "此页面的 URL 路径。使用小写字母、数字和连字符。"
|
|
777
871
|
|
|
778
872
|
#. @context: Password reset error description
|
|
779
|
-
#: src/app.tsx:
|
|
873
|
+
#: src/app.tsx:533
|
|
780
874
|
msgid "This password reset link is invalid or has expired. Please generate a new one."
|
|
781
875
|
msgstr "此密码重置链接无效或已过期。请生成一个新的链接。"
|
|
782
876
|
|
|
@@ -810,7 +904,7 @@ msgid "Title"
|
|
|
810
904
|
msgstr "标题"
|
|
811
905
|
|
|
812
906
|
#. @context: Post form field
|
|
813
|
-
#: src/theme/components/PostForm.tsx:
|
|
907
|
+
#: src/theme/components/PostForm.tsx:84
|
|
814
908
|
msgid "Title (optional)"
|
|
815
909
|
msgstr "标题(可选)"
|
|
816
910
|
|
|
@@ -822,13 +916,13 @@ msgstr "到路径"
|
|
|
822
916
|
#. @context: Post form field - post type
|
|
823
917
|
#. @context: Redirect form field
|
|
824
918
|
#: src/routes/dash/redirects.tsx:141
|
|
825
|
-
#: src/theme/components/PostForm.tsx:
|
|
919
|
+
#: src/theme/components/PostForm.tsx:57
|
|
826
920
|
msgid "Type"
|
|
827
921
|
msgstr "类型"
|
|
828
922
|
|
|
829
923
|
#. @context: Post visibility badge - unlisted
|
|
830
924
|
#. @context: Post visibility option
|
|
831
|
-
#: src/theme/components/PostForm.tsx:
|
|
925
|
+
#: src/theme/components/PostForm.tsx:243
|
|
832
926
|
#: src/theme/components/VisibilityBadge.tsx:34
|
|
833
927
|
msgid "Unlisted"
|
|
834
928
|
msgstr "未列出"
|
|
@@ -836,12 +930,12 @@ msgstr "未列出"
|
|
|
836
930
|
#. @context: Default title for untitled page
|
|
837
931
|
#. @context: Default title for untitled post
|
|
838
932
|
#: src/routes/dash/pages.tsx:91
|
|
839
|
-
#: src/theme/components/PostList.tsx:
|
|
933
|
+
#: src/theme/components/PostList.tsx:78
|
|
840
934
|
msgid "Untitled"
|
|
841
935
|
msgstr "无标题"
|
|
842
936
|
|
|
843
937
|
#. @context: Button to update existing post
|
|
844
|
-
#: src/theme/components/PostForm.tsx:
|
|
938
|
+
#: src/theme/components/PostForm.tsx:302
|
|
845
939
|
msgid "Update"
|
|
846
940
|
msgstr "更新"
|
|
847
941
|
|
|
@@ -871,7 +965,9 @@ msgid "Uploading..."
|
|
|
871
965
|
msgstr "上传中..."
|
|
872
966
|
|
|
873
967
|
#. @context: Media detail section - URL
|
|
968
|
+
#. @context: Navigation link form field
|
|
874
969
|
#: src/routes/dash/media.tsx:297
|
|
970
|
+
#: src/routes/dash/navigation.tsx:148
|
|
875
971
|
msgid "URL"
|
|
876
972
|
msgstr "网址"
|
|
877
973
|
|
|
@@ -896,34 +992,29 @@ msgstr "使用此 URL 将媒体嵌入到您的帖子中。"
|
|
|
896
992
|
#: src/routes/dash/collections.tsx:215
|
|
897
993
|
#: src/routes/dash/pages.tsx:73
|
|
898
994
|
#: src/routes/dash/pages.tsx:143
|
|
899
|
-
#: src/routes/dash/posts.tsx:
|
|
995
|
+
#: src/routes/dash/posts.tsx:147
|
|
900
996
|
#: src/theme/components/ActionButtons.tsx:76
|
|
901
997
|
#: src/theme/components/PostList.tsx:51
|
|
902
998
|
msgid "View"
|
|
903
999
|
msgstr "查看"
|
|
904
1000
|
|
|
905
|
-
#. @context: Link to view all posts on archive page
|
|
906
|
-
#: src/routes/pages/home.tsx:93
|
|
907
|
-
msgid "View all posts →"
|
|
908
|
-
msgstr "查看所有帖子 →"
|
|
909
|
-
|
|
910
1001
|
#. @context: Dashboard header link to view the public site
|
|
911
1002
|
#: src/theme/layouts/DashLayout.tsx:53
|
|
912
1003
|
msgid "View Site"
|
|
913
1004
|
msgstr "查看网站"
|
|
914
1005
|
|
|
915
1006
|
#. @context: Post form field
|
|
916
|
-
#: src/theme/components/PostForm.tsx:
|
|
1007
|
+
#: src/theme/components/PostForm.tsx:224
|
|
917
1008
|
msgid "Visibility"
|
|
918
1009
|
msgstr "可见性"
|
|
919
1010
|
|
|
920
1011
|
#. @context: Setup page welcome heading
|
|
921
|
-
#: src/app.tsx:
|
|
1012
|
+
#: src/app.tsx:184
|
|
922
1013
|
msgid "Welcome to Jant"
|
|
923
1014
|
msgstr "欢迎来到Jant"
|
|
924
1015
|
|
|
925
1016
|
#. @context: Post content placeholder
|
|
926
|
-
#: src/theme/components/PostForm.tsx:
|
|
1017
|
+
#: src/theme/components/PostForm.tsx:108
|
|
927
1018
|
msgid "What's on your mind?"
|
|
928
1019
|
msgstr "你在想什么?"
|
|
929
1020
|
|
|
@@ -933,6 +1024,6 @@ msgid "What's this collection about?"
|
|
|
933
1024
|
msgstr "这个系列是关于什么的?"
|
|
934
1025
|
|
|
935
1026
|
#. @context: Setup form field - user name
|
|
936
|
-
#: src/app.tsx:
|
|
1027
|
+
#: src/app.tsx:204
|
|
937
1028
|
msgid "Your Name"
|
|
938
1029
|
msgstr "您的姓名"
|