@acedatacloud/nexior 3.297.0 → 3.298.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{ApiCodeButton-D3NDwGEQ.js → ApiCodeButton-CHgCSSti.js} +1 -1
- package/dist/assets/{AskUserQuestionCard-BK6vtgOl.js → AskUserQuestionCard-CVFwZF4c.js} +1 -1
- package/dist/assets/{Auth-DyPE0agL.js → Auth-BcdFoFVe.js} +1 -1
- package/dist/assets/{Bare-W1WYhzcj.js → Bare-_POFmVwJ.js} +1 -1
- package/dist/assets/{BotPlaceholder-tzn4V4hM.js → BotPlaceholder-CbIQjOmI.js} +1 -1
- package/dist/assets/{BottomFooter-C9sguAiz.js → BottomFooter-V8_MH9ar.js} +1 -1
- package/dist/assets/{Callback-DKZL23lr.js → Callback-WeHJz5Zu.js} +1 -1
- package/dist/assets/{CodeSnippet-C-MJSFnE.js → CodeSnippet-DvMEs3zG.js} +1 -1
- package/dist/assets/{Console-D5sCAK6O.js → Console-CzKCUmno.js} +1 -1
- package/dist/assets/{Consumption-CtbthU2z.js → Consumption-SKsEdfSL.js} +1 -1
- package/dist/assets/{Conversation-BqopG9UN.js → Conversation-BGlNtfUo.js} +1 -1
- package/dist/assets/{CopyToClipboard-YUbA8VDd.js → CopyToClipboard-Ds9LKDk2.js} +1 -1
- package/dist/assets/{Detail-DUtMGafv.js → Detail-DOyXO_mg.js} +2 -2
- package/dist/assets/{Extra-EO84i593.js → Extra-CreTwWQa.js} +1 -1
- package/dist/assets/{FilePreview-0tgqqRjF.js → FilePreview-46wZB-i4.js} +1 -1
- package/dist/assets/{Hailuo-CcgCwI_e.js → Hailuo-C6dSEH18.js} +1 -1
- package/dist/assets/{History-Dm3fyPOi.js → History-Bv0xtBm9.js} +1 -1
- package/dist/assets/{ImagePreview-NOcu0byp.js → ImagePreview-TvJjbc67.js} +1 -1
- package/dist/assets/{ImageWrapper-BqY4UYBG.js → ImageWrapper-vkAGWf06.js} +1 -1
- package/dist/assets/{Index-CVAStwX7.js → Index--1LE9rsq.js} +1 -1
- package/dist/assets/{Index-B_JYoYDC.js → Index--DOKH1w1.js} +1 -1
- package/dist/assets/{Index-OyyGxYEH.js → Index-B8l6Ek2w.js} +1 -1
- package/dist/assets/{Index-BE6RS7eP.js → Index-BFZQeekm.js} +1 -1
- package/dist/assets/{Index-DLtVulq_.js → Index-BPluXz7_.js} +1 -1
- package/dist/assets/{Index-lzhFtWIr.js → Index-BRZzUcCH.js} +1 -1
- package/dist/assets/{Index-DERSjjY_.js → Index-BUnLK107.js} +1 -1
- package/dist/assets/{Index-Vy78SCcL.js → Index-BnXwmA_o.js} +1 -1
- package/dist/assets/{Index-CauJBvTc.js → Index-BzOUGYB1.js} +1 -1
- package/dist/assets/{Index-D68MtYF1.js → Index-C-spIW5D.js} +1 -1
- package/dist/assets/{Index-BcQoWAyW.js → Index-C2Ep6B-A.js} +1 -1
- package/dist/assets/{Index-DPi3XoTD.js → Index-CBTg5JVs.js} +1 -1
- package/dist/assets/{Index-2isZiNVp.js → Index-CF-dcO_f.js} +1 -1
- package/dist/assets/{Index-BaIii6-j.js → Index-CVKZmVEW.js} +1 -1
- package/dist/assets/{Index-B1c-Obd_.js → Index-CVOdVhQQ.js} +1 -1
- package/dist/assets/{Index-DK6cRzFx.js → Index-CbUzZmCA.js} +1 -1
- package/dist/assets/{Index-jFrfBE3e.js → Index-D-qNxLPp.js} +1 -1
- package/dist/assets/{Index-DM9WgbIr.js → Index-D8AkWW-d.js} +1 -1
- package/dist/assets/{Index-Ctjvdh9q.js → Index-D8vwQjXR.js} +1 -1
- package/dist/assets/{Index-C7-42--V.js → Index-DPEL9U86.js} +1 -1
- package/dist/assets/{Index-DdgUdEas.js → Index-DaglG8vQ.js} +1 -1
- package/dist/assets/{Index-dx3YIDUr.js → Index-DjWK-Zcx.js} +1 -1
- package/dist/assets/{Index-DFxnqQu6.js → Index-DnTA__8t.js} +1 -1
- package/dist/assets/{Index-DJI9edl0.js → Index-DoI-BFpr.js} +1 -1
- package/dist/assets/{Index-DWnDCjHc.js → Index-Dr_hdtJw.js} +1 -1
- package/dist/assets/{Index-DkHeVVGf.js → Index-ZQvKmIy0.js} +1 -1
- package/dist/assets/{Index-1f3KgSPI.js → Index-fn8g0pN0.js} +1 -1
- package/dist/assets/{Index-BZpuOKmq.js → Index-nwUMZ-Wi.js} +1 -1
- package/dist/assets/{Invitees-DP3kAxo5.js → Invitees-Cll-H_5F.js} +1 -1
- package/dist/assets/{List-DgVpF2Rg.js → List-AJq8IceH.js} +1 -1
- package/dist/assets/{List-B6ZtNjFY.js → List-Cg6wmGPS.js} +1 -1
- package/dist/assets/{List-CYvNNDZo.js → List-DmdMphnE.js} +1 -1
- package/dist/assets/LocalTools-DKa5Gp1L.css +1 -0
- package/dist/assets/LocalTools-DfCqN5BM.js +1 -0
- package/dist/assets/{LocalTools-DSAXHJ9G.js → LocalTools-NU5DAAZo.js} +1 -1
- package/dist/assets/{Main-oiWNMDVg.js → Main-DQpVc1SJ.js} +1 -1
- package/dist/assets/{Model-Dd-bfm0M.js → Model-DiUxdLN3.js} +1 -1
- package/dist/assets/{Navigator-Cd-D5LiA.js → Navigator-D6Loe2eL.js} +1 -1
- package/dist/assets/{NoTasks-BMY3DTZM.js → NoTasks-vRjyx9e_.js} +1 -1
- package/dist/assets/{NotFound-B2tktmXp.js → NotFound-DRY6poQL.js} +1 -1
- package/dist/assets/{Pagination-pMlZSNYr.js → Pagination-DZOuYajR.js} +1 -1
- package/dist/assets/{Pay-DLWQZ_Vu.js → Pay-Ibb1VZfF.js} +1 -1
- package/dist/assets/{Player-fvaDxovV.js → Player-ByJCLlsb.js} +1 -1
- package/dist/assets/{PromptTextarea-OACGjf6y.js → PromptTextarea-DsvfmQWU.js} +1 -1
- package/dist/assets/{RealtimeCall-BzVf4nBk.js → RealtimeCall-plkwIqr1.js} +1 -1
- package/dist/assets/{ScheduledTasks-Aw9iRwxx.js → ScheduledTasks-DXLhqev7.js} +1 -1
- package/dist/assets/{Status-B7J1EPZK.js → Status-C3hF5YBI.js} +1 -1
- package/dist/assets/{Subscribe-DZKUQnCa.js → Subscribe-Bg9xyDFF.js} +1 -1
- package/dist/assets/{TabSwitcher-BrWNnow0.js → TabSwitcher-DqUvZK6D.js} +1 -1
- package/dist/assets/{Tts-Dxbdkafe.js → Tts-D-4ZJiSE.js} +1 -1
- package/dist/assets/{VideoPlayer-2y2Q8vUn.js → VideoPlayer-DfADP3bA.js} +1 -1
- package/dist/assets/{avatar-NYPgTgww.js → avatar-BURibYB6.js} +1 -1
- package/dist/assets/{basic-DAGE-6xj.js → basic-CrN6NEP7.js} +1 -1
- package/dist/assets/{chat-BHk8J3CO.js → chat-h-uTL-_8.js} +1 -1
- package/dist/assets/{codingBridge-ClcZaHJT.js → codingBridge-x9W5cJUj.js} +1 -1
- package/dist/assets/{codingBridgeNotify-zKR0ELa0.js → codingBridgeNotify-Dyre4a5u.js} +2 -2
- package/dist/assets/{collapse-CVgmUg_T.js → collapse-BxfWsP__.js} +1 -1
- package/dist/assets/{common-sKFswoLm.js → common-2fcZkR2X.js} +1 -1
- package/dist/assets/{common-CRUfXxYs.js → common-B2noKXCJ.js} +1 -1
- package/dist/assets/{common-DCxElpgb.js → common-BDB2FW0K.js} +1 -1
- package/dist/assets/{common-0mtnBman.js → common-BrjC4_bf.js} +1 -1
- package/dist/assets/{common-EkHgSKAS.js → common-C7huZgxv.js} +1 -1
- package/dist/assets/{common-b_-BkTF5.js → common-CNnHa1w2.js} +1 -1
- package/dist/assets/{common-CcQsm6Qp.js → common-CZ6hXCM-.js} +1 -1
- package/dist/assets/{common-Bmcfshvf.js → common-Cmg3kt4Y.js} +1 -1
- package/dist/assets/{common-Cw27_c3E.js → common-CnTxzprP.js} +1 -1
- package/dist/assets/{common-CqWVbonC.js → common-Cy5p0-Rf.js} +1 -1
- package/dist/assets/{common-B0hMcQJb.js → common-D-yAkB79.js} +1 -1
- package/dist/assets/{common-DkjTxd1V.js → common-DA4wbTAN.js} +1 -1
- package/dist/assets/{common-DHOfEuZO.js → common-DLvCiLSV.js} +1 -1
- package/dist/assets/{common-BtKjYSsk.js → common-DXeqa5IW.js} +1 -1
- package/dist/assets/{common-BLfv-Rl2.js → common-DYB1Pjo5.js} +1 -1
- package/dist/assets/{common-V4iqwBur.js → common-DdCcc8Ca.js} +1 -1
- package/dist/assets/{common-CvDinA2F.js → common-Wu2Vw-3i.js} +1 -1
- package/dist/assets/{common-DwDXAN6d.js → common-h9SfJ3U_.js} +1 -1
- package/dist/assets/{constants-NMxtQUbk.js → constants-DCFVku39.js} +1 -1
- package/dist/assets/{createTaskActions-Ct_Q8ezP.js → createTaskActions-iyTd7aTs.js} +1 -1
- package/dist/assets/{date-picker-WIVL1R65.js → date-picker-CWU_QC7e.js} +1 -1
- package/dist/assets/{digitalhuman-BiGqvdA0.js → digitalhuman-CMkkSsln.js} +1 -1
- package/dist/assets/{dropdown-CxwuYsWp.js → dropdown-wDPMUQzY.js} +1 -1
- package/dist/assets/{esm-DE1v6y3n.js → esm-BL_7wYH8.js} +1 -1
- package/dist/assets/{esm-B4gYm4Cr.js → esm-BfctCBte.js} +2 -2
- package/dist/assets/{esm-D_PWXxB7.js → esm-CD4l8aaq.js} +2 -2
- package/dist/assets/esm-CU6Fe-Zk.js +1 -0
- package/dist/assets/{esm-D1kz3JHA.js → esm-DY3TG4t3.js} +1 -1
- package/dist/assets/{esm-Bsmpzuxa.js → esm-HaSNLe6N.js} +1 -1
- package/dist/assets/{esm-26dsFSZ4.js → esm-TKr9B_D7.js} +3 -3
- package/dist/assets/{fish-ClfOIAir.js → fish-DhwkHrn3.js} +1 -1
- package/dist/assets/{flux-BZwb17pi.js → flux-Dv97ge0v.js} +1 -1
- package/dist/assets/{grokvideo-BRiypPI0.js → grokvideo-Dlaph8Ci.js} +1 -1
- package/dist/assets/{hailuo-zCm6f7hu.js → hailuo-B49kc2C1.js} +1 -1
- package/dist/assets/{headshots-CBzMzGe5.js → headshots-DR4ah_Z1.js} +1 -1
- package/dist/assets/{image-eYZLnc3n.js → image-BDbA6ujR.js} +1 -1
- package/dist/assets/{index-CDKOPmfK.js → index-C8VZRfvb.js} +4 -4
- package/dist/assets/{index.browser.esm-D_HeGHAG.js → index.browser.esm-c00vc76i.js} +1 -1
- package/dist/assets/{index.es-CNGJUE98.js → index.es-DiQg36vB.js} +1 -1
- package/dist/assets/{input-number-vnw4RU-P.js → input-number-iIUsxXHn.js} +1 -1
- package/dist/assets/{kling-CqNzdK3o.js → kling-Pii7KZJ8.js} +1 -1
- package/dist/assets/{luma-C0-IP63N.js → luma-CMrhFYiK.js} +1 -1
- package/dist/assets/{maestro-BstFbMmQ.js → maestro-CumunqUD.js} +1 -1
- package/dist/assets/{midjourney-wahA-0PV.js → midjourney-Dz-yfJrL.js} +1 -1
- package/dist/assets/{nanobanana-D3oxfk2o.js → nanobanana-CnjnKLlH.js} +1 -1
- package/dist/assets/{openaiimage-BGw71FsM.js → openaiimage-BN41DmEn.js} +1 -1
- package/dist/assets/{pagination-BL4wyeoS.js → pagination-Im2bAxty.js} +1 -1
- package/dist/assets/{pika-CBd37ZTL.js → pika-QQehGRGg.js} +1 -1
- package/dist/assets/{pixverse-DZd1ZvCy.js → pixverse-Dtgbcarb.js} +1 -1
- package/dist/assets/{popover-B1PAkDAM.js → popover-DnLAAoHK.js} +1 -1
- package/dist/assets/{producer-BC4Bs2Hu.js → producer-DdLwpcVf.js} +1 -1
- package/dist/assets/{qrart-CUSpTR_G.js → qrart-CFENy5AU.js} +1 -1
- package/dist/assets/{realtime-DVFUYS7m.js → realtime-DDMMRAPa.js} +1 -1
- package/dist/assets/{row-Bni1RHgW.js → row-D_S4iKgK.js} +1 -1
- package/dist/assets/{seedance-_TzGcy5I.js → seedance-B1DrApnl.js} +1 -1
- package/dist/assets/{seedream-pdMFpmJ0.js → seedream-BR5KFyE6.js} +1 -1
- package/dist/assets/{select-Cw6Ht_y1.js → select-C13m6drR.js} +1 -1
- package/dist/assets/{serp-CanHFKfS.js → serp-zbUiVYLo.js} +1 -1
- package/dist/assets/{slider-DnocnY4E.js → slider-BFZImh9a.js} +1 -1
- package/dist/assets/{solana-wallets-Dx3rDbHT.js → solana-wallets-DbN9c7pj.js} +2 -2
- package/dist/assets/{solana-wallets-vue-Dm1DTdo6.js → solana-wallets-vue-C1VEAIng.js} +1 -1
- package/dist/assets/{sora-D6lObigh.js → sora-DuNKpuVp.js} +1 -1
- package/dist/assets/{suno-g-DTkN5H.js → suno-VL29nfK2.js} +1 -1
- package/dist/assets/{switch-sQZqg4E1.js → switch-CW1TXNSZ.js} +1 -1
- package/dist/assets/{tabs-BnttMw4n.js → tabs-BuxkFoW2.js} +1 -1
- package/dist/assets/{time-picker-QE4DqgDB.js → time-picker-DMEs6NHP.js} +1 -1
- package/dist/assets/{upload-BRTlVmIJ.js → upload-BQ2F_Ks3.js} +1 -1
- package/dist/assets/{veo-Dt_9cX3s.js → veo-Cfv3ZTaU.js} +1 -1
- package/dist/assets/{wan-BGGfIjpV.js → wan-DY_32D9V.js} +1 -1
- package/dist/assets/{web-Ddd3W6PC.js → web-BqctuYFX.js} +1 -1
- package/dist/assets/{web-B9z9kEmk.js → web-CAg1edQV.js} +1 -1
- package/dist/assets/{web-C6s4G1SF.js → web-CfN5yg8E.js} +1 -1
- package/dist/assets/{web-C3rX3QHQ.js → web-D3hr8gb-.js} +1 -1
- package/dist/assets/{web-CVJNCDa5.js → web-DqNFd0Cw.js} +1 -1
- package/dist/assets/{webextrator-Drfb-ckx.js → webextrator-BxbbdlOI.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +1 -1
- package/dist/assets/LocalTools-Babksy8I.css +0 -1
- package/dist/assets/LocalTools-Bk9HVt3X.js +0 -1
- package/dist/assets/esm-DnP76F0-.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e,t}from"./rolldown-runtime--c01j_DQ.js";import{Ft as n}from"./index-
|
|
1
|
+
import{o as e,t}from"./rolldown-runtime--c01j_DQ.js";import{Ft as n}from"./index-C8VZRfvb.js";import{i as r,l as i,n as a,o,t as s}from"./lit-Czpkz5lw.js";import{a as c,i as l,n as u,o as d,r as f,t as p}from"./wui-text-IdpNh4yv.js";import{$ as m,G as h,H as g,J as _,K as v,Q as ee,U as y,W as b,X as x,Y as S,Z as C,a as w,et as te,g as T,i as ne,n as E,p as re,r as D,s as O,u as ie,v as ae}from"./ConstantsUtil-CiJQ7E9o.js";import{n as oe,t as se}from"./ConnectorUtil-BNHqGaBo.js";var ce=i`
|
|
2
2
|
:host {
|
|
3
3
|
position: relative;
|
|
4
4
|
background-color: var(--wui-color-gray-glass-002);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Bi as e}from"./constants-
|
|
1
|
+
import{Bi as e}from"./constants-DCFVku39.js";import{An as t,Nr as n,Un as r,Vn as i,br as a,jn as o}from"./index-C8VZRfvb.js";var s={namespaced:!0,state:a,mutations:{setModel:(e,t)=>{e.model=t},setModelGroup:(e,t)=>{e.modelGroup=t},setService:(e,t)=>{e.service=t},setCredential:(e,t)=>{e.credential=t},setConversations:(e,t)=>{e.conversations=t},setApplication:(e,t)=>{e.application=t},setApplications:(e,t)=>{e.applications=t},setPendingDraft:(e,t)=>{e.pendingDraft=t||``},resetAll:e=>{Object.assign(e,a())}},actions:{resetAll:({commit:e})=>{e(`resetAll`)},createCredential:async({commit:e,state:n})=>{let r=n.application;if(console.debug(`prepare to create credential for application for chat`,r),!r){console.error(`Application not found`);return}console.debug(`creating create credential for application for chat`,r);let{data:i}=await t.create({application_id:r?.id,host:window.location.origin});return console.debug(`created credential success`,i),e(`setCredential`,i),console.debug(`end createCredential`),i},setModel:async({commit:e},t)=>{e(`setModel`,t)},setModelGroup:async({commit:e},t)=>{e(`setModelGroup`,t)},getService:async({commit:t,state:r})=>{r.status.getService=n.Request;try{let{data:i}=await o.get(e);return r.status.getService=n.Success,t(`setService`,i),i}catch{r.status.getService=n.Error,t(`setService`,void 0)}},setService:async({commit:e},t)=>{console.debug(`set service for chat`,t),e(`setService`,t)},setCredential:async({commit:e},t)=>{console.debug(`set credential`,t),e(`setCredential`,t)},setApplication:async({commit:e,dispatch:t,rootState:n},r)=>{if(console.debug(`set application`,r),e(`setApplication`,r),console.debug(`application is set`),!r){console.debug(`application is null, return`);return}let i=n?.user?.id,a=r?.role===`grantee`,o=r?.credentials?.find(e=>e?.host===window.location.origin);!o&&a&&(o=r?.credentials?.find(e=>e?.user_id===i)),o?(console.debug(`credential exists, set credential`,o),e(`setCredential`,o)):a?(console.warn(`no credential available for granted application`,r),e(`setCredential`,void 0)):(console.debug(`credential not exists, start to create credential for application`,r),await t(`createCredential`))},setApplications:async({commit:e},t)=>{console.debug(`set applications for chat`,t),e(`setApplications`,t)},getApplications:async({commit:t,state:i})=>{console.debug(`start to get applications for chat`),i.status.getApplications=n.Request;try{let{data:a}=await r.getAll({user_id:`me`,service_id:e,affiliation:[`owner`,`granted`]});return console.debug(`get applications success for chat`,a),i.status.getApplications=n.Success,t(`setApplications`,a.items),console.debug(`set applications for chat`,a.items),a.items}catch(e){console.error(`get applications failed for chat`,e),i.status.getApplications=n.Error,t(`setApplications`,void 0),t(`setApplication`,void 0)}},setConversation:async({commit:e,state:t},n)=>{console.debug(`set conversation`,n);let r=t.conversations||[],i=r?.findIndex(e=>e.id===n.id);i>-1?r[i]=n:r?.unshift(n),e(`setConversations`,r),console.debug(`set conversation success`,r)},setConversations:async({commit:e},t)=>{console.debug(`set conversations`,t),e(`setConversations`,t)},getConversations:async({commit:e,state:t,rootState:r})=>{t.status.getConversations=n.Request;let a=t.credential?.token,o=t.modelGroup?.name;if(!a||!o)return t.status.getConversations=n.Error,e(`setConversations`,[]),[];try{let{data:s}=await i.getConversations({userId:r.user?.id,modelGroup:o},{token:a});return console.debug(`get conversations success`,s?.items?.length,`group=`,o),t.status.getConversations=n.Success,e(`setConversations`,s.items),s.items}catch{return t.status.getConversations=n.Error,e(`setConversations`,[]),[]}},getConversation:async({commit:e,state:t},n)=>{let r=t.credential?.token;if(!(!r||!n))try{let{data:a}=await i.getConversation(n,{token:r}),o=t.conversations||[],s=o.findIndex(e=>e.id===n),c=s>-1?{...o[s],...a}:a;if(s>-1){let t=[...o];t[s]=c,e(`setConversations`,t)}return c}catch(e){console.error(`getConversation failed`,n,e);return}}}};export{s as chat,s as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{A as e,B as t,C as n,D as r,E as i,F as a,H as o,I as s,L as c,M as l,N as u,O as d,P as f,R as p,S as ee,T as m,V as h,_ as g,a as _,b as v,c as y,d as b,f as x,g as S,h as C,i as te,j as ne,k as re,l as ie,m as ae,n as oe,o as w,p as T,r as E,s as D,t as O,ta as k,u as A,v as j,w as M,x as N,y as P,z as F}from"./constants-
|
|
1
|
+
import{A as e,B as t,C as n,D as r,E as i,F as a,H as o,I as s,L as c,M as l,N as u,O as d,P as f,R as p,S as ee,T as m,V as h,_ as g,a as _,b as v,c as y,d as b,f as x,g as S,h as C,i as te,j as ne,k as re,l as ie,m as ae,n as oe,o as w,p as T,r as E,s as D,t as O,ta as k,u as A,v as j,w as M,x as N,y as P,z as F}from"./constants-DCFVku39.js";import{Br as I,Nr as L,Ur as R,Yn as z,tn as B}from"./index-C8VZRfvb.js";import{a as se,i as V,n as H,o as U,r as W}from"./codingBridgeNotify-Dyre4a5u.js";var G=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID().replace(/-/g,``):`${Date.now().toString(16)}${Math.random().toString(16).slice(2)}`,K=()=>{try{return typeof localStorage<`u`&&localStorage.getItem(`cbDebug`)===`1`}catch{return!1}},q=(e,t)=>{if(!K())return;let n=t?.payload??{};console.debug(`[codingBridge]`,e,{type:t?.type,id:t?.id,node_id:t?.node_id??t?.from_node,action:n?.action,event:n?.event,session_id:n?.session_id,trace_id:n?.trace_id})},ce=class{ws;token;handlers;reconnectDelay=o;reconnectTimer;closedByUser=!1;constructor(e,t){this.token=e,this.handlers=t}get isOpen(){return this.ws?.readyState===WebSocket.OPEN}connect(){this.closedByUser=!1,this.open()}open(){if(this.ws&&(this.ws.readyState===WebSocket.OPEN||this.ws.readyState===WebSocket.CONNECTING))return;let e=`${k}?token=${encodeURIComponent(this.token)}`,t;try{t=new WebSocket(e)}catch(e){console.warn(`[codingBridge] failed to open socket`,e),this.scheduleReconnect();return}this.ws=t,t.onopen=()=>{this.reconnectDelay=o,this.handlers.onOpen?.()},t.onmessage=e=>this.onMessage(e),t.onclose=()=>{this.handlers.onClose?.(),this.closedByUser||this.scheduleReconnect()},t.onerror=()=>{t.close()}}onMessage(e){let n;try{n=JSON.parse(e.data)}catch{return}let r=n?.payload??{};switch(q(`recv`,n),n?.type){case t:this.handlers.onEvent?.(r,n?.from_node);break;case p:this.handlers.onNodesSnapshot?.(r.nodes??[]);break;case F:this.handlers.onNodeStatus?.(r.node_id,r.status);break;case S:this.handlers.onRelayError?.(r.code??`error`,r.message??``);break;default:break}}scheduleReconnect(){if(this.closedByUser||this.reconnectTimer)return;let e=this.reconnectDelay;this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=void 0,this.open()},e),this.reconnectDelay=Math.min(this.reconnectDelay*2,h)}sendEnvelope(e,t){if(!this.isOpen)return;let n={v:2,id:G(),ts:Date.now(),type:e,...t};q(`send`,n),this.ws?.send(JSON.stringify(n))}sendToNode(e,t){this.sendEnvelope(C,{node_id:e,payload:t})}listNodes(){this.sendEnvelope(T,{})}resume(e){this.sendEnvelope(ae,{payload:{resume_from:e}})}close(){if(this.closedByUser=!0,this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),void 0),this.ws){this.ws.onclose=null,this.ws.onerror=null,this.ws.onmessage=null,this.ws.onopen=null;try{this.ws.close()}catch{}this.ws=void 0}}},J,Y=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID().replace(/-/g,``):`${Date.now().toString(16)}${Math.random().toString(16).slice(2)}`,X=(e,t,n)=>({id:Y(),session_id:e,kind:t,ts:Date.now(),...n}),Z=e=>{try{let t=JSON.parse(e);if(t&&typeof t==`object`)return t}catch{}return{answers:{}}},le=e=>{let t=Z(e).answers??{};return Object.entries(t).map(([e,t])=>`${e} → ${Array.isArray(t)?t.join(`, `):t}`).join(`
|
|
2
2
|
`)},ue=(e,t)=>{H({title:`Approval needed`,body:`Claude wants to use ${t.tool||`a tool`}. Tap to review.`,data:t},t=>{t.node_id&&e(`selectNode`,t.node_id)})},Q=(t,o,p,h,_)=>{let y=h?.event,b=h?.session_id,x=h?.trace_id,S=h?.seq;if(typeof S==`number`&&b){let e=p.lastSeq[b];if(e!==void 0&&S<=e)return;t(`setLastSeq`,{session_id:b,seq:S})}switch(b&&x&&t(`updateSession`,{session_id:b,trace_id:x}),y){case ne:t(`upsertSession`,{session_id:b,node_id:_,status:`running`,cwd:h.cwd,model:h.model,...h.effort===void 0?{}:{effort:h.effort},...h.permission_mode===void 0?{}:{permission_mode:h.permission_mode},trace_id:x});break;case r:{let e=h.sdk_session_id;b&&e&&e!==b&&t(`renameSession`,{from:b,to:e});break}case f:{let e=h.id;e&&p.events[b]?.find(t=>t.kind===`text`&&t.stream_id===e)?t(`appendDelta`,{session_id:b,stream_id:e,text:h.text??``}):t(`appendEvent`,X(b,`text`,{text:h.text??``,stream_id:e,streaming:!0,trace_id:x}));break}case u:{let e=h.id;e&&p.events[b]?.find(t=>t.kind===`text`&&t.stream_id===e)?t(`finalizeStream`,{session_id:b,stream_id:e,text:h.text}):t(`appendEvent`,X(b,`text`,{text:h.text,trace_id:x}));break}case a:t(`appendEvent`,X(b,`thinking`,{text:h.text,trace_id:x}));break;case c:t(`appendEvent`,X(b,`tool_use`,{tool:h.tool,tool_use_id:h.tool_use_id,input:h.input,trace_id:x}));break;case s:t(`appendEvent`,X(b,`tool_result`,{tool_use_id:h.tool_use_id,content:h.content,is_error:h.is_error,trace_id:x}));break;case ee:t(`addPermission`,{request_id:h.request_id,session_id:b,node_id:_,tool:h.tool,input:h.input,title:h.title,display_name:h.display_name,description:h.description}),ue(o,{node_id:_,session_id:b,request_id:h.request_id,tool:h.display_name||h.title||h.tool});break;case N:for(let e of h.requests??[])t(`addPermission`,{request_id:e.request_id,session_id:e.session_id,node_id:_,tool:e.tool,input:e.input,title:e.title,display_name:e.display_name,description:e.description});break;case n:t(`removePermission`,h.request_id);break;case re:t(`finalizeAllStreams`,{session_id:b}),t(`appendEvent`,X(b,`result`,{subtype:h.subtype,is_error:h.is_error,text:h.result,cost_usd:h.cost_usd,cut_uuid:h.cut_uuid,sdk_session_id:h.sdk_session_id,trace_id:x})),t(`updateSession`,{session_id:b,status:`idle`,cost_usd:h.cost_usd});break;case d:t(`appendEvent`,X(b,`notice`,{text:h.text,subtype:h.code,command:h.command,level:h.level}));break;case i:t(`finalizeAllStreams`,{session_id:b}),t(`appendEvent`,X(b,`error`,{text:h.message,trace_id:x})),t(`updateSession`,{session_id:b,status:`error`}),t(`updateStatus`,{key:`getHistoryDetail`,value:L.Success});break;case m:t(`finalizeAllStreams`,{session_id:b}),t(`updateSession`,{session_id:b,status:`closed`});break;case e:t(`rewindToCut`,{session_id:b,cut_uuid:h.cut_uuid}),h.prompt&&t(`appendEvent`,X(b,`prompt`,{text:h.prompt,trace_id:x})),t(`updateSession`,{session_id:b,status:`running`});break;case l:o(`resyncSession`,b);break;case M:for(let e of h.sessions??[])t(`upsertSession`,{session_id:e.session_id,node_id:_,status:e.status??`running`,started:!0,cwd:e.cwd,model:e.model,...e.effort===void 0?{}:{effort:e.effort},...e.permission_mode===void 0?{}:{permission_mode:e.permission_mode}});break;case v:if(_){t(`setHistory`,{node_id:_,sessions:h.sessions??[]}),t(`updateStatus`,{key:`getHistory`,value:L.Success});let e=p.historyRef;e&&e.node_id===_&&!p.currentSessionId&&o(`reattachSession`,e)}break;case P:de(t,p,h,_),t(`updateStatus`,{key:`getHistoryDetail`,value:L.Success});break;case j:t(`setDirectory`,{path:h.path,parent:h.parent??null,sep:h.sep??`/`,entries:h.entries??[],truncated:h.truncated,error:h.error});break;case g:_&&t(`setCapabilities`,{node_id:_,capabilities:{providers:h.providers??[]}});break;default:break}},de=(e,t,n,r)=>{let i=n?.session_id,a=fe(n?.provider);if(!i||!r)return;let o=a===`claude`||a===`codex`||a===`copilot`,s=t.sessions[i],c=!!s&&(s.started===!0||s.status===`running`||s.status===`starting`),l=t.lastComposer?.[r]??{};e(`upsertSession`,{session_id:i,node_id:r,status:c?s.status:`idle`,cwd:n.cwd??s?.cwd??l.cwd,model:n.model??s?.model??l.model,effort:n.effort??s?.effort??l.effort,permission_mode:n.permission_mode??s?.permission_mode??l.permissionMode,provider:a,started:!!c,readonly:!o&&!c});let u=t.events[i]?.length??0,d=(n.events??[]).length,f=s?.status===`running`||s?.status===`starting`;c&&u>0&&(f||u>=d)||e(`setEvents`,{session_id:i,events:(n.events??[]).map((e,t)=>({id:Y(),session_id:i,kind:e.kind,ts:typeof e.ts==`number`?e.ts:Date.now()+t,text:e.text,tool:e.tool,tool_use_id:e.tool_use_id,input:e.input,content:e.content,is_error:e.is_error,subtype:e.subtype,cost_usd:e.cost_usd}))}),e(`setCurrentNode`,r),e(`setCurrentSession`,i),e(`setHistoryRef`,{node_id:r,provider:a,session_id:i})},fe=e=>e===`codex`||e===`copilot`?e:`claude`,$={namespaced:!0,state:z,mutations:{resetAll:e=>{Object.assign(e,z())},updateStatus:(e,t)=>{e.status[t.key]=t.value},setConnection:(e,t)=>{e.connection=t},setNodes:(e,t)=>{e.nodes=t},mergeNodeSnapshot:(e,t)=>{let n=new Set(t.map(e=>e.node_id));for(let t of e.nodes)t.status=n.has(t.node_id)?`online`:`offline`;for(let n of t)e.nodes.some(e=>e.node_id===n.node_id)||e.nodes.push({...n,status:`online`})},setNodeStatus:(e,t)=>{let n=e.nodes.find(e=>e.node_id===t.node_id);n&&(n.status=t.status)},setCurrentNode:(e,t)=>{e.currentNodeId=t},setCurrentSession:(e,t)=>{e.currentSessionId=t},upsertSession:(e,t)=>{e.sessions[t.session_id]={...e.sessions[t.session_id],...t},e.events[t.session_id]||(e.events[t.session_id]=[])},updateSession:(e,t)=>{let n=e.sessions[t.session_id];n&&(e.sessions[t.session_id]={...n,...t})},renameSession:(e,t)=>{let{from:n,to:r}=t;if(n===r||!e.sessions[n])return;e.sessions[r]={...e.sessions[r],...e.sessions[n],session_id:r},delete e.sessions[n];let i=e.events[n];i&&(i.length||!e.events[r]?.length)&&(e.events[r]=i),delete e.events[n],delete e.lastSeq[n],e.lastSeq[r]=0;for(let t of e.permissions)t.session_id===n&&(t.session_id=r);e.currentSessionId===n&&(e.currentSessionId=r),e.historyRef?.session_id===n&&(e.historyRef={...e.historyRef,session_id:r})},appendEvent:(e,t)=>{e.events[t.session_id]||(e.events[t.session_id]=[]),e.events[t.session_id].push(t)},truncateEventsBefore:(e,t)=>{let n=e.events[t.session_id];if(!n)return;let r=n.findIndex(e=>e.id===t.event_id);r>=0&&(e.events[t.session_id]=n.slice(0,r))},rewindToCut:(e,t)=>{let n=e.events[t.session_id];if(!n)return;if(!t.cut_uuid){e.events[t.session_id]=[];return}let r=n.findIndex(e=>e.kind===`result`&&e.cut_uuid===t.cut_uuid);r>=0&&(e.events[t.session_id]=n.slice(0,r+1))},setLastSeq:(e,t)=>{let n=e.lastSeq[t.session_id]??0;t.seq>n&&(e.lastSeq[t.session_id]=t.seq)},appendDelta:(e,t)=>{let n=e.events[t.session_id];if(!n)return;let r=n.find(e=>e.kind===`text`&&e.stream_id===t.stream_id);r&&(r.text=(r.text??``)+(t.text??``))},finalizeStream:(e,t)=>{let n=e.events[t.session_id];if(!n)return;let r=n.find(e=>e.kind===`text`&&e.stream_id===t.stream_id);r&&(typeof t.text==`string`&&(r.text=t.text),r.streaming=!1)},finalizeAllStreams:(e,t)=>{let n=e.events[t.session_id];if(n)for(let e of n)e.streaming&&=!1},setEvents:(e,t)=>{e.events[t.session_id]=t.events},setHistory:(e,t)=>{e.history[t.node_id]=t.sessions},setHistoryRef:(e,t)=>{e.historyRef=t},setDirectory:(e,t)=>{e.directory=t,e.directoryLoading=!1},setDirectoryLoading:(e,t)=>{e.directoryLoading=t},setLastComposer:(e,t)=>{e.lastComposer={...e.lastComposer,[t.node_id]:{...e.lastComposer[t.node_id],...t.prefs}}},setCapabilities:(e,t)=>{e.capabilities[t.node_id]=t.capabilities},addPermission:(e,t)=>{e.permissions.some(e=>e.request_id===t.request_id)||e.permissions.push(t)},removePermission:(e,t)=>{e.permissions=e.permissions.filter(e=>e.request_id!==t)},removeNodeData:(e,t)=>{delete e.history[t],delete e.capabilities[t],e.historyRef?.node_id===t&&(e.historyRef=void 0);for(let n of Object.values(e.sessions))n.node_id===t&&(delete e.sessions[n.session_id],delete e.events[n.session_id],delete e.lastSeq[n.session_id],e.currentSessionId===n.session_id&&(e.currentSessionId=void 0))}},actions:{resetAll:({commit:e})=>{e(`resetAll`)},getApplications:async()=>{},setApplication:async()=>{},getNodes:async({commit:e,rootState:t})=>{let n=t.token?.access;if(!n)return[];e(`updateStatus`,{key:`getNodes`,value:L.Request});try{let{data:t}=await B.getNodes({token:n});return e(`setNodes`,t.nodes??[]),e(`updateStatus`,{key:`getNodes`,value:L.Success}),t.nodes??[]}catch(t){throw e(`updateStatus`,{key:`getNodes`,value:L.Error}),t}},claimPair:async({commit:e,dispatch:t,rootState:n},r)=>{let i=n.token?.access;if(!i)throw Error(`not authenticated`);e(`updateStatus`,{key:`claimPair`,value:L.Request});try{let{data:n}=await B.claimPair(r.trim(),{token:i});return e(`updateStatus`,{key:`claimPair`,value:L.Success}),await t(`getNodes`),n.node_name}catch(t){throw e(`updateStatus`,{key:`claimPair`,value:L.Error}),t}},deleteNode:async({commit:e,dispatch:t,state:n,rootState:r},i)=>{let a=r.token?.access;if(!a)throw Error(`not authenticated`);e(`updateStatus`,{key:`deleteNode`,value:L.Request});try{await B.deleteNode(i,{token:a}),e(`removeNodeData`,i),n.currentNodeId===i&&(e(`setCurrentNode`,void 0),e(`setCurrentSession`,void 0)),e(`updateStatus`,{key:`deleteNode`,value:L.Success}),await t(`getNodes`)}catch(t){throw e(`updateStatus`,{key:`deleteNode`,value:L.Error}),t}},connect:({commit:e,dispatch:t,state:n,rootState:r})=>{let i=r.token?.access;i&&(J?.isOpen||(J?.close(),e(`setConnection`,`connecting`),J=new ce(i,{onOpen:()=>{e(`setConnection`,`connected`);let r={...n.lastSeq};Object.keys(r).length&&J?.resume(r),n.currentNodeId&&(t(`getHistory`,n.currentNodeId),t(`getCapabilities`,n.currentNodeId),t(`requestSessions`,n.currentNodeId),t(`requestPendingPermissions`,n.currentNodeId))},onClose:()=>e(`setConnection`,`disconnected`),onEvent:(r,i)=>Q(e,t,n,r,i),onNodesSnapshot:t=>{e(`mergeNodeSnapshot`,t)},onNodeStatus:(r,i)=>{e(`setNodeStatus`,{node_id:r,status:i}),i===`online`&&r===n.currentNodeId&&(t(`getHistory`,r),t(`getCapabilities`,r),t(`requestSessions`,r),t(`requestPendingPermissions`,r))},onRelayError:(e,t)=>console.warn(`[codingBridge] relay error`,e,t)}),J.connect()))},disconnect:({commit:e})=>{J?.close(),J=void 0,e(`setConnection`,`disconnected`)},selectNode:({commit:e,dispatch:t,state:n},r)=>{if(e(`setCurrentNode`,r),!r){e(`setCurrentSession`,void 0);return}let i=Object.values(n.sessions).filter(e=>e.node_id===r).map(e=>e.session_id);e(`setCurrentSession`,i.length?i[i.length-1]:void 0),t(`getHistory`,r),t(`getCapabilities`,r),t(`requestSessions`,r),t(`requestPendingPermissions`,r)},requestSessions:({state:e},t)=>{let n=t??e.currentNodeId;!n||!J||J.sendToNode(n,{action:D})},requestPendingPermissions:({state:e},t)=>{let n=t??e.currentNodeId;!n||!J||J.sendToNode(n,{action:_})},enableNotifications:async({dispatch:e,rootState:t})=>{let n=t.token?.access;if(!n)return`unsupported`;if(R()){let t=await W(t=>{t?.node_id&&(e(`selectNode`,t.node_id),e(`requestPendingPermissions`,t.node_id))});return t?(await B.savePushSubscription({kind:I()?`apns`:`fcm`,token:t,ua:navigator.userAgent},{token:n}),`enabled`):`denied`}let r=await V();if(r===`unsupported`)return`unsupported`;if(r!==`granted`)return`denied`;try{let{data:e}=await B.getPushConfig();if(e.web_push_enabled&&e.vapid_public_key){let t=await se(e.vapid_public_key);t&&await B.savePushSubscription({kind:`webpush`,subscription:t,ua:navigator.userAgent},{token:n})}}catch(e){console.warn(`[codingBridge] web push setup skipped`,e)}return`enabled`},disableNotifications:async({rootState:e})=>{let t=e.token?.access;if(R()||!t)return;let n=await U();if(n)try{await B.deletePushSubscription({endpoint:n},{token:t})}catch(e){console.warn(`[codingBridge] failed to deregister web push`,e)}},newSession:({commit:e})=>{e(`setCurrentSession`,void 0),e(`setHistoryRef`,void 0)},sendPrompt:({commit:e,state:t},n)=>{let r=t.currentNodeId,i=n.prompt?.trim(),a=n.images?.length?n.images:void 0,o=n.attachments?.length?n.attachments:void 0;if(!r||!J||!i&&!a&&!o)return;let s=Y(),c=t.currentSessionId,l=c?t.sessions[c]:void 0;if(!l||!l.started){let t=l?.provider||n.provider||`claude`;l?(c=l.session_id,e(`updateSession`,{session_id:c,status:`starting`,trace_id:s,...n.cwd?{cwd:n.cwd}:{},...n.model===void 0?{}:{model:n.model},...n.effort===void 0?{}:{effort:n.effort},...n.permissionMode===void 0?{}:{permission_mode:n.permissionMode}})):(c=Y(),e(`upsertSession`,{session_id:c,node_id:r,status:`starting`,cwd:n.cwd,model:n.model,effort:n.effort,permission_mode:n.permissionMode,provider:t,trace_id:s}),e(`setCurrentSession`,c),e(`setHistoryRef`,{node_id:r,provider:t,session_id:c})),e(`appendEvent`,X(c,`prompt`,{text:i,images:a,attachments:o,trace_id:s})),e(`updateSession`,{session_id:c,started:!0}),J.sendToNode(r,{action:x,session_id:c,trace_id:s,prompt:i,cwd:n.cwd||l?.cwd||void 0,model:n.model||l?.model||void 0,permission_mode:n.permissionMode||`bypassPermissions`,provider:t,effort:n.effort||void 0,images:a,attachments:o,resume_session_id:l?.session_id||void 0})}else e(`updateSession`,{session_id:c,trace_id:s}),e(`appendEvent`,X(c,`prompt`,{text:i,images:a,attachments:o,trace_id:s})),e(`updateSession`,{session_id:c,status:`running`,model:n.model||void 0,...n.effort===void 0?{}:{effort:n.effort},...n.permissionMode===void 0?{}:{permission_mode:n.permissionMode}}),J.sendToNode(r,{action:b,session_id:c,trace_id:s,prompt:i,model:n.model??``,...n.effort===void 0?{}:{effort:n.effort},...n.permissionMode===void 0?{}:{permission_mode:n.permissionMode},images:a,attachments:o})},editPrompt:({commit:e,state:t},n)=>{let r=t.currentNodeId,i=t.currentSessionId,a=n.prompt?.trim();if(!r||!i||!J||!a)return;let o=t.sessions[i],s=t.events[i]??[],c=s.findIndex(e=>e.id===n.eventId);if(!o||c<0)return;let l;for(let e=c-1;e>=0;e--)if(s[e].kind===`result`&&s[e].cut_uuid){l=s[e].cut_uuid;break}let u=n.images?.length?n.images:void 0,d=n.attachments?.length?n.attachments:void 0,f=Y();e(`truncateEventsBefore`,{session_id:i,event_id:n.eventId}),e(`updateSession`,{session_id:i,status:`running`,trace_id:f,model:n.model||o.model||void 0,...n.effort===void 0?{}:{effort:n.effort},...n.permissionMode===void 0?{}:{permission_mode:n.permissionMode}}),e(`appendEvent`,X(i,`prompt`,{text:a,images:u,attachments:d,trace_id:f})),J.sendToNode(r,{action:ie,session_id:i,trace_id:f,cut_uuid:l,prompt:a,model:n.model||o.model||void 0,permission_mode:n.permissionMode||void 0,effort:n.effort||void 0,images:u,attachments:d,restore_code:!!n.restoreCode})},retryLastPrompt:({commit:e,dispatch:t,state:n})=>{let r=n.currentSessionId;if(!r)return;let i=n.sessions[r],a=[...n.events[r]??[]].reverse().find(e=>e.kind===`prompt`);!i||!a||(e(`updateSession`,{session_id:r,started:!1}),t(`sendPrompt`,{prompt:a.text??``,cwd:i.cwd,model:i.model,provider:i.provider,images:a.images,attachments:a.attachments}))},interruptSession:({state:e})=>{let t=e.currentSessionId,n=e.currentNodeId;!t||!n||!J||J.sendToNode(n,{action:A,session_id:t})},closeSession:({commit:e,state:t},n)=>{let r=n??t.currentSessionId;if(!r)return;let i=t.sessions[r]?.node_id??t.currentNodeId;i&&J&&J.sendToNode(i,{action:y,session_id:r}),e(`updateSession`,{session_id:r,status:`closed`}),t.currentSessionId===r&&e(`setCurrentSession`,void 0)},resolvePermission:({commit:e,state:t},n)=>{let r=t.permissions.find(e=>e.request_id===n.request_id);r&&(J?.sendToNode(r.node_id,{action:w,request_id:n.request_id,decision:n.decision}),e(`removePermission`,n.request_id))},answerQuestion:({commit:e,state:t},n)=>{let r=t.permissions.find(e=>e.request_id===n.request_id);r&&(J?.sendToNode(r.node_id,{action:w,request_id:n.request_id,decision:`allow`,answer:Z(n.output),answer_text:le(n.output)}),e(`removePermission`,n.request_id))},getHistory:({commit:e,state:t},n)=>{let r=n??t.currentNodeId;!r||!J||(e(`updateStatus`,{key:`getHistory`,value:L.Request}),J.sendToNode(r,{action:te,limit:200}))},getHistoryDetail:({commit:e},t)=>{!t?.node_id||!t?.session_id||!J||(e(`updateStatus`,{key:`getHistoryDetail`,value:L.Request}),J.sendToNode(t.node_id,{action:E,provider:t.provider,session_id:t.session_id}),setTimeout(()=>e(`updateStatus`,{key:`getHistoryDetail`,value:L.Success}),12e3))},reattachSession:({state:e,commit:t,dispatch:n},r)=>{!r?.node_id||!r?.session_id||(t(`setCurrentNode`,r.node_id),t(`setCurrentSession`,r.session_id),n(`getHistoryDetail`,r),n(`requestSessions`,r.node_id),n(`requestPendingPermissions`,r.node_id),J?.resume({[r.session_id]:e.lastSeq[r.session_id]??0}))},resyncSession:({state:e,dispatch:t},n)=>{let r=e.sessions[n];r?.node_id&&t(`getHistoryDetail`,{node_id:r.node_id,session_id:n,provider:r.provider??`claude`})},browseDir:({commit:e,state:t},n)=>{let r=t.currentNodeId;!r||!J||(e(`setDirectoryLoading`,!0),J.sendToNode(r,{action:oe,path:n||void 0}))},clearDirectory:({commit:e})=>{e(`setDirectory`,void 0)},getCapabilities:({state:e},t)=>{let n=t??e.currentNodeId;!n||!J||J.sendToNode(n,{action:O})}}};export{$ as codingBridge,$ as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-
|
|
2
|
-
import{t as e}from"./preload-helper-zJ_50EbN.js";import{Ur as t}from"./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-CD4l8aaq.js","assets/index-C8VZRfvb.js","assets/rolldown-runtime--c01j_DQ.js","assets/preload-helper-zJ_50EbN.js","assets/constants-DCFVku39.js","assets/vendor-chart-BJCvKk8-.js","assets/vendor-axios-Ck2ffRoh.js","assets/button-BydTr5nV.js","assets/use-deprecated-B-NFNg3W.js","assets/install-CmiepWqE.js","assets/en-CpRrS3Ur.js","assets/runtime-B1Eal4u3.js","assets/vendor-vue-CCKiwo0U.js","assets/vendor-dayjs-C9ICuEWn.js","assets/use-dialog-BA0DNk5w.js","assets/teleport-BEkn5-id.js","assets/aria-CQaCu-Fx.js","assets/event-BGnHezxC.js","assets/scroll-CgpW_lTC.js","assets/vnode-BKrYEsqE.js","assets/use-aria-QsRrwtXj.js","assets/vendor-vue-router-WDnlh53U.js","assets/index-C9sJvT6s.css","assets/esm-CU6Fe-Zk.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-zJ_50EbN.js";import{Ur as t}from"./index-C8VZRfvb.js";var n=`/sw.js`,r=()=>typeof window<`u`&&`Notification`in window,i=()=>typeof navigator<`u`&&`serviceWorker`in navigator,a=()=>i()&&`PushManager`in window,o=()=>r()?Notification.permission:`unsupported`,s=e=>{let t=(e+`=`.repeat((4-e.length%4)%4)).replace(/-/g,`+`).replace(/_/g,`/`),n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r},c=async()=>{if(!i())return null;try{return await navigator.serviceWorker.getRegistration(n)??await navigator.serviceWorker.register(n)}catch(e){return console.warn(`[codingBridge] service worker registration failed`,e),null}},l=async()=>{if(!r())return`unsupported`;if(Notification.permission!==`default`)return Notification.permission;try{return await Notification.requestPermission()}catch{return`denied`}},u=(e,n)=>{if(!(typeof document<`u`&&document.visibilityState===`visible`)){if(t()){d(e);return}if(!(!r()||Notification.permission!==`granted`))try{let t=new Notification(e.title,{body:e.body,tag:e.data.request_id||`coding-bridge-permission`,data:e.data});t.onclick=()=>{try{window.focus()}catch{}n?.(e.data),t.close()}}catch(e){console.warn(`[codingBridge] failed to raise local notification`,e)}}},d=async t=>{try{let{LocalNotifications:n}=await e(async()=>{let{LocalNotifications:e}=await import(`./esm-CD4l8aaq.js`);return{LocalNotifications:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));if((await n.checkPermissions()).display!==`granted`&&(await n.requestPermissions()).display!==`granted`)return;await n.schedule({notifications:[{id:f(t.data.request_id||`permission`),title:t.title,body:t.body,extra:t.data}]})}catch(e){console.warn(`[codingBridge] native local notification failed`,e)}},f=e=>{let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)|0;return Math.abs(t)%2147483e3},p=async e=>{if(!a()||!e||await l()!==`granted`)return null;let t=await c();if(!t)return null;try{return(await t.pushManager.getSubscription()??await t.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:s(e)})).toJSON()}catch(e){return console.warn(`[codingBridge] web push subscribe failed`,e),null}},m=async()=>{if(!a())return null;let e=await(await c())?.pushManager.getSubscription();if(!e)return null;let t=e.endpoint;try{await e.unsubscribe()}catch{}return t},h=async n=>{if(!t())return null;try{let{PushNotifications:t}=await e(async()=>{let{PushNotifications:e}=await import(`./esm-CU6Fe-Zk.js`);return{PushNotifications:e}},__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22])),r=await t.requestPermissions();if(r.receive!==`granted`)return console.warn(`[codingBridge] push permission not granted (receive=${r.receive})`),null;let i=await new Promise(e=>{let n=setTimeout(()=>{console.warn(`[codingBridge] push registration timed out — no device token`),e(null)},1e4);t.addListener(`registration`,t=>{clearTimeout(n),e(t.value)}),t.addListener(`registrationError`,t=>{clearTimeout(n),console.warn(`[codingBridge] push registrationError`,t),e(null)}),t.register()});return n&&t.addListener(`pushNotificationActionPerformed`,e=>{n(e.notification?.data??{})}),i}catch(e){return e?.code===`UNIMPLEMENTED`?console.warn(`[codingBridge] PushNotifications plugin not available in this build`,e):console.warn(`[codingBridge] native push registration failed`,e),null}};export{p as a,l as i,u as n,m as o,h as r,r as s,o as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as e,Bt as t,D as n,E as r,F as i,N as a,O as o,Ot as s,P as c,Pt as l,Q as u,Vt as d,Wt as f,Z as p,b as m,bt as h,ct as g,dt as _,et as v,rt as y,ut as b,v as x,y as S,z as C,zt as w}from"./vendor-chart-BJCvKk8-.js";import{a as T,c as E,i as D,t as O}from"./install-CmiepWqE.js";import{i as k,n as A,r as j,s as M}from"./runtime-B1Eal4u3.js";import{Ct as N,_ as P,l as ee,m as F,nt as I,wt as L}from"./use-deprecated-B-NFNg3W.js";import{t as R}from"./castArray-B2xuZZNf.js";import{r as z,t as B}from"./event-BGnHezxC.js";import{t as V}from"./collapse-transition-C9jp2nDh.js";import{ii as H}from"./index-
|
|
1
|
+
import{A as e,Bt as t,D as n,E as r,F as i,N as a,O as o,Ot as s,P as c,Pt as l,Q as u,Vt as d,Wt as f,Z as p,b as m,bt as h,ct as g,dt as _,et as v,rt as y,ut as b,v as x,y as S,z as C,zt as w}from"./vendor-chart-BJCvKk8-.js";import{a as T,c as E,i as D,t as O}from"./install-CmiepWqE.js";import{i as k,n as A,r as j,s as M}from"./runtime-B1Eal4u3.js";import{Ct as N,_ as P,l as ee,m as F,nt as I,wt as L}from"./use-deprecated-B-NFNg3W.js";import{t as R}from"./castArray-B2xuZZNf.js";import{r as z,t as B}from"./event-BGnHezxC.js";import{t as V}from"./collapse-transition-C9jp2nDh.js";import{ii as H}from"./index-C8VZRfvb.js";var U=e=>M(e)||t(e)||l(e),W=A({accordion:Boolean,modelValue:{type:j([Array,String,Number]),default:()=>H([])},expandIconPosition:{type:j([String]),default:`right`},beforeCollapse:{type:j(Function)}}),G={[z]:U,[B]:U},K=Symbol(`collapseContextKey`),q=`ElCollapse`,J=(e,t)=>{let n=h(R(e.modelValue)),r=r=>{n.value=r;let i=e.accordion?n.value[0]:n.value;t(z,i),t(B,i)},i=t=>{if(e.accordion)r([n.value[0]===t?``:t]);else{let e=[...n.value],i=e.indexOf(t);i>-1?e.splice(i,1):e.push(t),r(e)}};return g(()=>e.modelValue,()=>n.value=R(e.modelValue),{deep:!0}),u(K,{activeNames:n,handleItemClick:async t=>{let{beforeCollapse:n}=e;if(!n){i(t);return}let r=n(t);[w(r),k(r)].includes(!0)||L(q,"beforeCollapse must return type `Promise<boolean>` or `boolean`"),w(r)?r.then(e=>{e!==!1&&i(t)}).catch(e=>{N(q,`some error occurred: ${e}`)}):r&&i(t)}}),{activeNames:n,setActiveNames:r}},Y=e=>{let t=E(`collapse`);return{rootKls:r(()=>[t.b(),t.b(`icon-position-${e.expandIconPosition}`)])}},X=T(i({...i({name:`ElCollapse`}),props:W,emits:G,setup(t,{expose:n,emit:r}){let i=t,{activeNames:a,setActiveNames:o}=J(i,r),{rootKls:c}=Y(i);return n({activeNames:a,setActiveNames:o}),(t,n)=>(p(),e(`div`,{class:d(s(c))},[v(t.$slots,`default`)],2))}}),[[`__file`,`collapse.vue`]]),Z=A({title:{type:String,default:``},name:{type:j([String,Number]),default:void 0},icon:{type:F,default:P},disabled:Boolean}),Q=e=>{let t=C(K),{namespace:n}=E(`collapse`),i=h(!1),a=h(!1),o=ee(),c=r(()=>o.current++),l=r(()=>e.name??`${n.value}-id-${o.prefix}-${s(c)}`);return{focusing:i,id:c,isActive:r(()=>t?.activeNames.value.includes(s(l))),handleFocus:()=>{setTimeout(()=>{a.value?a.value=!1:i.value=!0},50)},handleHeaderClick:n=>{e.disabled||n.target?.closest(`input, textarea, select`)||(t?.handleItemClick(s(l)),i.value=!1,a.value=!0)},handleEnterClick:e=>{e.target?.closest(`input, textarea, select`)||(e.preventDefault(),t?.handleItemClick(s(l)))}}},te=(e,{focusing:t,isActive:n,id:i})=>{let a=E(`collapse`),o=r(()=>[a.b(`item`),a.is(`active`,s(n)),a.is(`disabled`,e.disabled)]),c=r(()=>[a.be(`item`,`header`),a.is(`active`,s(n)),{focusing:s(t)&&!e.disabled}]),l=r(()=>[a.be(`item`,`arrow`),a.is(`active`,s(n))]);return{itemTitleKls:r(()=>[a.be(`item`,`title`)]),arrowKls:l,headKls:c,rootKls:o,itemWrapperKls:r(()=>a.be(`item`,`wrap`)),itemContentKls:r(()=>a.be(`item`,`content`)),scopedContentId:r(()=>a.b(`content-${s(i)}`)),scopedHeadId:r(()=>a.b(`head-${s(i)}`))}},$=T(i({...i({name:`ElCollapseItem`}),props:Z,setup(t,{expose:r}){let i=t,{focusing:l,id:u,isActive:h,handleFocus:g,handleHeaderClick:C,handleEnterClick:w}=Q(i),{arrowKls:T,headKls:E,rootKls:D,itemTitleKls:O,itemWrapperKls:k,itemContentKls:A,scopedContentId:j,scopedHeadId:M}=te(i,{focusing:l,isActive:h,id:u});return r({isActive:h}),(t,r)=>(p(),e(`div`,{class:d(s(D))},[n(`div`,{id:s(M),class:d(s(E)),"aria-expanded":s(h),"aria-controls":s(j),"aria-describedby":s(j),tabindex:t.disabled?-1:0,role:`button`,onClick:s(C),onKeydown:S(m(s(w),[`stop`]),[`space`,`enter`]),onFocus:s(g),onBlur:e=>l.value=!1},[n(`span`,{class:d(s(O))},[v(t.$slots,`title`,{isActive:s(h)},()=>[a(f(t.title),1)])],2),v(t.$slots,`icon`,{isActive:s(h)},()=>[c(s(I),{class:d(s(T))},{default:b(()=>[(p(),o(y(t.icon)))]),_:1},8,[`class`])])],42,[`id`,`aria-expanded`,`aria-controls`,`aria-describedby`,`tabindex`,`onClick`,`onKeydown`,`onFocus`,`onBlur`]),c(s(V),null,{default:b(()=>[_(n(`div`,{id:s(j),role:`region`,class:d(s(k)),"aria-hidden":!s(h),"aria-labelledby":s(M)},[n(`div`,{class:d(s(A))},[v(t.$slots,`default`)],2)],10,[`id`,`aria-hidden`,`aria-labelledby`]),[[x,s(h)]])]),_:3})],2))}}),[[`__file`,`collapse-item.vue`]]),ne=O(X,{CollapseItem:$}),re=D($);export{re as n,ne as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={"button.setup":{message:`Aseta`,description:`Painikkeen teksti, jota käytetään asetusten tekemiseen`},"button.start":{message:`Aloita`,description:`Painikkeen teksti, jota käytetään joidenkin toimintojen aloittamiseen`},"button.copy":{message:`Kopioi`,description:`Painikkeen teksti, jota käytetään sisällön kopioimiseen`},"button.copied":{message:`Kopioitu`,description:`Painikkeen teksti, joka osoittaa, että sisältö on kopioitu`},"button.restart":{message:`Uudelleen`,description:`Painikkeen teksti, jota käytetään joidenkin sisältöjen asettamiseen`},"button.preview":{message:`Esikatselu`,description:`Painikkeen teksti, jota käytetään tiedoston esikatselun avaamiseen URL-osoitteen kautta`},"button.seeRawImage":{message:`Näytä alkuperäinen kuva`,description:`Painikkeen teksti, jota käytetään alkuperäisen kuvan katsomiseen`},"button.seeRawVideo":{message:`Näytä video`,description:`Painikkeen teksti, jota käytetään alkuperäisen videon katsomiseen`},"button.edit":{message:`Muokkaa`,description:`Painikkeen teksti, jota käytetään sisällön muokkaamiseen`},"button.login":{message:`Kirjaudu sisään`,description:`Painikkeen teksti, jota käytetään kirjautumiseen`},"button.logout":{message:`Kirjaudu ulos`,description:`Painikkeen teksti, jota käytetään uloskirjautumiseen`},"button.new":{message:`Uusi`,description:`Painikkeen teksti, jota käytetään uuden kohteen luomiseen`},"button.delete":{message:`Poista`,description:`Painikkeen teksti, jota käytetään sisällön poistamiseen`},"button.deletePermanently":{message:`Poista tili pysyvästi`,description:`Final red delete button at the bottom of the delete confirmation dialog`},"button.confirm":{message:`Vahvista`,description:`Painikkeen teksti, jota käytetään toiminnan vahvistamiseen`},"button.cancel":{message:`Peruuta`,description:`Painikkeen teksti, jota käytetään toiminnan peruuttamiseen`},"button.close":{message:`Sulje`,description:`Painikkeen teksti, jota käytetään dialogin tai paneelin sulkemiseen`},"button.expand":{message:`Laajenna`,description:`Painikkeen ohjeteksti, jota käytetään avamaan ohjeiden syöttökentän koko näytön muokkaustila.`},"button.alert":{message:`Varoitus`,description:`Painikkeen teksti, jota käytetään varoituksen antamiseen`},"button.info":{message:`Tietoa`,description:`Painikkeen teksti, jota käytetään tiedon näyttämiseen`},"button.publish":{message:`Julkaise`,description:`Painikkeen teksti, jota käytetään sisällön julkaisemiseen`},"button.watch":{message:`Katso`,description:`Painikkeen teksti, jota käytetään sisällön katsomiseen`},"button.verify":{message:`Vahvista henkilöllisyys`,description:`Painikkeen teksti, joka mahdollistaa käyttäjän henkilöllisyyden vahvistamisen`},"button.profile":{message:`Profiili`,description:`Painikkeen teksti, jota käytetään käyttäjäprofiilin näyttämiseen`},"button.console":{message:`Konsoli`,description:`Painikkeen teksti, jota käytetään konsolisivun näyttämiseen, jotta voidaan hallita verkkosivun sisältöä`},"button.learn":{message:`Opi`,description:`Painikkeen teksti, jota käytetään käyttäjän opettamiseen`},"button.buy":{message:`Osta`,description:`Painikkeen teksti, jota käytetään käyttäjän ostamiseen`},"button.try":{message:`Kokeile`,description:`Painikkeen teksti, jota käytetään käyttäjän kokeiluun`},"button.startForFree":{message:`Aloita ilmaiseksi`,description:`Painikkeen teksti, jota käytetään käyttäjän ilmaiseksi aloittamiseen`},"button.download":{message:`Lataa`,description:`Painikkeen teksti, jota käytetään tiedostojen lataamiseen (esim. ääni, video, kuva)`},"button.downloadAndroid":{message:`Lataa Android`,description:`Painikkeen teksti, jota käytetään Android-asennustiedoston lataamiseen`},"button.downloadIos":{message:`Lataa iOS-asennustiedosto`,description:`Painikkeen teksti, jota käytetään iOS-asennustiedoston lataamiseen`},"button.downloadWindows":{message:`Lataa Windowsille`,description:`Text in button for downloading the Windows desktop installer`},"button.downloadMac":{message:`Lataa macOS:lle`,description:`Text in button for downloading the macOS desktop installer`},"button.installIos":{message:`Asenna iOS`,description:`Painikkeen teksti, jota käytetään iOS-sovelluksen asentamiseen`},"button.apply":{message:`Hae`,description:`Painikkeen teksti, jota käytetään käyttäjän API-palvelun hakemiseen`},"button.refresh":{message:`Päivitä`,description:`Painikkeen teksti, jota käytetään sivun päivittämiseen`},"button.pay":{message:`Maksa`,description:`Painikkeen teksti, jota käytetään käyttäjän maksamiseen palvelumaksuista`},"button.repay":{message:`Jatka maksamista`,description:`Painikkeen teksti, jota käytetään käyttäjän maksamisen jatkamiseen`},"button.applied":{message:`Hakemus lähetetty`,description:`Painikkeen teksti, jota käytetään näyttämään, että käyttäjä on hakenut palvelua`},"button.acquire":{message:`Hanki`,description:`Painikkeen teksti, jota käytetään käyttäjän API-palvelun tokenin tai avaimen hankkimiseen`},"button.fillExample":{message:`Täytä esimerkki`,description:`Painikkeen teksti, jota käytetään käyttäjän esimerkkidatan täyttämiseen`},"button.buyMore":{message:`Lataa lisää`,description:`Painikkeen teksti, jota käytetään käyttäjän lataamiseen. Englanniksi on käännettävä 'Top Up', suomeksi 'Lataa lisää'.`},"button.update":{message:`Päivitä`,description:`Painikkeen teksti, jota käytetään sisällön päivittämiseen`},"button.view":{message:`Näytä`,description:`Painikkeen teksti, jota käytetään sisällön näyttämiseen`},"button.create":{message:`Luo`,description:`Painikkeen teksti, jota käytetään sisällön luomiseen`},"button.referralEarnings":{message:`Suositustulot`,description:`Painikkeen teksti, joka näyttää suositustulot, tarkoittaa, että käyttäjä voi ansaita kutsumalla muita käyttämään palvelua`},"button.finish":{message:`Valmis`,description:`Painikkeen teksti, joka käytetään toiminnon loppuunsaattamiseen`},"entity.id":{message:`ID`,description:`Näyttää entiteetin ainutlaatuisen tunnisteen`},"entity.type":{message:`Tyyppi`,description:`Näyttää entiteetin tyypin`},"entity.website":{message:`Ace Data Cloud`,description:`Verkkosivuston nimi, ei tarvitse kääntää, pidä 'Ace Data Cloud'`},"entity.copyright":{message:`Tekijänoikeus`,description:`Näyttää tekijänoikeustekstin`},"entity.platform":{message:`Alusta`,description:`Teksti, joka osoittaa, että tämä on API-palvelualusta`},"entity.title":{message:`Otsikko`,description:`Entiteetin otsikko`},"entity.icon":{message:`Ikoni`,description:`Entiteetin ikoni`},"entity.status":{message:`Tila`,description:`Entiteetin tila`},"status.loading":{message:`Ladataan...`,description:`Sisällön lataamisen aikana näytettävä tilateksti`},"error.appleSignInFailed":{message:`Apple-kirjautuminen epäonnistui. Yritä uudelleen tai käytä toista kirjautumistapaa.`,description:`Error toast shown when native Apple sign-in fails for a reason other than user cancellation`},"error.loginLinkExpired":{message:`Login link expired. Please sign in again.`,description:`Shown on the desktop client when an OAuth callback is dropped (state mismatch or expired).`},"entity.operation":{message:`Toiminto`,description:`Entiteetin toiminto`},"entity.description":{message:`Kuvaus`,description:`Entiteetin kuvaus`},"entity.createdAt":{message:`Luotu`,description:`Entiteetin luomisaika`},"entity.updatedAt":{message:`Päivitetty`,description:`Entiteetin päivitysaika`},"entity.order":{message:`Tilaus`,description:`Entiteetin tilaus, joka sisältää rahaa ja palvelutietoja, joista käyttäjän on maksettava`},"message.noTasks":{message:`Ei historiallisia tehtäviä, aloita uusi tehtävä~`,description:`Viesti, kun tehtäviä ei ole`},"message.usedAmount":{message:`Käytetty määrä`,description:`Näyttää käytetyn palvelumäärän`},"message.mobileAppDescription":{message:`Käytä AceData suoraan puhelimella, tällä hetkellä saatavilla Android APK:n lataaminen, iOS-asennuspaketti avataan latausta varten, kun se on allekirjoitettu.`,description:`Mobiilisovelluksen lataussivun selitys`},"message.mobileAndroidHint":{message:`Sopii Android-puhelimille ja -tableteille, skannaa koodi ja asenna uusin APK.`,description:`Android-latauskortin selitys`},"message.mobileAndroidPending":{message:`Android-asennuspaketti ei ole vielä valmis, yritä myöhemmin uudelleen.`,description:`Vihje, kun Android-asennuspaketti ei ole saatavilla`},"message.mobileAvailableNow":{message:`Android on nyt ladattavissa`,description:`Näyttää, että Android on ladattavissa`},"message.mobileSecureDelivery":{message:`Turvallinen CDN-jakelu`,description:`Korostaa, että latauslinkki toimitetaan CDN:n kautta`},"message.mobileDirectInstall":{message:`Suora APK-asennus`,description:`Kuvaa, että Android-puolella on suora APK-asennustapa`},"message.mobileLatestRelease":{message:`Nykyinen julkinen versio`,description:`Selittää, että näytettävä on uusin julkinen versio`},"message.mobileSharedAccount":{message:`Jaettu tili ja käyttöoikeus verkkosivuston kanssa`,description:`Selittää, että mobiiliversio jakaa tilin verkkosivuston kanssa`},"message.mobileIosHint":{message:`Sopii iPhoneen ja iPadiin, voidaan asentaa suoraan verkosta; jos järjestelmä estää, voit myös ladata IPA:n ja jakaa sen.`,description:`iOS-latauskortin selitys`},"message.mobileIosPending":{message:`iOS-asennuspaketti ei ole vielä ladattavissa, Apple-sertifikaatti ja -profiili ovat työn alla.`,description:`Vihje, kun iOS-asennuspaketti ei ole saatavilla`},"message.mobileComingSoon":{message:`Tulossa pian`,description:`Short status label shown on a platform card (e.g. iOS) while its build is being prepared`},"message.mobileNowOnAppStore":{message:`Now on the App Store`,description:`Status label shown on the iOS card when the app is live on the App Store`},"message.desktopWindowsHint":{message:`Windows 10:lle ja uudemmille (64-bittinen). Lataa asennusohjelma ja asenna kaksoisnapsauttamalla.`,description:`Windows desktop download card description`},"message.desktopMacHint":{message:`macOS 11:lle ja uudemmille. Valitse Maciisi sopiva versio — Apple Silicon (M-sarja) tai Intel.`,description:`macOS desktop download card description`},"message.desktopUnsignedNote":{message:`Työpöytäsovellukset ovat allekirjoittamattomia beta-versioita. Valitse Windowsissa SmartScreen-ilmoituksessa »Lisätietoja → Suorita silti«; valitse macOS:ssä sovellusta hiiren oikealla painikkeella »Avaa« ohittaaksesi Gatekeeperin.`,description:`Note explaining the desktop builds are unsigned betas and how to open them`},"button.getOnGooglePlay":{message:`Lataa Google Playsta`,description:`Button label that opens the app's Google Play Store listing`},"button.getOnAppStore":{message:`Get it on the App Store`,description:`Button label that opens the app's Apple App Store listing`},"message.mobileApkFallback":{message:`Eikö Google Play ole käytettävissä? Lataa APK suoraan.`,description:`Shown next to a secondary button offering a direct APK download for users who cannot access Google Play`},"message.mobilePlayStoreHint":{message:`Skannaa avataksesi Google Playn`,description:`Hint under the QR code explaining that scanning it opens the Google Play listing`},"message.mobileAppStoreHint":{message:`Scan to open the App Store`,description:`Hint under the QR code explaining that scanning it opens the App Store listing`},"message.mobileInstallNote":{message:`Kun asennat iOS:lle ensimmäistä kertaa yritys- tai Ad Hoc-pakettia, järjestelmä saattaa vaatia ensin luottamusta sertifikaattiin 'Asetukset > Yleiset > VPN ja laitehallinta' -valikossa.`,description:`Mobiilisovelluksen asennusvinkki`},"title.mobileApp":{message:`Mobiililataus`,description:`Mobiilisovelluksen lataussivun otsikko`},"title.mobileFastAccess":{message:`Nopeampi pääsy, ei sovelluskauppaa`,description:`Lataussivun etuuskortin otsikko, korostaa nopeaa asennusta`},"title.mobileTrustedRelease":{message:`Versioiden keskitetty hallinta, vakaampi jakelu`,description:`Lataussivun etuuskortin otsikko, korostaa versiota ja jakelun vakautta`},"title.mobileUnifiedExperience":{message:`Mobiiliversion ja verkkosivuston kokemus on yhtenäinen`,description:`Lataussivun etuuskortin otsikko, korostaa yhtenäistä kokemusta`},"nav.mobileApp":{message:`Mobiiliversio`,description:`Navigoinnin mobiilisovelluksen latauslinkki`},"message.mobileFastAccess":{message:`Käyttäjät voivat skannata koodin puhelimella ja asentaa suoraan, tai he voivat ladata APK:n työpöydältä ja jakaa sen tiimin jäsenille, sopii nopeaa kokeilua ja sisäistä testausta varten.`,description:`Lataussivun etuusselitys, korostaa nopeaa pääsyä`},"message.mobileTrustedRelease":{message:`Latauslinkit on keskitetty yhdelle sivulle, versiotiedot, alustan tila ja asennustapa ovat heti nähtävissä, mikä vähentää viestintäkustannuksia, jotka johtuvat linkkien hajautumisesta.`,description:`Lataussivun etuusselitys, korostaa yhtenäistä jakelua`},"message.mobileUnifiedExperience":{message:`Kirjautumisen jälkeen tilijärjestelmä, käyttöoikeudet ja palvelulinkit ovat yhtenäisiä verkkosivuston kanssa, mikä helpottaa käyttäjien saumattomaa siirtymistä työpöydän ja mobiilin välillä.`,description:`Lataussivun etuusselitys, korostaa yhtenäistä tilikokemusta`},"message.remainingAmount":{message:`Jäljellä oleva määrä`,description:`Näyttää jäljellä olevan palvelumäärän`},"message.copied":{message:`Kopioitu`,description:`Näyttää viestin, että sisältö on onnistuneesti kopioitu`},"message.restart":{message:`Uudelleenluo`,description:`Viesti, joka ilmoittaa, että sisältö on onnistuneesti kopioitu`},"message.confirmDelete":{message:`Haluatko varmasti poistaa tämän?`,description:`Vahvistusviesti käyttäjälle, että hän haluaa poistaa jonkin sisällön`},"message.expiredAt":{message:`Vanhentumisaika`,description:`Viesti palvelun vanhentumisajasta`},"message.alert":{message:`Varoitus`,description:`Viesti, joka varoittaa käyttäjää`},"message.deleteAccountConfirm":{message:`Tämä poistaa tilisi ja kaikki siihen liittyvät tiedot pysyvästi. Tätä toimintoa ei voi peruuttaa. Haluatko varmasti jatkaa?`,description:`Confirmation message shown before permanently deleting the user account`},"message.deleteAccountSuccess":{message:`Tilisi on poistettu.`,description:`Message shown after the user account is successfully deleted`},"message.deleteAccountFailed":{message:`Tilisi poistaminen epäonnistui. Yritä myöhemmin uudelleen.`,description:`Message shown when account deletion fails`},"message.deleteAccountWarning":{message:`Tätä toimintoa ei voi peruuttaa! Tilisi ja kaikki sen tiedot poistetaan pysyvästi eikä niitä voi palauttaa.`,description:`Red warning banner at the top of the delete confirmation dialog`},"message.deleteAccountConsequences":{message:`Poistetaan pysyvästi: profiili, saldo ja krediitit, sovellukset ja tilaukset, API-avaimet sekä kolmannen osapuolen kirjautumissidokset.`,description:`Explains what data will be removed in the delete confirmation dialog`},"message.deleteAccountTypePrompt":{message:`Kirjoita käyttäjänimesi vahvistaaksesi poiston:`,description:`Instructs the user to type their username to confirm; the username is shown separately below`},"message.deleteAccountPlaceholder":{message:`Kirjoita käyttäjänimesi tähän`,description:`Placeholder for the username confirmation input`},"message.info":{message:`Tietoa`,description:`Viesti, joka näyttää tietoa`},"message.free":{message:`Ilmainen`,description:`Viesti, joka ilmoittaa, että palvelu on ilmainen, mikä tarkoittaa, että käyttäjän ei tarvitse maksaa`},"message.startPrice":{message:`Alkaen`,description:`Viesti palvelun alimmasta hinnasta`},"message.joinDiscord":{message:`Liity Discordiin`,description:`Viesti, joka kehottaa käyttäjää liittymään Discord-kanavalle`},"message.addWeChat":{message:`Lisää WeChat`,description:`Viesti, joka kehottaa käyttäjää lisäämään WeChat-tilin`},"message.serviceTech":{message:`Tekninen tuki`,description:`Viesti teknisestä tuesta`},"message.businessCooperation":{message:`Data & Liiketoimintayhteistyö`,description:`Viesti liiketoimintayhteistyöstä`},"message.noData":{message:`Ei tietoja`,description:`Viesti, joka ilmoittaa, että taulukossa tai luettelossa ei ole tietoja`},"nav.home":{message:`Etusivu`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää etusivun`},"nav.content":{message:`Sisältö`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää sisältösivun`},"nav.category":{message:`Kategoria`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää kategoriasivun`},"nav.service":{message:`Kaikki palvelut`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää palvelusivun`},"nav.profile":{message:`Profiilini`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää profiilisivun`},"nav.products":{message:`Tuotteet`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää tuotesivun`},"nav.referral":{message:`Kumppanuusohjelma`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää suosittelusivun`},"nav.apiPlatform":{message:`API-alusta`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää API-alustasivun`},"nav.document":{message:`Kehittäjädokumentaatio`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää dokumentaatiosivun`},"nav.console":{message:`Konsoli`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää konsolisivun`},"nav.chatgpt":{message:`ChatGPT`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää ChatGPT-sivun, älä käännä tätä kenttää, se on säilytettävä 'ChatGPT'`},"nav.deepseek":{message:`DeepSeek`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää DeepSeek-sivun, älä käännä tätä kenttää, se on säilytettävä 'DeepSeek'`},"nav.grok":{message:`Grok`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää Grok-sivun, älä käännä tätä kenttää, se on säilytettävä 'Grok'`},"nav.chat":{message:`Chat`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää chattasivun, älä käännä tätä kenttää, se on säilytettävä 'Chat'`},"nav.veo":{message:`Veo`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää chattasivun, älä käännä tätä kenttää, se on säilytettävä 'Veo'`},"nav.sora":{message:`Sora`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää chattasivun, älä käännä tätä kenttää, se on säilytettävä 'Sora'`},"nav.midjourney":{message:`Midjourney`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää Midjourney-sivun, älä käännä tätä kenttää, se on säilytettävä 'Midjourney'`},"nav.qrart":{message:`QRArt`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää QRArt-sivun, älä käännä tätä kenttää, se on säilytettävä 'QRArt'`},"nav.suno":{message:`Suno`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää Suno-sivun, älä käännä tätä kenttää, se on säilytettävä 'Suno'`},"nav.pixverse":{message:`Pixverse`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää Pixverse-sivun, älä käännä tätä kenttää, se on säilytettävä 'Pixverse'`},"nav.flux":{message:`Flux`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää Flux-sivun, älä käännä tätä kenttää, se on säilytettävä 'Flux'`},"nav.nanobanana":{message:`Nano Banana`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää Nano Banana -sivun, älä käännä tätä kenttää, se on säilytettävä 'Nano Banana'`},"nav.openaiimage":{message:`OpenAI Image`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää OpenAI Image -sivun, älä käännä tätä kenttää, se on säilytettävä 'OpenAI Image'`},"nav.seedream":{message:`SeeDream`,description:`Verkkosivuston navigointipalkissa oleva teksti, joka näyttää SeeDream-sivun, älä käännä tätä kenttää, se on säilytettävä 'SeeDream'`},"nav.seedance":{message:`SeeDance`,description:`网站导航栏中的文本,用于显示SeeDance页面,请不要翻译此字段,必须保持为'SeeDance'`},"nav.grokvideo":{message:`Grok Video`,description:`Text in the website navigation bar to display the Grok Imagine video page`},"nav.luma":{message:`Luma`,description:`网站导航栏中的文本,用于显示Luma页面,请不要翻译此字段,必须保持为'Luma'`},"nav.pika":{message:`Pika`,description:`网站导航栏中的文本,用于显示Pika页面,请不要翻译此字段,必须保持为'Pika'`},"nav.kling":{message:`Kling`,description:`网站导航栏中的文本,用于显示Kling页面,请不要翻译此字段,必须保持为'Kling'`},"nav.hailuo":{message:`Hailuo`,description:`网站导航栏中的文本,用于显示Hailuo页面,请不要翻译此字段,必须保持为'Hailuo'`},"nav.wan":{message:`Wan`,description:`网站导航栏中的文本,用于显示Wan页面,请不要翻译此字段,必须保持为'Wan'`},"nav.producer":{message:`Producer`,description:`网站导航栏中的文本,用于显示Producer页面,请不要翻译此字段,必须保持为'Producer'`},"nav.fish":{message:`Fish Audio`,description:`Sivuston navigointipalkissa oleva teksti, joka näyttää Fish Audio -sivun, älä käännä tätä kenttää, sen on oltava 'Fish Audio'`},"nav.kimi":{message:`Kimi`,description:`网站导航栏中的文本,用于显示Kimi页面,请不要翻译此字段,必须保持为'Kimi'`},"nav.serp":{message:`SERP`,description:`网站导航栏中的文本,用于显示SERP页面,请不要翻译此字段,必须保持为'SERP'`},"nav.codingBridge":{message:`Coding Bridge`,description:`Text in the website navigation bar to display the Coding Bridge page, must remain as 'Coding Bridge'`},"nav.webextrator":{message:`WebExtrator`,description:`Text in the website navigation bar to display the WebExtrator page, must remain as 'WebExtrator'`},"nav.image":{message:`Kuva`,description:`网站导航栏中的文本,用于显示图片页面`},"nav.music":{message:`Musiikki`,description:`网站导航栏中的文本,用于显示音乐页面`},"nav.video":{message:`Video`,description:`网站导航栏中的文本,用于显示视频页面`},"nav.distribution":{message:`Suositustulot`,description:`网站导航栏中的文本,用于显示推荐收益页面`},"nav.connections":{message:`Yhteydet`,description:`跳转到 auth.acedata.cloud 连接管理页的菜单项`},"nav.logOut":{message:`Kirjaudu ulos`,description:`网站导航栏中的文本,用于退出登录`},"nav.deleteAccount":{message:`Poista tili`,description:`Menu item to permanently delete the current user account`},"nav.site":{message:`Sivuston asetukset`,description:`网站导航栏中的文本,用于显示站点配置页面`},"nav.subsite":{message:`Oma alisivusto`,description:`侧边栏“我的分站”入口,仅在站点开启 features.subsite 时显示`},"nav.setting":{message:`Asetukset`,description:`网站导航栏中的文本,用于显示设置页面`},"nav.headshots":{message:`AI-profiilikuva`,description:`网站导航栏中的文本,用于显示站点配置页面`},"nav.more":{message:`Lisää`,description:`网站导航栏中的文本,用于展开更多服务`},"nav.locale":{message:`Kieliasetukset`,description:`网站导航栏中的文本,用于更改语言`},"nav.support":{message:`Asiakastuki`,description:`网站导航栏中的文本,用于显示联系页面`},"nav.darkMode":{message:`Tumma tila`,description:`网站导航栏中的文本,用于切换到深色主题`},"title.alert":{message:`Varoitus`,description:`警告消息的标题`},"title.placeholderOfSelect":{message:`Valitse`,description:`选择输入的占位符`},"title.placeholderOfInput":{message:`Täytä`,description:`输入的占位符`},"title.allApplications":{message:`Kaikki hakemukset`,description:`显示所有申请的页面标题`},"title.allOrders":{message:`Kaikki tilaukset`,description:`显示所有订单的页面标题`},"title.orderInfo":{message:`Tilaustiedot`,description:`显示订单信息的页面标题`},"title.buyMore":{message:`Lataus`,description:`页面标题,用于充值。英文必须翻译为“Top Up”,中文为“充值”。`},"title.distribution":{message:`Suositustulot`,description:`显示推荐收入的页面标题,意味着用户可以通过邀请他人使用该服务来赚钱`},"title.site":{message:`Sivuston asetukset`,description:`显示站点配置的页面标题`},"title.distributionHistory":{message:`Suositushistoria`,description:`显示推荐历史的页面标题`},"title.invitee":{message:`Kutsuja`,description:`显示邀请人的页面标题`},"title.allUsages":{message:`Käyttöhistoria`,description:`显示API服务所有使用的页面标题`},"title.allCredentials":{message:`Avaimet`,description:`显示所有凭证的页面标题,凭证用于访问API`},"about.title1":{message:`Ota yhteyttä`,description:`Näyttää yhteystiedot -osion pääotsikon`},"about.title2":{message:`Resurssit`,description:`Näyttää linkkien osan otsikon`},"about.title3":{message:`Linkit`,description:`Näyttää tukitietojen osan otsikon`},"about.address":{message:`131 Continental Dr, Suite 305, Newark, Delaware 19713, USA`,description:`Yrityksen osoite`},"about.email":{message:`office@acedata.cloud`,description:`Yrityksen sähköposti`},"about.link1":{message:`Palvelut`,description:`Linkki asiakirjasivulle`},"about.link2":{message:`Kehittäjädokumentaatio`,description:`Linkki palvelusivulle`},"about.link3":{message:`Konsoli`,description:`Linkki konsolisivulle`},"about.link4":{message:`Profiili`,description:`Linkki profiilisivulle`},"about.link5":{message:`UI-alusta`,description:`Linkki keskussivulle`},"about.link6":{message:`Suositustulot`,description:`Linkki suositustulojen sivulle`},"about.link7":{message:`Tuki`,description:`Linkki tukisivulle`},"about.link8":{message:`Käyttöehdot`,description:`Linkki käyttöehtosivulle`},"about.link9":{message:`Tietosuojakäytäntö`,description:`Linkki tietosuojakäytännön sivulle`},"theme.light":{message:`Vaalea`,description:`Vaalean teeman nimi`},"theme.dark":{message:`Tumma`,description:`Tumman teeman nimi`},"theme.system":{message:`Järjestelmä`,description:`Järjestelmäteeman nimi, joka tarkoittaa automaattista teeman vaihtamista järjestelmäasetusten mukaan`},"settings.general":{message:`Yleiset asetukset`,description:`Asetussivun yleisten asetusten osan otsikko`},"settings.language":{message:`Kieli`,description:`Asetussivun kieliasetusten osan otsikko`},"settings.theme":{message:`Teema`,description:`Asetussivun teemavalintojen osan otsikko`},"settings.seo":{message:`SEO-asetukset`,description:`Asetussivun SEO-asetusten osan otsikko`},"settings.site":{message:`Sivuston asetukset`,description:`Asetussivun sivuston asetusten osan otsikko`},"settings.distribution":{message:`Jakeluasetukset`,description:`Asetussivun jakeluasetusten osan otsikko`},"settings.function":{message:`Toiminta-asetukset`,description:`Asetussivun toiminta-asetusten osan otsikko`},"settings.auth":{message:`Kirjautumistapa`,description:`Asetussivun sivupalkin 'Kirjautumistapa' välilehden otsikko - määritä, mitä kirjautumistapoja sivustolla sallitaan ja mikä on oletuskirjautumistapa, näkyy vain sivuston ylläpitäjille.`},"settings.apiKey":{message:`API-avain`,description:`Asetussivun sivupalkin API-avain -käytön hallinta`},"field.operations":{message:`Toiminnot`,description:`Yleinen sarakeotsikko: taulukon rivien toimintopainikkeet (muokkaa, poista jne.)`},"nav.gemini":{message:`Gemini`,description:`Teksti verkkosivuston navigointipalkissa, joka näyttää Gemini-sivun, on säilytettävä 'Gemini'`},"nav.claude":{message:`Claude`,description:`Teksti verkkosivuston navigointipalkissa, joka näyttää Claude-sivun, on säilytettävä 'Claude'`},"button.detail":{message:`Näytä tiedot`,description:``},"button.testEnv":{message:`Testiympäristö`,description:`Painikkeen teksti, joka vaihtaa testiympäristöön`},"button.upload":{message:`Lataa`,description:`Painikkeen teksti, joka lataa tiedostoja tai sisältöä`},"message.cnbeian":{message:`Kiinan alueen rekisteröinti`,description:`Kiinan alueen rekisteröinnin selitys`},"message.copyFailed":{message:`Kopiointi epäonnistui`,description:`Näyttää viestin, että sisällön kopiointi epäonnistui`},"nav.tryNow":{message:`Kokeile nyt`,description:`Verkkosivuston navigointipalkissa oleva teksti, joka kannustaa käyttäjää kokeilemaan palvelua`},"title.coin":{message:`Kryptovaluutta`,description:`Näyttää kryptovaluuttojen sivun otsikon`},"title.distributionRank":{message:`Suositusranking`,description:`Näyttää suositusranking-sivun otsikon`},"title.distributionPlatformRank":{message:`Alustaranking`,description:`Näyttää alustaranking-sivun otsikon`},"customers.name1":{message:`Mark Du`,description:`Asiakkaan nimi`},"customers.job1":{message:`Ohjelmistosuunnittelija`,description:`Asiakkaan ammatti`},"customers.comment1":{message:`Ace Data Cloud on tarjonnut erinomaisia palveluja tiimillemme ja auttanut meitä parantamaan tuottavuutta. Erittäin tyytyväinen!`,description:`Asiakkaan arvio`},"customers.name2":{message:`Jacob Williams`,description:`Asiakkaan nimi`},"customers.job2":{message:`Tuotepäällikkö`,description:`Asiakkaan ammatti`},"customers.comment2":{message:`Ace Data Cloud on loistava integrointialusta, palvelun laatu on erinomaista.`,description:`Asiakkaan arvio`},"customers.name3":{message:`Larry Henry`,description:`Asiakkaan nimi`},"customers.job3":{message:`Suunnittelija`,description:`Asiakkaan ammatti`},"customers.comment3":{message:`Pidän Ace Data Cloudin palveluista, ne ovat helppokäyttöisiä ja kohtuuhintaisia, toivon niiden paranevan entisestään!`,description:`Asiakkaan arvio`},"nav.github":{message:`GitHub`,description:`GitHub-repositorion linkki`},"settings.github":{message:`Lähdekoodi`,description:`Linkki lähdekoodin tarkasteluun GitHubissa`},"settings.about":{message:`Tietoja`,description:`Asetussivun tietoja-osan otsikko`},"settings.localTools":{message:`Paikalliset työkalut`,description:`Desktop-only settings tab for managing local tool folders, permissions and grants.`},"settings.localToolsDesktopOnly":{message:`Käytettävissä vain työpöytäsovelluksessa.`,description:`Shown when the Local Tools tab is opened on web/mobile.`},"settings.localToolsFoldersTitle":{message:`Valtuutetut kansiot`,description:`Heading for the list of folders the AI may read/write locally.`},"settings.localToolsFoldersHint":{message:`Kansiot, joita tekoäly saa lukea ja kirjoittaa tällä laitteella. Työkalut suoritetaan paikallisesti; mikään ei poistu laitteeltasi ilman suostumustasi.`,description:`Help text under the authorized-folders heading.`},"settings.localToolsComputerUseTitle":{message:`Computer Use (experimental)`,description:`Heading for the opt-in Computer Use (screen + mouse/keyboard control) toggle.`},"settings.localToolsComputerUseHint":{message:`Let the AI see your screen and control the mouse and keyboard on this computer. Off by default — turn it on only when you need it. On macOS, grant Screen Recording and Accessibility permissions below. Each action still asks for your confirmation.`,description:`Help text under the Computer Use toggle.`},"settings.localToolsAddFolder":{message:`Lisää kansio`,description:`Button to pick a folder to authorize.`},"settings.localToolsRemove":{message:`Poista`,description:`Button to remove an authorized folder.`},"settings.localToolsNoFolders":{message:`Ei vielä valtuutettuja kansioita.`,description:`Empty state for the authorized-folders list.`},"settings.localToolsSave":{message:`Tallenna`,description:`Save the authorized folders.`},"settings.localToolsSaved":{message:`Tallennettu`,description:`Transient confirmation after saving local-tool folders.`},"settings.localToolsActiveTools":{message:`Aktiiviset työkalut`,description:`Label before the list of currently available local tools.`},"settings.localToolsGrantsTitle":{message:`Aina sallitut toiminnot`,description:`Heading for the persistent consent grants list.`},"settings.localToolsGrantsHint":{message:`Työkalukutsut, jotka valitsit sallittavaksi aina. Ne suoritetaan kysymättä uudelleen. Peru mikä tahansa ottaaksesi vahvistuksen taas käyttöön.`,description:`Help text under the always-allowed actions heading.`},"settings.localToolsRevoke":{message:`Peru`,description:`Button to revoke a single always-allow grant.`},"settings.localToolsRevokeAll":{message:`Peru kaikki`,description:`Button to revoke every always-allow grant.`},"settings.localToolsNoGrants":{message:`Ei aina sallittuja toimintoja. Sinulta kysytään ennen jokaista paikallista työkalua.`,description:`Empty state for the always-allowed actions list.`},"settings.localToolsPermsTitle":{message:`Järjestelmän käyttöoikeudet`,description:`Heading for the macOS system-permission section.`},"settings.localToolsPermsHint":{message:`Valinnainen. Yllä oleva kansiokäyttö ei tarvitse näitä – myönnä vain se, mitä tietty tehtävä vaatii.`,description:`Help text under the system-permissions heading.`},"settings.localToolsPermFullDisk":{message:`Täysi levyn käyttöoikeus`,description:`macOS Full Disk Access permission row.`},"settings.localToolsPermScreen":{message:`Näytön tallennus`,description:`macOS Screen Recording permission row.`},"settings.localToolsPermAccessibility":{message:`Käyttöapu`,description:`macOS Accessibility permission row.`},"settings.localToolsGranted":{message:`Myönnetty`,description:`Status tag when a system permission is granted.`},"settings.localToolsNotGranted":{message:`Ei myönnetty`,description:`Status tag when a system permission is not granted.`},"settings.localToolsOpen":{message:`Avaa…`,description:`Button to open the relevant macOS System Settings pane.`},"settings.subsites":{message:`Omat alisivustot`,description:`Asetusikkunassa alisivustojen hallinta-välilehden otsikko. Näkyy vain virallisella pääsivustolla, alisivustot eivät näy.`},"settings.adminOnlyHint":{message:`Tämä osio on vain sivuston ylläpitäjille, tavalliset käyttäjät eivät pääse siihen käsiksi.`,description:`Vihje, joka näytetään ylläpitäjille näkyvissä olevien asetusten välilehden yläosassa, kuten sivuston asetukset / SEO-asetukset / jakeluasetukset / toiminta-asetukset.`},"settings.officialOnlyHint":{message:`Tämä osio on vain pääsivustolla näkyvissä, alisivustot eivät näytä sitä.`,description:`Vihje, joka näytetään 'Omat alisivustot' -välilehden yläosassa, ilmoittaen, että tämä pääsy on vain virallisella pääsivustolla.`},"settings.customDomain":{message:`Mukautettu verkkotunnus`,description:`Title for the custom-domain management tab in the settings popup. Visible only on subsites (non-main-official hosts) for site admins.`},"settings.buildNow":{message:`Yksi napsautus rakentamiseen`,description:`Tietoja-sivun 'Yksi napsautus alisivuston rakentamiseen' -painikkeen teksti, näkyy vain virallisella pääsivustolla`},"settings.poweredBy":{message:`Avoimen lähdekoodin projekti`,description:`Tietoja-sivulla esitettävä otsikko, joka kertoo, mihin avoimen lähdekoodin projektiin tämä sivusto perustuu`},"settings.poweredByTip":{message:`Tämä sivusto perustuu Nexior-avoimen lähdekoodin projektiin, koodi on täysin avointa.`,description:`Tietoja-sivulla esitettävä selitys, joka kertoo, mihin avoimen lähdekoodin projektiin tämä sivusto perustuu`},"settings.apiService":{message:`API-palvelu`,description:`Tietoja-sivulla esitettävä otsikko, joka kertoo API-palvelun tarjoajasta`},"settings.apiServiceTip":{message:`Tämän sivuston API-palvelun tarjoaa Ace Data Cloud.`,description:`Tietoja-sivulla esitettävä selitys, joka kertoo API-palvelun tarjoajasta`},"settings.buildYourOwn":{message:`Rakenna oma`,description:`Tietoja-sivulla käyttäjälle, joka voi rakentaa samanlaisen sivuston, esitettävä otsikko`},"settings.buildYourOwnTip":{message:`Haluatko rakentaa samanlaisen AI-sivuston? Ota meihin yhteyttä saadaksesi käyttöönottoapua.`,description:`Tietoja-sivulla samanlaisen rakentamisen selitys`},"settings.contactUs":{message:`Ota yhteyttä asiakaspalveluun`,description:`Asiakaspalveluun ottamisen painikkeen teksti`},"message.viewOnGithub":{message:`Katso GitHubissa`,description:`Linkkiteksti projektin katsomiseen GitHubissa`},"title.notFound":{message:`Sivu on kadonnut`,description:`404-sivun otsikko`},"message.notFound":{message:`Käyttämäsi sivu ei ole olemassa, linkki on saattanut muuttua tai poistettu. Palaa etusivulle jatkaaksesi AceData AI -palveluiden tutkimista.`,description:`404-sivun alaotsikon kuvaus`},"message.notFoundEyebrow":{message:`Virhe`,description:`404-sivun yläosan pieni etiketti`},"message.notFoundPath":{message:`Pyyntöpolku`,description:`404-sivulla nykyisen pyyntöpolun esittämiseen käytettävä etiketti`},"button.backToHome":{message:`Palaa etusivulle`,description:`Painikkeen teksti, jota käytetään palaamaan etusivulle`},"button.goBack":{message:`Palaa edelliselle sivulle`,description:`Painikkeen teksti, jota käytetään palaamaan selaushistoriassa edelliselle sivulle`},"title.apiCode":{message:`API code for this request`,description:`Title of the dialog that shows the equivalent API code (curl / Python / Node) that would reproduce a result generated inside the product`},"message.viewCodeHint":{message:`Show API code for this request`,description:`Tooltip text on the View Code button shown alongside result-card action buttons (U1/U2/Download/Extend/...). Clicking the button opens a dialog with curl / Python / Node snippets that reproduce the same generation via the public API.`},"button.viewCode":{message:`View code`,description:`Button text that opens a dialog with the equivalent API code (curl / Python / Node) for the current result, similar to the OpenAI Playground 'View code' affordance`},"button.getApiKey":{message:`Get an API key`,description:`Link text in the API code dialog footer that opens the platform console page where users can create an API key`},"button.apiPlatform":{message:`API Platform`,description:`API code dialog footer button label. Clicking opens https://platform.acedata.cloud/ in a new tab so users can manage their API keys, balance and usage.`},"message.apiCodeIntro":{message:`Run this from your own code to produce the same result. Replace <YOUR_API_KEY> with a key from your platform console.`,description:`Helper text shown above the code tabs in the API code dialog, explaining how to use the snippet`},"tab.apiRequest":{message:`Pyyntö`,description:`API-koodin dialogin välilehden etiketti pyyntökoodille (koodi, joka toistaa nykyisen tuloksen).`},"tab.apiResponse":{message:`Vastaus`,description:`API-koodin dialogin välilehden etiketti reaaliaikaiselle vastaukselle, joka palautuu Suorita-painiketta napsautettaessa.`},"button.apiRun":{message:`Suorita uudelleen`,description:`API-koodin dialogin painike, joka suorittaa pyynnön uudelleen reaaliaikaisesti API:ta käyttäen käyttäjän avainta. Tulos on jo olemassa, joten napsauttaminen suorittaa sen uudelleen, ja se on laskutettavaa.`},"button.apiRunning":{message:`Suoritetaan…`,description:`API-koodin dialogin Suorita-painikkeen etiketti, kun reaaliaikainen pyyntö on käynnissä.`},"button.apiRunConfirm":{message:`Vahvista suoritus`,description:`Vahvistuspainikkeen etiketti dialogissa, joka varoittaa, että suorittaminen kuluttaa ylimääräisiä krediittejä.`},"button.viewDocs":{message:`Näytä asiakirjat`,description:`API-koodin dialogin alatunnisteen painike, joka avaa vastaavan API-dokumentaatiosivun alustalla.`},"message.apiClickRun":{message:`Napsauta 'Suorita uudelleen' käyttääksesi API-avaintasi tämän pyynnön suorittamiseen reaaliaikaisesti.`,description:`API-koodin dialogin vastaustabin tyhjät tilat, jotka näytetään ennen kuin käyttäjä on suorittanut pyynnön.`},"message.apiRunConfirmTitle":{message:`Vahvista suoritus`,description:`Vahvistusdialogin otsikko, joka näytetään ennen pyynnön uudelleen suorittamista API-koodin dialogista.`},"message.apiRunConfirmDesc":{message:`Tämä suoritus käyttää API-avaintasi ja tekee todellisen kutsun rajapintaan, mikä kuluttaa ylimääräisiä pisteitä. Vahvistatko jatkamisen?`,description:`Vahvistusdialogin runko, joka varoittaa, että pyynnön uudelleen suorittaminen on todellinen, laskutettava API-kutsu.`},"message.apiRunConfirmSkip":{message:`Älä enää muistuta`,description:`Valintaruutu suoritusvahvistusdialogissa, joka, kun se on valittuna, estää varoituksen seuraavilla suorituksilla.`},"message.apiRunTaskCreated":{message:`Tehtävä on luotu, sulje tämä ikkuna nähdäksesi uusimmat tulokset alla.`,description:`Onnistumisbanneri, joka näytetään API-koodin dialogissa sen jälkeen, kun suoritus palauttaa tehtävän ID:n, vihjaten että uusi tehtävä näkyy jo dialogin takana olevassa luettelossa.`},"button.apiViewLatest":{message:`Sulje ja katso`,description:`Painike API-koodin dialogin onnistumisbannerissa, joka sulkee dialogin, jotta käyttäjä voi nähdä juuri luodun tehtävän alla olevassa luettelossa.`},"message.uploadInProgress":{message:`Viiteaineistojen lataus on yhä käynnissä – odota hetki.`,description:`Toast shown when the user clicks the Generate button while one or more reference uploads are still in flight. Asks them to wait for uploads to complete before retrying.`},"appUpgrade.title":{message:`Update required`,description:`Title of the native-app version gate modal shown at startup when the installed build is older than what the backend supports.`},"appUpgrade.blockMessage":{message:`This version is no longer supported. Please update from the app store to continue.`,description:`Body text of the hard-block upgrade modal shown when the installed version is below min_supported. The modal has no dismiss affordance — the only button opens the app store.`},"appUpgrade.softMessage":{message:`A newer version is available. Update from the app store for the best experience.`,description:`Body text of the soft upgrade prompt shown when the installed version is below latest but above min_supported. The user can dismiss and keep using the app.`},"appUpgrade.openStore":{message:`Update now`,description:`Primary button on the upgrade modal — opens the App Store / Play Store URL in the system browser.`},"appUpgrade.later":{message:`Later`,description:`Secondary button on the soft upgrade prompt — dismisses the modal and lets the user keep using the current version. Only shown for non-forced upgrades.`},"nav.maestro":{message:`Maestro`,description:`Navigointipalkissa Maestro-artikkeleiden muuntaminen videoiksi -sivun teksti, säilytä 'Maestro'`},"nav.digitalhuman":{message:`Digital Human`,description:`Text in the website navigation bar for the Digital Human talking-head page`}};export{e as default};
|
|
1
|
+
var e={"button.setup":{message:`Aseta`,description:`Painikkeen teksti, jota käytetään asetusten tekemiseen`},"button.start":{message:`Aloita`,description:`Painikkeen teksti, jota käytetään joidenkin toimintojen aloittamiseen`},"button.copy":{message:`Kopioi`,description:`Painikkeen teksti, jota käytetään sisällön kopioimiseen`},"button.copied":{message:`Kopioitu`,description:`Painikkeen teksti, joka osoittaa, että sisältö on kopioitu`},"button.restart":{message:`Uudelleen`,description:`Painikkeen teksti, jota käytetään joidenkin sisältöjen asettamiseen`},"button.preview":{message:`Esikatselu`,description:`Painikkeen teksti, jota käytetään tiedoston esikatselun avaamiseen URL-osoitteen kautta`},"button.seeRawImage":{message:`Näytä alkuperäinen kuva`,description:`Painikkeen teksti, jota käytetään alkuperäisen kuvan katsomiseen`},"button.seeRawVideo":{message:`Näytä video`,description:`Painikkeen teksti, jota käytetään alkuperäisen videon katsomiseen`},"button.edit":{message:`Muokkaa`,description:`Painikkeen teksti, jota käytetään sisällön muokkaamiseen`},"button.login":{message:`Kirjaudu sisään`,description:`Painikkeen teksti, jota käytetään kirjautumiseen`},"button.logout":{message:`Kirjaudu ulos`,description:`Painikkeen teksti, jota käytetään uloskirjautumiseen`},"button.new":{message:`Uusi`,description:`Painikkeen teksti, jota käytetään uuden kohteen luomiseen`},"button.delete":{message:`Poista`,description:`Painikkeen teksti, jota käytetään sisällön poistamiseen`},"button.deletePermanently":{message:`Poista tili pysyvästi`,description:`Final red delete button at the bottom of the delete confirmation dialog`},"button.confirm":{message:`Vahvista`,description:`Painikkeen teksti, jota käytetään toiminnan vahvistamiseen`},"button.cancel":{message:`Peruuta`,description:`Painikkeen teksti, jota käytetään toiminnan peruuttamiseen`},"button.close":{message:`Sulje`,description:`Painikkeen teksti, jota käytetään dialogin tai paneelin sulkemiseen`},"button.expand":{message:`Laajenna`,description:`Painikkeen ohjeteksti, jota käytetään avamaan ohjeiden syöttökentän koko näytön muokkaustila.`},"button.alert":{message:`Varoitus`,description:`Painikkeen teksti, jota käytetään varoituksen antamiseen`},"button.info":{message:`Tietoa`,description:`Painikkeen teksti, jota käytetään tiedon näyttämiseen`},"button.publish":{message:`Julkaise`,description:`Painikkeen teksti, jota käytetään sisällön julkaisemiseen`},"button.watch":{message:`Katso`,description:`Painikkeen teksti, jota käytetään sisällön katsomiseen`},"button.verify":{message:`Vahvista henkilöllisyys`,description:`Painikkeen teksti, joka mahdollistaa käyttäjän henkilöllisyyden vahvistamisen`},"button.profile":{message:`Profiili`,description:`Painikkeen teksti, jota käytetään käyttäjäprofiilin näyttämiseen`},"button.console":{message:`Konsoli`,description:`Painikkeen teksti, jota käytetään konsolisivun näyttämiseen, jotta voidaan hallita verkkosivun sisältöä`},"button.learn":{message:`Opi`,description:`Painikkeen teksti, jota käytetään käyttäjän opettamiseen`},"button.buy":{message:`Osta`,description:`Painikkeen teksti, jota käytetään käyttäjän ostamiseen`},"button.try":{message:`Kokeile`,description:`Painikkeen teksti, jota käytetään käyttäjän kokeiluun`},"button.startForFree":{message:`Aloita ilmaiseksi`,description:`Painikkeen teksti, jota käytetään käyttäjän ilmaiseksi aloittamiseen`},"button.download":{message:`Lataa`,description:`Painikkeen teksti, jota käytetään tiedostojen lataamiseen (esim. ääni, video, kuva)`},"button.downloadAndroid":{message:`Lataa Android`,description:`Painikkeen teksti, jota käytetään Android-asennustiedoston lataamiseen`},"button.downloadIos":{message:`Lataa iOS-asennustiedosto`,description:`Painikkeen teksti, jota käytetään iOS-asennustiedoston lataamiseen`},"button.downloadWindows":{message:`Lataa Windowsille`,description:`Text in button for downloading the Windows desktop installer`},"button.downloadMac":{message:`Lataa macOS:lle`,description:`Text in button for downloading the macOS desktop installer`},"button.installIos":{message:`Asenna iOS`,description:`Painikkeen teksti, jota käytetään iOS-sovelluksen asentamiseen`},"button.apply":{message:`Hae`,description:`Painikkeen teksti, jota käytetään käyttäjän API-palvelun hakemiseen`},"button.refresh":{message:`Päivitä`,description:`Painikkeen teksti, jota käytetään sivun päivittämiseen`},"button.pay":{message:`Maksa`,description:`Painikkeen teksti, jota käytetään käyttäjän maksamiseen palvelumaksuista`},"button.repay":{message:`Jatka maksamista`,description:`Painikkeen teksti, jota käytetään käyttäjän maksamisen jatkamiseen`},"button.applied":{message:`Hakemus lähetetty`,description:`Painikkeen teksti, jota käytetään näyttämään, että käyttäjä on hakenut palvelua`},"button.acquire":{message:`Hanki`,description:`Painikkeen teksti, jota käytetään käyttäjän API-palvelun tokenin tai avaimen hankkimiseen`},"button.fillExample":{message:`Täytä esimerkki`,description:`Painikkeen teksti, jota käytetään käyttäjän esimerkkidatan täyttämiseen`},"button.buyMore":{message:`Lataa lisää`,description:`Painikkeen teksti, jota käytetään käyttäjän lataamiseen. Englanniksi on käännettävä 'Top Up', suomeksi 'Lataa lisää'.`},"button.update":{message:`Päivitä`,description:`Painikkeen teksti, jota käytetään sisällön päivittämiseen`},"button.view":{message:`Näytä`,description:`Painikkeen teksti, jota käytetään sisällön näyttämiseen`},"button.create":{message:`Luo`,description:`Painikkeen teksti, jota käytetään sisällön luomiseen`},"button.referralEarnings":{message:`Suositustulot`,description:`Painikkeen teksti, joka näyttää suositustulot, tarkoittaa, että käyttäjä voi ansaita kutsumalla muita käyttämään palvelua`},"button.finish":{message:`Valmis`,description:`Painikkeen teksti, joka käytetään toiminnon loppuunsaattamiseen`},"entity.id":{message:`ID`,description:`Näyttää entiteetin ainutlaatuisen tunnisteen`},"entity.type":{message:`Tyyppi`,description:`Näyttää entiteetin tyypin`},"entity.website":{message:`Ace Data Cloud`,description:`Verkkosivuston nimi, ei tarvitse kääntää, pidä 'Ace Data Cloud'`},"entity.copyright":{message:`Tekijänoikeus`,description:`Näyttää tekijänoikeustekstin`},"entity.platform":{message:`Alusta`,description:`Teksti, joka osoittaa, että tämä on API-palvelualusta`},"entity.title":{message:`Otsikko`,description:`Entiteetin otsikko`},"entity.icon":{message:`Ikoni`,description:`Entiteetin ikoni`},"entity.status":{message:`Tila`,description:`Entiteetin tila`},"status.loading":{message:`Ladataan...`,description:`Sisällön lataamisen aikana näytettävä tilateksti`},"error.appleSignInFailed":{message:`Apple-kirjautuminen epäonnistui. Yritä uudelleen tai käytä toista kirjautumistapaa.`,description:`Error toast shown when native Apple sign-in fails for a reason other than user cancellation`},"error.loginLinkExpired":{message:`Login link expired. Please sign in again.`,description:`Shown on the desktop client when an OAuth callback is dropped (state mismatch or expired).`},"entity.operation":{message:`Toiminto`,description:`Entiteetin toiminto`},"entity.description":{message:`Kuvaus`,description:`Entiteetin kuvaus`},"entity.createdAt":{message:`Luotu`,description:`Entiteetin luomisaika`},"entity.updatedAt":{message:`Päivitetty`,description:`Entiteetin päivitysaika`},"entity.order":{message:`Tilaus`,description:`Entiteetin tilaus, joka sisältää rahaa ja palvelutietoja, joista käyttäjän on maksettava`},"message.noTasks":{message:`Ei historiallisia tehtäviä, aloita uusi tehtävä~`,description:`Viesti, kun tehtäviä ei ole`},"message.usedAmount":{message:`Käytetty määrä`,description:`Näyttää käytetyn palvelumäärän`},"message.mobileAppDescription":{message:`Käytä AceData suoraan puhelimella, tällä hetkellä saatavilla Android APK:n lataaminen, iOS-asennuspaketti avataan latausta varten, kun se on allekirjoitettu.`,description:`Mobiilisovelluksen lataussivun selitys`},"message.mobileAndroidHint":{message:`Sopii Android-puhelimille ja -tableteille, skannaa koodi ja asenna uusin APK.`,description:`Android-latauskortin selitys`},"message.mobileAndroidPending":{message:`Android-asennuspaketti ei ole vielä valmis, yritä myöhemmin uudelleen.`,description:`Vihje, kun Android-asennuspaketti ei ole saatavilla`},"message.mobileAvailableNow":{message:`Android on nyt ladattavissa`,description:`Näyttää, että Android on ladattavissa`},"message.mobileSecureDelivery":{message:`Turvallinen CDN-jakelu`,description:`Korostaa, että latauslinkki toimitetaan CDN:n kautta`},"message.mobileDirectInstall":{message:`Suora APK-asennus`,description:`Kuvaa, että Android-puolella on suora APK-asennustapa`},"message.mobileLatestRelease":{message:`Nykyinen julkinen versio`,description:`Selittää, että näytettävä on uusin julkinen versio`},"message.mobileSharedAccount":{message:`Jaettu tili ja käyttöoikeus verkkosivuston kanssa`,description:`Selittää, että mobiiliversio jakaa tilin verkkosivuston kanssa`},"message.mobileIosHint":{message:`Sopii iPhoneen ja iPadiin, voidaan asentaa suoraan verkosta; jos järjestelmä estää, voit myös ladata IPA:n ja jakaa sen.`,description:`iOS-latauskortin selitys`},"message.mobileIosPending":{message:`iOS-asennuspaketti ei ole vielä ladattavissa, Apple-sertifikaatti ja -profiili ovat työn alla.`,description:`Vihje, kun iOS-asennuspaketti ei ole saatavilla`},"message.mobileComingSoon":{message:`Tulossa pian`,description:`Short status label shown on a platform card (e.g. iOS) while its build is being prepared`},"message.mobileNowOnAppStore":{message:`Now on the App Store`,description:`Status label shown on the iOS card when the app is live on the App Store`},"message.desktopWindowsHint":{message:`Windows 10:lle ja uudemmille (64-bittinen). Lataa asennusohjelma ja asenna kaksoisnapsauttamalla.`,description:`Windows desktop download card description`},"message.desktopMacHint":{message:`macOS 11:lle ja uudemmille. Valitse Maciisi sopiva versio — Apple Silicon (M-sarja) tai Intel.`,description:`macOS desktop download card description`},"message.desktopUnsignedNote":{message:`Työpöytäsovellukset ovat allekirjoittamattomia beta-versioita. Valitse Windowsissa SmartScreen-ilmoituksessa »Lisätietoja → Suorita silti«; valitse macOS:ssä sovellusta hiiren oikealla painikkeella »Avaa« ohittaaksesi Gatekeeperin.`,description:`Note explaining the desktop builds are unsigned betas and how to open them`},"button.getOnGooglePlay":{message:`Lataa Google Playsta`,description:`Button label that opens the app's Google Play Store listing`},"button.getOnAppStore":{message:`Get it on the App Store`,description:`Button label that opens the app's Apple App Store listing`},"message.mobileApkFallback":{message:`Eikö Google Play ole käytettävissä? Lataa APK suoraan.`,description:`Shown next to a secondary button offering a direct APK download for users who cannot access Google Play`},"message.mobilePlayStoreHint":{message:`Skannaa avataksesi Google Playn`,description:`Hint under the QR code explaining that scanning it opens the Google Play listing`},"message.mobileAppStoreHint":{message:`Scan to open the App Store`,description:`Hint under the QR code explaining that scanning it opens the App Store listing`},"message.mobileInstallNote":{message:`Kun asennat iOS:lle ensimmäistä kertaa yritys- tai Ad Hoc-pakettia, järjestelmä saattaa vaatia ensin luottamusta sertifikaattiin 'Asetukset > Yleiset > VPN ja laitehallinta' -valikossa.`,description:`Mobiilisovelluksen asennusvinkki`},"title.mobileApp":{message:`Mobiililataus`,description:`Mobiilisovelluksen lataussivun otsikko`},"title.mobileFastAccess":{message:`Nopeampi pääsy, ei sovelluskauppaa`,description:`Lataussivun etuuskortin otsikko, korostaa nopeaa asennusta`},"title.mobileTrustedRelease":{message:`Versioiden keskitetty hallinta, vakaampi jakelu`,description:`Lataussivun etuuskortin otsikko, korostaa versiota ja jakelun vakautta`},"title.mobileUnifiedExperience":{message:`Mobiiliversion ja verkkosivuston kokemus on yhtenäinen`,description:`Lataussivun etuuskortin otsikko, korostaa yhtenäistä kokemusta`},"nav.mobileApp":{message:`Mobiiliversio`,description:`Navigoinnin mobiilisovelluksen latauslinkki`},"message.mobileFastAccess":{message:`Käyttäjät voivat skannata koodin puhelimella ja asentaa suoraan, tai he voivat ladata APK:n työpöydältä ja jakaa sen tiimin jäsenille, sopii nopeaa kokeilua ja sisäistä testausta varten.`,description:`Lataussivun etuusselitys, korostaa nopeaa pääsyä`},"message.mobileTrustedRelease":{message:`Latauslinkit on keskitetty yhdelle sivulle, versiotiedot, alustan tila ja asennustapa ovat heti nähtävissä, mikä vähentää viestintäkustannuksia, jotka johtuvat linkkien hajautumisesta.`,description:`Lataussivun etuusselitys, korostaa yhtenäistä jakelua`},"message.mobileUnifiedExperience":{message:`Kirjautumisen jälkeen tilijärjestelmä, käyttöoikeudet ja palvelulinkit ovat yhtenäisiä verkkosivuston kanssa, mikä helpottaa käyttäjien saumattomaa siirtymistä työpöydän ja mobiilin välillä.`,description:`Lataussivun etuusselitys, korostaa yhtenäistä tilikokemusta`},"message.remainingAmount":{message:`Jäljellä oleva määrä`,description:`Näyttää jäljellä olevan palvelumäärän`},"message.copied":{message:`Kopioitu`,description:`Näyttää viestin, että sisältö on onnistuneesti kopioitu`},"message.restart":{message:`Uudelleenluo`,description:`Viesti, joka ilmoittaa, että sisältö on onnistuneesti kopioitu`},"message.confirmDelete":{message:`Haluatko varmasti poistaa tämän?`,description:`Vahvistusviesti käyttäjälle, että hän haluaa poistaa jonkin sisällön`},"message.expiredAt":{message:`Vanhentumisaika`,description:`Viesti palvelun vanhentumisajasta`},"message.alert":{message:`Varoitus`,description:`Viesti, joka varoittaa käyttäjää`},"message.deleteAccountConfirm":{message:`Tämä poistaa tilisi ja kaikki siihen liittyvät tiedot pysyvästi. Tätä toimintoa ei voi peruuttaa. Haluatko varmasti jatkaa?`,description:`Confirmation message shown before permanently deleting the user account`},"message.deleteAccountSuccess":{message:`Tilisi on poistettu.`,description:`Message shown after the user account is successfully deleted`},"message.deleteAccountFailed":{message:`Tilisi poistaminen epäonnistui. Yritä myöhemmin uudelleen.`,description:`Message shown when account deletion fails`},"message.deleteAccountWarning":{message:`Tätä toimintoa ei voi peruuttaa! Tilisi ja kaikki sen tiedot poistetaan pysyvästi eikä niitä voi palauttaa.`,description:`Red warning banner at the top of the delete confirmation dialog`},"message.deleteAccountConsequences":{message:`Poistetaan pysyvästi: profiili, saldo ja krediitit, sovellukset ja tilaukset, API-avaimet sekä kolmannen osapuolen kirjautumissidokset.`,description:`Explains what data will be removed in the delete confirmation dialog`},"message.deleteAccountTypePrompt":{message:`Kirjoita käyttäjänimesi vahvistaaksesi poiston:`,description:`Instructs the user to type their username to confirm; the username is shown separately below`},"message.deleteAccountPlaceholder":{message:`Kirjoita käyttäjänimesi tähän`,description:`Placeholder for the username confirmation input`},"message.info":{message:`Tietoa`,description:`Viesti, joka näyttää tietoa`},"message.free":{message:`Ilmainen`,description:`Viesti, joka ilmoittaa, että palvelu on ilmainen, mikä tarkoittaa, että käyttäjän ei tarvitse maksaa`},"message.startPrice":{message:`Alkaen`,description:`Viesti palvelun alimmasta hinnasta`},"message.joinDiscord":{message:`Liity Discordiin`,description:`Viesti, joka kehottaa käyttäjää liittymään Discord-kanavalle`},"message.addWeChat":{message:`Lisää WeChat`,description:`Viesti, joka kehottaa käyttäjää lisäämään WeChat-tilin`},"message.serviceTech":{message:`Tekninen tuki`,description:`Viesti teknisestä tuesta`},"message.businessCooperation":{message:`Data & Liiketoimintayhteistyö`,description:`Viesti liiketoimintayhteistyöstä`},"message.noData":{message:`Ei tietoja`,description:`Viesti, joka ilmoittaa, että taulukossa tai luettelossa ei ole tietoja`},"nav.home":{message:`Etusivu`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää etusivun`},"nav.content":{message:`Sisältö`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää sisältösivun`},"nav.category":{message:`Kategoria`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää kategoriasivun`},"nav.service":{message:`Kaikki palvelut`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää palvelusivun`},"nav.profile":{message:`Profiilini`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää profiilisivun`},"nav.products":{message:`Tuotteet`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää tuotesivun`},"nav.referral":{message:`Kumppanuusohjelma`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää suosittelusivun`},"nav.apiPlatform":{message:`API-alusta`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää API-alustasivun`},"nav.document":{message:`Kehittäjädokumentaatio`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää dokumentaatiosivun`},"nav.console":{message:`Konsoli`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää konsolisivun`},"nav.chatgpt":{message:`ChatGPT`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää ChatGPT-sivun, älä käännä tätä kenttää, se on säilytettävä 'ChatGPT'`},"nav.deepseek":{message:`DeepSeek`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää DeepSeek-sivun, älä käännä tätä kenttää, se on säilytettävä 'DeepSeek'`},"nav.grok":{message:`Grok`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää Grok-sivun, älä käännä tätä kenttää, se on säilytettävä 'Grok'`},"nav.chat":{message:`Chat`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää chattasivun, älä käännä tätä kenttää, se on säilytettävä 'Chat'`},"nav.veo":{message:`Veo`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää chattasivun, älä käännä tätä kenttää, se on säilytettävä 'Veo'`},"nav.sora":{message:`Sora`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää chattasivun, älä käännä tätä kenttää, se on säilytettävä 'Sora'`},"nav.midjourney":{message:`Midjourney`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää Midjourney-sivun, älä käännä tätä kenttää, se on säilytettävä 'Midjourney'`},"nav.qrart":{message:`QRArt`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää QRArt-sivun, älä käännä tätä kenttää, se on säilytettävä 'QRArt'`},"nav.suno":{message:`Suno`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää Suno-sivun, älä käännä tätä kenttää, se on säilytettävä 'Suno'`},"nav.pixverse":{message:`Pixverse`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää Pixverse-sivun, älä käännä tätä kenttää, se on säilytettävä 'Pixverse'`},"nav.flux":{message:`Flux`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää Flux-sivun, älä käännä tätä kenttää, se on säilytettävä 'Flux'`},"nav.nanobanana":{message:`Nano Banana`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää Nano Banana -sivun, älä käännä tätä kenttää, se on säilytettävä 'Nano Banana'`},"nav.openaiimage":{message:`OpenAI Image`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää OpenAI Image -sivun, älä käännä tätä kenttää, se on säilytettävä 'OpenAI Image'`},"nav.seedream":{message:`SeeDream`,description:`Verkkosivuston navigointipalkissa oleva teksti, joka näyttää SeeDream-sivun, älä käännä tätä kenttää, se on säilytettävä 'SeeDream'`},"nav.seedance":{message:`SeeDance`,description:`网站导航栏中的文本,用于显示SeeDance页面,请不要翻译此字段,必须保持为'SeeDance'`},"nav.grokvideo":{message:`Grok Video`,description:`Text in the website navigation bar to display the Grok Imagine video page`},"nav.luma":{message:`Luma`,description:`网站导航栏中的文本,用于显示Luma页面,请不要翻译此字段,必须保持为'Luma'`},"nav.pika":{message:`Pika`,description:`网站导航栏中的文本,用于显示Pika页面,请不要翻译此字段,必须保持为'Pika'`},"nav.kling":{message:`Kling`,description:`网站导航栏中的文本,用于显示Kling页面,请不要翻译此字段,必须保持为'Kling'`},"nav.hailuo":{message:`Hailuo`,description:`网站导航栏中的文本,用于显示Hailuo页面,请不要翻译此字段,必须保持为'Hailuo'`},"nav.wan":{message:`Wan`,description:`网站导航栏中的文本,用于显示Wan页面,请不要翻译此字段,必须保持为'Wan'`},"nav.producer":{message:`Producer`,description:`网站导航栏中的文本,用于显示Producer页面,请不要翻译此字段,必须保持为'Producer'`},"nav.fish":{message:`Fish Audio`,description:`Sivuston navigointipalkissa oleva teksti, joka näyttää Fish Audio -sivun, älä käännä tätä kenttää, sen on oltava 'Fish Audio'`},"nav.kimi":{message:`Kimi`,description:`网站导航栏中的文本,用于显示Kimi页面,请不要翻译此字段,必须保持为'Kimi'`},"nav.serp":{message:`SERP`,description:`网站导航栏中的文本,用于显示SERP页面,请不要翻译此字段,必须保持为'SERP'`},"nav.codingBridge":{message:`Coding Bridge`,description:`Text in the website navigation bar to display the Coding Bridge page, must remain as 'Coding Bridge'`},"nav.webextrator":{message:`WebExtrator`,description:`Text in the website navigation bar to display the WebExtrator page, must remain as 'WebExtrator'`},"nav.image":{message:`Kuva`,description:`网站导航栏中的文本,用于显示图片页面`},"nav.music":{message:`Musiikki`,description:`网站导航栏中的文本,用于显示音乐页面`},"nav.video":{message:`Video`,description:`网站导航栏中的文本,用于显示视频页面`},"nav.distribution":{message:`Suositustulot`,description:`网站导航栏中的文本,用于显示推荐收益页面`},"nav.connections":{message:`Yhteydet`,description:`跳转到 auth.acedata.cloud 连接管理页的菜单项`},"nav.logOut":{message:`Kirjaudu ulos`,description:`网站导航栏中的文本,用于退出登录`},"nav.deleteAccount":{message:`Poista tili`,description:`Menu item to permanently delete the current user account`},"nav.site":{message:`Sivuston asetukset`,description:`网站导航栏中的文本,用于显示站点配置页面`},"nav.subsite":{message:`Oma alisivusto`,description:`侧边栏“我的分站”入口,仅在站点开启 features.subsite 时显示`},"nav.setting":{message:`Asetukset`,description:`网站导航栏中的文本,用于显示设置页面`},"nav.headshots":{message:`AI-profiilikuva`,description:`网站导航栏中的文本,用于显示站点配置页面`},"nav.more":{message:`Lisää`,description:`网站导航栏中的文本,用于展开更多服务`},"nav.locale":{message:`Kieliasetukset`,description:`网站导航栏中的文本,用于更改语言`},"nav.support":{message:`Asiakastuki`,description:`网站导航栏中的文本,用于显示联系页面`},"nav.darkMode":{message:`Tumma tila`,description:`网站导航栏中的文本,用于切换到深色主题`},"title.alert":{message:`Varoitus`,description:`警告消息的标题`},"title.placeholderOfSelect":{message:`Valitse`,description:`选择输入的占位符`},"title.placeholderOfInput":{message:`Täytä`,description:`输入的占位符`},"title.allApplications":{message:`Kaikki hakemukset`,description:`显示所有申请的页面标题`},"title.allOrders":{message:`Kaikki tilaukset`,description:`显示所有订单的页面标题`},"title.orderInfo":{message:`Tilaustiedot`,description:`显示订单信息的页面标题`},"title.buyMore":{message:`Lataus`,description:`页面标题,用于充值。英文必须翻译为“Top Up”,中文为“充值”。`},"title.distribution":{message:`Suositustulot`,description:`显示推荐收入的页面标题,意味着用户可以通过邀请他人使用该服务来赚钱`},"title.site":{message:`Sivuston asetukset`,description:`显示站点配置的页面标题`},"title.distributionHistory":{message:`Suositushistoria`,description:`显示推荐历史的页面标题`},"title.invitee":{message:`Kutsuja`,description:`显示邀请人的页面标题`},"title.allUsages":{message:`Käyttöhistoria`,description:`显示API服务所有使用的页面标题`},"title.allCredentials":{message:`Avaimet`,description:`显示所有凭证的页面标题,凭证用于访问API`},"about.title1":{message:`Ota yhteyttä`,description:`Näyttää yhteystiedot -osion pääotsikon`},"about.title2":{message:`Resurssit`,description:`Näyttää linkkien osan otsikon`},"about.title3":{message:`Linkit`,description:`Näyttää tukitietojen osan otsikon`},"about.address":{message:`131 Continental Dr, Suite 305, Newark, Delaware 19713, USA`,description:`Yrityksen osoite`},"about.email":{message:`office@acedata.cloud`,description:`Yrityksen sähköposti`},"about.link1":{message:`Palvelut`,description:`Linkki asiakirjasivulle`},"about.link2":{message:`Kehittäjädokumentaatio`,description:`Linkki palvelusivulle`},"about.link3":{message:`Konsoli`,description:`Linkki konsolisivulle`},"about.link4":{message:`Profiili`,description:`Linkki profiilisivulle`},"about.link5":{message:`UI-alusta`,description:`Linkki keskussivulle`},"about.link6":{message:`Suositustulot`,description:`Linkki suositustulojen sivulle`},"about.link7":{message:`Tuki`,description:`Linkki tukisivulle`},"about.link8":{message:`Käyttöehdot`,description:`Linkki käyttöehtosivulle`},"about.link9":{message:`Tietosuojakäytäntö`,description:`Linkki tietosuojakäytännön sivulle`},"theme.light":{message:`Vaalea`,description:`Vaalean teeman nimi`},"theme.dark":{message:`Tumma`,description:`Tumman teeman nimi`},"theme.system":{message:`Järjestelmä`,description:`Järjestelmäteeman nimi, joka tarkoittaa automaattista teeman vaihtamista järjestelmäasetusten mukaan`},"settings.general":{message:`Yleiset asetukset`,description:`Asetussivun yleisten asetusten osan otsikko`},"settings.language":{message:`Kieli`,description:`Asetussivun kieliasetusten osan otsikko`},"settings.theme":{message:`Teema`,description:`Asetussivun teemavalintojen osan otsikko`},"settings.seo":{message:`SEO-asetukset`,description:`Asetussivun SEO-asetusten osan otsikko`},"settings.site":{message:`Sivuston asetukset`,description:`Asetussivun sivuston asetusten osan otsikko`},"settings.distribution":{message:`Jakeluasetukset`,description:`Asetussivun jakeluasetusten osan otsikko`},"settings.function":{message:`Toiminta-asetukset`,description:`Asetussivun toiminta-asetusten osan otsikko`},"settings.auth":{message:`Kirjautumistapa`,description:`Asetussivun sivupalkin 'Kirjautumistapa' välilehden otsikko - määritä, mitä kirjautumistapoja sivustolla sallitaan ja mikä on oletuskirjautumistapa, näkyy vain sivuston ylläpitäjille.`},"settings.apiKey":{message:`API-avain`,description:`Asetussivun sivupalkin API-avain -käytön hallinta`},"field.operations":{message:`Toiminnot`,description:`Yleinen sarakeotsikko: taulukon rivien toimintopainikkeet (muokkaa, poista jne.)`},"nav.gemini":{message:`Gemini`,description:`Teksti verkkosivuston navigointipalkissa, joka näyttää Gemini-sivun, on säilytettävä 'Gemini'`},"nav.claude":{message:`Claude`,description:`Teksti verkkosivuston navigointipalkissa, joka näyttää Claude-sivun, on säilytettävä 'Claude'`},"button.detail":{message:`Näytä tiedot`,description:``},"button.testEnv":{message:`Testiympäristö`,description:`Painikkeen teksti, joka vaihtaa testiympäristöön`},"button.upload":{message:`Lataa`,description:`Painikkeen teksti, joka lataa tiedostoja tai sisältöä`},"message.cnbeian":{message:`Kiinan alueen rekisteröinti`,description:`Kiinan alueen rekisteröinnin selitys`},"message.copyFailed":{message:`Kopiointi epäonnistui`,description:`Näyttää viestin, että sisällön kopiointi epäonnistui`},"nav.tryNow":{message:`Kokeile nyt`,description:`Verkkosivuston navigointipalkissa oleva teksti, joka kannustaa käyttäjää kokeilemaan palvelua`},"title.coin":{message:`Kryptovaluutta`,description:`Näyttää kryptovaluuttojen sivun otsikon`},"title.distributionRank":{message:`Suositusranking`,description:`Näyttää suositusranking-sivun otsikon`},"title.distributionPlatformRank":{message:`Alustaranking`,description:`Näyttää alustaranking-sivun otsikon`},"customers.name1":{message:`Mark Du`,description:`Asiakkaan nimi`},"customers.job1":{message:`Ohjelmistosuunnittelija`,description:`Asiakkaan ammatti`},"customers.comment1":{message:`Ace Data Cloud on tarjonnut erinomaisia palveluja tiimillemme ja auttanut meitä parantamaan tuottavuutta. Erittäin tyytyväinen!`,description:`Asiakkaan arvio`},"customers.name2":{message:`Jacob Williams`,description:`Asiakkaan nimi`},"customers.job2":{message:`Tuotepäällikkö`,description:`Asiakkaan ammatti`},"customers.comment2":{message:`Ace Data Cloud on loistava integrointialusta, palvelun laatu on erinomaista.`,description:`Asiakkaan arvio`},"customers.name3":{message:`Larry Henry`,description:`Asiakkaan nimi`},"customers.job3":{message:`Suunnittelija`,description:`Asiakkaan ammatti`},"customers.comment3":{message:`Pidän Ace Data Cloudin palveluista, ne ovat helppokäyttöisiä ja kohtuuhintaisia, toivon niiden paranevan entisestään!`,description:`Asiakkaan arvio`},"nav.github":{message:`GitHub`,description:`GitHub-repositorion linkki`},"settings.github":{message:`Lähdekoodi`,description:`Linkki lähdekoodin tarkasteluun GitHubissa`},"settings.about":{message:`Tietoja`,description:`Asetussivun tietoja-osan otsikko`},"settings.localTools":{message:`Paikalliset työkalut`,description:`Desktop-only settings tab for managing local tool folders, permissions and grants.`},"settings.localToolsDesktopOnly":{message:`Käytettävissä vain työpöytäsovelluksessa.`,description:`Shown when the Local Tools tab is opened on web/mobile.`},"settings.localToolsFoldersTitle":{message:`Valtuutetut kansiot`,description:`Heading for the list of folders the AI may read/write locally.`},"settings.localToolsFoldersHint":{message:`Kansiot, joita tekoäly saa lukea ja kirjoittaa tällä laitteella. Työkalut suoritetaan paikallisesti; mikään ei poistu laitteeltasi ilman suostumustasi.`,description:`Help text under the authorized-folders heading.`},"settings.localToolsComputerUseTitle":{message:`Computer Use (experimental)`,description:`Heading for the opt-in Computer Use (screen + mouse/keyboard control) toggle.`},"settings.localToolsComputerUseHint":{message:`Let the AI see your screen and control the mouse and keyboard on this computer. Off by default — turn it on only when you need it. On macOS, grant Screen Recording and Accessibility permissions below. Each action still asks for your confirmation.`,description:`Help text under the Computer Use toggle.`},"settings.localToolsPreauthorizeAll":`Esihyväksy kaikki tietokoneen toiminnot`,"settings.localToolsPreauthorizeHint":`Salli kerralla kuvakaappaus, napsautus, kirjoitus, näppäimet ja kaikki toiminnot ja pyydä tarvittavat järjestelmäoikeudet.`,"settings.localToolsAddFolder":{message:`Lisää kansio`,description:`Button to pick a folder to authorize.`},"settings.localToolsRemove":{message:`Poista`,description:`Button to remove an authorized folder.`},"settings.localToolsNoFolders":{message:`Ei vielä valtuutettuja kansioita.`,description:`Empty state for the authorized-folders list.`},"settings.localToolsSave":{message:`Tallenna`,description:`Save the authorized folders.`},"settings.localToolsSaved":{message:`Tallennettu`,description:`Transient confirmation after saving local-tool folders.`},"settings.localToolsActiveTools":{message:`Aktiiviset työkalut`,description:`Label before the list of currently available local tools.`},"settings.localToolsGrantsTitle":{message:`Aina sallitut toiminnot`,description:`Heading for the persistent consent grants list.`},"settings.localToolsGrantsHint":{message:`Työkalukutsut, jotka valitsit sallittavaksi aina. Ne suoritetaan kysymättä uudelleen. Peru mikä tahansa ottaaksesi vahvistuksen taas käyttöön.`,description:`Help text under the always-allowed actions heading.`},"settings.localToolsRevoke":{message:`Peru`,description:`Button to revoke a single always-allow grant.`},"settings.localToolsRevokeAll":{message:`Peru kaikki`,description:`Button to revoke every always-allow grant.`},"settings.localToolsNoGrants":{message:`Ei aina sallittuja toimintoja. Sinulta kysytään ennen jokaista paikallista työkalua.`,description:`Empty state for the always-allowed actions list.`},"settings.localToolsPermsTitle":{message:`Järjestelmän käyttöoikeudet`,description:`Heading for the macOS system-permission section.`},"settings.localToolsPermsHint":{message:`Valinnainen. Yllä oleva kansiokäyttö ei tarvitse näitä – myönnä vain se, mitä tietty tehtävä vaatii.`,description:`Help text under the system-permissions heading.`},"settings.localToolsPermFullDisk":{message:`Täysi levyn käyttöoikeus`,description:`macOS Full Disk Access permission row.`},"settings.localToolsPermScreen":{message:`Näytön tallennus`,description:`macOS Screen Recording permission row.`},"settings.localToolsPermAccessibility":{message:`Käyttöapu`,description:`macOS Accessibility permission row.`},"settings.localToolsGranted":{message:`Myönnetty`,description:`Status tag when a system permission is granted.`},"settings.localToolsNotGranted":{message:`Ei myönnetty`,description:`Status tag when a system permission is not granted.`},"settings.localToolsOpen":{message:`Avaa…`,description:`Button to open the relevant macOS System Settings pane.`},"settings.subsites":{message:`Omat alisivustot`,description:`Asetusikkunassa alisivustojen hallinta-välilehden otsikko. Näkyy vain virallisella pääsivustolla, alisivustot eivät näy.`},"settings.adminOnlyHint":{message:`Tämä osio on vain sivuston ylläpitäjille, tavalliset käyttäjät eivät pääse siihen käsiksi.`,description:`Vihje, joka näytetään ylläpitäjille näkyvissä olevien asetusten välilehden yläosassa, kuten sivuston asetukset / SEO-asetukset / jakeluasetukset / toiminta-asetukset.`},"settings.officialOnlyHint":{message:`Tämä osio on vain pääsivustolla näkyvissä, alisivustot eivät näytä sitä.`,description:`Vihje, joka näytetään 'Omat alisivustot' -välilehden yläosassa, ilmoittaen, että tämä pääsy on vain virallisella pääsivustolla.`},"settings.customDomain":{message:`Mukautettu verkkotunnus`,description:`Title for the custom-domain management tab in the settings popup. Visible only on subsites (non-main-official hosts) for site admins.`},"settings.buildNow":{message:`Yksi napsautus rakentamiseen`,description:`Tietoja-sivun 'Yksi napsautus alisivuston rakentamiseen' -painikkeen teksti, näkyy vain virallisella pääsivustolla`},"settings.poweredBy":{message:`Avoimen lähdekoodin projekti`,description:`Tietoja-sivulla esitettävä otsikko, joka kertoo, mihin avoimen lähdekoodin projektiin tämä sivusto perustuu`},"settings.poweredByTip":{message:`Tämä sivusto perustuu Nexior-avoimen lähdekoodin projektiin, koodi on täysin avointa.`,description:`Tietoja-sivulla esitettävä selitys, joka kertoo, mihin avoimen lähdekoodin projektiin tämä sivusto perustuu`},"settings.apiService":{message:`API-palvelu`,description:`Tietoja-sivulla esitettävä otsikko, joka kertoo API-palvelun tarjoajasta`},"settings.apiServiceTip":{message:`Tämän sivuston API-palvelun tarjoaa Ace Data Cloud.`,description:`Tietoja-sivulla esitettävä selitys, joka kertoo API-palvelun tarjoajasta`},"settings.buildYourOwn":{message:`Rakenna oma`,description:`Tietoja-sivulla käyttäjälle, joka voi rakentaa samanlaisen sivuston, esitettävä otsikko`},"settings.buildYourOwnTip":{message:`Haluatko rakentaa samanlaisen AI-sivuston? Ota meihin yhteyttä saadaksesi käyttöönottoapua.`,description:`Tietoja-sivulla samanlaisen rakentamisen selitys`},"settings.contactUs":{message:`Ota yhteyttä asiakaspalveluun`,description:`Asiakaspalveluun ottamisen painikkeen teksti`},"message.viewOnGithub":{message:`Katso GitHubissa`,description:`Linkkiteksti projektin katsomiseen GitHubissa`},"title.notFound":{message:`Sivu on kadonnut`,description:`404-sivun otsikko`},"message.notFound":{message:`Käyttämäsi sivu ei ole olemassa, linkki on saattanut muuttua tai poistettu. Palaa etusivulle jatkaaksesi AceData AI -palveluiden tutkimista.`,description:`404-sivun alaotsikon kuvaus`},"message.notFoundEyebrow":{message:`Virhe`,description:`404-sivun yläosan pieni etiketti`},"message.notFoundPath":{message:`Pyyntöpolku`,description:`404-sivulla nykyisen pyyntöpolun esittämiseen käytettävä etiketti`},"button.backToHome":{message:`Palaa etusivulle`,description:`Painikkeen teksti, jota käytetään palaamaan etusivulle`},"button.goBack":{message:`Palaa edelliselle sivulle`,description:`Painikkeen teksti, jota käytetään palaamaan selaushistoriassa edelliselle sivulle`},"title.apiCode":{message:`API code for this request`,description:`Title of the dialog that shows the equivalent API code (curl / Python / Node) that would reproduce a result generated inside the product`},"message.viewCodeHint":{message:`Show API code for this request`,description:`Tooltip text on the View Code button shown alongside result-card action buttons (U1/U2/Download/Extend/...). Clicking the button opens a dialog with curl / Python / Node snippets that reproduce the same generation via the public API.`},"button.viewCode":{message:`View code`,description:`Button text that opens a dialog with the equivalent API code (curl / Python / Node) for the current result, similar to the OpenAI Playground 'View code' affordance`},"button.getApiKey":{message:`Get an API key`,description:`Link text in the API code dialog footer that opens the platform console page where users can create an API key`},"button.apiPlatform":{message:`API Platform`,description:`API code dialog footer button label. Clicking opens https://platform.acedata.cloud/ in a new tab so users can manage their API keys, balance and usage.`},"message.apiCodeIntro":{message:`Run this from your own code to produce the same result. Replace <YOUR_API_KEY> with a key from your platform console.`,description:`Helper text shown above the code tabs in the API code dialog, explaining how to use the snippet`},"tab.apiRequest":{message:`Pyyntö`,description:`API-koodin dialogin välilehden etiketti pyyntökoodille (koodi, joka toistaa nykyisen tuloksen).`},"tab.apiResponse":{message:`Vastaus`,description:`API-koodin dialogin välilehden etiketti reaaliaikaiselle vastaukselle, joka palautuu Suorita-painiketta napsautettaessa.`},"button.apiRun":{message:`Suorita uudelleen`,description:`API-koodin dialogin painike, joka suorittaa pyynnön uudelleen reaaliaikaisesti API:ta käyttäen käyttäjän avainta. Tulos on jo olemassa, joten napsauttaminen suorittaa sen uudelleen, ja se on laskutettavaa.`},"button.apiRunning":{message:`Suoritetaan…`,description:`API-koodin dialogin Suorita-painikkeen etiketti, kun reaaliaikainen pyyntö on käynnissä.`},"button.apiRunConfirm":{message:`Vahvista suoritus`,description:`Vahvistuspainikkeen etiketti dialogissa, joka varoittaa, että suorittaminen kuluttaa ylimääräisiä krediittejä.`},"button.viewDocs":{message:`Näytä asiakirjat`,description:`API-koodin dialogin alatunnisteen painike, joka avaa vastaavan API-dokumentaatiosivun alustalla.`},"message.apiClickRun":{message:`Napsauta 'Suorita uudelleen' käyttääksesi API-avaintasi tämän pyynnön suorittamiseen reaaliaikaisesti.`,description:`API-koodin dialogin vastaustabin tyhjät tilat, jotka näytetään ennen kuin käyttäjä on suorittanut pyynnön.`},"message.apiRunConfirmTitle":{message:`Vahvista suoritus`,description:`Vahvistusdialogin otsikko, joka näytetään ennen pyynnön uudelleen suorittamista API-koodin dialogista.`},"message.apiRunConfirmDesc":{message:`Tämä suoritus käyttää API-avaintasi ja tekee todellisen kutsun rajapintaan, mikä kuluttaa ylimääräisiä pisteitä. Vahvistatko jatkamisen?`,description:`Vahvistusdialogin runko, joka varoittaa, että pyynnön uudelleen suorittaminen on todellinen, laskutettava API-kutsu.`},"message.apiRunConfirmSkip":{message:`Älä enää muistuta`,description:`Valintaruutu suoritusvahvistusdialogissa, joka, kun se on valittuna, estää varoituksen seuraavilla suorituksilla.`},"message.apiRunTaskCreated":{message:`Tehtävä on luotu, sulje tämä ikkuna nähdäksesi uusimmat tulokset alla.`,description:`Onnistumisbanneri, joka näytetään API-koodin dialogissa sen jälkeen, kun suoritus palauttaa tehtävän ID:n, vihjaten että uusi tehtävä näkyy jo dialogin takana olevassa luettelossa.`},"button.apiViewLatest":{message:`Sulje ja katso`,description:`Painike API-koodin dialogin onnistumisbannerissa, joka sulkee dialogin, jotta käyttäjä voi nähdä juuri luodun tehtävän alla olevassa luettelossa.`},"message.uploadInProgress":{message:`Viiteaineistojen lataus on yhä käynnissä – odota hetki.`,description:`Toast shown when the user clicks the Generate button while one or more reference uploads are still in flight. Asks them to wait for uploads to complete before retrying.`},"appUpgrade.title":{message:`Update required`,description:`Title of the native-app version gate modal shown at startup when the installed build is older than what the backend supports.`},"appUpgrade.blockMessage":{message:`This version is no longer supported. Please update from the app store to continue.`,description:`Body text of the hard-block upgrade modal shown when the installed version is below min_supported. The modal has no dismiss affordance — the only button opens the app store.`},"appUpgrade.softMessage":{message:`A newer version is available. Update from the app store for the best experience.`,description:`Body text of the soft upgrade prompt shown when the installed version is below latest but above min_supported. The user can dismiss and keep using the app.`},"appUpgrade.openStore":{message:`Update now`,description:`Primary button on the upgrade modal — opens the App Store / Play Store URL in the system browser.`},"appUpgrade.later":{message:`Later`,description:`Secondary button on the soft upgrade prompt — dismisses the modal and lets the user keep using the current version. Only shown for non-forced upgrades.`},"nav.maestro":{message:`Maestro`,description:`Navigointipalkissa Maestro-artikkeleiden muuntaminen videoiksi -sivun teksti, säilytä 'Maestro'`},"nav.digitalhuman":{message:`Digital Human`,description:`Text in the website navigation bar for the Digital Human talking-head page`}};export{e as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={"button.setup":{message:`Ustawienia`,description:`Tekst w przycisku, używany do przeprowadzania ustawień`},"button.start":{message:`Rozpocznij`,description:`Tekst w przycisku, używany do rozpoczęcia pewnych działań`},"button.copy":{message:`Kopiuj`,description:`Tekst w przycisku, używany do kopiowania treści`},"button.copied":{message:`Skopiowano`,description:`Tekst w przycisku, używany do oznaczenia, że treść została skopiowana`},"button.restart":{message:`Generuj ponownie`,description:`Tekst w przycisku, używany do ustawienia pewnych treści`},"button.preview":{message:`Podgląd`,description:`Tekst w przycisku, używany do otwierania podglądu pliku przez URL`},"button.seeRawImage":{message:`Zobacz oryginał`,description:`Tekst w przycisku, używany do przeglądania oryginalnego obrazu`},"button.seeRawVideo":{message:`Zobacz wideo`,description:`Tekst w przycisku, używany do przeglądania oryginalnego wideo`},"button.edit":{message:`Edytuj`,description:`Tekst w przycisku, używany do edytowania treści`},"button.login":{message:`Zaloguj się`,description:`Tekst w przycisku, używany do logowania`},"button.logout":{message:`Wyloguj się`,description:`Tekst w przycisku, używany do wylogowania`},"button.new":{message:`Nowy`,description:`Tekst w przycisku, używany do tworzenia nowego elementu`},"button.delete":{message:`Usuń`,description:`Tekst w przycisku, używany do usuwania treści`},"button.deletePermanently":{message:`Trwale usuń konto`,description:`Final red delete button at the bottom of the delete confirmation dialog`},"button.confirm":{message:`Potwierdź`,description:`Tekst w przycisku, używany do potwierdzania pewnych działań`},"button.cancel":{message:`Anuluj`,description:`Tekst w przycisku, używany do anulowania pewnych działań`},"button.close":{message:`Zamknij`,description:`Tekst w przycisku, używany do zamykania okna dialogowego lub panelu`},"button.expand":{message:`Rozwiń`,description:`Tekst przycisku, używany do otwierania edytora pełnoekranowego dla pola wprowadzania podpowiedzi.`},"button.alert":{message:`Ostrzeżenie`,description:`Tekst w przycisku, używany do wydawania ostrzeżenia`},"button.info":{message:`Informacje`,description:`Tekst w przycisku, używany do wyświetlania informacji`},"button.publish":{message:`Opublikuj`,description:`Tekst w przycisku, używany do publikowania treści`},"button.watch":{message:`Obejrzyj`,description:`Tekst w przycisku, używany do oglądania pewnej treści`},"button.verify":{message:`Weryfikacja`,description:`Tekst w przycisku, umożliwiający użytkownikowi przeprowadzenie weryfikacji`},"button.profile":{message:`Profil`,description:`Tekst w przycisku, używany do wyświetlania profilu użytkownika`},"button.console":{message:`Konsola`,description:`Tekst w przycisku, używany do wyświetlania strony konsoli, aby kontrolować pewne treści na stronie`},"button.learn":{message:`Ucz się`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi nauki pewnej treści`},"button.buy":{message:`Kup`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi zakupu pewnej treści`},"button.try":{message:`Wypróbuj`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi wypróbowania pewnej treści`},"button.startForFree":{message:`Rozpocznij za darmo`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi darmowego rozpoczęcia`},"button.download":{message:`Pobierz`,description:`Tekst w przycisku, używany do pobierania plików (np. audio, wideo, obrazy)`},"button.downloadAndroid":{message:`Pobierz Android`,description:`Tekst w przycisku, używany do pobierania pakietu instalacyjnego Android`},"button.downloadIos":{message:`Pobierz pakiet instalacyjny iOS`,description:`Tekst w przycisku, używany do pobierania pliku instalacyjnego iOS`},"button.downloadWindows":{message:`Pobierz dla Windows`,description:`Text in button for downloading the Windows desktop installer`},"button.downloadMac":{message:`Pobierz dla macOS`,description:`Text in button for downloading the macOS desktop installer`},"button.installIos":{message:`Zainstaluj iOS`,description:`Tekst w przycisku, używany do instalacji aplikacji iOS`},"button.apply":{message:`Aplikuj`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi aplikacji o usługę API`},"button.refresh":{message:`Odśwież`,description:`Tekst w przycisku, używany do odświeżania strony`},"button.pay":{message:`Zapłać`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi zapłaty za usługi`},"button.repay":{message:`Kontynuuj płatność`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi kontynuowania płatności za usługi`},"button.applied":{message:`Złożono`,description:`Tekst w przycisku, używany do wyświetlania, że użytkownik złożył wniosek o tę usługę`},"button.acquire":{message:`Uzyskaj`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi uzyskania tokena lub klucza usługi API`},"button.fillExample":{message:`Wypełnij przykład`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi wypełnienia przykładowych danych`},"button.buyMore":{message:`Doładuj`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi doładowania. Angielski musi być przetłumaczony na 'Top Up', a chiński na '充值'.`},"button.update":{message:`Aktualizuj`,description:`Tekst w przycisku, używany do aktualizacji treści`},"button.view":{message:`Zobacz`,description:`Tekst w przycisku, używany do przeglądania pewnej treści`},"button.create":{message:`Utwórz`,description:`Tekst w przycisku, używany do tworzenia pewnej treści`},"button.referralEarnings":{message:`Zarobki z polecenia`,description:`Tekst w przycisku, który wyświetla zarobki z polecenia, oznacza, że użytkownik może zarabiać, zapraszając innych do korzystania z tej usługi`},"button.finish":{message:`Zakończ`,description:`Tekst w przycisku, który służy do zakończenia operacji`},"entity.id":{message:`ID`,description:`Unikalny identyfikator wyświetlający encję`},"entity.type":{message:`Typ`,description:`Typ wyświetlający encję`},"entity.website":{message:`Ace Data Cloud`,description:`Nazwa strony, nie wymaga tłumaczenia, pozostaje 'Ace Data Cloud'`},"entity.copyright":{message:`Prawa autorskie`,description:`Tekst wyświetlający prawa autorskie`},"entity.platform":{message:`Platforma`,description:`Tekst wskazujący, że to platforma usług API`},"entity.title":{message:`Tytuł`,description:`Tytuł encji`},"entity.icon":{message:`Ikona`,description:`Ikona encji`},"entity.status":{message:`Status`,description:`Status encji`},"status.loading":{message:`Ładowanie...`,description:`Tekst stanu wyświetlany podczas ładowania treści`},"error.appleSignInFailed":{message:`Logowanie przez Apple nie powiodło się. Spróbuj ponownie lub użyj innej metody logowania.`,description:`Error toast shown when native Apple sign-in fails for a reason other than user cancellation`},"error.loginLinkExpired":{message:`Login link expired. Please sign in again.`,description:`Shown on the desktop client when an OAuth callback is dropped (state mismatch or expired).`},"entity.operation":{message:`Operacja`,description:`Operacja encji`},"entity.description":{message:`Opis`,description:`Opis encji`},"entity.createdAt":{message:`Utworzono`,description:`Czas utworzenia encji`},"entity.updatedAt":{message:`Zaktualizowano`,description:`Czas aktualizacji encji`},"entity.order":{message:`Zamówienie`,description:`Zamówienie encji, które zawiera informacje o pieniądzach i usługach, za które użytkownik musi zapłacić`},"message.noTasks":{message:`Brak historii zadań, rozpocznij nowe zadanie~`,description:`Wiadomość wyświetlana, gdy nie ma zadań`},"message.usedAmount":{message:`Wykorzystana kwota`,description:`Tekst wyświetlający kwotę wykorzystaną w usłudze`},"message.mobileAppDescription":{message:`Bezpośrednio korzystaj z AceData na telefonie, obecnie dostępne do pobrania Android APK, pakiet instalacyjny iOS będzie dostępny po podpisaniu.`,description:`Opis na stronie pobierania aplikacji mobilnej`},"message.mobileAndroidHint":{message:`Dla telefonów i tabletów z Androidem, zeskanuj kod QR, aby pobrać najnowsze APK.`,description:`Opis karty pobierania Android`},"message.mobileAndroidPending":{message:`Pakiet instalacyjny Android nie jest jeszcze gotowy, spróbuj ponownie później.`,description:`Wskazówka, gdy pakiet instalacyjny Android nie jest dostępny`},"message.mobileAvailableNow":{message:`Android dostępny do pobrania`,description:`Tekst wyświetlający status dostępności Android`},"message.mobileSecureDelivery":{message:`Bezpieczna dystrybucja CDN`,description:`Podkreślenie, że link do pobrania jest dostarczany przez CDN`},"message.mobileDirectInstall":{message:`Bezpośrednia instalacja APK`,description:`Opis metody bezpośredniej instalacji APK na Androidzie`},"message.mobileLatestRelease":{message:`Obecna wersja publiczna`,description:`Wyjaśnienie, że aktualnie wyświetlana jest najnowsza wersja publiczna`},"message.mobileSharedAccount":{message:`Wspólne konto i limity z wersją webową`,description:`Wyjaśnienie, że mobilna wersja korzysta z tego samego konta co wersja webowa`},"message.mobileIosHint":{message:`Dla iPhone'a i iPada, można zainstalować bezpośrednio online; jeśli system zablokuje, można najpierw pobrać IPA, a następnie rozprowadzić.`,description:`Opis karty pobierania iOS`},"message.mobileIosPending":{message:`Pakiet instalacyjny iOS nie jest jeszcze dostępny do pobrania, będzie dostępny po uzupełnieniu certyfikatów Apple i plików konfiguracyjnych.`,description:`Wskazówka, gdy pakiet instalacyjny iOS nie jest dostępny`},"message.mobileComingSoon":{message:`Wkrótce`,description:`Short status label shown on a platform card (e.g. iOS) while its build is being prepared`},"message.mobileNowOnAppStore":{message:`Now on the App Store`,description:`Status label shown on the iOS card when the app is live on the App Store`},"message.desktopWindowsHint":{message:`Dla Windows 10 i nowszych (64-bit). Pobierz instalator i kliknij dwukrotnie, aby zainstalować.`,description:`Windows desktop download card description`},"message.desktopMacHint":{message:`Dla macOS 11 i nowszych. Wybierz wersję pasującą do Twojego Maca — Apple Silicon (seria M) lub Intel.`,description:`macOS desktop download card description`},"message.desktopUnsignedNote":{message:`Aplikacje na komputer to niepodpisane wersje beta. W systemie Windows wybierz „Więcej informacji → Uruchom mimo to” w oknie SmartScreen; w systemie macOS kliknij aplikację prawym przyciskiem myszy i wybierz „Otwórz”, aby pominąć Gatekeeper.`,description:`Note explaining the desktop builds are unsigned betas and how to open them`},"button.getOnGooglePlay":{message:`Pobierz z Google Play`,description:`Button label that opens the app's Google Play Store listing`},"button.getOnAppStore":{message:`Get it on the App Store`,description:`Button label that opens the app's Apple App Store listing`},"message.mobileApkFallback":{message:`Brak dostępu do Google Play? Pobierz plik APK bezpośrednio.`,description:`Shown next to a secondary button offering a direct APK download for users who cannot access Google Play`},"message.mobilePlayStoreHint":{message:`Zeskanuj, aby otworzyć Google Play`,description:`Hint under the QR code explaining that scanning it opens the Google Play listing`},"message.mobileAppStoreHint":{message:`Scan to open the App Store`,description:`Hint under the QR code explaining that scanning it opens the App Store listing`},"message.mobileInstallNote":{message:`Podczas pierwszej instalacji pakietu korporacyjnego lub Ad Hoc na iOS, system może poprosić o zaufanie certyfikatowi w 'Ustawienia > Ogólne > VPN i zarządzanie urządzeniem'.`,description:`Wskazówka dotycząca instalacji aplikacji mobilnej`},"title.mobileApp":{message:`Pobieranie mobilne`,description:`Tytuł strony pobierania aplikacji mobilnej`},"title.mobileFastAccess":{message:`Szybszy dostęp, bez przechodzenia przez sklep z aplikacjami`,description:`Tytuł karty z zaletami na stronie pobierania, podkreślający szybkie instalacje`},"title.mobileTrustedRelease":{message:`Zarządzanie wersjami w jednym miejscu, stabilniejsza dystrybucja`,description:`Tytuł karty z zaletami na stronie pobierania, podkreślający stabilność wersji i dystrybucji`},"title.mobileUnifiedExperience":{message:`Jednolita doświadczenie na mobilnych i webowych`,description:`Tytuł karty z zaletami na stronie pobierania, podkreślający jednolite doświadczenie`},"nav.mobileApp":{message:`Aplikacja mobilna`,description:`Wejście do pobierania aplikacji mobilnej w nawigacji`},"message.mobileFastAccess":{message:`Użytkownicy mogą zeskanować kod QR, aby zainstalować bezpośrednio na telefonie, lub najpierw pobrać APK na komputerze i rozprowadzić je wśród członków zespołu, co jest odpowiednie dla szybkiego testowania i beta testów.`,description:`Opis zalet na stronie pobierania, podkreślający szybki dostęp`},"message.mobileTrustedRelease":{message:`Wszystkie linki do pobrania w jednym miejscu, numery wersji, status platformy i metody instalacji są widoczne na pierwszy rzut oka, co zmniejsza koszty komunikacji spowodowane rozproszeniem linków.`,description:`Opis zalet na stronie pobierania, podkreślający jednolitą dystrybucję`},"message.mobileUnifiedExperience":{message:`System konta, limity i wejścia do usług po zalogowaniu są zgodne z wersją webową, co ułatwia użytkownikom płynne przełączanie się między wersją desktopową a mobilną.`,description:`Opis zalet na stronie pobierania, podkreślający jednolite doświadczenie konta`},"message.remainingAmount":{message:`Pozostała kwota`,description:`Tekst wyświetlający pozostałą kwotę w usłudze`},"message.copied":{message:`Skopiowano`,description:`Wyświetla wiadomość o pomyślnym skopiowaniu treści`},"message.restart":{message:`Generuj ponownie`,description:`Używane do wyświetlenia komunikatu, że zawartość została pomyślnie skopiowana`},"message.confirmDelete":{message:`Czy na pewno chcesz usunąć?`,description:`Potwierdzenie, że użytkownik chce usunąć jakąś zawartość`},"message.expiredAt":{message:`Czas wygaśnięcia`,description:`Używane do wyświetlenia czasu wygaśnięcia usługi`},"message.alert":{message:`Ostrzeżenie`,description:`Komunikat ostrzegający użytkownika`},"message.deleteAccountConfirm":{message:`Spowoduje to trwałe usunięcie Twojego konta i wszystkich powiązanych danych. Tej operacji nie można cofnąć. Czy na pewno chcesz kontynuować?`,description:`Confirmation message shown before permanently deleting the user account`},"message.deleteAccountSuccess":{message:`Twoje konto zostało usunięte.`,description:`Message shown after the user account is successfully deleted`},"message.deleteAccountFailed":{message:`Nie udało się usunąć konta. Spróbuj ponownie później.`,description:`Message shown when account deletion fails`},"message.deleteAccountWarning":{message:`Tej czynności nie można cofnąć! Twoje konto i wszystkie jego dane zostaną trwale usunięte i nie będzie można ich odzyskać.`,description:`Red warning banner at the top of the delete confirmation dialog`},"message.deleteAccountConsequences":{message:`Trwale usunięte: profil, saldo i kredyty, aplikacje i subskrypcje, klucze API oraz powiązania logowania zewnętrznego.`,description:`Explains what data will be removed in the delete confirmation dialog`},"message.deleteAccountTypePrompt":{message:`Wpisz swoją nazwę użytkownika, aby potwierdzić usunięcie:`,description:`Instructs the user to type their username to confirm; the username is shown separately below`},"message.deleteAccountPlaceholder":{message:`Wpisz tutaj swoją nazwę użytkownika`,description:`Placeholder for the username confirmation input`},"message.info":{message:`Informacja`,description:`Komunikat wyświetlający informacje`},"message.free":{message:`Darmowe`,description:`Komunikat informujący, że usługa jest darmowa, co oznacza, że użytkownik nie musi płacić`},"message.startPrice":{message:`Cena początkowa`,description:`Komunikat wyświetlający najniższą cenę usługi`},"message.joinDiscord":{message:`Dołącz do Discorda`,description:`Komunikat zachęcający użytkownika do dołączenia do kanału Discord`},"message.addWeChat":{message:`Usługa WeChat`,description:`Komunikat zachęcający użytkownika do dodania konta WeChat`},"message.serviceTech":{message:`Wsparcie techniczne`,description:`Komunikat wyświetlający wsparcie techniczne`},"message.businessCooperation":{message:`Współpraca biznesowa`,description:`Komunikat wyświetlający informacje o współpracy biznesowej`},"message.noData":{message:`Brak danych`,description:`Komunikat wyświetlający, że w tabeli lub liście nie ma danych`},"nav.home":{message:`Strona główna`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony głównej`},"nav.content":{message:`Treść`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony z treścią`},"nav.category":{message:`Kategoria`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony kategorii`},"nav.service":{message:`Wszystkie usługi`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony usług`},"nav.profile":{message:`Mój profil`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony profilu`},"nav.products":{message:`Produkty`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony produktów`},"nav.referral":{message:`Program partnerski`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony poleceń`},"nav.apiPlatform":{message:`Platforma API`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony platformy API`},"nav.document":{message:`Dokumentacja dewelopera`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony dokumentacji`},"nav.console":{message:`Konsola`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony konsoli`},"nav.chatgpt":{message:`ChatGPT`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony ChatGPT, nie tłumacz tego pola, musi pozostać jako 'ChatGPT'`},"nav.deepseek":{message:`DeepSeek`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony DeepSeek, nie tłumacz tego pola, musi pozostać jako 'DeepSeek'`},"nav.grok":{message:`Grok`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony Grok, nie tłumacz tego pola, musi pozostać jako 'Grok'`},"nav.chat":{message:`Czat`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony czatu, nie tłumacz tego pola, musi pozostać jako 'Chat'`},"nav.veo":{message:`Veo`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony czatu, nie tłumacz tego pola, musi pozostać jako 'Veo'`},"nav.sora":{message:`Sora`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony czatu, nie tłumacz tego pola, musi pozostać jako 'Sora'`},"nav.midjourney":{message:`Midjourney`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony Midjourney, nie tłumacz tego pola, musi pozostać jako 'Midjourney'`},"nav.qrart":{message:`QRArt`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony sztuki 2D, nie tłumacz tego pola, musi pozostać jako 'QRArt'`},"nav.suno":{message:`Suno`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony Suno, nie tłumacz tego pola, musi pozostać jako 'Suno'`},"nav.pixverse":{message:`Pixverse`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony Pixverse, nie tłumacz tego pola, musi pozostać jako 'Pixverse'`},"nav.flux":{message:`Flux`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony Flux, nie tłumacz tego pola, musi pozostać jako 'Flux'`},"nav.nanobanana":{message:`Nano Banana`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony Nano Banana, nie tłumacz tego pola, musi pozostać jako 'Nano Banana'`},"nav.openaiimage":{message:`OpenAI Image`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony OpenAI Image, nie tłumacz tego pola, musi pozostać jako 'OpenAI Image'`},"nav.seedream":{message:`SeeDream`,description:`Tekst w nawigacji strony, który wyświetla stronę SeeDream, proszę nie tłumaczyć tego pola, musi pozostać jako 'SeeDream'`},"nav.seedance":{message:`SeeDance`,description:`Tekst w nawigacji strony, który wyświetla stronę SeeDance, nie tłumaczyć, musi pozostać 'SeeDance'`},"nav.grokvideo":{message:`Grok Video`,description:`Text in the website navigation bar to display the Grok Imagine video page`},"nav.luma":{message:`Luma`,description:`Tekst w nawigacji strony, który wyświetla stronę Luma, nie tłumaczyć, musi pozostać 'Luma'`},"nav.pika":{message:`Pika`,description:`Tekst w nawigacji strony, który wyświetla stronę Pika, nie tłumaczyć, musi pozostać 'Pika'`},"nav.kling":{message:`Kling`,description:`Tekst w nawigacji strony, który wyświetla stronę Kling, nie tłumaczyć, musi pozostać 'Kling'`},"nav.hailuo":{message:`Hailuo`,description:`Tekst w nawigacji strony, który wyświetla stronę Hailuo, nie tłumaczyć, musi pozostać 'Hailuo'`},"nav.wan":{message:`Wan`,description:`Tekst w nawigacji strony, który wyświetla stronę Wan, nie tłumaczyć, musi pozostać 'Wan'`},"nav.producer":{message:`Producer`,description:`Tekst w nawigacji strony, który wyświetla stronę Producer, nie tłumaczyć, musi pozostać 'Producer'`},"nav.fish":{message:`Fish Audio`,description:`Tekst w pasku nawigacyjnym strony, używany do wyświetlania strony Fish Audio, proszę nie tłumaczyć tego pola, musi pozostać jako 'Fish Audio'`},"nav.kimi":{message:`Kimi`,description:`Tekst w nawigacji strony, który wyświetla stronę Kimi, nie tłumaczyć, musi pozostać 'Kimi'`},"nav.serp":{message:`SERP`,description:`Tekst w nawigacji strony, który wyświetla stronę SERP, nie tłumaczyć, musi pozostać 'SERP'`},"nav.codingBridge":{message:`Coding Bridge`,description:`Text in the website navigation bar to display the Coding Bridge page, must remain as 'Coding Bridge'`},"nav.webextrator":{message:`WebExtrator`,description:`Text in the website navigation bar to display the WebExtrator page, must remain as 'WebExtrator'`},"nav.image":{message:`Obraz`,description:`Tekst w nawigacji strony, który wyświetla stronę obrazu`},"nav.music":{message:`Muzyka`,description:`Tekst w nawigacji strony, który wyświetla stronę muzyki`},"nav.video":{message:`Wideo`,description:`Tekst w nawigacji strony, który wyświetla stronę wideo`},"nav.distribution":{message:`Zyski z poleceń`,description:`Tekst w nawigacji strony, który wyświetla stronę zysków z poleceń`},"nav.connections":{message:`Połączenia`,description:`Element menu prowadzący do strony zarządzania połączeniami auth.acedata.cloud`},"nav.logOut":{message:`Wyloguj się`,description:`Tekst w nawigacji strony, który służy do wylogowania`},"nav.deleteAccount":{message:`Usuń konto`,description:`Menu item to permanently delete the current user account`},"nav.site":{message:`Konfiguracja strony`,description:`Tekst w nawigacji strony, który wyświetla stronę konfiguracji strony`},"nav.subsite":{message:`Moje podstrony`,description:`Element bocznego menu 'Moje podstrony', widoczny tylko gdy funkcja features.subsite jest włączona`},"nav.setting":{message:`Ustawienia`,description:`Tekst w nawigacji strony, który wyświetla stronę ustawień`},"nav.headshots":{message:`AI Zdjęcia`,description:`Tekst w nawigacji strony, który wyświetla stronę konfiguracji strony`},"nav.more":{message:`Więcej`,description:`Tekst w nawigacji strony, który rozwija więcej usług`},"nav.locale":{message:`Ustawienia języka`,description:`Tekst w nawigacji strony, który służy do zmiany języka`},"nav.support":{message:`Wsparcie`,description:`Tekst w nawigacji strony, który wyświetla stronę kontaktową`},"nav.darkMode":{message:`Tryb ciemny`,description:`Tekst w nawigacji strony, który służy do przełączania na ciemny motyw`},"title.alert":{message:`Ostrzeżenie`,description:`Tytuł wiadomości ostrzegawczej`},"title.placeholderOfSelect":{message:`Wybierz`,description:`Placeholder dla wyboru`},"title.placeholderOfInput":{message:`Wypełnij`,description:`Placeholder dla wejścia`},"title.allApplications":{message:`Wszystkie aplikacje`,description:`Tytuł strony wyświetlającej wszystkie aplikacje`},"title.allOrders":{message:`Wszystkie zamówienia`,description:`Tytuł strony wyświetlającej wszystkie zamówienia`},"title.orderInfo":{message:`Informacje o zamówieniu`,description:`Tytuł strony wyświetlającej informacje o zamówieniu`},"title.buyMore":{message:`Doładuj`,description:`Tytuł strony do doładowania. Musi być przetłumaczone na 'Doładuj'.`},"title.distribution":{message:`Zyski z poleceń`,description:`Tytuł strony wyświetlającej zyski z poleceń, co oznacza, że użytkownik może zarabiać, zapraszając innych do korzystania z tej usługi`},"title.site":{message:`Konfiguracja strony`,description:`Tytuł strony wyświetlającej konfigurację strony`},"title.distributionHistory":{message:`Historia poleceń`,description:`Tytuł strony wyświetlającej historię poleceń`},"title.invitee":{message:`Osoba zapraszająca`,description:`Tytuł strony wyświetlającej osobę zapraszającą`},"title.allUsages":{message:`Historia użycia`,description:`Tytuł strony wyświetlającej wszystkie użycia usługi API`},"title.allCredentials":{message:`Klucze`,description:`Tytuł strony wyświetlającej wszystkie poświadczenia, które służą do uzyskania dostępu do API`},"about.title1":{message:`Kontakt`,description:`Tytuł sekcji wyświetlającej informacje kontaktowe`},"about.title2":{message:`Zasoby`,description:`Wyświetla część tytułu z linkami`},"about.title3":{message:`Linki`,description:`Wyświetla część tytułu z informacjami wsparcia`},"about.address":{message:`131 Continental Dr, Suite 305, Newark, DE 19713, USA`,description:`Adres firmy`},"about.email":{message:`office@acedata.cloud`,description:`E-mail firmy`},"about.link1":{message:`Usługi`,description:`Link do strony dokumentacji`},"about.link2":{message:`Dokumentacja dewelopera`,description:`Link do strony usług`},"about.link3":{message:`Konsola`,description:`Link do strony konsoli`},"about.link4":{message:`Profil`,description:`Link do strony profilu`},"about.link5":{message:`Platforma UI`,description:`Link do strony głównej`},"about.link6":{message:`Zyski z poleceń`,description:`Link do strony zysków z poleceń`},"about.link7":{message:`Wsparcie`,description:`Link do strony wsparcia`},"about.link8":{message:`Warunki korzystania`,description:`Link do strony warunków korzystania`},"about.link9":{message:`Polityka prywatności`,description:`Link do strony polityki prywatności`},"theme.light":{message:`Jasny`,description:`Nazwa jasnego motywu`},"theme.dark":{message:`Ciemny`,description:`Nazwa ciemnego motywu`},"theme.system":{message:`Systemowy`,description:`Nazwa motywu systemowego, oznaczająca automatyczne przełączanie motywu w zależności od ustawień systemowych`},"settings.general":{message:`Ustawienia ogólne`,description:`Tytuł sekcji ustawień ogólnych na stronie ustawień`},"settings.language":{message:`Język`,description:`Tytuł sekcji ustawień językowych na stronie ustawień`},"settings.theme":{message:`Motyw`,description:`Tytuł sekcji ustawień motywu na stronie ustawień`},"settings.seo":{message:`Ustawienia SEO`,description:`Tytuł sekcji ustawień SEO na stronie ustawień`},"settings.site":{message:`Ustawienia witryny`,description:`Tytuł sekcji ustawień witryny na stronie ustawień`},"settings.distribution":{message:`Ustawienia dystrybucji`,description:`Tytuł sekcji ustawień dystrybucji na stronie ustawień`},"settings.function":{message:`Ustawienia funkcji`,description:`Tytuł sekcji ustawień funkcji na stronie ustawień`},"settings.auth":{message:`Metoda logowania`,description:`Tytuł zakładki „Metoda logowania” w bocznym pasku ustawień — konfiguruje dostępne metody logowania oraz domyślną metodę logowania, widoczną tylko dla administratorów witryny.`},"settings.apiKey":{message:`Klucz API`,description:`Etykieta Klucz API w bocznym pasku na stronie ustawień - zarządzanie kluczem API dostawcy usług upstream (BYOK)`},"field.operations":{message:`Operacje`,description:`Ogólny tytuł kolumny: kolumna przycisków operacji w wierszach tabeli (edytuj, usuń itp.)`},"nav.gemini":{message:`Gemini`,description:`Tekst w pasku nawigacyjnym strony, aby wyświetlić stronę Gemini, musi pozostać jako 'Gemini'`},"nav.claude":{message:`Claude`,description:`Tekst w pasku nawigacyjnym strony, aby wyświetlić stronę Claude, musi pozostać jako 'Claude'`},"button.detail":{message:`Szczegóły`,description:``},"button.testEnv":{message:`Środowisko testowe`,description:`Tekst w przycisku do przełączania na środowisko testowe`},"button.upload":{message:`Prześlij`,description:`Tekst w przycisku do przesyłania plików lub treści`},"message.cnbeian":{message:`Rejestracja w Chinach`,description:`Informacje o rejestracji w Chinach`},"message.copyFailed":{message:`Kopiowanie nie powiodło się`,description:`Komunikat o niepowodzeniu kopiowania treści`},"nav.tryNow":{message:`Wypróbuj teraz`,description:`Tekst w pasku nawigacyjnym strony, aby umożliwić użytkownikowi wypróbowanie usługi`},"title.coin":{message:`Kryptowaluty`,description:`Tytuł strony wyświetlającej kryptowaluty`},"title.distributionRank":{message:`Ranking poleceń`,description:`Tytuł strony wyświetlającej ranking poleceń`},"title.distributionPlatformRank":{message:`Ranking platform`,description:`Tytuł strony wyświetlającej ranking platform`},"customers.name1":{message:`Mark Du`,description:`Imię i nazwisko klienta`},"customers.job1":{message:`Inżynier oprogramowania`,description:`Zawód klienta`},"customers.comment1":{message:`Ace Data Cloud zapewnił naszemu zespołowi doskonałą obsługę, pomagając nam zwiększyć wydajność. Bardzo polecam!`,description:`Ocena klienta`},"customers.name2":{message:`Jacob Williams`,description:`Imię i nazwisko klienta`},"customers.job2":{message:`Menadżer produktu`,description:`Zawód klienta`},"customers.comment2":{message:`Ace Data Cloud to świetna platforma integracyjna, jakość usług jest doskonała.`,description:`Ocena klienta`},"customers.name3":{message:`Larry Henry`,description:`Imię i nazwisko klienta`},"customers.job3":{message:`Projektant`,description:`Zawód klienta`},"customers.comment3":{message:`Uwielbiam usługi Ace Data Cloud, są łatwe w użyciu i w przystępnej cenie, mam nadzieję, że będą coraz lepsze!`,description:`Ocena klienta`},"nav.github":{message:`GitHub`,description:`Link do repozytorium GitHub`},"settings.github":{message:`Kod źródłowy`,description:`Link do przeglądania kodu źródłowego na GitHubie`},"settings.about":{message:`O aplikacji`,description:`Tytuł sekcji o aplikacji na stronie ustawień`},"settings.localTools":{message:`Narzędzia lokalne`,description:`Desktop-only settings tab for managing local tool folders, permissions and grants.`},"settings.localToolsDesktopOnly":{message:`Dostępne tylko w aplikacji desktopowej.`,description:`Shown when the Local Tools tab is opened on web/mobile.`},"settings.localToolsFoldersTitle":{message:`Autoryzowane foldery`,description:`Heading for the list of folders the AI may read/write locally.`},"settings.localToolsFoldersHint":{message:`Foldery, które AI może odczytywać i zapisywać na tym urządzeniu. Narzędzia działają lokalnie; nic nie opuszcza urządzenia bez Twojej zgody.`,description:`Help text under the authorized-folders heading.`},"settings.localToolsComputerUseTitle":{message:`Computer Use (experimental)`,description:`Heading for the opt-in Computer Use (screen + mouse/keyboard control) toggle.`},"settings.localToolsComputerUseHint":{message:`Let the AI see your screen and control the mouse and keyboard on this computer. Off by default — turn it on only when you need it. On macOS, grant Screen Recording and Accessibility permissions below. Each action still asks for your confirmation.`,description:`Help text under the Computer Use toggle.`},"settings.localToolsAddFolder":{message:`Dodaj folder`,description:`Button to pick a folder to authorize.`},"settings.localToolsRemove":{message:`Usuń`,description:`Button to remove an authorized folder.`},"settings.localToolsNoFolders":{message:`Brak autoryzowanych folderów.`,description:`Empty state for the authorized-folders list.`},"settings.localToolsSave":{message:`Zapisz`,description:`Save the authorized folders.`},"settings.localToolsSaved":{message:`Zapisano`,description:`Transient confirmation after saving local-tool folders.`},"settings.localToolsActiveTools":{message:`Aktywne narzędzia`,description:`Label before the list of currently available local tools.`},"settings.localToolsGrantsTitle":{message:`Zawsze dozwolone działania`,description:`Heading for the persistent consent grants list.`},"settings.localToolsGrantsHint":{message:`Wywołania narzędzi, które wybrałeś, aby zawsze zezwalać. Działają bez ponownego pytania. Cofnij dowolne, aby ponownie włączyć potwierdzenie.`,description:`Help text under the always-allowed actions heading.`},"settings.localToolsRevoke":{message:`Cofnij`,description:`Button to revoke a single always-allow grant.`},"settings.localToolsRevokeAll":{message:`Cofnij wszystkie`,description:`Button to revoke every always-allow grant.`},"settings.localToolsNoGrants":{message:`Brak zawsze dozwolonych działań. Przed każdym lokalnym narzędziem pojawi się pytanie.`,description:`Empty state for the always-allowed actions list.`},"settings.localToolsPermsTitle":{message:`Uprawnienia systemowe`,description:`Heading for the macOS system-permission section.`},"settings.localToolsPermsHint":{message:`Opcjonalne. Dostęp do folderów powyżej ich nie wymaga — przyznawaj tylko to, czego wymaga konkretne zadanie.`,description:`Help text under the system-permissions heading.`},"settings.localToolsPermFullDisk":{message:`Pełny dostęp do dysku`,description:`macOS Full Disk Access permission row.`},"settings.localToolsPermScreen":{message:`Nagrywanie ekranu`,description:`macOS Screen Recording permission row.`},"settings.localToolsPermAccessibility":{message:`Dostępność`,description:`macOS Accessibility permission row.`},"settings.localToolsGranted":{message:`Przyznano`,description:`Status tag when a system permission is granted.`},"settings.localToolsNotGranted":{message:`Nie przyznano`,description:`Status tag when a system permission is not granted.`},"settings.localToolsOpen":{message:`Otwórz…`,description:`Button to open the relevant macOS System Settings pane.`},"settings.subsites":{message:`Moje podstrony`,description:`Tytuł zakładki zarządzania podstronami w oknie ustawień. Widoczne tylko na oficjalnej stronie głównej, podstrony nie są wyświetlane.`},"settings.adminOnlyHint":{message:`Ten dział jest widoczny tylko dla administratorów witryny, zwykli użytkownicy nie mają dostępu.`,description:`To jest komunikat wyświetlany na górze zakładek w ustawieniach witryny / ustawieniach SEO / ustawieniach dystrybucji / ustawieniach funkcji, które są widoczne tylko dla administratorów.`},"settings.officialOnlyHint":{message:`Ten dział jest widoczny tylko na głównej stronie, nie będzie wyświetlany na podstronach.`,description:`To jest komunikat wyświetlany na górze zakładki 'Moje podstrony', informujący, że ten dostęp jest dostępny tylko na oficjalnej głównej stronie.`},"settings.customDomain":{message:`Domena niestandardowa`,description:`Title for the custom-domain management tab in the settings popup. Visible only on subsites (non-main-official hosts) for site admins.`},"settings.buildNow":{message:`Zbuduj teraz`,description:`Tekst przycisku 'Zbuduj podstronę' na stronie o aplikacji, widoczny tylko na oficjalnej stronie głównej`},"settings.poweredBy":{message:`Projekt open source`,description:`Tytuł sekcji na stronie o aplikacji, która pokazuje, na jakim projekcie open source oparta jest ta strona`},"settings.poweredByTip":{message:`Ta strona oparta jest na projekcie open source Nexior, kod jest całkowicie otwarty.`,description:`Opis na stronie o aplikacji, który pokazuje, na jakim projekcie open source oparta jest ta strona`},"settings.apiService":{message:`Usługa API`,description:`Tytuł sekcji na stronie o aplikacji, która pokazuje dostawcę usługi API`},"settings.apiServiceTip":{message:`Usługa API tej strony jest dostarczana przez Ace Data Cloud.`,description:`Opis na stronie o aplikacji, który pokazuje dostawcę usługi API`},"settings.buildYourOwn":{message:`Zbuduj własną`,description:`Tytuł sekcji na stronie o aplikacji, która informuje użytkowników, że mogą zbudować podobną stronę`},"settings.buildYourOwnTip":{message:`Chcesz zbudować podobną stronę AI? Skontaktuj się z nami, aby uzyskać wsparcie w zakresie wdrożenia.`,description:`Opis na stronie o aplikacji dotyczący budowy podobnej strony`},"settings.contactUs":{message:`Skontaktuj się z nami`,description:`Tekst przycisku do kontaktu z obsługą klienta`},"message.viewOnGithub":{message:`Zobacz na GitHubie`,description:`Tekst linku do przeglądania projektu na GitHubie`},"title.notFound":{message:`Strona nie znaleziona`,description:`Tytuł strony 404`},"message.notFound":{message:`Strona, którą próbujesz odwiedzić, nie istnieje, być może link został zmieniony lub usunięty. Wróć na stronę główną, aby kontynuować odkrywanie usług AI AceData.`,description:`Opis podtytułu na stronie 404`},"message.notFoundEyebrow":{message:`Coś poszło nie tak`,description:`Tekst małej etykiety na górze strony 404`},"message.notFoundPath":{message:`Ścieżka żądania`,description:`Etykieta wyświetlająca aktualną ścieżkę żądania na stronie 404`},"button.backToHome":{message:`Wróć na stronę główną`,description:`Tekst przycisku do powrotu na stronę główną`},"button.goBack":{message:`Wróć do poprzedniej strony`,description:`Tekst przycisku do powrotu do poprzedniej strony w historii przeglądania`},"title.apiCode":{message:`API code for this request`,description:`Title of the dialog that shows the equivalent API code (curl / Python / Node) that would reproduce a result generated inside the product`},"message.viewCodeHint":{message:`Show API code for this request`,description:`Tooltip text on the View Code button shown alongside result-card action buttons (U1/U2/Download/Extend/...). Clicking the button opens a dialog with curl / Python / Node snippets that reproduce the same generation via the public API.`},"button.viewCode":{message:`View code`,description:`Button text that opens a dialog with the equivalent API code (curl / Python / Node) for the current result, similar to the OpenAI Playground 'View code' affordance`},"button.getApiKey":{message:`Get an API key`,description:`Link text in the API code dialog footer that opens the platform console page where users can create an API key`},"button.apiPlatform":{message:`API Platform`,description:`API code dialog footer button label. Clicking opens https://platform.acedata.cloud/ in a new tab so users can manage their API keys, balance and usage.`},"message.apiCodeIntro":{message:`Run this from your own code to produce the same result. Replace <YOUR_API_KEY> with a key from your platform console.`,description:`Helper text shown above the code tabs in the API code dialog, explaining how to use the snippet`},"tab.apiRequest":{message:`Żądanie`,description:`Etykieta zakładki dialogu kodu API dla fragmentu żądania (kod, który reprodukuje aktualny wynik).`},"tab.apiResponse":{message:`Odpowiedź`,description:`Etykieta zakładki dialogu kodu API dla odpowiedzi na żywo zwróconej po kliknięciu Uruchom.`},"button.apiRun":{message:`Uruchom ponownie`,description:`Przycisk w dialogu kodu API, który ponownie uruchamia żądanie na żywo za pomocą klucza użytkownika. Wynik już istnieje, więc kliknięcie uruchamia go ponownie i jest płatne.`},"button.apiRunning":{message:`Uruchamianie…`,description:`Etykieta przycisku Uruchom w dialogu kodu API, gdy żądanie na żywo jest w trakcie realizacji.`},"button.apiRunConfirm":{message:`Potwierdź uruchomienie`,description:`Etykieta przycisku potwierdzenia w dialogu, który ostrzega, że uruchomienie tutaj zużywa dodatkowe kredyty.`},"button.viewDocs":{message:`Zobacz dokumentację`,description:`Przycisk w stopce dialogu kodu API, który otwiera odpowiednią stronę dokumentacji API na platformie.`},"message.apiClickRun":{message:`Kliknij „Uruchom ponownie”, aby użyć swojego klucza API do wykonania tego żądania na żywo.`,description:`Stan pusty zakładki Odpowiedź w dialogu kodu API, wyświetlany przed uruchomieniem żądania przez użytkownika.`},"message.apiRunConfirmTitle":{message:`Potwierdź uruchomienie`,description:`Tytuł dialogu potwierdzenia wyświetlanego przed ponownym uruchomieniem żądania z dialogu kodu API.`},"message.apiRunConfirmDesc":{message:`To uruchomienie użyje twojego klucza API do rzeczywistego wywołania interfejsu i dodatkowo zużyje punkty, czy chcesz kontynuować?`,description:`Treść dialogu potwierdzenia ostrzegającego, że ponowne uruchomienie żądania to rzeczywiste, płatne wywołanie API.`},"message.apiRunConfirmSkip":{message:`Nie pokazuj ponownie`,description:`Pole wyboru w dialogu potwierdzenia uruchomienia, które, gdy jest zaznaczone, tłumi ostrzeżenie przy kolejnych uruchomieniach.`},"message.apiRunTaskCreated":{message:`Zadanie zostało utworzone, zamknij to okno, aby zobaczyć najnowsze wyniki poniżej.`,description:`Baner sukcesu wyświetlany w oknie dialogowym kodu API po uruchomieniu, które zwraca identyfikator zadania, sugerując, że nowe zadanie już pojawia się na liście za oknem dialogowym.`},"button.apiViewLatest":{message:`Zamknij i zobacz`,description:`Przycisk w banerze sukcesu okna dialogowego kodu API, który zamyka okno, aby użytkownik mógł zobaczyć nowo utworzone zadanie na liście poniżej.`},"message.uploadInProgress":{message:`Przesyłanie plików referencyjnych nadal trwa — proszę chwilę poczekać.`,description:`Toast shown when the user clicks the Generate button while one or more reference uploads are still in flight. Asks them to wait for uploads to complete before retrying.`},"appUpgrade.title":{message:`Update required`,description:`Title of the native-app version gate modal shown at startup when the installed build is older than what the backend supports.`},"appUpgrade.blockMessage":{message:`This version is no longer supported. Please update from the app store to continue.`,description:`Body text of the hard-block upgrade modal shown when the installed version is below min_supported. The modal has no dismiss affordance — the only button opens the app store.`},"appUpgrade.softMessage":{message:`A newer version is available. Update from the app store for the best experience.`,description:`Body text of the soft upgrade prompt shown when the installed version is below latest but above min_supported. The user can dismiss and keep using the app.`},"appUpgrade.openStore":{message:`Update now`,description:`Primary button on the upgrade modal — opens the App Store / Play Store URL in the system browser.`},"appUpgrade.later":{message:`Later`,description:`Secondary button on the soft upgrade prompt — dismisses the modal and lets the user keep using the current version. Only shown for non-forced upgrades.`},"nav.maestro":{message:`Maestro`,description:`Tekst na stronie przejścia z artykułu na wideo w nawigacji, pozostaje jako 'Maestro'`},"nav.digitalhuman":{message:`Digital Human`,description:`Text in the website navigation bar for the Digital Human talking-head page`}};export{e as default};
|
|
1
|
+
var e={"button.setup":{message:`Ustawienia`,description:`Tekst w przycisku, używany do przeprowadzania ustawień`},"button.start":{message:`Rozpocznij`,description:`Tekst w przycisku, używany do rozpoczęcia pewnych działań`},"button.copy":{message:`Kopiuj`,description:`Tekst w przycisku, używany do kopiowania treści`},"button.copied":{message:`Skopiowano`,description:`Tekst w przycisku, używany do oznaczenia, że treść została skopiowana`},"button.restart":{message:`Generuj ponownie`,description:`Tekst w przycisku, używany do ustawienia pewnych treści`},"button.preview":{message:`Podgląd`,description:`Tekst w przycisku, używany do otwierania podglądu pliku przez URL`},"button.seeRawImage":{message:`Zobacz oryginał`,description:`Tekst w przycisku, używany do przeglądania oryginalnego obrazu`},"button.seeRawVideo":{message:`Zobacz wideo`,description:`Tekst w przycisku, używany do przeglądania oryginalnego wideo`},"button.edit":{message:`Edytuj`,description:`Tekst w przycisku, używany do edytowania treści`},"button.login":{message:`Zaloguj się`,description:`Tekst w przycisku, używany do logowania`},"button.logout":{message:`Wyloguj się`,description:`Tekst w przycisku, używany do wylogowania`},"button.new":{message:`Nowy`,description:`Tekst w przycisku, używany do tworzenia nowego elementu`},"button.delete":{message:`Usuń`,description:`Tekst w przycisku, używany do usuwania treści`},"button.deletePermanently":{message:`Trwale usuń konto`,description:`Final red delete button at the bottom of the delete confirmation dialog`},"button.confirm":{message:`Potwierdź`,description:`Tekst w przycisku, używany do potwierdzania pewnych działań`},"button.cancel":{message:`Anuluj`,description:`Tekst w przycisku, używany do anulowania pewnych działań`},"button.close":{message:`Zamknij`,description:`Tekst w przycisku, używany do zamykania okna dialogowego lub panelu`},"button.expand":{message:`Rozwiń`,description:`Tekst przycisku, używany do otwierania edytora pełnoekranowego dla pola wprowadzania podpowiedzi.`},"button.alert":{message:`Ostrzeżenie`,description:`Tekst w przycisku, używany do wydawania ostrzeżenia`},"button.info":{message:`Informacje`,description:`Tekst w przycisku, używany do wyświetlania informacji`},"button.publish":{message:`Opublikuj`,description:`Tekst w przycisku, używany do publikowania treści`},"button.watch":{message:`Obejrzyj`,description:`Tekst w przycisku, używany do oglądania pewnej treści`},"button.verify":{message:`Weryfikacja`,description:`Tekst w przycisku, umożliwiający użytkownikowi przeprowadzenie weryfikacji`},"button.profile":{message:`Profil`,description:`Tekst w przycisku, używany do wyświetlania profilu użytkownika`},"button.console":{message:`Konsola`,description:`Tekst w przycisku, używany do wyświetlania strony konsoli, aby kontrolować pewne treści na stronie`},"button.learn":{message:`Ucz się`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi nauki pewnej treści`},"button.buy":{message:`Kup`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi zakupu pewnej treści`},"button.try":{message:`Wypróbuj`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi wypróbowania pewnej treści`},"button.startForFree":{message:`Rozpocznij za darmo`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi darmowego rozpoczęcia`},"button.download":{message:`Pobierz`,description:`Tekst w przycisku, używany do pobierania plików (np. audio, wideo, obrazy)`},"button.downloadAndroid":{message:`Pobierz Android`,description:`Tekst w przycisku, używany do pobierania pakietu instalacyjnego Android`},"button.downloadIos":{message:`Pobierz pakiet instalacyjny iOS`,description:`Tekst w przycisku, używany do pobierania pliku instalacyjnego iOS`},"button.downloadWindows":{message:`Pobierz dla Windows`,description:`Text in button for downloading the Windows desktop installer`},"button.downloadMac":{message:`Pobierz dla macOS`,description:`Text in button for downloading the macOS desktop installer`},"button.installIos":{message:`Zainstaluj iOS`,description:`Tekst w przycisku, używany do instalacji aplikacji iOS`},"button.apply":{message:`Aplikuj`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi aplikacji o usługę API`},"button.refresh":{message:`Odśwież`,description:`Tekst w przycisku, używany do odświeżania strony`},"button.pay":{message:`Zapłać`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi zapłaty za usługi`},"button.repay":{message:`Kontynuuj płatność`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi kontynuowania płatności za usługi`},"button.applied":{message:`Złożono`,description:`Tekst w przycisku, używany do wyświetlania, że użytkownik złożył wniosek o tę usługę`},"button.acquire":{message:`Uzyskaj`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi uzyskania tokena lub klucza usługi API`},"button.fillExample":{message:`Wypełnij przykład`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi wypełnienia przykładowych danych`},"button.buyMore":{message:`Doładuj`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi doładowania. Angielski musi być przetłumaczony na 'Top Up', a chiński na '充值'.`},"button.update":{message:`Aktualizuj`,description:`Tekst w przycisku, używany do aktualizacji treści`},"button.view":{message:`Zobacz`,description:`Tekst w przycisku, używany do przeglądania pewnej treści`},"button.create":{message:`Utwórz`,description:`Tekst w przycisku, używany do tworzenia pewnej treści`},"button.referralEarnings":{message:`Zarobki z polecenia`,description:`Tekst w przycisku, który wyświetla zarobki z polecenia, oznacza, że użytkownik może zarabiać, zapraszając innych do korzystania z tej usługi`},"button.finish":{message:`Zakończ`,description:`Tekst w przycisku, który służy do zakończenia operacji`},"entity.id":{message:`ID`,description:`Unikalny identyfikator wyświetlający encję`},"entity.type":{message:`Typ`,description:`Typ wyświetlający encję`},"entity.website":{message:`Ace Data Cloud`,description:`Nazwa strony, nie wymaga tłumaczenia, pozostaje 'Ace Data Cloud'`},"entity.copyright":{message:`Prawa autorskie`,description:`Tekst wyświetlający prawa autorskie`},"entity.platform":{message:`Platforma`,description:`Tekst wskazujący, że to platforma usług API`},"entity.title":{message:`Tytuł`,description:`Tytuł encji`},"entity.icon":{message:`Ikona`,description:`Ikona encji`},"entity.status":{message:`Status`,description:`Status encji`},"status.loading":{message:`Ładowanie...`,description:`Tekst stanu wyświetlany podczas ładowania treści`},"error.appleSignInFailed":{message:`Logowanie przez Apple nie powiodło się. Spróbuj ponownie lub użyj innej metody logowania.`,description:`Error toast shown when native Apple sign-in fails for a reason other than user cancellation`},"error.loginLinkExpired":{message:`Login link expired. Please sign in again.`,description:`Shown on the desktop client when an OAuth callback is dropped (state mismatch or expired).`},"entity.operation":{message:`Operacja`,description:`Operacja encji`},"entity.description":{message:`Opis`,description:`Opis encji`},"entity.createdAt":{message:`Utworzono`,description:`Czas utworzenia encji`},"entity.updatedAt":{message:`Zaktualizowano`,description:`Czas aktualizacji encji`},"entity.order":{message:`Zamówienie`,description:`Zamówienie encji, które zawiera informacje o pieniądzach i usługach, za które użytkownik musi zapłacić`},"message.noTasks":{message:`Brak historii zadań, rozpocznij nowe zadanie~`,description:`Wiadomość wyświetlana, gdy nie ma zadań`},"message.usedAmount":{message:`Wykorzystana kwota`,description:`Tekst wyświetlający kwotę wykorzystaną w usłudze`},"message.mobileAppDescription":{message:`Bezpośrednio korzystaj z AceData na telefonie, obecnie dostępne do pobrania Android APK, pakiet instalacyjny iOS będzie dostępny po podpisaniu.`,description:`Opis na stronie pobierania aplikacji mobilnej`},"message.mobileAndroidHint":{message:`Dla telefonów i tabletów z Androidem, zeskanuj kod QR, aby pobrać najnowsze APK.`,description:`Opis karty pobierania Android`},"message.mobileAndroidPending":{message:`Pakiet instalacyjny Android nie jest jeszcze gotowy, spróbuj ponownie później.`,description:`Wskazówka, gdy pakiet instalacyjny Android nie jest dostępny`},"message.mobileAvailableNow":{message:`Android dostępny do pobrania`,description:`Tekst wyświetlający status dostępności Android`},"message.mobileSecureDelivery":{message:`Bezpieczna dystrybucja CDN`,description:`Podkreślenie, że link do pobrania jest dostarczany przez CDN`},"message.mobileDirectInstall":{message:`Bezpośrednia instalacja APK`,description:`Opis metody bezpośredniej instalacji APK na Androidzie`},"message.mobileLatestRelease":{message:`Obecna wersja publiczna`,description:`Wyjaśnienie, że aktualnie wyświetlana jest najnowsza wersja publiczna`},"message.mobileSharedAccount":{message:`Wspólne konto i limity z wersją webową`,description:`Wyjaśnienie, że mobilna wersja korzysta z tego samego konta co wersja webowa`},"message.mobileIosHint":{message:`Dla iPhone'a i iPada, można zainstalować bezpośrednio online; jeśli system zablokuje, można najpierw pobrać IPA, a następnie rozprowadzić.`,description:`Opis karty pobierania iOS`},"message.mobileIosPending":{message:`Pakiet instalacyjny iOS nie jest jeszcze dostępny do pobrania, będzie dostępny po uzupełnieniu certyfikatów Apple i plików konfiguracyjnych.`,description:`Wskazówka, gdy pakiet instalacyjny iOS nie jest dostępny`},"message.mobileComingSoon":{message:`Wkrótce`,description:`Short status label shown on a platform card (e.g. iOS) while its build is being prepared`},"message.mobileNowOnAppStore":{message:`Now on the App Store`,description:`Status label shown on the iOS card when the app is live on the App Store`},"message.desktopWindowsHint":{message:`Dla Windows 10 i nowszych (64-bit). Pobierz instalator i kliknij dwukrotnie, aby zainstalować.`,description:`Windows desktop download card description`},"message.desktopMacHint":{message:`Dla macOS 11 i nowszych. Wybierz wersję pasującą do Twojego Maca — Apple Silicon (seria M) lub Intel.`,description:`macOS desktop download card description`},"message.desktopUnsignedNote":{message:`Aplikacje na komputer to niepodpisane wersje beta. W systemie Windows wybierz „Więcej informacji → Uruchom mimo to” w oknie SmartScreen; w systemie macOS kliknij aplikację prawym przyciskiem myszy i wybierz „Otwórz”, aby pominąć Gatekeeper.`,description:`Note explaining the desktop builds are unsigned betas and how to open them`},"button.getOnGooglePlay":{message:`Pobierz z Google Play`,description:`Button label that opens the app's Google Play Store listing`},"button.getOnAppStore":{message:`Get it on the App Store`,description:`Button label that opens the app's Apple App Store listing`},"message.mobileApkFallback":{message:`Brak dostępu do Google Play? Pobierz plik APK bezpośrednio.`,description:`Shown next to a secondary button offering a direct APK download for users who cannot access Google Play`},"message.mobilePlayStoreHint":{message:`Zeskanuj, aby otworzyć Google Play`,description:`Hint under the QR code explaining that scanning it opens the Google Play listing`},"message.mobileAppStoreHint":{message:`Scan to open the App Store`,description:`Hint under the QR code explaining that scanning it opens the App Store listing`},"message.mobileInstallNote":{message:`Podczas pierwszej instalacji pakietu korporacyjnego lub Ad Hoc na iOS, system może poprosić o zaufanie certyfikatowi w 'Ustawienia > Ogólne > VPN i zarządzanie urządzeniem'.`,description:`Wskazówka dotycząca instalacji aplikacji mobilnej`},"title.mobileApp":{message:`Pobieranie mobilne`,description:`Tytuł strony pobierania aplikacji mobilnej`},"title.mobileFastAccess":{message:`Szybszy dostęp, bez przechodzenia przez sklep z aplikacjami`,description:`Tytuł karty z zaletami na stronie pobierania, podkreślający szybkie instalacje`},"title.mobileTrustedRelease":{message:`Zarządzanie wersjami w jednym miejscu, stabilniejsza dystrybucja`,description:`Tytuł karty z zaletami na stronie pobierania, podkreślający stabilność wersji i dystrybucji`},"title.mobileUnifiedExperience":{message:`Jednolita doświadczenie na mobilnych i webowych`,description:`Tytuł karty z zaletami na stronie pobierania, podkreślający jednolite doświadczenie`},"nav.mobileApp":{message:`Aplikacja mobilna`,description:`Wejście do pobierania aplikacji mobilnej w nawigacji`},"message.mobileFastAccess":{message:`Użytkownicy mogą zeskanować kod QR, aby zainstalować bezpośrednio na telefonie, lub najpierw pobrać APK na komputerze i rozprowadzić je wśród członków zespołu, co jest odpowiednie dla szybkiego testowania i beta testów.`,description:`Opis zalet na stronie pobierania, podkreślający szybki dostęp`},"message.mobileTrustedRelease":{message:`Wszystkie linki do pobrania w jednym miejscu, numery wersji, status platformy i metody instalacji są widoczne na pierwszy rzut oka, co zmniejsza koszty komunikacji spowodowane rozproszeniem linków.`,description:`Opis zalet na stronie pobierania, podkreślający jednolitą dystrybucję`},"message.mobileUnifiedExperience":{message:`System konta, limity i wejścia do usług po zalogowaniu są zgodne z wersją webową, co ułatwia użytkownikom płynne przełączanie się między wersją desktopową a mobilną.`,description:`Opis zalet na stronie pobierania, podkreślający jednolite doświadczenie konta`},"message.remainingAmount":{message:`Pozostała kwota`,description:`Tekst wyświetlający pozostałą kwotę w usłudze`},"message.copied":{message:`Skopiowano`,description:`Wyświetla wiadomość o pomyślnym skopiowaniu treści`},"message.restart":{message:`Generuj ponownie`,description:`Używane do wyświetlenia komunikatu, że zawartość została pomyślnie skopiowana`},"message.confirmDelete":{message:`Czy na pewno chcesz usunąć?`,description:`Potwierdzenie, że użytkownik chce usunąć jakąś zawartość`},"message.expiredAt":{message:`Czas wygaśnięcia`,description:`Używane do wyświetlenia czasu wygaśnięcia usługi`},"message.alert":{message:`Ostrzeżenie`,description:`Komunikat ostrzegający użytkownika`},"message.deleteAccountConfirm":{message:`Spowoduje to trwałe usunięcie Twojego konta i wszystkich powiązanych danych. Tej operacji nie można cofnąć. Czy na pewno chcesz kontynuować?`,description:`Confirmation message shown before permanently deleting the user account`},"message.deleteAccountSuccess":{message:`Twoje konto zostało usunięte.`,description:`Message shown after the user account is successfully deleted`},"message.deleteAccountFailed":{message:`Nie udało się usunąć konta. Spróbuj ponownie później.`,description:`Message shown when account deletion fails`},"message.deleteAccountWarning":{message:`Tej czynności nie można cofnąć! Twoje konto i wszystkie jego dane zostaną trwale usunięte i nie będzie można ich odzyskać.`,description:`Red warning banner at the top of the delete confirmation dialog`},"message.deleteAccountConsequences":{message:`Trwale usunięte: profil, saldo i kredyty, aplikacje i subskrypcje, klucze API oraz powiązania logowania zewnętrznego.`,description:`Explains what data will be removed in the delete confirmation dialog`},"message.deleteAccountTypePrompt":{message:`Wpisz swoją nazwę użytkownika, aby potwierdzić usunięcie:`,description:`Instructs the user to type their username to confirm; the username is shown separately below`},"message.deleteAccountPlaceholder":{message:`Wpisz tutaj swoją nazwę użytkownika`,description:`Placeholder for the username confirmation input`},"message.info":{message:`Informacja`,description:`Komunikat wyświetlający informacje`},"message.free":{message:`Darmowe`,description:`Komunikat informujący, że usługa jest darmowa, co oznacza, że użytkownik nie musi płacić`},"message.startPrice":{message:`Cena początkowa`,description:`Komunikat wyświetlający najniższą cenę usługi`},"message.joinDiscord":{message:`Dołącz do Discorda`,description:`Komunikat zachęcający użytkownika do dołączenia do kanału Discord`},"message.addWeChat":{message:`Usługa WeChat`,description:`Komunikat zachęcający użytkownika do dodania konta WeChat`},"message.serviceTech":{message:`Wsparcie techniczne`,description:`Komunikat wyświetlający wsparcie techniczne`},"message.businessCooperation":{message:`Współpraca biznesowa`,description:`Komunikat wyświetlający informacje o współpracy biznesowej`},"message.noData":{message:`Brak danych`,description:`Komunikat wyświetlający, że w tabeli lub liście nie ma danych`},"nav.home":{message:`Strona główna`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony głównej`},"nav.content":{message:`Treść`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony z treścią`},"nav.category":{message:`Kategoria`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony kategorii`},"nav.service":{message:`Wszystkie usługi`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony usług`},"nav.profile":{message:`Mój profil`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony profilu`},"nav.products":{message:`Produkty`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony produktów`},"nav.referral":{message:`Program partnerski`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony poleceń`},"nav.apiPlatform":{message:`Platforma API`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony platformy API`},"nav.document":{message:`Dokumentacja dewelopera`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony dokumentacji`},"nav.console":{message:`Konsola`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony konsoli`},"nav.chatgpt":{message:`ChatGPT`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony ChatGPT, nie tłumacz tego pola, musi pozostać jako 'ChatGPT'`},"nav.deepseek":{message:`DeepSeek`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony DeepSeek, nie tłumacz tego pola, musi pozostać jako 'DeepSeek'`},"nav.grok":{message:`Grok`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony Grok, nie tłumacz tego pola, musi pozostać jako 'Grok'`},"nav.chat":{message:`Czat`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony czatu, nie tłumacz tego pola, musi pozostać jako 'Chat'`},"nav.veo":{message:`Veo`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony czatu, nie tłumacz tego pola, musi pozostać jako 'Veo'`},"nav.sora":{message:`Sora`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony czatu, nie tłumacz tego pola, musi pozostać jako 'Sora'`},"nav.midjourney":{message:`Midjourney`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony Midjourney, nie tłumacz tego pola, musi pozostać jako 'Midjourney'`},"nav.qrart":{message:`QRArt`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony sztuki 2D, nie tłumacz tego pola, musi pozostać jako 'QRArt'`},"nav.suno":{message:`Suno`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony Suno, nie tłumacz tego pola, musi pozostać jako 'Suno'`},"nav.pixverse":{message:`Pixverse`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony Pixverse, nie tłumacz tego pola, musi pozostać jako 'Pixverse'`},"nav.flux":{message:`Flux`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony Flux, nie tłumacz tego pola, musi pozostać jako 'Flux'`},"nav.nanobanana":{message:`Nano Banana`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony Nano Banana, nie tłumacz tego pola, musi pozostać jako 'Nano Banana'`},"nav.openaiimage":{message:`OpenAI Image`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony OpenAI Image, nie tłumacz tego pola, musi pozostać jako 'OpenAI Image'`},"nav.seedream":{message:`SeeDream`,description:`Tekst w nawigacji strony, który wyświetla stronę SeeDream, proszę nie tłumaczyć tego pola, musi pozostać jako 'SeeDream'`},"nav.seedance":{message:`SeeDance`,description:`Tekst w nawigacji strony, który wyświetla stronę SeeDance, nie tłumaczyć, musi pozostać 'SeeDance'`},"nav.grokvideo":{message:`Grok Video`,description:`Text in the website navigation bar to display the Grok Imagine video page`},"nav.luma":{message:`Luma`,description:`Tekst w nawigacji strony, który wyświetla stronę Luma, nie tłumaczyć, musi pozostać 'Luma'`},"nav.pika":{message:`Pika`,description:`Tekst w nawigacji strony, który wyświetla stronę Pika, nie tłumaczyć, musi pozostać 'Pika'`},"nav.kling":{message:`Kling`,description:`Tekst w nawigacji strony, który wyświetla stronę Kling, nie tłumaczyć, musi pozostać 'Kling'`},"nav.hailuo":{message:`Hailuo`,description:`Tekst w nawigacji strony, który wyświetla stronę Hailuo, nie tłumaczyć, musi pozostać 'Hailuo'`},"nav.wan":{message:`Wan`,description:`Tekst w nawigacji strony, który wyświetla stronę Wan, nie tłumaczyć, musi pozostać 'Wan'`},"nav.producer":{message:`Producer`,description:`Tekst w nawigacji strony, który wyświetla stronę Producer, nie tłumaczyć, musi pozostać 'Producer'`},"nav.fish":{message:`Fish Audio`,description:`Tekst w pasku nawigacyjnym strony, używany do wyświetlania strony Fish Audio, proszę nie tłumaczyć tego pola, musi pozostać jako 'Fish Audio'`},"nav.kimi":{message:`Kimi`,description:`Tekst w nawigacji strony, który wyświetla stronę Kimi, nie tłumaczyć, musi pozostać 'Kimi'`},"nav.serp":{message:`SERP`,description:`Tekst w nawigacji strony, który wyświetla stronę SERP, nie tłumaczyć, musi pozostać 'SERP'`},"nav.codingBridge":{message:`Coding Bridge`,description:`Text in the website navigation bar to display the Coding Bridge page, must remain as 'Coding Bridge'`},"nav.webextrator":{message:`WebExtrator`,description:`Text in the website navigation bar to display the WebExtrator page, must remain as 'WebExtrator'`},"nav.image":{message:`Obraz`,description:`Tekst w nawigacji strony, który wyświetla stronę obrazu`},"nav.music":{message:`Muzyka`,description:`Tekst w nawigacji strony, który wyświetla stronę muzyki`},"nav.video":{message:`Wideo`,description:`Tekst w nawigacji strony, który wyświetla stronę wideo`},"nav.distribution":{message:`Zyski z poleceń`,description:`Tekst w nawigacji strony, który wyświetla stronę zysków z poleceń`},"nav.connections":{message:`Połączenia`,description:`Element menu prowadzący do strony zarządzania połączeniami auth.acedata.cloud`},"nav.logOut":{message:`Wyloguj się`,description:`Tekst w nawigacji strony, który służy do wylogowania`},"nav.deleteAccount":{message:`Usuń konto`,description:`Menu item to permanently delete the current user account`},"nav.site":{message:`Konfiguracja strony`,description:`Tekst w nawigacji strony, który wyświetla stronę konfiguracji strony`},"nav.subsite":{message:`Moje podstrony`,description:`Element bocznego menu 'Moje podstrony', widoczny tylko gdy funkcja features.subsite jest włączona`},"nav.setting":{message:`Ustawienia`,description:`Tekst w nawigacji strony, który wyświetla stronę ustawień`},"nav.headshots":{message:`AI Zdjęcia`,description:`Tekst w nawigacji strony, który wyświetla stronę konfiguracji strony`},"nav.more":{message:`Więcej`,description:`Tekst w nawigacji strony, który rozwija więcej usług`},"nav.locale":{message:`Ustawienia języka`,description:`Tekst w nawigacji strony, który służy do zmiany języka`},"nav.support":{message:`Wsparcie`,description:`Tekst w nawigacji strony, który wyświetla stronę kontaktową`},"nav.darkMode":{message:`Tryb ciemny`,description:`Tekst w nawigacji strony, który służy do przełączania na ciemny motyw`},"title.alert":{message:`Ostrzeżenie`,description:`Tytuł wiadomości ostrzegawczej`},"title.placeholderOfSelect":{message:`Wybierz`,description:`Placeholder dla wyboru`},"title.placeholderOfInput":{message:`Wypełnij`,description:`Placeholder dla wejścia`},"title.allApplications":{message:`Wszystkie aplikacje`,description:`Tytuł strony wyświetlającej wszystkie aplikacje`},"title.allOrders":{message:`Wszystkie zamówienia`,description:`Tytuł strony wyświetlającej wszystkie zamówienia`},"title.orderInfo":{message:`Informacje o zamówieniu`,description:`Tytuł strony wyświetlającej informacje o zamówieniu`},"title.buyMore":{message:`Doładuj`,description:`Tytuł strony do doładowania. Musi być przetłumaczone na 'Doładuj'.`},"title.distribution":{message:`Zyski z poleceń`,description:`Tytuł strony wyświetlającej zyski z poleceń, co oznacza, że użytkownik może zarabiać, zapraszając innych do korzystania z tej usługi`},"title.site":{message:`Konfiguracja strony`,description:`Tytuł strony wyświetlającej konfigurację strony`},"title.distributionHistory":{message:`Historia poleceń`,description:`Tytuł strony wyświetlającej historię poleceń`},"title.invitee":{message:`Osoba zapraszająca`,description:`Tytuł strony wyświetlającej osobę zapraszającą`},"title.allUsages":{message:`Historia użycia`,description:`Tytuł strony wyświetlającej wszystkie użycia usługi API`},"title.allCredentials":{message:`Klucze`,description:`Tytuł strony wyświetlającej wszystkie poświadczenia, które służą do uzyskania dostępu do API`},"about.title1":{message:`Kontakt`,description:`Tytuł sekcji wyświetlającej informacje kontaktowe`},"about.title2":{message:`Zasoby`,description:`Wyświetla część tytułu z linkami`},"about.title3":{message:`Linki`,description:`Wyświetla część tytułu z informacjami wsparcia`},"about.address":{message:`131 Continental Dr, Suite 305, Newark, DE 19713, USA`,description:`Adres firmy`},"about.email":{message:`office@acedata.cloud`,description:`E-mail firmy`},"about.link1":{message:`Usługi`,description:`Link do strony dokumentacji`},"about.link2":{message:`Dokumentacja dewelopera`,description:`Link do strony usług`},"about.link3":{message:`Konsola`,description:`Link do strony konsoli`},"about.link4":{message:`Profil`,description:`Link do strony profilu`},"about.link5":{message:`Platforma UI`,description:`Link do strony głównej`},"about.link6":{message:`Zyski z poleceń`,description:`Link do strony zysków z poleceń`},"about.link7":{message:`Wsparcie`,description:`Link do strony wsparcia`},"about.link8":{message:`Warunki korzystania`,description:`Link do strony warunków korzystania`},"about.link9":{message:`Polityka prywatności`,description:`Link do strony polityki prywatności`},"theme.light":{message:`Jasny`,description:`Nazwa jasnego motywu`},"theme.dark":{message:`Ciemny`,description:`Nazwa ciemnego motywu`},"theme.system":{message:`Systemowy`,description:`Nazwa motywu systemowego, oznaczająca automatyczne przełączanie motywu w zależności od ustawień systemowych`},"settings.general":{message:`Ustawienia ogólne`,description:`Tytuł sekcji ustawień ogólnych na stronie ustawień`},"settings.language":{message:`Język`,description:`Tytuł sekcji ustawień językowych na stronie ustawień`},"settings.theme":{message:`Motyw`,description:`Tytuł sekcji ustawień motywu na stronie ustawień`},"settings.seo":{message:`Ustawienia SEO`,description:`Tytuł sekcji ustawień SEO na stronie ustawień`},"settings.site":{message:`Ustawienia witryny`,description:`Tytuł sekcji ustawień witryny na stronie ustawień`},"settings.distribution":{message:`Ustawienia dystrybucji`,description:`Tytuł sekcji ustawień dystrybucji na stronie ustawień`},"settings.function":{message:`Ustawienia funkcji`,description:`Tytuł sekcji ustawień funkcji na stronie ustawień`},"settings.auth":{message:`Metoda logowania`,description:`Tytuł zakładki „Metoda logowania” w bocznym pasku ustawień — konfiguruje dostępne metody logowania oraz domyślną metodę logowania, widoczną tylko dla administratorów witryny.`},"settings.apiKey":{message:`Klucz API`,description:`Etykieta Klucz API w bocznym pasku na stronie ustawień - zarządzanie kluczem API dostawcy usług upstream (BYOK)`},"field.operations":{message:`Operacje`,description:`Ogólny tytuł kolumny: kolumna przycisków operacji w wierszach tabeli (edytuj, usuń itp.)`},"nav.gemini":{message:`Gemini`,description:`Tekst w pasku nawigacyjnym strony, aby wyświetlić stronę Gemini, musi pozostać jako 'Gemini'`},"nav.claude":{message:`Claude`,description:`Tekst w pasku nawigacyjnym strony, aby wyświetlić stronę Claude, musi pozostać jako 'Claude'`},"button.detail":{message:`Szczegóły`,description:``},"button.testEnv":{message:`Środowisko testowe`,description:`Tekst w przycisku do przełączania na środowisko testowe`},"button.upload":{message:`Prześlij`,description:`Tekst w przycisku do przesyłania plików lub treści`},"message.cnbeian":{message:`Rejestracja w Chinach`,description:`Informacje o rejestracji w Chinach`},"message.copyFailed":{message:`Kopiowanie nie powiodło się`,description:`Komunikat o niepowodzeniu kopiowania treści`},"nav.tryNow":{message:`Wypróbuj teraz`,description:`Tekst w pasku nawigacyjnym strony, aby umożliwić użytkownikowi wypróbowanie usługi`},"title.coin":{message:`Kryptowaluty`,description:`Tytuł strony wyświetlającej kryptowaluty`},"title.distributionRank":{message:`Ranking poleceń`,description:`Tytuł strony wyświetlającej ranking poleceń`},"title.distributionPlatformRank":{message:`Ranking platform`,description:`Tytuł strony wyświetlającej ranking platform`},"customers.name1":{message:`Mark Du`,description:`Imię i nazwisko klienta`},"customers.job1":{message:`Inżynier oprogramowania`,description:`Zawód klienta`},"customers.comment1":{message:`Ace Data Cloud zapewnił naszemu zespołowi doskonałą obsługę, pomagając nam zwiększyć wydajność. Bardzo polecam!`,description:`Ocena klienta`},"customers.name2":{message:`Jacob Williams`,description:`Imię i nazwisko klienta`},"customers.job2":{message:`Menadżer produktu`,description:`Zawód klienta`},"customers.comment2":{message:`Ace Data Cloud to świetna platforma integracyjna, jakość usług jest doskonała.`,description:`Ocena klienta`},"customers.name3":{message:`Larry Henry`,description:`Imię i nazwisko klienta`},"customers.job3":{message:`Projektant`,description:`Zawód klienta`},"customers.comment3":{message:`Uwielbiam usługi Ace Data Cloud, są łatwe w użyciu i w przystępnej cenie, mam nadzieję, że będą coraz lepsze!`,description:`Ocena klienta`},"nav.github":{message:`GitHub`,description:`Link do repozytorium GitHub`},"settings.github":{message:`Kod źródłowy`,description:`Link do przeglądania kodu źródłowego na GitHubie`},"settings.about":{message:`O aplikacji`,description:`Tytuł sekcji o aplikacji na stronie ustawień`},"settings.localTools":{message:`Narzędzia lokalne`,description:`Desktop-only settings tab for managing local tool folders, permissions and grants.`},"settings.localToolsDesktopOnly":{message:`Dostępne tylko w aplikacji desktopowej.`,description:`Shown when the Local Tools tab is opened on web/mobile.`},"settings.localToolsFoldersTitle":{message:`Autoryzowane foldery`,description:`Heading for the list of folders the AI may read/write locally.`},"settings.localToolsFoldersHint":{message:`Foldery, które AI może odczytywać i zapisywać na tym urządzeniu. Narzędzia działają lokalnie; nic nie opuszcza urządzenia bez Twojej zgody.`,description:`Help text under the authorized-folders heading.`},"settings.localToolsComputerUseTitle":{message:`Computer Use (experimental)`,description:`Heading for the opt-in Computer Use (screen + mouse/keyboard control) toggle.`},"settings.localToolsComputerUseHint":{message:`Let the AI see your screen and control the mouse and keyboard on this computer. Off by default — turn it on only when you need it. On macOS, grant Screen Recording and Accessibility permissions below. Each action still asks for your confirmation.`,description:`Help text under the Computer Use toggle.`},"settings.localToolsPreauthorizeAll":`Wstępnie zatwierdź wszystkie działania komputera`,"settings.localToolsPreauthorizeHint":`Zezwól od razu na zrzut ekranu, kliknięcie, pisanie, klawisze i wszystkie działania oraz poproś o wymagane uprawnienia systemowe.`,"settings.localToolsAddFolder":{message:`Dodaj folder`,description:`Button to pick a folder to authorize.`},"settings.localToolsRemove":{message:`Usuń`,description:`Button to remove an authorized folder.`},"settings.localToolsNoFolders":{message:`Brak autoryzowanych folderów.`,description:`Empty state for the authorized-folders list.`},"settings.localToolsSave":{message:`Zapisz`,description:`Save the authorized folders.`},"settings.localToolsSaved":{message:`Zapisano`,description:`Transient confirmation after saving local-tool folders.`},"settings.localToolsActiveTools":{message:`Aktywne narzędzia`,description:`Label before the list of currently available local tools.`},"settings.localToolsGrantsTitle":{message:`Zawsze dozwolone działania`,description:`Heading for the persistent consent grants list.`},"settings.localToolsGrantsHint":{message:`Wywołania narzędzi, które wybrałeś, aby zawsze zezwalać. Działają bez ponownego pytania. Cofnij dowolne, aby ponownie włączyć potwierdzenie.`,description:`Help text under the always-allowed actions heading.`},"settings.localToolsRevoke":{message:`Cofnij`,description:`Button to revoke a single always-allow grant.`},"settings.localToolsRevokeAll":{message:`Cofnij wszystkie`,description:`Button to revoke every always-allow grant.`},"settings.localToolsNoGrants":{message:`Brak zawsze dozwolonych działań. Przed każdym lokalnym narzędziem pojawi się pytanie.`,description:`Empty state for the always-allowed actions list.`},"settings.localToolsPermsTitle":{message:`Uprawnienia systemowe`,description:`Heading for the macOS system-permission section.`},"settings.localToolsPermsHint":{message:`Opcjonalne. Dostęp do folderów powyżej ich nie wymaga — przyznawaj tylko to, czego wymaga konkretne zadanie.`,description:`Help text under the system-permissions heading.`},"settings.localToolsPermFullDisk":{message:`Pełny dostęp do dysku`,description:`macOS Full Disk Access permission row.`},"settings.localToolsPermScreen":{message:`Nagrywanie ekranu`,description:`macOS Screen Recording permission row.`},"settings.localToolsPermAccessibility":{message:`Dostępność`,description:`macOS Accessibility permission row.`},"settings.localToolsGranted":{message:`Przyznano`,description:`Status tag when a system permission is granted.`},"settings.localToolsNotGranted":{message:`Nie przyznano`,description:`Status tag when a system permission is not granted.`},"settings.localToolsOpen":{message:`Otwórz…`,description:`Button to open the relevant macOS System Settings pane.`},"settings.subsites":{message:`Moje podstrony`,description:`Tytuł zakładki zarządzania podstronami w oknie ustawień. Widoczne tylko na oficjalnej stronie głównej, podstrony nie są wyświetlane.`},"settings.adminOnlyHint":{message:`Ten dział jest widoczny tylko dla administratorów witryny, zwykli użytkownicy nie mają dostępu.`,description:`To jest komunikat wyświetlany na górze zakładek w ustawieniach witryny / ustawieniach SEO / ustawieniach dystrybucji / ustawieniach funkcji, które są widoczne tylko dla administratorów.`},"settings.officialOnlyHint":{message:`Ten dział jest widoczny tylko na głównej stronie, nie będzie wyświetlany na podstronach.`,description:`To jest komunikat wyświetlany na górze zakładki 'Moje podstrony', informujący, że ten dostęp jest dostępny tylko na oficjalnej głównej stronie.`},"settings.customDomain":{message:`Domena niestandardowa`,description:`Title for the custom-domain management tab in the settings popup. Visible only on subsites (non-main-official hosts) for site admins.`},"settings.buildNow":{message:`Zbuduj teraz`,description:`Tekst przycisku 'Zbuduj podstronę' na stronie o aplikacji, widoczny tylko na oficjalnej stronie głównej`},"settings.poweredBy":{message:`Projekt open source`,description:`Tytuł sekcji na stronie o aplikacji, która pokazuje, na jakim projekcie open source oparta jest ta strona`},"settings.poweredByTip":{message:`Ta strona oparta jest na projekcie open source Nexior, kod jest całkowicie otwarty.`,description:`Opis na stronie o aplikacji, który pokazuje, na jakim projekcie open source oparta jest ta strona`},"settings.apiService":{message:`Usługa API`,description:`Tytuł sekcji na stronie o aplikacji, która pokazuje dostawcę usługi API`},"settings.apiServiceTip":{message:`Usługa API tej strony jest dostarczana przez Ace Data Cloud.`,description:`Opis na stronie o aplikacji, który pokazuje dostawcę usługi API`},"settings.buildYourOwn":{message:`Zbuduj własną`,description:`Tytuł sekcji na stronie o aplikacji, która informuje użytkowników, że mogą zbudować podobną stronę`},"settings.buildYourOwnTip":{message:`Chcesz zbudować podobną stronę AI? Skontaktuj się z nami, aby uzyskać wsparcie w zakresie wdrożenia.`,description:`Opis na stronie o aplikacji dotyczący budowy podobnej strony`},"settings.contactUs":{message:`Skontaktuj się z nami`,description:`Tekst przycisku do kontaktu z obsługą klienta`},"message.viewOnGithub":{message:`Zobacz na GitHubie`,description:`Tekst linku do przeglądania projektu na GitHubie`},"title.notFound":{message:`Strona nie znaleziona`,description:`Tytuł strony 404`},"message.notFound":{message:`Strona, którą próbujesz odwiedzić, nie istnieje, być może link został zmieniony lub usunięty. Wróć na stronę główną, aby kontynuować odkrywanie usług AI AceData.`,description:`Opis podtytułu na stronie 404`},"message.notFoundEyebrow":{message:`Coś poszło nie tak`,description:`Tekst małej etykiety na górze strony 404`},"message.notFoundPath":{message:`Ścieżka żądania`,description:`Etykieta wyświetlająca aktualną ścieżkę żądania na stronie 404`},"button.backToHome":{message:`Wróć na stronę główną`,description:`Tekst przycisku do powrotu na stronę główną`},"button.goBack":{message:`Wróć do poprzedniej strony`,description:`Tekst przycisku do powrotu do poprzedniej strony w historii przeglądania`},"title.apiCode":{message:`API code for this request`,description:`Title of the dialog that shows the equivalent API code (curl / Python / Node) that would reproduce a result generated inside the product`},"message.viewCodeHint":{message:`Show API code for this request`,description:`Tooltip text on the View Code button shown alongside result-card action buttons (U1/U2/Download/Extend/...). Clicking the button opens a dialog with curl / Python / Node snippets that reproduce the same generation via the public API.`},"button.viewCode":{message:`View code`,description:`Button text that opens a dialog with the equivalent API code (curl / Python / Node) for the current result, similar to the OpenAI Playground 'View code' affordance`},"button.getApiKey":{message:`Get an API key`,description:`Link text in the API code dialog footer that opens the platform console page where users can create an API key`},"button.apiPlatform":{message:`API Platform`,description:`API code dialog footer button label. Clicking opens https://platform.acedata.cloud/ in a new tab so users can manage their API keys, balance and usage.`},"message.apiCodeIntro":{message:`Run this from your own code to produce the same result. Replace <YOUR_API_KEY> with a key from your platform console.`,description:`Helper text shown above the code tabs in the API code dialog, explaining how to use the snippet`},"tab.apiRequest":{message:`Żądanie`,description:`Etykieta zakładki dialogu kodu API dla fragmentu żądania (kod, który reprodukuje aktualny wynik).`},"tab.apiResponse":{message:`Odpowiedź`,description:`Etykieta zakładki dialogu kodu API dla odpowiedzi na żywo zwróconej po kliknięciu Uruchom.`},"button.apiRun":{message:`Uruchom ponownie`,description:`Przycisk w dialogu kodu API, który ponownie uruchamia żądanie na żywo za pomocą klucza użytkownika. Wynik już istnieje, więc kliknięcie uruchamia go ponownie i jest płatne.`},"button.apiRunning":{message:`Uruchamianie…`,description:`Etykieta przycisku Uruchom w dialogu kodu API, gdy żądanie na żywo jest w trakcie realizacji.`},"button.apiRunConfirm":{message:`Potwierdź uruchomienie`,description:`Etykieta przycisku potwierdzenia w dialogu, który ostrzega, że uruchomienie tutaj zużywa dodatkowe kredyty.`},"button.viewDocs":{message:`Zobacz dokumentację`,description:`Przycisk w stopce dialogu kodu API, który otwiera odpowiednią stronę dokumentacji API na platformie.`},"message.apiClickRun":{message:`Kliknij „Uruchom ponownie”, aby użyć swojego klucza API do wykonania tego żądania na żywo.`,description:`Stan pusty zakładki Odpowiedź w dialogu kodu API, wyświetlany przed uruchomieniem żądania przez użytkownika.`},"message.apiRunConfirmTitle":{message:`Potwierdź uruchomienie`,description:`Tytuł dialogu potwierdzenia wyświetlanego przed ponownym uruchomieniem żądania z dialogu kodu API.`},"message.apiRunConfirmDesc":{message:`To uruchomienie użyje twojego klucza API do rzeczywistego wywołania interfejsu i dodatkowo zużyje punkty, czy chcesz kontynuować?`,description:`Treść dialogu potwierdzenia ostrzegającego, że ponowne uruchomienie żądania to rzeczywiste, płatne wywołanie API.`},"message.apiRunConfirmSkip":{message:`Nie pokazuj ponownie`,description:`Pole wyboru w dialogu potwierdzenia uruchomienia, które, gdy jest zaznaczone, tłumi ostrzeżenie przy kolejnych uruchomieniach.`},"message.apiRunTaskCreated":{message:`Zadanie zostało utworzone, zamknij to okno, aby zobaczyć najnowsze wyniki poniżej.`,description:`Baner sukcesu wyświetlany w oknie dialogowym kodu API po uruchomieniu, które zwraca identyfikator zadania, sugerując, że nowe zadanie już pojawia się na liście za oknem dialogowym.`},"button.apiViewLatest":{message:`Zamknij i zobacz`,description:`Przycisk w banerze sukcesu okna dialogowego kodu API, który zamyka okno, aby użytkownik mógł zobaczyć nowo utworzone zadanie na liście poniżej.`},"message.uploadInProgress":{message:`Przesyłanie plików referencyjnych nadal trwa — proszę chwilę poczekać.`,description:`Toast shown when the user clicks the Generate button while one or more reference uploads are still in flight. Asks them to wait for uploads to complete before retrying.`},"appUpgrade.title":{message:`Update required`,description:`Title of the native-app version gate modal shown at startup when the installed build is older than what the backend supports.`},"appUpgrade.blockMessage":{message:`This version is no longer supported. Please update from the app store to continue.`,description:`Body text of the hard-block upgrade modal shown when the installed version is below min_supported. The modal has no dismiss affordance — the only button opens the app store.`},"appUpgrade.softMessage":{message:`A newer version is available. Update from the app store for the best experience.`,description:`Body text of the soft upgrade prompt shown when the installed version is below latest but above min_supported. The user can dismiss and keep using the app.`},"appUpgrade.openStore":{message:`Update now`,description:`Primary button on the upgrade modal — opens the App Store / Play Store URL in the system browser.`},"appUpgrade.later":{message:`Later`,description:`Secondary button on the soft upgrade prompt — dismisses the modal and lets the user keep using the current version. Only shown for non-forced upgrades.`},"nav.maestro":{message:`Maestro`,description:`Tekst na stronie przejścia z artykułu na wideo w nawigacji, pozostaje jako 'Maestro'`},"nav.digitalhuman":{message:`Digital Human`,description:`Text in the website navigation bar for the Digital Human talking-head page`}};export{e as default};
|