@qlover/create-app 0.7.15 → 0.8.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 (340) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/configs/_common/.gitignore.template +6 -0
  3. package/dist/configs/_common/.prettierignore +17 -5
  4. package/dist/configs/_common/.vscode/settings.json +6 -1
  5. package/dist/index.cjs +1 -1
  6. package/dist/index.js +1 -1
  7. package/dist/templates/next-app/.env.template +1 -1
  8. package/dist/templates/next-app/README.en.md +0 -1
  9. package/dist/templates/next-app/README.md +0 -1
  10. package/dist/templates/next-app/config/Identifier/api.ts +5 -5
  11. package/dist/templates/next-app/config/Identifier/common/admint.table.ts +69 -0
  12. package/dist/templates/next-app/config/Identifier/common/common.ts +76 -0
  13. package/dist/templates/next-app/config/Identifier/common/index.ts +3 -0
  14. package/dist/templates/next-app/config/Identifier/{validator.ts → common/validators.ts} +5 -5
  15. package/dist/templates/next-app/config/Identifier/index.ts +2 -12
  16. package/dist/templates/next-app/config/Identifier/pages/index.ts +6 -0
  17. package/dist/templates/next-app/config/Identifier/pages/page.admin.home.ts +27 -0
  18. package/dist/templates/next-app/config/Identifier/pages/page.admin.locales.ts +266 -0
  19. package/dist/templates/next-app/config/Identifier/pages/page.admin.user.ts +293 -0
  20. package/dist/templates/{react-app/config/Identifier → next-app/config/Identifier/pages}/page.home.ts +15 -22
  21. package/dist/templates/next-app/config/Identifier/{page.login.ts → pages/page.login.ts} +28 -34
  22. package/dist/templates/next-app/config/Identifier/{page.register.ts → pages/page.register.ts} +30 -29
  23. package/dist/templates/next-app/config/adminNavs.ts +19 -0
  24. package/dist/templates/next-app/config/common.ts +22 -13
  25. package/dist/templates/next-app/config/i18n/HomeI18n.ts +5 -5
  26. package/dist/templates/next-app/config/i18n/admin18n.ts +61 -19
  27. package/dist/templates/next-app/config/i18n/i18nConfig.ts +2 -0
  28. package/dist/templates/next-app/config/i18n/i18nKeyScheam.ts +36 -0
  29. package/dist/templates/next-app/config/i18n/loginI18n.ts +22 -22
  30. package/dist/templates/next-app/config/i18n/register18n.ts +23 -24
  31. package/dist/templates/next-app/docs/en/index.md +0 -1
  32. package/dist/templates/next-app/docs/en/project-structure.md +0 -1
  33. package/dist/templates/next-app/docs/zh/index.md +0 -1
  34. package/dist/templates/next-app/docs/zh/project-structure.md +0 -1
  35. package/dist/templates/next-app/make/generateLocales.ts +19 -12
  36. package/dist/templates/next-app/migrations/schema/LocalesSchema.ts +15 -0
  37. package/dist/templates/next-app/migrations/sql/1694244000000.sql +11 -0
  38. package/dist/templates/next-app/package.json +7 -3
  39. package/dist/templates/next-app/public/locales/en.json +172 -207
  40. package/dist/templates/next-app/public/locales/zh.json +172 -207
  41. package/dist/templates/next-app/src/app/[locale]/admin/locales/page.tsx +153 -0
  42. package/dist/templates/next-app/src/app/[locale]/admin/users/page.tsx +48 -50
  43. package/dist/templates/next-app/src/app/[locale]/login/LoginForm.tsx +2 -2
  44. package/dist/templates/next-app/src/app/api/admin/locales/create/route.ts +34 -0
  45. package/dist/templates/next-app/src/app/api/admin/locales/import/route.ts +40 -0
  46. package/dist/templates/next-app/src/app/api/admin/locales/route.ts +42 -0
  47. package/dist/templates/next-app/src/app/api/admin/locales/update/route.ts +32 -0
  48. package/dist/templates/next-app/src/app/api/locales/json/route.ts +44 -0
  49. package/dist/templates/next-app/src/base/cases/AdminPageManager.ts +1 -13
  50. package/dist/templates/next-app/src/base/cases/Datetime.ts +18 -0
  51. package/dist/templates/next-app/src/base/cases/DialogErrorPlugin.ts +12 -6
  52. package/dist/templates/next-app/src/base/cases/ResourceState.ts +17 -0
  53. package/dist/templates/next-app/src/base/cases/TranslateI18nInterface.ts +25 -0
  54. package/dist/templates/next-app/src/base/cases/ZodColumnBuilder.ts +200 -0
  55. package/dist/templates/next-app/src/base/port/ZodBuilderInterface.ts +8 -0
  56. package/dist/templates/next-app/src/base/services/AdminLocalesService.ts +20 -0
  57. package/dist/templates/next-app/src/base/services/AdminPageEvent.ts +26 -0
  58. package/dist/templates/next-app/src/base/services/AdminPageScheduler.ts +42 -0
  59. package/dist/templates/next-app/src/base/services/ResourceService.ts +122 -0
  60. package/dist/templates/next-app/src/base/services/adminApi/AdminLocalesApi.ts +104 -0
  61. package/dist/templates/next-app/src/base/services/adminApi/AdminUserApi.ts +38 -5
  62. package/dist/templates/next-app/src/base/services/appApi/AppApiPlugin.ts +1 -1
  63. package/dist/templates/next-app/src/i18n/request.ts +30 -1
  64. package/dist/templates/next-app/src/server/PageParams.ts +2 -10
  65. package/dist/templates/next-app/src/server/port/DBBridgeInterface.ts +5 -0
  66. package/dist/templates/next-app/src/server/port/DBTableInterface.ts +2 -0
  67. package/dist/templates/next-app/src/server/port/LocalesRepositoryInterface.ts +43 -0
  68. package/dist/templates/next-app/src/server/repositorys/LocalesRepository.ts +197 -0
  69. package/dist/templates/next-app/src/server/services/ApiLocaleService.ts +122 -0
  70. package/dist/templates/next-app/src/server/sqlBridges/SupabaseBridge.ts +60 -11
  71. package/dist/templates/next-app/src/server/validators/ExtendedExecutorError.ts +6 -0
  72. package/dist/templates/next-app/src/server/validators/LocalesValidator.ts +131 -0
  73. package/dist/templates/next-app/src/server/validators/LoginValidator.ts +2 -5
  74. package/dist/templates/next-app/src/server/validators/PaginationValidator.ts +32 -16
  75. package/dist/templates/next-app/src/styles/css/antd-themes/pagination/_default.css +2 -1
  76. package/dist/templates/next-app/src/styles/css/antd-themes/pagination/dark.css +28 -29
  77. package/dist/templates/next-app/src/styles/css/antd-themes/pagination/pink.css +2 -1
  78. package/dist/templates/next-app/src/uikit/components/AdminLayout.tsx +17 -3
  79. package/dist/templates/next-app/src/uikit/components/BaseHeader.tsx +5 -4
  80. package/dist/templates/next-app/src/uikit/components/BaseLayout.tsx +5 -4
  81. package/dist/templates/next-app/src/uikit/components/BootstrapsProvider.tsx +3 -2
  82. package/dist/templates/next-app/src/uikit/components/ComboProvider.tsx +1 -1
  83. package/dist/templates/next-app/src/uikit/components/EditableCell.tsx +118 -0
  84. package/dist/templates/next-app/src/uikit/components/LogoutButton.tsx +5 -6
  85. package/dist/templates/next-app/src/uikit/components/ThemeSwitcher.tsx +1 -1
  86. package/dist/templates/next-app/src/uikit/components/With.tsx +2 -2
  87. package/dist/templates/next-app/src/uikit/components/localesImportButton/LocalesImportButton.tsx +62 -0
  88. package/dist/templates/next-app/src/uikit/components/localesImportButton/LocalesImportEvent.ts +28 -0
  89. package/dist/templates/next-app/src/uikit/components/localesImportButton/import.module.css +6 -0
  90. package/dist/templates/next-app/src/uikit/hook/useI18nInterface.ts +8 -14
  91. package/dist/templates/next-app/src/uikit/hook/useWarnTranslations.ts +25 -0
  92. package/dist/templates/react-app/.prettierignore +17 -0
  93. package/dist/templates/react-app/README.en.md +71 -54
  94. package/dist/templates/react-app/README.md +35 -18
  95. package/dist/templates/react-app/__tests__/__mocks__/BootstrapTest.ts +14 -0
  96. package/dist/templates/react-app/__tests__/__mocks__/MockAppConfit.ts +1 -1
  97. package/dist/templates/react-app/__tests__/__mocks__/MockDialogHandler.ts +2 -2
  98. package/dist/templates/react-app/__tests__/__mocks__/MockLogger.ts +1 -1
  99. package/dist/templates/react-app/__tests__/__mocks__/components/TestApp.tsx +45 -0
  100. package/dist/templates/react-app/__tests__/__mocks__/components/TestBootstrapsProvider.tsx +34 -0
  101. package/dist/templates/react-app/__tests__/__mocks__/components/TestRouter.tsx +46 -0
  102. package/dist/templates/react-app/__tests__/__mocks__/components/index.ts +12 -0
  103. package/dist/templates/react-app/__tests__/__mocks__/createMockGlobals.ts +1 -2
  104. package/dist/templates/react-app/__tests__/__mocks__/testIOC/TestIOC.ts +51 -0
  105. package/dist/templates/react-app/__tests__/__mocks__/testIOC/TestIOCRegister.ts +69 -0
  106. package/dist/templates/react-app/__tests__/setup/index.ts +1 -51
  107. package/dist/templates/react-app/__tests__/setup/setupGlobal.ts +51 -0
  108. package/dist/templates/react-app/__tests__/src/App.structure.test.tsx +115 -0
  109. package/dist/templates/react-app/__tests__/src/base/cases/AppConfig.test.ts +2 -2
  110. package/dist/templates/react-app/__tests__/src/base/cases/AppError.test.ts +1 -1
  111. package/dist/templates/react-app/__tests__/src/base/cases/DialogHandler.test.ts +3 -5
  112. package/dist/templates/react-app/__tests__/src/base/cases/I18nKeyErrorPlugin.test.ts +13 -2
  113. package/dist/templates/react-app/__tests__/src/base/cases/InversifyContainer.test.ts +1 -1
  114. package/dist/templates/react-app/__tests__/src/base/cases/PublicAssetsPath.test.ts +1 -1
  115. package/dist/templates/react-app/__tests__/src/base/cases/RequestLogger.test.ts +5 -5
  116. package/dist/templates/react-app/__tests__/src/base/cases/RequestStatusCatcher.test.ts +1 -2
  117. package/dist/templates/react-app/__tests__/src/base/cases/RouterLoader.test.ts +25 -15
  118. package/dist/templates/react-app/__tests__/src/base/services/I18nService.test.ts +29 -15
  119. package/dist/templates/react-app/__tests__/src/core/IOC.test.ts +19 -9
  120. package/dist/templates/react-app/__tests__/src/core/bootstraps/BootstrapClient.test.ts +153 -0
  121. package/dist/templates/react-app/__tests__/src/core/bootstraps/BootstrapsApp.test.ts +9 -7
  122. package/dist/templates/react-app/__tests__/src/main.integration.test.tsx +4 -5
  123. package/dist/templates/react-app/__tests__/src/main.test.tsx +4 -4
  124. package/dist/templates/react-app/__tests__/src/uikit/components/BaseHeader.test.tsx +68 -59
  125. package/dist/templates/react-app/config/IOCIdentifier.ts +8 -8
  126. package/dist/templates/react-app/config/Identifier/{common.error.ts → common/common.error.ts} +5 -5
  127. package/dist/templates/react-app/config/Identifier/{common.ts → common/common.ts} +9 -9
  128. package/dist/templates/react-app/config/Identifier/common/index.ts +2 -0
  129. package/dist/templates/react-app/config/Identifier/index.ts +1 -9
  130. package/dist/templates/react-app/config/Identifier/pages/index.ts +8 -0
  131. package/dist/templates/react-app/config/Identifier/{page.about.ts → pages/page.about.ts} +34 -26
  132. package/dist/templates/react-app/config/Identifier/{page.executor.ts → pages/page.executor.ts} +47 -39
  133. package/dist/templates/{next-app/config/Identifier → react-app/config/Identifier/pages}/page.home.ts +24 -23
  134. package/dist/templates/react-app/config/Identifier/pages/page.identifiter.ts +102 -0
  135. package/dist/templates/react-app/config/Identifier/{page.jsonStorage.ts → pages/page.jsonStorage.ts} +18 -11
  136. package/dist/templates/react-app/config/Identifier/{page.login.ts → pages/page.login.ts} +37 -27
  137. package/dist/templates/react-app/config/Identifier/{page.register.ts → pages/page.register.ts} +37 -25
  138. package/dist/templates/react-app/config/Identifier/{page.request.ts → pages/page.request.ts} +34 -44
  139. package/dist/templates/react-app/config/app.router.ts +66 -69
  140. package/dist/templates/react-app/config/i18n/PageI18nInterface.ts +51 -0
  141. package/dist/templates/react-app/config/i18n/aboutI18n.ts +42 -0
  142. package/dist/templates/react-app/config/i18n/executorI18n.ts +51 -0
  143. package/dist/templates/react-app/config/i18n/homeI18n.ts +24 -0
  144. package/dist/templates/react-app/config/i18n/i18nConfig.ts +30 -0
  145. package/dist/templates/react-app/config/i18n/identifiter18n.ts +30 -0
  146. package/dist/templates/react-app/config/i18n/jsonStorage18n.ts +27 -0
  147. package/dist/templates/react-app/config/i18n/login18n.ts +42 -0
  148. package/dist/templates/react-app/config/i18n/notFoundI18n.ts +34 -0
  149. package/dist/templates/react-app/config/i18n/register18n.ts +40 -0
  150. package/dist/templates/react-app/config/i18n/request18n.ts +41 -0
  151. package/dist/templates/react-app/config/theme.ts +14 -4
  152. package/dist/templates/react-app/docs/en/bootstrap.md +1670 -341
  153. package/dist/templates/react-app/docs/en/development-guide.md +1021 -345
  154. package/dist/templates/react-app/docs/en/env.md +1132 -278
  155. package/dist/templates/react-app/docs/en/i18n.md +858 -147
  156. package/dist/templates/react-app/docs/en/index.md +733 -104
  157. package/dist/templates/react-app/docs/en/ioc.md +1228 -287
  158. package/dist/templates/react-app/docs/en/playwright/e2e-tests.md +321 -0
  159. package/dist/templates/react-app/docs/en/playwright/index.md +19 -0
  160. package/dist/templates/react-app/docs/en/playwright/installation-summary.md +332 -0
  161. package/dist/templates/react-app/docs/en/playwright/overview.md +222 -0
  162. package/dist/templates/react-app/docs/en/playwright/quickstart.md +325 -0
  163. package/dist/templates/react-app/docs/en/playwright/reorganization-notes.md +340 -0
  164. package/dist/templates/react-app/docs/en/playwright/setup-complete.md +290 -0
  165. package/dist/templates/react-app/docs/en/playwright/testing-guide.md +565 -0
  166. package/dist/templates/react-app/docs/en/store.md +1194 -184
  167. package/dist/templates/react-app/docs/en/why-no-globals.md +797 -0
  168. package/dist/templates/react-app/docs/zh/bootstrap.md +1670 -341
  169. package/dist/templates/react-app/docs/zh/development-guide.md +1021 -345
  170. package/dist/templates/react-app/docs/zh/env.md +1132 -275
  171. package/dist/templates/react-app/docs/zh/i18n.md +858 -147
  172. package/dist/templates/react-app/docs/zh/index.md +717 -104
  173. package/dist/templates/react-app/docs/zh/ioc.md +1229 -287
  174. package/dist/templates/react-app/docs/zh/playwright/e2e-tests.md +321 -0
  175. package/dist/templates/react-app/docs/zh/playwright/index.md +19 -0
  176. package/dist/templates/react-app/docs/zh/playwright/installation-summary.md +332 -0
  177. package/dist/templates/react-app/docs/zh/playwright/overview.md +222 -0
  178. package/dist/templates/react-app/docs/zh/playwright/quickstart.md +325 -0
  179. package/dist/templates/react-app/docs/zh/playwright/reorganization-notes.md +340 -0
  180. package/dist/templates/react-app/docs/zh/playwright/setup-complete.md +290 -0
  181. package/dist/templates/react-app/docs/zh/playwright/testing-guide.md +565 -0
  182. package/dist/templates/react-app/docs/zh/store.md +1192 -184
  183. package/dist/templates/react-app/docs/zh/why-no-globals.md +797 -0
  184. package/dist/templates/react-app/e2e/App.spec.ts +319 -0
  185. package/dist/templates/react-app/e2e/fixtures/base.fixture.ts +40 -0
  186. package/dist/templates/react-app/e2e/main.spec.ts +20 -0
  187. package/dist/templates/react-app/e2e/utils/test-helpers.ts +19 -0
  188. package/dist/templates/react-app/eslint.config.mjs +247 -0
  189. package/dist/templates/react-app/makes/eslint-utils.mjs +195 -0
  190. package/dist/templates/react-app/makes/generateTs2LocalesOptions.ts +26 -0
  191. package/dist/templates/react-app/package.json +31 -3
  192. package/dist/templates/react-app/playwright.config.ts +79 -0
  193. package/dist/templates/react-app/public/locales/en/common.json +190 -179
  194. package/dist/templates/react-app/public/locales/zh/common.json +190 -179
  195. package/dist/templates/react-app/src/App.tsx +15 -42
  196. package/dist/templates/react-app/src/base/apis/AiApi.ts +5 -5
  197. package/dist/templates/react-app/src/base/apis/feApi/FeApi.ts +1 -1
  198. package/dist/templates/react-app/src/base/apis/feApi/FeApiAdapter.ts +1 -1
  199. package/dist/templates/react-app/src/base/apis/feApi/FeApiBootstarp.ts +8 -8
  200. package/dist/templates/react-app/src/base/apis/feApi/FeApiType.ts +1 -1
  201. package/dist/templates/react-app/src/base/apis/userApi/UserApi.ts +6 -6
  202. package/dist/templates/react-app/src/base/apis/userApi/UserApiAdapter.ts +1 -1
  203. package/dist/templates/react-app/src/base/apis/userApi/UserApiBootstarp.ts +12 -14
  204. package/dist/templates/react-app/src/base/apis/userApi/UserApiType.ts +1 -1
  205. package/dist/templates/react-app/src/base/cases/DialogHandler.ts +5 -2
  206. package/dist/templates/react-app/src/base/cases/I18nKeyErrorPlugin.ts +3 -3
  207. package/dist/templates/react-app/src/base/cases/InversifyContainer.ts +3 -3
  208. package/dist/templates/react-app/src/base/cases/RequestLanguages.ts +2 -2
  209. package/dist/templates/react-app/src/base/cases/RequestLogger.ts +4 -4
  210. package/dist/templates/react-app/src/base/cases/RequestStatusCatcher.ts +1 -1
  211. package/dist/templates/react-app/src/base/cases/ResourceState.ts +23 -0
  212. package/dist/templates/react-app/src/base/cases/RouterLoader.ts +4 -4
  213. package/dist/templates/react-app/src/base/cases/TranslateI18nInterface.ts +26 -0
  214. package/dist/templates/react-app/src/base/port/ExecutorPageBridgeInterface.ts +2 -3
  215. package/dist/templates/react-app/src/base/port/I18nServiceInterface.ts +1 -1
  216. package/dist/templates/react-app/src/base/port/IOCInterface.ts +36 -0
  217. package/dist/templates/react-app/src/base/port/JSONStoragePageBridgeInterface.ts +2 -1
  218. package/dist/templates/react-app/src/base/port/ProcesserExecutorInterface.ts +1 -1
  219. package/dist/templates/react-app/src/base/port/RequestPageBridgeInterface.ts +2 -2
  220. package/dist/templates/react-app/src/base/port/RouteServiceInterface.ts +9 -5
  221. package/dist/templates/react-app/src/base/port/UserServiceInterface.ts +1 -1
  222. package/dist/templates/react-app/src/base/services/I18nService.ts +29 -29
  223. package/dist/templates/react-app/src/base/services/IdentifierService.ts +143 -0
  224. package/dist/templates/react-app/src/base/services/ProcesserExecutor.ts +3 -3
  225. package/dist/templates/react-app/src/base/services/RouteService.ts +27 -8
  226. package/dist/templates/react-app/src/base/services/UserService.ts +8 -8
  227. package/dist/templates/react-app/src/base/types/Page.ts +14 -2
  228. package/dist/templates/react-app/src/base/types/global.d.ts +1 -1
  229. package/dist/templates/react-app/src/core/IOC.ts +5 -46
  230. package/dist/templates/react-app/src/core/bootstraps/{BootstrapApp.ts → BootstrapClient.ts} +44 -17
  231. package/dist/templates/react-app/src/core/bootstraps/BootstrapsRegistry.ts +14 -7
  232. package/dist/templates/react-app/src/core/bootstraps/IocIdentifierTest.ts +1 -1
  233. package/dist/templates/react-app/src/core/bootstraps/PrintBootstrap.ts +1 -1
  234. package/dist/templates/react-app/src/core/clientIoc/ClientIOC.ts +40 -0
  235. package/dist/templates/react-app/src/core/{IocRegisterImpl.ts → clientIoc/ClientIOCRegister.ts} +35 -24
  236. package/dist/templates/react-app/src/core/globals.ts +9 -9
  237. package/dist/templates/react-app/src/main.tsx +4 -4
  238. package/dist/templates/react-app/src/pages/404.tsx +6 -3
  239. package/dist/templates/react-app/src/pages/500.tsx +5 -2
  240. package/dist/templates/react-app/src/pages/NoRouteFound.tsx +5 -0
  241. package/dist/templates/react-app/src/pages/auth/Layout.tsx +9 -6
  242. package/dist/templates/react-app/src/pages/auth/LoginPage.tsx +46 -56
  243. package/dist/templates/react-app/src/pages/auth/RegisterPage.tsx +46 -58
  244. package/dist/templates/react-app/src/pages/base/AboutPage.tsx +35 -40
  245. package/dist/templates/react-app/src/pages/base/ExecutorPage.tsx +51 -51
  246. package/dist/templates/react-app/src/pages/base/HomePage.tsx +14 -15
  247. package/dist/templates/react-app/src/pages/base/IdentifierPage.tsx +70 -11
  248. package/dist/templates/react-app/src/pages/base/JSONStoragePage.tsx +24 -25
  249. package/dist/templates/react-app/src/pages/base/Layout.tsx +2 -2
  250. package/dist/templates/react-app/src/pages/base/RedirectPathname.tsx +3 -2
  251. package/dist/templates/react-app/src/pages/base/RequestPage.tsx +41 -59
  252. package/dist/templates/react-app/src/styles/css/antd-themes/{_default.css → _common/_default.css} +85 -0
  253. package/dist/templates/react-app/src/styles/css/antd-themes/{dark.css → _common/dark.css} +99 -0
  254. package/dist/templates/react-app/src/styles/css/antd-themes/_common/index.css +3 -0
  255. package/dist/templates/react-app/src/styles/css/antd-themes/{pink.css → _common/pink.css} +86 -0
  256. package/dist/templates/react-app/src/styles/css/antd-themes/index.css +4 -3
  257. package/dist/templates/react-app/src/styles/css/antd-themes/menu/_default.css +108 -0
  258. package/dist/templates/react-app/src/styles/css/antd-themes/menu/dark.css +67 -0
  259. package/dist/templates/react-app/src/styles/css/antd-themes/menu/index.css +3 -0
  260. package/dist/templates/react-app/src/styles/css/antd-themes/menu/pink.css +67 -0
  261. package/dist/templates/react-app/src/styles/css/antd-themes/pagination/_default.css +34 -0
  262. package/dist/templates/react-app/src/styles/css/antd-themes/pagination/dark.css +31 -0
  263. package/dist/templates/react-app/src/styles/css/antd-themes/pagination/index.css +3 -0
  264. package/dist/templates/react-app/src/styles/css/antd-themes/pagination/pink.css +36 -0
  265. package/dist/templates/react-app/src/styles/css/antd-themes/table/_default.css +44 -0
  266. package/dist/templates/react-app/src/styles/css/antd-themes/table/dark.css +43 -0
  267. package/dist/templates/react-app/src/styles/css/antd-themes/table/index.css +3 -0
  268. package/dist/templates/react-app/src/styles/css/antd-themes/table/pink.css +43 -0
  269. package/dist/templates/react-app/src/styles/css/page.css +4 -3
  270. package/dist/templates/react-app/src/styles/css/themes/_default.css +1 -0
  271. package/dist/templates/react-app/src/styles/css/themes/dark.css +1 -0
  272. package/dist/templates/react-app/src/styles/css/themes/pink.css +1 -0
  273. package/dist/templates/react-app/src/styles/css/zIndex.css +1 -1
  274. package/dist/templates/react-app/src/uikit/bridges/ExecutorPageBridge.ts +3 -3
  275. package/dist/templates/react-app/src/uikit/bridges/JSONStoragePageBridge.ts +2 -2
  276. package/dist/templates/react-app/src/uikit/bridges/NavigateBridge.ts +1 -1
  277. package/dist/templates/react-app/src/uikit/bridges/RequestPageBridge.ts +3 -3
  278. package/dist/templates/react-app/src/uikit/components/AppRouterProvider.tsx +35 -0
  279. package/dist/templates/react-app/src/uikit/components/BaseHeader.tsx +15 -11
  280. package/dist/templates/react-app/src/uikit/components/BaseRouteProvider.tsx +14 -11
  281. package/dist/templates/react-app/src/uikit/components/BaseRouteSeo.tsx +18 -0
  282. package/dist/templates/react-app/src/uikit/components/BootstrapsProvider.tsx +13 -0
  283. package/dist/templates/react-app/src/uikit/components/ClientSeo.tsx +62 -0
  284. package/dist/templates/react-app/src/uikit/components/ComboProvider.tsx +38 -0
  285. package/dist/templates/react-app/src/uikit/components/LanguageSwitcher.tsx +48 -27
  286. package/dist/templates/react-app/src/uikit/components/Loading.tsx +4 -2
  287. package/dist/templates/react-app/src/uikit/components/LocaleLink.tsx +4 -5
  288. package/dist/templates/react-app/src/uikit/components/LogoutButton.tsx +34 -11
  289. package/dist/templates/react-app/src/uikit/components/ProcessExecutorProvider.tsx +9 -5
  290. package/dist/templates/react-app/src/uikit/components/RouterRenderComponent.tsx +6 -3
  291. package/dist/templates/react-app/src/uikit/components/ThemeSwitcher.tsx +97 -40
  292. package/dist/templates/react-app/src/uikit/components/UserAuthProvider.tsx +5 -5
  293. package/dist/templates/react-app/src/uikit/components/With.tsx +17 -0
  294. package/dist/templates/react-app/src/uikit/contexts/BaseRouteContext.ts +17 -11
  295. package/dist/templates/react-app/src/uikit/contexts/IOCContext.ts +13 -0
  296. package/dist/templates/react-app/src/uikit/hooks/useAppTranslation.ts +26 -0
  297. package/dist/templates/react-app/src/uikit/hooks/useI18nGuard.ts +8 -11
  298. package/dist/templates/react-app/src/uikit/hooks/useI18nInterface.ts +25 -0
  299. package/dist/templates/react-app/src/uikit/hooks/useIOC.ts +35 -0
  300. package/dist/templates/react-app/src/uikit/hooks/useNavigateBridge.ts +3 -3
  301. package/dist/templates/react-app/src/uikit/hooks/useStrictEffect.ts +0 -1
  302. package/dist/templates/react-app/tsconfig.e2e.json +21 -0
  303. package/dist/templates/react-app/tsconfig.json +8 -1
  304. package/dist/templates/react-app/tsconfig.node.json +1 -1
  305. package/dist/templates/react-app/tsconfig.test.json +3 -1
  306. package/dist/templates/react-app/vite.config.ts +50 -34
  307. package/package.json +2 -1
  308. package/dist/configs/react-app/eslint.config.js +0 -94
  309. package/dist/templates/next-app/config/Identifier/common.error.ts +0 -41
  310. package/dist/templates/next-app/config/Identifier/common.ts +0 -69
  311. package/dist/templates/next-app/config/Identifier/page.about.ts +0 -181
  312. package/dist/templates/next-app/config/Identifier/page.admin.ts +0 -48
  313. package/dist/templates/next-app/config/Identifier/page.executor.ts +0 -272
  314. package/dist/templates/next-app/config/Identifier/page.identifiter.ts +0 -39
  315. package/dist/templates/next-app/config/Identifier/page.jsonStorage.ts +0 -72
  316. package/dist/templates/next-app/config/Identifier/page.request.ts +0 -182
  317. package/dist/templates/next-app/src/base/cases/ChatAction.ts +0 -21
  318. package/dist/templates/next-app/src/base/cases/FocusBarAction.ts +0 -36
  319. package/dist/templates/next-app/src/base/cases/RequestState.ts +0 -20
  320. package/dist/templates/next-app/src/base/port/AdminPageInterface.ts +0 -85
  321. package/dist/templates/next-app/src/base/port/AsyncStateInterface.ts +0 -7
  322. package/dist/templates/next-app/src/base/services/AdminUserService.ts +0 -45
  323. package/dist/templates/next-app/src/uikit/components/ChatRoot.tsx +0 -17
  324. package/dist/templates/next-app/src/uikit/components/chat/ChatActionInterface.ts +0 -30
  325. package/dist/templates/next-app/src/uikit/components/chat/ChatFocusBar.tsx +0 -65
  326. package/dist/templates/next-app/src/uikit/components/chat/ChatMessages.tsx +0 -59
  327. package/dist/templates/next-app/src/uikit/components/chat/ChatWrap.tsx +0 -28
  328. package/dist/templates/next-app/src/uikit/components/chat/FocusBarActionInterface.ts +0 -19
  329. package/dist/templates/next-app/src/uikit/hook/useMountedClient.ts +0 -17
  330. package/dist/templates/next-app/src/uikit/hook/useStore.ts +0 -15
  331. package/dist/templates/react-app/__tests__/__mocks__/I18nService.ts +0 -13
  332. package/dist/templates/react-app/__tests__/src/App.test.tsx +0 -139
  333. package/dist/templates/react-app/config/Identifier/page.identifiter.ts +0 -39
  334. package/dist/templates/react-app/config/i18n.ts +0 -15
  335. package/dist/templates/react-app/docs/en/project-structure.md +0 -434
  336. package/dist/templates/react-app/docs/zh/project-structure.md +0 -434
  337. package/dist/templates/react-app/src/base/cases/RequestState.ts +0 -20
  338. package/dist/templates/react-app/src/base/port/AsyncStateInterface.ts +0 -7
  339. package/dist/templates/react-app/src/uikit/hooks/useDocumentTitle.ts +0 -15
  340. package/dist/templates/react-app/src/uikit/hooks/useStore.ts +0 -15
@@ -0,0 +1,102 @@
1
+ /**
2
+ * @description ErrorIdentifier page main title
3
+ * @localZh 错误标识符
4
+ * @localEn Error Identifier
5
+ */
6
+ export const PAGE_IDENTIFITER_TITLE = 'page_identifier:title';
7
+
8
+ /**
9
+ * @description ErrorIdentifier page main title
10
+ * @localZh 标识符描述
11
+ * @localEn Identifier Description
12
+ */
13
+ export const PAGE_IDENTIFITER_DESCRIPTION = 'page_identifier:description';
14
+
15
+ /**
16
+ * @description ErrorIdentifier page keywords
17
+ * @localZh 标识符, 错误标识符
18
+ * @localEn Identifier, Error Identifier
19
+ */
20
+ export const PAGE_IDENTIFITER_KEYWORDS = 'page_identifier:keywords';
21
+
22
+ /**
23
+ * @description ErrorIdentifier page description
24
+ * @localZh 来自 '@config/Identifier/error' 的标识符
25
+ * @localEn Identifier From: '@config/Identifier/error'
26
+ */
27
+ export const PAGE_IDENTIFITER_SOURCE_DESCRIPTION =
28
+ 'page_identifier:source_description';
29
+
30
+ /**
31
+ * @description ErrorIdentifier help section title
32
+ * @localZh 需要帮助?
33
+ * @localEn Need Help?
34
+ */
35
+ export const PAGE_IDENTIFITER_HELP_TITLE = 'page_identifier:help.title';
36
+
37
+ /**
38
+ * @description ErrorIdentifier help section description
39
+ * @localZh 如果您在使用错误标识符时遇到问题,请联系我们的支持团队
40
+ * @localEn If you encounter any issues while using error identifiers, please contact our support team
41
+ */
42
+ export const PAGE_IDENTIFITER_HELP_DESCRIPTION =
43
+ 'page_identifier:help.description';
44
+
45
+ /**
46
+ * @description ErrorIdentifier contact support button
47
+ * @localZh 联系支持
48
+ * @localEn Contact Support
49
+ */
50
+ export const PAGE_IDENTIFITER_CONTACT_SUPPORT =
51
+ 'page_identifier:contact_support';
52
+
53
+ /**
54
+ * @description ErrorIdentifier table title
55
+ * @localZh 标识符表格标题
56
+ * @localEn Identifier Table Title
57
+ */
58
+ export const PAGE_IDENTIFITER_TABLE_TITLE = 'page_identifier:table.title';
59
+
60
+ /**
61
+ * @description ErrorIdentifier table index
62
+ * @localZh 标识符表格索引
63
+ * @localEn Identifier Table Index
64
+ */
65
+ export const PAGE_IDENTIFITER_TABLE_INDEX = 'page_identifier:table.index';
66
+
67
+ /**
68
+ * @description ErrorIdentifier table description
69
+ * @localZh 标识符表格描述
70
+ * @localEn Identifier Table Description
71
+ */
72
+ export const PAGE_IDENTIFITER_TABLE_DESCRIPTION =
73
+ 'page_identifier:table.description';
74
+
75
+ /**
76
+ * @description ErrorIdentifier table id
77
+ * @localZh 标识符表格id
78
+ * @localEn Identifier Table Id
79
+ */
80
+ export const PAGE_IDENTIFITER_TABLE_ID = 'page_identifier:table.id';
81
+
82
+ /**
83
+ * @description ErrorIdentifier table key
84
+ * @localZh 标识符表格key
85
+ * @localEn Identifier Table Key
86
+ */
87
+ export const PAGE_IDENTIFITER_TABLE_KEY = 'page_identifier:table.key';
88
+
89
+ /**
90
+ * @description ErrorIdentifier table locale value
91
+ * @localZh 标识符表格locale value
92
+ * @localEn Identifier Table Locale Value
93
+ */
94
+ export const PAGE_IDENTIFITER_TABLE_LOCALE_VALUE =
95
+ 'page_identifier:table.locale_value';
96
+
97
+ /**
98
+ * @description ErrorIdentifier table label
99
+ * @localZh 标识符表格label
100
+ * @localEn Identifier Table Label
101
+ */
102
+ export const PAGE_IDENTIFITER_TABLE_LABEL = 'page_identifier:table.label';
@@ -3,68 +3,75 @@
3
3
  * @localZh JSONStorage 页面
4
4
  * @localEn JSONStorage Page
5
5
  */
6
- export const PAGE_JSONSTORAGE_TITLE = 'page.jsonstorage.title';
6
+ export const PAGE_JSONSTORAGE_TITLE = 'page_jsonstorage:title';
7
7
 
8
8
  /**
9
9
  * @description JSONStorage page description
10
10
  * @localZh 使用 JSONStorage 进行数据存储和管理
11
11
  * @localEn Use JSONStorage for data storage and management
12
12
  */
13
- export const PAGE_JSONSTORAGE_DESCRIPTION = 'page.jsonstorage.description';
13
+ export const PAGE_JSONSTORAGE_DESCRIPTION = 'page_jsonstorage:description';
14
+
15
+ /**
16
+ * @description JSONStorage page keywords
17
+ * @localZh JSONStorage, JSONStorage 页面
18
+ * @localEn JSONStorage, JSONStorage Page
19
+ */
20
+ export const PAGE_JSONSTORAGE_KEYWORDS = 'page_jsonstorage:keywords';
14
21
 
15
22
  /**
16
23
  * @description JSONStorage page main title
17
24
  * @localZh JSONStorage 演示
18
25
  * @localEn JSONStorage Demo
19
26
  */
20
- export const PAGE_JSONSTORAGE_MAIN_TITLE = 'page.jsonstorage.main_title';
27
+ export const PAGE_JSONSTORAGE_MAIN_TITLE = 'page_jsonstorage:main_title';
21
28
  /**
22
29
  * @description JSONStorage permanent storage test title
23
30
  * @localZh 永久存储测试
24
31
  * @localEn Permanent Storage Test
25
32
  */
26
33
  export const PAGE_JSONSTORAGE_PERMANENT_TITLE =
27
- 'page.jsonstorage.permanent_title';
34
+ 'page_jsonstorage:permanent_title';
28
35
 
29
36
  /**
30
37
  * @description JSONStorage expire time test title
31
38
  * @localZh 过期时间测试
32
39
  * @localEn Expire Time Test
33
40
  */
34
- export const PAGE_JSONSTORAGE_EXPIRE_TITLE = 'page.jsonstorage.expire_title';
41
+ export const PAGE_JSONSTORAGE_EXPIRE_TITLE = 'page_jsonstorage:expire_title';
35
42
  /**
36
43
  * @description JSONStorage request timeout title
37
44
  * @localZh 请求超时时间设置
38
45
  * @localEn Request Timeout Setting
39
46
  */
40
- export const PAGE_JSONSTORAGE_TIMEOUT_TITLE = 'page.jsonstorage.timeout_title';
47
+ export const PAGE_JSONSTORAGE_TIMEOUT_TITLE = 'page_jsonstorage:timeout_title';
41
48
  /**
42
49
  * @description JSONStorage format title template
43
50
  * @localZh 测试 key: ${key}, 随机值范围: ${min}~${max}
44
51
  * @localEn Test key: ${key}, Random value range: ${min}~${max}
45
52
  */
46
- export const PAGE_JSONSTORAGE_FORMAT_TITLE = 'page.jsonstorage.format_title';
53
+ export const PAGE_JSONSTORAGE_FORMAT_TITLE = 'page_jsonstorage:format_title';
47
54
  /**
48
55
  * @description JSONStorage set random value button
49
56
  * @localZh 设置随机值
50
57
  * @localEn Set Random Value
51
58
  */
52
- export const PAGE_JSONSTORAGE_SET_RANDOM = 'page.jsonstorage.set_random';
59
+ export const PAGE_JSONSTORAGE_SET_RANDOM = 'page_jsonstorage:set_random';
53
60
  /**
54
61
  * @description JSONStorage current value label
55
62
  * @localZh 当前值
56
63
  * @localEn Current Value
57
64
  */
58
- export const PAGE_JSONSTORAGE_CURRENT_VALUE = 'page.jsonstorage.current_value';
65
+ export const PAGE_JSONSTORAGE_CURRENT_VALUE = 'page_jsonstorage:current_value';
59
66
  /**
60
67
  * @description JSONStorage set expire time button
61
68
  * @localZh 设置随机值(带过期时间)
62
69
  * @localEn Set Random Value (with expire time)
63
70
  */
64
- export const PAGE_JSONSTORAGE_SET_EXPIRE = 'page.jsonstorage.set_expire';
71
+ export const PAGE_JSONSTORAGE_SET_EXPIRE = 'page_jsonstorage:set_expire';
65
72
  /**
66
73
  * @description JSONStorage milliseconds unit
67
74
  * @localZh 毫秒
68
75
  * @localEn ms
69
76
  */
70
- export const PAGE_JSONSTORAGE_MS = 'page.jsonstorage.ms';
77
+ export const PAGE_JSONSTORAGE_MS = 'page_jsonstorage:ms';
@@ -3,150 +3,160 @@
3
3
  * @localZh 登录
4
4
  * @localEn Login
5
5
  */
6
- export const PAGE_LOGIN_TITLE = 'page.login.title';
6
+ export const PAGE_LOGIN_TITLE = 'page_login:title';
7
7
  /**
8
8
  * @description Login page description
9
9
  * @localZh 登录页面描述
10
10
  * @localEn Login Page Description
11
11
  */
12
- export const PAGE_LOGIN_DESCRIPTION = 'page.login.description';
12
+ export const PAGE_LOGIN_DESCRIPTION = 'page_login:description';
13
+
14
+ /**
15
+ * @description Login page keywords
16
+ * @localZh Login, Login Page
17
+ * @localEn Login, Login Page
18
+ */
19
+ export const PAGE_LOGIN_KEYWORDS = 'page_login:keywords';
20
+
13
21
  /**
14
22
  * @description Login page title
15
23
  * @localZh 登录
16
24
  * @localEn Login
17
25
  */
18
- export const LOGIN_TITLE = 'login.title';
26
+ export const PAGE_LOGIN_TITLE2 = 'page_login:title';
19
27
  /**
20
28
  * @description Email field label
21
29
  * @localZh 邮箱
22
30
  * @localEn Email
23
31
  */
24
- export const LOGIN_EMAIL = 'login.email';
32
+ export const PAGE_LOGIN_EMAIL = 'page_login:email';
25
33
  /**
26
34
  * @description Username field label
27
35
  * @localZh 用户名
28
36
  * @localEn Username
29
37
  */
30
- export const LOGIN_USERNAME = 'login.username';
38
+ export const PAGE_LOGIN_USERNAME = 'page_login:username';
31
39
  /**
32
40
  * @description Password field label
33
41
  * @localZh 密码
34
42
  * @localEn Password
35
43
  */
36
- export const LOGIN_PASSWORD = 'login.password';
44
+ export const PAGE_LOGIN_PASSWORD = 'page_login:password';
37
45
  /**
38
46
  * @description Login button text
39
47
  * @localZh 登录
40
48
  * @localEn Login
41
49
  */
42
- export const LOGIN_BUTTON = 'login.login';
50
+ export const PAGE_LOGIN_BUTTON = 'page_login:login';
43
51
  /**
44
52
  * @description Login page description
45
53
  * @localZh 欢迎来到未来学习
46
54
  * @localEn Welcome to the future of learning
47
55
  */
48
- export const LOGIN_WELCOME = 'login.welcome';
56
+ export const PAGE_LOGIN_WELCOME = 'page_login:welcome';
49
57
  /**
50
58
  * @description Login page description
51
59
  * @localZh 解锁个性化 AI 驱动的学习体验,加速您的知识旅程。
52
60
  * @localEn Unlock personalized AI-powered learning experiences designed to accelerate your knowledge journey.
53
61
  */
54
- export const LOGIN_SUBTITLE = 'login.subtitle';
62
+ export const PAGE_LOGIN_SUBTITLE = 'page_login:subtitle';
55
63
  /**
56
64
  * @description Login page forgot password text
57
65
  * @localZh 忘记密码?
58
66
  * @localEn Forgot your password?
59
67
  */
60
- export const LOGIN_FORGOT_PASSWORD = 'login.forgot_password';
68
+ export const PAGE_LOGIN_FORGOT_PASSWORD = 'page_login:forgot_password';
61
69
  /**
62
70
  * @description Login page continue with text
63
71
  * @localZh 或继续使用
64
72
  * @localEn or continue with
65
73
  */
66
- export const LOGIN_CONTINUE_WITH = 'login.continue_with';
74
+ export const PAGE_LOGIN_CONTINUE_WITH = 'page_login:continue_with';
67
75
  /**
68
76
  * @description Login with Google button text
69
77
  * @localZh 使用 Google 登录
70
78
  * @localEn Sign in with Google
71
79
  */
72
- export const LOGIN_WITH_GOOGLE = 'login.with_google';
80
+ export const PAGE_LOGIN_WITH_GOOGLE = 'page_login:with_google';
73
81
  /**
74
82
  * @description Login page no account text
75
83
  * @localZh 还没有账号?
76
84
  * @localEn Don't have an account?
77
85
  */
78
- export const LOGIN_NO_ACCOUNT = 'login.no_account';
86
+ export const PAGE_LOGIN_NO_ACCOUNT = 'page_login:no_account';
79
87
  /**
80
88
  * @description Login page create account link text
81
89
  * @localZh 在此创建
82
90
  * @localEn Create one here
83
91
  */
84
- export const LOGIN_CREATE_ACCOUNT = 'login.create_account';
92
+ export const PAGE_LOGIN_CREATE_ACCOUNT = 'page_login:create_account';
85
93
  /**
86
94
  * @description Login page email validation message
87
95
  * @localZh 请输入您的邮箱!
88
96
  * @localEn Please input your email!
89
97
  */
90
- export const LOGIN_EMAIL_REQUIRED = 'login.email_required';
98
+ export const PAGE_LOGIN_EMAIL_REQUIRED = 'page_login:email_required';
91
99
  /**
92
100
  * @description Login page password validation message
93
101
  * @localZh 请输入您的密码!
94
102
  * @localEn Please input your password!
95
103
  */
96
- export const LOGIN_PASSWORD_REQUIRED = 'login.password_required';
104
+ export const PAGE_LOGIN_PASSWORD_REQUIRED = 'page_login:password_required';
97
105
  /**
98
106
  * @description Login page feature item - AI learning paths
99
107
  * @localZh AI驱动的个性化学习路径
100
108
  * @localEn AI-powered personalized learning paths
101
109
  */
102
- export const LOGIN_FEATURE_AI_PATHS = 'login.feature.ai_paths';
110
+ export const PAGE_LOGIN_FEATURE_AI_PATHS = 'page_login:feature.ai_paths';
103
111
  /**
104
112
  * @description Login page feature item - Smart recommendations
105
113
  * @localZh 智能内容推荐
106
114
  * @localEn Smart content recommendations
107
115
  */
108
- export const LOGIN_FEATURE_SMART_RECOMMENDATIONS =
109
- 'login.feature.smart_recommendations';
116
+ export const PAGE_LOGIN_FEATURE_SMART_RECOMMENDATIONS =
117
+ 'page_login:feature.smart_recommendations';
110
118
  /**
111
119
  * @description Login page feature item - Progress tracking
112
120
  * @localZh 实时进度追踪
113
121
  * @localEn Real-time progress tracking
114
122
  */
115
- export const LOGIN_FEATURE_PROGRESS_TRACKING =
116
- 'login.feature.progress_tracking';
123
+ export const PAGE_LOGIN_FEATURE_PROGRESS_TRACKING =
124
+ 'page_login:feature.progress_tracking';
117
125
  /**
118
126
  * @description Login page email input title
119
127
  * @localZh 输入邮箱
120
128
  * @localEn Enter email
121
129
  */
122
- export const LOGIN_EMAIL_TITLE = 'login.email.title';
130
+ export const PAGE_LOGIN_EMAIL_TITLE = 'page_login:email.title';
123
131
  /**
124
132
  * @description Login page password input title
125
133
  * @localZh 输入密码
126
134
  * @localEn Enter password
127
135
  */
128
- export const LOGIN_PASSWORD_TITLE = 'login.password.title';
136
+ export const PAGE_LOGIN_PASSWORD_TITLE = 'page_login:password.title';
129
137
  /**
130
138
  * @description Login page forgot password link title
131
139
  * @localZh 重置密码
132
140
  * @localEn Reset password
133
141
  */
134
- export const LOGIN_FORGOT_PASSWORD_TITLE = 'login.forgot_password.title';
142
+ export const PAGE_LOGIN_FORGOT_PASSWORD_TITLE =
143
+ 'page_login:forgot_password.title';
135
144
  /**
136
145
  * @description Login page submit button title
137
146
  * @localZh 登录账号
138
147
  * @localEn Sign in to account
139
148
  */
140
- export const LOGIN_BUTTON_TITLE = 'login.button.title';
149
+ export const PAGE_LOGIN_BUTTON_TITLE = 'page_login:button.title';
141
150
  /**
142
151
  * @description Login page Google sign in button title
143
152
  * @localZh 使用Google账号登录
144
153
  * @localEn Sign in with Google account
145
154
  */
146
- export const LOGIN_WITH_GOOGLE_TITLE = 'login.with_google.title';
155
+ export const PAGE_LOGIN_WITH_GOOGLE_TITLE = 'page_login:with_google.title';
147
156
  /**
148
157
  * @description Login page create account link title
149
158
  * @localZh 创建新账号
150
159
  * @localEn Create new account
151
160
  */
152
- export const LOGIN_CREATE_ACCOUNT_TITLE = 'login.create_account.title';
161
+ export const PAGE_LOGIN_CREATE_ACCOUNT_TITLE =
162
+ 'page_login:create_account.title';
@@ -3,145 +3,157 @@
3
3
  * @localZh 创建账号
4
4
  * @localEn Create Account
5
5
  */
6
- export const PAGE_REGISTER_TITLE = 'page.register.title';
6
+ export const PAGE_REGISTER_TITLE = 'page_register:title';
7
7
 
8
8
  /**
9
9
  * @description Register page description
10
10
  * @localZh 创建账号页面描述
11
11
  * @localEn Create Account Page Description
12
12
  */
13
- export const PAGE_REGISTER_DESCRIPTION = 'page.register.description';
13
+ export const PAGE_REGISTER_DESCRIPTION = 'page_register:description';
14
+
15
+ /**
16
+ * @description Register page keywords
17
+ * @localZh Register, Register Page
18
+ * @localEn Register, Register Page
19
+ */
20
+ export const PAGE_REGISTER_KEYWORDS = 'page_register:keywords';
14
21
 
15
22
  /**
16
23
  * @description Register page title
17
24
  * @localZh 创建账号
18
25
  * @localEn Create Account
19
26
  */
20
- export const REGISTER_TITLE = 'register.title';
27
+ export const PAGE_REGISTER_TITLE2 = 'page_register:title';
21
28
  /**
22
29
  * @description Register page subtitle
23
30
  * @localZh 开始您的学习之旅
24
31
  * @localEn Start your learning journey
25
32
  */
26
- export const REGISTER_SUBTITLE = 'register.subtitle';
33
+ export const PAGE_REGISTER_SUBTITLE = 'page_register:subtitle';
27
34
  /**
28
35
  * @description Register page username field
29
36
  * @localZh 用户名
30
37
  * @localEn Username
31
38
  */
32
- export const REGISTER_USERNAME = 'register.username';
39
+ export const PAGE_REGISTER_USERNAME = 'page_register:username';
33
40
  /**
34
41
  * @description Register page username required message
35
42
  * @localZh 请输入用户名!
36
43
  * @localEn Please input your username!
37
44
  */
38
- export const REGISTER_USERNAME_REQUIRED = 'register.username_required';
45
+ export const PAGE_REGISTER_USERNAME_REQUIRED =
46
+ 'page_register:username_required';
39
47
  /**
40
48
  * @description Register page email field
41
49
  * @localZh 邮箱
42
50
  * @localEn Email
43
51
  */
44
- export const REGISTER_EMAIL = 'register.email';
52
+ export const PAGE_REGISTER_EMAIL = 'page_register:email';
45
53
  /**
46
54
  * @description Register page email required message
47
55
  * @localZh 请输入邮箱!
48
56
  * @localEn Please input your email!
49
57
  */
50
- export const REGISTER_EMAIL_REQUIRED = 'register.email_required';
58
+ export const PAGE_REGISTER_EMAIL_REQUIRED = 'page_register:email_required';
51
59
  /**
52
60
  * @description Register page password field
53
61
  * @localZh 密码
54
62
  * @localEn Password
55
63
  */
56
- export const REGISTER_PASSWORD = 'register.password';
64
+ export const PAGE_REGISTER_PASSWORD = 'page_register:password';
57
65
  /**
58
66
  * @description Register page password required message
59
67
  * @localZh 请输入密码!
60
68
  * @localEn Please input your password!
61
69
  */
62
- export const REGISTER_PASSWORD_REQUIRED = 'register.password_required';
70
+ export const PAGE_REGISTER_PASSWORD_REQUIRED =
71
+ 'page_register:password_required';
63
72
  /**
64
73
  * @description Register page confirm password field
65
74
  * @localZh 确认密码
66
75
  * @localEn Confirm Password
67
76
  */
68
- export const REGISTER_CONFIRM_PASSWORD = 'register.confirm_password';
77
+ export const PAGE_REGISTER_CONFIRM_PASSWORD = 'page_register:confirm_password';
69
78
  /**
70
79
  * @description Register page confirm password required message
71
80
  * @localZh 请确认密码!
72
81
  * @localEn Please confirm your password!
73
82
  */
74
- export const REGISTER_CONFIRM_PASSWORD_REQUIRED =
75
- 'register.confirm_password_required';
83
+ export const PAGE_REGISTER_CONFIRM_PASSWORD_REQUIRED =
84
+ 'page_register:confirm_password_required';
76
85
  /**
77
86
  * @description Register page passwords don't match message
78
87
  * @localZh 两次输入的密码不匹配!
79
88
  * @localEn The passwords you entered don't match!
80
89
  */
81
- export const REGISTER_PASSWORD_MISMATCH = 'register.password_mismatch';
90
+ export const PAGE_REGISTER_PASSWORD_MISMATCH =
91
+ 'page_register:password_mismatch';
82
92
  /**
83
93
  * @description Register page submit button
84
94
  * @localZh 注册
85
95
  * @localEn Register
86
96
  */
87
- export const REGISTER_BUTTON = 'register.button';
97
+ export const PAGE_REGISTER_BUTTON = 'page_register:button';
88
98
  /**
89
99
  * @description Register page terms and conditions text
90
100
  * @localZh 注册即表示您同意我们的
91
101
  * @localEn By registering, you agree to our
92
102
  */
93
- export const REGISTER_TERMS_PREFIX = 'register.terms_prefix';
103
+ export const PAGE_REGISTER_TERMS_PREFIX = 'page_register:terms_prefix';
94
104
  /**
95
105
  * @description Register page terms and conditions link
96
106
  * @localZh 服务条款
97
107
  * @localEn Terms of Service
98
108
  */
99
- export const REGISTER_TERMS_LINK = 'register.terms_link';
109
+ export const PAGE_REGISTER_TERMS_LINK = 'page_register:terms_link';
100
110
  /**
101
111
  * @description Register page privacy policy text
102
112
  * @localZh 和
103
113
  * @localEn and
104
114
  */
105
- export const REGISTER_TERMS_AND = 'register.terms_and';
115
+ export const PAGE_REGISTER_TERMS_AND = 'page_register:terms_and';
106
116
  /**
107
117
  * @description Register page privacy policy link
108
118
  * @localZh 隐私政策
109
119
  * @localEn Privacy Policy
110
120
  */
111
- export const REGISTER_PRIVACY_LINK = 'register.privacy_link';
121
+ export const PAGE_REGISTER_PRIVACY_LINK = 'page_register:privacy_link';
112
122
  /**
113
123
  * @description Register page have account text
114
124
  * @localZh 已有账号?
115
125
  * @localEn Already have an account?
116
126
  */
117
- export const REGISTER_HAVE_ACCOUNT = 'register.have_account';
127
+ export const PAGE_REGISTER_HAVE_ACCOUNT = 'page_register:have_account';
118
128
  /**
119
129
  * @description Register page login link
120
130
  * @localZh 登录
121
131
  * @localEn Sign in
122
132
  */
123
- export const REGISTER_LOGIN_LINK = 'register.login_link';
133
+ export const PAGE_REGISTER_LOGIN_LINK = 'page_register:login_link';
124
134
  /**
125
135
  * @description Register page feature item - Personalized Learning
126
136
  * @localZh 个性化学习体验
127
137
  * @localEn Personalized Learning Experience
128
138
  */
129
- export const REGISTER_FEATURE_PERSONALIZED = 'register.feature.personalized';
139
+ export const PAGE_REGISTER_FEATURE_PERSONALIZED =
140
+ 'page_register:feature.personalized';
130
141
  /**
131
142
  * @description Register page feature item - Expert Support
132
143
  * @localZh 专家支持和指导
133
144
  * @localEn Expert Support and Guidance
134
145
  */
135
- export const REGISTER_FEATURE_SUPPORT = 'register.feature.support';
146
+ export const PAGE_REGISTER_FEATURE_SUPPORT = 'page_register:feature.support';
136
147
  /**
137
148
  * @description Register page feature item - Learning Community
138
149
  * @localZh 活跃的学习社区
139
150
  * @localEn Active Learning Community
140
151
  */
141
- export const REGISTER_FEATURE_COMMUNITY = 'register.feature.community';
152
+ export const PAGE_REGISTER_FEATURE_COMMUNITY =
153
+ 'page_register:feature.community';
142
154
  /**
143
155
  * @description Register page terms agreement required message
144
156
  * @localZh 请同意服务条款和隐私政策
145
157
  * @localEn Please agree to the Terms of Service and Privacy Policy
146
158
  */
147
- export const REGISTER_TERMS_REQUIRED = 'register.terms_required';
159
+ export const PAGE_REGISTER_TERMS_REQUIRED = 'page_register:terms_required';