@strapi/admin 4.2.3 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/admin/src/app.js +7 -4
  2. package/admin/src/components/LeftMenu/index.js +12 -2
  3. package/admin/src/content-manager/components/EditViewDataManagerProvider/index.js +5 -4
  4. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/cleanData.js +0 -8
  5. package/admin/src/content-manager/components/SelectMany/index.js +2 -4
  6. package/admin/src/content-manager/components/SelectWrapper/index.js +1 -13
  7. package/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js +2 -2
  8. package/admin/src/content-manager/pages/ListView/FieldPicker/index.js +9 -1
  9. package/admin/src/content-manager/utils/removeKeyInObject.js +0 -4
  10. package/admin/src/hooks/useFetchMarketplaceProviders/index.js +1 -1
  11. package/admin/src/index.js +1 -1
  12. package/admin/src/pages/Admin/index.js +21 -7
  13. package/admin/src/pages/App/constants.js +1 -0
  14. package/admin/src/pages/App/index.js +21 -3
  15. package/admin/src/pages/App/reducer.js +22 -0
  16. package/admin/src/pages/InstalledPluginsPage/Plugins.js +10 -2
  17. package/admin/src/pages/ProfilePage/index.js +19 -18
  18. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromUrlForm.js +7 -3
  19. package/admin/src/pages/SettingsPage/pages/Users/EditPage/utils/layout.js +3 -1
  20. package/admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js +1 -1
  21. package/admin/src/pages/SettingsPage/pages/Users/ListPage/utils/tableHeaders.js +18 -4
  22. package/admin/src/pages/SettingsPage/pages/Users/components/SelectRoles/index.js +4 -1
  23. package/admin/src/reducers.js +4 -2
  24. package/admin/src/translations/en.json +37 -0
  25. package/admin/src/translations/zh-Hans.json +55 -8
  26. package/admin/src/tsconfig.json +10 -0
  27. package/build/1669.341e10d8.chunk.js +1 -0
  28. package/build/20.9e5a98b6.chunk.js +308 -0
  29. package/build/3332.1e443103.chunk.js +102 -0
  30. package/build/413.d5986568.chunk.js +284 -0
  31. package/build/{3180.ad280cb4.chunk.js → 5520.3c6bf86a.chunk.js} +34 -34
  32. package/build/{9166.5c585d7c.chunk.js → 8655.9073e17e.chunk.js} +59 -58
  33. package/build/8773.1b2ec266.chunk.js +327 -0
  34. package/build/9730.8fbe43ee.chunk.js +12 -0
  35. package/build/9799.ce46400f.chunk.js +760 -0
  36. package/build/Admin-authenticatedApp.ea608aff.chunk.js +80 -0
  37. package/build/{6102.1482bf98.chunk.js → Admin_InternalErrorPage.25c53284.chunk.js} +1 -1
  38. package/build/{Admin_homePage.4cc54224.chunk.js → Admin_homePage.118926e0.chunk.js} +1 -1
  39. package/build/{Admin_marketplace.91a1aacd.chunk.js → Admin_marketplace.8efd3fd0.chunk.js} +2 -2
  40. package/build/Admin_pluginsPage.0992c2b5.chunk.js +1 -0
  41. package/build/Admin_profilePage.35ce8e94.chunk.js +15 -0
  42. package/build/Admin_settingsPage.5fc517d7.chunk.js +178 -0
  43. package/build/admin-app.1bd5f67e.chunk.js +112 -0
  44. package/build/admin-edit-roles-page.358d98c1.chunk.js +1 -0
  45. package/build/admin-edit-users.714863af.chunk.js +10 -0
  46. package/build/admin-users.2bd6fb37.chunk.js +11 -0
  47. package/build/{api-tokens-edit-page.d41a0165.chunk.js → api-tokens-create-page.442e3be0.chunk.js} +1 -1
  48. package/build/api-tokens-edit-page.5f34eec7.chunk.js +1 -0
  49. package/build/{api-tokens-list-page.ec7c36f0.chunk.js → api-tokens-list-page.5ea3f6ce.chunk.js} +1 -1
  50. package/build/{codemirror-css.269ff90a.chunk.js → codemirror-css.4e2bbed3.chunk.js} +1 -1
  51. package/build/{codemirror-theme.bd70dd4c.chunk.js → codemirror-theme.a82cae4e.chunk.js} +1 -1
  52. package/build/content-manager.39bc9201.chunk.js +1176 -0
  53. package/build/content-type-builder-list-view.b12687b2.chunk.js +194 -0
  54. package/build/content-type-builder-translation-en-json.201bfb78.chunk.js +1 -0
  55. package/build/content-type-builder.ec6ccb59.chunk.js +142 -0
  56. package/build/{cropper-css.f4896679.chunk.js → cropper-css.12fe038c.chunk.js} +1 -1
  57. package/build/{email-settings-page.f12299bd.chunk.js → email-settings-page.818761d5.chunk.js} +2 -2
  58. package/build/email-translation-en-json.3d74ff95.chunk.js +1 -0
  59. package/build/email-translation-zh-Hans-json.8172da08.chunk.js +1 -0
  60. package/build/en-json.6d70e9ff.chunk.js +1 -0
  61. package/build/{fontawesome-css-all.4ecf62f5.chunk.js → fontawesome-css-all.15068c6e.chunk.js} +1 -1
  62. package/build/{fontawesome-css.18f0d57b.chunk.js → fontawesome-css.418f40da.chunk.js} +1 -1
  63. package/build/{highlight.js.22f875ca.chunk.js → highlight.js.af2de364.chunk.js} +1 -1
  64. package/build/i18n-settings-page.9d426e96.chunk.js +101 -0
  65. package/build/index.html +1 -1
  66. package/build/main.b19c2ee3.js +8675 -0
  67. package/build/runtime~main.426f9375.js +2 -0
  68. package/build/{sso-settings-page.2dbec3a3.chunk.js → sso-settings-page.445184e0.chunk.js} +1 -1
  69. package/build/{upload-settings.6c0eb939.chunk.js → upload-settings.4bad0bdd.chunk.js} +1 -1
  70. package/build/upload-translation-de-json.745613c0.chunk.js +1 -0
  71. package/build/upload-translation-dk-json.cb25dcf0.chunk.js +1 -0
  72. package/build/upload-translation-en-json.bc79c867.chunk.js +1 -0
  73. package/build/upload-translation-es-json.1f344b53.chunk.js +1 -0
  74. package/build/upload-translation-fr-json.e21c0c7a.chunk.js +1 -0
  75. package/build/upload-translation-he-json.4ce77b7b.chunk.js +1 -0
  76. package/build/upload-translation-it-json.5ce11e0b.chunk.js +1 -0
  77. package/build/upload-translation-ja-json.22afae44.chunk.js +1 -0
  78. package/build/upload-translation-ko-json.9a2c21cb.chunk.js +1 -0
  79. package/build/upload-translation-ms-json.0605d6da.chunk.js +1 -0
  80. package/build/upload-translation-pl-json.c1f86b50.chunk.js +1 -0
  81. package/build/upload-translation-pt-BR-json.95686cfb.chunk.js +1 -0
  82. package/build/upload-translation-ru-json.37bd1546.chunk.js +1 -0
  83. package/build/upload-translation-sk-json.b03d4904.chunk.js +1 -0
  84. package/build/upload-translation-th-json.64dd70ce.chunk.js +1 -0
  85. package/build/upload-translation-uk-json.1328cb3e.chunk.js +1 -0
  86. package/build/upload-translation-zh-Hans-json.37a2981e.chunk.js +1 -0
  87. package/build/upload-translation-zh-json.ee8fba96.chunk.js +1 -0
  88. package/build/upload.1346f4b1.chunk.js +7 -0
  89. package/build/{users-advanced-settings-page.06330ec9.chunk.js → users-advanced-settings-page.f38654fc.chunk.js} +1 -1
  90. package/build/users-email-settings-page.824a3cdb.chunk.js +101 -0
  91. package/build/{users-providers-settings-page.f011f210.chunk.js → users-providers-settings-page.a0b0fe39.chunk.js} +1 -1
  92. package/build/{users-roles-settings-page.d756dce9.chunk.js → users-roles-settings-page.3db986a4.chunk.js} +2 -2
  93. package/build/{webhook-edit-page.181ea60a.chunk.js → webhook-edit-page.3417d93c.chunk.js} +2 -2
  94. package/build/{webhook-list-page.b6000354.chunk.js → webhook-list-page.2ab4bbf0.chunk.js} +1 -1
  95. package/build/zh-Hans-json.eac1d90a.chunk.js +1 -0
  96. package/ee/admin/pages/SettingsPage/pages/Roles/CreatePage/index.js +3 -3
  97. package/index.js +47 -239
  98. package/package.json +14 -10
  99. package/scripts/build.js +19 -3
  100. package/server/controllers/admin.js +21 -0
  101. package/server/policies/index.js +1 -0
  102. package/server/policies/isTelemetryEnabled.js +16 -0
  103. package/server/routes/admin.js +8 -0
  104. package/server/routes/serve-admin-panel.js +1 -1
  105. package/utils/create-cache-dir.js +131 -0
  106. package/utils/get-custom-app-config-file.js +28 -0
  107. package/utils/get-custom-webpack-config.js +38 -0
  108. package/utils/get-plugins-path.js +26 -0
  109. package/utils/index.js +13 -0
  110. package/utils/should-build-admin.js +52 -0
  111. package/utils/watch-admin-files.js +59 -0
  112. package/webpack.alias.js +0 -1
  113. package/webpack.config.js +32 -10
  114. package/admin/src/content-manager/components/SelectWrapper/ClearIndicator.js +0 -18
  115. package/admin/src/content-manager/components/SelectWrapper/DropdownIndicator.js +0 -24
  116. package/admin/src/content-manager/components/SelectWrapper/IconBox.js +0 -20
  117. package/admin/src/content-manager/components/SelectWrapper/IndicatorSeparator.js +0 -3
  118. package/admin/src/content-manager/components/SelectWrapper/utils/getSelectStyles.js +0 -92
  119. package/build/2912.dd031292.chunk.js +0 -253
  120. package/build/3526.849d6a28.chunk.js +0 -162
  121. package/build/4094.ff4573b6.chunk.js +0 -194
  122. package/build/4982.c57c5675.chunk.js +0 -308
  123. package/build/6925.fb35248e.chunk.js +0 -761
  124. package/build/7810.c0d5e393.chunk.js +0 -113
  125. package/build/7841.9e9cf739.chunk.js +0 -253
  126. package/build/8681.334d9893.chunk.js +0 -163
  127. package/build/9298.fbe24a6e.chunk.js +0 -334
  128. package/build/948.d64fb515.chunk.js +0 -2
  129. package/build/Admin-authenticatedApp.a13de617.chunk.js +0 -80
  130. package/build/Admin_pluginsPage.b339b9c3.chunk.js +0 -1
  131. package/build/Admin_profilePage.369a0308.chunk.js +0 -15
  132. package/build/Admin_settingsPage.9bc7a0f0.chunk.js +0 -180
  133. package/build/admin-edit-roles-page.31acda7c.chunk.js +0 -1
  134. package/build/admin-edit-users.98a32ee5.chunk.js +0 -11
  135. package/build/admin-users.ab8ba52e.chunk.js +0 -12
  136. package/build/api-tokens-create-page.a3b9c8bd.chunk.js +0 -1
  137. package/build/content-manager.02509825.chunk.js +0 -1198
  138. package/build/content-type-builder-translation-en-json.ea3c66b3.chunk.js +0 -1
  139. package/build/content-type-builder.af41a338.chunk.js +0 -142
  140. package/build/email-translation-en-json.6da7e388.chunk.js +0 -1
  141. package/build/email-translation-zh-Hans-json.b463cb25.chunk.js +0 -1
  142. package/build/en-json.4f6bd46a.chunk.js +0 -1
  143. package/build/i18n-settings-page.c1ecebbc.chunk.js +0 -101
  144. package/build/main.48e0f6dc.js +0 -8434
  145. package/build/runtime~main.e9852fed.js +0 -2
  146. package/build/upload-translation-de-json.b642da08.chunk.js +0 -1
  147. package/build/upload-translation-dk-json.fc61df13.chunk.js +0 -1
  148. package/build/upload-translation-en-json.59269508.chunk.js +0 -1
  149. package/build/upload-translation-es-json.8ec935ef.chunk.js +0 -1
  150. package/build/upload-translation-fr-json.eb9b4f84.chunk.js +0 -1
  151. package/build/upload-translation-he-json.c226f2dc.chunk.js +0 -1
  152. package/build/upload-translation-it-json.8e58456e.chunk.js +0 -1
  153. package/build/upload-translation-ja-json.1378a2e7.chunk.js +0 -1
  154. package/build/upload-translation-ko-json.5e06e112.chunk.js +0 -1
  155. package/build/upload-translation-ms-json.dc3bf0d7.chunk.js +0 -1
  156. package/build/upload-translation-pl-json.bb2aa937.chunk.js +0 -1
  157. package/build/upload-translation-pt-BR-json.7e8d9550.chunk.js +0 -1
  158. package/build/upload-translation-ru-json.da2529f3.chunk.js +0 -1
  159. package/build/upload-translation-sk-json.bfdf4f09.chunk.js +0 -1
  160. package/build/upload-translation-th-json.6a48b826.chunk.js +0 -1
  161. package/build/upload-translation-uk-json.6fb09148.chunk.js +0 -1
  162. package/build/upload-translation-zh-Hans-json.c9622577.chunk.js +0 -1
  163. package/build/upload-translation-zh-json.711f804b.chunk.js +0 -1
  164. package/build/upload.92d5c845.chunk.js +0 -105
  165. package/build/users-email-settings-page.151b35a9.chunk.js +0 -1
  166. package/build/zh-Hans-json.cbc69f3d.chunk.js +0 -1
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2553],{35964:e=>{e.exports=JSON.parse('{"Analytics":"\u5206\u6790","Auth.components.Oops.text":"\u4F60\u7684\u5E10\u53F7\u5DF2\u7ECF\u88AB\u505C\u7528\u3002","Auth.components.Oops.text.admin":"\u5982\u679C\u8FD9\u662F\u4E2A\u9519\u8BEF\uFF0C\u8BF7\u8054\u7CFB\u4F60\u7684\u7BA1\u7406\u5458\u3002","Auth.components.Oops.title":"\u54CE\u5440...","Auth.form.active.label":"\u6FC0\u6D3B","Auth.form.button.forgot-password":"\u53D1\u9001\u7535\u5B50\u90AE\u4EF6","Auth.form.button.go-home":"\u56DE\u5230\u9996\u9875","Auth.form.button.login":"\u767B\u5F55","Auth.form.button.login.providers.error":"\u65E0\u6CD5\u901A\u8FC7\u9009\u5B9A\u7684\u9A8C\u8BC1\u65B9\u5F0F\u8FDE\u63A5\u4F60\u7684\u5E10\u53F7\u3002","Auth.form.button.login.strapi":"\u901A\u8FC7 Strapi \u767B\u5F55","Auth.form.button.password-recovery":"\u627E\u56DE\u5BC6\u7801","Auth.form.button.register":"\u51C6\u5907\u5F00\u59CB","Auth.form.confirmPassword.label":"\u786E\u8BA4\u5BC6\u7801","Auth.form.currentPassword.label":"\u5F53\u524D\u5BC6\u7801","Auth.form.email.label":"\u7535\u5B50\u90AE\u4EF6","Auth.form.email.placeholder":"\u4F8B\u5982 kai@doe.com","Auth.form.error.blocked":"\u4F60\u7684\u5E10\u53F7\u5DF2\u7ECF\u88AB\u7BA1\u7406\u5458\u7981\u7528\u3002","Auth.form.error.code.provide":"\u63D0\u4F9B\u7684\u4EE3\u7801\u4E0D\u6B63\u786E\u3002","Auth.form.error.confirmed":"\u60A8\u7684\u5E10\u53F7\u5173\u8054\u7684\u7535\u5B50\u90AE\u4EF6\u8FD8\u672A\u5F97\u5230\u786E\u8BA4\u3002","Auth.form.error.email.invalid":"\u7535\u5B50\u90AE\u4EF6\u683C\u5F0F\u4E0D\u6B63\u786E\u3002","Auth.form.error.email.provide":"\u8BF7\u63D0\u4F9B\u60A8\u7684\u7528\u6237\u540D\u6216\u7535\u5B50\u90AE\u4EF6\u3002","Auth.form.error.email.taken":"\u6B64\u7535\u5B50\u90AE\u4EF6\u5730\u5740\u5DF2\u88AB\u5360\u7528","Auth.form.error.invalid":"\u4F7F\u7528\u8005\u540D\u79F0\u6216\u5BC6\u7801\u65E0\u6548\u3002","Auth.form.error.params.provide":"\u5BC6\u7801\u4E0D\u6B63\u786E\u3002","Auth.form.error.password.format":"\u60A8\u7684\u5BC6\u7801\u4E0D\u80FD\u5305\u542B `$` \u7B26\u53F7\u8D85\u8FC7\u4E09\u6B21\u3002","Auth.form.error.password.local":"\u8FD9\u4E2A\u7528\u6237\u4ECE\u672A\u8BBE\u7F6E\u672C\u5730\u5BC6\u7801\uFF0C\u8BF7\u4F7F\u7528\u8D26\u6237\u521B\u5EFA\u65F6\u4F7F\u7528\u7684\u9A8C\u8BC1\u65B9\u5F0F\u767B\u5F55\u3002","Auth.form.error.password.matching":"\u5BC6\u7801\u4E0D\u5339\u914D\u3002","Auth.form.error.password.provide":"\u8BF7\u63D0\u4F9B\u60A8\u7684\u5BC6\u7801\u3002","Auth.form.error.ratelimit":"\u5C1D\u8BD5\u7684\u6B21\u6570\u8FC7\u591A\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5\u3002","Auth.form.error.user.not-exist":"\u8FD9\u4E2A\u7535\u5B50\u90AE\u4EF6\u5730\u5740\u4E0D\u5B58\u5728\u3002","Auth.form.error.username.taken":"\u7528\u6237\u540D\u5DF2\u88AB\u5360\u7528\u3002","Auth.form.firstname.label":"\u540D\u5B57","Auth.form.firstname.placeholder":"\u4F8B\u5982\uFF1A\u4E09","Auth.form.forgot-password.email.label":"\u8F93\u5165\u60A8\u7684\u7535\u5B50\u90AE\u4EF6\u5730\u5740","Auth.form.forgot-password.email.label.success":"\u90AE\u4EF6\u6210\u529F\u53D1\u9001","Auth.form.lastname.label":"\u59D3\u6C0F","Auth.form.lastname.placeholder":"\u4F8B\u5982\uFF1A\u5F20","Auth.form.password.hide-password":"\u9690\u85CF\u5BC6\u7801","Auth.form.password.hint":"\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u81F3\u5C11 8 \u4E2A\u5B57\u7B26\uFF0C1 \u4E2A\u5927\u5199\u5B57\u6BCD\uFF0C1 \u4E2A\u5C0F\u5199\u5B57\u6BCD\uFF0C1 \u4E2A\u6570\u5B57","Auth.form.password.show-password":"\u663E\u793A\u5BC6\u7801","Auth.form.register.news.label":"\u8BA9\u6211\u4E86\u89E3\u65B0\u7684\u529F\u80FD\u548C\u5373\u5C06\u5230\u6765\u7684\u6539\u8FDB (\u6253\u52FE\u8868\u793A\u4F60\u63A5\u53D7 {terms} \u548C {policy}))\u3002","Auth.form.register.subtitle":"\u4F60\u7684\u51ED\u8BC1\u53EA\u7528\u4E8E\u7BA1\u7406\u540E\u53F0\u9A8C\u8BC1\u4F60\u7684\u8EAB\u4EFD\u3002\u6240\u6709\u4FDD\u5B58\u7684\u6570\u636E\u90FD\u5C06\u50A8\u5B58\u5728\u4F60\u81EA\u5DF1\u7684\u6570\u636E\u5E93\u4E2D\u3002","Auth.form.rememberMe.label":"\u8BB0\u4F4F\u6211","Auth.form.username.label":"\u7528\u6237\u540D","Auth.form.username.placeholder":"\u5F20\u4E09","Auth.form.welcome.subtitle":"\u767B\u5F55\u60A8\u7684Strapi\u8D26\u6237","Auth.form.welcome.title":"\u6B22\u8FCE\uFF01","Auth.link.forgot-password":"\u5FD8\u8BB0\u5BC6\u7801\uFF1F","Auth.link.ready":"\u51C6\u5907\u597D\u767B\u5F55\u4E86\u5417\uFF1F","Auth.link.signin":"\u767B\u5F55","Auth.link.signin.account":"\u5DF2\u7ECF\u6709\u4E86\u4E00\u4E2A\u8D26\u6237\uFF1F","Auth.login.sso.divider":"\u6216\u7528\u4EE5\u4E0B\u65B9\u5F0F\u767B\u5F55","Auth.login.sso.loading":"\u6B63\u5728\u52A0\u8F7DSSO\u670D\u52A1\u63D0\u4F9B\u5546...","Auth.login.sso.subtitle":"\u901A\u8FC7SSO\u767B\u5F55\u5230\u4F60\u7684\u8D26\u6237","Auth.privacy-policy-agreement.policy":"\u9690\u79C1\u653F\u7B56","Auth.privacy-policy-agreement.terms":"\u4F7F\u7528\u6761\u6B3E","Content Manager":"\u5185\u5BB9\u7BA1\u7406","Content Type Builder":"\u5185\u5BB9\u7C7B\u578B\u6784\u5EFA\u5668","Documentation":"\u6587\u6863","Email":"\u7535\u5B50\u90AE\u4EF6","Files Upload":"\u6587\u4EF6\u4E0A\u4F20","HomePage.helmet.title":"\u9996\u9875","HomePage.roadmap":"\u67E5\u770B\u6211\u4EEC\u7684\u8DEF\u7EBF\u56FE","HomePage.welcome.congrats":"\u606D\u559C\uFF01","HomePage.welcome.congrats.content":"\u4F60\u767B\u5F55\u6210\u4E3A\u7B2C\u4E00\u4E2A\u7BA1\u7406\u5458\uFF0C\u63A2\u7D22 Strapi \u7684\u5F37\u5927\u529F\u80FD\uFF0C","HomePage.welcome.congrats.content.bold":"\u6211\u4EEC\u5EFA\u8BAE\u4F60\u521B\u5EFA\u4F60\u7684\u7B2C\u4E00\u4E2A\u96C6\u5408\u7C7B\u578B\u3002","Media Library":"\u5A92\u4F53\u5E93","New entry":"\u65B0\u6761\u76EE","Password":"\u5BC6\u7801","Provider":"\u63D0\u4F9B\u5546","ResetPasswordToken":"\u91CD\u7F6E\u5BC6\u7801\u4EE4\u724C","Role":"\u89D2\u8272","Roles & Permissions":"\u89D2\u8272\u548C\u6743\u9650","Roles.ListPage.notification.delete-all-not-allowed":"\u4E00\u4E9B\u89D2\u8272\u4E0D\u80FD\u88AB\u5220\u9664\uFF0C\u56E0\u4E3A\u5B83\u4EEC\u4E0E\u7528\u6237\u76F8\u5173\u3002","Roles.ListPage.notification.delete-not-allowed":"\u5982\u679C\u4E00\u4E2A\u89D2\u8272\u4E0E\u7528\u6237\u76F8\u5173\u8054\uFF0C\u5219\u4E0D\u80FD\u88AB\u5220\u9664","Roles.RoleRow.select-all":"\u9009\u62E9 {name} \u8FDB\u884C\u6279\u91CF\u64CD\u4F5C","Roles.components.List.empty.withSearch":"\u627E\u4E0D\u5230\u4F60\u641C\u7D22\u7684\u89D2\u8272 ({search})...","Settings.PageTitle":"\u8BBE\u7F6E - {name}","Settings.apiTokens.addFirstToken":"\u6DFB\u52A0\u4F60\u7684\u7B2C\u4E00\u4E2A API \u4EE4\u724C\u3002","Settings.apiTokens.addNewToken":"\u6DFB\u52A0\u65B0\u7684 API \u4EE4\u724C","Settings.apiTokens.copy.editMessage":"\u51FA\u4E8E\u5B89\u5168\u539F\u56E0\uFF0C\u4F60\u53EA\u80FD\u770B\u5230\u4F60\u7684\u4EE4\u724C\u4E00\u6B21\u3002","Settings.apiTokens.copy.editTitle":"\u8FD9\u4E2A\u4EE4\u724C\u5DF2\u7ECF\u65E0\u6CD5\u4F7F\u7528\u4E86\u3002","Settings.apiTokens.copy.lastWarning":"\u8BF7\u786E\u4FDD\u590D\u5236\u8FD9\u4E2A\u4EE4\u724C\uFF0C\u4F60\u5C06\u65E0\u6CD5\u518D\u770B\u5230\u5B83\u4E86!","Settings.apiTokens.create":"\u521B\u5EFA","Settings.apiTokens.description":"\u5DF2\u6DFB\u52A0\u7684\u53EF\u4F7F\u7528 API \u7684\u4EE4\u724C\u5217\u8868","Settings.apiTokens.emptyStateLayout":"\u4F60\u8FD8\u6CA1\u6709\u4EFB\u4F55\u5185\u5BB9...","Settings.apiTokens.notification.copied":"\u4EE4\u724C\u5DF2\u88AB\u590D\u5236\u81F3\u526A\u8D34\u677F\u3002","Settings.apiTokens.title":"API \u4EE4\u724C","Settings.apiTokens.types.full-access":"\u5B8C\u5168\u8BBF\u95EE","Settings.apiTokens.types.read-only":"\u53EA\u8BFB","Settings.application.description":"\u67E5\u770B\u9879\u76EE\u7684\u8BE6\u7EC6\u4FE1\u606F","Settings.application.edition-title":"\u5F53\u524D\u65B9\u6848","Settings.application.get-help":"\u83B7\u53D6\u5E2E\u52A9","Settings.application.link-pricing":"\u67E5\u770B\u6240\u6709\u4EF7\u683C","Settings.application.link-upgrade":"\u5347\u7EA7\u4F60\u7684\u7BA1\u7406\u540E\u53F0","Settings.application.node-version":"node \u7248\u672C","Settings.application.strapi-version":"strapi \u7248\u672C","Settings.application.strapiVersion":"strapi \u7248\u672C","Settings.application.title":"\u5E94\u7528\u7A0B\u5E8F","Settings.error":"\u9519\u8BEF","Settings.global":"\u5168\u5C40\u8BBE\u7F6E","Settings.permissions":"\u7BA1\u7406\u5458\u6743\u9650","Settings.permissions.category":"{category} \u7684\u6743\u9650\u8BBE\u7F6E","Settings.permissions.category.plugins":"{category} \u63D2\u4EF6\u7684\u6743\u9650\u8BBE\u7F6E","Settings.permissions.conditions.anytime":"\u4EFB\u4F55\u65F6\u5019","Settings.permissions.conditions.apply":"\u542F\u7528","Settings.permissions.conditions.can":"\u53EF\u4EE5","Settings.permissions.conditions.define-conditions":"\u5B9A\u4E49\u6761\u4EF6","Settings.permissions.conditions.links":"\u94FE\u63A5","Settings.permissions.conditions.no-actions":"\u4F60\u9996\u5148\u9700\u8981\u9009\u62E9\u52A8\u4F5C\uFF08\u521B\u5EFA\u3001\u8BFB\u53D6\u3001\u66F4\u65B0......\uFF09\uFF0C\u7136\u540E\u518D\u5BF9\u5176\u5B9A\u4E49\u6761\u4EF6\u3002","Settings.permissions.conditions.none-selected":"\u4EFB\u4F55\u65F6\u5019","Settings.permissions.conditions.or":"\u6216","Settings.permissions.conditions.when":"\u5F53","Settings.permissions.select-all-by-permission":"\u9009\u62E9\u6240\u6709 {label} \u6743\u9650","Settings.permissions.select-by-permission":"\u9009\u62E9 {label} \u6743\u9650","Settings.permissions.users.create":"\u9080\u8BF7\u65B0\u7528\u6237","Settings.permissions.users.form.email":"\u7535\u5B50\u90AE\u4EF6","Settings.permissions.users.form.firstname":"\u540D\u5B57","Settings.permissions.users.form.lastname":"\u59D3\u6C0F","Settings.permissions.users.form.sso":"\u901A\u8FC7 SSO \u767B\u5F55","Settings.permissions.users.form.sso.description":"\u5F53\u542F\u7528\u8FD9\u4E2A\u9009\u9879\uFF08ON\uFF09\u65F6\uFF0C\u7528\u6237\u53EF\u4EE5\u901A\u8FC7SSO\u767B\u5F55","Settings.permissions.users.listview.header.subtitle":"\u6240\u6709\u80FD\u591F\u8BBF\u95EE Strapi \u7BA1\u7406\u540E\u53F0\u7684\u7528\u6237","Settings.permissions.users.tabs.label":"\u6807\u7B7E\u9875\u6743\u9650","Settings.profile.form.notify.data.loaded":"\u4F60\u7684\u4E2A\u4EBA\u6570\u636E\u5DF2\u7ECF\u52A0\u8F7D\u5B8C\u6210","Settings.profile.form.section.experience.clear.select":"\u6E05\u9664\u5DF2\u9009\u62E9\u7684\u754C\u9762\u8BED\u8A00","Settings.profile.form.section.experience.documentation":"\u6587\u6863","Settings.profile.form.section.experience.interfaceLanguage":"\u754C\u9762\u8BED\u8A00","Settings.profile.form.section.experience.interfaceLanguage.hint":"\u5C06\u4F1A\u7528\u6240\u9009\u62E9\u7684\u8BED\u8A00\u663E\u793A\u4F60\u7684\u754C\u9762","Settings.profile.form.section.experience.interfaceLanguageHelp":"\u5F53\u524D\u7684\u8BED\u8A00\u9009\u62E9\u53EA\u4F1A\u66F4\u6539\u4F60\u5F53\u524D\u5E10\u53F7\u754C\u9762\u8BED\u8A00\u3002 \u8BF7\u53C2\u8003\u6B64 {here} \u4E3A\u4F60\u7684\u56E2\u961F\u63D0\u4F9B\u5176\u4ED6\u8BED\u8A00\u3002","Settings.profile.form.section.experience.mode.label":"\u754C\u9762\u98CE\u683C","Settings.profile.form.section.experience.mode.hint":"\u5C06\u4F1A\u7528\u6240\u9009\u62E9\u7684\u98CE\u683C\u663E\u793A\u4F60\u7684\u754C\u9762","Settings.profile.form.section.experience.mode.option-label":"{name}\u754C\u9762","light":"\u6D45\u8272","dark":"\u6DF1\u8272","Settings.profile.form.section.experience.title":"\u4F53\u9A8C","Settings.profile.form.section.helmet.title":"\u7528\u6237\u4E2A\u4EBA\u4FE1\u606F","Settings.profile.form.section.profile.page.title":"\u4E2A\u4EBA\u4FE1\u606F\u9875\u9762","Settings.roles.create.description":"\u5B9A\u4E49\u8D4B\u4E88\u89D2\u8272\u7684\u6743\u9650","Settings.roles.create.title":"\u521B\u5EFA\u89D2\u8272","Settings.roles.created":"\u89D2\u8272\u5DF2\u521B\u5EFA","Settings.roles.edit.title":"\u7F16\u8F91\u89D2\u8272","Settings.roles.form.button.users-with-role":"{number, plural, =0 {# users} one {# user} other {# users}} \u662F\u8FD9\u4E2A\u89D2\u8272","Settings.roles.form.created":"\u5DF2\u521B\u5EFA","Settings.roles.form.description":"\u89D2\u8272\u7684\u540D\u79F0\u4E0E\u63CF\u8FF0","Settings.roles.form.permission.property-label":"{label} \u6743\u9650","Settings.roles.form.permissions.attributesPermissions":"\u5C5E\u6027\u6743\u9650","Settings.roles.form.permissions.create":"\u521B\u5EFA","Settings.roles.form.permissions.delete":"\u5220\u9664","Settings.roles.form.permissions.publish":"\u53D1\u5E03","Settings.roles.form.permissions.read":"\u8BFB\u53D6","Settings.roles.form.permissions.update":"\u66F4\u65B0","Settings.roles.list.button.add":"\u6DFB\u52A0\u89D2\u8272","Settings.roles.list.description":"\u89D2\u8272\u5217\u8868","Settings.roles.title.singular":"\u89D2\u8272","Settings.sso.description":"\u914D\u7F6E Single Sign-On \u5355\u70B9\u767B\u5F55 \u529F\u80FD\u7684\u8BBE\u7F6E\u3002","Settings.sso.form.defaultRole.description":"\u5B83\u5C06\u628A\u65B0\u7684\u8BA4\u8BC1\u7528\u6237\u9644\u52A0\u5230\u9009\u5B9A\u7684\u89D2\u8272\u4E0A\u3002","Settings.sso.form.defaultRole.description-not-allowed":"\u4F60\u9700\u8981\u6709\u8BFB\u53D6\u7BA1\u7406\u5458\u89D2\u8272\u7684\u6743\u9650","Settings.sso.form.defaultRole.label":"\u9ED8\u8BA4\u89D2\u8272","Settings.sso.form.registration.description":"\u5982\u679C\u6CA1\u6709\u8D26\u6237\u5B58\u5728\uFF0C\u5728SSO\u767B\u5F55\u65F6\u521B\u5EFA\u65B0\u7528\u6237\u3002","Settings.sso.form.registration.label":"\u81EA\u52A8\u6CE8\u518C","Settings.sso.title":"\u5355\u70B9\u767B\u5F55","Settings.webhooks.create":"\u521B\u5EFA Webhook","Settings.webhooks.create.header":"\u521B\u5EFA Header","Settings.webhooks.created":"Webhook \u5DF2\u521B\u5EFA","Settings.webhooks.event.publish-tooltip":"\u8FD9\u4E2A\u4E8B\u4EF6\u53EA\u9002\u7528\u4E8E\u542F\u7528\u4E86\u8349\u7A3F/\u53D1\u5E03\u7CFB\u7EDF\u7684\u5185\u5BB9","Settings.webhooks.events.create":"\u521B\u5EFA","Settings.webhooks.events.update":"\u66F4\u65B0","Settings.webhooks.form.events":"\u4E8B\u4EF6","Settings.webhooks.form.headers":"\u8BF7\u6C42\u5934","Settings.webhooks.form.url":"\u8BF7\u6C42\u5730\u5740","Settings.webhooks.headers.remove":"\u79FB\u9664\u7B2C {number} \u884C header","Settings.webhooks.key":"\u952E","Settings.webhooks.list.button.add":"\u6DFB\u52A0 Webhook","Settings.webhooks.list.description":"\u83B7\u5F97 POST \u8BF7\u6C42\u7684\u66F4\u65B0\u901A\u77E5","Settings.webhooks.list.empty.description":"\u6CA1\u6709\u627E\u5230 Webhooks","Settings.webhooks.list.empty.link":"\u67E5\u770B\u6211\u4EEC\u7684\u6587\u6863","Settings.webhooks.list.empty.title":"\u8FD8\u6CA1\u6709 Webhooks","Settings.webhooks.list.th.actions":"\u64CD\u4F5C","Settings.webhooks.list.th.status":"\u72B6\u6001","Settings.webhooks.singular":"webhook","Settings.webhooks.title":"Webhooks","Settings.webhooks.to.delete":"\u5DF2\u9009\u62E9{webhooksToDeleteLength, plural, one {# asset} other {# assets}}","Settings.webhooks.trigger":"\u89E6\u53D1","Settings.webhooks.trigger.cancel":"\u53D6\u6D88\u89E6\u53D1","Settings.webhooks.trigger.pending":"\u7B49\u5F85\u2026","Settings.webhooks.trigger.save":"\u8BF7\u4FDD\u5B58\u5230\u89E6\u53D1","Settings.webhooks.trigger.success":"\u6210\u529F\uFF01","Settings.webhooks.trigger.success.label":"\u89E6\u53D1\u6210\u529F","Settings.webhooks.trigger.test":"\u6D4B\u8BD5\u89E6\u53D1","Settings.webhooks.trigger.title":"\u89E6\u53D1\u524D\u5148\u4FDD\u5B58","Settings.webhooks.value":"\u503C","Username":"\u7528\u6237\u540D","Users":"\u7528\u6237","Users & Permissions":"\u7528\u6237\u548C\u6743\u9650","Users.components.List.empty":"\u8FD8\u6CA1\u6709\u7528\u6237...","Users.components.List.empty.withFilters":"\u6CA1\u6709\u7B26\u5408\u6761\u4EF6\u7684\u7528\u6237...","Users.components.List.empty.withSearch":"\u6CA1\u6709\u7B26\u5408\u641C\u7D22\u6761\u4EF6 ({search}) \u7684\u7528\u6237...","admin.pages.MarketPlacePage.helmet":"\u5E02\u573A - \u63D2\u4EF6","admin.pages.MarketPlacePage.submit.plugin.link":"\u63D0\u4EA4\u60A8\u7684\u63D2\u4EF6","admin.pages.MarketPlacePage.subtitle":"\u4ECEStrapi\u4E2D\u83B7\u5F97\u66F4\u591A","anErrorOccurred":"\u5509\u5440! \u51FA\u9519\u4E86\u3002\u8BF7\u518D\u8BD5\u4E00\u6B21\u3002","app.component.CopyToClipboard.label":"\u590D\u5236\u5230\u526A\u8D34\u677F","app.component.search.label":"\u641C\u7D22 {target}","app.component.table.duplicate":"\u521B\u5EFA {target} \u7684\u526F\u672C","app.component.table.edit":"\u7F16\u8F91 {target}","app.component.table.select.one-entry":"\u9009\u62E9 {target}","app.components.BlockLink.blog":"\u535A\u5BA2","app.components.BlockLink.blog.content":"\u9605\u8BFB\u6709\u5173Strapi\u548C\u751F\u6001\u7CFB\u7EDF\u7684\u6700\u65B0\u6D88\u606F\u3002","app.components.BlockLink.code":"\u4EE3\u7801\u793A\u4F8B","app.components.BlockLink.code.content":"\u901A\u8FC7\u8BD5\u7528\u793E\u533A\u5F00\u53D1\u7684\u771F\u5B9E\u9879\u76EE\u6765\u5B66\u4E60\u3002","app.components.BlockLink.documentation.content":"\u63A2\u7D22\u57FA\u672C\u6982\u5FF5\u3001\u6307\u5357\u548C\u8BF4\u660E\u3002","app.components.BlockLink.tutorial":"\u6559\u7A0B","app.components.BlockLink.tutorial.content":"\u6309\u7167\u624B\u628A\u624B\u6307\u5F15\u6765\u4F7F\u7528\u548C\u5B9A\u5236Strapi\u3002","app.components.Button.cancel":"\u53D6\u6D88","app.components.Button.confirm":"\u786E\u8BA4","app.components.Button.reset":"\u91CD\u7F6E","app.components.ComingSoonPage.comingSoon":"\u5373\u5C06\u63A8\u51FA","app.components.ConfirmDialog.title":"\u786E\u8BA4","app.components.DownloadInfo.download":"\u4E0B\u8F7D\u4E2D...","app.components.DownloadInfo.text":"\u8FD9\u53EF\u80FD\u9700\u8981\u51E0\u5206\u949F\u65F6\u95F4\u3002\u8C22\u8C22\u4F60\u7684\u8010\u5FC3\u3002","app.components.EmptyAttributes.title":"\u76EE\u524D\u8FD8\u6CA1\u6709\u4EFB\u4F55\u5B57\u6BB5","app.components.EmptyStateLayout.content-document":"\u76EE\u524D\u8FD8\u6CA1\u6709\u4EFB\u4F55\u5185\u5BB9\u3002","app.components.EmptyStateLayout.content-permissions":"\u4F60\u6CA1\u6709\u8BBF\u95EE\u8BE5\u5185\u5BB9\u7684\u6743\u9650","app.components.HomePage.button.blog":"\u5728\u535A\u5BA2\u4E0A\u5BDF\u770B\u66F4\u591A\u5185\u5BB9","app.components.HomePage.community":"\u52A0\u5165\u793E\u533A","app.components.HomePage.community.content":"\u5728\u4E0D\u540C\u7684\u9891\u9053\u4E2D\u4E0E\u56E2\u961F\u6210\u5458\u3001\u8D21\u732E\u8005\u548C\u5F00\u53D1\u8005\u8FDB\u884C\u8BA8\u8BBA\u3002","app.components.HomePage.create":"\u521B\u5EFA\u4F60\u7684\u7B2C\u4E00\u4E2A\u5185\u5BB9\u7C7B\u578B","app.components.HomePage.roadmap":"\u67E5\u770B\u6211\u4EEC\u7684\u8DEF\u7EBF\u56FE","app.components.HomePage.welcome":"\u6B22\u8FCE\u52A0\u5165 \u{1F44B}","app.components.HomePage.welcome.again":"\u6B22\u8FCE \u{1F44B}","app.components.HomePage.welcomeBlock.content":"\u606D\u559C! \u60A8\u5DF2\u767B\u5F55\u4E3A\u7B2C\u4E00\u4E2A\u7BA1\u7406\u5458\u3002\u4E3A\u4E86\u63A2\u7D22Strapi\u63D0\u4F9B\u7684\u5F3A\u5927\u529F\u80FD\uFF0C\u6211\u4EEC\u5EFA\u8BAE\u4F60\u521B\u5EFA\u4F60\u7684\u7B2C\u4E00\u4E2A\u5185\u5BB9\u7C7B\u578B","app.components.HomePage.welcomeBlock.content.again":"\u6211\u4EEC\u5E0C\u671B\u4F60\u5728\u4F60\u7684\u9879\u76EE\u4E0A\u6709\u6240\u8FDB\u5C55! \u8BF7\u968F\u65F6\u9605\u8BFB\u5173\u4E8EStrapi\u7684\u6700\u65B0\u6D88\u606F\u3002\u6211\u4EEC\u5C06\u6839\u636E\u60A8\u7684\u53CD\u9988\u610F\u89C1\uFF0C\u5C3D\u529B\u6539\u8FDB\u4EA7\u54C1\u3002","app.components.HomePage.welcomeBlock.content.issues":"\u95EE\u9898\u3002","app.components.HomePage.welcomeBlock.content.raise":"\u6216\u9F13\u52B1","app.components.ImgPreview.hint":"\u5C06\u4F60\u7684\u6587\u4EF6\u62D6\u653E\u5230\u8FD9\u4E2A\u533A\u57DF\uFF0C\u6216{browse}\u4E00\u4E2A\u8981\u4E0A\u4F20\u7684\u6587\u4EF6","app.components.ImgPreview.hint.browse":"\u6D4F\u89C8","app.components.InputFile.newFile":"\u6DFB\u52A0\u65B0\u6587\u4EF6","app.components.InputFileDetails.open":"\u5728\u65B0\u6807\u7B7E\u4E2D\u6253\u5F00","app.components.InputFileDetails.originalName":"\u539F\u6587\u4EF6\u540D\uFF1A","app.components.InputFileDetails.remove":"\u79FB\u9664\u6B64\u6587\u4EF6","app.components.InputFileDetails.size":"\u5927\u5C0F\uFF1A","app.components.InstallPluginPage.Download.description":"\u4E0B\u8F7D\u548C\u5B89\u88C5\u8BE5\u63D2\u4EF6\u53EF\u80FD\u9700\u8981\u51E0\u79D2\u949F\u3002","app.components.InstallPluginPage.Download.title":"\u4E0B\u8F7D\u4E2D...","app.components.InstallPluginPage.description":"\u8F7B\u677E\u5730\u6269\u5C55\u4F60\u7684\u5E94\u7528\u7A0B\u5E8F\u3002","app.components.LeftMenu.collapse":"\u6536\u8D77\u5BFC\u822A\u680F","app.components.LeftMenu.expand":"\u5C55\u5F00\u5BFC\u822A\u680F","app.components.LeftMenu.general":"\u901A\u7528","app.components.LeftMenu.logout":"\u9000\u51FA","app.components.LeftMenu.plugins":"\u63D2\u4EF6","app.components.LeftMenu.navbrand.title":"Strapi \u4EEA\u8868\u76D8","app.components.LeftMenu.navbrand.workplace":"\u5DE5\u4F5C\u7A7A\u95F4","app.components.LeftMenuFooter.help":"\u5E2E\u52A9","app.components.LeftMenuFooter.poweredBy":"\u7531\u4EE5\u4E0B\u673A\u6784\u63D0\u4F9B","app.components.LeftMenuLinkContainer.collectionTypes":"\u96C6\u5408\u7C7B\u578B","app.components.LeftMenuLinkContainer.configuration":"\u914D\u7F6E","app.components.LeftMenuLinkContainer.general":"\u901A\u7528","app.components.LeftMenuLinkContainer.noPluginsInstalled":"\u5C1A\u672A\u5B89\u88C5\u4EFB\u4F55\u63D2\u4EF6","app.components.LeftMenuLinkContainer.plugins":"\u63D2\u4EF6","app.components.LeftMenuLinkContainer.singleTypes":"\u5355\u4E00\u7C7B\u578B","app.components.ListPluginsPage.deletePlugin.description":"\u5378\u8F7D\u63D2\u4EF6\u53EF\u80FD\u9700\u8981\u51E0\u79D2\u949F\u3002","app.components.ListPluginsPage.deletePlugin.title":"\u5378\u8F7D\u4E2D","app.components.ListPluginsPage.description":"\u9879\u76EE\u4E2D\u5DF2\u5B89\u88C5\u7684\u63D2\u4EF6\u7684\u5217\u8868\u3002","app.components.ListPluginsPage.helmet.title":"\u63D2\u4EF6\u5217\u8868","app.components.Logout.logout":"\u9000\u51FA","app.components.Logout.profile":"\u4E2A\u4EBA\u8D44\u6599","app.components.MarketplaceBanner":"\u5728 Strapi Awesome \u4E0A\u53D1\u73B0\u7531\u793E\u533A\u5F00\u53D1\u7684\u63D2\u4EF6\uFF0C\u4EE5\u53CA\u66F4\u591A\u53EF\u4EE5\u542F\u52A8\u4F60\u7684\u9879\u76EE\u7684\u7CBE\u5F69\u5185\u5BB9\u3002","app.components.MarketplaceBanner.image.alt":"strapi \u706B\u7BAD\u6807\u5FD7","app.components.MarketplaceBanner.link":"\u7ACB\u5373\u67E5\u770B","app.components.NotFoundPage.back":"\u8FD4\u56DE\u9996\u9875","app.components.NotFoundPage.description":"\u627E\u4E0D\u5230\u6B64\u9875\u9762","app.components.Official":"\u5B98\u65B9","app.components.Onboarding.help.button":"\u5E2E\u52A9\u6309\u94AE","app.components.Onboarding.label.completed":"\u5B8C\u6210 %","app.components.Onboarding.title":"\u5165\u95E8\u5F71\u7247","app.components.PluginCard.Button.label.download":"\u4E0B\u8F7D","app.components.PluginCard.Button.label.install":"\u5DF2\u5B89\u88C5","app.components.PluginCard.PopUpWarning.install.impossible.autoReload.needed":"\u8981\u542F\u7528autoReload\u529F\u80FD\u3002\u8BF7\u7528`yarn develop`\u542F\u52A8\u4F60\u7684\u5E94\u7528\u7A0B\u5E8F\u3002","app.components.PluginCard.PopUpWarning.install.impossible.confirm":"\u6211\u4E86\u89E3\uFF01","app.components.PluginCard.PopUpWarning.install.impossible.environment":"\u51FA\u4E8E\u5B89\u5168\u539F\u56E0\uFF0C\u63D2\u4EF6\u53EA\u80FD\u5728\u5F00\u53D1\u73AF\u5883\u4E2D\u4E0B\u8F7D\u3002","app.components.PluginCard.PopUpWarning.install.impossible.title":"\u65E0\u6CD5\u4E0B\u8F7D","app.components.PluginCard.compatible":"\u4E0E\u4F60\u7684\u9879\u76EE\u517C\u5BB9","app.components.PluginCard.compatibleCommunity":"\u4E0E\u793E\u533A\u517C\u5BB9","app.components.PluginCard.more-details":"\u66F4\u591A\u8BE6\u60C5","app.components.ToggleCheckbox.off-label":"\u5173","app.components.ToggleCheckbox.on-label":"\u5F00","app.components.UpgradePlanModal.button":"\u4E86\u89D2\u66F4\u591A","app.components.UpgradePlanModal.limit-reached":"\u5DF2\u7ECF\u8FBE\u5230\u4E0A\u9650","app.components.UpgradePlanModal.text-ce":"\u793E\u533A\u7248","app.components.UpgradePlanModal.text-ee":"\u4F01\u4E1A\u7248","app.components.UpgradePlanModal.text-power":"\u901A\u8FC7\u5C06\u60A8\u7684\u65B9\u6848\u5347\u7EA7\u5230\u4F01\u4E1A\u7248\uFF0C\u5F00\u542F Strapi \u7684\u5168\u90E8\u529F\u80FD","app.components.UpgradePlanModal.text-strapi":"\u901A\u8FC7\u5C06\u4F60\u7684\u65B9\u6848\u5347\u7EA7\u5230 Strapi \u7684","app.components.Users.MagicLink.connect":"\u590D\u5236\u5E76\u5206\u4EAB\u6B64\u94FE\u63A5\u7ED9\u7528\u6237\u4EE5\u5F00\u901A\u8D26\u6237","app.components.Users.MagicLink.connect.sso":"\u5C06\u6B64\u94FE\u63A5\u53D1\u9001\u7ED9\u7528\u6237\uFF0C\u7B2C\u4E00\u6B21\u767B\u5F55\u53EF\u4EE5\u901A\u8FC7SSO\u4F9B\u5E94\u5546\u8FDB\u884C\u3002","app.components.Users.ModalCreateBody.block-title.details":"\u7528\u6237\u8BE6\u60C5","app.components.Users.ModalCreateBody.block-title.roles":"\u7528\u6237\u89D2\u8272","app.components.Users.ModalCreateBody.block-title.roles.description":"\u4E00\u4E2A\u7528\u6237\u53EF\u4EE5\u62E5\u6709\u4E00\u4E2A\u6216\u591A\u4E2A\u89D2\u8272","app.components.Users.SortPicker.button-label":"\u6392\u5E8F","app.components.Users.SortPicker.sortby.email_asc":"\u7535\u5B50\u90AE\u4EF6 (A to Z)","app.components.Users.SortPicker.sortby.email_desc":"\u7535\u5B50\u90AE\u4EF6 (Z to A)","app.components.Users.SortPicker.sortby.firstname_asc":"\u540D\u5B57 (A to Z)","app.components.Users.SortPicker.sortby.firstname_desc":"\u540D\u5B57 (Z to A)","app.components.Users.SortPicker.sortby.lastname_asc":"\u59D3\u6C0F (A to Z)","app.components.Users.SortPicker.sortby.lastname_desc":"\u59D3\u6C0F (Z to A)","app.components.Users.SortPicker.sortby.username_asc":"\u7528\u6237\u540D (A to Z)","app.components.Users.SortPicker.sortby.username_desc":"\u7528\u6237\u540D (Z to A)","app.components.listPlugins.button":"\u6DFB\u52A0\u63D2\u4EF6","app.components.listPlugins.title.none":"\u8FD8\u6CA1\u6709\u5B89\u88C5\u63D2\u4EF6","app.components.listPluginsPage.deletePlugin.error":"\u5378\u8F7D\u63D2\u4EF6\u65F6\u53D1\u751F\u9519\u8BEF","app.containers.App.notification.error.init":"\u8BF7\u6C42 API \u65F6\u53D1\u751F\u9519\u8BEF","app.containers.AuthPage.ForgotPasswordSuccess.text.contact-admin":"\u5982\u679C\u4F60\u6CA1\u6709\u6536\u5230\u8FD9\u4E2A\u94FE\u63A5\uFF0C\u8BF7\u8054\u7CFB\u4F60\u7684\u7BA1\u7406\u5458\u3002","app.containers.AuthPage.ForgotPasswordSuccess.text.email":"\u6536\u5230\u4F60\u7684\u5BC6\u7801\u6062\u590D\u94FE\u63A5\u53EF\u80FD\u9700\u8981\u51E0\u5206\u949F\u65F6\u95F4\u3002","app.containers.AuthPage.ForgotPasswordSuccess.title":"\u7535\u5B50\u90AE\u4EF6\u5DF2\u53D1\u9001","app.containers.Users.EditPage.form.active.label":"\u6709\u6548","app.containers.Users.EditPage.header.label":"\u7F16\u8F91 {name}","app.containers.Users.EditPage.header.label-loading":"\u7F16\u8F91\u7528\u6237","app.containers.Users.EditPage.roles-bloc-title":"\u5F52\u5C5E\u7684\u89D2\u8272","app.containers.Users.ModalForm.footer.button-success":"\u9080\u8BF7\u7528\u6237","app.links.configure-view":"\u914D\u7F6E\u89C6\u56FE","app.static.links.cheatsheet":"\u5FEB\u901F\u624B\u518C","app.utils.SelectOption.defaultMessage":" ","app.utils.add-filter":"\u6DFB\u52A0\u8FC7\u6EE4\u5668","app.utils.close-label":"\u5173\u95ED","app.utils.defaultMessage":" ","app.utils.duplicate":"\u521B\u5EFA\u526F\u672C","app.utils.edit":"\u7F16\u8F91","app.utils.errors.file-too-big.message":"\u6587\u4EF6\u592A\u5927\u4E86","app.utils.filter-value":"\u8FC7\u6EE4\u503C","app.utils.filters":"\u8FC7\u6EE4\u5668","app.utils.notify.data-loaded":"{target} \u5DF2\u52A0\u8F7D","app.utils.placeholder.defaultMessage":" ","app.utils.publish":"\u53D1\u5E03","app.utils.select-all":"\u5168\u9009","app.utils.select-field":"\u9009\u62E9\u5B57\u6BB5","app.utils.select-filter":"\u9009\u62E9\u8FC7\u6EE4\u5668","app.utils.unpublish":"\u53D6\u6D88\u53D1\u5E03","clearLabel":"\u6E05\u9664","coming.soon":"\u6B64\u5185\u5BB9\u76EE\u524D\u6B63\u5728\u5EFA\u8BBE\u4E2D\uFF0C\u5C06\u5728\u51E0\u5468\u540E\u6062\u590D!","component.Input.error.validation.integer":"\u8FD9\u4E2A\u503C\u5FC5\u987B\u662F\u4E00\u4E2A\u6574\u6570","components.AutoReloadBlocker.description":"\u7528\u4EE5\u4E0B\u547D\u4EE4\u4E4B\u4E00\u8FD0\u884CStrapi\uFF1A","components.AutoReloadBlocker.header":"\u8FD9\u4E2A\u63D2\u4EF6\u9700\u8981\u91CD\u65B0\u52A0\u8F7D\u540E\u624D\u80FD\u8F7D\u5165","components.ErrorBoundary.title":"\u51FA\u9519\u4E86...","components.FilterOptions.FILTER_TYPES.$contains":"\u5305\u542B (\u533A\u5206\u5927\u5C0F\u5199)","components.FilterOptions.FILTER_TYPES.$endsWith":"\u7ED3\u675F\u4E8E","components.FilterOptions.FILTER_TYPES.$eq":"\u7B49\u4E8E","components.FilterOptions.FILTER_TYPES.$gt":"\u5927\u4E8E","components.FilterOptions.FILTER_TYPES.$gte":"\u5927\u4E8E\u6216\u7B49\u4E8E","components.FilterOptions.FILTER_TYPES.$lt":"\u5C0F\u4E8E","components.FilterOptions.FILTER_TYPES.$lte":"\u5C0F\u4E8E\u6216\u7B49\u4E8E","components.FilterOptions.FILTER_TYPES.$ne":"\u4E0D\u7B49\u4E8E","components.FilterOptions.FILTER_TYPES.$neq":"\u4E0D\u7B49\u4E8E","components.FilterOptions.FILTER_TYPES.$notContains":"\u4E0D\u5305\u542B (\u533A\u5206\u5927\u5C0F\u5199)","components.FilterOptions.FILTER_TYPES.$notNull":"\u4E0D\u4E3A\u7A7A","components.FilterOptions.FILTER_TYPES.$null":"\u4E3A\u7A7A","components.FilterOptions.FILTER_TYPES.$startsWith":"\u5F00\u59CB\u4E8E","components.Input.error.attribute.key.taken":"\u503C\u5DF2\u88AB\u5360\u7528","components.Input.error.attribute.sameKeyAndName":"\u4E0D\u80FD\u76F8\u540C","components.Input.error.attribute.taken":"\u5B57\u6BB5\u540D\u5DF2\u88AB\u5360\u7528","components.Input.error.contain.lowercase":"\u5BC6\u7801\u81F3\u5C11\u5305\u542B\u4E00\u4E2A\u5C0F\u5199\u5B57\u6BCD","components.Input.error.contain.number":"\u5BC6\u7801\u81F3\u5C11\u5305\u542B\u4E00\u4E2A\u6570\u5B57","components.Input.error.contain.uppercase":"\u5BC6\u7801\u81F3\u5C11\u5305\u542B\u4E00\u4E2A\u5927\u5199\u5B57\u6BCD","components.Input.error.contentTypeName.taken":"\u540D\u79F0\u5DF2\u88AB\u5360\u7528","components.Input.error.custom-error":"{errorMessage} ","components.Input.error.password.noMatch":"\u5BC6\u7801\u4E0D\u5339\u914D","components.Input.error.validation.email":"\u90AE\u7BB1\u683C\u5F0F\u4E0D\u6B63\u786E","components.Input.error.validation.json":"JSON\u683C\u5F0F\u4E0D\u6B63\u786E","components.Input.error.validation.max":"\u5927\u4E8E\u6700\u5927\u503C","components.Input.error.validation.maxLength":"\u957F\u5EA6\u592A\u957F","components.Input.error.validation.min":"\u5C0F\u4E8E\u6700\u5C0F\u503C","components.Input.error.validation.minLength":"\u957F\u5EA6\u592A\u77ED","components.Input.error.validation.minSupMax":"\u6700\u5C0F\u503C\u4E0D\u80FD\u5927\u4E8E\u6700\u5927\u503C","components.Input.error.validation.regex":"\u6B63\u5219\u8868\u8FBE\u5F0F\u683C\u5F0F\u4E0D\u6B63\u786E\u3002","components.Input.error.validation.required":"\u5FC5\u586B\u9879","components.Input.error.validation.unique":"\u5DF2\u88AB\u5360\u7528","components.InputSelect.option.placeholder":"\u9009\u62E9","components.ListRow.empty":"\u6CA1\u6709\u6570\u636E\u53EF\u4EE5\u663E\u793A","components.NotAllowedInput.text":"\u6CA1\u6709\u6743\u9650\u663E\u793A\u6B64\u5B57\u6BB5","components.OverlayBlocker.description":"\u4F60\u6B63\u5728\u4F7F\u7528\u4E00\u4E2A\u9700\u8981\u670D\u52A1\u5668\u91CD\u65B0\u542F\u52A8\u7684\u529F\u80FD\u3002\u8BF7\u7B49\u5F85\uFF0C\u76F4\u5230\u670D\u52A1\u5668\u542F\u52A8\u3002","components.OverlayBlocker.description.serverError":"\u670D\u52A1\u5668\u5DF2\u7ECF\u91CD\u65B0\u542F\u52A8\uFF0C\u8BF7\u5728\u7EC8\u7AEF\u68C0\u67E5\u65E5\u5FD7\u3002","components.OverlayBlocker.title":"\u7B49\u5F85\u91CD\u65B0\u542F\u52A8...","components.OverlayBlocker.title.serverError":"\u91CD\u65B0\u542F\u52A8\u65F6\u95F4\u8D85\u8FC7\u9884\u671F","components.PageFooter.select":"\u6761\u6BCF\u9875","components.ProductionBlocker.description":"\u4E3A\u4E86\u5B89\u5168\u8D77\u89C1\uFF0C\u6211\u4EEC\u5FC5\u987B\u5728\u5176\u4ED6\u73AF\u5883\u4E0B\u7981\u7528\u8FD9\u4E2A\u63D2\u4EF6\u3002","components.ProductionBlocker.header":"\u8FD9\u4E2A\u63D2\u4EF6\u53EA\u5728\u5F00\u53D1\u73AF\u5883\u4E2D\u53EF\u7528\u3002","components.Search.placeholder":"\u641C\u7D22...","components.TableHeader.sort":"\u6309{label}\u6392\u5E8F","components.Wysiwyg.ToggleMode.markdown-mode":"Markdown \u6A21\u5F0F","components.Wysiwyg.ToggleMode.preview-mode":"\u9884\u89C8\u6A21\u5F0F","components.Wysiwyg.collapse":"\u6536\u8D77","components.Wysiwyg.selectOptions.H1":"\u6807\u98981","components.Wysiwyg.selectOptions.H2":"\u6807\u98982","components.Wysiwyg.selectOptions.H3":"\u6807\u98983","components.Wysiwyg.selectOptions.H4":"\u6807\u98984","components.Wysiwyg.selectOptions.H5":"\u6807\u98985","components.Wysiwyg.selectOptions.H6":"\u6807\u98986","components.Wysiwyg.selectOptions.title":"\u6DFB\u52A0\u6807\u9898","components.WysiwygBottomControls.charactersIndicators":"\u5B57\u7B26","components.WysiwygBottomControls.fullscreen":"\u5C55\u5F00","components.WysiwygBottomControls.uploadFiles":"\u62D6\u653E\u6587\u4EF6\uFF0C\u4ECE\u526A\u8D34\u677F\u7C98\u8D34\u6216 {browse}.","components.WysiwygBottomControls.uploadFiles.browse":"\u9009\u62E9\u6587\u4EF6","components.pagination.go-to":"\u5230 {page} \u9875","components.pagination.go-to-next":"\u4E0B\u4E00\u9875","components.pagination.go-to-previous":"\u4E0A\u4E00\u9875","components.pagination.remaining-links":"\u53CA {number} \u4E2A\u5176\u4ED6\u94FE\u63A5","components.popUpWarning.button.cancel":"\u4E0D, \u53D6\u6D88","components.popUpWarning.button.confirm":"\u662F, \u786E\u8BA4","components.popUpWarning.message":"\u4F60\u786E\u5B9A\u8981\u5220\u9664\u8FD9\u4E2A\u5417\uFF1F","components.popUpWarning.title":"\u8BF7\u786E\u8BA4","containers.SettingPage.add.relational-field":"\u63D2\u5165\u53E6\u4E00\u4E2A\u5173\u7CFB\u5B57\u6BB5","containers.SettingPage.editSettings.description":"\u62D6\u653E\u5B57\u6BB5\u6765\u6784\u5EFA\u5E03\u5C40","content-manager.App.schemas.data-loaded":"\u6A21\u5F0F\u5DF2\u7ECF\u6210\u529F\u52A0\u8F7D","content-manager.DynamicTable.relation-loaded":"\u5173\u8054\u5DF2\u7ECF\u6210\u529F\u52A0\u8F7D","content-manager.EditRelations.title":"\u5173\u8054\u6570\u636E","content-manager.HeaderLayout.button.label-add-entry":"\u6DFB\u52A0\u6761\u76EE","content-manager.api.id":"API ID","content-manager.components.AddFilterCTA.add":"\u8FC7\u6EE4\u5668","content-manager.components.AddFilterCTA.hide":"\u8FC7\u6EE4\u5668","content-manager.components.DragHandle-label":"\u62D6\u66F3","content-manager.components.DraggableAttr.edit":"\u70B9\u51FB\u4EE5\u7F16\u8F91","content-manager.components.DraggableCard.delete.field":"\u5220\u9664 {item}","content-manager.components.DraggableCard.edit.field":"\u7F16\u8F91 {item}","content-manager.components.DraggableCard.move.field":"\u79FB\u52A8 {item}","content-manager.components.DynamicTable.row-line":"\u7B2C {number} \u6761\u8BB0\u5F55","content-manager.components.DynamicZone.ComponentPicker-label":"\u9009\u62E9\u4E00\u4E2A\u7EC4\u4EF6","content-manager.components.DynamicZone.add-component":"\u6DFB\u52A0\u7EC4\u4EF6 {componentName}","content-manager.components.DynamicZone.delete-label":"\u5220\u9664 {name}","content-manager.components.DynamicZone.error-message":"\u8FD9\u4E2A\u7EC4\u4EF6\u6709\u9519\u8BEF","content-manager.components.DynamicZone.missing-components":"\u8FD9\u91CC {number, plural, =0 {\u6709 # \u9057\u5931\u7684\u7EC4\u4EF6} one {\u6709 # \u9057\u5931\u7684\u7EC4\u4EF6} other {\u6709 # \u9057\u5931\u7684\u7EC4\u4EF6}}","content-manager.components.DynamicZone.move-down-label":"\u5C06\u7EC4\u4EF6\u5411\u4E0B\u79FB\u52A8","content-manager.components.DynamicZone.move-up-label":"\u5C06\u7EC4\u4EF6\u5411\u4E0A\u79FB\u52A8","content-manager.components.DynamicZone.pick-compo":"\u9009\u62E9\u4E00\u4E2A\u7EC4\u4EF6","content-manager.components.DynamicZone.required":"\u5FC5\u987B\u6709\u4E00\u4E2A\u7EC4\u4EF6","content-manager.components.EmptyAttributesBlock.button":"\u524D\u5F80\u8BBE\u7F6E\u9875\u9762","content-manager.components.EmptyAttributesBlock.description":"\u4F60\u53EF\u4EE5\u66F4\u6539\u4F60\u7684\u8BBE\u7F6E","content-manager.components.FieldItem.linkToComponentLayout":"\u8BBE\u7F6E\u7EC4\u4EF6\u7684\u5E03\u5C40","content-manager.components.FieldSelect.label":"\u6DFB\u52A0\u4E00\u4E2A\u5B57\u6BB5","content-manager.components.FilterOptions.button.apply":"\u5E94\u7528","content-manager.components.FiltersPickWrapper.PluginHeader.actions.apply":"\u5E94\u7528","content-manager.components.FiltersPickWrapper.PluginHeader.actions.clearAll":"\u6E05\u9664\u6240\u6709","content-manager.components.FiltersPickWrapper.PluginHeader.description":"\u8BBE\u7F6E\u8FC7\u6EE4\u6761\u76EE\u7684\u6761\u4EF6","content-manager.components.FiltersPickWrapper.PluginHeader.title.filter":"\u8FC7\u6EE4\u5668","content-manager.components.FiltersPickWrapper.hide":"\u9690\u85CF","content-manager.components.LeftMenu.Search.label":"\u641C\u7D22\u5185\u5BB9\u7C7B\u578B","content-manager.components.LeftMenu.collection-types":"\u96C6\u5408\u7C7B\u578B","content-manager.components.LeftMenu.single-types":"\u5355\u4E00\u7C7B\u578B","content-manager.components.LimitSelect.itemsPerPage":"\u6BCF\u9875\u663E\u793A\u6761\u76EE\u6570","content-manager.components.NotAllowedInput.text":"\u6CA1\u6709\u6743\u9650\u663E\u793A\u6B64\u5B57\u6BB5","content-manager.components.RepeatableComponent.error-message":"\u8FD9\u4E2A\u7EC4\u4EF6\u5305\u542B\u9519\u8BEF","content-manager.components.Search.placeholder":"\u641C\u7D22...","content-manager.components.Select.draft-info-title":"\u72B6\u6001: \u8349\u7A3F","content-manager.components.Select.publish-info-title":"\u72B6\u6001: \u5DF2\u53D1\u5E03","content-manager.components.SettingsViewWrapper.pluginHeader.description.edit-settings":"\u81EA\u5B9A\u4E49\u7F16\u8F91\u89C6\u56FE\u7684\u5916\u89C2\u3002","content-manager.components.SettingsViewWrapper.pluginHeader.description.list-settings":"\u5B9A\u4E49\u5217\u8868\u89C6\u56FE\u7684\u8BBE\u7F6E\u3002","content-manager.components.SettingsViewWrapper.pluginHeader.title":"\u914D\u7F6E\u89C6\u56FE - {name}","content-manager.components.TableDelete.delete":"\u5220\u9664\u6240\u6709","content-manager.components.TableDelete.deleteSelected":"\u5220\u9664\u5DF2\u9009","content-manager.components.TableDelete.label":"\u5DF2\u9009\u62E9 {number, plural, one {# \u4E2A\u6761\u76EE} other {# \u4E2A\u6761\u76EE}}","content-manager.components.TableEmpty.withFilters":"\u6309\u8FC7\u6EE4\u6761\u4EF6\u627E\u4E0D\u5230 {contentType}...","content-manager.components.TableEmpty.withSearch":"\u6309\u641C\u7D22\u6761\u4EF6 ({search}) \u627E\u4E0D\u5230\u76F8\u5E94\u7684 {contentType}...","content-manager.components.TableEmpty.withoutFilter":"\u627E\u4E0D\u5230 {contentType}...","content-manager.components.empty-repeatable":"\u8FD8\u6CA1\u6709\u6761\u76EE\u3002\u70B9\u51FB\u4E0B\u9762\u7684\u6309\u94AE\u6DFB\u52A0\u4E00\u4E2A\u3002","content-manager.components.notification.info.maximum-requirement":"\u4F60\u5DF2\u7ECF\u8FBE\u5230\u4E86\u53EF\u5B9A\u4E49\u5B57\u6BB5\u6570\u7684\u6700\u5927\u6570\u91CF","content-manager.components.notification.info.minimum-requirement":"\u6DFB\u52A0\u4E00\u4E2A\u5B57\u6BB5\u4EE5\u7B26\u5408\u5B9A\u4E49\u5B57\u6BB5\u6570\u7684\u6700\u4F4E\u8981\u6C42","content-manager.components.repeatable.reorder.error":"\u5728\u91CD\u65B0\u6392\u5E8F\u60A8\u7684\u7EC4\u4EF6\u5B57\u6BB5\u65F6\u53D1\u751F\u9519\u8BEF\uFF0C\u8BF7\u91CD\u8BD5","content-manager.components.reset-entry":"\u91CD\u7F6E\u6761\u76EE","content-manager.components.uid.apply":"\u5E94\u7528","content-manager.components.uid.available":"\u53EF\u7528","content-manager.components.uid.regenerate":"\u91CD\u65B0\u751F\u6210","content-manager.components.uid.suggested":"\u63A8\u8350","content-manager.components.uid.unavailable":"\u4E0D\u53EF\u7528","content-manager.containers.Edit.Link.Layout":"\u914D\u7F6E\u5E03\u5C40","content-manager.containers.Edit.Link.Model":"\u7F16\u8F91\u96C6\u5408\u7C7B\u578B","content-manager.containers.Edit.addAnItem":"\u6DFB\u52A0\u5173\u8054...","content-manager.containers.Edit.clickToJump":"\u70B9\u51FB\u8DF3\u8F6C\u5230\u8BE5\u6761\u76EE","content-manager.containers.Edit.delete":"\u5220\u9664","content-manager.containers.Edit.delete-entry":"\u5220\u9664\u8BE5\u6761\u76EE","content-manager.containers.Edit.editing":"\u7F16\u8F91\u4E2D...","content-manager.containers.Edit.information":"\u4FE1\u606F","content-manager.containers.Edit.information.by":"\u64CD\u4F5C\u4EBA","content-manager.containers.Edit.information.created":"\u521B\u5EFA\u4E8E","content-manager.containers.Edit.information.draftVersion":"\u8349\u7A3F\u7248\u672C","content-manager.containers.Edit.information.editing":"\u7F16\u8F91\u4E2D","content-manager.containers.Edit.information.lastUpdate":"\u66F4\u65B0\u4E8E","content-manager.containers.Edit.information.publishedVersion":"\u5DF2\u53D1\u5E03\u7248\u672C","content-manager.containers.Edit.pluginHeader.title.new":"\u521B\u5EFA\u65B0\u6761\u76EE","content-manager.containers.Edit.reset":"\u91CD\u7F6E","content-manager.containers.Edit.returnList":"\u8FD4\u56DE\u5217\u8868","content-manager.containers.Edit.seeDetails":"\u8BE6\u60C5","content-manager.containers.Edit.submit":"\u4FDD\u5B58","content-manager.containers.EditSettingsView.modal-form.edit-field":"\u7F16\u8F91\u5B57\u6BB5","content-manager.containers.EditView.add.new-entry":"\u6DFB\u52A0\u65B0\u6761\u76EE","content-manager.containers.EditView.notification.errors":"\u8868\u5355\u4E2D\u5305\u542B\u4E00\u4E9B\u9519\u8BEF","content-manager.containers.Home.introduction":"\u8981\u7F16\u8F91\u4F60\u7684\u6761\u76EE\uFF0C\u8BF7\u5230\u5DE6\u8FB9\u83DC\u5355\u4E2D\u7684\u7279\u5B9A\u94FE\u63A5\u3002\u8FD9\u4E2A\u63D2\u4EF6\u5C1A\u5728\u79EF\u6781\u5F00\u53D1\u4E2D\uFF0C\u6CA1\u6709\u9002\u5F53\u7684\u65B9\u6CD5\u6765\u7F16\u8F91\u8BBE\u7F6E","content-manager.containers.Home.pluginHeaderDescription":"\u901A\u8FC7\u4E00\u4E2A\u5F3A\u5927\u800C\u6F02\u4EAE\u7684\u754C\u9762\u7BA1\u7406\u4F60\u7684\u6761\u76EE\u3002","content-manager.containers.Home.pluginHeaderTitle":"\u5185\u5BB9\u7BA1\u7406\u5668","content-manager.containers.List.draft":"\u8349\u7A3F","content-manager.containers.List.errorFetchRecords":"\u9519\u8BEF","content-manager.containers.List.published":"\u5DF2\u53D1\u5E03","content-manager.containers.ListPage.displayedFields":"\u663E\u793A\u5B57\u6BB5","content-manager.containers.ListPage.items":"{number, plural, =0 {\u9879} one {\u9879} other {\u9879}}","content-manager.containers.ListPage.table-headers.published_at":"\u72B6\u6001","content-manager.containers.ListSettingsView.modal-form.edit-label":"\u7F16\u8F91 {fieldName}","content-manager.containers.SettingPage.add.field":"\u6DFB\u52A0\u5B57\u6BB5","content-manager.containers.SettingPage.add.relational-field":"\u6DFB\u52A0\u5173\u8054\u5B57\u6BB5","content-manager.containers.SettingPage.attributes":"\u5C5E\u6027","content-manager.containers.SettingPage.attributes.description":"\u5B9A\u4E49\u5B57\u6BB5\u7684\u6392\u5E8F","content-manager.containers.SettingPage.editSettings.description":"\u62D6\u653E\u5B57\u6BB5\u4EE5\u5EFA\u7ACB\u5E03\u5C40","content-manager.containers.SettingPage.editSettings.entry.title":"\u6761\u76EE\u6807\u9898","content-manager.containers.SettingPage.editSettings.entry.title.description":"\u8BBE\u7F6E\u53EF\u663E\u793A\u7684\u5B57\u6BB5","content-manager.containers.SettingPage.editSettings.relation-field.description":"\u8BBE\u7F6E\u5728\u7F16\u8F91\u548C\u5217\u8868\u89C6\u56FE\u4E2D\u90FD\u53EF\u663E\u793A\u7684\u5B57\u6BB5","content-manager.containers.SettingPage.editSettings.title":"\u7F16\u8F91 (\u8BBE\u7F6E)","content-manager.containers.SettingPage.layout":"\u5E03\u5C40","content-manager.containers.SettingPage.listSettings.description":"\u914D\u7F6E\u96C6\u5408\u7C7B\u578B\u7684\u9009\u9879","content-manager.containers.SettingPage.listSettings.title":"\u5217\u8868\u89C6\u56FE (\u8BBE\u7F6E)","content-manager.containers.SettingPage.pluginHeaderDescription":"\u914D\u7F6E\u6307\u5B9A\u96C6\u5408\u7C7B\u578B\u7684\u8BBE\u7F6E","content-manager.containers.SettingPage.relations":"\u5173\u8054\u5B57\u6BB5","content-manager.containers.SettingPage.settings":"\u8BBE\u7F6E","content-manager.containers.SettingPage.view":"\u89C6\u56FE","content-manager.containers.SettingViewModel.pluginHeader.title":"\u5185\u5BB9\u7BA1\u7406\u5668 - {\u540D\u79F0}","content-manager.containers.SettingsPage.Block.contentType.description":"\u914D\u7F6E\u6307\u5B9A\u5185\u5BB9\u7C7B\u578B\u7684\u8BBE\u7F6E","content-manager.containers.SettingsPage.Block.contentType.title":"\u96C6\u5408\u7C7B\u578B","content-manager.containers.SettingsPage.Block.generalSettings.description":"\u4E3A\u4F60\u7684\u96C6\u5408\u7C7B\u578B\u914D\u7F6E\u9ED8\u8BA4\u9009\u9879","content-manager.containers.SettingsPage.Block.generalSettings.title":"\u901A\u7528","content-manager.containers.SettingsPage.pluginHeaderDescription":"\u4E3A\u4F60\u6240\u6709\u7684\u96C6\u5408\u7C7B\u578B\u548C\u7EC4\u914D\u7F6E\u8BBE\u7F6E","content-manager.containers.SettingsView.list.subtitle":"\u914D\u7F6E\u4F60\u7684\u96C6\u5408\u7C7B\u578B\u548C\u7EC4\u7684\u5E03\u5C40\u548C\u663E\u793A","content-manager.containers.SettingsView.list.title":"\u663E\u793A\u914D\u7F6E","content-manager.edit-settings-view.link-to-ctb.components":"\u7F16\u8F91\u7EC4\u4EF6","content-manager.edit-settings-view.link-to-ctb.content-types":"\u7F16\u8F91\u5185\u5BB9\u7C7B\u578B","content-manager.emptyAttributes.button":"\u524D\u5F80\u96C6\u5408\u7C7B\u578B\u6784\u5EFA\u5668","content-manager.emptyAttributes.description":"\u4E3A\u4F60\u7684\u96C6\u5408\u7C7B\u578B\u4E2D\u6DFB\u52A0\u4F60\u7684\u7B2C\u4E00\u4E2A\u5B57\u6BB5","content-manager.emptyAttributes.title":"\u76EE\u524D\u8FD8\u6CA1\u6709\u4EFB\u4F55\u5B57\u6BB5","content-manager.error.attribute.key.taken":"\u8BE5\u503C\u5DF2\u5B58\u5728","content-manager.error.attribute.sameKeyAndName":"\u4E0D\u80FD\u76F8\u540C","content-manager.error.attribute.taken":"\u8BE5\u5B57\u6BB5\u540D\u5DF2\u5B58\u5728","content-manager.error.contentTypeName.taken":"\u8BE5\u540D\u79F0\u5DF2\u5B58\u5728","content-manager.error.model.fetch":"\u5728\u83B7\u53D6\u6A21\u578B\u914D\u7F6E\u65F6\u53D1\u751F\u4E86\u4E00\u4E2A\u9519\u8BEF\u3002","content-manager.error.record.create":"\u5728\u521B\u5EFA\u8BB0\u5F55\u65F6\u53D1\u751F\u4E86\u4E00\u4E2A\u9519\u8BEF\u3002","content-manager.error.record.delete":"\u5728\u5220\u9664\u8BB0\u5F55\u65F6\u53D1\u751F\u4E86\u4E00\u4E2A\u9519\u8BEF\u3002","content-manager.error.record.fetch":"\u5728\u83B7\u53D6\u8BB0\u5F55\u65F6\u53D1\u751F\u4E86\u4E00\u4E2A\u9519\u8BEF\u3002","content-manager.error.record.update":"\u5728\u8BB0\u5F55\u66F4\u65B0\u65F6\u53D1\u751F\u4E86\u4E00\u4E2A\u9519\u8BEF\u3002","content-manager.error.records.count":"\u5728\u83B7\u53D6\u8BA1\u6570\u5668\u8BB0\u5F55\u65F6\u53D1\u751F\u4E86\u4E00\u4E2A\u9519\u8BEF\u3002","content-manager.error.records.fetch":"\u5728\u83B7\u53D6\u8BB0\u5F55\u65F6\u53D1\u751F\u4E86\u4E00\u4E2A\u9519\u8BEF\u3002","content-manager.error.schema.generation":"\u5728\u751F\u6210\u6A21\u5F0F\u65F6\u53D1\u751F\u4E86\u4E00\u4E2A\u9519\u8BEF\u3002","content-manager.error.validation.json":"\u65E0\u6548\u7684JSON\u683C\u5F0F","content-manager.error.validation.max":"\u6570\u503C\u592A\u5927","content-manager.error.validation.maxLength":"\u957F\u5EA6\u592A\u957F","content-manager.error.validation.min":"\u6570\u503C\u592A\u5C0F","content-manager.error.validation.minLength":"\u957F\u5EA6\u592A\u77ED","content-manager.error.validation.minSupMax":"\u6700\u5C0F\u503C\u4E0D\u80FD\u5927\u4E8E\u6700\u5927\u503C","content-manager.error.validation.regex":"\u6B63\u5219\u8868\u8FBE\u5F0F\u683C\u5F0F\u4E0D\u6B63\u786E","content-manager.error.validation.required":"\u5FC5\u586B\u9879","content-manager.form.Input.bulkActions":"\u5F00\u542F\u6279\u91CF\u64CD\u4F5C","content-manager.form.Input.defaultSort":"\u9ED8\u8BA4\u6392\u5E8F\u5B57\u6BB5","content-manager.form.Input.description":"\u63CF\u8FF0","content-manager.form.Input.description.placeholder":"\u8FD9\u4E2A\u5B57\u6BB5\u7684\u63CF\u8FF0","content-manager.form.Input.editable":"\u53EF\u7F16\u8F91\u5B57\u6BB5","content-manager.form.Input.filters":"\u5F00\u542F\u8FC7\u6EE4\u5668","content-manager.form.Input.label":"\u6807\u7B7E","content-manager.form.Input.label.inputDescription":"\u8BE5\u503C\u4F1A\u8986\u76D6\u663E\u793A\u5728\u8868\u5934\u7684\u6807\u7B7E","content-manager.form.Input.pageEntries":"\u6BCF\u9875\u6761\u76EE\u6570","content-manager.form.Input.pageEntries.inputDescription":"\u6CE8\u610F\uFF1A\u4F60\u53EF\u4EE5\u5728\u96C6\u5408\u7C7B\u578B\u8BBE\u7F6E\u9875\u9762\u4E2D\u8986\u76D6\u8BE5\u503C","content-manager.form.Input.placeholder":"\u63D0\u793A\u4FE1\u606F","content-manager.form.Input.placeholder.placeholder":"\u5728\u6587\u5B57\u8F93\u5165\u6846\u4E2D\u663E\u793A\u63D0\u793A\u4FE1\u606F","content-manager.form.Input.search":"\u5F00\u542F\u641C\u7D22","content-manager.form.Input.search.field":"\u5141\u8BB8\u8BE5\u5B57\u6BB5\u88AB\u641C\u7D22","content-manager.form.Input.sort.field":"\u5141\u8BB8\u6309\u8BE5\u5B57\u6BB5\u6392\u5E8F","content-manager.form.Input.sort.order":"\u9ED8\u8BA4\u6392\u5E8F\u987A\u5E8F","content-manager.form.Input.wysiwyg":"\u6240\u89C1\u5373\u6240\u5F97\u7F16\u8F91\u5668","content-manager.global.displayedFields":"\u5DF2\u663E\u793A\u5B57\u6BB5","content-manager.groups":"\u7FA4\u7EC4","content-manager.groups.numbered":"\u7FA4\u7EC4 ({number})","content-manager.header.name":"\u5185\u5BB9","content-manager.link-to-ctb":"\u7F16\u8F91\u6A21\u578B","content-manager.models":"\u96C6\u5408\u7C7B\u578B","content-manager.models.numbered":"\u96C6\u5408\u7C7B\u578B ({number})","content-manager.notification.error.displayedFields":"\u4F60\u81F3\u5C11\u9700\u8981\u663E\u793A\u4E00\u4E2A\u5B57\u6BB5","content-manager.notification.error.relationship.fetch":"\u5728\u83B7\u53D6\u5173\u7CFB\u65F6\u53D1\u751F\u4E86\u4E00\u4E2A\u9519\u8BEF","content-manager.notification.info.SettingPage.disableSort":"\u4F60\u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u7528\u6765\u6392\u5E8F\u7684\u5B57\u6BB5","content-manager.notification.info.minimumFields":"\u4F60\u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u7528\u6765\u663E\u793A\u7684\u5B57\u6BB5","content-manager.notification.upload.error":"\u5728\u4E0A\u4F20\u6587\u4EF6\u65F6\u53D1\u751F\u4E86\u4E00\u4E2A\u9519\u8BEF","content-manager.pageNotFound":"\u627E\u4E0D\u5230\u9875\u9762","content-manager.pages.ListView.header-subtitle":"\u627E\u5230 {number, plural, =0 {# \u6761\u76EE} one {# \u6761\u76EE} other {# \u6761\u76EE}}","content-manager.pages.NoContentType.button":"\u521B\u5EFA\u4F60\u7684\u7B2C\u4E00\u4E2A\u5185\u5BB9\u7C7B\u578B","content-manager.pages.NoContentType.text":"\u8FD8\u6CA1\u6709\u4EFB\u4F55\u5185\u5BB9\uFF0C\u6211\u4EEC\u5EFA\u8BAE\u60A8\u521B\u5EFA\u60A8\u7684\u7B2C\u4E00\u4E2A\u5185\u5BB9\u7C7B\u578B\u3002","content-manager.permissions.not-allowed.create":"\u4F60\u4E0D\u88AB\u5141\u8BB8\u521B\u5EFA\u6587\u6863","content-manager.permissions.not-allowed.update":"\u4F60\u4E0D\u88AB\u5141\u8BB8\u67E5\u770B\u6587\u4EF6","content-manager.plugin.description.long":"\u67E5\u770B\u3001\u7F16\u8F91\u548C\u5220\u9664\u6570\u636E\u5E93\u4E2D\u7684\u6570\u636E\u7684\u5FEB\u901F\u65B9\u6CD5\u3002","content-manager.plugin.description.short":"\u67E5\u770B\u3001\u7F16\u8F91\u548C\u5220\u9664\u6570\u636E\u5E93\u4E2D\u7684\u6570\u636E\u7684\u5FEB\u901F\u65B9\u6CD5\u3002","content-manager.popUpWarning.bodyMessage.contentType.delete":"\u4F60\u786E\u5B9A\u8981\u5220\u9664\u8FD9\u4E2A\u6761\u76EE\u5417\uFF1F","content-manager.popUpWarning.bodyMessage.contentType.delete.all":"\u4F60\u786E\u5B9A\u8981\u5220\u9664\u8FD9\u4E9B\u6761\u76EE\u5417\uFF1F","content-manager.popUpWarning.warning.cancelAllSettings":"\u4F60\u786E\u5B9A\u8981\u53D6\u6D88\u8FD9\u4E9B\u4FEE\u6539\u5417\uFF1F","content-manager.popUpWarning.warning.publish-question":"\u4F60\u8FD8\u60F3\u53D1\u5E03\u8FD9\u4E2A\u6761\u76EE\u5417\uFF1F","content-manager.popUpWarning.warning.unpublish":"\u53D6\u6D88\u53D1\u5E03\u8FD9\u4E2A\u5185\u5BB9<br></br>\u5C06\u81EA\u52A8\u53D8\u6210\u8349\u7A3F.","content-manager.popUpWarning.warning.unpublish-question":"\u4F60\u786E\u5B9A\u4F60\u8981\u53D6\u6D88\u53D1\u5E03\u5417\uFF1F","content-manager.popUpWarning.warning.updateAllSettings":"\u8FD9\u5C06\u4FEE\u6539\u4F60\u7684\u6240\u6709\u8BBE\u7F6E","content-manager.popUpwarning.warning.has-draft-relations.button-confirm":"\u662F, \u53D1\u5E03","content-manager.popUpwarning.warning.has-draft-relations.message":"<b>{count, plural, =0 { \u4E2A\u5173\u8054\u7684\u5185\u5BB9} one { \u4E2A\u5173\u8054\u7684\u5185\u5BB9} other { \u4E2A\u5173\u8054\u7684\u5185\u5BB9}}</b> \u5C1A\u672A\u53D1\u5E03\u3002<br></br>\u5B83\u53EF\u80FD\u4F1A\u5728\u4F60\u7684\u9879\u76EE\u4E0A\u4EA7\u751F\u5173\u8054\u5931\u6548\u548C\u9519\u8BEF\u3002","content-manager.popover.display-relations.label":"\u663E\u793A\u5173\u8054","content-manager.select.currently.selected":"\u5DF2\u9009\u4E2D {count} \u9879","content-manager.success.record.delete":"\u5DF2\u5220\u9664","content-manager.success.record.publish":"\u5DF2\u53D1\u5E03","content-manager.success.record.save":"\u5DF2\u4FDD\u5B58","content-manager.success.record.unpublish":"\u5DF2\u53D6\u6D88\u53D1\u5E03","content-manager.utils.data-loaded":"\u8FD9\u4E2A {number, plural, =1 {\u6761\u76EE} other {\u6761\u76EE}} \u5DF2\u6210\u529F\u52A0\u8F7D","content-type-builder.button.component.create":"\u521B\u5EFA\u4E00\u4E2A\u65B0\u7684\u7EC4\u4EF6","content-type-builder.button.model.create":"\u521B\u5EFA\u4E00\u4E2A\u65B0\u7684\u96C6\u5408\u7C7B\u578B","content-type-builder.button.single-types.create":"\u521B\u65B0\u4E00\u4E2A\u65B0\u7684\u5355\u4E00\u7C7B\u578B","content-type-builder.form.button.add.field.to.collectionType":"\u4E3A\u8FD9\u4E2A\u96C6\u5408\u7C7B\u578B\u6DFB\u52A0\u53E6\u4E00\u4E2A\u5B57\u6BB5","content-type-builder.form.button.add.field.to.singleType":"\u4E3A\u8FD9\u4E2A\u5355\u4E00\u7C7B\u578B\u6DFB\u52A0\u53E6\u4E00\u4E2A\u5B57\u6BB5","content-type-builder.listView.headerLayout.description":"\u5B9A\u4E49\u5185\u5BB9\u7684\u6570\u636E\u7ED3\u6784","content-type-builder.menu.section.components.name":"\u7EC4\u4EF6","content-type-builder.menu.section.models.name":"\u96C6\u5408\u7C7B\u578B","content-type-builder.menu.section.single-types.name":"\u5355\u4E00\u7C7B\u578B","content-type-builder.plugin.name":"\u6A21\u578B\u6784\u5EFA\u5668","form.button.done":"\u5B8C\u6210","global.search":"\u641C\u7D22","global.active":"\u5DF2\u6FC0\u6D3B","global.inactive":"\u672A\u6FC0\u6D3B","global.back":"\u8FD4\u56DE","global.cancel":"\u53D6\u6D88","global.change-password":"\u4FEE\u6539\u5BC6\u7801","global.content-manager":"\u5185\u5BB9\u7BA1\u7406","global.delete":"\u5220\u9664","global.delete-target":"\u5220\u9664 {target}","global.description":"\u63CF\u8FF0","global.details":"\u8BE6\u60C5","global.documentation":"\u6587\u6863","global.finish":"\u5B8C\u6210","global.marketplace":"\u5E02\u573A","global.name":"\u540D\u79F0","global.password":"\u5BC6\u7801","global.plugins":"\u63D2\u4EF6","global.plugins.content-manager":"\u5185\u5BB9\u7BA1\u7406","global.plugins.content-manager.description":"\u5728\u4F60\u7684\u6570\u636E\u5E93\u91CC\uFF0C\u5FEB\u901F\u7684\u67E5\u770B\u3001\u7F16\u8F91\u548C\u5220\u9664\u6570\u636E\u3002","global.plugins.content-type-builder":"\u6A21\u578B\u6784\u5EFA\u5668","global.plugins.content-type-builder.description":"\u5BF9\u4F60\u7684 API \u6570\u636E\u7ED3\u6784\u8FDB\u884C\u5EFA\u6A21\u3002\u5728\u77ED\u77ED\u7684\u4E00\u5206\u949F\u5185\u521B\u5EFA\u65B0\u7684\u5B57\u6BB5\u548C\u5173\u7CFB\u3002\u8FD9\u4E9B\u6587\u4EF6\u4F1A\u5728\u4F60\u7684\u9879\u76EE\u4E2D\u81EA\u52A8\u521B\u5EFA\u548C\u66F4\u65B0\u3002","global.plugins.email":"\u7535\u5B50\u90AE\u4EF6","global.plugins.email.description":"\u914D\u7F6E\u4F60\u7684\u5E94\u7528\u7A0B\u5E8F\u6765\u53D1\u9001\u7535\u5B50\u90AE\u4EF6\u3002","global.plugins.upload":"\u5A92\u4F53\u5E93","global.plugins.upload.description":"\u5A92\u4F53\u6587\u4EF6\u7BA1\u7406\u3002","global.plugins.graphql":"GraphQL","global.plugins.graphql.description":"\u6DFB\u52A0\u5177\u6709\u9ED8\u8BA4 API \u65B9\u6CD5\u7684 GraphQL \u7AEF\u70B9","global.plugins.documentation":"\u6587\u6863","global.plugins.documentation.description":"\u521B\u5EFA\u4E00\u4E2A OpenAPI \u6587\u6863\uFF0C\u7528 SWAGGER UI \u6765\u53EF\u89C6\u5316\u4F60\u7684 API\u3002","global.plugins.i18n":"\u56FD\u9645\u5316","global.plugins.i18n.description":"\u8FD9\u4E2A\u63D2\u4EF6\u53EF\u4EE5\u4ECE\u7BA1\u7406\u9762\u677F\u548C API \u4E2D\u521B\u5EFA\u3001\u9605\u8BFB\u548C\u66F4\u65B0\u4E0D\u540C\u8BED\u8A00\u7684\u5185\u5BB9\u3002","global.plugins.sentry":"Sentry","global.plugins.sentry.description":"\u5C06 Strapi \u9519\u8BEF\u4E8B\u4EF6\u53D1\u9001\u7ED9 Sentry\u3002","global.plugins.users-permissions":"\u89D2\u8272\u548C\u6743\u9650","global.plugins.users-permissions.description":"\u7528\u4E00\u4E2A\u57FA\u4E8E JWT \u7684\u5B8C\u6574\u8BA4\u8BC1\u8FC7\u7A0B\u6765\u4FDD\u62A4\u4F60\u7684 API\u3002\u8FD9\u4E2A\u63D2\u4EF6\u8FD8\u5E26\u6709\u4E00\u4E2A ACL \u7B56\u7565\uFF0C\u5141\u8BB8\u4F60\u7BA1\u7406\u7528\u6237\u7EC4\u4E4B\u95F4\u7684\u6743\u9650\u3002","global.profile":"\u4E2A\u4EBA\u8D44\u6599","global.prompt.unsaved":"\u60A8\u786E\u5B9A\u8981\u79BB\u5F00\u8FD9\u4E2A\u9875\u9762\u5417\uFF1F\u60A8\u6240\u6709\u7684\u672A\u4FDD\u5B58\u7684\u4FEE\u6539\u90FD\u5C06\u4E22\u5931","global.roles":"\u89D2\u8272\u5217\u8868","global.save":"\u4FDD\u5B58","global.settings":"\u8BBE\u7F6E","global.strapi-super-admin":"\u8D85\u7EA7\u7BA1\u7406\u5458","global.strapi-editor":"\u7F16\u8F91","global.strapi-author":"\u4F5C\u8005","global.table.header.email":"\u7535\u5B50\u90AE\u4EF6","global.table.header.firstname":"\u540D\u5B57","global.table.header.isActive":"\u662F\u5426\u6FC0\u6D3B","global.table.header.lastname":"\u59D3\u6C0F","global.table.header.roles":"\u7528\u6237\u89D2\u8272","global.table.header.username":"\u7528\u6237\u540D","global.users":"\u7528\u6237\u5217\u8868","global.type":"\u7C7B\u578B","notification.contentType.relations.conflict":"\u5185\u5BB9\u7C7B\u578B\u6709\u5173\u8054\u51B2\u7A81","notification.default.title":"\u901A\u77E5\uFF1A","notification.error":"\u53D1\u751F\u9519\u8BEF","notification.error.layout":"\u65E0\u6CD5\u83B7\u53D6\u5E03\u5C40","notification.form.error.fields":"\u8868\u5355\u5305\u542B\u4E00\u4E9B\u9519\u8BEF","notification.form.success.fields":"\u4FEE\u6539\u5DF2\u4FDD\u5B58","notification.link-copied":"\u94FE\u63A5\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F","notification.permission.not-allowed-read":"\u4F60\u4E0D\u88AB\u5141\u8BB8\u67E5\u770B\u6587\u4EF6","notification.success.delete":"\u6761\u76EE\u5DF2\u5220\u9664","notification.success.saved":"\u5DF2\u4FDD\u5B58","notification.success.title":"\u6210\u529F\uFF1A","notification.version.update.message":"\u6709\u65B0\u7248\u672C\u7684 Strapi \u53EF\u7528!","notification.warning.title":"\u8B66\u544A\uFF1A","or":"\u6216","request.error.model.unknown":"\u6A21\u578B\u4E0D\u5B58\u5728","skipToContent":"\u8DF3\u81F3\u5185\u5BB9","submit":"\u63D0\u4EA4"}')}}]);
@@ -1,5 +1,5 @@
1
1
  import React, { useRef, useState } from 'react';
2
- import moment from 'moment';
2
+ import { format } from 'date-fns';
3
3
  import {
4
4
  CheckPagePermissions,
5
5
  Form,
@@ -40,7 +40,7 @@ const UsersRoleNumber = styled.div`
40
40
  color: ${({ theme }) => theme.colors.primary600};
41
41
  border-radius: ${({ theme }) => theme.borderRadius};
42
42
  font-size: ${12 / 16}rem;
43
- font-width: bold;
43
+ font-weight: bold;
44
44
  `;
45
45
 
46
46
  const CreatePage = () => {
@@ -114,7 +114,7 @@ const CreatePage = () => {
114
114
  const defaultDescription = `${formatMessage({
115
115
  id: 'Settings.roles.form.created',
116
116
  defaultMessage: 'Created',
117
- })} ${moment().format('LL')}`;
117
+ })} ${format(new Date(), 'PPP')}`;
118
118
 
119
119
  return (
120
120
  <Main>
package/index.js CHANGED
@@ -1,66 +1,34 @@
1
1
  'use strict';
2
2
 
3
3
  const path = require('path');
4
- const _ = require('lodash');
5
4
  const fs = require('fs-extra');
6
5
  const webpack = require('webpack');
7
6
  const WebpackDevServer = require('webpack-dev-server');
7
+ const { isUsingTypeScript } = require('@strapi/typescript-utils');
8
8
  const chalk = require('chalk');
9
- const chokidar = require('chokidar');
10
- const getWebpackConfig = require('./webpack.config');
11
9
 
12
- const getPkgPath = name => path.dirname(require.resolve(`${name}/package.json`));
10
+ const {
11
+ createCacheDir,
12
+ getCustomWebpackConfig,
13
+ shouldBuildAdmin,
14
+ watchAdminFiles,
15
+ } = require('./utils');
13
16
 
14
- const DEFAULT_PLUGINS = [
15
- 'content-type-builder',
16
- 'content-manager',
17
- 'upload',
18
- 'email',
19
- 'i18n',
20
- 'users-permissions',
21
- ];
17
+ async function build({ appDir, buildDestDir, env, forceBuild, optimize, options, plugins }) {
18
+ const buildAdmin = await shouldBuildAdmin({ appDir, plugins });
22
19
 
23
- function getCustomWebpackConfig(dir, config) {
24
- const adminConfigPath = path.join(dir, 'src', 'admin', 'webpack.config.js');
25
-
26
- let webpackConfig = getWebpackConfig(config);
27
-
28
- if (fs.existsSync(adminConfigPath)) {
29
- const webpackAdminConfig = require(path.resolve(adminConfigPath));
30
-
31
- if (_.isFunction(webpackAdminConfig)) {
32
- // Expose the devServer configuration
33
- if (config.devServer) {
34
- webpackConfig.devServer = config.devServer;
35
- }
36
-
37
- webpackConfig = webpackAdminConfig(webpackConfig, webpack);
38
-
39
- if (!webpackConfig) {
40
- console.error(
41
- `${chalk.red('Error:')} Nothing was returned from your custom webpack configuration`
42
- );
43
- process.exit(1);
44
- }
45
- }
46
- }
47
-
48
- return webpackConfig;
49
- }
50
-
51
- async function build({ plugins, dir, env, options, optimize, forceBuild }) {
52
- const buildAdmin = await shouldBuildAdmin({ dir, plugins });
20
+ const useTypeScript = await isUsingTypeScript(path.join(appDir, 'src', 'admin'), 'tsconfig.json');
53
21
 
54
22
  if (!buildAdmin && !forceBuild) {
55
23
  return;
56
24
  }
57
25
 
58
26
  // Create the cache dir containing the front-end files.
59
- await createCacheDir({ dir, plugins });
27
+ await createCacheDir({ appDir, plugins });
60
28
 
61
- const cacheDir = path.resolve(dir, '.cache');
29
+ const cacheDir = path.resolve(appDir, '.cache');
62
30
  const entry = path.resolve(cacheDir, 'admin', 'src');
63
- const dest = path.resolve(dir, 'build');
31
+ const dest = path.resolve(buildDestDir, 'build');
64
32
 
65
33
  // Roots for the @strapi/babel-plugin-switch-ee-ce
66
34
  const roots = {
@@ -70,15 +38,23 @@ async function build({ plugins, dir, env, options, optimize, forceBuild }) {
70
38
 
71
39
  const pluginsPath = Object.keys(plugins).map(pluginName => plugins[pluginName].pathToPlugin);
72
40
 
73
- const config = getCustomWebpackConfig(dir, {
74
- entry,
75
- pluginsPath,
41
+ // Either use the tsconfig file from the generated app or the one inside the .cache folder
42
+ // so we can develop plugins in TS while being in a JS app
43
+ const tsConfigFilePath = useTypeScript
44
+ ? path.join(appDir, 'src', 'admin', 'tsconfig.json')
45
+ : path.resolve(entry, 'tsconfig.json');
46
+
47
+ const config = getCustomWebpackConfig(appDir, {
48
+ appDir,
76
49
  cacheDir,
77
50
  dest,
51
+ entry,
78
52
  env,
79
- options,
80
53
  optimize,
54
+ options,
55
+ pluginsPath,
81
56
  roots,
57
+ tsConfigFilePath,
82
58
  });
83
59
 
84
60
  const compiler = webpack(config);
@@ -109,115 +85,24 @@ async function build({ plugins, dir, env, options, optimize, forceBuild }) {
109
85
  });
110
86
  }
111
87
 
112
- async function createPluginsJs(plugins, dest) {
113
- const pluginsArray = plugins.map(({ pathToPlugin, name }) => {
114
- const shortName = _.camelCase(name);
115
-
116
- /**
117
- * path.join, on windows, it uses backslashes to resolve path.
118
- * The problem is that Webpack does not windows paths
119
- * With this tool, we need to rely on "/" and not "\".
120
- * This is the reason why '..\\..\\..\\node_modules\\@strapi\\plugin-content-type-builder/strapi-admin.js' was not working.
121
- * The regexp at line 105 aims to replace the windows backslashes by standard slash so that webpack can deal with them.
122
- * Backslash looks to work only for absolute paths with webpack => https://webpack.js.org/concepts/module-resolution/#absolute-paths
123
- */
124
- const realPath = path
125
- .join(path.relative(path.resolve(dest, 'admin', 'src'), pathToPlugin), 'strapi-admin.js')
126
- .replace(/\\/g, '/');
127
-
128
- return {
129
- name,
130
- pathToPlugin: realPath,
131
- shortName,
132
- };
133
- });
134
-
135
- const content = `
136
- ${pluginsArray
137
- .map(({ pathToPlugin, shortName }) => {
138
- const req = `'${pathToPlugin}'`;
139
-
140
- return `import ${shortName} from ${req};`;
141
- })
142
- .join('\n')}
143
-
144
-
145
- const plugins = {
146
- ${[...pluginsArray]
147
- .map(({ name, shortName }) => {
148
- return ` '${name}': ${shortName},`;
149
- })
150
- .join('\n')}
151
- };
152
-
153
- export default plugins;
154
- `;
155
-
156
- return fs.writeFile(path.resolve(dest, 'admin', 'src', 'plugins.js'), content);
157
- }
158
-
159
- async function clean({ dir }) {
160
- const buildDir = path.join(dir, 'build');
161
- const cacheDir = path.join(dir, '.cache');
88
+ async function clean({ appDir, buildDestDir }) {
89
+ // FIXME rename admin build dir and path to build dir
90
+ const buildDir = path.join(buildDestDir, 'build');
91
+ // .cache dir is always located at the root of the app
92
+ const cacheDir = path.join(appDir, '.cache');
162
93
 
163
94
  fs.removeSync(buildDir);
164
95
  fs.removeSync(cacheDir);
165
96
  }
166
97
 
167
- async function copyAdmin(dest) {
168
- const adminPath = getPkgPath('@strapi/admin');
169
-
170
- // TODO copy ee folders for plugins
171
- await fs.copy(path.resolve(adminPath, 'ee', 'admin'), path.resolve(dest, 'ee', 'admin'));
172
-
173
- await fs.ensureDir(path.resolve(dest, 'config'));
174
- await fs.copy(path.resolve(adminPath, 'admin'), path.resolve(dest, 'admin'));
175
-
176
- // Copy package.json
177
- await fs.copy(path.resolve(adminPath, 'package.json'), path.resolve(dest, 'package.json'));
178
- }
179
-
180
- async function createCacheDir({ dir, plugins }) {
181
- const cacheDir = path.resolve(dir, '.cache');
182
-
183
- const pluginsWithFront = Object.keys(plugins)
184
- .filter(pluginName => {
185
- const pluginInfo = plugins[pluginName];
186
- return fs.existsSync(path.resolve(pluginInfo.pathToPlugin, 'strapi-admin.js'));
187
- })
188
- .map(name => ({ name, ...plugins[name] }));
189
-
190
- // create .cache dir
191
- await fs.emptyDir(cacheDir);
192
-
193
- // copy admin core code
194
- await copyAdmin(cacheDir);
195
-
196
- // Copy app.js
197
- const customAdminConfigFilePath = path.join(dir, 'src', 'admin', 'app.js');
198
-
199
- if (fs.existsSync(customAdminConfigFilePath)) {
200
- await fs.copy(customAdminConfigFilePath, path.resolve(cacheDir, 'admin', 'src', 'app.js'));
201
- }
202
-
203
- // Copy admin extensions folder
204
- const adminExtensionFolder = path.join(dir, 'src', 'admin', 'extensions');
205
-
206
- if (fs.existsSync(adminExtensionFolder)) {
207
- await fs.copy(adminExtensionFolder, path.resolve(cacheDir, 'admin', 'src', 'extensions'));
208
- }
209
-
210
- // create plugins.js with plugins requires
211
- await createPluginsJs(pluginsWithFront, cacheDir);
212
- }
213
-
214
- async function watchAdmin({ plugins, dir, host, port, browser, options }) {
98
+ async function watchAdmin({ appDir, browser, buildDestDir, host, options, plugins, port }) {
99
+ const useTypeScript = await isUsingTypeScript(path.join(appDir, 'src', 'admin'), 'tsconfig.json');
215
100
  // Create the cache dir containing the front-end files.
216
- const cacheDir = path.join(dir, '.cache');
217
- await createCacheDir({ dir, plugins });
101
+ const cacheDir = path.join(appDir, '.cache');
102
+ await createCacheDir({ appDir, plugins });
218
103
 
219
104
  const entry = path.join(cacheDir, 'admin', 'src');
220
- const dest = path.join(dir, 'build');
105
+ const dest = path.join(buildDestDir, 'build');
221
106
  const env = 'development';
222
107
 
223
108
  // Roots for the @strapi/babel-plugin-switch-ee-ce
@@ -228,14 +113,20 @@ async function watchAdmin({ plugins, dir, host, port, browser, options }) {
228
113
 
229
114
  const pluginsPath = Object.keys(plugins).map(pluginName => plugins[pluginName].pathToPlugin);
230
115
 
116
+ // Either use the tsconfig file from the generated app or the one inside the .cache folder
117
+ // so we can develop plugins in TS while being in a JS app
118
+ const tsConfigFilePath = useTypeScript
119
+ ? path.join(appDir, 'src', 'admin', 'tsconfig.json')
120
+ : path.resolve(entry, 'tsconfig.json');
121
+
231
122
  const args = {
232
- entry,
123
+ appDir,
233
124
  cacheDir,
234
- pluginsPath,
235
125
  dest,
126
+ entry,
236
127
  env,
237
- port,
238
128
  options,
129
+ pluginsPath,
239
130
  roots,
240
131
  devServer: {
241
132
  port,
@@ -246,7 +137,6 @@ async function watchAdmin({ plugins, dir, host, port, browser, options }) {
246
137
  warnings: false,
247
138
  },
248
139
  },
249
-
250
140
  open: browser === 'true' ? true : browser,
251
141
  devMiddleware: {
252
142
  publicPath: options.adminPath,
@@ -256,9 +146,10 @@ async function watchAdmin({ plugins, dir, host, port, browser, options }) {
256
146
  disableDotRule: true,
257
147
  },
258
148
  },
149
+ tsConfigFilePath,
259
150
  };
260
151
 
261
- const webpackConfig = getCustomWebpackConfig(dir, args);
152
+ const webpackConfig = getCustomWebpackConfig(appDir, args);
262
153
 
263
154
  const compiler = webpack(webpackConfig);
264
155
 
@@ -279,90 +170,7 @@ async function watchAdmin({ plugins, dir, host, port, browser, options }) {
279
170
 
280
171
  runServer();
281
172
 
282
- watchFiles(dir);
283
- }
284
-
285
- /**
286
- * Listen to files change and copy the changed files in the .cache/admin folder
287
- * when using the dev mode
288
- * @param {string} dir
289
- */
290
- async function watchFiles(dir) {
291
- const cacheDir = path.join(dir, '.cache');
292
- const appExtensionFile = path.join(dir, 'src', 'admin', 'app.js');
293
- const extensionsPath = path.join(dir, 'src', 'admin', 'extensions');
294
-
295
- // Only watch the admin/app.js file and the files that are in the ./admin/extensions/folder
296
- const filesToWatch = [appExtensionFile, extensionsPath];
297
-
298
- const watcher = chokidar.watch(filesToWatch, {
299
- ignoreInitial: true,
300
- ignorePermissionErrors: true,
301
- });
302
-
303
- watcher.on('all', async (event, filePath) => {
304
- const isAppFile = filePath.includes(appExtensionFile);
305
-
306
- // The app.js file needs to be copied in the .cache/admin/src/app.js and the other ones needs to
307
- // be copied in the .cache/admin/src/extensions folder
308
- const targetPath = isAppFile
309
- ? path.join(path.normalize(filePath.split(appExtensionFile)[1]), 'app.js')
310
- : path.join('extensions', path.normalize(filePath.split(extensionsPath)[1]));
311
-
312
- const destFolder = path.join(cacheDir, 'admin', 'src');
313
-
314
- if (event === 'unlink' || event === 'unlinkDir') {
315
- // Remove the file or folder
316
- // We need to copy the original files when deleting an override one
317
- try {
318
- fs.removeSync(path.join(destFolder, targetPath));
319
- } catch (err) {
320
- console.log('An error occured while deleting the file', err);
321
- }
322
- } else {
323
- // In any other case just copy the file into the .cache/admin/src folder
324
- try {
325
- await fs.copy(filePath, path.join(destFolder, targetPath));
326
- } catch (err) {
327
- console.log(err);
328
- }
329
- }
330
- });
331
- }
332
-
333
- const hasCustomAdminCode = async dir => {
334
- const customAdminPath = path.join(dir, 'src', 'admin');
335
- const customAdminConfigFile = path.join(customAdminPath, 'app.js');
336
- const customAdminWebpackFile = path.join(customAdminPath, 'webpack.config.js');
337
-
338
- const hasCustomConfigFile = await fs.pathExists(customAdminConfigFile);
339
- const hasCustomWebpackFile = await fs.pathExists(customAdminWebpackFile);
340
-
341
- return hasCustomConfigFile || hasCustomWebpackFile;
342
- };
343
-
344
- /**
345
- * Checks if the project's installed plugins are not the same as a default one.
346
- * @param {Object} plugins
347
- * @returns {boolean}
348
- */
349
- const hasNonDefaultPlugins = plugins => {
350
- // List of plugins that are not the ones installed in a generated app
351
- const installedPlugins = Object.keys(plugins).filter(x => !DEFAULT_PLUGINS.includes(x));
352
-
353
- // List of default plugins uninstalled from a generated app
354
- const missingPlugins = DEFAULT_PLUGINS.filter(x => !Object.keys(plugins).includes(x));
355
-
356
- const diff = [...installedPlugins, ...missingPlugins];
357
-
358
- return diff.length > 0;
359
- };
360
-
361
- async function shouldBuildAdmin({ dir, plugins }) {
362
- const appHasCustomAdminCode = await hasCustomAdminCode(dir);
363
- const appHasNonDefaultPlugins = hasNonDefaultPlugins(plugins);
364
-
365
- return appHasCustomAdminCode || appHasNonDefaultPlugins;
173
+ watchAdminFiles(appDir, useTypeScript);
366
174
  }
367
175
 
368
176
  module.exports = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/admin",
3
- "version": "4.2.3",
3
+ "version": "4.3.0",
4
4
  "description": "Strapi Admin",
5
5
  "repository": {
6
6
  "type": "git",
@@ -28,6 +28,7 @@
28
28
  "develop:webpack": "cross-env NODE_ENV=development webpack serve --config webpack.config.dev.js --progress profile",
29
29
  "prepublishOnly": "yarn build",
30
30
  "build": "rimraf build && node ./scripts/build.js",
31
+ "build:mesure": "rimraf build && cross-env MESURE_BUILD_SPEED=true node ./scripts/build.js",
31
32
  "test": "echo \"no tests yet\"",
32
33
  "test:unit": "jest --verbose",
33
34
  "test:front": "cross-env IS_EE=true jest --config ./jest.config.front.js",
@@ -50,11 +51,12 @@
50
51
  "@fortawesome/free-solid-svg-icons": "^5.15.3",
51
52
  "@fortawesome/react-fontawesome": "^0.2.0",
52
53
  "@pmmmwh/react-refresh-webpack-plugin": "0.5.7",
53
- "@strapi/babel-plugin-switch-ee-ce": "4.2.3",
54
+ "@strapi/babel-plugin-switch-ee-ce": "4.3.0",
54
55
  "@strapi/design-system": "1.2.0",
55
- "@strapi/helper-plugin": "4.2.3",
56
+ "@strapi/helper-plugin": "4.3.0",
56
57
  "@strapi/icons": "1.2.0",
57
- "@strapi/utils": "4.2.3",
58
+ "@strapi/typescript-utils": "4.3.0",
59
+ "@strapi/utils": "4.3.0",
58
60
  "axios": "0.24.0",
59
61
  "babel-loader": "8.2.5",
60
62
  "babel-plugin-styled-components": "2.0.2",
@@ -70,19 +72,20 @@
70
72
  "execa": "^1.0.0",
71
73
  "fast-deep-equal": "3.1.3",
72
74
  "font-awesome": "^4.7.0",
75
+ "fork-ts-checker-webpack-plugin": "7.2.1",
73
76
  "formik": "^2.2.6",
74
77
  "fs-extra": "10.0.0",
75
78
  "highlight.js": "^10.4.1",
76
79
  "history": "^4.9.0",
77
80
  "hoist-non-react-statics": "^3.3.0",
78
- "html-loader": "3.0.1",
81
+ "html-loader": "3.1.2",
79
82
  "html-webpack-plugin": "5.5.0",
80
- "immer": "9.0.6",
83
+ "immer": "9.0.15",
81
84
  "invariant": "^2.2.4",
82
85
  "js-cookie": "2.2.1",
83
86
  "jsonwebtoken": "8.5.1",
84
87
  "koa-compose": "4.1.0",
85
- "koa-passport": "4.1.4",
88
+ "koa-passport": "5.0.0",
86
89
  "koa-static": "5.0.0",
87
90
  "lodash": "4.17.21",
88
91
  "markdown-it": "^12.3.2",
@@ -97,7 +100,6 @@
97
100
  "markdown-it-sup": "1.0.0",
98
101
  "match-sorter": "^4.0.2",
99
102
  "mini-css-extract-plugin": "2.4.4",
100
- "moment": "^2.29.4",
101
103
  "node-polyfill-webpack-plugin": "1.1.4",
102
104
  "p-map": "4.0.0",
103
105
  "passport-local": "1.0.0",
@@ -125,7 +127,7 @@
125
127
  "rimraf": "3.0.2",
126
128
  "sanitize-html": "2.7.0",
127
129
  "semver": "7.3.7",
128
- "sift": "13.5.0",
130
+ "sift": "13.5.4",
129
131
  "style-loader": "3.3.1",
130
132
  "styled-components": "5.3.3",
131
133
  "webpack": "^5.73.0",
@@ -136,6 +138,8 @@
136
138
  },
137
139
  "devDependencies": {
138
140
  "duplicate-dependencies-webpack-plugin": "^1.0.2",
141
+ "glob": "8.0.3",
142
+ "speed-measure-webpack-plugin": "1.5.0",
139
143
  "webpack-bundle-analyzer": "^4.5.0"
140
144
  },
141
145
  "engines": {
@@ -151,5 +155,5 @@
151
155
  }
152
156
  }
153
157
  },
154
- "gitHead": "fe296baf71cb932d45183d5335285eaf30a6fad6"
158
+ "gitHead": "74a2b908df75bc8001d72f9dc8571c4b7a2da337"
155
159
  }