libre-webui 0.37.2 → 0.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -65
- package/backend/dist/db.js +1 -1
- package/backend/dist/index.d.ts.map +1 -1
- package/backend/dist/index.js +13 -36
- package/backend/dist/index.js.map +1 -1
- package/backend/dist/main.js +0 -12
- package/backend/dist/main.js.map +1 -1
- package/backend/dist/middleware/cors.d.ts.map +1 -1
- package/backend/dist/middleware/cors.js +5 -0
- package/backend/dist/middleware/cors.js.map +1 -1
- package/backend/dist/persistence/postgresExtensionRepositories.d.ts.map +1 -1
- package/backend/dist/persistence/postgresExtensionRepositories.js +2 -4
- package/backend/dist/persistence/postgresExtensionRepositories.js.map +1 -1
- package/backend/dist/persistence/postgresMigrationRegistry.d.ts.map +1 -1
- package/backend/dist/persistence/postgresMigrationRegistry.js +2 -0
- package/backend/dist/persistence/postgresMigrationRegistry.js.map +1 -1
- package/backend/dist/persistence/postgresWorkRunThinkMigration.d.ts +9 -0
- package/backend/dist/persistence/postgresWorkRunThinkMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresWorkRunThinkMigration.js +39 -0
- package/backend/dist/persistence/postgresWorkRunThinkMigration.js.map +1 -0
- package/backend/dist/persistence/sqliteExtensionRepositories.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteExtensionRepositories.js +2 -4
- package/backend/dist/persistence/sqliteExtensionRepositories.js.map +1 -1
- package/backend/dist/persistence/sqliteMigrations.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteMigrations.js +20 -0
- package/backend/dist/persistence/sqliteMigrations.js.map +1 -1
- package/backend/dist/persistence/sqliteToPostgresMigration.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteToPostgresMigration.js +1 -0
- package/backend/dist/persistence/sqliteToPostgresMigration.js.map +1 -1
- package/backend/dist/platform/workPersistence/postgresWorkPersistence.d.ts.map +1 -1
- package/backend/dist/platform/workPersistence/postgresWorkPersistence.js +3 -2
- package/backend/dist/platform/workPersistence/postgresWorkPersistence.js.map +1 -1
- package/backend/dist/platform/workPersistence/sqliteWorkPersistence.d.ts.map +1 -1
- package/backend/dist/platform/workPersistence/sqliteWorkPersistence.js +3 -3
- package/backend/dist/platform/workPersistence/sqliteWorkPersistence.js.map +1 -1
- package/backend/dist/platform/workPersistence/types.d.ts +5 -0
- package/backend/dist/platform/workPersistence/types.d.ts.map +1 -1
- package/backend/dist/platform/workPersistence/types.js.map +1 -1
- package/backend/dist/routes/agentCli.d.ts.map +1 -1
- package/backend/dist/routes/agentCli.js +8 -3
- package/backend/dist/routes/agentCli.js.map +1 -1
- package/backend/dist/routes/{cordis.d.ts → strands.d.ts} +1 -1
- package/backend/dist/routes/strands.d.ts.map +1 -0
- package/backend/dist/routes/strands.js +300 -0
- package/backend/dist/routes/strands.js.map +1 -0
- package/backend/dist/routes/work.d.ts.map +1 -1
- package/backend/dist/routes/work.js +26 -23
- package/backend/dist/routes/work.js.map +1 -1
- package/backend/dist/services/agentAccessService.d.ts +0 -5
- package/backend/dist/services/agentAccessService.d.ts.map +1 -1
- package/backend/dist/services/agentAccessService.js +7 -35
- package/backend/dist/services/agentAccessService.js.map +1 -1
- package/backend/dist/services/agentCliService.d.ts +16 -23
- package/backend/dist/services/agentCliService.d.ts.map +1 -1
- package/backend/dist/services/agentCliService.js +85 -112
- package/backend/dist/services/agentCliService.js.map +1 -1
- package/backend/dist/services/authService.d.ts +3 -3
- package/backend/dist/services/authService.d.ts.map +1 -1
- package/backend/dist/services/authService.js +3 -4
- package/backend/dist/services/authService.js.map +1 -1
- package/backend/dist/services/authorizationService.d.ts +1 -1
- package/backend/dist/services/authorizationService.d.ts.map +1 -1
- package/backend/dist/services/authorizationService.js +17 -8
- package/backend/dist/services/authorizationService.js.map +1 -1
- package/backend/dist/services/followUpService.d.ts +4 -1
- package/backend/dist/services/followUpService.d.ts.map +1 -1
- package/backend/dist/services/followUpService.js +23 -2
- package/backend/dist/services/followUpService.js.map +1 -1
- package/backend/dist/services/pluginService.d.ts.map +1 -1
- package/backend/dist/services/pluginService.js +10 -6
- package/backend/dist/services/pluginService.js.map +1 -1
- package/backend/dist/services/pluginUsageService.d.ts +0 -34
- package/backend/dist/services/pluginUsageService.d.ts.map +1 -1
- package/backend/dist/services/pluginUsageService.js +0 -62
- package/backend/dist/services/pluginUsageService.js.map +1 -1
- package/backend/dist/services/strandsAccessService.d.ts +26 -0
- package/backend/dist/services/strandsAccessService.d.ts.map +1 -0
- package/backend/dist/services/strandsAccessService.js +95 -0
- package/backend/dist/services/strandsAccessService.js.map +1 -0
- package/backend/dist/services/thinkingSummaryService.d.ts +2 -3
- package/backend/dist/services/thinkingSummaryService.d.ts.map +1 -1
- package/backend/dist/services/thinkingSummaryService.js +13 -27
- package/backend/dist/services/thinkingSummaryService.js.map +1 -1
- package/backend/dist/services/titleGenerationService.d.ts +7 -18
- package/backend/dist/services/titleGenerationService.d.ts.map +1 -1
- package/backend/dist/services/titleGenerationService.js +15 -36
- package/backend/dist/services/titleGenerationService.js.map +1 -1
- package/backend/dist/services/workAgentService.d.ts +1 -1
- package/backend/dist/services/workAgentService.d.ts.map +1 -1
- package/backend/dist/services/workAgentService.js +17 -60
- package/backend/dist/services/workAgentService.js.map +1 -1
- package/backend/dist/services/workModelProviderService.d.ts +1 -4
- package/backend/dist/services/workModelProviderService.d.ts.map +1 -1
- package/backend/dist/services/workModelProviderService.js +60 -50
- package/backend/dist/services/workModelProviderService.js.map +1 -1
- package/backend/dist/services/workTaskService.d.ts +3 -2
- package/backend/dist/services/workTaskService.d.ts.map +1 -1
- package/backend/dist/services/workTaskService.js +11 -7
- package/backend/dist/services/workTaskService.js.map +1 -1
- package/backend/dist/strands/catalog.d.ts +57 -0
- package/backend/dist/strands/catalog.d.ts.map +1 -0
- package/backend/dist/strands/catalog.js +241 -0
- package/backend/dist/strands/catalog.js.map +1 -0
- package/backend/dist/strands/engine.d.ts +131 -0
- package/backend/dist/strands/engine.d.ts.map +1 -0
- package/backend/dist/strands/engine.js +477 -0
- package/backend/dist/strands/engine.js.map +1 -0
- package/backend/dist/strands/harness.d.ts +14 -0
- package/backend/dist/strands/harness.d.ts.map +1 -0
- package/backend/dist/strands/harness.js +41 -0
- package/backend/dist/strands/harness.js.map +1 -0
- package/backend/dist/strands/model.d.ts +24 -0
- package/backend/dist/strands/model.d.ts.map +1 -0
- package/backend/dist/strands/model.js +381 -0
- package/backend/dist/strands/model.js.map +1 -0
- package/backend/dist/strands/runtime.d.ts +4 -0
- package/backend/dist/strands/runtime.d.ts.map +1 -0
- package/backend/dist/{cordis/work-model.js → strands/runtime.js} +16 -12
- package/backend/dist/strands/runtime.js.map +1 -0
- package/backend/dist/strands/sandbox.d.ts +24 -0
- package/backend/dist/strands/sandbox.d.ts.map +1 -0
- package/backend/dist/strands/sandbox.js +156 -0
- package/backend/dist/strands/sandbox.js.map +1 -0
- package/backend/dist/strands/work-driver.d.ts +11 -0
- package/backend/dist/strands/work-driver.d.ts.map +1 -0
- package/backend/dist/strands/work-driver.js +443 -0
- package/backend/dist/strands/work-driver.js.map +1 -0
- package/backend/dist/strands/work-model.d.ts +7 -0
- package/backend/dist/strands/work-model.d.ts.map +1 -0
- package/backend/dist/strands/work-model.js +42 -0
- package/backend/dist/strands/work-model.js.map +1 -0
- package/backend/dist/types/work.d.ts +7 -11
- package/backend/dist/types/work.d.ts.map +1 -1
- package/backend/dist/types/work.js.map +1 -1
- package/backend/dist/utils/bedrockMantle.d.ts +46 -0
- package/backend/dist/utils/bedrockMantle.d.ts.map +1 -0
- package/backend/dist/utils/bedrockMantle.js +206 -0
- package/backend/dist/utils/bedrockMantle.js.map +1 -0
- package/backend/dist/utils/corsOriginPolicy.d.ts +10 -0
- package/backend/dist/utils/corsOriginPolicy.d.ts.map +1 -0
- package/backend/dist/utils/corsOriginPolicy.js +70 -0
- package/backend/dist/utils/corsOriginPolicy.js.map +1 -0
- package/backend/dist/utils/pluginChatAdapter.d.ts +36 -0
- package/backend/dist/utils/pluginChatAdapter.d.ts.map +1 -1
- package/backend/dist/utils/pluginChatAdapter.js +122 -47
- package/backend/dist/utils/pluginChatAdapter.js.map +1 -1
- package/backend/dist/utils/pluginDefinitionTrust.d.ts.map +1 -1
- package/backend/dist/utils/pluginDefinitionTrust.js +3 -2
- package/backend/dist/utils/pluginDefinitionTrust.js.map +1 -1
- package/backend/dist/utils/pluginValidation.d.ts +1 -1
- package/backend/dist/utils/pluginValidation.d.ts.map +1 -1
- package/backend/dist/utils/pluginValidation.js +11 -0
- package/backend/dist/utils/pluginValidation.js.map +1 -1
- package/backend/package.json +6 -36
- package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
- package/frontend/dist/artifact-runtime/babel.js +170 -170
- package/frontend/dist/artifact-runtime/framer-motion.js +3 -3
- package/frontend/dist/artifact-runtime/lucide-react.js +1 -1
- package/frontend/dist/artifact-runtime/mathjs.js +1 -1
- package/frontend/dist/artifact-runtime/mermaid.js +1 -1
- package/frontend/dist/artifact-runtime/plotly.js +1 -1
- package/frontend/dist/artifact-runtime/react.js +3 -3
- package/frontend/dist/assets/index-D99DS5c6.js +57 -0
- package/frontend/dist/assets/index-Dz1JufgZ.css +1 -0
- package/frontend/dist/assets/{markdown-math-D1Bj3pDB.css → markdown-math-DzFXvcrH.css} +1 -1
- package/frontend/dist/index.html +34 -34
- package/frontend/dist/js/{ArtifactContainer-D4v4l15L.js → ArtifactContainer-Cn7X9HGm.js} +1 -1
- package/frontend/dist/js/{ArtifactDemoPage-B2uaVpsi.js → ArtifactDemoPage-Ddpy2O_v.js} +1 -1
- package/frontend/dist/js/{ArtifactSandboxFrame-DlWJHI-r.js → ArtifactSandboxFrame-CdsAqv8H.js} +1 -1
- package/frontend/dist/js/{ArtifactSlideOutPanel-laZ98QKB.js → ArtifactSlideOutPanel-cVd9X80o.js} +1 -1
- package/frontend/dist/js/AutomationModal-B4UaWjkk.js +1 -0
- package/frontend/dist/js/AutomationsPage-huCrvLUp.js +1 -0
- package/frontend/dist/js/{AvatarUpload-KaBaTKoG.js → AvatarUpload-CG-w6Mpt.js} +1 -1
- package/frontend/dist/js/{Button-CGMYia4g.js → Button-j68Q8KVh.js} +1 -1
- package/frontend/dist/js/{CalendarPage-Dc7r-86c.js → CalendarPage-CZXT1w99.js} +1 -1
- package/frontend/dist/js/ChannelsPage-DbtdHnSL.js +1 -0
- package/frontend/dist/js/ChatPage-BZE65kiq.js +14 -0
- package/frontend/dist/js/ConnectModels-DD4bLgdq.js +1 -0
- package/frontend/dist/js/{EvaluationsPage-BB7sPhIR.js → EvaluationsPage-Dq53LaXd.js} +2 -2
- package/frontend/dist/js/{FirstTimeSetup-elqSi9JH.js → FirstTimeSetup-BoJIfuQT.js} +1 -1
- package/frontend/dist/js/GalleryPage-DKwqeB2A.js +1 -0
- package/frontend/dist/js/HomePage-C8bCJfls.js +1 -0
- package/frontend/dist/js/LanguageSwitcher-B_YyU5JG.js +1 -0
- package/frontend/dist/js/{Logo-HZvdAk2c.js → Logo-DnfVtjgj.js} +1 -1
- package/frontend/dist/js/{LogoMark-GJnfMXsk.js → LogoMark-BzObGdA9.js} +1 -1
- package/frontend/dist/js/{ModelManagerModals-Bk6OQzJI.js → ModelManagerModals-BzjZ-QwL.js} +1 -1
- package/frontend/dist/js/NotesPage-CnaAp_w_.js +3 -0
- package/frontend/dist/js/{OptimizedSyntaxHighlighter-CzzV6ONG.js → OptimizedSyntaxHighlighter-B0g8cxZQ.js} +1 -1
- package/frontend/dist/js/OptimizedSyntaxHighlighter-B_BbHeO1.js +1 -0
- package/frontend/dist/js/{PasswordStrengthMeter-DasfJa4P.js → PasswordStrengthMeter-DI4RDv67.js} +1 -1
- package/frontend/dist/js/{PersonasPage-CIJINcQK.js → PersonasPage-CH3GUKph.js} +2 -2
- package/frontend/dist/js/PluginUsagePage-d54K2gAj.js +1 -0
- package/frontend/dist/js/{RichMessageContent-DxCHlUlY.js → RichMessageContent-BfYbVBFz.js} +2 -2
- package/frontend/dist/js/RichMessageContent-CDxxs3Tt.js +1 -0
- package/frontend/dist/js/SettingsModal-BvtJcvow.js +19 -0
- package/frontend/dist/js/{SettingsToggle-oxvw7ulA.js → SettingsToggle-DrJ0Bapi.js} +1 -1
- package/frontend/dist/js/{ShareDialog-Bhpt_Y1N.js → ShareDialog-DaSxkTKS.js} +1 -1
- package/frontend/dist/js/StrandsPage-BQwz0mWq.js +1 -0
- package/frontend/dist/js/{SystemPage-BfhVXqar.js → SystemPage-BqNZoFxR.js} +1 -1
- package/frontend/dist/js/{TurnstileWidget-CVepEMEQ.js → TurnstileWidget-tI50c7Kc.js} +1 -1
- package/frontend/dist/js/{UserManagementPage-2yHv89ZA.js → UserManagementPage-UvPjA9RP.js} +1 -1
- package/frontend/dist/js/UserManagementPanel-C3T1ReJJ.js +1 -0
- package/frontend/dist/js/{WhatsNewModal-Dl69bG2T.js → WhatsNewModal-CLcU2Ugk.js} +1 -1
- package/frontend/dist/js/WorkPage-BpjGn--1.js +8 -0
- package/frontend/dist/js/api-BrHW-VGd.js +14 -0
- package/frontend/dist/js/api-K_hhqPdx.js +1 -0
- package/frontend/dist/js/{appNavigation-R8iKverf.js → appNavigation-B6xYIgLi.js} +1 -1
- package/frontend/dist/js/appStore-DkRdQQeY.js +2 -0
- package/frontend/dist/js/appVersion-BVtSqLVj.js +1 -0
- package/frontend/dist/js/ar-XTZGEtBr.js +2 -0
- package/frontend/dist/js/authStore-DBS6Kbvh.js +1 -0
- package/frontend/dist/js/{authStore-D8fc-Hl0.js → authStore-DjAsRpNL.js} +3 -3
- package/frontend/dist/js/bn-JiK7ZWmy.js +2 -0
- package/frontend/dist/js/chatStore-DpVxt9VX.js +3 -0
- package/frontend/dist/js/{client-BeJbHHWx.js → client-DppLngAs.js} +2 -2
- package/frontend/dist/js/{config-D6Kcp5n3.js → config-4_s8hdqO.js} +1 -1
- package/frontend/dist/js/cs-D8ju18CO.js +2 -0
- package/frontend/dist/js/da-BJWcAoUc.js +2 -0
- package/frontend/dist/js/de-CLJLmy69.js +2 -0
- package/frontend/dist/js/es-BvqHEL-3.js +2 -0
- package/frontend/dist/js/{evaluationsApi-2YwZBPk5.js → evaluationsApi-DyuW7IJ_.js} +1 -1
- package/frontend/dist/js/fr-B8ZoZomI.js +2 -0
- package/frontend/dist/js/hi-AzJLALo-.js +2 -0
- package/frontend/dist/js/id-DZYGQhvC.js +2 -0
- package/frontend/dist/js/is-Da_kvtzW.js +2 -0
- package/frontend/dist/js/it-B90zSlqn.js +2 -0
- package/frontend/dist/js/ja-DU_K1GOr.js +2 -0
- package/frontend/dist/js/ko-DicfoO-e.js +2 -0
- package/frontend/dist/js/{markdown-CZ1tYEW8.js → markdown-DU84620G.js} +1 -1
- package/frontend/dist/js/{markdown-core-KjS96SYW.js → markdown-core-Cyql92Hg.js} +1 -1
- package/frontend/dist/js/{markdown-html-DQEwrWcf.js → markdown-html-CUc2fCgY.js} +1 -1
- package/frontend/dist/js/{markdown-math-CKi32S5d.js → markdown-math-DxPfMKvO.js} +1 -1
- package/frontend/dist/js/{markdownHtml-lrXhxBhK.js → markdownHtml-KhS0cFNH.js} +1 -1
- package/frontend/dist/js/markdownMath-CsfRQAcz.js +1 -0
- package/frontend/dist/js/{messageCodeStyles-D4haBw80.js → messageCodeStyles-CuQPkfEK.js} +1 -1
- package/frontend/dist/js/ms-CfH7wjUY.js +2 -0
- package/frontend/dist/js/nl-ELlOz-B3.js +2 -0
- package/frontend/dist/js/pl-33dayyUk.js +2 -0
- package/frontend/dist/js/pt-aIXSQPCT.js +2 -0
- package/frontend/dist/js/react-vendor-CR5VJ85Q.js +9 -0
- package/frontend/dist/js/{router-vendor-HZm4FR0A.js → router-vendor-DqMnEJWK.js} +1 -1
- package/frontend/dist/js/ru-BSvGtBtW.js +2 -0
- package/frontend/dist/js/{standalone-DbyFjvTU.js → standalone-D_lg5NC9.js} +1 -1
- package/frontend/dist/js/strandsApi-BFbeEpAY.js +2 -0
- package/frontend/dist/js/sv-B7KOz81W.js +2 -0
- package/frontend/dist/js/{syntax-highlight-DNc3FFCa.js → syntax-highlight-D7dQ5s5-.js} +1 -1
- package/frontend/dist/js/{teamEventStream-omPy51va.js → teamEventStream-DsAS6P4m.js} +1 -1
- package/frontend/dist/js/th-DgpjGxvA.js +2 -0
- package/frontend/dist/js/tr-BQTbl2h-.js +2 -0
- package/frontend/dist/js/{ui-D5-4niRk.js → ui-Aq8MP7Ph.js} +2 -2
- package/frontend/dist/js/ui-vendor-DVTj_sKN.js +1 -0
- package/frontend/dist/js/uk-JLymloot.js +2 -0
- package/frontend/dist/js/{useChat-DnGClJeX.js → useChat-D3ZAGz70.js} +4 -4
- package/frontend/dist/js/useDialogFocus-zSGHkpE4.js +1 -0
- package/frontend/dist/js/useDictation-B6l8QzeM.js +1 -0
- package/frontend/dist/js/{useQuery-hWmQjdLu.js → useQuery-BTKpXudI.js} +1 -1
- package/frontend/dist/js/{useTranslation-B9kflK9S.js → useTranslation-Boi0fB1B.js} +1 -1
- package/frontend/dist/js/utils-B-Bhh1pF.js +1 -0
- package/frontend/dist/js/utils-vendor-DPJG-EG_.js +1 -0
- package/frontend/dist/js/vi-BXdLOJ8q.js +2 -0
- package/frontend/dist/js/{work-DmJpVPPO.js → work-CdbmBok5.js} +1 -1
- package/frontend/dist/js/workApi-D1xtiG3Q.js +1 -0
- package/frontend/dist/js/{workApi-C5InfT8x.js → workApi-UPxumrEF.js} +1 -1
- package/frontend/dist/js/workModels-BM2Zyiba.js +1 -0
- package/frontend/dist/js/zh-gdUf9sXa.js +2 -0
- package/package.json +11 -40
- package/plugins/anthropic.json +3 -1
- package/plugins/bedrock.json +86 -0
- package/plugins/openrouter.json +2 -0
- package/backend/dist/cordis/contracts.d.ts +0 -270
- package/backend/dist/cordis/contracts.d.ts.map +0 -1
- package/backend/dist/cordis/contracts.js +0 -32
- package/backend/dist/cordis/contracts.js.map +0 -1
- package/backend/dist/cordis/dsh/chat-model.d.ts +0 -16
- package/backend/dist/cordis/dsh/chat-model.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/chat-model.js +0 -104
- package/backend/dist/cordis/dsh/chat-model.js.map +0 -1
- package/backend/dist/cordis/dsh/engine-plugin.d.ts +0 -186
- package/backend/dist/cordis/dsh/engine-plugin.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/engine-plugin.js +0 -1116
- package/backend/dist/cordis/dsh/engine-plugin.js.map +0 -1
- package/backend/dist/cordis/dsh/librewebui-llm-adapter.d.ts +0 -175
- package/backend/dist/cordis/dsh/librewebui-llm-adapter.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/librewebui-llm-adapter.js +0 -480
- package/backend/dist/cordis/dsh/librewebui-llm-adapter.js.map +0 -1
- package/backend/dist/cordis/dsh/model-identity.d.ts +0 -12
- package/backend/dist/cordis/dsh/model-identity.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/model-identity.js +0 -87
- package/backend/dist/cordis/dsh/model-identity.js.map +0 -1
- package/backend/dist/cordis/dsh/native-provider-client.d.ts +0 -44
- package/backend/dist/cordis/dsh/native-provider-client.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/native-provider-client.js +0 -524
- package/backend/dist/cordis/dsh/native-provider-client.js.map +0 -1
- package/backend/dist/cordis/dsh/native-provider-plugin.d.ts +0 -11
- package/backend/dist/cordis/dsh/native-provider-plugin.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/native-provider-plugin.js +0 -416
- package/backend/dist/cordis/dsh/native-provider-plugin.js.map +0 -1
- package/backend/dist/cordis/dsh/native-provider-protocol.d.ts +0 -37
- package/backend/dist/cordis/dsh/native-provider-protocol.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/native-provider-protocol.js +0 -325
- package/backend/dist/cordis/dsh/native-provider-protocol.js.map +0 -1
- package/backend/dist/cordis/dsh/provider-handler.d.ts +0 -36
- package/backend/dist/cordis/dsh/provider-handler.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/provider-handler.js +0 -582
- package/backend/dist/cordis/dsh/provider-handler.js.map +0 -1
- package/backend/dist/cordis/dsh/session-files.d.ts +0 -9
- package/backend/dist/cordis/dsh/session-files.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/session-files.js +0 -60
- package/backend/dist/cordis/dsh/session-files.js.map +0 -1
- package/backend/dist/cordis/dsh/session-settings.d.ts +0 -15
- package/backend/dist/cordis/dsh/session-settings.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/session-settings.js +0 -51
- package/backend/dist/cordis/dsh/session-settings.js.map +0 -1
- package/backend/dist/cordis/dsh/work-driver.d.ts +0 -12
- package/backend/dist/cordis/dsh/work-driver.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/work-driver.js +0 -402
- package/backend/dist/cordis/dsh/work-driver.js.map +0 -1
- package/backend/dist/cordis/dsh/workspace-policy.d.ts +0 -10
- package/backend/dist/cordis/dsh/workspace-policy.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/workspace-policy.js +0 -44
- package/backend/dist/cordis/dsh/workspace-policy.js.map +0 -1
- package/backend/dist/cordis/host/composition.d.ts +0 -73
- package/backend/dist/cordis/host/composition.d.ts.map +0 -1
- package/backend/dist/cordis/host/composition.js +0 -205
- package/backend/dist/cordis/host/composition.js.map +0 -1
- package/backend/dist/cordis/host/config.d.ts +0 -159
- package/backend/dist/cordis/host/config.d.ts.map +0 -1
- package/backend/dist/cordis/host/config.js +0 -184
- package/backend/dist/cordis/host/config.js.map +0 -1
- package/backend/dist/cordis/host/host.d.ts +0 -74
- package/backend/dist/cordis/host/host.d.ts.map +0 -1
- package/backend/dist/cordis/host/host.js +0 -420
- package/backend/dist/cordis/host/host.js.map +0 -1
- package/backend/dist/cordis/host/loader-entry.d.ts +0 -41
- package/backend/dist/cordis/host/loader-entry.d.ts.map +0 -1
- package/backend/dist/cordis/host/loader-entry.js +0 -52
- package/backend/dist/cordis/host/loader-entry.js.map +0 -1
- package/backend/dist/cordis/host/model.d.ts +0 -45
- package/backend/dist/cordis/host/model.d.ts.map +0 -1
- package/backend/dist/cordis/host/model.js +0 -54
- package/backend/dist/cordis/host/model.js.map +0 -1
- package/backend/dist/cordis/host/privacy.d.ts +0 -8
- package/backend/dist/cordis/host/privacy.d.ts.map +0 -1
- package/backend/dist/cordis/host/privacy.js +0 -73
- package/backend/dist/cordis/host/privacy.js.map +0 -1
- package/backend/dist/cordis/index.d.ts +0 -14
- package/backend/dist/cordis/index.d.ts.map +0 -1
- package/backend/dist/cordis/index.js +0 -30
- package/backend/dist/cordis/index.js.map +0 -1
- package/backend/dist/cordis/runtime.d.ts +0 -97
- package/backend/dist/cordis/runtime.d.ts.map +0 -1
- package/backend/dist/cordis/runtime.js +0 -231
- package/backend/dist/cordis/runtime.js.map +0 -1
- package/backend/dist/cordis/work-model.d.ts +0 -7
- package/backend/dist/cordis/work-model.d.ts.map +0 -1
- package/backend/dist/cordis/work-model.js.map +0 -1
- package/backend/dist/routes/cordis.d.ts.map +0 -1
- package/backend/dist/routes/cordis.js +0 -440
- package/backend/dist/routes/cordis.js.map +0 -1
- package/backend/dist/routes/libreClaw.d.ts +0 -3
- package/backend/dist/routes/libreClaw.d.ts.map +0 -1
- package/backend/dist/routes/libreClaw.js +0 -200
- package/backend/dist/routes/libreClaw.js.map +0 -1
- package/backend/dist/services/cordisAccessService.d.ts +0 -56
- package/backend/dist/services/cordisAccessService.d.ts.map +0 -1
- package/backend/dist/services/cordisAccessService.js +0 -98
- package/backend/dist/services/cordisAccessService.js.map +0 -1
- package/backend/dist/services/libreClawService.d.ts +0 -105
- package/backend/dist/services/libreClawService.d.ts.map +0 -1
- package/backend/dist/services/libreClawService.js +0 -169
- package/backend/dist/services/libreClawService.js.map +0 -1
- package/frontend/dist/assets/index-C8_AByBq.css +0 -1
- package/frontend/dist/assets/index-DWLnkKwj.js +0 -16
- package/frontend/dist/js/AutomationModal-CjjiEZFA.js +0 -1
- package/frontend/dist/js/AutomationsPage-jnWmD58y.js +0 -1
- package/frontend/dist/js/ChannelsPage-DHPabX1e.js +0 -1
- package/frontend/dist/js/ChatPage-ZvGp-iqV.js +0 -14
- package/frontend/dist/js/ConnectModels-aUTD6s9B.js +0 -1
- package/frontend/dist/js/CordisPage-DZKcpPVj.js +0 -1
- package/frontend/dist/js/GalleryPage-CrlNRnkn.js +0 -1
- package/frontend/dist/js/HomePage-lR9h7_a1.js +0 -1
- package/frontend/dist/js/LanguageSwitcher-CWkbzpxT.js +0 -1
- package/frontend/dist/js/LibreClawPage-P19FnNlu.js +0 -1
- package/frontend/dist/js/NotesPage-DopG0M4B.js +0 -3
- package/frontend/dist/js/OptimizedSyntaxHighlighter-ajqwyBQm.js +0 -1
- package/frontend/dist/js/PluginUsagePage-Cj0mUxD8.js +0 -1
- package/frontend/dist/js/RichMessageContent-BZndQSJU.js +0 -1
- package/frontend/dist/js/SettingsModal-wAuFQOE4.js +0 -19
- package/frontend/dist/js/UserManagementPanel-BU95ZPOv.js +0 -1
- package/frontend/dist/js/WorkPage-CSderbeT.js +0 -8
- package/frontend/dist/js/api-CU-JXx2u.js +0 -1
- package/frontend/dist/js/api-DPXCtanG.js +0 -14
- package/frontend/dist/js/appStore-BD70bvas.js +0 -2
- package/frontend/dist/js/appVersion-C7sxqgMd.js +0 -1
- package/frontend/dist/js/ar-Cq-DrSYL.js +0 -2
- package/frontend/dist/js/authStore-FNKLFUQp.js +0 -1
- package/frontend/dist/js/bn-BqxLh-KL.js +0 -2
- package/frontend/dist/js/chatStore-CK5ojwft.js +0 -3
- package/frontend/dist/js/cordisApi-BS8QMSV4.js +0 -2
- package/frontend/dist/js/cs-D2DDNZf-.js +0 -2
- package/frontend/dist/js/da-BciY-TSG.js +0 -2
- package/frontend/dist/js/de-DjU_eXQ-.js +0 -2
- package/frontend/dist/js/es-ChIEs80I.js +0 -2
- package/frontend/dist/js/fr-Bi8BGRW4.js +0 -2
- package/frontend/dist/js/hi-BMsCnWg7.js +0 -2
- package/frontend/dist/js/i18next-DOICz7ZY.js +0 -1
- package/frontend/dist/js/id-CpcN1vhk.js +0 -2
- package/frontend/dist/js/is-DkUy2cmP.js +0 -2
- package/frontend/dist/js/it-BglK9DRZ.js +0 -2
- package/frontend/dist/js/ja-IrprzwLJ.js +0 -2
- package/frontend/dist/js/ko--wwEsMPi.js +0 -2
- package/frontend/dist/js/markdownMath-B0BpyFBS.js +0 -1
- package/frontend/dist/js/ms-BWj59y7-.js +0 -2
- package/frontend/dist/js/nl-D-QndW_A.js +0 -2
- package/frontend/dist/js/pl-Dw7d7iDV.js +0 -2
- package/frontend/dist/js/pt-BI53uHJw.js +0 -2
- package/frontend/dist/js/react-vendor-wiHys0m2.js +0 -9
- package/frontend/dist/js/ru-JKyTgPg9.js +0 -2
- package/frontend/dist/js/sv-BIkBLPSQ.js +0 -2
- package/frontend/dist/js/th-CZ_LcCU0.js +0 -2
- package/frontend/dist/js/tr-B265byx1.js +0 -2
- package/frontend/dist/js/ui-vendor-BhHHyHk3.js +0 -1
- package/frontend/dist/js/uk-VTAlChwf.js +0 -2
- package/frontend/dist/js/useDialogFocus-BPTG_Zmy.js +0 -1
- package/frontend/dist/js/useDictation-D7zVBjDJ.js +0 -1
- package/frontend/dist/js/utils-p8Gt72YP.js +0 -1
- package/frontend/dist/js/utils-vendor-DISWt2y9.js +0 -1
- package/frontend/dist/js/vi-D8rXh-53.js +0 -2
- package/frontend/dist/js/workApi-FV75LKJn.js +0 -1
- package/frontend/dist/js/workModels-MzU2Ab7l.js +0 -1
- package/frontend/dist/js/zh-BEGd9iBD.js +0 -2
- package/scripts/prepare-dsh-provider.mjs +0 -124
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e={common:{provider:`Провайдер`,agent:`Агент`,loading:`Завантаження...`,save:`Зберегти`,saving:`Збереження...`,cancel:`Скасувати`,delete:`Видалити`,edit:`Редагувати`,close:`Закрити`,back:`Назад`,next:`Далі`,confirm:`Підтвердити`,error:`Помилка`,success:`Успіх`,warning:`Попередження`,or:`або`,optional:`необов'язково`,enabled:`Увімкнено`,disabled:`Вимкнено`,on:`Увімк.`,off:`Вимк.`,yes:`Так`,no:`Ні`,search:`Пошук`,noResults:`Результатів не знайдено`,retry:`Повторити`,refresh:`Оновити`,download:`Завантажити`,upload:`Вивантажити`,export:`Експорт`,import:`Імпорт`,reset:`Скинути`,apply:`Застосувати`,clear:`Очистити`,all:`Усі`,none:`Жодного`,default:`За замовчуванням`,custom:`Власний`,remove:`Видалити`,home:`Головна`,more:`Більше`,reasoning:`Міркування`},brand:{name:`Libre WebUI`,shortName:`Libre`},appInitialization:{ollamaUnavailable:`Служба Ollama недоступна. Моделі плагінів усе ще можна використовувати.`,backendConnectionFailed:`Не вдалося підключитися до серверної служби`},auth:{login:{title:`З поверненням`,subtitle:`Увійдіть до свого облікового запису, щоб продовжити`,username:`Ім'я користувача`,usernamePlaceholder:`Введіть ім'я користувача`,password:`Пароль`,passwordPlaceholder:`Введіть пароль`,signIn:`Увійти`,signingIn:`Вхід...`,noAccount:`Немає облікового запису?`,signUpHere:`Зареєструйтеся тут`,loginSuccess:`Вхід успішний!`,loginFailed:`Помилка входу`,checkCredentials:`Помилка входу. Перевірте свої облікові дані.`,approvalPending:`Ваш обліковий запис очікує на підтвердження адміністратором.`,enterBoth:`Введіть ім'я користувача та пароль`,githubSuccess:`Вхід через GitHub успішний!`,githubFailed:`Помилка автентифікації GitHub`,githubVerifyFailed:`Не вдалося перевірити автентифікацію GitHub`,verificationFailed:`Перевірка безпеки не вдалася. Оновіть сторінку та спробуйте ще раз.`},signup:{title:`Створити обліковий запис`,subtitle:`Зареєструйте новий обліковий запис`,username:`Ім'я користувача`,usernamePlaceholder:`Виберіть ім'я користувача`,email:`Електронна пошта`,emailPlaceholder:`ваша@пошта.com`,password:`Пароль`,passwordPlaceholder:`Виберіть пароль`,confirmPassword:`Підтвердіть пароль`,confirmPasswordPlaceholder:`Підтвердіть пароль`,createAccount:`Створити обліковий запис`,creatingAccount:`Створення облікового запису...`,hasAccount:`Вже є обліковий запис?`,signInHere:`Увійдіть тут`,signupSuccess:`Обліковий запис успішно створено!`,approvalPending:`Реєстрацію отримано. Адміністратор має підтвердити ваш обліковий запис.`,awaitingApproval:`Очікує підтвердження`,awaitingApprovalDescription:`Ваш обліковий запис створено, але адміністратор має активувати його, перш ніж ви зможете увійти.`,backToSignIn:`Повернутися до входу`,signupFailed:`Помилка реєстрації`,tryAgain:`Помилка реєстрації. Спробуйте ще раз.`,usernameRequired:`Ім'я користувача та пароль обов'язкові`,passwordMismatch:`Паролі не збігаються`},logout:{button:`Вийти`,success:`Ви успішно вийшли`},oauth:{continueWith:`Продовжити з {{provider}}`,connectingTo:`Підключення до {{provider}}...`,github:`GitHub`,huggingFace:`Hugging Face`,loginSuccess:`Вхід через OAuth виконано!`,completionFailed:`Не вдалося завершити автентифікацію OAuth`,verificationFailed:`Не вдалося перевірити автентифікацію OAuth`,authenticationFailed:`Помилка автентифікації OAuth`},checkingAuth:`Перевірка автентифікації...`,welcome:`Ласкаво просимо`,noEmail:`Email не вказано`,role:`Роль`,id:`ID`,userId:`ID користувача`,signInDescription:`Увійдіть за допомогою облікового запису GitHub, щоб продовжити`,signInWithGitHub:`Увійти через GitHub`,jwtActive:`JWT-автентифікація активна`,jwtDescription:`JWT-автентифікація з GitHub OAuth`,github:`GitHub`,provider:`Провайдер`,tagline:`Ваш AI стек має підпорядковуватися вам.`,selfHosted:`Самостійний хостинг · Apache 2.0`,highlights:{local:{title:`Локально насамперед`,body:`Ваші розмови та файли залишаються на пристрої, на якому ви запускаєте це.`},providers:{title:`Будь-який провайдер`,body:`Локальні моделі через Ollama, а також віддалені провайдери, які ви вирішите додати.`},work:{title:`Ізольована робота`,body:`Надайте моделі пісочницю з файлами, терміналом та попереднім переглядом.`}},oidc:{defaultProviderName:`Єдиний вхід`},mfa:{sectionTitle:`Двофакторна автентифікація`,sectionDescription:`Захистіть обліковий запис застосунком-автентифікатором і ключами доступу.`,totpTitle:`Застосунок-автентифікатор`,totpEnabledHint:`Увімкнено. Невикористані коди відновлення: {{count}}`,totpDisabledHint:`Додайте другий крок входу за паролем із одноразовим кодом.`,enableButton:`Увімкнути`,disableButton:`Вимкнути`,activateButton:`Підтвердити`,regenerateCodes:`Нові коди відновлення`,confirmWithCode:`Підтвердьте кодом із застосунку або кодом відновлення`,enabled:`Двофакторну автентифікацію ввімкнено.`,disabled:`Двофакторну автентифікацію вимкнено.`,invalidCode:`Цей код недійсний.`,enrollFailed:`Не вдалося розпочати налаштування.`,challengeExpired:`Запит на вхід минув. Увійдіть знову.`,setupTitle:`Налаштувати двофакторну автентифікацію`,setupSubtitle:`Ця інсталяція вимагає другого кроку входу. Додайте секрет до застосунку-автентифікатора, щоб продовжити.`,verifyTitle:`Введіть код`,verifyHint:`Введіть 6-значний код із застосунку-автентифікатора або код відновлення.`,secretHint:`Додайте цей секрет до застосунку-автентифікатора та підтвердьте поточним кодом.`,openAuthenticator:`Відкрити в застосунку-автентифікаторі`,codeLabel:`6-значний код`,codeOrRecoveryLabel:`Код або код відновлення`,codePlaceholder:`123456`,verifyButton:`Перевірити`,backToSignIn:`Назад до входу`,recoveryCodesTitle:`Коди відновлення`,recoveryCodesHint:`Зберігайте ці коди в надійному місці. Кожен дозволяє увійти один раз, якщо ви втратите автентифікатор.`,recoveryCodesSaved:`Я зберіг коди відновлення`,recoveryCodesRegenerated:`Створено нові коди відновлення. Старі більше не діють.`},passkeys:{sectionTitle:`Ключі доступу`,sectionDescription:`Входьте без пароля за допомогою блокування екрана пристрою або ключа безпеки.`,addButton:`Додати ключ доступу`,empty:`Ключів доступу поки немає.`,unnamed:`Ключ доступу`,createdAt:`Додано`,lastUsedAt:`Останнє використання`,removeButton:`Видалити ключ доступу`,registered:`Ключ доступу додано.`,registerFailed:`Не вдалося додати ключ доступу.`,removed:`Ключ доступу видалено.`,removeFailed:`Не вдалося видалити ключ доступу.`,signInButton:`Увійти з ключем доступу`,signInFailed:`Вхід із ключем доступу не вдався.`}},setup:{welcome:{title:`Ласкаво просимо до Libre WebUI`,subtitle:`Почнімо`,description:`Налаштуйте Libre WebUI за кілька простих кроків`,createAdmin:`Створити обліковий запис адміністратора`,features:{secure:{title:`Безпечний і приватний`,description:`Ваші розмови залишаються на вашому пристрої`},fast:{title:`Швидкий і чутливий`,description:`Оптимізовано для швидкості та продуктивності`},openSource:{title:`Відкритий код`,description:`Безкоштовне програмне забезпечення з відкритим кодом`}}},admin:{title:`Створити обліковий запис адміністратора`,subtitle:`Налаштування адміністратора`,description:`Створіть перший обліковий запис адміністратора для вашого екземпляра Libre WebUI`,usernamePlaceholder:`Введіть ім'я адміністратора`,passwordPlaceholder:`Введіть пароль (щонайменше 12 символів)`,confirmPlaceholder:`Підтвердіть пароль`,creating:`Створення...`,createAdmin:`Створити адміністратора`,success:`Обліковий запис адміністратора успішно створено!`,failed:`Не вдалося створити обліковий запис адміністратора`,approvalUnexpected:`Початкового адміністратора не вдалося активувати. Будь ласка, спробуйте ще раз.`,fillAllFields:`Заповніть усі поля`,note:`Це буде основний обліковий запис адміністратора для вашого екземпляра Libre WebUI`},encryptionKey:{title:`Збережіть ключ шифрування`,subtitle:`Важливо: збережіть цей ключ`,description:`Цей ключ шифрування захищає ваші конфіденційні дані. Зберігайте його надійно - він знадобиться для відновлення бази даних.`,warning:`Попередження`,warningText:`Якщо ви втратите цей ключ і вам потрібно буде відновити базу даних, ваші зашифровані дані (API-ключі, налаштування) будуть безповоротно втрачені.`,label:`Ваш ключ шифрування`,loading:`Завантаження...`,copyToClipboard:`Копіювати в буфер обміну`,copied:`Ключ шифрування скопійовано!`,copyFailed:`Не вдалося скопіювати ключ`,envNote:`Цей ключ також збережено у файлі backend/.env як ENCRYPTION_KEY`,acknowledgment:`Я зберіг ключ шифрування в надійному місці та розумію, що його втрата може призвести до втрати даних.`,confirmRequired:`Підтвердіть, що ви зберегли ключ шифрування`,continue:`Продовжити до Libre WebUI`},connectModels:{title:`Підключіть свої моделі`,subtitle:`Локально чи в хмарі — оберіть те, чим уже користуєтесь. Це завжди можна змінити пізніше.`}},chat:JSON.parse(`{"greeting":{"morning":"Доброго ранку","afternoon":"Доброго дня","evening":"Доброго вечора","night":"Доброї ночі"},"followUp":"Продовжити","welcome":{"helpToday":"Чим можу допомогти сьогодні?","helpTonight":"Чим можу допомогти сьогодні ввечері?","variety":{"create":{"title":"Що будемо створювати?","subtitle":"Почніть із думки, начерку або задачі, що ніяк не дається."},"explore":{"title":"З чого почнемо?","subtitle":"Принесіть запитання, до якого постійно повертаєтеся."},"imagine":{"title":"Що ви уявляєте?","subtitle":"Ми можемо разом надати цьому форми."},"focus":{"title":"Що заслуговує на вашу увагу?","subtitle":"Зробімо наступний крок зрозумілим."},"untangle":{"title":"Що треба розплутати?","subtitle":"Спочатку покажіть усе як є, навіть якщо поки хаотично."},"momentum":{"title":"Почнемо, коли будете готові.","subtitle":"Поверніться до ідеї, плану або незавершеної теми."},"open":{"title":"Що у вас на думці?","subtitle":"Невелика думка або амбітний проєкт. Підійде і те, й інше."},"challenge":{"title":"Що ми розв’язуємо?","subtitle":"Розкажіть, що поки не працює."},"draft":{"title":"Почнімо хоч із чогось.","subtitle":"Необов’язково одразу все шліфувати."},"possibility":{"title":"На що це може перетворитися?","subtitle":"Покажіть мені вихідний матеріал."},"unexpected":{"title":"Створімо щось несподіване.","subtitle":"Дайте мені обмеження, настрій або ще не до кінця сформовану ідею."}}},"input":{"placeholder":"Надіслати повідомлення","messagePlaceholder":"Повідомлення...","attachImages":"Прикріпити зображення","attachments":"Вкладення та розширені функції","sendMessage":"Надіслати повідомлення","stopGeneration":"Зупинити генерацію","menu":{"uploadImages":"Завантажити зображення","attachDocument":"Прикріпити документ","attachWebpage":"Прикріпити вебсторінку","structuredOutput":"Структурований вивід","attach":"Прикріпити","documentAttached":"Документ прикріплено","webpageAttached":"Вебсторінку прикріплено","attachFailed":"Не вдалося прикріпити","attachKnowledge":"Прикріпити знання","noCollections":"Колекцій поки немає — створіть у Налаштуваннях → Документи"},"voiceInput":"Голосове введення","voiceStop":"Зупинити прослуховування","transcriptionSource":"Джерело розпізнавання мовлення","browserSpeech":"Служба розпізнавання мовлення браузера","providerTranscriptionDisclosure":"Записати й надіслати аудіо до {{provider}} для транскрибування","webSearchOn":"Вебпошук увімкнено — відповіді використовують живі результати","webSearchOff":"Шукати в інтернеті для цього повідомлення","toolsOn":"Інструменти увімкнено — модель може викликати схвалені інструменти","toolsOff":"Дозволити моделі викликати інструменти в цьому повідомленні","thinkingOn":"Міркування увімкнено ({{level}})","thinkingOff":"Міркувати перед відповіддю"},"session":{"new":"Новий чат","work":"Робота","chat":"Чат","private":"Приватний","incognito":"Приватна розмова","privateMode":"Приватний режим","privateDescription":"Ця розмова не буде збережена","privateTooltip":"Почати приватну розмову, яка не буде збережена","deleteConfirm":"Ви впевнені, що хочете видалити цей чат?","generatingTitle":"Генерація заголовка","noChats":"Чатів ще немає","createFirst":"Створіть свій перший чат вище","chats":"Чати","renameChat":"Перейменувати чат","openNewTab":"Відкрити в новій вкладці","pinChat":"Закріпити","unpinChat":"Відкріпити","deleteChat":"Видалити чат","archiveChat":"Архівувати чат","groups":{"pinned":"Закріплені","today":"Сьогодні","yesterday":"Вчора","previous7Days":"Останні 7 днів","previous30Days":"Останні 30 днів","older":"Старіші"},"folder":{"new":"Нова папка","namePlaceholder":"Назва папки","move":"Перемістити до папки","remove":"Прибрати з папки","delete":"Видалити папку","deleteConfirm":"Видалити цю папку? Чати всередині збережуться."},"shareChat":"Поділитися чатом…"},"persona":{"applied":"Персону застосовано","label":"Персона","loadFailed":"Не вдалося завантажити відомості про персону","removeFailed":"Не вдалося видалити персону"},"model":{"updated":"Модель оновлено","noModels":"Моделі недоступні","noModelsDescription":"Моделі недоступні. Переконайтеся, що Ollama працює та моделі встановлені.","pullCommand":"ollama pull llama3.2:3b","noModelsTooltip":"Моделі недоступні. Переконайтеся, що Ollama працює та моделі встановлені.","selectBeforePrivateChat":"Виберіть доступну модель перед початком приватного чату","selectBeforeSending":"Виберіть доступну модель перед надсиланням","selectBeforeRegenerating":"Виберіть доступну модель перед повторним генеруванням","connectDescription":"Ще жодної моделі не підключено. Оберіть джерело нижче — локальне середовище виконання, власний сервер або хмарний API — і ви почнете спілкування менш ніж за хвилину."},"footer":{"disclaimer":"LLM може помилятися - перевіряйте важливу інформацію","images":"{{count}} зображення","images_plural":"{{count}} зображень","structuredOutput":"Структурований вивід"},"mediaUpload":{"dropImagesHere":"Перетягніть зображення сюди або","supportedFormats":"Підтримується: JPG, PNG, GIF, WebP (макс. 10 МБ кожне)","browse":"оберіть","unsupportedFileType":"Тип файлу не підтримується: {{name}}","maxImagesAllowed":"Дозволено не більше {{count}} зображень","imageTooLarge":"Зображення {{name}} завелике (не більше 10 МБ)"},"structuredOutput":{"title":"Формат відповіді","none":"Без формату (природна мова)","noneDescription":"Стандартна відповідь природною мовою","json":"JSON","jsonDescription":"Структурований формат JSON","list":"Список","listDescription":"Масив елементів","summary":"Підсумок","summaryDescription":"Підсумок документа з ключовими пунктами","analysis":"Аналіз","analysisDescription":"Структурований аналіз з перевагами/недоліками","custom":"Власна схема","customDescription":"Визначте власну JSON-схему","customSchema":"Власна JSON-схема","schemaPreview":"Попередній перегляд схеми","applySchema":"Застосувати схему","cancel":"Скасувати","enabled":"Структурований вивід увімкнено"},"controls":{"title":"Налаштування чату","systemPrompt":"Системний промпт","systemPromptPlaceholder":"Інструкції лише для цього чату…","advancedParams":"Розширені параметри","advancedParamsDescription":"Перевизначення для цього чату. Порожні поля використовують глобальні значення.","fromModel":"з моделі","fromModelHint":"Це значення взято з рекомендованих налаштувань самої моделі.","contextCapped":"Контекст обмежено до {{context}} із {{trained}}, на яких навчалася модель, щоб вона завантажувалася.","saved":"Налаштування збережено","saveFailed":"Не вдалося зберегти налаштування","params":{"temperature":"Температура","topP":"Top P","topK":"Top K","minP":"Min P","maxTokens":"Макс. токенів","repeatPenalty":"Штраф за повтори","seed":"Сід","contextLength":"Довжина контексту"},"thinking":"Міркування","thinkingDescription":"Скільки модель міркує перед відповіддю. Моделі без міркування це ігнорують.","compaction":"Стиснення контексту","compactionDescription":"Коли сервер ущільнює довгі розмови, цей чат може відмовитися й зберегти повну історію.","compactionDefault":"Типове налаштування сервера","compactionOff":"Вимкнено для цього чату"},"message":{"sources":"Джерела"},"toasts":{"chatCreated":"Новий чат створено","createFailed":"Не вдалося створити сеанс","loadFailed":"Не вдалося завантажити сеанси","chatDeleted":"Чат видалено","deleteFailed":"Не вдалося видалити чат","deleteSessionFailed":"Не вдалося видалити сеанс","historyCleared":"Усю історію чату очищено","historyClearFailed":"Не вдалося очистити історію чату","titleUpdated":"Назву чату оновлено","updateFailed":"Не вдалося оновити сеанс","noValidSession":"Немає дійсного сеансу чату. Створіть або виберіть чат.","sessionNotFound":"Сеанс не знайдено або він недійсний. Виберіть або створіть дійсний сеанс чату.","noModelProvider":"Немає доступного постачальника моделей","modelUnavailable":"Вибрану модель \\"{{model}}\\" недоступно у {{provider}}. Повторно активуйте цього постачальника або виберіть іншу модель.","modelSwitched":"Переключено на {{model}} (попередня модель більше недоступна)","modelsLoadFailed":"Не вдалося завантажити моделі","modelUpdated":"Модель оновлено для поточного чату","modelUpdateFailed":"Не вдалося оновити модель сеансу","titlePreviewFallback":"Не вдалося створити заголовок; використовується попередній перегляд повідомлення","titleGenerated":"Заголовок чату створено","titleGenerationFailed":"Не вдалося створити заголовок чату","sessionNotFoundRedirect":"Сеанс не знайдено. Створюється новий сеанс...","comparisonError":"{{model}}: {{error}}","generationFailed":"помилка генерування","comparisonFailed":"помилка порівняння","sendFailed":"Не вдалося надіслати повідомлення","noMessageToRegenerate":"Немає повідомлення для повторного генерування","regenerateFailed":"Не вдалося повторно згенерувати повідомлення","messageNotFound":"Повідомлення не знайдено","branchSwitched":"Вибрано варіант {{number}}","branchSelectFailed":"Не вдалося вибрати гілку","editFailed":"Не вдалося змінити повідомлення","toolDecisionFailed":"Не вдалося записати рішення щодо інструмента"},"documents":{"title":"Документи в контексті"},"context":{"title":"Вікно контексту:","full":"заповнено на {{percent}}%","tokensUsed":"використано {{used}} / {{budget}} токенів","tokensUsedNoBudget":"використано {{used}} токенів","capped":"обмежено з {{trained}}"},"queue":{"title":"У черзі ({{total}})","moveUp":"Вище","moveDown":"Нижче","updateFailed":"Не вдалося змінити запит у черзі","enqueueFailed":"Не вдалося поставити запит у чергу"},"compare":{"title":"Порівняти моделі","hint":"Відповідати додатково до {{max}} моделями"},"fork":{"action":"Відгалузити звідси","created":"Чат відгалужено","failed":"Не вдалося відгалузити чат","origin":"Відгалуження від {{title}}","originUnknown":"іншого чату"},"sharedReadOnly":"Поділився {{owner}} — лише перегляд"}`),sidebar:{navigation:{chat:`Чат`,models:`Моделі`,personas:`Персони`,imagine:`Генерація`,work:`Робота`,settings:`Налаштування`,usageAnalytics:`Використання провайдерів`,system:`Система`,userManagement:`Керування користувачами`,signOut:`Вийти`,exploreLabel:`Огляд`,notes:`Нотатки`,calendar:`Календар`,automations:`Автоматизації`,prompts:`Промпти`,skills:`Навички`,tools:`Інструменти`,channels:`Канали`,strands:`Strands`},toggleSize:`Змінити розмір бічної панелі`,expandSidebar:`Розгорнути бічну панель`},user:{menu:{changePicture:`Змінити зображення`,settings:`Налаштування`,usageAnalytics:`Використання провайдерів`,system:`Система`,userManagement:`Керування користувачами`,logout:`Вийти`,pinShortcut:`Закріпити на бічній панелі`,unpinShortcut:`Відкріпити від бічної панелі`,evaluations:`Оцінювання`},avatar:{title:`Змінити фото профілю`,updated:`Фото профілю оновлено`,updateFailed:`Не вдалося оновити фото профілю`,saving:`Збереження...`,label:`Аватар`,uploadAvatarImage:`Завантажити зображення аватара`,dragAndDrop:`Перетягніть зображення або натисніть для вибору`,chooseImage:`Вибрати зображення`,uploading:`Завантаження...`,enterImageUrl:`Або введіть URL зображення`,supportedFormats:`Підтримуються: JPG, PNG, GIF, WebP (макс. 2 МБ). Квадратні зображення підходять найкраще.`,customAvatar:`Користувацьке зображення аватара`,clickToChange:`Натисніть, щоб змінити або видалити`,removed:`Аватар видалено`,uploaded:`Аватар успішно завантажено`,invalidFile:`Будь ласка, виберіть дійсний файл зображення`,fileTooLarge:`Розмір зображення аватара має бути менше 2 МБ`,readFailed:`Не вдалося прочитати файл зображення`,uploadFailed:`Не вдалося завантажити зображення аватара`},profile:{noEmail:`Електронна пошта не вказана`}},settings:JSON.parse(`{"title":"Налаштування","tabs":{"appearance":"Зовнішній вигляд","model":"За замовчуванням","systemMessage":"Системне повідомлення","plugins":"Плагіни","search":"Пошук","generation":"Генерація","documents":"Документи","tts":"Текст у мовлення","imageGen":"Генерація зображень","data":"Дані","shortcuts":"Комбінації клавіш","about":"Про програму","sessions":"Сеанси","apiKeys":"API-ключі","notifications":"Сповіщення","ollamaDisabled":"Ollama вимкнено адміністратором"},"appearance":{"title":"Зовнішній вигляд","language":{"title":"Мова","description":"Виберіть бажану мову"},"theme":{"title":"Тема","light":"Світла","dark":"Темна","amoled":"Глибокий чорний","celestial":"Небесна","system":"Системна"},"accent":{"title":"Акцентний колір","custom":"Власний колір","useColor":"Використати {{color}} як акцент","behaviorTitle":"Палітра інтерфейсу","behaviorDescription":"Оберіть, чи залишити акцент лише на елементах керування, чи адаптувати весь світлий або темний інтерфейс.","defaultStyle":"За замовчуванням","defaultStyleDescription":"Зберегти нейтральні поверхні світлої та темної теми.","adaptedStyle":"Адаптувати до акценту","adaptedStyleDescription":"Забарвити поверхні, межі й текст акцентним кольором."},"chatInterface":{"title":"Інтерфейс чату","showUsername":"Показувати ім'я користувача","showUsernameDescription":"Відображати ім'я користувача в повідомленнях чату","followUpSuggestions":"Підказки для продовження","followUpSuggestionsDescription":"Пропонувати швидкі відповіді після кожної відповіді","hapticFeedback":"Тактильний відгук (Android)","hapticFeedbackDescription":"Використовувати легку вібрацію для важливих мобільних дій","autoOpenArtifacts":"Автоматично відкривати артефакти","autoOpenArtifactsDescription":"Відкривати панель артефактів, коли відповідь створює артефакт"},"background":{"title":"Фонове зображення","enable":"Увімкнути фонове зображення","enableDescription":"Показувати шпалери на Головній, у Чаті та Роботі.","blur":"Розмиття","opacity":"Прозорість","upload":"Завантажити фонове зображення","dragDrop":"Перетягніть зображення або клацніть для вибору","chooseImage":"Вибрати зображення","effect":"Стиль","dither":"Дизеринг","original":"Оригінал","blurred":"Розмитий","intensity":"Інтенсивність","preview":"Попередній перегляд шпалер","change":"Змінити зображення","saved":"Збережено","saveFailed":"Не вдалося зберегти зміни. Спробуйте ще раз.","originalPreserved":"Початкове зображення залишається без змін.","fileTooLarge":"Розмір фонового зображення не має перевищувати 10 МБ."},"celestial":{"title":"Час доби","description":"Небесна тема слідує за сонцем там, де ви є. Перетягніть, щоб переглянути будь-яку хвилину, або дозвольте їй слідувати за годинником.","live":"Наживо","preview":"Попередній перегляд","followClock":"Слідувати за годинником","sunrise":"Схід сонця","sunset":"Захід сонця","location":"Місцезнаходження","locationHint":"Необов'язково. Зберігається лише в цьому браузері й ніколи не надсилається на сервер; координати округлюються приблизно до кілометра.","useMyLocation":"Використати моє місцезнаходження","locationDenied":"Браузер не надав місцезнаходження. Можна ввести координати вручну.","latitude":"Широта","longitude":"Довгота","apply":"Застосувати","clear":"Очистити","approximateDay":"Приблизна тривалість дня","weather":"Враховувати погоду","weatherHint":"Отримує поточні умови з Open-Meteo для вашого місцезнаходження: хмари, дощ, сніг, туман і вітер формують небо. Потрібне місцезнаходження.","weatherLoading":"Отримання погоди…","weatherUnavailable":"Погода зараз недоступна.","wind":"вітер {{speed}} км/год","kinds":{"clear":"Ясно","partly":"Мінлива хмарність","overcast":"Хмарно","fog":"Туман","drizzle":"Мряка","rain":"Дощ","snow":"Сніг","thunder":"Гроза"}}},"saveSettings":"Зберегти налаштування","preferences":{"updateFailed":"Не вдалося оновити налаштування: {{error}}"},"model":{"title":"Налаштування моделі","defaultModel":"Модель за замовчуванням","defaultModelDescription":"Ця модель буде використовуватися за замовчуванням для нових розмов","selectModel":"Виберіть модель","specializedModels":"Спеціалізовані моделі","visionModel":"Модель зору","selectVisionModel":"Використовувати поточну модель чату","visionModelDescription":"Використовується автоматично, щоразу коли контекст чату містить зображення. Виберіть модель, що підтримує введення зображень.","visionModelUpdateFailed":"Не вдалося оновити модель зору: {{error}}","visionModelNoProvider":"Ця модель зору не має ідентифікатора провайдера. Виберіть доступну модель.","persona":"Персона","updateAll":"Оновити всі моделі","updateAllDescription":"Перевірити оновлення та завантажити останні версії всіх встановлених моделей","updateAllButton":"Оновити всі","updating":"Оновлення моделей...","currentModelInfo":"Інформація про поточну модель","name":"Назва","size":"Розмір","family":"Сімейство","format":"Формат","status":"Статус","statusStarting":"Запуск...","statusComplete":"Завершено","statusError":"Помилка","bulkOperations":"Масові операції","autoTitle":{"title":"Автоматична генерація заголовків","enable":"Увімкнути автозаголовки","enableDescription":"Генерувати заголовки чатів і зведення міркувань у реальному часі","taskModel":"Модель для завдань","selectTaskModel":"Виберіть модель для завдань","taskModelDescription":"Модель для заголовків і зведень міркувань у реальному часі. Останні міркування надсилаються цій моделі."},"updatingModel":"Оновлення {{name}} ({{current}}/{{total}})","modelsProgress":"{{current}} з {{total}} моделей","defaultModelUpdated":"Модель за замовчуванням оновлено","allModelsUpdated":"Усі моделі успішно оновлено!","updateAllFailed":"Не вдалося оновити моделі: {{error}}"},"systemMessage":{"title":"Системне повідомлення","description":"Встановіть власне системне повідомлення, яке буде використовуватися для всіх нових розмов.","placeholder":"Введіть системне повідомлення...","saved":"Системне повідомлення збережено","saveFailed":"Не вдалося зберегти системне повідомлення"},"plugins":{"title":"Плагіни","description":"Керуйте встановленими плагінами","providerConnections":"Підключення провайдерів","providerConnectionsDescription":"Підключайте, налаштовуйте та перевіряйте провайдерів моделей через плагіни.","providers":"Провайдери","searchProviders":"Пошук провайдерів","noProvidersFound":"Жоден провайдер не відповідає вашому пошуку.","selectProvider":"Виберіть провайдера","selectProviderDescription":"Виберіть провайдера, щоб переглянути його підключення та каталог моделей.","addNew":"Додати новий плагін","upload":"Завантажити плагін","addJson":"Додати JSON","uploading":"Завантаження...","jsonPlaceholder":"Вставте JSON-конфігурацію плагіна...","install":"Встановити плагін","noPlugins":"Плагіни не встановлено","noPluginsDescription":"Додайте плагін для розширення функціональності","loading":"Завантаження плагінів...","installed":"Встановлені плагіни","active":"Активні плагіни","activeLabel":"Активний","inactive":"Неактивний","activate":"Активувати","deactivate":"Деактивувати","models":"моделей","apiKeySet":"API-ключ встановлено","apiKeyConfiguration":"Налаштування API-ключа","apiKeyDescription":"Зберегти особистий API ключ для {{name}}.","apiKeyEnvAlternative":"Або встановіть","environmentVariable":"змінну середовища","apiKeyConfigured":"API-ключ налаштовано","apiKeyPlaceholder":"Введіть API-ключ...","saveApiKey":"Зберегти API-ключ","showApiKey":"Показати API ключ","hideApiKey":"Приховати API ключ","configure":"Налаштувати","providerSettings":"Налаштування провайдера","status":"Статус","defaultEndpoint":"Типова кінцева точка","modelCatalog":"Каталог моделей","modelCatalogDescription":"Виявлені та налаштовані моделі для цього провайдера та їхні можливості.","refreshModels":"Оновити моделі","noModelsConfigured":"Для цього провайдера не налаштовано жодної моделі.","modelId":"ID моделі","capabilities":"Можливості","modelCatalogUpdated":"Каталог моделей оновлено: {{count}} моделей.","modelCatalogUnchanged":"Каталог моделей вже актуальний.","modelCatalogNeedsApiKey":"Додайте дійсний API-ключ для цього провайдера, щоб завантажити його актуальний список моделей.","modelCatalogUnavailable":"Не вдалося завантажити список моделей провайдера.","modelCatalogRefreshFailed":"Не вдалося оновити каталог моделей","invalidJson":"Неприпустимий формат JSON","capability":{"chat":"Чат","embedding":"Вбудовування","image":"Зображення","speech":"Мовлення","transcription":"Транскрипція"},"exportPlugin":"Експортувати плагін","deletePlugin":"Видалити плагін","apiKey":{"title":"API-ключ","placeholder":"Введіть API-ключ","save":"Зберегти ключ","remove":"Видалити ключ","configured":"API-ключ налаштовано","notConfigured":"Потрібен API-ключ","saved":"API-ключ успішно збережено","removed":"API-ключ видалено","saveFailed":"Не вдалося зберегти API-ключ","removeFailed":"Не вдалося видалити API-ключ","enterKey":"Введіть API-ключ"},"variables":"Variables"},"generation":{"title":"Параметри генерації","description":"Налаштуйте, як AI генерує відповіді","scopeLabel":"Застосовується до","scopeAll":"Усіх моделей","scopeModel":"Лише {{model}}","scopeAllHint":"Значення, які використовує кожна модель, якщо не має власних.","scopeModelHint":"Зберігається лише для цієї моделі й має перевагу над загальними значеннями.","advancedSettings":"Розширені налаштування генерації","advancedSettingsDescription":"Вибірка, ліміти токенів, контекст, штрафи та послідовності зупинки","coreParameters":"Основні параметри","temperature":"Температура","temperatureDescription":"Контролює випадковість. Нижчі значення більш зосереджені, вищі — більш креативні.","topP":"Top P","topPDescription":"Контролює різноманітність через nucleus sampling. Нижчі значення фокусуються на ймовірних токенах.","topK":"Top K","topKDescription":"Обмежує вибір токенів до K найімовірніших. Встановіть 0 для вимкнення.","minP":"Min P","minPDescription":"Мінімальний поріг ймовірності для вибору токенів.","generationControl":"Контроль генерації","maxTokens":"Макс. токенів","maxTokensDescription":"Максимальна кількість токенів для генерації у відповіді.","repeatPenalty":"Штраф за повторення","repeatPenaltyDescription":"Штрафує повторювані токени. Вищі значення зменшують повторення.","contextLength":"Довжина контексту","contextLengthDescription":"Максимальний розмір контекстного вікна для розмов.","seed":"Seed","optional":"необов'язково","random":"Випадковий","seedDescription":"Встановіть конкретний seed для відтворюваних результатів.","advancedOptions":"Розширені параметри","presencePenalty":"Штраф за присутність","presencePenaltyDescription":"Штрафує токени, що з'являються в контексті.","frequencyPenalty":"Штраф за частоту","frequencyPenaltyDescription":"Штрафує часто використовувані токени.","stopSequences":"Стоп-послідовності","commaSeparated":"через кому","stopSequencesDescription":"Власні токени, які зупинять генерацію при зустрічі.","resetDefaults":"Скинути до стандартних","saveOptions":"Зберегти параметри","saveSuccess":"Параметри генерування успішно оновлено","saveFailed":"Не вдалося оновити параметри генерування: {{error}}","modelDefaultsLoaded":"Завантажено налаштування, рекомендовані моделлю {{model}}","resetSuccess":"Параметри генерування скинуто до стандартних значень","resetFailed":"Не вдалося скинути параметри генерування: {{error}}","embeddingSettings":"Налаштування ембедингів","enableEmbeddings":"Увімкнути ембединги документів","thinking":"Міркування","thinkingDescription":"Типовий рівень міркування для відповідей. Кожен чат може його змінити.","thinkingLevels":{"default":"Типове для моделі","defaultWith":"Типове для моделі ({{level}})","off":"Вимкнено","on":"Увімкнено","low":"Низький","medium":"Середній","high":"Високий"}},"documents":{"title":"Налаштування документів","embeddings":{"title":"Ембединги","enable":"Увімкнути ембединги документів","model":"Модель ембедингів","modelDescription":"Виберіть модель для ембедингу документів","chunkSize":"Розмір частини","chunkSizeInTokens":"(у токенах)","chunkSizeDescription":"Розмір текстових частин для ембедингу","chunkOverlap":"Перекриття частин","chunkOverlapInTokens":"(у токенах)","chunkOverlapDescription":"Перекриття між послідовними частинами","similarityThreshold":"Поріг схожості","similarityDescription":"Мінімальний бал схожості для включення результатів","status":"Статус ембедингів","statusLabel":"Статус","available":"Доступно","unavailable":"Недоступно","chunksWithEmbeddings":"Частини з ембедингами","coverage":"Покриття","regenerate":"Перегенерувати ембединги","regenerating":"Перегенерація...","regenerateSuccess":"Ембединги повторно створено для {{count}} документів","regeneratePartialSuccess":"Оброблено документів: {{count}}; пропущено: {{skipped}}","regenerateFailed":"Не вдалося повторно створити ембединги: {{error}}","saveSuccess":"Налаштування ембедингів успішно оновлено","saveFailed":"Не вдалося оновити налаштування ембедингів: {{error}}","resetSuccess":"Налаштування ембедингів скинуто до стандартних значень","resetFailed":"Не вдалося скинути налаштування ембедингів: {{error}}"},"collections":{"title":"Колекції знань","description":"Групуйте документи в колекції та прикріплюйте їх до будь-якого чату.","namePlaceholder":"Назва колекції","create":"Створити","none":"Без колекції","deleteConfirm":"Видалити цю колекцію? Документи всередині збережуться.","createFailed":"Не вдалося створити колекцію","deleteFailed":"Не вдалося видалити колекцію","assignFailed":"Не вдалося перемістити документ","share":"Поділитися колекцією","shared":"спільна"},"library":{"title":"Завантажені документи","description":"Документи, доступні як контекст чату. Документ, завантажений у чаті, лишається у своїй розмові; документ без чату й колекції долучається до кожної розмови.","empty":"Документів ще не завантажено.","chatScope":"Один чат","everyChatScope":"Усі чати","deleteConfirm":"Видалити «{{name}}»? Він зникне з усіх чатів.","deleteFailed":"Не вдалося видалити документ","extractionFailed":"Помилка видобування","extractionQueued":"Видобування…"}},"tts":{"title":"Текст у мовлення","description":"Налаштуйте параметри синтезу мовлення для озвучення повідомлень","loadingProviders":"Завантаження провайдерів TTS...","noProviders":"Немає провайдерів TTS","noProvidersDescription":"Налаштуйте плагін з підтримкою TTS, щоб увімкнути синтез мовлення","enable":"Увімкнути TTS","enableDescription":"Дозволити синтез мовлення для повідомлень асистента","autoPlay":"Автовідтворення відповідей","autoPlayDescription":"Автоматично озвучувати нові повідомлення асистента","streamSentences":"Природне пакетне відтворення","streamSentencesDescription":"Заздалегідь створювати кілька пакетів з урахуванням фраз і відтворювати їх як одну безперервну відповідь.","voiceConfiguration":"Налаштування голосу","model":"Модель TTS","modelDescription":"Виберіть модель для синтезу мовлення","voice":"Голос","selectVoice":"Виберіть голос","voiceDescription":"Виберіть голос для синтезу мовлення","providerDefaultVoice":"Ця модель використовує голос за замовчуванням, якщо під час створення мовлення не надано еталонний запис.","voiceCloningAvailable":"Доступне клонування голосу","voiceCloningAvailableDescription":"Використовуйте розділ «Уявити → Аудіо», щоб створити мовлення з еталонного запису, зробленого за згодою мовця, і його точної розшифровки. За бажанням запис можна зберегти як голос для повторного використання.","savedVoiceOption":"{{name}} (збережений голос)","savedVoices":"Збережені голоси","loadingSavedVoices":"Завантаження збережених голосів…","deleteSavedVoice":"Видалити збережений голос {{name}}","deleteSavedVoiceConfirm":"Видалити збережений голос «{{name}}»? Його еталонний запис і розшифровку буде видалено.","savedVoiceDeleted":"Збережений голос видалено","savedVoicePreferenceCleanupFailed":"Збережений голос видалено, але налаштування мовлення не вдалося скинути","savedVoiceDeleteFailed":"Не вдалося видалити збережений голос","speed":"Швидкість","speedSlow":"0.5x","speedNormal":"1.0x","speedFast":"2.0x","availableProviders":"Доступні провайдери","models":"моделей","test":"Тест","testing":"Тестування...","stop":"Зупинити","consentRevoked":"Згоду відкликано","consentExpired":"Строк згоди минув","transferCount":"надіслано постачальнику {{total}} разів","consentExpires":"згода до {{date}}","revokeSavedVoice":"Відкликати згоду для {{name}}","revokeSavedVoiceConfirm":"Відкликати згоду для «{{name}}»? Збережений голос більше не можна буде використовувати, але запис про згоду зберігається.","savedVoiceRevoked":"Згоду відкликано","savedVoiceRevokeFailed":"Не вдалося відкликати згоду","savedVoiceUnavailableCleanupFailed":"Збережений голос недоступний, і його не вдалося видалити з налаштувань мовлення","saveSuccess":"Налаштування TTS успішно збережено","saveFailed":"Не вдалося зберегти налаштування TTS: {{error}}","testFailed":"Помилка перевірки TTS: {{error}}"},"imageGen":{"title":"Генерація зображень","description":"Налаштуйте параметри та провайдерів генерації зображень","loadingProviders":"Завантаження провайдерів генерації зображень...","noProviders":"Немає провайдерів генерації зображень","noProvidersDescription":"Налаштуйте плагін з підтримкою генерації зображень","enable":"Увімкнути генерацію зображень","enableDescription":"Дозволити AI-генерацію зображень у розмовах","configuration":"Налаштування","model":"Модель","modelDescription":"Виберіть модель для генерації зображень","size":"Розмір","sizeDescription":"Роздільна здатність згенерованих зображень","quality":"Якість","qualityDescription":"Рівень якості згенерованих зображень","style":"Стиль","styleDescription":"Пресет стилю для згенерованих зображень","availableProviders":"Доступні провайдери","models":"моделей","saveSuccess":"Налаштування генерування зображень успішно збережено","saveFailed":"Не вдалося зберегти налаштування генерування зображень: {{error}}"},"data":{"title":"Керування даними","export":"Експорт даних","exportDescription":"Завантажте переносний архів налаштувань, папок чатів, сеансів і повідомлень, нотаток, колекцій знань та видобутого тексту документів.","archiveScopeV3":"Містить налаштування, чати, папки, нотатки, колекції знань і видобутий текст документів. Не містить облікових записів і секретів, біометрично клонованих голосів, створених медіафайлів, персон і пам’яті, а також даних або томів Work.","exportAll":"Експортувати всі дані","import":"Імпорт даних","importDescription":"Імпортуйте дані з попереднього експорту.","importData":"Імпортувати дані","importing":"Імпорт...","clearSessions":"Очистити сесії","clearSessionsDescription":"Видалити всі сесії чату. Цю дію неможливо скасувати.","clearAll":"Очистити все","clearing":"Очищення...","importOptions":"Параметри імпорту","importOptionsDescription":"Виберіть, як обробляти існуючі дані","validatingArchive":"Перевірка архіву та обчислення змін…","archiveValidationFailed":"Не вдалося перевірити архів","preflightReport":"Попередній перегляд імпорту","preflightIncoming":"{{folders}} папок · {{sessions}} чатів · {{messages}} повідомлень · {{notes}} нотаток · {{collections}} колекцій · {{documents}} документів · {{chunks}} фрагментів","preflightRemappedIds":"{{count}} ідентифікаторів буде перепризначено для захисту даних іншого облікового запису.","skipDuplicates":"Пропустити дублікати","overwrite":"Перезаписати існуючі","importResults":"Результати імпорту","preferences":"Налаштування","imported":"Імпортовано","failed":"Помилка","sessions":"Сесії","sessionFolders":"Папки сеансів","notes":"Нотатки","knowledgeCollections":"Колекції знань","importedLabel":"імпортовано","overwrittenLabel":"перезаписано","skipped":"пропущено","toCreate":"буде створено","toOverwrite":"буде перезаписано","toSkip":"буде пропущено","documents":"Документи","warnings":"Попередження","refreshAfterImportFailed":"Дані імпортовано, але деякі подання не вдалося оновити. Перезавантажте Libre WebUI, щоб побачити всі зміни.","exportSuccess":"Переносний архів даних експортовано","exportFailed":"Не вдалося експортувати дані","importSuccess":"Переносний архів даних імпортовано","importFailed":"Не вдалося імпортувати дані","archiveErrors":{"invalidJson":"Переносний архів не містить припустимого JSON.","objectRequired":"Переносний архів має містити об’єкт JSON.","unsupportedVersion":"Версія переносного архіву {{version}} не підтримується.","unrecognized":"Цей файл не є переносним архівом Libre WebUI."},"errors":"Помилки","archivedChats":{"title":"Архівовані чати","empty":"Немає архівованих чатів","unarchive":"Відновити"}},"about":{"title":"Про програму","versionLabel":"Версія","ollama":{"title":"Статус Ollama","version":"Версія","healthy":"Працює","unhealthy":"Не працює"},"stats":{"models":"Моделі","sessions":"Сесії"},"features":{"privacy":{"title":"Приватність перш за все","description":"Ваші дані залишаються на вашому пристрої"},"openSource":{"title":"Відкритий код","description":"Безкоштовне програмне забезпечення з відкритим кодом"},"localInference":{"title":"Локальний інференс","description":"Запускайте AI-моделі локально з Ollama"}},"openSourceBy":"Відкритий код від {{company}}","links":{"title":"Посилання","github":"GitHub","githubDescription":"Переглянути вихідний код та зробити внесок","website":"Веб-сайт","websiteDescription":"Відвідайте наш веб-сайт","documentation":"Документація","reportIssue":"Повідомити про проблему","reportIssueDescription":"Звіти про помилки та запити функцій","documentationDescription":"Посібники, навчальні матеріали та довідник API","forgejo":"Дзеркало Forgejo","forgejoDescription":"Самостійно розміщений репозиторій Forgejo","sponsor":"Підтримати","sponsorDescription":"Допоможіть фінансувати проєкт","star":"Зірка на GitHub","starDescription":"Зірка допомагає іншим знайти проєкт"},"version":"Версія {{version}}","updates":{"checking":"Перевірка оновлень…","upToDate":"У вас остання версія","updateAvailable":"Доступна версія {{version}}","ahead":"Ви випереджаєте останній реліз ({{version}})","checkFailed":"Не вдалося перевірити оновлення","viewChangelog":"Переглянути список змін"}},"groups":{"general":"Загальні","chat":"Чат","media":"Мовлення та зображення","connections":"З'єднання","admin":"Адміністрування"},"search":{"title":"Вебпошук","description":"Шукайте в інтернеті через власний екземпляр SearXNG. Після ввімкнення в чаті з'являється перемикач пошуку, а завдання Work з доступом до мережі можуть шукати.","enableLabel":"Увімкнути вебпошук","enableDescription":"Надати вебпошук чатам і завданням Work. Пошук виконується на сервері через налаштований екземпляр.","urlLabel":"URL SearXNG","urlDescription":"Базовий URL екземпляра SearXNG, доступний із сервера. Доданий приватний деплой-стек надає http://searxng:8080.","maxResultsLabel":"Результатів на пошук","maxResultsDescription":"Скільки результатів живлять відповідь або виклик інструмента, 1-100.","maxResultsInvalid":"Кількість результатів має бути від 1 до 100.","safeSearchLabel":"Безпечний пошук","safeSearchDescription":"Просити рушій фільтрувати відверті результати.","test":"Перевірити з'єднання","testing":"Перевірка…","testOk":"Пошук працює — отримано {{results}} результатів","testFailed":"Перевірка пошуку не вдалася","save":"Зберегти","saved":"Налаштування пошуку збережено","saveFailed":"Не вдалося зберегти налаштування пошуку"},"compaction":{"title":"Стиснення контексту","description":"Коли розмова перевищує поріг токенів, сервер підсумовує її старіші повідомлення й дослівно зберігає лише найновіші. Діє для всіх користувачів цього сервера.","thresholdLabel":"Поріг токенів","thresholdDescription":"Оцінна кількість токенів контексту, вище якої стара історія підсумовується, 500-1 000 000.","thresholdInvalid":"Поріг токенів має бути від 500 до 1 000 000.","keepRecentLabel":"Збережені останні повідомлення","keepRecentDescription":"Скільки останніх повідомлень завжди залишаються дослівно, 2-200.","keepRecentInvalid":"Кількість збережених останніх повідомлень має бути від 2 до 200.","modelLabel":"Модель стиснення","modelDescription":"Модель, яка пише підсумки. Якщо нічого не вибрано, використовується модель самого сеансу.","sessionModelOption":"Використовувати модель сеансу","promptLabel":"Власний промпт для підсумку","promptPlaceholder":"Залиште порожнім, щоб використовувати вбудований промпт","promptDescription":"Змінні шаблону {{previousSummaryVariable}} і {{messagesVariable}} замінюються попереднім підсумком і повідомленнями, що підсумовуються.","saved":"Налаштування стиснення збережено","saveFailed":"Не вдалося зберегти налаштування стиснення","loadFailed":"Не вдалося завантажити налаштування стиснення"},"sessions":{"title":"Сеанси","description":"Усі місця, де виконано вхід у цей обліковий запис. Вихід із сеансу набирає чинності негайно; повторний вхід відновлює доступ.","signOutOthers":"Вийти з інших сеансів","signingOutOthers":"Вихід…","signOut":"Вийти","signingOut":"Вихід…","revoked":"Сеанс завершено.","revokeFailed":"Не вдалося завершити сеанс.","othersRevoked":"Завершено інших сеансів: {{count}}","loadFailed":"Не вдалося завантажити сеанси.","empty":"Сеансів не знайдено.","current":"Поточний сеанс","revokedBadge":"Завершено","unknownDevice":"Невідомий пристрій","createdAt":"Вхід виконано","lastSeenAt":"Остання активність","expiresAt":"Закінчується"},"apiKeys":{"title":"API-ключі","description":"Токени з обмеженими областями дії для скриптів та інтеграцій. Кожен ключ має доступ лише до вибраних вами областей.","newKeyTitle":"Ваш новий API-ключ","copy":"Копіювати","copied":"Скопійовано в буфер обміну.","copyFailed":"Не вдалося скопіювати.","showOnceWarning":"Скопіюйте його зараз — більше він не показуватиметься.","dismiss":"Готово","createTitle":"Створити ключ","nameLabel":"Назва","namePlaceholder":"напр. CI-конвеєр","nameRequired":"Дайте ключу назву.","expiryLabel":"Термін дії в днях (необов'язково)","expiryPlaceholder":"Безстроково","expiryInvalid":"Термін дії має бути цілим числом днів.","scopesLabel":"Області дії","scopesRequired":"Виберіть принаймні одну область дії.","create":"Створити ключ","creating":"Створення…","created":"API-ключ створено.","createFailed":"Не вдалося створити API-ключ.","revoke":"Відкликати","revoking":"Відкликання…","revoked":"API-ключ відкликано.","revokeFailed":"Не вдалося відкликати API-ключ.","revokedBadge":"Відкликано","loadFailed":"Не вдалося завантажити API-ключі.","empty":"API-ключів ще немає.","createdAt":"Створено","lastUsedAt":"Останнє використання","expiresAt":"Закінчується","neverExpires":"Безстроково"},"notifications":{"title":"Сповіщення","description":"Як цей браузер дізнається про згадки, спільні ресурси, нагадування та завершену роботу.","pushTitle":"Сповіщення браузера","pushHint":"Показувати системні сповіщення з цього пристрою, навіть коли вкладка у фоні.","enabled":"Сповіщення браузера ввімкнено на цьому пристрої.","disabled":"Сповіщення браузера вимкнено на цьому пристрої.","enableFailed":"Не вдалося ввімкнути сповіщення браузера.","permissionDenied":"Сповіщення заблоковано в налаштуваннях браузера для цього сайту.","unsupported":"Цей браузер не підтримує push-сповіщення.","workerMissing":"Для push потрібен встановлений застосунок. Перезавантажте продакшн-застосунок і спробуйте ще раз.","deviceNote":"Сповіщення діють на пристрій. Вихід із сеансу також видаляє його push-реєстрацію.","emailTitle":"Сповіщення електронною поштою","emailHint":"Повідомлення надходять на {{address}}.","emailLoading":"Перевіряємо, чи доступна електронна пошта…","emailUnavailable":"Адміністратор ще не налаштував сервер вихідної пошти.","emailNoAddress":"У вашому обліковому записі немає електронної адреси. Попросіть адміністратора додати її в розділі «Керування користувачами».","emailLoadFailed":"Не вдалося перевірити доступність електронної пошти.","emailMentions":"Згадки в каналі","emailMentionsHint":"Надсилати мені листа, коли хтось згадує мене в каналі.","emailAutomations":"Результати автоматизацій","emailAutomationsHint":"Надсилати мені листа з результатом кожного запуску автоматизації, незалежно від успіху чи невдачі."}}`),models:{title:`Моделі`,subtitle:`Завантажуйте, керуйте та моніторте ваші моделі Ollama`,installed:`Встановлені моделі`,available:`Доступні моделі`,pull:`Завантажити модель`,pulling:`Завантаження...`,delete:`Видалити модель`,deleting:`Видалення...`,size:`Розмір`,modified:`Змінено`,family:`Сімейство`,parameters:`Параметри`,quantization:`Квантизація`,noModels:`Моделі не встановлено`,pullFirst:`Завантажте модель, щоб почати`,noModelsFound:`Моделей не знайдено`},personas:{title:`Персони`,create:`Створити персону`,edit:`Редагувати персону`,delete:`Видалити персону`,name:`Назва`,description:`Опис`,systemPrompt:`Системний промпт`,model:`Модель`,avatar:`Аватар`,background:`Фон`,noPersonas:`Персони не створено`,createFirst:`Створіть свою першу персону, щоб налаштувати досвід чату`},gallery:{title:`Галерея`,subtitle:`Ваша галерея зображень, згенерованих AI`,imageCount:`{{count}} зображень`,generate:`Згенерувати зображення`,generateDescription:`Створюйте зображення за допомогою AI`,generating:`Генерація...`,prompt:`Промпт`,promptPlaceholder:`Опишіть зображення, яке хочете згенерувати...`,noImages:`Зображення ще не згенеровано`,download:`Завантажити`,delete:`Видалити`,regenerate:`Перегенерувати`,model:`Модель`,size:`Розмір`,quality:`Якість`,created:`Створено`},errors:{generic:`Сталася помилка`,network:`Помилка мережі. Перевірте підключення.`,unauthorized:`У вас немає дозволу на виконання цієї дії.`,notFound:`Запитуваний ресурс не знайдено.`,serverError:`Помилка сервера. Спробуйте пізніше.`,validation:`Перевірте введені дані та спробуйте ще раз.`},keyboard:{title:`Гарячі клавіші`,toggleSidebar:`Перемкнути бічну панель`,openSettings:`Відкрити налаштування`,toggleDarkMode:`Перемкнути темний режим`,showShortcuts:`Показати гарячі клавіші`,closeModals:`Закрити модальні вікна`,groups:{navigation:`Навігація`,general:`Загальні`,chat:`Чат`,workspace:`Робоча область`},actions:{sendMessage:`Надіслати повідомлення`,newLine:`Новий рядок у повідомленні`,saveEdit:`Зберегти змінене повідомлення`,cancelEdit:`Скасувати редагування`,saveFile:`Зберегти файл`,formatCode:`Форматувати код`},description:`Усі комбінації клавіш, доступні в Libre WebUI.`,newChat:`Новий чат`,newWork:`Новий сеанс Work`,openPalette:`Відкрити палітру команд`},modelDownload:{success:`Модель {{name}} завантажено`,failed:`Не вдалося завантажити: {{error}}`,startFailed:`Не вдалося розпочати завантаження`,cancelled:`Завантаження скасовано`},modelTools:{toasts:{fetchInfoFailed:`Не вдалося отримати інформацію`,pushSuccess:`Модель надіслано`,createSuccess:`Модель створено`,copySuccess:`Модель скопійовано`,embeddingsSuccess:`Ембединги згенеровано (див. консоль)`,failed:`Не вдалося`,unknownError:`Невідома помилка`}},modelManager:{title:`Моделі`,loading:`Завантаження моделей...`,systemStatus:{online:`Ollama онлайн`,offline:`Ollama офлайн`,models:`модель`,models_plural:`моделей`,running:`працює`,vram:`VRAM`},sections:{pull:`Завантажити нову модель`,library:`Переглянути бібліотеку`,huggingface:`HuggingFace Hub`,running:`Запущені моделі`,local:`Локальні моделі`,advanced:`Розширені дії`,catalog:`Каталог моделей`},catalog:{searchPlaceholder:`Шукати моделі за назвою або провайдером...`,noModels:`Моделей поки немає.`,empty:`Жодна модель не відповідає вашому запиту.`,providerOllama:`Ollama`,hidden:`Прихована`,visibilityFailed:`Не вдалося оновити видимість моделі.`,filterAll:`Усі моделі`,filterLocal:`Локальні`,filterProviders:`Провайдери`,filterHidden:`Приховані`,enableAll:`Увімкнути показані`,disableAll:`Вимкнути показані`,rename:`Змінити назву та зображення`,setPicture:`Задати зображення`,clearPicture:`Прибрати зображення`,pictureInvalid:`Виберіть файл зображення.`,pictureTooLarge:`Зображення мають бути менші за 192 КБ.`,saving:`Збереження…`,hide:`Приховати від користувачів`,show:`Показати користувачам`,star:`Позначити {{name}} зіркою`,unstar:`Зняти зірку з {{name}}`},pull:{placeholder:`Введіть назву моделі (напр., llama3.2:3b, deepseek-r1:14b)`,button:`Завантажити`,cancel:`Скасувати`,popular:`Популярні моделі:`,browseAll:`Переглянути всі моделі на ollama.com`,success:`Модель {{name}} успішно завантажено`,cancelled:`Завантаження моделі скасовано`,failed:`Не вдалося завантажити модель`,enterName:`Введіть назву моделі`,restricted:`Встановлення моделей у цьому екземплярі доступне лише адміністраторам.`},progress:{starting:`Ініціалізація...`,pulling:`Завантаження моделі...`,pullingLayer:`завантаження`,verifying:`Перевірка цілісності...`,verifyingDigest:`перевірка sha256 дайджесту`,writing:`Запис маніфесту...`,cleaning:`Очищення...`},library:{available:`доступно`,search:`Пошук моделей...`,noResults:`Моделі, що відповідають критеріям, не знайдено`,installed:`Встановлено`,more:`+{{count}} ще`,refresh:`Оновити бібліотеку`},huggingface:{browseAll:`Переглянути все на HuggingFace`,checkingGguf:`Пошук GGUF-файлів...`,noGgufAvailable:`Немає GGUF-файлів для прямого завантаження в Ollama`,ggufFilesCount:`GGUF-файли ({{count}}) - Завантажити напряму в Ollama`,noModelsFound:`Моделей не знайдено`,noResults:`Моделей не знайдено. Спробуйте змінити пошук або фільтри.`,browseAllLink:`Переглянути все`,search:`Пошук моделей HuggingFace...`,by:`від`,gated:`Обмежений доступ`,viewOnHF:`Переглянути на HuggingFace`,sortDownloads:`Завантаження`,sortLikes:`Вподобання`,sortRecent:`Нещодавні`,taskTextGeneration:`Генерація тексту`,taskTextToSpeech:`Текст у мовлення`,taskTextToImage:`Текст у зображення`,taskSpeechRecognition:`Розпізнавання мовлення`,tasks:{textGen:`Генерація тексту`,tts:`Текст у мовлення`,image:`Текст у зображення`,stt:`Розпізнавання мовлення`},sort:{downloads:`Найбільш завантажувані`,likes:`Найпопулярніші`,recent:`Нещодавно оновлені`}},local:{noModels:`Моделі ще не встановлено`,pullToStart:`Завантажте модель вище, щоб почати`,installed:`встановлено`,running:`Працює`,info:`Інфо`,copy:`Копіювати`,delete:`Видалити`,deleteConfirm:`Ви впевнені, що хочете видалити модель "{{name}}"?`,deleteSuccess:`Модель {{name}} успішно видалено`,deleteFailed:`Не вдалося видалити модель`},advanced:{createModel:`Створити модель`,fromModelfile:`З Modelfile`,copyModel:`Копіювати модель`,duplicateExisting:`Дублювати існуючу`,testEmbeddings:`Тестувати ембединги`,generateVectors:`Генерувати вектори`,healthCheck:`Перевірка справності`,testConnection:`Тест підключення`,healthy:`Ollama справний!`},modals:{details:{title:`Деталі моделі`,info:`Інформація про модель`,family:`Сімейство`,parameters:`Параметри`,quantization:`Квантизація`,format:`Формат`,systemPrompt:`Системний промпт`,template:`Шаблон`,license:`Ліцензія`,modelfile:`Modelfile`,noDetails:`Деталі недоступні`},copy:{title:`Копіювати модель`,source:`Вихідна модель`,selectModel:`Виберіть модель...`,newName:`Нова назва моделі`,placeholder:`напр., my-custom-model`,copying:`Копіювання...`,button:`Копіювати модель`,success:`Модель скопійовано як {{name}}`,failed:`Не вдалося скопіювати модель`,enterBoth:`Введіть назву вихідної та цільової моделі`},create:{title:`Створити власну модель`,name:`Назва моделі`,namePlaceholder:`напр., my-assistant`,modelfile:`Modelfile`,modelfilePlaceholder:`FROM llama3.2
|
|
2
|
+
SYSTEM You are a helpful assistant.`,see:`Див.`,docs:`Документація Modelfile`,docsLink:`для довідки з синтаксису`,creating:`Створення...`,button:`Створити модель`,success:`Модель {{name}} успішно створено`,failed:`Не вдалося створити модель`,enterBoth:`Введіть назву моделі та вміст Modelfile`},embeddings:{title:`Тестувати ембединги`,model:`Модель ембедингів`,selectModel:`Виберіть модель...`,recommended:`Рекомендовано: nomic-embed-text, mxbai-embed-large`,input:`Вхідний текст`,placeholder:`Введіть текст для генерації ембедингів...`,generating:`Генерація...`,button:`Згенерувати ембединги`,result:`Результат ({{count}} вимірів)`,success:`Згенеровано {{count}}-вимірний вектор ембедингу`,failed:`Не вдалося згенерувати ембединги`,enterBoth:`Виберіть модель та введіть текст`}}},personaManager:{title:`Персони`,subtitle:`Створюйте та керуйте AI-персонами з унікальними особистостями, пам'яттю та поведінкою`,loading:`Завантаження персон...`,createButton:`Створити персону`,importExport:`Імпорт/Експорт`,stats:{title:`Ваші персони`,count:`{{count}} персона створена`,count_plural:`{{count}} персон створено`},empty:{title:`Персон ще немає`,description:`Створіть свою першу персону, щоб почати персоналізовану взаємодію з AI`,button:`Створити першу персону`},deleteConfirm:`Ви впевнені, що хочете видалити "{{name}}"?`,deleteSuccess:`Персону "{{name}}" успішно видалено`,downloadSuccess:`Персону "{{name}}" успішно завантажено`,failed:`Не вдалося {{action}} персону`},personaForm:{title:{create:`Створити нову персону`,edit:`Редагувати персону`},subtitle:{create:`Створіть нову AI-персону з унікальною особистістю, системою пам'яті та адаптивним навчанням`,edit:`Налаштуйте вашу AI-персону з розширеною пам'яттю, адаптивним навчанням та інтелектуальними параметрами`},loading:`Завантаження форми...`,saved:`Збережено`,tabs:{basic:`Основне`,parameters:`Параметри`,memory:`Пам'ять і навчання`,advanced:`Розширене`,bindings:`Прив'язки`},basic:{name:`Назва`,namePlaceholder:`Введіть назву персони`,model:`Модель`,selectModel:`Виберіть модель`,description:`Опис`,descriptionPlaceholder:`Опишіть вашу персону...`,systemPrompt:`Системний промпт`,systemPromptPlaceholder:`Введіть системний промпт, який визначає поведінку персони...`,systemPromptHint:`Системний промпт визначає, як ваша персона буде поводитися та відповідати.`},parameters:{temperature:`Температура`,temperatureHint:`Контролює креативність vs послідовність`,topP:`Top-P`,topPHint:`Контролює різноманітність відповідей`,topK:`Top-K`,topKHint:`Обмежує словник до top-k токенів`,contextWindow:`Контекстне вікно`,contextWindowHint:`Максимальна довжина історії розмови`,maxTokens:`Макс. токенів`,maxTokensHint:`Максимальна довжина відповіді`,repeatPenalty:`Штраф за повторення`,repeatPenaltyHint:`Зменшує повторювані відповіді`},memory:{title:`Система пам'яті`,subtitle:`Персона запам'ятовує розмови з часом`,enableHint:`Увімкніть систему пам'яті, щоб ваша персона запам'ятовувала розмови та будувала контекст з часом.`,loading:`Завантаження статусу пам'яті...`,noData:`Даних пам'яті ще немає`,memories:`Спогади`,mbUsed:`МБ використано`,lastBackup:`Останній бекап`,never:`Ніколи`,maxMemories:`Максимум спогадів`,maxMemoriesHint:`Скільки спогадів може зберігати персона`,retention:`Збереження пам'яті`,retentionHint:`Днів зберігання спогадів до очищення`,autoCleanup:`Автоочищення старих спогадів`,wipeAll:`Очистити всі спогади`,wipeCannot:`Цю дію неможливо скасувати`,wipeButton:`Очистити`,wiping:`Очищення...`,wipeConfirm:`Ви впевнені, що хочете очистити всі спогади? Цю дію неможливо скасувати.`,wipeSuccess:`Очищено {{count}} спогадів`},learning:{title:`Адаптивне навчання`,subtitle:`Персона еволюціонує на основі взаємодій`,enableHint:`Увімкніть адаптивне навчання, щоб персона еволюціонувала та персоналізувала відповіді на основі ваших взаємодій.`,speed:`Швидкість навчання`,slow:`Повільна`,slowDesc:`Поступові зміни`,balanced:`Збалансована`,balancedDesc:`Помірний темп`,fast:`Швидка`,fastDesc:`Швидка адаптація`,autoAdapt:`Автоадаптація до вподобань користувача`,whatLearns:`Що вивчає персона:`,conversationTone:`Тон розмови`,responseStyle:`Стиль відповідей`,userPreferences:`Вподобання користувача`,topicInterests:`Інтереси щодо тем`},advanced:{embeddingModel:`Модель ембедингів`,embeddingHint:`Виберіть модель для кодування пам'яті та семантичного пошуку. Моделі ембедингів показані першими, потім інші доступні моделі.`,noModels:`Моделі не знайдено`,embeddingModels:`Моделі ембедингів`,otherModels:`Інші моделі`,installHint:`Встановіть модель ембедингів:`,recommended:`Рекомендовано: nomic-embed-text, mxbai-embed-large, bge-m3, snowflake-arctic-embed`,aboutTitle:`Про розширені налаштування`,aboutDescription:`Модель ембедингів використовується системою пам'яті для розуміння семантичного значення та пошуку релевантних спогадів під час розмов. Виберіть модель, що відповідає вашому випадку використання та доступним ресурсам.`},actions:{cancel:`Скасувати`,save:`Зберегти`,saving:`Збереження...`,saveClose:`Зберегти і закрити`,create:`Створити`},success:{created:`Персону створено`,updated:`Персону оновлено`},error:{saveFailed:`Не вдалося зберегти`},bindings:{toolServers:`Сервери інструментів`,toolServersHint:`Сервери, які ця персона може викликати. Якщо залишити порожнім, пропонуються всі сервери, до яких користувач і так має доступ.`,noToolServers:`Вам не доступний жоден сервер інструментів.`,builtinTools:`Вбудовані інструменти`,builtinToolsHint:`Інструменти, які сервер реалізує сам. Якщо залишити порожнім, пропонуються всі.`,noBuiltinTools:`Вбудовані інструменти недоступні.`,builtin:{web_search:`Пошук в інтернеті`,search_documents:`Пошук у документах`,load_skill:`Завантажити навичку`},skills:`Навички`,skillsHint:`Навички, які модель може завантажувати, поки ця персона активна.`,noSkills:`Ви ще не створили жодної навички.`,collections:`Колекції знань`,collectionsHint:`Колекції документів, у яких ця персона може шукати.`,noCollections:`Ви ще не створили жодної колекції.`,prompt:`Промпт`,promptHint:`Промпт, з якого починається кожен новий чат із цією персоною.`,noPrompt:`Без промпта`,version:`Ревізія прив'язок {{version}}`}},personaCard:{enhanced:`Покращена`,systemPrompt:`Системний промпт`,memories:`спогадів`,use:`Використати`,editTooltip:`Редагувати персону`,downloadTooltip:`Завантажити персону`,backup:`Бекап`,exportDNA:`Експорт ДНК`,wipeMemories:`Очистити спогади`,wipeConfirm:`Ви впевнені, що хочете очистити всі спогади цієї персони? Цю дію неможливо скасувати.`,wipeSuccess:`Очищено {{count}} спогадів`,backupSuccess:`Бекап персони успішно завантажено`,dnaSuccess:`ДНК персони успішно експортовано`,failed:`Не вдалося {{action}}`,shareTooltip:`Поділитися цією персоною`},userManager:JSON.parse(`{"title":"Керування користувачами","subtitle":"Керуйте обліковими записами та дозволами користувачів","pageDescription":"Керуйте обліковими записами користувачів, дозволами та контролем доступу для вашого екземпляра Libre WebUI.","sections":{"users":"Користувачі","access":"Доступ і політики","security":"Безпека","defaults":"Типові налаштування"},"directory":{"title":"Активні облікові записи","allRoles":"Усі ролі","clearFilters":"Скинути фільтри","results":"{{visible}} із {{total}} облікових записів","loadFailed":"Не вдалося завантажити користувачів. Спробуйте ще раз.","empty":"Активних облікових записів ще немає","editSelfRole":"Ви не можете змінити власну роль адміністратора.","deleteTitle":"Видалити користувача"},"loading":"Завантаження користувачів...","createUser":"Створити користувача","search":"Пошук користувачів...","noUsers":"Користувачів не знайдено","noUsersMatching":"Користувачів, що відповідають пошуку, не знайдено","columns":{"user":"Користувач","email":"Електронна пошта","role":"Роль","created":"Створено","actions":"Дії"},"roles":{"admin":"Адміністратор","user":"Користувач"},"noEmail":"Пошта не вказана","deleteConfirm":"Ви впевнені, що хочете видалити користувача \\"{{name}}\\"?","deleteSuccess":"Користувача успішно видалено","deleteFailed":"Не вдалося видалити користувача","cannotDeleteSelf":"Ви не можете видалити власний обліковий запис","approval":{"title":"Очікують на підтвердження","description":"Перевіряйте нові реєстрації, перш ніж дозволити доступ до цього екземпляра.","registered":"Зареєстровано","activate":"Активувати обліковий запис","reject":"Відхилити реєстрацію","approved":"{{name}} тепер може увійти.","failed":"Обліковий запис не вдалося підтвердити.","notification":"{{count}} реєстрацій очікують на ваш дозвіл.","notificationBadge":"{{count}} користувачів очікують на підтвердження"},"form":{"title":{"create":"Створити користувача","edit":"Редагувати користувача"},"username":"Ім'я користувача","usernamePlaceholder":"Введіть ім'я користувача","email":"Електронна пошта","emailPlaceholder":"Введіть пошту (необов'язково)","password":"Пароль","passwordPlaceholder":"Введіть пароль","passwordHint":"Залиште порожнім, щоб зберегти поточний пароль","role":"Роль","creating":"Створення...","updating":"Оновлення...","createButton":"Створити користувача","updateButton":"Оновити користувача","createSuccess":"Користувача успішно створено","updateSuccess":"Користувача успішно оновлено","createFailed":"Не вдалося створити користувача","updateFailed":"Не вдалося оновити користувача"},"workAccess":{"title":"Доступ до Work","description":"Дозволити всім активним користувачам створювати та запускати завдання Work в ізольованих пісочницях. Адміністратори завжди мають доступ; робочі простори в теках хоста залишаються лише для адміністраторів.","saved":"Доступ до Work оновлено","saveFailed":"Не вдалося оновити доступ до Work"},"workPolicies":{"title":"Політики Work","description":"Іменовані пресети середовища (образ, ліміти, зупинка в простої), під якими створюються завдання. Порожні поля успадковують глобальні значення.","add":"Додати політику","name":"Назва","image":"Образ","memory":"Пам'ять","cpu":"CPU","pids":"Ліміт PID","workspaceSize":"Розмір робочого простору","idleMinutes":"Зупинка в простої (хвилини)","networkDefault":"Мережа за замовчуванням","networkInherit":"Успадкувати типове","networkOn":"Увімкнено","networkOff":"Вимкнено","save":"Зберегти","cancel":"Скасувати","edit":"Редагувати політику","delete":"Видалити політику","deleteConfirm":"Видалити цю політику? Завдання, що її використовують, повернуться до глобальних значень.","empty":"Політик поки немає. Завдання використовують глобальні налаштування середовища.","saved":"Політику Work збережено","deleted":"Політику Work видалено","failed":"Не вдалося зберегти політику Work","invalidNumber":"Ліміт PID і зупинка в простої мають бути числами.","guiEnabled":"Work Computer (GUI + браузер)","takeoverEnabled":"Дозволити перехоплення керування екраном","computerPreset":"Work Computer","computerPresetHint":"Для Work Computer потрібен GUI-образ: зберіть його з deploy/work-computer у репозиторії та позначте libre-work-computer:latest.","approvalsRequired":"Вимагати схвалення для дій із побічними ефектами"},"modelAccess":{"title":"Завантаження моделей","description":"Дозволити всім активним користувачам завантажувати моделі з Ollama та браузера Hugging Face. Адміністратори завжди можуть завантажувати моделі.","saved":"Доступ до завантаження моделей оновлено","saveFailed":"Не вдалося оновити доступ до завантаження моделей"},"webSearchAccess":{"title":"Вебпошук","description":"Дозволити всім активним користувачам використовувати вебпошук у чатах і завданнях Work. Адміністратори завжди можуть ним користуватися. Рушій налаштовується в Налаштування > Пошук.","saved":"Доступ до вебпошуку оновлено","saveFailed":"Не вдалося оновити доступ до вебпошуку"},"defaultTheme":{"title":"Тема за замовчуванням","description":"Тема для сторінки входу, нових облікових записів і браузерів, які ще не обрали тему. Кожен і далі може обрати власну в налаштуваннях.","saved":"Тему за замовчуванням оновлено","saveFailed":"Не вдалося оновити тему за замовчуванням"},"groups":{"title":"Групи","description":"Об'єднуйте облікові записи в групи для керування спільним доступом і переглядайте, що фактично може робити будь-який обліковий запис.","newGroup":"Нова група","nameLabel":"Назва","nameRequired":"Дайте групі назву.","descriptionLabel":"Опис (необов'язково)","create":"Створити групу","creating":"Створення…","created":"Групу створено.","createFailed":"Не вдалося створити групу.","deleted":"Групу видалено.","deleteFailed":"Не вдалося видалити групу.","deleteGroup":"Видалити групу","loadFailed":"Не вдалося завантажити групи.","empty":"Груп ще немає.","memberCount":"Учасники: {{count}}","noMembers":"Учасників ще немає.","addedAt":"Додано","addMember":"Додати учасника","add":"Додати","selectUser":"Виберіть користувача…","memberAdded":"Учасника додано.","memberAddFailed":"Не вдалося додати учасника.","removeMember":"Вилучити учасника","memberRemoved":"Учасника вилучено.","memberRemoveFailed":"Не вдалося вилучити учасника.","effectiveTitle":"Фактичний доступ","effectiveDescription":"Виберіть обліковий запис, щоб побачити доступ, який він отримує в підсумку через роль, групи та надані дозволи.","accessLookupFailed":"Не вдалося завантажити фактичний доступ.","roleLabel":"Роль","statusLabel":"Статус","memberOf":"Групи","featuresLabel":"Доступ до функцій","grantsLabel":"Надані дозволи","grantVia":"через"},"audit":{"title":"Журнал аудиту безпеки","description":"Останні входи, перевірки дозволів та адміністративні зміни на цьому екземплярі.","actionFilter":"Дія","actionPlaceholder":"напр. auth.login","resultFilter":"Результат","resultSuccess":"Успішно","resultDenied":"Відмовлено","resultFailure":"Помилка","limitFilter":"Ліміт","loadFailed":"Не вдалося завантажити журнал аудиту.","empty":"Подій аудиту ще не зафіксовано.","actor":"Виконавець","target":"Ціль"},"tools":{"title":"Доступ до інструментів","description":"Дозволити всім викликати сервери інструментів. Коли вимкнено, це можуть лише адміністратори.","saved":"Доступ до інструментів оновлено","saveFailed":"Не вдалося оновити доступ до інструментів.","lockedByEnv":"Заблоковано змінною середовища на цьому сервері."},"voice":{"title":"Голосовий доступ","description":"Визначає, хто може користуватися голосовими функціями. Адміністратори завжди мають доступ.","lockedByEnv":"Закріплено змінною середовища","saved":"Голосовий доступ оновлено","saveFailed":"Не вдалося оновити голосовий доступ","features":{"stt":"Мовлення в текст","tts":"Текст у мовлення","voiceMode":"Голосовий режим","voiceCloning":"Клонування голосу"}},"mfaPolicy":{"title":"Політика двофакторної автентифікації","description":"Чи мають облікові записи проходити другий крок входу.","requireAll":"Вимагати другий фактор від усіх користувачів","requireAllHint":"Користувачі без другого фактора налаштують його під час наступного входу.","lockedByEnv":"Закріплено змінною MFA_REQUIRED_MODE.","saved":"Політику збережено.","saveFailed":"Не вдалося зберегти політику."},"mfaReset":"Скинути другий фактор","mfaResetConfirm":"Видалити другий фактор користувача {{name}}? Вхід за паролем і повторне налаштування залишаться доступними.","mfaResetSuccess":"Другий фактор користувача {{name}} видалено.","mfaResetNothing":"У {{name}} не було другого фактора.","mfaResetFailed":"Скидання не вдалося.","ollamaProvider":{"title":"Провайдер Ollama","description":"Коли вимкнено, застосунок повністю припиняє перевірку Ollama — без перевірок стану, без попереджень. Кінцева точка може вказувати на будь-який сумісний з Ollama шлюз.","saved":"Налаштування провайдера Ollama збережено","saveFailed":"Не вдалося зберегти налаштування провайдера Ollama","baseUrlLabel":"URL кінцевої точки Ollama"},"emailNotifications":{"title":"Сповіщення електронною поштою","description":"Сервер вихідної пошти для сповіщень. Користувачі самі обирають, які сповіщення надходять до їхньої пошти, в розділі «Налаштування > Сповіщення».","enabledToast":"Сповіщення електронною поштою увімкнено.","disabledToast":"Сповіщення електронною поштою вимкнено.","loadFailed":"Не вдалося завантажити налаштування електронної пошти.","fromEnvironment":"Надано змінною середовища; збережіть значення тут, щоб замінити його.","hostLabel":"Хост SMTP","hostHint":"Ім'я хоста поштового сервера.","portLabel":"Порт","portHint":"Залиште порожнім для значення за замовчуванням обраного режиму безпеки.","securityLabel":"Безпека з'єднання","securityHint":"STARTTLS підвищує рівень звичайного з'єднання; TLS шифрує його з самого початку.","security":{"starttls":"STARTTLS (порт 587)","tls":"TLS (порт 465)","none":"Немає (лише довірена мережа)"},"verifyLabel":"Перевіряти сертифікат","verifyHint":"Вимикайте лише для ретранслятора із самопідписаним сертифікатом.","usernameLabel":"Ім'я користувача","usernameHint":"Залиште порожнім, якщо сервер приймає пошту без входу.","passwordLabel":"Пароль","passwordHint":"Зберігається в зашифрованому вигляді і більше не показується.","passwordStored":"Пароль збережено. Введіть новий, щоб замінити його.","clearPassword":"Видалити збережений пароль","fromLabel":"Відправник","fromHint":"Адреса «Від кого», за бажанням з іменем відправника.","appUrlLabel":"URL застосунку","appUrlHint":"Використовується для посилань у повідомленнях, наприклад https://chat.example.com.","testRecipientLabel":"Тестовий отримувач","testRecipientHint":"За замовчуванням — ваша власна адреса. Залиште порожнім, щоб перевірити лише з'єднання.","test":"Надіслати тест","testing":"Надсилання…","testSent":"Тестове повідомлення надіслано на {{address}}.","testConnected":"З'єднання з поштовим сервером встановлено.","testFailed":"Тест електронної пошти не вдався.","saveBeforeTest":"Збережіть зміни перед тестуванням.","save":"Зберегти","saving":"Збереження…","saved":"Налаштування електронної пошти збережено.","saveFailed":"Не вдалося зберегти налаштування електронної пошти."},"strandsAccess":{"title":"Рушій Strands","description":"Виберіть, хто може користуватися вбудованим агентом Strands. Він може читати й змінювати файли в приватній робочій області кожного сеансу, але не може виконувати команди оболонки.","saved":"Доступ до Strands оновлено","saveFailed":"Не вдалося оновити доступ до Strands","lockedByEnv":"Задано змінною середовища LIBRE_STRANDS_ACCESS.","modes":{"disabled":"Вимк.","admins":"Адміністратори","all-users":"Усі користувачі"}},"agentCliAccess":{"title":"Моделі агентів CLI","description":"Адміністратори можуть використовувати встановлені Pi, OpenCode, Codex і Claude Code як моделі чату. Вони працюють на хості поза ізольованими середовищами Work.","lockedByEnv":"Закріплено змінною середовища AGENT_CLI_MODELS_ENABLED."}}`),usageAnalytics:{eyebrow:`Адміністрування`,title:`Використання провайдерів`,description:`Відстежуйте запити до моделей і використання провайдерів та агентів цього екземпляра.`,days:`{{count}} днів`,refresh:`Оновити статистику`,loadFailed:`Не вдалося завантажити статистику використання провайдерів.`,metrics:{calls:`Виклики`,tokens:`Токени`},cards:{calls:`API-виклики`,callsDetail:`Серед {{count}} активних користувачів`,tokens:`Використані токени`,tokensDetail:`Використання зафіксовано у {{count}} викликах`,success:`Рівень успіху`,successDetail:`{{count}} невдалих викликів`,latency:`Середня затримка`,latencyDetail:`Час виконання від початку до кінця у провайдера`,coverage:`{{percent}}% викликів містять дані про використання токенів`},activity:{title:`Споживання з часом`,callsDescription:`Щоденні запити за моделями`,tokensDescription:`Щоденні дані про токени за моделями`,chartLabel:`Графік щоденного {{metric}} провайдера`,compareHint:`Наведіть вказівник на модель або встановіть на ній фокус, щоб простежити її лінію. Виберіть модель, щоб зберегти виділення.`,showAll:`Показати всі моделі`,highlightModel:`Виділити {{model}}`,highlightedModel:`{{model}} виділено`,allModels:`Усі моделі`,exploreDay:`Переглянути щоденне використання`,topModels:`За замовчуванням показано 12 найуживаніших моделей. Виберіть будь-яку модель нижче, щоб простежити її окремо.`,noTokens:`За цей період дані про токени не надходили`,breakdownUnavailable:`Розподіл за моделями за цей період недоступний.`,peak:`День найбільшої активності`,dayTotal:`Усього за день`,loadingModel:`Завантаження {{model}}…`},models:{title:`Споживання моделями`,description:`Моделі з найбільшим трафіком за цей період.`,model:`Модель`,success:`Успіх`,latency:`Затримка`,share:`Частка викликів`,notCharted:`Виберіть, щоб завантажити цю модель на графік`},providers:{title:`Трафік провайдерів і агентів`,description:`Кількість запитів, надійність і час відповіді за провайдерами.`,share:`{{percent}}% викликів`,failures:`Невдалих або скасованих: {{count}}`,models:`Моделі: {{count}}`,noTokens:`Дані про токени не надходили`},capabilities:{title:`Розподіл можливостей`,characters:`{{count}} символів`,bytes:`{{count}} байтів`,images:`{{count}} зображень`,jobs:`{{count}} відеозавдань`,inputs:`{{count}} входів`,reportedTokens:`{{count}} звітованих токенів`},empty:{title:`Викликів провайдерів ще немає`,description:`Запити з’являться тут після того, як провайдер або агент обробить чат, Work, ембеддинги, зображення, мовлення, звук або відео.`},privacyNote:`Використання запитів до провайдерів та агентів реєструється на сервері. Libre WebUI зберігає провайдера, модель, час, статус і звітовані лічильники — ніколи промпти, відповіді, кінцеві точки, облікові дані або тіла помилок провайдера. Підсумки токенів включають лише виклики, у яких провайдер повернув метадані використання.`,heatmap:{title:`Рік активності`,description:`Щоденні виклики провайдерів за останній рік, розфарбовані за найуживанішою моделлю кожного дня.`,calls:`викликів`,noCalls:`Немає викликів`,other:`Інші моделі`,less:`Менше`,more:`Більше`,yearTotal:`{{formatted}} викликів за останній рік`},agents:{title:`Агенти`,description:`Виклики CLI-агентів і рушія Strands.`,noCalls:`У цьому періоді немає зареєстрованих викликів`,unreported:`Токени не повідомлено`,topModels:`Найуживаніші моделі`,legacy:`Цей сервер не надає повного розподілу за агентами. Доступні записи агентів показано нижче.`}},systemPage:{eyebrow:`Адміністрування`,title:`Система`,description:`Моніторинг машини та середовища, на яких розміщено цей екземпляр Libre WebUI.`,updated:`Оновлено {{date}}`,refresh:`Оновити системну інформацію`,loadFailed:`Не вдалося завантажити системну інформацію.`,cards:{uptime:`Час роботи хоста`,uptimeDetail:`Працює з {{date}}`,memory:`Використано пам'яті`,memoryDetail:`{{used}} з {{total}}`,freeSpace:`Вільний простір`,freeSpaceDetail:`{{label}} · {{total}} загалом`,containers:`Запущені контейнери`,containersDetail:`{{total}} контейнер(ів) відомо Docker`,dockerUnavailable:`Docker недоступний`,unavailable:`Недоступно`},host:{title:`Хост і середовище`,description:`Операційна система, процесор та деталі процесу Libre WebUI.`,container:`Середовище контейнера`,native:`Нативне середовище`,hostname:`Ім'я хоста`,operatingSystem:`Операційна система`,processor:`Процесор`,logicalCpus:`логічні CPU`,loadAverage:`Середнє навантаження · 1 / 5 / 15 хв`,libreVersion:`Libre WebUI`,nodeVersion:`Node.js`,process:`Процес`,workingDirectory:`Робочий каталог`},memory:{title:`Пам'ять`,description:`Видима під час виконання системна пам'ять та використання процесом застосунку.`,usedOf:`{{used}} використано з {{total}}`,free:`{{value}} вільно`,processRss:`RSS процесу`,heapUsed:`Використано купу V8`,heapTotal:`Загальна купа V8`,external:`Зовнішня пам'ять`},storage:{title:`Сховище`,description:`Доступний простір для файлової системи середовища та постійних даних застосунку.`,used:`{{value}} використано`,free:`{{value}} вільно`,empty:`Інформація про файлову систему недоступна в цьому середовищі.`},docker:{title:`Docker`,description:`Статус Docker Engine лише для читання та скорочений список контейнерів.`,connected:`Підключено`,unavailable:`Недоступно`,unavailableDetail:`Діагностика Docker Engine недоступна.`,socketStatus:`Локальний сокет: {{status}}`,mounted:`змонтовано`,notMounted:`не змонтовано`,running:`Працює`,stopped:`Зупинено`,paused:`Призупинено`,total:`Загалом`,version:`Версія`,host:`Хост`,architecture:`Архітектура`,cpus:`CPU`,memory:`Пам'ять`,container:`Контейнер`,image:`Образ`,state:`Стан`,created:`Створено`,empty:`Docker підключено, контейнери наразі відсутні.`},network:{title:`Мережа`,description:`Інтерфейси, адреси та лічильники трафіку Linux, видимі під час виконання.`,internal:`внутрішній`,empty:`Середовищу виконання додатку не видно жодних мережевих інтерфейсів.`},securityNote:`Ця сторінка доступна лише адміністраторам. Сервер повертає лише оперативні підсумки: він не розкриває змінні середовища, облікові дані, мітки Docker, монтування, команди контейнерів чи дані інспекції. Коли Libre WebUI працює в контейнері, відомості про CPU та пам'ять на рівні хоста отримуються з Docker Engine за наявності його локального сокета; інші значення описують середовище виконання додатку.`,work:{title:`Work`,description:`Пісочниці всіх користувачів`,access:`Доступ`,accessAdmins:`Лише адміністратори`,accessAllUsers:`Усі користувачі`,runtimeAvailable:`Доступно`,runtimeUnavailable:`Недоступно`,activeRuntimes:`Активні середовища`,pendingCleanups:`Очікувані очищення`,orphans:`Осиротілі контейнери`,owner:`Власник`,task:`Завдання`,state:`Стан`,preview:`Попередній перегляд`,terminals:`Термінали`,inUse:`Використовується`,inUseNone:`Ніхто`,updated:`Оновлено`,lastRun:`Останній запуск`,noRun:`—`,stateRunning:`Виконується`,stateStopped:`Зупинено`,stateStarting:`Запускається`,stateUnknown:`Невідомо`,noTasks:`Завдань Work поки немає.`,usageKinds:{command:`команда`,preview:`перегляд`,terminal:`термінал`,screen:`екран`},recovery:{title:`Відновлення`,description:`Пісочниці, які Work ще прибирає. Нові операції Work залишаються заблокованими, доки середовище виконання не підтвердить, що кожна з них зупинена.`,container:`Контейнер`,task:`Завдання`,reason:`Причина`,attempts:`Спроби`,lastError:`Остання помилка`,nextAttempt:`Наступна спроба`,retry:`Повторити зараз`,retrying:`Повторюємо…`,reasonStartup:`Виконується під час запуску`,reasonStopFailed:`Не вдалося зупинити`,reasonRuntimeUnreachable:`Середовище виконання недоступне`,reasonOrphan:`Немає запису про завдання`,notScheduled:`Не заплановано`,loadFailed:`Не вдалося завантажити список очікуваних очищень.`,retrySucceeded:`Завершено {{cleared}} з {{attempted}} очікуваних очищень.`,retryPending:`Досі повторюємо {{attempted}} очікуваних очищень.`,retryFailed:`Не вдалося повторити очікувані очищення.`}},recovery:{title:`Навчання з відновлення`,scheduleOn:`Запускається автоматично кожні {{hours}} год — кожне навчання створює резервну копію, відновлює її в ізольованому середовищі та перевіряє результат.`,scheduleOff:`Не заплановано — задайте RECOVERY_DRILL_INTERVAL_HOURS для автоматичних навчань.`,teamUnsupported:`Навчання діють для одиночного профілю (SQLite); командний профіль використовує координований CLI резервного копіювання.`,runNow:`Запустити навчання`,running:`Виконується…`,passed:`Навчання з відновлення пройдено.`,failed:`Навчання з відновлення не вдалося.`,lastPassed:`Останнє пройдене`,restoreTime:`Час відновлення (RTO)`,drillSpacing:`Інтервал навчань (RPO)`,archiveSize:`Розмір архіву`,lastFailed:`Останнє навчання не вдалося {{date}}`,originManual:`Вручну`,originScheduled:`За розкладом`,columns:{when:`Коли`,origin:`Джерело`,status:`Статус`,restore:`Відновлення`},status:{passed:`Пройдено`,failed:`Невдача`,running:`Виконується`}}},chatHistory:{label:`Історія розмови`,jumpToTurn:`Перейти до репліки {{index}} з {{total}}`},chatMessage:{you:`Ви`,assistant:`Асистент`,system:`Система`,conversationSummary:`Підсумок розмови`,restoreCompacted:`Відновити підсумовані повідомлення`,restoreFailed:`Не вдалося відновити підсумовані повідомлення`,copy:`Копіювати`,copyMessage:`Копіювати повідомлення`,copied:`Скопійовано!`,regenerate:`Перегенерувати`,regenerateResponse:`Перегенерувати відповідь`,edit:`Редагувати`,editSystemMessage:`Редагувати системне повідомлення`,saveChanges:`Зберегти зміни`,cancelEditing:`Скасувати редагування`,saveAndSubmit:`Зберегти й надіслати`,goodResponse:`Гарна відповідь`,badResponse:`Погана відповідь`,delete:`Видалити`,deleteConfirm:`Видалити це повідомлення?`,branch:`Гілка`,speaking:`Озвучення...`,speakMessage:`Озвучити повідомлення`,stopSpeaking:`Зупинити озвучення`,showMore:`Показати більше`,showLess:`Показати менше`,thinking:`Обмірковує`,thoughtFor:`Думав {{duration}}`,hiddenLines:`Приховано рядків: {{count}}`,systemMessagePlaceholder:`Введіть системне повідомлення...`,fullSizeImage:`Повнорозмірне зображення`,startConversation:`Почати розмову`,startConversationDescription:`Надішліть повідомлення, щоб почати спілкування з AI-асистентом. Ставте запитання, отримуйте допомогу з кодом або ведіть звичайну розмову.`,scrollToBottom:`Прокрутити донизу`,newMessages:`Нові повідомлення`,feedbackTags:{accuracy:`Точність`,style:`Стиль`,incomplete:`Неповна`,harmful:`Шкідлива`,formatting:`Форматування`},feedbackComment:`Додати коментар…`},imageGallery:{title:`Галерея зображень`,noImages:`Зображень ще немає`,noImagesHint:`Згенеруйте перше зображення за допомогою панелі праворуч`,delete:`Видалити`,download:`Завантажити`,deleteConfirm:`Ви впевнені, що хочете видалити це зображення?`,deleteSuccess:`Зображення видалено`,deleteFailed:`Не вдалося видалити зображення`,downloadFailed:`Не вдалося завантажити зображення`,loadMore:`Завантажити ще ({{current}} з {{total}})`,loadFailed:`Не вдалося завантажити галерею`},imageGeneration:{title:`Згенерувати зображення`,prompt:`Промпт`,promptPlaceholder:`Опишіть зображення, яке хочете створити...`,model:`Модель`,selectModel:`Виберіть модель`,noModels:`Моделі генерації зображень недоступні`,configurePlugin:`Налаштуйте плагін з підтримкою генерації зображень`,size:`Розмір`,quality:`Якість`,style:`Стиль`,generate:`Згенерувати`,generating:`Генерація...`,success:`Зображення успішно згенеровано`,failed:`Не вдалося згенерувати зображення`,enterPrompt:`Введіть промпт`,promptTooLong:`Промпт перевищує максимальну довжину в {{max}} символів`},mediaGeneration:{title:`Генерувати медіа`,description:`Створюйте відео, звук, музику або мовлення за допомогою активованого медіа-провайдера.`,image:`Зображення`,video:`Відео`,audio:`Аудіо`,sound:`Звук`,speech:`Мовлення`,model:`Модель`,voice:`Голос або ID голосу`,cloneVoice:`Клонувати еталонний голос`,cloneVoiceDescription:`Створити це мовлення на основі еталонного запису замість готового голосу.`,referenceAudio:`Еталонне аудіо`,referenceTranscript:`Точна розшифровка еталонного запису`,referenceTranscriptPlaceholder:`Введіть точно те, що вимовляється в еталонному записі…`,referenceAudioTooLarge:`Розмір еталонного аудіо не повинен перевищувати {{max}}.`,cloneConsent:`Клонуйте голос лише з дозволу мовця. Для цього створення запис надсилається вибраному постачальнику й не зберігається в Libre WebUI.`,saveVoiceProfile:`Зберегти як голос для повторного використання`,saveVoiceProfileDescription:`Надійно збережіть цей еталонний запис і розшифровку. Libre WebUI надсилає їх вибраному постачальнику з кожною мовленнєвою партією, яка використовує цей голос.`,voiceProfileName:`Назва збереженого голосу`,voiceProfileNamePlaceholder:`Наприклад, Мій голос`,voiceStorageConsent:`Я підтверджую, що маю дозвіл мовця клонувати й зберігати цей голос. Еталонний запис зберігатиметься, доки я його не видалю.`,resolution:`Роздільна здатність`,aspectRatio:`Співвідношення сторін`,duration:`Тривалість`,providerDefault:`Типово провайдера`,generateAudio:`Генерувати аудіо разом із відео, якщо підтримується`,prompt:`Запит`,text:`Текст для озвучення`,videoPlaceholder:`Опишіть сцену, рух, камеру та освітлення...`,audioPlaceholder:`Введіть текст, який має озвучити голос...`,soundPlaceholder:`Опишіть звук, музику, атмосферу або потрібну голосову відповідь...`,generate:`Згенерувати`,generating:`Генерування… це може тривати кілька хвилин`,success:`Медіа згенеровано та збережено в Imagine`,successWithSavedVoice:`Медіафайл створено, і голос «{{name}}» тепер доступний у налаштуваннях мовлення`,failed:`Не вдалося згенерувати медіа`,loadFailed:`Не вдалося завантажити медіа-провайдерів`,noModels:`Моделі {{kind}} недоступні. Спочатку активуйте сумісний провайдер і збережіть його облікові дані.`,consentTtl:{label:`Строк дії згоди`,never:`Доки я її не відкличу`,days30:`30 днів`,days90:`90 днів`,days365:`Один рік`}},mediaGallery:{itemCount:`{{count}} елементів`,empty:`Згенерованих медіа ще немає`,emptyHint:`Згенеруйте зображення, відео або голосовий фрагмент, і він з'явиться тут.`,filters:{all:`Усі`,image:`Зображення`,video:`Відео`,audio:`Аудіо`}},errorBoundary:{title:`Щось пішло не так`,description:`Виникла неочікувана помилка. Спробуйте оновити сторінку.`,tryAgain:`Оновити сторінку`,goHome:`На головну`,errorDetails:`Деталі помилки (розробка)`},documents:{title:`Документи`,upload:`Завантажити документ`,uploading:`Завантаження...`,noDocuments:`Документи не завантажено`,uploadHint:`Завантажте документи для використання в розмовах`,delete:`Видалити`,deleteConfirm:`Ви впевнені, що хочете видалити цей документ?`,deleteSuccess:`Документ видалено`,deleteFailed:`Не вдалося видалити документ`,uploadSuccess:`Документ успішно завантажено`,uploadFailed:`Не вдалося завантажити документ`,types:`Підтримується: PDF, TXT, MD, DOCX`,unsupportedFileType:`Цей тип файлу не підтримується`,fileSizeTooLarge:`Розмір файлу має бути менше 10 МБ`,uploadSuccessWithName:`Документ "{{name}}" успішно завантажено`,removeSuccess:`Документ успішно видалено`,removeFailed:`Не вдалося видалити документ`,removeError:`Сталася помилка при видаленні документа`,clickToUpload:`Натисніть, щоб завантажити`,orDragAndDrop:`або перетягніть`,fileTypesAndSize:`Файли PDF, Office, Markdown, HTML, код, CSV, зображення та аудіо до 10 МБ`,uploadedDocuments:`Завантажені документи`,removeDocument:`Видалити документ`,fullContextToggle:`Надсилати документи повністю`,fullContextEstimate:`≈ {{tokens}} токенів`,fullContextTooLarge:`Прикріплені документи перевищують ліміт повного контексту, тому використано пошук`,fullDocument:`Повний документ`},ttsButton:{speak:`Озвучити`,stop:`Зупинити`,speaking:`Озвучення...`,generateFailed:`Не вдалося згенерувати мовлення`,playbackFailed:`Помилка відтворення аудіо`,stopSpeaking:`Зупинити озвучення`,preparingSpeech:`Підготовка мовлення...`,generatingSpeech:`Генерація мовлення...`,bufferingSpeech:`Буферизація мовлення...`,enableAudio:`Увімкнути звук і прочитати вголос`,enableAudioShort:`Увімкнути звук`,readAloud:`Прочитати вголос`},artifacts:{title:`Артефакти`,code:`Код`,preview:`Попередній перегляд`,copy:`Копіювати код`,copied:`Скопійовано!`,download:`Завантажити`,expand:`Розгорнути`,collapse:`Згорнути`,openInNewTab:`Відкрити в новій вкладці`,invalidSvg:`Недійсний SVG-вміст`,invalidJson:`Недійсний JSON-вміст`,previewMode:`Режим перегляду`,codeMode:`Режим коду`,copyContent:`Копіювати вміст`,openInPanel:`Відкрити в панелі`,created:`Створено`,closePanelEsc:`Закрити панель (Esc)`,copyButton:`Копіювати`,dragEdgeToResize:`Перетягніть край для зміни розміру`,previewUnavailable:`Preview unavailable`,previewUnavailableDescription:`This artifact does not contain renderable preview content. Switch to code view to inspect the source.`,versionOf:`Версія {{current}} з {{total}}`,previousVersion:`Попередня версія`,nextVersion:`Наступна версія`},personaImportExport:{title:`Імпорт та експорт персон`,description:`Експортуйте персони, щоб поділитися ними, або імпортуйте персони інших`,exportPersonas:`Експорт персон`,importPersonas:`Імпорт персон`,noPersonasToExport:`Немає персон для експорту`,personasAvailable:`{{count}} персона доступна`,personasAvailable_plural:`{{count}} персон доступно`,exportAll:`Експортувати всі`,uploadJsonFile:`Завантажити JSON-файл`,pasteJsonLabel:`Вставити JSON-дані`,pasteJsonPlaceholder:`Вставте JSON-дані персони сюди...`,importing:`Імпорт...`,importButton:`Імпортувати персону(и)`,expectedFormat:`Очікуваний формат JSON:`,exportSuccess:`Персону "{{name}}" успішно експортовано`,exportFailed:`Не вдалося експортувати персону`,exportAllSuccess:`Усі {{count}} персон успішно експортовано`,exportAllFailed:`Не вдалося експортувати персони`,pasteJsonData:`Вставте JSON-дані персони`,importMultipleSuccess:`Успішно імпортовано {{count}} персон`,importMultipleFailed:`Не вдалося імпортувати {{count}} персон`,importNoneFailed:`Не вдалося імпортувати жодної персони`,importSuccess:`Персону успішно імпортовано`,importFailed:`Не вдалося імпортувати персону`},generationStats:{details:`Деталі`,promptTokens:`Токени промпту:`,generatedTokens:`Згенеровані токени:`,totalTokens:`Всього токенів:`,speed:`Швидкість:`,promptEval:`Оцінка промпту:`,generation:`Генерація:`,modelLoad:`Завантаження моделі:`,totalTime:`Загальний час:`,generatedAt:`Згенеровано о:`},userMenu:{loggedOut:`Вихід виконано успішно`,pictureUpdated:`Фото профілю оновлено`,failedUpdateAvatar:`Не вдалося оновити аватар`,failedUpdatePicture:`Не вдалося оновити фото профілю`,noEmail:`Email не вказано`,changePicture:`Змінити фото`,settings:`Налаштування`,userManagement:`Керування користувачами`,signOut:`Вийти`,changeProfilePicture:`Змінити фото профілю`},pluginManager:{title:`Менеджер плагінів`,upload:`Завантажити`,addJson:`Додати JSON`,browseHF:`Переглянути HF Hub`,confirmDelete:`Ви впевнені, що хочете видалити цей плагін?`,uploading:`Завантаження плагіну...`,pasteJson:`Вставте JSON плагіну тут...`,installPlugin:`Встановити плагін`,loading:`Завантаження плагінів...`,noPlugins:`Немає встановлених плагінів`,noPluginsDescription:`Завантажте файл плагіну або додайте плагін з JSON.`,active:`Активний`,id:`ID`,endpoint:`Ендпоінт`,activate:`Активувати`,deactivate:`Деактивувати`,activePlugin:`Активний плагін`,activePluginDescription:`Усі запити чату будуть спрямовані через цей плагін`,variables:{title:`Змінні`,save:`Зберегти`,saving:`Збереження...`,saved:`Змінні збережені`,saveFailed:`Не вдалося зберегти змінні`,resetDefaults:`Скинути до стандартних`,reset:`Змінні скинуті`,resetFailed:`Не вдалося скинути змінні`,sensitiveSet:`Значення встановлено (введіть нове для зміни)`,showValue:`Показати значення {{label}}`,hideValue:`Приховати значення {{label}}`,connection:`Підключення`,advanced:`Додаткові параметри`,inherited:`Використовувати за замовчуванням провайдера`,inheritedValue:`Використовувати за замовчуванням провайдера ({{value}})`,enabled:`Увімкнено`,disabled:`Вимкнено`,required:`Потрібне значення`,fullApiEndpoint:`Повна URL кінцевої точки API`,endpointHelp:`Введіть повну URL запиту, включаючи шлях операції (наприклад, /v1/chat/completions), а не лише базову URL провайдера.`,invalidUrl:`Введіть дійсну повну URL кінцевої точки API, наприклад https://provider.example/v1/chat/completions`,insecureUrl:`Кінцеві точки API повинні використовувати HTTP або HTTPS.`,httpWarning:`HTTP не шифрує облікові дані чи трафік. Використовуйте його лише в надійній мережі.`,invalidBaseUrl:`Базові URL не можуть містити рядок запиту або фрагмент.`,invalidApiPath:`Має починатися з / і не містити URL, запит, фрагмент або сегмент ..`,tooLong:`Значення задовге`}},huggingface:{title:`Браузер моделей HuggingFace`,subtitle:`Переглядайте та обирайте моделі з Hub`,searchPlaceholder:`Пошук моделей...`,filters:`Фільтри`,task:`Завдання`,sortBy:`Сортувати за`,noModels:`Моделей не знайдено`,adjustSearch:`Спробуйте змінити пошуковий запит або фільтри`,gated:`Обмежений`,selected:`Обрано`,select:`Обрати`,refresh:`Оновити`,modelsFound:`моделей знайдено`},demoMode:{title:`Демо-режим`,github:`GitHub`},work:JSON.parse(`{"title":"Робота","subtitle":"Ізольовані робочі простори моделей","tasks":{"title":"Робочі завдання","subtitle":"Постійні локальні робочі простори","new":"Нове завдання","emptyTitle":"Робочих завдань ще немає","empty":"Після надсилання першого повідомлення ваші робочі завдання з’являться тут.","untitled":"Завдання без назви","actions":"Дії із завданням","delete":"Видалити завдання","deleteNamed":"Видалити «{{title}}»","deleteConfirm":"Назавжди видалити «{{title}}» і його робочий простір?","close":"Закрити робочі завдання","open":"Відкрити робочі завдання","rename":"Назва завдання","loading":"Завантаження завдання…","notFound":"Це робоче завдання недоступне","back":"Почати нове завдання","status":"Стан: {{status}}"},"landing":{"title":"Над чим ви хочете попрацювати?","description":"Опишіть завдання. Ваша модель отримає власний робочий простір.","isolated":"Ізоляція","isolatedBody":"Кожне завдання отримує власний контейнер і власні файли.","durable":"Збереження","durableBody":"Поверніться до розмови й робочого простору пізніше.","controlled":"Контроль","controlledBody":"Середовище виконання та файли завдання залишаються ізольованими від хоста."},"composer":{"placeholder":"Опишіть, що ви хочете створити або змінити…","model":"Робоча модель","noModels":"Немає моделей, сумісних із режимом «Робота»","cancel":"Зупинити","send":"Запустити","hint":"Кожне завдання зберігає власні файли та історію. Перевіряйте результати моделі перед використанням.","remoteTitle":"Віддалений провайдер","remoteHint":"Розмова й результати інструментів надсилаються до налаштованого сервісу. Один автономний запуск може кілька разів звернутися до провайдера, що може спричинити витрати. Файли робочого простору залишаються локальними, якщо інструмент не повертає їхній вміст.","remoteDismiss":"Сховати","remoteDismissLabel":"Сховати повідомлення про віддаленого провайдера","remoteDismissFailed":"Не вдалося зберегти налаштування віддаленого провайдера.","noModelSelected":"Не вибрано модель, сумісну з режимом «Робота».","mentionAgents":"Згадати агента","engine":"Рушій","libreModels":"Моделі Libre WebUI","strandsDisabled":"Рушій Strands недоступний для вашого облікового запису.","modelLabel":"Модель"},"conversation":{"ready":"Робочий простір готовий","empty":"Продовжте завдання нижче. Ця розмова та її файли залишаються прив’язаними до цього робочого простору.","loadOlder":"Завантажити попередні повідомлення","openFile":"Відкрити {{name}}","delegatedBy":"Делеговано агентом {{agent}}","reportFrom":"Звіт від {{agent}}"},"status":{"preparing":"Підготовка ізольованого робочого простору…","running":"Робота в локальному робочому просторі…"},"statusLabels":{"idle":"Очікування","thinking":"Думає","complete":"Завершено","needsInput":"Потрібне введення","error":"Помилка"},"live":{"connecting":"Підключення до оновлень у реальному часі…","reconnecting":"Повторне підключення до оновлень у реальному часі…","unavailable":"Оновлення в реальному часі недоступні","newActivity":"Нова активність","skillsLoaded":"Навички робочого простору · {{count}}","skillWorked":"Ця процедура спрацювала","skillFailed":"Ця процедура не спрацювала","skillTraceSaved":"занотовано","stats":{"title":"Підсумок запуску","rounds":"Раунди","toolCalls":"Виклики інструментів","screenshots":"Знімки екрана","fences":"Переривання","checksPassed":"Перевірок пройдено","checksPending":"Перевірок в очікуванні","stallNudges":"Сигнали про застій","ambiguityNudges":"Сигнали переналаштування","stoppedBy":"Зупинено через"}},"runtime":{"unavailable":"Середовище виконання недоступне","ready":"Середовище виконання готове","readyOllama":"Docker готовий","readyPlugin":"Docker і плагін готові","readyHybrid":"Docker і моделі готові","reason":"Потрібні середовище виконання Work і доступний провайдер моделей."},"workspace":{"label":"Режими робочого простору","files":"Файли","activity":"Активність","preview":"Попередній перегляд","resize":"Змінити розміри розмови та робочого простору","resizeHint":"Перетягніть, щоб змінити розмір. Для точного налаштування використовуйте клавіші зі стрілками. Двічі клацніть або натисніть Enter, щоб скинути.","splitSize":"Розмова {{conversation}}%, робочий простір {{workspace}}%","terminal":"Термінал","git":"Git","screen":"Екран","agent":"Агент"},"files":{"discard":"Відкинути незбережені зміни файлу?","leaveWithDraft":"Залишити цей файл? Незбережена зміна залишиться в браузері як чернетка.","up":"Батьківська папка","back":"Назад до файлів","empty":"У цій папці ще немає файлів.","select":"Виберіть файл, щоб переглянути й відредагувати його.","editorLabel":"Редактор файлу: {{path}}","format":"Форматувати","formatted":"Код відформатовано.","formatFailed":"Не вдалося відформатувати цей файл.","formatShortcut":"Форматувати (Shift+Alt+F)","formatTooLarge":"Форматування доступне лише для файлів до 100 000 символів і 4 000 рядків.","formatUnsupported":"Форматування недоступне для цього типу файлів.","saveShortcut":"Зберегти (⌘/Ctrl+S)","highlightPaused":"Для великих файлів підсвічування в реальному часі призупинено, щоб редактор працював швидко.","plainTextLarge":"Звичайний текст · великий файл","changes":"Зміни","changesSince":"Що змінилося з останнього ходу","diffLabel":"Зміни з останнього ходу: {{path}}","diffFolded":"{{count}} рядків без змін"},"activity":{"empty":"Тут з’являться команди, операції з файлами та результати інструментів.","toolActivity":"Активність інструментів","details":"Подробиці","kinds":{"message":"Повідомлення","toolCall":"Виклик інструмента","toolResult":"Результат інструмента","error":"Помилка"}},"preview":{"command":"Необов’язкова команда запуску","start":"Запустити попередній перегляд","stop":"Зупинити попередній перегляд","open":"Відкрити","starting":"Запуск попереднього перегляду…","frameTitle":"Попередній перегляд робочого простору","failed":"Не вдалося запустити попередній перегляд. Перевірте Активність і спробуйте іншу команду.","empty":"Запустіть застосунок у цьому робочому просторі, щоб переглянути його тут.","finished":"Це завдання завершено. Відкрийте його знову, щоб запустити перегляд.","reopenStart":"Відкрити завдання знову й запустити перегляд"},"mobile":{"surface":"Область завдання","conversation":"Розмова","workspace":"Робочий простір"},"toasts":{"runFailed":"Не вдалося запустити робоче завдання.","updateFailed":"Не вдалося оновити це завдання.","renameFailed":"Не вдалося перейменувати це завдання.","cancelled":"Запуск робочого завдання зупинено.","cancelFailed":"Не вдалося зупинити запуск робочого завдання.","deleteFailed":"Не вдалося видалити це робоче завдання.","saveFailed":"Не вдалося зберегти цей файл.","saved":"Файл збережено.","previewFailed":"Не вдалося запустити попередній перегляд.","previewStopFailed":"Не вдалося зупинити попередній перегляд."},"terminal":{"connecting":"Відкривається оболонка в пісочниці…","closed":"Сеанс термінала завершено.","failed":"Не вдалося запустити сеанс термінала.","reconnect":"Перепідключитися","unavailable":"Інтерактивний термінал недоступний у цьому розгортанні.","blockedByRun":"Модель використовує цей контейнер. Термінал відкриється після завершення ходу.","taskRunning":"Триває хід моделі"},"policy":{"label":"Політика середовища","default":"За замовчуванням (глобальні ліміти)","setupHint":"Політики виконання відкривають Work Computer — спостережуваний браузерний робочий стіл для агента — і ліміти на завдання.","setupLink":"Налаштувати політики Work"},"git":{"actionFailed":"Дія Git не вдалася.","blockedByPreview":"Зупиніть попередній перегляд перед зміною стану Git.","blockedByRun":"Дії запису Git розблокуються після завершення ходу моделі.","branchCreated":"Створено {{name}}.","branchSwitched":"Перемкнено на {{name}}.","clean":"Робоче дерево чисте.","commit":"Закомітити підготовлені зміни","commitMessage":"Повідомлення коміту","committed":"Коміт створено.","detached":"відокремлений HEAD","diff":"Попередній перегляд диfу","diffFailed":"Не вдалося завантажити цей диф.","history":"Локальна історія","initialize":"Ініціалізувати Git","initializeDescription":"Створіть локальний репозиторій для статусу, дифів, гілок і комітів. Віддалені облікові дані не підключаються.","initialized":"Репозиторій Git ініціалізовано.","loadFailed":"Не вдалося завантажити статус Git.","localOnly":"Лише локальний Git. Push, pull і pull request потребують окремого довіреного брокера облікових даних.","newBranch":"Нова локальна гілка","noCommits":"Комітів ще немає.","noDiff":"Текстового дифу ще немає. Невідстежувані файли з'являться після підготовки.","notInitialized":"Git не ініціалізовано","selectChange":"Виберіть змінений файл, щоб переглянути його диф.","selectPath":"Вибрати {{path}}","stageAll":"Підготувати все","stageSelected":"Підготувати {{count}}","staged":"Зміни підготовлено.","switchBranch":"Перемкнути локальну гілку","changes":"Зміни","createBranch":"Створити","filterFiles":"Фільтрувати змінені файли","noFilterMatches":"Немає змінених файлів, що відповідають цьому фільтру.","allChanges":"Усі зміни","diffTruncated":"Цей diff обрізано.","binaryFile":"Двійковий файл, текстовий diff недоступний."},"hostWorkspace":{"hint":"Залиште порожнім для ізольованого простору або вкажіть завданню теку на цій машині.","label":"Тека робочого простору (необов'язково)","warning":"Завдання може безпосередньо читати й записувати цю теку. Залиште порожнім для ізольованого простору."},"screen":{"starting":"Запуск Work Computer…","disconnected":"Екран відключено.","reconnect":"Перепідключити","viewOnly":"Спостереження","takeOver":"Взяти керування","handBack":"Готово","youHaveControl":"Ви керуєте","otherHasControl":"{{name}} керує","agentWaiting":"Агент просить вас взяти керування","teach":"Навчити завдання","recording":"Запис","teachSave":"Зберегти","teachDiscard":"Відхилити","teachNamePlaceholder":"Назвіть це завдання","teachSaved":"Збережено як навичку \\"{{name}}\\"","watchingLearning":"Агент спостерігає і вчиться","unmute":"Увімкнути звук","mute":"Вимкнути звук","finished":"Це завдання завершено. Відкрийте його знову, щоб повернути екран.","reopenOpen":"Відкрити завдання знову й відкрити екран"},"computerSetup":{"title":"Work Computer","description":"Дайте агенту справжній робочий стіл із браузером — усе налаштовується автоматично.","building":"Збирання образу робочого столу... вперше це займає кілька хвилин.","enable":"Увімкнути","retry":"Повторити"},"agents":{"title":"Агенти"},"persona":{"label":"Найняти як агента (необов'язково)","none":"Без персони (разове завдання)","hint":"Це завдання стає іменованим агентом: воно зберігає персону, залишається закріпленим на бічній панелі та після кожного запуску повідомляє однорядковий статус.","description":"Виберіть персону, щоб зберегти це завдання як іменованого агента."},"agent":{"openScreen":"Відкрити повноекранний перегляд","personaLine":"Персона: {{name}}","screen":"Екран","routines":"Рутини","addRoutine":"Рутина","noRoutines":"Рутин поки немає. Рутина виконує інструкцію за розкладом усередині робочого простору цього агента.","routineToggleFailed":"Не вдалося оновити рутину.","routineSaveFailed":"Не вдалося зберегти рутину.","skills":"Навчені навички","noSkills":"Поки нічого не навчено. Скористайтеся Teach на вкладці «Екран», щоб один раз показати процедуру; вона стане відтворюваною навичкою.","skillToggleFailed":"Не вдалося оновити навичку.","unread":"Нова активність","approvals":"Автоперевірка","approvalsHint":"Коли увімкнено, команди, видалення та переміщення файлів і дії на комп'ютері призупиняються, доки ви їх не схвалите.","approvalsPolicyForced":"Політика Work цього агента вимагає схвалення для дій із побічними ефектами.","approvalsToggleFailed":"Не вдалося оновити схвалення.","approvalRuleLine":"Завжди дозволено","approvalRuleDelete":"Видалити правило","approvalRuleDeleteFailed":"Не вдалося видалити правило."},"approval":{"title":"Потрібне схвалення","description":"Агент хоче виконати {{tool}}. Ця дія може змінити дані або вплинути на щось поза цією розмовою.","allowOnce":"Дозволити один раз","allowAlways":"Дозволяти завжди","deny":"Відхилити","failed":"Не вдалося надіслати рішення."},"idleStopHint":"Зупиняється після {{minutes}} хв. без активності.","runs":{"title":"Запуски","empty":"Завершених запусків ще немає. Кожен запуск зберігає те, що він створив, і файли, які він змінив.","fileCount":"Файли ({{total}})","exitStates":{"completed":"Завершено","needsInput":"Потрібні дані","failed":"Помилка","cancelled":"Скасовано"}},"recovery":{"pending":"Work підтверджує {{pending}} очищень пісочниць, перш ніж прийняти нові операції.","since":"Заблоковано з {{time}}.","nextAttempt":"Наступна спроба {{time}}.","adminHint":"Адміністратори можуть повторити спробу в Система > Work.","retry":"Повторити зараз","retrying":"Повторюємо…","retrySucceeded":"Завершено {{cleared}} з {{attempted}} очікуваних очищень.","retryPending":"Досі повторюємо {{attempted}} очікуваних очищень.","retryFailed":"Не вдалося повторити очікувані очищення."}}`),personaBackground:{label:`Фонове зображення`,uploadBackgroundImage:`Завантажити фонове зображення`,dragAndDrop:`Перетягніть зображення або натисніть для вибору`,chooseImage:`Вибрати зображення`,uploading:`Завантаження...`,enterImageUrl:`Або введіть URL зображення`,supportedFormats:`Підтримує: JPG, PNG, GIF, WebP (макс. 5МБ). Широкі альбомні зображення працюють найкраще.`,customBackground:`Користувацьке фонове зображення`,clickToChange:`Натисніть для зміни або видалення`,removed:`Фон видалено`,uploaded:`Фон успішно завантажено`,invalidFile:`Будь ласка, виберіть дійсний файл зображення`,fileTooLarge:`Розмір фонового зображення має бути менше 5МБ`,readFailed:`Не вдалося прочитати файл зображення`,uploadFailed:`Не вдалося завантажити фонове зображення`},modelSelector:{searchInstalled:`Пошук встановлених моделей...`,searchOllama:`Пошук у бібліотеці Ollama...`,searchHuggingFace:`Пошук на HuggingFace...`,searchModels:`Пошук моделей...`,selectModel:`Вибрати модель`,personas:`Персони`,ollamaModels:`Моделі Ollama`,pluginModels:`Моделі плагінів`,actions:`Дії`,installed:`Встановлено`,use:`Використати`,pull:`Завантажити`,pullRestricted:`Встановлення моделей у цьому екземплярі доступне лише адміністраторам.`,adminOnlyPull:`Лише адміністратори`,legacyProvider:`провайдера не записано`,providerNotRecorded:`Провайдера не записано`,providerUnavailable:`провайдер недоступний`,reselectProvider:`повторно виберіть провайдера, щоб закріпити модель`,unavailable:`недоступно`,unavailableSelections:`Недоступні варіанти`,agentModels:`Агенти`,showAll:`Показати всі ({{total}})`,sources:`Джерела моделей`,defaultModel:`Модель за замовчуванням`,contextSize:`контекст {{size}}`},whatsNew:{title:`Що нового`,releaseNotes:`Нотатки випуску`,cta:`Гаразд, поїхали`,starAsk:`Подобається Libre WebUI? Поставте зірку на GitHub`},notes:{title:`Нотатки`,new:`Нова нотатка`,untitled:`Без назви`,empty:`Нотаток поки немає`,selectOrCreate:`Виберіть нотатку або створіть нову`,contentPlaceholder:`Пишіть у Markdown…`,saved:`Збережено`,saveFailed:`Не вдалося зберегти нотатку`,createFailed:`Не вдалося створити нотатку`,deleteConfirm:`Видалити цю нотатку?`,deleteFailed:`Не вдалося видалити нотатку`,tools:`Інструменти нотатки`,revisions:`Історія`,attachments:`Вкладення`,share:`Поділитися`,assist:`ШІ-правка`,noRevisions:`Попередніх версій ще немає`,restore:`Відновити`,revisionRestored:`Версію відновлено`,revisionRestoreFailed:`Не вдалося відновити цю версію`,addAttachment:`Додати вкладення`,noAttachments:`Вкладень ще немає`,attachmentAdded:`Вкладення додано`,attachmentFailed:`Не вдалося додати вкладення`,attachmentDownloadFailed:`Не вдалося завантажити вкладення`,shareUsernamePlaceholder:`Ім'я користувача`,permissionRead:`Може переглядати`,permissionWrite:`Може редагувати`,shareAction:`Поділитися`,notShared:`Ще ні з ким не поділилися`,revokeShare:`Відкликати доступ`,shareHint:`Спільні нотатки з'являються у списку нотаток іншої людини. Доступ можна відкликати будь-коли.`,shareUserNotFound:`Користувача з таким іменем не знайдено`,shareAdded:`Надано доступ {{username}}`,shareFailed:`Не вдалося поділитися нотаткою`,assistPlaceholder:`Опишіть зміну, наприклад скоротити підсумок чи виправити граматику`,assistGenerate:`Запропонувати правку`,assistNoModel:`Спочатку виберіть модель у чаті`,assistNoChanges:`Модель не запропонувала змін`,assistApply:`Застосувати`,assistDiscard:`Відхилити`,assistApplied:`Правку застосовано`,assistRevisionHint:`Після застосування попередня версія лишається в історії, тож будь-яку ШІ-правку можна скасувати.`,assistFailed:`Не вдалося створити правку`,pin:`Закріпити нотатку`,unpin:`Відкріпити нотатку`,pinned:`Закріплено`,export:`Завантажити як Markdown`,sharedWithYou:`Доступна вам`},calendar:{title:`Календар`,today:`Сьогодні`,month:`Місяць`,week:`Тиждень`,previous:`Назад`,next:`Далі`,newEvent:`Нова подія`,editEvent:`Редагувати подію`,eventTitle:`Назва`,titlePlaceholder:`Назва події`,date:`Дата`,start:`Початок`,end:`Кінець`,allDay:`Увесь день`,repeat:`Повторювати`,repeatNone:`Не повторюється`,repeatDaily:`Щодня`,repeatWeekly:`Щотижня`,repeatMonthly:`Щомісяця`,repeatYearly:`Щороку`,notes:`Нотатки`,more:`ще {{n}}`,loadFailed:`Не вдалося завантажити календар`,saveFailed:`Не вдалося зберегти подію`,deleteFailed:`Не вдалося видалити подію`,day:`День`,calendarLabel:`Календар`,personalCalendar:`Особистий`,reminderLabel:`Нагадування`,reminderNone:`Без нагадування`,reminderMinutes:`За {{minutes}} хвилин`,reminderHour:`За 1 годину`,reminderDay:`За 1 день`,sharedReadOnly:`Цю подію відкрито вам лише для перегляду.`,sharedBadge:`спільний`,shareCalendar:`Поділитися календарем`,newCalendarPlaceholder:`Новий календар…`,calendarSaveFailed:`Не вдалося зберегти календар`,exportFailed:`Не вдалося експортувати календар`,importFailed:`Не вдалося імпортувати файл`,importResult:`Імпортовано подій: {{total}}`,importIcs:`Імпорт`,exportIcs:`Експорт`},automations:{title:`Автоматизації`,tab:{automations:`Автоматизації`,runs:`Запуски`},newAutomation:`Нова автоматизація`,editAutomation:`Редагувати автоматизацію`,empty:`Поки що немає автоматизацій. Створіть одну, щоб виконувати завдання за розкладом.`,loadFailed:`Не вдалося завантажити автоматизації`,saveFailed:`Не вдалося зберегти автоматизацію`,actionFailed:`Дія не виконана`,runQueued:`Запуск розпочато`,status:{active:`Активна`,paused:`Призупинена`},nextRun:`Наступний запуск {{when}}`,actions:`Дії`,pause:`Призупинити`,resume:`Відновити`,runNow:`Запустити зараз`,openChat:`Відкрити чат`,noRuns:`Поки що немає запусків`,deletedAutomation:`Видалена автоматизація`,runHistory:`Історія запусків (останні 30 днів)`,succeeded:`успішних`,failed:`невдалих`,form:{name:`Назва`,namePlaceholder:`Моя автоматизація`,triggers:`Тригери`,addTrigger:`Додати тригер`,instructions:`Інструкції`,instructionsPlaceholder:`Що виконувати за цим розкладом?`,model:`Модель`,modelAuto:`Авто`,notification:`Сповіщення`,notifyApp:`Застосунок`,notifyOff:`Вимкнено`,frequency:`Частота`,time:`Час`,minute:`Хвилина`,fromHour:`Від`,toHour:`До`,weekday:`День тижня`,dayOfMonth:`День`,month:`Місяць`,target:`Запускати як`,targetChat:`Сесія чату`,targetWork:`Завдання Work`,workPolicy:`Політика Work`,workPolicyDefault:`За замовчуванням (глобальні ліміти)`,taskBoundNote:`Ця рутина виконується всередині робочого простору та розмови самого агента, з моделлю та середовищем виконання агента.`,event:`Подія`,eventMatch:`Текст для збігу`,eventMatchPlaceholder:`Необов'язковий текст у заголовку`,eventOnlyHint:`Ця рутина не має розкладу. Вона запускається, коли відбувається подія, не частіше ніж раз на хвилину.`},kind:{once:`Одноразово`,hourly:`Щогодини`,daily:`Щодня`,weekly:`Щотижня`,monthly:`Щомісяця`,yearly:`Щороку`,event:`За подією`},trigger:{once:`Одноразово {{when}}`,hourly:`Щогодини о :{{minute}}`,daily:`Щодня о {{time}}`,weekly:`Щотижня у {{day}} о {{time}}`,monthly:`Щомісяця {{day}}-го числа о {{time}}`,yearly:`Щороку {{date}} о {{time}}`,event:`Запускається, коли {{event}}`,eventMatching:`Запускається, коли {{event}} і заголовок містить «{{match}}»`},finishedNotification:`Завершено запусків автоматизації: {{n}}`,templatesTitle:`Шаблони`,templates:{morningBrief:{name:`Ранковий огляд`,description:`Почніть день із заголовків і пріоритетів.`},newsDigest:{name:`Дайджест новин ШІ`,description:`Важливі релізи моделей, дослідження та інвестиції.`},weeklyReview:{name:`Підсумки тижня`,description:`Завершіть тиждень: успіхи, незавершене, наступні пріоритети.`},monthlyReport:{name:`Щомісячний звіт`,description:`План звіту про стан першого числа кожного місяця.`}},openTask:`Відкрити завдання`,webhook:{title:`Вебхук-тригер`,enabledHint:`Зовнішні системи можуть запускати цю автоматизацію за допомогою секрету. Ротація робить попередній секрет недійсним.`,disabledHint:`Дозвольте зовнішній системі (CI, cron, розумний дім) запускати цю автоматизацію через POST і секрет.`,rotate:`Змінити секрет`,enable:`Увімкнути`,disable:`Вимкнути`,revealHint:`Показується лише раз. Надсилайте як токен Bearer або заголовок X-Libre-Webhook-Secret.`,failed:`Не вдалося оновити вебхук.`},triggers:{events:{"channel-mention":`хтось згадує вас у каналі`,"channel-dm":`ви отримуєте особисте повідомлення`,"channel-invite":`вас запрошують до каналу`,share:`з вами чимось діляться`,"calendar-reminder":`спрацьовує нагадування календаря`,"media-ready":`медіа-завдання завершується`,"media-failed":`медіа-завдання завершується помилкою`,"budget-alert":`спрацьовує бюджетне попередження`,"work-run-finished":`запуск агента завершується`,"work-run-attention":`запуск агента потребує уваги`,"work-takeover":`агент просить вас взяти керування`,"work-approval":`агент очікує на ваше схвалення`,system:`надходить системне сповіщення`}}},home:{active:`активно`,continue:`Продовжити`,start:`Почати`,explore:`Огляд`},palette:{empty:`Збігів немає.`,placeholder:`Пошук чатів, Work, дій…`,toggleTheme:`Перемкнути тему`,actions:`Дії`,chats:`Чати`,search:`Пошук`,settings:`Налаштування`,work:`Робота`,messages:`Повідомлення`,notes:`Нотатки`,documents:`Документи`},tabs:{actions:`Дії вкладки`,close:`Закрити вкладку`,closeAll:`Закрити всі вкладки`,closeOthers:`Закрити інші вкладки`,closeRight:`Закрити вкладки праворуч`,home:`Головна`,label:`Відкриті вкладки`,new:`Нова вкладка`,newWork:`Новий Work`,chat:`Чат`,newChat:`Новий чат`,work:`Робота`},tools:{arguments:`Аргументи`,result:`Результат`,callStatus:{awaiting_approval:`Очікує на схвалення`,running:`Виконується`,succeeded:`Готово`,failed:`Помилка`,denied:`Відхилено`,cancelled:`Скасовано`},approval:{title:`Інструмент потребує схвалення`,description:`Модель хоче виконати {{tool}} на {{server}}. Цей виклик може змінити дані поза цим чатом.`,builtinSource:`цей сервер`,allowOnce:`Дозволити один раз`,allowSession:`Дозволити в цьому чаті`,allowAlways:`Дозволяти завжди`,deny:`Відхилити`}},promptsPage:{title:`Промпти`,description:`Багаторазові шаблони промптів із типізованими змінними. Введіть / у полі чату, щоб вставити один із них.`,newPrompt:`Новий промпт`,editPrompt:`Редагувати промпт`,empty:`Промптів поки немає`,emptyHint:`Промпт — це збережений шаблон повідомлення. Щойно ви його створите, введення /slug у полі чату вставить його та запитає змінні, які він оголошує.`,loadFailed:`Не вдалося завантажити ваші промпти.`,saved:`Промпт збережено`,saveFailed:`Не вдалося зберегти промпт.`,deleted:`Промпт видалено`,deleteFailed:`Не вдалося видалити промпт.`,deleteTitle:`Видалити промпт`,deleteConfirm:`Видалити «{{title}}»? Разом із ним зникне й історія версій.`,exportFailed:`Не вдалося експортувати промпт.`,imported:`Промпт імпортовано`,importFailed:`Не вдалося імпортувати цей файл.`,historyFailed:`Не вдалося завантажити історію версій.`,rolledBack:`Промпт відкочено`,rollbackFailed:`Не вдалося відкотити промпт.`,versionLabel:`v{{version}}`,updated:`Оновлено {{when}}`,form:{slug:`Slug`,slugPlaceholder:`weekly-report`,slugHint:`Використовується як /slug у полі чату.`,slugInvalid:`Лише малі латинські літери, цифри та дефіси.`,title:`Заголовок`,titlePlaceholder:`Щотижневий звіт`,description:`Опис`,descriptionPlaceholder:`Для чого цей промпт`,content:`Вміст`,contentPlaceholder:`Напишіть промпт. Усе, що потрібно заповнити пізніше, візьміть у подвійні фігурні дужки.`,contentHint:`Заповнювач — це ім'я в подвійних фігурних дужках. Оголосіть його нижче, щоб дати йому підпис або значення за замовчуванням.`,tags:`Теги`,tagsPlaceholder:`дослідження, написання`,variables:`Змінні`,variablesHint:`Необов'язково. Оголосіть тут заповнювач, щоб дати йому підпис, значення за замовчуванням або набір варіантів.`,variableName:`Ім'я`,variableType:`Тип`,variableLabel:`Підпис`,variableDefault:`За замовчуванням`,variableRequired:`Обов'язкова`,variableOptions:`Варіанти`,variableOptionsPlaceholder:`Варіанти через кому`,addVariable:`Додати змінну`,removeVariable:`Прибрати змінну`},variableTypes:{text:`Текст`,number:`Число`,select:`Вибір`,boolean:`Так чи ні`},history:{open:`Історія версій`,title:`Історія {{title}}`,subtitle:`Відкат зберігає обрану ревізію як нову версію. Нічого не перезаписується.`,empty:`Попередніх версій поки немає.`,current:`Поточна`,rollback:`Відкотити`,rollingBack:`Відкочування...`},templatesTitle:`Почніть із шаблону`,templates:{reviewPr:{name:`Рев'ю пул-реквесту`,description:`Структуроване рев'ю коду з регульованою суворістю.`},summarize:{name:`Переказ для аудиторії`,description:`Стислий переказ списком під конкретного читача.`},translate:{name:`Переклад`,description:`Переклад зі збереженням тону та форматування.`},explainCode:{name:`Пояснити код`,description:`Розбір крок за кроком плюс граничні випадки та ризики.`}}},skillsPage:{title:`Навички`,description:`Іменовані набори інструкцій, які модель може завантажувати за потреби під час роботи.`,newSkill:`Нова навичка`,editSkill:`Редагувати навичку`,empty:`Навичок поки немає`,emptyHint:`Навичка — це набір інструкцій, який модель завантажує лише тоді, коли він потрібен. Згадайте $slug у повідомленні або дайте моделі звернутися до неї через інструмент load_skill.`,loadFailed:`Не вдалося завантажити ваші навички.`,saved:`Навичку збережено`,saveFailed:`Не вдалося зберегти навичку.`,toggleFailed:`Не вдалося змінити навичку.`,deleted:`Навичку видалено`,deleteFailed:`Не вдалося видалити навичку.`,deleteTitle:`Видалити навичку`,deleteConfirm:`Видалити «{{name}}»? Разом із нею зникне й історія версій.`,exportFailed:`Не вдалося експортувати навичку.`,imported:`Навичку імпортовано`,importFailed:`Не вдалося імпортувати цей файл.`,historyFailed:`Не вдалося завантажити історію версій.`,rolledBack:`Навичку відкочено`,rollbackFailed:`Не вдалося відкотити навичку.`,versionLabel:`v{{version}}`,updated:`Оновлено {{when}}`,form:{slug:`Slug`,slugPlaceholder:`code-review`,slugHint:`Використовується як $slug, коли ви згадуєте навичку.`,slugInvalid:`Лише малі латинські літери, цифри та дефіси.`,name:`Назва`,namePlaceholder:`Рев'ю коду`,description:`Опис`,descriptionPlaceholder:`Коли застосовувати цю навичку`,descriptionHint:`Це маніфест, який бачить модель. Напишіть його так, щоб модель зрозуміла, коли навичка доречна, не завантажуючи її.`,instructions:`Інструкції`,instructionsPlaceholder:`Інструкції в Markdown, які модель читає після завантаження цієї навички.`,instructionsHint:`Завантажуються лише під час використання навички, тож до того їхня довжина нічого не коштує.`,enabled:`Увімкнено`,enabledHint:`Вимкнені навички залишаються збереженими, але ніколи не пропонуються моделі.`,approval:`Завжди питати перед запуском`,approvalHint:`Поки ця навичка завантажена, агент призупиняється й чекає на вас перед запуском цих інструментів, навіть якщо схвалення вимкнено загалом. Збережене правило «Дозволяти завжди» ніколи не може схвалити їх за вас.`,approvalTools:`Інструменти, що потребують схвалення`,approvalToolsHint:`Залиште всі прапорці непозначеними, щоб охопити кожен обмежений інструмент.`},history:{open:`Історія версій`,title:`Історія {{name}}`},templatesTitle:`Почніть із шаблону`,templates:{citeSources:{name:`Посилатися на джерела`,description:`Нумеровані посилання з URL, жодних тверджень без джерела.`},releaseNotes:{name:`Стиль нотаток до випуску`,description:`Згруповані записи для користувачів, без внутрішніх id.`},meetingNotes:{name:`Формат нотаток зі зустрічі`,description:`Рішення, завдання та відкриті питання з розшифровки.`}},importUrl:{button:`З URL`,title:`Імпортувати навичку з URL`,hint:`Вставте посилання skills.sh чи GitHub, owner/repo/skill або пряме посилання на файл SKILL.md.`,placeholder:`https://skills.sh/owner/repo/skill або owner/repo/skill`,overwrite:`Перезаписати мою навичку, якщо слаг уже існує`},files:{title:`Додані файли`,hint:`Довідкові документи та скрипти, які модель читає на вимогу через read_skill_file.`,add:`Додати файл`,empty:`Доданих файлів поки немає.`,pathPlaceholder:`docs/reference.md`,contentPlaceholder:`Вміст файлу…`,loadFailed:`Не вдалося завантажити файл`,saveFailed:`Не вдалося зберегти файл`,deleteFailed:`Не вдалося видалити файл`},folderImport:{button:`З папки`,missingSkillMd:`У папці має бути файл SKILL.md`,done:`Навичку імпортовано з {{count}} доданими файлами`}},toolsPage:{title:`Інструменти`,description:`Сервери інструментів, які модель може викликати, і схвалення, що ви їм надали.`,approvalNotice:`Інструменти, що змінюють дані поза чатом, завжди питають схвалення, якщо тільки ви не надали такому інструменту постійне схвалення або схвалення для цього чату.`,registerServer:`Зареєструвати сервер`,registerHint:`Libre WebUI читає сервер один раз і закріплює інструменти, які той надає. Оновіть сервер пізніше, щоб підхопити зміни.`,editServer:`Редагувати сервер`,empty:`Серверів інструментів немає`,emptyHintAdmin:`Зареєструйте сервер OpenAPI або MCP, щоб моделі було що викликати.`,emptyHintUser:`Адміністратор ще не поділився з вами серверами інструментів.`,loadFailed:`Не вдалося завантажити сервери інструментів.`,saved:`Сервер інструментів збережено`,saveFailed:`Не вдалося зберегти сервер інструментів.`,deleted:`Сервер інструментів видалено`,deleteFailed:`Не вдалося видалити сервер інструментів.`,deleteTitle:`Видалити сервер інструментів`,deleteConfirm:`Видалити «{{name}}»? Усі втратять доступ до його інструментів.`,refresh:`Оновити інструменти`,refreshed:`Інструменти перечитано із сервера`,refreshFailed:`Не вдалося прочитати сервер.`,toolsLoadFailed:`Не вдалося завантажити закріплені інструменти.`,overrideFailed:`Не вдалося змінити інструмент.`,pinnedTools:`Закріплені інструменти`,noPinnedTools:`Цей сервер не надав жодного інструмента.`,sideEffect:`Побічний ефект`,sideEffectOverride:`Побічний ефект`,specRevision:`Ревізія {{revision}}`,credential:`Особисті облікові дані`,credentialHint:`Зберігаються в зашифрованому вигляді й використовуються лише для ваших власних викликів до цього сервера.`,credentialPlaceholder:`Вставте свій токен`,credentialSet:`Облікові дані задано`,credentialMissing:`Потрібні облікові дані`,credentialSaved:`Облікові дані збережено`,credentialSaveFailed:`Не вдалося зберегти облікові дані.`,credentialRemove:`Видалити`,credentialRemoved:`Облікові дані видалено`,credentialRemoveFailed:`Не вдалося видалити облікові дані.`,builtinSource:`Цей сервер`,kinds:{openapi:`OpenAPI`,mcp:`MCP`},authModes:{none:`Без автентифікації`,bearer:`Токен Bearer`,header:`Власний заголовок`,oauth:`Інтерактивний OAuth`},accessModes:{"admins-only":`Лише адміністратори`,"all-users":`Усі`,granted:`Лише ті, кому надано доступ`},form:{name:`Назва`,namePlaceholder:`API погоди`,kind:`Тип`,description:`Опис`,descriptionPlaceholder:`Що робить цей сервер`,baseUrl:`Базова URL-адреса`,specUrl:`URL специфікації`,specUrlHint:`Необов'язково. Якщо залишити порожнім, використовується базова URL-адреса.`,authMode:`Автентифікація`,authHeader:`Назва заголовка`,oauthClientId:`ID клієнта OAuth`,oauthClientIdHint:`Необов'язково. Потрібно лише якщо провайдер не реєструє клієнтів автоматично.`,oauthClientSecret:`Секрет клієнта OAuth`,accessMode:`Хто може ним користуватися`,timeoutMs:`Тайм-аут (мс)`,maxResponseBytes:`Максимальна відповідь (байти)`,serverDefault:`Значення сервера`,enabled:`Увімкнено`,enabledHint:`Вимкнені сервери залишаються зареєстрованими, але ніколи не пропонуються моделі.`},approvals:{title:`Постійні схвалення`,description:`Інструменти, яким ви дозволили працювати без повторних запитів. Відкличте схвалення — і наступного разу він знову спитає.`,empty:`Постійних схвалень немає.`,revoke:`Відкликати`,revoked:`Схвалення відкликано`,revokeFailed:`Не вдалося відкликати схвалення.`,scope:{once:`Один раз`,session:`Цей чат`,always:`Завжди`}},templatesTitle:`Почніть із шаблону`,templates:{exa:{name:`Exa`,description:`Шукайте в інтернеті та завантажуйте сторінки за допомогою Exa.`},internalOpenApi:{name:`Внутрішній API`,description:`Відправна точка для вашого власного сервісу OpenAPI.`},mcpServer:{name:`Сервер MCP`,description:`Відправна точка для сервера MCP поверх Streamable HTTP.`}},oauth:{title:`З'єднання`,hint:`Підключення перенаправляє вас до провайдера для входу. Токени залишаються на цьому сервері й використовуються лише для ваших власних викликів.`,connect:`Підключити`,reconnect:`Перепідключити`,disconnect:`Відключити`,connected:`Підключено`,notConnected:`Не підключено`,expiresAt:`Доступ закінчується {{when}}`,connectFailed:`Не вдалося почати підключення.`,disconnected:`Сервер інструментів відключено`,disconnectFailed:`Не вдалося відключити сервер інструментів.`,callbackSuccess:`Сервер інструментів підключено`,callbackError:`Не вдалося підключити сервер інструментів.`}},composer:{promptMenu:{label:`Бібліотека промптів`,empty:`Промптів ще немає — створіть один у Налаштування → Промпти або почніть вводити слаг.`},skillMenu:{label:`Навички`,empty:`Навичок ще немає — створіть одну в Налаштування → Навички.`},variables:{title:`Заповніть {{title}}`,insert:`Вставити`,cancel:`Скасувати`,required:`{{name}} є обов'язковим`},toolsMenu:{enable:`Використовувати інструменти для цього повідомлення`,builtin:`Вбудовані інструменти`,servers:`Сервери інструментів`,hint:`Виклики з побічними ефектами й надалі просять підтвердження перед запуском.`}},share:{title:`Поділитися «{{name}}»`,subtitle:`Надайте доступ людям або групам. Лише ви керуєте доступом.`,kindUser:`Користувач`,kindGroup:`Група`,usernamePlaceholder:`Точне ім'я користувача`,groupPlaceholder:`Точна назва групи`,permissionRead:`Може переглядати`,permissionWrite:`Може редагувати`,action:`Поділитися`,empty:`Ще ні з ким не поділено.`,hint:`Введіть точне ім'я користувача або групи. Отримувачі бачать ресурс у своєму просторі; відкликання одразу знімає доступ.`,revoke:`Відкликати доступ`,added:`Доступ надано {{name}}`,failed:`Не вдалося поділитися`,userNotFound:`Користувача з таким іменем не знайдено`,groupNotFound:`Групу з такою назвою не знайдено`},channels:{title:`Канали`,browsePublic:`Переглянути публічні канали`,newDm:`Нове особисте повідомлення`,newChannel:`Новий канал`,empty:`Каналів ще немає. Створіть свій або перегляньте публічні.`,selectPrompt:`Оберіть канал, щоб почати`,pins:`Закріплені`,members:`Учасники`,settings:`Налаштування каналу`,sendFailed:`Не вдалося надіслати повідомлення`,uploadFailed:`Не вдалося завантажити файл`,memberAdded:`Учасника додано`,memberAddFailed:`Не вдалося додати цього користувача`,attach:`Прикріпити файл`,askModel:`Поставити це повідомлення моделі`,noModel:`Без моделі`,composerPlaceholder:`Напишіть повідомлення…`,thread:`Гілка`,replyPlaceholder:`Відповісти…`,invitePlaceholder:`Кого запросити`,roleOwner:`власник`,removeMember:`Вилучити з каналу`,leave:`Покинути канал`,noPins:`Поки нічого не закріплено.`,noMessages:`Повідомлень ще немає — привітайтеся.`,create:`Створити`,createFailed:`Не вдалося створити канал`,nameLabel:`Назва`,typeLabel:`Тип`,typePublic:`Публічний — приєднатися може будь-хто`,typePrivate:`Приватний — лише за запрошенням`,descriptionLabel:`Опис`,openDm:`Відкрити розмову`,dmFailed:`Не вдалося відкрити розмову`,dmHint:`Особисті повідомлення бачите лише ви двоє.`,dmPlaceholder:`Точне ім'я користувача`,noPublic:`Публічних каналів немає.`,joined:`Ви учасник`,join:`Приєднатися`,save:`Зберегти`,delete:`Видалити канал`,modelAuthor:`Модель`,unknownAuthor:`Хтось`,edited:`змінено`,deletedMessage:`Це повідомлення видалено`,modelThinking:`Модель думає…`,react:`Додати реакцію`,reply:`Відповісти в гілці`,pin:`Закріпити повідомлення`,unpin:`Відкріпити повідомлення`,edit:`Редагувати повідомлення`,deleteMessage:`Видалити повідомлення`,replyCount:`Відповідей: {{total}}`,toolCalls:{summary:`Використано інструментів ({{total}})`,deniedHint:`Інструменти, що змінюють дані, відхиляються в каналах. Запускайте їх із чату.`}},notifications:{title:`Сповіщення`,empty:`Нових сповіщень немає.`,markAllRead:`Позначити все прочитаним`,markRead:`Позначити прочитаним`},voiceMode:{title:`Голосовий режим`,open:`Запустити голосовий режим`,close:`Закрити голосовий режим`,starting:`Запуск…`,listening:`Слухаю…`,muted:`Мікрофон вимкнено`,transcribing:`Розшифрування…`,generating:`Думаю…`,speaking:`Говорю…`,mute:`Вимкнути мікрофон`,unmute:`Увімкнути мікрофон`,finishTurn:`Я закінчив говорити`,skipReply:`Пропустити відповідь`,microphoneFailed:`Мікрофон недоступний`,transcriptionFailed:`Не вдалося розшифрувати`,replyTimeout:`Відповідь тривала надто довго`,unsupported:`Голосовий режим недоступний`,unsupportedHint:`Голосовому режиму потрібні мікрофон і постачальник розпізнавання мовлення або розпізнавання мовлення браузера.`},imageEdit:{title:`Редагувати зображення`,prompt:`Опишіть зміну`,promptPlaceholder:`Наприклад: замінити небо на захід сонця`,model:`Модель`,apply:`Застосувати правку`,maskHint:`Зафарбуйте ділянки для перемалювання; залиште полотно недоторканим, щоб змінити все зображення.`,brushSize:`Розмір пензля`,clearMask:`Очистити маску`,referenceImages:`Референсні зображення (до {{total}})`,noModels:`Жодна налаштована модель не підтримує редагування зображень.`,saved:`Відредаговане зображення збережено в галереї`,failed:`Не вдалося відредагувати зображення`,loadFailed:`Не вдалося завантажити вихідне зображення`},costs:{title:`Витрати та бюджети`,description:`Ціни тарифів застосовуються до журналу використання; бюджети відстежують або обмежують витрати.`,loadFailed:`Не вдалося завантажити дані про витрати`,saveFailed:`Не вдалося зберегти`,exportFailed:`Не вдалося експортувати`,exportCsv:`Експорт CSV`,totalSpend:`Загальні витрати`,meteredEvents:`Оцінені події`,unmeteredEvents:`Неоцінені події`,topModel:`Головна модель`,budgets:`Бюджети`,noBudgets:`Бюджетів ще немає.`,budgetName:`Назва бюджету`,principalId:`ID користувача або групи`,addBudget:`Додати бюджет`,deleteBudget:`Видалити бюджет`,budgetSaved:`Бюджет збережено`,scope:{instance:`Уся інстанція`,user:`Користувач`,group:`Група`},period:{daily:`Щодня`,weekly:`Щотижня`,monthly:`Щомісяця`},mode:{observe:`Спостерігати`,soft:`Попереджати`,hard:`Попереджати і блокувати`},tariffs:`Тарифи`,noTariffs:`Тарифів ще немає — витрати залишаються без ціни, доки ви не додасте ціни.`,plugin:`Плагін`,model:`Модель`,modelOptional:`Модель (необов’язково)`,allModels:`Усі моделі`,inputPerMillion:`Вхід $/М токенів`,outputPerMillion:`Вихід $/М токенів`,unitPrice:`Ціна за одиницю`,effectiveFrom:`Діє з`,addTariff:`Додати тариф`,deleteTariff:`Видалити тариф`,tariffSaved:`Тариф збережено`},evaluations:{title:`Оцінювання`,description:`Сліпі дуелі на арені, рейтинг Ело, багаторазові набори оцінювання та ваш набір відгуків.`,loadFailed:`Не вдалося завантажити оцінювання`,matchFailed:`Дуель на арені не вдалася`,voteRecorded:`Голос записано`,voteFailed:`Не вдалося записати голос`,saveFailed:`Не вдалося зберегти`,exportFailed:`Не вдалося експортувати`,setSaved:`Набір оцінювання збережено`,runStarted:`Запуск розпочато`,pickModel:`Оберіть модель`,tabs:{arena:`Арена`,leaderboard:`Рейтинг`,sets:`Набори`,feedback:`Відгуки`},arenaModelA:`Модель A`,arenaModelB:`Модель B`,arenaPrompt:`Поставте обом моделям одне запитання…`,startMatch:`Почати дуель`,arenaHint:`Назви моделей приховані до вашого голосу.`,candidate:`Відповідь {{letter}}`,voteFirst:`Перша краща`,voteSecond:`Друга краща`,voteTie:`Нічия`,voteBothBad:`Обидві погані`,model:`Модель`,rating:`Рейтинг`,record:`Підсумки`,votes:`Голоси`,noVotes:`Голосів ще немає — почніть дуель, щоб побудувати рейтинг.`,newSet:`Новий набір оцінювання`,setName:`Назва набору`,setPrompts:`Один запит на рядок…`,saveSet:`Зберегти набір`,yourSets:`Ваші набори`,noSets:`Наборів оцінювання ще немає.`,itemCount:`{{total}} запитів`,run:`Запустити`,deleteSet:`Видалити набір`,cancelRun:`Скасувати запуск`,exportRun:`Експортувати запуск`,status:{queued:`У черзі`,running:`Виконується`,completed:`Завершено`,failed:`Невдача`,cancelled:`Скасовано`},noFeedback:`Відгуків ще немає — оцінюйте відповіді, щоб зібрати набір даних.`},passwordStrength:{levels:{weak:`Слабкий`,fair:`Середній`,good:`Добрий`,strong:`Надійний`},checks:{minLength:`Щонайменше 12 символів`,hasCase:`Великі та малі літери`,hasNumber:`Принаймні одна цифра`,tooLong:`Не більше 72 байтів`}},connectModels:{adminOnly:`Попросіть адміністратора підключити провайдера моделей.`,skip:`Пропустити поки що — підключу моделі пізніше`,ollama:{status:{checking:`Перевірка доступності…`,healthy:`Працює і готовий до локальних моделей`,offline:`Не виявлено на цьому пристрої`,disabled:`Вимкнено — перевірки не виконуватимуться`},recheck:`Перевірити знову`,enable:`Увімкнути`,disable:`Припинити перевірку Ollama`,enabledToast:`Провайдера Ollama увімкнено`,disabledToast:`Перевірки Ollama вимкнено — ви можете знову увімкнути їх у Налаштуваннях`,settingsFailed:`Не вдалося оновити налаштування Ollama`,offlineHint:`Встановіть Ollama з ollama.com, і його буде виявлено автоматично — або скористайтеся одним із варіантів нижче. Якщо ви не плануєте використовувати Ollama, можете вимкнути його перевірки.`,healthyHint:`Ollama підключено. Завантажте модель у розділі «Моделі» — і можна починати спілкування.`},local:{title:`Локальний сервер`,subtitle:`llama.cpp, vLLM, llama-swap, LM Studio, mlx-lm`,keyPlaceholder:`API-ключ (необов'язково)`,test:`Перевірити з'єднання`,testing:`Перевірка…`,reachable:`Підключено — знайдено моделей: {{count}}`,unreachable:`Жоден API моделей не відповів за цією адресою`,noModels:`Кінцева точка відповіла, але не перерахувала жодної моделі. Завантажте модель на своєму сервері й спробуйте ще раз.`,enable:`Увімкнути провайдера`,enabling:`Увімкнення…`,enabled:`{{name}} підключено — його моделі тепер доступні`,enableFailed:`Не вдалося увімкнути провайдера`},cloud:{title:`Хмарний API`,subtitle:`OpenAI, Anthropic, Groq, OpenRouter та інші`,keyPlaceholder:`Вставте свій API-ключ {{name}}`,connect:`Підключити`,connecting:`Підключення…`,connected:`{{name}} підключено — його моделі тепер доступні`,saveFailed:`Не вдалося зберегти API-ключ`}},strands:{title:`Strands`,subtitle:`Вбудований рушій агентів на ваших моделях Libre WebUI.`,subtitleVersion:`Вбудований рушій агентів, harness {{version}}.`,newSession:`Новий сеанс`,sessions:`Сеанси`,noSessions:`Сеансів ще немає. Створіть один, щоб почати.`,empty:`Попросіть агента прочитати або змінити файли в його робочій області.`,placeholder:`Попросіть рушій щось зробити…`,model:`Модель`,defaultModel:`Модель за замовчуванням`,send:`Надіслати`,stop:`Зупинити`,reasoning:`Міркування`,tool:{running:`Виконується`,done:`Готово`,failed:`Не вдалося`},cancelled:`Скасовано`,turnLimit:`Зупинено на ліміті ходів.`,messageCount:`Повідомлення: {{count}}`,deleteSession:`Видалити сеанс`,deleteConfirm:`Видалити «{{title}}» разом з історією?`,loadFailed:`Не вдалося завантажити Strands.`,createFailed:`Не вдалося створити сеанс.`,deleteFailed:`Не вдалося видалити сеанс.`,saveFailed:`Не вдалося зберегти сеанс.`,turnFailed:`Рушій не зміг завершити хід`}};export{e as default};
|