nolo-cli 0.1.39 → 0.1.41

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 (438) hide show
  1. package/README.md +4 -4
  2. package/agent-runtime/dialogWritePlan.ts +39 -0
  3. package/agent-runtime/hostAdapter.ts +4 -0
  4. package/agent-runtime/hybridRecordStore.ts +5 -3
  5. package/agent-runtime/index.ts +15 -0
  6. package/agent-runtime/localLoop.ts +87 -7
  7. package/agent-runtime/localToolPolicy.ts +2 -13
  8. package/agent-runtime/localWorkspaceTools.ts +42 -110
  9. package/agent-runtime/runtimeToolPolicy.ts +2 -11
  10. package/agent-runtime/runtimeToolSurface.ts +198 -0
  11. package/agent-runtime/types.ts +1 -0
  12. package/agentAliases.ts +2 -1
  13. package/agentRunCommand.ts +10 -32
  14. package/agentRuntimeLocal.ts +1 -0
  15. package/ai/agent/_executeModel.ts +146 -0
  16. package/ai/agent/agentSlice.ts +556 -1
  17. package/ai/agent/appWorkingMemory.ts +126 -0
  18. package/ai/agent/buildEditingContext.ts +378 -0
  19. package/ai/agent/buildSystemPrompt.ts +585 -0
  20. package/ai/agent/canvasEditingContext.ts +49 -0
  21. package/ai/agent/cleanAgentMessages.ts +140 -0
  22. package/ai/agent/cliChatClient.ts +153 -0
  23. package/ai/agent/cliExecutor.ts +314 -40
  24. package/ai/agent/contextCompiler.ts +107 -0
  25. package/ai/agent/contextLayerContract.ts +44 -0
  26. package/ai/agent/createAgentSchema.ts +272 -0
  27. package/ai/agent/currentTimeContext.ts +65 -0
  28. package/ai/agent/executeToolCall.ts +58 -0
  29. package/ai/agent/fetchAgentContexts.ts +42 -0
  30. package/ai/agent/generatePrompt.ts +3 -0
  31. package/ai/agent/getFullChatContextKeys.ts +168 -0
  32. package/ai/agent/guidedCreation/capabilities.ts +84 -0
  33. package/ai/agent/guidedCreation/types.ts +38 -0
  34. package/ai/agent/isLiveAudioOnlyAgent.ts +26 -0
  35. package/ai/agent/liveAudioModel.ts +2 -0
  36. package/ai/agent/pageBuilderHandoffRules.ts +75 -0
  37. package/ai/agent/persistMessageWithFixedId.ts +37 -0
  38. package/ai/agent/planSlice.ts +259 -0
  39. package/ai/agent/referenceUtils.ts +229 -0
  40. package/ai/agent/runAgentBackground.ts +310 -0
  41. package/ai/agent/runAgentClientLoop.ts +164 -0
  42. package/ai/agent/runtimeGuidance.ts +116 -0
  43. package/ai/agent/serverOrigin.ts +7 -0
  44. package/ai/agent/startParallelAgentStreams.ts +424 -0
  45. package/ai/agent/startupProtocol.ts +53 -0
  46. package/ai/agent/streamAgentChatTurn.ts +2001 -0
  47. package/ai/agent/streamAgentChatTurnUtils.ts +860 -0
  48. package/ai/agent/toolFailureGuard.ts +99 -0
  49. package/ai/agent/types.ts +73 -0
  50. package/ai/agent/utils/imageOutput.ts +37 -0
  51. package/ai/agent/utils/publicImageAgentMode.ts +26 -0
  52. package/ai/ai.locale.ts +1095 -0
  53. package/ai/chat/accumulateToolCallChunks.ts +126 -0
  54. package/ai/chat/fetchUtils.ts +143 -0
  55. package/ai/chat/inlineImageUrlsForCustomProvider.ts +117 -0
  56. package/ai/chat/parseApiError.ts +67 -0
  57. package/ai/chat/parseMultilineSSE.ts +95 -0
  58. package/ai/chat/sendOpenAICompletionsRequest.ts +897 -0
  59. package/ai/chat/sendOpenAIResponseRequest.ts +720 -0
  60. package/ai/chat/serverProxyRetry.ts +102 -0
  61. package/ai/chat/shouldUseServerProxy.ts +18 -0
  62. package/ai/chat/streamRetry.ts +46 -0
  63. package/ai/chat/updateTotalUsage.ts +89 -0
  64. package/ai/context/buildReferenceContext.ts +437 -0
  65. package/ai/context/retention.ts +165 -0
  66. package/ai/context/tokenUtils.ts +78 -0
  67. package/ai/llm/agentCapabilities.ts +74 -0
  68. package/ai/llm/deepinfra.ts +79 -0
  69. package/ai/llm/fireworks.ts +68 -0
  70. package/ai/llm/generateRequestBody.ts +165 -0
  71. package/ai/llm/getModelContextWindow.ts +93 -0
  72. package/ai/llm/getPricing.ts +252 -0
  73. package/ai/llm/imagePricing.ts +66 -0
  74. package/ai/llm/isResponseAPIModel.ts +13 -0
  75. package/ai/llm/kimi.ts +23 -0
  76. package/ai/llm/mimo.ts +99 -0
  77. package/ai/llm/mistral.ts +21 -0
  78. package/ai/llm/models.ts +45 -0
  79. package/ai/llm/openrouterModels.ts +6 -0
  80. package/ai/llm/providers.ts +313 -0
  81. package/ai/llm/reasoningModels.ts +27 -0
  82. package/ai/llm/types.ts +82 -0
  83. package/ai/llm/usageRequestOptions.ts +59 -0
  84. package/ai/memory/queryShared.ts +161 -0
  85. package/ai/memory/recentRelationshipRecap.ts +247 -0
  86. package/ai/memory/remember.ts +167 -0
  87. package/ai/memory/store.ts +20 -0
  88. package/ai/memory/storeShared.ts +76 -0
  89. package/ai/memory/types.ts +46 -0
  90. package/ai/memory/understanding.ts +349 -0
  91. package/ai/memory/understandingGreeting.ts +264 -0
  92. package/ai/policy/personalizationDialog.ts +333 -0
  93. package/ai/policy/runtimePolicy.ts +454 -0
  94. package/ai/policy/selfUpdateFields.ts +48 -0
  95. package/ai/policy/types.ts +64 -0
  96. package/ai/skills/referenceRuntime.ts +274 -0
  97. package/ai/skills/skillDiagnostics.ts +251 -0
  98. package/ai/skills/skillDocBuilder.ts +139 -0
  99. package/ai/skills/skillSummaryMarker.ts +26 -0
  100. package/ai/token/calculatePrice.ts +576 -0
  101. package/ai/token/missingUsageEstimate.ts +42 -0
  102. package/ai/token/normalizeUsage.ts +124 -0
  103. package/ai/token/openaiImageGenerationUsage.ts +56 -0
  104. package/ai/token/prepareTokenUsageData.ts +93 -0
  105. package/ai/token/resolveBillingTarget.ts +52 -0
  106. package/ai/token/saveTokenRecord.ts +53 -0
  107. package/ai/token/types.ts +103 -0
  108. package/ai/tools/agent/agentTools.ts +235 -0
  109. package/ai/tools/agent/agentUpdateShared.ts +311 -0
  110. package/ai/tools/agent/callAgentTool.ts +139 -0
  111. package/ai/tools/agent/createAgentTool.ts +512 -0
  112. package/ai/tools/agent/createDialogTool.ts +69 -0
  113. package/ai/tools/agent/createSkillAgentTool.ts +62 -0
  114. package/ai/tools/agent/parallelBudget.ts +221 -0
  115. package/ai/tools/agent/prepareAgentDraftTool.ts +159 -0
  116. package/ai/tools/agent/presets/appBuilderPreset.ts +154 -0
  117. package/ai/tools/agent/runLlmTool.ts +96 -0
  118. package/ai/tools/agent/runStreamingAgentTool.ts +73 -0
  119. package/ai/tools/agent/skillAgentArgs.ts +106 -0
  120. package/ai/tools/agent/startAgentDialogTool.ts +53 -0
  121. package/ai/tools/agent/streamParallelAgentsTool.ts +123 -0
  122. package/ai/tools/agent/updateAgentTool.ts +96 -0
  123. package/ai/tools/agent/updateSelfTool.ts +113 -0
  124. package/ai/tools/amazonProductScraperTool.ts +86 -0
  125. package/ai/tools/apifyActorClient.ts +45 -0
  126. package/ai/tools/appEditGuard.ts +372 -0
  127. package/ai/tools/appReadSnapshot.ts +153 -0
  128. package/ai/tools/appTools.ts +1549 -0
  129. package/ai/tools/applyEditTool.ts +259 -0
  130. package/ai/tools/applyLineEditsTool.ts +315 -0
  131. package/ai/tools/browserTools/click.ts +33 -0
  132. package/ai/tools/browserTools/closeSession.ts +29 -0
  133. package/ai/tools/browserTools/common.ts +27 -0
  134. package/ai/tools/browserTools/openSession.ts +48 -0
  135. package/ai/tools/browserTools/readContent.ts +38 -0
  136. package/ai/tools/browserTools/selectOption.ts +46 -0
  137. package/ai/tools/browserTools/typeText.ts +42 -0
  138. package/ai/tools/category/createCategoryTool.ts +66 -0
  139. package/ai/tools/category/queryContentsByCategoryTool.ts +69 -0
  140. package/ai/tools/category/updateContentCategoryTool.ts +75 -0
  141. package/ai/tools/cfBrowserTools.ts +319 -0
  142. package/ai/tools/cfSpeechToTextTool.ts +49 -0
  143. package/ai/tools/checkEnvTool.ts +102 -0
  144. package/ai/tools/cloudflareCrawlTool.ts +289 -0
  145. package/ai/tools/codeSearchTool.ts +123 -0
  146. package/ai/tools/codeTools.ts +101 -0
  147. package/ai/tools/convertMarxistsBookTool.ts +103 -0
  148. package/ai/tools/createDocTool.ts +132 -0
  149. package/ai/tools/createSkillDocTool.ts +155 -0
  150. package/ai/tools/createWorkflowTool.ts +154 -0
  151. package/ai/tools/delayTool.ts +31 -0
  152. package/ai/tools/deleteSpacesTool.ts +325 -0
  153. package/ai/tools/deleteSpacesToolModel.ts +159 -0
  154. package/ai/tools/devReloadUtils.ts +29 -0
  155. package/ai/tools/dialogMessageSearch.ts +137 -0
  156. package/ai/tools/doctorSkillTool.ts +72 -0
  157. package/ai/tools/ecommerceScraperTool.ts +86 -0
  158. package/ai/tools/emailTools.ts +549 -0
  159. package/ai/tools/evalSkillTool.ts +92 -0
  160. package/ai/tools/exaSearchTool.ts +63 -0
  161. package/ai/tools/execShellTool.ts +266 -0
  162. package/ai/tools/executeSqlTool.ts +192 -0
  163. package/ai/tools/fetchWebpageSupport.ts +333 -0
  164. package/ai/tools/fetchWebpageTool.ts +97 -0
  165. package/ai/tools/geminiImagePreviewTool.ts +386 -0
  166. package/ai/tools/generateDocxTool.ts +215 -0
  167. package/ai/tools/googleSearchScraperTool.ts +106 -0
  168. package/ai/tools/importDataTool.ts +133 -0
  169. package/ai/tools/importSkillTool.ts +162 -0
  170. package/ai/tools/index.ts +2308 -0
  171. package/ai/tools/jdProductScraperTool.ts +821 -0
  172. package/ai/tools/listUserSpacesTool.ts +113 -0
  173. package/ai/tools/localFilesTool.ts +276 -0
  174. package/ai/tools/marxistsOfflineBook.ts +253 -0
  175. package/ai/tools/modelUsageTools.ts +206 -0
  176. package/ai/tools/noloWorkspaceReadTools.ts +467 -0
  177. package/ai/tools/olmOcrTool.ts +33 -0
  178. package/ai/tools/openaiImageTool.ts +267 -0
  179. package/ai/tools/prepareTools.ts +23 -0
  180. package/ai/tools/readDocTool.ts +88 -0
  181. package/ai/tools/readFileTool.ts +214 -0
  182. package/ai/tools/readTool.ts +194 -0
  183. package/ai/tools/readXPostTool.ts +229 -0
  184. package/ai/tools/readXhsProfileTool.ts +627 -0
  185. package/ai/tools/rememberMemoryTool.ts +84 -0
  186. package/ai/tools/remotionVideoTool.ts +151 -0
  187. package/ai/tools/searchDialogMessagesTool.ts +222 -0
  188. package/ai/tools/searchWorkspaceTool.ts +259 -0
  189. package/ai/tools/skillFollowup.ts +86 -0
  190. package/ai/tools/surfWeatherTool.ts +169 -0
  191. package/ai/tools/table/addTableRowTool.ts +217 -0
  192. package/ai/tools/table/createTableTool.ts +315 -0
  193. package/ai/tools/table/rowTools.ts +386 -0
  194. package/ai/tools/table/schemaTools.ts +244 -0
  195. package/ai/tools/table/shareTableTool.ts +148 -0
  196. package/ai/tools/table/toolShared.ts +129 -0
  197. package/ai/tools/taobaoTmallProductScraperTool.ts +49 -0
  198. package/ai/tools/toolApiClient.ts +279 -0
  199. package/ai/tools/toolResultError.ts +42 -0
  200. package/ai/tools/toolRunSlice.ts +303 -0
  201. package/ai/tools/toolSchemaCompatibility.ts +53 -0
  202. package/ai/tools/uiAskChoiceTool.ts +104 -0
  203. package/ai/tools/updateContentTitleTool.ts +84 -0
  204. package/ai/tools/updateDocTool.ts +105 -0
  205. package/ai/tools/updateUserPreferenceProfileTool.ts +153 -0
  206. package/ai/tools/wereadGatewayTool.ts +152 -0
  207. package/ai/tools/whisperTool.ts +76 -0
  208. package/ai/tools/writeFileTool.ts +213 -0
  209. package/ai/tools/youtubeScraperTool.ts +116 -0
  210. package/ai/tools/ziweiChartTool.ts +678 -0
  211. package/ai/types.ts +55 -0
  212. package/ai/workflow/workflowExecutor.ts +323 -0
  213. package/ai/workflow/workflowSlice.ts +73 -0
  214. package/ai/workflow/workflowTypes.ts +106 -0
  215. package/app/actions/syncAppRecord.ts +73 -0
  216. package/app/constants/animationSets.ts +21 -0
  217. package/app/constants/appEditor.ts +99 -0
  218. package/app/favorite/favoriteSlice.ts +690 -0
  219. package/app/favorite/type.ts +43 -0
  220. package/app/hooks/deleteDbKey.ts +233 -0
  221. package/app/i18n/client.ts +13 -0
  222. package/app/i18n/i18n.base.ts +14 -0
  223. package/app/i18n/i18n.config.ts +77 -0
  224. package/app/i18n/index.ts +15 -0
  225. package/app/i18n/mapLanguage.ts +11 -0
  226. package/app/i18n/translations/appBuilder.locale.ts +453 -0
  227. package/app/i18n/translations/error.locale.ts +246 -0
  228. package/app/i18n/translations/interface.locale.ts +2174 -0
  229. package/app/i18n/translations/pricing.locale.ts +397 -0
  230. package/app/i18n/translations/privacy.locale.ts +168 -0
  231. package/app/i18n/translations/seo.locale.ts +129 -0
  232. package/app/i18n/translations/terms.locale.ts +124 -0
  233. package/app/i18n/types.ts +6 -0
  234. package/app/notifications/model.ts +77 -0
  235. package/app/notifications/notificationSlice.ts +141 -0
  236. package/app/reducer.ts +36 -0
  237. package/app/settings/dbActionThunks.ts +34 -0
  238. package/app/settings/defaultSpacePreference.ts +87 -0
  239. package/app/settings/settingSlice.tsx +1212 -0
  240. package/app/settings/settingsRecord.ts +8 -0
  241. package/app/stateViews/runtime.ts +90 -0
  242. package/app/store.ts +55 -0
  243. package/app/theme/colors.ts +280 -0
  244. package/app/theme/fontPreference.ts +77 -0
  245. package/app/theme/theme.config.ts +120 -0
  246. package/app/theme/themeModeBootstrap.ts +123 -0
  247. package/app/types/appSummary.ts +114 -0
  248. package/app/types.ts +358 -0
  249. package/app/utils/appKeys.ts +55 -0
  250. package/app/utils/async.ts +28 -0
  251. package/app/utils/desktopAgentRuntimeTurnClient.ts +73 -0
  252. package/app/utils/env.ts +17 -0
  253. package/app/utils/fileUtils.ts +229 -0
  254. package/app/utils/imageUtils.ts +274 -0
  255. package/app/utils/myContentItems.ts +289 -0
  256. package/app/utils/retryAfter.ts +36 -0
  257. package/app/utils/retryFetch.ts +61 -0
  258. package/app/utils/toast.ts +3 -0
  259. package/auth/action/signUpAction.ts +227 -0
  260. package/auth/adminPermissions.ts +18 -0
  261. package/auth/authSlice.ts +531 -0
  262. package/auth/client/loginRequest.ts +14 -0
  263. package/auth/resetAuthScopedClientState.ts +27 -0
  264. package/auth/routes.ts +178 -0
  265. package/auth/token.ts +63 -0
  266. package/auth/types.ts +40 -0
  267. package/chat/chat.locale.ts +813 -0
  268. package/chat/dialog/actions/addCybotAction.ts +52 -0
  269. package/chat/dialog/actions/addReferenceKeysAction.ts +62 -0
  270. package/chat/dialog/actions/builtinDialogLlm.ts +35 -0
  271. package/chat/dialog/actions/cleanupCliSession.ts +40 -0
  272. package/chat/dialog/actions/createDialogAction.ts +379 -0
  273. package/chat/dialog/actions/createScheduledTaskAction.ts +78 -0
  274. package/chat/dialog/actions/handleSendMessageAction.ts +197 -0
  275. package/chat/dialog/actions/handleSendMessageResolver.ts +27 -0
  276. package/chat/dialog/actions/removeCybotAction.ts +6 -0
  277. package/chat/dialog/actions/removeDialogAgentAction.ts +44 -0
  278. package/chat/dialog/actions/replacePrimaryCybotAction.ts +6 -0
  279. package/chat/dialog/actions/setPrimaryDialogAgentAction.ts +52 -0
  280. package/chat/dialog/actions/updateDialogSummaryAction.ts +430 -0
  281. package/chat/dialog/actions/updateDialogTitleAction.ts +151 -0
  282. package/chat/dialog/actions/updateDialogTitlePolicy.ts +30 -0
  283. package/chat/dialog/actions/updateTokensAction.ts +233 -0
  284. package/chat/dialog/dialogAgents.ts +72 -0
  285. package/chat/dialog/dialogSlice.ts +872 -0
  286. package/chat/dialog/dialogTitle.ts +81 -0
  287. package/chat/dialog/dialogTokenStats.ts +12 -0
  288. package/chat/dialog/dialogUrl.ts +6 -0
  289. package/chat/dialog/goal.ts +108 -0
  290. package/chat/dialog/objectAssistantRegistry.ts +286 -0
  291. package/chat/dialog/schedule.ts +17 -0
  292. package/chat/messages/fetchAndCacheMessages.ts +119 -0
  293. package/chat/messages/fetchConvMsgs.ts +51 -0
  294. package/chat/messages/fileUrl.ts +13 -0
  295. package/chat/messages/messageAgent.ts +8 -0
  296. package/chat/messages/messageContent.ts +199 -0
  297. package/chat/messages/messageContract.ts +88 -0
  298. package/chat/messages/messageSlice.ts +1367 -0
  299. package/chat/messages/toolThunks.ts +625 -0
  300. package/cli/agentAliases.ts +2 -1
  301. package/cli/agentRunCommand.ts +10 -32
  302. package/cli/agentRuntimeLocal.ts +1 -0
  303. package/cli/client/agentRun.ts +67 -95
  304. package/cli/client/localRuntimeAdapter.ts +323 -54
  305. package/cli/commandRegistry.ts +2 -2
  306. package/cli/machineWsRunDispatch.ts +51 -6
  307. package/cli/offlineMarxistsAgentCommand.ts +6 -4
  308. package/client/agentConfigResolver.test.ts +2 -2
  309. package/client/agentRun.test.ts +175 -57
  310. package/client/agentRun.ts +67 -95
  311. package/client/localRuntimeAdapter.test.ts +682 -37
  312. package/client/localRuntimeAdapter.ts +323 -54
  313. package/client/localRuntimeDryRun.test.ts +23 -9
  314. package/client/localToolPolicy.test.ts +4 -4
  315. package/commandRegistry.ts +2 -2
  316. package/core/builtinAgents.ts +209 -0
  317. package/core/config.ts +15 -0
  318. package/core/crypto.ts +51 -0
  319. package/core/generateKeyPairFromSeedV1.ts +15 -0
  320. package/core/generateMainKey.ts +22 -0
  321. package/core/init.ts +41 -0
  322. package/core/localOrigins.ts +8 -0
  323. package/core/password.ts +13 -0
  324. package/core/prefix.ts +23 -0
  325. package/create/editor/transforms/fromMarkdown/index.ts +260 -0
  326. package/create/editor/transforms/fromMarkdown/inline.ts +285 -0
  327. package/create/editor/transforms/fromMarkdown/table.ts +130 -0
  328. package/create/editor/transforms/markdownToSlate.ts +24 -0
  329. package/create/editor/transforms/slateToRenderMarkdown.ts +218 -0
  330. package/create/editor/transforms/slateToSimplifiedMarkdown.ts +224 -0
  331. package/create/editor/transforms/slateToText.ts +33 -0
  332. package/create/editor/utils/slateUtils.ts +233 -0
  333. package/create/space/addSpaceAction.ts +193 -0
  334. package/create/space/category/categoryActions.ts +427 -0
  335. package/create/space/changeSpaceAction.ts +36 -0
  336. package/create/space/constants.ts +8 -0
  337. package/create/space/content/addContentAction.ts +116 -0
  338. package/create/space/content/contentThunks.ts +90 -0
  339. package/create/space/content/deleteContentFromSpaceAction.ts +187 -0
  340. package/create/space/content/deleteMultipleContentAction.ts +112 -0
  341. package/create/space/content/moveContentAction.ts +285 -0
  342. package/create/space/content/updateContentCategoryAction.ts +154 -0
  343. package/create/space/content/updateContentTitleAction.ts +151 -0
  344. package/create/space/content/uploadAndAddFileToSpaceAction.ts +98 -0
  345. package/create/space/contentKeyUtils.ts +117 -0
  346. package/create/space/deleteSpaceAction.ts +276 -0
  347. package/create/space/fetchSpaceAction.ts +70 -0
  348. package/create/space/fetchSpaceSidebarStateAction.ts +26 -0
  349. package/create/space/loadDefaultSpaceAction.ts +57 -0
  350. package/create/space/member/addMemberAction.ts +79 -0
  351. package/create/space/member/fetchUserSpaceMembershipsAction.ts +386 -0
  352. package/create/space/member/memberThunks.ts +47 -0
  353. package/create/space/member/removeMemberAction.ts +67 -0
  354. package/create/space/resolvePreferredSpaceId.ts +113 -0
  355. package/create/space/sidebarVisibleTypes.ts +241 -0
  356. package/create/space/space.locale.ts +1087 -0
  357. package/create/space/spaceAccess.ts +182 -0
  358. package/create/space/spaceCollapsedState.ts +54 -0
  359. package/create/space/spaceKeys.ts +65 -0
  360. package/create/space/spaceSlice.ts +328 -0
  361. package/create/space/spaceThunks.ts +410 -0
  362. package/create/space/types.ts +27 -0
  363. package/create/space/updateSpaceAction.ts +107 -0
  364. package/create/space/utils/permissions.ts +47 -0
  365. package/create/types.ts +21 -0
  366. package/database/actions/agentReadResolution.ts +33 -0
  367. package/database/actions/common.ts +243 -0
  368. package/database/actions/deleteFile.ts +40 -0
  369. package/database/actions/fileContent.ts +125 -0
  370. package/database/actions/patch.ts +155 -0
  371. package/database/actions/read.ts +358 -0
  372. package/database/actions/readAndWait.ts +260 -0
  373. package/database/actions/readRequestManager.ts +120 -0
  374. package/database/actions/readResolution.ts +125 -0
  375. package/database/actions/remove.ts +94 -0
  376. package/database/actions/replication.ts +477 -0
  377. package/database/actions/upload.ts +186 -0
  378. package/database/actions/upsert.ts +56 -0
  379. package/database/actions/write.ts +146 -0
  380. package/database/authority/ownerKey.ts +80 -0
  381. package/database/authority/recordAuthority.ts +67 -0
  382. package/database/authority/userAuthorityRegistry.ts +54 -0
  383. package/database/client/fetchUserData.ts +61 -0
  384. package/database/dbActionThunks.ts +1 -0
  385. package/database/dbSlice.ts +149 -0
  386. package/database/fileRing.ts +51 -0
  387. package/database/fileStorage.ts +232 -0
  388. package/database/fileUrl.ts +34 -0
  389. package/database/keys.ts +767 -0
  390. package/database/queryPrefixes.ts +14 -0
  391. package/database/requests.ts +443 -0
  392. package/database/runtimeServerContext.ts +54 -0
  393. package/database/server/levelAuthorityStore.ts +20 -1
  394. package/database/tenantPlacement.ts +57 -0
  395. package/database/userPreferenceRegister.ts +131 -0
  396. package/database/utils/ulid.ts +1 -0
  397. package/integrations/anthropic/anthropicModels.ts +47 -0
  398. package/integrations/deepseek/models.ts +37 -0
  399. package/integrations/google/models.ts +341 -0
  400. package/integrations/openai/chatCompletionStreamMode.ts +10 -0
  401. package/integrations/openai/filterAndCleanMessages.ts +284 -0
  402. package/integrations/openai/flexTier.ts +102 -0
  403. package/integrations/openai/generateOpenAIRequestBody.ts +274 -0
  404. package/integrations/openai/generateResponseRequestBody.ts +77 -0
  405. package/integrations/openai/models.ts +271 -0
  406. package/integrations/openai/providerBodyCompatibility.ts +23 -0
  407. package/integrations/openai/responsesHelpers.ts +297 -0
  408. package/integrations/x-reader/types.ts +109 -0
  409. package/integrations/xai/models.ts +13 -0
  410. package/integrations/xhs-reader/analyze/profileAnalyzer.ts +205 -0
  411. package/integrations/xhs-reader/backends/playwrightProfileCollector.ts +624 -0
  412. package/integrations/xhs-reader/bridge/readXhsProfileWithBridge.ts +227 -0
  413. package/integrations/xhs-reader/client/xhsWebApiClient.ts +229 -0
  414. package/integrations/xhs-reader/normalize.ts +390 -0
  415. package/integrations/xhs-reader/orchestrator.ts +178 -0
  416. package/integrations/xhs-reader/redaction.ts +68 -0
  417. package/integrations/xhs-reader/types.ts +244 -0
  418. package/integrations/xhs-reader/url.ts +57 -0
  419. package/machineWsRunDispatch.ts +51 -6
  420. package/offlineMarxistsAgentCommand.ts +6 -4
  421. package/package.json +430 -3
  422. package/render/page/createPageAction.ts +183 -0
  423. package/render/page/docSlice.ts +468 -0
  424. package/render/page/types.ts +17 -0
  425. package/render/table/createTableAction.ts +270 -0
  426. package/render/table/deleteTableAction.ts +193 -0
  427. package/render/table/fetchAndCacheTableRows.ts +174 -0
  428. package/render/table/tableSlice.ts +1106 -0
  429. package/render/table/toolValueUtils.ts +363 -0
  430. package/render/table/types.ts +252 -0
  431. package/render/table/utils/tableSerialization.ts +50 -0
  432. package/server/handlers/agentRun/types.ts +104 -0
  433. package/share/action.ts +225 -0
  434. package/share/helpers.ts +302 -0
  435. package/share/keys.ts +243 -0
  436. package/share/publicSharePolicy.ts +27 -0
  437. package/share/shareSlice.ts +53 -0
  438. package/share/types.ts +100 -0
@@ -0,0 +1,2174 @@
1
+ import { Language } from "../types";
2
+
3
+ export default {
4
+ [Language.EN]: {
5
+ translation: {
6
+ languageName: "English",
7
+ login: "Login",
8
+ logout: "Logout",
9
+ username: "Username",
10
+ password: "Password",
11
+ usernameRequired: "Username is required",
12
+ passwordRequired: "Password is required",
13
+ signup: "Signup",
14
+ submit: "Submit",
15
+ loading: "Loading...",
16
+ noAccount: "No account?",
17
+ signUpNow: "Sign up now",
18
+ enterPassword: "Enter password",
19
+ enterUsername: "Enter username",
20
+ enterEmail: "Enter email",
21
+ rememberMe: "Remember me",
22
+ forgotPassword: "Forgot password?",
23
+ path: "Path",
24
+ content: "Content",
25
+ title: "Title",
26
+ deleteDialogTitle: 'Delete "{{title}}"',
27
+ deleteDialogConfirmation:
28
+ "Are you sure you want to delete this conversation? This action cannot be undone.",
29
+ deleteAgentCurrentCopyConfirmation:
30
+ "Delete the current copy of this agent? This will not delete any public copy or historical conversations.",
31
+ deleteResourceConfirmation:
32
+ "Are you sure you want to delete this resource? This action cannot be undone.",
33
+ confirm: "Confirm",
34
+ cancel: "Cancel",
35
+ save: "Save",
36
+ close: "Close",
37
+ messageOrImageHere: "Type Message or drag and drop image here",
38
+ confirmDelete: "Confirm Delete",
39
+ deleteDialog: "Delete Dialog",
40
+ edit: "Edit",
41
+ delete: "Delete",
42
+ add: "Add",
43
+ haveAccount: "Already have an account?",
44
+ loginNow: "Login now",
45
+ betaAccess: "Apply for Beta Access",
46
+ betaDescription:
47
+ "We are currently in beta testing phase with limited spots available. Please leave your email and tell us how you would use our product.",
48
+ emailRequired: "Email is required",
49
+ invalidEmail: "Please enter a valid email",
50
+ emailExists: "This email has already applied",
51
+ applyForAccess: "Apply for Access",
52
+ operationFailed: "Operation failed",
53
+ networkError: "Network error",
54
+ welcomeBack: "Welcome back! Enter your account details to continue.",
55
+ createAccount: "Create your account and start your journey.",
56
+ loginFailed: "Login failed",
57
+ signupFailed: "Signup failed",
58
+ authLoginTargetLabel: "Current login target",
59
+ authLoginSwitchHint:
60
+ "If this account was created on another server or language, switch first and try again.",
61
+ authLoginNotFoundHint:
62
+ "This login is checking {{server}} · {{locale}}. If you registered on another server or language, switch first and try again.",
63
+ authLoginUnauthorizedHint:
64
+ "The request reached {{server}} · {{locale}}, but the server rejected it. Confirm the server and language match where the account was created.",
65
+ purposeHolder: "What would you like to use our product for?",
66
+ purposeRequired: "Please tell us your intended use",
67
+ purposeTooShort: "Please provide more details (at least 10 characters)",
68
+ settings: {
69
+ title: "Settings",
70
+ nav: {
71
+ appearance: "Appearance",
72
+ account: "Account",
73
+ security: "Security",
74
+ editor: "Editor",
75
+ chat: "Chat",
76
+ productivity: "Productivity",
77
+ secrets: "Secrets",
78
+ runtime: "Runtime",
79
+ },
80
+ runtime: {
81
+ title: "Local provider runtime",
82
+ desktopOnly: "This page is only available in the desktop app.",
83
+ start: "Start",
84
+ stop: "Stop",
85
+ refresh: "Refresh",
86
+ },
87
+ appearance: {
88
+ title: "Appearance",
89
+ theme: {
90
+ title: "Theme",
91
+ description: "Customize the application's color scheme.",
92
+ changeTo: "Change theme to {{themeName}}",
93
+ },
94
+ mode: {
95
+ title: "Dark Mode",
96
+ description: "Adjust the application's light or dark mode setting.",
97
+ },
98
+ density: {
99
+ title: "Layout Density",
100
+ description:
101
+ "Compact keeps the interface tighter, while spacious makes controls easier to click.",
102
+ },
103
+ font: {
104
+ title: "Font",
105
+ description:
106
+ "Pick the interface font you like, including Songti and other Chinese type styles.",
107
+ },
108
+ },
109
+ theme: {
110
+ light: "Light Mode",
111
+ dark: "Dark Mode",
112
+ system: "System",
113
+ },
114
+ font: {
115
+ system: "System Default",
116
+ hei: "Sans / Heiti",
117
+ song: "Serif / Songti",
118
+ kai: "Kai",
119
+ "fang-song": "FangSong",
120
+ },
121
+ },
122
+ introtext: "click here to start editing",
123
+ hintofKey:
124
+ "Hint: There are no restrictions on the number of characters and symbols for usernames and passwords. Password reset is not provided for the time being, so it is recommended to use a complex password combination and remember the password",
125
+ "Nothing to see here!": "Nothing to see here!",
126
+ "Go to Home": "Go to Home",
127
+ "Go Back": "Go Back",
128
+ deleteSuccess: "Delete successful",
129
+ accountDeletion: {
130
+ sectionTitle: "Danger Zone",
131
+ title: "Delete account",
132
+ description:
133
+ "Permanently remove your account and related data. This action cannot be undone.",
134
+ button: "Delete account",
135
+ confirmTitle: "Delete your account?",
136
+ confirmMessage:
137
+ "This will permanently delete your account and related data, then sign you out immediately. This action cannot be undone.",
138
+ confirmButton: "Delete permanently",
139
+ success: "Your account has been deleted.",
140
+ failed: "Failed to delete your account. Please try again.",
141
+ },
142
+ accountSecurity: {
143
+ title: "Account security",
144
+ panelDescription:
145
+ "Review recent sign-ins and access traces so unusual devices or IPs stand out earlier.",
146
+ lastLoginAt: "Last login",
147
+ lastActiveAt: "Last activity",
148
+ recentActivity: "Recent activity",
149
+ recentActivityHint:
150
+ "Recent login and authenticated access summaries appear here so you can spot unexpected activity.",
151
+ noRecentActivity: "No recent activity yet.",
152
+ sourceLogin: "Login",
153
+ sourceToken: "Authenticated access",
154
+ newAccess: "New",
155
+ notAvailable: "No record",
156
+ revokeTitle: "Something looks off? Sign out all other devices",
157
+ revokeDescription:
158
+ "After you enter your current password, every old token becomes invalid immediately. This device will switch to a fresh token automatically.",
159
+ revokeButton: "Sign out other devices",
160
+ revokeModalTitle: "Sign out all other devices",
161
+ revokeModalHint:
162
+ "If you suspect your account is active on an unfamiliar device, invalidate every old token now. To keep this device signed in, we need to verify your current password once.",
163
+ currentPasswordLabel: "Current password",
164
+ currentPasswordPlaceholder: "Enter your current password to continue",
165
+ currentPasswordRequired: "Enter your current password to continue.",
166
+ revokeConfirmButton: "Invalidate old tokens and keep this device signed in",
167
+ revokeModalNote:
168
+ "After confirmation, this page will switch to a new token and other devices will be signed out on their next request.",
169
+ revokeSuccess:
170
+ "Other devices have been signed out and this device is now using a fresh token.",
171
+ revokeWrongPassword: "The current password is incorrect. Please try again.",
172
+ revokeReplaceTokenFailed:
173
+ "Other devices were signed out, but this device failed to save the new token. Refresh the page and sign in again immediately.",
174
+ revokeFailed: "Action failed. Please try again later.",
175
+ revokeMissingLocale:
176
+ "This account is missing login environment details. Please sign in again and retry.",
177
+ },
178
+ home: "Home",
179
+
180
+ // === Combined Welcome Section ===
181
+ welcomeSection: {
182
+ heroTitle: "AI that remembers you and gets the work done",
183
+ heroDescription:
184
+ "Chat naturally, hand work to multiple agents, and turn ideas into docs, apps, images, videos, and repeatable workflows without rebuilding context every time.",
185
+ ctaButton: "Start free",
186
+ secondaryExplore: "Explore public agents",
187
+ secondaryDownload: "Download desktop or mobile",
188
+ secondaryPricing: "View pricing",
189
+ socialProof: {
190
+ label: "Supported models and platforms",
191
+ platforms: "Web · Desktop · iOS",
192
+ },
193
+ bottomCta: {
194
+ title: "Start from wherever you are",
195
+ desc: "A vague idea, a half-formed question—that's enough. Nolo will remember the rest.",
196
+ cta: "Open my workspace",
197
+ trust: "Free to join · No credit card needed",
198
+ },
199
+ highlightsLabel: "Homepage value highlights",
200
+ highlights: {
201
+ memory: "Persistent context",
202
+ agents: "Multi-agent tasks",
203
+ output: "Docs, images, videos, apps",
204
+ },
205
+ proof: {
206
+ kicker: "Why start here",
207
+ title: "Made for people who want progress, not just prettier prompts",
208
+ description:
209
+ "Nolo is strongest when you need memory, delegation, and real outputs in one place instead of stitching together separate AI tabs and tools.",
210
+ label: "Homepage proof points",
211
+ multiAgent: "Direct one agent or delegate to multiple agents",
212
+ multiOutput: "Turn ideas into docs, apps, images, videos, and workflows",
213
+ multiDevice: "Explore on the web, then continue on desktop or mobile",
214
+ },
215
+ fit: {
216
+ kicker: "Who it fits",
217
+ title: "A good fit if your bottleneck is turning ideas into finished work",
218
+ founders: "Founders who can build but need help shipping research, content, and experiments faster",
219
+ creators: "Creators who want one place for context, drafts, media generation, and iteration",
220
+ operators: "Operators who repeat the same workflows and want AI to remember and execute them",
221
+ },
222
+ faq: {
223
+ kicker: "FAQ",
224
+ title: "The questions that actually matter before you start",
225
+ description: "Real answers to what people ask before signing up.",
226
+ context: {
227
+ question: "Is it free?",
228
+ answer:
229
+ "The core workspace is free. Advanced models (GPT-4o, Claude, and others) are pay-as-you-go—no monthly subscription until you need more power. No task, no charge.",
230
+ },
231
+ output: {
232
+ question: "How is this different from just using ChatGPT or Claude directly?",
233
+ answer:
234
+ "Nolo remembers your context, rules, and history across sessions. Instead of one model answering alone, you can run multiple agents in parallel on the same task—faster results, with more than one perspective.",
235
+ },
236
+ entry: {
237
+ question: "Do I need to know how to code?",
238
+ answer:
239
+ "Not at all. Describe what you want in plain language. Build apps, generate images, write documents—all through conversation.",
240
+ },
241
+ },
242
+ finalCta: {
243
+ kicker: "Start from the path that matches your intent",
244
+ title: "Explore first if you want to browse. Sign up first if you already know what you want to build.",
245
+ description: "Both paths lead somewhere real. Pick the one that matches where you are right now.",
246
+ primary: "Create your workspace",
247
+ secondary: "Browse public agents",
248
+ },
249
+ cards: {
250
+ context: {
251
+ title: "Say it once, it remembers",
252
+ desc: "Set your rules and context once. Stay in control with direct guidance, or step back and let it handle the whole flow.",
253
+ bubble: "Got it—no fluff. Step 3 last time. Let's continue.",
254
+ },
255
+ battle: {
256
+ title: "You set the direction, agents finish the path",
257
+ desc: "Drive it yourself or hand the goal to multiple agents working in parallel. Every step is visible, every result is accountable.",
258
+ topic: "Ship MVP first, or find users first?",
259
+ posA: "Ship the MVP—let data decide. Low cost to fail.",
260
+ posB: "Talk to users first. Build the right thing.",
261
+ result: "Two views, you decide",
262
+ },
263
+ create: {
264
+ title: "You bring the idea, it builds the thing",
265
+ desc: "Docs, apps, images, videos, 3D—describe what you want and it produces something you can actually use or ship.",
266
+ },
267
+ auto: {
268
+ title: "Set it tonight, check results in the morning",
269
+ desc: "Queue tasks from your phone or desktop. It runs overnight and delivers when you're ready to review.",
270
+ taskName: "Workflow running",
271
+ },
272
+ },
273
+ },
274
+ // === End Welcome Section ===
275
+ quickChat: {
276
+ placeholder: "I am {{name}}. Want to chat? You can also switch AI or customize your own assistant in settings.",
277
+ uploadImage: "Upload Image",
278
+ failedToStart: "Failed to start",
279
+ createDialogFailed: "Failed to create conversation",
280
+ initDialogFailed: "Failed to initialize conversation",
281
+ sendMessageFailed: "Failed to send first message",
282
+ },
283
+ chat: {
284
+ title: "Chat Settings",
285
+ animationSet: {
286
+ title: "AI Response Animation",
287
+ description: "Choose the loading animation displayed while the AI is thinking or responding.",
288
+ },
289
+ globalPrompt: {
290
+ title: "Global Prompt",
291
+ description: "Introduce yourself, your preferences and communication style to all AI assistants, so they consistently understand you.",
292
+ placeholder: "e.g. I'm a developer who prefers structured, concise answers. Use TypeScript for code examples with brief explanations. State your assumptions when unsure.",
293
+ autoSave: {
294
+ saving: "Saving…",
295
+ saved: "Auto-saved",
296
+ error: "Save failed. Will retry when you continue editing.",
297
+ idle: "Changes are saved automatically.",
298
+ toastSuccess: "Global prompt saved",
299
+ toastError: "Save failed, please try again later",
300
+ },
301
+ },
302
+ readCurrentSpace: {
303
+ title: "Read current space as context",
304
+ description: "When enabled, the assistant can automatically read documents and notes in the current space as supplemental context.",
305
+ },
306
+ recentContentLimit: {
307
+ title: "Recent content limit",
308
+ description: "Number of recent files included in the AI context. Higher values give the AI more space content but consume more tokens.",
309
+ },
310
+ maxMessages: {
311
+ title: "Context message count",
312
+ description: "Number of history messages included per conversation. Higher values provide more coherent context but use more resources.",
313
+ },
314
+ maxExecutionTime: {
315
+ title: "Agent timeout (seconds)",
316
+ description: "Maximum execution time for an Agent task. It will stop automatically when the time limit is reached.",
317
+ },
318
+ messageQueued: "Message queued and will be sent after the current run finishes.",
319
+ cannotSendFileDuringLoop: "The agent is still running. Please wait before sending a message with attachments.",
320
+ defaultAgent: {
321
+ systemDefault: "system default",
322
+ },
323
+ ocrModel: {
324
+ none: "No OCR (pdf.js extraction)",
325
+ recommended: "recommended",
326
+ },
327
+ sidebarVisibleTypes: {
328
+ description:
329
+ "Choose which content types are shown by default in the chat sidebar. The default is conversations, documents, tables, and apps, but you can also include images, document attachments, videos, audio, assistants, or scheduled tasks.",
330
+ hint:
331
+ "Keep at least one type selected. This controls the default set; you can still switch the sidebar filter temporarily later.",
332
+ options: {
333
+ dialog: "Conversations",
334
+ page: "Documents",
335
+ image: "Images",
336
+ document: "Document Attachments",
337
+ video: "Videos",
338
+ audio: "Audio",
339
+ table: "Tables",
340
+ file: "Attachments",
341
+ app: "Apps",
342
+ agent: "Assistants",
343
+ scheduled: "Scheduled Tasks",
344
+ },
345
+ },
346
+ },
347
+ publicAgents: {
348
+ loadFailed: "Failed to load AI assistants",
349
+ searchPlaceholder: "Search AI assistants...",
350
+ sortLabel: "Sort:",
351
+ sortRecommended: "Recommended",
352
+ sortNewest: "Newest",
353
+ sortPrice: "Price",
354
+ sortFavorite: "Favorites",
355
+ filterImageGeneration: "Image generation",
356
+ },
357
+
358
+ explorePlaza: "Explore the AI Plaza",
359
+ downloadAndroid: "Download for Android",
360
+ downloadWindows: "Download for Windows",
361
+ downloadLinux: "Download for Linux",
362
+ downloadClient: "Download Client",
363
+ clientDownloads: {
364
+ eyebrow: "Downloads",
365
+ title: "Nolo on every device",
366
+ subtitle:
367
+ "Android, Windows, Linux, and macOS are available now. iOS coming soon.",
368
+ tagline: "Quiet tools for clear thinking.",
369
+ availableNow: "Available",
370
+ comingSoon: "Coming soon",
371
+ downloadNow: "Download",
372
+ comingSoonAction: "Coming soon",
373
+ androidTitle: "Android",
374
+ androidDesc: "APK, ready to install.",
375
+ windowsTitle: "Windows",
376
+ windowsDesc: "One-click installer for Windows.",
377
+ linuxTitle: "Linux",
378
+ linuxDesc: "Native package for your environment.",
379
+ macosTitle: "macOS",
380
+ macosDesc: "Optimized for Apple Silicon.",
381
+ iosTitle: "iPhone / iPad",
382
+ iosDesc: "In progress. Will be here when ready.",
383
+ },
384
+ homeActions: {
385
+ createFailed: "Creation failed",
386
+ myContentTitle: "My Content",
387
+ myContentDesc: "Browse the latest content across your spaces",
388
+ myAppsTitle: "My Apps",
389
+ myAppsDesc: "View and manage your apps",
390
+ createNoteTitle: "Create Note",
391
+ createNoteDesc: "Capture ideas and build knowledge",
392
+ createTableTitle: "Create Table",
393
+ createTableDesc: "Organize data in a structured view",
394
+ createAgentTitle: "Create AI Assistant",
395
+ createAgentDesc: "Customize your personal agent",
396
+ personalizationTitle: "Adjust AI Style",
397
+ personalizationDesc: "Tune how AI speaks, saves knowledge, and reads spaces",
398
+ personalizationFailed: "Failed to start the personalization dialog",
399
+ pricingTitle: "Pricing Details",
400
+ pricingDesc: "View pricing rules",
401
+ guideTitle: "User Guide",
402
+ guideDesc: "Quick start tips",
403
+ downloadClientTitle: "Download Client",
404
+ downloadClientDesc: "Install Nolo on desktop and mobile devices",
405
+ feedbackTitle: "Give Feedback",
406
+ feedbackDesc: "Chat with our feedback agent directly",
407
+ },
408
+ quickStartGuide: {
409
+ title: "Quick Start Guide",
410
+ description: "Use these three checks to get oriented quickly when you open nolo.",
411
+ setupTitle: "1. Confirm your current environment",
412
+ setupItem1: "The login target is always the current server and language shown on the auth screen.",
413
+ setupItem2: "If an account was created on another server or locale, switch first before signing in.",
414
+ setupItem3: "For RN smoke checks, verify the environment before testing content fetches or chat writes.",
415
+ shortcutsTitle: "2. Start from the three fastest entry points",
416
+ shortcutsItem1: "Quick Note captures an idea immediately and saves it as a page.",
417
+ shortcutsItem2: "New Chat creates a fresh dialog with the default assistant.",
418
+ shortcutsItem3: "Create AI is the fastest way to customize a dedicated assistant.",
419
+ nextStepsTitle: "3. When something looks off",
420
+ nextStepsItem1: "If login fails, re-check that the server and locale match the original registration.",
421
+ nextStepsItem2: "If recent content looks stale, give sync a moment and then reopen the target page.",
422
+ nextStepsItem3: "Use Feedback to report missing data or confusing behavior directly from the home screen.",
423
+ },
424
+ notifications: {
425
+ open: "Open notifications",
426
+ title: "Notifications",
427
+ subtitle: "Recent updates relevant to you",
428
+ markAllRead: "Mark all read",
429
+ empty: "No notifications yet",
430
+ viewAll: "View all notifications",
431
+ centerTitle: "Your updates",
432
+ centerSubtitle: "Persistent space and agent updates across devices.",
433
+ spaceAddedTitle: "You were added to a space",
434
+ spaceAddedMessage: 'You were added to "{{spaceName}}"',
435
+ dialogFallbackTitle: "Conversation",
436
+ dialogDoneTitle: "Agent run finished",
437
+ dialogDoneMessage: '"{{title}}" finished',
438
+ dialogDoneMessageWithSpace: '"{{title}}" finished in "{{spaceName}}"',
439
+ dialogFailedTitle: "Agent run failed",
440
+ dialogFailedMessage: '"{{title}}" failed',
441
+ dialogFailedMessageWithSpace: '"{{title}}" failed in "{{spaceName}}"',
442
+ },
443
+ homeTabs: {
444
+ myContent: "My Content",
445
+ myFavorites: "My Favorites",
446
+ aiPlaza: "AI Plaza",
447
+ shareCommunity: "Community Shares",
448
+ viewMore: "View more",
449
+ enterCommunity: "Enter community",
450
+ myContentPageSubtitle:
451
+ "Browse the latest pages, tables, apps, files, and conversations across all your spaces.",
452
+ myFavoritesPageSubtitle:
453
+ "Keep your favorited assistants and content together for quick access.",
454
+ myContentEmpty: "No content yet",
455
+ myContentEmptyFiltered: "No {{type}} yet",
456
+ myContentEmptyHint:
457
+ "Anything you create or update in any space will be collected here by latest activity.",
458
+ },
459
+ share_visibility_public: "Public",
460
+ share_visibility_private: "Private",
461
+ tableShare: "Table share",
462
+ tableShareLoading: "Loading share status...",
463
+ tableShareSignInRequired: "Sign in to share this table",
464
+ tableShareNotPublished: "Not shared to the community yet",
465
+ tableSharePublishedStatus: "Already shared to the community",
466
+ tableSharePublish: "Share to community",
467
+ tableShareRepublish: "Republish",
468
+ tableSharePublished: "Shared to the community",
469
+ tableSharePublishFailed: "Failed to share table",
470
+ tableShareCopyLink: "Copy link",
471
+ tableShareLinkCopied: "Table share link copied",
472
+ tableShareLinkGenerated: "Table share link generated",
473
+ tableShareOpen: "Open share page",
474
+ tableShareLoadFailed: "Failed to load table share status",
475
+ tableShareReplicationIssue: "Replication needs attention",
476
+ tableShareReplicationLag: "Replication is still catching up",
477
+ myShares: {
478
+ title: "My Shares",
479
+ subtitle: "Pages, conversations, tables, and apps you've published and shared.",
480
+ browseCommunity: "Browse Community",
481
+ loading: "Loading...",
482
+ loadError: "Failed to load shares",
483
+ empty: "You haven't shared anything yet.",
484
+ emptyHint: "Click the share button on an article, conversation, or table page to create your first share.",
485
+ deleted: "Share deleted",
486
+ deleteFailed: "Delete failed: {{error}}",
487
+ loadMore: "Load more",
488
+ loadingMore: "Loading...",
489
+ requireLogin: "Please log in to view your shares.",
490
+ },
491
+ joinCommunity: "Join Our Community",
492
+ invitedBy: "You've been invited by",
493
+ acceptInvitation: "Accept Invitation",
494
+ passwordMinLength: "Password must be at least 8 characters",
495
+ registerSuccess: "Registration successful!",
496
+ registrationFailed: "Registration failed",
497
+ unknown: "Unknown",
498
+ code: "Invitation Code",
499
+ inviteHeader: "Hi, you've received an invitation from {{name}}",
500
+ invitePartnerDescription:
501
+ "Since the inviter is our partner, you'll receive a bonus of 6 credits upon registration.",
502
+ inviteGeneralHint: "Register to receive your bonus credits!",
503
+ emailOptionalPlaceholder: "Enter email (optional)",
504
+ inviterIdOptionalPlaceholder: "Enter inviter ID (optional)",
505
+ inviterAvatarAlt: "Inviter avatar: {{name}}",
506
+
507
+ errors: {
508
+ loadingMessages: "Error loading messages",
509
+ },
510
+ selectADialog: "Select a dialog",
511
+ welcomeTitle: "Welcome! Please log in to view and send messages",
512
+ welcomeHint: "Please log in or sign up to start chatting",
513
+ tokens: "tokens",
514
+ in: "in",
515
+ out: "out",
516
+ loginOtherUser: "Log in as another user",
517
+ inviteFriend: "Invite Friend",
518
+ recharge: "Recharge",
519
+ balance: "Balance",
520
+ compressedTimes: "Compressed {{count}} times",
521
+
522
+ // Community page
523
+ community_title: "Community",
524
+ community_subtitle: "Discover apps, articles, tables, and conversations shared by the community",
525
+ community_filter_all: "All",
526
+ community_filter_app: "Apps",
527
+ community_filter_doc: "Articles",
528
+ community_filter_table: "Tables",
529
+ community_filter_chat: "Chats",
530
+ community_loading: "Loading…",
531
+ community_loading_more: "Loading…",
532
+ community_load_more: "Load more",
533
+ community_load_error: "Failed to load community content",
534
+ community_empty: "No content yet",
535
+ openApp: "Open App",
536
+ version: {
537
+ history: "Version History",
538
+ pinned: "Pinned",
539
+ auto: "Auto-saved",
540
+ empty: "No version history yet.",
541
+ autoSave: "Auto-save",
542
+ pin: "Pin",
543
+ unpin: "Unpin",
544
+ editLabel: "Edit label",
545
+ restore: "Restore",
546
+ cannotDeletePinned: "Unpin first to delete",
547
+ pinCount: "{{count}}/10 pinned",
548
+ totalCount: "{{count}}/50 auto",
549
+ justNow: "just now",
550
+ minsAgo: "{{count}}m ago",
551
+ hrsAgo: "{{count}}h ago",
552
+ daysAgo: "{{count}}d ago",
553
+ },
554
+ },
555
+ },
556
+ [Language.ZH_CN]: {
557
+ translation: {
558
+ languageName: "简体中文",
559
+ login: "登录",
560
+ logout: "登出",
561
+ username: "用户名",
562
+ password: "密码",
563
+ usernameRequired: "请输入用户名",
564
+ passwordRequired: "请输入密码",
565
+ signup: "注册",
566
+ submit: "提交",
567
+ loading: "加载中...",
568
+ noAccount: "没有账号?",
569
+ signUpNow: "立即注册",
570
+ enterPassword: "请输入密码",
571
+ enterUsername: "请输入用户名",
572
+ enterEmail: "请输入邮箱",
573
+ rememberMe: "记住我",
574
+ forgotPassword: "忘记密码?",
575
+ path: "路径",
576
+ content: "内容",
577
+ title: "标题",
578
+ deleteDialogTitle: '删除"{{title}}"',
579
+ deleteDialogConfirmation: "确定要删除这个对话吗?此操作不可撤销。",
580
+ deleteAgentCurrentCopyConfirmation:
581
+ "确定要删除这个 Agent 的当前副本吗?这不会删除公开副本,也不会删除历史对话。",
582
+ deleteResourceConfirmation: "确定要删除这个资源吗?此操作不可撤销。",
583
+ confirm: "确认",
584
+ cancel: "取消",
585
+ save: "保存",
586
+ close: "关闭",
587
+ confirmDelete: "确认删除",
588
+ deleteDialog: "删除对话",
589
+ edit: "编辑",
590
+ delete: "删除",
591
+ add: "添加",
592
+ haveAccount: "已有账号?",
593
+ loginNow: "立即登录",
594
+ betaAccess: "申请内测资格",
595
+ betaDescription:
596
+ "我们目前处于内测阶段,仅开放有限名额。请留下您的邮箱并告诉我们您的使用场景。",
597
+ emailRequired: "请输入邮箱",
598
+ invalidEmail: "请输入有效的邮箱",
599
+ emailExists: "该邮箱已申请",
600
+ applyForAccess: "申请内测资格",
601
+ operationFailed: "操作失败",
602
+ networkError: "网络错误",
603
+ welcomeBack: "欢迎回来!请输入您的账户信息。",
604
+ createAccount: "创建账户,开启您的旅程。",
605
+ loginFailed: "登录失败",
606
+ signupFailed: "注册失败",
607
+ authLoginTargetLabel: "当前登录环境",
608
+ authLoginSwitchHint: "如果你是在别的服务器或语言环境注册的,请先切换后再登录。",
609
+ authLoginNotFoundHint:
610
+ "当前正在 {{server}} · {{locale}} 下查找账号;如果你是在别的服务器或语言环境注册的,请先切换后再登录。",
611
+ authLoginUnauthorizedHint:
612
+ "这次请求已经到达 {{server}} · {{locale}},但被服务端拒绝;请确认服务器和语言与注册时一致。",
613
+ purposeHolder: "您打算用我们的产品做什么?",
614
+ purposeRequired: "请告诉我们您的使用目的",
615
+ purposeTooShort: "请提供更多详细信息(至少10个字符)",
616
+ settings: {
617
+ title: "设置",
618
+ nav: {
619
+ appearance: "外观",
620
+ account: "账户",
621
+ security: "安全",
622
+ editor: "编辑器",
623
+ chat: "对话",
624
+ productivity: "效率",
625
+ secrets: "密钥",
626
+ },
627
+ appearance: {
628
+ title: "外观",
629
+ theme: {
630
+ title: "主题",
631
+ description: "自定义应用程序的颜色方案。",
632
+ changeTo: "切换主题到{{themeName}}",
633
+ },
634
+ mode: {
635
+ title: "深色模式",
636
+ description: "调整应用程序的浅色或深色模式设置。",
637
+ },
638
+ density: {
639
+ title: "布局密度",
640
+ description: "紧凑模式让界面更利落,宽松模式让按钮和列表更容易点击。",
641
+ },
642
+ font: {
643
+ title: "字体",
644
+ description: "选择你喜欢的界面字体,包括宋体、楷体等中文风格。",
645
+ },
646
+ },
647
+ theme: {
648
+ light: "浅色模式",
649
+ dark: "深色模式",
650
+ system: "跟随系统",
651
+ },
652
+ font: {
653
+ system: "系统默认",
654
+ hei: "黑体 / 无衬线",
655
+ song: "宋体 / 衬线",
656
+ kai: "楷体",
657
+ "fang-song": "仿宋",
658
+ },
659
+ },
660
+ introtext: "点击这里开始编辑",
661
+ hintofKey:
662
+ "提示:用户名密码不作字数和符限制,暂不提供找回密码,建议使用复杂的密码组合,并牢记密码",
663
+ "Nothing to see here!": "这里没有内容!",
664
+ "Go to Home": "返回首页",
665
+ "Go Back": "返回",
666
+ deleteSuccess: "删除成功",
667
+ accountDeletion: {
668
+ sectionTitle: "危险操作",
669
+ title: "删除账户",
670
+ description: "删除后将永久移除你的账号及相关数据,此操作不可撤销。",
671
+ button: "删除账户",
672
+ confirmTitle: "确认删除你的账户?",
673
+ confirmMessage:
674
+ "这会永久删除你的账号及相关数据,并立即退出当前登录。此操作不可撤销。",
675
+ confirmButton: "永久删除",
676
+ success: "你的账号已被删除。",
677
+ failed: "删除账号失败,请稍后重试。",
678
+ },
679
+ accountSecurity: {
680
+ title: "账号安全",
681
+ panelDescription:
682
+ "查看最近登录与访问痕迹,帮助你更早发现异常设备或陌生 IP。",
683
+ lastLoginAt: "最近登录",
684
+ lastActiveAt: "最近活跃",
685
+ recentActivity: "最近访问活动",
686
+ recentActivityHint:
687
+ "这里会展示最近登录和已认证访问的设备摘要,帮助你发现异常活动。",
688
+ noRecentActivity: "还没有最近访问活动记录。",
689
+ sourceLogin: "登录",
690
+ sourceToken: "已认证访问",
691
+ newAccess: "新访问",
692
+ notAvailable: "暂无记录",
693
+ revokeTitle: "发现异常?踢掉所有其他设备",
694
+ revokeDescription:
695
+ "输入当前密码后,所有旧 token 会立刻失效。当前设备会自动换成新的 token,其它设备会被退出。",
696
+ revokeButton: "踢掉所有其他设备",
697
+ revokeModalTitle: "踢掉所有其他设备",
698
+ revokeModalHint:
699
+ "如果你怀疑账号已在陌生设备登录,可以立即让所有旧 token 失效。为了保留当前设备登录,需要先验证一次当前密码。",
700
+ currentPasswordLabel: "当前密码",
701
+ currentPasswordPlaceholder: "输入当前密码后继续",
702
+ currentPasswordRequired: "请输入当前密码后再继续。",
703
+ revokeConfirmButton: "确认踢掉并更新 token",
704
+ revokeModalNote:
705
+ "执行后,当前页面会切换到新 token;其余设备上的旧会话会在下一次请求时失效。",
706
+ revokeSuccess: "已踢掉其他设备,并为当前设备更新了新的登录凭证。",
707
+ revokeWrongPassword: "当前密码不正确,请重试。",
708
+ revokeReplaceTokenFailed:
709
+ "旧设备已被踢掉,但当前设备保存新 token 失败。请立即刷新页面并重新登录。",
710
+ revokeFailed: "操作失败,请稍后重试。",
711
+ revokeMissingLocale: "当前账号缺少登录环境信息,请重新登录后再试。",
712
+ },
713
+ home: "首页",
714
+
715
+ // === Combined Welcome Section ===
716
+ welcomeSection: {
717
+ heroTitle: "让 Nolo 认识你,记住你,和你一起创造",
718
+ heroDescription:
719
+ "你只要像平常一样聊天,就能把任务交给多个 Agent 协作推进,并把想法做成文档、应用、图片、视频和可复用流程,不用每次都重新铺垫上下文。",
720
+ ctaButton: "免费开始",
721
+ secondaryExplore: "先逛逛公开 AI",
722
+ secondaryDownload: "下载桌面端或移动端",
723
+ secondaryPricing: "了解定价",
724
+ trustMicro: "免费注册 · 无需信用卡 · 随时可停",
725
+ socialProof: {
726
+ label: "已接入的 AI 模型与平台",
727
+ platforms: "Web · 桌面端 · iOS",
728
+ },
729
+ bottomCta: {
730
+ title: "随时都可以开始",
731
+ desc: "有个模糊的想法就够了,哪怕还没想清楚。它会帮你把剩下的想明白。",
732
+ cta: "开启我的工作台",
733
+ trust: "免费注册 · 无需信用卡",
734
+ },
735
+ highlightsLabel: "首页价值亮点",
736
+ highlights: {
737
+ memory: "上下文持久记忆",
738
+ agents: "多 Agent 协作",
739
+ output: "文档图片视频可直接产出",
740
+ },
741
+ proof: {
742
+ kicker: "为什么从这里开始",
743
+ title: "更适合想要推进结果的人,而不只是想换个 prompt 皮肤的人",
744
+ description:
745
+ "如果你需要的是记住上下文、把任务委托出去、最后拿到真实成果,而不是同时开很多 AI 标签页自己拼,Nolo 的价值会更明显。",
746
+ label: "首页能力证明",
747
+ multiAgent: "一个 Agent 自己带,多个 Agent 也能分工协作",
748
+ multiOutput: "想法可以落成文档、应用、图片、视频和可复用流程",
749
+ multiDevice: "先在网页上体验,再到桌面端或移动端继续",
750
+ },
751
+ fit: {
752
+ kicker: "适合谁",
753
+ title: "如果你的瓶颈是把想法推进成结果,这个入口更适合你",
754
+ founders: "会做产品的创始人:想更快完成研究、内容、验证和交付",
755
+ creators: "需要持续迭代的人:想把上下文、草稿、素材生成集中在一个地方",
756
+ operators: "有重复流程的人:希望 AI 记住规则并反复帮你执行",
757
+ },
758
+ faq: {
759
+ kicker: "常见问题",
760
+ title: "你真正想知道的问题,在这里",
761
+ description: "几个注册前最常被问到的实际问题。",
762
+ context: {
763
+ question: "这是免费的吗?",
764
+ answer:
765
+ "基础功能免费。高级模型(GPT-4o、Claude 等)按用量计费,不需要按月订阅。没有任务,不花钱。",
766
+ },
767
+ output: {
768
+ question: "跟直接用 ChatGPT 或 Claude 有什么不一样?",
769
+ answer:
770
+ "Nolo 会跨会话记住你的上下文、规则和历史。而且你可以同时调用多个 Agent 并行处理同一任务——更快,也能得到多个视角的答案。",
771
+ },
772
+ entry: {
773
+ question: "我需要会编程吗?",
774
+ answer:
775
+ "完全不需要。用自然语言说你想要什么就行。做应用、生成图片、写文档——全靠对话完成。",
776
+ },
777
+ },
778
+ finalCta: {
779
+ kicker: "按你的意图走最短路径",
780
+ title: "想先看,就先逛。已经知道自己要做什么,就直接开始搭。",
781
+ description:
782
+ "两条路都有真实落点。选一个你现在更对得上的,走下去就行。",
783
+ primary: "创建我的工作台",
784
+ secondary: "浏览公开 AI",
785
+ },
786
+ cards: {
787
+ context: {
788
+ title: "说一次,它就一直记得",
789
+ desc: "你定规则,它认真记住。你想亲自掌舵,它就安静配合;你想省心托管,它就把流程接到底。",
790
+ bubble: "知道了,不废话。上次到第三步了,接着来。",
791
+ },
792
+ battle: {
793
+ title: "你定方向,Agent 把路走完",
794
+ desc: "你可以亲自指挥,也可以把目标交给多个 Agent 协同推进;每一步看得见,每个结果都让你有底。",
795
+ topic: "先做 MVP,还是先找用户?",
796
+ posA: "先做出来,用数据说话,试错成本低",
797
+ posB: "先找用户聊,搞清楚再动手,不走弯路",
798
+ result: "两种观点,你来定",
799
+ },
800
+ create: {
801
+ title: "你负责天马行空",
802
+ desc: "网页、3D、图片、视频、文档都可以。你给一个想法,我们陪你把它做成拿得出手的成果。",
803
+ },
804
+ auto: {
805
+ title: "今晚交给它,明早来验收",
806
+ desc: "你现在做可以,手机下任务也可以;它会在夜里持续干活,早上把结果交到你手里。",
807
+ taskName: "夜间任务持续推进中",
808
+ },
809
+ },
810
+ },
811
+ // === End Welcome Section ===
812
+ quickChat: {
813
+ placeholder: "我是 {{name}}。想跟我聊聊吗?你也可以在设置里切换 AI 或定制你的专属 AI",
814
+ uploadImage: "上传图片",
815
+ failedToStart: "启动失败",
816
+ createDialogFailed: "创建对话失败",
817
+ initDialogFailed: "初始化对话失败",
818
+ sendMessageFailed: "发送首条消息失败",
819
+ },
820
+ chat: {
821
+ title: "对话设置",
822
+ animationSet: {
823
+ title: "AI 响应动画",
824
+ description: "选择你喜欢的 AI 思考与回复时的加载动画,让对话更有趣。",
825
+ },
826
+ globalPrompt: {
827
+ title: "通用提示词",
828
+ description: "用于向不同的 AI 统一介绍你自己、你的偏好和沟通风格,让所有 AI 在理解你时保持一致。",
829
+ placeholder: "例如:我是一名开发者,喜欢结构清晰、条理分明的回答;代码部分请尽量使用 TypeScript,并附简短说明;当有不确定的地方请先说明假设再给出答案。",
830
+ autoSave: {
831
+ saving: "正在保存…",
832
+ saved: "已自动保存",
833
+ error: "保存失败,将在你继续编辑后重试",
834
+ idle: "内容会自动保存,无需手动提交",
835
+ toastSuccess: "通用提示词已自动保存",
836
+ toastError: "保存失败,请稍后重试",
837
+ },
838
+ },
839
+ readCurrentSpace: {
840
+ title: "读取当前空间内容作为上下文",
841
+ description: "启用后,AI 在回答问题时,可以自动读取当前空间中的文档与笔记,作为补充上下文来理解你的问题。",
842
+ },
843
+ recentContentLimit: {
844
+ title: "最近内容数量",
845
+ description: "设置 AI 上下文中包含的最近文件数量。数字越大,AI 能看到的空间内 容越多,但也会消耗更多 Token。",
846
+ },
847
+ maxMessages: {
848
+ title: "上下文消息数量",
849
+ description: "设置每次对话时携带的历史消息数量。更高的数量能提供更连贯的上下文,但会消耗更多资源。",
850
+ },
851
+ maxExecutionTime: {
852
+ title: "Agent 超时时间 (秒)",
853
+ description: "设置 Agent 单次任务的最大执行时间,超时将自动停止。",
854
+ },
855
+ messageQueued: "消息已排队,将在当前轮次结束后发送",
856
+ cannotSendFileDuringLoop: "Agent 运行中,含附件消息请等待完成后再发送",
857
+ defaultAgent: {
858
+ systemDefault: "系统默认",
859
+ },
860
+ ocrModel: {
861
+ none: "不使用 OCR(pdf.js 提取)",
862
+ recommended: "推荐",
863
+ },
864
+ sidebarVisibleTypes: {
865
+ title: "侧边栏默认显示内容",
866
+ description:
867
+ "设置聊天侧边栏默认显示哪些类型。默认显示对话、文档、表格和应用;你也可以把图片、文档附件、视频、音频、AI 或定时任务一起加进来。",
868
+ hint:
869
+ "至少保留一种类型。这里控制的是默认集合;进入侧边栏后,你仍然可以继续临时切换。",
870
+ options: {
871
+ dialog: "对话",
872
+ page: "文档",
873
+ image: "图片",
874
+ document: "文档附件",
875
+ video: "视频",
876
+ audio: "音频",
877
+ table: "表格",
878
+ file: "附件",
879
+ app: "应用",
880
+ agent: "AI",
881
+ scheduled: "定时任务",
882
+ },
883
+ },
884
+ },
885
+ publicAgents: {
886
+ loadFailed: "加载列表失败",
887
+ searchPlaceholder: "搜索 AI...",
888
+ sortLabel: "排序:",
889
+ sortRecommended: "推荐",
890
+ sortNewest: "最新发布",
891
+ sortPrice: "价格",
892
+ sortFavorite: "收藏",
893
+ filterImageGeneration: "可生成图片",
894
+ },
895
+
896
+ explorePlaza: "探索 AI 广场",
897
+ downloadAndroid: "下载 Android 版",
898
+ downloadWindows: "下载 Windows 版",
899
+ downloadLinux: "下载 Linux 版",
900
+ downloadClient: "下载客户端",
901
+ clientDownloads: {
902
+ eyebrow: "下载",
903
+ title: "Nolo,在每台设备上",
904
+ subtitle: "Android、Windows、Linux、macOS 现已可用。iOS 即将推出。",
905
+ tagline: "安静的工具,清晰的思考。",
906
+ availableNow: "可用",
907
+ comingSoon: "即将推出",
908
+ downloadNow: "立即下载",
909
+ comingSoonAction: "即将推出",
910
+ androidTitle: "Android",
911
+ androidDesc: "APK,直接安装。",
912
+ windowsTitle: "Windows",
913
+ windowsDesc: "Windows 一键安装包。",
914
+ linuxTitle: "Linux",
915
+ linuxDesc: "适配你本地环境的原生包。",
916
+ macosTitle: "macOS",
917
+ macosDesc: "为 Apple Silicon 优化。",
918
+ iosTitle: "iPhone / iPad",
919
+ iosDesc: "开发中,准备好即发布。",
920
+ },
921
+ homeActions: {
922
+ createFailed: "创建失败",
923
+ myContentTitle: "我的内容",
924
+ myContentDesc: "跨 space 查看最近更新的内容",
925
+ myAppsTitle: "我的应用",
926
+ myAppsDesc: "查看和管理你的应用",
927
+ createNoteTitle: "创建笔记",
928
+ createNoteDesc: "记录想法,构建知识",
929
+ createTableTitle: "创建表格",
930
+ createTableDesc: "用结构化视图整理数据",
931
+ createAgentTitle: "创建 AI",
932
+ createAgentDesc: "定制你的专属 AI",
933
+ personalizationTitle: "调整 AI 偏好",
934
+ personalizationDesc: "设置 AI 的语气、知识沉淀和空间读取",
935
+ personalizationFailed: "启动个性化 AI 对话失败",
936
+ pricingTitle: "计费详情",
937
+ pricingDesc: "查看价格规则",
938
+ guideTitle: "使用指南",
939
+ guideDesc: "快速上手技巧",
940
+ downloadClientTitle: "下载客户端",
941
+ downloadClientDesc: "安装桌面端和移动端,换设备也能继续用",
942
+ feedbackTitle: "意见反馈",
943
+ feedbackDesc: "直接和反馈 AI 对话",
944
+ },
945
+ quickStartGuide: {
946
+ title: "快速开始指南",
947
+ description: "打开 nolo 后,先用这三组检查快速确认环境和入口。",
948
+ setupTitle: "1. 先确认当前环境",
949
+ setupItem1: "登录页显示的服务器和语言,就是这次登录真正使用的环境。",
950
+ setupItem2: "如果账号是在别的服务器或语言环境创建的,先切过去再登录。",
951
+ setupItem3: "做 RN smoke test 时,先确认环境,再继续测内容读取和对话写入。",
952
+ shortcutsTitle: "2. 从三个最快入口开始",
953
+ shortcutsItem1: "速记适合立即记下一条想法,并保存成页面。",
954
+ shortcutsItem2: "新对话会直接创建一个默认助手的新会话。",
955
+ shortcutsItem3: "创建 AI 是定制专属助手的最快入口。",
956
+ nextStepsTitle: "3. 如果你感觉哪里不对",
957
+ nextStepsItem1: "登录失败时,先回头检查服务器和语言是否与注册时一致。",
958
+ nextStepsItem2: "最近内容看起来不对时,等同步一会儿,再重新打开目标页面。",
959
+ nextStepsItem3: "发现数据缺失或体验混乱时,可以直接从首页进入反馈入口。",
960
+ },
961
+ notifications: {
962
+ open: "打开通知",
963
+ title: "通知",
964
+ subtitle: "与你相关的最近更新",
965
+ markAllRead: "全部标为已读",
966
+ empty: "暂时还没有通知",
967
+ viewAll: "查看全部通知",
968
+ centerTitle: "你的更新",
969
+ centerSubtitle: "跨设备保留的 space 与 Agent 更新。",
970
+ spaceAddedTitle: "你被加入了一个空间",
971
+ spaceAddedMessage: '你已被加入“{{spaceName}}”',
972
+ dialogFallbackTitle: "对话",
973
+ dialogDoneTitle: "Agent 已完成",
974
+ dialogDoneMessage: '“{{title}}”已完成',
975
+ dialogDoneMessageWithSpace: '“{{title}}”已在“{{spaceName}}”完成',
976
+ dialogFailedTitle: "Agent 运行失败",
977
+ dialogFailedMessage: '“{{title}}”运行失败',
978
+ dialogFailedMessageWithSpace: '“{{title}}”在“{{spaceName}}”运行失败',
979
+ },
980
+ homeTabs: {
981
+ myContent: "我的内容",
982
+ myFavorites: "我的收藏",
983
+ aiPlaza: "AI 广场",
984
+ shareCommunity: "社区分享",
985
+ viewMore: "查看更多",
986
+ enterCommunity: "进入社区",
987
+ myContentPageSubtitle:
988
+ "跨 space 查看最近更新的文档、表格、应用、附件与对话。",
989
+ myFavoritesPageSubtitle:
990
+ "把你收藏的 AI 和内容集中在一个页面里,方便继续使用。",
991
+ myContentEmpty: "还没有内容",
992
+ myContentEmptyFiltered: "还没有{{type}}",
993
+ myContentEmptyHint:
994
+ "任意 space 里的文档、表格、应用、图片、附件和对话,都会按最近更新时间汇总到这里。",
995
+ },
996
+ share_visibility_public: "公开",
997
+ share_visibility_private: "私人",
998
+ tableShare: "表格分享",
999
+ tableShareLoading: "正在读取分享状态...",
1000
+ tableShareSignInRequired: "登录后即可分享这个表格",
1001
+ tableShareNotPublished: "还没有分享到社区",
1002
+ tableSharePublishedStatus: "已经分享到社区",
1003
+ tableSharePublish: "分享到社区",
1004
+ tableShareRepublish: "重新分享",
1005
+ tableSharePublished: "已分享到社区",
1006
+ tableSharePublishFailed: "表格分享失败",
1007
+ tableShareCopyLink: "复制链接",
1008
+ tableShareLinkCopied: "表格分享链接已复制",
1009
+ tableShareLinkGenerated: "表格分享链接已生成",
1010
+ tableShareOpen: "打开分享页",
1011
+ tableShareLoadFailed: "读取表格分享状态失败",
1012
+ tableShareReplicationIssue: "跨服务器同步需要处理",
1013
+ tableShareReplicationLag: "跨服务器同步仍在进行中",
1014
+ myShares: {
1015
+ title: "我的分享",
1016
+ subtitle: "你发布和分享出去的页面、对话、表格与应用。",
1017
+ browseCommunity: "浏览社区",
1018
+ loading: "正在加载...",
1019
+ loadError: "加载分享列表失败",
1020
+ empty: "还没有任何分享。",
1021
+ emptyHint: "在文章、对话或表格页面点击分享按钮即可创建。",
1022
+ deleted: "分享已删除",
1023
+ deleteFailed: "删除失败:{{error}}",
1024
+ loadMore: "加载更多",
1025
+ loadingMore: "加载中...",
1026
+ requireLogin: "请先登录后查看你的分享。",
1027
+ },
1028
+ joinCommunity: "加入我们的社区",
1029
+ invitedBy: "你已被邀请",
1030
+ acceptInvitation: "接受邀请",
1031
+ passwordMinLength: "密码至少需要8个字符",
1032
+ registerSuccess: "注册成功!",
1033
+ registrationFailed: "注册失败",
1034
+ unknown: "未知",
1035
+ code: "邀请码",
1036
+ inviteHeader: "Hi,你收到了来自 {{name}} 的邀请",
1037
+ invitePartnerDescription:
1038
+ "由于邀请人是我们的合作伙伴,注册后你将获赠 6 积分。",
1039
+ inviteGeneralHint: "成功注册即可领取赠送积分!",
1040
+ emailOptionalPlaceholder: "请输入邮箱(选填)",
1041
+ inviterIdOptionalPlaceholder: "请输入推荐人ID(选填)",
1042
+ inviterAvatarAlt: "邀请人头像: {{name}}",
1043
+
1044
+ errors: {
1045
+ loadingMessages: "加载消息失败",
1046
+ },
1047
+ selectADialog: "请选择一个对话",
1048
+ welcomeTitle: "欢迎!请登录以查看和发送消息",
1049
+ welcomeHint: "请登录或注册以开始聊天",
1050
+ tokens: "tokens",
1051
+ in: "输入",
1052
+ out: "输出",
1053
+ loginOtherUser: "登录其他用户",
1054
+ inviteFriend: "邀请朋友",
1055
+ recharge: "充值",
1056
+ balance: "余额",
1057
+ compressedTimes: "已压缩 {{count}} 次",
1058
+
1059
+ // 社区页
1060
+ community_title: "社区广场",
1061
+ community_subtitle: "发现社区成员分享的应用、文章、表格和对话",
1062
+ community_filter_all: "全部",
1063
+ community_filter_app: "应用",
1064
+ community_filter_doc: "文章",
1065
+ community_filter_table: "表格",
1066
+ community_filter_chat: "对话",
1067
+ community_loading: "加载中…",
1068
+ community_loading_more: "加载中…",
1069
+ community_load_more: "加载更多",
1070
+ community_load_error: "加载社区内容失败",
1071
+ community_empty: "暂无内容",
1072
+ openApp: "打开应用",
1073
+ version: {
1074
+ history: "版本历史",
1075
+ pinned: "已固定",
1076
+ auto: "自动保存",
1077
+ empty: "暂无版本历史记录。",
1078
+ autoSave: "自动保存",
1079
+ pin: "固定",
1080
+ unpin: "取消固定",
1081
+ editLabel: "编辑标签",
1082
+ restore: "恢复",
1083
+ cannotDeletePinned: "请先取消固定再删除",
1084
+ pinCount: "已固定 {{count}}/10",
1085
+ totalCount: "自动 {{count}}/50",
1086
+ justNow: "刚刚",
1087
+ minsAgo: "{{count}} 分钟前",
1088
+ hrsAgo: "{{count}} 小时前",
1089
+ daysAgo: "{{count}} 天前",
1090
+ },
1091
+ },
1092
+ },
1093
+ [Language.ZH_HANT]: {
1094
+ translation: {
1095
+ languageName: "繁體中文",
1096
+ login: "登入",
1097
+ logout: "登出",
1098
+ username: "用戶名",
1099
+ password: "密碼",
1100
+ usernameRequired: "請輸入用戶名",
1101
+ passwordRequired: "請輸入密碼",
1102
+ signup: "註冊",
1103
+ submit: "提交",
1104
+ loading: "載入中...",
1105
+ noAccount: "沒有帳號?",
1106
+ signUpNow: "立即註冊",
1107
+ enterPassword: "請輸入密碼",
1108
+ enterUsername: "請輸入用戶名",
1109
+ enterEmail: "請輸入郵箱",
1110
+ rememberMe: "記住我",
1111
+ forgotPassword: "忘記密碼?",
1112
+ path: "路徑",
1113
+ content: "內容",
1114
+ title: "標題",
1115
+ deleteDialogTitle: '刪除"{{title}}"',
1116
+ deleteDialogConfirmation: "您確定要刪除這個對話嗎?此操作不可撤銷。",
1117
+ deleteAgentCurrentCopyConfirmation:
1118
+ "確定要刪除這個 Agent 的目前副本嗎?這不會刪除公開副本,也不會刪除歷史對話。",
1119
+ deleteResourceConfirmation: "您確定要刪除這個資源嗎?此操作不可撤銷。",
1120
+ confirm: "確認",
1121
+ cancel: "取消",
1122
+ save: "儲存",
1123
+ close: "關閉",
1124
+ confirmDelete: "確認刪除",
1125
+ deleteDialog: "刪除對話",
1126
+ edit: "編輯",
1127
+ delete: "刪除",
1128
+ add: "新增",
1129
+ haveAccount: "已有帳號?",
1130
+ loginNow: "立即登入",
1131
+ betaAccess: "申請內測資格",
1132
+ betaDescription:
1133
+ "我們目前處於內測階段,僅開放有限名額。請留下您的郵箱並告訴我們您的使用場景。",
1134
+ emailRequired: "請輸入郵箱",
1135
+ invalidEmail: "請輸入有效的郵箱",
1136
+ emailExists: "該郵箱已申請",
1137
+ applyForAccess: "申請內測資格",
1138
+ operationFailed: "操作失敗",
1139
+ networkError: "網絡錯誤",
1140
+ welcomeBack: "歡迎回來!請輸入您的帳戶資訊。",
1141
+ createAccount: "建立帳戶,開啟您的旅程。",
1142
+ loginFailed: "登入失敗",
1143
+ signupFailed: "註冊失敗",
1144
+ authLoginTargetLabel: "當前登入環境",
1145
+ authLoginSwitchHint: "如果你是在其他伺服器或語言環境註冊的,請先切換後再登入。",
1146
+ authLoginNotFoundHint:
1147
+ "目前正在 {{server}} · {{locale}} 下查找帳號;如果你是在其他伺服器或語言環境註冊的,請先切換後再登入。",
1148
+ authLoginUnauthorizedHint:
1149
+ "這次請求已到達 {{server}} · {{locale}},但被伺服器拒絕;請確認伺服器與語言和註冊時一致。",
1150
+ purposeHolder: "您打算用我們的產品做什麼?",
1151
+ purposeRequired: "請告訴我們您的使用目的",
1152
+ purposeTooShort: "請提供更多詳細信息(至少10個字符)",
1153
+ settings: {
1154
+ title: "設置",
1155
+ nav: {
1156
+ appearance: "外觀",
1157
+ account: "帳戶",
1158
+ security: "安全",
1159
+ editor: "編輯器",
1160
+ chat: "對話",
1161
+ productivity: "效率",
1162
+ secrets: "密鑰",
1163
+ },
1164
+ appearance: {
1165
+ title: "外觀",
1166
+ theme: {
1167
+ title: "主題",
1168
+ description: "自訂應用程式的顏色方案。",
1169
+ changeTo: "切換主題到{{themeName}}",
1170
+ },
1171
+ mode: {
1172
+ title: "深色模式",
1173
+ description: "調整應用程式的淺色或深色模式設置。",
1174
+ },
1175
+ density: {
1176
+ title: "版面密度",
1177
+ description: "緊湊模式讓介面更俐落,寬鬆模式讓按鈕和列表更容易點擊。",
1178
+ },
1179
+ font: {
1180
+ title: "字體",
1181
+ description: "選擇你喜歡的介面字體,包括宋體、楷體等中文風格。",
1182
+ },
1183
+ },
1184
+ theme: {
1185
+ light: "淺色模式",
1186
+ dark: "深色模式",
1187
+ system: "跟隨系統",
1188
+ },
1189
+ font: {
1190
+ system: "系統預設",
1191
+ hei: "黑體 / 無襯線",
1192
+ song: "宋體 / 襯線",
1193
+ kai: "楷體",
1194
+ "fang-song": "仿宋",
1195
+ },
1196
+ },
1197
+ introtext: "點擊這裡開始編輯",
1198
+ hintofKey:
1199
+ "提示:用戶名密碼不作字數和符號限制,暫不提供找回密碼,建議使用複雜的密碼組合,並牢記密碼",
1200
+ "Nothing to see here!": "這裡沒有內容!",
1201
+ "Go to Home": "返回首頁",
1202
+ "Go Back": "返回",
1203
+ deleteSuccess: "刪除成功",
1204
+ accountDeletion: {
1205
+ sectionTitle: "危險操作",
1206
+ title: "刪除帳戶",
1207
+ description: "刪除後將永久移除您的帳戶及相關資料,此操作不可撤銷。",
1208
+ button: "刪除帳戶",
1209
+ confirmTitle: "確認刪除您的帳戶?",
1210
+ confirmMessage:
1211
+ "這會永久刪除您的帳戶及相關資料,並立即登出目前登入。此操作不可撤銷。",
1212
+ confirmButton: "永久刪除",
1213
+ success: "您的帳戶已被刪除。",
1214
+ failed: "刪除帳戶失敗,請稍後再試。",
1215
+ },
1216
+ accountSecurity: {
1217
+ title: "帳號安全",
1218
+ panelDescription:
1219
+ "查看最近登入與存取痕跡,幫助你更早發現異常裝置或陌生 IP。",
1220
+ lastLoginAt: "最近登入",
1221
+ lastActiveAt: "最近活躍",
1222
+ recentActivity: "最近存取活動",
1223
+ recentActivityHint:
1224
+ "這裡會顯示最近登入與已認證存取的裝置摘要,幫助你發現異常活動。",
1225
+ noRecentActivity: "目前還沒有最近活動記錄。",
1226
+ sourceLogin: "登入",
1227
+ sourceToken: "已認證存取",
1228
+ newAccess: "新存取",
1229
+ notAvailable: "暫無記錄",
1230
+ revokeTitle: "發現異常?踢掉所有其他裝置",
1231
+ revokeDescription:
1232
+ "輸入目前密碼後,所有舊 token 會立刻失效。當前裝置會自動換成新的 token,其它裝置會被登出。",
1233
+ revokeButton: "踢掉所有其他裝置",
1234
+ revokeModalTitle: "踢掉所有其他裝置",
1235
+ revokeModalHint:
1236
+ "如果你懷疑帳號已在陌生裝置登入,可以立刻讓所有舊 token 失效。為了保留當前裝置登入,需要先驗證一次目前密碼。",
1237
+ currentPasswordLabel: "目前密碼",
1238
+ currentPasswordPlaceholder: "輸入目前密碼後繼續",
1239
+ currentPasswordRequired: "請輸入目前密碼後再繼續。",
1240
+ revokeConfirmButton: "確認踢掉並更新 token",
1241
+ revokeModalNote:
1242
+ "執行後,當前頁面會切換到新 token;其餘裝置上的舊會話會在下一次請求時失效。",
1243
+ revokeSuccess: "已踢掉其他裝置,並為當前裝置更新新的登入憑證。",
1244
+ revokeWrongPassword: "目前密碼不正確,請重試。",
1245
+ revokeReplaceTokenFailed:
1246
+ "舊裝置已被踢掉,但當前裝置保存新 token 失敗。請立即重新整理頁面並重新登入。",
1247
+ revokeFailed: "操作失敗,請稍後重試。",
1248
+ revokeMissingLocale: "目前帳號缺少登入環境資訊,請重新登入後再試。",
1249
+ },
1250
+ home: "首頁",
1251
+
1252
+ // === Combined Welcome Section ===
1253
+ welcomeSection: {
1254
+ heroTitle: "讓 Nolo 認識你,記住你,和你一起創造",
1255
+ heroDescription:
1256
+ "您只要像平常一樣聊天,就能把任務交給多個 Agent 協作推進,並把想法做成文件、應用、圖片、影片和可重複使用的流程,不用每次都重新鋪陳上下文。",
1257
+ ctaButton: "免費開始",
1258
+ secondaryExplore: "先逛逛公開 AI",
1259
+ secondaryDownload: "下載桌面端或行動端",
1260
+ secondaryPricing: "了解定價",
1261
+ trustMicro: "免費註冊 · 無需信用卡 · 隨時可停",
1262
+ socialProof: {
1263
+ label: "已接入的 AI 模型與平台",
1264
+ platforms: "Web · 桌面端 · iOS",
1265
+ },
1266
+ bottomCta: {
1267
+ title: "隨時都可以開始",
1268
+ desc: "有個模糊的想法就夠了,哪怕還沒想清楚。它會幫你把剩下的想明白。",
1269
+ cta: "開啟我的工作台",
1270
+ trust: "免費註冊 · 無需信用卡",
1271
+ },
1272
+ highlightsLabel: "首頁價值亮點",
1273
+ highlights: {
1274
+ memory: "上下文持久記憶",
1275
+ agents: "多 Agent 協作",
1276
+ output: "文件圖片影片可直接產出",
1277
+ },
1278
+ proof: {
1279
+ kicker: "為什麼從這裡開始",
1280
+ title: "更適合想推進結果的人,而不只是想換個 prompt 外皮的人",
1281
+ description:
1282
+ "如果您需要的是記住上下文、把任務委託出去、最後拿到真實成果,而不是同時開很多 AI 分頁自己拼,Nolo 的價值會更明顯。",
1283
+ label: "首頁能力證明",
1284
+ multiAgent: "一個 Agent 自己帶,多個 Agent 也能分工協作",
1285
+ multiOutput: "想法可以落成文件、應用、圖片、影片與可重複使用流程",
1286
+ multiDevice: "先在網頁上體驗,再到桌面端或行動端繼續",
1287
+ },
1288
+ fit: {
1289
+ kicker: "適合誰",
1290
+ title: "如果您的瓶頸是把想法推進成結果,這個入口更適合您",
1291
+ founders: "會做產品的創辦人:想更快完成研究、內容、驗證與交付",
1292
+ creators: "需要持續迭代的人:想把上下文、草稿、素材生成集中在同一個地方",
1293
+ operators: "有重複流程的人:希望 AI 記住規則並反覆替您執行",
1294
+ },
1295
+ faq: {
1296
+ kicker: "常見問題",
1297
+ title: "你真正想知道的問題,在這裡",
1298
+ description: "幾個註冊前最常被問到的實際問題。",
1299
+ context: {
1300
+ question: "這是免費的嗎?",
1301
+ answer:
1302
+ "基礎功能免費。進階模型(GPT-4o、Claude 等)按用量計費,不需要按月訂閱。沒有任務,不花錢。",
1303
+ },
1304
+ output: {
1305
+ question: "跟直接用 ChatGPT 或 Claude 有什麼不一樣?",
1306
+ answer:
1307
+ "Nolo 會跨對話記住您的上下文、規則和歷史。而且您可以同時呼叫多個 Agent 並行處理同一任務——更快,也能獲得多個視角的答案。",
1308
+ },
1309
+ entry: {
1310
+ question: "我需要會寫程式嗎?",
1311
+ answer:
1312
+ "完全不需要。用自然語言說您想要什麼就行。做應用、生成圖片、寫文件——全靠對話完成。",
1313
+ },
1314
+ },
1315
+ finalCta: {
1316
+ kicker: "按您的意圖走最短路徑",
1317
+ title: "想先看,就先逛。已經知道自己要做什麼,就直接開始搭。",
1318
+ description:
1319
+ "兩条路都有真實落點。選一個您現在更對得上的,走下去就好。",
1320
+ primary: "建立我的工作台",
1321
+ secondary: "瀏覽公開 AI",
1322
+ },
1323
+ cards: {
1324
+ context: {
1325
+ title: "說一次,它就一直記得",
1326
+ desc: "您定規則,它認真記住。您想親自掌舵,它就安靜配合;您想省心託管,它就把流程接到底。",
1327
+ bubble: "知道了,不廢話。上次到第三步了,接著來。",
1328
+ },
1329
+ battle: {
1330
+ title: "您定方向,Agent 把路走完",
1331
+ desc: "您可以親自指揮,也可以把目標交給多個 Agent 協同推進;每一步看得見,每個結果都讓您有底。",
1332
+ topic: "先做 MVP,還是先找用戶?",
1333
+ posA: "先做出來,用數據說話,試錯成本低",
1334
+ posB: "先找用戶聊,搞清楚再動手,不走彎路",
1335
+ result: "兩種觀點,您來定",
1336
+ },
1337
+ create: {
1338
+ title: "您負責天馬行空",
1339
+ desc: "網頁、3D、圖片、影片、文件都可以。您給一個想法,我們陪您把它做成拿得出手的成果。",
1340
+ },
1341
+ auto: {
1342
+ title: "今晚交給它,明早來驗收",
1343
+ desc: "您現在做可以,手機下任務也可以;它會在夜裡持續幹活,早上把結果交到您手裡。",
1344
+ taskName: "夜間任務持續推進中",
1345
+ },
1346
+ },
1347
+ },
1348
+ // === End Welcome Section ===
1349
+ quickChat: {
1350
+ placeholder: "我是 {{name}}。想跟我聊聊吗?你也可以在设置里切换 AI 或定制你的专属 AI",
1351
+ uploadImage: "上传圖片",
1352
+ failedToStart: "啟動失敗",
1353
+ createDialogFailed: "建立對話失敗",
1354
+ initDialogFailed: "初始化對話失敗",
1355
+ sendMessageFailed: "發送首條訊息失敗",
1356
+ },
1357
+ chat: {
1358
+ title: "對話設定",
1359
+ animationSet: {
1360
+ title: "AI 回應動畫",
1361
+ description: "選擇您喜愛的 AI 思考與回覆時的載入動畫,讓對話更生動有趣。",
1362
+ },
1363
+ globalPrompt: {
1364
+ title: "通用提示詞",
1365
+ description: "用於向不同的 AI 統一介紹您自己、您的偏好和溝通風格,讓所有 AI 在理解您時保持一致。",
1366
+ placeholder: "例如:我是一名開發者,喜歡結構清晰、條理分明的回答;程式碼部分請盡量使用 TypeScript,並附簡短說明;有不確定的地方請先說明假設再給出答案。",
1367
+ autoSave: {
1368
+ saving: "正在儲存…",
1369
+ saved: "已自動儲存",
1370
+ error: "儲存失敗,將在您繼續編輯後重試",
1371
+ idle: "內容將自動儲存,無需手動提交",
1372
+ toastSuccess: "通用提示詞已自動儲存",
1373
+ toastError: "儲存失敗,請稍後再試",
1374
+ },
1375
+ },
1376
+ readCurrentSpace: {
1377
+ title: "讀取目前空間內容作為上下文",
1378
+ description: "啟用後,AI 在回答問題時,可以自動讀取目前空間中的文件與筆記,作為補充上下文。",
1379
+ },
1380
+ recentContentLimit: {
1381
+ title: "最近內容數量",
1382
+ description: "設定 AI 上下文中包含的最近檔案數量。數字越大,AI 能看到的空間内 容越多,但也會消耗更多 Token。",
1383
+ },
1384
+ maxMessages: {
1385
+ title: "上下文訊息數量",
1386
+ description: "設定每次對話時攜帶的歷史訊息數量。較高的數量能提供更連貫的上下文,但會消耗更多資源。",
1387
+ },
1388
+ maxExecutionTime: {
1389
+ title: "Agent 超時時間(秒)",
1390
+ description: "設定 Agent 單次任務的最大執行時間,超時將自動停止。",
1391
+ },
1392
+ messageQueued: "訊息已排隊,將在目前輪次結束後送出",
1393
+ cannotSendFileDuringLoop: "Agent 執行中,請等待完成後再傳送含附件的訊息",
1394
+ defaultAgent: {
1395
+ systemDefault: "系統預設",
1396
+ },
1397
+ ocrModel: {
1398
+ none: "不使用 OCR(pdf.js 提取)",
1399
+ recommended: "推薦",
1400
+ },
1401
+ sidebarVisibleTypes: {
1402
+ title: "側邊欄預設顯示內容",
1403
+ description:
1404
+ "設定聊天側邊欄預設顯示哪些類型。預設顯示對話、文件、表格與應用;您也可以把圖片、文件附件、影片、音訊、AI 或定時任務一起加入。",
1405
+ hint:
1406
+ "至少保留一種類型。這裡控制的是預設集合;進入側邊欄後,您仍然可以繼續臨時切換。",
1407
+ options: {
1408
+ dialog: "對話",
1409
+ page: "文件",
1410
+ image: "圖片",
1411
+ document: "文件附件",
1412
+ video: "影片",
1413
+ audio: "音訊",
1414
+ table: "表格",
1415
+ file: "附件",
1416
+ app: "應用",
1417
+ agent: "AI",
1418
+ scheduled: "定時任務",
1419
+ },
1420
+ },
1421
+ },
1422
+ publicAgents: {
1423
+ loadFailed: "載入列表失敗",
1424
+ searchPlaceholder: "搜尋 AI...",
1425
+ sortLabel: "排序:",
1426
+ sortRecommended: "推薦",
1427
+ sortNewest: "最新發布",
1428
+ sortPrice: "價格",
1429
+ sortFavorite: "收藏",
1430
+ filterImageGeneration: "可生成圖片",
1431
+ },
1432
+
1433
+ explorePlaza: "探索 AI 廣場",
1434
+ downloadAndroid: "下載 Android 版",
1435
+ downloadWindows: "下載 Windows 版",
1436
+ downloadLinux: "下載 Linux 版",
1437
+ downloadClient: "下載客戶端",
1438
+ clientDownloads: {
1439
+ eyebrow: "下載",
1440
+ title: "Nolo,在每台裝置上",
1441
+ subtitle: "Android、Windows、Linux、macOS 現已可用。iOS 即將推出。",
1442
+ tagline: "安靜的工具,清晰的思考。",
1443
+ availableNow: "可用",
1444
+ comingSoon: "即將推出",
1445
+ downloadNow: "立即下載",
1446
+ comingSoonAction: "即將推出",
1447
+ androidTitle: "Android",
1448
+ androidDesc: "APK,直接安裝。",
1449
+ windowsTitle: "Windows",
1450
+ windowsDesc: "Windows 一鍵安裝包。",
1451
+ linuxTitle: "Linux",
1452
+ linuxDesc: "適配你本地環境的原生包。",
1453
+ macosTitle: "macOS",
1454
+ macosDesc: "為 Apple Silicon 優化。",
1455
+ iosTitle: "iPhone / iPad",
1456
+ iosDesc: "開發中,準備好即發布。",
1457
+ },
1458
+ homeActions: {
1459
+ createFailed: "建立失敗",
1460
+ myContentTitle: "我的內容",
1461
+ myContentDesc: "跨 space 查看最近更新的內容",
1462
+ myAppsTitle: "我的應用",
1463
+ myAppsDesc: "查看和管理你的應用",
1464
+ createNoteTitle: "建立筆記",
1465
+ createNoteDesc: "記錄想法,建構知識",
1466
+ createTableTitle: "建立表格",
1467
+ createTableDesc: "用結構化視圖整理資料",
1468
+ createAgentTitle: "建立 AI",
1469
+ createAgentDesc: "打造你的專屬 AI",
1470
+ personalizationTitle: "調整 AI 偏好",
1471
+ personalizationDesc: "設定 AI 的語氣、知識沉澱與空間讀取",
1472
+ personalizationFailed: "啟動個人化 AI 對話失敗",
1473
+ pricingTitle: "計費詳情",
1474
+ pricingDesc: "查看價格規則",
1475
+ guideTitle: "使用指南",
1476
+ guideDesc: "快速上手技巧",
1477
+ downloadClientTitle: "下載客戶端",
1478
+ downloadClientDesc: "安裝桌面端和行動端,換裝置也能繼續用",
1479
+ feedbackTitle: "意見回饋",
1480
+ feedbackDesc: "直接和回饋 AI 對話",
1481
+ },
1482
+ quickStartGuide: {
1483
+ title: "快速開始指南",
1484
+ description: "打開 nolo 後,先用這三組檢查快速確認環境與入口。",
1485
+ setupTitle: "1. 先確認目前環境",
1486
+ setupItem1: "登入頁顯示的伺服器與語言,就是這次登入真正使用的環境。",
1487
+ setupItem2: "如果帳號是在其他伺服器或語言環境建立的,先切過去再登入。",
1488
+ setupItem3: "做 RN smoke test 時,先確認環境,再繼續測內容讀取與對話寫入。",
1489
+ shortcutsTitle: "2. 從三個最快入口開始",
1490
+ shortcutsItem1: "速記適合立刻記下一條想法,並保存成頁面。",
1491
+ shortcutsItem2: "新對話會直接建立一個預設助手的新會話。",
1492
+ shortcutsItem3: "建立 AI 是打造專屬助手的最快入口。",
1493
+ nextStepsTitle: "3. 如果你覺得哪裡不對",
1494
+ nextStepsItem1: "登入失敗時,先回頭檢查伺服器與語言是否和註冊時一致。",
1495
+ nextStepsItem2: "最近內容看起來不對時,等同步一會兒,再重新打開目標頁面。",
1496
+ nextStepsItem3: "發現資料缺失或體驗混亂時,可以直接從首頁進入回饋入口。",
1497
+ },
1498
+ notifications: {
1499
+ open: "開啟通知",
1500
+ title: "通知",
1501
+ subtitle: "與你相關的最近更新",
1502
+ markAllRead: "全部標示為已讀",
1503
+ empty: "目前還沒有通知",
1504
+ viewAll: "查看全部通知",
1505
+ centerTitle: "你的更新",
1506
+ centerSubtitle: "跨裝置保留的 space 與 Agent 更新。",
1507
+ spaceAddedTitle: "你被加入了一個空間",
1508
+ spaceAddedMessage: '你已被加入「{{spaceName}}」',
1509
+ dialogFallbackTitle: "對話",
1510
+ dialogDoneTitle: "Agent 已完成",
1511
+ dialogDoneMessage: '「{{title}}」已完成',
1512
+ dialogDoneMessageWithSpace: '「{{title}}」已在「{{spaceName}}」完成',
1513
+ dialogFailedTitle: "Agent 執行失敗",
1514
+ dialogFailedMessage: '「{{title}}」執行失敗',
1515
+ dialogFailedMessageWithSpace: '「{{title}}」在「{{spaceName}}」執行失敗',
1516
+ },
1517
+ homeTabs: {
1518
+ myContent: "我的內容",
1519
+ myFavorites: "我的收藏",
1520
+ aiPlaza: "AI 廣場",
1521
+ shareCommunity: "社群分享",
1522
+ viewMore: "查看更多",
1523
+ enterCommunity: "進入社群",
1524
+ myContentPageSubtitle:
1525
+ "跨 space 查看最近更新的頁面、表格、應用、檔案與對話。",
1526
+ myFavoritesPageSubtitle:
1527
+ "把你收藏的 AI 和內容集中在同一個頁面,方便繼續使用。",
1528
+ myContentEmpty: "還沒有內容",
1529
+ myContentEmptyFiltered: "還沒有{{type}}",
1530
+ myContentEmptyHint:
1531
+ "任意 space 裡的頁面、表格、應用、圖片和對話,都會依最近更新時間彙總到這裡。",
1532
+ },
1533
+ share_visibility_public: "公開",
1534
+ share_visibility_private: "私人",
1535
+ tableShare: "表格分享",
1536
+ tableShareLoading: "正在讀取分享狀態...",
1537
+ tableShareSignInRequired: "登入後即可分享這個表格",
1538
+ tableShareNotPublished: "還沒有分享到社群",
1539
+ tableSharePublishedStatus: "已經分享到社群",
1540
+ tableSharePublish: "分享到社群",
1541
+ tableShareRepublish: "重新分享",
1542
+ tableSharePublished: "已分享到社群",
1543
+ tableSharePublishFailed: "表格分享失敗",
1544
+ tableShareCopyLink: "複製連結",
1545
+ tableShareLinkCopied: "表格分享連結已複製",
1546
+ tableShareLinkGenerated: "表格分享連結已生成",
1547
+ tableShareOpen: "開啟分享頁",
1548
+ tableShareLoadFailed: "讀取表格分享狀態失敗",
1549
+ tableShareReplicationIssue: "跨伺服器同步需要處理",
1550
+ tableShareReplicationLag: "跨伺服器同步仍在進行中",
1551
+ myShares: {
1552
+ title: "我的分享",
1553
+ subtitle: "你發布和分享出去的頁面、對話、表格與應用。",
1554
+ browseCommunity: "瀏覽社群",
1555
+ loading: "載入中...",
1556
+ loadError: "載入分享清單失敗",
1557
+ empty: "還沒有任何分享。",
1558
+ emptyHint: "在文章或對話頁面點擊分享按鈕即可建立。",
1559
+ deleted: "分享已刪除",
1560
+ deleteFailed: "刪除失敗:{{error}}",
1561
+ loadMore: "載入更多",
1562
+ loadingMore: "載入中...",
1563
+ requireLogin: "請先登入後查看你的分享。",
1564
+ },
1565
+ joinCommunity: "加入我們的社區",
1566
+ invitedBy: "您已被邀請",
1567
+ acceptInvitation: "接受邀請",
1568
+ passwordMinLength: "密碼至少需要8個字符",
1569
+ registerSuccess: "註冊成功!",
1570
+ registrationFailed: "註冊失敗",
1571
+ unknown: "未知",
1572
+ code: "邀請碼",
1573
+ inviteHeader: "Hi,您收到了來自 {{name}} 的邀請",
1574
+ invitePartnerDescription:
1575
+ "由於邀請人是我們的合作夥伴,註冊後您將獲贈 6 積分。",
1576
+ inviteGeneralHint: "成功註冊即可領取贈送積分!",
1577
+ emailOptionalPlaceholder: "請輸入電郵(選填)",
1578
+ inviterIdOptionalPlaceholder: "請輸入推薦人ID(選填)",
1579
+ inviterAvatarAlt: "邀請人頭像: {{name}}",
1580
+
1581
+ errors: {
1582
+ loadingMessages: "加載消息失敗",
1583
+ },
1584
+ selectADialog: "請選擇一個對話",
1585
+ welcomeTitle: "歡迎!請登入以查看和發送訊息",
1586
+ welcomeHint: "請登入或註冊以開始聊天",
1587
+ tokens: "tokens",
1588
+ in: "輸入",
1589
+ out: "輸出",
1590
+ loginOtherUser: "登入其他用戶",
1591
+ compressedTimes: "已壓縮 {{count}} 次",
1592
+
1593
+ // 社群頁
1594
+ community_title: "社群廣場",
1595
+ community_subtitle: "探索社群成員分享的應用、文章、表格與對話",
1596
+ community_filter_all: "全部",
1597
+ community_filter_app: "應用",
1598
+ community_filter_doc: "文章",
1599
+ community_filter_table: "表格",
1600
+ community_filter_chat: "對話",
1601
+ community_loading: "載入中…",
1602
+ community_loading_more: "載入中…",
1603
+ community_load_more: "載入更多",
1604
+ community_load_error: "載入社群內容失敗",
1605
+ community_empty: "尚無內容",
1606
+ openApp: "開啟應用",
1607
+ version: {
1608
+ history: "版本歷史",
1609
+ pinned: "已固定",
1610
+ auto: "自動儲存",
1611
+ empty: "暫無版本歷史記錄。",
1612
+ autoSave: "自動儲存",
1613
+ pin: "固定",
1614
+ unpin: "取消固定",
1615
+ editLabel: "編輯標籤",
1616
+ restore: "還原",
1617
+ cannotDeletePinned: "請先取消固定再刪除",
1618
+ pinCount: "已固定 {{count}}/10",
1619
+ totalCount: "自動 {{count}}/50",
1620
+ justNow: "剛剛",
1621
+ minsAgo: "{{count}} 分鐘前",
1622
+ hrsAgo: "{{count}} 小時前",
1623
+ daysAgo: "{{count}} 天前",
1624
+ },
1625
+ },
1626
+ },
1627
+ [Language.JA]: {
1628
+ translation: {
1629
+ languageName: "日本語",
1630
+ login: "ログイン",
1631
+ logout: "ログアウト",
1632
+ username: "ユーザーネーム",
1633
+ password: "パスワード",
1634
+ usernameRequired: "ユーザーネームを入力してください",
1635
+ passwordRequired: "パスワードを入力してください",
1636
+ signup: "サインアップ",
1637
+ submit: "送信",
1638
+ loading: "読み込み中...",
1639
+ noAccount: "アカウントをお持ちでない方",
1640
+ signUpNow: "今すぐ登録",
1641
+ enterPassword: "パスワードを入力",
1642
+ enterUsername: "ユーザーネームを入力",
1643
+ enterEmail: "メールアドレスを入力",
1644
+ rememberMe: "ログイン情報を保存",
1645
+ forgotPassword: "パスワードをお忘れの方",
1646
+ path: "パス",
1647
+ content: "コンテンツ",
1648
+ title: "タイトル",
1649
+ deleteDialogTitle: '"{{title}}"を削除',
1650
+ deleteDialogConfirmation:
1651
+ "この対話を削除してもよろしいですか?この操作は取り消せません。",
1652
+ deleteAgentCurrentCopyConfirmation:
1653
+ "このエージェントの現在のコピーを削除しますか?公開コピーや過去の会話は削除されません。",
1654
+ deleteResourceConfirmation:
1655
+ "このリソースを削除してもよろしいですか?この操作は取り消せません。",
1656
+ confirm: "確認",
1657
+ cancel: "キャンセル",
1658
+ save: "保存",
1659
+ close: "閉じる",
1660
+ messageOrImageHere:
1661
+ "メッセージを入力またはここに画像をドラッグ&ドロップ",
1662
+ confirmDelete: "削除を確認",
1663
+ deleteDialog: "ダイアログを削除",
1664
+ edit: "編集",
1665
+ delete: "削除",
1666
+ add: "追加",
1667
+ haveAccount: "アカウントをお持ちの方",
1668
+ loginNow: "ログインする",
1669
+ betaAccess: "ベータテスト参加申請",
1670
+ betaDescription:
1671
+ "現在ベータテスト段階で、参加枠に限りがございます。メールアドレスと使用目的をご記入ください。",
1672
+ emailRequired: "メールアドレスを入力してください",
1673
+ invalidEmail: "有効なメールアドレスを入力してください",
1674
+ emailExists: "このメールアドレスは既に申請済みです",
1675
+ applyForAccess: "テスト参加を申請",
1676
+ operationFailed: "操作に失敗しました",
1677
+ networkError: "ネットワークエラー",
1678
+ welcomeBack: "お帰りなさい。アカウント情報を入力して続行してください。",
1679
+ createAccount: "アカウントを作成して、旅を始めましょう。",
1680
+ loginFailed: "ログインに失敗しました",
1681
+ signupFailed: "サインアップに失敗しました",
1682
+ authLoginTargetLabel: "現在のログイン先",
1683
+ authLoginSwitchHint:
1684
+ "このアカウントを別のサーバーまたは言語で作成した場合は、切り替えてから再度ログインしてください。",
1685
+ authLoginNotFoundHint:
1686
+ "{{server}} · {{locale}} でアカウントを確認しています。別のサーバーまたは言語で登録した場合は、切り替えてから再度ログインしてください。",
1687
+ authLoginUnauthorizedHint:
1688
+ "リクエストは {{server}} · {{locale}} に到達しましたが拒否されました。登録時のサーバーと言語の組み合わせと一致しているか確認してください。",
1689
+ purposeHolder: "当製品をどのように使用されたいですか?",
1690
+ purposeRequired: "ご使用目的をお聞かせください",
1691
+ purposeTooShort: "より詳しい情報をご記入ください(10文字以上)",
1692
+ settings: {
1693
+ title: "設定",
1694
+ nav: {
1695
+ appearance: "外観",
1696
+ account: "アカウント",
1697
+ security: "セキュリティ",
1698
+ editor: "エディタ",
1699
+ chat: "会話",
1700
+ productivity: "効率",
1701
+ secrets: "シークレット",
1702
+ },
1703
+ appearance: {
1704
+ title: "外観",
1705
+ theme: {
1706
+ title: "テーマ",
1707
+ description: "アプリケーションの配色をカスタマイズします。",
1708
+ changeTo: "テーマを{{themeName}}に変更",
1709
+ },
1710
+ mode: {
1711
+ title: "ダークモード",
1712
+ description:
1713
+ "アプリケーションのライトモードまたはダークモード設定を調整します。",
1714
+ },
1715
+ density: {
1716
+ title: "レイアウト密度",
1717
+ description:
1718
+ "コンパクトは表示を引き締め、ゆったりはボタンやリストを押しやすくします。",
1719
+ },
1720
+ font: {
1721
+ title: "フォント",
1722
+ description:
1723
+ "宋体のような中文フォントを含め、好みのインターフェース用フォントを選べます。",
1724
+ },
1725
+ },
1726
+ theme: {
1727
+ light: "ライトモード",
1728
+ dark: "ダークモード",
1729
+ system: "システムに従う",
1730
+ },
1731
+ font: {
1732
+ system: "システム標準",
1733
+ hei: "ゴシック / 黒体",
1734
+ song: "明朝 / 宋体",
1735
+ kai: "楷書",
1736
+ "fang-song": "仿宋",
1737
+ },
1738
+ },
1739
+ introtext: "編集を開始するにはここをクリック",
1740
+ hintofKey:
1741
+ "ヒント:ユーザー名とパスワードには文字数や記号の制限はありません。パスワードの再設定は提供されていませんので、複雑なパスワードの組み合わせを使用し、パスワードを覚えておいてください",
1742
+ "Nothing to see here!": "ここには何もありません!",
1743
+ "Go to Home": "ホームに戻る",
1744
+ "Go Back": "戻る",
1745
+ deleteSuccess: "削除成功",
1746
+ accountDeletion: {
1747
+ sectionTitle: "危険操作",
1748
+ title: "アカウントを削除",
1749
+ description:
1750
+ "アカウントと関連データを完全に削除します。この操作は元に戻せません。",
1751
+ button: "アカウントを削除",
1752
+ confirmTitle: "アカウントを削除しますか?",
1753
+ confirmMessage:
1754
+ "アカウントと関連データが完全に削除され、すぐにサインアウトされます。この操作は元に戻せません。",
1755
+ confirmButton: "完全に削除",
1756
+ success: "アカウントを削除しました。",
1757
+ failed: "アカウントの削除に失敗しました。もう一度お試しください。",
1758
+ },
1759
+ accountSecurity: {
1760
+ title: "アカウントの安全性",
1761
+ panelDescription:
1762
+ "最近のログインとアクセス痕跡を確認し、見慣れない端末や IP に早めに気づけるようにします。",
1763
+ lastLoginAt: "前回のログイン",
1764
+ lastActiveAt: "最近の利用",
1765
+ recentActivity: "最近のアクセス履歴",
1766
+ recentActivityHint:
1767
+ "最近のログインと認証済みアクセスの概要を表示し、不審な利用に気づきやすくします。",
1768
+ noRecentActivity: "最近のアクセス履歴はまだありません。",
1769
+ sourceLogin: "ログイン",
1770
+ sourceToken: "認証済みアクセス",
1771
+ newAccess: "新しいアクセス",
1772
+ notAvailable: "記録なし",
1773
+ revokeTitle: "異常を見つけたら、他の端末をすべてログアウト",
1774
+ revokeDescription:
1775
+ "現在のパスワードを入力すると、古い token はすぐに無効になります。この端末は自動で新しい token に切り替わります。",
1776
+ revokeButton: "他の端末をログアウト",
1777
+ revokeModalTitle: "他の端末をすべてログアウト",
1778
+ revokeModalHint:
1779
+ "見慣れない端末でアカウントが使われている疑いがある場合は、今すぐ古い token をすべて無効化できます。この端末のログインを維持するため、現在のパスワードを一度だけ確認します。",
1780
+ currentPasswordLabel: "現在のパスワード",
1781
+ currentPasswordPlaceholder: "現在のパスワードを入力してください",
1782
+ currentPasswordRequired: "続行するには現在のパスワードを入力してください。",
1783
+ revokeConfirmButton: "古い token を無効化してこの端末を維持",
1784
+ revokeModalNote:
1785
+ "実行後、このページは新しい token に切り替わり、他の端末の旧セッションは次のリクエスト時に失効します。",
1786
+ revokeSuccess:
1787
+ "他の端末をログアウトし、この端末は新しい token に切り替わりました。",
1788
+ revokeWrongPassword: "現在のパスワードが正しくありません。もう一度お試しください。",
1789
+ revokeReplaceTokenFailed:
1790
+ "他の端末のログアウトには成功しましたが、この端末で新しい token を保存できませんでした。すぐにページを更新して再ログインしてください。",
1791
+ revokeFailed: "操作に失敗しました。しばらくしてからもう一度お試しください。",
1792
+ revokeMissingLocale:
1793
+ "このアカウントにはログイン環境情報が不足しています。再ログインしてからお試しください。",
1794
+ },
1795
+ home: "ホーム",
1796
+
1797
+ // === Combined Welcome Section ===
1798
+ welcomeSection: {
1799
+ heroTitle: "AI が文脈を覚えて、仕事を仕上げる",
1800
+ heroDescription:
1801
+ "いつものように話しかけるだけで、複数の Agent に仕事を任せ、アイデアをドキュメント、アプリ、画像、動画、再利用できるワークフローへ変えられます。毎回ゼロから文脈を説明し直す必要はありません。",
1802
+ ctaButton: "無料で始める",
1803
+ secondaryExplore: "公開 AI を見る",
1804
+ secondaryDownload: "デスクトップ / モバイルを入手",
1805
+ secondaryPricing: "料金を見る",
1806
+ trustMicro: "無料登録 · クレジットカード不要 · いつでも退会可",
1807
+ socialProof: {
1808
+ label: "対応モデルとプラットフォーム",
1809
+ platforms: "Web · デスクトップ · iOS",
1810
+ },
1811
+ bottomCta: {
1812
+ title: "準備が整わなくても、始められます",
1813
+ desc: "漠然としたアイデアでも、まだ答えのない問いでも、それが始まりになります。あとは Nolo が一緒に考えます。",
1814
+ cta: "ワークスペースを開く",
1815
+ trust: "無料 · クレジットカード不要",
1816
+ },
1817
+ highlightsLabel: "ホームの価値ポイント",
1818
+ highlights: {
1819
+ memory: "文脈の永続記憶",
1820
+ agents: "複数 Agent で協調実行",
1821
+ output: "ドキュメント・画像・動画を出力",
1822
+ },
1823
+ proof: {
1824
+ kicker: "ここから始める理由",
1825
+ title: "prompt を少し整えるより、成果を前に進めたい人向けです",
1826
+ description:
1827
+ "文脈を覚え、タスクを任せ、最後に使える成果を受け取りたい人には、複数の AI タブを自分でつなぐより Nolo の価値が出ます。",
1828
+ label: "ホームの根拠ポイント",
1829
+ multiAgent: "1 つの Agent を自分で動かすことも、複数 Agent に分担させることもできる",
1830
+ multiOutput: "アイデアをドキュメント、アプリ、画像、動画、再利用可能なワークフローにできる",
1831
+ multiDevice: "まずは web で試し、その後 desktop / mobile に移れる",
1832
+ },
1833
+ fit: {
1834
+ kicker: "向いている人",
1835
+ title: "アイデアを完成した仕事に変えることがボトルネックなら相性が良いです",
1836
+ founders: "作る力はあるが、調査・コンテンツ・検証・実装をもっと速く進めたい創業者",
1837
+ creators: "文脈、下書き、素材生成、反復作業を 1 か所にまとめたいクリエイター",
1838
+ operators: "同じ手順を繰り返していて、AI に覚えさせて実行させたいオペレーター",
1839
+ },
1840
+ faq: {
1841
+ kicker: "FAQ",
1842
+ title: "始める前に本当に知りたいこと",
1843
+ description: "登録前によく聞かれる、率直な質問への答えです。",
1844
+ context: {
1845
+ question: "無料で使えますか?",
1846
+ answer:
1847
+ "基本機能は無料です。高度なモデル(GPT-4o、Claudeなど)は従量課金で、月額サブスクリプションは不要。タスクがなければ料金もかかりません。",
1848
+ },
1849
+ output: {
1850
+ question: "ChatGPTやClaudeを直接使うのと何が違いますか?",
1851
+ answer:
1852
+ "Noloはセッションをまたいで文脈・ルール・履歴を記憶します。また、複数のAgentが同じタスクを並行処理できるため、結果が早く、複数の視点も得られます。",
1853
+ },
1854
+ entry: {
1855
+ question: "プログラミングの知識は必要ですか?",
1856
+ answer:
1857
+ "まったく必要ありません。やりたいことを自然な言葉で伝えるだけ。アプリ制作・画像生成・文書作成、すべて会話で完結します。",
1858
+ },
1859
+ },
1860
+ finalCta: {
1861
+ kicker: "意図に合う最短ルートへ",
1862
+ title: "まず見たいなら browse。やりたいことが決まっているならそのまま start。",
1863
+ description:
1864
+ "どちらのルートも、ちゃんとした目的地につながっています。今の自分に合う方を選んでください。",
1865
+ primary: "自分のワークスペースを作る",
1866
+ secondary: "公開 AI を見る",
1867
+ },
1868
+ cards: {
1869
+ context: {
1870
+ title: "文脈を理解するAI",
1871
+ desc: "ドキュメントをアップロードすれば、文脈を完全に理解します。ただチャットするだけでなく、最適な専門モデルへ自動で接続します。",
1872
+ bubble: "わかった、無駄なし。前回ステップ3まで、続けよう。",
1873
+ },
1874
+ battle: {
1875
+ title: "もう一人で迷わない",
1876
+ desc: "決断に迷ったら、複数の Agent に任せましょう。多様な視点からの意見を聞き、自信を持って前に進めます。",
1877
+ topic: "MVP を先に作る?それともユーザー調査から?",
1878
+ posA: "まず作る。データで判断、失敗コストも低い",
1879
+ posB: "まずユーザーと話す。正しいものを作る",
1880
+ result: "2つの観点、あなたが決める",
1881
+ },
1882
+ create: {
1883
+ title: "想像を、現実に",
1884
+ desc: "Webサイトや3Dモデルを作りたいですか?アイデアさえあれば大丈夫。コードもモデリングも、私たちが形にします。",
1885
+ },
1886
+ auto: {
1887
+ title: "時間は人生のために",
1888
+ desc: "一度「A、次にB、そしてC」という手順を教えてください。その後の繰り返し作業は私が引き受けます。どうぞ人生を楽しんでください。",
1889
+ taskName: "自動化フロー実行中",
1890
+ },
1891
+ },
1892
+ },
1893
+ // === End Welcome Section ===
1894
+ quickChat: {
1895
+ placeholder: "私は {{name}} です。チャットしませんか?設定で AI を切り替えたり、専用のアシスタントをカスタマイズしたりすることもできます。",
1896
+ uploadImage: "画像をアップロード",
1897
+ failedToStart: "起動に失敗しました",
1898
+ createDialogFailed: "会話の作成に失敗しました",
1899
+ initDialogFailed: "会話の初期化に失敗しました",
1900
+ sendMessageFailed: "最初のメッセージ送信に失敗しました",
1901
+ },
1902
+ chat: {
1903
+ title: "チャット設定",
1904
+ animationSet: {
1905
+ title: "AI応答アニメーション",
1906
+ description: "AIが考えたり返答したりするときのローディングアニメーションを選択してください。",
1907
+ },
1908
+ globalPrompt: {
1909
+ title: "共通プロンプト",
1910
+ description: "すべてのAIアシスタントに対して、あなた自身・好み・コミュニケーションスタイルを統一的に紹介します。",
1911
+ placeholder: "例:私は開発者で、構造的で分かりやすい回答を好みます。コードはTypeScriptで、簡単な説明付きでお願いします。不確かな場合は前提を明示してから答えてください。",
1912
+ autoSave: {
1913
+ saving: "保存中…",
1914
+ saved: "自動保存済み",
1915
+ error: "保存に失敗しました。編集を再開すると再試行します。",
1916
+ idle: "変更は自動的に保存されます。",
1917
+ toastSuccess: "共通プロンプトを保存しました",
1918
+ toastError: "保存に失敗しました。後でもう一度お試しください。",
1919
+ },
1920
+ },
1921
+ readCurrentSpace: {
1922
+ title: "現在のスペースをコンテキストとして読み込む",
1923
+ description: "有効にすると、アシスタントが現在のスペース内のドキュメントやメモを補足コンテキストとして自動的に参照します。",
1924
+ },
1925
+ recentContentLimit: {
1926
+ title: "最近のコンテンツ数",
1927
+ description: "AIコンテキストに含める最近のファイル数を設定します。大きいほどAIが参照できる内容が増えますが、トークン消費も増えます。",
1928
+ },
1929
+ maxMessages: {
1930
+ title: "コンテキストメッセージ数",
1931
+ description: "各会話で持ち越す履歴メッセージ数を設定します。大きい値ほど文脈が豊富になりますが、リソースを多く消費します。",
1932
+ },
1933
+ maxExecutionTime: {
1934
+ title: "Agentタイムアウト(秒)",
1935
+ description: "Agentのタスク実行時間の上限です。超過すると自動的に停止します。",
1936
+ },
1937
+ messageQueued: "メッセージはキューに入り、現在の実行が終わった後に送信されます",
1938
+ cannotSendFileDuringLoop: "Agent 実行中です。添付ファイル付きメッセージは完了後に送信してください",
1939
+ defaultAgent: {
1940
+ systemDefault: "システムデフォルト",
1941
+ },
1942
+ ocrModel: {
1943
+ none: "OCRなし(pdf.js抽出)",
1944
+ recommended: "推奨",
1945
+ },
1946
+ sidebarVisibleTypes: {
1947
+ title: "サイドバーの既定表示内容",
1948
+ description:
1949
+ "チャットのサイドバーで既定表示する種類を選びます。初期状態では会話、ドキュメント、テーブル、アプリを表示し、必要に応じて画像、文書添付、動画、音声、アシスタント、定期タスクも追加できます。",
1950
+ hint:
1951
+ "少なくとも1種類は選択したままにしてください。ここでは既定セットを管理し、サイドバーでは後から一時的に切り替えられます。",
1952
+ options: {
1953
+ dialog: "会話",
1954
+ page: "ドキュメント",
1955
+ image: "画像",
1956
+ document: "文書添付",
1957
+ video: "動画",
1958
+ audio: "音声",
1959
+ table: "テーブル",
1960
+ file: "添付",
1961
+ app: "アプリ",
1962
+ agent: "アシスタント",
1963
+ scheduled: "定期タスク",
1964
+ },
1965
+ },
1966
+ },
1967
+ publicAgents: {
1968
+ loadFailed: "一覧の読み込みに失敗しました",
1969
+ searchPlaceholder: "AIアシスタントを検索...",
1970
+ sortLabel: "並び替え:",
1971
+ sortRecommended: "おすすめ",
1972
+ sortNewest: "新着",
1973
+ sortPrice: "価格",
1974
+ sortFavorite: "お気に入り",
1975
+ filterImageGeneration: "画像生成",
1976
+ },
1977
+
1978
+ explorePlaza: "AIプラザを探索",
1979
+ downloadAndroid: "Android版をダウンロード",
1980
+ downloadWindows: "Windows版をダウンロード",
1981
+ downloadLinux: "Linux版をダウンロード",
1982
+ downloadClient: "クライアントをダウンロード",
1983
+ clientDownloads: {
1984
+ eyebrow: "ダウンロード",
1985
+ title: "Nolo を、すべての端末に",
1986
+ subtitle: "Android・Windows・Linux・macOS は今すぐ利用できます。iOS は近日公開。",
1987
+ tagline: "静かなツール、明快な思考。",
1988
+ availableNow: "利用可能",
1989
+ comingSoon: "近日公開",
1990
+ downloadNow: "ダウンロード",
1991
+ comingSoonAction: "近日公開",
1992
+ androidTitle: "Android",
1993
+ androidDesc: "APK、すぐインストール可能。",
1994
+ windowsTitle: "Windows",
1995
+ windowsDesc: "Windows 向けワンクリックインストーラー。",
1996
+ linuxTitle: "Linux",
1997
+ linuxDesc: "ローカル環境向けネイティブパッケージ。",
1998
+ macosTitle: "macOS",
1999
+ macosDesc: "Apple Silicon に最適化済み。",
2000
+ iosTitle: "iPhone / iPad",
2001
+ iosDesc: "開発中。準備でき次第公開します。",
2002
+ },
2003
+ homeActions: {
2004
+ createFailed: "作成に失敗しました",
2005
+ myContentTitle: "マイコンテンツ",
2006
+ myContentDesc: "複数スペースの最新コンテンツをまとめて見る",
2007
+ myAppsTitle: "マイアプリ",
2008
+ myAppsDesc: "アプリを確認・管理する",
2009
+ createNoteTitle: "ノート作成",
2010
+ createNoteDesc: "アイデアを記録して知識を構築",
2011
+ createTableTitle: "テーブル作成",
2012
+ createTableDesc: "構造化ビューでデータを整理",
2013
+ createAgentTitle: "AIアシスタント作成",
2014
+ createAgentDesc: "あなた専用のエージェントをカスタマイズ",
2015
+ personalizationTitle: "AI の好みを調整",
2016
+ personalizationDesc: "AI の口調・知識化・スペース読取を設定",
2017
+ personalizationFailed: "AI 設定ダイアログの起動に失敗しました",
2018
+ pricingTitle: "料金詳細",
2019
+ pricingDesc: "料金ルールを確認",
2020
+ guideTitle: "使い方ガイド",
2021
+ guideDesc: "クイックスタートのコツ",
2022
+ downloadClientTitle: "クライアントをダウンロード",
2023
+ downloadClientDesc: "デスクトップとモバイルに Nolo をインストール",
2024
+ feedbackTitle: "フィードバック",
2025
+ feedbackDesc: "フィードバック担当エージェントと直接会話",
2026
+ },
2027
+ quickStartGuide: {
2028
+ title: "クイックスタートガイド",
2029
+ description: "nolo を開いたら、まずこの 3 つで環境と入口を素早く確認します。",
2030
+ setupTitle: "1. まず現在の環境を確認する",
2031
+ setupItem1: "ログイン画面に表示されるサーバーと言語が、今回のログイン先です。",
2032
+ setupItem2: "別のサーバーや言語で作成したアカウントなら、先に切り替えてからログインしてください。",
2033
+ setupItem3: "RN の smoke test では、まず環境を確認してから読取や書込の検証に進みます。",
2034
+ shortcutsTitle: "2. 最速の 3 つの入口から始める",
2035
+ shortcutsItem1: "クイックノートは、思いつきをすぐページとして残すのに向いています。",
2036
+ shortcutsItem2: "新規チャットは、既定アシスタントとの新しい対話をすぐ作成します。",
2037
+ shortcutsItem3: "AI 作成は、専用アシスタントを最短でカスタマイズする入口です。",
2038
+ nextStepsTitle: "3. 何かがおかしいと感じたら",
2039
+ nextStepsItem1: "ログインに失敗したら、サーバーと言語が登録時と一致しているか見直してください。",
2040
+ nextStepsItem2: "最近の内容が古く見えるときは、少し待ってから対象ページを開き直してください。",
2041
+ nextStepsItem3: "データ欠落や分かりにくい挙動は、ホームのフィードバック入口からそのまま報告できます。",
2042
+ },
2043
+ notifications: {
2044
+ open: "通知を開く",
2045
+ title: "通知",
2046
+ subtitle: "あなたに関係する最近の更新",
2047
+ markAllRead: "すべて既読にする",
2048
+ empty: "通知はまだありません",
2049
+ viewAll: "すべての通知を見る",
2050
+ centerTitle: "あなたへの更新",
2051
+ centerSubtitle: "space と Agent の更新を端末をまたいで保持します。",
2052
+ spaceAddedTitle: "スペースに追加されました",
2053
+ spaceAddedMessage: '「{{spaceName}}」に追加されました',
2054
+ dialogFallbackTitle: "会話",
2055
+ dialogDoneTitle: "Agent の実行が完了しました",
2056
+ dialogDoneMessage: '「{{title}}」が完了しました',
2057
+ dialogDoneMessageWithSpace: '「{{spaceName}}」で「{{title}}」が完了しました',
2058
+ dialogFailedTitle: "Agent の実行に失敗しました",
2059
+ dialogFailedMessage: '「{{title}}」の実行に失敗しました',
2060
+ dialogFailedMessageWithSpace: '「{{spaceName}}」で「{{title}}」の実行に失敗しました',
2061
+ },
2062
+ homeTabs: {
2063
+ myContent: "マイコンテンツ",
2064
+ myFavorites: "お気に入り",
2065
+ aiPlaza: "AI広場",
2066
+ shareCommunity: "コミュニティ共有",
2067
+ viewMore: "もっと見る",
2068
+ enterCommunity: "コミュニティへ",
2069
+ myContentPageSubtitle:
2070
+ "すべてのスペースを横断して、最近更新されたページ、テーブル、アプリ、ファイル、会話を確認できます。",
2071
+ myFavoritesPageSubtitle:
2072
+ "お気に入り登録したアシスタントとコンテンツをまとめて確認できます。",
2073
+ myContentEmpty: "まだコンテンツがありません",
2074
+ myContentEmptyFiltered: "{{type}}はまだありません",
2075
+ myContentEmptyHint:
2076
+ "どのスペースで作成・更新した内容でも、最新アクティビティ順にここへ集約されます。",
2077
+ },
2078
+ share_visibility_public: "公開",
2079
+ share_visibility_private: "非公開",
2080
+ tableShare: "テーブル共有",
2081
+ tableShareLoading: "共有状態を読み込み中...",
2082
+ tableShareSignInRequired: "このテーブルを共有するにはログインしてください",
2083
+ tableShareNotPublished: "まだコミュニティに共有されていません",
2084
+ tableSharePublishedStatus: "すでにコミュニティに共有されています",
2085
+ tableSharePublish: "コミュニティに共有",
2086
+ tableShareRepublish: "再共有",
2087
+ tableSharePublished: "コミュニティに共有しました",
2088
+ tableSharePublishFailed: "テーブル共有に失敗しました",
2089
+ tableShareCopyLink: "リンクをコピー",
2090
+ tableShareLinkCopied: "テーブル共有リンクをコピーしました",
2091
+ tableShareLinkGenerated: "テーブル共有リンクを生成しました",
2092
+ tableShareOpen: "共有ページを開く",
2093
+ tableShareLoadFailed: "テーブル共有状態の読み込みに失敗しました",
2094
+ tableShareReplicationIssue: "レプリケーションに対応が必要です",
2095
+ tableShareReplicationLag: "レプリケーションはまだ反映中です",
2096
+ myShares: {
2097
+ title: "マイ共有",
2098
+ subtitle: "公開・共有したページ、会話、テーブル、アプリの一覧です。",
2099
+ browseCommunity: "コミュニティを見る",
2100
+ loading: "読み込み中...",
2101
+ loadError: "共有リストの読み込みに失敗しました",
2102
+ empty: "まだ共有がありません。",
2103
+ emptyHint: "記事や会話ページの共有ボタンをクリックして最初の共有を作成してください。",
2104
+ deleted: "共有を削除しました",
2105
+ deleteFailed: "削除に失敗しました:{{error}}",
2106
+ loadMore: "さらに読み込む",
2107
+ loadingMore: "読み込み中...",
2108
+ requireLogin: "共有を表示するにはログインしてください。",
2109
+ },
2110
+ joinCommunity: "コミュニティに参加",
2111
+ invitedBy: "招待されました",
2112
+ acceptInvitation: "招待を受け入れる",
2113
+ passwordMinLength: "パスワードは8文字以上である必要があります",
2114
+ registerSuccess: "登録成功!",
2115
+ registrationFailed: "登録に失敗しました",
2116
+ unknown: "不明",
2117
+ code: "招待コード",
2118
+ inviteHeader: "こんにちは、{{name}}さんからの招待が届きました",
2119
+ invitePartnerDescription:
2120
+ "招待者は私たちのパートナーであるため、登録すると6クレジットのボーナスが付与されます。",
2121
+ inviteGeneralHint: "登録してボーナスクレジットを受け取りましょう!",
2122
+ emailOptionalPlaceholder: "メールアドレスを入力(任意)",
2123
+ inviterIdOptionalPlaceholder: "招待者IDを入力(任意)",
2124
+ inviterAvatarAlt: "招待者のアバター: {{name}}",
2125
+
2126
+ errors: {
2127
+ loadingMessages: "メッセージの読み込みに失敗しました",
2128
+ },
2129
+ selectADialog: "ダイアログを選択してください",
2130
+ welcomeTitle:
2131
+ "ようこそ!メッセージを表示および送信するにはログインしてください",
2132
+ welcomeHint:
2133
+ "チャットを開始するには、ログインまたはサインアップしてください",
2134
+ tokens: "tokens",
2135
+ in: "入力",
2136
+ out: "出力",
2137
+ loginOtherUser: "別のユーザーでログイン",
2138
+ compressedTimes: "{{count}} 回圧縮済み",
2139
+
2140
+ // コミュニティページ
2141
+ community_title: "コミュニティ",
2142
+ community_subtitle: "コミュニティメンバーが共有したアプリ、記事、テーブル、会話を発見しましょう",
2143
+ community_filter_all: "すべて",
2144
+ community_filter_app: "アプリ",
2145
+ community_filter_doc: "記事",
2146
+ community_filter_table: "テーブル",
2147
+ community_filter_chat: "チャット",
2148
+ community_loading: "読み込み中…",
2149
+ community_loading_more: "読み込み中…",
2150
+ community_load_more: "さらに読み込む",
2151
+ community_load_error: "コミュニティコンテンツの読み込みに失敗しました",
2152
+ community_empty: "コンテンツがありません",
2153
+ openApp: "アプリを開く",
2154
+ version: {
2155
+ history: "バージョン履歴",
2156
+ pinned: "ピン留め",
2157
+ auto: "自動保存",
2158
+ empty: "バージョン履歴はまだありません。",
2159
+ autoSave: "自動保存",
2160
+ pin: "ピン留め",
2161
+ unpin: "ピン留め解除",
2162
+ editLabel: "ラベルを編集",
2163
+ restore: "復元",
2164
+ cannotDeletePinned: "削除するには先にピン留めを解除してください",
2165
+ pinCount: "ピン {{count}}/10",
2166
+ totalCount: "自動 {{count}}/50",
2167
+ justNow: "たった今",
2168
+ minsAgo: "{{count}} 分前",
2169
+ hrsAgo: "{{count}} 時間前",
2170
+ daysAgo: "{{count}} 日前",
2171
+ },
2172
+ },
2173
+ },
2174
+ };