@jant/core 0.3.39 → 0.3.42

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 (1163) hide show
  1. package/README.md +21 -33
  2. package/bin/commands/assets/upload.js +247 -0
  3. package/bin/commands/collections.js +268 -0
  4. package/bin/commands/import-site.js +1169 -343
  5. package/bin/commands/media.js +302 -0
  6. package/bin/commands/migrate-text-attachments.js +183 -0
  7. package/bin/commands/migrate.js +263 -2
  8. package/bin/commands/posts.js +262 -0
  9. package/bin/commands/search.js +53 -0
  10. package/bin/commands/settings.js +93 -0
  11. package/bin/commands/site/export.js +34 -33
  12. package/bin/commands/site/{localize-media.js → pull-media.js} +17 -17
  13. package/bin/lib/d1-query.js +15 -3
  14. package/bin/lib/http-api.js +223 -0
  15. package/bin/lib/media-upload.js +206 -0
  16. package/bin/lib/migration-runner.js +64 -0
  17. package/bin/lib/runtime-target.js +7 -2
  18. package/bin/lib/site-media-parser.js +71 -16
  19. package/bin/lib/site-pull-media.js +698 -0
  20. package/bin/lib/site-snapshot.js +0 -1
  21. package/dist/{app-BfoG98VD.js → app-Cu3lveYI.js} +24017 -23072
  22. package/dist/app-DzCB4yOp.js +5 -0
  23. package/dist/client/.vite/manifest.json +3485 -0
  24. package/dist/client/_assets/chunks/02611a045a7fe83a12014e3debc9f731-BqEDtwXC.woff2 +0 -0
  25. package/dist/client/_assets/chunks/033466ef683afe931f7f520cfb42d928-BluLHEh9.woff2 +0 -0
  26. package/dist/client/_assets/chunks/04b8bde59cff68eeee74fb1914eb09c7-D5j2CLTt.woff2 +0 -0
  27. package/dist/client/_assets/chunks/057a6a98bda7fe57105ddaa99ec82015-DY_AoijT.woff2 +0 -0
  28. package/dist/client/_assets/chunks/05ac821472e235943ed1435e4bb8ecad-CUm8GiH6.woff2 +0 -0
  29. package/dist/client/_assets/chunks/05da12edb9d52210581dc6ec4541031f-BXAOx2XP.woff2 +0 -0
  30. package/dist/client/_assets/chunks/074c1f8483d5a4d8c45c8c5f3e4cbb32-CDqdMQm8.woff2 +0 -0
  31. package/dist/client/_assets/chunks/0968e4861204b51f62a2f8e9f15dd5e0-D5tLgF_8.woff2 +0 -0
  32. package/dist/client/_assets/chunks/0acd1fe2b2ea1ad1bfee7ae1fa139d27-BKK1m412.woff2 +0 -0
  33. package/dist/client/_assets/chunks/0c2ab6b295e55f356f8020d4e7747522-CkCQjQw3.woff2 +0 -0
  34. package/dist/client/_assets/chunks/0c5f9492af03a4fa42c784de94649de1-CQlJqksa.woff2 +0 -0
  35. package/dist/client/_assets/chunks/0d5dec931dc885f07fe5cd5af8bed675-C74x-U_U.woff2 +0 -0
  36. package/dist/client/_assets/chunks/0d9a936885a4c39077438effd3779cbd-Bw0fYF4S.woff2 +0 -0
  37. package/dist/client/_assets/chunks/0e645da524f7cfc0e8c3c03fb2b08428-BVeI_5Th.woff2 +0 -0
  38. package/dist/client/_assets/chunks/0f5e1a18987dbc84ca05188c129e1936-B6_lZ6fE.woff2 +0 -0
  39. package/dist/client/_assets/chunks/1076f0f6f66d28d7a2f16427faad4413-ubiXnD1P.woff2 +0 -0
  40. package/dist/client/_assets/chunks/112743a4ab5fdd1498dfdf2b11336380-B5FzQxTK.woff2 +0 -0
  41. package/dist/client/_assets/chunks/1211f03d3ff5759a702631445793f60e-DDcSiyCt.woff2 +0 -0
  42. package/dist/client/_assets/chunks/12ef1ba76bd20b004b865266a1aa70b3-BwmaD87S.woff2 +0 -0
  43. package/dist/client/_assets/chunks/135e83b403475c5dc9e49b43501a5b84-C5mE_KZS.woff2 +0 -0
  44. package/dist/client/_assets/chunks/1380210a722ac9aeef54005ad7b015c9-CjA-MP82.woff2 +0 -0
  45. package/dist/client/_assets/chunks/13b2c53b30e6a3e4de7132dbc18dbdfc-B9WOB7kv.woff2 +0 -0
  46. package/dist/client/_assets/chunks/147b24c2f08d03bbed30887d4cb3311c-IeeFCJ13.woff2 +0 -0
  47. package/dist/client/_assets/chunks/152395634a207579552f8cb54db88599-C2y2JyNZ.woff2 +0 -0
  48. package/dist/client/_assets/chunks/15d95680dc31cc6ce20e0a5464106dc4-CpD8dqRm.woff2 +0 -0
  49. package/dist/client/_assets/chunks/16663e567f81f4725a1522f37e18f71f-BNoxS9pQ.woff2 +0 -0
  50. package/dist/client/_assets/chunks/1733f27476507ca68b68a803bc533cc2-DXL-14Ug.woff2 +0 -0
  51. package/dist/client/_assets/chunks/17c7f5d0a45e92ede0e5dec3a2c77efa-CNj3jQMl.woff2 +0 -0
  52. package/dist/client/_assets/chunks/1824321da801e6257b902f3d1d09054c-D4dgdyWB.woff2 +0 -0
  53. package/dist/client/_assets/chunks/188c2db794f3dd7a45889ddbc81da9bb-C9NbUBBO.woff2 +0 -0
  54. package/dist/client/_assets/chunks/1a08931435f885e707edb85978ea3bb6-BOiP2u7G.woff2 +0 -0
  55. package/dist/client/_assets/chunks/1a3a92c7c060a71a6c35819b9ebcdbb9-DFfonQfz.woff2 +0 -0
  56. package/dist/client/_assets/chunks/1be602ad456b0d75902d352116cb35fd-Bc-XQtQh.woff2 +0 -0
  57. package/dist/client/_assets/chunks/1cf737900dd49c2e88f1b3221a82a602-CfTmnns3.woff2 +0 -0
  58. package/dist/client/_assets/chunks/1fba7ec0e412e911bf31841de5a8a4e4-18ELMbFF.woff2 +0 -0
  59. package/dist/client/_assets/chunks/233d3a685ee18276b319363474599d47-BaFdJ0-G.woff2 +0 -0
  60. package/dist/client/_assets/chunks/2612c60f9dc5459ac42763591240a1d6-CTD69cq1.woff2 +0 -0
  61. package/dist/client/_assets/chunks/284b53bbefb06924cf236d24c8ed5641-CPDiuOv6.woff2 +0 -0
  62. package/dist/client/_assets/chunks/28a97af9ab9d38983d20f39ff09840e1-mFqcT3Jw.woff2 +0 -0
  63. package/dist/client/_assets/chunks/2a56eaf19d1d38a6b57e2a388f733676-CU52qBlE.woff2 +0 -0
  64. package/dist/client/_assets/chunks/2ab8cf1f23a5ac7939a7876054e711a7-B4T3dK7A.woff2 +0 -0
  65. package/dist/client/_assets/chunks/2abfbab82b6a7c04426afc054d2464da-D5PIIHde.woff2 +0 -0
  66. package/dist/client/_assets/chunks/2bfaadaf3479c72286248e6de0be0ec9-DEpU6O74.woff2 +0 -0
  67. package/dist/client/_assets/chunks/2c8c55e4cec85ce77e95cac9d330f5cf-BCTA96EZ.woff2 +0 -0
  68. package/dist/client/_assets/chunks/2e6f4bb71ef6b38765d51acc5a79f638-Mbs6PECD.woff2 +0 -0
  69. package/dist/client/_assets/chunks/2ed9981d2e8983365bd051159b976b6d-D8gg6NWM.woff2 +0 -0
  70. package/dist/client/_assets/chunks/2f4c633e923ba30c6ba376367379fc91-CIJCFztv.woff2 +0 -0
  71. package/dist/client/_assets/chunks/31194d303a67561926a544ed0e072aee-w3-eGYAi.woff2 +0 -0
  72. package/dist/client/_assets/chunks/31a197213ae61d7043c81013f52d10d6-DXZrrkJP.woff2 +0 -0
  73. package/dist/client/_assets/chunks/349965eee0a9b6c984a319ab96a4ece9-DByAVmXw.woff2 +0 -0
  74. package/dist/client/_assets/chunks/34e6750e00c3a911ef87dc66b336594d-DNbWesOu.woff2 +0 -0
  75. package/dist/client/_assets/chunks/3623d96698132c61e861f984ce11cc23-jqV9ErzX.woff2 +0 -0
  76. package/dist/client/_assets/chunks/36cda3eae13370b934bba4429fab9078-BPDcUlw9.woff2 +0 -0
  77. package/dist/client/_assets/chunks/36f3df4730cfca4fc77fe52b52e6a126-BwK10NC0.woff2 +0 -0
  78. package/dist/client/_assets/chunks/37887deb7a9c466cf2af6ee7ff372ea6-BrAerJB1.woff2 +0 -0
  79. package/dist/client/_assets/chunks/37dbd564820cce2f7b3331e442da0df3-Cql2kzIi.woff2 +0 -0
  80. package/dist/client/_assets/chunks/37dc8505b20b37a2477a9121b16d44a7-CoXw6XWV.woff2 +0 -0
  81. package/dist/client/_assets/chunks/39211b02f24c69cbd1b54f6d41b01933-4Xu7vvnq.woff2 +0 -0
  82. package/dist/client/_assets/chunks/3aa13f1843d7c8fa16109b6395a9a29d-BQFZUc3B.woff2 +0 -0
  83. package/dist/client/_assets/chunks/3aba89c4d4281553078de4622b498cbb-8QS1zDYk.woff2 +0 -0
  84. package/dist/client/_assets/chunks/3ac0a07878cacdc98bb889f40f5970d3-C-BaM6-y.woff2 +0 -0
  85. package/dist/client/_assets/chunks/3d88558097559d775231194d43745ba7-CR2aqGC7.woff2 +0 -0
  86. package/dist/client/_assets/chunks/3dc3e8c35524cad2d1236f3393104ccf-9sqBsF7B.woff2 +0 -0
  87. package/dist/client/_assets/chunks/3e24063b19abd2b051af986a6870046d-TlweM3SW.woff2 +0 -0
  88. package/dist/client/_assets/chunks/3e2c06bdd9dcab29aeaeb0cfb7fa608a-BaqU-dIt.woff2 +0 -0
  89. package/dist/client/_assets/chunks/424123f9371ba357087363263eeafcda-C8SVfEJi.woff2 +0 -0
  90. package/dist/client/_assets/chunks/43b3bbf43055c3e65db9cdf2c5b18c1c-CbHx6-Ki.woff2 +0 -0
  91. package/dist/client/_assets/chunks/4410f876d27c9821839474b6b1059fd7-ClYz91aY.woff2 +0 -0
  92. package/dist/client/_assets/chunks/44704471b60c18b3ecec5300a88f1102-DDmmy6-m.woff2 +0 -0
  93. package/dist/client/_assets/chunks/45140742dfa8686b58db2899ce89f89a-D5IMMzDM.woff2 +0 -0
  94. package/dist/client/_assets/chunks/46604090efbb99c2db1800928af0a239-JX2fpYX_.woff2 +0 -0
  95. package/dist/client/_assets/chunks/46998df85d31e629c0142f0556f5e7c5-BIkNG9Wh.woff2 +0 -0
  96. package/dist/client/_assets/chunks/469d2754e315e77270c12fa0ab28026c-D-y-vsfA.woff2 +0 -0
  97. package/dist/client/_assets/chunks/479329a39a3eb6c0047e6b0981919855-vZKCRx42.woff2 +0 -0
  98. package/dist/client/_assets/chunks/491bbba374093fff045f55803a22bfef-DSQXiDCd.woff2 +0 -0
  99. package/dist/client/_assets/chunks/49902f1c41b281f8eb3771abdd4dccb8-DxVxNg2W.woff2 +0 -0
  100. package/dist/client/_assets/chunks/4c0760284569b87d8f2290c324953973-Bqd-TKHH.woff2 +0 -0
  101. package/dist/client/_assets/chunks/4cba92c942694bdc479bc54101bb1aa4-BrfsrgrC.woff2 +0 -0
  102. package/dist/client/_assets/chunks/4d38e56738156625329d93bd5c8cc74a-DONkMP0y.woff2 +0 -0
  103. package/dist/client/_assets/chunks/4db4f31a16965baa42cb7dad667a8f04-Dt1Cy4gr.woff2 +0 -0
  104. package/dist/client/_assets/chunks/4e7d263c30bb48604069a3b4404d4eeb-DNPCkvKD.woff2 +0 -0
  105. package/dist/client/_assets/chunks/5279c7e465d9871edf51fd02e691eee7-CKhyhvVf.woff2 +0 -0
  106. package/dist/client/_assets/chunks/527ff336279465617aafbafe1a830632-CC3lv4pm.woff2 +0 -0
  107. package/dist/client/_assets/chunks/54bfdb6f21f9d6191e5100580239e14f-PGlqYvgl.woff2 +0 -0
  108. package/dist/client/_assets/chunks/56b40518ea0608e62826bd44ee27f5f9-BD9F9Oss.woff2 +0 -0
  109. package/dist/client/_assets/chunks/56be5e32fd01668fe5ba814d94905839-CSyFA-9l.woff2 +0 -0
  110. package/dist/client/_assets/chunks/572b9e28f1e6d89b765a16d809db84a1-BIYMjzEa.woff2 +0 -0
  111. package/dist/client/_assets/chunks/57e9a86651366c1ba299e47aa7e358c2-BHuZXB4W.woff2 +0 -0
  112. package/dist/client/_assets/chunks/57f89adeae55aa7fe2add3fc1801ce03-Cy3PNrfx.woff2 +0 -0
  113. package/dist/client/_assets/chunks/5921cef36750ff6092d94b83a802823b-hF-uymTh.woff2 +0 -0
  114. package/dist/client/_assets/chunks/59e95d8b5332dcdae894a19946ab767d-ClRfsjWZ.woff2 +0 -0
  115. package/dist/client/_assets/chunks/5acc7f736217259db79a42bf44241c48-FYQUuFOM.woff2 +0 -0
  116. package/dist/client/_assets/chunks/5c05f8b75c9d7f25b3c04ca711cf43b3-D-YWPkSq.woff2 +0 -0
  117. package/dist/client/_assets/chunks/5df9ce98c75f8c50fb4fff7f01a23925-DgoCENyW.woff2 +0 -0
  118. package/dist/client/_assets/chunks/5e0124c7265f1b4cf0fc797b94efbebc-BTBNHsSB.woff2 +0 -0
  119. package/dist/client/_assets/chunks/5ec349ff62b9ee5fe0c6dae867704dc4-B4dezhrz.woff2 +0 -0
  120. package/dist/client/_assets/chunks/60020a830d809c26970cf8e48ba1eeda-B6FDTSik.woff2 +0 -0
  121. package/dist/client/_assets/chunks/601f812e8b1eafecd5ba585a6a6d7962-gIVBlUU9.woff2 +0 -0
  122. package/dist/client/_assets/chunks/6025ddaf99d86cc8bfd781006b19fbd6-CS-ze337.woff2 +0 -0
  123. package/dist/client/_assets/chunks/60bcfa3ea7446eb42394aab02d28be40-C-PQfCu3.woff2 +0 -0
  124. package/dist/client/_assets/chunks/60f6e28b3f0400b0e8fe32c3c7116102-Dag9L2qU.woff2 +0 -0
  125. package/dist/client/_assets/chunks/615a7e0d63f257109d599b2a1977de68-D6Y93yoG.woff2 +0 -0
  126. package/dist/client/_assets/chunks/615b38e0b5bb3ea68426f44f47706e6f-B5yzIIer.woff2 +0 -0
  127. package/dist/client/_assets/chunks/61a2c80d0c924d5a6187c02e8d1d1642-BY3MmHbZ.woff2 +0 -0
  128. package/dist/client/_assets/chunks/62fc94f8d4c5a750b7f25e7387539910-3ql2_WDK.woff2 +0 -0
  129. package/dist/client/_assets/chunks/639c7c6b0b0c27c738702741cfa4b8c0-BCD3OGri.woff2 +0 -0
  130. package/dist/client/_assets/chunks/63fafcb069520613d0ea35ad3e6b1e42-DP0Rrj4o.woff2 +0 -0
  131. package/dist/client/_assets/chunks/64a404d675f1d726f0891b7a80794595-DU3L0I9s.woff2 +0 -0
  132. package/dist/client/_assets/chunks/65a60d87c64228d258a123cbe85f5f31-B4kbf-79.woff2 +0 -0
  133. package/dist/client/_assets/chunks/65e9c4585d71bf48a5c62f367010da16-CvzgzReN.woff2 +0 -0
  134. package/dist/client/_assets/chunks/68a3a4bf337f8a0722be76676e20b850-Dnaw8EPD.woff2 +0 -0
  135. package/dist/client/_assets/chunks/6968e889e18891d912809fe484c2e745-Bj1m5e0s.woff2 +0 -0
  136. package/dist/client/_assets/chunks/6abdd163d2c4b85698db8aa1ce149361-B5FVGJuo.woff2 +0 -0
  137. package/dist/client/_assets/chunks/6b75213eb0be40ce84241eb2bb438a2e-CqHmF-NR.woff2 +0 -0
  138. package/dist/client/_assets/chunks/70714891ad3fbfc3d5f10a8669dacc5a-BWk5nLFN.woff2 +0 -0
  139. package/dist/client/_assets/chunks/7158022889c6c177062ac85036e7af10-B3D4K22n.woff2 +0 -0
  140. package/dist/client/_assets/chunks/73b794d885b88f7befb7ea8ab1780a15-D0ZehnEI.woff2 +0 -0
  141. package/dist/client/_assets/chunks/743f290baf027d4626a86e22f3d44600-DDTDQdRC.woff2 +0 -0
  142. package/dist/client/_assets/chunks/7520ca6ca8c60eb1e62d50e71c8d30f1-CVRaGu2G.woff2 +0 -0
  143. package/dist/client/_assets/chunks/757019c01c5e2c2b0f54293cea3b5636-BTovUnoH.woff2 +0 -0
  144. package/dist/client/_assets/chunks/759a647b77791b1e98f99bc0ab5317a7-CrK6FIFz.woff2 +0 -0
  145. package/dist/client/_assets/chunks/761d84afca8d7f34eebefe538adba827-DRbiVuwX.woff2 +0 -0
  146. package/dist/client/_assets/chunks/76e07530323418ec723c5d7634c9bcca-DGtVJTTH.woff2 +0 -0
  147. package/dist/client/_assets/chunks/76e51630143b95b6322ef93ad330da7a-D-kV82C_.woff2 +0 -0
  148. package/dist/client/_assets/chunks/76f117a3baacda304a71965a17266a13-DFfvsFUm.woff2 +0 -0
  149. package/dist/client/_assets/chunks/773819b7b9b8fd404a929867c0fd677e-Bu1xCMZb.woff2 +0 -0
  150. package/dist/client/_assets/chunks/77747f17625a259fb405b7bbdd84ac4b-o_vNfh-6.woff2 +0 -0
  151. package/dist/client/_assets/chunks/7817dd16805145d8538ad57590f69f5a-DguSUP3O.woff2 +0 -0
  152. package/dist/client/_assets/chunks/788498548ddfb710d6ef3c7bff79fa97-3ffoQfRd.woff2 +0 -0
  153. package/dist/client/_assets/chunks/78ea6c40923ce95367e3517dd1e5a849-DvLDRhX9.woff2 +0 -0
  154. package/dist/client/_assets/chunks/79aa7c8c842c4a27cf57c0a3a1ffca5a-sDoCeoKI.woff2 +0 -0
  155. package/dist/client/_assets/chunks/7b59f0ec7792b18458dc5a361e37884c-DWvxkKmT.woff2 +0 -0
  156. package/dist/client/_assets/chunks/7c3945788a689a69356c1a622d69d48b-1JjIpss2.woff2 +0 -0
  157. package/dist/client/_assets/chunks/7cc72fd2c9105560422b6a67c6162945-Co3AF5_G.woff2 +0 -0
  158. package/dist/client/_assets/chunks/7d0ea0690e432462f4d05a23d720ec19-Dx7DK4C3.woff2 +0 -0
  159. package/dist/client/_assets/chunks/7dffa5c1bec57e0903fd62357401ff1a-DuQHmiiN.woff2 +0 -0
  160. package/dist/client/_assets/chunks/7e38ca789a9e76ac91d9256374e154f0-BtETgGRe.woff2 +0 -0
  161. package/dist/client/_assets/chunks/7f9a6c9286b68de9c72b0024f7beeb40-JpXdo4FC.woff2 +0 -0
  162. package/dist/client/_assets/chunks/815a0b797465190f60d8b1a04656c42e-Spzo94nU.woff2 +0 -0
  163. package/dist/client/_assets/chunks/823d1bb11097331238d103c7f72138dc-CGN6m2VF.woff2 +0 -0
  164. package/dist/client/_assets/chunks/82f6ccc063960eed1cdfd1d61ada8862-CsmAqx2a.woff2 +0 -0
  165. package/dist/client/_assets/chunks/835b6505bb9eea9678925a1fa885353d-C6mSBwUc.woff2 +0 -0
  166. package/dist/client/_assets/chunks/845b4b67564d62cf5cad242f7ac08ea5-DnvzrloJ.woff2 +0 -0
  167. package/dist/client/_assets/chunks/84c8e7bc0931008ed91f44ed12dfea94-C2Hvhh-b.woff2 +0 -0
  168. package/dist/client/_assets/chunks/8726558cf297cbda831cc19514897205-gSFV1vW0.woff2 +0 -0
  169. package/dist/client/_assets/chunks/8855472f3c02f6c7ebb3216617ebe4af-C1JsWVqq.woff2 +0 -0
  170. package/dist/client/_assets/chunks/887a11290ba78b1e66c6d2f67043005e-L_A1f5Fz.woff2 +0 -0
  171. package/dist/client/_assets/chunks/888ba53510213d5d1f6a7deb60e569b6-OP8E-ELN.woff2 +0 -0
  172. package/dist/client/_assets/chunks/88db1d042074fb6e66821ffc10941930-kZ6K3e62.woff2 +0 -0
  173. package/dist/client/_assets/chunks/892aa49b2529c89bb4076d4aa51fe30f-Bw0_Km2A.woff2 +0 -0
  174. package/dist/client/_assets/chunks/8b5c9ef81159f31d2ab35f45ca4373e0-Djw95sKC.woff2 +0 -0
  175. package/dist/client/_assets/chunks/8b91c7c2ed390f1278b9befa3aa87233-B2C3iFbQ.woff2 +0 -0
  176. package/dist/client/_assets/chunks/8dc18c0cebe6aa4bf4c45dbb831048ab-bUlANLit.woff2 +0 -0
  177. package/dist/client/_assets/chunks/8e231d707f0c4f8e3cde90a6b52a79aa-CvwbWlul.woff2 +0 -0
  178. package/dist/client/_assets/chunks/8fb45117a62d92dce44a80f0b729ead5-Djr4-o5-.woff2 +0 -0
  179. package/dist/client/_assets/chunks/9064c12fd72c7aba235d8c3881755b91-BnguxT-p.woff2 +0 -0
  180. package/dist/client/_assets/chunks/90b7848e9b1623b77bdcf155e90b839c-CFvPRnoM.woff2 +0 -0
  181. package/dist/client/_assets/chunks/911b9e53e9814de2998c60bf3115f560-DmPmj635.woff2 +0 -0
  182. package/dist/client/_assets/chunks/919a879bd2d580d8491a31a449390689-BY2w-8_Y.woff2 +0 -0
  183. package/dist/client/_assets/chunks/91da6cb174bebfb96976e2f1316be2fe-DztAJb6W.woff2 +0 -0
  184. package/dist/client/_assets/chunks/92fdc376bce277874e75db666f175b44-DJUnHEIN.woff2 +0 -0
  185. package/dist/client/_assets/chunks/930a23430f0eb64480d7fe5f82834e21-2VrDPT7E.woff2 +0 -0
  186. package/dist/client/_assets/chunks/934dfdbed2bb2c4b6129199d699a34fa-CtpHsjRD.woff2 +0 -0
  187. package/dist/client/_assets/chunks/93bed0e5f2dd5a21cf73304fcfbc149d-DJiaETX7.woff2 +0 -0
  188. package/dist/client/_assets/chunks/93f3ea6918533d96d9c252378b9a4af0-D-FJaGi-.woff2 +0 -0
  189. package/dist/client/_assets/chunks/95a0951d2a2722ff773a1a45e8c474d6-DuZg-BpP.woff2 +0 -0
  190. package/dist/client/_assets/chunks/95ff41191c76ef893ac70a1043e95e44-C08QDbJO.woff2 +0 -0
  191. package/dist/client/_assets/chunks/96c75862c8cec51a7c05ff025fea86cd-DBnRwCuW.woff2 +0 -0
  192. package/dist/client/_assets/chunks/97d7a17234f2b5030ae9697ae00aded2-CkUSaB-p.woff2 +0 -0
  193. package/dist/client/_assets/chunks/982cd1765ca6bbb3e6547e47834d5148-DkIybx1r.woff2 +0 -0
  194. package/dist/client/_assets/chunks/985d4d41afa0934a4eb2de35473fb9a2-CF7rgJMw.woff2 +0 -0
  195. package/dist/client/_assets/chunks/995c4fda62d25c3b79dd5987737df6ae-CY5ri8HW.woff2 +0 -0
  196. package/dist/client/_assets/chunks/9b0c3caac458c7bc9c9133e40405ddea-DhPrYOcz.woff2 +0 -0
  197. package/dist/client/_assets/chunks/9b21e8244f5930c48ad5073f83777b6c-CuE9-r-r.woff2 +0 -0
  198. package/dist/client/_assets/chunks/9bb38fd05201de666b88b82d56a386f7-nMl6lB8X.woff2 +0 -0
  199. package/dist/client/_assets/chunks/9d0afa53dc2f92ba42024f55f11f6779-Bozpx8bL.woff2 +0 -0
  200. package/dist/client/_assets/chunks/9e13a47242926f1cd7d68c08d9ef8889-DwKQjc8M.woff2 +0 -0
  201. package/dist/client/_assets/chunks/9eff2ab2a9d2ced47ab761bf6fdb11ec-D86-Zm1H.woff2 +0 -0
  202. package/dist/client/_assets/chunks/9f1963fe8d4d6878d717d872a8f3fdb5-DxjITUFq.woff2 +0 -0
  203. package/dist/client/_assets/chunks/9f3bdab4025dc7c5ba1a5871e62e8918-BqxDEFLJ.woff2 +0 -0
  204. package/dist/client/_assets/chunks/9fce02d1a09f464c36c9fcfb14a354c5-F2tMAB_j.woff2 +0 -0
  205. package/dist/client/_assets/chunks/a00e94d4f04df6aa659db9c4954c7efe-CRBKCj_3.woff2 +0 -0
  206. package/dist/client/_assets/chunks/a0a6755c7e3f9e4cf03387027dd9f16c-BAyRqF2w.woff2 +0 -0
  207. package/dist/client/_assets/chunks/a0d00fe4816c95a8c7dffd445ef00b03-CxcTiRLJ.woff2 +0 -0
  208. package/dist/client/_assets/chunks/a0f199077fa1a33bc2a1e01c64de7fe6-IdgVJmZD.woff2 +0 -0
  209. package/dist/client/_assets/chunks/a2b0597837e382aca19919c4b74e58c8-7iVOBjzI.woff2 +0 -0
  210. package/dist/client/_assets/chunks/a373e85c96aa0dc303092429fb837e51-Dvmw8mbX.woff2 +0 -0
  211. package/dist/client/_assets/chunks/a379ada89abd750c587ded29f77e731c-CgPBsEsv.woff2 +0 -0
  212. package/dist/client/_assets/chunks/a4475c442c6b259354c9eda62e64e7df-TZ0c8vK-.woff2 +0 -0
  213. package/dist/client/_assets/chunks/a48be56ce5d3a99dc8f8331398004412-BR_ixH1W.woff2 +0 -0
  214. package/dist/client/_assets/chunks/a4a39b5f048671aa37c2b2a9581ab08a-EDfDYsUd.woff2 +0 -0
  215. package/dist/client/_assets/chunks/a534449d67561ac9b06489f64e57ad98-C355TCrD.woff2 +0 -0
  216. package/dist/client/_assets/chunks/a6e044424780a57610833cc856c15bf5-x1b8FE4H.woff2 +0 -0
  217. package/dist/client/_assets/chunks/a7c35e42a659347e490c3cb7983b2e7f-BWpA0-oz.woff2 +0 -0
  218. package/dist/client/_assets/chunks/a7c58070d68dc1724e9d4e781afb78db-ql27pT-6.woff2 +0 -0
  219. package/dist/client/_assets/chunks/a806759e72987951d6d08b7cbdf36a1b-TvLDwB_u.woff2 +0 -0
  220. package/dist/client/_assets/chunks/a88481ec8bc7be11cb66e46781a79bb9-Ck-r_sGx.woff2 +0 -0
  221. package/dist/client/_assets/chunks/a919a8c6fec6d7e8bb21177965f2e9d7-CC5uWzwd.woff2 +0 -0
  222. package/dist/client/_assets/chunks/a9a016d4a93409f65278327e8a8bb38d-dylrNwF8.woff2 +0 -0
  223. package/dist/client/_assets/chunks/aa662092cf249707123ca4d575e2764b-CSxNsTUL.woff2 +0 -0
  224. package/dist/client/_assets/chunks/aae1eda193285ab817a2d1b408440326-CjyjBoRm.woff2 +0 -0
  225. package/dist/client/_assets/chunks/ab92d41062a7644faa45f50bf384454a-Cq0X8a9H.woff2 +0 -0
  226. package/dist/client/_assets/chunks/accc43762ad05edfbff66ba1380d192a-B5jIykaZ.woff2 +0 -0
  227. package/dist/client/_assets/chunks/ad47bcd6d4663026d648c132d969318d-BYdIbDge.woff2 +0 -0
  228. package/dist/client/_assets/chunks/ad67113f88b59582991cb0c5d33ea19f-DOH1vcIZ.woff2 +0 -0
  229. package/dist/client/_assets/chunks/adb6e613fb99c6dd660b727101f554a8-DJDw_ZZK.woff2 +0 -0
  230. package/dist/client/_assets/chunks/adc4a98a89870ef984ee8f4b57c8a3a5-D30vw26R.woff2 +0 -0
  231. package/dist/client/_assets/chunks/af57a2e8c72f9ba0efb1af771d32c124-D5Zwq9pS.woff2 +0 -0
  232. package/dist/client/_assets/chunks/b0ae5f374e43dac992a4a5d334cebc0b-Ccoi4dPt.woff2 +0 -0
  233. package/dist/client/_assets/chunks/b0cb664cb2e1371efda8943c0b7dcd1c-YzGFnelF.woff2 +0 -0
  234. package/dist/client/_assets/chunks/b0d1cdced482352cf0d3ae58638aacb9-IunWfc6R.woff2 +0 -0
  235. package/dist/client/_assets/chunks/b12379ab782468d725519cd07a7d15bc-IjbydKs2.woff2 +0 -0
  236. package/dist/client/_assets/chunks/b320f5d185b2cff933ac549c184031c5-IYnPrIz4.woff2 +0 -0
  237. package/dist/client/_assets/chunks/b326a8a9c33b554db570da94f60bc380-B6dzaCQg.woff2 +0 -0
  238. package/dist/client/_assets/chunks/b55486f8a459c838fe329d4e79a8c211-DW8q7oGV.woff2 +0 -0
  239. package/dist/client/_assets/chunks/b6117ff2993b11bb1fdc7ea3588a010c-JoMYL5W_.woff2 +0 -0
  240. package/dist/client/_assets/chunks/b61982951bd51b724143c30dfaaa9fe9-D3KhBKl6.woff2 +0 -0
  241. package/dist/client/_assets/chunks/b91234c10fd8b8c8abc88e03afe66a1f-BABNh2la.woff2 +0 -0
  242. package/dist/client/_assets/chunks/b9317198f118a1dfd8ddf2b82ec028f3-CiMecxeH.woff2 +0 -0
  243. package/dist/client/_assets/chunks/ba825ae79b1a6f7e0cce5215fcb5c96f-B6EWU_D5.woff2 +0 -0
  244. package/dist/client/_assets/chunks/ba9c59d7dfa4494db1bb764ada81467d-D0yPcC1m.woff2 +0 -0
  245. package/dist/client/_assets/chunks/bab547459d514f46206e340c4bb2dc88-YnBqlGhw.woff2 +0 -0
  246. package/dist/client/_assets/chunks/bb0b15492b8cdbbec57c0bcfa0aa9241-BjIFbEsN.woff2 +0 -0
  247. package/dist/client/_assets/chunks/bc6183ac08f0fac78c46f80c10cf7c92-B81nbRb3.woff2 +0 -0
  248. package/dist/client/_assets/chunks/bc8ccea5abf6598cf3cfa97eb59804bb-B_7IbluG.woff2 +0 -0
  249. package/dist/client/_assets/chunks/bc95a792cbca6639214c9b0da13392ff-CHQe0E-D.woff2 +0 -0
  250. package/dist/client/_assets/chunks/bcc39eda837bb7a7a3d37c8c60fffb81-CGd1Zk6S.woff2 +0 -0
  251. package/dist/client/_assets/chunks/bcfa62f35731856246c146d3a6932bf3-DMDq6w4v.woff2 +0 -0
  252. package/dist/client/_assets/chunks/bd73264d7f98776708d5d6f3c9b78fcc-d9QWWMym.woff2 +0 -0
  253. package/dist/client/_assets/chunks/bed610b217d500f5975cfc9fe6157570-B5t7s1bw.woff2 +0 -0
  254. package/dist/client/_assets/chunks/bedc74b423b7293b6ad0bdecc61c42cc-4Nnh7peP.woff2 +0 -0
  255. package/dist/client/_assets/chunks/bf8901f8f11d4f433ea17dabc9370ea6-B8dkfvGn.woff2 +0 -0
  256. package/dist/client/_assets/chunks/bfb00d4a4c48661bd0be99f300a0faae-OxsWZ7l-.woff2 +0 -0
  257. package/dist/client/_assets/chunks/c0098958e20db68cab90097b5e62516f-VpjQo3vV.woff2 +0 -0
  258. package/dist/client/_assets/chunks/c063897793f593eb26d6ff7b7baaba18-BWeJJ1sH.woff2 +0 -0
  259. package/dist/client/_assets/chunks/c1b0df29ae41d764904df84e9ac83d1e-D1N934vs.woff2 +0 -0
  260. package/dist/client/_assets/chunks/c4143bb9f2fe77b6ccf20088a8904650-nHfYM24e.woff2 +0 -0
  261. package/dist/client/_assets/chunks/c42c67070cfe99cf823df92d81c7fa6e-B_a405Ez.woff2 +0 -0
  262. package/dist/client/_assets/chunks/c4bfaa5e50798246e3770718b7a7c84a-B-r6Y_o0.woff2 +0 -0
  263. package/dist/client/_assets/chunks/c4d749e45ecd5a5aed5a0bb3ebfd355d-CkqE1fRi.woff2 +0 -0
  264. package/dist/client/_assets/chunks/c6c2971ad1f3221f6cf84028aa0f477e-D7BZGIcY.woff2 +0 -0
  265. package/dist/client/_assets/chunks/c7ff3f6bbdcd5f604b7343602ab904df-Bq7UjVrZ.woff2 +0 -0
  266. package/dist/client/_assets/chunks/c84598999133455503042e06f4ab79cb-DIXndJX3.woff2 +0 -0
  267. package/dist/client/_assets/chunks/c945c62368357d05a53206620460fb30-82gFEf6n.woff2 +0 -0
  268. package/dist/client/_assets/chunks/c96d83978add28b356c22c4c84916733-BL4VaPIE.woff2 +0 -0
  269. package/dist/client/_assets/chunks/c97f41eef722121d86f55d553c056a39-CjejgQO2.woff2 +0 -0
  270. package/dist/client/_assets/chunks/ca62704509932d3232d62918de97af3f-CKWF-3mX.woff2 +0 -0
  271. package/dist/client/_assets/chunks/ca9a533988d7019597a60d4e17127e0c-ClZ6ygZM.woff2 +0 -0
  272. package/dist/client/_assets/chunks/cb7ccd6494256f7a2977b7c2b0225592-Cxp8XObm.woff2 +0 -0
  273. package/dist/client/_assets/chunks/ce022e18a1377ac509443c3c3790b431-DpH0t6Tn.woff2 +0 -0
  274. package/dist/client/_assets/chunks/ce41d70ce6a069a498525c9e15c45cf2-DGtgv-_b.woff2 +0 -0
  275. package/dist/client/_assets/chunks/cf2b28f90f47276f7e2688a65e88a101-LVbNkXHj.woff2 +0 -0
  276. package/dist/client/_assets/chunks/cf9cffe56636322f62b40d61130fbc5e-DNCBMqAo.woff2 +0 -0
  277. package/dist/client/_assets/chunks/d1f064825fa5784b5c930652bd831cce-BU6qwjp8.woff2 +0 -0
  278. package/dist/client/_assets/chunks/d20d8944bc0b85f5b2aae4b24f343516-oY9l-NmC.woff2 +0 -0
  279. package/dist/client/_assets/chunks/d2faabcedd19f016e7b21bce073c0ec8-Dv6eFCf5.woff2 +0 -0
  280. package/dist/client/_assets/chunks/d320171e57480510f87dbbc7d5264b0a-CcCfjaFX.woff2 +0 -0
  281. package/dist/client/_assets/chunks/d36644d6502527e1fff205d0c7eca434-kVBj8zy_.woff2 +0 -0
  282. package/dist/client/_assets/chunks/d3a72a99d365dddfbca8d017a8011368-Bgdmhl3M.woff2 +0 -0
  283. package/dist/client/_assets/chunks/d40ab99c7a38026f411c8f112f742b48-D7Nm7fg6.woff2 +0 -0
  284. package/dist/client/_assets/chunks/d42aafa0f246ad3b4c16fe96d3a3a432-CRxTqZXU.woff2 +0 -0
  285. package/dist/client/_assets/chunks/d4aaf23c13ae808a4bed617afd13aa07-d_T1SKe9.woff2 +0 -0
  286. package/dist/client/_assets/chunks/d509ee5c8241bc7c3de2039d75564fa5-BpNFD9JE.woff2 +0 -0
  287. package/dist/client/_assets/chunks/d675d717cd329bfd4c0524f76ae1579c-Bd5_ctoQ.woff2 +0 -0
  288. package/dist/client/_assets/chunks/d689b1861d7e4377dd72ad3013482612-jPsVOU3F.woff2 +0 -0
  289. package/dist/client/_assets/chunks/d6bb686bddfbe8f38a36a68e609a8667-C_QduS-X.woff2 +0 -0
  290. package/dist/client/_assets/chunks/d9020ff69a83b2a6ee1f42ae480f7db0-DLBUPMCe.woff2 +0 -0
  291. package/dist/client/_assets/chunks/d9047070d72a816b3dba9d40c2d85e69-LTQ42vEp.woff2 +0 -0
  292. package/dist/client/_assets/chunks/da04549f3f4ed28076b01b8cd710d313-CDXOeduw.woff2 +0 -0
  293. package/dist/client/_assets/chunks/da7af303f8c645f9a9dbae0e6e32dd35-DCkS2jqi.woff2 +0 -0
  294. package/dist/client/_assets/chunks/da90a9012ab2d98f759e3fa0820ef502-D0D9d1zg.woff2 +0 -0
  295. package/dist/client/_assets/chunks/dc6e234ded795e91f76d6647f628fbf0-IkooXcRh.woff2 +0 -0
  296. package/dist/client/_assets/chunks/dc8f6256445e68199540be9ade33529f-umb5tWbZ.woff2 +0 -0
  297. package/dist/client/_assets/chunks/dd0cfdfdac0866e66d587e2b5a9e9961-bl4ozE0c.woff2 +0 -0
  298. package/dist/client/_assets/chunks/de304c8a02e45ded4f8dcc479d167198-ClRu89-4.woff2 +0 -0
  299. package/dist/client/_assets/chunks/df10d94bea357a43313e20da5d84bd30-CmAgh2oA.woff2 +0 -0
  300. package/dist/client/_assets/chunks/df9568257eb29b156449fdd4bec5ec76-BMz6aLRr.woff2 +0 -0
  301. package/dist/client/_assets/chunks/e067cd0ed76c90cd0a93c9339253f20b-6RxCQ4jy.woff2 +0 -0
  302. package/dist/client/_assets/chunks/e08b07772e7bed3cec2832d43f7fd339-CQCkeKsr.woff2 +0 -0
  303. package/dist/client/_assets/chunks/e12150d5a39b30be8f567968c7a527b0-DjdoWzeQ.woff2 +0 -0
  304. package/dist/client/_assets/chunks/e34b2b141e472dc776c86fdf8eea23b0-Cjk7H-Ev.woff2 +0 -0
  305. package/dist/client/_assets/chunks/e444fd88f1390636e603d0d681538ac8-Bx7CPOZh.woff2 +0 -0
  306. package/dist/client/_assets/chunks/e53fcb2381eee345db4f6f973dd95a3e-DmkkCUWz.woff2 +0 -0
  307. package/dist/client/_assets/chunks/e5bd313ef81f687d398aacb11cec3069-CwBEbcji.woff2 +0 -0
  308. package/dist/client/_assets/chunks/e79898628283edc27180fc39d0d769c1-By2pplQz.woff2 +0 -0
  309. package/dist/client/_assets/chunks/e8c15be62faf978d208925e79ea6a10d-Ct5M9lTP.woff2 +0 -0
  310. package/dist/client/_assets/chunks/e8c364c16daa04835bf32d293d2598db-3v4Tut_d.woff2 +0 -0
  311. package/dist/client/_assets/chunks/e91c4d941ed9f5c2f3e27f205a3a225e-BwOJ2Lst.woff2 +0 -0
  312. package/dist/client/_assets/chunks/e9c566be7a5d38a9085225f7372bc82b-BCtnCVML.woff2 +0 -0
  313. package/dist/client/_assets/chunks/e9ebc567a711eeb29019ddae3e0ce7fe-CnNhV49O.woff2 +0 -0
  314. package/dist/client/_assets/chunks/eaf332445a40942928e5f5750c1c3116-qZ5LSRrj.woff2 +0 -0
  315. package/dist/client/_assets/chunks/eb5afb3d952b8593782caec6026514b6-BXugZF2T.woff2 +0 -0
  316. package/dist/client/_assets/chunks/ec86e23683052da5cfdc3b77641bd15a-BeLcbcRc.woff2 +0 -0
  317. package/dist/client/_assets/chunks/ecb8875a56c7b038b35432fda41ae128-BVqgNf1o.woff2 +0 -0
  318. package/dist/client/_assets/chunks/eda1b0cb6d1719dd9bedcf3216a9e8de-BJTfLL5z.woff2 +0 -0
  319. package/dist/client/_assets/chunks/edd6a4f608d04fc0351d7688cfc321e4-d3V4U40c.woff2 +0 -0
  320. package/dist/client/_assets/chunks/ee6fce20b420a480714607c66d7f97e5-DEtC-G5G.woff2 +0 -0
  321. package/dist/client/_assets/chunks/eee3836d6ac17ebb2c450bbcbc9db121-C5a2TZjQ.woff2 +0 -0
  322. package/dist/client/_assets/chunks/et-book-bold-line-figures-BFJr2_zv.woff +0 -0
  323. package/dist/client/_assets/chunks/et-book-display-italic-old-style-figures-CoeRJAe8.woff +0 -0
  324. package/dist/client/_assets/chunks/et-book-roman-line-figures-CaA40oOf.woff +0 -0
  325. package/dist/client/_assets/chunks/f1661731474b78bdf81114daf10b254f-KnMKX_U3.woff2 +0 -0
  326. package/dist/client/_assets/chunks/f2c58dee206ba9355046fc23d05491f7-Cm4tCWav.woff2 +0 -0
  327. package/dist/client/_assets/chunks/f50ac27ea4358d67fdda403c2bb52467-WCfYHde1.woff2 +0 -0
  328. package/dist/client/_assets/chunks/f55334112f8e8be82d65db29887a663f-vDq1zH8k.woff2 +0 -0
  329. package/dist/client/_assets/chunks/f5738255e92d8dd34a46d1bcdf4c4074-tpghTzL1.woff2 +0 -0
  330. package/dist/client/_assets/chunks/f740e93f3c0277ecc616594103bca683-C4BgW_ko.woff2 +0 -0
  331. package/dist/client/_assets/chunks/f7633b5af033d76ff2fb3c3c266d77c5-BCkrZxwO.woff2 +0 -0
  332. package/dist/client/_assets/chunks/f7d8468cba2335a83ee414ea68291bab-CVnotkZU.woff2 +0 -0
  333. package/dist/client/_assets/chunks/f91cd722855f4269256eae1187df64ec-DJlAx1A_.woff2 +0 -0
  334. package/dist/client/_assets/chunks/f9695c6c4df2bf6bc03045ff79d4f01f-DDaYGYHT.woff2 +0 -0
  335. package/dist/client/_assets/chunks/fa6e58ce4b52695e7ae19bbea6336ec8-B30jEpze.woff2 +0 -0
  336. package/dist/client/_assets/chunks/fada6eaa68ff8816afe43d2a36c5423e-DlGAWNPb.woff2 +0 -0
  337. package/dist/client/_assets/chunks/fbcc4bf5367218951172bdee6f77d7a6-Dax2VSCd.woff2 +0 -0
  338. package/dist/client/_assets/chunks/fc895f5ce66b656f4a933097bf2a8775-DjjysNdf.woff2 +0 -0
  339. package/dist/client/_assets/chunks/fc9ae5b600fb711f2d67e93ce768cba4-D1lx7LBz.woff2 +0 -0
  340. package/dist/client/_assets/chunks/fca6720fd14c467d29a90f18ef3859b9-B3btrwq3.woff2 +0 -0
  341. package/dist/client/_assets/chunks/fd1bb507bcbf04856eeb7f7fd47ea579-NR1nGJTt.woff2 +0 -0
  342. package/dist/client/_assets/chunks/fd1bceb55d3e0183ac2454b8532fec7d-D3t-v6nn.woff2 +0 -0
  343. package/dist/client/_assets/chunks/fd2069e6e8588c70b4f11364093b81f2-BoXhYVgw.woff2 +0 -0
  344. package/dist/client/_assets/chunks/{url-CG0eolsk.js → url-pLre2DM_.js} +1 -1
  345. package/dist/client/_assets/client-C_kImWZj.css +2 -0
  346. package/dist/client/_assets/client-D95FNDg5.js +272 -0
  347. package/dist/client/_assets/client-auth-BRFl5zQA.js +4547 -0
  348. package/dist/client/_assets/client-cjk-jp-DZwrTzQC.css +1 -0
  349. package/dist/client/_assets/client-cjk-kr-_3ZNI2ZP.css +1 -0
  350. package/dist/env-wCpMcNXs.js +252 -0
  351. package/dist/github-api-CficQztC.js +176 -0
  352. package/dist/github-app-F4qZ05xk.js +275 -0
  353. package/dist/github-sync-zohnA9qv.js +4696 -0
  354. package/dist/index.js +88 -2
  355. package/dist/node.js +71 -30
  356. package/dist/url-FvvgARU9.js +305 -0
  357. package/package.json +16 -12
  358. package/src/__tests__/bin/content-cli.test.ts +179 -0
  359. package/src/__tests__/bin/media-cli.test.ts +192 -0
  360. package/src/__tests__/export-hugo-build.test.ts +178 -0
  361. package/src/__tests__/export-import-roundtrip.test.ts +265 -0
  362. package/src/__tests__/export-service.test.ts +763 -510
  363. package/src/__tests__/helpers/export-fixtures.ts +108 -0
  364. package/src/__tests__/import-site-command.test.ts +358 -350
  365. package/src/__tests__/site-pull-media.test.ts +256 -0
  366. package/src/app.tsx +65 -13
  367. package/src/client/__tests__/collection-form-bridge.test.ts +87 -7
  368. package/src/client/__tests__/collection-page-actions.test.ts +4 -4
  369. package/src/client/__tests__/collection-picker-order.test.ts +53 -0
  370. package/src/client/__tests__/collection-sort-menu.test.ts +2 -2
  371. package/src/client/__tests__/compose-bridge.test.ts +305 -13
  372. package/src/client/__tests__/compose-launch.test.ts +120 -0
  373. package/src/client/__tests__/compose-shortcuts.test.ts +141 -0
  374. package/src/client/__tests__/feed-video-player.test.ts +44 -0
  375. package/src/client/__tests__/site-header-nav.test.ts +250 -0
  376. package/src/client/__tests__/sortable-list.test.ts +6 -2
  377. package/src/client/__tests__/thread-context.test.ts +117 -0
  378. package/src/client/collection-form-bridge.ts +109 -4
  379. package/src/client/collection-page-actions.ts +3 -1
  380. package/src/client/collection-picker-order.ts +104 -0
  381. package/src/client/components/__tests__/{jant-collection-sidebar.test.ts → jant-collection-directory.test.ts} +145 -8
  382. package/src/client/components/__tests__/jant-collection-form.test.ts +40 -18
  383. package/src/client/components/__tests__/jant-compose-dialog.test.ts +1285 -66
  384. package/src/client/components/__tests__/jant-compose-editor.test.ts +254 -19
  385. package/src/client/components/__tests__/jant-compose-fullscreen.test.ts +127 -1
  386. package/src/client/components/__tests__/jant-media-lightbox.test.ts +237 -0
  387. package/src/client/components/__tests__/jant-nav-manager.test.ts +326 -0
  388. package/src/client/components/__tests__/jant-post-menu.test.ts +372 -2
  389. package/src/client/components/__tests__/jant-settings-avatar.test.ts +61 -5
  390. package/src/client/components/__tests__/jant-settings-general.test.ts +29 -28
  391. package/src/client/components/__tests__/jant-text-preview.test.ts +206 -0
  392. package/src/client/components/collection-manager-types.ts +18 -1
  393. package/src/client/components/compose-types.ts +48 -0
  394. package/src/client/components/jant-collection-directory.ts +1448 -0
  395. package/src/client/components/jant-collection-form.ts +65 -15
  396. package/src/client/components/jant-command-palette.ts +544 -0
  397. package/src/client/components/jant-compose-dialog.ts +2490 -375
  398. package/src/client/components/jant-compose-editor.ts +420 -75
  399. package/src/client/components/jant-compose-fullscreen.ts +59 -8
  400. package/src/client/components/jant-media-lightbox.ts +373 -18
  401. package/src/client/components/jant-nav-manager.ts +624 -286
  402. package/src/client/components/jant-post-menu.ts +451 -126
  403. package/src/client/components/jant-repo-picker-types.ts +39 -0
  404. package/src/client/components/jant-repo-picker.ts +799 -0
  405. package/src/client/components/jant-settings-avatar.ts +16 -2
  406. package/src/client/components/jant-settings-general.ts +137 -35
  407. package/src/client/components/jant-text-preview.ts +239 -55
  408. package/src/client/components/nav-manager-types.ts +25 -9
  409. package/src/client/components/settings-types.ts +13 -2
  410. package/src/client/compose-bridge.ts +428 -68
  411. package/src/client/compose-launch.ts +41 -4
  412. package/src/client/compose-shortcuts.ts +77 -5
  413. package/src/client/feed-video-player.ts +374 -0
  414. package/src/client/image-processor.ts +53 -127
  415. package/src/client/media-lightbox-events.ts +1 -0
  416. package/src/client/media-scroll-hint.ts +66 -0
  417. package/src/client/multipart-upload.ts +4 -1
  418. package/src/client/palette-shortcuts.ts +35 -0
  419. package/src/client/search-rank.ts +74 -0
  420. package/src/client/settings-bridge.ts +7 -0
  421. package/src/client/site-header-nav.d.ts +1 -0
  422. package/src/client/site-header-nav.js +139 -51
  423. package/src/client/sortable-list.ts +2 -0
  424. package/src/client/thread-context.ts +54 -11
  425. package/src/client/tiptap/__tests__/block-insertion.test.ts +65 -0
  426. package/src/client/tiptap/__tests__/footnotes.test.ts +692 -0
  427. package/src/client/tiptap/__tests__/link-toolbar.test.ts +120 -4
  428. package/src/client/tiptap/__tests__/markdown-clipboard.test.ts +48 -0
  429. package/src/client/tiptap/block-insertion.ts +36 -0
  430. package/src/client/tiptap/bubble-menu.ts +34 -4
  431. package/src/client/tiptap/create-editor.ts +49 -30
  432. package/src/client/tiptap/embed-dialog.ts +301 -0
  433. package/src/client/tiptap/embed-node.ts +373 -0
  434. package/src/client/tiptap/embed-paste.ts +91 -0
  435. package/src/client/tiptap/extensions.ts +77 -28
  436. package/src/client/tiptap/footnotes.ts +718 -0
  437. package/src/client/tiptap/html-block-node.ts +222 -0
  438. package/src/client/tiptap/image-node.ts +49 -6
  439. package/src/client/tiptap/inline-image-upload.ts +200 -40
  440. package/src/client/tiptap/link-input-rules.ts +50 -16
  441. package/src/client/tiptap/link-toolbar.ts +156 -133
  442. package/src/client/tiptap/markdown-clipboard.ts +120 -0
  443. package/src/client/tiptap/more-break.ts +36 -3
  444. package/src/client/tiptap/paste-media.ts +6 -0
  445. package/src/client/tiptap/slash-commands.ts +167 -14
  446. package/src/client/tiptap/tab-indent.ts +184 -0
  447. package/src/client/tiptap/toolbar-mode.ts +15 -2
  448. package/src/client/tiptap/wrapping-input-rules.ts +102 -0
  449. package/src/client/types/sortablejs.d.ts +9 -1
  450. package/src/client/upload-session.ts +2 -1
  451. package/src/client/video-processor.ts +177 -20
  452. package/src/client-auth.ts +9 -1
  453. package/src/client-site.ts +15 -0
  454. package/src/client.ts +2 -0
  455. package/src/db/__tests__/demo-canonical-snapshot.test.ts +1 -1
  456. package/src/db/__tests__/migration-rehearsal.test.ts +5 -1
  457. package/src/db/__tests__/migrations.test.ts +25 -2
  458. package/src/db/backfills/0001_strip_collection_path_c_prefix.sql +11 -0
  459. package/src/db/backfills/0002_strip_collection_path_c_prefix_fix.sql +12 -0
  460. package/src/db/backfills/0003_clear_system_nav_default_labels.sql +15 -0
  461. package/src/db/dialect.ts +40 -0
  462. package/src/db/migrations/0005_busy_the_phantom.sql +39 -0
  463. package/src/db/migrations/0006_adorable_magdalene.sql +3 -0
  464. package/src/db/migrations/0007_unusual_warstar.sql +1 -0
  465. package/src/db/migrations/0008_nasty_lockheed.sql +1 -0
  466. package/src/db/migrations/0009_clear_fixer.sql +31 -0
  467. package/src/db/migrations/0010_futuristic_preak.sql +31 -0
  468. package/src/db/migrations/0011_bizarre_smasher.sql +30 -0
  469. package/src/db/migrations/0012_furry_thena.sql +52 -0
  470. package/src/db/migrations/0013_mixed_lightspeed.sql +39 -0
  471. package/src/db/migrations/0014_high_the_santerians.sql +41 -0
  472. package/src/db/migrations/0015_skinny_shinobi_shaw.sql +1 -0
  473. package/src/db/migrations/0016_remarkable_nicolaos.sql +17 -0
  474. package/src/db/migrations/0017_powerful_moonstone.sql +14 -0
  475. package/src/db/migrations/meta/0005_snapshot.json +1904 -0
  476. package/src/db/migrations/meta/0006_snapshot.json +1925 -0
  477. package/src/db/migrations/meta/0007_snapshot.json +1933 -0
  478. package/src/db/migrations/meta/0008_snapshot.json +1940 -0
  479. package/src/db/migrations/meta/0009_snapshot.json +1952 -0
  480. package/src/db/migrations/meta/0010_snapshot.json +1952 -0
  481. package/src/db/migrations/meta/0011_snapshot.json +1948 -0
  482. package/src/db/migrations/meta/0012_snapshot.json +1955 -0
  483. package/src/db/migrations/meta/0013_snapshot.json +1977 -0
  484. package/src/db/migrations/meta/0014_snapshot.json +1988 -0
  485. package/src/db/migrations/meta/0015_snapshot.json +1995 -0
  486. package/src/db/migrations/meta/0016_snapshot.json +2104 -0
  487. package/src/db/migrations/meta/0017_snapshot.json +2188 -0
  488. package/src/db/migrations/meta/_journal.json +92 -1
  489. package/src/db/migrations/pg/0003_motionless_norrin_radd.sql +21 -0
  490. package/src/db/migrations/pg/0004_nervous_captain_midlands.sql +3 -0
  491. package/src/db/migrations/pg/0005_romantic_mesmero.sql +1 -0
  492. package/src/db/migrations/pg/0006_perpetual_bruce_banner.sql +1 -0
  493. package/src/db/migrations/pg/0007_nav_item_placement.sql +1 -0
  494. package/src/db/migrations/pg/0008_yielding_frightful_four.sql +3 -0
  495. package/src/db/migrations/pg/0009_outstanding_ogun.sql +1 -0
  496. package/src/db/migrations/pg/0010_overjoyed_gertrude_yorkes.sql +28 -0
  497. package/src/db/migrations/pg/0011_fixed_hulk.sql +19 -0
  498. package/src/db/migrations/pg/0012_cute_shockwave.sql +2 -0
  499. package/src/db/migrations/pg/0013_bizarre_obadiah_stane.sql +1 -0
  500. package/src/db/migrations/pg/0014_tearful_grim_reaper.sql +16 -0
  501. package/src/db/migrations/pg/0015_daffy_mikhail_rasputin.sql +14 -0
  502. package/src/db/migrations/pg/meta/0003_snapshot.json +2482 -0
  503. package/src/db/migrations/pg/meta/0004_snapshot.json +2500 -0
  504. package/src/db/migrations/pg/meta/0005_snapshot.json +2507 -0
  505. package/src/db/migrations/pg/meta/0006_snapshot.json +2513 -0
  506. package/src/db/migrations/pg/meta/0008_snapshot.json +2524 -0
  507. package/src/db/migrations/pg/meta/0009_snapshot.json +2520 -0
  508. package/src/db/migrations/pg/meta/0010_snapshot.json +2526 -0
  509. package/src/db/migrations/pg/meta/0011_snapshot.json +2563 -0
  510. package/src/db/migrations/pg/meta/0012_snapshot.json +2573 -0
  511. package/src/db/migrations/pg/meta/0013_snapshot.json +2579 -0
  512. package/src/db/migrations/pg/meta/0014_snapshot.json +2702 -0
  513. package/src/db/migrations/pg/meta/0015_snapshot.json +2803 -0
  514. package/src/db/migrations/pg/meta/_journal.json +92 -1
  515. package/src/db/pg/__tests__/node.test.ts +38 -0
  516. package/src/db/pg/node.ts +149 -0
  517. package/src/db/pg/schema.ts +130 -12
  518. package/src/db/rehearsal-fixtures/demo-current.sql +47 -3
  519. package/src/db/schema.ts +139 -12
  520. package/src/i18n/Trans.tsx +3 -3
  521. package/src/i18n/__tests__/context.test.tsx +9 -6
  522. package/src/i18n/__tests__/detect.test.ts +65 -48
  523. package/src/i18n/__tests__/fallback.test.ts +40 -0
  524. package/src/i18n/__tests__/message-placeholders.test.ts +43 -0
  525. package/src/i18n/__tests__/middleware.test.ts +83 -0
  526. package/src/i18n/context.tsx +9 -44
  527. package/src/i18n/detect.ts +95 -28
  528. package/src/i18n/i18n.ts +41 -17
  529. package/src/i18n/index.ts +7 -5
  530. package/src/i18n/locales/{en.po → public/en.po} +298 -1151
  531. package/src/i18n/locales/public/en.ts +1 -0
  532. package/src/i18n/locales/public/zh-Hans.po +2327 -0
  533. package/src/i18n/locales/public/zh-Hans.ts +1 -0
  534. package/src/i18n/locales/public/zh-Hant.po +2327 -0
  535. package/src/i18n/locales/public/zh-Hant.ts +1 -0
  536. package/src/i18n/locales/settings/en.po +1622 -0
  537. package/src/i18n/locales/settings/en.ts +1 -0
  538. package/src/i18n/locales/settings/zh-Hans.po +1622 -0
  539. package/src/i18n/locales/settings/zh-Hans.ts +1 -0
  540. package/src/i18n/locales/settings/zh-Hant.po +1622 -0
  541. package/src/i18n/locales/settings/zh-Hant.ts +1 -0
  542. package/src/i18n/middleware.ts +37 -24
  543. package/src/index.ts +4 -5
  544. package/src/lib/__tests__/collection-groups.test.ts +80 -0
  545. package/src/lib/__tests__/constants.test.ts +1 -1
  546. package/src/lib/__tests__/csp-builder.test.ts +68 -0
  547. package/src/lib/__tests__/display-text.test.ts +27 -0
  548. package/src/lib/__tests__/embed-providers.test.ts +104 -0
  549. package/src/lib/__tests__/embed-render.test.ts +60 -0
  550. package/src/lib/__tests__/feed.test.ts +125 -63
  551. package/src/lib/__tests__/hosted-signin.test.ts +11 -2
  552. package/src/lib/__tests__/markdown-roundtrip-embed.test.ts +88 -0
  553. package/src/lib/__tests__/markdown-to-tiptap.test.ts +59 -0
  554. package/src/lib/__tests__/markdown.test.ts +47 -5
  555. package/src/lib/__tests__/navigation.test.ts +148 -0
  556. package/src/lib/__tests__/post-display.test.ts +3 -2
  557. package/src/lib/__tests__/post-meta.test.ts +3 -0
  558. package/src/lib/__tests__/resolve-config.test.ts +30 -25
  559. package/src/lib/__tests__/schemas.test.ts +35 -0
  560. package/src/lib/__tests__/slug-format.test.ts +8 -0
  561. package/src/lib/__tests__/summary.test.ts +400 -1
  562. package/src/lib/__tests__/theme.test.ts +41 -2
  563. package/src/lib/__tests__/timeline.test.ts +114 -26
  564. package/src/lib/__tests__/tiptap-render.test.ts +224 -0
  565. package/src/lib/__tests__/tiptap-to-markdown.test.ts +51 -0
  566. package/src/lib/__tests__/video-playback.test.ts +48 -0
  567. package/src/lib/__tests__/view.test.ts +115 -8
  568. package/src/lib/__tests__/worker-response-cache.test.ts +311 -0
  569. package/src/lib/__tests__/youtube.test.ts +99 -0
  570. package/src/lib/api-media.ts +55 -0
  571. package/src/lib/api-posts.ts +99 -0
  572. package/src/lib/api-search.ts +47 -0
  573. package/src/lib/api-settings.ts +122 -0
  574. package/src/lib/asset-path.ts +20 -2
  575. package/src/lib/collection-groups.ts +70 -0
  576. package/src/lib/collection-paths.ts +40 -0
  577. package/src/lib/constants.ts +3 -4
  578. package/src/lib/csp-builder.ts +99 -0
  579. package/src/lib/decorative-quote-mark.ts +11 -0
  580. package/src/lib/display-text.ts +56 -0
  581. package/src/lib/embed-providers.ts +289 -0
  582. package/src/lib/embed-render.ts +151 -0
  583. package/src/lib/env.ts +70 -1
  584. package/src/lib/excerpt.ts +11 -2
  585. package/src/lib/feed.ts +89 -66
  586. package/src/lib/footnotes.ts +146 -0
  587. package/src/lib/github-api.ts +423 -0
  588. package/src/lib/github-app-state.ts +135 -0
  589. package/src/lib/github-app.ts +487 -0
  590. package/src/lib/github-sync-queue-handler.ts +69 -0
  591. package/src/lib/github-sync-site-config.ts +57 -0
  592. package/src/lib/github-sync-status.tsx +87 -0
  593. package/src/lib/github-sync-trigger.ts +199 -0
  594. package/src/lib/github-sync-worker.ts +72 -0
  595. package/src/lib/hosted-signin.ts +1 -1
  596. package/src/lib/hugo-markdown.ts +255 -0
  597. package/src/lib/job-queue-cf.ts +18 -0
  598. package/src/lib/job-queue-db.ts +149 -0
  599. package/src/lib/job-queue.ts +35 -0
  600. package/src/lib/markdown-manager.ts +864 -0
  601. package/src/lib/markdown-to-tiptap.ts +4 -323
  602. package/src/lib/markdown.ts +16 -24
  603. package/src/lib/media-helpers.ts +1 -0
  604. package/src/lib/navigation.ts +40 -8
  605. package/src/lib/post-display.ts +10 -22
  606. package/src/lib/public-storage.ts +6 -1
  607. package/src/lib/render.tsx +5 -2
  608. package/src/lib/resolve-config.ts +23 -11
  609. package/src/lib/rich-image.ts +89 -0
  610. package/src/lib/schemas.ts +186 -12
  611. package/src/lib/slug-format.ts +8 -0
  612. package/src/lib/summary.ts +125 -18
  613. package/src/lib/theme.ts +119 -0
  614. package/src/lib/timeline.ts +91 -63
  615. package/src/lib/tiptap-render.ts +265 -126
  616. package/src/lib/tiptap-to-markdown.ts +6 -329
  617. package/src/lib/upload.ts +97 -6
  618. package/src/lib/version.ts +18 -0
  619. package/src/lib/video-playback.ts +73 -0
  620. package/src/lib/view.ts +130 -90
  621. package/src/lib/webhook-signature.ts +65 -0
  622. package/src/lib/worker-response-cache.ts +220 -0
  623. package/src/lib/youtube.ts +119 -0
  624. package/src/middleware/__tests__/onboarding.test.ts +3 -3
  625. package/src/middleware/__tests__/secure-headers.test.ts +28 -1
  626. package/src/middleware/config.ts +7 -10
  627. package/src/middleware/cors.ts +49 -0
  628. package/src/middleware/secure-headers.ts +45 -55
  629. package/src/node/__tests__/cli-migrate.test.ts +111 -0
  630. package/src/node/__tests__/cli-runtime-target.test.ts +1 -1
  631. package/src/node/__tests__/cli-site-token-env.test.ts +2 -2
  632. package/src/preset.css +316 -12
  633. package/src/routes/__tests__/compose.test.ts +3 -1
  634. package/src/routes/api/__tests__/collections.test.ts +81 -27
  635. package/src/routes/api/__tests__/mcp.test.ts +389 -0
  636. package/src/routes/api/__tests__/nav-items.test.ts +163 -2
  637. package/src/routes/api/__tests__/posts.test.ts +190 -0
  638. package/src/routes/api/__tests__/settings.test.ts +99 -3
  639. package/src/routes/api/__tests__/upload-multipart.test.ts +10 -2
  640. package/src/routes/api/__tests__/upload.test.ts +132 -0
  641. package/src/routes/api/__tests__/uploads.test.ts +5 -3
  642. package/src/routes/api/collections.ts +67 -26
  643. package/src/routes/api/custom-urls.ts +1 -0
  644. package/src/routes/api/export.ts +8 -4
  645. package/src/routes/api/github-sync.tsx +380 -0
  646. package/src/routes/api/internal/__tests__/sites.test.ts +45 -2
  647. package/src/routes/api/internal/sites.ts +2 -0
  648. package/src/routes/api/internal/text-attachments.ts +60 -0
  649. package/src/routes/api/internal/uploads.ts +5 -1
  650. package/src/routes/api/mcp.ts +30 -0
  651. package/src/routes/api/nav-items.ts +30 -11
  652. package/src/routes/api/palette.ts +17 -0
  653. package/src/routes/api/posts.ts +37 -106
  654. package/src/routes/api/public/__tests__/posts.test.ts +372 -0
  655. package/src/routes/api/public/posts.ts +302 -0
  656. package/src/routes/api/search.ts +1 -47
  657. package/src/routes/api/settings.ts +44 -58
  658. package/src/routes/api/upload-multipart.ts +15 -5
  659. package/src/routes/api/upload.ts +62 -49
  660. package/src/routes/api/uploads.ts +1 -0
  661. package/src/routes/auth/__tests__/hosted-sso.test.ts +33 -0
  662. package/src/routes/auth/__tests__/setup.test.ts +29 -4
  663. package/src/routes/auth/hosted-sso-expired-page.tsx +89 -0
  664. package/src/routes/auth/hosted-sso.ts +42 -1
  665. package/src/routes/auth/reset.tsx +46 -32
  666. package/src/routes/auth/setup.tsx +53 -43
  667. package/src/routes/auth/signin.tsx +34 -24
  668. package/src/routes/compose.tsx +114 -1
  669. package/src/routes/dash/__tests__/font-theme.test.ts +6 -27
  670. package/src/routes/dash/__tests__/settings-avatar.test.ts +2 -3
  671. package/src/routes/dash/custom-urls.tsx +250 -112
  672. package/src/routes/dash/settings.tsx +1179 -70
  673. package/src/routes/feed/__tests__/{rss.test.ts → feed.test.ts} +62 -123
  674. package/src/routes/feed/feed.ts +386 -0
  675. package/src/routes/feed/manifest.ts +67 -0
  676. package/src/routes/feed/sitemap.ts +11 -2
  677. package/src/routes/pages/__tests__/collection-routing.test.ts +176 -0
  678. package/src/routes/pages/__tests__/collections.test.ts +2 -3
  679. package/src/routes/pages/__tests__/featured.test.ts +2 -3
  680. package/src/routes/pages/archive.tsx +523 -127
  681. package/src/routes/pages/collection.tsx +265 -59
  682. package/src/routes/pages/collections.tsx +5 -1
  683. package/src/routes/pages/home.tsx +2 -2
  684. package/src/routes/pages/latest.tsx +3 -3
  685. package/src/routes/pages/page.tsx +221 -3
  686. package/src/routes/pages/partials.tsx +5 -0
  687. package/src/routes/pages/search.tsx +17 -1
  688. package/src/routes/pages/theme-sample.tsx +1 -2
  689. package/src/runtime/__tests__/node.test.ts +1 -1
  690. package/src/runtime/__tests__/readiness.test.ts +89 -0
  691. package/src/runtime/readiness.ts +129 -0
  692. package/src/runtime/site.ts +9 -1
  693. package/src/services/__tests__/collection.test.ts +181 -53
  694. package/src/services/__tests__/github-app-installations.test.ts +181 -0
  695. package/src/services/__tests__/github-sync-classify.test.ts +189 -0
  696. package/src/services/__tests__/github-sync-push.test.ts +159 -0
  697. package/src/services/__tests__/media.test.ts +444 -7
  698. package/src/services/__tests__/navigation.test.ts +271 -14
  699. package/src/services/__tests__/post-timeline.test.ts +85 -17
  700. package/src/services/__tests__/post.test.ts +118 -10
  701. package/src/services/__tests__/settings.test.ts +43 -21
  702. package/src/services/auth.ts +2 -2
  703. package/src/services/bootstrap.ts +10 -7
  704. package/src/services/collection.ts +644 -191
  705. package/src/services/custom-url.ts +34 -7
  706. package/src/services/export-theme/assets/client-site.css +2 -0
  707. package/src/services/export-theme/assets/client-site.js +145 -0
  708. package/src/services/export-theme/layouts/_default/alias.html +49 -0
  709. package/src/services/export-theme/layouts/_default/baseof.html +21 -0
  710. package/src/services/export-theme/layouts/_default/list.html +104 -0
  711. package/src/services/export-theme/layouts/_default/rss.xml +160 -0
  712. package/src/services/export-theme/layouts/_default/single.html +15 -0
  713. package/src/services/export-theme/layouts/archive/list.html +31 -0
  714. package/src/services/export-theme/layouts/collection/single.html +19 -0
  715. package/src/services/export-theme/layouts/collections/list.html +111 -0
  716. package/src/services/export-theme/layouts/featured/list.html +28 -0
  717. package/src/services/export-theme/layouts/index.html +41 -0
  718. package/src/services/export-theme/layouts/partials/feed-post-content.xml +107 -0
  719. package/src/services/export-theme/layouts/partials/footer.html +32 -0
  720. package/src/services/export-theme/layouts/partials/head.html +52 -0
  721. package/src/services/export-theme/layouts/partials/header.html +115 -0
  722. package/src/services/export-theme/layouts/partials/media-gallery.html +246 -0
  723. package/src/services/export-theme/layouts/partials/pagination.html +55 -0
  724. package/src/services/export-theme/layouts/partials/post-card.html +127 -0
  725. package/src/services/export-theme/layouts/partials/reply.html +91 -0
  726. package/src/services/export-theme/layouts/partials/thread-preview.html +82 -0
  727. package/src/services/export-theme/layouts/post/list.html +129 -0
  728. package/src/services/export-theme/styles/main.css +1981 -0
  729. package/src/services/export-theme/theme.toml +12 -0
  730. package/src/services/export.ts +1365 -2412
  731. package/src/services/github-app-installations.ts +302 -0
  732. package/src/services/github-sync.ts +769 -0
  733. package/src/services/index.ts +15 -0
  734. package/src/services/mcp.ts +1324 -0
  735. package/src/services/media.ts +336 -25
  736. package/src/services/navigation.ts +115 -23
  737. package/src/services/path.ts +129 -28
  738. package/src/services/post.ts +779 -207
  739. package/src/services/search.ts +3 -0
  740. package/src/services/settings.ts +29 -15
  741. package/src/services/site-admin.ts +26 -6
  742. package/src/services/upload-session.ts +69 -34
  743. package/src/style-cjk-jp.css +3 -0
  744. package/src/style-cjk-kr.css +3 -0
  745. package/src/styles/components.css +160 -59
  746. package/src/styles/fonts/et-book/et-book-bold-line-figures.woff +0 -0
  747. package/src/styles/fonts/et-book/et-book-display-italic-old-style-figures.woff +0 -0
  748. package/src/styles/fonts/et-book/et-book-roman-line-figures.woff +0 -0
  749. package/src/styles/fonts/et-book.css +31 -0
  750. package/src/styles/fonts/latin.css +1 -0
  751. package/src/styles/fonts/noto-serif-jp/400/057a6a98bda7fe57105ddaa99ec82015.woff2 +0 -0
  752. package/src/styles/fonts/noto-serif-jp/400/0acd1fe2b2ea1ad1bfee7ae1fa139d27.woff2 +0 -0
  753. package/src/styles/fonts/noto-serif-jp/400/0c2ab6b295e55f356f8020d4e7747522.woff2 +0 -0
  754. package/src/styles/fonts/noto-serif-jp/400/0c5f9492af03a4fa42c784de94649de1.woff2 +0 -0
  755. package/src/styles/fonts/noto-serif-jp/400/0d9a936885a4c39077438effd3779cbd.woff2 +0 -0
  756. package/src/styles/fonts/noto-serif-jp/400/0e645da524f7cfc0e8c3c03fb2b08428.woff2 +0 -0
  757. package/src/styles/fonts/noto-serif-jp/400/135e83b403475c5dc9e49b43501a5b84.woff2 +0 -0
  758. package/src/styles/fonts/noto-serif-jp/400/13b2c53b30e6a3e4de7132dbc18dbdfc.woff2 +0 -0
  759. package/src/styles/fonts/noto-serif-jp/400/15d95680dc31cc6ce20e0a5464106dc4.woff2 +0 -0
  760. package/src/styles/fonts/noto-serif-jp/400/1733f27476507ca68b68a803bc533cc2.woff2 +0 -0
  761. package/src/styles/fonts/noto-serif-jp/400/188c2db794f3dd7a45889ddbc81da9bb.woff2 +0 -0
  762. package/src/styles/fonts/noto-serif-jp/400/1cf737900dd49c2e88f1b3221a82a602.woff2 +0 -0
  763. package/src/styles/fonts/noto-serif-jp/400/233d3a685ee18276b319363474599d47.woff2 +0 -0
  764. package/src/styles/fonts/noto-serif-jp/400/284b53bbefb06924cf236d24c8ed5641.woff2 +0 -0
  765. package/src/styles/fonts/noto-serif-jp/400/2a56eaf19d1d38a6b57e2a388f733676.woff2 +0 -0
  766. package/src/styles/fonts/noto-serif-jp/400/2abfbab82b6a7c04426afc054d2464da.woff2 +0 -0
  767. package/src/styles/fonts/noto-serif-jp/400/2e6f4bb71ef6b38765d51acc5a79f638.woff2 +0 -0
  768. package/src/styles/fonts/noto-serif-jp/400/31194d303a67561926a544ed0e072aee.woff2 +0 -0
  769. package/src/styles/fonts/noto-serif-jp/400/3623d96698132c61e861f984ce11cc23.woff2 +0 -0
  770. package/src/styles/fonts/noto-serif-jp/400/39211b02f24c69cbd1b54f6d41b01933.woff2 +0 -0
  771. package/src/styles/fonts/noto-serif-jp/400/3e24063b19abd2b051af986a6870046d.woff2 +0 -0
  772. package/src/styles/fonts/noto-serif-jp/400/4410f876d27c9821839474b6b1059fd7.woff2 +0 -0
  773. package/src/styles/fonts/noto-serif-jp/400/479329a39a3eb6c0047e6b0981919855.woff2 +0 -0
  774. package/src/styles/fonts/noto-serif-jp/400/527ff336279465617aafbafe1a830632.woff2 +0 -0
  775. package/src/styles/fonts/noto-serif-jp/400/56b40518ea0608e62826bd44ee27f5f9.woff2 +0 -0
  776. package/src/styles/fonts/noto-serif-jp/400/5acc7f736217259db79a42bf44241c48.woff2 +0 -0
  777. package/src/styles/fonts/noto-serif-jp/400/5c05f8b75c9d7f25b3c04ca711cf43b3.woff2 +0 -0
  778. package/src/styles/fonts/noto-serif-jp/400/5e0124c7265f1b4cf0fc797b94efbebc.woff2 +0 -0
  779. package/src/styles/fonts/noto-serif-jp/400/615a7e0d63f257109d599b2a1977de68.woff2 +0 -0
  780. package/src/styles/fonts/noto-serif-jp/400/61a2c80d0c924d5a6187c02e8d1d1642.woff2 +0 -0
  781. package/src/styles/fonts/noto-serif-jp/400/62fc94f8d4c5a750b7f25e7387539910.woff2 +0 -0
  782. package/src/styles/fonts/noto-serif-jp/400/639c7c6b0b0c27c738702741cfa4b8c0.woff2 +0 -0
  783. package/src/styles/fonts/noto-serif-jp/400/68a3a4bf337f8a0722be76676e20b850.woff2 +0 -0
  784. package/src/styles/fonts/noto-serif-jp/400/6abdd163d2c4b85698db8aa1ce149361.woff2 +0 -0
  785. package/src/styles/fonts/noto-serif-jp/400/73b794d885b88f7befb7ea8ab1780a15.woff2 +0 -0
  786. package/src/styles/fonts/noto-serif-jp/400/743f290baf027d4626a86e22f3d44600.woff2 +0 -0
  787. package/src/styles/fonts/noto-serif-jp/400/757019c01c5e2c2b0f54293cea3b5636.woff2 +0 -0
  788. package/src/styles/fonts/noto-serif-jp/400/76f117a3baacda304a71965a17266a13.woff2 +0 -0
  789. package/src/styles/fonts/noto-serif-jp/400/77747f17625a259fb405b7bbdd84ac4b.woff2 +0 -0
  790. package/src/styles/fonts/noto-serif-jp/400/788498548ddfb710d6ef3c7bff79fa97.woff2 +0 -0
  791. package/src/styles/fonts/noto-serif-jp/400/78ea6c40923ce95367e3517dd1e5a849.woff2 +0 -0
  792. package/src/styles/fonts/noto-serif-jp/400/7f9a6c9286b68de9c72b0024f7beeb40.woff2 +0 -0
  793. package/src/styles/fonts/noto-serif-jp/400/823d1bb11097331238d103c7f72138dc.woff2 +0 -0
  794. package/src/styles/fonts/noto-serif-jp/400/888ba53510213d5d1f6a7deb60e569b6.woff2 +0 -0
  795. package/src/styles/fonts/noto-serif-jp/400/892aa49b2529c89bb4076d4aa51fe30f.woff2 +0 -0
  796. package/src/styles/fonts/noto-serif-jp/400/95ff41191c76ef893ac70a1043e95e44.woff2 +0 -0
  797. package/src/styles/fonts/noto-serif-jp/400/96c75862c8cec51a7c05ff025fea86cd.woff2 +0 -0
  798. package/src/styles/fonts/noto-serif-jp/400/9b21e8244f5930c48ad5073f83777b6c.woff2 +0 -0
  799. package/src/styles/fonts/noto-serif-jp/400/9fce02d1a09f464c36c9fcfb14a354c5.woff2 +0 -0
  800. package/src/styles/fonts/noto-serif-jp/400/a0a6755c7e3f9e4cf03387027dd9f16c.woff2 +0 -0
  801. package/src/styles/fonts/noto-serif-jp/400/a4475c442c6b259354c9eda62e64e7df.woff2 +0 -0
  802. package/src/styles/fonts/noto-serif-jp/400/a4a39b5f048671aa37c2b2a9581ab08a.woff2 +0 -0
  803. package/src/styles/fonts/noto-serif-jp/400/a534449d67561ac9b06489f64e57ad98.woff2 +0 -0
  804. package/src/styles/fonts/noto-serif-jp/400/a919a8c6fec6d7e8bb21177965f2e9d7.woff2 +0 -0
  805. package/src/styles/fonts/noto-serif-jp/400/ad67113f88b59582991cb0c5d33ea19f.woff2 +0 -0
  806. package/src/styles/fonts/noto-serif-jp/400/adb6e613fb99c6dd660b727101f554a8.woff2 +0 -0
  807. package/src/styles/fonts/noto-serif-jp/400/adc4a98a89870ef984ee8f4b57c8a3a5.woff2 +0 -0
  808. package/src/styles/fonts/noto-serif-jp/400/b12379ab782468d725519cd07a7d15bc.woff2 +0 -0
  809. package/src/styles/fonts/noto-serif-jp/400/b55486f8a459c838fe329d4e79a8c211.woff2 +0 -0
  810. package/src/styles/fonts/noto-serif-jp/400/bb0b15492b8cdbbec57c0bcfa0aa9241.woff2 +0 -0
  811. package/src/styles/fonts/noto-serif-jp/400/bedc74b423b7293b6ad0bdecc61c42cc.woff2 +0 -0
  812. package/src/styles/fonts/noto-serif-jp/400/bfb00d4a4c48661bd0be99f300a0faae.woff2 +0 -0
  813. package/src/styles/fonts/noto-serif-jp/400/c1b0df29ae41d764904df84e9ac83d1e.woff2 +0 -0
  814. package/src/styles/fonts/noto-serif-jp/400/c42c67070cfe99cf823df92d81c7fa6e.woff2 +0 -0
  815. package/src/styles/fonts/noto-serif-jp/400/c4d749e45ecd5a5aed5a0bb3ebfd355d.woff2 +0 -0
  816. package/src/styles/fonts/noto-serif-jp/400/c96d83978add28b356c22c4c84916733.woff2 +0 -0
  817. package/src/styles/fonts/noto-serif-jp/400/cb7ccd6494256f7a2977b7c2b0225592.woff2 +0 -0
  818. package/src/styles/fonts/noto-serif-jp/400/ce41d70ce6a069a498525c9e15c45cf2.woff2 +0 -0
  819. package/src/styles/fonts/noto-serif-jp/400/d509ee5c8241bc7c3de2039d75564fa5.woff2 +0 -0
  820. package/src/styles/fonts/noto-serif-jp/400/d675d717cd329bfd4c0524f76ae1579c.woff2 +0 -0
  821. package/src/styles/fonts/noto-serif-jp/400/dc8f6256445e68199540be9ade33529f.woff2 +0 -0
  822. package/src/styles/fonts/noto-serif-jp/400/e8c15be62faf978d208925e79ea6a10d.woff2 +0 -0
  823. package/src/styles/fonts/noto-serif-jp/400/e91c4d941ed9f5c2f3e27f205a3a225e.woff2 +0 -0
  824. package/src/styles/fonts/noto-serif-jp/400/e9c566be7a5d38a9085225f7372bc82b.woff2 +0 -0
  825. package/src/styles/fonts/noto-serif-jp/400/e9ebc567a711eeb29019ddae3e0ce7fe.woff2 +0 -0
  826. package/src/styles/fonts/noto-serif-jp/400/ecb8875a56c7b038b35432fda41ae128.woff2 +0 -0
  827. package/src/styles/fonts/noto-serif-jp/400/f1661731474b78bdf81114daf10b254f.woff2 +0 -0
  828. package/src/styles/fonts/noto-serif-jp/400/f2c58dee206ba9355046fc23d05491f7.woff2 +0 -0
  829. package/src/styles/fonts/noto-serif-jp/400/f50ac27ea4358d67fdda403c2bb52467.woff2 +0 -0
  830. package/src/styles/fonts/noto-serif-jp/400/f55334112f8e8be82d65db29887a663f.woff2 +0 -0
  831. package/src/styles/fonts/noto-serif-jp/400/f740e93f3c0277ecc616594103bca683.woff2 +0 -0
  832. package/src/styles/fonts/noto-serif-jp/400/f7633b5af033d76ff2fb3c3c266d77c5.woff2 +0 -0
  833. package/src/styles/fonts/noto-serif-jp/400/f7d8468cba2335a83ee414ea68291bab.woff2 +0 -0
  834. package/src/styles/fonts/noto-serif-jp/400/fc9ae5b600fb711f2d67e93ce768cba4.woff2 +0 -0
  835. package/src/styles/fonts/noto-serif-jp/400/fd1bceb55d3e0183ac2454b8532fec7d.woff2 +0 -0
  836. package/src/styles/fonts/noto-serif-jp/700/02611a045a7fe83a12014e3debc9f731.woff2 +0 -0
  837. package/src/styles/fonts/noto-serif-jp/700/0f5e1a18987dbc84ca05188c129e1936.woff2 +0 -0
  838. package/src/styles/fonts/noto-serif-jp/700/112743a4ab5fdd1498dfdf2b11336380.woff2 +0 -0
  839. package/src/styles/fonts/noto-serif-jp/700/1211f03d3ff5759a702631445793f60e.woff2 +0 -0
  840. package/src/styles/fonts/noto-serif-jp/700/147b24c2f08d03bbed30887d4cb3311c.woff2 +0 -0
  841. package/src/styles/fonts/noto-serif-jp/700/16663e567f81f4725a1522f37e18f71f.woff2 +0 -0
  842. package/src/styles/fonts/noto-serif-jp/700/1824321da801e6257b902f3d1d09054c.woff2 +0 -0
  843. package/src/styles/fonts/noto-serif-jp/700/1a3a92c7c060a71a6c35819b9ebcdbb9.woff2 +0 -0
  844. package/src/styles/fonts/noto-serif-jp/700/1fba7ec0e412e911bf31841de5a8a4e4.woff2 +0 -0
  845. package/src/styles/fonts/noto-serif-jp/700/28a97af9ab9d38983d20f39ff09840e1.woff2 +0 -0
  846. package/src/styles/fonts/noto-serif-jp/700/2bfaadaf3479c72286248e6de0be0ec9.woff2 +0 -0
  847. package/src/styles/fonts/noto-serif-jp/700/2c8c55e4cec85ce77e95cac9d330f5cf.woff2 +0 -0
  848. package/src/styles/fonts/noto-serif-jp/700/2ed9981d2e8983365bd051159b976b6d.woff2 +0 -0
  849. package/src/styles/fonts/noto-serif-jp/700/2f4c633e923ba30c6ba376367379fc91.woff2 +0 -0
  850. package/src/styles/fonts/noto-serif-jp/700/349965eee0a9b6c984a319ab96a4ece9.woff2 +0 -0
  851. package/src/styles/fonts/noto-serif-jp/700/36cda3eae13370b934bba4429fab9078.woff2 +0 -0
  852. package/src/styles/fonts/noto-serif-jp/700/3aa13f1843d7c8fa16109b6395a9a29d.woff2 +0 -0
  853. package/src/styles/fonts/noto-serif-jp/700/3e2c06bdd9dcab29aeaeb0cfb7fa608a.woff2 +0 -0
  854. package/src/styles/fonts/noto-serif-jp/700/424123f9371ba357087363263eeafcda.woff2 +0 -0
  855. package/src/styles/fonts/noto-serif-jp/700/43b3bbf43055c3e65db9cdf2c5b18c1c.woff2 +0 -0
  856. package/src/styles/fonts/noto-serif-jp/700/44704471b60c18b3ecec5300a88f1102.woff2 +0 -0
  857. package/src/styles/fonts/noto-serif-jp/700/46604090efbb99c2db1800928af0a239.woff2 +0 -0
  858. package/src/styles/fonts/noto-serif-jp/700/46998df85d31e629c0142f0556f5e7c5.woff2 +0 -0
  859. package/src/styles/fonts/noto-serif-jp/700/49902f1c41b281f8eb3771abdd4dccb8.woff2 +0 -0
  860. package/src/styles/fonts/noto-serif-jp/700/4db4f31a16965baa42cb7dad667a8f04.woff2 +0 -0
  861. package/src/styles/fonts/noto-serif-jp/700/572b9e28f1e6d89b765a16d809db84a1.woff2 +0 -0
  862. package/src/styles/fonts/noto-serif-jp/700/5921cef36750ff6092d94b83a802823b.woff2 +0 -0
  863. package/src/styles/fonts/noto-serif-jp/700/59e95d8b5332dcdae894a19946ab767d.woff2 +0 -0
  864. package/src/styles/fonts/noto-serif-jp/700/5ec349ff62b9ee5fe0c6dae867704dc4.woff2 +0 -0
  865. package/src/styles/fonts/noto-serif-jp/700/601f812e8b1eafecd5ba585a6a6d7962.woff2 +0 -0
  866. package/src/styles/fonts/noto-serif-jp/700/6025ddaf99d86cc8bfd781006b19fbd6.woff2 +0 -0
  867. package/src/styles/fonts/noto-serif-jp/700/60f6e28b3f0400b0e8fe32c3c7116102.woff2 +0 -0
  868. package/src/styles/fonts/noto-serif-jp/700/64a404d675f1d726f0891b7a80794595.woff2 +0 -0
  869. package/src/styles/fonts/noto-serif-jp/700/7158022889c6c177062ac85036e7af10.woff2 +0 -0
  870. package/src/styles/fonts/noto-serif-jp/700/7e38ca789a9e76ac91d9256374e154f0.woff2 +0 -0
  871. package/src/styles/fonts/noto-serif-jp/700/815a0b797465190f60d8b1a04656c42e.woff2 +0 -0
  872. package/src/styles/fonts/noto-serif-jp/700/8726558cf297cbda831cc19514897205.woff2 +0 -0
  873. package/src/styles/fonts/noto-serif-jp/700/8855472f3c02f6c7ebb3216617ebe4af.woff2 +0 -0
  874. package/src/styles/fonts/noto-serif-jp/700/8e231d707f0c4f8e3cde90a6b52a79aa.woff2 +0 -0
  875. package/src/styles/fonts/noto-serif-jp/700/9064c12fd72c7aba235d8c3881755b91.woff2 +0 -0
  876. package/src/styles/fonts/noto-serif-jp/700/911b9e53e9814de2998c60bf3115f560.woff2 +0 -0
  877. package/src/styles/fonts/noto-serif-jp/700/92fdc376bce277874e75db666f175b44.woff2 +0 -0
  878. package/src/styles/fonts/noto-serif-jp/700/930a23430f0eb64480d7fe5f82834e21.woff2 +0 -0
  879. package/src/styles/fonts/noto-serif-jp/700/93bed0e5f2dd5a21cf73304fcfbc149d.woff2 +0 -0
  880. package/src/styles/fonts/noto-serif-jp/700/93f3ea6918533d96d9c252378b9a4af0.woff2 +0 -0
  881. package/src/styles/fonts/noto-serif-jp/700/95a0951d2a2722ff773a1a45e8c474d6.woff2 +0 -0
  882. package/src/styles/fonts/noto-serif-jp/700/982cd1765ca6bbb3e6547e47834d5148.woff2 +0 -0
  883. package/src/styles/fonts/noto-serif-jp/700/9b0c3caac458c7bc9c9133e40405ddea.woff2 +0 -0
  884. package/src/styles/fonts/noto-serif-jp/700/9f3bdab4025dc7c5ba1a5871e62e8918.woff2 +0 -0
  885. package/src/styles/fonts/noto-serif-jp/700/a00e94d4f04df6aa659db9c4954c7efe.woff2 +0 -0
  886. package/src/styles/fonts/noto-serif-jp/700/a2b0597837e382aca19919c4b74e58c8.woff2 +0 -0
  887. package/src/styles/fonts/noto-serif-jp/700/a373e85c96aa0dc303092429fb837e51.woff2 +0 -0
  888. package/src/styles/fonts/noto-serif-jp/700/a6e044424780a57610833cc856c15bf5.woff2 +0 -0
  889. package/src/styles/fonts/noto-serif-jp/700/a7c58070d68dc1724e9d4e781afb78db.woff2 +0 -0
  890. package/src/styles/fonts/noto-serif-jp/700/accc43762ad05edfbff66ba1380d192a.woff2 +0 -0
  891. package/src/styles/fonts/noto-serif-jp/700/ad47bcd6d4663026d648c132d969318d.woff2 +0 -0
  892. package/src/styles/fonts/noto-serif-jp/700/af57a2e8c72f9ba0efb1af771d32c124.woff2 +0 -0
  893. package/src/styles/fonts/noto-serif-jp/700/b0ae5f374e43dac992a4a5d334cebc0b.woff2 +0 -0
  894. package/src/styles/fonts/noto-serif-jp/700/b91234c10fd8b8c8abc88e03afe66a1f.woff2 +0 -0
  895. package/src/styles/fonts/noto-serif-jp/700/b9317198f118a1dfd8ddf2b82ec028f3.woff2 +0 -0
  896. package/src/styles/fonts/noto-serif-jp/700/ba825ae79b1a6f7e0cce5215fcb5c96f.woff2 +0 -0
  897. package/src/styles/fonts/noto-serif-jp/700/bc6183ac08f0fac78c46f80c10cf7c92.woff2 +0 -0
  898. package/src/styles/fonts/noto-serif-jp/700/bc8ccea5abf6598cf3cfa97eb59804bb.woff2 +0 -0
  899. package/src/styles/fonts/noto-serif-jp/700/bc95a792cbca6639214c9b0da13392ff.woff2 +0 -0
  900. package/src/styles/fonts/noto-serif-jp/700/bcfa62f35731856246c146d3a6932bf3.woff2 +0 -0
  901. package/src/styles/fonts/noto-serif-jp/700/c063897793f593eb26d6ff7b7baaba18.woff2 +0 -0
  902. package/src/styles/fonts/noto-serif-jp/700/c6c2971ad1f3221f6cf84028aa0f477e.woff2 +0 -0
  903. package/src/styles/fonts/noto-serif-jp/700/c97f41eef722121d86f55d553c056a39.woff2 +0 -0
  904. package/src/styles/fonts/noto-serif-jp/700/ca62704509932d3232d62918de97af3f.woff2 +0 -0
  905. package/src/styles/fonts/noto-serif-jp/700/d1f064825fa5784b5c930652bd831cce.woff2 +0 -0
  906. package/src/styles/fonts/noto-serif-jp/700/d2faabcedd19f016e7b21bce073c0ec8.woff2 +0 -0
  907. package/src/styles/fonts/noto-serif-jp/700/d320171e57480510f87dbbc7d5264b0a.woff2 +0 -0
  908. package/src/styles/fonts/noto-serif-jp/700/d3a72a99d365dddfbca8d017a8011368.woff2 +0 -0
  909. package/src/styles/fonts/noto-serif-jp/700/d42aafa0f246ad3b4c16fe96d3a3a432.woff2 +0 -0
  910. package/src/styles/fonts/noto-serif-jp/700/d4aaf23c13ae808a4bed617afd13aa07.woff2 +0 -0
  911. package/src/styles/fonts/noto-serif-jp/700/d6bb686bddfbe8f38a36a68e609a8667.woff2 +0 -0
  912. package/src/styles/fonts/noto-serif-jp/700/d9020ff69a83b2a6ee1f42ae480f7db0.woff2 +0 -0
  913. package/src/styles/fonts/noto-serif-jp/700/da90a9012ab2d98f759e3fa0820ef502.woff2 +0 -0
  914. package/src/styles/fonts/noto-serif-jp/700/df10d94bea357a43313e20da5d84bd30.woff2 +0 -0
  915. package/src/styles/fonts/noto-serif-jp/700/e34b2b141e472dc776c86fdf8eea23b0.woff2 +0 -0
  916. package/src/styles/fonts/noto-serif-jp/700/e444fd88f1390636e603d0d681538ac8.woff2 +0 -0
  917. package/src/styles/fonts/noto-serif-jp/700/e79898628283edc27180fc39d0d769c1.woff2 +0 -0
  918. package/src/styles/fonts/noto-serif-jp/700/eaf332445a40942928e5f5750c1c3116.woff2 +0 -0
  919. package/src/styles/fonts/noto-serif-jp/700/f91cd722855f4269256eae1187df64ec.woff2 +0 -0
  920. package/src/styles/fonts/noto-serif-jp/700/fc895f5ce66b656f4a933097bf2a8775.woff2 +0 -0
  921. package/src/styles/fonts/noto-serif-jp/700/fca6720fd14c467d29a90f18ef3859b9.woff2 +0 -0
  922. package/src/styles/fonts/noto-serif-jp/700/fd1bb507bcbf04856eeb7f7fd47ea579.woff2 +0 -0
  923. package/src/styles/fonts/noto-serif-jp/noto-serif-jp.css +3349 -0
  924. package/src/styles/fonts/noto-serif-kr/400/033466ef683afe931f7f520cfb42d928.woff2 +0 -0
  925. package/src/styles/fonts/noto-serif-kr/400/05da12edb9d52210581dc6ec4541031f.woff2 +0 -0
  926. package/src/styles/fonts/noto-serif-kr/400/0968e4861204b51f62a2f8e9f15dd5e0.woff2 +0 -0
  927. package/src/styles/fonts/noto-serif-kr/400/0d5dec931dc885f07fe5cd5af8bed675.woff2 +0 -0
  928. package/src/styles/fonts/noto-serif-kr/400/1076f0f6f66d28d7a2f16427faad4413.woff2 +0 -0
  929. package/src/styles/fonts/noto-serif-kr/400/12ef1ba76bd20b004b865266a1aa70b3.woff2 +0 -0
  930. package/src/styles/fonts/noto-serif-kr/400/152395634a207579552f8cb54db88599.woff2 +0 -0
  931. package/src/styles/fonts/noto-serif-kr/400/1a08931435f885e707edb85978ea3bb6.woff2 +0 -0
  932. package/src/styles/fonts/noto-serif-kr/400/31a197213ae61d7043c81013f52d10d6.woff2 +0 -0
  933. package/src/styles/fonts/noto-serif-kr/400/37dbd564820cce2f7b3331e442da0df3.woff2 +0 -0
  934. package/src/styles/fonts/noto-serif-kr/400/37dc8505b20b37a2477a9121b16d44a7.woff2 +0 -0
  935. package/src/styles/fonts/noto-serif-kr/400/3ac0a07878cacdc98bb889f40f5970d3.woff2 +0 -0
  936. package/src/styles/fonts/noto-serif-kr/400/491bbba374093fff045f55803a22bfef.woff2 +0 -0
  937. package/src/styles/fonts/noto-serif-kr/400/4d38e56738156625329d93bd5c8cc74a.woff2 +0 -0
  938. package/src/styles/fonts/noto-serif-kr/400/57e9a86651366c1ba299e47aa7e358c2.woff2 +0 -0
  939. package/src/styles/fonts/noto-serif-kr/400/57f89adeae55aa7fe2add3fc1801ce03.woff2 +0 -0
  940. package/src/styles/fonts/noto-serif-kr/400/5df9ce98c75f8c50fb4fff7f01a23925.woff2 +0 -0
  941. package/src/styles/fonts/noto-serif-kr/400/60020a830d809c26970cf8e48ba1eeda.woff2 +0 -0
  942. package/src/styles/fonts/noto-serif-kr/400/60bcfa3ea7446eb42394aab02d28be40.woff2 +0 -0
  943. package/src/styles/fonts/noto-serif-kr/400/63fafcb069520613d0ea35ad3e6b1e42.woff2 +0 -0
  944. package/src/styles/fonts/noto-serif-kr/400/65a60d87c64228d258a123cbe85f5f31.woff2 +0 -0
  945. package/src/styles/fonts/noto-serif-kr/400/6968e889e18891d912809fe484c2e745.woff2 +0 -0
  946. package/src/styles/fonts/noto-serif-kr/400/70714891ad3fbfc3d5f10a8669dacc5a.woff2 +0 -0
  947. package/src/styles/fonts/noto-serif-kr/400/761d84afca8d7f34eebefe538adba827.woff2 +0 -0
  948. package/src/styles/fonts/noto-serif-kr/400/76e07530323418ec723c5d7634c9bcca.woff2 +0 -0
  949. package/src/styles/fonts/noto-serif-kr/400/773819b7b9b8fd404a929867c0fd677e.woff2 +0 -0
  950. package/src/styles/fonts/noto-serif-kr/400/7817dd16805145d8538ad57590f69f5a.woff2 +0 -0
  951. package/src/styles/fonts/noto-serif-kr/400/7b59f0ec7792b18458dc5a361e37884c.woff2 +0 -0
  952. package/src/styles/fonts/noto-serif-kr/400/7c3945788a689a69356c1a622d69d48b.woff2 +0 -0
  953. package/src/styles/fonts/noto-serif-kr/400/835b6505bb9eea9678925a1fa885353d.woff2 +0 -0
  954. package/src/styles/fonts/noto-serif-kr/400/8b5c9ef81159f31d2ab35f45ca4373e0.woff2 +0 -0
  955. package/src/styles/fonts/noto-serif-kr/400/8b91c7c2ed390f1278b9befa3aa87233.woff2 +0 -0
  956. package/src/styles/fonts/noto-serif-kr/400/8fb45117a62d92dce44a80f0b729ead5.woff2 +0 -0
  957. package/src/styles/fonts/noto-serif-kr/400/90b7848e9b1623b77bdcf155e90b839c.woff2 +0 -0
  958. package/src/styles/fonts/noto-serif-kr/400/985d4d41afa0934a4eb2de35473fb9a2.woff2 +0 -0
  959. package/src/styles/fonts/noto-serif-kr/400/9bb38fd05201de666b88b82d56a386f7.woff2 +0 -0
  960. package/src/styles/fonts/noto-serif-kr/400/9eff2ab2a9d2ced47ab761bf6fdb11ec.woff2 +0 -0
  961. package/src/styles/fonts/noto-serif-kr/400/9f1963fe8d4d6878d717d872a8f3fdb5.woff2 +0 -0
  962. package/src/styles/fonts/noto-serif-kr/400/a0d00fe4816c95a8c7dffd445ef00b03.woff2 +0 -0
  963. package/src/styles/fonts/noto-serif-kr/400/a0f199077fa1a33bc2a1e01c64de7fe6.woff2 +0 -0
  964. package/src/styles/fonts/noto-serif-kr/400/a7c35e42a659347e490c3cb7983b2e7f.woff2 +0 -0
  965. package/src/styles/fonts/noto-serif-kr/400/aa662092cf249707123ca4d575e2764b.woff2 +0 -0
  966. package/src/styles/fonts/noto-serif-kr/400/aae1eda193285ab817a2d1b408440326.woff2 +0 -0
  967. package/src/styles/fonts/noto-serif-kr/400/b0cb664cb2e1371efda8943c0b7dcd1c.woff2 +0 -0
  968. package/src/styles/fonts/noto-serif-kr/400/b0d1cdced482352cf0d3ae58638aacb9.woff2 +0 -0
  969. package/src/styles/fonts/noto-serif-kr/400/b320f5d185b2cff933ac549c184031c5.woff2 +0 -0
  970. package/src/styles/fonts/noto-serif-kr/400/ba9c59d7dfa4494db1bb764ada81467d.woff2 +0 -0
  971. package/src/styles/fonts/noto-serif-kr/400/bab547459d514f46206e340c4bb2dc88.woff2 +0 -0
  972. package/src/styles/fonts/noto-serif-kr/400/bcc39eda837bb7a7a3d37c8c60fffb81.woff2 +0 -0
  973. package/src/styles/fonts/noto-serif-kr/400/bd73264d7f98776708d5d6f3c9b78fcc.woff2 +0 -0
  974. package/src/styles/fonts/noto-serif-kr/400/bed610b217d500f5975cfc9fe6157570.woff2 +0 -0
  975. package/src/styles/fonts/noto-serif-kr/400/bf8901f8f11d4f433ea17dabc9370ea6.woff2 +0 -0
  976. package/src/styles/fonts/noto-serif-kr/400/c4143bb9f2fe77b6ccf20088a8904650.woff2 +0 -0
  977. package/src/styles/fonts/noto-serif-kr/400/c7ff3f6bbdcd5f604b7343602ab904df.woff2 +0 -0
  978. package/src/styles/fonts/noto-serif-kr/400/c945c62368357d05a53206620460fb30.woff2 +0 -0
  979. package/src/styles/fonts/noto-serif-kr/400/ce022e18a1377ac509443c3c3790b431.woff2 +0 -0
  980. package/src/styles/fonts/noto-serif-kr/400/cf9cffe56636322f62b40d61130fbc5e.woff2 +0 -0
  981. package/src/styles/fonts/noto-serif-kr/400/d20d8944bc0b85f5b2aae4b24f343516.woff2 +0 -0
  982. package/src/styles/fonts/noto-serif-kr/400/d36644d6502527e1fff205d0c7eca434.woff2 +0 -0
  983. package/src/styles/fonts/noto-serif-kr/400/d40ab99c7a38026f411c8f112f742b48.woff2 +0 -0
  984. package/src/styles/fonts/noto-serif-kr/400/dc6e234ded795e91f76d6647f628fbf0.woff2 +0 -0
  985. package/src/styles/fonts/noto-serif-kr/400/dd0cfdfdac0866e66d587e2b5a9e9961.woff2 +0 -0
  986. package/src/styles/fonts/noto-serif-kr/400/de304c8a02e45ded4f8dcc479d167198.woff2 +0 -0
  987. package/src/styles/fonts/noto-serif-kr/400/e8c364c16daa04835bf32d293d2598db.woff2 +0 -0
  988. package/src/styles/fonts/noto-serif-kr/400/ec86e23683052da5cfdc3b77641bd15a.woff2 +0 -0
  989. package/src/styles/fonts/noto-serif-kr/400/eda1b0cb6d1719dd9bedcf3216a9e8de.woff2 +0 -0
  990. package/src/styles/fonts/noto-serif-kr/400/ee6fce20b420a480714607c66d7f97e5.woff2 +0 -0
  991. package/src/styles/fonts/noto-serif-kr/400/eee3836d6ac17ebb2c450bbcbc9db121.woff2 +0 -0
  992. package/src/styles/fonts/noto-serif-kr/400/f5738255e92d8dd34a46d1bcdf4c4074.woff2 +0 -0
  993. package/src/styles/fonts/noto-serif-kr/400/fa6e58ce4b52695e7ae19bbea6336ec8.woff2 +0 -0
  994. package/src/styles/fonts/noto-serif-kr/400/fd2069e6e8588c70b4f11364093b81f2.woff2 +0 -0
  995. package/src/styles/fonts/noto-serif-kr/700/04b8bde59cff68eeee74fb1914eb09c7.woff2 +0 -0
  996. package/src/styles/fonts/noto-serif-kr/700/05ac821472e235943ed1435e4bb8ecad.woff2 +0 -0
  997. package/src/styles/fonts/noto-serif-kr/700/074c1f8483d5a4d8c45c8c5f3e4cbb32.woff2 +0 -0
  998. package/src/styles/fonts/noto-serif-kr/700/1380210a722ac9aeef54005ad7b015c9.woff2 +0 -0
  999. package/src/styles/fonts/noto-serif-kr/700/17c7f5d0a45e92ede0e5dec3a2c77efa.woff2 +0 -0
  1000. package/src/styles/fonts/noto-serif-kr/700/1be602ad456b0d75902d352116cb35fd.woff2 +0 -0
  1001. package/src/styles/fonts/noto-serif-kr/700/2612c60f9dc5459ac42763591240a1d6.woff2 +0 -0
  1002. package/src/styles/fonts/noto-serif-kr/700/2ab8cf1f23a5ac7939a7876054e711a7.woff2 +0 -0
  1003. package/src/styles/fonts/noto-serif-kr/700/34e6750e00c3a911ef87dc66b336594d.woff2 +0 -0
  1004. package/src/styles/fonts/noto-serif-kr/700/36f3df4730cfca4fc77fe52b52e6a126.woff2 +0 -0
  1005. package/src/styles/fonts/noto-serif-kr/700/37887deb7a9c466cf2af6ee7ff372ea6.woff2 +0 -0
  1006. package/src/styles/fonts/noto-serif-kr/700/3aba89c4d4281553078de4622b498cbb.woff2 +0 -0
  1007. package/src/styles/fonts/noto-serif-kr/700/3d88558097559d775231194d43745ba7.woff2 +0 -0
  1008. package/src/styles/fonts/noto-serif-kr/700/3dc3e8c35524cad2d1236f3393104ccf.woff2 +0 -0
  1009. package/src/styles/fonts/noto-serif-kr/700/45140742dfa8686b58db2899ce89f89a.woff2 +0 -0
  1010. package/src/styles/fonts/noto-serif-kr/700/469d2754e315e77270c12fa0ab28026c.woff2 +0 -0
  1011. package/src/styles/fonts/noto-serif-kr/700/4c0760284569b87d8f2290c324953973.woff2 +0 -0
  1012. package/src/styles/fonts/noto-serif-kr/700/4cba92c942694bdc479bc54101bb1aa4.woff2 +0 -0
  1013. package/src/styles/fonts/noto-serif-kr/700/4e7d263c30bb48604069a3b4404d4eeb.woff2 +0 -0
  1014. package/src/styles/fonts/noto-serif-kr/700/5279c7e465d9871edf51fd02e691eee7.woff2 +0 -0
  1015. package/src/styles/fonts/noto-serif-kr/700/54bfdb6f21f9d6191e5100580239e14f.woff2 +0 -0
  1016. package/src/styles/fonts/noto-serif-kr/700/56be5e32fd01668fe5ba814d94905839.woff2 +0 -0
  1017. package/src/styles/fonts/noto-serif-kr/700/615b38e0b5bb3ea68426f44f47706e6f.woff2 +0 -0
  1018. package/src/styles/fonts/noto-serif-kr/700/65e9c4585d71bf48a5c62f367010da16.woff2 +0 -0
  1019. package/src/styles/fonts/noto-serif-kr/700/6b75213eb0be40ce84241eb2bb438a2e.woff2 +0 -0
  1020. package/src/styles/fonts/noto-serif-kr/700/7520ca6ca8c60eb1e62d50e71c8d30f1.woff2 +0 -0
  1021. package/src/styles/fonts/noto-serif-kr/700/759a647b77791b1e98f99bc0ab5317a7.woff2 +0 -0
  1022. package/src/styles/fonts/noto-serif-kr/700/76e51630143b95b6322ef93ad330da7a.woff2 +0 -0
  1023. package/src/styles/fonts/noto-serif-kr/700/79aa7c8c842c4a27cf57c0a3a1ffca5a.woff2 +0 -0
  1024. package/src/styles/fonts/noto-serif-kr/700/7cc72fd2c9105560422b6a67c6162945.woff2 +0 -0
  1025. package/src/styles/fonts/noto-serif-kr/700/7d0ea0690e432462f4d05a23d720ec19.woff2 +0 -0
  1026. package/src/styles/fonts/noto-serif-kr/700/7dffa5c1bec57e0903fd62357401ff1a.woff2 +0 -0
  1027. package/src/styles/fonts/noto-serif-kr/700/82f6ccc063960eed1cdfd1d61ada8862.woff2 +0 -0
  1028. package/src/styles/fonts/noto-serif-kr/700/845b4b67564d62cf5cad242f7ac08ea5.woff2 +0 -0
  1029. package/src/styles/fonts/noto-serif-kr/700/84c8e7bc0931008ed91f44ed12dfea94.woff2 +0 -0
  1030. package/src/styles/fonts/noto-serif-kr/700/887a11290ba78b1e66c6d2f67043005e.woff2 +0 -0
  1031. package/src/styles/fonts/noto-serif-kr/700/88db1d042074fb6e66821ffc10941930.woff2 +0 -0
  1032. package/src/styles/fonts/noto-serif-kr/700/8dc18c0cebe6aa4bf4c45dbb831048ab.woff2 +0 -0
  1033. package/src/styles/fonts/noto-serif-kr/700/919a879bd2d580d8491a31a449390689.woff2 +0 -0
  1034. package/src/styles/fonts/noto-serif-kr/700/91da6cb174bebfb96976e2f1316be2fe.woff2 +0 -0
  1035. package/src/styles/fonts/noto-serif-kr/700/934dfdbed2bb2c4b6129199d699a34fa.woff2 +0 -0
  1036. package/src/styles/fonts/noto-serif-kr/700/97d7a17234f2b5030ae9697ae00aded2.woff2 +0 -0
  1037. package/src/styles/fonts/noto-serif-kr/700/995c4fda62d25c3b79dd5987737df6ae.woff2 +0 -0
  1038. package/src/styles/fonts/noto-serif-kr/700/9d0afa53dc2f92ba42024f55f11f6779.woff2 +0 -0
  1039. package/src/styles/fonts/noto-serif-kr/700/9e13a47242926f1cd7d68c08d9ef8889.woff2 +0 -0
  1040. package/src/styles/fonts/noto-serif-kr/700/a379ada89abd750c587ded29f77e731c.woff2 +0 -0
  1041. package/src/styles/fonts/noto-serif-kr/700/a48be56ce5d3a99dc8f8331398004412.woff2 +0 -0
  1042. package/src/styles/fonts/noto-serif-kr/700/a806759e72987951d6d08b7cbdf36a1b.woff2 +0 -0
  1043. package/src/styles/fonts/noto-serif-kr/700/a88481ec8bc7be11cb66e46781a79bb9.woff2 +0 -0
  1044. package/src/styles/fonts/noto-serif-kr/700/a9a016d4a93409f65278327e8a8bb38d.woff2 +0 -0
  1045. package/src/styles/fonts/noto-serif-kr/700/ab92d41062a7644faa45f50bf384454a.woff2 +0 -0
  1046. package/src/styles/fonts/noto-serif-kr/700/b326a8a9c33b554db570da94f60bc380.woff2 +0 -0
  1047. package/src/styles/fonts/noto-serif-kr/700/b6117ff2993b11bb1fdc7ea3588a010c.woff2 +0 -0
  1048. package/src/styles/fonts/noto-serif-kr/700/b61982951bd51b724143c30dfaaa9fe9.woff2 +0 -0
  1049. package/src/styles/fonts/noto-serif-kr/700/c0098958e20db68cab90097b5e62516f.woff2 +0 -0
  1050. package/src/styles/fonts/noto-serif-kr/700/c4bfaa5e50798246e3770718b7a7c84a.woff2 +0 -0
  1051. package/src/styles/fonts/noto-serif-kr/700/c84598999133455503042e06f4ab79cb.woff2 +0 -0
  1052. package/src/styles/fonts/noto-serif-kr/700/ca9a533988d7019597a60d4e17127e0c.woff2 +0 -0
  1053. package/src/styles/fonts/noto-serif-kr/700/cf2b28f90f47276f7e2688a65e88a101.woff2 +0 -0
  1054. package/src/styles/fonts/noto-serif-kr/700/d689b1861d7e4377dd72ad3013482612.woff2 +0 -0
  1055. package/src/styles/fonts/noto-serif-kr/700/d9047070d72a816b3dba9d40c2d85e69.woff2 +0 -0
  1056. package/src/styles/fonts/noto-serif-kr/700/da04549f3f4ed28076b01b8cd710d313.woff2 +0 -0
  1057. package/src/styles/fonts/noto-serif-kr/700/da7af303f8c645f9a9dbae0e6e32dd35.woff2 +0 -0
  1058. package/src/styles/fonts/noto-serif-kr/700/df9568257eb29b156449fdd4bec5ec76.woff2 +0 -0
  1059. package/src/styles/fonts/noto-serif-kr/700/e067cd0ed76c90cd0a93c9339253f20b.woff2 +0 -0
  1060. package/src/styles/fonts/noto-serif-kr/700/e08b07772e7bed3cec2832d43f7fd339.woff2 +0 -0
  1061. package/src/styles/fonts/noto-serif-kr/700/e12150d5a39b30be8f567968c7a527b0.woff2 +0 -0
  1062. package/src/styles/fonts/noto-serif-kr/700/e53fcb2381eee345db4f6f973dd95a3e.woff2 +0 -0
  1063. package/src/styles/fonts/noto-serif-kr/700/e5bd313ef81f687d398aacb11cec3069.woff2 +0 -0
  1064. package/src/styles/fonts/noto-serif-kr/700/eb5afb3d952b8593782caec6026514b6.woff2 +0 -0
  1065. package/src/styles/fonts/noto-serif-kr/700/edd6a4f608d04fc0351d7688cfc321e4.woff2 +0 -0
  1066. package/src/styles/fonts/noto-serif-kr/700/f9695c6c4df2bf6bc03045ff79d4f01f.woff2 +0 -0
  1067. package/src/styles/fonts/noto-serif-kr/700/fada6eaa68ff8816afe43d2a36c5423e.woff2 +0 -0
  1068. package/src/styles/fonts/noto-serif-kr/700/fbcc4bf5367218951172bdee6f77d7a6.woff2 +0 -0
  1069. package/src/styles/fonts/noto-serif-kr/noto-serif-kr.css +2601 -0
  1070. package/src/styles/site-media.css +823 -0
  1071. package/src/styles/tokens.css +292 -21
  1072. package/src/styles/ui.css +4217 -1869
  1073. package/src/types/bindings.ts +3 -1
  1074. package/src/types/config.ts +139 -9
  1075. package/src/types/constants.ts +46 -11
  1076. package/src/types/entities.ts +24 -8
  1077. package/src/types/operations.ts +80 -1
  1078. package/src/types/props.ts +12 -3
  1079. package/src/types/raw-assets.d.ts +39 -0
  1080. package/src/types/views.ts +28 -7
  1081. package/src/ui/__tests__/color-themes.test.ts +7 -40
  1082. package/src/ui/__tests__/font-themes.test.ts +30 -11
  1083. package/src/ui/color-themes.ts +311 -270
  1084. package/src/ui/compose/ComposeDialog.tsx +712 -394
  1085. package/src/ui/compose/ComposePrompt.tsx +15 -10
  1086. package/src/ui/dash/ActionButtons.tsx +27 -18
  1087. package/src/ui/dash/DangerZone.tsx +15 -10
  1088. package/src/ui/dash/FormatBadge.tsx +21 -8
  1089. package/src/ui/dash/StatusBadge.tsx +33 -22
  1090. package/src/ui/dash/appearance/AdvancedContent.tsx +44 -30
  1091. package/src/ui/dash/appearance/CodeInjectionContent.tsx +164 -0
  1092. package/src/ui/dash/appearance/ColorThemeContent.tsx +127 -160
  1093. package/src/ui/dash/appearance/FontThemeContent.tsx +20 -15
  1094. package/src/ui/dash/appearance/NavigationContent.tsx +368 -225
  1095. package/src/ui/dash/appearance/__tests__/NavigationContent.test.tsx +54 -0
  1096. package/src/ui/dash/settings/AccountContent.tsx +34 -23
  1097. package/src/ui/dash/settings/AccountMenuContent.tsx +226 -137
  1098. package/src/ui/dash/settings/ApiTokensContent.tsx +122 -79
  1099. package/src/ui/dash/settings/AvatarContent.tsx +73 -45
  1100. package/src/ui/dash/settings/DeleteAccountContent.tsx +106 -66
  1101. package/src/ui/dash/settings/GeneralContent.tsx +274 -157
  1102. package/src/ui/dash/settings/GitHubSyncContent.tsx +558 -0
  1103. package/src/ui/dash/settings/SessionsContent.tsx +79 -38
  1104. package/src/ui/dash/settings/SettingsRootContent.tsx +209 -109
  1105. package/src/ui/dash/settings/__tests__/AccountMenuContent.test.tsx +67 -0
  1106. package/src/ui/dash/settings/__tests__/GeneralContent.test.tsx +75 -0
  1107. package/src/ui/feed/CuratedThreadPreview.tsx +24 -14
  1108. package/src/ui/feed/LinkCard.tsx +116 -84
  1109. package/src/ui/feed/LinkPreview.tsx +75 -0
  1110. package/src/ui/feed/NoteCard.tsx +60 -16
  1111. package/src/ui/feed/PostStatusBadges.tsx +15 -0
  1112. package/src/ui/feed/QuoteCard.tsx +10 -3
  1113. package/src/ui/feed/ThreadPreview.tsx +62 -36
  1114. package/src/ui/feed/TimelineFeed.tsx +2 -1
  1115. package/src/ui/feed/__tests__/thread-preview.test.ts +220 -11
  1116. package/src/ui/feed/__tests__/timeline-cards.test.ts +186 -5
  1117. package/src/ui/feed/thread-preview-state.ts +23 -10
  1118. package/src/ui/font-themes.ts +57 -97
  1119. package/src/ui/layouts/BaseLayout.tsx +221 -136
  1120. package/src/ui/layouts/SiteLayout.tsx +431 -143
  1121. package/src/ui/layouts/__tests__/BaseLayout.test.tsx +76 -6
  1122. package/src/ui/layouts/__tests__/SiteLayout.test.tsx +76 -0
  1123. package/src/ui/pages/ArchivePage.tsx +320 -207
  1124. package/src/ui/pages/BrandPage.tsx +499 -341
  1125. package/src/ui/pages/CollectionEditorPage.tsx +50 -30
  1126. package/src/ui/pages/CollectionPage.tsx +201 -61
  1127. package/src/ui/pages/CollectionsPage.tsx +27 -18
  1128. package/src/ui/pages/ComposePage.tsx +15 -10
  1129. package/src/ui/pages/FeaturedPage.tsx +16 -11
  1130. package/src/ui/pages/HomePage.tsx +15 -10
  1131. package/src/ui/pages/PostPage.tsx +5 -1
  1132. package/src/ui/pages/SearchPage.tsx +93 -43
  1133. package/src/ui/pages/ThemeSamplePage.tsx +758 -520
  1134. package/src/ui/pages/__tests__/ArchivePage.test.tsx +72 -0
  1135. package/src/ui/shared/CollectionDirectory.tsx +232 -37
  1136. package/src/ui/shared/CollectionsManager.tsx +155 -75
  1137. package/src/ui/shared/DecorativeQuoteMark.tsx +12 -9
  1138. package/src/ui/shared/MediaGallery.tsx +350 -256
  1139. package/src/ui/shared/Pagination.tsx +36 -25
  1140. package/src/ui/shared/PostFooter.tsx +139 -96
  1141. package/src/ui/shared/__tests__/media-gallery.test.ts +27 -0
  1142. package/src/ui/shared/__tests__/navigation-labels.test.ts +79 -28
  1143. package/src/ui/shared/__tests__/post-footer.test.ts +42 -17
  1144. package/src/ui/shared/collection-management-labels.ts +109 -33
  1145. package/src/ui/shared/navigation-labels.ts +78 -8
  1146. package/bin/lib/site-localize-media.js +0 -427
  1147. package/dist/client/_assets/client-auth.js +0 -3251
  1148. package/dist/client/_assets/client.css +0 -2
  1149. package/dist/client/_assets/client.js +0 -380
  1150. package/src/__tests__/site-localize-media.test.ts +0 -150
  1151. package/src/client/components/jant-collection-sidebar.ts +0 -803
  1152. package/src/i18n/locales/en.ts +0 -1
  1153. package/src/i18n/locales/zh-Hans.po +0 -3183
  1154. package/src/i18n/locales/zh-Hans.ts +0 -1
  1155. package/src/i18n/locales/zh-Hant.po +0 -3183
  1156. package/src/i18n/locales/zh-Hant.ts +0 -1
  1157. package/src/routes/feed/rss.ts +0 -216
  1158. package/src/types/lingui-react-macro.d.ts +0 -34
  1159. /package/dist/client/_assets/chunks/{heic-to-XcUDQvtx.js → heic-to-DUUaO23q.js} +0 -0
  1160. /package/dist/client/_assets/chunks/{module-ChVQstFd.js → module-DcsAZQZ_.js} +0 -0
  1161. /package/dist/client/_assets/chunks/{native-CR5HLOyf.js → native-DpcrFAPh.js} +0 -0
  1162. /package/dist/client/_assets/{client-cjk.css → client-cjk-B7Z0snDu.css} +0 -0
  1163. /package/dist/client/_assets/{client-cjk-tc.css → client-cjk-tc-BesJYrb2.css} +0 -0
@@ -1,3183 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "POT-Creation-Date: 2026-03-09 00:37+0800\n"
4
- "MIME-Version: 1.0\n"
5
- "Content-Type: text/plain; charset=utf-8\n"
6
- "Content-Transfer-Encoding: 8bit\n"
7
- "X-Generator: lingui-po-translate\n"
8
- "Language: zh-Hant\n"
9
- "Project-Id-Version: \n"
10
- "Report-Msgid-Bugs-To: \n"
11
- "PO-Revision-Date: \n"
12
- "Last-Translator: \n"
13
- "Language-Team: \n"
14
- "Plural-Forms: \n"
15
-
16
- #. @context: Link showing count of hidden thread posts between curated posts
17
- #. placeholder {0}: segment.hiddenBeforeCount
18
- #. placeholder {1}: segment.hiddenBeforeCount === 1 ? "post" : "posts"
19
- #: src/ui/feed/CuratedThreadPreview.tsx
20
- msgid "{0} hidden {1}"
21
- msgstr "隱藏了 {0} 則"
22
-
23
- #. @context: Link showing count of hidden thread posts between root and latest
24
- #. placeholder {0}: hiddenCount === 1 ? "post" : "posts"
25
- #: src/ui/feed/ThreadPreview.tsx
26
- msgid "{hiddenCount} more {0}"
27
- msgstr "還有 {hiddenCount} 則 {0}"
28
-
29
- #. @context: Custom CSS textarea placeholder
30
- #: src/ui/dash/appearance/AdvancedContent.tsx
31
- msgid "/* Your custom CSS here */"
32
- msgstr "/* 在此放入自訂 CSS */"
33
-
34
- #. @context: Compose collection trigger label when multiple collections selected. %name% is the first collection name, %count% is how many more
35
- #: src/ui/compose/ComposeDialog.tsx
36
- msgid "%name% + %count% more"
37
- msgstr "%name% + 還有 %count% 個"
38
-
39
- #. @context: Add alt text label under attachment thumbnail
40
- #: src/ui/compose/ComposeDialog.tsx
41
- msgid "+ ALT"
42
- msgstr "+ 替代文字"
43
-
44
- #. @context: Redirect type option
45
- #: src/routes/dash/custom-urls.tsx
46
- msgid "301 (Permanent)"
47
- msgstr "301 (永久)"
48
-
49
- #. @context: Redirect type option
50
- #: src/routes/dash/custom-urls.tsx
51
- msgid "302 (Temporary)"
52
- msgstr "302 (暫時)"
53
-
54
- #. @context: Search snippet prefix on sample page
55
- #: src/ui/pages/ThemeSamplePage.tsx
56
- msgid "A calmer accent makes"
57
- msgstr "較柔和的強調色讓"
58
-
59
- #. @context: Excerpt for the sample note post
60
- #. @context: Plain-text summary for the sample note post
61
- #: src/ui/pages/ThemeSamplePage.tsx
62
- #: src/ui/pages/ThemeSamplePage.tsx
63
- msgid "A calmer, warmer accent makes the default theme feel quieter and more intentional."
64
- msgstr "更平靜、更溫暖的強調色,讓預設主題更安靜,也更有分寸。"
65
-
66
- #. @context: Section title for the usage guidance section on the brand asset page
67
- #: src/ui/pages/BrandPage.tsx
68
- msgid "A few simple rules."
69
- msgstr "幾項簡單規則."
70
-
71
- #. @context: Second paragraph on the sample detail article
72
- #: src/ui/pages/ThemeSamplePage.tsx
73
- msgid "A good default accent in Jant should feel like editorial structure, not product branding. That means links, emphasis, and thread cues can be visible without turning the page into UI chrome."
74
- msgstr "在 Jant 中,一個好的預設重點應該感覺像編輯結構,而不是產品品牌化。這表示連結、強調與貼文串提示可以可見,而不會把頁面變成 UI 裝飾。"
75
-
76
- #. @context: Excerpt for the sample detail article
77
- #. @context: Plain-text body fallback for the sample detail article
78
- #. @context: Plain-text summary for the sample detail article
79
- #: src/ui/pages/ThemeSamplePage.tsx
80
- #: src/ui/pages/ThemeSamplePage.tsx
81
- #: src/ui/pages/ThemeSamplePage.tsx
82
- msgid "A long-form article sample for checking the default palette in a true reading context."
83
- msgstr "一篇長篇文章範例,用於在真實閱讀情境中檢查預設調色盤。"
84
-
85
- #. @context: Subheading in the sample detail article
86
- #: src/ui/pages/ThemeSamplePage.tsx
87
- msgid "A practical checklist"
88
- msgstr "實用檢查清單"
89
-
90
- #. @context: Excerpt for the sample quote post
91
- #. @context: Plain-text summary for the sample quote post
92
- #: src/ui/pages/ThemeSamplePage.tsx
93
- #: src/ui/pages/ThemeSamplePage.tsx
94
- msgid "A quote card for judging accent color against softer, citation-heavy content."
95
- msgstr "用於評估強調色在較柔和、引用密集內容上的呈現的引用卡片。"
96
-
97
- #. @context: Description for the square logo PNG asset card
98
- #: src/ui/pages/BrandPage.tsx
99
- msgid "A ready-made 1:1 PNG for decks, mockups, directories, and other square placements."
100
- msgstr "已製作好的 1:1 PNG,適用於簡報、樣機、目錄及其他方形配置。"
101
-
102
- #. @context: Excerpt for the sample link post
103
- #. @context: Plain-text summary for the sample link post
104
- #: src/ui/pages/ThemeSamplePage.tsx
105
- #: src/ui/pages/ThemeSamplePage.tsx
106
- msgid "A reference link for checking whether the accent feels editorial instead of promotional."
107
- msgstr "供參考的連結,用於檢查語氣是否偏向編輯風格而非促銷性."
108
-
109
- #. @context: Help text for site description field
110
- #: src/ui/dash/settings/GeneralContent.tsx
111
- msgid "A short intro for search engines and feed readers. Plain text only."
112
- msgstr "供搜尋引擎與訂閱閱讀器使用的簡短介紹。僅限純文字。"
113
-
114
- #. @context: Description for the brand pack card
115
- #: src/ui/pages/BrandPage.tsx
116
- msgid "A single ZIP with the main logo, reverse logo, square PNG, rounded, square, and circle tiles, plus favicon, Apple touch icon, and social preview image."
117
- msgstr "一個 ZIP 檔,內含主標誌、反向標誌、方形 PNG、圓角、方形及圓形圖示,另外還有 favicon、Apple touch icon 與社群預覽圖像。"
118
-
119
- #. @context: Main sample article title
120
- #: src/ui/pages/ThemeSamplePage.tsx
121
- msgid "A softer blue feels more like ink than product chrome."
122
- msgstr "較柔和的藍色感覺更像墨水,而不是產品的鍍鉻。"
123
-
124
- #. @context: Settings form field for site description
125
- #: src/ui/dash/settings/GeneralContent.tsx
126
- msgid "About this blog"
127
- msgstr "關於本部落格"
128
-
129
- #. @context: Thread helper text on sample page
130
- #: src/ui/pages/ThemeSamplePage.tsx
131
- msgid "Accent should feel present, not loud."
132
- msgstr "強調色應該有存在感,但不要過於刺眼。"
133
-
134
- #. @context: Page title for the account settings menu
135
- #. @context: Settings group label for account settings
136
- #. @context: Settings item — account settings
137
- #: src/ui/dash/settings/AccountMenuContent.tsx
138
- #: src/ui/dash/settings/SettingsRootContent.tsx
139
- #: src/ui/dash/settings/SettingsRootContent.tsx
140
- msgid "Account"
141
- msgstr "帳戶"
142
-
143
- #. @context: Error shown when account deletion is blocked in demo mode
144
- #: src/routes/dash/settings.tsx
145
- msgid "Account deletion is off in demo mode. The shared demo resets separately."
146
- msgstr "示範模式下不提供刪除帳戶。共享示範會另外重設。"
147
-
148
- #. @context: Settings section heading for active sessions
149
- #: src/ui/dash/settings/SessionsContent.tsx
150
- msgid "Active Sessions"
151
- msgstr "目前的工作階段"
152
-
153
- #. @context: Heading for list of active API tokens
154
- #: src/ui/dash/settings/ApiTokensContent.tsx
155
- msgid "Active Tokens"
156
- msgstr "啟用的 API 權杖"
157
-
158
- #. @context: Add more attachments button
159
- #: src/ui/compose/ComposeDialog.tsx
160
- msgid "Add"
161
- msgstr "新增"
162
-
163
- #. @context: Description in link popover form
164
- #: src/ui/dash/appearance/NavigationContent.tsx
165
- msgid "Add a custom link to any URL"
166
- msgstr "新增自訂連結至任意 URL"
167
-
168
- #. @context: Description for the RSS system navigation toggle
169
- #: src/ui/shared/navigation-labels.ts
170
- msgid "Add a link to your main RSS feed. Change what /feed returns in General."
171
- msgstr "新增指向主 RSS feed 的連結。可在一般設定中修改 /feed 的輸出內容。"
172
-
173
- #. @context: Compose link title required error
174
- #: src/ui/compose/ComposeDialog.tsx
175
- msgid "Add a title before posting this link."
176
- msgstr "先補上標題,再發佈這則連結。"
177
-
178
- #. @context: Compose link URL required error
179
- #: src/ui/compose/ComposeDialog.tsx
180
- msgid "Add a URL before posting this link."
181
- msgstr "先補上 URL,再發佈這則連結。"
182
-
183
- #. @context: Alt text panel title
184
- #: src/ui/compose/ComposeDialog.tsx
185
- msgid "Add alt text"
186
- msgstr "新增替代文字"
187
-
188
- #. @context: Action to create a new collection from compose
189
- #: src/ui/compose/ComposeDialog.tsx
190
- msgid "Add Collection"
191
- msgstr "新增選集"
192
-
193
- #. @context: Custom CSS settings description
194
- #: src/ui/dash/appearance/AdvancedContent.tsx
195
- msgid "Add custom CSS to override any styles. Use data attributes like [data-page], [data-post], [data-format] to target specific elements."
196
- msgstr "新增自訂 CSS 以覆寫任何樣式。使用像 [data-page], [data-post], [data-format] 的資料屬性來針對特定元素。"
197
-
198
- #. @context: Section heading for adding custom link to nav
199
- #: src/ui/dash/appearance/NavigationContent.tsx
200
- msgid "Add custom link to navigation"
201
- msgstr "新增自訂連結至導覽列"
202
-
203
- #. @context: Button and heading for adding custom link
204
- #: src/ui/dash/appearance/NavigationContent.tsx
205
- msgid "Add Link"
206
- msgstr "新增連結"
207
-
208
- #. @context: Settings group label for advanced settings
209
- #: src/ui/dash/settings/SettingsRootContent.tsx
210
- msgid "Advanced"
211
- msgstr "進階"
212
-
213
- #. @context: Description after API reference link
214
- #: src/ui/dash/settings/ApiTokensContent.tsx
215
- msgid "all available endpoints and request formats."
216
- msgstr "所有可用的端點和請求格式."
217
-
218
- #. @context: Archive filter - collection dropdown default
219
- #: src/ui/pages/ArchivePage.tsx
220
- msgid "All collections"
221
- msgstr "所有選集"
222
-
223
- #. @context: Archive filter - all formats select option
224
- #: src/ui/pages/ArchivePage.tsx
225
- msgid "All formats"
226
- msgstr "所有格式"
227
-
228
- #. @context: Archive filter - all visibility select option
229
- #: src/ui/pages/ArchivePage.tsx
230
- msgid "All visibility"
231
- msgstr "全部可見性"
232
-
233
- #. @context: Archive filter - year dropdown default
234
- #: src/ui/pages/ArchivePage.tsx
235
- msgid "All years"
236
- msgstr "所有年份"
237
-
238
- #. @context: Checkbox for allowing search engine indexing
239
- #: src/ui/dash/settings/GeneralContent.tsx
240
- msgid "Allow search engines to index my site"
241
- msgstr "允許搜尋引擎收錄我的網站"
242
-
243
- #. @context: Theme mode option description
244
- #: src/ui/dash/appearance/ColorThemeContent.tsx
245
- msgid "Always show the dark version of the theme."
246
- msgstr "始終顯示主題的深色版本。"
247
-
248
- #. @context: Theme mode option description
249
- #: src/ui/dash/appearance/ColorThemeContent.tsx
250
- msgid "Always show the light version of the theme."
251
- msgstr "始終顯示主題的淺色版本。"
252
-
253
- #. @context: Alt text for the sample detail article image
254
- #: src/ui/pages/ThemeSamplePage.tsx
255
- msgid "An abstract editorial layout in warm paper colors"
256
- msgstr "以溫暖紙張色調呈現的抽象編輯版面"
257
-
258
- #. @context: Button label for opening the hidden collection list in the post footer
259
- #: src/ui/shared/PostFooter.tsx
260
- msgid "and {count} more"
261
- msgstr "以及另外 {count} 個"
262
-
263
- #. @context: Sample link post body suffix on the theme sample page
264
- #: src/ui/pages/ThemeSamplePage.tsx
265
- msgid "and checking whether the accent is guiding attention or pulling too hard."
266
- msgstr "並檢查該強調色是在引導注意力還是過於搶眼。"
267
-
268
- #. @context: Link to API documentation
269
- #: src/ui/dash/settings/ApiTokensContent.tsx
270
- msgid "API reference"
271
- msgstr "API 參考"
272
-
273
- #. @context: Settings item — API token settings
274
- #. @context: Settings section heading
275
- #: src/ui/dash/settings/ApiTokensContent.tsx
276
- #: src/ui/dash/settings/SettingsRootContent.tsx
277
- msgid "API Tokens"
278
- msgstr "API 權杖"
279
-
280
- #. @context: Settings group label for design settings
281
- #: src/ui/dash/settings/SettingsRootContent.tsx
282
- msgid "Appearance"
283
- msgstr "外觀"
284
-
285
- #. @context: Compose publish settings help text for public visibility
286
- #: src/ui/compose/ComposeDialog.tsx
287
- msgid "Appears in Latest."
288
- msgstr "會出現在 Latest 中。"
289
-
290
- #. @context: Title for the apple touch icon asset card
291
- #: src/ui/pages/BrandPage.tsx
292
- msgid "Apple touch icon"
293
- msgstr "Apple 觸控圖示"
294
-
295
- #. @context: Appearance settings description
296
- #: src/ui/dash/appearance/ColorThemeContent.tsx
297
- msgid "Applies to your entire site, including admin pages. Pick a palette, then choose whether it follows the system or stays fixed."
298
- msgstr "套用到整個網站,包括管理頁面。先選擇配色,再決定要依系統顯示還是固定模式。"
299
-
300
- #. @context: Archive page title
301
- #. @context: Built-in navigation label for the archive page
302
- #. @context: Inactive nav link label on sample page
303
- #: src/ui/pages/ArchivePage.tsx
304
- #: src/ui/pages/ThemeSamplePage.tsx
305
- #: src/ui/shared/navigation-labels.ts
306
- msgid "Archive"
307
- msgstr "封存"
308
-
309
- #. @context: Section heading for the detail article sample on the theme sample page
310
- #: src/ui/pages/ThemeSamplePage.tsx
311
- msgid "Article detail page"
312
- msgstr "文章詳細頁面"
313
-
314
- #. @context: Archive media filter - audio
315
- #: src/ui/pages/ArchivePage.tsx
316
- msgid "Audio"
317
- msgstr "音訊"
318
-
319
- #. @context: Error toast when authentication secret is missing from server config
320
- #: src/routes/auth/setup.tsx
321
- msgid "Auth secret is missing. Check your environment variables."
322
- msgstr "驗證祕鑰遺失。請檢查您的環境變數。"
323
-
324
- #. @context: Error toast when authentication system is unavailable
325
- #: src/routes/auth/signin.tsx
326
- msgid "Authentication isn't set up. Check your server config."
327
- msgstr "身分驗證尚未設定. 請檢查您的伺服器設定."
328
-
329
- #. @context: Compose quote author placeholder
330
- #: src/ui/compose/ComposeDialog.tsx
331
- msgid "Author (optional)"
332
- msgstr "作者 (選填)"
333
-
334
- #. @context: Theme mode option label
335
- #. @context: Theme mode option on sample page
336
- #: src/ui/dash/appearance/ColorThemeContent.tsx
337
- #: src/ui/pages/ThemeSamplePage.tsx
338
- msgid "Auto"
339
- msgstr "自動"
340
-
341
- #. @context: Description after theming guide link on Custom CSS page
342
- #: src/ui/dash/appearance/AdvancedContent.tsx
343
- msgid "available CSS variables, data attributes, and examples."
344
- msgstr "可用的 CSS 變數、data attributes,以及範例。"
345
-
346
- #. @context: Settings item — avatar settings
347
- #: src/ui/dash/settings/SettingsRootContent.tsx
348
- msgid "Avatar"
349
- msgstr "頭像"
350
-
351
- #. @context: Toast after saving avatar display preference
352
- #. @context: Toast after saving avatar display preference
353
- #: src/routes/dash/settings.tsx
354
- #: src/routes/dash/settings.tsx
355
- msgid "Avatar display updated."
356
- msgstr "頭像顯示已更新。"
357
-
358
- #. @context: Usage label for the circle tile asset card
359
- #: src/ui/pages/BrandPage.tsx
360
- msgid "Avatar-ready"
361
- msgstr "可用作頭像"
362
-
363
- #. @context: Link back from the new post page
364
- #: src/ui/pages/ComposePage.tsx
365
- msgid "Back"
366
- msgstr "返回"
367
-
368
- #. @context: Link to backup and restore documentation from account settings
369
- #: src/ui/dash/settings/AccountMenuContent.tsx
370
- msgid "Backup & Restore Guide"
371
- msgstr "備份與復原指南"
372
-
373
- #. @context: Settings item description for API tokens
374
- #: src/ui/dash/settings/SettingsRootContent.tsx
375
- msgid "Bearer tokens for scripts and automation"
376
- msgstr "用於腳本與自動化的 Bearer 權杖"
377
-
378
- #. @context: Sample note post body suffix on the theme sample page
379
- #: src/ui/pages/ThemeSamplePage.tsx
380
- msgid "before deciding whether the accent is carrying too much product energy."
381
- msgstr "再判斷這個強調色是否帶上了過多產品化的氣息。"
382
-
383
- #. @context: Step 1 description for site export before account deletion
384
- #: src/ui/dash/settings/DeleteAccountContent.tsx
385
- msgid "Before deleting, download a site export. You won't be able to recover this account after deletion."
386
- msgstr "刪除之前先下載站點匯出。刪除後將無法復原這個帳戶。"
387
-
388
- #. @context: Settings section heading for avatar
389
- #: src/ui/dash/settings/AvatarContent.tsx
390
- msgid "Blog Avatar"
391
- msgstr "部落格頭像"
392
-
393
- #. @context: Browser page title for the public brand asset page
394
- #. @context: Eyebrow on the public brand asset page
395
- #: src/routes/pages/brand.tsx
396
- #: src/ui/pages/BrandPage.tsx
397
- msgid "Brand assets"
398
- msgstr "品牌資產"
399
-
400
- #. @context: Title for the brand pack card
401
- #. @context: Title for the brand pack card
402
- #: src/ui/pages/BrandPage.tsx
403
- #: src/ui/pages/BrandPage.tsx
404
- msgid "Brand pack"
405
- msgstr "品牌包"
406
-
407
- #. @context: Asset keyword on the public brand asset page
408
- #. @context: Title for the brand tile asset card
409
- #: src/ui/pages/BrandPage.tsx
410
- #: src/ui/pages/BrandPage.tsx
411
- msgid "Brand tile"
412
- msgstr "品牌圖塊"
413
-
414
- #. @context: Breadcrumb label on collection detail page
415
- #. @context: Breadcrumb label on collection editor page
416
- #: src/ui/pages/CollectionEditorPage.tsx
417
- #: src/ui/pages/CollectionPage.tsx
418
- msgid "Breadcrumb"
419
- msgstr "麵包屑導覽"
420
-
421
- #. @context: Secondary hero button label to jump to the file list
422
- #: src/ui/pages/BrandPage.tsx
423
- msgid "Browse files"
424
- msgstr "瀏覽檔案"
425
-
426
- #. @context: Usage label for the favicon asset card
427
- #: src/ui/pages/BrandPage.tsx
428
- msgid "Browser tab"
429
- msgstr "瀏覽器分頁"
430
-
431
- #. @context: Usage label for the brand tile asset card
432
- #: src/ui/pages/BrandPage.tsx
433
- msgid "Built-in background"
434
- msgstr "內建背景"
435
-
436
- #. @context: Sample note post second paragraph on the theme sample page
437
- #: src/ui/pages/ThemeSamplePage.tsx
438
- msgid "Buttons can stay steady, but links, thread markers, and subtle emphasis should feel closer to ink on paper than dashboard chrome."
439
- msgstr "按鈕可以保持穩定,但連結、貼文串標記與細微的強調應該感覺更接近紙上的墨跡,而非儀表板的外觀。"
440
-
441
- #. @context: Button label to dismiss a dialog or action
442
- #. @context: Button label to dismiss a dialog or action
443
- #. @context: Button label to dismiss a dialog or action
444
- #. @context: Button label to dismiss a dialog or action
445
- #. @context: Button label to dismiss a dialog or action
446
- #. @context: Button to cancel form
447
- #. @context: Button to cancel form
448
- #. @context: Button to cancel settings changes
449
- #. @context: Button to cancel unsaved changes and revert to original values
450
- #. @context: Close compose dialog
451
- #. @context: Confirm close action sheet - cancel and return to editor
452
- #: src/routes/dash/custom-urls.tsx
453
- #: src/ui/compose/ComposeDialog.tsx
454
- #: src/ui/compose/ComposeDialog.tsx
455
- #: src/ui/dash/ActionButtons.tsx
456
- #: src/ui/dash/DangerZone.tsx
457
- #: src/ui/dash/settings/ApiTokensContent.tsx
458
- #: src/ui/dash/settings/AvatarContent.tsx
459
- #: src/ui/dash/settings/DeleteAccountContent.tsx
460
- #: src/ui/dash/settings/GeneralContent.tsx
461
- #: src/ui/shared/collection-management-labels.ts
462
- #: src/ui/shared/collection-management-labels.ts
463
- msgid "Cancel"
464
- msgstr "取消"
465
-
466
- #. @context: Button to change password
467
- #. @context: Settings section heading
468
- #: src/ui/dash/settings/AccountContent.tsx
469
- #: src/ui/dash/settings/AccountContent.tsx
470
- msgid "Change Password"
471
- msgstr "變更密碼"
472
-
473
- #. @context: Warning shown when changing the canonical RSS feed selection
474
- #: src/ui/dash/settings/GeneralContent.tsx
475
- msgid "Changing this updates what subscribers get from /feed."
476
- msgstr "修改後,訂閱 /feed 的讀者會收到不同內容。"
477
-
478
- #. @context: Compose custom slug helper while checking whether a manual slug is available
479
- #: src/ui/compose/ComposeDialog.tsx
480
- msgid "Checking link..."
481
- msgstr "正在檢查連結..."
482
-
483
- #. @context: Password reset page description
484
- #: src/routes/auth/reset.tsx
485
- msgid "Choose a new password."
486
- msgstr "請選擇新密碼."
487
-
488
- #. @context: Font theme settings description
489
- #: src/ui/dash/appearance/FontThemeContent.tsx
490
- msgid "Choose a typographic direction for your site. Each theme changes both the font pairing and the reading rhythm."
491
- msgstr "為你的網站選擇一種排版方向。每個主題都會同時改變字型搭配與閱讀節奏。"
492
-
493
- #. @context: Body copy for the logo downloads section
494
- #: src/ui/pages/BrandPage.tsx
495
- msgid "Choose the standard logo for most placements and the reverse logo when you need more contrast."
496
- msgstr "大多數版位請選擇標準 logo,需要更高對比時請使用反白 logo。"
497
-
498
- #. @context: Guidance body on the brand asset page
499
- #: src/ui/pages/BrandPage.tsx
500
- msgid "Choose the standard logo for websites, docs, directories, and editorial layouts."
501
- msgstr "為網站、檔案、目錄與編輯版面選擇標準標誌。"
502
-
503
- #. @context: Asset keyword on the public brand asset page
504
- #. @context: Title for the circle tile asset card
505
- #: src/ui/pages/BrandPage.tsx
506
- #: src/ui/pages/BrandPage.tsx
507
- msgid "Circle tile"
508
- msgstr "圓形圖塊"
509
-
510
- #. @context: Archive filter button label to clear the active filter
511
- #. @context: Archive filter button label to clear the active filter
512
- #: src/ui/pages/ArchivePage.tsx
513
- #: src/ui/pages/ArchivePage.tsx
514
- msgid "Clear filter"
515
- msgstr "清除篩選"
516
-
517
- #. @context: Singular collection count label
518
- #. @context: Singular collection count label
519
- #. @context: Singular collection count label
520
- #: src/ui/pages/CollectionsPage.tsx
521
- #: src/ui/shared/CollectionsManager.tsx
522
- #: src/ui/shared/CollectionsManager.tsx
523
- msgid "collection"
524
- msgstr "個選集"
525
-
526
- #. @context: Compose collection selector trigger label
527
- #. @context: Custom URL target type badge for a collection
528
- #. @context: Custom URL type option
529
- #: src/routes/dash/custom-urls.tsx
530
- #: src/routes/dash/custom-urls.tsx
531
- #: src/ui/compose/ComposeDialog.tsx
532
- msgid "Collection"
533
- msgstr "選集"
534
-
535
- #. @context: Toast shown after creating a collection
536
- #: src/ui/shared/collection-management-labels.ts
537
- msgid "Collection created."
538
- msgstr "選集已建立。"
539
-
540
- #. @context: Toast after deleting a collection
541
- #: src/ui/shared/collection-management-labels.ts
542
- msgid "Collection deleted."
543
- msgstr "選集已刪除。"
544
-
545
- #. @context: Collection form field
546
- #: src/ui/shared/collection-management-labels.ts
547
- msgid "Collection link"
548
- msgstr "選集連結"
549
-
550
- #. @context: Toast after reordering collections
551
- #: src/ui/shared/CollectionsManager.tsx
552
- msgid "Collection order updated."
553
- msgstr "選集排序已更新。"
554
-
555
- #. @context: Toast after saving a collection
556
- #: src/ui/shared/collection-management-labels.ts
557
- msgid "Collection saved."
558
- msgstr "選集已儲存。"
559
-
560
- #. @context: Plural collection count label
561
- #. @context: Plural collection count label
562
- #. @context: Plural collection count label
563
- #: src/ui/pages/CollectionsPage.tsx
564
- #: src/ui/shared/CollectionsManager.tsx
565
- #: src/ui/shared/CollectionsManager.tsx
566
- msgid "collections"
567
- msgstr "個選集"
568
-
569
- #. @context: Breadcrumb link to collections page
570
- #. @context: Breadcrumb link to collections page
571
- #. @context: Built-in navigation label for the collections page
572
- #. @context: Collections page heading
573
- #. @context: Collections page heading
574
- #. @context: Inactive nav link label on sample page
575
- #: src/ui/pages/CollectionEditorPage.tsx
576
- #: src/ui/pages/CollectionPage.tsx
577
- #: src/ui/pages/CollectionsPage.tsx
578
- #: src/ui/pages/ThemeSamplePage.tsx
579
- #: src/ui/shared/CollectionsManager.tsx
580
- #: src/ui/shared/navigation-labels.ts
581
- msgid "Collections"
582
- msgstr "選集"
583
-
584
- #. @context: Alert title on theme sample page
585
- #: src/ui/pages/ThemeSamplePage.tsx
586
- msgid "Color check"
587
- msgstr "顏色檢查"
588
-
589
- #. @context: Appearance settings heading
590
- #: src/ui/dash/appearance/ColorThemeContent.tsx
591
- msgid "Color theme"
592
- msgstr "色彩主題"
593
-
594
- #. @context: Settings item — color theme settings
595
- #: src/ui/dash/settings/SettingsRootContent.tsx
596
- msgid "Color Theme"
597
- msgstr "色彩主題"
598
-
599
- #. @context: Inline link label in the sample detail article
600
- #: src/ui/pages/ThemeSamplePage.tsx
601
- msgid "Compare it against the theme controls"
602
- msgstr "與主題控制項比較"
603
-
604
- #. @context: Setup form submit button
605
- #: src/routes/auth/setup.tsx
606
- msgid "Complete Setup"
607
- msgstr "完成設定"
608
-
609
- #. @context: Step 2 heading — user must type confirmation phrase
610
- #: src/ui/dash/settings/DeleteAccountContent.tsx
611
- msgid "Confirm account deletion"
612
- msgstr "確認刪除帳號"
613
-
614
- #. @context: Password form field
615
- #: src/ui/dash/settings/AccountContent.tsx
616
- msgid "Confirm New Password"
617
- msgstr "確認新密碼"
618
-
619
- #. @context: Password reset form field
620
- #: src/routes/auth/reset.tsx
621
- msgid "Confirm Password"
622
- msgstr "確認密碼"
623
-
624
- #. @context: Controls section heading on sample page
625
- #: src/ui/pages/ThemeSamplePage.tsx
626
- msgid "Controls"
627
- msgstr "控制項"
628
-
629
- #. @context: Feedback after copying API token
630
- #: src/ui/dash/settings/ApiTokensContent.tsx
631
- msgid "Copied"
632
- msgstr "已複製"
633
-
634
- #. @context: Button to copy a URL to the clipboard
635
- #: src/ui/dash/settings/GeneralContent.tsx
636
- msgid "Copy"
637
- msgstr "複製"
638
-
639
- #. @context: Button to copy API token to clipboard
640
- #. @context: Button to copy API token to clipboard
641
- #: src/ui/dash/settings/ApiTokensContent.tsx
642
- #: src/ui/dash/settings/ApiTokensContent.tsx
643
- msgid "Copy Token"
644
- msgstr "複製 Token"
645
-
646
- #. @context: Warning to copy newly created API token
647
- #: src/ui/dash/settings/ApiTokensContent.tsx
648
- msgid "Copy your token now — it won't be shown again."
649
- msgstr "請立即複製您的 token — 之後不會再顯示。"
650
-
651
- #. @context: Error toast when copying text to the clipboard fails
652
- #: src/ui/dash/settings/GeneralContent.tsx
653
- msgid "Could not copy. Try again."
654
- msgstr "無法複製,請再試一次。"
655
-
656
- #. @context: Error toast when account creation fails
657
- #. @context: Error toast when account creation fails
658
- #. @context: Error toast when account creation fails
659
- #: src/routes/auth/setup.tsx
660
- #: src/routes/auth/setup.tsx
661
- #: src/routes/auth/setup.tsx
662
- msgid "Couldn't create your account. Check the details and try again."
663
- msgstr "無法建立您的帳戶。請檢查資料後再試一次。"
664
-
665
- #. @context: Error toast when nav delete fails
666
- #: src/ui/dash/appearance/NavigationContent.tsx
667
- msgid "Couldn't delete. Try again in a moment."
668
- msgstr "無法刪除. 請稍後再試."
669
-
670
- #. @context: Toast when publish fails and post is auto-saved as draft
671
- #: src/ui/compose/ComposeDialog.tsx
672
- msgid "Couldn't publish. Saved as draft."
673
- msgstr "無法發布。已儲存為草稿。"
674
-
675
- #. @context: Error toast when nav save fails
676
- #. @context: Toast when save fails
677
- #: src/ui/dash/appearance/NavigationContent.tsx
678
- #: src/ui/shared/collection-management-labels.ts
679
- msgid "Couldn't save. Try again in a moment."
680
- msgstr "無法儲存。 請稍後再試。"
681
-
682
- #. @context: Compose collection combobox empty state when no collections exist
683
- #: src/ui/compose/ComposeDialog.tsx
684
- msgid "Create a collection to get started."
685
- msgstr "建立一個選集即可開始。"
686
-
687
- #. @context: Label for curl example
688
- #: src/ui/dash/settings/ApiTokensContent.tsx
689
- msgid "Create a post with curl:"
690
- msgstr "使用 curl 建立貼文:"
691
-
692
- #. @context: Button to save new custom URL
693
- #: src/routes/dash/custom-urls.tsx
694
- msgid "Create Custom URL"
695
- msgstr "建立自訂網址"
696
-
697
- #. @context: Setup page description
698
- #: src/routes/auth/setup.tsx
699
- msgid "Create your admin account."
700
- msgstr "建立您的管理員帳號."
701
-
702
- #. @context: Token creation date
703
- #. placeholder {0}: formatDate(token.createdAt)
704
- #: src/ui/dash/settings/ApiTokensContent.tsx
705
- msgid "Created {0}"
706
- msgstr "建立於 {0}"
707
-
708
- #. @context: Badge indicating the current active session
709
- #: src/ui/dash/settings/SessionsContent.tsx
710
- msgid "Current"
711
- msgstr "目前"
712
-
713
- #. @context: Password form field
714
- #: src/ui/dash/settings/AccountContent.tsx
715
- msgid "Current Password"
716
- msgstr "目前密碼"
717
-
718
- #. @context: Error toast when current password verification fails
719
- #: src/routes/dash/settings.tsx
720
- msgid "Current password doesn't match. Try again."
721
- msgstr "目前的密碼不符。請再試一次。"
722
-
723
- #. @context: Thread item label on sample page
724
- #: src/ui/pages/ThemeSamplePage.tsx
725
- msgid "Current post"
726
- msgstr "目前貼文"
727
-
728
- #. @context: Appearance settings heading for custom CSS
729
- #. @context: Link to Custom CSS settings from color theme page
730
- #. @context: Settings item — custom CSS settings
731
- #: src/ui/dash/appearance/AdvancedContent.tsx
732
- #: src/ui/dash/appearance/ColorThemeContent.tsx
733
- #: src/ui/dash/settings/SettingsRootContent.tsx
734
- msgid "Custom CSS"
735
- msgstr "自訂 CSS"
736
-
737
- #. @context: Toast after saving custom CSS
738
- #: src/routes/dash/settings.tsx
739
- msgid "Custom CSS updated."
740
- msgstr "自訂 CSS 已更新。"
741
-
742
- #. @context: Compose publish settings slug section label
743
- #: src/ui/compose/ComposeDialog.tsx
744
- msgid "Custom link"
745
- msgstr "自訂連結"
746
-
747
- #. @context: Settings item — custom URL settings
748
- #. @context: Settings section heading
749
- #: src/routes/dash/custom-urls.tsx
750
- #: src/ui/dash/settings/SettingsRootContent.tsx
751
- msgid "Custom URLs"
752
- msgstr "自訂 URL"
753
-
754
- #. @context: Destructive badge label on sample page
755
- #: src/ui/pages/ThemeSamplePage.tsx
756
- msgid "Danger"
757
- msgstr "危險"
758
-
759
- #. @context: Section heading for dangerous/destructive actions
760
- #. @context: Settings group label for destructive account actions
761
- #. @context: Settings group label for destructive account actions
762
- #: src/ui/dash/DangerZone.tsx
763
- #: src/ui/dash/settings/AccountMenuContent.tsx
764
- #: src/ui/dash/settings/AccountMenuContent.tsx
765
- msgid "Danger Zone"
766
- msgstr "危險區域"
767
-
768
- #. @context: Theme mode option label
769
- #. @context: Theme mode option on sample page
770
- #: src/ui/dash/appearance/ColorThemeContent.tsx
771
- #: src/ui/pages/ThemeSamplePage.tsx
772
- msgid "Dark"
773
- msgstr "深色"
774
-
775
- #. @context: Usage label for the reverse logo asset card
776
- #. @context: Usage label for the reverse logo card
777
- #: src/ui/pages/BrandPage.tsx
778
- #: src/ui/pages/BrandPage.tsx
779
- msgid "Dark backgrounds"
780
- msgstr "深色背景"
781
-
782
- #. @context: Settings group label for data export/import
783
- #: src/ui/dash/settings/AccountMenuContent.tsx
784
- msgid "Data"
785
- msgstr "資料"
786
-
787
- #. @context: Badge label on sample page
788
- #. @context: Usage label for the default logo asset card
789
- #: src/ui/pages/BrandPage.tsx
790
- #: src/ui/pages/ThemeSamplePage.tsx
791
- msgid "Default"
792
- msgstr "預設"
793
-
794
- #. @context: Usage label for the default logo card
795
- #: src/ui/pages/BrandPage.tsx
796
- msgid "Default logo"
797
- msgstr "預設標誌"
798
-
799
- #. @context: Inline link label in the sample link post body
800
- #: src/ui/pages/ThemeSamplePage.tsx
801
- msgid "default note sample"
802
- msgstr "預設筆記範例"
803
-
804
- #. @context: Description for the social preview image asset card
805
- #: src/ui/pages/BrandPage.tsx
806
- msgid "Default preview image for social shares and link unfurls."
807
- msgstr "社群分享與連結展開時的預設預覽圖片。"
808
-
809
- #. @context: Button to delete custom URL
810
- #. @context: Button to delete item
811
- #. @context: Delete collection action
812
- #. @context: Delete nav item
813
- #: src/routes/dash/custom-urls.tsx
814
- #: src/ui/dash/ActionButtons.tsx
815
- #: src/ui/dash/appearance/NavigationContent.tsx
816
- #: src/ui/shared/collection-management-labels.ts
817
- msgid "Delete"
818
- msgstr "刪除"
819
-
820
- #. @context: Page title for account deletion
821
- #. @context: Settings item — delete account and all data
822
- #: src/ui/dash/settings/AccountMenuContent.tsx
823
- #: src/ui/dash/settings/DeleteAccountContent.tsx
824
- msgid "Delete Account"
825
- msgstr "刪除帳號"
826
-
827
- #. @context: Final destructive button to delete account and all data
828
- #: src/ui/dash/settings/DeleteAccountContent.tsx
829
- msgid "Delete Account Permanently"
830
- msgstr "永久刪除帳號"
831
-
832
- #. @context: Draft item action
833
- #: src/ui/compose/ComposeDialog.tsx
834
- msgid "Delete Draft"
835
- msgstr "刪除草稿"
836
-
837
- #. @context: Settings item — open the hosted site danger zone in the control plane
838
- #: src/ui/dash/settings/AccountMenuContent.tsx
839
- msgid "Delete Hosted Site"
840
- msgstr "刪除託管站點"
841
-
842
- #. @context: Final browser confirm dialog before account deletion
843
- #: src/ui/dash/settings/DeleteAccountContent.tsx
844
- msgid "Delete this blog permanently? This cannot be undone."
845
- msgstr "永久刪除此部落格? 此操作無法復原。"
846
-
847
- #. @context: Confirm dialog for deleting a collection
848
- #: src/ui/shared/collection-management-labels.ts
849
- msgid "Delete this collection permanently? Posts inside won't be removed."
850
- msgstr "要永久刪除此選集嗎?裡面的貼文不會被刪除。"
851
-
852
- #. @context: Hint shown on signin page when demo credentials are pre-filled
853
- #: src/routes/auth/signin.tsx
854
- msgid "Demo credentials are pre-filled — hit Sign In to continue."
855
- msgstr "示範憑證已預先填入 — 按「登入」以繼續。"
856
-
857
- #. @context: Notice shown on the account page when demo restrictions are enabled
858
- #: src/ui/dash/settings/AccountMenuContent.tsx
859
- msgid "Demo mode hides sessions, password changes, and account deletion. Export still works."
860
- msgstr "示範模式下會隱藏工作階段、密碼變更和刪除帳戶。匯出仍可使用。"
861
-
862
- #. @context: Help text explaining that SEO indexing is locked in demo mode
863
- #: src/ui/dash/settings/GeneralContent.tsx
864
- msgid "Demo sites always stay hidden from search engines."
865
- msgstr "示範站點會一律對搜尋引擎隱藏。"
866
-
867
- #. @context: Alt text textarea placeholder
868
- #: src/ui/compose/ComposeDialog.tsx
869
- msgid "Describe this for people with visual impairments..."
870
- msgstr "為視障者描述此內容..."
871
-
872
- #. @context: Collection form field
873
- #: src/ui/shared/collection-management-labels.ts
874
- msgid "Description (optional)"
875
- msgstr "描述(選填)"
876
-
877
- #. @context: Collection label on theme sample content card
878
- #. @context: Collection tag on sample note post
879
- #. @context: Collection tag on the sample detail article
880
- #. @context: Color theme preview collection label
881
- #: src/ui/dash/appearance/ColorThemeContent.tsx
882
- #: src/ui/pages/ThemeSamplePage.tsx
883
- #: src/ui/pages/ThemeSamplePage.tsx
884
- #: src/ui/pages/ThemeSamplePage.tsx
885
- msgid "Design"
886
- msgstr "設計"
887
-
888
- #. @context: Title for the sample detail article on the theme sample page
889
- #: src/ui/pages/ThemeSamplePage.tsx
890
- msgid "Designing a calmer default accent for Jant"
891
- msgstr "為 Jant 設計更平靜的預設強調色"
892
-
893
- #. @context: Redirect destination field
894
- #: src/routes/dash/custom-urls.tsx
895
- msgid "Destination"
896
- msgstr "目的地"
897
-
898
- #. @context: Confirm close action sheet - discard changes button for editing published post
899
- #. @context: More menu - discard post
900
- #: src/ui/compose/ComposeDialog.tsx
901
- #: src/ui/compose/ComposeDialog.tsx
902
- msgid "Discard"
903
- msgstr "放棄"
904
-
905
- #. @context: Confirm dialog shown before discarding attached text edits
906
- #: src/ui/compose/ComposeDialog.tsx
907
- msgid "Discard changes?"
908
- msgstr "要放棄變更嗎?"
909
-
910
- #. @context: Checkbox to show avatar in the site header
911
- #: src/ui/dash/settings/AvatarContent.tsx
912
- msgid "Display avatar in my site header"
913
- msgstr "在我的網站標頭顯示頭像"
914
-
915
- #. @context: Help text for site footer field
916
- #: src/ui/dash/settings/GeneralContent.tsx
917
- msgid "Displayed at the bottom of all posts and pages. Markdown supported."
918
- msgstr "顯示於所有文章與頁面的底部。支援 Markdown."
919
-
920
- #. @context: Theme group heading on color theme settings page
921
- #: src/ui/dash/appearance/ColorThemeContent.tsx
922
- msgid "Distinctive Mood"
923
- msgstr "鮮明氛圍"
924
-
925
- #. @context: Label for a divider item while organizing collections
926
- #: src/ui/shared/CollectionsManager.tsx
927
- msgid "Divider"
928
- msgstr "分隔線"
929
-
930
- #. @context: Guidance body on the brand asset page
931
- #: src/ui/pages/BrandPage.tsx
932
- msgid "Do not recolor, stretch, rotate, outline, or add effects to the logo."
933
- msgstr "請勿變更顏色、拉伸、旋轉、描邊或對標誌新增任何效果。"
934
-
935
- #. @context: Confirm close action sheet subtitle when editing a published post
936
- #: src/ui/compose/ComposeDialog.tsx
937
- msgid "Do you want to publish your changes or discard them?"
938
- msgstr "您要發佈變更還是捨棄它們?"
939
-
940
- #. @context: Compose publish settings help text for posts hidden from Latest
941
- #: src/ui/compose/ComposeDialog.tsx
942
- msgid "Doesn't appear in Latest. Still appears in collections you add it to."
943
- msgstr "不會出現在 Latest 中,但仍會出現在你加入的 Collection 裡。"
944
-
945
- #. @context: Confirm action sheet - discard text attachment changes button
946
- #. @context: Confirm close action sheet - discard button
947
- #: src/ui/compose/ComposeDialog.tsx
948
- #: src/ui/compose/ComposeDialog.tsx
949
- msgid "Don't save"
950
- msgstr "不儲存"
951
-
952
- #. @context: Button to exit collection organize mode
953
- #. @context: Close attached text panel
954
- #. @context: Compose button - update existing post
955
- #. @context: Primary button in the quick-create collection dialog
956
- #: src/ui/compose/ComposeDialog.tsx
957
- #: src/ui/compose/ComposeDialog.tsx
958
- #: src/ui/shared/collection-management-labels.ts
959
- #: src/ui/shared/CollectionsManager.tsx
960
- msgid "Done"
961
- msgstr "完成"
962
-
963
- #. @context: Step 1 heading — user must download a site export before deleting
964
- #: src/ui/dash/settings/DeleteAccountContent.tsx
965
- msgid "Download a site export"
966
- msgstr "下載站點匯出"
967
-
968
- #. @context: Settings item description for static site export
969
- #: src/ui/dash/settings/AccountMenuContent.tsx
970
- msgid "Download a Zola site ZIP for static publishing or import into another Jant."
971
- msgstr "下載一個 Zola 站點 ZIP,可用於靜態發佈或匯入另一套 Jant。"
972
-
973
- #. @context: Primary hero button label for the brand pack ZIP
974
- #: src/ui/pages/BrandPage.tsx
975
- msgid "Download Brand Pack"
976
- msgstr "下載品牌套件"
977
-
978
- #. @context: Button to download the site export ZIP before deletion
979
- #: src/ui/dash/settings/DeleteAccountContent.tsx
980
- msgid "Download Export ZIP"
981
- msgstr "下載匯出 ZIP"
982
-
983
- #. @context: Alert when site export download fails during account deletion
984
- #: src/ui/dash/settings/DeleteAccountContent.tsx
985
- msgid "Download failed. Please try again."
986
- msgstr "下載失敗。請再試一次。"
987
-
988
- #. @context: Download button label for a non-SVG brand asset
989
- #: src/ui/pages/BrandPage.tsx
990
- msgid "Download file"
991
- msgstr "下載檔案"
992
-
993
- #. @context: Meta description for the public brand asset page
994
- #: src/routes/pages/brand.tsx
995
- msgid "Download official Jant logos, icons, and preview assets."
996
- msgstr "下載官方 Jant 標誌、圖示與預覽資產。"
997
-
998
- #. @context: Download button label for a PNG logo asset
999
- #: src/ui/pages/BrandPage.tsx
1000
- msgid "Download PNG"
1001
- msgstr "下載 PNG"
1002
-
1003
- #. @context: Download button label for a logo asset
1004
- #: src/ui/pages/BrandPage.tsx
1005
- msgid "Download SVG"
1006
- msgstr "下載 SVG"
1007
-
1008
- #. @context: Hero title on the public brand asset page
1009
- #: src/ui/pages/BrandPage.tsx
1010
- msgid "Download the official Jant logo, icons, and preview files."
1011
- msgstr "下載官方 Jant 標誌、圖示與預覽檔案。"
1012
-
1013
- #. @context: Post status badge - draft
1014
- #: src/ui/dash/StatusBadge.tsx
1015
- msgid "Draft"
1016
- msgstr "草稿"
1017
-
1018
- #. @context: Toast after draft deletion
1019
- #: src/ui/compose/ComposeDialog.tsx
1020
- msgid "Draft deleted."
1021
- msgstr "草稿已刪除."
1022
-
1023
- #. @context: Toast shown when a local draft is restored on compose open
1024
- #: src/ui/compose/ComposeDialog.tsx
1025
- msgid "Draft restored."
1026
- msgstr "草稿已還原。"
1027
-
1028
- #. @context: Toast after saving a draft post
1029
- #. @context: Toast after saving a draft post
1030
- #: src/routes/compose.tsx
1031
- #: src/routes/compose.tsx
1032
- msgid "Draft saved."
1033
- msgstr "草稿已儲存。"
1034
-
1035
- #. @context: Drafts panel title
1036
- #: src/ui/compose/ComposeDialog.tsx
1037
- msgid "Drafts"
1038
- msgstr "草稿"
1039
-
1040
- #. @context: Helper text shown while organizing collections
1041
- #: src/ui/shared/CollectionsManager.tsx
1042
- msgid "Drag collections and dividers into the order you want."
1043
- msgstr "拖曳選集和分隔線,調整成你想要的順序。"
1044
-
1045
- #. @context: Placeholder for API token name input
1046
- #: src/ui/dash/settings/ApiTokensContent.tsx
1047
- msgid "e.g. iOS Shortcuts"
1048
- msgstr "例如 iOS Shortcuts"
1049
-
1050
- #. @context: Button to edit item
1051
- #. @context: Per-collection edit action
1052
- #. @context: Per-collection edit action
1053
- #. @context: Per-collection edit action
1054
- #: src/ui/dash/ActionButtons.tsx
1055
- #: src/ui/pages/CollectionEditorPage.tsx
1056
- #: src/ui/pages/CollectionEditorPage.tsx
1057
- #: src/ui/shared/collection-management-labels.ts
1058
- msgid "Edit"
1059
- msgstr "編輯"
1060
-
1061
- #. @context: Button to manually edit the collection link
1062
- #: src/ui/shared/collection-management-labels.ts
1063
- msgid "Edit link"
1064
- msgstr "編輯連結"
1065
-
1066
- #. @context: Compose dialog header title in edit mode
1067
- #: src/ui/compose/ComposeDialog.tsx
1068
- msgid "Edit post"
1069
- msgstr "編輯貼文"
1070
-
1071
- #. @context: Sample link post title on the theme sample page
1072
- #: src/ui/pages/ThemeSamplePage.tsx
1073
- msgid "Editorial interfaces worth borrowing from"
1074
- msgstr "值得借鏡的編輯介面"
1075
-
1076
- #. @context: Setup/signin form field - email
1077
- #. @context: Setup/signin form field - email
1078
- #: src/routes/auth/setup.tsx
1079
- #: src/routes/auth/signin.tsx
1080
- msgid "Email"
1081
- msgstr "電子郵件"
1082
-
1083
- #. @context: Compose toolbar - emoji picker tooltip
1084
- #: src/ui/compose/ComposeDialog.tsx
1085
- msgid "Emoji"
1086
- msgstr "表情符號"
1087
-
1088
- #. @context: Compose URL field error message
1089
- #: src/ui/compose/ComposeDialog.tsx
1090
- msgid "Enter a valid URL starting with http://, https://, or mailto:."
1091
- msgstr "請輸入以 http://、https:// 或 mailto: 開頭的有效 URL。"
1092
-
1093
- #. @context: Plural entry count label
1094
- #. @context: Plural entry count label
1095
- #: src/ui/shared/CollectionDirectory.tsx
1096
- #: src/ui/shared/CollectionsManager.tsx
1097
- msgid "entries"
1098
- msgstr "項目"
1099
-
1100
- #. @context: Singular entry count label
1101
- #. @context: Singular entry count label
1102
- #: src/ui/shared/CollectionDirectory.tsx
1103
- #: src/ui/shared/CollectionsManager.tsx
1104
- msgid "entry"
1105
- msgstr "項目"
1106
-
1107
- #. @context: Usage label for the brand pack card
1108
- #: src/ui/pages/BrandPage.tsx
1109
- msgid "Everything in one download"
1110
- msgstr "一次下載所有內容"
1111
-
1112
- #. @context: Section title for the quick-start panel on the brand asset page
1113
- #: src/ui/pages/BrandPage.tsx
1114
- msgid "Everything most people need is in one ZIP."
1115
- msgstr "大多數人需要的東西都在同一個 ZIP 檔案中。"
1116
-
1117
- #. @context: Intro paragraph on the public brand asset page
1118
- #: src/ui/pages/BrandPage.tsx
1119
- msgid "Everything on this page is ready to use for articles, launch posts, directories, and product coverage."
1120
- msgstr "此頁面上的所有內容皆可直接用於文章、發布貼文、名錄及產品報導。"
1121
-
1122
- #. @context: Settings item description for account settings on the settings home page when demo restrictions are enabled
1123
- #: src/ui/dash/settings/SettingsRootContent.tsx
1124
- msgid "Export and demo limits"
1125
- msgstr "匯出與示範限制"
1126
-
1127
- #. @context: Confirmation text after downloading the site export in delete flow
1128
- #: src/ui/dash/settings/DeleteAccountContent.tsx
1129
- msgid "Export downloaded."
1130
- msgstr "匯出已下載。"
1131
-
1132
- #. @context: Settings item — export a Zola static site ZIP
1133
- #: src/ui/dash/settings/AccountMenuContent.tsx
1134
- msgid "Export Static Site"
1135
- msgstr "匯出靜態站點"
1136
-
1137
- #. @context: Title for the favicon asset card
1138
- #: src/ui/pages/BrandPage.tsx
1139
- msgid "Favicon"
1140
- msgstr "網站圖示"
1141
-
1142
- #. @context: Settings item description for avatar
1143
- #: src/ui/dash/settings/SettingsRootContent.tsx
1144
- msgid "Favicon and the profile mark in your header"
1145
- msgstr "Favicon 與您標頭上的個人標記"
1146
-
1147
- #. @context: Archive visibility filter - featured posts
1148
- #. @context: Browse filter for featured posts
1149
- #. @context: Browse filter label
1150
- #. @context: Browse filter label
1151
- #. @context: Browse filter label for featured posts
1152
- #. @context: Browser page title for the featured feed
1153
- #. @context: Browser page title for the featured feed
1154
- #. @context: Inactive browse tab label on sample page
1155
- #. @context: Page heading for the featured posts feed
1156
- #. @context: Post badge - featured
1157
- #. @context: Select option for using featured posts as the main RSS feed
1158
- #. @context: Tooltip and screen reader label for the featured-post icon in the post footer when no featured date is available
1159
- #: src/routes/pages/featured.tsx
1160
- #: src/routes/pages/home.tsx
1161
- #: src/ui/dash/appearance/NavigationContent.tsx
1162
- #: src/ui/dash/appearance/NavigationContent.tsx
1163
- #: src/ui/dash/appearance/NavigationContent.tsx
1164
- #: src/ui/dash/settings/GeneralContent.tsx
1165
- #: src/ui/dash/StatusBadge.tsx
1166
- #: src/ui/layouts/SiteLayout.tsx
1167
- #: src/ui/pages/ArchivePage.tsx
1168
- #: src/ui/pages/FeaturedPage.tsx
1169
- #: src/ui/pages/ThemeSamplePage.tsx
1170
- #: src/ui/shared/PostFooter.tsx
1171
- msgid "Featured"
1172
- msgstr "精選"
1173
-
1174
- #. @context: Label for the explicit featured RSS feed URL
1175
- #: src/ui/dash/settings/GeneralContent.tsx
1176
- msgid "Featured feed"
1177
- msgstr "Featured feed"
1178
-
1179
- #. @context: Tooltip and screen reader label for the featured-post icon in the post footer
1180
- #: src/ui/shared/PostFooter.tsx
1181
- msgid "Featured on {date} at {time}"
1182
- msgstr "精選於 {date} {time}"
1183
-
1184
- #. @context: RSS and Atom feed title suffix for the featured posts feed
1185
- #. @context: RSS autodiscovery title for the featured posts feed
1186
- #: src/routes/feed/rss.ts
1187
- #: src/ui/layouts/BaseLayout.tsx
1188
- msgid "Featured posts"
1189
- msgstr "精選貼文"
1190
-
1191
- #. @context: Toast after saving feed settings
1192
- #: src/routes/dash/settings.tsx
1193
- msgid "Feed settings updated."
1194
- msgstr "訂閱源設定已更新。"
1195
-
1196
- #. @context: Toast after copying a feed URL to the clipboard
1197
- #: src/ui/dash/settings/GeneralContent.tsx
1198
- msgid "Feed URL copied."
1199
- msgstr "訂閱源 URL 已複製。"
1200
-
1201
- #. @context: Settings section heading for RSS feed configuration
1202
- #: src/ui/dash/settings/GeneralContent.tsx
1203
- msgid "Feeds"
1204
- msgstr "訂閱源"
1205
-
1206
- #. @context: Search snippet suffix on sample page
1207
- #: src/ui/pages/ThemeSamplePage.tsx
1208
- msgid "feel deliberate instead of washed out."
1209
- msgstr "感覺更有意圖,而不是黯淡無光。"
1210
-
1211
- #. @context: Table cell in the sample detail article
1212
- #: src/ui/pages/ThemeSamplePage.tsx
1213
- msgid "Feel editorial and slightly quieter."
1214
- msgstr "帶有編輯風格,稍微低調。"
1215
-
1216
- #. @context: Sample quote attribution title on the theme sample page
1217
- #: src/ui/pages/ThemeSamplePage.tsx
1218
- msgid "Field Notes on Interface Tone"
1219
- msgstr "介面語氣的實地筆記"
1220
-
1221
- #. @context: Color theme preview card title
1222
- #. @context: Input value on sample page
1223
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1224
- #: src/ui/pages/ThemeSamplePage.tsx
1225
- msgid "Field notes on quiet design"
1226
- msgstr "安靜設計手記"
1227
-
1228
- #. @context: Error toast when file storage is not set up
1229
- #. @context: Error when file storage is not set up
1230
- #: src/routes/api/upload.ts
1231
- #: src/routes/dash/settings.tsx
1232
- msgid "File storage isn't set up. Check your server config."
1233
- msgstr "檔案儲存尚未設定。請檢查您的伺服器設定。"
1234
-
1235
- #. @context: Toast after successful file upload
1236
- #: src/routes/api/upload.ts
1237
- msgid "File uploaded."
1238
- msgstr "檔案已上傳。"
1239
-
1240
- #. @context: Archive media filter - files/documents
1241
- #: src/ui/pages/ArchivePage.tsx
1242
- msgid "Files"
1243
- msgstr "檔案"
1244
-
1245
- #. @context: Settings item description for custom CSS
1246
- #: src/ui/dash/settings/SettingsRootContent.tsx
1247
- msgid "Fine-grained styling overrides"
1248
- msgstr "細緻樣式覆寫"
1249
-
1250
- #. @context: Label for the list of stable RSS feed URLs
1251
- #: src/ui/dash/settings/GeneralContent.tsx
1252
- msgid "Fixed feed URLs"
1253
- msgstr "固定 feed 連結"
1254
-
1255
- #. @context: Theme mode option description
1256
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1257
- msgid "Follow each visitor's system preference."
1258
- msgstr "依每位訪客的系統偏好顯示。"
1259
-
1260
- #. @context: Appearance settings heading for font theme
1261
- #: src/ui/dash/appearance/FontThemeContent.tsx
1262
- msgid "Font theme"
1263
- msgstr "字型主題"
1264
-
1265
- #. @context: Settings item — font theme settings
1266
- #: src/ui/dash/settings/SettingsRootContent.tsx
1267
- msgid "Font Theme"
1268
- msgstr "字型主題"
1269
-
1270
- #. @context: Paragraph mentioning code on the sample detail article
1271
- #: src/ui/pages/ThemeSamplePage.tsx
1272
- msgid "For the same reason, inline code should stay neutral. Something like theme.siteAccent = soften(green, 12%) should not suddenly become the loudest thing on the page."
1273
- msgstr "也因為這個原因,行內程式碼應該保持中性。像 theme.siteAccent = soften(green, 12%) 這樣的內容,不該突然變成頁面裡最吵的一部分。"
1274
-
1275
- #. @context: Search results count - multiple
1276
- #. placeholder {0}: String(results.length)
1277
- #: src/ui/pages/SearchPage.tsx
1278
- msgid "Found {0} results"
1279
- msgstr "找到 {0} 筆結果"
1280
-
1281
- #. @context: Search results count - single
1282
- #: src/ui/pages/SearchPage.tsx
1283
- msgid "Found 1 result"
1284
- msgstr "找到 1 個結果"
1285
-
1286
- #. @context: Compose dialog - open fullscreen editor
1287
- #: src/ui/compose/ComposeDialog.tsx
1288
- msgid "Fullscreen"
1289
- msgstr "全螢幕"
1290
-
1291
- #. @context: Settings item — general settings
1292
- #. @context: Settings section heading
1293
- #: src/ui/dash/settings/GeneralContent.tsx
1294
- #: src/ui/dash/settings/SettingsRootContent.tsx
1295
- msgid "General"
1296
- msgstr "一般"
1297
-
1298
- #. @context: Compose publish settings slug summary when no custom slug is set
1299
- #: src/ui/compose/ComposeDialog.tsx
1300
- msgid "Generate automatically"
1301
- msgstr "自動生成"
1302
-
1303
- #. @context: Button to create new API token
1304
- #: src/ui/dash/settings/ApiTokensContent.tsx
1305
- msgid "Generate Token"
1306
- msgstr "產生 Token"
1307
-
1308
- #. @context: Compose custom slug helper while generating a suggested slug
1309
- #: src/ui/compose/ComposeDialog.tsx
1310
- msgid "Generating a link..."
1311
- msgstr "正在產生連結..."
1312
-
1313
- #. @context: Compose link title placeholder
1314
- #: src/ui/compose/ComposeDialog.tsx
1315
- msgid "Give it a title..."
1316
- msgstr "為連結加上標題..."
1317
-
1318
- #. @context: Table cell in the sample detail article
1319
- #: src/ui/pages/ThemeSamplePage.tsx
1320
- msgid "Guide the eye without taking over the layout."
1321
- msgstr "引導視線而不搶佔版面。"
1322
-
1323
- #. @context: Section kicker for the usage guidance section on the brand asset page
1324
- #: src/ui/pages/BrandPage.tsx
1325
- msgid "Guidelines"
1326
- msgstr "使用指引"
1327
-
1328
- #. @context: Usage label for the square tile asset card
1329
- #: src/ui/pages/BrandPage.tsx
1330
- msgid "Hard edge"
1331
- msgstr "銳利邊緣"
1332
-
1333
- #. @context: Toast after saving max visible nav links setting
1334
- #: src/ui/dash/appearance/NavigationContent.tsx
1335
- msgid "Header link limit updated."
1336
- msgstr "頁首連結數量上限已更新。"
1337
-
1338
- #. @context: Settings item description for navigation
1339
- #: src/ui/dash/settings/SettingsRootContent.tsx
1340
- msgid "Header links, home feed, and overflow menu"
1341
- msgstr "頁首連結、首頁檢視與溢出選單"
1342
-
1343
- #. @context: Description for the RSS system navigation toggle. %feed% is either Latest or Featured.
1344
- #: src/ui/dash/appearance/NavigationContent.tsx
1345
- msgid "Header RSS points to your %feed% feed (/feed). Change what /feed returns in General."
1346
- msgstr "頁首 RSS 會指向你的 %feed% feed(/feed)。可在一般設定中修改 /feed 的輸出內容。"
1347
-
1348
- #. @context: Bullet item in the sample detail article
1349
- #: src/ui/pages/ThemeSamplePage.tsx
1350
- msgid "Headings should keep their hierarchy even when the accent gets softer."
1351
- msgstr "標題在強調變淡時仍應保持其層級."
1352
-
1353
- #. @context: Hint text in alt text panel
1354
- #: src/ui/compose/ComposeDialog.tsx
1355
- msgid "Helps screen readers describe the image"
1356
- msgstr "協助螢幕閱讀器描述圖片"
1357
-
1358
- #. @context: Archive visibility filter for posts hidden from Latest
1359
- #. @context: Compose publish settings visibility option
1360
- #. @context: Post badge for posts hidden from Latest
1361
- #: src/ui/compose/ComposeDialog.tsx
1362
- #: src/ui/dash/StatusBadge.tsx
1363
- #: src/ui/pages/ArchivePage.tsx
1364
- msgid "Hidden from Latest"
1365
- msgstr "從 Latest 隱藏"
1366
-
1367
- #. @context: Compose dropdown option for hiding a post from the Latest view
1368
- #: src/ui/compose/ComposeDialog.tsx
1369
- msgid "Hide from Latest"
1370
- msgstr "從 Latest 隱藏"
1371
-
1372
- #. @context: Collection sort order option
1373
- #. @context: Collection sort order option
1374
- #: src/ui/pages/CollectionPage.tsx
1375
- #: src/ui/shared/collection-management-labels.ts
1376
- msgid "Highest rated"
1377
- msgstr "評分最高"
1378
-
1379
- #. @context: Settings subsection heading for home page settings
1380
- #: src/ui/dash/settings/GeneralContent.tsx
1381
- msgid "Home"
1382
- msgstr "首頁"
1383
-
1384
- #. @context: Toast after saving home default view setting
1385
- #: src/ui/dash/appearance/NavigationContent.tsx
1386
- msgid "Home feed updated."
1387
- msgstr "首頁檢視已更新。"
1388
-
1389
- #. @context: Description for the apple touch icon asset card
1390
- #: src/ui/pages/BrandPage.tsx
1391
- msgid "Home screen icon for iPhone and iPad shortcuts."
1392
- msgstr "供 iPhone 與 iPad 捷徑使用的主畫面圖示。"
1393
-
1394
- #. @context: Toast after auto-saving home settings
1395
- #: src/routes/dash/settings.tsx
1396
- msgid "Home settings updated."
1397
- msgstr "首頁設定已更新。"
1398
-
1399
- #. @context: Generic hosted auth provider label when no explicit provider name is configured
1400
- #: src/ui/dash/settings/AccountMenuContent.tsx
1401
- msgid "Hosted account"
1402
- msgstr "託管帳號"
1403
-
1404
- #. @context: Confirmation phrase the user must type to delete their account. {siteName} is the blog name.
1405
- #: src/ui/dash/settings/DeleteAccountContent.tsx
1406
- msgid "I want to delete {siteName}"
1407
- msgstr "我想刪除 {siteName}"
1408
-
1409
- #. @context: Section kicker for the icon and preview downloads section
1410
- #: src/ui/pages/BrandPage.tsx
1411
- msgid "Icons and previews"
1412
- msgstr "圖示與預覽"
1413
-
1414
- #. @context: Closing paragraph on the sample detail article
1415
- #: src/ui/pages/ThemeSamplePage.tsx
1416
- msgid "If this article still feels like a page you want to keep reading, the palette is probably close."
1417
- msgstr "如果這篇文章仍讓你想繼續閱讀,代表配色可能已經很接近了。"
1418
-
1419
- #. @context: Alert body on theme sample page
1420
- #: src/ui/pages/ThemeSamplePage.tsx
1421
- msgid "If this page feels too branded, the first place to soften is the default theme’s site accent, not the border or body text."
1422
- msgstr "如果這一頁顯得太有品牌姿態,最先該收一收的是預設主題的網站強調色,而不是邊框或正文顏色。"
1423
-
1424
- #. @context: Archive media filter - images
1425
- #: src/ui/pages/ArchivePage.tsx
1426
- msgid "Images"
1427
- msgstr "圖片"
1428
-
1429
- #. @context: Link to the thread root from a post footer
1430
- #: src/ui/shared/PostFooter.tsx
1431
- msgid "In thread →"
1432
- msgstr "在線程中 →"
1433
-
1434
- #. @context: Accessible label for the asset keyword list on the public brand page
1435
- #: src/ui/pages/BrandPage.tsx
1436
- msgid "Included assets"
1437
- msgstr "包含資源"
1438
-
1439
- #. @context: Site accent sample badge
1440
- #: src/ui/pages/ThemeSamplePage.tsx
1441
- msgid "Inline emphasis"
1442
- msgstr "行內強調"
1443
-
1444
- #. @context: Table cell in the sample detail article
1445
- #: src/ui/pages/ThemeSamplePage.tsx
1446
- msgid "Inline link"
1447
- msgstr "行內連結"
1448
-
1449
- #. @context: Sample note summary suffix on the theme sample page
1450
- #: src/ui/pages/ThemeSamplePage.tsx
1451
- msgid "instead of judging it as an isolated swatch."
1452
- msgstr "而不是把它當作孤立的色票來評斷。"
1453
-
1454
- #. @context: Sample quote text on the theme sample page
1455
- #: src/ui/pages/ThemeSamplePage.tsx
1456
- msgid "Interfaces for reading should guide the eye, not keep asking for attention."
1457
- msgstr "供閱讀的介面應該引導視線,而不是不斷搶奪注意力。"
1458
-
1459
- #. @context: Usage label for the apple touch icon asset card
1460
- #: src/ui/pages/BrandPage.tsx
1461
- msgid "iOS home screen"
1462
- msgstr "iOS 主畫面"
1463
-
1464
- #. @context: Accessible label for the Jant logo mark
1465
- #: src/ui/pages/BrandPage.tsx
1466
- msgid "Jant logo"
1467
- msgstr "Jant 標誌"
1468
-
1469
- #. @context: Body paragraph on the theme sample page
1470
- #: src/ui/pages/ThemeSamplePage.tsx
1471
- msgid "Jant looks best when the accent feels editorial. Buttons can stay sturdy, but inline emphasis should feel like a pen mark, not a dashboard highlight."
1472
- msgstr "Jant 在帶有編輯氣質的點綴下最為出色。按鈕可以保持紮實,但行內強調應該像筆跡,而不是儀表板式的醒目標示。"
1473
-
1474
- #. @context: Active nav link label on sample page
1475
- #: src/ui/pages/ThemeSamplePage.tsx
1476
- msgid "Journal"
1477
- msgstr "日誌"
1478
-
1479
- #. @context: Guidance title on the brand asset page
1480
- #: src/ui/pages/BrandPage.tsx
1481
- msgid "Keep the artwork unchanged."
1482
- msgstr "保持圖稿不變."
1483
-
1484
- #. @context: Collection slug validation error for links that are too long
1485
- #: src/ui/shared/collection-management-labels.ts
1486
- msgid "Keep this link under 200 characters."
1487
- msgstr "將這個連結控制在 200 個字元以內。"
1488
-
1489
- #. @context: Nav item label field
1490
- #: src/ui/dash/appearance/NavigationContent.tsx
1491
- msgid "Label"
1492
- msgstr "標籤"
1493
-
1494
- #. @context: Placeholder for an optional divider label in collections organize mode
1495
- #: src/ui/shared/CollectionsManager.tsx
1496
- msgid "Label (optional)"
1497
- msgstr "標籤(選填)"
1498
-
1499
- #. @context: Error toast when nav link fields are empty
1500
- #: src/ui/dash/appearance/NavigationContent.tsx
1501
- msgid "Label and URL are required"
1502
- msgstr "標籤和 URL 為必填"
1503
-
1504
- #. @context: Error toast when nav label is empty
1505
- #: src/ui/dash/appearance/NavigationContent.tsx
1506
- msgid "Label is required"
1507
- msgstr "標籤為必填"
1508
-
1509
- #. @context: Settings form field
1510
- #: src/ui/dash/settings/GeneralContent.tsx
1511
- msgid "Language"
1512
- msgstr "語言"
1513
-
1514
- #. @context: Settings subsection heading for language and time zone fields
1515
- #: src/ui/dash/settings/GeneralContent.tsx
1516
- msgid "Language & Time"
1517
- msgstr "語言與時間"
1518
-
1519
- #. @context: Toast after saving language and time settings
1520
- #: src/routes/dash/settings.tsx
1521
- msgid "Language and time updated."
1522
- msgstr "語言和時間已更新。"
1523
-
1524
- #. @context: Token last used date
1525
- #. placeholder {0}: formatDate(token.lastUsedAt)
1526
- #: src/ui/dash/settings/ApiTokensContent.tsx
1527
- msgid "Last used {0}"
1528
- msgstr "上次使用於 {0}"
1529
-
1530
- #. @context: Active browse tab label on sample page
1531
- #. @context: Browse filter for latest posts
1532
- #. @context: Browse filter label
1533
- #. @context: Browse filter label
1534
- #. @context: Browse filter label for latest posts
1535
- #. @context: Browser page title for the latest feed
1536
- #. @context: Browser page title for the latest feed
1537
- #. @context: Page heading for the latest posts feed
1538
- #. @context: Select option for using latest posts as the main RSS feed
1539
- #: src/routes/pages/home.tsx
1540
- #: src/routes/pages/latest.tsx
1541
- #: src/ui/dash/appearance/NavigationContent.tsx
1542
- #: src/ui/dash/appearance/NavigationContent.tsx
1543
- #: src/ui/dash/appearance/NavigationContent.tsx
1544
- #: src/ui/dash/settings/GeneralContent.tsx
1545
- #: src/ui/layouts/SiteLayout.tsx
1546
- #: src/ui/pages/HomePage.tsx
1547
- #: src/ui/pages/ThemeSamplePage.tsx
1548
- msgid "Latest"
1549
- msgstr "最新"
1550
-
1551
- #. @context: Label for the explicit latest RSS feed URL
1552
- #: src/ui/dash/settings/GeneralContent.tsx
1553
- msgid "Latest feed"
1554
- msgstr "Latest feed"
1555
-
1556
- #. @context: RSS and Atom feed title suffix for the latest public posts feed
1557
- #. @context: RSS autodiscovery title for the latest public posts feed
1558
- #: src/routes/feed/rss.ts
1559
- #: src/ui/layouts/BaseLayout.tsx
1560
- msgid "Latest posts"
1561
- msgstr "最新貼文"
1562
-
1563
- #. @context: Compose publish settings slug help text
1564
- #: src/ui/compose/ComposeDialog.tsx
1565
- msgid "Leave blank to generate one automatically."
1566
- msgstr "留空則自動生成。"
1567
-
1568
- #. @context: Suffix after Custom CSS link on color theme page
1569
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1570
- msgid "lets you override any theme variable."
1571
- msgstr "可讓你覆寫任何主題變數。"
1572
-
1573
- #. @context: Theme mode option label
1574
- #. @context: Theme mode option on sample page
1575
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1576
- #: src/ui/pages/ThemeSamplePage.tsx
1577
- msgid "Light"
1578
- msgstr "淺色"
1579
-
1580
- #. @context: Nav item type badge
1581
- #: src/ui/dash/appearance/NavigationContent.tsx
1582
- msgid "link"
1583
- msgstr "連結"
1584
-
1585
- #. @context: Compose format tab
1586
- #. @context: Post format badge - link
1587
- #. @context: Post format label - link
1588
- #: src/ui/compose/ComposeDialog.tsx
1589
- #: src/ui/dash/FormatBadge.tsx
1590
- #: src/ui/pages/ArchivePage.tsx
1591
- msgid "Link"
1592
- msgstr "連結"
1593
-
1594
- #. @context: Description for the archive system navigation toggle
1595
- #: src/ui/shared/navigation-labels.ts
1596
- msgid "Link to the post archive"
1597
- msgstr "連結到文章歸檔頁"
1598
-
1599
- #. @context: Description for the collections system navigation toggle
1600
- #: src/ui/shared/navigation-labels.ts
1601
- msgid "Link to your collections page"
1602
- msgstr "連結到你的選集頁"
1603
-
1604
- #. @context: Post format label plural - links
1605
- #: src/ui/pages/ArchivePage.tsx
1606
- msgid "Links"
1607
- msgstr "連結"
1608
-
1609
- #. @context: Bullet item in the sample detail article
1610
- #: src/ui/pages/ThemeSamplePage.tsx
1611
- msgid "Links should read clearly without glowing against the page."
1612
- msgstr "連結應該在頁面上清晰易讀,不應帶有發光效果."
1613
-
1614
- #. @context: Label for max visible nav links number input
1615
- #: src/ui/dash/appearance/NavigationContent.tsx
1616
- msgid "Links shown in header"
1617
- msgstr "頁首顯示的連結數量"
1618
-
1619
- #. @context: Label for list posts curl example
1620
- #: src/ui/dash/settings/ApiTokensContent.tsx
1621
- msgid "List posts:"
1622
- msgstr "列出貼文:"
1623
-
1624
- #. @context: Inline link label in the sample note post body
1625
- #. @context: Inline link label in the sample note summary
1626
- #: src/ui/pages/ThemeSamplePage.tsx
1627
- #: src/ui/pages/ThemeSamplePage.tsx
1628
- msgid "live theme controls"
1629
- msgstr "即時主題控制"
1630
-
1631
- #. @context: Pagination button - load more items
1632
- #: src/ui/shared/Pagination.tsx
1633
- msgid "Load more"
1634
- msgstr "載入更多"
1635
-
1636
- #. @context: Asset keyword on the public brand asset page
1637
- #. @context: Asset keyword on the public brand asset page
1638
- #. @context: Title for the default logo asset card
1639
- #. @context: Title for the default logo card
1640
- #: src/ui/pages/BrandPage.tsx
1641
- #: src/ui/pages/BrandPage.tsx
1642
- #: src/ui/pages/BrandPage.tsx
1643
- #: src/ui/pages/BrandPage.tsx
1644
- msgid "Logo"
1645
- msgstr "標誌"
1646
-
1647
- #. @context: Section kicker for the logo downloads section
1648
- #: src/ui/pages/BrandPage.tsx
1649
- msgid "Logos"
1650
- msgstr "標誌"
1651
-
1652
- #. @context: Ordered list item in the sample detail article
1653
- #: src/ui/pages/ThemeSamplePage.tsx
1654
- msgid "Look at the footer metadata last, to make sure the accent is not fighting the typography."
1655
- msgstr "最後檢查頁尾的資訊,確保強調元素不會與排版相互衝突。"
1656
-
1657
- #. @context: Theme group description on color theme settings page
1658
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1659
- msgid "Low-distraction palettes for a cleaner, calmer reading rhythm."
1660
- msgstr "低干擾配色,帶來更乾淨、更平靜的閱讀節奏。"
1661
-
1662
- #. @context: Label for the canonical /feed URL
1663
- #. @context: RSS autodiscovery title for the site's main feed
1664
- #: src/ui/dash/settings/GeneralContent.tsx
1665
- #: src/ui/layouts/BaseLayout.tsx
1666
- msgid "Main feed"
1667
- msgstr "主 feed"
1668
-
1669
- #. @context: Settings field label for the canonical /feed output
1670
- #: src/ui/dash/settings/GeneralContent.tsx
1671
- msgid "Main RSS feed"
1672
- msgstr "主 RSS feed"
1673
-
1674
- #. @context: Settings item description for hosted account management in the connected provider
1675
- #: src/ui/dash/settings/AccountMenuContent.tsx
1676
- msgid "Manage password and hosted access in {providerLabel}"
1677
- msgstr "在 {providerLabel} 中管理密碼和託管站點存取權限"
1678
-
1679
- #. @context: Intro text on the account settings menu page below the title
1680
- #: src/ui/dash/settings/AccountMenuContent.tsx
1681
- msgid "Manage sign-in security, exports, and irreversible actions."
1682
- msgstr "管理登入安全, 匯出, 以及無法復原的操作."
1683
-
1684
- #. @context: Intro text on the hosted account settings menu page below the title
1685
- #: src/ui/dash/settings/AccountMenuContent.tsx
1686
- msgid "Manage this site's active sessions here. Password and hosted access are managed through {providerLabel}."
1687
- msgstr "在這裡管理這個站點的目前工作階段。密碼和託管站點存取權限都透過 {providerLabel} 管理。"
1688
-
1689
- #. @context: Color theme preview date label
1690
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1691
- msgid "March 14"
1692
- msgstr "3 月 14 日"
1693
-
1694
- #. @context: Date label on theme sample content card
1695
- #: src/ui/pages/ThemeSamplePage.tsx
1696
- msgid "March 15"
1697
- msgstr "3月15日"
1698
-
1699
- #. @context: Placeholder hint for markdown-enabled textareas
1700
- #: src/ui/dash/settings/GeneralContent.tsx
1701
- msgid "Markdown supported"
1702
- msgstr "支援 Markdown"
1703
-
1704
- #. @context: Compose toolbar - media tooltip
1705
- #: src/ui/compose/ComposeDialog.tsx
1706
- msgid "Media"
1707
- msgstr "媒體"
1708
-
1709
- #. @context: Aria-label for collections page more button
1710
- #. @context: Button label for a menu with more actions
1711
- #. @context: Post menu trigger label in the post footer
1712
- #: src/routes/dash/custom-urls.tsx
1713
- #: src/ui/shared/collection-management-labels.ts
1714
- #: src/ui/shared/PostFooter.tsx
1715
- msgid "More actions"
1716
- msgstr "更多操作"
1717
-
1718
- #. @context: Theme group description on color theme settings page
1719
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1720
- msgid "More atmospheric palettes with a stronger sense of time, place, or tone."
1721
- msgstr "氛圍感更強的配色,時間、地點和情緒感更鮮明。"
1722
-
1723
- #. @context: Button to show overflow nav links
1724
- #: src/ui/layouts/SiteLayout.tsx
1725
- msgid "More links"
1726
- msgstr "更多連結"
1727
-
1728
- #. @context: Helper text in the quick-create collection dialog
1729
- #: src/ui/shared/collection-management-labels.ts
1730
- msgid "More options are available after you create it."
1731
- msgstr "建立後還可設定更多選項。"
1732
-
1733
- #. @context: Fallback theme group heading on color theme page
1734
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1735
- msgid "More Palettes"
1736
- msgstr "更多配色"
1737
-
1738
- #. @context: Secondary badge label on sample page
1739
- #. @context: Token label on sample page
1740
- #: src/ui/pages/ThemeSamplePage.tsx
1741
- #: src/ui/pages/ThemeSamplePage.tsx
1742
- msgid "Muted"
1743
- msgstr "淡化"
1744
-
1745
- #. @context: Collection title placeholder
1746
- #: src/ui/shared/collection-management-labels.ts
1747
- msgid "My Collection"
1748
- msgstr "我的選集"
1749
-
1750
- #. @context: Settings item description for general
1751
- #: src/ui/dash/settings/SettingsRootContent.tsx
1752
- msgid "Name, metadata, language, and search defaults"
1753
- msgstr "名稱、中繼資料、語言與搜尋預設值"
1754
-
1755
- #. @context: Settings item — navigation settings
1756
- #: src/ui/dash/settings/SettingsRootContent.tsx
1757
- msgid "Navigation"
1758
- msgstr "導覽"
1759
-
1760
- #. @context: Navigation section heading on sample page
1761
- #: src/ui/pages/ThemeSamplePage.tsx
1762
- msgid "Navigation and reading states"
1763
- msgstr "導覽與閱讀狀態"
1764
-
1765
- #. @context: Section heading for nav items
1766
- #: src/ui/dash/appearance/NavigationContent.tsx
1767
- msgid "Navigation items"
1768
- msgstr "導覽項目"
1769
-
1770
- #. @context: Toast after saving navigation item order
1771
- #: src/ui/dash/appearance/NavigationContent.tsx
1772
- msgid "Navigation order updated."
1773
- msgstr "導覽排序已更新。"
1774
-
1775
- #. @context: Label for nav preview section
1776
- #. @context: Label for nav preview section
1777
- #: src/ui/dash/appearance/NavigationContent.tsx
1778
- #: src/ui/dash/appearance/NavigationContent.tsx
1779
- msgid "Navigation Preview"
1780
- msgstr "導覽預覽"
1781
-
1782
- #. @context: Button to create a collection from collections page
1783
- #. @context: Page title for new collection
1784
- #. @context: Page title for new collection
1785
- #: src/ui/pages/CollectionEditorPage.tsx
1786
- #: src/ui/pages/CollectionEditorPage.tsx
1787
- #: src/ui/shared/CollectionsManager.tsx
1788
- msgid "New Collection"
1789
- msgstr "新增選集"
1790
-
1791
- #. @context: Button to create new custom URL
1792
- #. @context: Button to create new custom URL
1793
- #. @context: Page heading
1794
- #: src/routes/dash/custom-urls.tsx
1795
- #: src/routes/dash/custom-urls.tsx
1796
- #: src/routes/dash/custom-urls.tsx
1797
- msgid "New Custom URL"
1798
- msgstr "新增自訂網址"
1799
-
1800
- #. @context: Menu action to create a divider on collections page
1801
- #: src/ui/shared/CollectionsManager.tsx
1802
- msgid "New Divider"
1803
- msgstr "新增分隔線"
1804
-
1805
- #. @context: Password form field
1806
- #. @context: Password reset form field
1807
- #: src/routes/auth/reset.tsx
1808
- #: src/ui/dash/settings/AccountContent.tsx
1809
- msgid "New Password"
1810
- msgstr "新密碼"
1811
-
1812
- #. @context: Browser page title for the new post page
1813
- #. @context: Collection page quick compose button aria label
1814
- #. @context: Page title for the new post page
1815
- #: src/routes/pages/new.tsx
1816
- #: src/ui/pages/CollectionPage.tsx
1817
- #: src/ui/pages/ComposePage.tsx
1818
- msgid "New post"
1819
- msgstr "新增貼文"
1820
-
1821
- #. @context: Collection sort order option
1822
- #. @context: Collection sort order option
1823
- #: src/ui/pages/CollectionPage.tsx
1824
- #: src/ui/shared/collection-management-labels.ts
1825
- msgid "Newest first"
1826
- msgstr "由新到舊"
1827
-
1828
- #. @context: Pagination button - next page
1829
- #. @context: Pagination button - next page
1830
- #. @context: Pagination next label on sample page
1831
- #: src/ui/pages/ThemeSamplePage.tsx
1832
- #: src/ui/shared/Pagination.tsx
1833
- #: src/ui/shared/Pagination.tsx
1834
- msgid "Next"
1835
- msgstr "下一頁"
1836
-
1837
- #. @context: Empty state when no sessions exist (shouldn't normally appear)
1838
- #: src/ui/dash/settings/SessionsContent.tsx
1839
- msgid "No active sessions right now. Signed-in devices show up here."
1840
- msgstr "目前沒有活動中的工作階段。已登入的裝置會顯示在這裡。"
1841
-
1842
- #. @context: Compose collection combobox empty state when search has no results
1843
- #: src/ui/compose/ComposeDialog.tsx
1844
- msgid "No collections match that search. Try a different name."
1845
- msgstr "沒有選集符合這次搜尋。試試其他名稱。"
1846
-
1847
- #. @context: Empty state message on collections page
1848
- #. @context: Empty state message on collections page
1849
- #. @context: Empty state message on collections page
1850
- #: src/ui/pages/CollectionsPage.tsx
1851
- #: src/ui/shared/CollectionDirectory.tsx
1852
- #: src/ui/shared/CollectionsManager.tsx
1853
- msgid "No collections yet. Start one to organize posts by topic."
1854
- msgstr "還沒有選集。建立一個選集,依主題整理貼文。"
1855
-
1856
- #. @context: Empty state message
1857
- #: src/routes/dash/custom-urls.tsx
1858
- msgid "No custom URLs yet. Create one to add redirects or custom paths for posts."
1859
- msgstr "尚未有自訂網址。建立一個來新增轉址或為文章設定自訂路徑。"
1860
-
1861
- #. @context: Drafts panel empty state
1862
- #: src/ui/compose/ComposeDialog.tsx
1863
- msgid "No drafts yet. Save a draft to find it here."
1864
- msgstr "還沒有草稿。儲存草稿後就會顯示在這裡。"
1865
-
1866
- #. @context: Error toast when no file was selected for upload
1867
- #. @context: Error when no file was selected for upload
1868
- #: src/routes/api/upload.ts
1869
- #: src/routes/dash/settings.tsx
1870
- msgid "No file selected. Choose a file to upload."
1871
- msgstr "未選取任何檔案。請選擇要上傳的檔案。"
1872
-
1873
- #. @context: Empty state for navigation items
1874
- #: src/ui/dash/appearance/NavigationContent.tsx
1875
- msgid "No navigation items yet. Add links or enable system items below."
1876
- msgstr "目前尚無導覽項目。新增連結或在下方啟用系統項目。"
1877
-
1878
- #. @context: Search empty results
1879
- #: src/ui/pages/SearchPage.tsx
1880
- msgid "No results. Try different keywords."
1881
- msgstr "沒有結果。請嘗試不同的關鍵字。"
1882
-
1883
- #. @context: Archive empty state with filters applied
1884
- #: src/ui/pages/ArchivePage.tsx
1885
- msgid "No threads match these filters. Try adjusting your selection or clear all filters."
1886
- msgstr "沒有符合這些篩選條件的貼文串。調整篩選條件,或清除所有篩選。"
1887
-
1888
- #. @context: Color theme preview format label
1889
- #. @context: Compose format tab
1890
- #. @context: Post format badge - note
1891
- #. @context: Post format label - note
1892
- #. @context: Post format label on theme sample content card
1893
- #: src/ui/compose/ComposeDialog.tsx
1894
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1895
- #: src/ui/dash/FormatBadge.tsx
1896
- #: src/ui/pages/ArchivePage.tsx
1897
- #: src/ui/pages/ThemeSamplePage.tsx
1898
- msgid "Note"
1899
- msgstr "筆記"
1900
-
1901
- #. @context: Inline link label in the sample quote commentary
1902
- #: src/ui/pages/ThemeSamplePage.tsx
1903
- msgid "note treatment"
1904
- msgstr "筆記樣式"
1905
-
1906
- #. @context: Post format label plural - notes
1907
- #: src/ui/pages/ArchivePage.tsx
1908
- msgid "Notes"
1909
- msgstr "筆記"
1910
-
1911
- #. @context: Empty state message on home page
1912
- #: src/ui/pages/HomePage.tsx
1913
- msgid "Nothing here yet."
1914
- msgstr "這裡還沒有內容。"
1915
-
1916
- #. @context: Empty state message on featured page
1917
- #: src/ui/pages/FeaturedPage.tsx
1918
- msgid "Nothing in Featured yet. Mark a post as featured to show it here."
1919
- msgstr "精選裡還沒有內容。將貼文標記為精選後,就會顯示在這裡。"
1920
-
1921
- #. @context: Collection sort order option
1922
- #. @context: Collection sort order option
1923
- #: src/ui/pages/CollectionPage.tsx
1924
- #: src/ui/shared/collection-management-labels.ts
1925
- msgid "Oldest first"
1926
- msgstr "由舊到新"
1927
-
1928
- #. @context: Compose publish settings help text for private visibility
1929
- #: src/ui/compose/ComposeDialog.tsx
1930
- msgid "Only visible when signed in."
1931
- msgstr "僅登入後可見。"
1932
-
1933
- #. @context: Ordered list item in the sample detail article
1934
- #: src/ui/pages/ThemeSamplePage.tsx
1935
- msgid "Open a few links and check whether they still feel native to the page."
1936
- msgstr "開啟幾個連結,檢查它們是否仍然與頁面原生風格相符。"
1937
-
1938
- #. @context: Accessible label for the external-link icon in the post footer
1939
- #: src/ui/shared/PostFooter.tsx
1940
- msgid "Open external link"
1941
- msgstr "打開外部連結"
1942
-
1943
- #. @context: Button label to open a raw brand asset in the browser
1944
- #: src/ui/pages/BrandPage.tsx
1945
- msgid "Open raw asset"
1946
- msgstr "開啟原始檔案"
1947
-
1948
- #. @context: Button label to open the raw PNG asset in the browser
1949
- #: src/ui/pages/BrandPage.tsx
1950
- msgid "Open raw PNG"
1951
- msgstr "開啟原始 PNG 檔案"
1952
-
1953
- #. @context: Button label to open the raw SVG asset in the browser
1954
- #: src/ui/pages/BrandPage.tsx
1955
- msgid "Open raw SVG"
1956
- msgstr "在瀏覽器中開啟原始 SVG"
1957
-
1958
- #. @context: Settings item description for the hosted delete-site entry in the account menu
1959
- #: src/ui/dash/settings/AccountMenuContent.tsx
1960
- msgid "Open the hosted site controls in {providerLabel} to cancel billing or permanently delete this site."
1961
- msgstr ""
1962
-
1963
- #. @context: Menu action to organize collections
1964
- #: src/ui/shared/CollectionsManager.tsx
1965
- msgid "Organize"
1966
- msgstr "整理"
1967
-
1968
- #. @context: Outline badge label on sample page
1969
- #: src/ui/pages/ThemeSamplePage.tsx
1970
- msgid "Outline"
1971
- msgstr "外框"
1972
-
1973
- #. @context: Settings item description for color theme
1974
- #: src/ui/dash/settings/SettingsRootContent.tsx
1975
- msgid "Palette, surface tone, and overall mood"
1976
- msgstr "調色盤、表面色調與整體氛圍"
1977
-
1978
- #. @context: Theme group description on color theme settings page
1979
- #: src/ui/dash/appearance/ColorThemeContent.tsx
1980
- msgid "Paper-first palettes with warmer surfaces and a softer, handwritten feel."
1981
- msgstr "以紙感為先的配色,介面更溫暖,也更有手寫感。"
1982
-
1983
- #. @context: Settings item — password settings
1984
- #. @context: Setup/signin form field - password
1985
- #. @context: Setup/signin form field - password
1986
- #: src/routes/auth/setup.tsx
1987
- #: src/routes/auth/signin.tsx
1988
- #: src/ui/dash/settings/AccountMenuContent.tsx
1989
- msgid "Password"
1990
- msgstr "密碼"
1991
-
1992
- #. @context: Toast after changing account password
1993
- #: src/routes/dash/settings.tsx
1994
- msgid "Password changed."
1995
- msgstr "密碼已變更."
1996
-
1997
- #. @context: Error shown when password changes are blocked in demo mode
1998
- #. @context: Error shown when password reset is blocked in demo mode
1999
- #: src/routes/auth/reset.tsx
2000
- #: src/routes/dash/settings.tsx
2001
- msgid "Password changes are off in demo mode. Sign in with the shared demo credentials."
2002
- msgstr "示範模式下不提供密碼變更。請使用共享的示範憑證登入。"
2003
-
2004
- #. @context: Error toast when new password and confirmation differ
2005
- #: src/routes/dash/settings.tsx
2006
- msgid "Passwords don't match. Make sure both fields are identical."
2007
- msgstr "密碼不相符. 請確保兩個欄位相同."
2008
-
2009
- #. @context: Attached text placeholder
2010
- #: src/ui/compose/ComposeDialog.tsx
2011
- msgid ""
2012
- "Paste a long article, AI response, or any text...\n"
2013
- "\n"
2014
- "Markdown formatting will be preserved."
2015
- msgstr ""
2016
- "貼上長文章、AI 回覆或任何文字...\n"
2017
- "\n"
2018
- "Markdown 格式會被保留."
2019
-
2020
- #. @context: Compose link URL placeholder
2021
- #: src/ui/compose/ComposeDialog.tsx
2022
- msgid "Paste a URL..."
2023
- msgstr "貼上網址..."
2024
-
2025
- #. @context: Custom URL form field
2026
- #: src/routes/dash/custom-urls.tsx
2027
- msgid "Path"
2028
- msgstr "路徑"
2029
-
2030
- #. @context: Settings item description for account deletion
2031
- #: src/ui/dash/settings/AccountMenuContent.tsx
2032
- msgid "Permanently delete all data and reset the blog"
2033
- msgstr "永久刪除所有資料並重設部落格"
2034
-
2035
- #. @context: Post badge - pinned
2036
- #: src/ui/dash/StatusBadge.tsx
2037
- msgid "Pinned"
2038
- msgstr "已釘選"
2039
-
2040
- #. @context: Compose button - publish post
2041
- #. @context: Custom URL target type badge for a post
2042
- #. @context: Custom URL type option
2043
- #: src/routes/dash/custom-urls.tsx
2044
- #: src/routes/dash/custom-urls.tsx
2045
- #: src/ui/compose/ComposeDialog.tsx
2046
- msgid "Post"
2047
- msgstr "發佈"
2048
-
2049
- #. @context: Compose dropdown option - publish post visible only when logged in
2050
- #: src/ui/compose/ComposeDialog.tsx
2051
- msgid "Post as Private"
2052
- msgstr "以私密方式發佈"
2053
-
2054
- #. @context: Compose publish button for posts hidden from Latest
2055
- #: src/ui/compose/ComposeDialog.tsx
2056
- msgid "Post hidden"
2057
- msgstr ""
2058
-
2059
- #. @context: Compose publish button for private visibility
2060
- #: src/ui/compose/ComposeDialog.tsx
2061
- msgid "Post privately"
2062
- msgstr "私密發布"
2063
-
2064
- #. @context: Hover hint for the homepage compose shortcut
2065
- #: src/ui/compose/ComposePrompt.tsx
2066
- msgid "Press N to write"
2067
- msgstr "按 N 開始寫作"
2068
-
2069
- #. @context: Ghost button label on sample page
2070
- #: src/ui/pages/ThemeSamplePage.tsx
2071
- msgid "Preview"
2072
- msgstr "預覽"
2073
-
2074
- #. @context: Pagination button - previous page
2075
- #. @context: Pagination button - previous page
2076
- #. @context: Pagination previous label on sample page
2077
- #: src/ui/pages/ThemeSamplePage.tsx
2078
- #: src/ui/shared/Pagination.tsx
2079
- #: src/ui/shared/Pagination.tsx
2080
- msgid "Previous"
2081
- msgstr "上一頁"
2082
-
2083
- #. @context: Token label on sample page
2084
- #: src/ui/pages/ThemeSamplePage.tsx
2085
- msgid "Primary"
2086
- msgstr "主色"
2087
-
2088
- #. @context: Table cell in the sample detail article
2089
- #: src/ui/pages/ThemeSamplePage.tsx
2090
- msgid "Primary button"
2091
- msgstr "主要按鈕"
2092
-
2093
- #. @context: Description for the default logo asset card
2094
- #: src/ui/pages/BrandPage.tsx
2095
- msgid "Primary Jant logo for websites, docs, press coverage, and editorial layouts."
2096
- msgstr "Jant 的主要標誌,用於網站、檔案、媒體報導與編輯版面。"
2097
-
2098
- #. @context: Section title for the logo downloads section
2099
- #: src/ui/pages/BrandPage.tsx
2100
- msgid "Primary logo files"
2101
- msgstr "主要標誌檔案"
2102
-
2103
- #. @context: Archive visibility filter - private posts
2104
- #. @context: Compose publish settings visibility option
2105
- #: src/ui/compose/ComposeDialog.tsx
2106
- #: src/ui/pages/ArchivePage.tsx
2107
- msgid "Private"
2108
- msgstr "私密"
2109
-
2110
- #. @context: Avatar upload button text while generating favicon variants
2111
- #: src/ui/dash/settings/AvatarContent.tsx
2112
- msgid "Processing..."
2113
- msgstr "處理中..."
2114
-
2115
- #. @context: Archive visibility filter - public posts
2116
- #. @context: Compose publish settings visibility option
2117
- #: src/ui/compose/ComposeDialog.tsx
2118
- #: src/ui/pages/ArchivePage.tsx
2119
- msgid "Public"
2120
- msgstr "公開"
2121
-
2122
- #. @context: Confirm close action sheet - publish update button for editing published post
2123
- #. @context: Primary button label on sample page
2124
- #: src/ui/compose/ComposeDialog.tsx
2125
- #: src/ui/pages/ThemeSamplePage.tsx
2126
- msgid "Publish"
2127
- msgstr "發布"
2128
-
2129
- #. @context: Compose publish settings panel title
2130
- #: src/ui/compose/ComposeDialog.tsx
2131
- msgid "Publish settings"
2132
- msgstr "發布設定"
2133
-
2134
- #. @context: Post status badge - published
2135
- #: src/ui/dash/StatusBadge.tsx
2136
- msgid "Published"
2137
- msgstr "已發佈"
2138
-
2139
- #. @context: Tooltip text for the archive tile published timestamp
2140
- #. @context: Tooltip text for the published timestamp in the post footer
2141
- #: src/ui/pages/ArchivePage.tsx
2142
- #: src/ui/shared/PostFooter.tsx
2143
- msgid "Published on {date} at {time}"
2144
- msgstr "發佈於 {date} {time}"
2145
-
2146
- #. @context: Toast shown after successful deferred publish
2147
- #: src/ui/compose/ComposeDialog.tsx
2148
- msgid "Published!"
2149
- msgstr "已發佈!"
2150
-
2151
- #. @context: Search highlight text on sample page
2152
- #: src/ui/pages/ThemeSamplePage.tsx
2153
- msgid "quiet design"
2154
- msgstr "低調設計"
2155
-
2156
- #. @context: Muted sample label
2157
- #: src/ui/pages/ThemeSamplePage.tsx
2158
- msgid "Quiet metadata"
2159
- msgstr "低調中繼資料"
2160
-
2161
- #. @context: Theme group heading on color theme settings page
2162
- #: src/ui/dash/appearance/ColorThemeContent.tsx
2163
- msgid "Quiet Neutral"
2164
- msgstr "克制中性色"
2165
-
2166
- #. @context: Color theme preview card secondary sentence
2167
- #: src/ui/dash/appearance/ColorThemeContent.tsx
2168
- msgid "Quiet surfaces let writing lead."
2169
- msgstr "安靜的介面應讓文字先說話。"
2170
-
2171
- #. @context: Compose format tab
2172
- #. @context: Post format badge - quote
2173
- #. @context: Post format label - quote
2174
- #: src/ui/compose/ComposeDialog.tsx
2175
- #: src/ui/dash/FormatBadge.tsx
2176
- #: src/ui/pages/ArchivePage.tsx
2177
- msgid "Quote"
2178
- msgstr "引用"
2179
-
2180
- #. @context: Bullet item in the sample detail article
2181
- #: src/ui/pages/ThemeSamplePage.tsx
2182
- msgid "Quoted or highlighted passages should feel like annotations, not warnings."
2183
- msgstr "引用或凸顯的段落應該感覺像註解,而不是警告。"
2184
-
2185
- #. @context: Post format label plural - quotes
2186
- #: src/ui/pages/ArchivePage.tsx
2187
- msgid "Quotes"
2188
- msgstr "引用"
2189
-
2190
- #. @context: Compose toolbar - rate tooltip
2191
- #: src/ui/compose/ComposeDialog.tsx
2192
- msgid "Rate"
2193
- msgstr "評分"
2194
-
2195
- #. @context: Ordered list item in the sample detail article
2196
- #: src/ui/pages/ThemeSamplePage.tsx
2197
- msgid "Read the page from top to bottom without looking at the swatches."
2198
- msgstr "從上到下閱讀頁面,勿查看色票。"
2199
-
2200
- #. @context: Inline link label on sample page
2201
- #: src/ui/pages/ThemeSamplePage.tsx
2202
- msgid "Read the palette as content first"
2203
- msgstr "先將色盤當作內容來閱讀"
2204
-
2205
- #. @context: Color theme preview inline link label
2206
- #: src/ui/dash/appearance/ColorThemeContent.tsx
2207
- msgid "Read why"
2208
- msgstr "了解原因"
2209
-
2210
- #. @context: Collection tag on sample quote post
2211
- #: src/ui/pages/ThemeSamplePage.tsx
2212
- msgid "Reading"
2213
- msgstr "閱讀"
2214
-
2215
- #. @context: Section heading for real post component samples on the theme sample page
2216
- #: src/ui/pages/ThemeSamplePage.tsx
2217
- msgid "Real post components"
2218
- msgstr "實際文章元件"
2219
-
2220
- #. @context: Custom URL target type badge for a redirect
2221
- #. @context: Custom URL type option
2222
- #: src/routes/dash/custom-urls.tsx
2223
- #: src/routes/dash/custom-urls.tsx
2224
- msgid "Redirect"
2225
- msgstr "重新導向"
2226
-
2227
- #. @context: Redirect type field
2228
- #: src/routes/dash/custom-urls.tsx
2229
- msgid "Redirect Type"
2230
- msgstr "重新導向類型"
2231
-
2232
- #. @context: Settings item description for custom URLs
2233
- #: src/ui/dash/settings/SettingsRootContent.tsx
2234
- msgid "Redirects, vanity paths, and URL control"
2235
- msgstr "重新導向、自訂路徑與 URL 控制"
2236
-
2237
- #. @context: Collection tag on sample link post
2238
- #: src/ui/pages/ThemeSamplePage.tsx
2239
- msgid "References"
2240
- msgstr "參考資料"
2241
-
2242
- #. @context: Button to remove the blog avatar
2243
- #. @context: Remove system item from navigation
2244
- #: src/ui/dash/appearance/NavigationContent.tsx
2245
- #: src/ui/dash/settings/AvatarContent.tsx
2246
- msgid "Remove"
2247
- msgstr "移除"
2248
-
2249
- #. @context: Button to remove an uploaded attachment in compose
2250
- #: src/ui/compose/ComposeDialog.tsx
2251
- msgid "Remove attachment"
2252
- msgstr ""
2253
-
2254
- #. @context: Tooltip for divider delete button
2255
- #: src/ui/shared/CollectionsManager.tsx
2256
- msgid "Remove Divider"
2257
- msgstr "移除分隔線"
2258
-
2259
- #. @context: Archive tile label for multiple thread replies
2260
- #: src/ui/pages/ArchivePage.tsx
2261
- msgid "Replies"
2262
- msgstr "則回覆"
2263
-
2264
- #. @context: Archive tile label for a single thread reply
2265
- #. @context: Compose button - reply to post
2266
- #. @context: Reply button label in the post footer
2267
- #: src/ui/compose/ComposeDialog.tsx
2268
- #: src/ui/pages/ArchivePage.tsx
2269
- #: src/ui/shared/PostFooter.tsx
2270
- msgid "Reply"
2271
- msgstr "回覆"
2272
-
2273
- #. @context: Button to restore the automatically generated collection link from the title
2274
- #. @context: Compose custom slug action that clears the manual slug and falls back to automatic generation
2275
- #: src/ui/compose/ComposeDialog.tsx
2276
- #: src/ui/shared/collection-management-labels.ts
2277
- msgid "Reset link"
2278
- msgstr "重設連結"
2279
-
2280
- #. @context: Password reset form submit button
2281
- #. @context: Password reset page heading
2282
- #: src/routes/auth/reset.tsx
2283
- #: src/routes/auth/reset.tsx
2284
- msgid "Reset Password"
2285
- msgstr "重設密碼"
2286
-
2287
- #. @context: Asset keyword on the public brand asset page
2288
- #. @context: Title for the reverse logo asset card
2289
- #. @context: Title for the reverse logo card
2290
- #. @context: Title for the reverse logo card
2291
- #: src/ui/pages/BrandPage.tsx
2292
- #: src/ui/pages/BrandPage.tsx
2293
- #: src/ui/pages/BrandPage.tsx
2294
- #: src/ui/pages/BrandPage.tsx
2295
- msgid "Reverse logo"
2296
- msgstr "反白標誌"
2297
-
2298
- #. @context: Button to revoke API token
2299
- #. @context: Button to revoke a session
2300
- #: src/ui/dash/settings/ApiTokensContent.tsx
2301
- #: src/ui/dash/settings/SessionsContent.tsx
2302
- msgid "Revoke"
2303
- msgstr "撤銷"
2304
-
2305
- #. @context: Confirm dialog for revoking API token
2306
- #: src/ui/dash/settings/ApiTokensContent.tsx
2307
- msgid "Revoke this token? Any scripts using it will stop working."
2308
- msgstr "撤銷此權杖?任何使用它的腳本將會停止運作。"
2309
-
2310
- #. @context: Button to save collection
2311
- #. @context: Button to save settings
2312
- #. @context: Button to save settings changes
2313
- #. @context: Confirm action sheet - save text attachment changes button
2314
- #. @context: Confirm close action sheet - save draft button
2315
- #. @context: Save nav item changes
2316
- #: src/ui/compose/ComposeDialog.tsx
2317
- #: src/ui/compose/ComposeDialog.tsx
2318
- #: src/ui/dash/appearance/NavigationContent.tsx
2319
- #: src/ui/dash/settings/AvatarContent.tsx
2320
- #: src/ui/dash/settings/GeneralContent.tsx
2321
- #: src/ui/shared/collection-management-labels.ts
2322
- msgid "Save"
2323
- msgstr "儲存"
2324
-
2325
- #. @context: More menu - save draft
2326
- #: src/ui/compose/ComposeDialog.tsx
2327
- msgid "Save as draft"
2328
- msgstr "儲存為草稿"
2329
-
2330
- #. @context: Header draft button tooltip
2331
- #: src/ui/compose/ComposeDialog.tsx
2332
- msgid "Save as Draft"
2333
- msgstr "儲存為草稿"
2334
-
2335
- #. @context: Button to save custom CSS
2336
- #: src/ui/dash/appearance/AdvancedContent.tsx
2337
- msgid "Save CSS"
2338
- msgstr "儲存 CSS"
2339
-
2340
- #. @context: Secondary button label on sample page
2341
- #: src/ui/pages/ThemeSamplePage.tsx
2342
- msgid "Save draft"
2343
- msgstr "儲存草稿"
2344
-
2345
- #. @context: Confirm action sheet title when closing text attachment editor
2346
- #: src/ui/compose/ComposeDialog.tsx
2347
- msgid "Save text attachment?"
2348
- msgstr "儲存文字附件?"
2349
-
2350
- #. @context: Filled primary button label
2351
- #: src/ui/pages/ThemeSamplePage.tsx
2352
- msgid "Save theme"
2353
- msgstr "儲存主題"
2354
-
2355
- #. @context: Confirm action sheet subtitle when closing text attachment editor
2356
- #: src/ui/compose/ComposeDialog.tsx
2357
- msgid "Save these changes to the text attachment, discard them, or keep editing."
2358
- msgstr "儲存對文字附件的變更、不儲存,或繼續編輯。"
2359
-
2360
- #. @context: Confirm close action sheet subtitle
2361
- #: src/ui/compose/ComposeDialog.tsx
2362
- msgid "Save to drafts to edit and post at a later time."
2363
- msgstr "儲存到草稿,稍後可編輯並發佈。"
2364
-
2365
- #. @context: Confirm close action sheet title
2366
- #: src/ui/compose/ComposeDialog.tsx
2367
- msgid "Save to drafts?"
2368
- msgstr "要儲存為草稿嗎?"
2369
-
2370
- #. @context: Search icon link in browse nav
2371
- #. @context: Search page title
2372
- #. @context: Search submit button
2373
- #. @context: Settings section heading for search engine indexing settings
2374
- #: src/ui/dash/settings/GeneralContent.tsx
2375
- #: src/ui/layouts/SiteLayout.tsx
2376
- #: src/ui/pages/SearchPage.tsx
2377
- #: src/ui/pages/SearchPage.tsx
2378
- msgid "Search"
2379
- msgstr "搜尋"
2380
-
2381
- #. @context: Search input placeholder
2382
- #: src/ui/pages/SearchPage.tsx
2383
- msgid "Search posts..."
2384
- msgstr "搜尋文章..."
2385
-
2386
- #. @context: Toast after saving search settings
2387
- #. @context: Toast after saving search settings
2388
- #: src/routes/dash/settings.tsx
2389
- #: src/routes/dash/settings.tsx
2390
- msgid "Search settings updated."
2391
- msgstr "搜尋設定已更新。"
2392
-
2393
- #. @context: Search snippet label on sample page
2394
- #: src/ui/pages/ThemeSamplePage.tsx
2395
- msgid "Search snippet"
2396
- msgstr "搜尋片段"
2397
-
2398
- #. @context: Compose collection combobox search placeholder
2399
- #: src/ui/compose/ComposeDialog.tsx
2400
- msgid "Search..."
2401
- msgstr "搜尋..."
2402
-
2403
- #. @context: Settings group label for account security settings
2404
- #: src/ui/dash/settings/AccountMenuContent.tsx
2405
- msgid "Security"
2406
- msgstr "安全性"
2407
-
2408
- #. @context: Error toast when CSRF token is invalid or expired
2409
- #: src/routes/dash/settings.tsx
2410
- msgid "Security token expired. Refresh the page and try again."
2411
- msgstr "安全權杖已過期。請重新整理頁面後再試一次。"
2412
-
2413
- #. @context: Error toast when CSRF token is missing from delete request
2414
- #: src/routes/dash/settings.tsx
2415
- msgid "Security token missing. Refresh the page and try again."
2416
- msgstr "找不到安全權杖。請重新整理頁面後再試一次。"
2417
-
2418
- #. @context: Settings item description for sessions
2419
- #: src/ui/dash/settings/AccountMenuContent.tsx
2420
- msgid "See where you're signed in and revoke old sessions"
2421
- msgstr "查看您在哪裡已登入並終止舊的登入會話"
2422
-
2423
- #. @context: Error shown when session management is blocked in demo mode
2424
- #: src/routes/dash/settings.tsx
2425
- msgid "Session management is off in demo mode. Use the shared demo session instead."
2426
- msgstr "示範模式下不提供工作階段管理。請直接使用共享示範工作階段。"
2427
-
2428
- #. @context: Settings item — session management
2429
- #: src/ui/dash/settings/AccountMenuContent.tsx
2430
- msgid "Sessions"
2431
- msgstr "工作階段"
2432
-
2433
- #. @context: Settings item description for account settings on the settings home page
2434
- #: src/ui/dash/settings/SettingsRootContent.tsx
2435
- msgid "Sessions, password, export"
2436
- msgstr "工作階段、密碼與匯出"
2437
-
2438
- #. @context: Built-in navigation label for settings
2439
- #. @context: Page title for the settings home page
2440
- #: src/ui/dash/settings/SettingsRootContent.tsx
2441
- #: src/ui/shared/navigation-labels.ts
2442
- msgid "Settings"
2443
- msgstr "設定"
2444
-
2445
- #. @context: Usage label for the social preview image asset card
2446
- #: src/ui/pages/BrandPage.tsx
2447
- msgid "Shared links"
2448
- msgstr "已分享的連結"
2449
-
2450
- #. @context: Checkbox for showing the optional Jant credit link on the home page
2451
- #: src/ui/dash/settings/GeneralContent.tsx
2452
- msgid "Show \"Build with Jant\" at the bottom of the home page"
2453
- msgstr "在首頁底部顯示「Build with Jant」"
2454
-
2455
- #. @context: Button to collapse expanded thread context
2456
- #. @context: Collapse reply context
2457
- #: src/ui/compose/ComposeDialog.tsx
2458
- #: src/ui/feed/ThreadPreview.tsx
2459
- msgid "Show less"
2460
- msgstr "顯示較少"
2461
-
2462
- #. @context: Button to expand faded thread context
2463
- #. @context: Expand reply context
2464
- #: src/ui/compose/ComposeDialog.tsx
2465
- #: src/ui/feed/ThreadPreview.tsx
2466
- msgid "Show more"
2467
- msgstr "顯示更多"
2468
-
2469
- #. @context: Description for the settings system navigation toggle
2470
- #: src/ui/shared/navigation-labels.ts
2471
- msgid "Shows 'Settings' when logged in, 'Sign in' when logged out"
2472
- msgstr "登入時顯示「設定」,未登入時顯示「登入」"
2473
-
2474
- #. @context: Built-in navigation label shown when auth is required
2475
- #: src/ui/shared/navigation-labels.ts
2476
- msgid "Sign in"
2477
- msgstr "登入"
2478
-
2479
- #. @context: Sign in form submit button
2480
- #. @context: Sign in page heading
2481
- #. @context: Sign in page heading
2482
- #: src/routes/auth/signin.tsx
2483
- #: src/routes/auth/signin.tsx
2484
- #: src/routes/auth/signin.tsx
2485
- msgid "Sign In"
2486
- msgstr "登入"
2487
-
2488
- #. @context: Settings link — sign out action
2489
- #: src/ui/dash/settings/SettingsRootContent.tsx
2490
- msgid "Sign Out"
2491
- msgstr "登出"
2492
-
2493
- #. @context: Session creation date
2494
- #. placeholder {0}: formatDate(session.createdAt)
2495
- #: src/ui/dash/settings/SessionsContent.tsx
2496
- msgid "Signed in {0}"
2497
- msgstr "已於 {0} 登入"
2498
-
2499
- #. @context: Settings group label for site settings
2500
- #. @context: Settings subsection heading for basic site fields
2501
- #: src/ui/dash/settings/GeneralContent.tsx
2502
- #: src/ui/dash/settings/SettingsRootContent.tsx
2503
- msgid "Site"
2504
- msgstr "網站"
2505
-
2506
- #. @context: Token label on sample page
2507
- #: src/ui/pages/ThemeSamplePage.tsx
2508
- msgid "Site accent"
2509
- msgstr "網站強調色"
2510
-
2511
- #. @context: Settings section heading for site footer
2512
- #: src/ui/dash/settings/GeneralContent.tsx
2513
- msgid "Site Footer"
2514
- msgstr "網站頁尾"
2515
-
2516
- #. @context: Settings form field
2517
- #. @context: Setup form field - site name
2518
- #: src/routes/auth/setup.tsx
2519
- #: src/ui/dash/settings/GeneralContent.tsx
2520
- msgid "Site Name"
2521
- msgstr "網站名稱"
2522
-
2523
- #. @context: Toast after saving site settings
2524
- #: src/routes/dash/settings.tsx
2525
- msgid "Site settings updated."
2526
- msgstr "網站設定已更新。"
2527
-
2528
- #. @context: Description for the favicon asset card
2529
- #: src/ui/pages/BrandPage.tsx
2530
- msgid "Small browser icon used in tabs and bookmarks."
2531
- msgstr "用於分頁與書籤的小型瀏覽器圖示。"
2532
-
2533
- #. @context: Asset keyword on the public brand asset page
2534
- #: src/ui/pages/BrandPage.tsx
2535
- msgid "Social preview"
2536
- msgstr "社群預覽"
2537
-
2538
- #. @context: Title for the social preview image asset card
2539
- #: src/ui/pages/BrandPage.tsx
2540
- msgid "Social preview image"
2541
- msgstr "社群預覽圖片"
2542
-
2543
- #. @context: Color theme preview card body sentence
2544
- #: src/ui/dash/appearance/ColorThemeContent.tsx
2545
- msgid "Soft color should still carry a clear reading rhythm."
2546
- msgstr "柔和的顏色也該保有清晰的閱讀節奏。"
2547
-
2548
- #. @context: Toast when uploads fail and post is auto-saved as draft
2549
- #: src/ui/compose/ComposeDialog.tsx
2550
- msgid "Some uploads failed. Saved as draft."
2551
- msgstr "部分上傳失敗。已儲存為草稿。"
2552
-
2553
- #. @context: Fallback validation error for compose form
2554
- #. @context: Fallback validation error for password reset form
2555
- #. @context: Fallback validation error for setup form
2556
- #. @context: Fallback validation error for sign-in form
2557
- #: src/routes/auth/reset.tsx
2558
- #: src/routes/auth/setup.tsx
2559
- #: src/routes/auth/signin.tsx
2560
- #: src/routes/compose.tsx
2561
- msgid "Something doesn't look right. Check the form and try again."
2562
- msgstr "有些地方看起來不對。請檢查表單並再試一次。"
2563
-
2564
- #. @context: Sort menu label on collection detail page
2565
- #: src/ui/pages/CollectionPage.tsx
2566
- msgid "Sort"
2567
- msgstr "排序"
2568
-
2569
- #. @context: Collection form field
2570
- #: src/ui/shared/collection-management-labels.ts
2571
- msgid "Sort Order"
2572
- msgstr "排序方式"
2573
-
2574
- #. @context: Compose quote source link placeholder
2575
- #: src/ui/compose/ComposeDialog.tsx
2576
- msgid "Source link (optional)"
2577
- msgstr "來源連結(選填)"
2578
-
2579
- #. @context: Section title for the icon and preview downloads section
2580
- #: src/ui/pages/BrandPage.tsx
2581
- msgid "Square assets for avatars, apps, browsers, and shared links"
2582
- msgstr "方形資產,用於頭像、應用程式、瀏覽器和分享連結"
2583
-
2584
- #. @context: Asset keyword on the public brand asset page
2585
- #: src/ui/pages/BrandPage.tsx
2586
- msgid "Square logo"
2587
- msgstr "方形標誌"
2588
-
2589
- #. @context: Title for the square logo PNG asset card
2590
- #: src/ui/pages/BrandPage.tsx
2591
- msgid "Square logo PNG"
2592
- msgstr "方形標誌 PNG"
2593
-
2594
- #. @context: Title for the square tile asset card
2595
- #: src/ui/pages/BrandPage.tsx
2596
- msgid "Square tile"
2597
- msgstr "方形磁貼"
2598
-
2599
- #. @context: Heading for the quick-start panel on the brand asset page
2600
- #: src/ui/pages/BrandPage.tsx
2601
- msgid "Start here"
2602
- msgstr "從這裡開始"
2603
-
2604
- #. @context: Table cell in the sample detail article
2605
- #: src/ui/pages/ThemeSamplePage.tsx
2606
- msgid "Stay sturdy and readable."
2607
- msgstr "保持穩健且易讀."
2608
-
2609
- #. @context: Compose custom slug helper label for the suggested slug
2610
- #: src/ui/compose/ComposeDialog.tsx
2611
- msgid "Suggested link"
2612
- msgstr "建議連結"
2613
-
2614
- #. @context: Textarea label on sample page
2615
- #: src/ui/pages/ThemeSamplePage.tsx
2616
- msgid "Summary"
2617
- msgstr "摘要"
2618
-
2619
- #. @context: Attached text panel hint
2620
- #: src/ui/compose/ComposeDialog.tsx
2621
- msgid "Supplementary content attached to your post"
2622
- msgstr "附加於您的貼文的補充內容"
2623
-
2624
- #. @context: Table header in the sample detail article
2625
- #: src/ui/pages/ThemeSamplePage.tsx
2626
- msgid "Surface"
2627
- msgstr "表面"
2628
-
2629
- #. @context: Helper text for theme picker pills on the sample page
2630
- #: src/ui/pages/ThemeSamplePage.tsx
2631
- msgid "Switch the palette and mode without opening settings or changing the active site theme."
2632
- msgstr "切換色盤與模式,無需開啟設定或變更啟用中的網站主題。"
2633
-
2634
- #. @context: Guidance body on the brand asset page
2635
- #: src/ui/pages/BrandPage.tsx
2636
- msgid "Switch to the white logo when the standard green version would lose contrast."
2637
- msgstr "在標準綠色版本對比度不足時,改用白色標誌。"
2638
-
2639
- #. @context: Nav item type badge
2640
- #: src/ui/dash/appearance/NavigationContent.tsx
2641
- msgid "system"
2642
- msgstr "系統"
2643
-
2644
- #. @context: Section heading for system nav items
2645
- #: src/ui/dash/appearance/NavigationContent.tsx
2646
- msgid "System links"
2647
- msgstr "系統連結"
2648
-
2649
- #. @context: Label on failed upload overlay button, tells user tapping retries the upload
2650
- #: src/ui/compose/ComposeDialog.tsx
2651
- msgid "Tap to retry"
2652
- msgstr "輕觸以重試"
2653
-
2654
- #. @context: Custom URL target slug field
2655
- #: src/routes/dash/custom-urls.tsx
2656
- msgid "Target Slug"
2657
- msgstr "目標網址別名"
2658
-
2659
- #. @context: Archive media filter - posts without any media attachments
2660
- #. @context: Archive media filter - posts without any media attachments
2661
- #: src/ui/pages/ArchivePage.tsx
2662
- #: src/ui/pages/ArchivePage.tsx
2663
- msgid "Text"
2664
- msgstr "文字"
2665
-
2666
- #. @context: Archive media filter - text file attachments
2667
- #. @context: Attached text panel title
2668
- #: src/ui/compose/ComposeDialog.tsx
2669
- #: src/ui/pages/ArchivePage.tsx
2670
- msgid "Text attachment"
2671
- msgstr "文字附件"
2672
-
2673
- #. @context: Error toast when selected font theme is not valid
2674
- #: src/routes/dash/settings.tsx
2675
- msgid "That font theme isn't available. Pick another one."
2676
- msgstr "該字型主題不可用。請選擇其他一個。"
2677
-
2678
- #. @context: Error toast when selected theme is not valid
2679
- #: src/routes/dash/settings.tsx
2680
- msgid "That theme isn't available. Pick another one."
2681
- msgstr "該主題不可用。請選擇其他主題。"
2682
-
2683
- #. @context: Blockquote in the sample detail article
2684
- #: src/ui/pages/ThemeSamplePage.tsx
2685
- msgid "The best default color is the one you notice only after reading for a while."
2686
- msgstr "最好的預設顏色是那種只有閱讀一段時間後才會注意到的顏色。"
2687
-
2688
- #. @context: Intro copy for the quick-start panel on the brand asset page
2689
- #: src/ui/pages/BrandPage.tsx
2690
- msgid "The brand pack includes SVG logos, a transparent square PNG, rounded, square, and circle tiles, plus favicon, Apple touch icon, and the default social preview image."
2691
- msgstr "品牌套件包含 SVG 標誌、透明方形 PNG、圓角、方形與圓形圖塊、favicon、Apple touch icon,以及預設的社交預覽圖片。"
2692
-
2693
- #. @context: Custom URL path help text
2694
- #: src/routes/dash/custom-urls.tsx
2695
- msgid "The custom URL path (without leading slash)"
2696
- msgstr "自訂 URL 路徑(不含前導斜線)"
2697
-
2698
- #. @context: Plain-text body fallback for the sample note post
2699
- #: src/ui/pages/ThemeSamplePage.tsx
2700
- msgid "The default accent should feel written, not branded."
2701
- msgstr "預設的重點應有書寫感,而非品牌化"
2702
-
2703
- #. @context: Sample note summary prefix on the theme sample page
2704
- #: src/ui/pages/ThemeSamplePage.tsx
2705
- msgid "The default accent should support reading first. Start by comparing it against the"
2706
- msgstr "預設強調色應優先支援閱讀. 先比較它與 the"
2707
-
2708
- #. @context: Sample note post body prefix on the theme sample page
2709
- #: src/ui/pages/ThemeSamplePage.tsx
2710
- msgid "The default accent works best when it reads like a fountain-pen underline. Compare it against the"
2711
- msgstr "預設的強調色在看起來像鋼筆底線時最為合適。將它與下列比較"
2712
-
2713
- #. @context: Caption for the sample detail article image
2714
- #: src/ui/pages/ThemeSamplePage.tsx
2715
- msgid "The image should sit quietly inside the article instead of feeling like a card preview."
2716
- msgstr "圖片應該安靜地置於文章中,而不是讓人感覺像卡片預覽。"
2717
-
2718
- #. @context: Description for max visible nav links, explains overflow behavior
2719
- #: src/ui/dash/appearance/NavigationContent.tsx
2720
- msgid "The rest will be tucked into a ··· menu"
2721
- msgstr "其餘項目會被收納到 ··· 選單"
2722
-
2723
- #. @context: Blockquote on the theme sample page
2724
- #: src/ui/pages/ThemeSamplePage.tsx
2725
- msgid "The right accent should disappear into the writing until you need it."
2726
- msgstr "恰到好處的裝飾應融入文字,直到需要時才顯現。"
2727
-
2728
- #. @context: Custom URL target slug help text
2729
- #: src/routes/dash/custom-urls.tsx
2730
- msgid "The slug of the target post or collection"
2731
- msgstr "目標貼文或選集的 URL slug"
2732
-
2733
- #. @context: Section heading for theme picker pills
2734
- #: src/ui/pages/ThemeSamplePage.tsx
2735
- msgid "Theme"
2736
- msgstr "主題"
2737
-
2738
- #. @context: Browser page title for the public theme sample page
2739
- #. @context: Eyebrow on the public theme sample page
2740
- #: src/routes/pages/theme-sample.tsx
2741
- #: src/ui/pages/ThemeSamplePage.tsx
2742
- msgid "Theme sample"
2743
- msgstr "主題範例"
2744
-
2745
- #. @context: Fallback theme group description on color theme page
2746
- #: src/ui/dash/appearance/ColorThemeContent.tsx
2747
- msgid "Themes that have not been assigned to a named group yet."
2748
- msgstr "尚未歸入已命名分組的主題。"
2749
-
2750
- #. @context: Link to theming documentation on Custom CSS page
2751
- #: src/ui/dash/appearance/AdvancedContent.tsx
2752
- msgid "Theming guide"
2753
- msgstr "主題指南"
2754
-
2755
- #. @context: Helper text for the real post component section on the theme sample page
2756
- #: src/ui/pages/ThemeSamplePage.tsx
2757
- msgid "These are actual feed components with real footers, summaries, and inline links. Use this section to judge whether the theme still feels calm once it is applied to realistic content."
2758
- msgstr "這些是真正的動態內容元件,具有實際的頁腳、摘要與行內連結。請使用此區段來判斷主題套用到實際內容後是否仍然感覺沉穩。"
2759
-
2760
- #. @context: Description for session management
2761
- #: src/ui/dash/settings/SessionsContent.tsx
2762
- msgid "These devices are currently signed in to your account. Revoke any session you don't recognize."
2763
- msgstr "這些裝置目前已登入您的帳戶。撤銷任何您不認識的工作階段。"
2764
-
2765
- #. @context: Opening paragraph on the sample detail article
2766
- #: src/ui/pages/ThemeSamplePage.tsx
2767
- msgid "This article is here to answer a specific question: does the default accent still feel calm once it has to carry a full reading experience?"
2768
- msgstr "這篇文章想回答一個具體問題:當預設強調色要撐起一整段閱讀體驗時,它是否依然足夠平靜?"
2769
-
2770
- #. @context: Empty state message
2771
- #: src/ui/pages/CollectionPage.tsx
2772
- msgid "This collection is empty. Add posts from the editor."
2773
- msgstr "此選集為空。請從編輯器新增貼文。"
2774
-
2775
- #. @context: Help text for choosing whether /feed points to latest or featured posts
2776
- #: src/ui/dash/settings/GeneralContent.tsx
2777
- msgid "This controls what /feed returns."
2778
- msgstr "這會控制 /feed 要回傳哪一種 feed。"
2779
-
2780
- #. @context: Notice shown on hosted account settings explaining that password and hosted account controls live in the connected hosted auth provider
2781
- #: src/ui/dash/settings/AccountMenuContent.tsx
2782
- msgid "This hosted site signs in through {providerLabel}. Manage password and hosted access there."
2783
- msgstr "這個託管站點透過 {providerLabel} 登入。在那裡管理密碼和託管站點存取權限。"
2784
-
2785
- #. @context: Collection link help text
2786
- #: src/ui/shared/collection-management-labels.ts
2787
- msgid "This is the last part of the collection link."
2788
- msgstr "這是選集連結的最後一段。"
2789
-
2790
- #. @context: Help text for avatar upload
2791
- #: src/ui/dash/settings/AvatarContent.tsx
2792
- 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."
2793
- msgstr "這會用於你的 favicon 和 apple-touch-icon。為達最佳效果,請上傳至少 512×512 像素、帶純色背景的正方形 PNG 圖片。"
2794
-
2795
- #. @context: Sample quote commentary prefix on the theme sample page
2796
- #: src/ui/pages/ThemeSamplePage.tsx
2797
- msgid "This is useful as a color check because it puts the accent next to quotation styling, metadata, and a quieter explanatory paragraph. Compare it back to the"
2798
- msgstr "這在檢查顏色時很有用,因為它把重點色放在引文樣式、摘要資料和較為低調的解釋段落旁。將它和原先的比較"
2799
-
2800
- #. @context: Password reset error heading
2801
- #: src/routes/auth/reset.tsx
2802
- msgid "This Link Has Expired"
2803
- msgstr "此連結已過期"
2804
-
2805
- #. @context: Compose custom slug validation error when the entered slug is already taken
2806
- #: src/ui/compose/ComposeDialog.tsx
2807
- msgid "This link is already in use. Choose something else."
2808
- msgstr "這個連結已被佔用。換一個試試。"
2809
-
2810
- #. @context: Collection slug validation error for reserved paths
2811
- #. @context: Compose custom slug validation error for reserved paths
2812
- #: src/ui/compose/ComposeDialog.tsx
2813
- #: src/ui/shared/collection-management-labels.ts
2814
- msgid "This link is reserved. Choose something else."
2815
- msgstr "這個連結是保留位址,請換一個。"
2816
-
2817
- #. @context: Sample link post body prefix on the theme sample page
2818
- #: src/ui/pages/ThemeSamplePage.tsx
2819
- msgid "This reference is useful because it treats links and citations as part of the reading rhythm. Keep that in mind while tuning the"
2820
- msgstr "此參考很有用,因為它將連結與引文視為閱讀節奏的一部分。 在調整時請記住這一點"
2821
-
2822
- #. @context: Password reset error description
2823
- #: src/routes/auth/reset.tsx
2824
- msgid "This reset link is no longer valid. Request a new one to continue."
2825
- msgstr "此重設連結已不再有效。請申請新的連結以繼續。"
2826
-
2827
- #. @context: Error shown when a hosted upload would exceed the shared account media limit
2828
- #. @context: Error shown when a hosted upload would exceed the shared account media limit
2829
- #: src/routes/api/upload-multipart.ts
2830
- #: src/routes/api/upload.ts
2831
- msgid "This upload would exceed your shared hosted media limit. Remove files or upgrade storage to continue."
2832
- msgstr ""
2833
-
2834
- #. @context: Helper text for the detail article sample on the theme sample page
2835
- #: src/ui/pages/ThemeSamplePage.tsx
2836
- msgid "This uses the real single-post detail rendering with a longer article, inline image, tables, lists, quotes, and code. The content column stays at the same width as the live site."
2837
- msgstr "這會使用真實的單篇文章詳細呈現,示例包含較長的文章、內嵌圖片、表格、列表、引用和程式碼。內容欄位維持與正式網站相同的寬度。"
2838
-
2839
- #. @context: Warning text on account deletion page
2840
- #: src/ui/dash/settings/DeleteAccountContent.tsx
2841
- msgid "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."
2842
- msgstr "這將永久刪除你所有的資料 — 文章、媒體檔案、選集、設定,以及你的帳戶。你的部落格將會重設為初始設定狀態。此操作無法復原。"
2843
-
2844
- #. @context: Archive month header count unit for a single thread
2845
- #. @context: Archive page summary unit for a single matching thread
2846
- #. @context: Singular thread count label on collection detail page
2847
- #: src/ui/pages/ArchivePage.tsx
2848
- #: src/ui/pages/ArchivePage.tsx
2849
- #: src/ui/pages/CollectionPage.tsx
2850
- msgid "thread"
2851
- msgstr "個貼文串"
2852
-
2853
- #. @context: Table cell in the sample detail article
2854
- #: src/ui/pages/ThemeSamplePage.tsx
2855
- msgid "Thread accent"
2856
- msgstr "貼文串 強調色"
2857
-
2858
- #. @context: Thread accents section heading on sample page
2859
- #: src/ui/pages/ThemeSamplePage.tsx
2860
- msgid "Thread accents"
2861
- msgstr "貼文串 強調色"
2862
-
2863
- #. @context: Archive month header count unit for multiple threads
2864
- #. @context: Archive page summary unit for multiple matching threads
2865
- #. @context: Plural thread count label on collection detail page
2866
- #: src/ui/pages/ArchivePage.tsx
2867
- #: src/ui/pages/ArchivePage.tsx
2868
- #: src/ui/pages/CollectionPage.tsx
2869
- msgid "threads"
2870
- msgstr "個貼文串"
2871
-
2872
- #. @context: Settings form field
2873
- #: src/ui/dash/settings/GeneralContent.tsx
2874
- msgid "Time Zone"
2875
- msgstr "時區"
2876
-
2877
- #. @context: Collection form field
2878
- #. @context: Compose note title placeholder
2879
- #. @context: Compose toolbar - title tooltip
2880
- #. @context: Input label on sample page
2881
- #: src/ui/compose/ComposeDialog.tsx
2882
- #: src/ui/compose/ComposeDialog.tsx
2883
- #: src/ui/pages/ThemeSamplePage.tsx
2884
- #: src/ui/shared/collection-management-labels.ts
2885
- msgid "Title"
2886
- msgstr "標題"
2887
-
2888
- #. @context: Archive filter - notes that have a title
2889
- #. @context: Archive filter - notes that have a title
2890
- #: src/ui/pages/ArchivePage.tsx
2891
- #: src/ui/pages/ArchivePage.tsx
2892
- msgid "Titled"
2893
- msgstr "有標題"
2894
-
2895
- #. @context: Sample quote commentary suffix on the theme sample page
2896
- #: src/ui/pages/ThemeSamplePage.tsx
2897
- msgid "to make sure both still feel like they belong to the same product."
2898
- msgstr "以確保兩者仍然感覺屬於同一個產品。"
2899
-
2900
- #. @context: Description for system nav toggles
2901
- #: src/ui/dash/appearance/NavigationContent.tsx
2902
- msgid "Toggle built-in navigation items. Enabled items appear in your navigation alongside links."
2903
- msgstr "切換內建導覽項目。啟用的項目會和連結一起顯示在導覽中。"
2904
-
2905
- #. @context: Button to expand/collapse nav item edit
2906
- #: src/ui/dash/appearance/NavigationContent.tsx
2907
- msgid "Toggle edit panel"
2908
- msgstr "切換編輯面板"
2909
-
2910
- #. @context: API token name field label
2911
- #: src/ui/dash/settings/ApiTokensContent.tsx
2912
- msgid "Token name"
2913
- msgstr "權杖名稱"
2914
-
2915
- #. @context: API tokens description
2916
- #: src/ui/dash/settings/ApiTokensContent.tsx
2917
- msgid "Tokens let you access the API from scripts, shortcuts, and other tools without signing in."
2918
- msgstr "權杖讓你不必登入,也能從腳本、捷徑和其他工具存取 API。"
2919
-
2920
- #. @context: Usage label for the square logo PNG asset card
2921
- #: src/ui/pages/BrandPage.tsx
2922
- msgid "Transparent square"
2923
- msgstr "透明方形"
2924
-
2925
- #. @context: Title on the public theme sample page
2926
- #: src/ui/pages/ThemeSamplePage.tsx
2927
- msgid "Tune color in a real reading context"
2928
- msgstr "在真實閱讀情境中微調顏色"
2929
-
2930
- #. @context: Intro text on the settings home page below the title
2931
- #: src/ui/dash/settings/SettingsRootContent.tsx
2932
- msgid "Tune how your site looks, reads, and runs."
2933
- msgstr "調整您的網站外觀、閱讀體驗與執行方式。"
2934
-
2935
- #. @context: Custom URL form field
2936
- #: src/routes/dash/custom-urls.tsx
2937
- msgid "Type"
2938
- msgstr "類型"
2939
-
2940
- #. @context: Instruction to type confirmation phrase before deletion
2941
- #: src/ui/dash/settings/DeleteAccountContent.tsx
2942
- msgid "Type the following phrase to confirm:"
2943
- msgstr "請輸入以下字句以確認:"
2944
-
2945
- #. @context: Compose quote text placeholder
2946
- #: src/ui/compose/ComposeDialog.tsx
2947
- msgid "Type the quote..."
2948
- msgstr "輸入引述..."
2949
-
2950
- #. @context: Settings item description for font theme
2951
- #: src/ui/dash/settings/SettingsRootContent.tsx
2952
- msgid "Typography choices and reading texture"
2953
- msgstr "字體選擇與閱讀質感"
2954
-
2955
- #. @context: Fallback label when session device can't be identified
2956
- #: src/ui/dash/settings/SessionsContent.tsx
2957
- msgid "Unknown device"
2958
- msgstr "未知裝置"
2959
-
2960
- #. @context: Archive filter - notes without a title
2961
- #. @context: Archive filter - notes without a title
2962
- #: src/ui/pages/ArchivePage.tsx
2963
- #: src/ui/pages/ArchivePage.tsx
2964
- msgid "Untitled"
2965
- msgstr "無標題"
2966
-
2967
- #. @context: Settings item description for password change
2968
- #: src/ui/dash/settings/AccountMenuContent.tsx
2969
- msgid "Update the password you use to sign in"
2970
- msgstr "更新您用來登入的密碼"
2971
-
2972
- #. @context: Button to upload avatar image
2973
- #: src/ui/dash/settings/AvatarContent.tsx
2974
- msgid "Upload Avatar"
2975
- msgstr "上傳頭像"
2976
-
2977
- #. @context: Error toast when avatar upload fails
2978
- #. @context: Error when file upload fails
2979
- #: src/routes/api/upload.ts
2980
- #: src/routes/dash/settings.tsx
2981
- msgid "Upload didn't go through. Try again in a moment."
2982
- msgstr "上傳失敗。請稍後再試。"
2983
-
2984
- #. @context: Error message when avatar upload fails
2985
- #: src/ui/dash/settings/AvatarContent.tsx
2986
- msgid "Upload failed. Please try again."
2987
- msgstr "上傳失敗。請再試一次。"
2988
-
2989
- #. @context: Avatar upload button text while uploading
2990
- #. @context: Toast shown during background upload
2991
- #: src/ui/compose/ComposeDialog.tsx
2992
- #: src/ui/dash/settings/AvatarContent.tsx
2993
- msgid "Uploading..."
2994
- msgstr "上傳中..."
2995
-
2996
- #. @context: Nav item URL field
2997
- #: src/ui/dash/appearance/NavigationContent.tsx
2998
- msgid "URL"
2999
- msgstr "URL"
3000
-
3001
- #. @context: Heading for API token usage examples
3002
- #: src/ui/dash/settings/ApiTokensContent.tsx
3003
- msgid "Usage"
3004
- msgstr "使用方式"
3005
-
3006
- #. @context: Switch label for setting featured posts as default homepage
3007
- #: src/ui/dash/appearance/NavigationContent.tsx
3008
- msgid "Use Featured as the home feed"
3009
- msgstr "將精選設為首頁檢視"
3010
-
3011
- #. @context: Collection slug validation error for invalid characters
3012
- #. @context: Compose custom slug validation error for invalid characters
3013
- #: src/ui/compose/ComposeDialog.tsx
3014
- #: src/ui/shared/collection-management-labels.ts
3015
- msgid "Use lowercase letters, numbers, and hyphens only."
3016
- msgstr "只能使用小寫字母、數字和連字號。"
3017
-
3018
- #. @context: Guidance title on the brand asset page
3019
- #: src/ui/pages/BrandPage.tsx
3020
- msgid "Use the logo on light backgrounds."
3021
- msgstr "在淺色背景上使用標誌。"
3022
-
3023
- #. @context: Guidance title on the brand asset page
3024
- #: src/ui/pages/BrandPage.tsx
3025
- msgid "Use the reverse logo on dark backgrounds."
3026
- msgstr "在深色背景上使用反白標誌。"
3027
-
3028
- #. @context: Body copy for the icon and preview downloads section
3029
- #: src/ui/pages/BrandPage.tsx
3030
- msgid "Use these when you need a transparent square logo, a shaped tile with a built-in background, a browser icon, or a default preview image."
3031
- msgstr "請在需要透明的方形標誌、帶內建背景的造型方塊、瀏覽器圖示,或預設預覽圖片時使用這些檔案。"
3032
-
3033
- #. @context: Help text for the explicit latest and featured feed URLs
3034
- #: src/ui/dash/settings/GeneralContent.tsx
3035
- msgid "Use these when you want a feed URL that never changes."
3036
- msgstr "當你需要一個不會變動的 feed 連結時,使用這些地址。"
3037
-
3038
- #. @context: Description for the default logo card
3039
- #: src/ui/pages/BrandPage.tsx
3040
- msgid "Use this for websites, docs, articles, and other light or neutral surfaces."
3041
- msgstr "用於網站、檔案、文章,以及其他淺色或中性背景。"
3042
-
3043
- #. @context: Description for the reverse logo card
3044
- #: src/ui/pages/BrandPage.tsx
3045
- msgid "Use this on dark backgrounds, image-backed surfaces, and any placement where the green logo would lose contrast."
3046
- msgstr "將此用於深色背景、以影像為背景的表面,以及任何會使綠色 logo 失去對比的配置"
3047
-
3048
- #. @context: Introductory description on the public theme sample page
3049
- #: src/ui/pages/ThemeSamplePage.tsx
3050
- msgid "Use this page to judge buttons, links, cards, forms, thread accents, and quiet surfaces before changing a theme globally."
3051
- msgstr "在全域變更主題之前,請使用此頁面來評估按鈕、連結、卡片、表單、貼文串強調與低調表面。"
3052
-
3053
- #. @context: Description for choosing featured posts as the main RSS feed
3054
- #: src/ui/dash/settings/GeneralContent.tsx
3055
- msgid "Uses featured posts for /feed."
3056
- msgstr "將精選貼文作為 /feed 的內容。"
3057
-
3058
- #. @context: Description for choosing the latest posts as the main RSS feed
3059
- #: src/ui/dash/settings/GeneralContent.tsx
3060
- msgid "Uses the latest public posts for /feed."
3061
- msgstr "將最新公開貼文作為 /feed 的內容。"
3062
-
3063
- #. @context: Archive media filter - video
3064
- #: src/ui/pages/ArchivePage.tsx
3065
- msgid "Video"
3066
- msgstr "影片"
3067
-
3068
- #. @context: Button to view item on public site
3069
- #. @context: Toast action button to view the published post
3070
- #: src/ui/compose/ComposeDialog.tsx
3071
- #: src/ui/dash/ActionButtons.tsx
3072
- msgid "View"
3073
- msgstr "檢視"
3074
-
3075
- #. @context: Thread link label on sample page
3076
- #: src/ui/pages/ThemeSamplePage.tsx
3077
- msgid "View earlier notes in this thread"
3078
- msgstr "查看這個貼文串裡更早的筆記"
3079
-
3080
- #. @context: Compose publish settings section label
3081
- #: src/ui/compose/ComposeDialog.tsx
3082
- msgid "Visibility"
3083
- msgstr "可見性"
3084
-
3085
- #. @context: Prefix before Custom CSS link on color theme page
3086
- #: src/ui/dash/appearance/ColorThemeContent.tsx
3087
- msgid "Want more control?"
3088
- msgstr "想自訂得更細?"
3089
-
3090
- #. @context: Theme group heading on color theme settings page
3091
- #: src/ui/dash/appearance/ColorThemeContent.tsx
3092
- msgid "Warm Editorial"
3093
- msgstr "暖調編輯風"
3094
-
3095
- #. @context: Setup page welcome heading
3096
- #: src/routes/auth/setup.tsx
3097
- msgid "Welcome to Jant"
3098
- msgstr "歡迎使用 Jant"
3099
-
3100
- #. @context: Table header in the sample detail article
3101
- #: src/ui/pages/ThemeSamplePage.tsx
3102
- msgid "What the accent should do"
3103
- msgstr "強調色該承擔什麼"
3104
-
3105
- #. @context: Section heading in the sample detail article
3106
- #: src/ui/pages/ThemeSamplePage.tsx
3107
- msgid "What to look for while tuning it"
3108
- msgstr "調校時要注意什麼"
3109
-
3110
- #. @context: Compose prompt placeholder text
3111
- #: src/ui/compose/ComposePrompt.tsx
3112
- msgid "What's on your mind?"
3113
- msgstr "在想什麼?"
3114
-
3115
- #. @context: Compose body placeholder
3116
- #: src/ui/compose/ComposeDialog.tsx
3117
- msgid "What's on your mind..."
3118
- msgstr "在想什麼..."
3119
-
3120
- #. @context: Collection description placeholder
3121
- #: src/ui/shared/collection-management-labels.ts
3122
- msgid "What's this collection about?"
3123
- msgstr "這個選集是關於什麼的?"
3124
-
3125
- #. @context: Description for featured default toggle, explains what happens when off
3126
- #: src/ui/dash/appearance/NavigationContent.tsx
3127
- msgid "When off, the homepage opens with your latest posts."
3128
- msgstr "關閉後,首頁會先顯示你的最新貼文。"
3129
-
3130
- #. @context: Textarea value on sample page
3131
- #: src/ui/pages/ThemeSamplePage.tsx
3132
- msgid "When primary is too rigid, the whole page starts reading like product UI instead of writing space."
3133
- msgstr "當 primary 太僵硬時,整個頁面讀起來像產品介面,而非寫作空間。"
3134
-
3135
- #. @context: Sample note summary second paragraph on the theme sample page
3136
- #: src/ui/pages/ThemeSamplePage.tsx
3137
- msgid "When the accent is slightly warmer and less literal, the whole page feels more like a writing space and less like product UI."
3138
- msgstr "當強調色更溫暖一點、也沒那麼直白時,整頁會更像寫作空間,而不是產品介面。"
3139
-
3140
- #. @context: Description for backup and restore documentation link in account settings
3141
- #: src/ui/dash/settings/AccountMenuContent.tsx
3142
- msgid "When to use site export, database backups, and recovery drills."
3143
- msgstr "何時該用站點匯出、資料庫備份與復原演練。"
3144
-
3145
- #. @context: Description for the circle tile asset card
3146
- #: src/ui/pages/BrandPage.tsx
3147
- msgid "White logo on the Jant green circle for profile images, badges, and other round placements where you want a ready-made asset."
3148
- msgstr "白色標誌置於 Jant 綠色圓形,適用於個人資料圖片、徽章及其他需要即用圓形配置的情境。"
3149
-
3150
- #. @context: Description for the brand tile asset card
3151
- #: src/ui/pages/BrandPage.tsx
3152
- msgid "White logo on the Jant green rounded tile for app icon mockups, touch icons, directory listings, and other square placements that should feel softer."
3153
- msgstr "白色標誌置於 Jant 綠色圓角方塊上,適用於應用程式圖示模擬、觸控圖示、目錄列表及其他需呈現較柔和感受的方形配置。"
3154
-
3155
- #. @context: Description for the square tile asset card
3156
- #: src/ui/pages/BrandPage.tsx
3157
- msgid "White logo on the Jant green square tile for platforms and layouts that expect a true edge-to-edge square."
3158
- msgstr "白色 logo 放在 Jant 綠色方形圖塊上,適用於需要真正從邊到邊方形的平台與版面配置。"
3159
-
3160
- #. @context: Sample note post title on the theme sample page
3161
- #: src/ui/pages/ThemeSamplePage.tsx
3162
- msgid "Why the default accent should feel written, not branded"
3163
- msgstr "為什麼預設強調色應該像書寫,而不是品牌標記"
3164
-
3165
- #. @context: Error toast when sign-in credentials are wrong
3166
- #: src/routes/auth/signin.tsx
3167
- msgid "Wrong email or password. Check your credentials and try again."
3168
- msgstr "電子郵件或密碼錯誤。請檢查您的登入資訊後重試。"
3169
-
3170
- #. @context: Confirm close action sheet title when editing a published post
3171
- #: src/ui/compose/ComposeDialog.tsx
3172
- msgid "You have unsaved changes"
3173
- msgstr "您有未儲存的變更"
3174
-
3175
- #. @context: Compose thoughts placeholder
3176
- #: src/ui/compose/ComposeDialog.tsx
3177
- msgid "Your thoughts (optional)"
3178
- msgstr "你的想法(選填)"
3179
-
3180
- #. @context: Compose publish settings slug input placeholder
3181
- #: src/ui/compose/ComposeDialog.tsx
3182
- msgid "your-post-link"
3183
- msgstr "my-post-link"