libre-webui 0.25.0 → 0.26.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 +32 -22
- package/backend/dist/index.d.ts.map +1 -1
- package/backend/dist/index.js +26 -4
- package/backend/dist/index.js.map +1 -1
- package/backend/dist/middleware/auth.d.ts +7 -0
- package/backend/dist/middleware/auth.d.ts.map +1 -1
- package/backend/dist/middleware/auth.js +26 -0
- package/backend/dist/middleware/auth.js.map +1 -1
- package/backend/dist/middleware/index.d.ts +20 -0
- package/backend/dist/middleware/index.d.ts.map +1 -1
- package/backend/dist/middleware/index.js +105 -2
- package/backend/dist/middleware/index.js.map +1 -1
- package/backend/dist/models/personaModel.d.ts.map +1 -1
- package/backend/dist/models/personaModel.js +2 -0
- package/backend/dist/models/personaModel.js.map +1 -1
- package/backend/dist/observability/otel.d.ts +40 -0
- package/backend/dist/observability/otel.d.ts.map +1 -0
- package/backend/dist/observability/otel.js +337 -0
- package/backend/dist/observability/otel.js.map +1 -0
- package/backend/dist/observability/requestContext.d.ts +14 -0
- package/backend/dist/observability/requestContext.d.ts.map +1 -0
- package/backend/dist/observability/requestContext.js +21 -0
- package/backend/dist/observability/requestContext.js.map +1 -0
- package/backend/dist/persistence/chatGenerationTypes.d.ts +9 -0
- package/backend/dist/persistence/chatGenerationTypes.d.ts.map +1 -1
- package/backend/dist/persistence/extensionTypes.d.ts +13 -0
- package/backend/dist/persistence/extensionTypes.d.ts.map +1 -1
- package/backend/dist/persistence/extensionTypes.js.map +1 -1
- package/backend/dist/persistence/index.d.ts +1 -1
- package/backend/dist/persistence/index.d.ts.map +1 -1
- package/backend/dist/persistence/index.js.map +1 -1
- package/backend/dist/persistence/postgresAgentFoundationMigration.d.ts +9 -0
- package/backend/dist/persistence/postgresAgentFoundationMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresAgentFoundationMigration.js +164 -0
- package/backend/dist/persistence/postgresAgentFoundationMigration.js.map +1 -0
- package/backend/dist/persistence/postgresExtensionRepositories.d.ts.map +1 -1
- package/backend/dist/persistence/postgresExtensionRepositories.js +46 -2
- package/backend/dist/persistence/postgresExtensionRepositories.js.map +1 -1
- package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.d.ts +10 -0
- package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.js +148 -0
- package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.js.map +1 -0
- package/backend/dist/persistence/postgresMigrationRegistry.d.ts.map +1 -1
- package/backend/dist/persistence/postgresMigrationRegistry.js +10 -0
- package/backend/dist/persistence/postgresMigrationRegistry.js.map +1 -1
- package/backend/dist/persistence/postgresNotesV2Migration.d.ts +4 -0
- package/backend/dist/persistence/postgresNotesV2Migration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresNotesV2Migration.js +57 -0
- package/backend/dist/persistence/postgresNotesV2Migration.js.map +1 -0
- package/backend/dist/persistence/postgresResourceRepositories.d.ts.map +1 -1
- package/backend/dist/persistence/postgresResourceRepositories.js +1646 -11
- package/backend/dist/persistence/postgresResourceRepositories.js.map +1 -1
- package/backend/dist/persistence/postgresSkillFilesMigration.d.ts +9 -0
- package/backend/dist/persistence/postgresSkillFilesMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresSkillFilesMigration.js +50 -0
- package/backend/dist/persistence/postgresSkillFilesMigration.js.map +1 -0
- package/backend/dist/persistence/postgresTeamCollaborationMigration.d.ts +10 -0
- package/backend/dist/persistence/postgresTeamCollaborationMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresTeamCollaborationMigration.js +161 -0
- package/backend/dist/persistence/postgresTeamCollaborationMigration.js.map +1 -0
- package/backend/dist/persistence/resourceTypes.d.ts +541 -3
- package/backend/dist/persistence/resourceTypes.d.ts.map +1 -1
- package/backend/dist/persistence/resourceTypes.js.map +1 -1
- package/backend/dist/persistence/sqliteExtensionRepositories.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteExtensionRepositories.js +26 -4
- package/backend/dist/persistence/sqliteExtensionRepositories.js.map +1 -1
- package/backend/dist/persistence/sqliteMigrations.d.ts +9 -0
- package/backend/dist/persistence/sqliteMigrations.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteMigrations.js +1196 -29
- package/backend/dist/persistence/sqliteMigrations.js.map +1 -1
- package/backend/dist/persistence/sqliteResourceRepositories.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteResourceRepositories.js +1523 -134
- package/backend/dist/persistence/sqliteResourceRepositories.js.map +1 -1
- package/backend/dist/persistence/sqliteToPostgresMigration.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteToPostgresMigration.js +257 -3
- package/backend/dist/persistence/sqliteToPostgresMigration.js.map +1 -1
- package/backend/dist/platform/jobs/domainJobContracts.d.ts +8 -0
- package/backend/dist/platform/jobs/domainJobContracts.d.ts.map +1 -1
- package/backend/dist/platform/jobs/domainJobContracts.js +8 -0
- package/backend/dist/platform/jobs/domainJobContracts.js.map +1 -1
- package/backend/dist/platform/jobs/domainJobHandlers.d.ts.map +1 -1
- package/backend/dist/platform/jobs/domainJobHandlers.js +310 -3
- package/backend/dist/platform/jobs/domainJobHandlers.js.map +1 -1
- package/backend/dist/platform/jobs/embeddedDurableJobWorker.d.ts.map +1 -1
- package/backend/dist/platform/jobs/embeddedDurableJobWorker.js +4 -2
- package/backend/dist/platform/jobs/embeddedDurableJobWorker.js.map +1 -1
- package/backend/dist/platform/jobs/postgresDurableJobWorker.d.ts.map +1 -1
- package/backend/dist/platform/jobs/postgresDurableJobWorker.js +4 -2
- package/backend/dist/platform/jobs/postgresDurableJobWorker.js.map +1 -1
- package/backend/dist/platform/storage/pgVectorStore.d.ts +2 -1
- package/backend/dist/platform/storage/pgVectorStore.d.ts.map +1 -1
- package/backend/dist/platform/storage/pgVectorStore.js +51 -0
- package/backend/dist/platform/storage/pgVectorStore.js.map +1 -1
- package/backend/dist/platform/storage/platformDomainRepositories.d.ts +8 -2
- package/backend/dist/platform/storage/platformDomainRepositories.d.ts.map +1 -1
- package/backend/dist/platform/storage/postgresPlatformDomainRepositories.d.ts.map +1 -1
- package/backend/dist/platform/storage/postgresPlatformDomainRepositories.js +25 -4
- package/backend/dist/platform/storage/postgresPlatformDomainRepositories.js.map +1 -1
- package/backend/dist/platform/storage/sqliteEncryptedVectorStore.d.ts +2 -1
- package/backend/dist/platform/storage/sqliteEncryptedVectorStore.d.ts.map +1 -1
- package/backend/dist/platform/storage/sqliteEncryptedVectorStore.js +35 -0
- package/backend/dist/platform/storage/sqliteEncryptedVectorStore.js.map +1 -1
- package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.d.ts.map +1 -1
- package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.js +26 -3
- package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.js.map +1 -1
- package/backend/dist/platform/storage/vectorStore.d.ts +14 -0
- package/backend/dist/platform/storage/vectorStore.d.ts.map +1 -1
- package/backend/dist/platform/storage/vectorStore.js.map +1 -1
- package/backend/dist/routes/access.d.ts.map +1 -1
- package/backend/dist/routes/access.js +84 -3
- package/backend/dist/routes/access.js.map +1 -1
- package/backend/dist/routes/calendar.d.ts.map +1 -1
- package/backend/dist/routes/calendar.js +125 -22
- package/backend/dist/routes/calendar.js.map +1 -1
- package/backend/dist/routes/channels.d.ts +3 -0
- package/backend/dist/routes/channels.d.ts.map +1 -0
- package/backend/dist/routes/channels.js +447 -0
- package/backend/dist/routes/channels.js.map +1 -0
- package/backend/dist/routes/chat.d.ts.map +1 -1
- package/backend/dist/routes/chat.js +195 -7
- package/backend/dist/routes/chat.js.map +1 -1
- package/backend/dist/routes/costs.d.ts +3 -0
- package/backend/dist/routes/costs.d.ts.map +1 -0
- package/backend/dist/routes/costs.js +191 -0
- package/backend/dist/routes/costs.js.map +1 -0
- package/backend/dist/routes/documents.d.ts.map +1 -1
- package/backend/dist/routes/documents.js +64 -21
- package/backend/dist/routes/documents.js.map +1 -1
- package/backend/dist/routes/evaluations.d.ts +3 -0
- package/backend/dist/routes/evaluations.d.ts.map +1 -0
- package/backend/dist/routes/evaluations.js +352 -0
- package/backend/dist/routes/evaluations.js.map +1 -0
- package/backend/dist/routes/imageGen.d.ts.map +1 -1
- package/backend/dist/routes/imageGen.js +2 -1
- package/backend/dist/routes/imageGen.js.map +1 -1
- package/backend/dist/routes/media.d.ts.map +1 -1
- package/backend/dist/routes/media.js +228 -7
- package/backend/dist/routes/media.js.map +1 -1
- package/backend/dist/routes/notes.d.ts.map +1 -1
- package/backend/dist/routes/notes.js +149 -36
- package/backend/dist/routes/notes.js.map +1 -1
- package/backend/dist/routes/notifications.d.ts +3 -0
- package/backend/dist/routes/notifications.d.ts.map +1 -0
- package/backend/dist/routes/notifications.js +213 -0
- package/backend/dist/routes/notifications.js.map +1 -0
- package/backend/dist/routes/openaiCompat.d.ts +3 -0
- package/backend/dist/routes/openaiCompat.d.ts.map +1 -0
- package/backend/dist/routes/openaiCompat.js +314 -0
- package/backend/dist/routes/openaiCompat.js.map +1 -0
- package/backend/dist/routes/personas.js +1 -1
- package/backend/dist/routes/personas.js.map +1 -1
- package/backend/dist/routes/prompts.d.ts +3 -0
- package/backend/dist/routes/prompts.d.ts.map +1 -0
- package/backend/dist/routes/prompts.js +173 -0
- package/backend/dist/routes/prompts.js.map +1 -0
- package/backend/dist/routes/search.d.ts.map +1 -1
- package/backend/dist/routes/search.js +29 -1
- package/backend/dist/routes/search.js.map +1 -1
- package/backend/dist/routes/skills.d.ts +3 -0
- package/backend/dist/routes/skills.d.ts.map +1 -0
- package/backend/dist/routes/skills.js +246 -0
- package/backend/dist/routes/skills.js.map +1 -0
- package/backend/dist/routes/stt.d.ts.map +1 -1
- package/backend/dist/routes/stt.js +2 -1
- package/backend/dist/routes/stt.js.map +1 -1
- package/backend/dist/routes/tools.d.ts +3 -0
- package/backend/dist/routes/tools.d.ts.map +1 -0
- package/backend/dist/routes/tools.js +359 -0
- package/backend/dist/routes/tools.js.map +1 -0
- package/backend/dist/routes/tts.d.ts.map +1 -1
- package/backend/dist/routes/tts.js +63 -8
- package/backend/dist/routes/tts.js.map +1 -1
- package/backend/dist/routes/voiceAccess.d.ts +3 -0
- package/backend/dist/routes/voiceAccess.d.ts.map +1 -0
- package/backend/dist/routes/voiceAccess.js +102 -0
- package/backend/dist/routes/voiceAccess.js.map +1 -0
- package/backend/dist/services/apiTokenService.d.ts +2 -2
- package/backend/dist/services/apiTokenService.d.ts.map +1 -1
- package/backend/dist/services/apiTokenService.js +7 -0
- package/backend/dist/services/apiTokenService.js.map +1 -1
- package/backend/dist/services/authorizationService.d.ts +8 -4
- package/backend/dist/services/authorizationService.d.ts.map +1 -1
- package/backend/dist/services/authorizationService.js +31 -1
- package/backend/dist/services/authorizationService.js.map +1 -1
- package/backend/dist/services/automationSchedulerService.d.ts.map +1 -1
- package/backend/dist/services/automationSchedulerService.js +33 -3
- package/backend/dist/services/automationSchedulerService.js.map +1 -1
- package/backend/dist/services/automationService.d.ts +4 -1
- package/backend/dist/services/automationService.d.ts.map +1 -1
- package/backend/dist/services/automationService.js +25 -2
- package/backend/dist/services/automationService.js.map +1 -1
- package/backend/dist/services/builtinToolsService.d.ts +20 -0
- package/backend/dist/services/builtinToolsService.d.ts.map +1 -0
- package/backend/dist/services/builtinToolsService.js +661 -0
- package/backend/dist/services/builtinToolsService.js.map +1 -0
- package/backend/dist/services/calendarService.d.ts +74 -0
- package/backend/dist/services/calendarService.d.ts.map +1 -0
- package/backend/dist/services/calendarService.js +339 -0
- package/backend/dist/services/calendarService.js.map +1 -0
- package/backend/dist/services/channelService.d.ts +195 -0
- package/backend/dist/services/channelService.d.ts.map +1 -0
- package/backend/dist/services/channelService.js +1057 -0
- package/backend/dist/services/channelService.js.map +1 -0
- package/backend/dist/services/chatRequestService.d.ts.map +1 -1
- package/backend/dist/services/chatRequestService.js +29 -1
- package/backend/dist/services/chatRequestService.js.map +1 -1
- package/backend/dist/services/chatService.d.ts +61 -1
- package/backend/dist/services/chatService.d.ts.map +1 -1
- package/backend/dist/services/chatService.js +218 -1
- package/backend/dist/services/chatService.js.map +1 -1
- package/backend/dist/services/chatToolRuntimeService.d.ts +55 -0
- package/backend/dist/services/chatToolRuntimeService.d.ts.map +1 -0
- package/backend/dist/services/chatToolRuntimeService.js +389 -0
- package/backend/dist/services/chatToolRuntimeService.js.map +1 -0
- package/backend/dist/services/costGovernanceService.d.ts +102 -0
- package/backend/dist/services/costGovernanceService.d.ts.map +1 -0
- package/backend/dist/services/costGovernanceService.js +463 -0
- package/backend/dist/services/costGovernanceService.js.map +1 -0
- package/backend/dist/services/dataArchiveService.d.ts +6 -0
- package/backend/dist/services/dataArchiveService.d.ts.map +1 -1
- package/backend/dist/services/dataArchiveService.js +23 -4
- package/backend/dist/services/dataArchiveService.js.map +1 -1
- package/backend/dist/services/documentService.d.ts +58 -1
- package/backend/dist/services/documentService.d.ts.map +1 -1
- package/backend/dist/services/documentService.js +289 -84
- package/backend/dist/services/documentService.js.map +1 -1
- package/backend/dist/services/durableChatGenerationService.d.ts +9 -0
- package/backend/dist/services/durableChatGenerationService.d.ts.map +1 -1
- package/backend/dist/services/durableChatGenerationService.js +152 -11
- package/backend/dist/services/durableChatGenerationService.js.map +1 -1
- package/backend/dist/services/evaluationService.d.ts +111 -0
- package/backend/dist/services/evaluationService.d.ts.map +1 -0
- package/backend/dist/services/evaluationService.js +403 -0
- package/backend/dist/services/evaluationService.js.map +1 -0
- package/backend/dist/services/galleryService.d.ts +6 -0
- package/backend/dist/services/galleryService.d.ts.map +1 -1
- package/backend/dist/services/galleryService.js +26 -0
- package/backend/dist/services/galleryService.js.map +1 -1
- package/backend/dist/services/mcpClientService.d.ts +29 -0
- package/backend/dist/services/mcpClientService.d.ts.map +1 -0
- package/backend/dist/services/mcpClientService.js +189 -0
- package/backend/dist/services/mcpClientService.js.map +1 -0
- package/backend/dist/services/noteService.d.ts +71 -0
- package/backend/dist/services/noteService.d.ts.map +1 -0
- package/backend/dist/services/noteService.js +397 -0
- package/backend/dist/services/noteService.js.map +1 -0
- package/backend/dist/services/notificationService.d.ts +55 -0
- package/backend/dist/services/notificationService.d.ts.map +1 -0
- package/backend/dist/services/notificationService.js +308 -0
- package/backend/dist/services/notificationService.js.map +1 -0
- package/backend/dist/services/openApiToolService.d.ts +38 -0
- package/backend/dist/services/openApiToolService.d.ts.map +1 -0
- package/backend/dist/services/openApiToolService.js +254 -0
- package/backend/dist/services/openApiToolService.js.map +1 -0
- package/backend/dist/services/personaService.d.ts +18 -2
- package/backend/dist/services/personaService.d.ts.map +1 -1
- package/backend/dist/services/personaService.js +113 -4
- package/backend/dist/services/personaService.js.map +1 -1
- package/backend/dist/services/pluginImageGenerationService.d.ts +19 -0
- package/backend/dist/services/pluginImageGenerationService.d.ts.map +1 -1
- package/backend/dist/services/pluginImageGenerationService.js +121 -0
- package/backend/dist/services/pluginImageGenerationService.js.map +1 -1
- package/backend/dist/services/pluginService.d.ts +7 -0
- package/backend/dist/services/pluginService.d.ts.map +1 -1
- package/backend/dist/services/pluginService.js +8 -2
- package/backend/dist/services/pluginService.js.map +1 -1
- package/backend/dist/services/promptService.d.ts +74 -0
- package/backend/dist/services/promptService.d.ts.map +1 -0
- package/backend/dist/services/promptService.js +513 -0
- package/backend/dist/services/promptService.js.map +1 -0
- package/backend/dist/services/resourceGrantService.d.ts.map +1 -1
- package/backend/dist/services/resourceGrantService.js +62 -17
- package/backend/dist/services/resourceGrantService.js.map +1 -1
- package/backend/dist/services/searchService.d.ts +29 -0
- package/backend/dist/services/searchService.d.ts.map +1 -0
- package/backend/dist/services/searchService.js +0 -0
- package/backend/dist/services/searchService.js.map +1 -0
- package/backend/dist/services/securityAuditService.d.ts.map +1 -1
- package/backend/dist/services/securityAuditService.js +2 -1
- package/backend/dist/services/securityAuditService.js.map +1 -1
- package/backend/dist/services/sharedResourceAccess.d.ts +25 -0
- package/backend/dist/services/sharedResourceAccess.d.ts.map +1 -0
- package/backend/dist/services/sharedResourceAccess.js +59 -0
- package/backend/dist/services/sharedResourceAccess.js.map +1 -0
- package/backend/dist/services/skillService.d.ts +137 -0
- package/backend/dist/services/skillService.d.ts.map +1 -0
- package/backend/dist/services/skillService.js +852 -0
- package/backend/dist/services/skillService.js.map +1 -0
- package/backend/dist/services/toolAccessService.d.ts +9 -0
- package/backend/dist/services/toolAccessService.d.ts.map +1 -0
- package/backend/dist/services/toolAccessService.js +60 -0
- package/backend/dist/services/toolAccessService.js.map +1 -0
- package/backend/dist/services/toolApprovalService.d.ts +34 -0
- package/backend/dist/services/toolApprovalService.d.ts.map +1 -0
- package/backend/dist/services/toolApprovalService.js +188 -0
- package/backend/dist/services/toolApprovalService.js.map +1 -0
- package/backend/dist/services/toolGatewayService.d.ts +53 -0
- package/backend/dist/services/toolGatewayService.d.ts.map +1 -0
- package/backend/dist/services/toolGatewayService.js +249 -0
- package/backend/dist/services/toolGatewayService.js.map +1 -0
- package/backend/dist/services/toolServerService.d.ts +57 -0
- package/backend/dist/services/toolServerService.d.ts.map +1 -0
- package/backend/dist/services/toolServerService.js +521 -0
- package/backend/dist/services/toolServerService.js.map +1 -0
- package/backend/dist/services/voiceAccessService.d.ts +10 -0
- package/backend/dist/services/voiceAccessService.d.ts.map +1 -0
- package/backend/dist/services/voiceAccessService.js +74 -0
- package/backend/dist/services/voiceAccessService.js.map +1 -0
- package/backend/dist/services/voiceProfileService.d.ts +20 -0
- package/backend/dist/services/voiceProfileService.d.ts.map +1 -1
- package/backend/dist/services/voiceProfileService.js +60 -0
- package/backend/dist/services/voiceProfileService.js.map +1 -1
- package/backend/dist/storage.d.ts +28 -1
- package/backend/dist/storage.d.ts.map +1 -1
- package/backend/dist/storage.js +100 -1
- package/backend/dist/storage.js.map +1 -1
- package/backend/dist/storageMappers.d.ts +2 -2
- package/backend/dist/storageMappers.d.ts.map +1 -1
- package/backend/dist/storageMappers.js.map +1 -1
- package/backend/dist/types/index.d.ts +197 -2
- package/backend/dist/types/index.d.ts.map +1 -1
- package/backend/dist/types/index.js.map +1 -1
- package/backend/dist/types/tools.d.ts +137 -0
- package/backend/dist/types/tools.d.ts.map +1 -0
- package/backend/dist/types/tools.js +25 -0
- package/backend/dist/types/tools.js.map +1 -0
- package/backend/dist/utils/chatDocumentContext.d.ts +26 -1
- package/backend/dist/utils/chatDocumentContext.d.ts.map +1 -1
- package/backend/dist/utils/chatDocumentContext.js +87 -18
- package/backend/dist/utils/chatDocumentContext.js.map +1 -1
- package/backend/dist/utils/documentExtraction.d.ts +69 -0
- package/backend/dist/utils/documentExtraction.d.ts.map +1 -0
- package/backend/dist/utils/documentExtraction.js +545 -0
- package/backend/dist/utils/documentExtraction.js.map +1 -0
- package/backend/dist/utils/hybridRetrieval.d.ts +34 -0
- package/backend/dist/utils/hybridRetrieval.d.ts.map +1 -0
- package/backend/dist/utils/hybridRetrieval.js +119 -0
- package/backend/dist/utils/hybridRetrieval.js.map +1 -0
- package/backend/dist/utils/icsCalendar.d.ts +27 -0
- package/backend/dist/utils/icsCalendar.d.ts.map +1 -0
- package/backend/dist/utils/icsCalendar.js +313 -0
- package/backend/dist/utils/icsCalendar.js.map +1 -0
- package/backend/dist/utils/imageEditUpload.d.ts +29 -0
- package/backend/dist/utils/imageEditUpload.d.ts.map +1 -0
- package/backend/dist/utils/imageEditUpload.js +82 -0
- package/backend/dist/utils/imageEditUpload.js.map +1 -0
- package/backend/dist/utils/logRedaction.d.ts +2 -0
- package/backend/dist/utils/logRedaction.d.ts.map +1 -0
- package/backend/dist/utils/logRedaction.js +66 -0
- package/backend/dist/utils/logRedaction.js.map +1 -0
- package/backend/dist/utils/logger.d.ts +3 -0
- package/backend/dist/utils/logger.d.ts.map +1 -1
- package/backend/dist/utils/logger.js +63 -20
- package/backend/dist/utils/logger.js.map +1 -1
- package/backend/dist/utils/pluginChatAdapter.d.ts +5 -1
- package/backend/dist/utils/pluginChatAdapter.d.ts.map +1 -1
- package/backend/dist/utils/pluginChatAdapter.js +83 -0
- package/backend/dist/utils/pluginChatAdapter.js.map +1 -1
- package/backend/dist/utils/pluginDefinitionTrust.js +1 -1
- package/backend/dist/utils/resourceLimits.d.ts +61 -2
- package/backend/dist/utils/resourceLimits.d.ts.map +1 -1
- package/backend/dist/utils/resourceLimits.js +59 -0
- package/backend/dist/utils/resourceLimits.js.map +1 -1
- package/backend/dist/utils/toolEgress.d.ts +22 -0
- package/backend/dist/utils/toolEgress.d.ts.map +1 -0
- package/backend/dist/utils/toolEgress.js +157 -0
- package/backend/dist/utils/toolEgress.js.map +1 -0
- package/backend/dist/utils/websocketMessages.d.ts +6 -0
- package/backend/dist/utils/websocketMessages.d.ts.map +1 -1
- package/backend/dist/utils/websocketMessages.js +8 -0
- package/backend/dist/utils/websocketMessages.js.map +1 -1
- package/backend/dist/utils/zipArchive.d.ts +32 -0
- package/backend/dist/utils/zipArchive.d.ts.map +1 -0
- package/backend/dist/utils/zipArchive.js +171 -0
- package/backend/dist/utils/zipArchive.js.map +1 -0
- package/backend/dist/websocketServer.d.ts.map +1 -1
- package/backend/dist/websocketServer.js +142 -35
- package/backend/dist/websocketServer.js.map +1 -1
- package/backend/package.json +1 -1
- package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
- package/frontend/dist/assets/index-BPsH9FII.js +80 -0
- package/frontend/dist/assets/index-BtXF0Oxa.css +1 -0
- package/frontend/dist/index.html +18 -18
- package/frontend/dist/js/{ArtifactContainer-CpUi6ekF.js → ArtifactContainer-CIoFoMv8.js} +1 -1
- package/frontend/dist/js/{ArtifactDemoPage-BeNs3gHp.js → ArtifactDemoPage-D0JEIAbZ.js} +1 -1
- package/frontend/dist/js/{ArtifactSandboxFrame-qsj_Y3LV.js → ArtifactSandboxFrame-REazyIrx.js} +2 -2
- package/frontend/dist/js/ArtifactSlideOutPanel-A-i94ghF.js +1 -0
- package/frontend/dist/js/AutomationsPage-Dow_lbIf.js +1 -0
- package/frontend/dist/js/{Button-BPf_pOxH.js → Button-C0r3J9G_.js} +1 -1
- package/frontend/dist/js/CalendarPage-DLjasZOd.js +1 -0
- package/frontend/dist/js/ChannelsPage-C8hvTD7J.js +1 -0
- package/frontend/dist/js/ChatPage-BAgBHUES.js +16 -0
- package/frontend/dist/js/EvaluationsPage-Bm8FRoeX.js +2 -0
- package/frontend/dist/js/{FirstTimeSetup-Df0YJni3.js → FirstTimeSetup-BxJapNul.js} +1 -1
- package/frontend/dist/js/GalleryPage-DHz9DkK7.js +1 -0
- package/frontend/dist/js/HomePage-BqNy-FWX.js +1 -0
- package/frontend/dist/js/LibreClawPage-BDzDILjY.js +1 -0
- package/frontend/dist/js/{ModelManagerModals-DcLGYN3l.js → ModelManagerModals-DX9eT5r2.js} +1 -1
- package/frontend/dist/js/ModelSelector-ol8mK2ja.js +1 -0
- package/frontend/dist/js/NotesPage-DzHEx2O4.js +3 -0
- package/frontend/dist/js/{OptimizedSyntaxHighlighter-Dz7D1LPB.js → OptimizedSyntaxHighlighter-CZNPwN0i.js} +1 -1
- package/frontend/dist/js/PersonasPage-M_WKH2a9.js +13 -0
- package/frontend/dist/js/PluginUsagePage-Ctoka6JZ.js +1 -0
- package/frontend/dist/js/RichMessageContent-BqgafH4p.js +3 -0
- package/frontend/dist/js/SettingsModal-R9EDadAV.js +19 -0
- package/frontend/dist/js/{SettingsToggle-woG_WebF.js → SettingsToggle-BIVyfGjl.js} +1 -1
- package/frontend/dist/js/SystemPage-aOkrSuY7.js +1 -0
- package/frontend/dist/js/UserManagementPage-BOuaX3ay.js +1 -0
- package/frontend/dist/js/WorkPage-DxZISerQ.js +6 -0
- package/frontend/dist/js/api-6bSMtSNh.js +14 -0
- package/frontend/dist/js/{appStore-0JnCUlEq.js → appStore-CdObhQBb.js} +2 -2
- package/frontend/dist/js/ar-DT_VLBO3.js +2 -0
- package/frontend/dist/js/{authStore-DbMdvNgJ.js → authStore-DbqqrfZv.js} +3 -3
- package/frontend/dist/js/{babel-BsYoxD-7.js → babel-DSqqk5kt.js} +1 -1
- package/frontend/dist/js/bn-BrvEqhGA.js +2 -0
- package/frontend/dist/js/chatStore-DbZPJNsu.js +3 -0
- package/frontend/dist/js/{config-DSOYQ9a3.js → config-8KdgjtEx.js} +1 -1
- package/frontend/dist/js/cs-BthnM_YI.js +2 -0
- package/frontend/dist/js/da-DCth-6_j.js +2 -0
- package/frontend/dist/js/de-BBWt0gJ_.js +2 -0
- package/frontend/dist/js/es-DuslOPqM.js +2 -0
- package/frontend/dist/js/{estree-BcnBcOAx.js → estree-BU5-LV_1.js} +3 -3
- package/frontend/dist/js/evaluationsApi-CwZJsgeG.js +1 -0
- package/frontend/dist/js/fr-DZAeg46S.js +2 -0
- package/frontend/dist/js/hi-ijDSiY77.js +2 -0
- package/frontend/dist/js/{html-DkY55Jys.js → html-DeoAy2bo.js} +2 -2
- package/frontend/dist/js/id-BS6qS0oq.js +2 -0
- package/frontend/dist/js/is-CO2PMDte.js +2 -0
- package/frontend/dist/js/it-ChhxT4hs.js +2 -0
- package/frontend/dist/js/ja-cyeqUeJN.js +2 -0
- package/frontend/dist/js/ko-CfqHTLXj.js +2 -0
- package/frontend/dist/js/{markdown-IZSI9DXw.js → markdown-DOLsYkBY.js} +3 -3
- package/frontend/dist/js/markdown-core-BK7WVOb7.js +32 -0
- package/frontend/dist/js/{markdown-math-DK846gXU.js → markdown-math-e1ByS3KY.js} +5 -5
- package/frontend/dist/js/{messageCodeStyles-BFNR9Wv6.js → messageCodeStyles-DhVgizF-.js} +2 -2
- package/frontend/dist/js/ms-DZ5pACe1.js +2 -0
- package/frontend/dist/js/nl-BsRsnOVp.js +2 -0
- package/frontend/dist/js/pl-DXSTAW4M.js +2 -0
- package/frontend/dist/js/{postcss-BJ0okz7n.js → postcss-Bg15EcFE.js} +1 -1
- package/frontend/dist/js/pt-DmDx0JxB.js +2 -0
- package/frontend/dist/js/{react-vendor-C5yShNlM.js → react-vendor-BG_HPV6X.js} +1 -1
- package/frontend/dist/js/router-vendor-CbexJIsv.js +1 -0
- package/frontend/dist/js/ru-d2g8EWfY.js +2 -0
- package/frontend/dist/js/{standalone-Csw3jfJ_.js → standalone-BO5pzI8_.js} +3 -3
- package/frontend/dist/js/sv-CIhYUTVQ.js +2 -0
- package/frontend/dist/js/{syntax-highlight-3EEX6CGL.js → syntax-highlight-DcR9Vhb7.js} +3 -3
- package/frontend/dist/js/th-B3wSxanB.js +2 -0
- package/frontend/dist/js/tr-R4UGgPOY.js +2 -0
- package/frontend/dist/js/{typescript-CnF4UVx7.js → typescript-6GJ8APmn.js} +1 -1
- package/frontend/dist/js/ui-CV0LYmkM.js +2 -0
- package/frontend/dist/js/ui-vendor-CWjIBW-z.js +177 -0
- package/frontend/dist/js/uk-BzUF4Vkt.js +2 -0
- package/frontend/dist/js/{useTranslation-Bho4HCyg.js → useTranslation-5b5UhAc9.js} +1 -1
- package/frontend/dist/js/{utils-D9W1Lnkn.js → utils-BGrdX9ie.js} +1 -1
- package/frontend/dist/js/{utils-vendor-DWh39_3x.js → utils-vendor-9bQ62WeD.js} +1 -1
- package/frontend/dist/js/vi-CKc6Fg4h.js +2 -0
- package/frontend/dist/js/{workApi-C3uy9EDT.js → workApi-BruWTlHM.js} +3 -3
- package/frontend/dist/js/{yaml-DzT5hBSH.js → yaml-DUeWcOOH.js} +2 -2
- package/frontend/dist/js/zh-CXL-kDe8.js +2 -0
- package/package.json +2 -2
- package/plugins/openai.json +52 -9
- package/frontend/dist/assets/index-6o-Hc2wS.js +0 -41
- package/frontend/dist/assets/index-D-pM957b.css +0 -1
- package/frontend/dist/js/ArtifactSlideOutPanel-CSFRluWA.js +0 -1
- package/frontend/dist/js/AutomationsPage-KUeWoZNv.js +0 -1
- package/frontend/dist/js/CalendarPage-D9I972w8.js +0 -1
- package/frontend/dist/js/ChatPage-CmBx4oAL.js +0 -16
- package/frontend/dist/js/GalleryPage-bLCrdJN_.js +0 -1
- package/frontend/dist/js/HomePage-Uc6PEg-U.js +0 -1
- package/frontend/dist/js/LibreClawPage-CG63DHg1.js +0 -1
- package/frontend/dist/js/ModelSelector-yxJC64rM.js +0 -1
- package/frontend/dist/js/ModelsPage-1R_TxgmJ.js +0 -2
- package/frontend/dist/js/NotesPage-L65j5HoW.js +0 -1
- package/frontend/dist/js/PersonasPage-CKeBpHIH.js +0 -13
- package/frontend/dist/js/PluginUsagePage-BX1SKMbW.js +0 -1
- package/frontend/dist/js/RichMessageContent-DiySVYGB.js +0 -3
- package/frontend/dist/js/SettingsModal-68SG1uZ2.js +0 -1
- package/frontend/dist/js/SystemPage-CytpZiQV.js +0 -1
- package/frontend/dist/js/UserManagementPage-BzJBvZiS.js +0 -1
- package/frontend/dist/js/WorkPage-C8gr0QJe.js +0 -6
- package/frontend/dist/js/api-BDtqBtqw.js +0 -14
- package/frontend/dist/js/ar-CSpi37Gr.js +0 -2
- package/frontend/dist/js/bn-CyH1BeDD.js +0 -2
- package/frontend/dist/js/chatStore-CHQ2uINS.js +0 -3
- package/frontend/dist/js/cs-Cv2NfRK5.js +0 -2
- package/frontend/dist/js/da-D6D6IvPK.js +0 -2
- package/frontend/dist/js/de-BNoJJTrT.js +0 -2
- package/frontend/dist/js/es-kzo9C7q_.js +0 -2
- package/frontend/dist/js/fr-CjHYvJRp.js +0 -2
- package/frontend/dist/js/hi-BU98AdCQ.js +0 -2
- package/frontend/dist/js/id-CpdedejX.js +0 -2
- package/frontend/dist/js/is-Cp5dDWBH.js +0 -2
- package/frontend/dist/js/it-CuH_cK4U.js +0 -2
- package/frontend/dist/js/ja-BWXXXiHn.js +0 -2
- package/frontend/dist/js/ko-DQgv2M1t.js +0 -2
- package/frontend/dist/js/markdown-core-BmPPZiuD.js +0 -31
- package/frontend/dist/js/ms-DCcRoIcX.js +0 -2
- package/frontend/dist/js/nl-CbKR1_EU.js +0 -2
- package/frontend/dist/js/pl-CRyJZccn.js +0 -2
- package/frontend/dist/js/pt-BXYmHFGH.js +0 -2
- package/frontend/dist/js/router-vendor-DGFGM3EP.js +0 -1
- package/frontend/dist/js/ru-M9SyZG4b.js +0 -2
- package/frontend/dist/js/sv-DJ486LTU.js +0 -2
- package/frontend/dist/js/th-Ch7gKtZv.js +0 -2
- package/frontend/dist/js/tr-ClehWhSC.js +0 -2
- package/frontend/dist/js/ui-CC-K19wO.js +0 -2
- package/frontend/dist/js/ui-vendor-B1UgO3vd.js +0 -177
- package/frontend/dist/js/uk-BqAd5zHF.js +0 -2
- package/frontend/dist/js/vi-D9gjlDVB.js +0 -2
- package/frontend/dist/js/zh-DKTyHkiR.js +0 -2
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e={common:{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:`มาก`},brand:{name:`Libre WebUI`,shortName:`Libre`},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:`your@email.com`,password:`รหัสผ่าน`,passwordPlaceholder:`เลือกรหัสผ่าน`,confirmPassword:`ยืนยันรหัสผ่าน`,confirmPasswordPlaceholder:`ยืนยันรหัสผ่านของคุณ`,createAccount:`สร้างบัญชี`,creatingAccount:`กำลังสร้างบัญชี...`,hasAccount:`มีบัญชีอยู่แล้ว?`,signInHere:`เข้าสู่ระบบที่นี่`,signupSuccess:`สร้างบัญชีสำเร็จ!`,approvalPending:`ได้รับการลงทะเบียนแล้ว ผู้ดูแลระบบต้องอนุมัติบัญชีของคุณ`,awaitingApproval:`กำลังรอการอนุมัติ`,awaitingApprovalDescription:`บัญชีของคุณถูกสร้างขึ้นแล้ว แต่ผู้ดูแลระบบต้องเปิดใช้งานก่อนจึงจะสามารถเข้าสู่ระบบได้`,backToSignIn:`กลับไปเข้าสู่ระบบ`,signupFailed:`สมัครสมาชิกล้มเหลว`,tryAgain:`สมัครสมาชิกล้มเหลว กรุณาลองอีกครั้ง`,usernameRequired:`ต้องระบุชื่อผู้ใช้และรหัสผ่าน`,passwordMismatch:`รหัสผ่านไม่ตรงกัน`,passwordTooShort:`รหัสผ่านต้องมีอย่างน้อย 6 ตัวอักษร`},logout:{button:`ออกจากระบบ`,success:`ออกจากระบบสำเร็จ`},oauth:{continueWith:`ดำเนินการต่อด้วย {{provider}}`,connectingTo:`กำลังเชื่อมต่อกับ {{provider}}...`,github:`GitHub`,huggingFace:`Hugging Face`},checkingAuth:`กำลังตรวจสอบการยืนยันตัวตน...`,welcome:`ยินดีต้อนรับ`,noEmail:`ไม่มีอีเมล`,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:`การลงชื่อเข้าใช้ครั้งเดียว`}},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:`ป้อนรหัสผ่าน (ขั้นต่ำ 6 ตัวอักษร)`,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`}},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":"เลือกโมเดลที่พร้อมใช้งานก่อนส่งข้อความ"},"footer":{"disclaimer":"LLM อาจทำผิดพลาด - ตรวจสอบข้อมูลสำคัญ","images":"{{count}} รูปภาพ","images_plural":"{{count}} รูปภาพ","structuredOutput":"เอาต์พุตที่มีโครงสร้าง"},"mediaUpload":{"dropImagesHere":"วางรูปภาพที่นี่หรือ","supportedFormats":"รองรับ: JPG, PNG, GIF, WebP (สูงสุด 10MB ต่อไฟล์)","browse":"เรียกดู"},"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":"ไม่สามารถอัปเดตโมเดลของเซสชันได้"},"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:`จินตนาการ`,agents:`เอเจนต์`,work:`งาน`,settings:`การตั้งค่า`,usageAnalytics:`การใช้งานผู้ให้บริการ`,system:`ระบบ`,userManagement:`จัดการผู้ใช้`,signOut:`ออกจากระบบ`,exploreLabel:`สำรวจ`,notes:`บันทึกย่อ`,calendar:`ปฏิทิน`,automations:`ระบบอัตโนมัติ`,prompts:`พรอมต์`,skills:`ทักษะ`,tools:`เครื่องมือ`,channels:`แชนเนล`},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 (สูงสุด 2MB) รูปสี่เหลี่ยมจัตุรัสใช้งานได้ดีที่สุด`,customAvatar:`รูปอวาตาร์ที่กำหนดเอง`,clickToChange:`คลิกเพื่อเปลี่ยนหรือลบ`,removed:`ลบอวาตาร์แล้ว`,uploaded:`อัปโหลดอวาตาร์สำเร็จ`,invalidFile:`กรุณาเลือกไฟล์รูปภาพที่ถูกต้อง`,fileTooLarge:`ขนาดรูปอวาตาร์ต้องน้อยกว่า 2MB`,readFailed:`ไม่สามารถอ่านไฟล์รูปภาพ`,uploadFailed:`ไม่สามารถอัปโหลดรูปอวาตาร์`},profile:{noEmail:`ไม่มีอีเมล`}},settings:JSON.parse(`{"title":"การตั้งค่า","tabs":{"appearance":"รูปลักษณ์","model":"โมเดล","systemMessage":"ข้อความระบบ","plugins":"ปลั๊กอิน","search":"ค้นหา","generation":"การสร้าง","documents":"เอกสาร","tts":"ข้อความเป็นเสียง","imageGen":"สร้างรูปภาพ","data":"ข้อมูล","shortcuts":"ทางลัด","about":"เกี่ยวกับ","sessions":"เซสชัน","apiKeys":"คีย์ API"},"appearance":{"title":"รูปลักษณ์","language":{"title":"ภาษา","description":"เลือกภาษาที่คุณต้องการ"},"theme":{"title":"ธีม","light":"สว่าง","dark":"มืด","amoled":"ดำสนิท","system":"ระบบ"},"accent":{"title":"สีเน้น","custom":"สีที่กำหนดเอง","useColor":"ใช้ {{color}} เป็นสีเน้น","behaviorTitle":"ชุดสีอินเทอร์เฟซ","behaviorDescription":"เลือกว่าจะใช้สีเน้นเฉพาะส่วนควบคุมหรือปรับทั้งอินเทอร์เฟซสว่างหรือมืด","defaultStyle":"ค่าเริ่มต้น","defaultStyleDescription":"คงพื้นผิวโทนกลางของธีมสว่างและมืด","adaptedStyle":"ปรับตามสีเน้น","adaptedStyleDescription":"แต่งพื้นผิว เส้นขอบ และข้อความด้วยสีเน้นของคุณ"},"chatInterface":{"title":"อินเทอร์เฟซแชท","showUsername":"แสดงชื่อผู้ใช้","showUsernameDescription":"แสดงชื่อผู้ใช้ในข้อความแชท","followUpSuggestions":"คำแนะนำติดตามต่อ","followUpSuggestionsDescription":"แนะนำการตอบกลับด่วนหลังการตอบแต่ละครั้ง","hapticFeedback":"การตอบสนองแบบสัมผัส (Android)","hapticFeedbackDescription":"ใช้การสั่นเบา ๆ สำหรับการทำงานสำคัญบนมือถือ"},"background":{"title":"รูปพื้นหลัง","enable":"เปิดใช้รูปพื้นหลัง","enableDescription":"แสดงพื้นหลังกำหนดเองพร้อมเอฟเฟกต์เบลอ","blur":"เบลอ","opacity":"ความโปร่งใส","upload":"อัปโหลดรูปพื้นหลัง","dragDrop":"ลากและวางรูปภาพหรือคลิกเพื่อเรียกดู","chooseImage":"เลือกรูปภาพ"}},"saveSettings":"บันทึกการตั้งค่า","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}} โมเดล"},"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 Key แล้ว","apiKeyConfiguration":"การกำหนดค่า API Key","apiKeyDescription":"จัดเก็บ API key ส่วนตัวสำหรับ {{name}}","apiKeyEnvAlternative":"หรือตั้งค่าตัวแปร","environmentVariable":"ตัวแปรสภาพแวดล้อม","apiKeyConfigured":"กำหนดค่า API Key แล้ว","apiKeyPlaceholder":"ป้อน API Key ของคุณ...","saveApiKey":"บันทึก API Key","showApiKey":"แสดง API key","hideApiKey":"ซ่อน API key","configure":"กำหนดค่า","providerSettings":"การตั้งค่าผู้ให้บริการ","status":"สถานะ","defaultEndpoint":"เอนด์พอยต์เริ่มต้น","modelCatalog":"แคตตาล็อกโมเดล","modelCatalogDescription":"โมเดลที่ค้นพบและกำหนดค่าไว้สำหรับผู้ให้บริการนี้และความสามารถของโมเดล","refreshModels":"รีเฟรชโมเดล","noModelsConfigured":"ไม่มีโมเดลที่กำหนดค่าไว้สำหรับผู้ให้บริการนี้","modelId":"รหัสโมเดล","capabilities":"ความสามารถ","modelCatalogUpdated":"อัปเดตแคตตาล็อกโมเดลแล้ว: {{count}} โมเดล","modelCatalogUnchanged":"แคตตาล็อกโมเดลเป็นปัจจุบันอยู่แล้ว","modelCatalogNeedsApiKey":"เพิ่ม API key ที่ถูกต้องสำหรับผู้ให้บริการนี้เพื่อโหลดรายการโมเดลสดของผู้ให้บริการ","modelCatalogUnavailable":"ไม่สามารถโหลดรายการโมเดลของผู้ให้บริการได้","modelCatalogRefreshFailed":"ไม่สามารถรีเฟรชแคตตาล็อกโมเดลได้","capability":{"chat":"แชท","embedding":"การฝังข้อมูล","image":"รูปภาพ","speech":"เสียงพูด","transcription":"การถอดเสียง"},"exportPlugin":"ส่งออกปลั๊กอิน","deletePlugin":"ลบปลั๊กอิน","apiKey":{"title":"API Key","placeholder":"ป้อน API Key","save":"บันทึก Key","remove":"ลบ Key","configured":"กำหนดค่า API Key แล้ว","notConfigured":"ต้องการ API Key","saved":"บันทึก API Key สำเร็จ","removed":"ลบ API Key แล้ว","saveFailed":"ไม่สามารถบันทึก API Key","removeFailed":"ไม่สามารถลบ API Key","enterKey":"กรุณาป้อน API Key"},"variables":"Variables"},"generation":{"title":"ตัวเลือกการสร้าง","description":"กำหนดค่าวิธีที่ AI สร้างการตอบกลับ","scopeLabel":"มีผลกับ","scopeAll":"ทุกโมเดล","scopeModel":"เฉพาะ {{model}}","scopeAllHint":"ค่าที่ทุกโมเดลใช้ เว้นแต่โมเดลนั้นมีค่าของตัวเอง","scopeModelHint":"บันทึกเฉพาะโมเดลนี้ และมีความสำคัญเหนือค่าทั่วไป","advancedSettings":"การตั้งค่าการสร้างขั้นสูง","advancedSettingsDescription":"การสุ่มตัวอย่าง, ขีดจำกัดโทเค็น, บริบท, การลดค่า และลำดับการหยุด","coreParameters":"พารามิเตอร์หลัก","temperature":"อุณหภูมิ","temperatureDescription":"ควบคุมความสุ่ม ค่าต่ำกว่าจะเน้นมากขึ้น ค่าสูงกว่าจะสร้างสรรค์มากขึ้น","topP":"Top P","topPDescription":"ควบคุมความหลากหลายผ่านการสุ่มตัวอย่างนิวเคลียส ค่าต่ำกว่าจะเน้นที่โทเค็นที่มีโอกาสสูง","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":"บันทึกตัวเลือก","embeddingSettings":"การตั้งค่า Embedding","enableEmbeddings":"เปิดใช้ Document Embeddings","thinking":"การคิด","thinkingDescription":"ระดับการคิดเริ่มต้นสำหรับคำตอบ แต่ละแชทเปลี่ยนได้","thinkingLevels":{"default":"ค่าเริ่มต้นของโมเดล","defaultWith":"ค่าเริ่มต้นของโมเดล ({{level}})","off":"ปิด","on":"เปิด","low":"ต่ำ","medium":"ปานกลาง","high":"สูง"}},"documents":{"title":"การตั้งค่าเอกสาร","embeddings":{"title":"Embeddings","enable":"เปิดใช้ document embeddings","model":"โมเดล Embedding","modelDescription":"เลือกโมเดลที่ใช้สำหรับ document embedding","chunkSize":"ขนาด Chunk","chunkSizeInTokens":"(เป็นโทเค็น)","chunkSizeDescription":"ขนาดของ text chunks สำหรับ embedding","chunkOverlap":"Chunk Overlap","chunkOverlapInTokens":"(เป็นโทเค็น)","chunkOverlapDescription":"การทับซ้อนระหว่าง chunks ที่ต่อเนื่องกัน","similarityThreshold":"เกณฑ์ความคล้ายคลึง","similarityDescription":"คะแนนความคล้ายคลึงขั้นต่ำเพื่อรวมผลลัพธ์","status":"สถานะ Embedding","statusLabel":"สถานะ","available":"พร้อมใช้งาน","unavailable":"ไม่พร้อมใช้งาน","chunksWithEmbeddings":"Chunks ที่มี embeddings","coverage":"ความครอบคลุม","regenerate":"สร้าง Embeddings ใหม่","regenerating":"กำลังสร้างใหม่..."},"collections":{"title":"คอลเลกชันความรู้","description":"จัดกลุ่มเอกสารเป็นคอลเลกชันและแนบกับแชทใดก็ได้","namePlaceholder":"ชื่อคอลเลกชัน","create":"สร้าง","none":"ไม่มีคอลเลกชัน","deleteConfirm":"ลบคอลเลกชันนี้? เอกสารข้างในจะยังอยู่","createFailed":"สร้างคอลเลกชันไม่สำเร็จ","deleteFailed":"ลบคอลเลกชันไม่สำเร็จ","assignFailed":"ย้ายเอกสารไม่สำเร็จ","share":"แชร์คอลเลกชัน","shared":"แชร์แล้ว"},"library":{"title":"เอกสารที่อัปโหลด","description":"เอกสารที่ใช้เป็นบริบทของแชท เอกสารที่อัปโหลดในแชทจะอยู่เฉพาะการสนทนานั้น ส่วนเอกสารที่ไม่มีแชทและคอลเลกชันจะร่วมอยู่ในทุกการสนทนา","empty":"ยังไม่มีเอกสารที่อัปโหลด","chatScope":"แชทเดียว","everyChatScope":"ทุกแชท","deleteConfirm":"ลบ \\"{{name}}\\" หรือไม่? เอกสารจะหายไปจากทุกแชท","deleteFailed":"ลบเอกสารไม่สำเร็จ"}},"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":"ถอนความยินยอมไม่สำเร็จ"},"imageGen":{"title":"สร้างรูปภาพ","description":"กำหนดค่าการตั้งค่าและผู้ให้บริการสร้างรูปภาพ","loadingProviders":"กำลังโหลดผู้ให้บริการสร้างรูปภาพ...","noProviders":"ไม่มีผู้ให้บริการสร้างรูปภาพ","noProvidersDescription":"กำหนดค่าปลั๊กอินที่รองรับการสร้างรูปภาพ","enable":"เปิดใช้การสร้างรูปภาพ","enableDescription":"อนุญาตการสร้างรูปภาพ AI ในการสนทนา","configuration":"การกำหนดค่า","model":"โมเดล","modelDescription":"เลือกโมเดลสำหรับการสร้างรูปภาพ","size":"ขนาด","sizeDescription":"ความละเอียดของรูปภาพที่สร้าง","quality":"คุณภาพ","qualityDescription":"ระดับคุณภาพของรูปภาพที่สร้าง","style":"สไตล์","styleDescription":"พรีเซ็ตสไตล์สำหรับรูปภาพที่สร้าง","availableProviders":"ผู้ให้บริการที่มี","models":"โมเดล"},"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":"จะกำหนด ID ใหม่ {{count}} รายการเพื่อปกป้องข้อมูลของบัญชีอื่น","skipDuplicates":"ข้ามรายการซ้ำ","overwrite":"เขียนทับที่มีอยู่","importResults":"ผลลัพธ์การนำเข้า","preferences":"การตั้งค่า","imported":"นำเข้าแล้ว","failed":"ล้มเหลว","sessions":"เซสชัน","sessionFolders":"โฟลเดอร์เซสชัน","notes":"โน้ต","knowledgeCollections":"คอลเลกชันความรู้","importedLabel":"นำเข้าแล้ว","overwrittenLabel":"เขียนทับแล้ว","skipped":"ข้ามแล้ว","toCreate":"ที่จะสร้าง","toOverwrite":"ที่จะเขียนทับ","toSkip":"ที่จะข้าม","documents":"เอกสาร","warnings":"คำเตือน","refreshAfterImportFailed":"นำเข้าข้อมูลแล้ว แต่ไม่สามารถรีเฟรชมุมมองบางส่วนได้ โปรดโหลด 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":"การเชื่อมต่อ"},"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 pipeline","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":"ไม่มีวันหมดอายุ"}}`),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:`Prompt ระบบ`,model:`โมเดล`,avatar:`อวาตาร์`,background:`พื้นหลัง`,noPersonas:`ยังไม่มีเพอร์โซน่า`,createFirst:`สร้างเพอร์โซน่าแรกของคุณเพื่อปรับแต่งประสบการณ์การแชท`},gallery:{title:`แกลเลอรี`,subtitle:`แกลเลอรีรูปภาพที่สร้างโดย AI ของคุณ`,imageCount:`{{count}} รูปภาพ`,generate:`สร้างรูปภาพ`,generateDescription:`สร้างรูปภาพด้วย AI`,generating:`กำลังสร้าง...`,prompt:`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:`เปิดคอมมานด์พาเลตต์`},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 KB`,saving:`กำลังบันทึก…`,hide:`ซ่อนจากผู้ใช้`,show:`แสดงต่อผู้ใช้`},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 digest`,writing:`กำลังเขียน manifest...`,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:`ทดสอบ Embeddings`,generateVectors:`สร้างเวกเตอร์`,healthCheck:`ตรวจสอบสุขภาพ`,testConnection:`ทดสอบการเชื่อมต่อ`,healthy:`Ollama สมบูรณ์!`},modals:{details:{title:`รายละเอียดโมเดล`,info:`ข้อมูลโมเดล`,family:`ตระกูล`,parameters:`พารามิเตอร์`,quantization:`การควอนไทเซชัน`,format:`รูปแบบ`,systemPrompt:`Prompt ระบบ`,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:`ทดสอบ Embeddings`,model:`โมเดล Embedding`,selectModel:`เลือกโมเดล...`,recommended:`แนะนำ: nomic-embed-text, mxbai-embed-large`,input:`ข้อความนำเข้า`,placeholder:`ป้อนข้อความเพื่อสร้าง embeddings...`,generating:`กำลังสร้าง...`,button:`สร้าง Embeddings`,result:`ผลลัพธ์ ({{count}} มิติ)`,success:`สร้างเวกเตอร์ embedding {{count}} มิติ`,failed:`ไม่สามารถสร้าง embeddings`,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:`Prompt ระบบ`,systemPromptPlaceholder:`ป้อน prompt ระบบที่กำหนดพฤติกรรมเพอร์โซน่าของคุณ...`,systemPromptHint:`Prompt ระบบกำหนดว่าเพอร์โซน่าของคุณจะทำงานและตอบสนองอย่างไร`},parameters:{temperature:`อุณหภูมิ`,temperatureHint:`ควบคุมความสร้างสรรค์เทียบกับความสม่ำเสมอ`,topP:`Top-P`,topPHint:`ควบคุมความหลากหลายของการตอบกลับ`,topK:`Top-K`,topKHint:`จำกัดคำศัพท์เป็น top-k โทเค็น`,contextWindow:`หน้าต่างบริบท`,contextWindowHint:`ความยาวประวัติการสนทนาสูงสุด`,maxTokens:`โทเค็นสูงสุด`,maxTokensHint:`ความยาวการตอบกลับสูงสุด`,repeatPenalty:`โทษการซ้ำ`,repeatPenaltyHint:`ลดการตอบกลับที่ซ้ำซาก`},memory:{title:`ระบบความจำ`,subtitle:`เพอร์โซน่าจดจำการสนทนาตลอดเวลา`,enableHint:`เปิดใช้ระบบความจำเพื่อให้เพอร์โซน่าของคุณจดจำการสนทนาและสร้างบริบทตลอดเวลา`,loading:`กำลังโหลดสถานะความจำ...`,noData:`ยังไม่มีข้อมูลความจำ`,memories:`ความจำ`,mbUsed:`MB ที่ใช้`,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:`โมเดล Embedding`,embeddingHint:`เลือกโมเดลที่ใช้สำหรับการเข้ารหัสความจำและการค้นหาเชิงความหมาย โมเดล embedding แสดงก่อน ตามด้วยโมเดลอื่นที่มี`,noModels:`ไม่พบโมเดล`,embeddingModels:`โมเดล Embedding`,otherModels:`โมเดลอื่น`,installHint:`ติดตั้งโมเดล embedding:`,recommended:`แนะนำ: nomic-embed-text, mxbai-embed-large, bge-m3, snowflake-arctic-embed`,aboutTitle:`เกี่ยวกับการตั้งค่าขั้นสูง`,aboutDescription:`โมเดล embedding ถูกใช้โดยระบบความจำเพื่อเข้าใจความหมายเชิงความหมายและค้นหาความจำที่เกี่ยวข้องระหว่างการสนทนา เลือกโมเดลที่ตรงกับกรณีการใช้งานและทรัพยากรที่มี`},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:`Prompt ระบบ`,memories:`ความจำ`,use:`ใช้`,editTooltip:`แก้ไขเพอร์โซน่า`,downloadTooltip:`ดาวน์โหลดเพอร์โซน่า`,backup:`สำรองข้อมูล`,exportDNA:`ส่งออก DNA`,wipeMemories:`ล้างความจำ`,wipeConfirm:`คุณแน่ใจหรือไม่ว่าต้องการล้างความจำทั้งหมดของเพอร์โซน่านี้? การดำเนินการนี้ไม่สามารถยกเลิกได้`,wipeSuccess:`ล้าง {{count}} ความจำแล้ว`,backupSuccess:`ดาวน์โหลดสำรองข้อมูลเพอร์โซน่าสำเร็จ`,dnaSuccess:`ส่งออก DNA เพอร์โซน่าสำเร็จ`,failed:`ไม่สามารถ {{action}}`,shareTooltip:`แชร์เพอร์โซนานี้`},userManager:JSON.parse(`{"title":"จัดการผู้ใช้","subtitle":"จัดการบัญชีและสิทธิ์ผู้ใช้","pageDescription":"จัดการบัญชีผู้ใช้ สิทธิ์ และการควบคุมการเข้าถึงสำหรับอินสแตนซ์ Libre WebUI ของคุณ","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 และหยุดเมื่อไม่ใช้งานต้องเป็นตัวเลข"},"modelAccess":{"title":"การดาวน์โหลดโมเดล","description":"อนุญาตให้ผู้ใช้ที่ใช้งานอยู่ทุกคนดึงโมเดลจาก Ollama และเบราว์เซอร์ Hugging Face ผู้ดูแลระบบดาวน์โหลดโมเดลได้เสมอ","saved":"อัปเดตสิทธิ์ดาวน์โหลดโมเดลแล้ว","saveFailed":"ไม่สามารถอัปเดตสิทธิ์ดาวน์โหลดโมเดลได้"},"webSearchAccess":{"title":"การค้นหาเว็บ","description":"อนุญาตให้ผู้ใช้ที่ใช้งานอยู่ทุกคนใช้การค้นหาเว็บในแชทและงาน Work ผู้ดูแลระบบใช้ได้เสมอ กำหนดค่าเครื่องมือค้นหาได้ที่การตั้งค่า > ค้นหา","saved":"อัปเดตสิทธิ์การค้นหาเว็บแล้ว","saveFailed":"ไม่สามารถอัปเดตสิทธิ์การค้นหาเว็บได้"},"agentAccess":{"title":"เอเจนต์","description":"เปิดส่วนเอเจนต์ (Libre Claw) ให้ผู้ดูแลระบบ เอเจนต์ CLI ทำงานบนโฮสต์ในฐานะผู้ใช้เซิร์ฟเวอร์ นอกแซนด์บ็อกซ์ของ Work","saved":"อัปเดตการเข้าถึงเอเจนต์แล้ว","saveFailed":"ไม่สามารถอัปเดตการเข้าถึงเอเจนต์ได้","lockedByEnv":"ถูกกำหนดโดยตัวแปรสภาพแวดล้อม AGENT_CLI_MODELS_ENABLED"},"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":"การโคลนเสียง"}}}`),usageAnalytics:{eyebrow:`การดูแลระบบ`,title:`การใช้งานผู้ให้บริการ`,description:`ติดตามการเรียก API ขาออกและการใช้งานโมเดลในปลั๊กอินที่เปิดใช้งานบนอินสแตนซ์นี้`,days:`{{count}} วัน`,refresh:`รีเฟรชการใช้งาน`,loadFailed:`ไม่สามารถโหลดการใช้งานผู้ให้บริการได้`,metrics:{calls:`การเรียก`,tokens:`โทเค็น`},cards:{calls:`การเรียก API`,callsDetail:`จาก {{count}} ผู้ใช้งานที่ใช้งานอยู่`,tokens:`โทเค็นที่รายงาน`,tokensDetail:`การใช้งานที่รายงานจาก {{count}} การเรียก`,success:`อัตราความสำเร็จ`,successDetail:`{{count}} การเรียกที่ล้มเหลว`,latency:`ความหน่วงเฉลี่ย`,latencyDetail:`เวลาของผู้ให้บริการจากต้นทางถึงปลายทาง`},activity:{title:`การใช้งานตามช่วงเวลา`,callsDescription:`คำขอขาออกรายวันไปยังปลั๊กอินที่เปิดใช้งาน`,tokensDescription:`จำนวนโทเคนรวมรายวันที่รายงานโดยผู้ให้บริการ`,chartLabel:`แผนภูมิ {{metric}} ของผู้ให้บริการรายวัน`},models:{title:`การใช้งานโมเดล`,description:`โมเดลที่มีการใช้งานมากที่สุดในช่วงเวลานี้`,model:`โมเดล`,success:`สำเร็จ`,latency:`ความหน่วง`},providers:{title:`การรับส่งข้อมูลของปลั๊กอินที่เปิดใช้งาน`},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}} ครั้งในปีที่ผ่านมา`}},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:`logical CPUs`,loadAverage:`ค่าเฉลี่ยโหลด · 1 / 5 / 15 นาที`,libreVersion:`Libre WebUI`,nodeVersion:`Node.js`,process:`โปรเซส`,workingDirectory:`ไดเรกทอรีการทำงาน`},memory:{title:`หน่วยความจำ`,description:`หน่วยความจำของระบบที่รันไทม์มองเห็นได้และการใช้งานโปรเซสของแอปพลิเคชัน`,usedOf:`ใช้ไป {{used}} จาก {{total}}`,free:`{{value}} ว่าง`,processRss:`Process RSS`,heapUsed:`V8 heap ที่ใช้`,heapTotal:`V8 heap รวม`,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:`CPUs`,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:`เทอร์มินัล`,updated:`อัปเดตเมื่อ`,stateRunning:`กำลังทำงาน`,stateStopped:`หยุดแล้ว`,stateStarting:`กำลังเริ่ม`,stateUnknown:`ไม่ทราบ`,noTasks:`ยังไม่มีงาน Work`}},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:`Prompt`,promptPlaceholder:`อธิบายรูปภาพที่คุณต้องการสร้าง...`,model:`โมเดล`,selectModel:`เลือกโมเดล`,noModels:`ไม่มีโมเดลสร้างรูปภาพที่ใช้ได้`,configurePlugin:`กำหนดค่าปลั๊กอินที่รองรับการสร้างรูปภาพ`,size:`ขนาด`,quality:`คุณภาพ`,style:`สไตล์`,generate:`สร้าง`,generating:`กำลังสร้าง...`,success:`สร้างรูปภาพสำเร็จ`,failed:`ไม่สามารถสร้างรูปภาพ`,enterPrompt:`กรุณาป้อน prompt`,promptTooLong:`พรอมต์เกินความยาวสูงสุด {{max}} ตัวอักษร`},mediaGeneration:{title:`สร้างสื่อ`,description:`สร้างวิดีโอ เสียง เพลง หรือคำพูดด้วยผู้ให้บริการสื่อที่เปิดใช้งาน`,image:`รูปภาพ`,video:`วิดีโอ`,audio:`เสียง`,sound:`เสียง`,speech:`คำพูด`,model:`โมเดล`,voice:`เสียงหรือรหัสเสียง`,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:`ขนาดไฟล์ต้องน้อยกว่า 10MB`,uploadSuccessWithName:`อัปโหลดเอกสาร "{{name}}" สำเร็จ`,removeSuccess:`ลบเอกสารสำเร็จ`,removeFailed:`ไม่สามารถลบเอกสาร`,removeError:`เกิดข้อผิดพลาดขณะลบเอกสาร`,clickToUpload:`คลิกเพื่ออัปโหลด`,orDragAndDrop:`หรือลากและวาง`,fileTypesAndSize:`ไฟล์ PDF, Office, Markdown, HTML, โค้ด และ CSV ขนาดไม่เกิน 10MB`,uploadedDocuments:`เอกสารที่อัปโหลด`,removeDocument:`ลบเอกสาร`,fullContextToggle:`ส่งเอกสารฉบับเต็ม`,fullContextEstimate:`≈ {{tokens}} โทเคน`,fullContextTooLarge:`เอกสารแนบเกินขีดจำกัดบริบทเต็ม จึงใช้การค้นคืนแทน`,fullDocument:`เอกสารฉบับเต็ม`},ttsButton:{speak:`พูด`,stop:`หยุด`,speaking:`กำลังพูด...`,generateFailed:`ไม่สามารถสร้างเสียง`,playbackFailed:`การเล่นเสียงล้มเหลว`,stopSpeaking:`หยุดพูด`,preparingSpeech:`กำลังเตรียมเสียง...`,generatingSpeech:`กำลังสร้างเสียง...`,bufferingSpeech:`กำลังบัฟเฟอร์เสียง...`,enableAudio:`เปิดเสียงและอ่านออกเสียง`,enableAudioShort:`เปิดเสียง`,readAloud:`อ่านออกเสียง`},artifacts:{title:`Artifacts`,code:`โค้ด`,preview:`ดูตัวอย่าง`,copy:`คัดลอกโค้ด`,copied:`คัดลอกแล้ว!`,download:`ดาวน์โหลด`,expand:`ขยาย`,collapse:`ยุบ`,openInNewTab:`เปิดในแท็บใหม่`,invalidSvg:`เนื้อหา SVG ไม่ถูกต้อง`,invalidJson:`เนื้อหา JSON ไม่ถูกต้อง`,previewMode:`โหมดดูตัวอย่าง`,codeMode:`โหมดโค้ด`,copyContent:`คัดลอกเนื้อหา`,openInPanel:`เปิดในแผง`,openInNewWindow:`เปิดในหน้าต่างใหม่`,created:`สร้างเมื่อ`,closePanelEsc:`ปิดแผง (Esc)`,copyButton:`คัดลอก`,open:`เปิด`,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:`ไม่มีอีเมล`,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:`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 endpoint แบบเต็ม`,endpointHelp:`ป้อน URL คำขอแบบเต็ม รวมถึงเส้นทางการทำงาน (เช่น /v1/chat/completions) ไม่ใช่เพียง URL พื้นฐานของผู้ให้บริการ`,invalidUrl:`ป้อน URL API endpoint แบบเต็มที่ถูกต้อง เช่น https://provider.example/v1/chat/completions`,insecureUrl:`API endpoint ต้องใช้ HTTP หรือ HTTPS`,httpWarning:`HTTP ไม่เข้ารหัสข้อมูลประจำตัวหรือการรับส่งข้อมูล ใช้เฉพาะในเครือข่ายที่เชื่อถือได้เท่านั้น`,invalidBaseUrl:`URL พื้นฐานต้องไม่มี query string หรือ fragment`,invalidApiPath:`ต้องขึ้นต้นด้วย / และไม่มี URL, query, fragment หรือส่วน ..`,tooLong:`ค่ายาวเกินไป`}},huggingface:{title:`เบราว์เซอร์โมเดล HuggingFace`,subtitle:`เรียกดูและเลือกโมเดลจาก Hub`,searchPlaceholder:`ค้นหาโมเดล...`,filters:`ตัวกรอง`,task:`งาน`,sortBy:`เรียงตาม`,noModels:`ไม่พบโมเดล`,adjustSearch:`ลองปรับคำค้นหาหรือตัวกรอง`,gated:`จำกัดการเข้าถึง`,selected:`เลือกแล้ว`,select:`เลือก`,refresh:`รีเฟรช`,modelsFound:`โมเดลที่พบ`},demoMode:{title:`โหมดสาธิต`,github:`GitHub`},libreClaw:{title:`เอเจนต์`,subtitle:`การเรียกใช้ตัวแทนในพื้นที่ การอนุมัติ กำหนดการ หน่วยความจำ เครื่องมือ และการใช้งาน`,dashboard:`แดชบอร์ด`,connection:{disconnectedTitle:`daemon ของ Libre Claw ไม่ได้เชื่อมต่อ`,disconnectedDescription:`เริ่มต้นในเครื่องด้วย <command>libre-claw start</command> หรือตั้งค่า <env>LIBRE_CLAW_BASE_URL</env> ในสภาพแวดล้อมแบ็กเอนด์`},status:{connected:`เชื่อมต่อแล้ว`,disconnected:`ตัดการเชื่อมต่อแล้ว`,activeRuns:`{{count}} ใช้งานอยู่`,activeRuns_plural:`{{count}} ใช้งานอยู่`},states:{queued:`เข้าคิว`,running:`กำลังทำงาน`,blocked:`ถูกบล็อก`,done:`เสร็จแล้ว`,failed:`ล้มเหลว`,cancelled:`ยกเลิกแล้ว`},startRun:{title:`เริ่มการทำงานของเอเจนต์`,placeholder:`ขอให้ Libre Claw ตรวจสอบ repo แก้ไขข้อบกพร่อง เรียกใช้การตรวจสอบ กำหนดเวลารายงาน...`,chatRun:`แชทวิ่ง`,goalMode:`โหมดเป้าหมาย`,providerOverride:`การแทนที่ผู้ให้บริการ`,modelOverride:`การแทนที่โมเดล`,run:`เรียกใช้`},modelRoute:{title:`เส้นทางจำลอง`,providerPlaceholder:`ผู้ให้บริการ`,modelPlaceholder:`โมเดล`,persistGlobal:`คงอยู่ใน Libre Claw การกำหนดค่าส่วนกลาง`,saveModel:`บันทึกโมเดล`,theme:`ธีม Libre Claw`,saveTheme:`บันทึกธีม`},runs:{title:`การทำงาน`,empty:`ยังไม่มีการทำงานของ Libre Claw`},timeline:{title:`ไทม์ไลน์การทำงาน`,empty:`เลือกการวิ่งเพื่อตรวจสอบเหตุการณ์`,streaming:`กำลังสตรีม...`,assistantResponse:`การตอบสนองของผู้ช่วย`,resultOk:`ตกลง`,resultError:`ข้อผิดพลาด`,labels:{userMessage:`ข้อความของผู้ใช้`,toolCall:`การเรียกเครื่องมือ`,toolResult:`ผลลัพธ์ของเครื่องมือ`,approvalRequest:`ขออนุมัติ`,approvalResponse:`การตอบรับการอนุมัติ`,runStarted:`เริ่มการทำงานแล้ว`,runFinished:`การทำงานเสร็จสิ้น`,usage:`การใช้งาน`,error:`เกิดข้อผิดพลาด`}},approvals:{needed:`จำเป็นต้องได้รับการอนุมัติ`,allowOnce:`อนุญาตครั้งหนึ่ง`,alwaysAllowTool:`อนุญาตเครื่องมือเสมอ`,deny:`ปฏิเสธ`,toolApprovalRequested:`ร้องขอการอนุมัติเครื่องมือ`},automations:{title:`ระบบอัตโนมัติ`,namePlaceholder:`ชื่อ`,schedulePlaceholder:`daily 09:00`,promptPlaceholder:`พรอมต์อัตโนมัติ`,create:`สร้าง`,empty:`ไม่มีการกำหนด Libre Claw การทำงานอัตโนมัติ`,runNow:`เรียกใช้ตอนนี้`,pause:`หยุดชั่วคราว`,resume:`ดำเนินการต่อ`,routes:{report:`รายงาน`,telegram:`Telegram`},status:{active:`ใช้งานอยู่`,paused:`หยุดชั่วคราว`}},usageFallback:{title:`การใช้งานและทางเลือก`,usage:`การใช้งาน`,fallbackRoute:`เส้นทางสำรอง`,noUsage:`ยังไม่มีบันทึกการใช้งาน`},metrics:{provider:`ผู้ให้บริการ`,model:`รุ่น`,input:`อินพุต`,output:`เอาท์พุต`,cached:`แคช`,reasoning:`การใช้เหตุผล`,cost:`ราคา`,tool:`เครื่องมือ`,resolution:`ความละเอียด`,state:`สถานะ`,stopReason:`เหตุผลที่หยุด`,tokens:`โทเค็น {{formatted}}`,tokens_plural:`โทเค็น {{formatted}}`},fallbacks:{tool:`เครื่องมือ`,unknown:`ไม่ทราบ`,resolved:`แก้ไขแล้ว`,unknownError:`ข้อผิดพลาดที่ไม่รู้จัก`},toasts:{loadStatusFailed:`ไม่สามารถโหลดสถานะ Libre Claw`,enterTask:`ป้อนงานสำหรับ Libre Claw`,runStarted:`เริ่มการทำงานของ Libre Claw แล้ว`,startRunFailed:`ไม่สามารถเริ่มการทำงานของ Libre Claw ได้`,runCancelled:`ยกเลิกการทำงานแล้ว`,cancelRunFailed:`ไม่สามารถยกเลิกการทำงานได้`,approved:`อนุมัติแล้ว`,denied:`ถูกปฏิเสธ`,resolvePermissionFailed:`ไม่สามารถแก้ไขการอนุญาตได้`,providerModelRequired:`ต้องระบุผู้ให้บริการและรุ่น`,modelUpdated:`อัปเดตโมเดล Libre Claw แล้ว`,updateModelFailed:`ไม่สามารถอัปเดตโมเดลได้`,themeUpdated:`อัปเดตธีม Libre Claw แล้ว`,updateThemeFailed:`ไม่สามารถอัปเดตธีมได้`,automationRequired:`ต้องมีชื่อการทำงานอัตโนมัติ กำหนดการ และพร้อมท์`,automationCreated:`สร้างระบบอัตโนมัติแล้ว`,createAutomationFailed:`ไม่สามารถสร้างระบบอัตโนมัติได้`,automationUpdated:`อัปเดตระบบอัตโนมัติแล้ว`,updateAutomationFailed:`ไม่สามารถอัปเดตการทำงานอัตโนมัติได้`}},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":"ยังไม่ได้เลือกโมเดลที่รองรับโหมดงาน"},"conversation":{"ready":"พื้นที่ทำงานพร้อมแล้ว","empty":"ทำงานต่อด้านล่าง บทสนทนาและไฟล์จะยังคงเชื่อมกับพื้นที่ทำงานนี้","loadOlder":"โหลดข้อความเก่า"},"status":{"preparing":"กำลังเตรียมพื้นที่ทำงานแบบแยกอิสระ…","running":"กำลังทำงานในพื้นที่ทำงานภายในเครื่อง…"},"statusLabels":{"idle":"ว่าง","thinking":"กำลังคิด","complete":"เสร็จสมบูรณ์","needsInput":"ต้องการข้อมูล","error":"ข้อผิดพลาด"},"live":{"connecting":"กำลังเชื่อมต่อกับการอัปเดตแบบสด…","reconnecting":"กำลังเชื่อมต่อกับการอัปเดตแบบสดอีกครั้ง…","unavailable":"การอัปเดตแบบสดไม่พร้อมใช้งาน","newActivity":"กิจกรรมใหม่","skillsLoaded":"ทักษะพื้นที่ทำงาน · {{count}}"},"runtime":{"unavailable":"รันไทม์ไม่พร้อมใช้งาน","ready":"รันไทม์พร้อมใช้งาน","readyOllama":"Docker พร้อมแล้ว","readyPlugin":"Docker + ปลั๊กอินพร้อมแล้ว","readyHybrid":"Docker + โมเดลพร้อมแล้ว","reason":"จำเป็นต้องมี Docker และผู้ให้บริการโมเดล Ollama หรือปลั๊กอินที่พร้อมใช้งาน"},"workspace":{"label":"มุมมองพื้นที่ทำงาน","files":"ไฟล์","activity":"กิจกรรม","preview":"ตัวอย่าง","resize":"ปรับขนาดบทสนทนาและพื้นที่ทำงาน","resizeHint":"ลากเพื่อปรับขนาด ใช้ปุ่มลูกศรเพื่อควบคุมอย่างแม่นยำ ดับเบิลคลิกหรือกด Enter เพื่อรีเซ็ต","splitSize":"บทสนทนา {{conversation}}%, พื้นที่ทำงาน {{workspace}}%","terminal":"เทอร์มินัล","git":"Git"},"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":"เริ่มแอปภายในพื้นที่ทำงานนี้เพื่อตรวจสอบที่นี่"},"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":"ค่าเริ่มต้น (ขีดจำกัดส่วนกลาง)"},"git":{"actionFailed":"การทำงานของ Git ล้มเหลว","blockedByPreview":"หยุดพรีวิวก่อนเปลี่ยนสถานะ Git","blockedByRun":"การเขียน Git จะปลดล็อกเมื่อรอบของโมเดลจบ","branchCreated":"สร้าง {{name}} แล้ว","branchSwitched":"สลับไปที่ {{name}} แล้ว","clean":"ทรีการทำงานสะอาด","commit":"คอมมิตการเปลี่ยนแปลงที่สเตจ","commitMessage":"ข้อความคอมมิต","committed":"สร้างคอมมิตแล้ว","detached":"HEAD แยก","diff":"พรีวิวดิฟฟ์","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":"งานสามารถอ่านและเขียนโฟลเดอร์นี้โดยตรง เว้นว่างเพื่อใช้พื้นที่ทำงานแยก"}}`),personaBackground:{label:`รูปภาพพื้นหลัง`,uploadBackgroundImage:`อัปโหลดรูปภาพพื้นหลัง`,dragAndDrop:`ลากและวางรูปภาพหรือคลิกเพื่อเรียกดู`,chooseImage:`เลือกรูปภาพ`,uploading:`กำลังอัปโหลด...`,enterImageUrl:`หรือใส่ URL รูปภาพ`,supportedFormats:`รองรับ: JPG, PNG, GIF, WebP (สูงสุด 5MB) รูปภาพแนวนอนกว้างทำงานได้ดีที่สุด`,customBackground:`รูปภาพพื้นหลังที่กำหนดเอง`,clickToChange:`คลิกเพื่อเปลี่ยนหรือลบ`,removed:`ลบพื้นหลังแล้ว`,uploaded:`อัปโหลดพื้นหลังสำเร็จ`,invalidFile:`กรุณาเลือกไฟล์รูปภาพที่ถูกต้อง`,fileTooLarge:`ขนาดรูปภาพพื้นหลังต้องน้อยกว่า 5MB`,readFailed:`ไม่สามารถอ่านไฟล์รูปภาพ`,uploadFailed:`ไม่สามารถอัปโหลดรูปภาพพื้นหลัง`},modelSelector:{searchInstalled:`ค้นหาโมเดลที่ติดตั้ง...`,searchOllama:`ค้นหาในไลบรารี Ollama...`,searchHuggingFace:`ค้นหาใน HuggingFace...`,selectModel:`เลือกโมเดล`,personas:`บุคลิก`,ollamaModels:`โมเดล Ollama`,pluginModels:`โมเดลปลั๊กอิน`,actions:`การดำเนินการ`,installed:`ติดตั้งแล้ว`,use:`ใช้`,pull:`ดาวน์โหลด`,pullRestricted:`การติดตั้งโมเดลบนอินสแตนซ์นี้จำกัดเฉพาะผู้ดูแลระบบเท่านั้น`,adminOnlyPull:`ผู้ดูแลระบบเท่านั้น`,legacyProvider:`ไม่ได้บันทึกผู้ให้บริการ`,providerNotRecorded:`ไม่ได้บันทึกผู้ให้บริการ`,providerUnavailable:`ผู้ให้บริการไม่พร้อมใช้งาน`,reselectProvider:`เลือกผู้ให้บริการใหม่เพื่อปักหมุดโมเดลนี้`,unavailable:`ไม่พร้อมใช้งาน`,unavailableSelections:`ตัวเลือกที่ไม่พร้อมใช้งาน`,agentModels:`เอเจนต์`},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:`แก้ไขด้วย AI`,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:`เมื่อใช้แล้ว เวอร์ชันก่อนหน้าจะยังอยู่ในประวัติ จึงย้อนกลับการแก้ไขของ AI ได้เสมอ`,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:`เดือน`},kind:{once:`ครั้งเดียว`,hourly:`ทุกชั่วโมง`,daily:`ทุกวัน`,weekly:`ทุกสัปดาห์`,monthly:`ทุกเดือน`,yearly:`ทุกปี`},trigger:{once:`ครั้งเดียวเมื่อ {{when}}`,hourly:`ทุกชั่วโมงที่นาที {{minute}}`,daily:`ทุกวันเวลา {{time}}`,weekly:`ทุกวัน{{day}} เวลา {{time}}`,monthly:`ทุกวันที่ {{day}} เวลา {{time}}`,yearly:`ทุกปีวันที่ {{date}} เวลา {{time}}`},finishedNotification:`การทำงานอัตโนมัติเสร็จสิ้น {{n}} รายการ`,templatesTitle:`เทมเพลต`,templates:{morningBrief:{name:`สรุปยามเช้า`,description:`เริ่มวันด้วยพาดหัวข่าวและลำดับความสำคัญ`},newsDigest:{name:`สรุปข่าว AI`,description:`การเปิดตัวโมเดล งานวิจัย และเงินทุนที่สำคัญ`},weeklyReview:{name:`ทบทวนประจำสัปดาห์`,description:`ปิดท้ายสัปดาห์: ความสำเร็จ งานค้าง และลำดับความสำคัญถัดไป`},monthlyReport:{name:`รายงานประจำเดือน`,description:`โครงร่างรายงานสถานะทุกวันที่หนึ่งของเดือน`}}},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:`สลัก`,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:`รีวิว pull request`,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:`สลัก`,slugPlaceholder:`code-review`,slugHint:`ใช้ในรูปแบบ $slug เมื่อคุณกล่าวถึงทักษะนี้`,slugInvalid:`ใช้ได้เฉพาะตัวพิมพ์เล็ก ตัวเลข และขีดกลาง`,name:`ชื่อ`,namePlaceholder:`รีวิวโค้ด`,description:`คำอธิบาย`,descriptionPlaceholder:`ควรใช้ทักษะนี้เมื่อใด`,descriptionHint:`นี่คือคำประกาศที่โมเดลมองเห็น เขียนให้โมเดลรู้ได้ว่าทักษะนี้เหมาะกับงานใดโดยไม่ต้องโหลด`,instructions:`คำสั่ง`,instructionsPlaceholder:`คำสั่งแบบ Markdown ที่โมเดลอ่านเมื่อโหลดทักษะนี้`,instructionsHint:`จะโหลดเฉพาะตอนใช้ทักษะเท่านั้น ความยาวจึงไม่มีต้นทุนจนกว่าจะถึงตอนนั้น`,enabled:`เปิดใช้งาน`,enabledHint:`ทักษะที่ปิดใช้งานยังถูกบันทึกไว้ แต่จะไม่ถูกเสนอให้โมเดลเลย`},history:{open:`ประวัติเวอร์ชัน`,title:`ประวัติของ {{name}}`},templatesTitle:`เริ่มจากเทมเพลต`,templates:{citeSources:{name:`อ้างอิงแหล่งที่มา`,description:`รายการอ้างอิงมีหมายเลขพร้อม URL ไม่มีข้อความที่ไม่มีแหล่งอ้างอิง`},releaseNotes:{name:`สไตล์บันทึกการเผยแพร่`,description:`รายการที่จัดกลุ่มเพื่อผู้ใช้ ไม่มีรหัสภายใน`},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:`ส่วนหัวที่กำหนดเอง`},accessModes:{"admins-only":`ผู้ดูแลระบบเท่านั้น`,"all-users":`ทุกคน`,granted:`เฉพาะผู้ที่ได้รับสิทธิ์`},form:{name:`ชื่อ`,namePlaceholder:`API สภาพอากาศ`,kind:`ประเภท`,description:`คำอธิบาย`,descriptionPlaceholder:`เซิร์ฟเวอร์นี้ทำอะไร`,baseUrl:`URL ฐาน`,specUrl:`URL ของสเปก`,specUrlHint:`ไม่บังคับ ถ้าเว้นว่างจะใช้ URL ฐาน`,authMode:`การยืนยันตัวตน`,authHeader:`ชื่อส่วนหัว`,accessMode:`ใครใช้ได้บ้าง`,timeoutMs:`หมดเวลา (มิลลิวินาที)`,maxResponseBytes:`การตอบกลับสูงสุด (ไบต์)`,serverDefault:`ค่าเริ่มต้นของเซิร์ฟเวอร์`,enabled:`เปิดใช้งาน`,enabledHint:`เซิร์ฟเวอร์ที่ปิดใช้งานยังคงลงทะเบียนไว้ แต่จะไม่ถูกเสนอให้โมเดลเลย`},approvals:{title:`การอนุมัติถาวร`,description:`เครื่องมือที่คุณอนุญาตให้ทำงานได้โดยไม่ต้องถามอีก ถ้าเพิกถอน ครั้งต่อไปจะกลับมาถามใหม่`,empty:`ไม่มีการอนุมัติถาวร`,revoke:`เพิกถอน`,revoked:`เพิกถอนการอนุมัติแล้ว`,revokeFailed:`เพิกถอนการอนุมัติไม่สำเร็จ`,scope:{once:`ครั้งเดียว`,session:`แชทนี้`,always:`เสมอ`}},templatesTitle:`เริ่มจากเทมเพลต`,templates:{petstore:{name:`เดโม Petstore`,description:`API เดโมสาธารณะสำหรับทดสอบครบวงจรครั้งแรกอย่างปลอดภัย`},internalOpenApi:{name:`API ภายใน`,description:`จุดเริ่มต้นสำหรับบริการ OpenAPI ของคุณเอง`},mcpServer:{name:`เซิร์ฟเวอร์ MCP`,description:`จุดเริ่มต้นสำหรับเซิร์ฟเวอร์ MCP ผ่าน Streamable HTTP`}}},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}} การตอบกลับ`},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:`อินพุต $/M โทเค็น`,outputPerMillion:`เอาต์พุต $/M โทเค็น`,unitPrice:`ราคาต่อหน่วย`,effectiveFrom:`มีผลตั้งแต่`,addTariff:`เพิ่มอัตรา`,deleteTariff:`ลบอัตรา`,tariffSaved:`บันทึกอัตราแล้ว`},evaluations:{title:`การประเมิน`,description:`การดวลแบบไม่เปิดเผยชื่อ ลีดเดอร์บอร์ด Elo ชุดประเมินที่ใช้ซ้ำได้ และชุดข้อมูลคำติชมของคุณ`,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:`ยังไม่มีคำติชม — ให้คะแนนคำตอบเพื่อสร้างชุดข้อมูลของคุณ`}};export{e as default};
|