@jant/core 0.3.40 → 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.
- package/README.md +21 -34
- package/bin/commands/assets/upload.js +247 -0
- package/bin/commands/collections.js +268 -0
- package/bin/commands/import-site.js +1169 -343
- package/bin/commands/media.js +302 -0
- package/bin/commands/migrate-text-attachments.js +183 -0
- package/bin/commands/migrate.js +263 -2
- package/bin/commands/posts.js +262 -0
- package/bin/commands/search.js +53 -0
- package/bin/commands/settings.js +93 -0
- package/bin/commands/site/export.js +34 -33
- package/bin/commands/site/{localize-media.js → pull-media.js} +17 -17
- package/bin/lib/d1-query.js +15 -3
- package/bin/lib/http-api.js +223 -0
- package/bin/lib/media-upload.js +206 -0
- package/bin/lib/migration-runner.js +64 -0
- package/bin/lib/runtime-target.js +7 -2
- package/bin/lib/site-media-parser.js +71 -16
- package/bin/lib/site-pull-media.js +698 -0
- package/bin/lib/site-snapshot.js +0 -1
- package/dist/{app-CAtsuLLh.js → app-Cu3lveYI.js} +23768 -23057
- package/dist/app-DzCB4yOp.js +5 -0
- package/dist/client/.vite/manifest.json +3485 -0
- package/dist/client/_assets/chunks/02611a045a7fe83a12014e3debc9f731-BqEDtwXC.woff2 +0 -0
- package/dist/client/_assets/chunks/033466ef683afe931f7f520cfb42d928-BluLHEh9.woff2 +0 -0
- package/dist/client/_assets/chunks/04b8bde59cff68eeee74fb1914eb09c7-D5j2CLTt.woff2 +0 -0
- package/dist/client/_assets/chunks/057a6a98bda7fe57105ddaa99ec82015-DY_AoijT.woff2 +0 -0
- package/dist/client/_assets/chunks/05ac821472e235943ed1435e4bb8ecad-CUm8GiH6.woff2 +0 -0
- package/dist/client/_assets/chunks/05da12edb9d52210581dc6ec4541031f-BXAOx2XP.woff2 +0 -0
- package/dist/client/_assets/chunks/074c1f8483d5a4d8c45c8c5f3e4cbb32-CDqdMQm8.woff2 +0 -0
- package/dist/client/_assets/chunks/0968e4861204b51f62a2f8e9f15dd5e0-D5tLgF_8.woff2 +0 -0
- package/dist/client/_assets/chunks/0acd1fe2b2ea1ad1bfee7ae1fa139d27-BKK1m412.woff2 +0 -0
- package/dist/client/_assets/chunks/0c2ab6b295e55f356f8020d4e7747522-CkCQjQw3.woff2 +0 -0
- package/dist/client/_assets/chunks/0c5f9492af03a4fa42c784de94649de1-CQlJqksa.woff2 +0 -0
- package/dist/client/_assets/chunks/0d5dec931dc885f07fe5cd5af8bed675-C74x-U_U.woff2 +0 -0
- package/dist/client/_assets/chunks/0d9a936885a4c39077438effd3779cbd-Bw0fYF4S.woff2 +0 -0
- package/dist/client/_assets/chunks/0e645da524f7cfc0e8c3c03fb2b08428-BVeI_5Th.woff2 +0 -0
- package/dist/client/_assets/chunks/0f5e1a18987dbc84ca05188c129e1936-B6_lZ6fE.woff2 +0 -0
- package/dist/client/_assets/chunks/1076f0f6f66d28d7a2f16427faad4413-ubiXnD1P.woff2 +0 -0
- package/dist/client/_assets/chunks/112743a4ab5fdd1498dfdf2b11336380-B5FzQxTK.woff2 +0 -0
- package/dist/client/_assets/chunks/1211f03d3ff5759a702631445793f60e-DDcSiyCt.woff2 +0 -0
- package/dist/client/_assets/chunks/12ef1ba76bd20b004b865266a1aa70b3-BwmaD87S.woff2 +0 -0
- package/dist/client/_assets/chunks/135e83b403475c5dc9e49b43501a5b84-C5mE_KZS.woff2 +0 -0
- package/dist/client/_assets/chunks/1380210a722ac9aeef54005ad7b015c9-CjA-MP82.woff2 +0 -0
- package/dist/client/_assets/chunks/13b2c53b30e6a3e4de7132dbc18dbdfc-B9WOB7kv.woff2 +0 -0
- package/dist/client/_assets/chunks/147b24c2f08d03bbed30887d4cb3311c-IeeFCJ13.woff2 +0 -0
- package/dist/client/_assets/chunks/152395634a207579552f8cb54db88599-C2y2JyNZ.woff2 +0 -0
- package/dist/client/_assets/chunks/15d95680dc31cc6ce20e0a5464106dc4-CpD8dqRm.woff2 +0 -0
- package/dist/client/_assets/chunks/16663e567f81f4725a1522f37e18f71f-BNoxS9pQ.woff2 +0 -0
- package/dist/client/_assets/chunks/1733f27476507ca68b68a803bc533cc2-DXL-14Ug.woff2 +0 -0
- package/dist/client/_assets/chunks/17c7f5d0a45e92ede0e5dec3a2c77efa-CNj3jQMl.woff2 +0 -0
- package/dist/client/_assets/chunks/1824321da801e6257b902f3d1d09054c-D4dgdyWB.woff2 +0 -0
- package/dist/client/_assets/chunks/188c2db794f3dd7a45889ddbc81da9bb-C9NbUBBO.woff2 +0 -0
- package/dist/client/_assets/chunks/1a08931435f885e707edb85978ea3bb6-BOiP2u7G.woff2 +0 -0
- package/dist/client/_assets/chunks/1a3a92c7c060a71a6c35819b9ebcdbb9-DFfonQfz.woff2 +0 -0
- package/dist/client/_assets/chunks/1be602ad456b0d75902d352116cb35fd-Bc-XQtQh.woff2 +0 -0
- package/dist/client/_assets/chunks/1cf737900dd49c2e88f1b3221a82a602-CfTmnns3.woff2 +0 -0
- package/dist/client/_assets/chunks/1fba7ec0e412e911bf31841de5a8a4e4-18ELMbFF.woff2 +0 -0
- package/dist/client/_assets/chunks/233d3a685ee18276b319363474599d47-BaFdJ0-G.woff2 +0 -0
- package/dist/client/_assets/chunks/2612c60f9dc5459ac42763591240a1d6-CTD69cq1.woff2 +0 -0
- package/dist/client/_assets/chunks/284b53bbefb06924cf236d24c8ed5641-CPDiuOv6.woff2 +0 -0
- package/dist/client/_assets/chunks/28a97af9ab9d38983d20f39ff09840e1-mFqcT3Jw.woff2 +0 -0
- package/dist/client/_assets/chunks/2a56eaf19d1d38a6b57e2a388f733676-CU52qBlE.woff2 +0 -0
- package/dist/client/_assets/chunks/2ab8cf1f23a5ac7939a7876054e711a7-B4T3dK7A.woff2 +0 -0
- package/dist/client/_assets/chunks/2abfbab82b6a7c04426afc054d2464da-D5PIIHde.woff2 +0 -0
- package/dist/client/_assets/chunks/2bfaadaf3479c72286248e6de0be0ec9-DEpU6O74.woff2 +0 -0
- package/dist/client/_assets/chunks/2c8c55e4cec85ce77e95cac9d330f5cf-BCTA96EZ.woff2 +0 -0
- package/dist/client/_assets/chunks/2e6f4bb71ef6b38765d51acc5a79f638-Mbs6PECD.woff2 +0 -0
- package/dist/client/_assets/chunks/2ed9981d2e8983365bd051159b976b6d-D8gg6NWM.woff2 +0 -0
- package/dist/client/_assets/chunks/2f4c633e923ba30c6ba376367379fc91-CIJCFztv.woff2 +0 -0
- package/dist/client/_assets/chunks/31194d303a67561926a544ed0e072aee-w3-eGYAi.woff2 +0 -0
- package/dist/client/_assets/chunks/31a197213ae61d7043c81013f52d10d6-DXZrrkJP.woff2 +0 -0
- package/dist/client/_assets/chunks/349965eee0a9b6c984a319ab96a4ece9-DByAVmXw.woff2 +0 -0
- package/dist/client/_assets/chunks/34e6750e00c3a911ef87dc66b336594d-DNbWesOu.woff2 +0 -0
- package/dist/client/_assets/chunks/3623d96698132c61e861f984ce11cc23-jqV9ErzX.woff2 +0 -0
- package/dist/client/_assets/chunks/36cda3eae13370b934bba4429fab9078-BPDcUlw9.woff2 +0 -0
- package/dist/client/_assets/chunks/36f3df4730cfca4fc77fe52b52e6a126-BwK10NC0.woff2 +0 -0
- package/dist/client/_assets/chunks/37887deb7a9c466cf2af6ee7ff372ea6-BrAerJB1.woff2 +0 -0
- package/dist/client/_assets/chunks/37dbd564820cce2f7b3331e442da0df3-Cql2kzIi.woff2 +0 -0
- package/dist/client/_assets/chunks/37dc8505b20b37a2477a9121b16d44a7-CoXw6XWV.woff2 +0 -0
- package/dist/client/_assets/chunks/39211b02f24c69cbd1b54f6d41b01933-4Xu7vvnq.woff2 +0 -0
- package/dist/client/_assets/chunks/3aa13f1843d7c8fa16109b6395a9a29d-BQFZUc3B.woff2 +0 -0
- package/dist/client/_assets/chunks/3aba89c4d4281553078de4622b498cbb-8QS1zDYk.woff2 +0 -0
- package/dist/client/_assets/chunks/3ac0a07878cacdc98bb889f40f5970d3-C-BaM6-y.woff2 +0 -0
- package/dist/client/_assets/chunks/3d88558097559d775231194d43745ba7-CR2aqGC7.woff2 +0 -0
- package/dist/client/_assets/chunks/3dc3e8c35524cad2d1236f3393104ccf-9sqBsF7B.woff2 +0 -0
- package/dist/client/_assets/chunks/3e24063b19abd2b051af986a6870046d-TlweM3SW.woff2 +0 -0
- package/dist/client/_assets/chunks/3e2c06bdd9dcab29aeaeb0cfb7fa608a-BaqU-dIt.woff2 +0 -0
- package/dist/client/_assets/chunks/424123f9371ba357087363263eeafcda-C8SVfEJi.woff2 +0 -0
- package/dist/client/_assets/chunks/43b3bbf43055c3e65db9cdf2c5b18c1c-CbHx6-Ki.woff2 +0 -0
- package/dist/client/_assets/chunks/4410f876d27c9821839474b6b1059fd7-ClYz91aY.woff2 +0 -0
- package/dist/client/_assets/chunks/44704471b60c18b3ecec5300a88f1102-DDmmy6-m.woff2 +0 -0
- package/dist/client/_assets/chunks/45140742dfa8686b58db2899ce89f89a-D5IMMzDM.woff2 +0 -0
- package/dist/client/_assets/chunks/46604090efbb99c2db1800928af0a239-JX2fpYX_.woff2 +0 -0
- package/dist/client/_assets/chunks/46998df85d31e629c0142f0556f5e7c5-BIkNG9Wh.woff2 +0 -0
- package/dist/client/_assets/chunks/469d2754e315e77270c12fa0ab28026c-D-y-vsfA.woff2 +0 -0
- package/dist/client/_assets/chunks/479329a39a3eb6c0047e6b0981919855-vZKCRx42.woff2 +0 -0
- package/dist/client/_assets/chunks/491bbba374093fff045f55803a22bfef-DSQXiDCd.woff2 +0 -0
- package/dist/client/_assets/chunks/49902f1c41b281f8eb3771abdd4dccb8-DxVxNg2W.woff2 +0 -0
- package/dist/client/_assets/chunks/4c0760284569b87d8f2290c324953973-Bqd-TKHH.woff2 +0 -0
- package/dist/client/_assets/chunks/4cba92c942694bdc479bc54101bb1aa4-BrfsrgrC.woff2 +0 -0
- package/dist/client/_assets/chunks/4d38e56738156625329d93bd5c8cc74a-DONkMP0y.woff2 +0 -0
- package/dist/client/_assets/chunks/4db4f31a16965baa42cb7dad667a8f04-Dt1Cy4gr.woff2 +0 -0
- package/dist/client/_assets/chunks/4e7d263c30bb48604069a3b4404d4eeb-DNPCkvKD.woff2 +0 -0
- package/dist/client/_assets/chunks/5279c7e465d9871edf51fd02e691eee7-CKhyhvVf.woff2 +0 -0
- package/dist/client/_assets/chunks/527ff336279465617aafbafe1a830632-CC3lv4pm.woff2 +0 -0
- package/dist/client/_assets/chunks/54bfdb6f21f9d6191e5100580239e14f-PGlqYvgl.woff2 +0 -0
- package/dist/client/_assets/chunks/56b40518ea0608e62826bd44ee27f5f9-BD9F9Oss.woff2 +0 -0
- package/dist/client/_assets/chunks/56be5e32fd01668fe5ba814d94905839-CSyFA-9l.woff2 +0 -0
- package/dist/client/_assets/chunks/572b9e28f1e6d89b765a16d809db84a1-BIYMjzEa.woff2 +0 -0
- package/dist/client/_assets/chunks/57e9a86651366c1ba299e47aa7e358c2-BHuZXB4W.woff2 +0 -0
- package/dist/client/_assets/chunks/57f89adeae55aa7fe2add3fc1801ce03-Cy3PNrfx.woff2 +0 -0
- package/dist/client/_assets/chunks/5921cef36750ff6092d94b83a802823b-hF-uymTh.woff2 +0 -0
- package/dist/client/_assets/chunks/59e95d8b5332dcdae894a19946ab767d-ClRfsjWZ.woff2 +0 -0
- package/dist/client/_assets/chunks/5acc7f736217259db79a42bf44241c48-FYQUuFOM.woff2 +0 -0
- package/dist/client/_assets/chunks/5c05f8b75c9d7f25b3c04ca711cf43b3-D-YWPkSq.woff2 +0 -0
- package/dist/client/_assets/chunks/5df9ce98c75f8c50fb4fff7f01a23925-DgoCENyW.woff2 +0 -0
- package/dist/client/_assets/chunks/5e0124c7265f1b4cf0fc797b94efbebc-BTBNHsSB.woff2 +0 -0
- package/dist/client/_assets/chunks/5ec349ff62b9ee5fe0c6dae867704dc4-B4dezhrz.woff2 +0 -0
- package/dist/client/_assets/chunks/60020a830d809c26970cf8e48ba1eeda-B6FDTSik.woff2 +0 -0
- package/dist/client/_assets/chunks/601f812e8b1eafecd5ba585a6a6d7962-gIVBlUU9.woff2 +0 -0
- package/dist/client/_assets/chunks/6025ddaf99d86cc8bfd781006b19fbd6-CS-ze337.woff2 +0 -0
- package/dist/client/_assets/chunks/60bcfa3ea7446eb42394aab02d28be40-C-PQfCu3.woff2 +0 -0
- package/dist/client/_assets/chunks/60f6e28b3f0400b0e8fe32c3c7116102-Dag9L2qU.woff2 +0 -0
- package/dist/client/_assets/chunks/615a7e0d63f257109d599b2a1977de68-D6Y93yoG.woff2 +0 -0
- package/dist/client/_assets/chunks/615b38e0b5bb3ea68426f44f47706e6f-B5yzIIer.woff2 +0 -0
- package/dist/client/_assets/chunks/61a2c80d0c924d5a6187c02e8d1d1642-BY3MmHbZ.woff2 +0 -0
- package/dist/client/_assets/chunks/62fc94f8d4c5a750b7f25e7387539910-3ql2_WDK.woff2 +0 -0
- package/dist/client/_assets/chunks/639c7c6b0b0c27c738702741cfa4b8c0-BCD3OGri.woff2 +0 -0
- package/dist/client/_assets/chunks/63fafcb069520613d0ea35ad3e6b1e42-DP0Rrj4o.woff2 +0 -0
- package/dist/client/_assets/chunks/64a404d675f1d726f0891b7a80794595-DU3L0I9s.woff2 +0 -0
- package/dist/client/_assets/chunks/65a60d87c64228d258a123cbe85f5f31-B4kbf-79.woff2 +0 -0
- package/dist/client/_assets/chunks/65e9c4585d71bf48a5c62f367010da16-CvzgzReN.woff2 +0 -0
- package/dist/client/_assets/chunks/68a3a4bf337f8a0722be76676e20b850-Dnaw8EPD.woff2 +0 -0
- package/dist/client/_assets/chunks/6968e889e18891d912809fe484c2e745-Bj1m5e0s.woff2 +0 -0
- package/dist/client/_assets/chunks/6abdd163d2c4b85698db8aa1ce149361-B5FVGJuo.woff2 +0 -0
- package/dist/client/_assets/chunks/6b75213eb0be40ce84241eb2bb438a2e-CqHmF-NR.woff2 +0 -0
- package/dist/client/_assets/chunks/70714891ad3fbfc3d5f10a8669dacc5a-BWk5nLFN.woff2 +0 -0
- package/dist/client/_assets/chunks/7158022889c6c177062ac85036e7af10-B3D4K22n.woff2 +0 -0
- package/dist/client/_assets/chunks/73b794d885b88f7befb7ea8ab1780a15-D0ZehnEI.woff2 +0 -0
- package/dist/client/_assets/chunks/743f290baf027d4626a86e22f3d44600-DDTDQdRC.woff2 +0 -0
- package/dist/client/_assets/chunks/7520ca6ca8c60eb1e62d50e71c8d30f1-CVRaGu2G.woff2 +0 -0
- package/dist/client/_assets/chunks/757019c01c5e2c2b0f54293cea3b5636-BTovUnoH.woff2 +0 -0
- package/dist/client/_assets/chunks/759a647b77791b1e98f99bc0ab5317a7-CrK6FIFz.woff2 +0 -0
- package/dist/client/_assets/chunks/761d84afca8d7f34eebefe538adba827-DRbiVuwX.woff2 +0 -0
- package/dist/client/_assets/chunks/76e07530323418ec723c5d7634c9bcca-DGtVJTTH.woff2 +0 -0
- package/dist/client/_assets/chunks/76e51630143b95b6322ef93ad330da7a-D-kV82C_.woff2 +0 -0
- package/dist/client/_assets/chunks/76f117a3baacda304a71965a17266a13-DFfvsFUm.woff2 +0 -0
- package/dist/client/_assets/chunks/773819b7b9b8fd404a929867c0fd677e-Bu1xCMZb.woff2 +0 -0
- package/dist/client/_assets/chunks/77747f17625a259fb405b7bbdd84ac4b-o_vNfh-6.woff2 +0 -0
- package/dist/client/_assets/chunks/7817dd16805145d8538ad57590f69f5a-DguSUP3O.woff2 +0 -0
- package/dist/client/_assets/chunks/788498548ddfb710d6ef3c7bff79fa97-3ffoQfRd.woff2 +0 -0
- package/dist/client/_assets/chunks/78ea6c40923ce95367e3517dd1e5a849-DvLDRhX9.woff2 +0 -0
- package/dist/client/_assets/chunks/79aa7c8c842c4a27cf57c0a3a1ffca5a-sDoCeoKI.woff2 +0 -0
- package/dist/client/_assets/chunks/7b59f0ec7792b18458dc5a361e37884c-DWvxkKmT.woff2 +0 -0
- package/dist/client/_assets/chunks/7c3945788a689a69356c1a622d69d48b-1JjIpss2.woff2 +0 -0
- package/dist/client/_assets/chunks/7cc72fd2c9105560422b6a67c6162945-Co3AF5_G.woff2 +0 -0
- package/dist/client/_assets/chunks/7d0ea0690e432462f4d05a23d720ec19-Dx7DK4C3.woff2 +0 -0
- package/dist/client/_assets/chunks/7dffa5c1bec57e0903fd62357401ff1a-DuQHmiiN.woff2 +0 -0
- package/dist/client/_assets/chunks/7e38ca789a9e76ac91d9256374e154f0-BtETgGRe.woff2 +0 -0
- package/dist/client/_assets/chunks/7f9a6c9286b68de9c72b0024f7beeb40-JpXdo4FC.woff2 +0 -0
- package/dist/client/_assets/chunks/815a0b797465190f60d8b1a04656c42e-Spzo94nU.woff2 +0 -0
- package/dist/client/_assets/chunks/823d1bb11097331238d103c7f72138dc-CGN6m2VF.woff2 +0 -0
- package/dist/client/_assets/chunks/82f6ccc063960eed1cdfd1d61ada8862-CsmAqx2a.woff2 +0 -0
- package/dist/client/_assets/chunks/835b6505bb9eea9678925a1fa885353d-C6mSBwUc.woff2 +0 -0
- package/dist/client/_assets/chunks/845b4b67564d62cf5cad242f7ac08ea5-DnvzrloJ.woff2 +0 -0
- package/dist/client/_assets/chunks/84c8e7bc0931008ed91f44ed12dfea94-C2Hvhh-b.woff2 +0 -0
- package/dist/client/_assets/chunks/8726558cf297cbda831cc19514897205-gSFV1vW0.woff2 +0 -0
- package/dist/client/_assets/chunks/8855472f3c02f6c7ebb3216617ebe4af-C1JsWVqq.woff2 +0 -0
- package/dist/client/_assets/chunks/887a11290ba78b1e66c6d2f67043005e-L_A1f5Fz.woff2 +0 -0
- package/dist/client/_assets/chunks/888ba53510213d5d1f6a7deb60e569b6-OP8E-ELN.woff2 +0 -0
- package/dist/client/_assets/chunks/88db1d042074fb6e66821ffc10941930-kZ6K3e62.woff2 +0 -0
- package/dist/client/_assets/chunks/892aa49b2529c89bb4076d4aa51fe30f-Bw0_Km2A.woff2 +0 -0
- package/dist/client/_assets/chunks/8b5c9ef81159f31d2ab35f45ca4373e0-Djw95sKC.woff2 +0 -0
- package/dist/client/_assets/chunks/8b91c7c2ed390f1278b9befa3aa87233-B2C3iFbQ.woff2 +0 -0
- package/dist/client/_assets/chunks/8dc18c0cebe6aa4bf4c45dbb831048ab-bUlANLit.woff2 +0 -0
- package/dist/client/_assets/chunks/8e231d707f0c4f8e3cde90a6b52a79aa-CvwbWlul.woff2 +0 -0
- package/dist/client/_assets/chunks/8fb45117a62d92dce44a80f0b729ead5-Djr4-o5-.woff2 +0 -0
- package/dist/client/_assets/chunks/9064c12fd72c7aba235d8c3881755b91-BnguxT-p.woff2 +0 -0
- package/dist/client/_assets/chunks/90b7848e9b1623b77bdcf155e90b839c-CFvPRnoM.woff2 +0 -0
- package/dist/client/_assets/chunks/911b9e53e9814de2998c60bf3115f560-DmPmj635.woff2 +0 -0
- package/dist/client/_assets/chunks/919a879bd2d580d8491a31a449390689-BY2w-8_Y.woff2 +0 -0
- package/dist/client/_assets/chunks/91da6cb174bebfb96976e2f1316be2fe-DztAJb6W.woff2 +0 -0
- package/dist/client/_assets/chunks/92fdc376bce277874e75db666f175b44-DJUnHEIN.woff2 +0 -0
- package/dist/client/_assets/chunks/930a23430f0eb64480d7fe5f82834e21-2VrDPT7E.woff2 +0 -0
- package/dist/client/_assets/chunks/934dfdbed2bb2c4b6129199d699a34fa-CtpHsjRD.woff2 +0 -0
- package/dist/client/_assets/chunks/93bed0e5f2dd5a21cf73304fcfbc149d-DJiaETX7.woff2 +0 -0
- package/dist/client/_assets/chunks/93f3ea6918533d96d9c252378b9a4af0-D-FJaGi-.woff2 +0 -0
- package/dist/client/_assets/chunks/95a0951d2a2722ff773a1a45e8c474d6-DuZg-BpP.woff2 +0 -0
- package/dist/client/_assets/chunks/95ff41191c76ef893ac70a1043e95e44-C08QDbJO.woff2 +0 -0
- package/dist/client/_assets/chunks/96c75862c8cec51a7c05ff025fea86cd-DBnRwCuW.woff2 +0 -0
- package/dist/client/_assets/chunks/97d7a17234f2b5030ae9697ae00aded2-CkUSaB-p.woff2 +0 -0
- package/dist/client/_assets/chunks/982cd1765ca6bbb3e6547e47834d5148-DkIybx1r.woff2 +0 -0
- package/dist/client/_assets/chunks/985d4d41afa0934a4eb2de35473fb9a2-CF7rgJMw.woff2 +0 -0
- package/dist/client/_assets/chunks/995c4fda62d25c3b79dd5987737df6ae-CY5ri8HW.woff2 +0 -0
- package/dist/client/_assets/chunks/9b0c3caac458c7bc9c9133e40405ddea-DhPrYOcz.woff2 +0 -0
- package/dist/client/_assets/chunks/9b21e8244f5930c48ad5073f83777b6c-CuE9-r-r.woff2 +0 -0
- package/dist/client/_assets/chunks/9bb38fd05201de666b88b82d56a386f7-nMl6lB8X.woff2 +0 -0
- package/dist/client/_assets/chunks/9d0afa53dc2f92ba42024f55f11f6779-Bozpx8bL.woff2 +0 -0
- package/dist/client/_assets/chunks/9e13a47242926f1cd7d68c08d9ef8889-DwKQjc8M.woff2 +0 -0
- package/dist/client/_assets/chunks/9eff2ab2a9d2ced47ab761bf6fdb11ec-D86-Zm1H.woff2 +0 -0
- package/dist/client/_assets/chunks/9f1963fe8d4d6878d717d872a8f3fdb5-DxjITUFq.woff2 +0 -0
- package/dist/client/_assets/chunks/9f3bdab4025dc7c5ba1a5871e62e8918-BqxDEFLJ.woff2 +0 -0
- package/dist/client/_assets/chunks/9fce02d1a09f464c36c9fcfb14a354c5-F2tMAB_j.woff2 +0 -0
- package/dist/client/_assets/chunks/a00e94d4f04df6aa659db9c4954c7efe-CRBKCj_3.woff2 +0 -0
- package/dist/client/_assets/chunks/a0a6755c7e3f9e4cf03387027dd9f16c-BAyRqF2w.woff2 +0 -0
- package/dist/client/_assets/chunks/a0d00fe4816c95a8c7dffd445ef00b03-CxcTiRLJ.woff2 +0 -0
- package/dist/client/_assets/chunks/a0f199077fa1a33bc2a1e01c64de7fe6-IdgVJmZD.woff2 +0 -0
- package/dist/client/_assets/chunks/a2b0597837e382aca19919c4b74e58c8-7iVOBjzI.woff2 +0 -0
- package/dist/client/_assets/chunks/a373e85c96aa0dc303092429fb837e51-Dvmw8mbX.woff2 +0 -0
- package/dist/client/_assets/chunks/a379ada89abd750c587ded29f77e731c-CgPBsEsv.woff2 +0 -0
- package/dist/client/_assets/chunks/a4475c442c6b259354c9eda62e64e7df-TZ0c8vK-.woff2 +0 -0
- package/dist/client/_assets/chunks/a48be56ce5d3a99dc8f8331398004412-BR_ixH1W.woff2 +0 -0
- package/dist/client/_assets/chunks/a4a39b5f048671aa37c2b2a9581ab08a-EDfDYsUd.woff2 +0 -0
- package/dist/client/_assets/chunks/a534449d67561ac9b06489f64e57ad98-C355TCrD.woff2 +0 -0
- package/dist/client/_assets/chunks/a6e044424780a57610833cc856c15bf5-x1b8FE4H.woff2 +0 -0
- package/dist/client/_assets/chunks/a7c35e42a659347e490c3cb7983b2e7f-BWpA0-oz.woff2 +0 -0
- package/dist/client/_assets/chunks/a7c58070d68dc1724e9d4e781afb78db-ql27pT-6.woff2 +0 -0
- package/dist/client/_assets/chunks/a806759e72987951d6d08b7cbdf36a1b-TvLDwB_u.woff2 +0 -0
- package/dist/client/_assets/chunks/a88481ec8bc7be11cb66e46781a79bb9-Ck-r_sGx.woff2 +0 -0
- package/dist/client/_assets/chunks/a919a8c6fec6d7e8bb21177965f2e9d7-CC5uWzwd.woff2 +0 -0
- package/dist/client/_assets/chunks/a9a016d4a93409f65278327e8a8bb38d-dylrNwF8.woff2 +0 -0
- package/dist/client/_assets/chunks/aa662092cf249707123ca4d575e2764b-CSxNsTUL.woff2 +0 -0
- package/dist/client/_assets/chunks/aae1eda193285ab817a2d1b408440326-CjyjBoRm.woff2 +0 -0
- package/dist/client/_assets/chunks/ab92d41062a7644faa45f50bf384454a-Cq0X8a9H.woff2 +0 -0
- package/dist/client/_assets/chunks/accc43762ad05edfbff66ba1380d192a-B5jIykaZ.woff2 +0 -0
- package/dist/client/_assets/chunks/ad47bcd6d4663026d648c132d969318d-BYdIbDge.woff2 +0 -0
- package/dist/client/_assets/chunks/ad67113f88b59582991cb0c5d33ea19f-DOH1vcIZ.woff2 +0 -0
- package/dist/client/_assets/chunks/adb6e613fb99c6dd660b727101f554a8-DJDw_ZZK.woff2 +0 -0
- package/dist/client/_assets/chunks/adc4a98a89870ef984ee8f4b57c8a3a5-D30vw26R.woff2 +0 -0
- package/dist/client/_assets/chunks/af57a2e8c72f9ba0efb1af771d32c124-D5Zwq9pS.woff2 +0 -0
- package/dist/client/_assets/chunks/b0ae5f374e43dac992a4a5d334cebc0b-Ccoi4dPt.woff2 +0 -0
- package/dist/client/_assets/chunks/b0cb664cb2e1371efda8943c0b7dcd1c-YzGFnelF.woff2 +0 -0
- package/dist/client/_assets/chunks/b0d1cdced482352cf0d3ae58638aacb9-IunWfc6R.woff2 +0 -0
- package/dist/client/_assets/chunks/b12379ab782468d725519cd07a7d15bc-IjbydKs2.woff2 +0 -0
- package/dist/client/_assets/chunks/b320f5d185b2cff933ac549c184031c5-IYnPrIz4.woff2 +0 -0
- package/dist/client/_assets/chunks/b326a8a9c33b554db570da94f60bc380-B6dzaCQg.woff2 +0 -0
- package/dist/client/_assets/chunks/b55486f8a459c838fe329d4e79a8c211-DW8q7oGV.woff2 +0 -0
- package/dist/client/_assets/chunks/b6117ff2993b11bb1fdc7ea3588a010c-JoMYL5W_.woff2 +0 -0
- package/dist/client/_assets/chunks/b61982951bd51b724143c30dfaaa9fe9-D3KhBKl6.woff2 +0 -0
- package/dist/client/_assets/chunks/b91234c10fd8b8c8abc88e03afe66a1f-BABNh2la.woff2 +0 -0
- package/dist/client/_assets/chunks/b9317198f118a1dfd8ddf2b82ec028f3-CiMecxeH.woff2 +0 -0
- package/dist/client/_assets/chunks/ba825ae79b1a6f7e0cce5215fcb5c96f-B6EWU_D5.woff2 +0 -0
- package/dist/client/_assets/chunks/ba9c59d7dfa4494db1bb764ada81467d-D0yPcC1m.woff2 +0 -0
- package/dist/client/_assets/chunks/bab547459d514f46206e340c4bb2dc88-YnBqlGhw.woff2 +0 -0
- package/dist/client/_assets/chunks/bb0b15492b8cdbbec57c0bcfa0aa9241-BjIFbEsN.woff2 +0 -0
- package/dist/client/_assets/chunks/bc6183ac08f0fac78c46f80c10cf7c92-B81nbRb3.woff2 +0 -0
- package/dist/client/_assets/chunks/bc8ccea5abf6598cf3cfa97eb59804bb-B_7IbluG.woff2 +0 -0
- package/dist/client/_assets/chunks/bc95a792cbca6639214c9b0da13392ff-CHQe0E-D.woff2 +0 -0
- package/dist/client/_assets/chunks/bcc39eda837bb7a7a3d37c8c60fffb81-CGd1Zk6S.woff2 +0 -0
- package/dist/client/_assets/chunks/bcfa62f35731856246c146d3a6932bf3-DMDq6w4v.woff2 +0 -0
- package/dist/client/_assets/chunks/bd73264d7f98776708d5d6f3c9b78fcc-d9QWWMym.woff2 +0 -0
- package/dist/client/_assets/chunks/bed610b217d500f5975cfc9fe6157570-B5t7s1bw.woff2 +0 -0
- package/dist/client/_assets/chunks/bedc74b423b7293b6ad0bdecc61c42cc-4Nnh7peP.woff2 +0 -0
- package/dist/client/_assets/chunks/bf8901f8f11d4f433ea17dabc9370ea6-B8dkfvGn.woff2 +0 -0
- package/dist/client/_assets/chunks/bfb00d4a4c48661bd0be99f300a0faae-OxsWZ7l-.woff2 +0 -0
- package/dist/client/_assets/chunks/c0098958e20db68cab90097b5e62516f-VpjQo3vV.woff2 +0 -0
- package/dist/client/_assets/chunks/c063897793f593eb26d6ff7b7baaba18-BWeJJ1sH.woff2 +0 -0
- package/dist/client/_assets/chunks/c1b0df29ae41d764904df84e9ac83d1e-D1N934vs.woff2 +0 -0
- package/dist/client/_assets/chunks/c4143bb9f2fe77b6ccf20088a8904650-nHfYM24e.woff2 +0 -0
- package/dist/client/_assets/chunks/c42c67070cfe99cf823df92d81c7fa6e-B_a405Ez.woff2 +0 -0
- package/dist/client/_assets/chunks/c4bfaa5e50798246e3770718b7a7c84a-B-r6Y_o0.woff2 +0 -0
- package/dist/client/_assets/chunks/c4d749e45ecd5a5aed5a0bb3ebfd355d-CkqE1fRi.woff2 +0 -0
- package/dist/client/_assets/chunks/c6c2971ad1f3221f6cf84028aa0f477e-D7BZGIcY.woff2 +0 -0
- package/dist/client/_assets/chunks/c7ff3f6bbdcd5f604b7343602ab904df-Bq7UjVrZ.woff2 +0 -0
- package/dist/client/_assets/chunks/c84598999133455503042e06f4ab79cb-DIXndJX3.woff2 +0 -0
- package/dist/client/_assets/chunks/c945c62368357d05a53206620460fb30-82gFEf6n.woff2 +0 -0
- package/dist/client/_assets/chunks/c96d83978add28b356c22c4c84916733-BL4VaPIE.woff2 +0 -0
- package/dist/client/_assets/chunks/c97f41eef722121d86f55d553c056a39-CjejgQO2.woff2 +0 -0
- package/dist/client/_assets/chunks/ca62704509932d3232d62918de97af3f-CKWF-3mX.woff2 +0 -0
- package/dist/client/_assets/chunks/ca9a533988d7019597a60d4e17127e0c-ClZ6ygZM.woff2 +0 -0
- package/dist/client/_assets/chunks/cb7ccd6494256f7a2977b7c2b0225592-Cxp8XObm.woff2 +0 -0
- package/dist/client/_assets/chunks/ce022e18a1377ac509443c3c3790b431-DpH0t6Tn.woff2 +0 -0
- package/dist/client/_assets/chunks/ce41d70ce6a069a498525c9e15c45cf2-DGtgv-_b.woff2 +0 -0
- package/dist/client/_assets/chunks/cf2b28f90f47276f7e2688a65e88a101-LVbNkXHj.woff2 +0 -0
- package/dist/client/_assets/chunks/cf9cffe56636322f62b40d61130fbc5e-DNCBMqAo.woff2 +0 -0
- package/dist/client/_assets/chunks/d1f064825fa5784b5c930652bd831cce-BU6qwjp8.woff2 +0 -0
- package/dist/client/_assets/chunks/d20d8944bc0b85f5b2aae4b24f343516-oY9l-NmC.woff2 +0 -0
- package/dist/client/_assets/chunks/d2faabcedd19f016e7b21bce073c0ec8-Dv6eFCf5.woff2 +0 -0
- package/dist/client/_assets/chunks/d320171e57480510f87dbbc7d5264b0a-CcCfjaFX.woff2 +0 -0
- package/dist/client/_assets/chunks/d36644d6502527e1fff205d0c7eca434-kVBj8zy_.woff2 +0 -0
- package/dist/client/_assets/chunks/d3a72a99d365dddfbca8d017a8011368-Bgdmhl3M.woff2 +0 -0
- package/dist/client/_assets/chunks/d40ab99c7a38026f411c8f112f742b48-D7Nm7fg6.woff2 +0 -0
- package/dist/client/_assets/chunks/d42aafa0f246ad3b4c16fe96d3a3a432-CRxTqZXU.woff2 +0 -0
- package/dist/client/_assets/chunks/d4aaf23c13ae808a4bed617afd13aa07-d_T1SKe9.woff2 +0 -0
- package/dist/client/_assets/chunks/d509ee5c8241bc7c3de2039d75564fa5-BpNFD9JE.woff2 +0 -0
- package/dist/client/_assets/chunks/d675d717cd329bfd4c0524f76ae1579c-Bd5_ctoQ.woff2 +0 -0
- package/dist/client/_assets/chunks/d689b1861d7e4377dd72ad3013482612-jPsVOU3F.woff2 +0 -0
- package/dist/client/_assets/chunks/d6bb686bddfbe8f38a36a68e609a8667-C_QduS-X.woff2 +0 -0
- package/dist/client/_assets/chunks/d9020ff69a83b2a6ee1f42ae480f7db0-DLBUPMCe.woff2 +0 -0
- package/dist/client/_assets/chunks/d9047070d72a816b3dba9d40c2d85e69-LTQ42vEp.woff2 +0 -0
- package/dist/client/_assets/chunks/da04549f3f4ed28076b01b8cd710d313-CDXOeduw.woff2 +0 -0
- package/dist/client/_assets/chunks/da7af303f8c645f9a9dbae0e6e32dd35-DCkS2jqi.woff2 +0 -0
- package/dist/client/_assets/chunks/da90a9012ab2d98f759e3fa0820ef502-D0D9d1zg.woff2 +0 -0
- package/dist/client/_assets/chunks/dc6e234ded795e91f76d6647f628fbf0-IkooXcRh.woff2 +0 -0
- package/dist/client/_assets/chunks/dc8f6256445e68199540be9ade33529f-umb5tWbZ.woff2 +0 -0
- package/dist/client/_assets/chunks/dd0cfdfdac0866e66d587e2b5a9e9961-bl4ozE0c.woff2 +0 -0
- package/dist/client/_assets/chunks/de304c8a02e45ded4f8dcc479d167198-ClRu89-4.woff2 +0 -0
- package/dist/client/_assets/chunks/df10d94bea357a43313e20da5d84bd30-CmAgh2oA.woff2 +0 -0
- package/dist/client/_assets/chunks/df9568257eb29b156449fdd4bec5ec76-BMz6aLRr.woff2 +0 -0
- package/dist/client/_assets/chunks/e067cd0ed76c90cd0a93c9339253f20b-6RxCQ4jy.woff2 +0 -0
- package/dist/client/_assets/chunks/e08b07772e7bed3cec2832d43f7fd339-CQCkeKsr.woff2 +0 -0
- package/dist/client/_assets/chunks/e12150d5a39b30be8f567968c7a527b0-DjdoWzeQ.woff2 +0 -0
- package/dist/client/_assets/chunks/e34b2b141e472dc776c86fdf8eea23b0-Cjk7H-Ev.woff2 +0 -0
- package/dist/client/_assets/chunks/e444fd88f1390636e603d0d681538ac8-Bx7CPOZh.woff2 +0 -0
- package/dist/client/_assets/chunks/e53fcb2381eee345db4f6f973dd95a3e-DmkkCUWz.woff2 +0 -0
- package/dist/client/_assets/chunks/e5bd313ef81f687d398aacb11cec3069-CwBEbcji.woff2 +0 -0
- package/dist/client/_assets/chunks/e79898628283edc27180fc39d0d769c1-By2pplQz.woff2 +0 -0
- package/dist/client/_assets/chunks/e8c15be62faf978d208925e79ea6a10d-Ct5M9lTP.woff2 +0 -0
- package/dist/client/_assets/chunks/e8c364c16daa04835bf32d293d2598db-3v4Tut_d.woff2 +0 -0
- package/dist/client/_assets/chunks/e91c4d941ed9f5c2f3e27f205a3a225e-BwOJ2Lst.woff2 +0 -0
- package/dist/client/_assets/chunks/e9c566be7a5d38a9085225f7372bc82b-BCtnCVML.woff2 +0 -0
- package/dist/client/_assets/chunks/e9ebc567a711eeb29019ddae3e0ce7fe-CnNhV49O.woff2 +0 -0
- package/dist/client/_assets/chunks/eaf332445a40942928e5f5750c1c3116-qZ5LSRrj.woff2 +0 -0
- package/dist/client/_assets/chunks/eb5afb3d952b8593782caec6026514b6-BXugZF2T.woff2 +0 -0
- package/dist/client/_assets/chunks/ec86e23683052da5cfdc3b77641bd15a-BeLcbcRc.woff2 +0 -0
- package/dist/client/_assets/chunks/ecb8875a56c7b038b35432fda41ae128-BVqgNf1o.woff2 +0 -0
- package/dist/client/_assets/chunks/eda1b0cb6d1719dd9bedcf3216a9e8de-BJTfLL5z.woff2 +0 -0
- package/dist/client/_assets/chunks/edd6a4f608d04fc0351d7688cfc321e4-d3V4U40c.woff2 +0 -0
- package/dist/client/_assets/chunks/ee6fce20b420a480714607c66d7f97e5-DEtC-G5G.woff2 +0 -0
- package/dist/client/_assets/chunks/eee3836d6ac17ebb2c450bbcbc9db121-C5a2TZjQ.woff2 +0 -0
- package/dist/client/_assets/chunks/et-book-bold-line-figures-BFJr2_zv.woff +0 -0
- package/dist/client/_assets/chunks/et-book-display-italic-old-style-figures-CoeRJAe8.woff +0 -0
- package/dist/client/_assets/chunks/et-book-roman-line-figures-CaA40oOf.woff +0 -0
- package/dist/client/_assets/chunks/f1661731474b78bdf81114daf10b254f-KnMKX_U3.woff2 +0 -0
- package/dist/client/_assets/chunks/f2c58dee206ba9355046fc23d05491f7-Cm4tCWav.woff2 +0 -0
- package/dist/client/_assets/chunks/f50ac27ea4358d67fdda403c2bb52467-WCfYHde1.woff2 +0 -0
- package/dist/client/_assets/chunks/f55334112f8e8be82d65db29887a663f-vDq1zH8k.woff2 +0 -0
- package/dist/client/_assets/chunks/f5738255e92d8dd34a46d1bcdf4c4074-tpghTzL1.woff2 +0 -0
- package/dist/client/_assets/chunks/f740e93f3c0277ecc616594103bca683-C4BgW_ko.woff2 +0 -0
- package/dist/client/_assets/chunks/f7633b5af033d76ff2fb3c3c266d77c5-BCkrZxwO.woff2 +0 -0
- package/dist/client/_assets/chunks/f7d8468cba2335a83ee414ea68291bab-CVnotkZU.woff2 +0 -0
- package/dist/client/_assets/chunks/f91cd722855f4269256eae1187df64ec-DJlAx1A_.woff2 +0 -0
- package/dist/client/_assets/chunks/f9695c6c4df2bf6bc03045ff79d4f01f-DDaYGYHT.woff2 +0 -0
- package/dist/client/_assets/chunks/fa6e58ce4b52695e7ae19bbea6336ec8-B30jEpze.woff2 +0 -0
- package/dist/client/_assets/chunks/fada6eaa68ff8816afe43d2a36c5423e-DlGAWNPb.woff2 +0 -0
- package/dist/client/_assets/chunks/fbcc4bf5367218951172bdee6f77d7a6-Dax2VSCd.woff2 +0 -0
- package/dist/client/_assets/chunks/fc895f5ce66b656f4a933097bf2a8775-DjjysNdf.woff2 +0 -0
- package/dist/client/_assets/chunks/fc9ae5b600fb711f2d67e93ce768cba4-D1lx7LBz.woff2 +0 -0
- package/dist/client/_assets/chunks/fca6720fd14c467d29a90f18ef3859b9-B3btrwq3.woff2 +0 -0
- package/dist/client/_assets/chunks/fd1bb507bcbf04856eeb7f7fd47ea579-NR1nGJTt.woff2 +0 -0
- package/dist/client/_assets/chunks/fd1bceb55d3e0183ac2454b8532fec7d-D3t-v6nn.woff2 +0 -0
- package/dist/client/_assets/chunks/fd2069e6e8588c70b4f11364093b81f2-BoXhYVgw.woff2 +0 -0
- package/dist/client/_assets/chunks/{url-CG0eolsk.js → url-pLre2DM_.js} +1 -1
- package/dist/client/_assets/client-C_kImWZj.css +2 -0
- package/dist/client/_assets/client-D95FNDg5.js +272 -0
- package/dist/client/_assets/client-auth-BRFl5zQA.js +4547 -0
- package/dist/client/_assets/client-cjk-jp-DZwrTzQC.css +1 -0
- package/dist/client/_assets/client-cjk-kr-_3ZNI2ZP.css +1 -0
- package/dist/env-wCpMcNXs.js +252 -0
- package/dist/github-api-CficQztC.js +176 -0
- package/dist/github-app-F4qZ05xk.js +275 -0
- package/dist/github-sync-zohnA9qv.js +4696 -0
- package/dist/index.js +88 -2
- package/dist/node.js +71 -30
- package/dist/url-FvvgARU9.js +305 -0
- package/package.json +16 -12
- package/src/__tests__/bin/content-cli.test.ts +179 -0
- package/src/__tests__/bin/media-cli.test.ts +192 -0
- package/src/__tests__/export-hugo-build.test.ts +178 -0
- package/src/__tests__/export-import-roundtrip.test.ts +265 -0
- package/src/__tests__/export-service.test.ts +763 -510
- package/src/__tests__/helpers/export-fixtures.ts +108 -0
- package/src/__tests__/import-site-command.test.ts +358 -350
- package/src/__tests__/site-pull-media.test.ts +256 -0
- package/src/app.tsx +60 -13
- package/src/client/__tests__/collection-form-bridge.test.ts +87 -7
- package/src/client/__tests__/collection-page-actions.test.ts +4 -4
- package/src/client/__tests__/collection-picker-order.test.ts +53 -0
- package/src/client/__tests__/collection-sort-menu.test.ts +2 -2
- package/src/client/__tests__/compose-bridge.test.ts +305 -13
- package/src/client/__tests__/compose-launch.test.ts +120 -0
- package/src/client/__tests__/compose-shortcuts.test.ts +141 -0
- package/src/client/__tests__/feed-video-player.test.ts +44 -0
- package/src/client/__tests__/site-header-nav.test.ts +250 -0
- package/src/client/__tests__/sortable-list.test.ts +6 -2
- package/src/client/__tests__/thread-context.test.ts +117 -0
- package/src/client/collection-form-bridge.ts +109 -4
- package/src/client/collection-page-actions.ts +3 -1
- package/src/client/collection-picker-order.ts +104 -0
- package/src/client/components/__tests__/{jant-collection-sidebar.test.ts → jant-collection-directory.test.ts} +91 -10
- package/src/client/components/__tests__/jant-collection-form.test.ts +40 -18
- package/src/client/components/__tests__/jant-compose-dialog.test.ts +1285 -66
- package/src/client/components/__tests__/jant-compose-editor.test.ts +254 -19
- package/src/client/components/__tests__/jant-compose-fullscreen.test.ts +127 -1
- package/src/client/components/__tests__/jant-media-lightbox.test.ts +237 -0
- package/src/client/components/__tests__/jant-nav-manager.test.ts +326 -0
- package/src/client/components/__tests__/jant-post-menu.test.ts +372 -2
- package/src/client/components/__tests__/jant-settings-avatar.test.ts +61 -5
- package/src/client/components/__tests__/jant-settings-general.test.ts +29 -28
- package/src/client/components/__tests__/jant-text-preview.test.ts +206 -0
- package/src/client/components/collection-manager-types.ts +18 -1
- package/src/client/components/compose-types.ts +48 -0
- package/src/client/components/jant-collection-directory.ts +1448 -0
- package/src/client/components/jant-collection-form.ts +65 -17
- package/src/client/components/jant-command-palette.ts +544 -0
- package/src/client/components/jant-compose-dialog.ts +2490 -375
- package/src/client/components/jant-compose-editor.ts +420 -75
- package/src/client/components/jant-compose-fullscreen.ts +59 -8
- package/src/client/components/jant-media-lightbox.ts +373 -18
- package/src/client/components/jant-nav-manager.ts +624 -286
- package/src/client/components/jant-post-menu.ts +451 -126
- package/src/client/components/jant-repo-picker-types.ts +39 -0
- package/src/client/components/jant-repo-picker.ts +799 -0
- package/src/client/components/jant-settings-avatar.ts +16 -2
- package/src/client/components/jant-settings-general.ts +137 -35
- package/src/client/components/jant-text-preview.ts +239 -55
- package/src/client/components/nav-manager-types.ts +25 -9
- package/src/client/components/settings-types.ts +13 -2
- package/src/client/compose-bridge.ts +428 -68
- package/src/client/compose-launch.ts +41 -4
- package/src/client/compose-shortcuts.ts +77 -5
- package/src/client/feed-video-player.ts +374 -0
- package/src/client/image-processor.ts +53 -127
- package/src/client/media-lightbox-events.ts +1 -0
- package/src/client/media-scroll-hint.ts +66 -0
- package/src/client/multipart-upload.ts +4 -1
- package/src/client/palette-shortcuts.ts +35 -0
- package/src/client/search-rank.ts +74 -0
- package/src/client/settings-bridge.ts +7 -0
- package/src/client/site-header-nav.d.ts +1 -0
- package/src/client/site-header-nav.js +139 -51
- package/src/client/sortable-list.ts +2 -0
- package/src/client/thread-context.ts +54 -11
- package/src/client/tiptap/__tests__/block-insertion.test.ts +65 -0
- package/src/client/tiptap/__tests__/footnotes.test.ts +692 -0
- package/src/client/tiptap/__tests__/link-toolbar.test.ts +120 -4
- package/src/client/tiptap/__tests__/markdown-clipboard.test.ts +48 -0
- package/src/client/tiptap/block-insertion.ts +36 -0
- package/src/client/tiptap/bubble-menu.ts +34 -4
- package/src/client/tiptap/create-editor.ts +49 -30
- package/src/client/tiptap/embed-dialog.ts +301 -0
- package/src/client/tiptap/embed-node.ts +373 -0
- package/src/client/tiptap/embed-paste.ts +91 -0
- package/src/client/tiptap/extensions.ts +77 -28
- package/src/client/tiptap/footnotes.ts +718 -0
- package/src/client/tiptap/html-block-node.ts +222 -0
- package/src/client/tiptap/image-node.ts +49 -6
- package/src/client/tiptap/inline-image-upload.ts +200 -40
- package/src/client/tiptap/link-input-rules.ts +50 -16
- package/src/client/tiptap/link-toolbar.ts +156 -133
- package/src/client/tiptap/markdown-clipboard.ts +120 -0
- package/src/client/tiptap/more-break.ts +36 -3
- package/src/client/tiptap/paste-media.ts +6 -0
- package/src/client/tiptap/slash-commands.ts +167 -14
- package/src/client/tiptap/tab-indent.ts +184 -0
- package/src/client/tiptap/toolbar-mode.ts +15 -2
- package/src/client/tiptap/wrapping-input-rules.ts +102 -0
- package/src/client/types/sortablejs.d.ts +9 -1
- package/src/client/upload-session.ts +2 -1
- package/src/client/video-processor.ts +177 -20
- package/src/client-auth.ts +9 -1
- package/src/client-site.ts +15 -0
- package/src/client.ts +2 -0
- package/src/db/__tests__/demo-canonical-snapshot.test.ts +1 -1
- package/src/db/__tests__/migration-rehearsal.test.ts +5 -1
- package/src/db/__tests__/migrations.test.ts +25 -2
- package/src/db/backfills/0001_strip_collection_path_c_prefix.sql +11 -0
- package/src/db/backfills/0002_strip_collection_path_c_prefix_fix.sql +12 -0
- package/src/db/backfills/0003_clear_system_nav_default_labels.sql +15 -0
- package/src/db/dialect.ts +40 -0
- package/src/db/migrations/0005_busy_the_phantom.sql +39 -0
- package/src/db/migrations/0006_adorable_magdalene.sql +3 -0
- package/src/db/migrations/0007_unusual_warstar.sql +1 -0
- package/src/db/migrations/0008_nasty_lockheed.sql +1 -0
- package/src/db/migrations/0009_clear_fixer.sql +31 -0
- package/src/db/migrations/0010_futuristic_preak.sql +31 -0
- package/src/db/migrations/0011_bizarre_smasher.sql +30 -0
- package/src/db/migrations/0012_furry_thena.sql +52 -0
- package/src/db/migrations/0013_mixed_lightspeed.sql +39 -0
- package/src/db/migrations/0014_high_the_santerians.sql +41 -0
- package/src/db/migrations/0015_skinny_shinobi_shaw.sql +1 -0
- package/src/db/migrations/0016_remarkable_nicolaos.sql +17 -0
- package/src/db/migrations/0017_powerful_moonstone.sql +14 -0
- package/src/db/migrations/meta/0005_snapshot.json +1904 -0
- package/src/db/migrations/meta/0006_snapshot.json +1925 -0
- package/src/db/migrations/meta/0007_snapshot.json +1933 -0
- package/src/db/migrations/meta/0008_snapshot.json +1940 -0
- package/src/db/migrations/meta/0009_snapshot.json +1952 -0
- package/src/db/migrations/meta/0010_snapshot.json +1952 -0
- package/src/db/migrations/meta/0011_snapshot.json +1948 -0
- package/src/db/migrations/meta/0012_snapshot.json +1955 -0
- package/src/db/migrations/meta/0013_snapshot.json +1977 -0
- package/src/db/migrations/meta/0014_snapshot.json +1988 -0
- package/src/db/migrations/meta/0015_snapshot.json +1995 -0
- package/src/db/migrations/meta/0016_snapshot.json +2104 -0
- package/src/db/migrations/meta/0017_snapshot.json +2188 -0
- package/src/db/migrations/meta/_journal.json +92 -1
- package/src/db/migrations/pg/0003_motionless_norrin_radd.sql +21 -0
- package/src/db/migrations/pg/0004_nervous_captain_midlands.sql +3 -0
- package/src/db/migrations/pg/0005_romantic_mesmero.sql +1 -0
- package/src/db/migrations/pg/0006_perpetual_bruce_banner.sql +1 -0
- package/src/db/migrations/pg/0007_nav_item_placement.sql +1 -0
- package/src/db/migrations/pg/0008_yielding_frightful_four.sql +3 -0
- package/src/db/migrations/pg/0009_outstanding_ogun.sql +1 -0
- package/src/db/migrations/pg/0010_overjoyed_gertrude_yorkes.sql +28 -0
- package/src/db/migrations/pg/0011_fixed_hulk.sql +19 -0
- package/src/db/migrations/pg/0012_cute_shockwave.sql +2 -0
- package/src/db/migrations/pg/0013_bizarre_obadiah_stane.sql +1 -0
- package/src/db/migrations/pg/0014_tearful_grim_reaper.sql +16 -0
- package/src/db/migrations/pg/0015_daffy_mikhail_rasputin.sql +14 -0
- package/src/db/migrations/pg/meta/0003_snapshot.json +2482 -0
- package/src/db/migrations/pg/meta/0004_snapshot.json +2500 -0
- package/src/db/migrations/pg/meta/0005_snapshot.json +2507 -0
- package/src/db/migrations/pg/meta/0006_snapshot.json +2513 -0
- package/src/db/migrations/pg/meta/0008_snapshot.json +2524 -0
- package/src/db/migrations/pg/meta/0009_snapshot.json +2520 -0
- package/src/db/migrations/pg/meta/0010_snapshot.json +2526 -0
- package/src/db/migrations/pg/meta/0011_snapshot.json +2563 -0
- package/src/db/migrations/pg/meta/0012_snapshot.json +2573 -0
- package/src/db/migrations/pg/meta/0013_snapshot.json +2579 -0
- package/src/db/migrations/pg/meta/0014_snapshot.json +2702 -0
- package/src/db/migrations/pg/meta/0015_snapshot.json +2803 -0
- package/src/db/migrations/pg/meta/_journal.json +92 -1
- package/src/db/pg/__tests__/node.test.ts +38 -0
- package/src/db/pg/node.ts +149 -0
- package/src/db/pg/schema.ts +130 -12
- package/src/db/rehearsal-fixtures/demo-current.sql +47 -3
- package/src/db/schema.ts +139 -12
- package/src/i18n/Trans.tsx +3 -3
- package/src/i18n/__tests__/context.test.tsx +9 -6
- package/src/i18n/__tests__/detect.test.ts +65 -48
- package/src/i18n/__tests__/fallback.test.ts +40 -0
- package/src/i18n/__tests__/message-placeholders.test.ts +43 -0
- package/src/i18n/__tests__/middleware.test.ts +83 -0
- package/src/i18n/context.tsx +9 -44
- package/src/i18n/detect.ts +95 -28
- package/src/i18n/i18n.ts +41 -17
- package/src/i18n/index.ts +7 -5
- package/src/i18n/locales/{en.po → public/en.po} +284 -1151
- package/src/i18n/locales/public/en.ts +1 -0
- package/src/i18n/locales/public/zh-Hans.po +2327 -0
- package/src/i18n/locales/public/zh-Hans.ts +1 -0
- package/src/i18n/locales/public/zh-Hant.po +2327 -0
- package/src/i18n/locales/public/zh-Hant.ts +1 -0
- package/src/i18n/locales/settings/en.po +1622 -0
- package/src/i18n/locales/settings/en.ts +1 -0
- package/src/i18n/locales/settings/zh-Hans.po +1622 -0
- package/src/i18n/locales/settings/zh-Hans.ts +1 -0
- package/src/i18n/locales/settings/zh-Hant.po +1622 -0
- package/src/i18n/locales/settings/zh-Hant.ts +1 -0
- package/src/i18n/middleware.ts +37 -24
- package/src/index.ts +4 -5
- package/src/lib/__tests__/collection-groups.test.ts +17 -0
- package/src/lib/__tests__/constants.test.ts +2 -24
- package/src/lib/__tests__/csp-builder.test.ts +68 -0
- package/src/lib/__tests__/display-text.test.ts +27 -0
- package/src/lib/__tests__/embed-providers.test.ts +104 -0
- package/src/lib/__tests__/embed-render.test.ts +60 -0
- package/src/lib/__tests__/feed.test.ts +125 -63
- package/src/lib/__tests__/hosted-signin.test.ts +11 -2
- package/src/lib/__tests__/markdown-roundtrip-embed.test.ts +88 -0
- package/src/lib/__tests__/markdown-to-tiptap.test.ts +59 -0
- package/src/lib/__tests__/markdown.test.ts +47 -5
- package/src/lib/__tests__/navigation.test.ts +148 -0
- package/src/lib/__tests__/post-display.test.ts +3 -2
- package/src/lib/__tests__/post-meta.test.ts +3 -0
- package/src/lib/__tests__/resolve-config.test.ts +30 -25
- package/src/lib/__tests__/schemas.test.ts +20 -3
- package/src/lib/__tests__/summary.test.ts +400 -1
- package/src/lib/__tests__/theme.test.ts +41 -2
- package/src/lib/__tests__/timeline.test.ts +33 -27
- package/src/lib/__tests__/tiptap-render.test.ts +224 -0
- package/src/lib/__tests__/tiptap-to-markdown.test.ts +51 -0
- package/src/lib/__tests__/video-playback.test.ts +48 -0
- package/src/lib/__tests__/view.test.ts +115 -8
- package/src/lib/__tests__/worker-response-cache.test.ts +311 -0
- package/src/lib/__tests__/youtube.test.ts +99 -0
- package/src/lib/api-media.ts +55 -0
- package/src/lib/api-posts.ts +99 -0
- package/src/lib/api-search.ts +47 -0
- package/src/lib/api-settings.ts +122 -0
- package/src/lib/asset-path.ts +20 -2
- package/src/lib/collection-groups.ts +2 -1
- package/src/lib/collection-paths.ts +40 -0
- package/src/lib/constants.ts +3 -24
- package/src/lib/csp-builder.ts +99 -0
- package/src/lib/decorative-quote-mark.ts +11 -0
- package/src/lib/display-text.ts +56 -0
- package/src/lib/embed-providers.ts +289 -0
- package/src/lib/embed-render.ts +151 -0
- package/src/lib/env.ts +70 -1
- package/src/lib/excerpt.ts +11 -2
- package/src/lib/feed.ts +89 -66
- package/src/lib/footnotes.ts +146 -0
- package/src/lib/github-api.ts +423 -0
- package/src/lib/github-app-state.ts +135 -0
- package/src/lib/github-app.ts +487 -0
- package/src/lib/github-sync-queue-handler.ts +69 -0
- package/src/lib/github-sync-site-config.ts +57 -0
- package/src/lib/github-sync-status.tsx +87 -0
- package/src/lib/github-sync-trigger.ts +199 -0
- package/src/lib/github-sync-worker.ts +72 -0
- package/src/lib/hosted-signin.ts +1 -1
- package/src/lib/hugo-markdown.ts +255 -0
- package/src/lib/job-queue-cf.ts +18 -0
- package/src/lib/job-queue-db.ts +149 -0
- package/src/lib/job-queue.ts +35 -0
- package/src/lib/markdown-manager.ts +864 -0
- package/src/lib/markdown-to-tiptap.ts +4 -323
- package/src/lib/markdown.ts +16 -24
- package/src/lib/media-helpers.ts +1 -0
- package/src/lib/navigation.ts +40 -8
- package/src/lib/post-display.ts +10 -22
- package/src/lib/public-storage.ts +6 -1
- package/src/lib/render.tsx +5 -2
- package/src/lib/resolve-config.ts +23 -11
- package/src/lib/rich-image.ts +89 -0
- package/src/lib/schemas.ts +180 -13
- package/src/lib/summary.ts +125 -18
- package/src/lib/theme.ts +119 -0
- package/src/lib/timeline.ts +63 -42
- package/src/lib/tiptap-render.ts +265 -126
- package/src/lib/tiptap-to-markdown.ts +6 -329
- package/src/lib/upload.ts +97 -6
- package/src/lib/version.ts +18 -0
- package/src/lib/video-playback.ts +73 -0
- package/src/lib/view.ts +130 -90
- package/src/lib/webhook-signature.ts +65 -0
- package/src/lib/worker-response-cache.ts +220 -0
- package/src/lib/youtube.ts +119 -0
- package/src/middleware/__tests__/onboarding.test.ts +3 -3
- package/src/middleware/__tests__/secure-headers.test.ts +28 -1
- package/src/middleware/config.ts +7 -10
- package/src/middleware/cors.ts +49 -0
- package/src/middleware/secure-headers.ts +45 -55
- package/src/node/__tests__/cli-migrate.test.ts +111 -0
- package/src/node/__tests__/cli-runtime-target.test.ts +1 -1
- package/src/node/__tests__/cli-site-token-env.test.ts +2 -2
- package/src/preset.css +316 -12
- package/src/routes/__tests__/compose.test.ts +3 -1
- package/src/routes/api/__tests__/collections.test.ts +81 -27
- package/src/routes/api/__tests__/mcp.test.ts +389 -0
- package/src/routes/api/__tests__/nav-items.test.ts +163 -2
- package/src/routes/api/__tests__/posts.test.ts +190 -0
- package/src/routes/api/__tests__/settings.test.ts +99 -3
- package/src/routes/api/__tests__/upload-multipart.test.ts +10 -2
- package/src/routes/api/__tests__/upload.test.ts +132 -0
- package/src/routes/api/__tests__/uploads.test.ts +5 -3
- package/src/routes/api/collections.ts +67 -26
- package/src/routes/api/custom-urls.ts +1 -0
- package/src/routes/api/export.ts +8 -4
- package/src/routes/api/github-sync.tsx +380 -0
- package/src/routes/api/internal/__tests__/sites.test.ts +45 -2
- package/src/routes/api/internal/sites.ts +2 -0
- package/src/routes/api/internal/text-attachments.ts +60 -0
- package/src/routes/api/internal/uploads.ts +5 -1
- package/src/routes/api/mcp.ts +30 -0
- package/src/routes/api/nav-items.ts +30 -11
- package/src/routes/api/palette.ts +17 -0
- package/src/routes/api/posts.ts +37 -106
- package/src/routes/api/public/__tests__/posts.test.ts +372 -0
- package/src/routes/api/public/posts.ts +302 -0
- package/src/routes/api/search.ts +1 -47
- package/src/routes/api/settings.ts +44 -58
- package/src/routes/api/upload-multipart.ts +15 -5
- package/src/routes/api/upload.ts +62 -49
- package/src/routes/api/uploads.ts +1 -0
- package/src/routes/auth/__tests__/hosted-sso.test.ts +33 -0
- package/src/routes/auth/__tests__/setup.test.ts +29 -4
- package/src/routes/auth/hosted-sso-expired-page.tsx +89 -0
- package/src/routes/auth/hosted-sso.ts +42 -1
- package/src/routes/auth/reset.tsx +46 -32
- package/src/routes/auth/setup.tsx +53 -43
- package/src/routes/auth/signin.tsx +34 -24
- package/src/routes/compose.tsx +114 -1
- package/src/routes/dash/__tests__/font-theme.test.ts +6 -27
- package/src/routes/dash/__tests__/settings-avatar.test.ts +2 -3
- package/src/routes/dash/custom-urls.tsx +250 -112
- package/src/routes/dash/settings.tsx +1179 -70
- package/src/routes/feed/__tests__/{rss.test.ts → feed.test.ts} +62 -123
- package/src/routes/feed/feed.ts +386 -0
- package/src/routes/feed/manifest.ts +67 -0
- package/src/routes/feed/sitemap.ts +11 -2
- package/src/routes/pages/__tests__/collection-routing.test.ts +176 -0
- package/src/routes/pages/__tests__/collections.test.ts +2 -3
- package/src/routes/pages/__tests__/featured.test.ts +2 -3
- package/src/routes/pages/archive.tsx +523 -127
- package/src/routes/pages/collection.tsx +197 -43
- package/src/routes/pages/collections.tsx +5 -1
- package/src/routes/pages/home.tsx +2 -2
- package/src/routes/pages/latest.tsx +3 -3
- package/src/routes/pages/page.tsx +221 -3
- package/src/routes/pages/partials.tsx +5 -0
- package/src/routes/pages/search.tsx +17 -1
- package/src/routes/pages/theme-sample.tsx +1 -2
- package/src/runtime/__tests__/node.test.ts +1 -1
- package/src/runtime/readiness.ts +1 -1
- package/src/runtime/site.ts +9 -1
- package/src/services/__tests__/collection.test.ts +137 -54
- package/src/services/__tests__/github-app-installations.test.ts +181 -0
- package/src/services/__tests__/github-sync-classify.test.ts +189 -0
- package/src/services/__tests__/github-sync-push.test.ts +159 -0
- package/src/services/__tests__/media.test.ts +444 -7
- package/src/services/__tests__/navigation.test.ts +271 -14
- package/src/services/__tests__/post-timeline.test.ts +31 -21
- package/src/services/__tests__/post.test.ts +83 -9
- package/src/services/__tests__/settings.test.ts +43 -21
- package/src/services/auth.ts +2 -2
- package/src/services/bootstrap.ts +10 -7
- package/src/services/collection.ts +591 -193
- package/src/services/custom-url.ts +34 -7
- package/src/services/export-theme/assets/client-site.css +2 -0
- package/src/services/export-theme/assets/client-site.js +145 -0
- package/src/services/export-theme/layouts/_default/alias.html +49 -0
- package/src/services/export-theme/layouts/_default/baseof.html +21 -0
- package/src/services/export-theme/layouts/_default/list.html +104 -0
- package/src/services/export-theme/layouts/_default/rss.xml +160 -0
- package/src/services/export-theme/layouts/_default/single.html +15 -0
- package/src/services/export-theme/layouts/archive/list.html +31 -0
- package/src/services/export-theme/layouts/collection/single.html +19 -0
- package/src/services/export-theme/layouts/collections/list.html +111 -0
- package/src/services/export-theme/layouts/featured/list.html +28 -0
- package/src/services/export-theme/layouts/index.html +41 -0
- package/src/services/export-theme/layouts/partials/feed-post-content.xml +107 -0
- package/src/services/export-theme/layouts/partials/footer.html +32 -0
- package/src/services/export-theme/layouts/partials/head.html +52 -0
- package/src/services/export-theme/layouts/partials/header.html +115 -0
- package/src/services/export-theme/layouts/partials/media-gallery.html +246 -0
- package/src/services/export-theme/layouts/partials/pagination.html +55 -0
- package/src/services/export-theme/layouts/partials/post-card.html +127 -0
- package/src/services/export-theme/layouts/partials/reply.html +91 -0
- package/src/services/export-theme/layouts/partials/thread-preview.html +82 -0
- package/src/services/export-theme/layouts/post/list.html +129 -0
- package/src/services/export-theme/styles/main.css +1981 -0
- package/src/services/export-theme/theme.toml +12 -0
- package/src/services/export.ts +1365 -2412
- package/src/services/github-app-installations.ts +302 -0
- package/src/services/github-sync.ts +769 -0
- package/src/services/index.ts +15 -0
- package/src/services/mcp.ts +1324 -0
- package/src/services/media.ts +336 -25
- package/src/services/navigation.ts +115 -23
- package/src/services/path.ts +129 -28
- package/src/services/post.ts +658 -195
- package/src/services/search.ts +3 -0
- package/src/services/settings.ts +29 -15
- package/src/services/site-admin.ts +26 -6
- package/src/services/upload-session.ts +69 -34
- package/src/style-cjk-jp.css +3 -0
- package/src/style-cjk-kr.css +3 -0
- package/src/styles/components.css +160 -59
- package/src/styles/fonts/et-book/et-book-bold-line-figures.woff +0 -0
- package/src/styles/fonts/et-book/et-book-display-italic-old-style-figures.woff +0 -0
- package/src/styles/fonts/et-book/et-book-roman-line-figures.woff +0 -0
- package/src/styles/fonts/et-book.css +31 -0
- package/src/styles/fonts/latin.css +1 -0
- package/src/styles/fonts/noto-serif-jp/400/057a6a98bda7fe57105ddaa99ec82015.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/0acd1fe2b2ea1ad1bfee7ae1fa139d27.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/0c2ab6b295e55f356f8020d4e7747522.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/0c5f9492af03a4fa42c784de94649de1.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/0d9a936885a4c39077438effd3779cbd.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/0e645da524f7cfc0e8c3c03fb2b08428.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/135e83b403475c5dc9e49b43501a5b84.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/13b2c53b30e6a3e4de7132dbc18dbdfc.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/15d95680dc31cc6ce20e0a5464106dc4.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/1733f27476507ca68b68a803bc533cc2.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/188c2db794f3dd7a45889ddbc81da9bb.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/1cf737900dd49c2e88f1b3221a82a602.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/233d3a685ee18276b319363474599d47.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/284b53bbefb06924cf236d24c8ed5641.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/2a56eaf19d1d38a6b57e2a388f733676.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/2abfbab82b6a7c04426afc054d2464da.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/2e6f4bb71ef6b38765d51acc5a79f638.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/31194d303a67561926a544ed0e072aee.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/3623d96698132c61e861f984ce11cc23.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/39211b02f24c69cbd1b54f6d41b01933.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/3e24063b19abd2b051af986a6870046d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/4410f876d27c9821839474b6b1059fd7.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/479329a39a3eb6c0047e6b0981919855.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/527ff336279465617aafbafe1a830632.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/56b40518ea0608e62826bd44ee27f5f9.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/5acc7f736217259db79a42bf44241c48.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/5c05f8b75c9d7f25b3c04ca711cf43b3.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/5e0124c7265f1b4cf0fc797b94efbebc.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/615a7e0d63f257109d599b2a1977de68.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/61a2c80d0c924d5a6187c02e8d1d1642.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/62fc94f8d4c5a750b7f25e7387539910.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/639c7c6b0b0c27c738702741cfa4b8c0.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/68a3a4bf337f8a0722be76676e20b850.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/6abdd163d2c4b85698db8aa1ce149361.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/73b794d885b88f7befb7ea8ab1780a15.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/743f290baf027d4626a86e22f3d44600.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/757019c01c5e2c2b0f54293cea3b5636.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/76f117a3baacda304a71965a17266a13.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/77747f17625a259fb405b7bbdd84ac4b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/788498548ddfb710d6ef3c7bff79fa97.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/78ea6c40923ce95367e3517dd1e5a849.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/7f9a6c9286b68de9c72b0024f7beeb40.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/823d1bb11097331238d103c7f72138dc.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/888ba53510213d5d1f6a7deb60e569b6.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/892aa49b2529c89bb4076d4aa51fe30f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/95ff41191c76ef893ac70a1043e95e44.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/96c75862c8cec51a7c05ff025fea86cd.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/9b21e8244f5930c48ad5073f83777b6c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/9fce02d1a09f464c36c9fcfb14a354c5.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/a0a6755c7e3f9e4cf03387027dd9f16c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/a4475c442c6b259354c9eda62e64e7df.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/a4a39b5f048671aa37c2b2a9581ab08a.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/a534449d67561ac9b06489f64e57ad98.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/a919a8c6fec6d7e8bb21177965f2e9d7.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/ad67113f88b59582991cb0c5d33ea19f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/adb6e613fb99c6dd660b727101f554a8.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/adc4a98a89870ef984ee8f4b57c8a3a5.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/b12379ab782468d725519cd07a7d15bc.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/b55486f8a459c838fe329d4e79a8c211.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/bb0b15492b8cdbbec57c0bcfa0aa9241.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/bedc74b423b7293b6ad0bdecc61c42cc.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/bfb00d4a4c48661bd0be99f300a0faae.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/c1b0df29ae41d764904df84e9ac83d1e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/c42c67070cfe99cf823df92d81c7fa6e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/c4d749e45ecd5a5aed5a0bb3ebfd355d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/c96d83978add28b356c22c4c84916733.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/cb7ccd6494256f7a2977b7c2b0225592.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/ce41d70ce6a069a498525c9e15c45cf2.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/d509ee5c8241bc7c3de2039d75564fa5.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/d675d717cd329bfd4c0524f76ae1579c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/dc8f6256445e68199540be9ade33529f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/e8c15be62faf978d208925e79ea6a10d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/e91c4d941ed9f5c2f3e27f205a3a225e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/e9c566be7a5d38a9085225f7372bc82b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/e9ebc567a711eeb29019ddae3e0ce7fe.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/ecb8875a56c7b038b35432fda41ae128.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/f1661731474b78bdf81114daf10b254f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/f2c58dee206ba9355046fc23d05491f7.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/f50ac27ea4358d67fdda403c2bb52467.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/f55334112f8e8be82d65db29887a663f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/f740e93f3c0277ecc616594103bca683.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/f7633b5af033d76ff2fb3c3c266d77c5.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/f7d8468cba2335a83ee414ea68291bab.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/fc9ae5b600fb711f2d67e93ce768cba4.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/400/fd1bceb55d3e0183ac2454b8532fec7d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/02611a045a7fe83a12014e3debc9f731.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/0f5e1a18987dbc84ca05188c129e1936.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/112743a4ab5fdd1498dfdf2b11336380.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/1211f03d3ff5759a702631445793f60e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/147b24c2f08d03bbed30887d4cb3311c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/16663e567f81f4725a1522f37e18f71f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/1824321da801e6257b902f3d1d09054c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/1a3a92c7c060a71a6c35819b9ebcdbb9.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/1fba7ec0e412e911bf31841de5a8a4e4.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/28a97af9ab9d38983d20f39ff09840e1.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/2bfaadaf3479c72286248e6de0be0ec9.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/2c8c55e4cec85ce77e95cac9d330f5cf.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/2ed9981d2e8983365bd051159b976b6d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/2f4c633e923ba30c6ba376367379fc91.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/349965eee0a9b6c984a319ab96a4ece9.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/36cda3eae13370b934bba4429fab9078.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/3aa13f1843d7c8fa16109b6395a9a29d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/3e2c06bdd9dcab29aeaeb0cfb7fa608a.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/424123f9371ba357087363263eeafcda.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/43b3bbf43055c3e65db9cdf2c5b18c1c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/44704471b60c18b3ecec5300a88f1102.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/46604090efbb99c2db1800928af0a239.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/46998df85d31e629c0142f0556f5e7c5.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/49902f1c41b281f8eb3771abdd4dccb8.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/4db4f31a16965baa42cb7dad667a8f04.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/572b9e28f1e6d89b765a16d809db84a1.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/5921cef36750ff6092d94b83a802823b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/59e95d8b5332dcdae894a19946ab767d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/5ec349ff62b9ee5fe0c6dae867704dc4.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/601f812e8b1eafecd5ba585a6a6d7962.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/6025ddaf99d86cc8bfd781006b19fbd6.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/60f6e28b3f0400b0e8fe32c3c7116102.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/64a404d675f1d726f0891b7a80794595.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/7158022889c6c177062ac85036e7af10.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/7e38ca789a9e76ac91d9256374e154f0.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/815a0b797465190f60d8b1a04656c42e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/8726558cf297cbda831cc19514897205.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/8855472f3c02f6c7ebb3216617ebe4af.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/8e231d707f0c4f8e3cde90a6b52a79aa.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/9064c12fd72c7aba235d8c3881755b91.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/911b9e53e9814de2998c60bf3115f560.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/92fdc376bce277874e75db666f175b44.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/930a23430f0eb64480d7fe5f82834e21.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/93bed0e5f2dd5a21cf73304fcfbc149d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/93f3ea6918533d96d9c252378b9a4af0.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/95a0951d2a2722ff773a1a45e8c474d6.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/982cd1765ca6bbb3e6547e47834d5148.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/9b0c3caac458c7bc9c9133e40405ddea.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/9f3bdab4025dc7c5ba1a5871e62e8918.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/a00e94d4f04df6aa659db9c4954c7efe.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/a2b0597837e382aca19919c4b74e58c8.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/a373e85c96aa0dc303092429fb837e51.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/a6e044424780a57610833cc856c15bf5.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/a7c58070d68dc1724e9d4e781afb78db.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/accc43762ad05edfbff66ba1380d192a.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/ad47bcd6d4663026d648c132d969318d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/af57a2e8c72f9ba0efb1af771d32c124.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/b0ae5f374e43dac992a4a5d334cebc0b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/b91234c10fd8b8c8abc88e03afe66a1f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/b9317198f118a1dfd8ddf2b82ec028f3.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/ba825ae79b1a6f7e0cce5215fcb5c96f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/bc6183ac08f0fac78c46f80c10cf7c92.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/bc8ccea5abf6598cf3cfa97eb59804bb.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/bc95a792cbca6639214c9b0da13392ff.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/bcfa62f35731856246c146d3a6932bf3.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/c063897793f593eb26d6ff7b7baaba18.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/c6c2971ad1f3221f6cf84028aa0f477e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/c97f41eef722121d86f55d553c056a39.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/ca62704509932d3232d62918de97af3f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/d1f064825fa5784b5c930652bd831cce.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/d2faabcedd19f016e7b21bce073c0ec8.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/d320171e57480510f87dbbc7d5264b0a.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/d3a72a99d365dddfbca8d017a8011368.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/d42aafa0f246ad3b4c16fe96d3a3a432.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/d4aaf23c13ae808a4bed617afd13aa07.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/d6bb686bddfbe8f38a36a68e609a8667.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/d9020ff69a83b2a6ee1f42ae480f7db0.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/da90a9012ab2d98f759e3fa0820ef502.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/df10d94bea357a43313e20da5d84bd30.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/e34b2b141e472dc776c86fdf8eea23b0.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/e444fd88f1390636e603d0d681538ac8.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/e79898628283edc27180fc39d0d769c1.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/eaf332445a40942928e5f5750c1c3116.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/f91cd722855f4269256eae1187df64ec.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/fc895f5ce66b656f4a933097bf2a8775.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/fca6720fd14c467d29a90f18ef3859b9.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/700/fd1bb507bcbf04856eeb7f7fd47ea579.woff2 +0 -0
- package/src/styles/fonts/noto-serif-jp/noto-serif-jp.css +3349 -0
- package/src/styles/fonts/noto-serif-kr/400/033466ef683afe931f7f520cfb42d928.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/05da12edb9d52210581dc6ec4541031f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/0968e4861204b51f62a2f8e9f15dd5e0.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/0d5dec931dc885f07fe5cd5af8bed675.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/1076f0f6f66d28d7a2f16427faad4413.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/12ef1ba76bd20b004b865266a1aa70b3.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/152395634a207579552f8cb54db88599.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/1a08931435f885e707edb85978ea3bb6.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/31a197213ae61d7043c81013f52d10d6.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/37dbd564820cce2f7b3331e442da0df3.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/37dc8505b20b37a2477a9121b16d44a7.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/3ac0a07878cacdc98bb889f40f5970d3.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/491bbba374093fff045f55803a22bfef.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/4d38e56738156625329d93bd5c8cc74a.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/57e9a86651366c1ba299e47aa7e358c2.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/57f89adeae55aa7fe2add3fc1801ce03.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/5df9ce98c75f8c50fb4fff7f01a23925.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/60020a830d809c26970cf8e48ba1eeda.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/60bcfa3ea7446eb42394aab02d28be40.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/63fafcb069520613d0ea35ad3e6b1e42.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/65a60d87c64228d258a123cbe85f5f31.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/6968e889e18891d912809fe484c2e745.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/70714891ad3fbfc3d5f10a8669dacc5a.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/761d84afca8d7f34eebefe538adba827.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/76e07530323418ec723c5d7634c9bcca.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/773819b7b9b8fd404a929867c0fd677e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/7817dd16805145d8538ad57590f69f5a.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/7b59f0ec7792b18458dc5a361e37884c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/7c3945788a689a69356c1a622d69d48b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/835b6505bb9eea9678925a1fa885353d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/8b5c9ef81159f31d2ab35f45ca4373e0.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/8b91c7c2ed390f1278b9befa3aa87233.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/8fb45117a62d92dce44a80f0b729ead5.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/90b7848e9b1623b77bdcf155e90b839c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/985d4d41afa0934a4eb2de35473fb9a2.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/9bb38fd05201de666b88b82d56a386f7.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/9eff2ab2a9d2ced47ab761bf6fdb11ec.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/9f1963fe8d4d6878d717d872a8f3fdb5.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/a0d00fe4816c95a8c7dffd445ef00b03.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/a0f199077fa1a33bc2a1e01c64de7fe6.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/a7c35e42a659347e490c3cb7983b2e7f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/aa662092cf249707123ca4d575e2764b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/aae1eda193285ab817a2d1b408440326.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/b0cb664cb2e1371efda8943c0b7dcd1c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/b0d1cdced482352cf0d3ae58638aacb9.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/b320f5d185b2cff933ac549c184031c5.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/ba9c59d7dfa4494db1bb764ada81467d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/bab547459d514f46206e340c4bb2dc88.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/bcc39eda837bb7a7a3d37c8c60fffb81.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/bd73264d7f98776708d5d6f3c9b78fcc.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/bed610b217d500f5975cfc9fe6157570.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/bf8901f8f11d4f433ea17dabc9370ea6.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/c4143bb9f2fe77b6ccf20088a8904650.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/c7ff3f6bbdcd5f604b7343602ab904df.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/c945c62368357d05a53206620460fb30.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/ce022e18a1377ac509443c3c3790b431.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/cf9cffe56636322f62b40d61130fbc5e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/d20d8944bc0b85f5b2aae4b24f343516.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/d36644d6502527e1fff205d0c7eca434.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/d40ab99c7a38026f411c8f112f742b48.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/dc6e234ded795e91f76d6647f628fbf0.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/dd0cfdfdac0866e66d587e2b5a9e9961.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/de304c8a02e45ded4f8dcc479d167198.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/e8c364c16daa04835bf32d293d2598db.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/ec86e23683052da5cfdc3b77641bd15a.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/eda1b0cb6d1719dd9bedcf3216a9e8de.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/ee6fce20b420a480714607c66d7f97e5.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/eee3836d6ac17ebb2c450bbcbc9db121.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/f5738255e92d8dd34a46d1bcdf4c4074.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/fa6e58ce4b52695e7ae19bbea6336ec8.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/400/fd2069e6e8588c70b4f11364093b81f2.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/04b8bde59cff68eeee74fb1914eb09c7.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/05ac821472e235943ed1435e4bb8ecad.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/074c1f8483d5a4d8c45c8c5f3e4cbb32.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/1380210a722ac9aeef54005ad7b015c9.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/17c7f5d0a45e92ede0e5dec3a2c77efa.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/1be602ad456b0d75902d352116cb35fd.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/2612c60f9dc5459ac42763591240a1d6.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/2ab8cf1f23a5ac7939a7876054e711a7.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/34e6750e00c3a911ef87dc66b336594d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/36f3df4730cfca4fc77fe52b52e6a126.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/37887deb7a9c466cf2af6ee7ff372ea6.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/3aba89c4d4281553078de4622b498cbb.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/3d88558097559d775231194d43745ba7.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/3dc3e8c35524cad2d1236f3393104ccf.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/45140742dfa8686b58db2899ce89f89a.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/469d2754e315e77270c12fa0ab28026c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/4c0760284569b87d8f2290c324953973.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/4cba92c942694bdc479bc54101bb1aa4.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/4e7d263c30bb48604069a3b4404d4eeb.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/5279c7e465d9871edf51fd02e691eee7.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/54bfdb6f21f9d6191e5100580239e14f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/56be5e32fd01668fe5ba814d94905839.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/615b38e0b5bb3ea68426f44f47706e6f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/65e9c4585d71bf48a5c62f367010da16.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/6b75213eb0be40ce84241eb2bb438a2e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/7520ca6ca8c60eb1e62d50e71c8d30f1.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/759a647b77791b1e98f99bc0ab5317a7.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/76e51630143b95b6322ef93ad330da7a.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/79aa7c8c842c4a27cf57c0a3a1ffca5a.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/7cc72fd2c9105560422b6a67c6162945.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/7d0ea0690e432462f4d05a23d720ec19.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/7dffa5c1bec57e0903fd62357401ff1a.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/82f6ccc063960eed1cdfd1d61ada8862.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/845b4b67564d62cf5cad242f7ac08ea5.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/84c8e7bc0931008ed91f44ed12dfea94.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/887a11290ba78b1e66c6d2f67043005e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/88db1d042074fb6e66821ffc10941930.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/8dc18c0cebe6aa4bf4c45dbb831048ab.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/919a879bd2d580d8491a31a449390689.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/91da6cb174bebfb96976e2f1316be2fe.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/934dfdbed2bb2c4b6129199d699a34fa.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/97d7a17234f2b5030ae9697ae00aded2.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/995c4fda62d25c3b79dd5987737df6ae.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/9d0afa53dc2f92ba42024f55f11f6779.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/9e13a47242926f1cd7d68c08d9ef8889.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/a379ada89abd750c587ded29f77e731c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/a48be56ce5d3a99dc8f8331398004412.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/a806759e72987951d6d08b7cbdf36a1b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/a88481ec8bc7be11cb66e46781a79bb9.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/a9a016d4a93409f65278327e8a8bb38d.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/ab92d41062a7644faa45f50bf384454a.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/b326a8a9c33b554db570da94f60bc380.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/b6117ff2993b11bb1fdc7ea3588a010c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/b61982951bd51b724143c30dfaaa9fe9.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/c0098958e20db68cab90097b5e62516f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/c4bfaa5e50798246e3770718b7a7c84a.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/c84598999133455503042e06f4ab79cb.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/ca9a533988d7019597a60d4e17127e0c.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/cf2b28f90f47276f7e2688a65e88a101.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/d689b1861d7e4377dd72ad3013482612.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/d9047070d72a816b3dba9d40c2d85e69.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/da04549f3f4ed28076b01b8cd710d313.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/da7af303f8c645f9a9dbae0e6e32dd35.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/df9568257eb29b156449fdd4bec5ec76.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/e067cd0ed76c90cd0a93c9339253f20b.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/e08b07772e7bed3cec2832d43f7fd339.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/e12150d5a39b30be8f567968c7a527b0.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/e53fcb2381eee345db4f6f973dd95a3e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/e5bd313ef81f687d398aacb11cec3069.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/eb5afb3d952b8593782caec6026514b6.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/edd6a4f608d04fc0351d7688cfc321e4.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/f9695c6c4df2bf6bc03045ff79d4f01f.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/fada6eaa68ff8816afe43d2a36c5423e.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/700/fbcc4bf5367218951172bdee6f77d7a6.woff2 +0 -0
- package/src/styles/fonts/noto-serif-kr/noto-serif-kr.css +2601 -0
- package/src/styles/site-media.css +823 -0
- package/src/styles/tokens.css +292 -21
- package/src/styles/ui.css +4188 -1857
- package/src/types/bindings.ts +3 -1
- package/src/types/config.ts +139 -9
- package/src/types/constants.ts +46 -11
- package/src/types/entities.ts +24 -8
- package/src/types/operations.ts +80 -1
- package/src/types/props.ts +10 -2
- package/src/types/raw-assets.d.ts +39 -0
- package/src/types/views.ts +28 -7
- package/src/ui/__tests__/color-themes.test.ts +7 -40
- package/src/ui/__tests__/font-themes.test.ts +30 -11
- package/src/ui/color-themes.ts +311 -270
- package/src/ui/compose/ComposeDialog.tsx +712 -394
- package/src/ui/compose/ComposePrompt.tsx +15 -10
- package/src/ui/dash/ActionButtons.tsx +27 -18
- package/src/ui/dash/DangerZone.tsx +15 -10
- package/src/ui/dash/FormatBadge.tsx +21 -8
- package/src/ui/dash/StatusBadge.tsx +33 -22
- package/src/ui/dash/appearance/AdvancedContent.tsx +44 -30
- package/src/ui/dash/appearance/CodeInjectionContent.tsx +164 -0
- package/src/ui/dash/appearance/ColorThemeContent.tsx +127 -160
- package/src/ui/dash/appearance/FontThemeContent.tsx +20 -15
- package/src/ui/dash/appearance/NavigationContent.tsx +368 -225
- package/src/ui/dash/appearance/__tests__/NavigationContent.test.tsx +54 -0
- package/src/ui/dash/settings/AccountContent.tsx +34 -23
- package/src/ui/dash/settings/AccountMenuContent.tsx +226 -137
- package/src/ui/dash/settings/ApiTokensContent.tsx +122 -79
- package/src/ui/dash/settings/AvatarContent.tsx +73 -45
- package/src/ui/dash/settings/DeleteAccountContent.tsx +106 -66
- package/src/ui/dash/settings/GeneralContent.tsx +274 -157
- package/src/ui/dash/settings/GitHubSyncContent.tsx +558 -0
- package/src/ui/dash/settings/SessionsContent.tsx +79 -38
- package/src/ui/dash/settings/SettingsRootContent.tsx +209 -109
- package/src/ui/dash/settings/__tests__/AccountMenuContent.test.tsx +67 -0
- package/src/ui/dash/settings/__tests__/GeneralContent.test.tsx +75 -0
- package/src/ui/feed/CuratedThreadPreview.tsx +24 -14
- package/src/ui/feed/LinkCard.tsx +116 -84
- package/src/ui/feed/LinkPreview.tsx +75 -0
- package/src/ui/feed/NoteCard.tsx +60 -16
- package/src/ui/feed/PostStatusBadges.tsx +15 -0
- package/src/ui/feed/QuoteCard.tsx +10 -3
- package/src/ui/feed/ThreadPreview.tsx +62 -36
- package/src/ui/feed/TimelineFeed.tsx +2 -1
- package/src/ui/feed/__tests__/thread-preview.test.ts +220 -11
- package/src/ui/feed/__tests__/timeline-cards.test.ts +186 -5
- package/src/ui/feed/thread-preview-state.ts +23 -10
- package/src/ui/font-themes.ts +57 -97
- package/src/ui/layouts/BaseLayout.tsx +221 -136
- package/src/ui/layouts/SiteLayout.tsx +431 -143
- package/src/ui/layouts/__tests__/BaseLayout.test.tsx +76 -6
- package/src/ui/layouts/__tests__/SiteLayout.test.tsx +76 -0
- package/src/ui/pages/ArchivePage.tsx +320 -207
- package/src/ui/pages/BrandPage.tsx +499 -341
- package/src/ui/pages/CollectionEditorPage.tsx +50 -30
- package/src/ui/pages/CollectionPage.tsx +151 -78
- package/src/ui/pages/CollectionsPage.tsx +27 -18
- package/src/ui/pages/ComposePage.tsx +15 -10
- package/src/ui/pages/FeaturedPage.tsx +16 -11
- package/src/ui/pages/HomePage.tsx +15 -10
- package/src/ui/pages/PostPage.tsx +5 -1
- package/src/ui/pages/SearchPage.tsx +93 -43
- package/src/ui/pages/ThemeSamplePage.tsx +758 -520
- package/src/ui/pages/__tests__/ArchivePage.test.tsx +72 -0
- package/src/ui/shared/CollectionDirectory.tsx +215 -34
- package/src/ui/shared/CollectionsManager.tsx +155 -75
- package/src/ui/shared/DecorativeQuoteMark.tsx +12 -9
- package/src/ui/shared/MediaGallery.tsx +350 -256
- package/src/ui/shared/Pagination.tsx +36 -25
- package/src/ui/shared/PostFooter.tsx +139 -96
- package/src/ui/shared/__tests__/media-gallery.test.ts +27 -0
- package/src/ui/shared/__tests__/navigation-labels.test.ts +79 -28
- package/src/ui/shared/__tests__/post-footer.test.ts +42 -17
- package/src/ui/shared/collection-management-labels.ts +109 -33
- package/src/ui/shared/navigation-labels.ts +78 -8
- package/bin/lib/site-localize-media.js +0 -427
- package/dist/client/_assets/client-auth.js +0 -3260
- package/dist/client/_assets/client.css +0 -2
- package/dist/client/_assets/client.js +0 -380
- package/src/__tests__/site-localize-media.test.ts +0 -150
- package/src/client/components/jant-collection-sidebar.ts +0 -816
- package/src/i18n/locales/en.ts +0 -1
- package/src/i18n/locales/zh-Hans.po +0 -3197
- package/src/i18n/locales/zh-Hans.ts +0 -1
- package/src/i18n/locales/zh-Hant.po +0 -3197
- package/src/i18n/locales/zh-Hant.ts +0 -1
- package/src/routes/feed/rss.ts +0 -216
- package/src/types/lingui-react-macro.d.ts +0 -34
- /package/dist/client/_assets/chunks/{heic-to-XcUDQvtx.js → heic-to-DUUaO23q.js} +0 -0
- /package/dist/client/_assets/chunks/{module-ChVQstFd.js → module-DcsAZQZ_.js} +0 -0
- /package/dist/client/_assets/chunks/{native-CR5HLOyf.js → native-DpcrFAPh.js} +0 -0
- /package/dist/client/_assets/{client-cjk.css → client-cjk-B7Z0snDu.css} +0 -0
- /package/dist/client/_assets/{client-cjk-tc.css → client-cjk-tc-BesJYrb2.css} +0 -0
|
@@ -0,0 +1,1622 @@
|
|
|
1
|
+
msgid ""
|
|
2
|
+
msgstr ""
|
|
3
|
+
"POT-Creation-Date: 2026-04-15 21:58+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-Hans\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: Custom CSS textarea placeholder
|
|
17
|
+
#: src/ui/dash/appearance/AdvancedContent.tsx
|
|
18
|
+
msgid "/* Your custom CSS here */"
|
|
19
|
+
msgstr "/* 在此填写您的自定义 CSS */"
|
|
20
|
+
|
|
21
|
+
#. @context: GitHub sync picker — entry at the bottom of the owner dropdown that starts a new install flow
|
|
22
|
+
#: src/routes/dash/settings.tsx
|
|
23
|
+
msgid "+ Install on another account"
|
|
24
|
+
msgstr "+ 在其他帐户上安装"
|
|
25
|
+
|
|
26
|
+
#. @context: Redirect type option
|
|
27
|
+
#: src/routes/dash/custom-urls.tsx
|
|
28
|
+
msgid "301 (Permanent)"
|
|
29
|
+
msgstr "301 (永久)"
|
|
30
|
+
|
|
31
|
+
#. @context: Redirect type option
|
|
32
|
+
#: src/routes/dash/custom-urls.tsx
|
|
33
|
+
msgid "302 (Temporary)"
|
|
34
|
+
msgstr "302 (临时)"
|
|
35
|
+
|
|
36
|
+
#. @context: Help text for site description field
|
|
37
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
38
|
+
msgid "A short intro shown on your home page."
|
|
39
|
+
msgstr "在您的主页上显示的简短介绍."
|
|
40
|
+
|
|
41
|
+
#. @context: Settings form field for site description
|
|
42
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
43
|
+
msgid "About this blog"
|
|
44
|
+
msgstr "关于本博客"
|
|
45
|
+
|
|
46
|
+
#. @context: Breadcrumb label
|
|
47
|
+
#. @context: GitHub sync picker — owner dropdown label
|
|
48
|
+
#. @context: Page title for the account settings menu
|
|
49
|
+
#. @context: Settings group label for account settings
|
|
50
|
+
#. @context: Settings item — account settings
|
|
51
|
+
#: src/routes/dash/settings.tsx
|
|
52
|
+
#: src/routes/dash/settings.tsx
|
|
53
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
54
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
55
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
56
|
+
msgid "Account"
|
|
57
|
+
msgstr "账户"
|
|
58
|
+
|
|
59
|
+
#. @context: Error shown when account deletion is blocked in demo mode
|
|
60
|
+
#: src/routes/dash/settings.tsx
|
|
61
|
+
msgid "Account deletion is off in demo mode. The shared demo resets separately."
|
|
62
|
+
msgstr "演示模式下已禁用账号删除。共享演示会单独重置。"
|
|
63
|
+
|
|
64
|
+
#. @context: Settings section heading for active sessions
|
|
65
|
+
#: src/ui/dash/settings/SessionsContent.tsx
|
|
66
|
+
msgid "Active Sessions"
|
|
67
|
+
msgstr "活动会话"
|
|
68
|
+
|
|
69
|
+
#. @context: Heading for list of active API tokens
|
|
70
|
+
#: src/ui/dash/settings/ApiTokensContent.tsx
|
|
71
|
+
msgid "Active Tokens"
|
|
72
|
+
msgstr "活动令牌"
|
|
73
|
+
|
|
74
|
+
#. @context: Description in link popover form
|
|
75
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
76
|
+
msgid "Add a custom link to any URL"
|
|
77
|
+
msgstr "向任意 URL 添加自定义链接"
|
|
78
|
+
|
|
79
|
+
#. @context: Button for adding a collection to nav
|
|
80
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
81
|
+
msgid "Add Collection"
|
|
82
|
+
msgstr "添加合集"
|
|
83
|
+
|
|
84
|
+
#. @context: Section heading for adding a collection to nav
|
|
85
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
86
|
+
msgid "Add collection to navigation"
|
|
87
|
+
msgstr "向导航添加合集"
|
|
88
|
+
|
|
89
|
+
#. @context: Custom CSS settings description
|
|
90
|
+
#: src/ui/dash/appearance/AdvancedContent.tsx
|
|
91
|
+
msgid "Add custom CSS to override any styles. Use data attributes like [data-page], [data-post], [data-format] to target specific elements."
|
|
92
|
+
msgstr "添加自定义 CSS 以覆盖任何样式. 使用数据属性如 [data-page], [data-post], [data-format] 来定位特定元素."
|
|
93
|
+
|
|
94
|
+
#. @context: Section heading for adding custom link to nav
|
|
95
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
96
|
+
msgid "Add custom link to navigation"
|
|
97
|
+
msgstr "向导航添加自定义链接"
|
|
98
|
+
|
|
99
|
+
#. @context: Button and heading for adding custom link
|
|
100
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
101
|
+
msgid "Add Link"
|
|
102
|
+
msgstr "添加链接"
|
|
103
|
+
|
|
104
|
+
#. @context: Settings group label for advanced settings
|
|
105
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
106
|
+
msgid "Advanced"
|
|
107
|
+
msgstr "高级"
|
|
108
|
+
|
|
109
|
+
#. @context: Description after API reference link
|
|
110
|
+
#: src/ui/dash/settings/ApiTokensContent.tsx
|
|
111
|
+
msgid "all available endpoints and request formats."
|
|
112
|
+
msgstr "所有可用的端点和请求格式。"
|
|
113
|
+
|
|
114
|
+
#. @context: Message when every collection is already added to nav
|
|
115
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
116
|
+
msgid "All collections are already in your navigation."
|
|
117
|
+
msgstr "所有合集已在您的导航中。"
|
|
118
|
+
|
|
119
|
+
#. @context: Checkbox for allowing search engine indexing
|
|
120
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
121
|
+
msgid "Allow search engines to index my site"
|
|
122
|
+
msgstr "允许搜索引擎索引我的网站"
|
|
123
|
+
|
|
124
|
+
#. @context: Theme mode option description
|
|
125
|
+
#: src/ui/dash/appearance/ColorThemeContent.tsx
|
|
126
|
+
msgid "Always show the dark version of the theme."
|
|
127
|
+
msgstr "始终显示暗色主题."
|
|
128
|
+
|
|
129
|
+
#. @context: Theme mode option description
|
|
130
|
+
#: src/ui/dash/appearance/ColorThemeContent.tsx
|
|
131
|
+
msgid "Always show the light version of the theme."
|
|
132
|
+
msgstr "始终显示浅色主题。"
|
|
133
|
+
|
|
134
|
+
#. @context: Code Injection security warning body
|
|
135
|
+
#: src/ui/dash/appearance/CodeInjectionContent.tsx
|
|
136
|
+
msgid "Anything you paste here has full access to your visitors' browsers. Only use code from sources you trust."
|
|
137
|
+
msgstr "你在此处粘贴的任何内容都将完全访问访客的浏览器。仅使用来自你信任的来源的代码。"
|
|
138
|
+
|
|
139
|
+
#. @context: Link to API documentation
|
|
140
|
+
#: src/ui/dash/settings/ApiTokensContent.tsx
|
|
141
|
+
msgid "API reference"
|
|
142
|
+
msgstr "API 参考"
|
|
143
|
+
|
|
144
|
+
#. @context: Breadcrumb label
|
|
145
|
+
#. @context: Settings item — API token settings
|
|
146
|
+
#. @context: Settings section heading
|
|
147
|
+
#: src/routes/dash/settings.tsx
|
|
148
|
+
#: src/ui/dash/settings/ApiTokensContent.tsx
|
|
149
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
150
|
+
msgid "API Tokens"
|
|
151
|
+
msgstr "API 令牌"
|
|
152
|
+
|
|
153
|
+
#. @context: Settings group label for design settings
|
|
154
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
155
|
+
msgid "Appearance"
|
|
156
|
+
msgstr "外观"
|
|
157
|
+
|
|
158
|
+
#. @context: Appearance settings description
|
|
159
|
+
#: src/ui/dash/appearance/ColorThemeContent.tsx
|
|
160
|
+
msgid "Applies to your entire site, including admin pages. Pick a palette, then choose whether it follows the system or stays fixed."
|
|
161
|
+
msgstr "应用于整个站点,包括管理页面。选择一个调色板,然后选择它是随系统变化还是保持固定。"
|
|
162
|
+
|
|
163
|
+
#. @context: Custom URL target type badge for an archive view
|
|
164
|
+
#. @context: Custom URL type option for filtered archive view
|
|
165
|
+
#: src/routes/dash/custom-urls.tsx
|
|
166
|
+
#: src/routes/dash/custom-urls.tsx
|
|
167
|
+
msgid "Archive"
|
|
168
|
+
msgstr "归档"
|
|
169
|
+
|
|
170
|
+
#. @context: Help text for archive custom URL query params
|
|
171
|
+
#: src/routes/dash/custom-urls.tsx
|
|
172
|
+
msgid "Archive filter parameters (e.g. format=note&view=list)"
|
|
173
|
+
msgstr "归档 筛选参数 (例如 format=笔记&view=list)"
|
|
174
|
+
|
|
175
|
+
#. @context: Theme mode option label
|
|
176
|
+
#: src/ui/dash/appearance/ColorThemeContent.tsx
|
|
177
|
+
msgid "Auto"
|
|
178
|
+
msgstr "自动"
|
|
179
|
+
|
|
180
|
+
#. @context: Description after theming guide link on Custom CSS page
|
|
181
|
+
#: src/ui/dash/appearance/AdvancedContent.tsx
|
|
182
|
+
msgid "available CSS variables, data attributes, and examples."
|
|
183
|
+
msgstr "可用的 CSS 变量, 数据属性, 和 示例."
|
|
184
|
+
|
|
185
|
+
#. @context: Breadcrumb label
|
|
186
|
+
#. @context: Settings item — avatar settings
|
|
187
|
+
#: src/routes/dash/settings.tsx
|
|
188
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
189
|
+
msgid "Avatar"
|
|
190
|
+
msgstr "头像"
|
|
191
|
+
|
|
192
|
+
#. @context: Toast after saving avatar display preference
|
|
193
|
+
#. @context: Toast after saving avatar display preference
|
|
194
|
+
#: src/routes/dash/settings.tsx
|
|
195
|
+
#: src/routes/dash/settings.tsx
|
|
196
|
+
msgid "Avatar display updated."
|
|
197
|
+
msgstr "头像显示已更新."
|
|
198
|
+
|
|
199
|
+
#. @context: Settings item description for GitHub sync
|
|
200
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
201
|
+
msgid "Back up and sync content with a GitHub repository"
|
|
202
|
+
msgstr "将内容备份并与 GitHub 仓库同步"
|
|
203
|
+
|
|
204
|
+
#. @context: Link to backup and restore documentation from account settings
|
|
205
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
206
|
+
msgid "Backup & Restore Guide"
|
|
207
|
+
msgstr "备份与恢复指南"
|
|
208
|
+
|
|
209
|
+
#. @context: Settings item description for API tokens
|
|
210
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
211
|
+
msgid "Bearer tokens for scripts and automation"
|
|
212
|
+
msgstr "用于脚本和自动化的 Bearer 令牌"
|
|
213
|
+
|
|
214
|
+
#. @context: Step 1 description for site export before account deletion
|
|
215
|
+
#: src/ui/dash/settings/DeleteAccountContent.tsx
|
|
216
|
+
msgid "Before deleting, download a site export. You won't be able to recover this account after deletion."
|
|
217
|
+
msgstr "在删除之前,请下载站点导出。删除后将无法恢复此账户。"
|
|
218
|
+
|
|
219
|
+
#. @context: Settings section heading for avatar
|
|
220
|
+
#: src/ui/dash/settings/AvatarContent.tsx
|
|
221
|
+
msgid "Blog Avatar"
|
|
222
|
+
msgstr "博客头像"
|
|
223
|
+
|
|
224
|
+
#. @context: Section heading for built-in nav items
|
|
225
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
226
|
+
msgid "Built-in links"
|
|
227
|
+
msgstr "内置链接"
|
|
228
|
+
|
|
229
|
+
#. @context: Button label to dismiss a dialog or action
|
|
230
|
+
#. @context: Button label to dismiss a dialog or action
|
|
231
|
+
#. @context: Button label to dismiss a dialog or action
|
|
232
|
+
#. @context: Button label to dismiss a dialog or action
|
|
233
|
+
#. @context: Button label to dismiss a dialog or action
|
|
234
|
+
#. @context: Button label to dismiss a dialog or action
|
|
235
|
+
#. @context: Button label to dismiss a dialog or action
|
|
236
|
+
#. @context: Button label to dismiss a dialog or action
|
|
237
|
+
#. @context: Button to cancel form
|
|
238
|
+
#. @context: Button to cancel settings changes
|
|
239
|
+
#. @context: Button to cancel unsaved changes and revert to original values
|
|
240
|
+
#. @context: GitHub sync picker — cancel action
|
|
241
|
+
#: src/routes/dash/custom-urls.tsx
|
|
242
|
+
#: src/routes/dash/custom-urls.tsx
|
|
243
|
+
#: src/routes/dash/settings.tsx
|
|
244
|
+
#: src/ui/dash/ActionButtons.tsx
|
|
245
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
246
|
+
#: src/ui/dash/DangerZone.tsx
|
|
247
|
+
#: src/ui/dash/settings/ApiTokensContent.tsx
|
|
248
|
+
#: src/ui/dash/settings/AvatarContent.tsx
|
|
249
|
+
#: src/ui/dash/settings/DeleteAccountContent.tsx
|
|
250
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
251
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
252
|
+
#: src/ui/dash/settings/SessionsContent.tsx
|
|
253
|
+
msgid "Cancel"
|
|
254
|
+
msgstr "取消"
|
|
255
|
+
|
|
256
|
+
#. @context: Button to change password
|
|
257
|
+
#. @context: Settings section heading
|
|
258
|
+
#: src/ui/dash/settings/AccountContent.tsx
|
|
259
|
+
#: src/ui/dash/settings/AccountContent.tsx
|
|
260
|
+
msgid "Change Password"
|
|
261
|
+
msgstr "更改密码"
|
|
262
|
+
|
|
263
|
+
#. @context: Warning shown when changing the canonical RSS feed selection
|
|
264
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
265
|
+
msgid "Changing this updates what subscribers get from /feed."
|
|
266
|
+
msgstr "更改此项会更新订阅者从 /feed 获取的内容。"
|
|
267
|
+
|
|
268
|
+
#. @context: GitHub sync picker — status text while classifying the picked repo
|
|
269
|
+
#: src/routes/dash/settings.tsx
|
|
270
|
+
msgid "Checking repository…"
|
|
271
|
+
msgstr "正在检查仓库…"
|
|
272
|
+
|
|
273
|
+
#. @context: Font theme settings description
|
|
274
|
+
#: src/ui/dash/appearance/FontThemeContent.tsx
|
|
275
|
+
msgid "Choose a typographic direction for your site. Each theme changes both the font pairing and the reading rhythm."
|
|
276
|
+
msgstr "为您的网站选择一种排版方向。每个主题都会同时改变字体搭配和阅读节奏。"
|
|
277
|
+
|
|
278
|
+
#. @context: GitHub sync picker — page subtitle
|
|
279
|
+
#: src/routes/dash/settings.tsx
|
|
280
|
+
msgid "Choose the GitHub account and repository to sync with this site."
|
|
281
|
+
msgstr "选择要与此站点同步的 GitHub 账户和仓库。"
|
|
282
|
+
|
|
283
|
+
#. @context: Settings form field for CJK serif font selection
|
|
284
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
285
|
+
msgid "CJK Font"
|
|
286
|
+
msgstr "CJK 字体"
|
|
287
|
+
|
|
288
|
+
#. @context: Breadcrumb label
|
|
289
|
+
#. @context: Settings item — code injection settings
|
|
290
|
+
#: src/routes/dash/settings.tsx
|
|
291
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
292
|
+
msgid "Code Injection"
|
|
293
|
+
msgstr "代码注入"
|
|
294
|
+
|
|
295
|
+
#. @context: Toast after saving Code Injection settings
|
|
296
|
+
#: src/routes/dash/settings.tsx
|
|
297
|
+
msgid "Code injection updated."
|
|
298
|
+
msgstr "代码注入已更新。"
|
|
299
|
+
|
|
300
|
+
#. @context: Nav item type badge for collection items
|
|
301
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
302
|
+
msgid "collection"
|
|
303
|
+
msgstr "合集"
|
|
304
|
+
|
|
305
|
+
#. @context: Custom URL target type badge for a collection
|
|
306
|
+
#. @context: Custom URL type option
|
|
307
|
+
#: src/routes/dash/custom-urls.tsx
|
|
308
|
+
#: src/routes/dash/custom-urls.tsx
|
|
309
|
+
msgid "Collection"
|
|
310
|
+
msgstr "合集"
|
|
311
|
+
|
|
312
|
+
#. @context: Appearance settings heading
|
|
313
|
+
#: src/ui/dash/appearance/ColorThemeContent.tsx
|
|
314
|
+
msgid "Color theme"
|
|
315
|
+
msgstr "配色主题"
|
|
316
|
+
|
|
317
|
+
#. @context: Breadcrumb label
|
|
318
|
+
#. @context: Settings item — color theme settings
|
|
319
|
+
#: src/routes/dash/settings.tsx
|
|
320
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
321
|
+
msgid "Color Theme"
|
|
322
|
+
msgstr "颜色主题"
|
|
323
|
+
|
|
324
|
+
#. @context: Step 2 heading — user must type confirmation phrase
|
|
325
|
+
#: src/ui/dash/settings/DeleteAccountContent.tsx
|
|
326
|
+
msgid "Confirm account deletion"
|
|
327
|
+
msgstr "确认删除账户"
|
|
328
|
+
|
|
329
|
+
#. @context: Password form field
|
|
330
|
+
#: src/ui/dash/settings/AccountContent.tsx
|
|
331
|
+
msgid "Confirm New Password"
|
|
332
|
+
msgstr "确认新密码"
|
|
333
|
+
|
|
334
|
+
#. @context: Button label to connect GitHub repository on GitHub Sync settings
|
|
335
|
+
#. @context: GitHub sync picker — primary action button
|
|
336
|
+
#: src/routes/dash/settings.tsx
|
|
337
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
338
|
+
msgid "Connect"
|
|
339
|
+
msgstr "连接"
|
|
340
|
+
|
|
341
|
+
#. @context: Intro text on GitHub Sync settings page when not connected
|
|
342
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
343
|
+
msgid "Connect a GitHub repository to automatically back up your posts as Markdown files. Edits on GitHub sync back to your site."
|
|
344
|
+
msgstr "将 GitHub 仓库连接以自动将您的文章备份为 Markdown 文件。您在 GitHub 上的编辑会同步回您的网站。"
|
|
345
|
+
|
|
346
|
+
#. @context: Heading for the GitHub App connect option on GitHub Sync setup
|
|
347
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
348
|
+
msgid "Connect with GitHub App"
|
|
349
|
+
msgstr "使用 GitHub 应用连接"
|
|
350
|
+
|
|
351
|
+
#. @context: Status label when GitHub Sync is active using the GitHub App
|
|
352
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
353
|
+
msgid "Connected via GitHub App"
|
|
354
|
+
msgstr "已通过 GitHub App 连接"
|
|
355
|
+
|
|
356
|
+
#. @context: Status label when GitHub Sync is active using a PAT
|
|
357
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
358
|
+
msgid "Connected via Personal Access Token"
|
|
359
|
+
msgstr "通过个人访问令牌连接"
|
|
360
|
+
|
|
361
|
+
#. @context: GitHub sync picker — explanatory body for foreign-repo confirmation. Placeholder {repo} is the owner/repo slug.
|
|
362
|
+
#: src/routes/dash/settings.tsx
|
|
363
|
+
msgid "Connecting will sync your site onto {repo}'s default branch on top of its existing history. Existing files outside Jant's managed paths are kept. This can't be undone."
|
|
364
|
+
msgstr "连接后会将你的网站同步到 {repo} 的默认分支,并追加到其现有历史之上。Jant 管理路径之外的现有文件会被保留。此操作无法撤销。"
|
|
365
|
+
|
|
366
|
+
#. @context: GitHub sync picker — primary action button while a request is in flight
|
|
367
|
+
#: src/routes/dash/settings.tsx
|
|
368
|
+
msgid "Connecting…"
|
|
369
|
+
msgstr "连接中…"
|
|
370
|
+
|
|
371
|
+
#. @context: Help text under the site language select
|
|
372
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
373
|
+
msgid "Controls the language of the dashboard and settings. Public pages stay in English."
|
|
374
|
+
msgstr "控制仪表板和设置所用的语言。公共页面保持英文。"
|
|
375
|
+
|
|
376
|
+
#. @context: Feedback after copying API token
|
|
377
|
+
#: src/ui/dash/settings/ApiTokensContent.tsx
|
|
378
|
+
msgid "Copied"
|
|
379
|
+
msgstr "已复制"
|
|
380
|
+
|
|
381
|
+
#. @context: Button to copy a URL to the clipboard
|
|
382
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
383
|
+
msgid "Copy"
|
|
384
|
+
msgstr "复制"
|
|
385
|
+
|
|
386
|
+
#. @context: Button to copy API token to clipboard
|
|
387
|
+
#. @context: Button to copy API token to clipboard
|
|
388
|
+
#: src/ui/dash/settings/ApiTokensContent.tsx
|
|
389
|
+
#: src/ui/dash/settings/ApiTokensContent.tsx
|
|
390
|
+
msgid "Copy Token"
|
|
391
|
+
msgstr "复制令牌"
|
|
392
|
+
|
|
393
|
+
#. @context: Warning to copy newly created API token
|
|
394
|
+
#: src/ui/dash/settings/ApiTokensContent.tsx
|
|
395
|
+
msgid "Copy your token now — it won't be shown again."
|
|
396
|
+
msgstr "现在复制您的令牌 — 它不会再次显示。"
|
|
397
|
+
|
|
398
|
+
#. @context: Error toast when copying text to the clipboard fails
|
|
399
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
400
|
+
msgid "Could not copy. Try again."
|
|
401
|
+
msgstr "无法复制。请再试一次。"
|
|
402
|
+
|
|
403
|
+
#. @context: GitHub sync picker — generic failure message for Connect
|
|
404
|
+
#: src/routes/dash/settings.tsx
|
|
405
|
+
msgid "Couldn't connect. Check the error and try again."
|
|
406
|
+
msgstr "无法连接。检查错误并重试。"
|
|
407
|
+
|
|
408
|
+
#. @context: Error toast when nav delete fails
|
|
409
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
410
|
+
msgid "Couldn't delete. Try again in a moment."
|
|
411
|
+
msgstr "删除失败。请稍后再试。"
|
|
412
|
+
|
|
413
|
+
#. @context: Error toast when nav save fails
|
|
414
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
415
|
+
msgid "Couldn't save. Try again in a moment."
|
|
416
|
+
msgstr "保存失败。请稍后再试。"
|
|
417
|
+
|
|
418
|
+
#. @context: GitHub sync picker — entry that opens github.com/new in a new tab
|
|
419
|
+
#: src/routes/dash/settings.tsx
|
|
420
|
+
msgid "Create a new repository on GitHub"
|
|
421
|
+
msgstr "在 GitHub 上创建新仓库"
|
|
422
|
+
|
|
423
|
+
#. @context: Label for curl example
|
|
424
|
+
#: src/ui/dash/settings/ApiTokensContent.tsx
|
|
425
|
+
msgid "Create a post with curl:"
|
|
426
|
+
msgstr "使用 curl 创建帖子:"
|
|
427
|
+
|
|
428
|
+
#. @context: Button to save new custom URL
|
|
429
|
+
#: src/routes/dash/custom-urls.tsx
|
|
430
|
+
msgid "Create Custom URL"
|
|
431
|
+
msgstr "创建自定义 URL"
|
|
432
|
+
|
|
433
|
+
#. @context: Link text pointing to GitHub's fine-grained PAT creation page
|
|
434
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
435
|
+
msgid "Create one on GitHub"
|
|
436
|
+
msgstr "在 GitHub 上创建一个"
|
|
437
|
+
|
|
438
|
+
#. @context: Token creation date
|
|
439
|
+
#: src/ui/dash/settings/ApiTokensContent.tsx
|
|
440
|
+
msgid "Created {date}"
|
|
441
|
+
msgstr "创建于 {date}"
|
|
442
|
+
|
|
443
|
+
#. @context: Badge indicating the current active session
|
|
444
|
+
#: src/ui/dash/settings/SessionsContent.tsx
|
|
445
|
+
msgid "Current"
|
|
446
|
+
msgstr "当前"
|
|
447
|
+
|
|
448
|
+
#. @context: Password form field
|
|
449
|
+
#: src/ui/dash/settings/AccountContent.tsx
|
|
450
|
+
msgid "Current Password"
|
|
451
|
+
msgstr "当前密码"
|
|
452
|
+
|
|
453
|
+
#. @context: Error toast when current password verification fails
|
|
454
|
+
#: src/routes/dash/settings.tsx
|
|
455
|
+
msgid "Current password doesn't match. Try again."
|
|
456
|
+
msgstr "当前密码不正确。请重试。"
|
|
457
|
+
|
|
458
|
+
#. @context: Appearance settings heading for custom CSS
|
|
459
|
+
#. @context: Breadcrumb label
|
|
460
|
+
#. @context: Link to Custom CSS settings from color theme page
|
|
461
|
+
#. @context: Settings item — custom CSS settings
|
|
462
|
+
#: src/routes/dash/settings.tsx
|
|
463
|
+
#: src/ui/dash/appearance/AdvancedContent.tsx
|
|
464
|
+
#: src/ui/dash/appearance/ColorThemeContent.tsx
|
|
465
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
466
|
+
msgid "Custom CSS"
|
|
467
|
+
msgstr "自定义 CSS"
|
|
468
|
+
|
|
469
|
+
#. @context: Toast after saving custom CSS
|
|
470
|
+
#: src/routes/dash/settings.tsx
|
|
471
|
+
msgid "Custom CSS updated."
|
|
472
|
+
msgstr "自定义 CSS 已更新."
|
|
473
|
+
|
|
474
|
+
#. @context: Settings item — custom URL settings
|
|
475
|
+
#. @context: Settings section heading
|
|
476
|
+
#: src/routes/dash/custom-urls.tsx
|
|
477
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
478
|
+
msgid "Custom URLs"
|
|
479
|
+
msgstr "自定义 URL"
|
|
480
|
+
|
|
481
|
+
#. @context: Section heading for dangerous/destructive actions
|
|
482
|
+
#. @context: Settings group label for destructive account actions
|
|
483
|
+
#. @context: Settings group label for destructive account actions
|
|
484
|
+
#: src/ui/dash/DangerZone.tsx
|
|
485
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
486
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
487
|
+
msgid "Danger Zone"
|
|
488
|
+
msgstr "危险操作"
|
|
489
|
+
|
|
490
|
+
#. @context: Theme mode option label
|
|
491
|
+
#: src/ui/dash/appearance/ColorThemeContent.tsx
|
|
492
|
+
msgid "Dark"
|
|
493
|
+
msgstr "深色"
|
|
494
|
+
|
|
495
|
+
#. @context: Settings group label for data export/import
|
|
496
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
497
|
+
msgid "Data"
|
|
498
|
+
msgstr "数据"
|
|
499
|
+
|
|
500
|
+
#. @context: Button to delete custom URL
|
|
501
|
+
#. @context: Button to delete item
|
|
502
|
+
#. @context: Delete nav item
|
|
503
|
+
#: src/routes/dash/custom-urls.tsx
|
|
504
|
+
#: src/ui/dash/ActionButtons.tsx
|
|
505
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
506
|
+
msgid "Delete"
|
|
507
|
+
msgstr "删除"
|
|
508
|
+
|
|
509
|
+
#. @context: Breadcrumb label
|
|
510
|
+
#. @context: Page title for account deletion
|
|
511
|
+
#. @context: Settings item — delete account and all data
|
|
512
|
+
#: src/routes/dash/settings.tsx
|
|
513
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
514
|
+
#: src/ui/dash/settings/DeleteAccountContent.tsx
|
|
515
|
+
msgid "Delete Account"
|
|
516
|
+
msgstr "删除账号"
|
|
517
|
+
|
|
518
|
+
#. @context: Final destructive button to delete account and all data
|
|
519
|
+
#: src/ui/dash/settings/DeleteAccountContent.tsx
|
|
520
|
+
msgid "Delete Account Permanently"
|
|
521
|
+
msgstr "永久删除账号"
|
|
522
|
+
|
|
523
|
+
#. @context: Settings item — open the hosted site danger zone in the control plane
|
|
524
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
525
|
+
msgid "Delete Hosted Site"
|
|
526
|
+
msgstr "删除托管站点"
|
|
527
|
+
|
|
528
|
+
#. @context: Final browser confirm dialog before account deletion
|
|
529
|
+
#: src/ui/dash/settings/DeleteAccountContent.tsx
|
|
530
|
+
msgid "Delete this blog permanently? This cannot be undone."
|
|
531
|
+
msgstr "永久删除此博客?此操作不可撤销。"
|
|
532
|
+
|
|
533
|
+
#. @context: Confirm dialog for deleting a custom URL
|
|
534
|
+
#: src/routes/dash/custom-urls.tsx
|
|
535
|
+
msgid "Delete this custom URL? Visitors using it won't be redirected anymore."
|
|
536
|
+
msgstr "要删除此自定义 URL 吗?使用它的访问者将不再被重定向。"
|
|
537
|
+
|
|
538
|
+
#. @context: Confirm dialog for deleting a custom navigation link
|
|
539
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
540
|
+
msgid "Delete this navigation link? Visitors won't see it in your site header anymore."
|
|
541
|
+
msgstr "删除此导航链接? 访客将不再在您网站的页眉中看到它。"
|
|
542
|
+
|
|
543
|
+
#. @context: Settings item description for account settings on the settings home page when demo restrictions are enabled
|
|
544
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
545
|
+
msgid "Demo limits"
|
|
546
|
+
msgstr "演示限制"
|
|
547
|
+
|
|
548
|
+
#. @context: Notice shown on the account page when demo restrictions are enabled
|
|
549
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
550
|
+
msgid "Demo mode hides sessions, password changes, and account deletion. Export still works."
|
|
551
|
+
msgstr "演示模式会隐藏会话、密码更改和账号删除。导出仍然可用."
|
|
552
|
+
|
|
553
|
+
#. @context: Help text explaining that SEO indexing is locked in demo mode
|
|
554
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
555
|
+
msgid "Demo sites always stay hidden from search engines."
|
|
556
|
+
msgstr "演示站点始终对搜索引擎隐藏。"
|
|
557
|
+
|
|
558
|
+
#. @context: Color theme preview collection label
|
|
559
|
+
#: src/ui/dash/appearance/ColorThemeContent.tsx
|
|
560
|
+
msgid "Design"
|
|
561
|
+
msgstr "设计"
|
|
562
|
+
|
|
563
|
+
#. @context: Redirect destination field
|
|
564
|
+
#: src/routes/dash/custom-urls.tsx
|
|
565
|
+
msgid "Destination"
|
|
566
|
+
msgstr "目标地址"
|
|
567
|
+
|
|
568
|
+
#. @context: Button to disconnect GitHub repository on GitHub Sync settings
|
|
569
|
+
#. @context: Section heading for disconnect action on GitHub Sync settings
|
|
570
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
571
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
572
|
+
msgid "Disconnect"
|
|
573
|
+
msgstr "断开连接"
|
|
574
|
+
|
|
575
|
+
#. @context: Confirmation message when disconnecting GitHub Sync
|
|
576
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
577
|
+
msgid "Disconnect from GitHub? The webhook will be removed. Your repository content will not be deleted."
|
|
578
|
+
msgstr "要与 GitHub 断开连接吗?该 webhook 将被移除。您的仓库内容不会被删除。"
|
|
579
|
+
|
|
580
|
+
#. @context: Checkbox to show avatar in the site header
|
|
581
|
+
#: src/ui/dash/settings/AvatarContent.tsx
|
|
582
|
+
msgid "Display avatar in my site header"
|
|
583
|
+
msgstr "在我的站点页眉显示头像"
|
|
584
|
+
|
|
585
|
+
#. @context: Help text for site footer field
|
|
586
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
587
|
+
msgid "Displayed at the bottom of all posts and pages."
|
|
588
|
+
msgstr "显示在所有文章和页面的底部。"
|
|
589
|
+
|
|
590
|
+
#. @context: Settings item description for static site export
|
|
591
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
592
|
+
msgid "Download a Hugo-compatible archive — host it statically or move to another Jant."
|
|
593
|
+
msgstr "下载一个与 Hugo 兼容的归档 — 将其静态托管或迁移到另一个 Jant。"
|
|
594
|
+
|
|
595
|
+
#. @context: Step 1 heading — user must download a site export before deleting
|
|
596
|
+
#: src/ui/dash/settings/DeleteAccountContent.tsx
|
|
597
|
+
msgid "Download a site export"
|
|
598
|
+
msgstr "下载网站导出"
|
|
599
|
+
|
|
600
|
+
#. @context: Button to download the site export ZIP before deletion
|
|
601
|
+
#: src/ui/dash/settings/DeleteAccountContent.tsx
|
|
602
|
+
msgid "Download Export ZIP"
|
|
603
|
+
msgstr "下载导出 ZIP"
|
|
604
|
+
|
|
605
|
+
#. @context: Alert when site export download fails during account deletion
|
|
606
|
+
#: src/ui/dash/settings/DeleteAccountContent.tsx
|
|
607
|
+
msgid "Download failed. Please try again."
|
|
608
|
+
msgstr "下载失败。请重试。"
|
|
609
|
+
|
|
610
|
+
#. @context: Post status badge - draft
|
|
611
|
+
#: src/ui/dash/StatusBadge.tsx
|
|
612
|
+
msgid "Draft"
|
|
613
|
+
msgstr "草稿"
|
|
614
|
+
|
|
615
|
+
#. @context: Hint text shown in empty More section of nav settings
|
|
616
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
617
|
+
msgid "Drag links here to show them under the More menu"
|
|
618
|
+
msgstr "将链接拖到此处以在更多菜单下显示它们"
|
|
619
|
+
|
|
620
|
+
#. @context: Placeholder for API token name input
|
|
621
|
+
#: src/ui/dash/settings/ApiTokensContent.tsx
|
|
622
|
+
msgid "e.g. iOS Shortcuts"
|
|
623
|
+
msgstr "例如 iOS Shortcuts"
|
|
624
|
+
|
|
625
|
+
#. @context: Button to edit item
|
|
626
|
+
#: src/ui/dash/ActionButtons.tsx
|
|
627
|
+
msgid "Edit"
|
|
628
|
+
msgstr "编辑"
|
|
629
|
+
|
|
630
|
+
#. @context: GitHub sync picker — shown when the selected repo has no commits
|
|
631
|
+
#: src/routes/dash/settings.tsx
|
|
632
|
+
msgid "Empty repository. Ready to connect."
|
|
633
|
+
msgstr "仓库为空。准备连接。"
|
|
634
|
+
|
|
635
|
+
#. @context: Confirmation text after downloading the site export in delete flow
|
|
636
|
+
#: src/ui/dash/settings/DeleteAccountContent.tsx
|
|
637
|
+
msgid "Export downloaded."
|
|
638
|
+
msgstr "导出文件已下载."
|
|
639
|
+
|
|
640
|
+
#. @context: Settings item — export the site as a Hugo archive
|
|
641
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
642
|
+
msgid "Export Site"
|
|
643
|
+
msgstr "导出站点"
|
|
644
|
+
|
|
645
|
+
#. @context: Settings item description for avatar
|
|
646
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
647
|
+
msgid "Favicon and the profile mark in your header"
|
|
648
|
+
msgstr "Favicon 和页眉中的个人标识"
|
|
649
|
+
|
|
650
|
+
#. @context: Browse filter label for featured posts
|
|
651
|
+
#. @context: Post badge - featured
|
|
652
|
+
#. @context: Select option for using featured posts as the main RSS feed
|
|
653
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
654
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
655
|
+
#: src/ui/dash/StatusBadge.tsx
|
|
656
|
+
msgid "Featured"
|
|
657
|
+
msgstr "精选"
|
|
658
|
+
|
|
659
|
+
#. @context: Label for the explicit featured RSS feed URL
|
|
660
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
661
|
+
msgid "Featured feed"
|
|
662
|
+
msgstr "精选订阅源"
|
|
663
|
+
|
|
664
|
+
#. @context: Toast after saving feed settings
|
|
665
|
+
#: src/routes/dash/settings.tsx
|
|
666
|
+
msgid "Feed settings updated."
|
|
667
|
+
msgstr "订阅源设置已更新。"
|
|
668
|
+
|
|
669
|
+
#. @context: Toast after copying a feed URL to the clipboard
|
|
670
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
671
|
+
msgid "Feed URL copied."
|
|
672
|
+
msgstr "订阅源 URL 已复制。"
|
|
673
|
+
|
|
674
|
+
#. @context: Settings section heading for RSS feed configuration
|
|
675
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
676
|
+
msgid "Feeds"
|
|
677
|
+
msgstr "订阅源"
|
|
678
|
+
|
|
679
|
+
#. @context: Color theme preview card title
|
|
680
|
+
#: src/ui/dash/appearance/ColorThemeContent.tsx
|
|
681
|
+
msgid "Field notes on quiet design"
|
|
682
|
+
msgstr "关于静谧设计的笔记"
|
|
683
|
+
|
|
684
|
+
#. @context: Error toast when file storage is not set up
|
|
685
|
+
#: src/routes/dash/settings.tsx
|
|
686
|
+
msgid "File storage isn't set up. Check your server config."
|
|
687
|
+
msgstr "文件存储尚未设置。请检查服务器配置。"
|
|
688
|
+
|
|
689
|
+
#. @context: Settings item description for custom CSS
|
|
690
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
691
|
+
msgid "Fine-grained styling overrides"
|
|
692
|
+
msgstr "细粒度样式覆盖"
|
|
693
|
+
|
|
694
|
+
#. @context: Label for the list of stable RSS feed URLs
|
|
695
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
696
|
+
msgid "Fixed feed URLs"
|
|
697
|
+
msgstr "固定订阅源 URL"
|
|
698
|
+
|
|
699
|
+
#. @context: Theme mode option description
|
|
700
|
+
#: src/ui/dash/appearance/ColorThemeContent.tsx
|
|
701
|
+
msgid "Follow each visitor's system preference."
|
|
702
|
+
msgstr "遵循每位访客的系统偏好。"
|
|
703
|
+
|
|
704
|
+
#. @context: Appearance settings heading for font theme
|
|
705
|
+
#: src/ui/dash/appearance/FontThemeContent.tsx
|
|
706
|
+
msgid "Font theme"
|
|
707
|
+
msgstr "字体主题"
|
|
708
|
+
|
|
709
|
+
#. @context: Breadcrumb label
|
|
710
|
+
#. @context: Settings item — font theme settings
|
|
711
|
+
#: src/routes/dash/settings.tsx
|
|
712
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
713
|
+
msgid "Font Theme"
|
|
714
|
+
msgstr "字体主题"
|
|
715
|
+
|
|
716
|
+
#. @context: Breadcrumb label
|
|
717
|
+
#. @context: Settings item — general settings
|
|
718
|
+
#. @context: Settings section heading
|
|
719
|
+
#: src/routes/dash/settings.tsx
|
|
720
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
721
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
722
|
+
msgid "General"
|
|
723
|
+
msgstr "常规"
|
|
724
|
+
|
|
725
|
+
#. @context: Button to create new API token
|
|
726
|
+
#: src/ui/dash/settings/ApiTokensContent.tsx
|
|
727
|
+
msgid "Generate Token"
|
|
728
|
+
msgstr "生成令牌"
|
|
729
|
+
|
|
730
|
+
#. @context: Breadcrumb label
|
|
731
|
+
#. @context: Settings item — GitHub sync settings
|
|
732
|
+
#. @context: Settings section heading for GitHub Sync setup
|
|
733
|
+
#: src/routes/dash/settings.tsx
|
|
734
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
735
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
736
|
+
msgid "GitHub Sync"
|
|
737
|
+
msgstr "GitHub 同步"
|
|
738
|
+
|
|
739
|
+
#. @context: Section label for nav items shown in header
|
|
740
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
741
|
+
msgid "Header"
|
|
742
|
+
msgstr "页眉"
|
|
743
|
+
|
|
744
|
+
#. @context: Settings item description for navigation
|
|
745
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
746
|
+
msgid "Header links, home feed, and overflow menu"
|
|
747
|
+
msgstr "页眉链接、首页信息流和溢出菜单"
|
|
748
|
+
|
|
749
|
+
#. @context: Description for the RSS system navigation toggle. {feed} is either Latest or Featured.
|
|
750
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
751
|
+
msgid "Header RSS points to your {feed} feed (/feed). Change what /feed returns in General."
|
|
752
|
+
msgstr "页眉 RSS 指向你的 {feed} 源 (/feed)。在 常规 中更改 /feed 返回的内容。"
|
|
753
|
+
|
|
754
|
+
#. @context: Post badge for posts hidden from Latest
|
|
755
|
+
#: src/ui/dash/StatusBadge.tsx
|
|
756
|
+
msgid "Hidden from Latest"
|
|
757
|
+
msgstr "从最新中隐藏 (不出现在 Latest 中,但仍可通过固定链接和集合访问的状态。)"
|
|
758
|
+
|
|
759
|
+
#. @context: Settings subsection heading for home page settings
|
|
760
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
761
|
+
msgid "Home"
|
|
762
|
+
msgstr "首页"
|
|
763
|
+
|
|
764
|
+
#. @context: Toast after auto-saving home settings
|
|
765
|
+
#: src/routes/dash/settings.tsx
|
|
766
|
+
msgid "Home settings updated."
|
|
767
|
+
msgstr "主页设置已更新."
|
|
768
|
+
|
|
769
|
+
#. @context: Generic hosted auth provider label when no explicit provider name is configured
|
|
770
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
771
|
+
msgid "Hosted account"
|
|
772
|
+
msgstr "托管账户"
|
|
773
|
+
|
|
774
|
+
#. @context: Confirmation phrase the user must type to delete their account. {siteName} is the blog name.
|
|
775
|
+
#: src/ui/dash/settings/DeleteAccountContent.tsx
|
|
776
|
+
msgid "I want to delete {siteName}"
|
|
777
|
+
msgstr "我想删除 {siteName}"
|
|
778
|
+
|
|
779
|
+
#. @context: Code Injection body-end field description
|
|
780
|
+
#: src/ui/dash/appearance/CodeInjectionContent.tsx
|
|
781
|
+
msgid "Injected before </body>. Use for chat widgets and scripts that should not block page load."
|
|
782
|
+
msgstr "注入到 </body> 之前。用于聊天小部件和不应阻塞页面加载的脚本。"
|
|
783
|
+
|
|
784
|
+
#. @context: Code Injection head field description
|
|
785
|
+
#: src/ui/dash/appearance/CodeInjectionContent.tsx
|
|
786
|
+
msgid "Injected before </head>. Use for analytics, custom meta tags, and styles that must load early."
|
|
787
|
+
msgstr "注入到 </head> 之前。用于分析、自定义元标签以及必须尽早加载的样式。"
|
|
788
|
+
|
|
789
|
+
#. @context: Button label to start the GitHub App install flow on GitHub Sync setup
|
|
790
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
791
|
+
msgid "Install GitHub App"
|
|
792
|
+
msgstr "安装 GitHub App"
|
|
793
|
+
|
|
794
|
+
#. @context: Help text for the GitHub App connect option on GitHub Sync setup
|
|
795
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
796
|
+
msgid "Install the GitHub App to grant access without managing personal tokens. Permissions are scoped per repository and revocable from GitHub."
|
|
797
|
+
msgstr "安装 GitHub App 以在无需管理个人令牌的情况下授予访问权限。权限按仓库范围授予,可在 GitHub 上撤销。"
|
|
798
|
+
|
|
799
|
+
#. @context: Settings group label for third-party integrations
|
|
800
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
801
|
+
msgid "Integrations"
|
|
802
|
+
msgstr "集成"
|
|
803
|
+
|
|
804
|
+
#. @context: Nav item label field
|
|
805
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
806
|
+
msgid "Label"
|
|
807
|
+
msgstr "标签"
|
|
808
|
+
|
|
809
|
+
#. @context: Error toast when nav link fields are empty
|
|
810
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
811
|
+
msgid "Label and URL are required"
|
|
812
|
+
msgstr "标签和 URL 为必填项"
|
|
813
|
+
|
|
814
|
+
#. @context: Error toast when nav label is empty
|
|
815
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
816
|
+
msgid "Label is required"
|
|
817
|
+
msgstr "标签为必填项"
|
|
818
|
+
|
|
819
|
+
#. @context: Settings form field for site/dashboard language
|
|
820
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
821
|
+
msgid "Language"
|
|
822
|
+
msgstr "语言"
|
|
823
|
+
|
|
824
|
+
#. @context: Settings subsection heading for language and time zone fields
|
|
825
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
826
|
+
msgid "Language & Time"
|
|
827
|
+
msgstr "语言与时间"
|
|
828
|
+
|
|
829
|
+
#. @context: Toast after saving language and time settings
|
|
830
|
+
#: src/routes/dash/settings.tsx
|
|
831
|
+
msgid "Language and time updated."
|
|
832
|
+
msgstr "语言和时间已更新。"
|
|
833
|
+
|
|
834
|
+
#. @context: Label for last push commit SHA on GitHub Sync status
|
|
835
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
836
|
+
msgid "Last commit"
|
|
837
|
+
msgstr "最近一次提交"
|
|
838
|
+
|
|
839
|
+
#. @context: Label for last sync error on GitHub Sync status
|
|
840
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
841
|
+
msgid "Last error"
|
|
842
|
+
msgstr "上次错误"
|
|
843
|
+
|
|
844
|
+
#. @context: Label for last sync time on GitHub Sync status
|
|
845
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
846
|
+
msgid "Last synced"
|
|
847
|
+
msgstr "上次同步"
|
|
848
|
+
|
|
849
|
+
#. @context: Token last used date
|
|
850
|
+
#: src/ui/dash/settings/ApiTokensContent.tsx
|
|
851
|
+
msgid "Last used {date}"
|
|
852
|
+
msgstr "上次使用 {date}"
|
|
853
|
+
|
|
854
|
+
#. @context: Browse filter label for latest posts
|
|
855
|
+
#. @context: Select option for using latest posts as the main RSS feed
|
|
856
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
857
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
858
|
+
msgid "Latest"
|
|
859
|
+
msgstr "最新"
|
|
860
|
+
|
|
861
|
+
#. @context: Label for the explicit latest RSS feed URL
|
|
862
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
863
|
+
msgid "Latest feed"
|
|
864
|
+
msgstr "最新订阅源"
|
|
865
|
+
|
|
866
|
+
#. @context: Suffix after Custom CSS link on color theme page
|
|
867
|
+
#: src/ui/dash/appearance/ColorThemeContent.tsx
|
|
868
|
+
msgid "lets you override any theme variable."
|
|
869
|
+
msgstr "允许您覆盖任何主题变量."
|
|
870
|
+
|
|
871
|
+
#. @context: Theme mode option label
|
|
872
|
+
#: src/ui/dash/appearance/ColorThemeContent.tsx
|
|
873
|
+
msgid "Light"
|
|
874
|
+
msgstr "浅色"
|
|
875
|
+
|
|
876
|
+
#. @context: Nav item type badge
|
|
877
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
878
|
+
msgid "link"
|
|
879
|
+
msgstr "链接"
|
|
880
|
+
|
|
881
|
+
#. @context: Post format badge - link
|
|
882
|
+
#: src/ui/dash/FormatBadge.tsx
|
|
883
|
+
msgid "Link"
|
|
884
|
+
msgstr "链接"
|
|
885
|
+
|
|
886
|
+
#. @context: Label for list posts curl example
|
|
887
|
+
#: src/ui/dash/settings/ApiTokensContent.tsx
|
|
888
|
+
msgid "List posts:"
|
|
889
|
+
msgstr "列出帖子:"
|
|
890
|
+
|
|
891
|
+
#. @context: Help text for CJK serif font selection
|
|
892
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
893
|
+
msgid "Load a serif font optimized for Chinese, Japanese, or Korean content."
|
|
894
|
+
msgstr "加载针对中文、日文或韩文内容优化的衬线字体。"
|
|
895
|
+
|
|
896
|
+
#. @context: GitHub sync picker — loading state
|
|
897
|
+
#: src/routes/dash/settings.tsx
|
|
898
|
+
msgid "Loading…"
|
|
899
|
+
msgstr "正在加载…"
|
|
900
|
+
|
|
901
|
+
#. @context: Label for the canonical /feed URL
|
|
902
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
903
|
+
msgid "Main feed"
|
|
904
|
+
msgstr "主订阅源"
|
|
905
|
+
|
|
906
|
+
#. @context: Settings field label for the canonical /feed output
|
|
907
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
908
|
+
msgid "Main RSS feed"
|
|
909
|
+
msgstr "主 RSS 源"
|
|
910
|
+
|
|
911
|
+
#. @context: Settings item label for opening the hosted account management page
|
|
912
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
913
|
+
msgid "Manage Account"
|
|
914
|
+
msgstr "管理账户"
|
|
915
|
+
|
|
916
|
+
#. @context: Settings item description for hosted account management in the connected provider
|
|
917
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
918
|
+
msgid "Manage password and hosted access in {providerLabel}"
|
|
919
|
+
msgstr "在 {providerLabel} 管理密码和托管访问"
|
|
920
|
+
|
|
921
|
+
#. @context: Intro text on the account settings menu page below the title
|
|
922
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
923
|
+
msgid "Manage sign-in security, exports, and irreversible actions."
|
|
924
|
+
msgstr "管理登录安全、导出和不可逆操作."
|
|
925
|
+
|
|
926
|
+
#. @context: Intro text on the hosted account settings menu page below the title
|
|
927
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
928
|
+
msgid "Manage this site's active sessions here. Password and hosted access are managed through {providerLabel}."
|
|
929
|
+
msgstr "在此管理本站点的活动会话。密码和托管访问通过 {providerLabel} 管理。"
|
|
930
|
+
|
|
931
|
+
#. @context: Section heading for manual push action on GitHub Sync settings
|
|
932
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
933
|
+
msgid "Manual Push"
|
|
934
|
+
msgstr "手动推送"
|
|
935
|
+
|
|
936
|
+
#. @context: Color theme preview date label
|
|
937
|
+
#: src/ui/dash/appearance/ColorThemeContent.tsx
|
|
938
|
+
msgid "March 14"
|
|
939
|
+
msgstr "3月14日"
|
|
940
|
+
|
|
941
|
+
#. @context: Placeholder hint for markdown-enabled textareas
|
|
942
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
943
|
+
msgid "Markdown supported"
|
|
944
|
+
msgstr "支持 Markdown"
|
|
945
|
+
|
|
946
|
+
#. @context: Section label for nav items hidden under More dropdown
|
|
947
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
948
|
+
msgid "More"
|
|
949
|
+
msgstr "更多"
|
|
950
|
+
|
|
951
|
+
#. @context: Button label for a menu with more actions
|
|
952
|
+
#: src/routes/dash/custom-urls.tsx
|
|
953
|
+
msgid "More actions"
|
|
954
|
+
msgstr "更多操作"
|
|
955
|
+
|
|
956
|
+
#. @context: Settings item description for general
|
|
957
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
958
|
+
msgid "Name, metadata, language, and search defaults"
|
|
959
|
+
msgstr "名称、元数据、语言和搜索默认设置"
|
|
960
|
+
|
|
961
|
+
#. @context: Breadcrumb label
|
|
962
|
+
#. @context: Settings item — navigation settings
|
|
963
|
+
#: src/routes/dash/settings.tsx
|
|
964
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
965
|
+
msgid "Navigation"
|
|
966
|
+
msgstr "导航"
|
|
967
|
+
|
|
968
|
+
#. @context: Section heading for nav items
|
|
969
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
970
|
+
msgid "Navigation items"
|
|
971
|
+
msgstr "导航项"
|
|
972
|
+
|
|
973
|
+
#. @context: Toast after saving navigation item order
|
|
974
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
975
|
+
msgid "Navigation order updated."
|
|
976
|
+
msgstr "导航顺序已更新。"
|
|
977
|
+
|
|
978
|
+
#. @context: Toast after moving nav item between header/more
|
|
979
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
980
|
+
msgid "Navigation placement updated."
|
|
981
|
+
msgstr "导航位置已更新."
|
|
982
|
+
|
|
983
|
+
#. @context: Label for nav preview section
|
|
984
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
985
|
+
msgid "Navigation Preview"
|
|
986
|
+
msgstr "导航预览"
|
|
987
|
+
|
|
988
|
+
#. @context: Help text for GitHub PAT input explaining required permissions
|
|
989
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
990
|
+
msgid "Needs Contents (read/write) and Webhooks (read/write) on the target repository."
|
|
991
|
+
msgstr "需要对目标仓库的 Contents(读/写)和 Webhooks(读/写)。"
|
|
992
|
+
|
|
993
|
+
#. @context: Button to create new custom URL
|
|
994
|
+
#. @context: Button to create new custom URL
|
|
995
|
+
#. @context: Page heading
|
|
996
|
+
#: src/routes/dash/custom-urls.tsx
|
|
997
|
+
#: src/routes/dash/custom-urls.tsx
|
|
998
|
+
#: src/routes/dash/custom-urls.tsx
|
|
999
|
+
msgid "New Custom URL"
|
|
1000
|
+
msgstr "新建自定义 URL"
|
|
1001
|
+
|
|
1002
|
+
#. @context: Password form field
|
|
1003
|
+
#: src/ui/dash/settings/AccountContent.tsx
|
|
1004
|
+
msgid "New Password"
|
|
1005
|
+
msgstr "新密码"
|
|
1006
|
+
|
|
1007
|
+
#. @context: GitHub sync picker — shown when the owner list is empty
|
|
1008
|
+
#: src/routes/dash/settings.tsx
|
|
1009
|
+
msgid "No accounts authorized yet"
|
|
1010
|
+
msgstr "尚未授权任何账户"
|
|
1011
|
+
|
|
1012
|
+
#. @context: Empty state when no sessions exist (shouldn't normally appear)
|
|
1013
|
+
#: src/ui/dash/settings/SessionsContent.tsx
|
|
1014
|
+
msgid "No active sessions right now. Signed-in devices show up here."
|
|
1015
|
+
msgstr "当前没有活动会话。 已登录的设备会显示在此处。"
|
|
1016
|
+
|
|
1017
|
+
#. @context: Empty state when no collections exist for nav picker
|
|
1018
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
1019
|
+
msgid "No collections yet. Create one first, then add it to your navigation."
|
|
1020
|
+
msgstr "还没有合集。请先创建一个,然后将其添加到你的导航中。"
|
|
1021
|
+
|
|
1022
|
+
#. @context: Empty state message
|
|
1023
|
+
#: src/routes/dash/custom-urls.tsx
|
|
1024
|
+
msgid "No custom URLs yet. Create one to add redirects or custom paths for posts."
|
|
1025
|
+
msgstr "尚无自定义 URL。创建一个以便为文章添加重定向或自定义路径。"
|
|
1026
|
+
|
|
1027
|
+
#. @context: Error toast when no file was selected for upload
|
|
1028
|
+
#: src/routes/dash/settings.tsx
|
|
1029
|
+
msgid "No file selected. Choose a file to upload."
|
|
1030
|
+
msgstr "未选择文件。请选择要上传的文件。"
|
|
1031
|
+
|
|
1032
|
+
#. @context: Empty state for navigation items
|
|
1033
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
1034
|
+
msgid "No navigation items yet. Add links or enable system items below."
|
|
1035
|
+
msgstr "当前还没有导航项目。添加链接或在下方启用系统项目。"
|
|
1036
|
+
|
|
1037
|
+
#. @context: GitHub sync picker — empty state when search returns nothing
|
|
1038
|
+
#: src/routes/dash/settings.tsx
|
|
1039
|
+
msgid "No repositories match."
|
|
1040
|
+
msgstr "没有匹配的仓库。"
|
|
1041
|
+
|
|
1042
|
+
#. @context: Shown when no sync has happened yet on GitHub Sync status
|
|
1043
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
1044
|
+
msgid "Not synced yet"
|
|
1045
|
+
msgstr "尚未同步"
|
|
1046
|
+
|
|
1047
|
+
#. @context: Color theme preview format label
|
|
1048
|
+
#. @context: Post format badge - note
|
|
1049
|
+
#: src/ui/dash/appearance/ColorThemeContent.tsx
|
|
1050
|
+
#: src/ui/dash/FormatBadge.tsx
|
|
1051
|
+
msgid "Note"
|
|
1052
|
+
msgstr "笔记"
|
|
1053
|
+
|
|
1054
|
+
#. @context: Settings item description for the hosted delete-site entry in the account menu
|
|
1055
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
1056
|
+
msgid "Open the hosted site controls in {providerLabel} to cancel billing or permanently delete this site."
|
|
1057
|
+
msgstr "在 {providerLabel} 打开托管站点控制以取消计费或永久删除此站点。"
|
|
1058
|
+
|
|
1059
|
+
#. @context: GitHub sync picker — placeholder text showing the expected input shape
|
|
1060
|
+
#: src/routes/dash/settings.tsx
|
|
1061
|
+
msgid "owner/repo"
|
|
1062
|
+
msgstr "owner/repo"
|
|
1063
|
+
|
|
1064
|
+
#. @context: Settings item description for color theme
|
|
1065
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
1066
|
+
msgid "Palette, surface tone, and overall mood"
|
|
1067
|
+
msgstr "调色板、表面色调与整体氛围"
|
|
1068
|
+
|
|
1069
|
+
#. @context: Breadcrumb label
|
|
1070
|
+
#. @context: Settings item — password settings
|
|
1071
|
+
#: src/routes/dash/settings.tsx
|
|
1072
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
1073
|
+
msgid "Password"
|
|
1074
|
+
msgstr "密码"
|
|
1075
|
+
|
|
1076
|
+
#. @context: Toast after changing account password
|
|
1077
|
+
#: src/routes/dash/settings.tsx
|
|
1078
|
+
msgid "Password changed."
|
|
1079
|
+
msgstr "密码已更改."
|
|
1080
|
+
|
|
1081
|
+
#. @context: Error shown when password changes are blocked in demo mode
|
|
1082
|
+
#: src/routes/dash/settings.tsx
|
|
1083
|
+
msgid "Password changes are off in demo mode. Sign in with the shared demo credentials."
|
|
1084
|
+
msgstr "演示模式下已禁用密码更改。请使用共享的演示凭证登录。"
|
|
1085
|
+
|
|
1086
|
+
#. @context: Error toast when new password and confirmation differ
|
|
1087
|
+
#: src/routes/dash/settings.tsx
|
|
1088
|
+
msgid "Passwords don't match. Make sure both fields are identical."
|
|
1089
|
+
msgstr "密码不匹配。请确保两个字段相同。"
|
|
1090
|
+
|
|
1091
|
+
#. @context: Custom URL form field
|
|
1092
|
+
#: src/routes/dash/custom-urls.tsx
|
|
1093
|
+
msgid "Path"
|
|
1094
|
+
msgstr "路径"
|
|
1095
|
+
|
|
1096
|
+
#. @context: Settings item description for account deletion
|
|
1097
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
1098
|
+
msgid "Permanently delete all data and reset the blog"
|
|
1099
|
+
msgstr "永久删除所有数据并重置博客"
|
|
1100
|
+
|
|
1101
|
+
#. @context: Label for GitHub PAT input on GitHub Sync settings
|
|
1102
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
1103
|
+
msgid "Personal Access Token"
|
|
1104
|
+
msgstr "个人访问令牌"
|
|
1105
|
+
|
|
1106
|
+
#. @context: GitHub sync picker — page heading
|
|
1107
|
+
#: src/routes/dash/settings.tsx
|
|
1108
|
+
msgid "Pick a repository"
|
|
1109
|
+
msgstr "选择仓库"
|
|
1110
|
+
|
|
1111
|
+
#. @context: GitHub sync picker — repo dropdown placeholder before an owner is chosen
|
|
1112
|
+
#: src/routes/dash/settings.tsx
|
|
1113
|
+
msgid "Pick an account first"
|
|
1114
|
+
msgstr "请先选择一个账号"
|
|
1115
|
+
|
|
1116
|
+
#. @context: Description in collection picker section
|
|
1117
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
1118
|
+
msgid "Pin a collection to your navigation bar. An asterisk (*) appears next to collections updated in the last 48 hours."
|
|
1119
|
+
msgstr "将合集固定到导航栏。在过去 48 小时内更新的合集旁会出现一个 * 号。"
|
|
1120
|
+
|
|
1121
|
+
#. @context: Post badge - pinned
|
|
1122
|
+
#: src/ui/dash/StatusBadge.tsx
|
|
1123
|
+
msgid "Pinned"
|
|
1124
|
+
msgstr "已置顶"
|
|
1125
|
+
|
|
1126
|
+
#. @context: Custom URL target type badge for a post
|
|
1127
|
+
#. @context: Custom URL type option
|
|
1128
|
+
#: src/routes/dash/custom-urls.tsx
|
|
1129
|
+
#: src/routes/dash/custom-urls.tsx
|
|
1130
|
+
msgid "Post"
|
|
1131
|
+
msgstr "文章"
|
|
1132
|
+
|
|
1133
|
+
#. @context: GitHub sync picker — badge next to private repos
|
|
1134
|
+
#: src/routes/dash/settings.tsx
|
|
1135
|
+
msgid "Private"
|
|
1136
|
+
msgstr "私有"
|
|
1137
|
+
|
|
1138
|
+
#. @context: Avatar upload button text while generating favicon variants
|
|
1139
|
+
#: src/ui/dash/settings/AvatarContent.tsx
|
|
1140
|
+
msgid "Processing..."
|
|
1141
|
+
msgstr "处理中..."
|
|
1142
|
+
|
|
1143
|
+
#. @context: Post status badge - published
|
|
1144
|
+
#: src/ui/dash/StatusBadge.tsx
|
|
1145
|
+
msgid "Published"
|
|
1146
|
+
msgstr "已发布"
|
|
1147
|
+
|
|
1148
|
+
#. @context: Description for manual push action on GitHub Sync settings
|
|
1149
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
1150
|
+
msgid "Push all posts to GitHub right now instead of waiting for the next automatic sync."
|
|
1151
|
+
msgstr "立即将所有文章推送到 GitHub,而不是等待下一次自动同步。"
|
|
1152
|
+
|
|
1153
|
+
#. @context: Archive custom URL query params field
|
|
1154
|
+
#: src/routes/dash/custom-urls.tsx
|
|
1155
|
+
msgid "Query Parameters"
|
|
1156
|
+
msgstr "查询参数"
|
|
1157
|
+
|
|
1158
|
+
#. @context: Color theme preview card secondary sentence
|
|
1159
|
+
#: src/ui/dash/appearance/ColorThemeContent.tsx
|
|
1160
|
+
msgid "Quiet surfaces let writing lead."
|
|
1161
|
+
msgstr "低调的界面让写作成为焦点."
|
|
1162
|
+
|
|
1163
|
+
#. @context: Post format badge - quote
|
|
1164
|
+
#: src/ui/dash/FormatBadge.tsx
|
|
1165
|
+
msgid "Quote"
|
|
1166
|
+
msgstr "引用 (Jant 的帖子格式之一。)"
|
|
1167
|
+
|
|
1168
|
+
#. @context: Color theme preview inline link label
|
|
1169
|
+
#: src/ui/dash/appearance/ColorThemeContent.tsx
|
|
1170
|
+
msgid "Read why"
|
|
1171
|
+
msgstr "了解原因"
|
|
1172
|
+
|
|
1173
|
+
#. @context: Custom URL target type badge for a redirect
|
|
1174
|
+
#. @context: Custom URL type option
|
|
1175
|
+
#: src/routes/dash/custom-urls.tsx
|
|
1176
|
+
#: src/routes/dash/custom-urls.tsx
|
|
1177
|
+
msgid "Redirect"
|
|
1178
|
+
msgstr "重定向"
|
|
1179
|
+
|
|
1180
|
+
#. @context: Redirect type field
|
|
1181
|
+
#: src/routes/dash/custom-urls.tsx
|
|
1182
|
+
msgid "Redirect Type"
|
|
1183
|
+
msgstr "重定向类型"
|
|
1184
|
+
|
|
1185
|
+
#. @context: Settings item description for custom URLs
|
|
1186
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
1187
|
+
msgid "Redirects, vanity paths, and URL control"
|
|
1188
|
+
msgstr "重定向、个性化路径和 URL 控制"
|
|
1189
|
+
|
|
1190
|
+
#. @context: GitHub sync picker — tooltip for the refresh button next to the search input
|
|
1191
|
+
#: src/routes/dash/settings.tsx
|
|
1192
|
+
msgid "Refresh repository list"
|
|
1193
|
+
msgstr "刷新仓库列表"
|
|
1194
|
+
|
|
1195
|
+
#. @context: Button to remove the blog avatar
|
|
1196
|
+
#. @context: Remove system item from navigation
|
|
1197
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
1198
|
+
#: src/ui/dash/settings/AvatarContent.tsx
|
|
1199
|
+
msgid "Remove"
|
|
1200
|
+
msgstr "移除"
|
|
1201
|
+
|
|
1202
|
+
#. @context: Description for disconnect action on GitHub Sync settings
|
|
1203
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
1204
|
+
msgid "Remove the webhook and stop syncing. Your repository content will not be deleted."
|
|
1205
|
+
msgstr "移除 webhook 并停止同步。您的仓库内容不会被删除。"
|
|
1206
|
+
|
|
1207
|
+
#. @context: Confirm dialog for removing the blog avatar
|
|
1208
|
+
#: src/ui/dash/settings/AvatarContent.tsx
|
|
1209
|
+
msgid "Remove this avatar? Your favicon and header icon will go back to the default."
|
|
1210
|
+
msgstr "移除此头像?您的网站图标和页眉图标将恢复为默认设置。"
|
|
1211
|
+
|
|
1212
|
+
#. @context: Confirm dialog for removing a collection nav item
|
|
1213
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
1214
|
+
msgid "Remove this collection from navigation? The collection itself won't be deleted."
|
|
1215
|
+
msgstr "要从导航中移除此合集吗?合集本身不会被删除。"
|
|
1216
|
+
|
|
1217
|
+
#. @context: GitHub sync picker — repo dropdown label
|
|
1218
|
+
#. @context: Label for GitHub repository input on GitHub Sync settings
|
|
1219
|
+
#. @context: Label for connected repository on GitHub Sync status
|
|
1220
|
+
#: src/routes/dash/settings.tsx
|
|
1221
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
1222
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
1223
|
+
msgid "Repository"
|
|
1224
|
+
msgstr "仓库"
|
|
1225
|
+
|
|
1226
|
+
#. @context: Button to revoke API token
|
|
1227
|
+
#. @context: Button to revoke a session
|
|
1228
|
+
#: src/ui/dash/settings/ApiTokensContent.tsx
|
|
1229
|
+
#: src/ui/dash/settings/SessionsContent.tsx
|
|
1230
|
+
msgid "Revoke"
|
|
1231
|
+
msgstr "撤销"
|
|
1232
|
+
|
|
1233
|
+
#. @context: Confirm dialog for revoking an active session
|
|
1234
|
+
#: src/ui/dash/settings/SessionsContent.tsx
|
|
1235
|
+
msgid "Revoke this session? That device will need to sign in again."
|
|
1236
|
+
msgstr "撤销此会话? 该设备需要重新登录."
|
|
1237
|
+
|
|
1238
|
+
#. @context: Confirm dialog for revoking API token
|
|
1239
|
+
#: src/ui/dash/settings/ApiTokensContent.tsx
|
|
1240
|
+
msgid "Revoke this token? Any scripts using it will stop working."
|
|
1241
|
+
msgstr "撤销此令牌?任何使用它的脚本将停止工作。"
|
|
1242
|
+
|
|
1243
|
+
#. @context: Hint shown while a GitHub Sync push is running, reassuring the user they don't have to stay on the page
|
|
1244
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
1245
|
+
msgid "Safe to leave this page — syncing continues in the background."
|
|
1246
|
+
msgstr "放心离开此页面 — 同步会在后台继续进行。"
|
|
1247
|
+
|
|
1248
|
+
#. @context: Button to save Code Injection settings
|
|
1249
|
+
#. @context: Button to save settings
|
|
1250
|
+
#. @context: Button to save settings changes
|
|
1251
|
+
#. @context: Save nav item changes
|
|
1252
|
+
#: src/ui/dash/appearance/CodeInjectionContent.tsx
|
|
1253
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
1254
|
+
#: src/ui/dash/settings/AvatarContent.tsx
|
|
1255
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
1256
|
+
msgid "Save"
|
|
1257
|
+
msgstr "保存"
|
|
1258
|
+
|
|
1259
|
+
#. @context: Button to save custom CSS
|
|
1260
|
+
#: src/ui/dash/appearance/AdvancedContent.tsx
|
|
1261
|
+
msgid "Save CSS"
|
|
1262
|
+
msgstr "保存 CSS"
|
|
1263
|
+
|
|
1264
|
+
#. @context: Settings section heading for search engine indexing settings
|
|
1265
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
1266
|
+
msgid "Search"
|
|
1267
|
+
msgstr "搜索"
|
|
1268
|
+
|
|
1269
|
+
#. @context: GitHub sync picker — search input placeholder
|
|
1270
|
+
#: src/routes/dash/settings.tsx
|
|
1271
|
+
msgid "Search repositories"
|
|
1272
|
+
msgstr "搜索仓库"
|
|
1273
|
+
|
|
1274
|
+
#. @context: Toast after saving search settings
|
|
1275
|
+
#. @context: Toast after saving search settings
|
|
1276
|
+
#: src/routes/dash/settings.tsx
|
|
1277
|
+
#: src/routes/dash/settings.tsx
|
|
1278
|
+
msgid "Search settings updated."
|
|
1279
|
+
msgstr "搜索设置已更新。"
|
|
1280
|
+
|
|
1281
|
+
#. @context: Settings group label for account security settings
|
|
1282
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
1283
|
+
msgid "Security"
|
|
1284
|
+
msgstr "安全"
|
|
1285
|
+
|
|
1286
|
+
#. @context: Error toast when CSRF token is invalid or expired
|
|
1287
|
+
#: src/routes/dash/settings.tsx
|
|
1288
|
+
msgid "Security token expired. Refresh the page and try again."
|
|
1289
|
+
msgstr "安全令牌已过期。刷新页面后重试。"
|
|
1290
|
+
|
|
1291
|
+
#. @context: Error toast when CSRF token is missing from delete request
|
|
1292
|
+
#: src/routes/dash/settings.tsx
|
|
1293
|
+
msgid "Security token missing. Refresh the page and try again."
|
|
1294
|
+
msgstr "缺少安全令牌。刷新页面后重试。"
|
|
1295
|
+
|
|
1296
|
+
#. @context: Settings item description for sessions
|
|
1297
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
1298
|
+
msgid "See where you're signed in and revoke old sessions"
|
|
1299
|
+
msgstr "查看你的登录位置并撤销旧会话"
|
|
1300
|
+
|
|
1301
|
+
#. @context: GitHub sync picker — repo dropdown placeholder
|
|
1302
|
+
#: src/routes/dash/settings.tsx
|
|
1303
|
+
msgid "Select a repository"
|
|
1304
|
+
msgstr "选择仓库"
|
|
1305
|
+
|
|
1306
|
+
#. @context: GitHub sync picker — owner dropdown placeholder when nothing is selected
|
|
1307
|
+
#: src/routes/dash/settings.tsx
|
|
1308
|
+
msgid "Select an account"
|
|
1309
|
+
msgstr "选择账户"
|
|
1310
|
+
|
|
1311
|
+
#. @context: Error shown when session management is blocked in demo mode
|
|
1312
|
+
#: src/routes/dash/settings.tsx
|
|
1313
|
+
msgid "Session management is off in demo mode. Use the shared demo session instead."
|
|
1314
|
+
msgstr "会话管理在演示模式下已关闭。请使用共享的演示会话。"
|
|
1315
|
+
|
|
1316
|
+
#. @context: Breadcrumb label
|
|
1317
|
+
#. @context: Settings item — session management
|
|
1318
|
+
#: src/routes/dash/settings.tsx
|
|
1319
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
1320
|
+
msgid "Sessions"
|
|
1321
|
+
msgstr "会话"
|
|
1322
|
+
|
|
1323
|
+
#. @context: Settings item description for account settings on the settings home page
|
|
1324
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
1325
|
+
msgid "Sessions and password"
|
|
1326
|
+
msgstr "会话与密码"
|
|
1327
|
+
|
|
1328
|
+
#. @context: Breadcrumb label
|
|
1329
|
+
#. @context: Page title for the settings home page
|
|
1330
|
+
#: src/routes/dash/settings.tsx
|
|
1331
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
1332
|
+
msgid "Settings"
|
|
1333
|
+
msgstr "设置"
|
|
1334
|
+
|
|
1335
|
+
#. @context: Checkbox for showing the optional Jant credit link on the home page
|
|
1336
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
1337
|
+
msgid "Show \"Build with Jant\" at the bottom of the home page"
|
|
1338
|
+
msgstr "在主页底部显示 \"Build with Jant\""
|
|
1339
|
+
|
|
1340
|
+
#. @context: GitHub sync picker — paginated repo count hint. Placeholders {shown} and {total} are integers.
|
|
1341
|
+
#: src/routes/dash/settings.tsx
|
|
1342
|
+
msgid "Showing {shown} of {total}"
|
|
1343
|
+
msgstr "显示 {shown} 共 {total}"
|
|
1344
|
+
|
|
1345
|
+
#. @context: Settings link — sign out action
|
|
1346
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
1347
|
+
msgid "Sign Out"
|
|
1348
|
+
msgstr "退出登录"
|
|
1349
|
+
|
|
1350
|
+
#. @context: Session creation date
|
|
1351
|
+
#: src/ui/dash/settings/SessionsContent.tsx
|
|
1352
|
+
msgid "Signed in {date}"
|
|
1353
|
+
msgstr "于 {date} 登录"
|
|
1354
|
+
|
|
1355
|
+
#. @context: Settings group label for site settings
|
|
1356
|
+
#. @context: Settings subsection heading for basic site fields
|
|
1357
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
1358
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
1359
|
+
msgid "Site"
|
|
1360
|
+
msgstr "站点"
|
|
1361
|
+
|
|
1362
|
+
#. @context: Code Injection field group label for body end
|
|
1363
|
+
#. @context: Settings section heading for site footer
|
|
1364
|
+
#: src/ui/dash/appearance/CodeInjectionContent.tsx
|
|
1365
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
1366
|
+
msgid "Site Footer"
|
|
1367
|
+
msgstr "网站页脚"
|
|
1368
|
+
|
|
1369
|
+
#. @context: Code Injection field group label for <head>
|
|
1370
|
+
#: src/ui/dash/appearance/CodeInjectionContent.tsx
|
|
1371
|
+
msgid "Site Header"
|
|
1372
|
+
msgstr "站点头部"
|
|
1373
|
+
|
|
1374
|
+
#. @context: Settings form field
|
|
1375
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
1376
|
+
msgid "Site Name"
|
|
1377
|
+
msgstr "站点名称"
|
|
1378
|
+
|
|
1379
|
+
#. @context: Toast after saving site settings
|
|
1380
|
+
#: src/routes/dash/settings.tsx
|
|
1381
|
+
msgid "Site settings updated."
|
|
1382
|
+
msgstr "站点设置已更新."
|
|
1383
|
+
|
|
1384
|
+
#. @context: Settings item description for code injection
|
|
1385
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
1386
|
+
msgid "Site-wide HTML for analytics and widgets"
|
|
1387
|
+
msgstr "用于分析和小部件的全站 HTML"
|
|
1388
|
+
|
|
1389
|
+
#. @context: Color theme preview card body sentence
|
|
1390
|
+
#: src/ui/dash/appearance/ColorThemeContent.tsx
|
|
1391
|
+
msgid "Soft color should still carry a clear reading rhythm."
|
|
1392
|
+
msgstr "柔和的颜色仍应保持清晰的阅读节奏。"
|
|
1393
|
+
|
|
1394
|
+
#. @context: Button to trigger a full content push to GitHub on GitHub Sync settings
|
|
1395
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
1396
|
+
msgid "Sync Now"
|
|
1397
|
+
msgstr "立即同步"
|
|
1398
|
+
|
|
1399
|
+
#. @context: Shown while a GitHub Sync push is running in the background
|
|
1400
|
+
#: src/ui/dash/settings/GitHubSyncContent.tsx
|
|
1401
|
+
msgid "Syncing…"
|
|
1402
|
+
msgstr "正在同步…"
|
|
1403
|
+
|
|
1404
|
+
#. @context: Nav item type badge
|
|
1405
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
1406
|
+
msgid "system"
|
|
1407
|
+
msgstr "系统"
|
|
1408
|
+
|
|
1409
|
+
#. @context: Custom URL target slug field
|
|
1410
|
+
#: src/routes/dash/custom-urls.tsx
|
|
1411
|
+
msgid "Target Slug"
|
|
1412
|
+
msgstr "目标 slug"
|
|
1413
|
+
|
|
1414
|
+
#. @context: Error toast when selected font theme is not valid
|
|
1415
|
+
#: src/routes/dash/settings.tsx
|
|
1416
|
+
msgid "That font theme isn't available. Pick another one."
|
|
1417
|
+
msgstr "该字体主题不可用。请选择另一个。"
|
|
1418
|
+
|
|
1419
|
+
#. @context: Error toast when selected theme is not valid
|
|
1420
|
+
#: src/routes/dash/settings.tsx
|
|
1421
|
+
msgid "That theme isn't available. Pick another one."
|
|
1422
|
+
msgstr "该主题不可用。请选择其他主题。"
|
|
1423
|
+
|
|
1424
|
+
#. @context: Custom URL target slug help text
|
|
1425
|
+
#: src/routes/dash/custom-urls.tsx
|
|
1426
|
+
msgid "The slug of the target post or collection"
|
|
1427
|
+
msgstr "目标文章或合集的 slug"
|
|
1428
|
+
|
|
1429
|
+
#. @context: Link to theming documentation on Custom CSS page
|
|
1430
|
+
#: src/ui/dash/appearance/AdvancedContent.tsx
|
|
1431
|
+
msgid "Theming guide"
|
|
1432
|
+
msgstr "主题指南"
|
|
1433
|
+
|
|
1434
|
+
#. @context: Description for session management
|
|
1435
|
+
#: src/ui/dash/settings/SessionsContent.tsx
|
|
1436
|
+
msgid "These devices are currently signed in to your account. Revoke any session you don't recognize."
|
|
1437
|
+
msgstr "以下设备当前已登录到您的帐户。撤销任何您不认识的会话。"
|
|
1438
|
+
|
|
1439
|
+
#. @context: Generic fallback blog name in the delete-account confirmation phrase when the site name is unavailable
|
|
1440
|
+
#: src/ui/dash/settings/DeleteAccountContent.tsx
|
|
1441
|
+
msgid "this blog"
|
|
1442
|
+
msgstr "此博客"
|
|
1443
|
+
|
|
1444
|
+
#. @context: Code Injection security warning headline
|
|
1445
|
+
#: src/ui/dash/appearance/CodeInjectionContent.tsx
|
|
1446
|
+
msgid "This code runs on every page of your site."
|
|
1447
|
+
msgstr "此代码将在您网站的每个页面上运行。"
|
|
1448
|
+
|
|
1449
|
+
#. @context: Help text for choosing whether /feed points to latest or featured posts
|
|
1450
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
1451
|
+
msgid "This controls what /feed returns."
|
|
1452
|
+
msgstr "这将控制 /feed 返回的内容。"
|
|
1453
|
+
|
|
1454
|
+
#. @context: Notice shown on hosted account settings explaining that password and hosted account controls live in the connected hosted auth provider
|
|
1455
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
1456
|
+
msgid "This hosted site signs in through {providerLabel}. Manage password and hosted access there."
|
|
1457
|
+
msgstr "此托管站点通过 {providerLabel} 登录。请在那里管理密码和托管访问权限。"
|
|
1458
|
+
|
|
1459
|
+
#. @context: Help text for avatar upload
|
|
1460
|
+
#: src/ui/dash/settings/AvatarContent.tsx
|
|
1461
|
+
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."
|
|
1462
|
+
msgstr "此图用于您的 favicon 和 apple-touch-icon。为获得最佳效果,请上传至少 512×512 像素、纯色背景的方形 PNG。"
|
|
1463
|
+
|
|
1464
|
+
#. @context: GitHub sync picker — confirmation card heading for foreign repos
|
|
1465
|
+
#: src/routes/dash/settings.tsx
|
|
1466
|
+
msgid "This repository already has commits"
|
|
1467
|
+
msgstr "该仓库已有提交"
|
|
1468
|
+
|
|
1469
|
+
#. @context: GitHub sync picker — heading above the foreign-repo confirmation
|
|
1470
|
+
#: src/routes/dash/settings.tsx
|
|
1471
|
+
msgid "This repository has existing content."
|
|
1472
|
+
msgstr "此仓库已有内容。"
|
|
1473
|
+
|
|
1474
|
+
#. @context: GitHub sync picker — blocking message when marker belongs to another site. Placeholder {host} is the other site's host.
|
|
1475
|
+
#: src/routes/dash/settings.tsx
|
|
1476
|
+
msgid "This repository is already backing up another Jant site ({host}). Pick a different repository."
|
|
1477
|
+
msgstr "此仓库已在为另一个 Jant 站点 ({host}) 进行备份。请选择其他仓库。"
|
|
1478
|
+
|
|
1479
|
+
#. @context: GitHub sync picker — shown when the selected repo's marker matches this site
|
|
1480
|
+
#: src/routes/dash/settings.tsx
|
|
1481
|
+
msgid "This repository is already backing up this site."
|
|
1482
|
+
msgstr "此仓库已在备份此站点。"
|
|
1483
|
+
|
|
1484
|
+
#. @context: Warning text on account deletion page
|
|
1485
|
+
#: src/ui/dash/settings/DeleteAccountContent.tsx
|
|
1486
|
+
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."
|
|
1487
|
+
msgstr "这将永久删除您所有的数据 — 帖子、媒体、合集、设置和您的账户。您的博客将重置为初始设置状态。此操作不可撤销。"
|
|
1488
|
+
|
|
1489
|
+
#. @context: Settings form field
|
|
1490
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
1491
|
+
msgid "Time Zone"
|
|
1492
|
+
msgstr "时区"
|
|
1493
|
+
|
|
1494
|
+
#. @context: Description for built-in nav toggles
|
|
1495
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
1496
|
+
msgid "Toggle built-in navigation items. Their order controls what shows in the header and which feed the homepage opens first."
|
|
1497
|
+
msgstr "切换内置导航项。它们的顺序决定页眉显示的内容以及首页显示哪个视图。"
|
|
1498
|
+
|
|
1499
|
+
#. @context: Button to expand/collapse nav item edit
|
|
1500
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
1501
|
+
msgid "Toggle edit panel"
|
|
1502
|
+
msgstr "切换编辑面板"
|
|
1503
|
+
|
|
1504
|
+
#. @context: API token name field label
|
|
1505
|
+
#: src/ui/dash/settings/ApiTokensContent.tsx
|
|
1506
|
+
msgid "Token name"
|
|
1507
|
+
msgstr "令牌名称"
|
|
1508
|
+
|
|
1509
|
+
#. @context: API tokens description
|
|
1510
|
+
#: src/ui/dash/settings/ApiTokensContent.tsx
|
|
1511
|
+
msgid "Tokens let you access the API from scripts, shortcuts, and other tools without signing in."
|
|
1512
|
+
msgstr "令牌让您无需登录即可从脚本、快捷方式和其他工具访问 API。"
|
|
1513
|
+
|
|
1514
|
+
#. @context: GitHub sync picker — retry button
|
|
1515
|
+
#: src/routes/dash/settings.tsx
|
|
1516
|
+
msgid "Try again"
|
|
1517
|
+
msgstr "重试"
|
|
1518
|
+
|
|
1519
|
+
#. @context: Intro text on the settings home page below the title
|
|
1520
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
1521
|
+
msgid "Tune how your site looks, reads, and runs."
|
|
1522
|
+
msgstr "调整你的网站的外观、阅读体验和运行方式。"
|
|
1523
|
+
|
|
1524
|
+
#. @context: Custom URL form field
|
|
1525
|
+
#: src/routes/dash/custom-urls.tsx
|
|
1526
|
+
msgid "Type"
|
|
1527
|
+
msgstr "类型"
|
|
1528
|
+
|
|
1529
|
+
#. @context: GitHub sync picker — label above the typed-confirmation input
|
|
1530
|
+
#: src/routes/dash/settings.tsx
|
|
1531
|
+
msgid "Type {repo} to confirm"
|
|
1532
|
+
msgstr "输入 {repo} 以确认"
|
|
1533
|
+
|
|
1534
|
+
#. @context: Instruction to type confirmation phrase before deletion
|
|
1535
|
+
#: src/ui/dash/settings/DeleteAccountContent.tsx
|
|
1536
|
+
msgid "Type the following phrase to confirm:"
|
|
1537
|
+
msgstr "输入以下短语以确认:"
|
|
1538
|
+
|
|
1539
|
+
#. @context: GitHub sync picker — hint telling the user typing will search the full list
|
|
1540
|
+
#: src/routes/dash/settings.tsx
|
|
1541
|
+
msgid "type to search all"
|
|
1542
|
+
msgstr "输入以搜索全部"
|
|
1543
|
+
|
|
1544
|
+
#. @context: Settings item description for font theme
|
|
1545
|
+
#: src/ui/dash/settings/SettingsRootContent.tsx
|
|
1546
|
+
msgid "Typography choices and reading texture"
|
|
1547
|
+
msgstr "排版选项与阅读质感"
|
|
1548
|
+
|
|
1549
|
+
#. @context: Fallback label when session device can't be identified
|
|
1550
|
+
#: src/ui/dash/settings/SessionsContent.tsx
|
|
1551
|
+
msgid "Unknown device"
|
|
1552
|
+
msgstr "未知设备"
|
|
1553
|
+
|
|
1554
|
+
#. @context: Settings item description for password change
|
|
1555
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
1556
|
+
msgid "Update the password you use to sign in"
|
|
1557
|
+
msgstr "更新您用于登录的密码"
|
|
1558
|
+
|
|
1559
|
+
#. @context: Button to upload avatar image
|
|
1560
|
+
#: src/ui/dash/settings/AvatarContent.tsx
|
|
1561
|
+
msgid "Upload Avatar"
|
|
1562
|
+
msgstr "上传头像"
|
|
1563
|
+
|
|
1564
|
+
#. @context: Error toast when avatar upload fails
|
|
1565
|
+
#: src/routes/dash/settings.tsx
|
|
1566
|
+
msgid "Upload didn't go through. Try again in a moment."
|
|
1567
|
+
msgstr "上传未成功。请稍后再试。"
|
|
1568
|
+
|
|
1569
|
+
#. @context: Error message when avatar upload fails
|
|
1570
|
+
#: src/ui/dash/settings/AvatarContent.tsx
|
|
1571
|
+
msgid "Upload failed. Please try again."
|
|
1572
|
+
msgstr "上传失败。请重试。"
|
|
1573
|
+
|
|
1574
|
+
#. @context: Avatar upload button text while uploading
|
|
1575
|
+
#: src/ui/dash/settings/AvatarContent.tsx
|
|
1576
|
+
msgid "Uploading..."
|
|
1577
|
+
msgstr "正在上传..."
|
|
1578
|
+
|
|
1579
|
+
#. @context: Nav item URL field
|
|
1580
|
+
#: src/ui/dash/appearance/NavigationContent.tsx
|
|
1581
|
+
msgid "URL"
|
|
1582
|
+
msgstr "网址"
|
|
1583
|
+
|
|
1584
|
+
#. @context: Heading for API token usage examples
|
|
1585
|
+
#: src/ui/dash/settings/ApiTokensContent.tsx
|
|
1586
|
+
msgid "Usage"
|
|
1587
|
+
msgstr "用法"
|
|
1588
|
+
|
|
1589
|
+
#. @context: Help text for the explicit latest and featured feed URLs
|
|
1590
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
1591
|
+
msgid "Use these when you want a feed URL that never changes."
|
|
1592
|
+
msgstr "当你想要一个永远不变的订阅源 URL 时使用它们。"
|
|
1593
|
+
|
|
1594
|
+
#. @context: Description for choosing featured posts as the main RSS feed
|
|
1595
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
1596
|
+
msgid "Uses featured posts for /feed."
|
|
1597
|
+
msgstr "将精选文章用于 /feed。"
|
|
1598
|
+
|
|
1599
|
+
#. @context: Description for choosing the latest posts as the main RSS feed
|
|
1600
|
+
#: src/ui/dash/settings/GeneralContent.tsx
|
|
1601
|
+
msgid "Uses the latest public posts for /feed."
|
|
1602
|
+
msgstr "为 /feed 使用最新的公开帖子。"
|
|
1603
|
+
|
|
1604
|
+
#. @context: Button to view item on public site
|
|
1605
|
+
#: src/ui/dash/ActionButtons.tsx
|
|
1606
|
+
msgid "View"
|
|
1607
|
+
msgstr "查看"
|
|
1608
|
+
|
|
1609
|
+
#. @context: Prefix before Custom CSS link on color theme page
|
|
1610
|
+
#: src/ui/dash/appearance/ColorThemeContent.tsx
|
|
1611
|
+
msgid "Want more control?"
|
|
1612
|
+
msgstr "想要更多控制?"
|
|
1613
|
+
|
|
1614
|
+
#. @context: GitHub sync picker — hint under the create-on-github entry. Placeholder {name} is the suggested repo name.
|
|
1615
|
+
#: src/routes/dash/settings.tsx
|
|
1616
|
+
msgid "We'll prefill the name {name}. The list refreshes on return."
|
|
1617
|
+
msgstr "我们会预先填充名称 {name}。返回时列表会刷新。"
|
|
1618
|
+
|
|
1619
|
+
#. @context: Description for backup and restore documentation link in account settings
|
|
1620
|
+
#: src/ui/dash/settings/AccountMenuContent.tsx
|
|
1621
|
+
msgid "When to use site export, database backups, and recovery drills."
|
|
1622
|
+
msgstr "何时使用站点导出、数据库备份和恢复演练。"
|