libre-webui 0.26.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/backend/dist/index.d.ts.map +1 -1
  2. package/backend/dist/index.js +7 -0
  3. package/backend/dist/index.js.map +1 -1
  4. package/backend/dist/persistence/postgresMfaPushRecoveryMigration.d.ts +9 -0
  5. package/backend/dist/persistence/postgresMfaPushRecoveryMigration.d.ts.map +1 -0
  6. package/backend/dist/persistence/postgresMfaPushRecoveryMigration.js +107 -0
  7. package/backend/dist/persistence/postgresMfaPushRecoveryMigration.js.map +1 -0
  8. package/backend/dist/persistence/postgresMigrationRegistry.d.ts.map +1 -1
  9. package/backend/dist/persistence/postgresMigrationRegistry.js +2 -0
  10. package/backend/dist/persistence/postgresMigrationRegistry.js.map +1 -1
  11. package/backend/dist/persistence/postgresResourceRepositories.d.ts.map +1 -1
  12. package/backend/dist/persistence/postgresResourceRepositories.js +162 -0
  13. package/backend/dist/persistence/postgresResourceRepositories.js.map +1 -1
  14. package/backend/dist/persistence/postgresSecurityRepositories.d.ts.map +1 -1
  15. package/backend/dist/persistence/postgresSecurityRepositories.js +150 -0
  16. package/backend/dist/persistence/postgresSecurityRepositories.js.map +1 -1
  17. package/backend/dist/persistence/resourceTypes.d.ts +59 -0
  18. package/backend/dist/persistence/resourceTypes.d.ts.map +1 -1
  19. package/backend/dist/persistence/resourceTypes.js.map +1 -1
  20. package/backend/dist/persistence/securityTypes.d.ts +59 -0
  21. package/backend/dist/persistence/securityTypes.d.ts.map +1 -1
  22. package/backend/dist/persistence/sqliteMigrations.d.ts +1 -0
  23. package/backend/dist/persistence/sqliteMigrations.d.ts.map +1 -1
  24. package/backend/dist/persistence/sqliteMigrations.js +194 -0
  25. package/backend/dist/persistence/sqliteMigrations.js.map +1 -1
  26. package/backend/dist/persistence/sqliteResourceRepositories.d.ts.map +1 -1
  27. package/backend/dist/persistence/sqliteResourceRepositories.js +134 -0
  28. package/backend/dist/persistence/sqliteResourceRepositories.js.map +1 -1
  29. package/backend/dist/persistence/sqliteSecurityRepositories.d.ts.map +1 -1
  30. package/backend/dist/persistence/sqliteSecurityRepositories.js +134 -0
  31. package/backend/dist/persistence/sqliteSecurityRepositories.js.map +1 -1
  32. package/backend/dist/persistence/sqliteToPostgresMigration.d.ts.map +1 -1
  33. package/backend/dist/persistence/sqliteToPostgresMigration.js +45 -0
  34. package/backend/dist/persistence/sqliteToPostgresMigration.js.map +1 -1
  35. package/backend/dist/platform/jobs/domainJobContracts.d.ts +2 -0
  36. package/backend/dist/platform/jobs/domainJobContracts.d.ts.map +1 -1
  37. package/backend/dist/platform/jobs/domainJobContracts.js +2 -0
  38. package/backend/dist/platform/jobs/domainJobContracts.js.map +1 -1
  39. package/backend/dist/platform/jobs/domainJobHandlers.d.ts.map +1 -1
  40. package/backend/dist/platform/jobs/domainJobHandlers.js +65 -2
  41. package/backend/dist/platform/jobs/domainJobHandlers.js.map +1 -1
  42. package/backend/dist/routes/auth.d.ts.map +1 -1
  43. package/backend/dist/routes/auth.js +419 -1
  44. package/backend/dist/routes/auth.js.map +1 -1
  45. package/backend/dist/routes/documents.d.ts.map +1 -1
  46. package/backend/dist/routes/documents.js +4 -0
  47. package/backend/dist/routes/documents.js.map +1 -1
  48. package/backend/dist/routes/push.d.ts +3 -0
  49. package/backend/dist/routes/push.d.ts.map +1 -0
  50. package/backend/dist/routes/push.js +105 -0
  51. package/backend/dist/routes/push.js.map +1 -0
  52. package/backend/dist/routes/recovery.d.ts +3 -0
  53. package/backend/dist/routes/recovery.d.ts.map +1 -0
  54. package/backend/dist/routes/recovery.js +83 -0
  55. package/backend/dist/routes/recovery.js.map +1 -0
  56. package/backend/dist/routes/users.d.ts.map +1 -1
  57. package/backend/dist/routes/users.js +35 -0
  58. package/backend/dist/routes/users.js.map +1 -1
  59. package/backend/dist/services/authService.d.ts +6 -0
  60. package/backend/dist/services/authService.d.ts.map +1 -1
  61. package/backend/dist/services/authService.js +9 -0
  62. package/backend/dist/services/authService.js.map +1 -1
  63. package/backend/dist/services/automationSchedulerService.d.ts.map +1 -1
  64. package/backend/dist/services/automationSchedulerService.js +7 -0
  65. package/backend/dist/services/automationSchedulerService.js.map +1 -1
  66. package/backend/dist/services/dataArchiveService.d.ts.map +1 -1
  67. package/backend/dist/services/dataArchiveService.js +3 -0
  68. package/backend/dist/services/dataArchiveService.js.map +1 -1
  69. package/backend/dist/services/documentMediaExtractionService.d.ts +40 -0
  70. package/backend/dist/services/documentMediaExtractionService.d.ts.map +1 -0
  71. package/backend/dist/services/documentMediaExtractionService.js +157 -0
  72. package/backend/dist/services/documentMediaExtractionService.js.map +1 -0
  73. package/backend/dist/services/documentService.d.ts +6 -0
  74. package/backend/dist/services/documentService.d.ts.map +1 -1
  75. package/backend/dist/services/documentService.js +58 -4
  76. package/backend/dist/services/documentService.js.map +1 -1
  77. package/backend/dist/services/encryptionService.d.ts +6 -0
  78. package/backend/dist/services/encryptionService.d.ts.map +1 -1
  79. package/backend/dist/services/encryptionService.js +12 -0
  80. package/backend/dist/services/encryptionService.js.map +1 -1
  81. package/backend/dist/services/mfaService.d.ts +64 -0
  82. package/backend/dist/services/mfaService.d.ts.map +1 -0
  83. package/backend/dist/services/mfaService.js +263 -0
  84. package/backend/dist/services/mfaService.js.map +1 -0
  85. package/backend/dist/services/notificationService.d.ts +5 -0
  86. package/backend/dist/services/notificationService.d.ts.map +1 -1
  87. package/backend/dist/services/notificationService.js +33 -1
  88. package/backend/dist/services/notificationService.js.map +1 -1
  89. package/backend/dist/services/preferencesService.d.ts +1 -1
  90. package/backend/dist/services/preferencesService.d.ts.map +1 -1
  91. package/backend/dist/services/preferencesService.js +1 -0
  92. package/backend/dist/services/preferencesService.js.map +1 -1
  93. package/backend/dist/services/recoveryDrillService.d.ts +57 -0
  94. package/backend/dist/services/recoveryDrillService.d.ts.map +1 -0
  95. package/backend/dist/services/recoveryDrillService.js +363 -0
  96. package/backend/dist/services/recoveryDrillService.js.map +1 -0
  97. package/backend/dist/services/webPushService.d.ts +71 -0
  98. package/backend/dist/services/webPushService.d.ts.map +1 -0
  99. package/backend/dist/services/webPushService.js +328 -0
  100. package/backend/dist/services/webPushService.js.map +1 -0
  101. package/backend/dist/services/webauthnService.d.ts +58 -0
  102. package/backend/dist/services/webauthnService.d.ts.map +1 -0
  103. package/backend/dist/services/webauthnService.js +300 -0
  104. package/backend/dist/services/webauthnService.js.map +1 -0
  105. package/backend/dist/types/index.d.ts +3 -2
  106. package/backend/dist/types/index.d.ts.map +1 -1
  107. package/backend/dist/types/index.js.map +1 -1
  108. package/backend/dist/utils/documentExtraction.d.ts +31 -3
  109. package/backend/dist/utils/documentExtraction.d.ts.map +1 -1
  110. package/backend/dist/utils/documentExtraction.js +106 -0
  111. package/backend/dist/utils/documentExtraction.js.map +1 -1
  112. package/backend/dist/utils/toolEgress.d.ts +2 -1
  113. package/backend/dist/utils/toolEgress.d.ts.map +1 -1
  114. package/backend/dist/utils/toolEgress.js +14 -2
  115. package/backend/dist/utils/toolEgress.js.map +1 -1
  116. package/backend/dist/utils/totp.d.ts +19 -0
  117. package/backend/dist/utils/totp.d.ts.map +1 -0
  118. package/backend/dist/utils/totp.js +117 -0
  119. package/backend/dist/utils/totp.js.map +1 -0
  120. package/backend/dist/utils/webauthn.d.ts +43 -0
  121. package/backend/dist/utils/webauthn.d.ts.map +1 -0
  122. package/backend/dist/utils/webauthn.js +294 -0
  123. package/backend/dist/utils/webauthn.js.map +1 -0
  124. package/backend/package.json +1 -1
  125. package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
  126. package/frontend/dist/assets/index-DBAf_VaS.js +47 -0
  127. package/frontend/dist/assets/index-kn_Axjts.css +1 -0
  128. package/frontend/dist/fonts/jetbrains-mono-latin-400-normal.woff2 +0 -0
  129. package/frontend/dist/fonts/jetbrains-mono-latin-700-normal.woff2 +0 -0
  130. package/frontend/dist/fonts/jetbrains-mono.css +24 -0
  131. package/frontend/dist/index.html +20 -13
  132. package/frontend/dist/js/ArtifactContainer-C9zNtCay.js +1 -0
  133. package/frontend/dist/js/{ArtifactDemoPage-D0JEIAbZ.js → ArtifactDemoPage-C-EBFBCt.js} +1 -1
  134. package/frontend/dist/js/ArtifactSandboxFrame-CTA1j_d1.js +111 -0
  135. package/frontend/dist/js/ArtifactSlideOutPanel-BOENbOiv.js +1 -0
  136. package/frontend/dist/js/AutomationsPage-C58MQ4te.js +1 -0
  137. package/frontend/dist/js/CalendarPage-BcdAZ292.js +1 -0
  138. package/frontend/dist/js/ChannelsPage-DPr9Yajs.js +1 -0
  139. package/frontend/dist/js/ChatPage-DsbB748s.js +14 -0
  140. package/frontend/dist/js/{EvaluationsPage-Bm8FRoeX.js → EvaluationsPage-FWIJu2fI.js} +1 -1
  141. package/frontend/dist/js/FirstTimeSetup-Cy-w6xko.js +1 -0
  142. package/frontend/dist/js/GalleryPage-DDAtxM-x.js +1 -0
  143. package/frontend/dist/js/{HomePage-BqNy-FWX.js → HomePage-DLKwmE7n.js} +1 -1
  144. package/frontend/dist/js/LibreClawPage-vKOj-9w9.js +1 -0
  145. package/frontend/dist/js/{ModelManagerModals-DX9eT5r2.js → ModelManagerModals-BY5TK38_.js} +1 -1
  146. package/frontend/dist/js/ModelSelector-CoCS6MZ9.js +1 -0
  147. package/frontend/dist/js/NotesPage-BElIpXgA.js +3 -0
  148. package/frontend/dist/js/OptimizedSyntaxHighlighter-xgyE3dRA.js +1 -0
  149. package/frontend/dist/js/PersonasPage-P40jVbfU.js +13 -0
  150. package/frontend/dist/js/{PluginUsagePage-Ctoka6JZ.js → PluginUsagePage-CKUEPCJN.js} +1 -1
  151. package/frontend/dist/js/RichMessageContent-Bm2WaEGi.js +3 -0
  152. package/frontend/dist/js/SettingsModal-DxSGzx9A.js +19 -0
  153. package/frontend/dist/js/SystemPage-BT07dTMT.js +1 -0
  154. package/frontend/dist/js/UserManagementPage-B9Vz5cm3.js +1 -0
  155. package/frontend/dist/js/WorkPage-qoN_e_jK.js +6 -0
  156. package/frontend/dist/js/api-D7Ff5M2Q.js +14 -0
  157. package/frontend/dist/js/appStore-DmV5wqDz.js +2 -0
  158. package/frontend/dist/js/ar-YHHTVP8f.js +2 -0
  159. package/frontend/dist/js/artifactHtml-DDmfpcB0.js +41 -0
  160. package/frontend/dist/js/{authStore-DbqqrfZv.js → authStore-BYW8-kP6.js} +3 -3
  161. package/frontend/dist/js/bn-C8VTxBVl.js +2 -0
  162. package/frontend/dist/js/chatStore-D-NTlArO.js +3 -0
  163. package/frontend/dist/js/{config-8KdgjtEx.js → config-BqZ5304Q.js} +1 -1
  164. package/frontend/dist/js/cs-CCngB5fC.js +2 -0
  165. package/frontend/dist/js/da-CM2PP2ma.js +2 -0
  166. package/frontend/dist/js/de-BqVkD-dw.js +2 -0
  167. package/frontend/dist/js/es-BtWsWBjZ.js +2 -0
  168. package/frontend/dist/js/{estree-BU5-LV_1.js → estree-DPkpBuOU.js} +1 -1
  169. package/frontend/dist/js/{evaluationsApi-CwZJsgeG.js → evaluationsApi-Dnf2dTd-.js} +1 -1
  170. package/frontend/dist/js/fr-C68w9abT.js +2 -0
  171. package/frontend/dist/js/hi-DtBlcyXZ.js +2 -0
  172. package/frontend/dist/js/{html-DeoAy2bo.js → html-BpGUXG8E.js} +1 -1
  173. package/frontend/dist/js/id-BWzIu8tn.js +2 -0
  174. package/frontend/dist/js/is-yeFwu4dJ.js +2 -0
  175. package/frontend/dist/js/it-AxEMG8Jg.js +2 -0
  176. package/frontend/dist/js/ja-B-VyokB8.js +2 -0
  177. package/frontend/dist/js/ko-CvwzYr9k.js +2 -0
  178. package/frontend/dist/js/{markdown-DOLsYkBY.js → markdown-DCBRWJSK.js} +1 -1
  179. package/frontend/dist/js/{messageCodeStyles-DhVgizF-.js → messageCodeStyles-BQwf7sSz.js} +2 -2
  180. package/frontend/dist/js/ms-BhEwb4b7.js +2 -0
  181. package/frontend/dist/js/nl-Dq-QRx1L.js +2 -0
  182. package/frontend/dist/js/pl-BNEy8mQm.js +2 -0
  183. package/frontend/dist/js/pt-_3Jl3FdY.js +2 -0
  184. package/frontend/dist/js/ru-IhQiJ8ta.js +2 -0
  185. package/frontend/dist/js/{standalone-BO5pzI8_.js → standalone-BFrK0R2A.js} +1 -1
  186. package/frontend/dist/js/sv-DWunXUNz.js +2 -0
  187. package/frontend/dist/js/{syntax-highlight-DcR9Vhb7.js → syntax-highlight-P2zo9o06.js} +1 -1
  188. package/frontend/dist/js/th-DVnW2yyh.js +2 -0
  189. package/frontend/dist/js/tr-Do8CFmhR.js +2 -0
  190. package/frontend/dist/js/{typescript-6GJ8APmn.js → typescript-DYVyvmm_.js} +1 -1
  191. package/frontend/dist/js/ui-db9meqAB.js +2 -0
  192. package/frontend/dist/js/ui-vendor-C0DZ8-Cm.js +177 -0
  193. package/frontend/dist/js/uk-BNPKIZga.js +2 -0
  194. package/frontend/dist/js/vi-CZMFo9je.js +2 -0
  195. package/frontend/dist/js/{workApi-BruWTlHM.js → workApi-CcprMH_1.js} +2 -2
  196. package/frontend/dist/js/zh-Pg0881v0.js +2 -0
  197. package/frontend/dist/manifest.webmanifest +32 -0
  198. package/frontend/dist/sw.js +125 -0
  199. package/package.json +2 -2
  200. package/frontend/dist/assets/index-BPsH9FII.js +0 -80
  201. package/frontend/dist/assets/index-BtXF0Oxa.css +0 -1
  202. package/frontend/dist/js/ArtifactContainer-CIoFoMv8.js +0 -1
  203. package/frontend/dist/js/ArtifactSandboxFrame-REazyIrx.js +0 -151
  204. package/frontend/dist/js/ArtifactSlideOutPanel-A-i94ghF.js +0 -1
  205. package/frontend/dist/js/AutomationsPage-Dow_lbIf.js +0 -1
  206. package/frontend/dist/js/CalendarPage-DLjasZOd.js +0 -1
  207. package/frontend/dist/js/ChannelsPage-C8hvTD7J.js +0 -1
  208. package/frontend/dist/js/ChatPage-BAgBHUES.js +0 -16
  209. package/frontend/dist/js/FirstTimeSetup-BxJapNul.js +0 -1
  210. package/frontend/dist/js/GalleryPage-DHz9DkK7.js +0 -1
  211. package/frontend/dist/js/LibreClawPage-BDzDILjY.js +0 -1
  212. package/frontend/dist/js/ModelSelector-ol8mK2ja.js +0 -1
  213. package/frontend/dist/js/NotesPage-DzHEx2O4.js +0 -3
  214. package/frontend/dist/js/OptimizedSyntaxHighlighter-CZNPwN0i.js +0 -1
  215. package/frontend/dist/js/PersonasPage-M_WKH2a9.js +0 -13
  216. package/frontend/dist/js/RichMessageContent-BqgafH4p.js +0 -3
  217. package/frontend/dist/js/SettingsModal-R9EDadAV.js +0 -19
  218. package/frontend/dist/js/SystemPage-aOkrSuY7.js +0 -1
  219. package/frontend/dist/js/UserManagementPage-BOuaX3ay.js +0 -1
  220. package/frontend/dist/js/WorkPage-DxZISerQ.js +0 -6
  221. package/frontend/dist/js/api-6bSMtSNh.js +0 -14
  222. package/frontend/dist/js/appStore-CdObhQBb.js +0 -2
  223. package/frontend/dist/js/ar-DT_VLBO3.js +0 -2
  224. package/frontend/dist/js/bn-BrvEqhGA.js +0 -2
  225. package/frontend/dist/js/chatStore-DbZPJNsu.js +0 -3
  226. package/frontend/dist/js/cs-BthnM_YI.js +0 -2
  227. package/frontend/dist/js/da-DCth-6_j.js +0 -2
  228. package/frontend/dist/js/de-BBWt0gJ_.js +0 -2
  229. package/frontend/dist/js/es-DuslOPqM.js +0 -2
  230. package/frontend/dist/js/fr-DZAeg46S.js +0 -2
  231. package/frontend/dist/js/hi-ijDSiY77.js +0 -2
  232. package/frontend/dist/js/id-BS6qS0oq.js +0 -2
  233. package/frontend/dist/js/is-CO2PMDte.js +0 -2
  234. package/frontend/dist/js/it-ChhxT4hs.js +0 -2
  235. package/frontend/dist/js/ja-cyeqUeJN.js +0 -2
  236. package/frontend/dist/js/ko-CfqHTLXj.js +0 -2
  237. package/frontend/dist/js/ms-DZ5pACe1.js +0 -2
  238. package/frontend/dist/js/nl-BsRsnOVp.js +0 -2
  239. package/frontend/dist/js/pl-DXSTAW4M.js +0 -2
  240. package/frontend/dist/js/pt-DmDx0JxB.js +0 -2
  241. package/frontend/dist/js/ru-d2g8EWfY.js +0 -2
  242. package/frontend/dist/js/sv-CIhYUTVQ.js +0 -2
  243. package/frontend/dist/js/th-B3wSxanB.js +0 -2
  244. package/frontend/dist/js/tr-R4UGgPOY.js +0 -2
  245. package/frontend/dist/js/ui-CV0LYmkM.js +0 -2
  246. package/frontend/dist/js/ui-vendor-CWjIBW-z.js +0 -177
  247. package/frontend/dist/js/uk-BzUF4Vkt.js +0 -2
  248. package/frontend/dist/js/vi-CKc6Fg4h.js +0 -2
  249. package/frontend/dist/js/zh-CXL-kDe8.js +0 -2
@@ -1,2 +0,0 @@
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:`GitHub OAuth 기반 JWT 인증`,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:{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:`모델이 학습한 {{trained}} 중 {{context}}로 제한했습니다. 그래야 계속 로드됩니다.`,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":"{{total}}개 모델 중 {{current}}개"},"systemMessage":{"title":"시스템 메시지","description":"모든 새 대화에 사용될 사용자 정의 시스템 메시지를 설정하세요.","placeholder":"시스템 메시지를 입력하세요...","saved":"시스템 메시지가 저장되었습니다","saveFailed":"시스템 메시지 저장 실패"},"plugins":{"title":"플러그인","description":"설치된 플러그인 관리","providerConnections":"프로바이더 연결","providerConnectionsDescription":"플러그인을 통해 모델 프로바이더를 연결, 구성 및 검사합니다.","providers":"프로바이더","searchProviders":"프로바이더 검색","noProvidersFound":"검색과 일치하는 프로바이더가 없습니다.","selectProvider":"프로바이더 선택","selectProviderDescription":"연결 및 모델 카탈로그를 검사할 프로바이더를 선택하세요.","addNew":"새 플러그인 추가","upload":"플러그인 업로드","addJson":"JSON 추가","uploading":"업로드 중...","jsonPlaceholder":"플러그인 JSON 구성 붙여넣기...","install":"플러그인 설치","noPlugins":"설치된 플러그인 없음","noPluginsDescription":"기능을 확장하려면 플러그인을 추가하세요","loading":"플러그인 로딩 중...","installed":"설치된 플러그인","active":"활성 플러그인","activeLabel":"활성","inactive":"비활성","activate":"활성화","deactivate":"비활성화","models":"모델","apiKeySet":"API 키 설정됨","apiKeyConfiguration":"API 키 구성","apiKeyDescription":"{{name}}의 개인 API 키를 저장합니다.","apiKeyEnvAlternative":"또는 다음을 설정하세요:","environmentVariable":"환경 변수","apiKeyConfigured":"API 키가 구성됨","apiKeyPlaceholder":"API 키를 입력하세요...","saveApiKey":"API 키 저장","showApiKey":"API 키 표시","hideApiKey":"API 키 숨기기","configure":"구성","providerSettings":"프로바이더 설정","status":"상태","defaultEndpoint":"기본 엔드포인트","modelCatalog":"모델 카탈로그","modelCatalogDescription":"이 프로바이더에 대해 검색 및 구성된 모델과 기능입니다.","refreshModels":"모델 새로고침","noModelsConfigured":"이 제공자에 대해 구성된 모델이 없습니다.","modelId":"모델 ID","capabilities":"기능","modelCatalogUpdated":"모델 카탈로그가 업데이트되었습니다: {{count}}개 모델.","modelCatalogUnchanged":"모델 카탈로그가 이미 최신 상태입니다.","modelCatalogNeedsApiKey":"이 제공자의 실시간 모델 목록을 불러오려면 유효한 API 키를 추가하세요.","modelCatalogUnavailable":"제공자의 모델 목록을 불러올 수 없습니다.","modelCatalogRefreshFailed":"모델 카탈로그를 새로고침하지 못했습니다.","capability":{"chat":"채팅","embedding":"임베딩","image":"이미지","speech":"음성","transcription":"전사"},"exportPlugin":"플러그인 내보내기","deletePlugin":"플러그인 삭제","apiKey":{"title":"API 키","placeholder":"API 키 입력","save":"키 저장","remove":"키 제거","configured":"API 키 구성됨","notConfigured":"API 키 필요","saved":"API 키가 성공적으로 저장되었습니다","removed":"API 키가 제거되었습니다","saveFailed":"API 키 저장 실패","removeFailed":"API 키 제거 실패","enterKey":"API 키를 입력하세요"},"variables":"Variables"},"generation":{"title":"생성 옵션","description":"AI가 응답을 생성하는 방식 구성","scopeLabel":"적용 대상","scopeAll":"모든 모델","scopeModel":"{{model}}만","scopeAllHint":"개별 설정이 없는 한 모든 모델이 사용하는 값입니다.","scopeModelHint":"이 모델에만 저장되며 전체 값보다 우선합니다.","advancedSettings":"고급 생성 설정","advancedSettingsDescription":"샘플링, 토큰 제한, 컨텍스트, 페널티 및 정지 시퀀스","coreParameters":"핵심 매개변수","temperature":"온도","temperatureDescription":"무작위성을 제어합니다. 낮은 값은 더 집중적이고, 높은 값은 더 창의적입니다.","topP":"Top P","topPDescription":"핵 샘플링을 통해 다양성을 제어합니다. 낮은 값은 가능성 높은 토큰에 집중합니다.","topK":"Top K","topKDescription":"토큰 선택을 상위 K개로 제한합니다. 0으로 설정하면 비활성화됩니다.","minP":"Min P","minPDescription":"토큰 선택을 위한 최소 확률 임계값입니다.","generationControl":"생성 제어","maxTokens":"최대 토큰","maxTokensDescription":"응답에서 생성할 최대 토큰 수입니다.","repeatPenalty":"반복 페널티","repeatPenaltyDescription":"반복된 토큰에 페널티를 부여합니다. 높은 값은 반복을 줄입니다.","contextLength":"컨텍스트 길이","contextLengthDescription":"대화의 최대 컨텍스트 창 크기입니다.","seed":"시드","optional":"선택사항","random":"무작위","seedDescription":"재현 가능한 출력을 위해 특정 시드를 설정합니다.","advancedOptions":"고급 옵션","presencePenalty":"존재 페널티","presencePenaltyDescription":"컨텍스트에 나타나는 토큰에 페널티를 부여합니다.","frequencyPenalty":"빈도 페널티","frequencyPenaltyDescription":"자주 사용되는 토큰에 페널티를 부여합니다.","stopSequences":"중지 시퀀스","commaSeparated":"쉼표로 구분","stopSequencesDescription":"발견 시 생성을 중지하는 사용자 정의 토큰입니다.","resetDefaults":"기본값으로 재설정","saveOptions":"옵션 저장","embeddingSettings":"임베딩 설정","enableEmbeddings":"문서 임베딩 활성화","thinking":"사고","thinkingDescription":"답변의 기본 사고 수준. 채팅마다 변경할 수 있습니다.","thinkingLevels":{"default":"모델 기본값","defaultWith":"모델 기본값 ({{level}})","off":"끄기","on":"켜기","low":"낮음","medium":"보통","high":"높음"}},"documents":{"title":"문서 설정","embeddings":{"title":"임베딩","enable":"문서 임베딩 활성화","model":"임베딩 모델","modelDescription":"문서 임베딩에 사용할 모델 선택","chunkSize":"청크 크기","chunkSizeInTokens":"(토큰 단위)","chunkSizeDescription":"임베딩을 위한 텍스트 청크 크기","chunkOverlap":"청크 겹침","chunkOverlapInTokens":"(토큰 단위)","chunkOverlapDescription":"연속 청크 간의 겹침","similarityThreshold":"유사도 임계값","similarityDescription":"결과를 포함하기 위한 최소 유사도 점수","status":"임베딩 상태","statusLabel":"상태","available":"사용 가능","unavailable":"사용 불가","chunksWithEmbeddings":"임베딩이 있는 청크","coverage":"커버리지","regenerate":"임베딩 재생성","regenerating":"재생성 중..."},"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.5배","speedNormal":"1.0배","speedFast":"2.0배","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":"Ollama로 로컬에서 AI 모델 실행"}},"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":"SearXNG URL","urlDescription":"서버에서 접근 가능한 SearXNG 인스턴스의 기본 URL. 포함된 프라이빗 배포 스택은 http://searxng:8080 을 제공합니다.","maxResultsLabel":"검색당 결과 수","maxResultsDescription":"답변이나 도구 호출에 사용할 결과 수, 1-100.","maxResultsInvalid":"검색당 결과 수는 1에서 100 사이여야 합니다.","safeSearchLabel":"세이프서치","safeSearchDescription":"엔진에 노골적인 결과 필터링을 요청합니다.","test":"연결 테스트","testing":"테스트 중…","testOk":"검색 작동 — {{results}}개의 결과 반환","testFailed":"검색 테스트 실패","save":"저장","saved":"검색 설정이 저장되었습니다","saveFailed":"검색 설정을 저장할 수 없습니다"},"compaction":{"title":"컨텍스트 압축","description":"대화가 토큰 임계값을 넘으면 서버가 오래된 메시지를 요약하고 최신 메시지만 그대로 유지합니다. 이 서버의 모든 사용자에게 적용됩니다.","thresholdLabel":"토큰 임계값","thresholdDescription":"이 추정 컨텍스트 토큰 수를 넘으면 오래된 기록을 요약합니다. 500~1,000,000.","thresholdInvalid":"토큰 임계값은 500에서 1,000,000 사이여야 합니다.","keepRecentLabel":"그대로 유지할 최근 메시지","keepRecentDescription":"최근 메시지 중 항상 그대로 남길 개수입니다. 2~200.","keepRecentInvalid":"그대로 유지할 최근 메시지 수는 2에서 200 사이여야 합니다.","modelLabel":"압축 모델","modelDescription":"요약을 작성하는 모델입니다. 선택하지 않으면 해당 대화의 모델을 사용합니다.","sessionModelOption":"대화의 모델 사용","promptLabel":"사용자 지정 요약 프롬프트","promptPlaceholder":"비워 두면 기본 프롬프트를 사용합니다","promptDescription":"템플릿 변수 {{previousSummaryVariable}} 및 {{messagesVariable}}는 이전 요약과 요약할 메시지로 바뀝니다.","saved":"압축 설정을 저장했습니다","saveFailed":"압축 설정을 저장하지 못했습니다","loadFailed":"압축 설정을 불러오지 못했습니다"},"sessions":{"title":"세션","description":"이 계정이 로그인되어 있는 모든 위치입니다. 세션을 로그아웃하면 즉시 적용되며, 다시 로그인하면 액세스가 복원됩니다.","signOutOthers":"다른 세션 모두 로그아웃","signingOutOthers":"로그아웃 중…","signOut":"로그아웃","signingOut":"로그아웃 중…","revoked":"세션이 로그아웃되었습니다.","revokeFailed":"세션을 로그아웃하지 못했습니다.","othersRevoked":"로그아웃된 다른 세션: {{count}}개","loadFailed":"세션을 불러오지 못했습니다.","empty":"세션이 없습니다.","current":"현재 세션","revokedBadge":"로그아웃됨","unknownDevice":"알 수 없는 기기","createdAt":"로그인 시각","lastSeenAt":"마지막 활동","expiresAt":"만료"},"apiKeys":{"title":"API 키","description":"스크립트와 통합을 위한 범위 지정 토큰입니다. 각 키는 선택한 범위에만 액세스할 수 있습니다.","newKeyTitle":"새 API 키","copy":"복사","copied":"클립보드에 복사되었습니다.","copyFailed":"복사하지 못했습니다.","showOnceWarning":"지금 복사하세요. 다시 표시되지 않습니다.","dismiss":"완료","createTitle":"키 만들기","nameLabel":"이름","namePlaceholder":"예: CI 파이프라인","nameRequired":"키 이름을 입력하세요.","expiryLabel":"만료 기간(일, 선택 사항)","expiryPlaceholder":"만료 없음","expiryInvalid":"만료 기간은 정수(일)여야 합니다.","scopesLabel":"범위","scopesRequired":"범위를 하나 이상 선택하세요.","create":"키 만들기","creating":"만드는 중…","created":"API 키가 생성되었습니다.","createFailed":"API 키를 만들지 못했습니다.","revoke":"폐기","revoking":"폐기 중…","revoked":"API 키가 폐기되었습니다.","revokeFailed":"API 키를 폐기하지 못했습니다.","revokedBadge":"폐기됨","loadFailed":"API 키를 불러오지 못했습니다.","empty":"아직 API 키가 없습니다.","createdAt":"생성됨","lastUsedAt":"마지막 사용","expiresAt":"만료","neverExpires":"만료 없음"}}`),models:{title:`모델`,subtitle:`Ollama 모델 풀, 관리 및 모니터링`,installed:`설치된 모델`,available:`사용 가능한 모델`,pull:`모델 풀`,pulling:`풀 중...`,delete:`모델 삭제`,deleting:`삭제 중...`,size:`크기`,modified:`수정됨`,family:`계열`,parameters:`매개변수`,quantization:`양자화`,noModels:`설치된 모델 없음`,pullFirst:`시작하려면 모델을 풀하세요`,noModelsFound:`모델을 찾을 수 없습니다`},personas:{title:`페르소나`,create:`페르소나 만들기`,edit:`페르소나 편집`,delete:`페르소나 삭제`,name:`이름`,description:`설명`,systemPrompt:`시스템 프롬프트`,model:`모델`,avatar:`아바타`,background:`배경`,noPersonas:`만들어진 페르소나 없음`,createFirst:`채팅 경험을 사용자 정의하려면 첫 번째 페르소나를 만드세요`},gallery:{title:`갤러리`,subtitle:`AI 생성 이미지 갤러리`,imageCount:`이미지 {{count}}개`,generate:`이미지 생성`,generateDescription:`AI로 이미지 만들기`,generating:`생성 중...`,prompt:`프롬프트`,promptPlaceholder:`생성하려는 이미지를 설명하세요...`,noImages:`아직 생성된 이미지 없음`,download:`다운로드`,delete:`삭제`,regenerate:`재생성`,model:`모델`,size:`크기`,quality:`품질`,created:`생성됨`},errors:{generic:`오류가 발생했습니다`,network:`네트워크 오류. 연결을 확인하세요.`,unauthorized:`이 작업을 수행할 권한이 없습니다.`,notFound:`요청한 리소스를 찾을 수 없습니다.`,serverError:`서버 오류. 나중에 다시 시도하세요.`,validation:`입력을 확인하고 다시 시도하세요.`},keyboard:{title:`키보드 단축키`,toggleSidebar:`사이드바 전환`,openSettings:`설정 열기`,toggleDarkMode:`다크 모드 전환`,showShortcuts:`키보드 단축키 표시`,closeModals:`모달 닫기`,groups:{navigation:`탐색`,general:`일반`,chat:`채팅`,workspace:`작업 공간`},actions:{sendMessage:`메시지 보내기`,newLine:`메시지에 새 줄`,saveEdit:`편집한 메시지 저장`,cancelEdit:`편집 취소`,saveFile:`파일 저장`,formatCode:`코드 서식 정리`},description:`Libre WebUI에서 사용할 수 있는 모든 키보드 단축키입니다.`,newChat:`새 채팅`,newWork:`새 Work 세션`,openPalette:`명령 팔레트 열기`},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:`사진은 192KB 미만이어야 합니다.`,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 다이제스트 확인 중`,writing:`매니페스트 작성 중...`,cleaning:`정리 중...`},library:{available:`사용 가능`,search:`모델 검색...`,noResults:`기준에 맞는 모델을 찾을 수 없습니다`,installed:`설치됨`,more:`+{{count}}개 더`,refresh:`라이브러리 새로고침`},huggingface:{browseAll:`HuggingFace에서 모두 보기`,checkingGguf:`GGUF 파일 확인 중...`,noGgufAvailable:`Ollama로 직접 풀할 수 있는 GGUF 파일이 없습니다`,ggufFilesCount:`GGUF 파일 ({{count}}) - Ollama로 직접 풀`,noModelsFound:`모델을 찾을 수 없습니다`,noResults:`모델을 찾을 수 없습니다. 검색어나 필터를 조정해 보세요.`,browseAllLink:`모두 보기`,search:`HuggingFace 모델 검색...`,by:`작성자`,gated:`제한된 액세스`,viewOnHF:`HuggingFace에서 보기`,sortDownloads:`다운로드`,sortLikes:`좋아요`,sortRecent:`최근`,taskTextGeneration:`텍스트 생성`,taskTextToSpeech:`텍스트 음성 변환`,taskTextToImage:`텍스트 이미지 변환`,taskSpeechRecognition:`음성 인식`,tasks:{textGen:`텍스트 생성`,tts:`텍스트 음성 변환`,image:`텍스트 이미지 변환`,stt:`음성 인식`},sort:{downloads:`다운로드 순`,likes:`인기 순`,recent:`최근 업데이트`}},local:{noModels:`아직 설치된 모델 없음`,pullToStart:`시작하려면 위에서 모델을 풀하세요`,installed:`설치됨`,running:`실행 중`,info:`정보`,copy:`복사`,delete:`삭제`,deleteConfirm:`모델 "{{name}}"을(를) 삭제하시겠습니까?`,deleteSuccess:`모델 {{name}}이(가) 성공적으로 삭제되었습니다`,deleteFailed:`모델 삭제 실패`},advanced:{createModel:`모델 만들기`,fromModelfile:`Modelfile에서`,copyModel:`모델 복사`,duplicateExisting:`기존 항목 복제`,testEmbeddings:`임베딩 테스트`,generateVectors:`벡터 생성`,healthCheck:`상태 점검`,testConnection:`연결 테스트`,healthy:`Ollama가 정상입니다!`},modals:{details:{title:`모델 세부정보`,info:`모델 정보`,family:`계열`,parameters:`매개변수`,quantization:`양자화`,format:`형식`,systemPrompt:`시스템 프롬프트`,template:`템플릿`,license:`라이선스`,modelfile:`Modelfile`,noDetails:`사용 가능한 세부정보 없음`},copy:{title:`모델 복사`,source:`소스 모델`,selectModel:`모델 선택...`,newName:`새 모델 이름`,placeholder:`예: my-custom-model`,copying:`복사 중...`,button:`모델 복사`,success:`모델이 {{name}}(으)로 복사되었습니다`,failed:`모델 복사 실패`,enterBoth:`소스와 대상 이름을 모두 입력하세요`},create:{title:`사용자 정의 모델 만들기`,name:`모델 이름`,namePlaceholder:`예: my-assistant`,modelfile:`Modelfile`,modelfilePlaceholder:`FROM llama3.2
2
- SYSTEM You are a helpful assistant.`,see:`참조:`,docs:`Modelfile 문서`,docsLink:`구문 참조용`,creating:`만드는 중...`,button:`모델 만들기`,success:`모델 {{name}}이(가) 성공적으로 만들어졌습니다`,failed:`모델 만들기 실패`,enterBoth:`모델 이름과 Modelfile 내용을 입력하세요`},embeddings:{title:`임베딩 테스트`,model:`임베딩 모델`,selectModel:`모델 선택...`,recommended:`권장: nomic-embed-text, mxbai-embed-large`,input:`입력 텍스트`,placeholder:`임베딩을 생성할 텍스트를 입력하세요...`,generating:`생성 중...`,button:`임베딩 생성`,result:`결과 ({{count}}차원)`,success:`{{count}}차원 임베딩 벡터가 생성되었습니다`,failed:`임베딩 생성 실패`,enterBoth:`모델을 선택하고 텍스트를 입력하세요`}}},personaManager:{title:`페르소나`,subtitle:`사용자 정의 성격, 메모리 및 행동을 가진 AI 페르소나 생성 및 관리`,loading:`페르소나 로딩 중...`,createButton:`페르소나 만들기`,importExport:`가져오기/내보내기`,stats:{title:`내 페르소나`,count:`페르소나 {{count}}개 생성됨`,count_plural:`페르소나 {{count}}개 생성됨`},empty:{title:`아직 페르소나 없음`,description:`개인화된 AI 상호작용을 시작하려면 첫 번째 페르소나를 만드세요`,button:`첫 번째 페르소나 만들기`},deleteConfirm:`"{{name}}"을(를) 삭제하시겠습니까?`,deleteSuccess:`페르소나 "{{name}}"이(가) 성공적으로 삭제되었습니다`,downloadSuccess:`페르소나 "{{name}}"이(가) 성공적으로 다운로드되었습니다`,failed:`페르소나 {{action}} 실패`},personaForm:{title:{create:`새 페르소나 만들기`,edit:`페르소나 편집`},subtitle:{create:`사용자 정의 성격, 메모리 시스템 및 적응형 학습 기능을 가진 새 AI 페르소나 만들기`,edit:`고급 메모리, 적응형 학습 및 지능형 매개변수로 AI 페르소나 사용자 정의`},loading:`양식 로딩 중...`,saved:`저장됨`,tabs:{basic:`기본`,parameters:`매개변수`,memory:`메모리 및 학습`,advanced:`고급`,bindings:`바인딩`},basic:{name:`이름`,namePlaceholder:`페르소나 이름 입력`,model:`모델`,selectModel:`모델 선택`,description:`설명`,descriptionPlaceholder:`페르소나를 설명하세요...`,systemPrompt:`시스템 프롬프트`,systemPromptPlaceholder:`페르소나 행동을 정의하는 시스템 프롬프트를 입력하세요...`,systemPromptHint:`시스템 프롬프트는 페르소나가 어떻게 행동하고 응답할지를 정의합니다.`},parameters:{temperature:`온도`,temperatureHint:`창의성 대 일관성 제어`,topP:`Top-P`,topPHint:`응답 다양성 제어`,topK:`Top-K`,topKHint:`어휘를 상위 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:`임베딩 모델`,embeddingHint:`메모리 인코딩 및 의미 검색에 사용할 모델을 선택하세요. 임베딩 모델이 먼저 표시되고 다른 사용 가능한 모델이 뒤따릅니다.`,noModels:`모델을 찾을 수 없음`,embeddingModels:`임베딩 모델`,otherModels:`다른 모델`,installHint:`임베딩 모델 설치:`,recommended:`권장: nomic-embed-text, mxbai-embed-large, bge-m3, snowflake-arctic-embed`,aboutTitle:`고급 설정 정보`,aboutDescription:`임베딩 모델은 메모리 시스템에서 의미를 이해하고 대화 중 관련 메모리를 찾는 데 사용됩니다. 사용 사례와 가용 리소스에 맞는 모델을 선택하세요.`},actions:{cancel:`취소`,save:`저장`,saving:`저장 중...`,saveClose:`저장 후 닫기`,create:`만들기`},success:{created:`페르소나가 생성되었습니다`,updated:`페르소나가 업데이트되었습니다`},error:{saveFailed:`저장 실패`},bindings:{toolServers:`도구 서버`,toolServersHint:`이 페르소나가 호출할 수 있는 서버입니다. 비워 두면 사용자가 이미 접근할 수 있는 모든 서버가 대상이 됩니다.`,noToolServers:`사용할 수 있는 도구 서버가 없습니다.`,builtinTools:`기본 제공 도구`,builtinToolsHint:`서버가 직접 구현한 도구입니다. 비워 두면 전부 제공됩니다.`,noBuiltinTools:`사용할 수 있는 기본 제공 도구가 없습니다.`,builtin:{web_search:`웹 검색`,search_documents:`문서 검색`,load_skill:`스킬 불러오기`},skills:`스킬`,skillsHint:`이 페르소나가 활성일 때 모델이 불러올 수 있는 스킬입니다.`,noSkills:`아직 만든 스킬이 없습니다.`,collections:`지식 컬렉션`,collectionsHint:`이 페르소나가 검색할 수 있는 문서 컬렉션입니다.`,noCollections:`아직 만든 컬렉션이 없습니다.`,prompt:`프롬프트`,promptHint:`이 페르소나로 시작하는 모든 새 대화에 넣을 프롬프트입니다.`,noPrompt:`프롬프트 없음`,version:`바인딩 리비전 {{version}}`}},personaCard:{enhanced:`향상됨`,systemPrompt:`시스템 프롬프트`,memories:`메모리`,use:`사용`,editTooltip:`페르소나 편집`,downloadTooltip:`페르소나 다운로드`,backup:`백업`,exportDNA:`DNA 내보내기`,wipeMemories:`메모리 지우기`,wipeConfirm:`이 페르소나의 모든 메모리를 지우시겠습니까? 이 작업은 취소할 수 없습니다.`,wipeSuccess:`메모리 {{count}}개가 지워졌습니다`,backupSuccess:`페르소나 백업이 성공적으로 다운로드되었습니다`,dnaSuccess:`페르소나 DNA가 성공적으로 내보내졌습니다`,failed:`{{action}} 실패`,shareTooltip:`이 페르소나 공유`},userManager:{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:`1년간의 활동`,description:`지난 1년간의 일별 프로바이더 호출을 그날 가장 많이 사용된 모델별 색상으로 표시합니다.`,calls:`회 호출`,noCalls:`호출 없음`,other:`기타 모델`,less:`적음`,more:`많음`,yearTotal:`지난 1년간 {{formatted}}회 호출`}},systemPage:{eyebrow:`관리`,title:`시스템`,description:`이 Libre WebUI 인스턴스를 호스팅하는 머신과 런타임을 모니터링합니다.`,updated:`{{date}}에 업데이트됨`,refresh:`시스템 정보 새로고침`,loadFailed:`시스템 정보를 불러올 수 없습니다.`,cards:{uptime:`호스트 가동 시간`,uptimeDetail:`{{date}}부터 실행 중`,memory:`사용된 메모리`,memoryDetail:`{{total}} 중 {{used}}`,freeSpace:`여유 공간`,freeSpaceDetail:`{{label}} · 총 {{total}}`,containers:`실행 중인 컨테이너`,containersDetail:`Docker에 알려진 컨테이너 {{total}}개`,dockerUnavailable:`Docker 사용 불가`,unavailable:`사용 불가`},host:{title:`호스트 및 런타임`,description:`운영 체제, 프로세서 및 Libre WebUI 프로세스 세부 정보입니다.`,container:`컨테이너 런타임`,native:`네이티브 런타임`,hostname:`호스트 이름`,operatingSystem:`운영 체제`,processor:`프로세서`,logicalCpus:`논리 CPU`,loadAverage:`평균 부하 · 1 / 5 / 15분`,libreVersion:`Libre WebUI`,nodeVersion:`Node.js`,process:`프로세스`,workingDirectory:`작업 디렉터리`},memory:{title:`메모리`,description:`런타임에서 보이는 시스템 메모리 및 애플리케이션 프로세스 사용량.`,usedOf:`{{total}} 중 {{used}} 사용`,free:`{{value}} 여유`,processRss:`프로세스 RSS`,heapUsed:`V8 힙 사용량`,heapTotal:`V8 전체 힙`,external:`외부 메모리`},storage:{title:`저장소`,description:`런타임 파일 시스템 및 영구 애플리케이션 데이터에 사용 가능한 공간.`,used:`{{value}} 사용`,free:`{{value}} 여유`,empty:`이 런타임에서는 파일 시스템 정보를 사용할 수 없습니다.`},docker:{title:`Docker`,description:`읽기 전용 Docker Engine 상태 및 축소된 컨테이너 목록.`,connected:`연결됨`,unavailable:`사용 불가`,unavailableDetail:`Docker Engine 진단을 사용할 수 없습니다.`,socketStatus:`로컬 소켓: {{status}}`,mounted:`마운트됨`,notMounted:`마운트되지 않음`,running:`실행 중`,stopped:`중지됨`,paused:`일시 정지됨`,total:`전체`,version:`버전`,host:`호스트`,architecture:`아키텍처`,cpus:`CPU`,memory:`메모리`,container:`컨테이너`,image:`이미지`,state:`상태`,created:`생성됨`,empty:`Docker에 연결되었으며 현재 나열된 컨테이너가 없습니다.`},network:{title:`네트워크`,description:`런타임에 표시되는 인터페이스, 주소 및 Linux 트래픽 카운터.`,internal:`내부`,empty:`애플리케이션 런타임에 표시되는 네트워크 인터페이스가 없습니다.`},securityNote:`이 페이지는 관리자 전용입니다. 서버는 운영 요약만 반환합니다: 환경 변수, 자격 증명, Docker 레이블, 마운트, 컨테이너 명령 또는 검사 페이로드를 노출하지 않습니다. Libre WebUI가 컨테이너에서 실행될 때 로컬 소켓을 사용할 수 있는 경우 호스트 수준 CPU 및 메모리 세부 정보는 Docker Engine에서 가져옵니다. 다른 값은 애플리케이션 런타임을 설명합니다.`,work:{title:`Work`,description:`모든 사용자의 샌드박스`,access:`접근`,accessAdmins:`관리자만`,accessAllUsers:`모든 사용자`,runtimeAvailable:`사용 가능`,runtimeUnavailable:`사용 불가`,activeRuntimes:`활성 런타임`,pendingCleanups:`대기 중인 정리`,orphans:`고아 컨테이너`,owner:`소유자`,task:`작업`,state:`상태`,preview:`미리보기`,terminals:`터미널`,updated:`업데이트됨`,stateRunning:`실행 중`,stateStopped:`중지됨`,stateStarting:`시작 중`,stateUnknown:`알 수 없음`,noTasks:`아직 Work 작업이 없습니다.`}},chatHistory:{label:`대화 기록`,jumpToTurn:`{{total}}개 중 {{index}}번째 대화로 이동`},chatMessage:{you:`나`,assistant:`어시스턴트`,system:`시스템`,conversationSummary:`대화 요약`,restoreCompacted:`요약된 메시지 복원`,restoreFailed:`요약된 메시지를 복원하지 못했습니다`,copy:`복사`,copyMessage:`메시지 복사`,copied:`복사됨!`,regenerate:`재생성`,regenerateResponse:`응답 재생성`,edit:`편집`,editSystemMessage:`시스템 메시지 편집`,saveChanges:`변경사항 저장`,cancelEditing:`편집 취소`,saveAndSubmit:`저장 후 전송`,goodResponse:`좋은 응답`,badResponse:`나쁜 응답`,delete:`삭제`,deleteConfirm:`이 메시지를 삭제하시겠습니까?`,branch:`분기`,speaking:`말하는 중...`,speakMessage:`메시지 읽기`,stopSpeaking:`읽기 중지`,showMore:`더 보기`,showLess:`접기`,thinking:`생각 중`,thoughtFor:`{{duration}} 동안 생각함`,hiddenLines:`숨겨진 줄: {{count}}`,systemMessagePlaceholder:`시스템 메시지를 입력하세요...`,fullSizeImage:`전체 크기 이미지`,startConversation:`대화 시작하기`,startConversationDescription:`AI 어시스턴트와 채팅을 시작하려면 메시지를 보내세요. 질문하고, 코드 도움을 받거나, 자연스러운 대화를 나누세요.`,scrollToBottom:`맨 아래로 스크롤`,newMessages:`새 메시지`,feedbackTags:{accuracy:`정확성`,style:`문체`,incomplete:`불완전`,harmful:`유해함`,formatting:`서식`},feedbackComment:`댓글 추가…`},imageGallery:{title:`이미지 갤러리`,noImages:`아직 이미지 없음`,noImagesHint:`오른쪽 패널을 사용하여 첫 번째 이미지를 생성하세요`,delete:`삭제`,download:`다운로드`,deleteConfirm:`이 이미지를 삭제하시겠습니까?`,deleteSuccess:`이미지가 삭제되었습니다`,deleteFailed:`이미지 삭제 실패`,downloadFailed:`이미지 다운로드 실패`,loadMore:`더 보기 ({{current}}/{{total}})`,loadFailed:`갤러리 로드 실패`},imageGeneration:{title:`이미지 생성`,prompt:`프롬프트`,promptPlaceholder:`만들고 싶은 이미지를 설명하세요...`,model:`모델`,selectModel:`모델 선택`,noModels:`사용 가능한 이미지 생성 모델 없음`,configurePlugin:`이미지 생성을 지원하는 플러그인을 구성하세요`,size:`크기`,quality:`품질`,style:`스타일`,generate:`생성`,generating:`생성 중...`,success:`이미지가 성공적으로 생성되었습니다`,failed:`이미지 생성 실패`,enterPrompt:`프롬프트를 입력하세요`,promptTooLong:`프롬프트가 최대 {{max}}자를 초과합니다`},mediaGeneration:{title:`미디어 생성`,description:`활성화된 미디어 제공자로 비디오, 사운드, 음악 또는 음성을 생성합니다.`,image:`이미지`,video:`비디오`,audio:`오디오`,sound:`사운드`,speech:`음성`,model:`모델`,voice:`음성 또는 음성 ID`,cloneVoice:`참조 음성 복제`,cloneVoiceDescription:`미리 설정된 음성 대신 참조 녹음을 바탕으로 이 음성을 생성합니다.`,referenceAudio:`참조 오디오`,referenceTranscript:`정확한 참조 녹취록`,referenceTranscriptPlaceholder:`참조 녹음에서 말한 내용을 정확히 입력하세요…`,referenceAudioTooLarge:`참조 오디오는 {{max}} 이하여야 합니다.`,cloneConsent:`화자의 허가를 받은 경우에만 음성을 복제하세요. 이 생성 작업을 위해 녹음이 선택한 제공업체로 전송되며 Libre WebUI에는 저장되지 않습니다.`,saveVoiceProfile:`재사용 가능한 음성으로 저장`,saveVoiceProfileDescription:`이 참조 녹음과 녹취록을 안전하게 저장합니다. 이 음성을 사용하는 모든 음성 배치마다 Libre WebUI가 두 자료를 선택한 제공업체로 전송합니다.`,voiceProfileName:`저장된 음성 이름`,voiceProfileNamePlaceholder:`예: 내 목소리`,voiceStorageConsent:`이 음성을 복제하고 저장할 수 있도록 화자의 허가를 받았음을 확인합니다. 참조 자료는 삭제할 때까지 저장됩니다.`,resolution:`해상도`,aspectRatio:`화면 비율`,duration:`길이`,providerDefault:`제공자 기본값`,generateAudio:`지원되는 경우 비디오와 함께 오디오 생성`,prompt:`프롬프트`,text:`음성으로 변환할 텍스트`,videoPlaceholder:`장면, 동작, 카메라 및 조명을 설명하세요...`,audioPlaceholder:`음성으로 말할 텍스트를 입력하세요...`,soundPlaceholder:`원하는 사운드, 음악, 분위기 또는 음성 응답을 설명하세요...`,generate:`생성`,generating:`생성 중… 몇 분 정도 걸릴 수 있습니다`,success:`미디어가 생성되어 Imagine에 저장되었습니다`,successWithSavedVoice:`미디어가 생성되었으며 이제 음성 설정에서 ‘{{name}}’을(를) 사용할 수 있습니다`,failed:`미디어 생성 실패`,loadFailed:`미디어 제공자 로드 실패`,noModels:`사용 가능한 {{kind}} 모델이 없습니다. 호환되는 제공자를 활성화하고 자격 증명을 먼저 저장하세요.`,consentTtl:{label:`동의 유효 기간`,never:`철회할 때까지`,days30:`30일`,days90:`90일`,days365:`1년`}},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:`아티팩트`,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:`엔드포인트`,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:`전체 API 엔드포인트 URL`,endpointHelp:`제공자 기본 URL이 아닌 작업 경로(예: /v1/chat/completions)를 포함한 전체 요청 URL을 입력하세요.`,invalidUrl:`유효한 전체 API 엔드포인트 URL을 입력하세요. 예: https://provider.example/v1/chat/completions`,insecureUrl:`API 엔드포인트는 HTTP 또는 HTTPS를 사용해야 합니다.`,httpWarning:`HTTP는 자격 증명이나 트래픽을 암호화하지 않습니다. 신뢰할 수 있는 네트워크에서만 사용하세요.`,invalidBaseUrl:`기본 URL에는 쿼리 문자열이나 프래그먼트가 포함될 수 없습니다.`,invalidApiPath:`/로 시작해야 하며 URL, 쿼리, 프래그먼트 또는 .. 세그먼트를 포함할 수 없습니다.`,tooLong:`값이 너무 깁니다`}},huggingface:{title:`HuggingFace 모델 브라우저`,subtitle:`Hub에서 모델을 찾아 선택하세요`,searchPlaceholder:`모델 검색...`,filters:`필터`,task:`태스크`,sortBy:`정렬`,noModels:`모델을 찾을 수 없습니다`,adjustSearch:`검색어나 필터를 조정해보세요`,gated:`제한됨`,selected:`선택됨`,select:`선택`,refresh:`새로고침`,modelsFound:`개 모델 발견`},demoMode:{title:`데모 모드`,github:`GitHub`},libreClaw:{title:`에이전트`,subtitle:`로컬 에이전트 실행, 승인, 일정, 메모리, 도구 및 사용량입니다.`,dashboard:`대시보드`,connection:{disconnectedTitle:`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에 요청하세요.`,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:{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, 풀 리퀘스트에는 별도의 신뢰할 수 있는 자격 증명 브로커가 필요합니다.`,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:`매월 1일 상태 보고서 개요.`}}},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:`모델이 {{server}}에서 {{tool}}을(를) 실행하려고 합니다. 이 호출은 이 대화 밖의 데이터를 바꿀 수 있습니다.`,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:`풀 리퀘스트 리뷰`,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:`내부 ID 없이 사용자 관점으로 묶은 항목.`},meetingNotes:{name:`회의록 형식`,description:`대화 기록에서 결정 사항, 실행 항목, 남은 질문을 정리.`}},importUrl:{button:`URL에서`,title:`URL에서 스킬 가져오기`,hint:`skills.sh 또는 GitHub 링크, owner/repo/skill, 또는 SKILL.md 파일 직접 링크를 붙여넣으세요.`,placeholder:`https://skills.sh/owner/repo/skill 또는 owner/repo/skill`,overwrite:`슬러그가 이미 있으면 내 스킬 덮어쓰기`},files:{title:`번들 파일`,hint:`모델이 read_skill_file로 필요할 때 읽는 참조 문서와 스크립트입니다.`,add:`파일 추가`,empty:`아직 번들 파일이 없습니다.`,pathPlaceholder:`docs/reference.md`,contentPlaceholder:`파일 내용…`,loadFailed:`파일을 불러오지 못했습니다`,saveFailed:`파일을 저장하지 못했습니다`,deleteFailed:`파일을 삭제하지 못했습니다`},folderImport:{button:`폴더에서`,missingSkillMd:`폴더에 SKILL.md 파일이 필요합니다`,done:`번들 파일 {{count}}개와 함께 스킬을 가져왔습니다`}},toolsPage:{title:`도구`,description:`모델이 호출할 수 있는 도구 서버와, 여러분이 부여한 승인입니다.`,approvalNotice:`대화 밖의 데이터를 바꾸는 도구는 항상 승인을 요청합니다. 해당 도구에 항상 허용이나 대화별 승인을 부여한 경우는 예외입니다.`,registerServer:`서버 등록`,registerHint:`Libre WebUI는 서버를 한 번 읽어 노출된 도구를 고정합니다. 변경 사항을 반영하려면 나중에 서버를 새로 고치세요.`,editServer:`서버 편집`,empty:`도구 서버가 없습니다`,emptyHintAdmin:`OpenAPI 또는 MCP 서버를 등록해 모델이 호출할 대상을 마련하세요.`,emptyHintUser:`관리자가 아직 도구 서버를 공유하지 않았습니다.`,loadFailed:`도구 서버를 불러오지 못했습니다.`,saved:`도구 서버를 저장했습니다`,saveFailed:`도구 서버를 저장하지 못했습니다.`,deleted:`도구 서버를 삭제했습니다`,deleteFailed:`도구 서버를 삭제하지 못했습니다.`,deleteTitle:`도구 서버 삭제`,deleteConfirm:`"{{name}}"을(를) 삭제할까요? 모두가 그 도구에 접근할 수 없게 됩니다.`,refresh:`도구 새로 고침`,refreshed:`서버에서 도구를 다시 읽었습니다`,refreshFailed:`서버를 읽지 못했습니다.`,toolsLoadFailed:`고정된 도구를 불러오지 못했습니다.`,overrideFailed:`도구를 변경하지 못했습니다.`,pinnedTools:`고정된 도구`,noPinnedTools:`이 서버는 도구를 노출하지 않았습니다.`,sideEffect:`부수 효과`,sideEffectOverride:`부수 효과`,specRevision:`리비전 {{revision}}`,credential:`개인 자격 증명`,credentialHint:`암호화해 저장하며, 이 서버로 보내는 여러분 본인의 호출에만 사용합니다.`,credentialPlaceholder:`토큰을 붙여넣으세요`,credentialSet:`자격 증명 설정됨`,credentialMissing:`자격 증명 필요`,credentialSaved:`자격 증명을 저장했습니다`,credentialSaveFailed:`자격 증명을 저장하지 못했습니다.`,credentialRemove:`삭제`,credentialRemoved:`자격 증명을 삭제했습니다`,credentialRemoveFailed:`자격 증명을 삭제하지 못했습니다.`,builtinSource:`이 서버`,kinds:{openapi:`OpenAPI`,mcp:`MCP`},authModes:{none:`인증 없음`,bearer:`Bearer 토큰`,header:`사용자 지정 헤더`},accessModes:{"admins-only":`관리자만`,"all-users":`모두`,granted:`접근 권한을 받은 사람만`},form:{name:`이름`,namePlaceholder:`날씨 API`,kind:`종류`,description:`설명`,descriptionPlaceholder:`이 서버가 하는 일`,baseUrl:`기본 URL`,specUrl:`스펙 URL`,specUrlHint:`선택 사항입니다. 비워 두면 기본 URL을 사용합니다.`,authMode:`인증`,authHeader:`헤더 이름`,accessMode:`사용할 수 있는 사람`,timeoutMs:`제한 시간(ms)`,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:`Streamable HTTP 기반 MCP 서버를 위한 출발점.`}}},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};
@@ -1,2 +0,0 @@
1
- var e={common:{loading:`Memuatkan...`,save:`Simpan`,saving:`Menyimpan...`,cancel:`Batal`,delete:`Padam`,edit:`Sunting`,close:`Tutup`,back:`Kembali`,next:`Seterusnya`,confirm:`Sahkan`,error:`Ralat`,success:`Berjaya`,warning:`Amaran`,or:`atau`,optional:`pilihan`,enabled:`Diaktifkan`,disabled:`Dinyahaktifkan`,on:`Hidup`,off:`Mati`,yes:`Ya`,no:`Tidak`,search:`Cari`,noResults:`Tiada hasil ditemui`,retry:`Cuba Semula`,refresh:`Muat Semula`,download:`Muat Turun`,upload:`Muat Naik`,export:`Eksport`,import:`Import`,reset:`Tetapkan Semula`,apply:`Guna`,clear:`Kosongkan`,all:`Semua`,none:`Tiada`,default:`Lalai`,custom:`Tersuai`,remove:`Buang`,home:`Laman utama`,more:`Lebih`},brand:{name:`Libre WebUI`,shortName:`Libre`},auth:{login:{title:`Selamat Kembali`,subtitle:`Log masuk ke akaun anda untuk meneruskan`,username:`Nama Pengguna`,usernamePlaceholder:`Masukkan nama pengguna anda`,password:`Kata Laluan`,passwordPlaceholder:`Masukkan kata laluan anda`,signIn:`Log Masuk`,signingIn:`Sedang log masuk...`,noAccount:`Belum mempunyai akaun?`,signUpHere:`Daftar di sini`,loginSuccess:`Berjaya log masuk!`,loginFailed:`Gagal log masuk`,checkCredentials:`Gagal log masuk. Sila semak kelayakan anda.`,approvalPending:`Akaun anda sedang menunggu kelulusan pentadbir.`,enterBoth:`Sila masukkan nama pengguna dan kata laluan`,githubSuccess:`Berjaya log masuk melalui GitHub!`,githubFailed:`Pengesahan GitHub gagal`,githubVerifyFailed:`Gagal mengesahkan pengesahan GitHub`,verificationFailed:`Pengesahan keselamatan gagal. Muat semula halaman dan cuba lagi.`},signup:{title:`Cipta Akaun`,subtitle:`Daftar untuk akaun baharu anda`,username:`Nama Pengguna`,usernamePlaceholder:`Pilih nama pengguna`,email:`E-mel`,emailPlaceholder:`emel@anda.com`,password:`Kata Laluan`,passwordPlaceholder:`Pilih kata laluan`,confirmPassword:`Sahkan Kata Laluan`,confirmPasswordPlaceholder:`Sahkan kata laluan anda`,createAccount:`Cipta Akaun`,creatingAccount:`Sedang mencipta akaun...`,hasAccount:`Sudah mempunyai akaun?`,signInHere:`Log masuk di sini`,signupSuccess:`Akaun berjaya dicipta!`,approvalPending:`Pendaftaran diterima. Pentadbir perlu meluluskan akaun anda.`,awaitingApproval:`Menunggu kelulusan`,awaitingApprovalDescription:`Akaun anda telah dicipta, tetapi pentadbir perlu mengaktifkannya sebelum anda boleh log masuk.`,backToSignIn:`Kembali ke log masuk`,signupFailed:`Gagal mendaftar`,tryAgain:`Gagal mendaftar. Sila cuba lagi.`,usernameRequired:`Nama pengguna dan kata laluan diperlukan`,passwordMismatch:`Kata laluan tidak sepadan`,passwordTooShort:`Kata laluan mesti sekurang-kurangnya 6 aksara`},logout:{button:`Log keluar`,success:`Berjaya log keluar`},oauth:{continueWith:`Teruskan dengan {{provider}}`,connectingTo:`Menyambung ke {{provider}}...`,github:`GitHub`,huggingFace:`Hugging Face`},checkingAuth:`Memeriksa pengesahan...`,welcome:`Selamat datang`,noEmail:`Tiada e-mel`,role:`Peranan`,id:`ID`,userId:`ID pengguna`,signInDescription:`Log masuk dengan akaun GitHub anda untuk meneruskan`,signInWithGitHub:`Log masuk dengan GitHub`,jwtActive:`Pengesahan JWT aktif`,jwtDescription:`Pengesahan berasaskan JWT dengan GitHub OAuth`,github:`GitHub`,provider:`Pembekal`,tagline:`Tindanan AI anda patut menjawab kepada anda.`,selfHosted:`Dihoskan sendiri · Apache 2.0`,highlights:{local:{title:`Tempatan dahulu`,body:`Perbualan dan fail anda kekal pada mesin tempat anda menjalankan ini.`},providers:{title:`Mana-mana penyedia`,body:`Model tempatan melalui Ollama, serta penyedia jauh yang anda pilih untuk ditambah.`},work:{title:`Kerja Terpencil`,body:`Beri model ruang kerja terkotak pasir dengan fail, terminal, dan pratonton.`}},oidc:{defaultProviderName:`Log masuk tunggal`}},setup:{welcome:{title:`Selamat Datang ke Libre WebUI`,subtitle:`Mari Mulakan`,description:`Sediakan Libre WebUI anda dalam beberapa langkah mudah`,createAdmin:`Cipta Akaun Pentadbir`,features:{secure:{title:`Selamat & Peribadi`,description:`Perbualan anda kekal dalam peranti anda`},fast:{title:`Pantas & Responsif`,description:`Dioptimumkan untuk kelajuan dan prestasi`},openSource:{title:`Sumber Terbuka`,description:`Perisian percuma dan sumber terbuka`}}},admin:{title:`Cipta Akaun Pentadbir`,subtitle:`Persediaan Pentadbir`,description:`Cipta akaun pentadbir pertama untuk Libre WebUI anda`,usernamePlaceholder:`Masukkan nama pengguna pentadbir`,passwordPlaceholder:`Masukkan kata laluan (min 6 aksara)`,confirmPlaceholder:`Sahkan kata laluan anda`,creating:`Sedang mencipta...`,createAdmin:`Cipta Pentadbir`,success:`Akaun pentadbir berjaya dicipta!`,failed:`Gagal mencipta akaun pentadbir`,approvalUnexpected:`Pentadbir awal tidak dapat diaktifkan. Sila cuba lagi.`,fillAllFields:`Sila isi semua ruangan`,note:`Ini akan menjadi akaun pentadbir utama untuk Libre WebUI anda`},encryptionKey:{title:`Simpan Kunci Penyulitan Anda`,subtitle:`Penting: Simpan Kunci Ini`,description:`Kunci penyulitan ini melindungi data sensitif anda. Simpan dengan selamat - anda memerlukannya jika perlu memulihkan pangkalan data anda.`,warning:`Amaran`,warningText:`Jika anda kehilangan kunci ini dan perlu memulihkan pangkalan data anda, data yang disulitkan (kunci API, keutamaan) tidak dapat dipulihkan.`,label:`Kunci Penyulitan Anda`,loading:`Memuatkan...`,copyToClipboard:`Salin ke papan keratan`,copied:`Kunci penyulitan disalin ke papan keratan!`,copyFailed:`Gagal menyalin kunci ke papan keratan`,envNote:`Kunci ini juga disimpan dalam fail backend/.env anda sebagai ENCRYPTION_KEY`,acknowledgment:`Saya telah menyimpan kunci penyulitan saya di lokasi yang selamat dan memahami bahawa kehilangannya boleh menyebabkan kehilangan data.`,confirmRequired:`Sila sahkan bahawa anda telah menyimpan kunci penyulitan`,continue:`Teruskan ke Libre WebUI`}},chat:{greeting:{morning:`Selamat pagi`,afternoon:`Selamat petang`,evening:`Selamat petang`,night:`Selamat malam`},followUp:`Susulan`,welcome:{helpToday:`Apa yang boleh saya bantu hari ini?`,helpTonight:`Apa yang boleh saya bantu malam ini?`,variety:{create:{title:`Apa yang mahu kita cipta?`,subtitle:`Mulakan dengan buah fikiran, lakaran, atau masalah yang sukar diselesaikan.`},explore:{title:`Dari mana kita patut bermula?`,subtitle:`Bawa persoalan yang sering bermain di fikiran anda.`},imagine:{title:`Apa yang anda bayangkan?`,subtitle:`Kita boleh membentuknya bersama-sama.`},focus:{title:`Apa yang wajar mendapat perhatian anda?`,subtitle:`Mari jelaskan langkah seterusnya.`},untangle:{title:`Apa yang bersimpul?`,subtitle:`Ceritakan dahulu versi yang masih berserabut.`},momentum:{title:`Mulakan apabila anda bersedia.`,subtitle:`Sambung semula idea, rancangan, atau perkara yang belum selesai.`},open:{title:`Apa yang sedang anda fikirkan?`,subtitle:`Fikiran kecil atau projek bercita-cita besar, kedua-duanya boleh.`},challenge:{title:`Apa yang mahu kita selesaikan?`,subtitle:`Beritahu saya bahagian yang masih belum menjadi.`},draft:{title:`Mari bermula di mana-mana.`,subtitle:`Tak perlu sempurna lagi.`},possibility:{title:`Ini boleh menjadi apa?`,subtitle:`Tunjukkan bahan mentahnya.`},unexpected:{title:`Mari cipta sesuatu yang tidak dijangka.`,subtitle:`Beri saya satu kekangan, suasana, atau idea yang masih samar.`}}},input:{placeholder:`Hantar mesej`,messagePlaceholder:`Mesej...`,attachImages:`Lampirkan imej`,attachments:`Lampiran dan ciri lanjutan`,sendMessage:`Hantar mesej`,stopGeneration:`Hentikan penjanaan`,menu:{uploadImages:`Muat naik imej`,attachDocument:`Lampirkan dokumen`,attachWebpage:`Lampirkan halaman web`,structuredOutput:`Output berstruktur`,attach:`Lampirkan`,documentAttached:`Dokumen dilampirkan`,webpageAttached:`Halaman web dilampirkan`,attachFailed:`Tidak dapat melampirkan`,attachKnowledge:`Lampirkan pengetahuan`,noCollections:`Tiada koleksi lagi — cipta satu di Tetapan → Dokumen`},voiceInput:`Input suara`,voiceStop:`Berhenti mendengar`,transcriptionSource:`Sumber pengecaman pertuturan`,browserSpeech:`Perkhidmatan pertuturan pelayar`,providerTranscriptionDisclosure:`Rakam dan hantar audio kepada {{provider}} untuk transkripsi`,webSearchOn:`Carian web hidup — balasan menggunakan hasil langsung`,webSearchOff:`Cari di web untuk mesej ini`,toolsOn:`Alat dihidupkan — model boleh memanggil alat yang diluluskan`,toolsOff:`Benarkan model memanggil alat untuk mesej ini`,thinkingOn:`Pemikiran aktif ({{level}})`,thinkingOff:`Fikir sebelum menjawab`},session:{new:`Sembang Baharu`,work:`Kerja`,chat:`Sembang`,private:`Peribadi`,incognito:`Sembang Inkognito`,privateMode:`Mod Peribadi`,privateDescription:`Perbualan ini tidak akan disimpan`,privateTooltip:`Mulakan perbualan peribadi yang tidak akan disimpan`,deleteConfirm:`Adakah anda pasti mahu memadamkan sembang ini?`,generatingTitle:`Menjana tajuk`,noChats:`Belum ada sembang`,createFirst:`Cipta sembang pertama anda di atas`,chats:`Sembang`,renameChat:`Namakan semula sembang`,openNewTab:`Buka dalam tab baharu`,pinChat:`Semat`,unpinChat:`Nyahsemat`,deleteChat:`Padam sembang`,archiveChat:`Arkibkan sembang`,groups:{pinned:`Disemat`,today:`Hari ini`,yesterday:`Semalam`,previous7Days:`7 hari lepas`,previous30Days:`30 hari lepas`,older:`Lebih lama`},folder:{new:`Folder baharu`,namePlaceholder:`Nama folder`,move:`Alih ke folder`,remove:`Keluarkan dari folder`,delete:`Padam folder`,deleteConfirm:`Padam folder ini? Sembang di dalamnya kekal.`},shareChat:`Kongsi sembang…`},persona:{applied:`Persona digunakan`,label:`Persona`,loadFailed:`Gagal memuatkan butiran persona`,removeFailed:`Gagal mengeluarkan persona`},model:{updated:`Model dikemas kini`,noModels:`Tiada model tersedia`,noModelsDescription:`Tiada model tersedia. Pastikan Ollama sedang berjalan dan mempunyai model yang dipasang.`,pullCommand:`ollama pull llama3.2:3b`,noModelsTooltip:`Tiada model tersedia. Sila pastikan Ollama sedang berjalan dan model telah dipasang.`,selectBeforePrivateChat:`Pilih model yang tersedia sebelum memulakan sembang peribadi`,selectBeforeSending:`Pilih model yang tersedia sebelum menghantar`},footer:{disclaimer:`LLM boleh membuat kesilapan - sahkan maklumat penting`,images:`{{count}} imej`,images_plural:`{{count}} imej`,structuredOutput:`Output berstruktur`},mediaUpload:{dropImagesHere:`Lepaskan imej di sini atau`,supportedFormats:`Sokongan: JPG, PNG, GIF, WebP (maks 10MB setiap satu)`,browse:`layari`},structuredOutput:{title:`Format Respons`,none:`Tiada (Bahasa Semula Jadi)`,noneDescription:`Respons bahasa semula jadi lalai`,json:`JSON`,jsonDescription:`Format JSON berstruktur`,list:`Senarai`,listDescription:`Tatasusunan item`,summary:`Ringkasan`,summaryDescription:`Ringkasan dokumen dengan perkara utama`,analysis:`Analisis`,analysisDescription:`Analisis berstruktur dengan kebaikan/keburukan`,custom:`Skema Tersuai`,customDescription:`Tentukan skema JSON anda sendiri`,customSchema:`Skema JSON tersuai`,schemaPreview:`Pratonton Skema`,applySchema:`Gunakan Skema`,cancel:`Batal`,enabled:`Output berstruktur diaktifkan`},controls:{title:`Kawalan sembang`,systemPrompt:`Prompt sistem`,systemPromptPlaceholder:`Arahan yang terpakai untuk sembang ini sahaja…`,advancedParams:`Parameter lanjutan`,advancedParamsDescription:`Penggantian untuk sembang ini. Medan kosong menggunakan lalai global.`,fromModel:`daripada model`,fromModelHint:`Nilai ini datang daripada tetapan yang disyorkan oleh model itu sendiri.`,contextCapped:`Konteks dihadkan pada {{context}} daripada {{trained}} yang dilatih untuk model ini, supaya ia masih dimuatkan.`,saved:`Kawalan disimpan`,saveFailed:`Tidak dapat menyimpan kawalan`,params:{temperature:`Suhu`,topP:`Top P`,topK:`Top K`,minP:`Min P`,maxTokens:`Token maks.`,repeatPenalty:`Penalti ulangan`,seed:`Benih`,contextLength:`Panjang konteks`},thinking:`Pemikiran`,thinkingDescription:`Sebanyak mana model berfikir sebelum menjawab. Model tanpa penaakulan mengabaikannya.`,compaction:`Pemadatan konteks`,compactionDescription:`Apabila pelayan memadatkan perbualan panjang, sembang ini boleh dikecualikan dan menyimpan sejarah penuhnya.`,compactionDefault:`Lalai pelayan`,compactionOff:`Dimatikan untuk sembang ini`},message:{sources:`Sumber`},toasts:{chatCreated:`Chat baharu dicipta`,createFailed:`Gagal mencipta sesi`,loadFailed:`Gagal memuatkan sesi`,chatDeleted:`Chat dipadam`,deleteFailed:`Gagal memadam chat`,deleteSessionFailed:`Gagal memadam sesi`,historyCleared:`Semua sejarah chat dipadamkan`,historyClearFailed:`Gagal memadamkan sejarah chat`,titleUpdated:`Tajuk chat dikemas kini`,updateFailed:`Gagal mengemas kini sesi`,noValidSession:`Tiada sesi chat yang sah. Sila cipta atau pilih chat.`,sessionNotFound:`Sesi tidak ditemui atau tidak sah. Sila pilih atau cipta sesi chat yang sah.`,noModelProvider:`Tiada pembekal model tersedia`,modelUnavailable:`Model yang dipilih "{{model}}" tidak tersedia daripada {{provider}}. Aktifkan semula pembekal itu atau pilih model lain.`,modelSwitched:`Ditukar kepada {{model}} (model sebelumnya tidak lagi tersedia)`,modelsLoadFailed:`Gagal memuatkan model`,modelUpdated:`Model dikemas kini untuk chat semasa`,modelUpdateFailed:`Gagal mengemas kini model sesi`},documents:{title:`Dokumen dalam konteks`},context:{title:`Tetingkap konteks:`,full:`{{percent}}% penuh`,tokensUsed:`{{used}} / {{budget}} token digunakan`,tokensUsedNoBudget:`{{used}} token digunakan`,capped:`dihadkan daripada {{trained}}`},queue:{title:`Dalam giliran ({{total}})`,moveUp:`Naik`,moveDown:`Turun`,updateFailed:`Tidak dapat mengemas kini prom dalam giliran`,enqueueFailed:`Tidak dapat membariskan prom`},compare:{title:`Banding model`,hint:`Jawab dengan sehingga {{max}} model tambahan`},fork:{action:`Cabangkan dari sini`,created:`Sembang dicabangkan`,failed:`Tidak dapat mencabangkan sembang`,origin:`Dicabangkan daripada {{title}}`,originUnknown:`sembang lain`},sharedReadOnly:`Dikongsi oleh {{owner}} — paparan sahaja`},sidebar:{navigation:{chat:`Sembang`,models:`Model`,personas:`Persona`,imagine:`Bayangkan`,agents:`Ejen`,work:`Kerja`,settings:`Tetapan`,usageAnalytics:`Penggunaan Penyedia`,system:`Sistem`,userManagement:`Pengurusan Pengguna`,signOut:`Log Keluar`,exploreLabel:`Terokai`,notes:`Nota`,calendar:`Kalendar`,automations:`Automasi`,prompts:`Prompt`,skills:`Kemahiran`,tools:`Alat`,channels:`Saluran`},toggleSize:`Togol saiz bar sisi`,expandSidebar:`Kembangkan bar sisi`},user:{menu:{changePicture:`Tukar Gambar`,settings:`Tetapan`,usageAnalytics:`Penggunaan Penyedia`,system:`Sistem`,userManagement:`Pengurusan Pengguna`,logout:`Log keluar`,pinShortcut:`Semat ke bar sisi`,unpinShortcut:`Nyahsemat dari bar sisi`,evaluations:`Penilaian`},avatar:{title:`Tukar Gambar Profil`,updated:`Gambar profil dikemas kini`,updateFailed:`Gagal mengemas kini gambar profil`,saving:`Menyimpan...`,label:`Avatar`,uploadAvatarImage:`Muat naik gambar avatar`,dragAndDrop:`Seret dan lepas gambar atau klik untuk menyemak imbas`,chooseImage:`Pilih Gambar`,uploading:`Memuat naik...`,enterImageUrl:`Atau masukkan URL gambar`,supportedFormats:`Menyokong: JPG, PNG, GIF, WebP (maks. 2MB). Gambar segi empat sama berfungsi paling baik.`,customAvatar:`Gambar avatar tersuai`,clickToChange:`Klik untuk menukar atau mengalih keluar`,removed:`Avatar dialih keluar`,uploaded:`Avatar berjaya dimuat naik`,invalidFile:`Sila pilih fail gambar yang sah`,fileTooLarge:`Saiz gambar avatar mesti kurang daripada 2MB`,readFailed:`Gagal membaca fail gambar`,uploadFailed:`Gagal memuat naik gambar avatar`},profile:{noEmail:`Tiada e-mel diberikan`}},settings:JSON.parse(`{"title":"Tetapan","tabs":{"appearance":"Penampilan","model":"Model","systemMessage":"Mesej Sistem","plugins":"Plugin","search":"Carian","generation":"Penjanaan","documents":"Dokumen","tts":"Suara","imageGen":"Imej","data":"Data","shortcuts":"Pintasan","about":"Perihal","sessions":"Sesi","apiKeys":"Kunci API"},"appearance":{"title":"Penampilan","language":{"title":"Bahasa","description":"Pilih bahasa pilihan anda"},"theme":{"title":"Tema","light":"Cerah","dark":"Gelap","amoled":"Hitam Tulen","system":"Sistem"},"accent":{"title":"Warna aksen","custom":"Warna tersuai","useColor":"Gunakan aksen {{color}}","behaviorTitle":"Palet antara muka","behaviorDescription":"Pilih sama ada aksen hanya digunakan pada kawalan atau menyesuaikan seluruh antara muka cerah atau gelap.","defaultStyle":"Lalai","defaultStyleDescription":"Kekalkan permukaan neutral tema cerah dan gelap.","adaptedStyle":"Sesuaikan dengan aksen","adaptedStyleDescription":"Warnakan permukaan, sempadan dan teks dengan warna aksen."},"chatInterface":{"title":"Antara Muka Sembang","showUsername":"Tunjukkan Nama Pengguna","showUsernameDescription":"Paparkan nama pengguna dalam mesej sembang","followUpSuggestions":"Cadangan susulan","followUpSuggestionsDescription":"Cadangkan balasan pantas selepas setiap respons","hapticFeedback":"Maklum balas haptik (Android)","hapticFeedbackDescription":"Gunakan getaran halus untuk tindakan mudah alih penting"},"background":{"title":"Imej Latar Belakang","enable":"Aktifkan imej latar belakang","enableDescription":"Tunjukkan latar belakang tersuai dengan kesan kabur","blur":"Kabur","opacity":"Kelegapan","upload":"Muat naik imej latar belakang","dragDrop":"Seret dan lepas imej atau klik untuk melayari","chooseImage":"Pilih Imej"}},"saveSettings":"Simpan Tetapan","model":{"title":"Tetapan Model","defaultModel":"Model Lalai","defaultModelDescription":"Model ini akan digunakan secara lalai untuk perbualan baharu","selectModel":"Pilih model","specializedModels":"Model Khusus","visionModel":"Model Penglihatan","selectVisionModel":"Guna model sembang semasa","visionModelDescription":"Digunakan secara automatik apabila konteks sembang keluar mengandungi imej. Pilih model yang menyokong input imej.","visionModelUpdateFailed":"Gagal mengemas kini model penglihatan: {{error}}","visionModelNoProvider":"Model penglihatan ini tiada identiti pembekal. Pilih model yang tersedia.","persona":"Persona","updateAll":"Kemas Kini Semua Model","updateAllDescription":"Semak kemas kini dan muat turun versi terkini semua model yang dipasang","updateAllButton":"Kemas Kini Semua","updating":"Mengemas kini model...","currentModelInfo":"Maklumat Model Semasa","name":"Nama","size":"Saiz","family":"Keluarga","format":"Format","status":"Status","statusStarting":"Memulakan...","statusComplete":"Selesai","statusError":"Ralat","bulkOperations":"Operasi Pukal","autoTitle":{"title":"Penjanaan Tajuk Auto","enable":"Aktifkan Tajuk Auto","enableDescription":"Jana tajuk secara automatik untuk perbualan baharu","taskModel":"Model Tugas","selectTaskModel":"Pilih model tugas","taskModelDescription":"Model yang digunakan untuk menjana tajuk perbualan"},"updatingModel":"Mengemas kini {{name}} ({{current}}/{{total}})","modelsProgress":"{{current}} daripada {{total}} model"},"systemMessage":{"title":"Mesej Sistem","description":"Tetapkan mesej sistem tersuai yang akan digunakan untuk semua perbualan baharu.","placeholder":"Masukkan mesej sistem...","saved":"Mesej sistem disimpan","saveFailed":"Gagal menyimpan mesej sistem"},"plugins":{"title":"Plugin","description":"Urus plugin yang dipasang","providerConnections":"Sambungan penyedia","providerConnectionsDescription":"Sambung, konfigur, dan periksa penyedia model melalui pemalam.","providers":"Penyedia","searchProviders":"Cari penyedia","noProvidersFound":"Tiada penyedia sepadan dengan carian anda.","selectProvider":"Pilih penyedia","selectProviderDescription":"Pilih penyedia untuk memeriksa sambungan dan katalog modelnya.","addNew":"Tambah Plugin Baharu","upload":"Muat Naik Plugin","addJson":"Tambah JSON","uploading":"Memuat naik...","jsonPlaceholder":"Tampal konfigurasi JSON plugin...","install":"Pasang Plugin","noPlugins":"Tiada plugin dipasang","noPluginsDescription":"Tambah plugin untuk memanjangkan fungsi","loading":"Memuatkan plugin...","installed":"Plugin Dipasang","active":"Plugin Aktif","activeLabel":"Aktif","inactive":"Tidak Aktif","activate":"Aktifkan","deactivate":"Nyahaktifkan","models":"model","apiKeySet":"Kunci API Ditetapkan","apiKeyConfiguration":"Konfigurasi Kunci API","apiKeyDescription":"Simpan kunci API peribadi untuk {{name}}.","apiKeyEnvAlternative":"Sebagai alternatif, tetapkan","environmentVariable":"pemboleh ubah persekitaran","apiKeyConfigured":"Kunci API dikonfigurasi","apiKeyPlaceholder":"Masukkan kunci API anda...","saveApiKey":"Simpan Kunci API","showApiKey":"Tunjukkan kunci API","hideApiKey":"Sembunyikan kunci API","configure":"Konfigur","providerSettings":"Tetapan penyedia","status":"Status","defaultEndpoint":"Titik akhir lalai","modelCatalog":"Katalog model","modelCatalogDescription":"Model yang ditemui dan dikonfigur untuk penyedia ini serta keupayaannya.","refreshModels":"Segarkan model","noModelsConfigured":"Tiada model dikonfigurasi untuk penyedia ini.","modelId":"ID Model","capabilities":"Keupayaan","modelCatalogUpdated":"Katalog model dikemas kini: {{count}} model.","modelCatalogUnchanged":"Katalog model sudah dikemas kini.","modelCatalogNeedsApiKey":"Tambah kunci API yang sah untuk penyedia ini bagi memuatkan senarai model langsungnya.","modelCatalogUnavailable":"Tidak dapat memuatkan senarai model penyedia.","modelCatalogRefreshFailed":"Gagal memuat semula katalog model","capability":{"chat":"Sembang","embedding":"Pembenaman","image":"Imej","speech":"Ucapan","transcription":"Transkripsi"},"exportPlugin":"Eksport plugin","deletePlugin":"Padam plugin","apiKey":{"title":"Kunci API","placeholder":"Masukkan kunci API","save":"Simpan Kunci","remove":"Buang Kunci","configured":"Kunci API Dikonfigurasi","notConfigured":"Kunci API Diperlukan","saved":"Kunci API berjaya disimpan","removed":"Kunci API dibuang","saveFailed":"Gagal menyimpan kunci API","removeFailed":"Gagal membuang kunci API","enterKey":"Sila masukkan kunci API"},"variables":"Variables"},"generation":{"title":"Pilihan Penjanaan","description":"Konfigurasi cara AI menjana respons","scopeLabel":"Digunakan pada","scopeAll":"Semua model","scopeModel":"Hanya {{model}}","scopeAllHint":"Nilai yang digunakan setiap model melainkan ia mempunyai nilainya sendiri.","scopeModelHint":"Disimpan untuk model ini sahaja dan mengatasi nilai umum.","advancedSettings":"Tetapan penjanaan lanjutan","advancedSettingsDescription":"Persampelan, had token, konteks, penalti, dan jujukan berhenti","coreParameters":"Parameter Teras","temperature":"Suhu","temperatureDescription":"Mengawal rawak. Nilai lebih rendah lebih fokus, nilai lebih tinggi lebih kreatif.","topP":"Top P","topPDescription":"Mengawal kepelbagaian melalui persampelan nukleus. Nilai lebih rendah fokus pada token berkemungkinan.","topK":"Top K","topKDescription":"Menghadkan pemilihan token kepada K teratas yang paling berkemungkinan. Tetapkan 0 untuk nyahaktif.","minP":"Min P","minPDescription":"Ambang kebarangkalian minimum untuk pemilihan token.","generationControl":"Kawalan Penjanaan","maxTokens":"Token Maksimum","maxTokensDescription":"Bilangan maksimum token untuk dijana dalam respons.","repeatPenalty":"Penalti Ulangan","repeatPenaltyDescription":"Menghukum token berulang. Nilai lebih tinggi mengurangkan pengulangan.","contextLength":"Panjang Konteks","contextLengthDescription":"Saiz tingkap konteks maksimum untuk perbualan.","seed":"Benih","optional":"pilihan","random":"Rawak","seedDescription":"Tetapkan benih khusus untuk output yang boleh diulang.","advancedOptions":"Pilihan Lanjutan","presencePenalty":"Penalti Kehadiran","presencePenaltyDescription":"Menghukum token yang muncul dalam konteks.","frequencyPenalty":"Penalti Kekerapan","frequencyPenaltyDescription":"Menghukum token yang kerap digunakan.","stopSequences":"Urutan Berhenti","commaSeparated":"dipisahkan koma","stopSequencesDescription":"Token tersuai yang akan menghentikan penjanaan apabila ditemui.","resetDefaults":"Tetap Semula ke Lalai","saveOptions":"Simpan Pilihan","embeddingSettings":"Tetapan Pembenaman","enableEmbeddings":"Aktifkan Pembenaman Dokumen","thinking":"Pemikiran","thinkingDescription":"Tahap pemikiran lalai untuk jawapan. Setiap sembang boleh mengubahnya.","thinkingLevels":{"default":"Lalai model","defaultWith":"Lalai model ({{level}})","off":"Mati","on":"Hidup","low":"Rendah","medium":"Sederhana","high":"Tinggi"}},"documents":{"title":"Tetapan Dokumen","embeddings":{"title":"Pembenaman","enable":"Aktifkan pembenaman dokumen","model":"Model Pembenaman","modelDescription":"Pilih model yang digunakan untuk pembenaman dokumen","chunkSize":"Saiz Cebisan","chunkSizeInTokens":"(dalam token)","chunkSizeDescription":"Saiz cebisan teks untuk pembenaman","chunkOverlap":"Pertindihan Cebisan","chunkOverlapInTokens":"(dalam token)","chunkOverlapDescription":"Pertindihan antara cebisan berturutan","similarityThreshold":"Ambang Persamaan","similarityDescription":"Skor persamaan minimum untuk memasukkan hasil","status":"Status Pembenaman","statusLabel":"Status","available":"Tersedia","unavailable":"Tidak Tersedia","chunksWithEmbeddings":"Cebisan dengan pembenaman","coverage":"Liputan","regenerate":"Jana Semula Pembenaman","regenerating":"Menjana semula..."},"collections":{"title":"Koleksi pengetahuan","description":"Kumpulkan dokumen ke dalam koleksi dan lampirkan pada mana-mana sembang.","namePlaceholder":"Nama koleksi","create":"Cipta","none":"Tiada koleksi","deleteConfirm":"Padam koleksi ini? Dokumen di dalamnya kekal.","createFailed":"Gagal mencipta koleksi","deleteFailed":"Gagal memadamkan koleksi","assignFailed":"Gagal memindahkan dokumen","share":"Kongsi koleksi","shared":"dikongsi"},"library":{"title":"Dokumen yang dimuat naik","description":"Dokumen yang tersedia sebagai konteks sembang. Dokumen yang dimuat naik dalam sembang kekal dalam perbualannya; dokumen tanpa sembang dan koleksi menyertai setiap perbualan.","empty":"Tiada dokumen dimuat naik lagi.","chatScope":"Satu sembang","everyChatScope":"Semua sembang","deleteConfirm":"Padam \\"{{name}}\\"? Ia akan hilang daripada semua sembang.","deleteFailed":"Gagal memadamkan dokumen"}},"tts":{"title":"Teks ke Pertuturan","description":"Konfigurasi tetapan teks ke pertuturan untuk membaca mesej dengan kuat","loadingProviders":"Memuatkan penyedia TTS...","noProviders":"Tiada Penyedia TTS","noProvidersDescription":"Konfigurasi plugin dengan sokongan TTS untuk mengaktifkan teks ke pertuturan","enable":"Aktifkan TTS","enableDescription":"Benarkan teks ke pertuturan untuk mesej pembantu","autoPlay":"Main Auto Respons","autoPlayDescription":"Baca mesej pembantu baharu secara automatik dengan kuat","streamSentences":"Main balik batch semula jadi","streamSentencesDescription":"Jana beberapa batch yang mengambil kira frasa lebih awal dan mainkannya sebagai satu respons berterusan.","voiceConfiguration":"Konfigurasi Suara","model":"Model TTS","modelDescription":"Pilih model untuk penjanaan teks ke pertuturan","voice":"Suara","selectVoice":"Pilih suara","voiceDescription":"Pilih suara untuk teks ke pertuturan","providerDefaultVoice":"Model ini menggunakan suara lalainya melainkan anda memberikan rakaman rujukan semasa menjana pertuturan.","voiceCloningAvailable":"Pengklonan suara tersedia","voiceCloningAvailableDescription":"Gunakan Bayangkan → Audio untuk mencipta pertuturan daripada rakaman rujukan yang telah mendapat persetujuan berserta transkrip tepatnya. Anda boleh menyimpan rujukan sebagai suara yang boleh digunakan semula.","savedVoiceOption":"{{name}} (suara tersimpan)","savedVoices":"Suara tersimpan","loadingSavedVoices":"Memuatkan suara tersimpan…","deleteSavedVoice":"Padam suara tersimpan {{name}}","deleteSavedVoiceConfirm":"Padam suara tersimpan “{{name}}”? Rakaman rujukan dan transkripnya akan dibuang.","savedVoiceDeleted":"Suara tersimpan telah dipadam","savedVoicePreferenceCleanupFailed":"Suara tersimpan telah dipadam, tetapi tetapan Pertuturan tidak dapat ditetapkan semula","savedVoiceDeleteFailed":"Gagal memadam suara tersimpan","speed":"Kelajuan","speedSlow":"0.5x","speedNormal":"1.0x","speedFast":"2.0x","availableProviders":"Penyedia Tersedia","models":"model","test":"Uji","testing":"Menguji...","stop":"Berhenti","consentRevoked":"Persetujuan ditarik balik","consentExpired":"Persetujuan tamat tempoh","transferCount":"dihantar kepada penyedia {{total}} kali","consentExpires":"persetujuan hingga {{date}}","revokeSavedVoice":"Tarik balik persetujuan untuk {{name}}","revokeSavedVoiceConfirm":"Tarik balik persetujuan untuk “{{name}}”? Suara yang disimpan tidak boleh digunakan lagi, tetapi rekod persetujuan dikekalkan.","savedVoiceRevoked":"Persetujuan ditarik balik","savedVoiceRevokeFailed":"Gagal menarik balik persetujuan"},"imageGen":{"title":"Penjanaan Imej","description":"Konfigurasi tetapan dan penyedia penjanaan imej","loadingProviders":"Memuatkan penyedia penjanaan imej...","noProviders":"Tiada Penyedia Penjanaan Imej","noProvidersDescription":"Konfigurasi plugin dengan sokongan penjanaan imej","enable":"Aktifkan Penjanaan Imej","enableDescription":"Benarkan penjanaan imej AI dalam perbualan","configuration":"Konfigurasi","model":"Model","modelDescription":"Pilih model untuk penjanaan imej","size":"Saiz","sizeDescription":"Resolusi imej yang dijana","quality":"Kualiti","qualityDescription":"Tahap kualiti imej yang dijana","style":"Gaya","styleDescription":"Pratetap gaya untuk imej yang dijana","availableProviders":"Penyedia Tersedia","models":"model"},"data":{"title":"Pengurusan Data","export":"Eksport Data","exportDescription":"Muat turun arkib mudah alih yang mengandungi keutamaan, folder sembang, sesi dan mesej, nota, koleksi pengetahuan serta teks dokumen yang diekstrak.","archiveScopeV3":"Merangkumi keutamaan, sembang, folder, nota, koleksi pengetahuan dan teks dokumen yang diekstrak. Tidak termasuk akaun dan rahsia, suara klon biometrik, media yang dijana, persona dan memori serta data atau volum Work.","exportAll":"Eksport Semua Data","import":"Import Data","importDescription":"Import data dari eksport sebelumnya.","importData":"Import Data","importing":"Mengimport...","clearSessions":"Kosongkan Sesi","clearSessionsDescription":"Padam semua sesi sembang. Tindakan ini tidak boleh dibatalkan.","clearAll":"Kosongkan Semua","clearing":"Mengosongkan...","importOptions":"Pilihan Import","importOptionsDescription":"Pilih cara mengendalikan data sedia ada","validatingArchive":"Mengesahkan arkib dan mengira perubahan…","archiveValidationFailed":"Pengesahan arkib gagal","preflightReport":"Pratonton import","preflightIncoming":"{{folders}} folder · {{sessions}} sembang · {{messages}} mesej · {{notes}} nota · {{collections}} koleksi · {{documents}} dokumen · {{chunks}} cebisan","preflightRemappedIds":"{{count}} ID akan dipetakan semula untuk melindungi data akaun lain.","skipDuplicates":"Langkau pendua","overwrite":"Tulis ganti sedia ada","importResults":"Hasil Import","preferences":"Keutamaan","imported":"Diimport","failed":"Gagal","sessions":"Sesi","sessionFolders":"Folder sesi","notes":"Nota","knowledgeCollections":"Koleksi pengetahuan","importedLabel":"diimport","overwrittenLabel":"ditulis ganti","skipped":"dilangkau","toCreate":"untuk dicipta","toOverwrite":"untuk ditulis ganti","toSkip":"untuk dilangkau","documents":"Dokumen","warnings":"Amaran","refreshAfterImportFailed":"Data telah diimport, tetapi sesetengah paparan tidak dapat disegar semula. Muat semula Libre WebUI untuk melihat semua perubahan.","errors":"Ralat","archivedChats":{"title":"Sembang diarkibkan","empty":"Tiada sembang diarkibkan","unarchive":"Nyahakrib"}},"about":{"title":"Perihal","versionLabel":"Versi","ollama":{"title":"Status Ollama","version":"Versi","healthy":"Sihat","unhealthy":"Tidak Sihat"},"stats":{"models":"Model","sessions":"Sesi"},"features":{"privacy":{"title":"Privasi Diutamakan","description":"Data anda kekal dalam peranti anda"},"openSource":{"title":"Sumber Terbuka","description":"Perisian percuma dan sumber terbuka"},"localInference":{"title":"Inferens Tempatan","description":"Jalankan model AI secara tempatan dengan Ollama"}},"openSourceBy":"Sumber terbuka oleh {{company}}","links":{"title":"Pautan","github":"GitHub","githubDescription":"Lihat kod sumber dan sumbang","website":"Laman Web","websiteDescription":"Lawati laman web kami","documentation":"Documentation","reportIssue":"Laporkan Isu","reportIssueDescription":"Laporan pepijat & permintaan ciri","documentationDescription":"Guides, tutorials and API reference","forgejo":"Forgejo Mirror","forgejoDescription":"Self-hosted Forgejo repository","sponsor":"Penaja","sponsorDescription":"Bantu biayai projek ini","star":"Bintang di GitHub","starDescription":"Bintang membantu orang lain menemui projek ini"},"version":"Versi {{version}}","updates":{"checking":"Menyemak kemas kini…","upToDate":"Anda menggunakan versi terkini","updateAvailable":"Versi {{version}} tersedia","ahead":"Mendahului keluaran terkini ({{version}})","checkFailed":"Tidak dapat menyemak kemas kini","viewChangelog":"Lihat log perubahan"}},"groups":{"general":"Umum","chat":"Sembang","media":"Suara & imej","connections":"Sambungan"},"search":{"title":"Carian web","description":"Cari di web melalui instans SearXNG yang dihoskan sendiri. Apabila diaktifkan, penggubah sembang menawarkan togol carian dan tugas Work dengan akses rangkaian boleh mencari.","enableLabel":"Dayakan carian web","enableDescription":"Tawarkan carian web kepada sembang dan tugas Work. Carian dijalankan di pihak pelayan terhadap instans yang dikonfigurasi.","urlLabel":"URL SearXNG","urlDescription":"URL asas instans SearXNG yang boleh dicapai dari pelayan. Stack deploy peribadi yang disertakan menyediakan http://searxng:8080.","maxResultsLabel":"Hasil setiap carian","maxResultsDescription":"Berapa banyak hasil dimasukkan ke balasan atau panggilan alat, 1-100.","maxResultsInvalid":"Hasil setiap carian mesti antara 1 dan 100.","safeSearchLabel":"Carian selamat","safeSearchDescription":"Minta enjin menapis hasil eksplisit.","test":"Uji sambungan","testing":"Menguji…","testOk":"Carian berfungsi — {{results}} hasil dikembalikan","testFailed":"Ujian carian gagal","save":"Simpan","saved":"Tetapan carian disimpan","saveFailed":"Tidak dapat menyimpan tetapan carian"},"compaction":{"title":"Pemadatan konteks","description":"Apabila perbualan melepasi ambang token, pelayan akan meringkaskan mesej lamanya dan hanya mengekalkan mesej terbaharu secara kata demi kata. Terpakai kepada setiap pengguna pelayan ini.","thresholdLabel":"Ambang token","thresholdDescription":"Anggaran token konteks yang melebihinya menyebabkan sejarah lama diringkaskan, 500-1,000,000.","thresholdInvalid":"Ambang token mestilah antara 500 dan 1,000,000.","keepRecentLabel":"Mesej terbaharu yang dikekalkan","keepRecentDescription":"Berapa banyak mesej terbaharu yang sentiasa kekal kata demi kata, 2-200.","keepRecentInvalid":"Bilangan mesej terbaharu yang dikekalkan mestilah antara 2 dan 200.","modelLabel":"Model pemadatan","modelDescription":"Model yang menulis ringkasan. Model perbualan itu sendiri digunakan jika tiada yang dipilih.","sessionModelOption":"Guna model perbualan","promptLabel":"Gesaan ringkasan tersuai","promptPlaceholder":"Biarkan kosong untuk menggunakan gesaan terbina dalam","promptDescription":"Pemboleh ubah templat {{previousSummaryVariable}} dan {{messagesVariable}} akan digantikan dengan ringkasan sebelumnya dan mesej yang sedang diringkaskan.","saved":"Tetapan pemadatan disimpan","saveFailed":"Tetapan pemadatan tidak dapat disimpan","loadFailed":"Tetapan pemadatan tidak dapat dimuatkan"},"sessions":{"title":"Sesi","description":"Semua tempat akaun ini dilog masuk. Melog keluar sesi berkuat kuasa serta-merta; log masuk semula akan memulihkan akses.","signOutOthers":"Log keluar sesi lain","signingOutOthers":"Sedang log keluar…","signOut":"Log keluar","signingOut":"Sedang log keluar…","revoked":"Sesi telah dilog keluar.","revokeFailed":"Sesi tidak dapat dilog keluar.","othersRevoked":"Sesi lain yang dilog keluar: {{count}}","loadFailed":"Sesi tidak dapat dimuatkan.","empty":"Tiada sesi ditemui.","current":"Sesi ini","revokedBadge":"Dilog keluar","unknownDevice":"Peranti tidak dikenali","createdAt":"Dilog masuk","lastSeenAt":"Aktif terakhir","expiresAt":"Luput"},"apiKeys":{"title":"Kunci API","description":"Token berskop untuk skrip dan integrasi. Setiap kunci hanya mempunyai akses kepada skop yang anda pilih.","newKeyTitle":"Kunci API baharu anda","copy":"Salin","copied":"Disalin ke papan keratan.","copyFailed":"Gagal menyalin.","showOnceWarning":"Salin sekarang. Ia tidak akan dipaparkan lagi.","dismiss":"Selesai","createTitle":"Cipta kunci","nameLabel":"Nama","namePlaceholder":"cth. saluran CI","nameRequired":"Berikan nama untuk kunci ini.","expiryLabel":"Luput dalam hari (pilihan)","expiryPlaceholder":"Tidak luput","expiryInvalid":"Tempoh luput mestilah nombor bulat dalam hari.","scopesLabel":"Skop","scopesRequired":"Pilih sekurang-kurangnya satu skop.","create":"Cipta kunci","creating":"Mencipta…","created":"Kunci API dicipta.","createFailed":"Kunci API tidak dapat dicipta.","revoke":"Batalkan","revoking":"Membatalkan…","revoked":"Kunci API dibatalkan.","revokeFailed":"Kunci API tidak dapat dibatalkan.","revokedBadge":"Dibatalkan","loadFailed":"Kunci API tidak dapat dimuatkan.","empty":"Belum ada kunci API.","createdAt":"Dicipta","lastUsedAt":"Terakhir digunakan","expiresAt":"Luput","neverExpires":"Tidak luput"}}`),models:{title:`Model`,subtitle:`Tarik, urus dan pantau model Ollama anda`,installed:`Model Dipasang`,available:`Model Tersedia`,pull:`Tarik Model`,pulling:`Menarik...`,delete:`Padam Model`,deleting:`Memadamkan...`,size:`Saiz`,modified:`Diubah Suai`,family:`Keluarga`,parameters:`Parameter`,quantization:`Kuantisasi`,noModels:`Tiada model dipasang`,pullFirst:`Tarik model untuk bermula`,noModelsFound:`Tiada model ditemui`},personas:{title:`Persona`,create:`Cipta Persona`,edit:`Sunting Persona`,delete:`Padam Persona`,name:`Nama`,description:`Penerangan`,systemPrompt:`Arahan Sistem`,model:`Model`,avatar:`Avatar`,background:`Latar Belakang`,noPersonas:`Tiada persona dicipta`,createFirst:`Cipta persona pertama anda untuk menyesuaikan pengalaman sembang`},gallery:{title:`Galeri`,subtitle:`Galeri imej yang dijana AI anda`,imageCount:`{{count}} imej`,generate:`Jana Imej`,generateDescription:`Cipta imej dengan AI`,generating:`Menjana...`,prompt:`Arahan`,promptPlaceholder:`Terangkan imej yang anda mahu jana...`,noImages:`Belum ada imej dijana`,download:`Muat Turun`,delete:`Padam`,regenerate:`Jana Semula`,model:`Model`,size:`Saiz`,quality:`Kualiti`,created:`Dicipta`},errors:{generic:`Ralat telah berlaku`,network:`Ralat rangkaian. Sila semak sambungan anda.`,unauthorized:`Anda tidak dibenarkan melakukan tindakan ini.`,notFound:`Sumber yang diminta tidak ditemui.`,serverError:`Ralat pelayan. Sila cuba lagi kemudian.`,validation:`Sila semak input anda dan cuba lagi.`},keyboard:{title:`Pintasan Papan Kekunci`,toggleSidebar:`Togol bar sisi`,openSettings:`Buka tetapan`,toggleDarkMode:`Togol mod gelap`,showShortcuts:`Tunjukkan pintasan papan kekunci`,closeModals:`Tutup modal`,groups:{navigation:`Navigasi`,general:`Umum`,chat:`Sembang`,workspace:`Ruang kerja`},actions:{sendMessage:`Hantar mesej`,newLine:`Baris baharu dalam mesej`,saveEdit:`Simpan mesej yang disunting`,cancelEdit:`Batalkan suntingan`,saveFile:`Simpan fail`,formatCode:`Formatkan kod`},description:`Semua pintasan papan kekunci yang ada dalam Libre WebUI.`,newChat:`Sembang baharu`,newWork:`Sesi Work baharu`,openPalette:`Buka palet arahan`},modelManager:{title:`Model`,loading:`Memuatkan model...`,systemStatus:{online:`Ollama Dalam Talian`,offline:`Ollama Luar Talian`,models:`model`,models_plural:`model`,running:`berjalan`,vram:`VRAM`},sections:{pull:`Tarik Model Baharu`,library:`Layari Pustaka`,huggingface:`HuggingFace Hub`,running:`Model Sedang Berjalan`,local:`Model Tempatan`,advanced:`Tindakan Lanjutan`,catalog:`Katalog Model`},catalog:{searchPlaceholder:`Cari model mengikut nama atau penyedia...`,noModels:`Belum ada model tersedia.`,empty:`Tiada model sepadan dengan carian anda.`,providerOllama:`Ollama`,hidden:`Tersembunyi`,visibilityFailed:`Keterlihatan model tidak dapat dikemas kini.`,filterAll:`Semua model`,filterLocal:`Tempatan`,filterProviders:`Penyedia`,filterHidden:`Tersembunyi`,enableAll:`Aktifkan yang dipaparkan`,disableAll:`Nyahaktifkan yang dipaparkan`,rename:`Sunting nama dan gambar`,setPicture:`Tetapkan gambar`,clearPicture:`Buang gambar`,pictureInvalid:`Pilih fail imej.`,pictureTooLarge:`Gambar mestilah bawah 192 KB.`,saving:`Menyimpan…`,hide:`Sembunyikan daripada pengguna`,show:`Tunjukkan kepada pengguna`},pull:{placeholder:`Masukkan nama model (cth., llama3.2:3b, deepseek-r1:14b)`,button:`Tarik`,cancel:`Batal`,popular:`Model popular:`,browseAll:`Layari semua model di ollama.com`,success:`Model {{name}} berjaya ditarik`,cancelled:`Tarikan model dibatalkan`,failed:`Gagal menarik model`,enterName:`Sila masukkan nama model`,restricted:`Pemasangan model dihadkan kepada pentadbir sahaja pada instance ini.`},progress:{starting:`Memulakan...`,pulling:`Memuat turun model...`,pullingLayer:`memuat turun`,verifying:`Mengesahkan integriti...`,verifyingDigest:`mengesahkan digest sha256`,writing:`Menulis manifes...`,cleaning:`Membersihkan...`},library:{available:`tersedia`,search:`Cari model...`,noResults:`Tiada model ditemui yang sepadan dengan kriteria anda`,installed:`Dipasang`,more:`+{{count}} lagi`,refresh:`Muat Semula Pustaka`},huggingface:{browseAll:`Layari semua di HuggingFace`,checkingGguf:`Mencari fail GGUF...`,noGgufAvailable:`Tiada fail GGUF tersedia untuk muat turun terus ke Ollama`,ggufFilesCount:`Fail GGUF ({{count}}) - Muat turun terus ke Ollama`,noModelsFound:`Tiada model dijumpai`,noResults:`Tiada model dijumpai. Cuba laraskan carian atau penapis anda.`,browseAllLink:`Lihat semua`,search:`Cari model HuggingFace...`,by:`oleh`,gated:`Akses terhad`,viewOnHF:`Lihat di HuggingFace`,sortDownloads:`Muat turun`,sortLikes:`Suka`,sortRecent:`Terkini`,taskTextGeneration:`Penjanaan Teks`,taskTextToSpeech:`Teks ke Pertuturan`,taskTextToImage:`Teks ke Imej`,taskSpeechRecognition:`Pengecaman Pertuturan`,tasks:{textGen:`Penjanaan Teks`,tts:`Teks ke Pertuturan`,image:`Teks ke Imej`,stt:`Pengecaman Pertuturan`},sort:{downloads:`Paling Banyak Dimuat Turun`,likes:`Paling Disukai`,recent:`Dikemas Kini Baru-baru Ini`}},local:{noModels:`Belum ada model dipasang`,pullToStart:`Tarik model di atas untuk bermula`,installed:`dipasang`,running:`Berjalan`,info:`Maklumat`,copy:`Salin`,delete:`Padam`,deleteConfirm:`Adakah anda pasti mahu memadamkan model "{{name}}"?`,deleteSuccess:`Model {{name}} berjaya dipadam`,deleteFailed:`Gagal memadamkan model`},advanced:{createModel:`Cipta Model`,fromModelfile:`Dari Modelfile`,copyModel:`Salin Model`,duplicateExisting:`Duplikasi sedia ada`,testEmbeddings:`Uji Pembenaman`,generateVectors:`Jana vektor`,healthCheck:`Semakan Kesihatan`,testConnection:`Uji sambungan`,healthy:`Ollama sihat!`},modals:{details:{title:`Butiran Model`,info:`Maklumat Model`,family:`Keluarga`,parameters:`Parameter`,quantization:`Kuantisasi`,format:`Format`,systemPrompt:`Arahan Sistem`,template:`Templat`,license:`Lesen`,modelfile:`Modelfile`,noDetails:`Tiada butiran tersedia`},copy:{title:`Salin Model`,source:`Model Sumber`,selectModel:`Pilih model...`,newName:`Nama Model Baharu`,placeholder:`cth., model-tersuai-saya`,copying:`Menyalin...`,button:`Salin Model`,success:`Model disalin ke {{name}}`,failed:`Gagal menyalin model`,enterBoth:`Sila masukkan kedua-dua nama sumber dan destinasi`},create:{title:`Cipta Model Tersuai`,name:`Nama Model`,namePlaceholder:`cth., pembantu-saya`,modelfile:`Modelfile`,modelfilePlaceholder:`FROM llama3.2
2
- SYSTEM Anda adalah pembantu yang berguna.`,see:`Lihat`,docs:`Dokumentasi Modelfile`,docsLink:`untuk rujukan sintaks`,creating:`Mencipta...`,button:`Cipta Model`,success:`Model {{name}} berjaya dicipta`,failed:`Gagal mencipta model`,enterBoth:`Sila masukkan nama model dan kandungan Modelfile`},embeddings:{title:`Uji Pembenaman`,model:`Model Pembenaman`,selectModel:`Pilih model...`,recommended:`Disyorkan: nomic-embed-text, mxbai-embed-large`,input:`Teks Input`,placeholder:`Masukkan teks untuk menjana pembenaman...`,generating:`Menjana...`,button:`Jana Pembenaman`,result:`Hasil ({{count}} dimensi)`,success:`Menjana vektor pembenaman {{count}} dimensi`,failed:`Gagal menjana pembenaman`,enterBoth:`Sila pilih model dan masukkan teks`}}},personaManager:{title:`Persona`,subtitle:`Cipta dan urus persona AI dengan personaliti, ingatan dan tingkah laku tersuai`,loading:`Memuatkan persona...`,createButton:`Cipta Persona`,importExport:`Import/Eksport`,stats:{title:`Persona Anda`,count:`{{count}} persona dicipta`,count_plural:`{{count}} persona dicipta`},empty:{title:`Belum ada persona`,description:`Cipta persona pertama anda untuk bermula dengan interaksi AI yang diperibadikan`,button:`Cipta Persona Pertama Anda`},deleteConfirm:`Adakah anda pasti mahu memadamkan "{{name}}"?`,deleteSuccess:`Persona "{{name}}" berjaya dipadam`,downloadSuccess:`Persona "{{name}}" berjaya dimuat turun`,failed:`Gagal {{action}} persona`},personaForm:{title:{create:`Cipta Persona Baharu`,edit:`Sunting Persona`},subtitle:{create:`Cipta persona AI baharu dengan personaliti, sistem ingatan dan keupayaan pembelajaran adaptif tersuai`,edit:`Sesuaikan persona AI anda dengan ingatan lanjutan, pembelajaran adaptif dan parameter pintar`},loading:`Memuatkan borang...`,saved:`Disimpan`,tabs:{basic:`Asas`,parameters:`Parameter`,memory:`Ingatan & Pembelajaran`,advanced:`Lanjutan`,bindings:`Ikatan`},basic:{name:`Nama`,namePlaceholder:`Masukkan nama persona`,model:`Model`,selectModel:`Pilih model`,description:`Penerangan`,descriptionPlaceholder:`Terangkan persona anda...`,systemPrompt:`Arahan Sistem`,systemPromptPlaceholder:`Masukkan arahan sistem yang mentakrifkan tingkah laku persona anda...`,systemPromptHint:`Arahan sistem mentakrifkan cara persona anda akan bertingkah laku dan memberi respons.`},parameters:{temperature:`Suhu`,temperatureHint:`Mengawal kreativiti vs konsistensi`,topP:`Top-P`,topPHint:`Mengawal kepelbagaian respons`,topK:`Top-K`,topKHint:`Menghadkan perbendaharaan kata kepada token top-k`,contextWindow:`Tetingkap Konteks`,contextWindowHint:`Panjang maksimum sejarah perbualan`,maxTokens:`Token Maksimum`,maxTokensHint:`Panjang respons maksimum`,repeatPenalty:`Penalti Ulangan`,repeatPenaltyHint:`Mengurangkan respons berulang`},memory:{title:`Sistem Ingatan`,subtitle:`Persona mengingati perbualan dari masa ke masa`,enableHint:`Aktifkan sistem ingatan untuk membolehkan persona anda mengingati perbualan dan membina konteks dari masa ke masa.`,loading:`Memuatkan status ingatan...`,noData:`Belum ada data ingatan`,memories:`Ingatan`,mbUsed:`MB Digunakan`,lastBackup:`Sandaran Terakhir`,never:`Tidak Pernah`,maxMemories:`Ingatan Maksimum`,maxMemoriesHint:`Berapa banyak ingatan yang boleh disimpan persona ini`,retention:`Pengekalan Ingatan`,retentionHint:`Hari untuk menyimpan ingatan sebelum pembersihan`,autoCleanup:`Pembersihan auto ingatan lama`,wipeAll:`Padam Semua Ingatan`,wipeCannot:`Ini tidak boleh dibatalkan`,wipeButton:`Padam`,wiping:`Memadamkan...`,wipeConfirm:`Adakah anda pasti mahu memadamkan semua ingatan? Ini tidak boleh dibatalkan.`,wipeSuccess:`Memadamkan {{count}} ingatan`},learning:{title:`Pembelajaran Adaptif`,subtitle:`Persona berkembang berdasarkan interaksi`,enableHint:`Aktifkan pembelajaran adaptif untuk membolehkan persona anda berkembang dan memperibadikan respons berdasarkan interaksi anda.`,speed:`Kelajuan Pembelajaran`,slow:`Perlahan`,slowDesc:`Perubahan beransur-ansur`,balanced:`Seimbang`,balancedDesc:`Kadar sederhana`,fast:`Pantas`,fastDesc:`Penyesuaian cepat`,autoAdapt:`Penyesuaian auto kepada keutamaan pengguna`,whatLearns:`Apa yang persona pelajari:`,conversationTone:`Nada perbualan`,responseStyle:`Gaya respons`,userPreferences:`Keutamaan pengguna`,topicInterests:`Minat topik`},advanced:{embeddingModel:`Model Pembenaman`,embeddingHint:`Pilih model yang digunakan untuk pengekodan ingatan dan carian semantik. Model pembenaman ditunjukkan dahulu, diikuti model lain yang tersedia.`,noModels:`Tiada model ditemui`,embeddingModels:`Model Pembenaman`,otherModels:`Model Lain`,installHint:`Pasang model pembenaman:`,recommended:`Disyorkan: nomic-embed-text, mxbai-embed-large, bge-m3, snowflake-arctic-embed`,aboutTitle:`Perihal Tetapan Lanjutan`,aboutDescription:`Model pembenaman digunakan oleh sistem ingatan untuk memahami makna semantik dan mencari ingatan yang berkaitan semasa perbualan. Pilih model yang sepadan dengan kes penggunaan dan sumber anda.`},actions:{cancel:`Batal`,save:`Simpan`,saving:`Menyimpan...`,saveClose:`Simpan & Tutup`,create:`Cipta`},success:{created:`Persona dicipta`,updated:`Persona dikemas kini`},error:{saveFailed:`Gagal menyimpan`},bindings:{toolServers:`Pelayan alat`,toolServersHint:`Pelayan yang boleh dipanggil persona ini. Jika dibiarkan kosong, semua pelayan yang memang boleh dicapai pengguna akan ditawarkan.`,noToolServers:`Tiada pelayan alat tersedia untuk anda.`,builtinTools:`Alat terbina dalam`,builtinToolsHint:`Alat yang dilaksanakan sendiri oleh pelayan. Jika dibiarkan kosong, semuanya ditawarkan.`,noBuiltinTools:`Tiada alat terbina dalam tersedia.`,builtin:{web_search:`Carian web`,search_documents:`Cari dokumen`,load_skill:`Muatkan kemahiran`},skills:`Kemahiran`,skillsHint:`Kemahiran yang boleh dimuatkan model semasa persona ini aktif.`,noSkills:`Anda belum mencipta sebarang kemahiran.`,collections:`Koleksi pengetahuan`,collectionsHint:`Koleksi dokumen yang boleh dicari oleh persona ini.`,noCollections:`Anda belum mencipta sebarang koleksi.`,prompt:`Prompt`,promptHint:`Prompt yang memulakan setiap sembang baharu dengan persona ini.`,noPrompt:`Tiada prompt`,version:`Semakan ikatan {{version}}`}},personaCard:{enhanced:`Dipertingkat`,systemPrompt:`Arahan Sistem`,memories:`ingatan`,use:`Guna`,editTooltip:`Sunting persona`,downloadTooltip:`Muat turun persona`,backup:`Sandaran`,exportDNA:`Eksport DNA`,wipeMemories:`Padam Ingatan`,wipeConfirm:`Adakah anda pasti mahu memadamkan semua ingatan untuk persona ini? Tindakan ini tidak boleh dibatalkan.`,wipeSuccess:`Memadamkan {{count}} ingatan`,backupSuccess:`Sandaran persona berjaya dimuat turun`,dnaSuccess:`DNA persona berjaya dieksport`,failed:`Gagal {{action}}`,shareTooltip:`Kongsi persona ini`},userManager:{title:`Pengurusan Pengguna`,subtitle:`Urus akaun pengguna dan kebenaran`,pageDescription:`Urus akaun pengguna, kebenaran dan kawalan akses untuk contoh Libre WebUI anda.`,loading:`Memuatkan pengguna...`,createUser:`Cipta Pengguna`,search:`Cari pengguna...`,noUsers:`Tiada pengguna ditemui`,noUsersMatching:`Tiada pengguna sepadan dengan carian anda`,columns:{user:`Pengguna`,email:`E-mel`,role:`Peranan`,created:`Dicipta`,actions:`Tindakan`},roles:{admin:`Pentadbir`,user:`Pengguna`},noEmail:`Tiada e-mel`,deleteConfirm:`Adakah anda pasti mahu memadamkan pengguna "{{name}}"?`,deleteSuccess:`Pengguna berjaya dipadam`,deleteFailed:`Gagal memadamkan pengguna`,cannotDeleteSelf:`Anda tidak boleh memadamkan akaun anda sendiri`,approval:{title:`Kelulusan tertangguh`,description:`Semak pendaftaran baharu sebelum membenarkan mereka masuk ke instance ini.`,registered:`Berdaftar`,activate:`Aktifkan akaun`,reject:`Tolak pendaftaran`,approved:`{{name}} kini boleh log masuk.`,failed:`Akaun tidak dapat diluluskan.`,notification:`{{count}} pendaftaran menunggu kelulusan anda.`,notificationBadge:`{{count}} kelulusan pengguna tertangguh`},form:{title:{create:`Cipta Pengguna`,edit:`Sunting Pengguna`},username:`Nama Pengguna`,usernamePlaceholder:`Masukkan nama pengguna`,email:`E-mel`,emailPlaceholder:`Masukkan e-mel (pilihan)`,password:`Kata Laluan`,passwordPlaceholder:`Masukkan kata laluan`,passwordHint:`Biarkan kosong untuk mengekalkan kata laluan semasa`,role:`Peranan`,creating:`Mencipta...`,updating:`Mengemas kini...`,createButton:`Cipta Pengguna`,updateButton:`Kemas Kini Pengguna`,createSuccess:`Pengguna berjaya dicipta`,updateSuccess:`Pengguna berjaya dikemas kini`,createFailed:`Gagal mencipta pengguna`,updateFailed:`Gagal mengemas kini pengguna`},workAccess:{title:`Akses Work`,description:`Benarkan semua pengguna aktif mencipta dan menjalankan tugas Work dalam kotak pasir terpencil. Pentadbir sentiasa mempunyai akses; ruang kerja folder hos kekal untuk pentadbir sahaja.`,saved:`Akses Work dikemas kini`,saveFailed:`Tidak dapat mengemas kini akses Work`},workPolicies:{title:`Dasar Work`,description:`Praset masa jalan bernama (imej, had, henti melahu) untuk mencipta tugas. Medan kosong mewarisi lalai global.`,add:`Tambah dasar`,name:`Nama`,image:`Imej`,memory:`Memori`,cpu:`CPU`,pids:`Had PID`,workspaceSize:`Saiz ruang kerja`,idleMinutes:`Henti melahu (minit)`,networkDefault:`Rangkaian lalai`,networkInherit:`Warisi lalai`,networkOn:`Didayakan`,networkOff:`Dilumpuhkan`,save:`Simpan`,cancel:`Batal`,edit:`Sunting dasar`,delete:`Padam dasar`,deleteConfirm:`Padam dasar ini? Tugas yang menggunakannya kembali kepada lalai global.`,empty:`Tiada dasar lagi. Tugas menggunakan lalai masa jalan global.`,saved:`Dasar Work disimpan`,deleted:`Dasar Work dipadamkan`,failed:`Tidak dapat menyimpan dasar Work`,invalidNumber:`Had PID dan henti melahu mestilah nombor.`},modelAccess:{title:`Muat turun model`,description:`Benarkan semua pengguna aktif menarik model daripada Ollama dan pelayar Hugging Face. Pentadbir sentiasa boleh memuat turun model.`,saved:`Akses muat turun model dikemas kini`,saveFailed:`Tidak dapat mengemas kini akses muat turun model`},webSearchAccess:{title:`Carian web`,description:`Benarkan semua pengguna aktif menggunakan carian web dalam sembang dan tugas Work. Pentadbir sentiasa boleh menggunakannya. Enjin dikonfigurasi di Tetapan > Carian.`,saved:`Akses carian web dikemas kini`,saveFailed:`Tidak dapat mengemas kini akses carian web`},agentAccess:{title:`Ejen`,description:`Tawarkan bahagian Ejen (Libre Claw) kepada pentadbir. CLI ejen berjalan pada hos sebagai pengguna pelayan, di luar kotak pasir Work.`,saved:`Akses ejen dikemas kini`,saveFailed:`Tidak dapat mengemas kini akses ejen`,lockedByEnv:`Ditetapkan oleh pemboleh ubah persekitaran AGENT_CLI_MODELS_ENABLED.`},groups:{title:`Kumpulan`,description:`Kumpulkan akaun untuk mengurus akses berkongsi, dan periksa apa yang sebenarnya boleh dilakukan oleh mana-mana akaun.`,newGroup:`Kumpulan baharu`,nameLabel:`Nama`,nameRequired:`Berikan nama untuk kumpulan ini.`,descriptionLabel:`Penerangan (pilihan)`,create:`Cipta kumpulan`,creating:`Mencipta…`,created:`Kumpulan dicipta.`,createFailed:`Kumpulan tidak dapat dicipta.`,deleted:`Kumpulan dipadamkan.`,deleteFailed:`Kumpulan tidak dapat dipadamkan.`,deleteGroup:`Padam kumpulan`,loadFailed:`Kumpulan tidak dapat dimuatkan.`,empty:`Belum ada kumpulan.`,memberCount:`Ahli: {{count}}`,noMembers:`Belum ada ahli.`,addedAt:`Ditambah`,addMember:`Tambah ahli`,add:`Tambah`,selectUser:`Pilih pengguna…`,memberAdded:`Ahli ditambah.`,memberAddFailed:`Ahli tidak dapat ditambah.`,removeMember:`Alih keluar ahli`,memberRemoved:`Ahli dialih keluar.`,memberRemoveFailed:`Ahli tidak dapat dialih keluar.`,effectiveTitle:`Akses berkesan`,effectiveDescription:`Pilih akaun untuk melihat akses akhirnya merentas peranan, kumpulan dan pemberian.`,accessLookupFailed:`Akses berkesan tidak dapat dimuatkan.`,roleLabel:`Peranan`,statusLabel:`Status`,memberOf:`Kumpulan`,featuresLabel:`Akses ciri`,grantsLabel:`Pemberian`,grantVia:`melalui`},audit:{title:`Log audit keselamatan`,description:`Log masuk terkini, semakan kebenaran dan perubahan pentadbiran pada instans ini.`,actionFilter:`Tindakan`,actionPlaceholder:`cth. auth.login`,resultFilter:`Hasil`,resultSuccess:`Berjaya`,resultDenied:`Dinafikan`,resultFailure:`Gagal`,limitFilter:`Had`,loadFailed:`Log audit tidak dapat dimuatkan.`,empty:`Belum ada peristiwa audit direkodkan.`,actor:`Pelaku`,target:`Sasaran`},tools:{title:`Akses alat`,description:`Benarkan semua orang memanggil pelayan alat. Apabila dimatikan, hanya pentadbir boleh.`,saved:`Akses alat dikemas kini`,saveFailed:`Akses alat tidak dapat dikemas kini.`,lockedByEnv:`Dikunci oleh pemboleh ubah persekitaran pada pelayan ini.`},voice:{title:`Akses suara`,description:`Mengawal siapa yang boleh menggunakan ciri suara. Pentadbir sentiasa mempunyai akses.`,lockedByEnv:`Ditetapkan oleh pemboleh ubah persekitaran`,saved:`Akses suara dikemas kini`,saveFailed:`Gagal mengemas kini akses suara`,features:{stt:`Pertuturan ke teks`,tts:`Teks ke pertuturan`,voiceMode:`Mod suara`,voiceCloning:`Pengklonan suara`}}},usageAnalytics:{eyebrow:`Pentadbiran`,title:`Penggunaan Penyedia`,description:`Ikut panggilan API keluar dan penggunaan model merentasi plugin yang didayakan pada instance ini.`,days:`{{count}} hari`,refresh:`Muat semula penggunaan`,loadFailed:`Penggunaan penyedia tidak dapat dimuatkan.`,metrics:{calls:`Panggilan`,tokens:`Token`},cards:{calls:`Panggilan API`,callsDetail:`Merentasi {{count}} pengguna aktif`,tokens:`Token dilaporkan`,tokensDetail:`Penggunaan dilaporkan pada {{count}} panggilan`,success:`Kadar kejayaan`,successDetail:`{{count}} panggilan gagal`,latency:`Latensi purata`,latencyDetail:`Masa pembekal hujung ke hujung`},activity:{title:`Penggunaan dari semasa ke semasa`,callsDescription:`Permintaan keluar harian kepada pemalam yang didayakan`,tokensDescription:`Jumlah token harian dilaporkan oleh pembekal`,chartLabel:`Carta {{metric}} pembekal harian`},models:{title:`Penggunaan model`,description:`Model yang membawa trafik paling banyak dalam tempoh ini.`,model:`Model`,success:`Berjaya`,latency:`Latensi`},providers:{title:`Trafik pemalam didayakan`},capabilities:{title:`Campuran keupayaan`,characters:`{{count}} aksara`,bytes:`{{count}} bait`,images:`{{count}} imej`,jobs:`{{count}} kerja video`,inputs:`{{count}} input`,reportedTokens:`{{count}} token dilaporkan`},empty:{title:`Tiada panggilan pembekal lagi`,description:`Panggilan akan dipaparkan di sini selepas pemalam yang didayakan mengendalikan permintaan sembang, Work, pembenaman, imej, pertuturan, bunyi, atau video.`},privacyNote:`Penggunaan diukur pada pelayan di sempadan pemalam keluar. Libre WebUI menyimpan pembekal, model, masa, status, dan pembilang dilaporkan—tidak pernah gesaan, respons, titik akhir, kelayakan, atau badan ralat pembekal. Jumlah token hanya termasuk panggilan di mana pembekal memulangkan metadata penggunaan.`,heatmap:{title:`Setahun aktiviti`,description:`Panggilan penyedia harian sepanjang tahun lalu, diwarnakan mengikut model paling banyak digunakan setiap hari.`,calls:`panggilan`,noCalls:`Tiada panggilan`,other:`Model lain`,less:`Kurang`,more:`Lebih`,yearTotal:`{{formatted}} panggilan dalam setahun lalu`}},systemPage:{eyebrow:`Pentadbiran`,title:`Sistem`,description:`Pantau mesin dan masa jalan yang menempatkan kejadian Libre WebUI ini.`,updated:`Dikemas kini {{date}}`,refresh:`Muat semula maklumat sistem`,loadFailed:`Maklumat sistem tidak dapat dimuatkan.`,cards:{uptime:`Masa hidup hos`,uptimeDetail:`Berjalan sejak {{date}}`,memory:`Ingatan digunakan`,memoryDetail:`{{used}} daripada {{total}}`,freeSpace:`Ruang kosong`,freeSpaceDetail:`{{label}} · {{total}} jumlah`,containers:`Kontena berjalan`,containersDetail:`{{total}} kontena diketahui oleh Docker`,dockerUnavailable:`Docker tidak tersedia`,unavailable:`Tidak tersedia`},host:{title:`Hos & masa jalan`,description:`Butiran sistem pengendalian, pemproses, dan proses Libre WebUI.`,container:`Masa jalan kontena`,native:`Runtime asli`,hostname:`Nama hos`,operatingSystem:`Sistem pengendalian`,processor:`Pemproses`,logicalCpus:`CPU logikal`,loadAverage:`Purata beban · 1 / 5 / 15 min`,libreVersion:`Libre WebUI`,nodeVersion:`Node.js`,process:`Proses`,workingDirectory:`Direktori kerja`},memory:{title:`Memori`,description:`Memori sistem yang kelihatan pada runtime dan penggunaan proses aplikasi.`,usedOf:`{{used}} digunakan daripada {{total}}`,free:`{{value}} bebas`,processRss:`RSS Proses`,heapUsed:`Timbunan V8 digunakan`,heapTotal:`Jumlah timbunan V8`,external:`Memori luaran`},storage:{title:`Storan`,description:`Ruang tersedia untuk sistem fail runtime dan data aplikasi kekal.`,used:`{{value}} digunakan`,free:`{{value}} bebas`,empty:`Maklumat sistem fail tidak tersedia dalam runtime ini.`},docker:{title:`Docker`,description:`Status Docker Engine baca-sahaja dan senarai kontena yang dikurangkan.`,connected:`Disambung`,unavailable:`Tidak tersedia`,unavailableDetail:`Diagnostics Docker Engine tidak tersedia.`,socketStatus:`Soket tempatan: {{status}}`,mounted:`dilekap`,notMounted:`tidak dilekap`,running:`Berjalan`,stopped:`Dihentikan`,paused:`Dijeda`,total:`Jumlah`,version:`Versi`,host:`Hos`,architecture:`Seni bina`,cpus:`CPU`,memory:`Memori`,container:`Kontena`,image:`Imej`,state:`Keadaan`,created:`Dicipta`,empty:`Docker disambung dan tiada kontena disenaraikan buat masa ini.`},network:{title:`Rangkaian`,description:`Antara muka, alamat dan pengira trafik Linux yang boleh dilihat pada masa jalan.`,internal:`dalaman`,empty:`Tiada antara muka rangkaian yang boleh dilihat oleh masa jalan aplikasi.`},securityNote:`Halaman ini terhad kepada pentadbir. Pelayan hanya memulangkan ringkasan operasi: ia tidak mendedahkan pembolehubah persekitaran, kelayakan, label Docker, lekap, arahan kontena atau muatan pemeriksaan. Apabila Libre WebUI berjalan dalam kontena, butiran CPU dan ingatan peringkat hos datang dari Docker Engine apabila soket tempatannya tersedia; nilai lain menerangkan masa jalan aplikasi.`,work:{title:`Work`,description:`Kotak pasir semua pengguna`,access:`Akses`,accessAdmins:`Pentadbir sahaja`,accessAllUsers:`Semua pengguna`,runtimeAvailable:`Tersedia`,runtimeUnavailable:`Tidak tersedia`,activeRuntimes:`Masa jalan aktif`,pendingCleanups:`Pembersihan tertunda`,orphans:`Kontena yatim`,owner:`Pemilik`,task:`Tugas`,state:`Keadaan`,preview:`Pratonton`,terminals:`Terminal`,updated:`Dikemas kini`,stateRunning:`Berjalan`,stateStopped:`Berhenti`,stateStarting:`Bermula`,stateUnknown:`Tidak diketahui`,noTasks:`Tiada tugas Work lagi.`}},chatHistory:{label:`Sejarah perbualan`,jumpToTurn:`Pergi ke giliran {{index}} daripada {{total}}`},chatMessage:{you:`Anda`,assistant:`Pembantu`,system:`Sistem`,conversationSummary:`Ringkasan perbualan`,restoreCompacted:`Pulihkan mesej yang diringkaskan`,restoreFailed:`Mesej yang diringkaskan tidak dapat dipulihkan`,copy:`Salin`,copyMessage:`Salin mesej`,copied:`Disalin!`,regenerate:`Jana Semula`,regenerateResponse:`Jana semula respons`,edit:`Sunting`,editSystemMessage:`Sunting mesej sistem`,saveChanges:`Simpan perubahan`,cancelEditing:`Batal penyuntingan`,saveAndSubmit:`Simpan & hantar`,goodResponse:`Respons baik`,badResponse:`Respons buruk`,delete:`Padam`,deleteConfirm:`Padam mesej ini?`,branch:`Cabang`,speaking:`Bercakap...`,speakMessage:`Sebut mesej`,stopSpeaking:`Hentikan pertuturan`,showMore:`Tunjuk lebih`,showLess:`Tunjuk kurang`,thinking:`Berfikir`,thoughtFor:`Berfikir selama {{duration}}`,hiddenLines:`{{count}} baris tersembunyi`,systemMessagePlaceholder:`Masukkan mesej sistem anda...`,fullSizeImage:`Imej saiz penuh`,startConversation:`Mulakan perbualan`,startConversationDescription:`Hantar mesej untuk mula berbual dengan pembantu AI anda. Tanya soalan, dapatkan bantuan dengan kod atau berbual secara semula jadi.`,scrollToBottom:`Tatal ke bawah`,newMessages:`Mesej baharu`,feedbackTags:{accuracy:`Ketepatan`,style:`Gaya`,incomplete:`Tidak lengkap`,harmful:`Berbahaya`,formatting:`Pemformatan`},feedbackComment:`Tambah komen…`},imageGallery:{title:`Galeri Imej`,noImages:`Belum ada imej`,noImagesHint:`Jana imej pertama anda menggunakan panel di sebelah kanan`,delete:`Padam`,download:`Muat Turun`,deleteConfirm:`Adakah anda pasti mahu memadamkan imej ini?`,deleteSuccess:`Imej dipadam`,deleteFailed:`Gagal memadamkan imej`,downloadFailed:`Gagal memuat turun imej`,loadMore:`Muatkan Lagi ({{current}} daripada {{total}})`,loadFailed:`Gagal memuatkan galeri`},imageGeneration:{title:`Jana Imej`,prompt:`Arahan`,promptPlaceholder:`Terangkan imej yang anda mahu cipta...`,model:`Model`,selectModel:`Pilih model`,noModels:`Tiada model penjanaan imej tersedia`,configurePlugin:`Konfigurasi plugin dengan sokongan penjanaan imej`,size:`Saiz`,quality:`Kualiti`,style:`Gaya`,generate:`Jana`,generating:`Menjana...`,success:`Imej berjaya dijana`,failed:`Gagal menjana imej`,enterPrompt:`Sila masukkan arahan`,promptTooLong:`Prompt melebihi panjang maksimum {{max}} aksara`},mediaGeneration:{title:`Jana media`,description:`Cipta video, bunyi, muzik atau ucapan dengan penyedia media yang diaktifkan.`,image:`Imej`,video:`Video`,audio:`Audio`,sound:`Bunyi`,speech:`Ucapan`,model:`Model`,voice:`Suara atau ID suara`,cloneVoice:`Klon suara rujukan`,cloneVoiceDescription:`Jana pertuturan ini berdasarkan rakaman rujukan dan bukannya suara pratetap.`,referenceAudio:`Audio rujukan`,referenceTranscript:`Transkrip rujukan yang tepat`,referenceTranscriptPlaceholder:`Masukkan dengan tepat perkara yang dituturkan dalam rakaman rujukan…`,referenceAudioTooLarge:`Audio rujukan mestilah {{max}} atau lebih kecil.`,cloneConsent:`Klon suara hanya apabila anda mendapat kebenaran penutur. Rakaman dihantar kepada penyedia yang dipilih untuk penjanaan ini dan tidak disimpan oleh Libre WebUI.`,saveVoiceProfile:`Simpan sebagai suara yang boleh digunakan semula`,saveVoiceProfileDescription:`Simpan rakaman rujukan dan transkrip ini dengan selamat. Libre WebUI menghantar kedua-duanya kepada penyedia yang dipilih untuk setiap kelompok Pertuturan yang menggunakan suara ini.`,voiceProfileName:`Nama suara tersimpan`,voiceProfileNamePlaceholder:`Contohnya, Suara saya`,voiceStorageConsent:`Saya mengesahkan bahawa saya mendapat kebenaran penutur untuk mengklon dan menyimpan suara ini. Rujukan akan kekal tersimpan sehingga saya memadamkannya.`,resolution:`Resolusi`,aspectRatio:`Nisbah bidang`,duration:`Tempoh`,providerDefault:`Lalai penyedia`,generateAudio:`Jana audio dengan video apabila disokong`,prompt:`Gesaan`,text:`Teks untuk dilafazkan`,videoPlaceholder:`Huraikan adegan, gerakan, kamera dan pencahayaan...`,audioPlaceholder:`Masukkan teks yang anda mahu suara lafazkan...`,soundPlaceholder:`Huraikan bunyi, muzik, suasana atau respons lisan yang anda mahu...`,generate:`Jana`,generating:`Menjana… ini boleh mengambil masa beberapa minit`,success:`Media dijana dan disimpan ke Imagine`,successWithSavedVoice:`Media telah dijana dan “{{name}}” kini tersedia dalam tetapan Pertuturan`,failed:`Gagal menjana media`,loadFailed:`Gagal memuatkan penyedia media`,noModels:`Tiada model {{kind}} tersedia. Aktifkan penyedia yang serasi dan simpan kelayakannya dahulu.`,consentTtl:{label:`Tempoh persetujuan`,never:`Sehingga saya menariknya balik`,days30:`30 hari`,days90:`90 hari`,days365:`Setahun`}},mediaGallery:{itemCount:`{{count}} item`,empty:`Belum ada media dijana`,emptyHint:`Jana imej, video atau klip suara dan ia akan dipaparkan di sini.`,filters:{all:`Semua`,image:`Imej`,video:`Video`,audio:`Audio`}},errorBoundary:{title:`Sesuatu tidak kena`,description:`Kami menghadapi ralat yang tidak dijangka. Sila cuba muat semula halaman.`,tryAgain:`Muat Semula Halaman`,goHome:`Pergi ke Laman Utama`,errorDetails:`Butiran Ralat (Pembangunan)`},documents:{title:`Dokumen`,upload:`Muat Naik Dokumen`,uploading:`Memuat naik...`,noDocuments:`Tiada dokumen dimuat naik`,uploadHint:`Muat naik dokumen untuk digunakan dalam perbualan anda`,delete:`Padam`,deleteConfirm:`Adakah anda pasti mahu memadamkan dokumen ini?`,deleteSuccess:`Dokumen dipadam`,deleteFailed:`Gagal memadamkan dokumen`,uploadSuccess:`Dokumen berjaya dimuat naik`,uploadFailed:`Gagal memuat naik dokumen`,types:`Disokong: PDF, TXT, MD, DOCX`,unsupportedFileType:`Jenis fail ini tidak disokong`,fileSizeTooLarge:`Saiz fail mesti kurang daripada 10MB`,uploadSuccessWithName:`Dokumen "{{name}}" berjaya dimuat naik`,removeSuccess:`Dokumen berjaya dibuang`,removeFailed:`Gagal membuang dokumen`,removeError:`Ralat berlaku semasa membuang dokumen`,clickToUpload:`Klik untuk muat naik`,orDragAndDrop:`atau seret dan lepas`,fileTypesAndSize:`Fail PDF, Office, Markdown, HTML, kod dan CSV sehingga 10MB`,uploadedDocuments:`Dokumen Dimuat Naik`,removeDocument:`Buang dokumen`,fullContextToggle:`Hantar dokumen penuh`,fullContextEstimate:`≈ {{tokens}} token`,fullContextTooLarge:`Dokumen yang dilampirkan melebihi had konteks penuh, jadi dapatan semula digunakan`,fullDocument:`Dokumen penuh`},ttsButton:{speak:`Sebut`,stop:`Berhenti`,speaking:`Bercakap...`,generateFailed:`Gagal menjana pertuturan`,playbackFailed:`Main balik audio gagal`,stopSpeaking:`Hentikan pertuturan`,preparingSpeech:`Menyediakan pertuturan...`,generatingSpeech:`Menjana pertuturan...`,bufferingSpeech:`Memuatkan pertuturan...`,enableAudio:`Dayakan audio dan baca dengan kuat`,enableAudioShort:`Dayakan audio`,readAloud:`Baca dengan kuat`},artifacts:{title:`Artifak`,code:`Kod`,preview:`Pratonton`,copy:`Salin kod`,copied:`Disalin!`,download:`Muat Turun`,expand:`Kembangkan`,collapse:`Kecilkan`,openInNewTab:`Buka dalam tab baharu`,invalidSvg:`Kandungan SVG tidak sah`,invalidJson:`Kandungan JSON tidak sah`,previewMode:`Mod pratonton`,codeMode:`Mod kod`,copyContent:`Salin kandungan`,openInPanel:`Buka dalam panel`,openInNewWindow:`Buka dalam tetingkap baharu`,created:`Dicipta`,closePanelEsc:`Tutup panel (Esc)`,copyButton:`Salin`,open:`Buka`,dragEdgeToResize:`Seret tepi untuk mengubah saiz`,previewUnavailable:`Preview unavailable`,previewUnavailableDescription:`This artifact does not contain renderable preview content. Switch to code view to inspect the source.`,versionOf:`Versi {{current}} daripada {{total}}`,previousVersion:`Versi sebelumnya`,nextVersion:`Versi seterusnya`},personaImportExport:{title:`Import & Eksport Persona`,description:`Eksport persona anda untuk dikongsi atau import persona daripada orang lain`,exportPersonas:`Eksport Persona`,importPersonas:`Import Persona`,noPersonasToExport:`Tiada persona untuk dieksport`,personasAvailable:`{{count}} persona tersedia`,personasAvailable_plural:`{{count}} persona tersedia`,exportAll:`Eksport Semua`,uploadJsonFile:`Muat Naik Fail JSON`,pasteJsonLabel:`Tampal Data JSON`,pasteJsonPlaceholder:`Tampal data JSON persona di sini...`,importing:`Mengimport...`,importButton:`Import Persona`,expectedFormat:`Format JSON yang Dijangka:`,exportSuccess:`Persona "{{name}}" berjaya dieksport`,exportFailed:`Gagal mengeksport persona`,exportAllSuccess:`Semua {{count}} persona berjaya dieksport`,exportAllFailed:`Gagal mengeksport persona`,pasteJsonData:`Sila tampal data JSON persona`,importMultipleSuccess:`Berjaya mengimport {{count}} persona`,importMultipleFailed:`Gagal mengimport {{count}} persona`,importNoneFailed:`Gagal mengimport mana-mana persona`,importSuccess:`Persona berjaya diimport`,importFailed:`Gagal mengimport persona`},generationStats:{details:`Butiran`,promptTokens:`Token prompt:`,generatedTokens:`Token dijana:`,totalTokens:`Jumlah token:`,speed:`Kelajuan:`,promptEval:`Penilaian prompt:`,generation:`Penjanaan:`,modelLoad:`Muat model:`,totalTime:`Jumlah masa:`,generatedAt:`Dijana pada:`},userMenu:{loggedOut:`Berjaya log keluar`,pictureUpdated:`Gambar profil dikemas kini`,failedUpdateAvatar:`Gagal mengemas kini avatar`,failedUpdatePicture:`Gagal mengemas kini gambar profil`,noEmail:`Tiada e-mel`,changePicture:`Tukar gambar`,settings:`Tetapan`,userManagement:`Pengurusan pengguna`,signOut:`Log keluar`,changeProfilePicture:`Tukar gambar profil`},pluginManager:{title:`Pengurus plugin`,upload:`Muat naik`,addJson:`Tambah JSON`,browseHF:`Layari HF Hub`,confirmDelete:`Adakah anda pasti mahu memadam plugin ini?`,uploading:`Memuat naik plugin...`,pasteJson:`Tampal JSON plugin di sini...`,installPlugin:`Pasang plugin`,loading:`Memuatkan plugin...`,noPlugins:`Tiada plugin dipasang`,noPluginsDescription:`Muat naik fail plugin atau tambah plugin dari JSON untuk bermula.`,active:`Aktif`,id:`ID`,endpoint:`Endpoint`,activate:`Aktifkan`,deactivate:`Nyahaktifkan`,activePlugin:`Plugin aktif`,activePluginDescription:`Semua permintaan sembang akan dihalakan melalui plugin ini`,variables:{title:`Pembolehubah`,save:`Simpan`,saving:`Menyimpan...`,saved:`Pembolehubah disimpan`,saveFailed:`Gagal menyimpan pembolehubah`,resetDefaults:`Set semula lalai`,reset:`Pembolehubah ditetapkan semula`,resetFailed:`Gagal menetapkan semula pemboleh ubah`,sensitiveSet:`Nilai ditetapkan (masukkan nilai baharu untuk menukar)`,showValue:`Tunjuk nilai {{label}}`,hideValue:`Sembunyi nilai {{label}}`,connection:`Sambungan`,advanced:`Parameter lanjutan`,inherited:`Gunakan lalai penyedia`,inheritedValue:`Gunakan lalai penyedia ({{value}})`,enabled:`Diaktifkan`,disabled:`Dinyahaktifkan`,required:`Nilai diperlukan`,fullApiEndpoint:`URL endpoint API penuh`,endpointHelp:`Masukkan URL permintaan lengkap, termasuk laluan operasinya (contohnya, /v1/chat/completions), bukan hanya URL asas penyedia.`,invalidUrl:`Masukkan URL endpoint API penuh yang sah, contohnya https://provider.example/v1/chat/completions`,insecureUrl:`Endpoint API mesti menggunakan HTTP atau HTTPS.`,httpWarning:`HTTP tidak menyulitkan kelayakan atau trafik. Gunakannya hanya pada rangkaian yang dipercayai.`,invalidBaseUrl:`URL asas tidak boleh mengandungi rentetan pertanyaan atau cebisan.`,invalidApiPath:`Mesti bermula dengan / dan tidak mengandungi URL, pertanyaan, cebisan, atau segmen ..`,tooLong:`Nilai terlalu panjang`}},huggingface:{title:`Pelayar model HuggingFace`,subtitle:`Layari dan pilih model dari Hub`,searchPlaceholder:`Cari model...`,filters:`Penapis`,task:`Tugas`,sortBy:`Isih mengikut`,noModels:`Tiada model ditemui`,adjustSearch:`Cuba laraskan carian atau penapis anda`,gated:`Terhad`,selected:`Dipilih`,select:`Pilih`,refresh:`Muat semula`,modelsFound:`model ditemui`},demoMode:{title:`Mod demo`,github:`GitHub`},libreClaw:{title:`Ejen`,subtitle:`Ejen tempatan menjalankan, kelulusan, jadual, ingatan, alatan dan penggunaan.`,dashboard:`Papan pemuka`,connection:{disconnectedTitle:`Daemon Libre Claw tidak disambungkan`,disconnectedDescription:`Mulakannya secara setempat dengan <command>libre-claw start</command> atau tetapkan <env>LIBRE_CLAW_BASE_URL</env> dalam persekitaran bahagian belakang.`},status:{connected:`Bersambung`,disconnected:`Terputus sambungan`,activeRuns:`{{count}} aktif`,activeRuns_plural:`{{count}} aktif`},states:{queued:`Beratur`,running:`Sedang berjalan`,blocked:`Disekat`,done:`Selesai`,failed:`gagal`,cancelled:`Dibatalkan`},startRun:{title:`Mulakan tugas ejen`,placeholder:`Minta Libre Claw untuk memeriksa repo, membetulkan pepijat, menjalankan semakan, menjadualkan laporan...`,chatRun:`Larian sembang`,goalMode:`Mod matlamat`,providerOverride:`Pembatalan pembekal`,modelOverride:`Model menimpa`,run:`Jalankan`},modelRoute:{title:`Laluan Model`,providerPlaceholder:`pembekal`,modelPlaceholder:`model`,persistGlobal:`Berterusan untuk Libre Claw konfigurasi global`,saveModel:`Simpan model`,theme:`Tema Libre Claw`,saveTheme:`Simpan tema`},runs:{title:`Tugas`,empty:`Belum ada tugas Libre Claw.`},timeline:{title:`Garis masa tugas`,empty:`Pilih larian untuk memeriksa acaranya.`,streaming:`Menstrim...`,assistantResponse:`Jawapan pembantu`,resultOk:`ok`,resultError:`kesilapan`,labels:{userMessage:`Mesej pengguna`,toolCall:`Panggilan alat`,toolResult:`Hasil alat`,approvalRequest:`Permintaan kelulusan`,approvalResponse:`Maklum balas kelulusan`,runStarted:`Tugas dimulakan`,runFinished:`Tugas selesai`,usage:`Penggunaan`,error:`ralat`}},approvals:{needed:`Kelulusan diperlukan`,allowOnce:`Izinkan sekali`,alwaysAllowTool:`Sentiasa benarkan alat`,deny:`Tolak`,toolApprovalRequested:`Kelulusan alat diminta`},automations:{title:`Automasi`,namePlaceholder:`Nama`,schedulePlaceholder:`daily 09:00`,promptPlaceholder:`Gesaan automasi`,create:`Buat`,empty:`Tiada automasi Libre Claw yang dijadualkan.`,runNow:`Jalankan sekarang`,pause:`jeda`,resume:`Sambung`,routes:{report:`Laporan`,telegram:`Telegram`},status:{active:`Aktif`,paused:`Dijeda`}},usageFallback:{title:`Penggunaan Dan Fallback`,usage:`Penggunaan`,fallbackRoute:`Laluan Fallback`,noUsage:`Tiada rekod penggunaan lagi.`},metrics:{provider:`Pembekal`,model:`Model`,input:`Input`,output:`Output`,cached:`Dicache`,reasoning:`Penaakulan`,cost:`kos`,tool:`alat`,resolution:`Resolusi`,state:`Status`,stopReason:`Sebab berhenti`,tokens:`{{formatted}} token`,tokens_plural:`{{formatted}} token`},fallbacks:{tool:`alat`,unknown:`tidak diketahui`,resolved:`diselesaikan`,unknownError:`Ralat tidak diketahui`},toasts:{loadStatusFailed:`Tidak dapat memuatkan status Libre Claw`,enterTask:`Masukkan tugasan untuk Libre Claw`,runStarted:`Tugas Libre Claw dimulakan`,startRunFailed:`Tidak dapat memulakan tugas Libre Claw`,runCancelled:`Tugas dibatalkan`,cancelRunFailed:`Tidak dapat membatalkan tugas`,approved:`Diluluskan`,denied:`dinafikan`,resolvePermissionFailed:`Tidak dapat menyelesaikan kebenaran`,providerModelRequired:`Pembekal dan model diperlukan`,modelUpdated:`Model Libre Claw dikemas kini`,updateModelFailed:`Tidak dapat mengemas kini model`,themeUpdated:`Tema Libre Claw dikemas kini`,updateThemeFailed:`Tidak dapat mengemas kini tema`,automationRequired:`Nama automasi, jadual dan segera diperlukan`,automationCreated:`Automasi dibuat`,createAutomationFailed:`Tidak dapat membuat automasi`,automationUpdated:`Automasi dikemas kini`,updateAutomationFailed:`Tidak dapat mengemas kini automasi`}},work:{title:`Kerja`,subtitle:`Ruang kerja model terasing`,tasks:{title:`Tugas Kerja`,subtitle:`Ruang kerja setempat yang berkekalan`,new:`Tugas baharu`,emptyTitle:`Belum ada tugas Kerja`,empty:`Tugas Kerja anda akan dipaparkan di sini selepas anda menghantar mesej pertama.`,untitled:`Tugas tanpa tajuk`,actions:`Tindakan tugas`,delete:`Padam tugas`,deleteNamed:`Padam {{title}}`,deleteConfirm:`Padam “{{title}}” dan ruang kerjanya secara kekal?`,close:`Tutup tugas Kerja`,open:`Buka tugas Kerja`,rename:`Tajuk tugas`,loading:`Memuatkan tugas…`,notFound:`Tugas Kerja ini tidak tersedia`,back:`Mulakan tugas baharu`,status:`Status: {{status}}`},landing:{title:`Mulakan tugas Kerja baharu`,description:`Berikan model setempat atau model penyedia yang dikonfigurasi ruang kerja yang berkekalan dan terasing. Model boleh memeriksa fail, menjalankan alat dan menyambung kerja apabila anda kembali.`,isolated:`Terasing`,isolatedBody:`Setiap tugas mempunyai bekas dan failnya sendiri.`,durable:`Berkekalan`,durableBody:`Kembali kepada perbualan dan ruang kerjanya kemudian.`,controlled:`Terkawal`,controlledBody:`Masa jalan dan fail tugas kekal terasing daripada hos.`},composer:{placeholder:`Terangkan perkara yang ingin anda bina atau ubah…`,model:`Model Kerja`,noModels:`Tiada model yang serasi dengan Kerja`,cancel:`Hentikan`,send:`Jalankan`,hint:`Setiap tugas menyimpan fail dan sejarahnya sendiri. Semak output model sebelum menggunakannya.`,remoteTitle:`Penyedia jauh`,remoteHint:`Perbualan dan output alat dihantar kepada perkhidmatan yang dikonfigurasi. Satu pelaksanaan autonomi boleh membuat beberapa panggilan penyedia dan mungkin dikenakan caj. Fail ruang kerja kekal setempat melainkan alat mengembalikan kandungannya.`,remoteDismiss:`Tutup`,remoteDismissLabel:`Tutup notis penyedia jauh`,remoteDismissFailed:`Tidak dapat menyimpan pilihan penyedia jauh.`,noModelSelected:`Tiada model serasi Kerja yang dipilih.`},conversation:{ready:`Ruang kerja sedia`,empty:`Teruskan tugas di bawah. Perbualan dan failnya kekal dilampirkan pada ruang kerja ini.`,loadOlder:`Muatkan mesej lama`},status:{preparing:`Menyediakan ruang kerja terasing…`,running:`Sedang bekerja dalam ruang kerja setempat…`},statusLabels:{idle:`Tidak aktif`,thinking:`Berfikir`,complete:`Selesai`,needsInput:`Memerlukan input`,error:`Ralat`},live:{connecting:`Menyambung ke kemas kini langsung…`,reconnecting:`Menyambung semula ke kemas kini langsung…`,unavailable:`Kemas kini langsung tidak tersedia`,newActivity:`Aktiviti baharu`,skillsLoaded:`Kemahiran ruang kerja · {{count}}`},runtime:{unavailable:`Masa jalan tidak tersedia`,ready:`Masa jalan sedia`,readyOllama:`Docker sedia`,readyPlugin:`Docker + pemalam sedia`,readyHybrid:`Docker + model sedia`,reason:`Docker dan penyedia model Ollama atau pemalam yang tersedia diperlukan.`},workspace:{label:`Paparan ruang kerja`,files:`Fail`,activity:`Aktiviti`,preview:`Pratonton`,resize:`Ubah saiz perbualan dan ruang kerja`,resizeHint:`Seret untuk mengubah saiz. Gunakan kekunci anak panah untuk kawalan tepat. Klik dua kali atau tekan Enter untuk menetapkan semula.`,splitSize:`Perbualan {{conversation}}%, ruang kerja {{workspace}}%`,terminal:`Terminal`,git:`Git`},files:{discard:`Buang perubahan fail yang belum disimpan?`,leaveWithDraft:`Tinggalkan fail ini? Suntingan yang belum disimpan akan kekal sebagai draf pelayar.`,up:`Folder induk`,back:`Kembali ke fail`,empty:`Belum ada fail dalam folder ini.`,select:`Pilih fail untuk diperiksa dan disunting.`,editorLabel:`Penyunting fail: {{path}}`,format:`Format`,formatted:`Kod telah diformat.`,formatFailed:`Tidak dapat memformat fail ini.`,formatShortcut:`Format (Shift+Alt+F)`,formatTooLarge:`Pemformatan terhad kepada fail di bawah 100,000 aksara dan 4,000 baris.`,formatUnsupported:`Pemformatan tidak tersedia untuk jenis fail ini.`,saveShortcut:`Simpan (⌘/Ctrl+S)`,highlightPaused:`Penyerlahan langsung dijeda untuk fail besar agar penyuntingan kekal responsif.`,plainTextLarge:`Teks biasa · fail besar`,changes:`Perubahan`,changesSince:`Apa yang berubah sejak giliran terakhir`,diffLabel:`Perubahan sejak giliran terakhir: {{path}}`,diffFolded:`{{count}} baris tidak berubah`},activity:{empty:`Perintah, operasi fail dan hasil alat akan dipaparkan di sini.`,toolActivity:`Aktiviti alat`,details:`Butiran`,kinds:{message:`Mesej`,toolCall:`Panggilan alat`,toolResult:`Hasil alat`,error:`Ralat`}},preview:{command:`Perintah mula pilihan`,start:`Mulakan pratonton`,stop:`Hentikan pratonton`,open:`Buka`,starting:`Memulakan pratonton…`,frameTitle:`Pratonton ruang kerja`,failed:`Pratonton tidak dapat dimulakan. Semak Aktiviti, kemudian cuba perintah lain.`,empty:`Mulakan aplikasi dalam ruang kerja ini untuk memeriksanya di sini.`},mobile:{surface:`Paparan tugas`,conversation:`Perbualan`,workspace:`Ruang kerja`},toasts:{runFailed:`Tidak dapat memulakan tugas Kerja.`,updateFailed:`Tidak dapat mengemas kini tugas ini.`,renameFailed:`Tidak dapat menamakan semula tugas ini.`,cancelled:`Pelaksanaan Kerja dihentikan.`,cancelFailed:`Tidak dapat menghentikan pelaksanaan Kerja.`,deleteFailed:`Tidak dapat memadam tugas Kerja ini.`,saveFailed:`Tidak dapat menyimpan fail ini.`,saved:`Fail disimpan.`,previewFailed:`Tidak dapat memulakan pratonton.`,previewStopFailed:`Tidak dapat menghentikan pratonton.`},terminal:{connecting:`Membuka shell dalam kotak pasir…`,closed:`Sesi terminal tamat.`,failed:`Sesi terminal tidak dapat dimulakan.`,reconnect:`Sambung semula`,unavailable:`Terminal interaktif tidak tersedia dalam penggunaan ini.`,blockedByRun:`Model sedang menggunakan bekas ini. Terminal dibuka apabila giliran selesai.`,taskRunning:`Giliran model sedang berjalan`},policy:{label:`Dasar masa jalan`,default:`Lalai (had global)`},git:{actionFailed:`Tindakan Git gagal.`,blockedByPreview:`Hentikan pratonton sebelum mengubah keadaan Git.`,blockedByRun:`Tindakan tulis Git terbuka selepas giliran model tamat.`,branchCreated:`{{name}} dicipta.`,branchSwitched:`Bertukar ke {{name}}.`,clean:`Pokok kerja bersih.`,commit:`Commit perubahan berperingkat`,commitMessage:`Mesej commit`,committed:`Commit dicipta.`,detached:`HEAD terpisah`,diff:`Pratonton diff`,diffFailed:`Tidak dapat memuatkan diff ini.`,history:`Sejarah setempat`,initialize:`Mulakan Git`,initializeDescription:`Cipta repositori setempat untuk status, diff, cabang dan commit. Tiada kelayakan jauh disambungkan.`,initialized:`Repositori Git dimulakan.`,loadFailed:`Tidak dapat memuatkan status Git.`,localOnly:`Git setempat sahaja. Push, pull dan pull request memerlukan broker kelayakan dipercayai yang berasingan.`,newBranch:`Cabang setempat baharu`,noCommits:`Belum ada commit.`,noDiff:`Belum ada diff teks. Fail tidak dijejak muncul selepas peringkat.`,notInitialized:`Git belum dimulakan`,selectChange:`Pilih fail yang berubah untuk memeriksa diffnya.`,selectPath:`Pilih {{path}}`,stageAll:`Peringkat semua`,stageSelected:`Peringkat {{count}}`,staged:`Perubahan diperingkat.`,switchBranch:`Tukar cabang setempat`,changes:`Perubahan`,createBranch:`Cipta`,filterFiles:`Tapis fail yang berubah`,noFilterMatches:`Tiada fail berubah yang sepadan dengan tapisan ini.`,allChanges:`Semua perubahan`,diffTruncated:`Diff ini dipotong.`,binaryFile:`Fail binari, tiada diff teks.`},hostWorkspace:{hint:`Biarkan kosong untuk ruang kerja terpencil, atau halakan tugas ke folder pada mesin ini.`,label:`Folder ruang kerja (pilihan)`,warning:`Tugas boleh membaca dan menulis folder ini terus. Biarkan kosong untuk ruang kerja terpencil.`}},personaBackground:{label:`Imej Latar Belakang`,uploadBackgroundImage:`Muat naik imej latar belakang`,dragAndDrop:`Seret dan lepas imej atau klik untuk melayari`,chooseImage:`Pilih Imej`,uploading:`Memuat naik...`,enterImageUrl:`Atau masukkan URL imej`,supportedFormats:`Menyokong: JPG, PNG, GIF, WebP (maks 5MB). Imej landskap lebar berfungsi terbaik.`,customBackground:`Imej latar belakang tersuai`,clickToChange:`Klik untuk menukar atau membuang`,removed:`Latar belakang dibuang`,uploaded:`Latar belakang berjaya dimuat naik`,invalidFile:`Sila pilih fail imej yang sah`,fileTooLarge:`Saiz imej latar belakang mestilah kurang daripada 5MB`,readFailed:`Gagal membaca fail imej`,uploadFailed:`Gagal memuat naik imej latar belakang`},modelSelector:{searchInstalled:`Search installed models...`,searchOllama:`Search Ollama library...`,searchHuggingFace:`Search HuggingFace...`,selectModel:`Select Model`,personas:`Personas`,ollamaModels:`Ollama Models`,pluginModels:`Plugin Models`,actions:`Actions`,installed:`Installed`,use:`Use`,pull:`Pull`,pullRestricted:`Pemasangan model dihadkan kepada pentadbir sahaja pada instance ini.`,adminOnlyPull:`Pentadbir sahaja`,legacyProvider:`penyedia tidak direkodkan`,providerNotRecorded:`Penyedia tidak direkodkan`,providerUnavailable:`penyedia tidak tersedia`,reselectProvider:`pilih semula penyedia untuk menyemat model ini`,unavailable:`tidak tersedia`,unavailableSelections:`Pilihan tidak tersedia`,agentModels:`Ejen`},whatsNew:{title:`Apa yang baharu`,releaseNotes:`Nota keluaran`,cta:`Okay, mari mula`,starAsk:`Suka Libre WebUI? Beri bintang di GitHub`},notes:{title:`Nota`,new:`Nota baharu`,untitled:`Tanpa tajuk`,empty:`Tiada nota lagi`,selectOrCreate:`Pilih nota atau cipta yang baharu`,contentPlaceholder:`Tulis dalam Markdown…`,saved:`Disimpan`,saveFailed:`Tidak dapat menyimpan nota`,createFailed:`Tidak dapat mencipta nota`,deleteConfirm:`Padam nota ini?`,deleteFailed:`Tidak dapat memadam nota`,tools:`Alatan nota`,revisions:`Sejarah`,attachments:`Lampiran`,share:`Kongsi`,assist:`Suntingan AI`,noRevisions:`Belum ada versi terdahulu`,restore:`Pulihkan`,revisionRestored:`Versi dipulihkan`,revisionRestoreFailed:`Tidak dapat memulihkan versi ini`,addAttachment:`Tambah lampiran`,noAttachments:`Belum ada lampiran`,attachmentAdded:`Lampiran ditambah`,attachmentFailed:`Tidak dapat menambah lampiran`,attachmentDownloadFailed:`Tidak dapat memuat turun lampiran`,shareUsernamePlaceholder:`Nama pengguna`,permissionRead:`Boleh lihat`,permissionWrite:`Boleh sunting`,shareAction:`Kongsi`,notShared:`Belum dikongsi dengan sesiapa`,revokeShare:`Tarik balik akses`,shareHint:`Nota yang dikongsi muncul dalam senarai nota orang lain. Akses boleh ditarik balik pada bila-bila masa.`,shareUserNotFound:`Tiada pengguna dengan nama itu`,shareAdded:`Dikongsi dengan {{username}}`,shareFailed:`Tidak dapat berkongsi nota`,assistPlaceholder:`Terangkan perubahan, cth. pendekkan ringkasan atau betulkan tatabahasa`,assistGenerate:`Cadangkan suntingan`,assistNoModel:`Pilih model dalam Chat dahulu`,assistNoChanges:`Model tidak mencadangkan perubahan`,assistApply:`Guna pakai`,assistDiscard:`Buang`,assistApplied:`Suntingan digunakan`,assistRevisionHint:`Apabila digunakan, versi sebelumnya kekal dalam sejarah supaya setiap suntingan AI boleh diundurkan.`,assistFailed:`Tidak dapat menjana suntingan`,pin:`Semat nota`,unpin:`Nyahsemat nota`,pinned:`Disemat`,export:`Muat turun sebagai Markdown`,sharedWithYou:`Dikongsi dengan anda`},calendar:{title:`Kalendar`,today:`Hari ini`,month:`Bulan`,week:`Minggu`,previous:`Sebelumnya`,next:`Seterusnya`,newEvent:`Acara baharu`,editEvent:`Edit acara`,eventTitle:`Tajuk`,titlePlaceholder:`Tajuk acara`,date:`Tarikh`,start:`Mula`,end:`Tamat`,allDay:`Sepanjang hari`,repeat:`Ulang`,repeatNone:`Tidak berulang`,repeatDaily:`Harian`,repeatWeekly:`Mingguan`,repeatMonthly:`Bulanan`,repeatYearly:`Tahunan`,notes:`Nota`,more:`+{{n}} lagi`,loadFailed:`Gagal memuatkan kalendar`,saveFailed:`Gagal menyimpan acara`,deleteFailed:`Gagal memadamkan acara`,day:`Hari`,calendarLabel:`Kalendar`,personalCalendar:`Peribadi`,reminderLabel:`Peringatan`,reminderNone:`Tiada peringatan`,reminderMinutes:`{{minutes}} minit sebelum`,reminderHour:`1 jam sebelum`,reminderDay:`1 hari sebelum`,sharedReadOnly:`Acara ini dikongsi dengan anda untuk paparan sahaja.`,sharedBadge:`dikongsi`,shareCalendar:`Kongsi kalendar`,newCalendarPlaceholder:`Kalendar baharu…`,calendarSaveFailed:`Kalendar tidak dapat disimpan`,exportFailed:`Kalendar tidak dapat dieksport`,importFailed:`Fail tidak dapat diimport`,importResult:`{{total}} acara diimport`,importIcs:`Import`,exportIcs:`Eksport`},automations:{title:`Automasi`,tab:{automations:`Automasi`,runs:`Larian`},newAutomation:`Automasi baharu`,editAutomation:`Edit automasi`,empty:`Belum ada automasi. Cipta satu untuk menjalankan tugas mengikut jadual.`,loadFailed:`Gagal memuatkan automasi`,saveFailed:`Gagal menyimpan automasi`,actionFailed:`Tindakan gagal`,runQueued:`Larian dimulakan`,status:{active:`Aktif`,paused:`Dijeda`},nextRun:`Larian seterusnya {{when}}`,actions:`Tindakan`,pause:`Jeda`,resume:`Sambung semula`,runNow:`Jalankan sekarang`,openChat:`Buka sembang`,noRuns:`Belum ada larian`,deletedAutomation:`Automasi dipadamkan`,runHistory:`Sejarah larian (30 hari lepas)`,succeeded:`berjaya`,failed:`gagal`,form:{name:`Nama`,namePlaceholder:`Automasi saya`,triggers:`Pencetus`,addTrigger:`Tambah pencetus`,instructions:`Arahan`,instructionsPlaceholder:`Apa yang patut dijalankan mengikut jadual ini?`,model:`Model`,modelAuto:`Auto`,notification:`Pemberitahuan`,notifyApp:`Aplikasi`,notifyOff:`Mati`,frequency:`Kekerapan`,time:`Masa`,minute:`Minit`,fromHour:`Dari`,toHour:`Hingga`,weekday:`Hari`,dayOfMonth:`Hari bulan`,month:`Bulan`},kind:{once:`Sekali`,hourly:`Setiap jam`,daily:`Harian`,weekly:`Mingguan`,monthly:`Bulanan`,yearly:`Tahunan`},trigger:{once:`Sekali pada {{when}}`,hourly:`Setiap jam pada minit :{{minute}}`,daily:`Setiap hari pada {{time}}`,weekly:`Setiap {{day}} pada {{time}}`,monthly:`Setiap {{day}} haribulan pada {{time}}`,yearly:`Setiap tahun pada {{date}} {{time}}`},finishedNotification:`{{n}} larian automasi selesai`,templatesTitle:`Templat`,templates:{morningBrief:{name:`Ringkasan pagi`,description:`Mulakan hari dengan tajuk utama dan keutamaan.`},newsDigest:{name:`Ringkasan berita AI`,description:`Keluaran model, penyelidikan dan pembiayaan yang penting.`},weeklyReview:{name:`Ulasan mingguan`,description:`Tutup minggu: kejayaan, kerja tertangguh, keutamaan seterusnya.`},monthlyReport:{name:`Laporan bulanan`,description:`Rangka laporan status pada satu haribulan setiap bulan.`}}},home:{active:`aktif`,continue:`Teruskan`,start:`Mula`,explore:`Terokai`},palette:{empty:`Tiada padanan.`,placeholder:`Cari sembang, Work, tindakan…`,toggleTheme:`Tukar tema`,actions:`Tindakan`,chats:`Sembang`,search:`Cari`,settings:`Tetapan`,work:`Kerja`,messages:`Mesej`,notes:`Nota`,documents:`Dokumen`},tabs:{actions:`Tindakan tab`,close:`Tutup tab`,closeAll:`Tutup semua tab`,closeOthers:`Tutup tab lain`,closeRight:`Tutup tab di kanan`,home:`Laman utama`,label:`Tab terbuka`,new:`Tab baharu`,newWork:`Work baharu`,chat:`Sembang`,newChat:`Sembang Baharu`,work:`Kerja`},tools:{arguments:`Argumen`,result:`Keputusan`,callStatus:{awaiting_approval:`Menunggu kelulusan`,running:`Sedang berjalan`,succeeded:`Selesai`,failed:`Gagal`,denied:`Ditolak`,cancelled:`Dibatalkan`},approval:{title:`Alat perlukan kelulusan`,description:`Model mahu menjalankan {{tool}} pada {{server}}. Panggilan ini boleh mengubah data di luar sembang ini.`,builtinSource:`pelayan ini`,allowOnce:`Izinkan sekali`,allowSession:`Izinkan dalam sembang ini`,allowAlways:`Izinkan sentiasa`,deny:`Tolak`}},promptsPage:{title:`Prompt`,description:`Templat prompt boleh guna semula dengan pemboleh ubah bertaip. Taip / dalam ruang sembang untuk menyisipkan satu.`,newPrompt:`Prompt baharu`,editPrompt:`Edit prompt`,empty:`Belum ada prompt`,emptyHint:`Prompt ialah templat mesej yang disimpan. Setelah anda mencipta satu, menaip /slug dalam ruang sembang akan menyisipkannya dan bertanya pemboleh ubah yang diisytiharkannya.`,loadFailed:`Prompt anda tidak dapat dimuatkan.`,saved:`Prompt disimpan`,saveFailed:`Prompt tidak dapat disimpan.`,deleted:`Prompt dipadam`,deleteFailed:`Prompt tidak dapat dipadam.`,deleteTitle:`Padam prompt`,deleteConfirm:`Padam "{{title}}"? Sejarah versinya turut hilang.`,exportFailed:`Prompt tidak dapat dieksport.`,imported:`Prompt diimport`,importFailed:`Fail itu tidak dapat diimport.`,historyFailed:`Sejarah versi tidak dapat dimuatkan.`,rolledBack:`Prompt dikembalikan`,rollbackFailed:`Prompt tidak dapat dikembalikan.`,versionLabel:`v{{version}}`,updated:`Dikemas kini {{when}}`,form:{slug:`Slug`,slugPlaceholder:`weekly-report`,slugHint:`Digunakan sebagai /slug dalam ruang sembang.`,slugInvalid:`Huruf kecil, digit dan sengkang sahaja.`,title:`Tajuk`,titlePlaceholder:`Laporan mingguan`,description:`Penerangan`,descriptionPlaceholder:`Untuk apa prompt ini`,content:`Kandungan`,contentPlaceholder:`Tulis prompt itu. Balut apa-apa yang mahu diisi kemudian dengan kurungan kerinting berganda.`,contentHint:`Pemegang tempat ialah nama dalam kurungan kerinting berganda. Isytiharkannya di bawah untuk memberi label atau nilai lalai.`,tags:`Tag`,tagsPlaceholder:`penyelidikan, penulisan`,variables:`Pemboleh ubah`,variablesHint:`Pilihan. Isytiharkan pemegang tempat di sini untuk memberinya label, nilai lalai atau satu set pilihan.`,variableName:`Nama`,variableType:`Jenis`,variableLabel:`Label`,variableDefault:`Lalai`,variableRequired:`Diperlukan`,variableOptions:`Pilihan`,variableOptionsPlaceholder:`Pilihan dipisahkan koma`,addVariable:`Tambah pemboleh ubah`,removeVariable:`Buang pemboleh ubah`},variableTypes:{text:`Teks`,number:`Nombor`,select:`Pilihan`,boolean:`Ya atau tidak`},history:{open:`Sejarah versi`,title:`Sejarah {{title}}`,subtitle:`Mengembalikan versi menyimpan semakan yang dipilih sebagai versi baharu. Tiada apa-apa ditulis ganti.`,empty:`Belum ada versi terdahulu.`,current:`Semasa`,rollback:`Kembalikan`,rollingBack:`Mengembalikan...`},templatesTitle:`Mula daripada templat`,templates:{reviewPr:{name:`Semakan pull request`,description:`Semakan kod berstruktur dengan tahap ketegasan boleh laras.`},summarize:{name:`Ringkaskan untuk khalayak tertentu`,description:`Ringkasan bentuk poin yang disesuaikan dengan pembaca.`},translate:{name:`Terjemah`,description:`Terjemahan yang mengekalkan nada dan format.`},explainCode:{name:`Terangkan kod`,description:`Penerangan langkah demi langkah serta kes tepi dan risiko.`}}},skillsPage:{title:`Kemahiran`,description:`Set arahan bernama yang boleh dimuatkan model apabila diperlukan semasa bekerja.`,newSkill:`Kemahiran baharu`,editSkill:`Edit kemahiran`,empty:`Belum ada kemahiran`,emptyHint:`Kemahiran ialah set arahan yang dimuatkan model hanya apabila ia perlukannya. Sebut $slug dalam mesej, atau biarkan model mencapainya melalui alat load_skill.`,loadFailed:`Kemahiran anda tidak dapat dimuatkan.`,saved:`Kemahiran disimpan`,saveFailed:`Kemahiran tidak dapat disimpan.`,toggleFailed:`Kemahiran tidak dapat diubah.`,deleted:`Kemahiran dipadam`,deleteFailed:`Kemahiran tidak dapat dipadam.`,deleteTitle:`Padam kemahiran`,deleteConfirm:`Padam "{{name}}"? Sejarah versinya turut hilang.`,exportFailed:`Kemahiran tidak dapat dieksport.`,imported:`Kemahiran diimport`,importFailed:`Fail itu tidak dapat diimport.`,historyFailed:`Sejarah versi tidak dapat dimuatkan.`,rolledBack:`Kemahiran dikembalikan`,rollbackFailed:`Kemahiran tidak dapat dikembalikan.`,versionLabel:`v{{version}}`,updated:`Dikemas kini {{when}}`,form:{slug:`Slug`,slugPlaceholder:`code-review`,slugHint:`Digunakan sebagai $slug apabila anda menyebut kemahiran itu.`,slugInvalid:`Huruf kecil, digit dan sengkang sahaja.`,name:`Nama`,namePlaceholder:`Semakan kod`,description:`Penerangan`,descriptionPlaceholder:`Bila kemahiran ini digunakan`,descriptionHint:`Inilah manifes yang dilihat model. Tulis supaya model tahu bila kemahiran ini sesuai tanpa memuatkannya.`,instructions:`Arahan`,instructionsPlaceholder:`Arahan Markdown yang dibaca model setelah memuatkan kemahiran ini.`,instructionsHint:`Dimuatkan hanya apabila kemahiran digunakan, jadi panjangnya tidak menelan kos sehingga waktu itu.`,enabled:`Diaktifkan`,enabledHint:`Kemahiran yang dilumpuhkan kekal tersimpan tetapi tidak pernah ditawarkan kepada model.`},history:{open:`Sejarah versi`,title:`Sejarah {{name}}`},templatesTitle:`Mula daripada templat`,templates:{citeSources:{name:`Nyatakan sumber`,description:`Rujukan bernombor dengan URL, tiada dakwaan tanpa sumber.`},releaseNotes:{name:`Gaya nota keluaran`,description:`Entri berkumpulan untuk pengguna, tanpa id dalaman.`},meetingNotes:{name:`Format nota mesyuarat`,description:`Keputusan, tindakan susulan dan soalan terbuka daripada transkrip.`}},importUrl:{button:`Dari URL`,title:`Import kemahiran daripada URL`,hint:`Tampal pautan skills.sh atau GitHub, owner/repo/skill, atau pautan terus ke fail SKILL.md.`,placeholder:`https://skills.sh/owner/repo/skill atau owner/repo/skill`,overwrite:`Tulis ganti kemahiran saya jika slug sudah wujud`},files:{title:`Fail yang disertakan`,hint:`Dokumen rujukan dan skrip yang dibaca model apabila perlu melalui read_skill_file.`,add:`Tambah fail`,empty:`Belum ada fail yang disertakan.`,pathPlaceholder:`docs/reference.md`,contentPlaceholder:`Kandungan fail…`,loadFailed:`Gagal memuatkan fail`,saveFailed:`Gagal menyimpan fail`,deleteFailed:`Gagal memadam fail`},folderImport:{button:`Dari folder`,missingSkillMd:`Folder mesti mengandungi fail SKILL.md`,done:`Kemahiran diimport dengan {{count}} fail yang disertakan`}},toolsPage:{title:`Alat`,description:`Pelayan alat yang boleh dipanggil model, dan kelulusan yang anda berikan kepadanya.`,approvalNotice:`Alat yang mengubah data di luar sembang sentiasa meminta kelulusan, melainkan anda telah memberi alat itu kelulusan kekal atau kelulusan untuk sembang ini.`,registerServer:`Daftar pelayan`,registerHint:`Libre WebUI membaca pelayan sekali dan menyemat alat yang didedahkannya. Segarkan pelayan kemudian untuk menangkap perubahan.`,editServer:`Edit pelayan`,empty:`Tiada pelayan alat`,emptyHintAdmin:`Daftarkan pelayan OpenAPI atau MCP supaya model ada sesuatu untuk dipanggil.`,emptyHintUser:`Pentadbir belum berkongsi mana-mana pelayan alat dengan anda.`,loadFailed:`Pelayan alat tidak dapat dimuatkan.`,saved:`Pelayan alat disimpan`,saveFailed:`Pelayan alat tidak dapat disimpan.`,deleted:`Pelayan alat dipadam`,deleteFailed:`Pelayan alat tidak dapat dipadam.`,deleteTitle:`Padam pelayan alat`,deleteConfirm:`Padam "{{name}}"? Semua orang hilang akses kepada alatnya.`,refresh:`Segarkan alat`,refreshed:`Alat dibaca semula daripada pelayan`,refreshFailed:`Pelayan tidak dapat dibaca.`,toolsLoadFailed:`Alat yang disemat tidak dapat dimuatkan.`,overrideFailed:`Alat tidak dapat diubah.`,pinnedTools:`Alat yang disemat`,noPinnedTools:`Pelayan ini tidak mendedahkan sebarang alat.`,sideEffect:`Kesan sampingan`,sideEffectOverride:`Kesan sampingan`,specRevision:`Semakan {{revision}}`,credential:`Kelayakan peribadi`,credentialHint:`Disimpan tersulit dan digunakan hanya untuk panggilan anda sendiri ke pelayan ini.`,credentialPlaceholder:`Tampal token anda`,credentialSet:`Kelayakan ditetapkan`,credentialMissing:`Kelayakan diperlukan`,credentialSaved:`Kelayakan disimpan`,credentialSaveFailed:`Kelayakan tidak dapat disimpan.`,credentialRemove:`Buang`,credentialRemoved:`Kelayakan dibuang`,credentialRemoveFailed:`Kelayakan tidak dapat dibuang.`,builtinSource:`Pelayan ini`,kinds:{openapi:`OpenAPI`,mcp:`MCP`},authModes:{none:`Tiada pengesahan`,bearer:`Token bearer`,header:`Pengepala tersuai`},accessModes:{"admins-only":`Pentadbir sahaja`,"all-users":`Semua orang`,granted:`Hanya mereka yang diberi akses`},form:{name:`Nama`,namePlaceholder:`API cuaca`,kind:`Jenis`,description:`Penerangan`,descriptionPlaceholder:`Apa yang dilakukan pelayan ini`,baseUrl:`URL asas`,specUrl:`URL spesifikasi`,specUrlHint:`Pilihan. URL asas digunakan apabila dibiarkan kosong.`,authMode:`Pengesahan`,authHeader:`Nama pengepala`,accessMode:`Siapa yang boleh menggunakannya`,timeoutMs:`Had masa (ms)`,maxResponseBytes:`Respons maksimum (bait)`,serverDefault:`Lalai pelayan`,enabled:`Diaktifkan`,enabledHint:`Pelayan yang dilumpuhkan kekal berdaftar tetapi tidak pernah ditawarkan kepada model.`},approvals:{title:`Kelulusan kekal`,description:`Alat yang anda benarkan berjalan tanpa ditanya lagi. Tarik balik satu, dan ia akan bertanya lain kali.`,empty:`Tiada kelulusan kekal.`,revoke:`Tarik balik`,revoked:`Kelulusan ditarik balik`,revokeFailed:`Kelulusan tidak dapat ditarik balik.`,scope:{once:`Sekali`,session:`Sembang ini`,always:`Sentiasa`}},templatesTitle:`Mula daripada templat`,templates:{petstore:{name:`Demo Petstore`,description:`API demo awam untuk ujian hujung ke hujung pertama yang selamat.`},internalOpenApi:{name:`API dalaman`,description:`Titik permulaan untuk perkhidmatan OpenAPI anda sendiri.`},mcpServer:{name:`Pelayan MCP`,description:`Titik permulaan untuk pelayan MCP melalui Streamable HTTP.`}}},composer:{promptMenu:{label:`Pustaka prompt`,empty:`Belum ada prom — cipta satu di Tetapan → Prom, atau mula taip slug.`},skillMenu:{label:`Kemahiran`,empty:`Belum ada kemahiran — cipta satu di Tetapan → Kemahiran.`},variables:{title:`Isikan {{title}}`,insert:`Sisipkan`,cancel:`Batal`,required:`{{name}} diperlukan`},toolsMenu:{enable:`Guna alat untuk mesej ini`,builtin:`Alat terbina dalam`,servers:`Pelayan alat`,hint:`Panggilan dengan kesan sampingan masih meminta kelulusan sebelum dijalankan.`}},share:{title:`Kongsi “{{name}}”`,subtitle:`Beri akses kepada orang atau kumpulan. Hanya anda mengurus perkongsian.`,kindUser:`Pengguna`,kindGroup:`Kumpulan`,usernamePlaceholder:`Nama pengguna tepat`,groupPlaceholder:`Nama kumpulan tepat`,permissionRead:`Boleh lihat`,permissionWrite:`Boleh sunting`,action:`Kongsi`,empty:`Belum dikongsi dengan sesiapa.`,hint:`Masukkan nama pengguna atau kumpulan yang tepat. Penerima melihatnya dalam ruang kerja mereka; pembatalan menarik akses serta-merta.`,revoke:`Batalkan akses`,added:`Dikongsi dengan {{name}}`,failed:`Perkongsian gagal`,userNotFound:`Tiada pengguna dengan nama itu`,groupNotFound:`Tiada kumpulan dengan nama itu`},channels:{title:`Saluran`,browsePublic:`Layari saluran awam`,newDm:`Mesej terus baharu`,newChannel:`Saluran baharu`,empty:`Belum ada saluran. Cipta satu atau layari saluran awam.`,selectPrompt:`Pilih saluran untuk bermula`,pins:`Disemat`,members:`Ahli`,settings:`Tetapan saluran`,sendFailed:`Mesej tidak dapat dihantar`,uploadFailed:`Fail tidak dapat dimuat naik`,memberAdded:`Ahli ditambah`,memberAddFailed:`Pengguna itu tidak dapat ditambah`,attach:`Lampirkan fail`,askModel:`Tanya model dengan mesej ini`,noModel:`Tiada model`,composerPlaceholder:`Tulis mesej…`,thread:`Bebenang`,replyPlaceholder:`Balas…`,invitePlaceholder:`Pengguna untuk dijemput`,roleOwner:`pemilik`,removeMember:`Keluarkan dari saluran`,leave:`Tinggalkan saluran`,noPins:`Belum ada yang disemat.`,noMessages:`Belum ada mesej — sapa dahulu.`,create:`Cipta`,createFailed:`Saluran tidak dapat dicipta`,nameLabel:`Nama`,typeLabel:`Jenis`,typePublic:`Awam — sesiapa boleh sertai`,typePrivate:`Peribadi — jemputan sahaja`,descriptionLabel:`Penerangan`,openDm:`Buka perbualan`,dmFailed:`Perbualan tidak dapat dibuka`,dmHint:`Mesej terus kekal peribadi antara anda berdua.`,dmPlaceholder:`Nama pengguna tepat`,noPublic:`Tiada saluran awam.`,joined:`Menyertai`,join:`Sertai`,save:`Simpan`,delete:`Padam saluran`,modelAuthor:`Model`,unknownAuthor:`Seseorang`,edited:`disunting`,deletedMessage:`Mesej ini telah dipadamkan`,modelThinking:`Model sedang berfikir…`,react:`Tambah reaksi`,reply:`Balas dalam bebenang`,pin:`Semat mesej`,unpin:`Nyahsemat mesej`,edit:`Sunting mesej`,deleteMessage:`Padam mesej`,replyCount:`{{total}} balasan`},notifications:{title:`Pemberitahuan`,empty:`Semuanya sudah dibaca.`,markAllRead:`Tanda semua sudah dibaca`,markRead:`Tanda sudah dibaca`},voiceMode:{title:`Mod suara`,open:`Mulakan mod suara`,close:`Tutup mod suara`,starting:`Memulakan…`,listening:`Mendengar…`,muted:`Mikrofon disenyapkan`,transcribing:`Mentranskripsi…`,generating:`Berfikir…`,speaking:`Bercakap…`,mute:`Senyapkan mikrofon`,unmute:`Nyahsenyapkan mikrofon`,finishTurn:`Selesai bercakap`,skipReply:`Langkau jawapan`,microphoneFailed:`Mikrofon tidak tersedia`,transcriptionFailed:`Transkripsi gagal`,replyTimeout:`Jawapan mengambil masa terlalu lama`,unsupported:`Mod suara tidak tersedia`,unsupportedHint:`Mod suara memerlukan mikrofon serta penyedia pertuturan-ke-teks atau pengecaman pertuturan pelayar.`},imageEdit:{title:`Edit imej`,prompt:`Terangkan perubahan`,promptPlaceholder:`Contohnya: gantikan langit dengan matahari terbenam`,model:`Model`,apply:`Gunakan suntingan`,maskHint:`Cat kawasan yang perlu dilukis semula; biarkan kanvas tidak disentuh untuk mengedit keseluruhan imej.`,brushSize:`Saiz berus`,clearMask:`Kosongkan topeng`,referenceImages:`Imej rujukan (sehingga {{total}})`,noModels:`Tiada model yang dikonfigurasi menyokong suntingan imej.`,saved:`Imej yang disunting disimpan ke galeri`,failed:`Suntingan imej gagal`,loadFailed:`Gagal memuatkan imej sumber`},costs:{title:`Kos dan bajet`,description:`Harga tarif digunakan pada lejar penggunaan; bajet memantau atau mengehadkan perbelanjaan.`,loadFailed:`Gagal memuatkan data kos`,saveFailed:`Gagal menyimpan`,exportFailed:`Gagal mengeksport`,exportCsv:`Eksport CSV`,totalSpend:`Jumlah perbelanjaan`,meteredEvents:`Peristiwa berharga`,unmeteredEvents:`Peristiwa tanpa harga`,topModel:`Model teratas`,budgets:`Bajet`,noBudgets:`Belum ada bajet.`,budgetName:`Nama bajet`,principalId:`ID pengguna atau kumpulan`,addBudget:`Tambah bajet`,deleteBudget:`Padam bajet`,budgetSaved:`Bajet disimpan`,scope:{instance:`Seluruh instans`,user:`Pengguna`,group:`Kumpulan`},period:{daily:`Harian`,weekly:`Mingguan`,monthly:`Bulanan`},mode:{observe:`Pantau`,soft:`Beri amaran`,hard:`Beri amaran dan sekat`},tariffs:`Tarif`,noTariffs:`Belum ada tarif — kos kekal tanpa harga sehingga anda menambah harga.`,plugin:`Plugin`,model:`Model`,modelOptional:`Model (pilihan)`,allModels:`Semua model`,inputPerMillion:`Input $/M token`,outputPerMillion:`Output $/M token`,unitPrice:`Harga seunit`,effectiveFrom:`Berkuat kuasa dari`,addTariff:`Tambah tarif`,deleteTariff:`Padam tarif`,tariffSaved:`Tarif disimpan`},evaluations:{title:`Penilaian`,description:`Pertarungan arena buta, papan pendahulu Elo, set penilaian boleh guna semula dan set data maklum balas anda.`,loadFailed:`Gagal memuatkan penilaian`,matchFailed:`Pertarungan arena gagal`,voteRecorded:`Undian direkodkan`,voteFailed:`Gagal merekodkan undian`,saveFailed:`Gagal menyimpan`,exportFailed:`Gagal mengeksport`,setSaved:`Set penilaian disimpan`,runStarted:`Larian penilaian dimulakan`,pickModel:`Pilih model`,tabs:{arena:`Arena`,leaderboard:`Papan pendahulu`,sets:`Set penilaian`,feedback:`Maklum balas`},arenaModelA:`Model A`,arenaModelB:`Model B`,arenaPrompt:`Tanya soalan yang sama kepada kedua-dua model…`,startMatch:`Mulakan pertarungan`,arenaHint:`Identiti model kekal tersembunyi sehingga anda mengundi.`,candidate:`Jawapan {{letter}}`,voteFirst:`Pertama lebih baik`,voteSecond:`Kedua lebih baik`,voteTie:`Seri`,voteBothBad:`Kedua-duanya teruk`,model:`Model`,rating:`Skor`,record:`Rekod`,votes:`Undian`,noVotes:`Belum ada undian — mulakan pertarungan untuk membina papan pendahulu.`,newSet:`Set penilaian baharu`,setName:`Nama set`,setPrompts:`Satu prom setiap baris…`,saveSet:`Simpan set`,yourSets:`Set anda`,noSets:`Belum ada set penilaian.`,itemCount:`{{total}} prom`,run:`Jalankan`,deleteSet:`Padam set`,cancelRun:`Batalkan larian`,exportRun:`Eksport larian`,status:{queued:`Menunggu`,running:`Berjalan`,completed:`Selesai`,failed:`Gagal`,cancelled:`Dibatalkan`},noFeedback:`Belum ada maklum balas — nilai jawapan untuk membina set data anda.`}};export{e as default};