From 444ac4342d6d4d6148c9bc65e96486e1eed39538 Mon Sep 17 00:00:00 2001 From: Alain Nussbaumer Date: Tue, 11 Mar 2025 19:45:03 +0100 Subject: [PATCH] [web] Update versions of libraries --- htdocs/assets/index.js | 14 +- web-src/package-lock.json | 545 +++++++++++++++++++------------------- 2 files changed, 285 insertions(+), 274 deletions(-) diff --git a/htdocs/assets/index.js b/htdocs/assets/index.js index 5ecebf0d..cb0d91d1 100644 --- a/htdocs/assets/index.js +++ b/htdocs/assets/index.js @@ -24,26 +24,26 @@ `).forEach(function(o){i=o.indexOf(":"),n=o.substring(0,i).trim().toLowerCase(),s=o.substring(i+1).trim(),!(!n||e[n]&&WC[n])&&(n==="set-cookie"?e[n]?e[n].push(s):e[n]=[s]:e[n]=e[n]?e[n]+", "+s:s)}),e},Jm=Symbol("internals");function jo(t){return t&&String(t).trim().toLowerCase()}function Zl(t){return t===!1||t==null?t:J.isArray(t)?t.map(Zl):String(t)}function GC(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let s;for(;s=n.exec(t);)e[s[1]]=s[2];return e}const zC=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function Id(t,e,n,s,i){if(J.isFunction(s))return s.call(this,e,n);if(i&&(e=n),!!J.isString(e)){if(J.isString(s))return e.indexOf(s)!==-1;if(J.isRegExp(s))return s.test(e)}}function KC(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,s)=>n.toUpperCase()+s)}function XC(t,e){const n=J.toCamelCase(" "+e);["get","set","has"].forEach(s=>{Object.defineProperty(t,s+n,{value:function(i,r,o){return this[s].call(this,e,i,r,o)},configurable:!0})})}let Vn=class{constructor(e){e&&this.set(e)}set(e,n,s){const i=this;function r(a,l,c){const u=jo(l);if(!u)throw new Error("header name must be a non-empty string");const d=J.findKey(i,u);(!d||i[d]===void 0||c===!0||c===void 0&&i[d]!==!1)&&(i[d||l]=Zl(a))}const o=(a,l)=>J.forEach(a,(c,u)=>r(c,u,l));if(J.isPlainObject(e)||e instanceof this.constructor)o(e,n);else if(J.isString(e)&&(e=e.trim())&&!zC(e))o(qC(e),n);else if(J.isHeaders(e))for(const[a,l]of e.entries())r(l,a,s);else e!=null&&r(n,e,s);return this}get(e,n){if(e=jo(e),e){const s=J.findKey(this,e);if(s){const i=this[s];if(!n)return i;if(n===!0)return GC(i);if(J.isFunction(n))return n.call(this,i,s);if(J.isRegExp(n))return n.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,n){if(e=jo(e),e){const s=J.findKey(this,e);return!!(s&&this[s]!==void 0&&(!n||Id(this,this[s],s,n)))}return!1}delete(e,n){const s=this;let i=!1;function r(o){if(o=jo(o),o){const a=J.findKey(s,o);a&&(!n||Id(s,s[a],a,n))&&(delete s[a],i=!0)}}return J.isArray(e)?e.forEach(r):r(e),i}clear(e){const n=Object.keys(this);let s=n.length,i=!1;for(;s--;){const r=n[s];(!e||Id(this,this[r],r,e,!0))&&(delete this[r],i=!0)}return i}normalize(e){const n=this,s={};return J.forEach(this,(i,r)=>{const o=J.findKey(s,r);if(o){n[o]=Zl(i),delete n[r];return}const a=e?KC(r):String(r).trim();a!==r&&delete n[r],n[a]=Zl(i),s[a]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const n=Object.create(null);return J.forEach(this,(s,i)=>{s!=null&&s!==!1&&(n[i]=e&&J.isArray(s)?s.join(", "):s)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,n])=>e+": "+n).join(` `)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...n){const s=new this(e);return n.forEach(i=>s.set(i)),s}static accessor(e){const s=(this[Jm]=this[Jm]={accessors:{}}).accessors,i=this.prototype;function r(o){const a=jo(o);s[a]||(XC(i,o),s[a]=!0)}return J.isArray(e)?e.forEach(r):r(e),this}};Vn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);J.reduceDescriptors(Vn.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(s){this[n]=s}}});J.freezeMethods(Vn);function Nd(t,e){const n=this||el,s=e||n,i=Vn.from(s.headers);let r=s.data;return J.forEach(t,function(a){r=a.call(n,r,i.normalize(),e?e.status:void 0)}),i.normalize(),r}function y0(t){return!!(t&&t.__CANCEL__)}function Po(t,e,n){Bt.call(this,t??"canceled",Bt.ERR_CANCELED,e,n),this.name="CanceledError"}J.inherits(Po,Bt,{__CANCEL__:!0});function b0(t,e,n){const s=n.config.validateStatus;!n.status||!s||s(n.status)?t(n):e(new Bt("Request failed with status code "+n.status,[Bt.ERR_BAD_REQUEST,Bt.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function YC(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function ZC(t,e){t=t||10;const n=new Array(t),s=new Array(t);let i=0,r=0,o;return e=e!==void 0?e:1e3,function(l){const c=Date.now(),u=s[r];o||(o=c),n[i]=l,s[i]=c;let d=r,f=0;for(;d!==i;)f+=n[d++],d=d%t;if(i=(i+1)%t,i===r&&(r=(r+1)%t),c-o{n=u,i=null,r&&(clearTimeout(r),r=null),t.apply(null,c)};return[(...c)=>{const u=Date.now(),d=u-n;d>=s?o(c,u):(i=c,r||(r=setTimeout(()=>{r=null,o(i)},s-d)))},()=>i&&o(i)]}const Nc=(t,e,n=3)=>{let s=0;const i=ZC(50,250);return JC(r=>{const o=r.loaded,a=r.lengthComputable?r.total:void 0,l=o-s,c=i(l),u=o<=a;s=o;const d={loaded:o,total:a,progress:a?o/a:void 0,bytes:l,rate:c||void 0,estimated:c&&a&&u?(a-o)/c:void 0,event:r,lengthComputable:a!=null,[e?"download":"upload"]:!0};t(d)},n)},Qm=(t,e)=>{const n=t!=null;return[s=>e[0]({lengthComputable:n,total:t,loaded:s}),e[1]]},tg=t=>(...e)=>J.asap(()=>t(...e)),QC=mn.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,mn.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(mn.origin),mn.navigator&&/(msie|trident)/i.test(mn.navigator.userAgent)):()=>!0,tT=mn.hasStandardBrowserEnv?{write(t,e,n,s,i,r){const o=[t+"="+encodeURIComponent(e)];J.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),J.isString(s)&&o.push("path="+s),J.isString(i)&&o.push("domain="+i),r===!0&&o.push("secure"),document.cookie=o.join("; ")},read(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function eT(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function nT(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function v0(t,e,n){let s=!eT(e);return t&&s||n==!1?nT(t,e):e}const eg=t=>t instanceof Vn?{...t}:t;function Cr(t,e){e=e||{};const n={};function s(c,u,d,f){return J.isPlainObject(c)&&J.isPlainObject(u)?J.merge.call({caseless:f},c,u):J.isPlainObject(u)?J.merge({},u):J.isArray(u)?u.slice():u}function i(c,u,d,f){if(J.isUndefined(u)){if(!J.isUndefined(c))return s(void 0,c,d,f)}else return s(c,u,d,f)}function r(c,u){if(!J.isUndefined(u))return s(void 0,u)}function o(c,u){if(J.isUndefined(u)){if(!J.isUndefined(c))return s(void 0,c)}else return s(void 0,u)}function a(c,u,d){if(d in e)return s(c,u);if(d in t)return s(void 0,c)}const l={url:r,method:r,data:r,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:a,headers:(c,u,d)=>i(eg(c),eg(u),d,!0)};return J.forEach(Object.keys(Object.assign({},t,e)),function(u){const d=l[u]||i,f=d(t[u],e[u],u);J.isUndefined(f)&&d!==a||(n[u]=f)}),n}const _0=t=>{const e=Cr({},t);let{data:n,withXSRFToken:s,xsrfHeaderName:i,xsrfCookieName:r,headers:o,auth:a}=e;e.headers=o=Vn.from(o),e.url=p0(v0(e.baseURL,e.url),t.params,t.paramsSerializer),a&&o.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):"")));let l;if(J.isFormData(n)){if(mn.hasStandardBrowserEnv||mn.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if((l=o.getContentType())!==!1){const[c,...u]=l?l.split(";").map(d=>d.trim()).filter(Boolean):[];o.setContentType([c||"multipart/form-data",...u].join("; "))}}if(mn.hasStandardBrowserEnv&&(s&&J.isFunction(s)&&(s=s(e)),s||s!==!1&&QC(e.url))){const c=i&&r&&tT.read(r);c&&o.set(i,c)}return e},sT=typeof XMLHttpRequest<"u",iT=sT&&function(t){return new Promise(function(n,s){const i=_0(t);let r=i.data;const o=Vn.from(i.headers).normalize();let{responseType:a,onUploadProgress:l,onDownloadProgress:c}=i,u,d,f,h,p;function m(){h&&h(),p&&p(),i.cancelToken&&i.cancelToken.unsubscribe(u),i.signal&&i.signal.removeEventListener("abort",u)}let b=new XMLHttpRequest;b.open(i.method.toUpperCase(),i.url,!0),b.timeout=i.timeout;function y(){if(!b)return;const g=Vn.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),w={data:!a||a==="text"||a==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:g,config:t,request:b};b0(function(N){n(N),m()},function(N){s(N),m()},w),b=null}"onloadend"in b?b.onloadend=y:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(y)},b.onabort=function(){b&&(s(new Bt("Request aborted",Bt.ECONNABORTED,t,b)),b=null)},b.onerror=function(){s(new Bt("Network Error",Bt.ERR_NETWORK,t,b)),b=null},b.ontimeout=function(){let v=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const w=i.transitional||m0;i.timeoutErrorMessage&&(v=i.timeoutErrorMessage),s(new Bt(v,w.clarifyTimeoutError?Bt.ETIMEDOUT:Bt.ECONNABORTED,t,b)),b=null},r===void 0&&o.setContentType(null),"setRequestHeader"in b&&J.forEach(o.toJSON(),function(v,w){b.setRequestHeader(w,v)}),J.isUndefined(i.withCredentials)||(b.withCredentials=!!i.withCredentials),a&&a!=="json"&&(b.responseType=i.responseType),c&&([f,p]=Nc(c,!0),b.addEventListener("progress",f)),l&&b.upload&&([d,h]=Nc(l),b.upload.addEventListener("progress",d),b.upload.addEventListener("loadend",h)),(i.cancelToken||i.signal)&&(u=g=>{b&&(s(!g||g.type?new Po(null,t,b):g),b.abort(),b=null)},i.cancelToken&&i.cancelToken.subscribe(u),i.signal&&(i.signal.aborted?u():i.signal.addEventListener("abort",u)));const _=YC(i.url);if(_&&mn.protocols.indexOf(_)===-1){s(new Bt("Unsupported protocol "+_+":",Bt.ERR_BAD_REQUEST,t));return}b.send(r||null)})},rT=(t,e)=>{const{length:n}=t=t?t.filter(Boolean):[];if(e||n){let s=new AbortController,i;const r=function(c){if(!i){i=!0,a();const u=c instanceof Error?c:this.reason;s.abort(u instanceof Bt?u:new Po(u instanceof Error?u.message:u))}};let o=e&&setTimeout(()=>{o=null,r(new Bt(`timeout ${e} of ms exceeded`,Bt.ETIMEDOUT))},e);const a=()=>{t&&(o&&clearTimeout(o),o=null,t.forEach(c=>{c.unsubscribe?c.unsubscribe(r):c.removeEventListener("abort",r)}),t=null)};t.forEach(c=>c.addEventListener("abort",r));const{signal:l}=s;return l.unsubscribe=()=>J.asap(a),l}},oT=function*(t,e){let n=t.byteLength;if(n{const i=aT(t,e);let r=0,o,a=l=>{o||(o=!0,s&&s(l))};return new ReadableStream({async pull(l){try{const{done:c,value:u}=await i.next();if(c){a(),l.close();return}let d=u.byteLength;if(n){let f=r+=d;n(f)}l.enqueue(new Uint8Array(u))}catch(c){throw a(c),c}},cancel(l){return a(l),i.return()}},{highWaterMark:2})},Iu=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",S0=Iu&&typeof ReadableStream=="function",cT=Iu&&(typeof TextEncoder=="function"?(t=>e=>t.encode(e))(new TextEncoder):async t=>new Uint8Array(await new Response(t).arrayBuffer())),E0=(t,...e)=>{try{return!!t(...e)}catch{return!1}},uT=S0&&E0(()=>{let t=!1;const e=new Request(mn.origin,{body:new ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type");return t&&!e}),sg=64*1024,Uf=S0&&E0(()=>J.isReadableStream(new Response("").body)),Pc={stream:Uf&&(t=>t.body)};Iu&&(t=>{["text","arrayBuffer","blob","formData","stream"].forEach(e=>{!Pc[e]&&(Pc[e]=J.isFunction(t[e])?n=>n[e]():(n,s)=>{throw new Bt(`Response type '${e}' is not supported`,Bt.ERR_NOT_SUPPORT,s)})})})(new Response);const dT=async t=>{if(t==null)return 0;if(J.isBlob(t))return t.size;if(J.isSpecCompliantForm(t))return(await new Request(mn.origin,{method:"POST",body:t}).arrayBuffer()).byteLength;if(J.isArrayBufferView(t)||J.isArrayBuffer(t))return t.byteLength;if(J.isURLSearchParams(t)&&(t=t+""),J.isString(t))return(await cT(t)).byteLength},fT=async(t,e)=>{const n=J.toFiniteNumber(t.getContentLength());return n??dT(e)},hT=Iu&&(async t=>{let{url:e,method:n,data:s,signal:i,cancelToken:r,timeout:o,onDownloadProgress:a,onUploadProgress:l,responseType:c,headers:u,withCredentials:d="same-origin",fetchOptions:f}=_0(t);c=c?(c+"").toLowerCase():"text";let h=rT([i,r&&r.toAbortSignal()],o),p;const m=h&&h.unsubscribe&&(()=>{h.unsubscribe()});let b;try{if(l&&uT&&n!=="get"&&n!=="head"&&(b=await fT(u,s))!==0){let w=new Request(e,{method:"POST",body:s,duplex:"half"}),k;if(J.isFormData(s)&&(k=w.headers.get("content-type"))&&u.setContentType(k),w.body){const[N,R]=Qm(b,Nc(tg(l)));s=ng(w.body,sg,N,R)}}J.isString(d)||(d=d?"include":"omit");const y="credentials"in Request.prototype;p=new Request(e,{...f,signal:h,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:s,duplex:"half",credentials:y?d:void 0});let _=await fetch(p);const g=Uf&&(c==="stream"||c==="response");if(Uf&&(a||g&&m)){const w={};["status","statusText","headers"].forEach(T=>{w[T]=_[T]});const k=J.toFiniteNumber(_.headers.get("content-length")),[N,R]=a&&Qm(k,Nc(tg(a),!0))||[];_=new Response(ng(_.body,sg,N,()=>{R&&R(),m&&m()}),w)}c=c||"text";let v=await Pc[J.findKey(Pc,c)||"text"](_,t);return!g&&m&&m(),await new Promise((w,k)=>{b0(w,k,{data:v,headers:Vn.from(_.headers),status:_.status,statusText:_.statusText,config:t,request:p})})}catch(y){throw m&&m(),y&&y.name==="TypeError"&&/fetch/i.test(y.message)?Object.assign(new Bt("Network Error",Bt.ERR_NETWORK,t,p),{cause:y.cause||y}):Bt.from(y,y&&y.code,t,p)}}),jf={http:OC,xhr:iT,fetch:hT};J.forEach(jf,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch{}Object.defineProperty(t,"adapterName",{value:e})}});const ig=t=>`- ${t}`,pT=t=>J.isFunction(t)||t===null||t===!1,w0={getAdapter:t=>{t=J.isArray(t)?t:[t];const{length:e}=t;let n,s;const i={};for(let r=0;r`adapter ${a} `+(l===!1?"is not supported by the environment":"is not available in the build"));let o=e?r.length>1?`since : `+r.map(ig).join(` -`):" "+ig(r[0]):"as no adapter specified";throw new Bt("There is no suitable adapter to dispatch the request "+o,"ERR_NOT_SUPPORT")}return s},adapters:jf};function Pd(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Po(null,t)}function rg(t){return Pd(t),t.headers=Vn.from(t.headers),t.data=Nd.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),w0.getAdapter(t.adapter||el.adapter)(t).then(function(s){return Pd(t),s.data=Nd.call(t,t.transformResponse,s),s.headers=Vn.from(s.headers),s},function(s){return y0(s)||(Pd(t),s&&s.response&&(s.response.data=Nd.call(t,t.transformResponse,s.response),s.response.headers=Vn.from(s.response.headers))),Promise.reject(s)})}const k0="1.8.1",Nu={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{Nu[t]=function(s){return typeof s===t||"a"+(e<1?"n ":" ")+t}});const og={};Nu.transitional=function(e,n,s){function i(r,o){return"[Axios v"+k0+"] Transitional option '"+r+"'"+o+(s?". "+s:"")}return(r,o,a)=>{if(e===!1)throw new Bt(i(o," has been removed"+(n?" in "+n:"")),Bt.ERR_DEPRECATED);return n&&!og[o]&&(og[o]=!0,console.warn(i(o," has been deprecated since v"+n+" and will be removed in the near future"))),e?e(r,o,a):!0}};Nu.spelling=function(e){return(n,s)=>(console.warn(`${s} is likely a misspelling of ${e}`),!0)};function mT(t,e,n){if(typeof t!="object")throw new Bt("options must be an object",Bt.ERR_BAD_OPTION_VALUE);const s=Object.keys(t);let i=s.length;for(;i-- >0;){const r=s[i],o=e[r];if(o){const a=t[r],l=a===void 0||o(a,r,t);if(l!==!0)throw new Bt("option "+r+" must be "+l,Bt.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Bt("Unknown option "+r,Bt.ERR_BAD_OPTION)}}const Jl={assertOptions:mT,validators:Nu},Ns=Jl.validators;let _r=class{constructor(e){this.defaults=e,this.interceptors={request:new Zm,response:new Zm}}async request(e,n){try{return await this._request(e,n)}catch(s){if(s instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const r=i.stack?i.stack.replace(/^.+\n/,""):"";try{s.stack?r&&!String(s.stack).endsWith(r.replace(/^.+\n.+\n/,""))&&(s.stack+=` +`):" "+ig(r[0]):"as no adapter specified";throw new Bt("There is no suitable adapter to dispatch the request "+o,"ERR_NOT_SUPPORT")}return s},adapters:jf};function Pd(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Po(null,t)}function rg(t){return Pd(t),t.headers=Vn.from(t.headers),t.data=Nd.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),w0.getAdapter(t.adapter||el.adapter)(t).then(function(s){return Pd(t),s.data=Nd.call(t,t.transformResponse,s),s.headers=Vn.from(s.headers),s},function(s){return y0(s)||(Pd(t),s&&s.response&&(s.response.data=Nd.call(t,t.transformResponse,s.response),s.response.headers=Vn.from(s.response.headers))),Promise.reject(s)})}const k0="1.8.2",Nu={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{Nu[t]=function(s){return typeof s===t||"a"+(e<1?"n ":" ")+t}});const og={};Nu.transitional=function(e,n,s){function i(r,o){return"[Axios v"+k0+"] Transitional option '"+r+"'"+o+(s?". "+s:"")}return(r,o,a)=>{if(e===!1)throw new Bt(i(o," has been removed"+(n?" in "+n:"")),Bt.ERR_DEPRECATED);return n&&!og[o]&&(og[o]=!0,console.warn(i(o," has been deprecated since v"+n+" and will be removed in the near future"))),e?e(r,o,a):!0}};Nu.spelling=function(e){return(n,s)=>(console.warn(`${s} is likely a misspelling of ${e}`),!0)};function mT(t,e,n){if(typeof t!="object")throw new Bt("options must be an object",Bt.ERR_BAD_OPTION_VALUE);const s=Object.keys(t);let i=s.length;for(;i-- >0;){const r=s[i],o=e[r];if(o){const a=t[r],l=a===void 0||o(a,r,t);if(l!==!0)throw new Bt("option "+r+" must be "+l,Bt.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Bt("Unknown option "+r,Bt.ERR_BAD_OPTION)}}const Jl={assertOptions:mT,validators:Nu},Ns=Jl.validators;let _r=class{constructor(e){this.defaults=e,this.interceptors={request:new Zm,response:new Zm}}async request(e,n){try{return await this._request(e,n)}catch(s){if(s instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const r=i.stack?i.stack.replace(/^.+\n/,""):"";try{s.stack?r&&!String(s.stack).endsWith(r.replace(/^.+\n.+\n/,""))&&(s.stack+=` `+r):s.stack=r}catch{}}throw s}}_request(e,n){typeof e=="string"?(n=n||{},n.url=e):n=e||{},n=Cr(this.defaults,n);const{transitional:s,paramsSerializer:i,headers:r}=n;s!==void 0&&Jl.assertOptions(s,{silentJSONParsing:Ns.transitional(Ns.boolean),forcedJSONParsing:Ns.transitional(Ns.boolean),clarifyTimeoutError:Ns.transitional(Ns.boolean)},!1),i!=null&&(J.isFunction(i)?n.paramsSerializer={serialize:i}:Jl.assertOptions(i,{encode:Ns.function,serialize:Ns.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Jl.assertOptions(n,{baseUrl:Ns.spelling("baseURL"),withXsrfToken:Ns.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let o=r&&J.merge(r.common,r[n.method]);r&&J.forEach(["delete","get","head","post","put","patch","common"],p=>{delete r[p]}),n.headers=Vn.concat(o,r);const a=[];let l=!0;this.interceptors.request.forEach(function(m){typeof m.runWhen=="function"&&m.runWhen(n)===!1||(l=l&&m.synchronous,a.unshift(m.fulfilled,m.rejected))});const c=[];this.interceptors.response.forEach(function(m){c.push(m.fulfilled,m.rejected)});let u,d=0,f;if(!l){const p=[rg.bind(this),void 0];for(p.unshift.apply(p,a),p.push.apply(p,c),f=p.length,u=Promise.resolve(n);d{if(!s._listeners)return;let r=s._listeners.length;for(;r-- >0;)s._listeners[r](i);s._listeners=null}),this.promise.then=i=>{let r;const o=new Promise(a=>{s.subscribe(a),r=a}).then(i);return o.cancel=function(){s.unsubscribe(r)},o},e(function(r,o,a){s.reason||(s.reason=new Po(r,o,a),n(s.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const e=new AbortController,n=s=>{e.abort(s)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new C0(function(i){e=i}),cancel:e}}};function yT(t){return function(n){return t.apply(null,n)}}function bT(t){return J.isObject(t)&&t.isAxiosError===!0}const Bf={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Bf).forEach(([t,e])=>{Bf[e]=t});function T0(t){const e=new _r(t),n=s0(_r.prototype.request,e);return J.extend(n,_r.prototype,e,{allOwnKeys:!0}),J.extend(n,e,null,{allOwnKeys:!0}),n.create=function(i){return T0(Cr(t,i))},n}const ut=T0(el);ut.Axios=_r;ut.CanceledError=Po;ut.CancelToken=gT;ut.isCancel=y0;ut.VERSION=k0;ut.toFormData=xu;ut.AxiosError=Bt;ut.Cancel=ut.CanceledError;ut.all=function(e){return Promise.all(e)};ut.spread=yT;ut.isAxiosError=bT;ut.mergeConfig=Cr;ut.AxiosHeaders=Vn;ut.formToJSON=t=>g0(J.isHTMLForm(t)?new FormData(t):t);ut.getAdapter=w0.getAdapter;ut.HttpStatusCode=Bf;ut.default=ut;const{Axios:WB,AxiosError:qB,CanceledError:GB,isCancel:zB,CancelToken:KB,VERSION:XB,all:YB,Cancel:ZB,isAxiosError:JB,spread:QB,toFormData:tW,AxiosHeaders:eW,HttpStatusCode:nW,formToJSON:sW,getAdapter:iW,mergeConfig:rW}=ut;/*! - * shared v11.1.1 + * shared v11.1.2 * (c) 2025 kazuya kawaguchi * Released under the MIT License. */const Dc=typeof window<"u",Ji=(t,e=!1)=>e?Symbol.for(t):Symbol(t),vT=(t,e,n)=>_T({l:t,k:e,s:n}),_T=t=>JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),ze=t=>typeof t=="number"&&isFinite(t),ST=t=>ep(t)==="[object Date]",Rc=t=>ep(t)==="[object RegExp]",Pu=t=>re(t)&&Object.keys(t).length===0,nn=Object.assign,ET=Object.create,Se=(t=null)=>ET(t);let ag;const tp=()=>ag||(ag=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Se());function lg(t){return t.replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}const wT=Object.prototype.hasOwnProperty;function Ss(t,e){return wT.call(t,e)}const Ze=Array.isArray,Pe=t=>typeof t=="function",St=t=>typeof t=="string",De=t=>typeof t=="boolean",fe=t=>t!==null&&typeof t=="object",kT=t=>fe(t)&&Pe(t.then)&&Pe(t.catch),A0=Object.prototype.toString,ep=t=>A0.call(t),re=t=>ep(t)==="[object Object]",CT=t=>t==null?"":Ze(t)||re(t)&&t.toString===A0?JSON.stringify(t,null,2):String(t);function np(t,e=""){return t.reduce((n,s,i)=>i===0?n+s:n+e+s,"")}function TT(t,e){typeof console<"u"&&(console.warn("[intlify] "+t),e&&console.warn(e.stack))}const kl=t=>!fe(t)||Ze(t);function Ql(t,e){if(kl(t)||kl(e))throw new Error("Invalid value");const n=[{src:t,des:e}];for(;n.length;){const{src:s,des:i}=n.pop();Object.keys(s).forEach(r=>{r!=="__proto__"&&(fe(s[r])&&!fe(i[r])&&(i[r]=Array.isArray(s[r])?[]:Se()),kl(i[r])||kl(s[r])?i[r]=s[r]:n.push({src:s[r],des:i[r]}))})}}/*! - * message-compiler v11.1.1 + * message-compiler v11.1.2 * (c) 2025 kazuya kawaguchi * Released under the MIT License. */function AT(t,e,n){return{line:t,column:e,offset:n}}function Wf(t,e,n){return{start:t,end:e}}const ve={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14},OT=17;function Du(t,e,n={}){const{domain:s,messages:i,args:r}=n,o=t,a=new SyntaxError(String(o));return a.code=t,e&&(a.location=e),a.domain=s,a}function xT(t){throw t}const zs=" ",IT="\r",En=` `,NT="\u2028",PT="\u2029";function DT(t){const e=t;let n=0,s=1,i=1,r=0;const o=N=>e[N]===IT&&e[N+1]===En,a=N=>e[N]===En,l=N=>e[N]===PT,c=N=>e[N]===NT,u=N=>o(N)||a(N)||l(N)||c(N),d=()=>n,f=()=>s,h=()=>i,p=()=>r,m=N=>o(N)||l(N)||c(N)?En:e[N],b=()=>m(n),y=()=>m(n+r);function _(){return r=0,u(n)&&(s++,i=0),o(n)&&n++,n++,i++,e[n]}function g(){return o(n+r)&&r++,r++,e[n+r]}function v(){n=0,s=1,i=1,r=0}function w(N=0){r=N}function k(){const N=n+r;for(;N!==n;)_();r=0}return{index:d,line:f,column:h,peekOffset:p,charAt:m,currentChar:b,currentPeek:y,next:_,peek:g,reset:v,resetPeek:w,skipToPeek:k}}const _i=void 0,RT=".",cg="'",MT="tokenizer";function LT(t,e={}){const n=e.location!==!1,s=DT(t),i=()=>s.index(),r=()=>AT(s.line(),s.column(),s.index()),o=r(),a=i(),l={currentType:13,offset:a,startLoc:o,endLoc:o,lastType:13,lastOffset:a,lastStartLoc:o,lastEndLoc:o,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=e;function d(A,I,V,...X){const nt=c();if(I.column+=V,I.offset+=V,u){const lt=n?Wf(nt.startLoc,I):null,$=Du(A,lt,{domain:MT,args:X});u($)}}function f(A,I,V){A.endLoc=r(),A.currentType=I;const X={type:I};return n&&(X.loc=Wf(A.startLoc,A.endLoc)),V!=null&&(X.value=V),X}const h=A=>f(A,13);function p(A,I){return A.currentChar()===I?(A.next(),I):(d(ve.EXPECTED_TOKEN,r(),0,I),"")}function m(A){let I="";for(;A.currentPeek()===zs||A.currentPeek()===En;)I+=A.currentPeek(),A.peek();return I}function b(A){const I=m(A);return A.skipToPeek(),I}function y(A){if(A===_i)return!1;const I=A.charCodeAt(0);return I>=97&&I<=122||I>=65&&I<=90||I===95}function _(A){if(A===_i)return!1;const I=A.charCodeAt(0);return I>=48&&I<=57}function g(A,I){const{currentType:V}=I;if(V!==2)return!1;m(A);const X=y(A.currentPeek());return A.resetPeek(),X}function v(A,I){const{currentType:V}=I;if(V!==2)return!1;m(A);const X=A.currentPeek()==="-"?A.peek():A.currentPeek(),nt=_(X);return A.resetPeek(),nt}function w(A,I){const{currentType:V}=I;if(V!==2)return!1;m(A);const X=A.currentPeek()===cg;return A.resetPeek(),X}function k(A,I){const{currentType:V}=I;if(V!==7)return!1;m(A);const X=A.currentPeek()===".";return A.resetPeek(),X}function N(A,I){const{currentType:V}=I;if(V!==8)return!1;m(A);const X=y(A.currentPeek());return A.resetPeek(),X}function R(A,I){const{currentType:V}=I;if(!(V===7||V===11))return!1;m(A);const X=A.currentPeek()===":";return A.resetPeek(),X}function T(A,I){const{currentType:V}=I;if(V!==9)return!1;const X=()=>{const lt=A.currentPeek();return lt==="{"?y(A.peek()):lt==="@"||lt==="|"||lt===":"||lt==="."||lt===zs||!lt?!1:lt===En?(A.peek(),X()):B(A,!1)},nt=X();return A.resetPeek(),nt}function D(A){m(A);const I=A.currentPeek()==="|";return A.resetPeek(),I}function B(A,I=!0){const V=(nt=!1,lt="")=>{const $=A.currentPeek();return $==="{"||$==="@"||!$?nt:$==="|"?!(lt===zs||lt===En):$===zs?(A.peek(),V(!0,zs)):$===En?(A.peek(),V(!0,En)):!0},X=V();return I&&A.resetPeek(),X}function F(A,I){const V=A.currentChar();return V===_i?_i:I(V)?(A.next(),V):null}function U(A){const I=A.charCodeAt(0);return I>=97&&I<=122||I>=65&&I<=90||I>=48&&I<=57||I===95||I===36}function Z(A){return F(A,U)}function ot(A){const I=A.charCodeAt(0);return I>=97&&I<=122||I>=65&&I<=90||I>=48&&I<=57||I===95||I===36||I===45}function G(A){return F(A,ot)}function et(A){const I=A.charCodeAt(0);return I>=48&&I<=57}function at(A){return F(A,et)}function Ct(A){const I=A.charCodeAt(0);return I>=48&&I<=57||I>=65&&I<=70||I>=97&&I<=102}function Kt(A){return F(A,Ct)}function Ht(A){let I="",V="";for(;I=at(A);)V+=I;return V}function Wt(A){let I="";for(;;){const V=A.currentChar();if(V==="{"||V==="}"||V==="@"||V==="|"||!V)break;if(V===zs||V===En)if(B(A))I+=V,A.next();else{if(D(A))break;I+=V,A.next()}else I+=V,A.next()}return I}function pe(A){b(A);let I="",V="";for(;I=G(A);)V+=I;return A.currentChar()===_i&&d(ve.UNTERMINATED_CLOSING_BRACE,r(),0),V}function be(A){b(A);let I="";return A.currentChar()==="-"?(A.next(),I+=`-${Ht(A)}`):I+=Ht(A),A.currentChar()===_i&&d(ve.UNTERMINATED_CLOSING_BRACE,r(),0),I}function _e(A){return A!==cg&&A!==En}function qt(A){b(A),p(A,"'");let I="",V="";for(;I=F(A,_e);)I==="\\"?V+=Y(A):V+=I;const X=A.currentChar();return X===En||X===_i?(d(ve.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),X===En&&(A.next(),p(A,"'")),V):(p(A,"'"),V)}function Y(A){const I=A.currentChar();switch(I){case"\\":case"'":return A.next(),`\\${I}`;case"u":return dt(A,I,4);case"U":return dt(A,I,6);default:return d(ve.UNKNOWN_ESCAPE_SEQUENCE,r(),0,I),""}}function dt(A,I,V){p(A,I);let X="";for(let nt=0;nt{const X=A.currentChar();return X==="{"||X==="@"||X==="|"||X==="("||X===")"||!X||X===zs?V:(V+=X,A.next(),I(V))};return I("")}function x(A){b(A);const I=p(A,"|");return b(A),I}function P(A,I){let V=null;switch(A.currentChar()){case"{":return I.braceNest>=1&&d(ve.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),A.next(),V=f(I,2,"{"),b(A),I.braceNest++,V;case"}":return I.braceNest>0&&I.currentType===2&&d(ve.EMPTY_PLACEHOLDER,r(),0),A.next(),V=f(I,3,"}"),I.braceNest--,I.braceNest>0&&b(A),I.inLinked&&I.braceNest===0&&(I.inLinked=!1),V;case"@":return I.braceNest>0&&d(ve.UNTERMINATED_CLOSING_BRACE,r(),0),V=q(A,I)||h(I),I.braceNest=0,V;default:{let nt=!0,lt=!0,$=!0;if(D(A))return I.braceNest>0&&d(ve.UNTERMINATED_CLOSING_BRACE,r(),0),V=f(I,1,x(A)),I.braceNest=0,I.inLinked=!1,V;if(I.braceNest>0&&(I.currentType===4||I.currentType===5||I.currentType===6))return d(ve.UNTERMINATED_CLOSING_BRACE,r(),0),I.braceNest=0,st(A,I);if(nt=g(A,I))return V=f(I,4,pe(A)),b(A),V;if(lt=v(A,I))return V=f(I,5,be(A)),b(A),V;if($=w(A,I))return V=f(I,6,qt(A)),b(A),V;if(!nt&&!lt&&!$)return V=f(I,12,vt(A)),d(ve.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,V.value),b(A),V;break}}return V}function q(A,I){const{currentType:V}=I;let X=null;const nt=A.currentChar();switch((V===7||V===8||V===11||V===9)&&(nt===En||nt===zs)&&d(ve.INVALID_LINKED_FORMAT,r(),0),nt){case"@":return A.next(),X=f(I,7,"@"),I.inLinked=!0,X;case".":return b(A),A.next(),f(I,8,".");case":":return b(A),A.next(),f(I,9,":");default:return D(A)?(X=f(I,1,x(A)),I.braceNest=0,I.inLinked=!1,X):k(A,I)||R(A,I)?(b(A),q(A,I)):N(A,I)?(b(A),f(I,11,Ut(A))):T(A,I)?(b(A),nt==="{"?P(A,I)||X:f(I,10,Xt(A))):(V===7&&d(ve.INVALID_LINKED_FORMAT,r(),0),I.braceNest=0,I.inLinked=!1,st(A,I))}}function st(A,I){let V={type:13};if(I.braceNest>0)return P(A,I)||h(I);if(I.inLinked)return q(A,I)||h(I);switch(A.currentChar()){case"{":return P(A,I)||h(I);case"}":return d(ve.UNBALANCED_CLOSING_BRACE,r(),0),A.next(),f(I,3,"}");case"@":return q(A,I)||h(I);default:{if(D(A))return V=f(I,1,x(A)),I.braceNest=0,I.inLinked=!1,V;if(B(A))return f(I,0,Wt(A));break}}return V}function Q(){const{currentType:A,offset:I,startLoc:V,endLoc:X}=l;return l.lastType=A,l.lastOffset=I,l.lastStartLoc=V,l.lastEndLoc=X,l.offset=i(),l.startLoc=r(),s.currentChar()===_i?f(l,13):st(s,l)}return{nextToken:Q,currentOffset:i,currentPosition:r,context:c}}const $T="parser",FT=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function VT(t,e,n){switch(t){case"\\\\":return"\\";case"\\'":return"'";default:{const s=parseInt(e||n,16);return s<=55295||s>=57344?String.fromCodePoint(s):"�"}}}function HT(t={}){const e=t.location!==!1,{onError:n}=t;function s(y,_,g,v,...w){const k=y.currentPosition();if(k.offset+=v,k.column+=v,n){const N=e?Wf(g,k):null,R=Du(_,N,{domain:$T,args:w});n(R)}}function i(y,_,g){const v={type:y};return e&&(v.start=_,v.end=_,v.loc={start:g,end:g}),v}function r(y,_,g,v){e&&(y.end=_,y.loc&&(y.loc.end=g))}function o(y,_){const g=y.context(),v=i(3,g.offset,g.startLoc);return v.value=_,r(v,y.currentOffset(),y.currentPosition()),v}function a(y,_){const g=y.context(),{lastOffset:v,lastStartLoc:w}=g,k=i(5,v,w);return k.index=parseInt(_,10),y.nextToken(),r(k,y.currentOffset(),y.currentPosition()),k}function l(y,_){const g=y.context(),{lastOffset:v,lastStartLoc:w}=g,k=i(4,v,w);return k.key=_,y.nextToken(),r(k,y.currentOffset(),y.currentPosition()),k}function c(y,_){const g=y.context(),{lastOffset:v,lastStartLoc:w}=g,k=i(9,v,w);return k.value=_.replace(FT,VT),y.nextToken(),r(k,y.currentOffset(),y.currentPosition()),k}function u(y){const _=y.nextToken(),g=y.context(),{lastOffset:v,lastStartLoc:w}=g,k=i(8,v,w);return _.type!==11?(s(y,ve.UNEXPECTED_EMPTY_LINKED_MODIFIER,g.lastStartLoc,0),k.value="",r(k,v,w),{nextConsumeToken:_,node:k}):(_.value==null&&s(y,ve.UNEXPECTED_LEXICAL_ANALYSIS,g.lastStartLoc,0,Ps(_)),k.value=_.value||"",r(k,y.currentOffset(),y.currentPosition()),{node:k})}function d(y,_){const g=y.context(),v=i(7,g.offset,g.startLoc);return v.value=_,r(v,y.currentOffset(),y.currentPosition()),v}function f(y){const _=y.context(),g=i(6,_.offset,_.startLoc);let v=y.nextToken();if(v.type===8){const w=u(y);g.modifier=w.node,v=w.nextConsumeToken||y.nextToken()}switch(v.type!==9&&s(y,ve.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Ps(v)),v=y.nextToken(),v.type===2&&(v=y.nextToken()),v.type){case 10:v.value==null&&s(y,ve.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Ps(v)),g.key=d(y,v.value||"");break;case 4:v.value==null&&s(y,ve.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Ps(v)),g.key=l(y,v.value||"");break;case 5:v.value==null&&s(y,ve.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Ps(v)),g.key=a(y,v.value||"");break;case 6:v.value==null&&s(y,ve.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Ps(v)),g.key=c(y,v.value||"");break;default:{s(y,ve.UNEXPECTED_EMPTY_LINKED_KEY,_.lastStartLoc,0);const w=y.context(),k=i(7,w.offset,w.startLoc);return k.value="",r(k,w.offset,w.startLoc),g.key=k,r(g,w.offset,w.startLoc),{nextConsumeToken:v,node:g}}}return r(g,y.currentOffset(),y.currentPosition()),{node:g}}function h(y){const _=y.context(),g=_.currentType===1?y.currentOffset():_.offset,v=_.currentType===1?_.endLoc:_.startLoc,w=i(2,g,v);w.items=[];let k=null;do{const T=k||y.nextToken();switch(k=null,T.type){case 0:T.value==null&&s(y,ve.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Ps(T)),w.items.push(o(y,T.value||""));break;case 5:T.value==null&&s(y,ve.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Ps(T)),w.items.push(a(y,T.value||""));break;case 4:T.value==null&&s(y,ve.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Ps(T)),w.items.push(l(y,T.value||""));break;case 6:T.value==null&&s(y,ve.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Ps(T)),w.items.push(c(y,T.value||""));break;case 7:{const D=f(y);w.items.push(D.node),k=D.nextConsumeToken||null;break}}}while(_.currentType!==13&&_.currentType!==1);const N=_.currentType===1?_.lastOffset:y.currentOffset(),R=_.currentType===1?_.lastEndLoc:y.currentPosition();return r(w,N,R),w}function p(y,_,g,v){const w=y.context();let k=v.items.length===0;const N=i(1,_,g);N.cases=[],N.cases.push(v);do{const R=h(y);k||(k=R.items.length===0),N.cases.push(R)}while(w.currentType!==13);return k&&s(y,ve.MUST_HAVE_MESSAGES_IN_PLURAL,g,0),r(N,y.currentOffset(),y.currentPosition()),N}function m(y){const _=y.context(),{offset:g,startLoc:v}=_,w=h(y);return _.currentType===13?w:p(y,g,v,w)}function b(y){const _=LT(y,nn({},t)),g=_.context(),v=i(0,g.offset,g.startLoc);return e&&v.loc&&(v.loc.source=y),v.body=m(_),t.onCacheKey&&(v.cacheKey=t.onCacheKey(y)),g.currentType!==13&&s(_,ve.UNEXPECTED_LEXICAL_ANALYSIS,g.lastStartLoc,0,y[g.offset]||""),r(v,_.currentOffset(),_.currentPosition()),v}return{parse:b}}function Ps(t){if(t.type===13)return"EOF";const e=(t.value||"").replace(/\r?\n/gu,"\\n");return e.length>10?e.slice(0,9)+"…":e}function UT(t,e={}){const n={ast:t,helpers:new Set};return{context:()=>n,helper:r=>(n.helpers.add(r),r)}}function ug(t,e){for(let n=0;ndg(n)),t}function dg(t){if(t.items.length===1){const e=t.items[0];(e.type===3||e.type===9)&&(t.static=e.value,delete e.value)}else{const e=[];for(let n=0;no;function l(m,b){o.code+=m}function c(m,b=!0){const y=b?s:"";l(i?y+" ".repeat(m):y)}function u(m=!0){const b=++o.indentLevel;m&&c(b)}function d(m=!0){const b=--o.indentLevel;m&&c(b)}function f(){c(o.indentLevel)}return{context:a,push:l,indent:u,deindent:d,newline:f,helper:m=>`_${m}`,needIndent:()=>o.needIndent}}function qT(t,e){const{helper:n}=t;t.push(`${n("linked")}(`),go(t,e.key),e.modifier?(t.push(", "),go(t,e.modifier),t.push(", _type")):t.push(", undefined, _type"),t.push(")")}function GT(t,e){const{helper:n,needIndent:s}=t;t.push(`${n("normalize")}([`),t.indent(s());const i=e.items.length;for(let r=0;r1){t.push(`${n("plural")}([`),t.indent(s());const i=e.cases.length;for(let r=0;r{const n=St(e.mode)?e.mode:"normal",s=St(e.filename)?e.filename:"message.intl";e.sourceMap;const i=e.breakLineCode!=null?e.breakLineCode:n==="arrow"?";":` `,r=e.needIndent?e.needIndent:n!=="arrow",o=t.helpers||[],a=WT(t,{filename:s,breakLineCode:i,needIndent:r});a.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),a.indent(r),o.length>0&&(a.push(`const { ${np(o.map(u=>`${u}: _${u}`),", ")} } = ctx`),a.newline()),a.push("return "),go(a,t),a.deindent(r),a.push("}"),delete t.helpers;const{code:l,map:c}=a.context();return{ast:t,code:l,map:c?c.toJSON():void 0}};function YT(t,e={}){const n=nn({},e),s=!!n.jit,i=!!n.minify,r=n.optimize==null?!0:n.optimize,a=HT(n).parse(t);return s?(r&&BT(a),i&&Xr(a),{ast:a,code:""}):(jT(a,n),XT(a,n))}/*! - * core-base v11.1.1 + * core-base v11.1.2 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function ZT(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(tp().__INTLIFY_PROD_DEVTOOLS__=!1)}function Dd(t){return n=>JT(n,t)}function JT(t,e){const n=tA(e);if(n==null)throw Da(0);if(ip(n)===1){const r=nA(n);return t.plural(r.reduce((o,a)=>[...o,fg(t,a)],[]))}else return fg(t,n)}const QT=["b","body"];function tA(t){return Qi(t,QT)}const eA=["c","cases"];function nA(t){return Qi(t,eA,[])}function fg(t,e){const n=iA(e);if(n!=null)return t.type==="text"?n:t.normalize([n]);{const s=oA(e).reduce((i,r)=>[...i,qf(t,r)],[]);return t.normalize(s)}}const sA=["s","static"];function iA(t){return Qi(t,sA)}const rA=["i","items"];function oA(t){return Qi(t,rA,[])}function qf(t,e){const n=ip(e);switch(n){case 3:return Cl(e,n);case 9:return Cl(e,n);case 4:{const s=e;if(Ss(s,"k")&&s.k)return t.interpolate(t.named(s.k));if(Ss(s,"key")&&s.key)return t.interpolate(t.named(s.key));throw Da(n)}case 5:{const s=e;if(Ss(s,"i")&&ze(s.i))return t.interpolate(t.list(s.i));if(Ss(s,"index")&&ze(s.index))return t.interpolate(t.list(s.index));throw Da(n)}case 6:{const s=e,i=uA(s),r=fA(s);return t.linked(qf(t,r),i?qf(t,i):void 0,t.type)}case 7:return Cl(e,n);case 8:return Cl(e,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const aA=["t","type"];function ip(t){return Qi(t,aA)}const lA=["v","value"];function Cl(t,e){const n=Qi(t,lA);if(n)return n;throw Da(e)}const cA=["m","modifier"];function uA(t){return Qi(t,cA)}const dA=["k","key"];function fA(t){const e=Qi(t,dA);if(e)return e;throw Da(6)}function Qi(t,e,n){for(let s=0;st;let Tl=Se();function yo(t){return fe(t)&&ip(t)===0&&(Ss(t,"b")||Ss(t,"body"))}function pA(t,e={}){let n=!1;const s=e.onError||xT;return e.onError=i=>{n=!0,s(i)},{...YT(t,e),detectError:n}}function mA(t,e){if(St(t)){De(e.warnHtmlMessage)&&e.warnHtmlMessage;const s=(e.onCacheKey||hA)(t),i=Tl[s];if(i)return i;const{ast:r,detectError:o}=pA(t,{...e,location:!1,jit:!0}),a=Dd(r);return o?a:Tl[s]=a}else{const n=t.cacheKey;if(n){const s=Tl[n];return s||(Tl[n]=Dd(t))}else return Dd(t)}}let Ra=null;function gA(t){Ra=t}function yA(t,e,n){Ra&&Ra.emit("i18n:init",{timestamp:Date.now(),i18n:t,version:e,meta:n})}const bA=vA("function:translate");function vA(t){return e=>Ra&&Ra.emit(t,e)}const ni={INVALID_ARGUMENT:OT,INVALID_DATE_ARGUMENT:18,INVALID_ISO_DATE_ARGUMENT:19,NOT_SUPPORT_LOCALE_PROMISE_VALUE:21,NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:22,NOT_SUPPORT_LOCALE_TYPE:23},_A=24;function si(t){return Du(t,null,void 0)}function rp(t,e){return e.locale!=null?hg(e.locale):hg(t.locale)}let Rd;function hg(t){if(St(t))return t;if(Pe(t)){if(t.resolvedOnce&&Rd!=null)return Rd;if(t.constructor.name==="Function"){const e=t();if(kT(e))throw si(ni.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Rd=e}else throw si(ni.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw si(ni.NOT_SUPPORT_LOCALE_TYPE)}function SA(t,e,n){return[...new Set([n,...Ze(e)?e:fe(e)?Object.keys(e):St(e)?[e]:[n]])]}function O0(t,e,n){const s=St(n)?n:Mc,i=t;i.__localeChainCache||(i.__localeChainCache=new Map);let r=i.__localeChainCache.get(s);if(!r){r=[];let o=[n];for(;Ze(o);)o=pg(r,o,e);const a=Ze(e)||!re(e)?e:e.default?e.default:null;o=St(a)?[a]:a,Ze(o)&&pg(r,o,!1),i.__localeChainCache.set(s,r)}return r}function pg(t,e,n){let s=!0;for(let i=0;i{o===void 0?o=a:o+=a},f[1]=()=>{o!==void 0&&(e.push(o),o=void 0)},f[2]=()=>{f[0](),i++},f[3]=()=>{if(i>0)i--,s=4,f[0]();else{if(i=0,o===void 0||(o=OA(o),o===!1))return!1;f[1]()}};function h(){const p=t[n+1];if(s===5&&p==="'"||s===6&&p==='"')return n++,a="\\"+p,f[0](),!0}for(;s!==null;)if(n++,r=t[n],!(r==="\\"&&h())){if(l=AA(r),d=tr[s],c=d[l]||d.l||8,c===8||(s=c[0],c[1]!==void 0&&(u=f[c[1]],u&&(a=r,u()===!1))))return;if(s===7)return e}}const mg=new Map;function IA(t,e){return fe(t)?t[e]:null}function NA(t,e){if(!fe(t))return null;let n=mg.get(e);if(n||(n=xA(e),n&&mg.set(e,n)),!n)return null;const s=n.length;let i=t,r=0;for(;r`${t.charAt(0).toLocaleUpperCase()}${t.substr(1)}`;function DA(){return{upper:(t,e)=>e==="text"&&St(t)?t.toUpperCase():e==="vnode"&&fe(t)&&"__v_isVNode"in t?t.children.toUpperCase():t,lower:(t,e)=>e==="text"&&St(t)?t.toLowerCase():e==="vnode"&&fe(t)&&"__v_isVNode"in t?t.children.toLowerCase():t,capitalize:(t,e)=>e==="text"&&St(t)?yg(t):e==="vnode"&&fe(t)&&"__v_isVNode"in t?yg(t.children):t}}let x0;function RA(t){x0=t}let I0;function MA(t){I0=t}let N0;function LA(t){N0=t}let P0=null;const $A=t=>{P0=t},FA=()=>P0;let D0=null;const bg=t=>{D0=t},VA=()=>D0;let vg=0;function HA(t={}){const e=Pe(t.onWarn)?t.onWarn:TT,n=St(t.version)?t.version:PA,s=St(t.locale)||Pe(t.locale)?t.locale:Mc,i=Pe(s)?Mc:s,r=Ze(t.fallbackLocale)||re(t.fallbackLocale)||St(t.fallbackLocale)||t.fallbackLocale===!1?t.fallbackLocale:i,o=re(t.messages)?t.messages:Md(i),a=re(t.datetimeFormats)?t.datetimeFormats:Md(i),l=re(t.numberFormats)?t.numberFormats:Md(i),c=nn(Se(),t.modifiers,DA()),u=t.pluralRules||Se(),d=Pe(t.missing)?t.missing:null,f=De(t.missingWarn)||Rc(t.missingWarn)?t.missingWarn:!0,h=De(t.fallbackWarn)||Rc(t.fallbackWarn)?t.fallbackWarn:!0,p=!!t.fallbackFormat,m=!!t.unresolving,b=Pe(t.postTranslation)?t.postTranslation:null,y=re(t.processor)?t.processor:null,_=De(t.warnHtmlMessage)?t.warnHtmlMessage:!0,g=!!t.escapeParameter,v=Pe(t.messageCompiler)?t.messageCompiler:x0,w=Pe(t.messageResolver)?t.messageResolver:I0||IA,k=Pe(t.localeFallbacker)?t.localeFallbacker:N0||SA,N=fe(t.fallbackContext)?t.fallbackContext:void 0,R=t,T=fe(R.__datetimeFormatters)?R.__datetimeFormatters:new Map,D=fe(R.__numberFormatters)?R.__numberFormatters:new Map,B=fe(R.__meta)?R.__meta:{};vg++;const F={version:n,cid:vg,locale:s,fallbackLocale:r,messages:o,modifiers:c,pluralRules:u,missing:d,missingWarn:f,fallbackWarn:h,fallbackFormat:p,unresolving:m,postTranslation:b,processor:y,warnHtmlMessage:_,escapeParameter:g,messageCompiler:v,messageResolver:w,localeFallbacker:k,fallbackContext:N,onWarn:e,__meta:B};return F.datetimeFormats=a,F.numberFormats=l,F.__datetimeFormatters=T,F.__numberFormatters=D,__INTLIFY_PROD_DEVTOOLS__&&yA(F,n,B),F}const Md=t=>({[t]:Se()});function op(t,e,n,s,i){const{missing:r,onWarn:o}=t;if(r!==null){const a=r(t,n,e,i);return St(a)?a:e}else return e}function Bo(t,e,n){const s=t;s.__localeChainCache=new Map,t.localeFallbacker(t,n,e)}function UA(t,e){return t===e?!1:t.split("-")[0]===e.split("-")[0]}function jA(t,e){const n=e.indexOf(t);if(n===-1)return!1;for(let s=n+1;s{R0.includes(l)?o[l]=n[l]:r[l]=n[l]}),St(s)?r.locale=s:re(s)&&(o=s),re(i)&&(o=i),[r.key||"",a,r,o]}function Sg(t,e,n){const s=t;for(const i in n){const r=`${e}__${i}`;s.__datetimeFormatters.has(r)&&s.__datetimeFormatters.delete(r)}}function Eg(t,...e){const{numberFormats:n,unresolving:s,fallbackLocale:i,onWarn:r,localeFallbacker:o}=t,{__numberFormatters:a}=t,[l,c,u,d]=zf(...e),f=De(u.missingWarn)?u.missingWarn:t.missingWarn;De(u.fallbackWarn)?u.fallbackWarn:t.fallbackWarn;const h=!!u.part,p=rp(t,u),m=o(t,i,p);if(!St(l)||l==="")return new Intl.NumberFormat(p,d).format(c);let b={},y,_=null;const g="number format";for(let k=0;k{M0.includes(l)?o[l]=n[l]:r[l]=n[l]}),St(s)?r.locale=s:re(s)&&(o=s),re(i)&&(o=i),[r.key||"",a,r,o]}function wg(t,e,n){const s=t;for(const i in n){const r=`${e}__${i}`;s.__numberFormatters.has(r)&&s.__numberFormatters.delete(r)}}const BA=t=>t,WA=t=>"",qA="text",GA=t=>t.length===0?"":np(t),zA=CT;function kg(t,e){return t=Math.abs(t),e===2?t?t>1?1:0:1:t?Math.min(t,2):0}function KA(t){const e=ze(t.pluralIndex)?t.pluralIndex:-1;return t.named&&(ze(t.named.count)||ze(t.named.n))?ze(t.named.count)?t.named.count:ze(t.named.n)?t.named.n:e:e}function XA(t,e){e.count||(e.count=t),e.n||(e.n=t)}function YA(t={}){const e=t.locale,n=KA(t),s=fe(t.pluralRules)&&St(e)&&Pe(t.pluralRules[e])?t.pluralRules[e]:kg,i=fe(t.pluralRules)&&St(e)&&Pe(t.pluralRules[e])?kg:void 0,r=y=>y[s(n,y.length,i)],o=t.list||[],a=y=>o[y],l=t.named||Se();ze(t.pluralIndex)&&XA(n,l);const c=y=>l[y];function u(y,_){const g=Pe(t.messages)?t.messages(y,!!_):fe(t.messages)?t.messages[y]:!1;return g||(t.parent?t.parent.message(y):WA)}const d=y=>t.modifiers?t.modifiers[y]:BA,f=re(t.processor)&&Pe(t.processor.normalize)?t.processor.normalize:GA,h=re(t.processor)&&Pe(t.processor.interpolate)?t.processor.interpolate:zA,p=re(t.processor)&&St(t.processor.type)?t.processor.type:qA,b={list:a,named:c,plural:r,linked:(y,..._)=>{const[g,v]=_;let w="text",k="";_.length===1?fe(g)?(k=g.modifier||k,w=g.type||w):St(g)&&(k=g||k):_.length===2&&(St(g)&&(k=g||k),St(v)&&(w=v||w));const N=u(y,!0)(b),R=w==="vnode"&&Ze(N)&&k?N[0]:N;return k?d(k)(R,w):R},message:u,type:p,interpolate:h,normalize:f,values:nn(Se(),o,l)};return b}const Cg=()=>"",ns=t=>Pe(t);function Tg(t,...e){const{fallbackFormat:n,postTranslation:s,unresolving:i,messageCompiler:r,fallbackLocale:o,messages:a}=t,[l,c]=Kf(...e),u=De(c.missingWarn)?c.missingWarn:t.missingWarn,d=De(c.fallbackWarn)?c.fallbackWarn:t.fallbackWarn,f=De(c.escapeParameter)?c.escapeParameter:t.escapeParameter,h=!!c.resolvedMessage,p=St(c.default)||De(c.default)?De(c.default)?r?l:()=>l:c.default:n?r?l:()=>l:null,m=n||p!=null&&(St(p)||Pe(p)),b=rp(t,c);f&&ZA(c);let[y,_,g]=h?[l,b,a[b]||Se()]:L0(t,l,b,o,d,u),v=y,w=l;if(!h&&!(St(v)||yo(v)||ns(v))&&m&&(v=p,w=v),!h&&(!(St(v)||yo(v)||ns(v))||!St(_)))return i?Ru:l;let k=!1;const N=()=>{k=!0},R=ns(v)?v:$0(t,l,_,v,w,N);if(k)return v;const T=tO(t,_,g,c),D=YA(T),B=JA(t,R,D),F=s?s(B,l):B;if(__INTLIFY_PROD_DEVTOOLS__){const U={timestamp:Date.now(),key:St(l)?l:ns(v)?v.key:"",locale:_||(ns(v)?v.locale:""),format:St(v)?v:ns(v)?v.source:"",message:F};U.meta=nn({},t.__meta,FA()||{}),bA(U)}return F}function ZA(t){Ze(t.list)?t.list=t.list.map(e=>St(e)?lg(e):e):fe(t.named)&&Object.keys(t.named).forEach(e=>{St(t.named[e])&&(t.named[e]=lg(t.named[e]))})}function L0(t,e,n,s,i,r){const{messages:o,onWarn:a,messageResolver:l,localeFallbacker:c}=t,u=c(t,s,n);let d=Se(),f,h=null;const p="translate";for(let m=0;ms;return c.locale=n,c.key=e,c}const l=o(s,QA(t,n,i,s,a,r));return l.locale=n,l.key=e,l.source=s,l}function JA(t,e,n){return e(n)}function Kf(...t){const[e,n,s]=t,i=Se();if(!St(e)&&!ze(e)&&!ns(e)&&!yo(e))throw si(ni.INVALID_ARGUMENT);const r=ze(e)?String(e):(ns(e),e);return ze(n)?i.plural=n:St(n)?i.default=n:re(n)&&!Pu(n)?i.named=n:Ze(n)&&(i.list=n),ze(s)?i.plural=s:St(s)?i.default=s:re(s)&&nn(i,s),[r,i]}function QA(t,e,n,s,i,r){return{locale:e,key:n,warnHtmlMessage:i,onError:o=>{throw r&&r(o),o},onCacheKey:o=>vT(e,n,o)}}function tO(t,e,n,s){const{modifiers:i,pluralRules:r,messageResolver:o,fallbackLocale:a,fallbackWarn:l,missingWarn:c,fallbackContext:u}=t,f={locale:e,modifiers:i,pluralRules:r,messages:(h,p)=>{let m=o(n,h);if(m==null&&(u||p)){const[,,b]=L0(u||t,h,e,a,l,c);m=o(b,h)}if(St(m)||yo(m)){let b=!1;const _=$0(t,h,e,m,h,()=>{b=!0});return b?Cg:_}else return ns(m)?m:Cg}};return t.processor&&(f.processor=t.processor),s.list&&(f.list=s.list),s.named&&(f.named=s.named),ze(s.plural)&&(f.pluralIndex=s.plural),f}ZT();/*! - * vue-i18n v11.1.1 + */function ZT(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(tp().__INTLIFY_PROD_DEVTOOLS__=!1)}function Dd(t){return n=>JT(n,t)}function JT(t,e){const n=tA(e);if(n==null)throw Da(0);if(ip(n)===1){const r=nA(n);return t.plural(r.reduce((o,a)=>[...o,fg(t,a)],[]))}else return fg(t,n)}const QT=["b","body"];function tA(t){return Qi(t,QT)}const eA=["c","cases"];function nA(t){return Qi(t,eA,[])}function fg(t,e){const n=iA(e);if(n!=null)return t.type==="text"?n:t.normalize([n]);{const s=oA(e).reduce((i,r)=>[...i,qf(t,r)],[]);return t.normalize(s)}}const sA=["s","static"];function iA(t){return Qi(t,sA)}const rA=["i","items"];function oA(t){return Qi(t,rA,[])}function qf(t,e){const n=ip(e);switch(n){case 3:return Cl(e,n);case 9:return Cl(e,n);case 4:{const s=e;if(Ss(s,"k")&&s.k)return t.interpolate(t.named(s.k));if(Ss(s,"key")&&s.key)return t.interpolate(t.named(s.key));throw Da(n)}case 5:{const s=e;if(Ss(s,"i")&&ze(s.i))return t.interpolate(t.list(s.i));if(Ss(s,"index")&&ze(s.index))return t.interpolate(t.list(s.index));throw Da(n)}case 6:{const s=e,i=uA(s),r=fA(s);return t.linked(qf(t,r),i?qf(t,i):void 0,t.type)}case 7:return Cl(e,n);case 8:return Cl(e,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const aA=["t","type"];function ip(t){return Qi(t,aA)}const lA=["v","value"];function Cl(t,e){const n=Qi(t,lA);if(n)return n;throw Da(e)}const cA=["m","modifier"];function uA(t){return Qi(t,cA)}const dA=["k","key"];function fA(t){const e=Qi(t,dA);if(e)return e;throw Da(6)}function Qi(t,e,n){for(let s=0;st;let Tl=Se();function yo(t){return fe(t)&&ip(t)===0&&(Ss(t,"b")||Ss(t,"body"))}function pA(t,e={}){let n=!1;const s=e.onError||xT;return e.onError=i=>{n=!0,s(i)},{...YT(t,e),detectError:n}}function mA(t,e){if(St(t)){De(e.warnHtmlMessage)&&e.warnHtmlMessage;const s=(e.onCacheKey||hA)(t),i=Tl[s];if(i)return i;const{ast:r,detectError:o}=pA(t,{...e,location:!1,jit:!0}),a=Dd(r);return o?a:Tl[s]=a}else{const n=t.cacheKey;if(n){const s=Tl[n];return s||(Tl[n]=Dd(t))}else return Dd(t)}}let Ra=null;function gA(t){Ra=t}function yA(t,e,n){Ra&&Ra.emit("i18n:init",{timestamp:Date.now(),i18n:t,version:e,meta:n})}const bA=vA("function:translate");function vA(t){return e=>Ra&&Ra.emit(t,e)}const ni={INVALID_ARGUMENT:OT,INVALID_DATE_ARGUMENT:18,INVALID_ISO_DATE_ARGUMENT:19,NOT_SUPPORT_LOCALE_PROMISE_VALUE:21,NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:22,NOT_SUPPORT_LOCALE_TYPE:23},_A=24;function si(t){return Du(t,null,void 0)}function rp(t,e){return e.locale!=null?hg(e.locale):hg(t.locale)}let Rd;function hg(t){if(St(t))return t;if(Pe(t)){if(t.resolvedOnce&&Rd!=null)return Rd;if(t.constructor.name==="Function"){const e=t();if(kT(e))throw si(ni.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Rd=e}else throw si(ni.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw si(ni.NOT_SUPPORT_LOCALE_TYPE)}function SA(t,e,n){return[...new Set([n,...Ze(e)?e:fe(e)?Object.keys(e):St(e)?[e]:[n]])]}function O0(t,e,n){const s=St(n)?n:Mc,i=t;i.__localeChainCache||(i.__localeChainCache=new Map);let r=i.__localeChainCache.get(s);if(!r){r=[];let o=[n];for(;Ze(o);)o=pg(r,o,e);const a=Ze(e)||!re(e)?e:e.default?e.default:null;o=St(a)?[a]:a,Ze(o)&&pg(r,o,!1),i.__localeChainCache.set(s,r)}return r}function pg(t,e,n){let s=!0;for(let i=0;i{o===void 0?o=a:o+=a},f[1]=()=>{o!==void 0&&(e.push(o),o=void 0)},f[2]=()=>{f[0](),i++},f[3]=()=>{if(i>0)i--,s=4,f[0]();else{if(i=0,o===void 0||(o=OA(o),o===!1))return!1;f[1]()}};function h(){const p=t[n+1];if(s===5&&p==="'"||s===6&&p==='"')return n++,a="\\"+p,f[0](),!0}for(;s!==null;)if(n++,r=t[n],!(r==="\\"&&h())){if(l=AA(r),d=tr[s],c=d[l]||d.l||8,c===8||(s=c[0],c[1]!==void 0&&(u=f[c[1]],u&&(a=r,u()===!1))))return;if(s===7)return e}}const mg=new Map;function IA(t,e){return fe(t)?t[e]:null}function NA(t,e){if(!fe(t))return null;let n=mg.get(e);if(n||(n=xA(e),n&&mg.set(e,n)),!n)return null;const s=n.length;let i=t,r=0;for(;r`${t.charAt(0).toLocaleUpperCase()}${t.substr(1)}`;function DA(){return{upper:(t,e)=>e==="text"&&St(t)?t.toUpperCase():e==="vnode"&&fe(t)&&"__v_isVNode"in t?t.children.toUpperCase():t,lower:(t,e)=>e==="text"&&St(t)?t.toLowerCase():e==="vnode"&&fe(t)&&"__v_isVNode"in t?t.children.toLowerCase():t,capitalize:(t,e)=>e==="text"&&St(t)?yg(t):e==="vnode"&&fe(t)&&"__v_isVNode"in t?yg(t.children):t}}let x0;function RA(t){x0=t}let I0;function MA(t){I0=t}let N0;function LA(t){N0=t}let P0=null;const $A=t=>{P0=t},FA=()=>P0;let D0=null;const bg=t=>{D0=t},VA=()=>D0;let vg=0;function HA(t={}){const e=Pe(t.onWarn)?t.onWarn:TT,n=St(t.version)?t.version:PA,s=St(t.locale)||Pe(t.locale)?t.locale:Mc,i=Pe(s)?Mc:s,r=Ze(t.fallbackLocale)||re(t.fallbackLocale)||St(t.fallbackLocale)||t.fallbackLocale===!1?t.fallbackLocale:i,o=re(t.messages)?t.messages:Md(i),a=re(t.datetimeFormats)?t.datetimeFormats:Md(i),l=re(t.numberFormats)?t.numberFormats:Md(i),c=nn(Se(),t.modifiers,DA()),u=t.pluralRules||Se(),d=Pe(t.missing)?t.missing:null,f=De(t.missingWarn)||Rc(t.missingWarn)?t.missingWarn:!0,h=De(t.fallbackWarn)||Rc(t.fallbackWarn)?t.fallbackWarn:!0,p=!!t.fallbackFormat,m=!!t.unresolving,b=Pe(t.postTranslation)?t.postTranslation:null,y=re(t.processor)?t.processor:null,_=De(t.warnHtmlMessage)?t.warnHtmlMessage:!0,g=!!t.escapeParameter,v=Pe(t.messageCompiler)?t.messageCompiler:x0,w=Pe(t.messageResolver)?t.messageResolver:I0||IA,k=Pe(t.localeFallbacker)?t.localeFallbacker:N0||SA,N=fe(t.fallbackContext)?t.fallbackContext:void 0,R=t,T=fe(R.__datetimeFormatters)?R.__datetimeFormatters:new Map,D=fe(R.__numberFormatters)?R.__numberFormatters:new Map,B=fe(R.__meta)?R.__meta:{};vg++;const F={version:n,cid:vg,locale:s,fallbackLocale:r,messages:o,modifiers:c,pluralRules:u,missing:d,missingWarn:f,fallbackWarn:h,fallbackFormat:p,unresolving:m,postTranslation:b,processor:y,warnHtmlMessage:_,escapeParameter:g,messageCompiler:v,messageResolver:w,localeFallbacker:k,fallbackContext:N,onWarn:e,__meta:B};return F.datetimeFormats=a,F.numberFormats=l,F.__datetimeFormatters=T,F.__numberFormatters=D,__INTLIFY_PROD_DEVTOOLS__&&yA(F,n,B),F}const Md=t=>({[t]:Se()});function op(t,e,n,s,i){const{missing:r,onWarn:o}=t;if(r!==null){const a=r(t,n,e,i);return St(a)?a:e}else return e}function Bo(t,e,n){const s=t;s.__localeChainCache=new Map,t.localeFallbacker(t,n,e)}function UA(t,e){return t===e?!1:t.split("-")[0]===e.split("-")[0]}function jA(t,e){const n=e.indexOf(t);if(n===-1)return!1;for(let s=n+1;s{R0.includes(l)?o[l]=n[l]:r[l]=n[l]}),St(s)?r.locale=s:re(s)&&(o=s),re(i)&&(o=i),[r.key||"",a,r,o]}function Sg(t,e,n){const s=t;for(const i in n){const r=`${e}__${i}`;s.__datetimeFormatters.has(r)&&s.__datetimeFormatters.delete(r)}}function Eg(t,...e){const{numberFormats:n,unresolving:s,fallbackLocale:i,onWarn:r,localeFallbacker:o}=t,{__numberFormatters:a}=t,[l,c,u,d]=zf(...e),f=De(u.missingWarn)?u.missingWarn:t.missingWarn;De(u.fallbackWarn)?u.fallbackWarn:t.fallbackWarn;const h=!!u.part,p=rp(t,u),m=o(t,i,p);if(!St(l)||l==="")return new Intl.NumberFormat(p,d).format(c);let b={},y,_=null;const g="number format";for(let k=0;k{M0.includes(l)?o[l]=n[l]:r[l]=n[l]}),St(s)?r.locale=s:re(s)&&(o=s),re(i)&&(o=i),[r.key||"",a,r,o]}function wg(t,e,n){const s=t;for(const i in n){const r=`${e}__${i}`;s.__numberFormatters.has(r)&&s.__numberFormatters.delete(r)}}const BA=t=>t,WA=t=>"",qA="text",GA=t=>t.length===0?"":np(t),zA=CT;function kg(t,e){return t=Math.abs(t),e===2?t?t>1?1:0:1:t?Math.min(t,2):0}function KA(t){const e=ze(t.pluralIndex)?t.pluralIndex:-1;return t.named&&(ze(t.named.count)||ze(t.named.n))?ze(t.named.count)?t.named.count:ze(t.named.n)?t.named.n:e:e}function XA(t,e){e.count||(e.count=t),e.n||(e.n=t)}function YA(t={}){const e=t.locale,n=KA(t),s=fe(t.pluralRules)&&St(e)&&Pe(t.pluralRules[e])?t.pluralRules[e]:kg,i=fe(t.pluralRules)&&St(e)&&Pe(t.pluralRules[e])?kg:void 0,r=y=>y[s(n,y.length,i)],o=t.list||[],a=y=>o[y],l=t.named||Se();ze(t.pluralIndex)&&XA(n,l);const c=y=>l[y];function u(y,_){const g=Pe(t.messages)?t.messages(y,!!_):fe(t.messages)?t.messages[y]:!1;return g||(t.parent?t.parent.message(y):WA)}const d=y=>t.modifiers?t.modifiers[y]:BA,f=re(t.processor)&&Pe(t.processor.normalize)?t.processor.normalize:GA,h=re(t.processor)&&Pe(t.processor.interpolate)?t.processor.interpolate:zA,p=re(t.processor)&&St(t.processor.type)?t.processor.type:qA,b={list:a,named:c,plural:r,linked:(y,..._)=>{const[g,v]=_;let w="text",k="";_.length===1?fe(g)?(k=g.modifier||k,w=g.type||w):St(g)&&(k=g||k):_.length===2&&(St(g)&&(k=g||k),St(v)&&(w=v||w));const N=u(y,!0)(b),R=w==="vnode"&&Ze(N)&&k?N[0]:N;return k?d(k)(R,w):R},message:u,type:p,interpolate:h,normalize:f,values:nn(Se(),o,l)};return b}const Cg=()=>"",ns=t=>Pe(t);function Tg(t,...e){const{fallbackFormat:n,postTranslation:s,unresolving:i,messageCompiler:r,fallbackLocale:o,messages:a}=t,[l,c]=Kf(...e),u=De(c.missingWarn)?c.missingWarn:t.missingWarn,d=De(c.fallbackWarn)?c.fallbackWarn:t.fallbackWarn,f=De(c.escapeParameter)?c.escapeParameter:t.escapeParameter,h=!!c.resolvedMessage,p=St(c.default)||De(c.default)?De(c.default)?r?l:()=>l:c.default:n?r?l:()=>l:null,m=n||p!=null&&(St(p)||Pe(p)),b=rp(t,c);f&&ZA(c);let[y,_,g]=h?[l,b,a[b]||Se()]:L0(t,l,b,o,d,u),v=y,w=l;if(!h&&!(St(v)||yo(v)||ns(v))&&m&&(v=p,w=v),!h&&(!(St(v)||yo(v)||ns(v))||!St(_)))return i?Ru:l;let k=!1;const N=()=>{k=!0},R=ns(v)?v:$0(t,l,_,v,w,N);if(k)return v;const T=tO(t,_,g,c),D=YA(T),B=JA(t,R,D),F=s?s(B,l):B;if(__INTLIFY_PROD_DEVTOOLS__){const U={timestamp:Date.now(),key:St(l)?l:ns(v)?v.key:"",locale:_||(ns(v)?v.locale:""),format:St(v)?v:ns(v)?v.source:"",message:F};U.meta=nn({},t.__meta,FA()||{}),bA(U)}return F}function ZA(t){Ze(t.list)?t.list=t.list.map(e=>St(e)?lg(e):e):fe(t.named)&&Object.keys(t.named).forEach(e=>{St(t.named[e])&&(t.named[e]=lg(t.named[e]))})}function L0(t,e,n,s,i,r){const{messages:o,onWarn:a,messageResolver:l,localeFallbacker:c}=t,u=c(t,s,n);let d=Se(),f,h=null;const p="translate";for(let m=0;ms;return c.locale=n,c.key=e,c}const l=o(s,QA(t,n,i,s,a,r));return l.locale=n,l.key=e,l.source=s,l}function JA(t,e,n){return e(n)}function Kf(...t){const[e,n,s]=t,i=Se();if(!St(e)&&!ze(e)&&!ns(e)&&!yo(e))throw si(ni.INVALID_ARGUMENT);const r=ze(e)?String(e):(ns(e),e);return ze(n)?i.plural=n:St(n)?i.default=n:re(n)&&!Pu(n)?i.named=n:Ze(n)&&(i.list=n),ze(s)?i.plural=s:St(s)?i.default=s:re(s)&&nn(i,s),[r,i]}function QA(t,e,n,s,i,r){return{locale:e,key:n,warnHtmlMessage:i,onError:o=>{throw r&&r(o),o},onCacheKey:o=>vT(e,n,o)}}function tO(t,e,n,s){const{modifiers:i,pluralRules:r,messageResolver:o,fallbackLocale:a,fallbackWarn:l,missingWarn:c,fallbackContext:u}=t,f={locale:e,modifiers:i,pluralRules:r,messages:(h,p)=>{let m=o(n,h);if(m==null&&(u||p)){const[,,b]=L0(u||t,h,e,a,l,c);m=o(b,h)}if(St(m)||yo(m)){let b=!1;const _=$0(t,h,e,m,h,()=>{b=!0});return b?Cg:_}else return ns(m)?m:Cg}};return t.processor&&(f.processor=t.processor),s.list&&(f.list=s.list),s.named&&(f.named=s.named),ze(s.plural)&&(f.pluralIndex=s.plural),f}ZT();/*! + * vue-i18n v11.1.2 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */const eO="11.1.1";function nO(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(tp().__INTLIFY_PROD_DEVTOOLS__=!1)}const us={UNEXPECTED_RETURN_TYPE:_A,INVALID_ARGUMENT:25,MUST_BE_CALL_SETUP_TOP:26,NOT_INSTALLED:27,REQUIRED_VALUE:28,INVALID_VALUE:29,NOT_INSTALLED_WITH_PROVIDE:31,UNEXPECTED_ERROR:32};function ks(t,...e){return Du(t,null,void 0)}const Xf=Ji("__translateVNode"),Yf=Ji("__datetimeParts"),Zf=Ji("__numberParts"),sO=Ji("__setPluralRules"),iO=Ji("__injectWithOption"),Jf=Ji("__dispose");function Ma(t){if(!fe(t))return t;for(const e in t)if(Ss(t,e))if(!e.includes("."))fe(t[e])&&Ma(t[e]);else{const n=e.split("."),s=n.length-1;let i=t,r=!1;for(let o=0;o{if("locale"in a&&"resource"in a){const{locale:l,resource:c}=a;l?(o[l]=o[l]||Se(),Ql(c,o[l])):Ql(c,o)}else St(a)&&Ql(JSON.parse(a),o)}),i==null&&r)for(const a in o)Ss(o,a)&&Ma(o[a]);return o}function V0(t){return t.type}function rO(t,e,n){let s=fe(e.messages)?e.messages:Se();"__i18nGlobal"in n&&(s=F0(t.locale.value,{messages:s,__i18n:n.__i18nGlobal}));const i=Object.keys(s);i.length&&i.forEach(r=>{t.mergeLocaleMessage(r,s[r])});{if(fe(e.datetimeFormats)){const r=Object.keys(e.datetimeFormats);r.length&&r.forEach(o=>{t.mergeDateTimeFormat(o,e.datetimeFormats[o])})}if(fe(e.numberFormats)){const r=Object.keys(e.numberFormats);r.length&&r.forEach(o=>{t.mergeNumberFormat(o,e.numberFormats[o])})}}}function Ag(t){return E(ri,null,t,0)}const Og="__INTLIFY_META__",xg=()=>[],oO=()=>!1;let Ig=0;function Ng(t){return(e,n,s,i)=>t(n,s,In()||void 0,i)}const aO=()=>{const t=In();let e=null;return t&&(e=V0(t)[Og])?{[Og]:e}:null};function H0(t={}){const{__root:e,__injectWithOption:n}=t,s=e===void 0,i=t.flatJson,r=Dc?rs:mu;let o=De(t.inheritLocale)?t.inheritLocale:!0;const a=r(e&&o?e.locale.value:St(t.locale)?t.locale:Mc),l=r(e&&o?e.fallbackLocale.value:St(t.fallbackLocale)||Ze(t.fallbackLocale)||re(t.fallbackLocale)||t.fallbackLocale===!1?t.fallbackLocale:a.value),c=r(F0(a.value,t)),u=r(re(t.datetimeFormats)?t.datetimeFormats:{[a.value]:{}}),d=r(re(t.numberFormats)?t.numberFormats:{[a.value]:{}});let f=e?e.missingWarn:De(t.missingWarn)||Rc(t.missingWarn)?t.missingWarn:!0,h=e?e.fallbackWarn:De(t.fallbackWarn)||Rc(t.fallbackWarn)?t.fallbackWarn:!0,p=e?e.fallbackRoot:De(t.fallbackRoot)?t.fallbackRoot:!0,m=!!t.fallbackFormat,b=Pe(t.missing)?t.missing:null,y=Pe(t.missing)?Ng(t.missing):null,_=Pe(t.postTranslation)?t.postTranslation:null,g=e?e.warnHtmlMessage:De(t.warnHtmlMessage)?t.warnHtmlMessage:!0,v=!!t.escapeParameter;const w=e?e.modifiers:re(t.modifiers)?t.modifiers:{};let k=t.pluralRules||e&&e.pluralRules,N;N=(()=>{s&&bg(null);const $={version:eO,locale:a.value,fallbackLocale:l.value,messages:c.value,modifiers:w,pluralRules:k,missing:y===null?void 0:y,missingWarn:f,fallbackWarn:h,fallbackFormat:m,unresolving:!0,postTranslation:_===null?void 0:_,warnHtmlMessage:g,escapeParameter:v,messageResolver:t.messageResolver,messageCompiler:t.messageCompiler,__meta:{framework:"vue"}};$.datetimeFormats=u.value,$.numberFormats=d.value,$.__datetimeFormatters=re(N)?N.__datetimeFormatters:void 0,$.__numberFormatters=re(N)?N.__numberFormatters:void 0;const z=HA($);return s&&bg(z),z})(),Bo(N,a.value,l.value);function T(){return[a.value,l.value,c.value,u.value,d.value]}const D=tn({get:()=>a.value,set:$=>{N.locale=$,a.value=$}}),B=tn({get:()=>l.value,set:$=>{N.fallbackLocale=$,l.value=$,Bo(N,a.value,$)}}),F=tn(()=>c.value),U=tn(()=>u.value),Z=tn(()=>d.value);function ot(){return Pe(_)?_:null}function G($){_=$,N.postTranslation=$}function et(){return b}function at($){$!==null&&(y=Ng($)),b=$,N.missing=y}const Ct=($,z,pt,Et,Gt,H)=>{T();let W;try{__INTLIFY_PROD_DEVTOOLS__,s||(N.fallbackContext=e?VA():void 0),W=$(N)}finally{__INTLIFY_PROD_DEVTOOLS__,s||(N.fallbackContext=void 0)}if(pt!=="translate exists"&&ze(W)&&W===Ru||pt==="translate exists"&&!W){const[K,rt]=z();return e&&p?Et(e):Gt(K)}else{if(H(W))return W;throw ks(us.UNEXPECTED_RETURN_TYPE)}};function Kt(...$){return Ct(z=>Reflect.apply(Tg,null,[z,...$]),()=>Kf(...$),"translate",z=>Reflect.apply(z.t,z,[...$]),z=>z,z=>St(z))}function Ht(...$){const[z,pt,Et]=$;if(Et&&!fe(Et))throw ks(us.INVALID_ARGUMENT);return Kt(z,pt,nn({resolvedMessage:!0},Et||{}))}function Wt(...$){return Ct(z=>Reflect.apply(_g,null,[z,...$]),()=>Gf(...$),"datetime format",z=>Reflect.apply(z.d,z,[...$]),()=>gg,z=>St(z))}function pe(...$){return Ct(z=>Reflect.apply(Eg,null,[z,...$]),()=>zf(...$),"number format",z=>Reflect.apply(z.n,z,[...$]),()=>gg,z=>St(z))}function be($){return $.map(z=>St(z)||ze(z)||De(z)?Ag(String(z)):z)}const qt={normalize:be,interpolate:$=>$,type:"vnode"};function Y(...$){return Ct(z=>{let pt;const Et=z;try{Et.processor=qt,pt=Reflect.apply(Tg,null,[Et,...$])}finally{Et.processor=null}return pt},()=>Kf(...$),"translate",z=>z[Xf](...$),z=>[Ag(z)],z=>Ze(z))}function dt(...$){return Ct(z=>Reflect.apply(Eg,null,[z,...$]),()=>zf(...$),"number format",z=>z[Zf](...$),xg,z=>St(z)||Ze(z))}function ct(...$){return Ct(z=>Reflect.apply(_g,null,[z,...$]),()=>Gf(...$),"datetime format",z=>z[Yf](...$),xg,z=>St(z)||Ze(z))}function vt($){k=$,N.pluralRules=k}function Ut($,z){return Ct(()=>{if(!$)return!1;const pt=St(z)?z:a.value,Et=P(pt),Gt=N.messageResolver(Et,$);return yo(Gt)||ns(Gt)||St(Gt)},()=>[$],"translate exists",pt=>Reflect.apply(pt.te,pt,[$,z]),oO,pt=>De(pt))}function Xt($){let z=null;const pt=O0(N,l.value,a.value);for(let Et=0;Et{o&&(a.value=$,N.locale=$,Bo(N,a.value,l.value))}),Kn(e.fallbackLocale,$=>{o&&(l.value=$,N.fallbackLocale=$,Bo(N,a.value,l.value))}));const lt={id:Ig,locale:D,fallbackLocale:B,get inheritLocale(){return o},set inheritLocale($){o=$,$&&e&&(a.value=e.locale.value,l.value=e.fallbackLocale.value,Bo(N,a.value,l.value))},get availableLocales(){return Object.keys(c.value).sort()},messages:F,get modifiers(){return w},get pluralRules(){return k||{}},get isGlobal(){return s},get missingWarn(){return f},set missingWarn($){f=$,N.missingWarn=f},get fallbackWarn(){return h},set fallbackWarn($){h=$,N.fallbackWarn=h},get fallbackRoot(){return p},set fallbackRoot($){p=$},get fallbackFormat(){return m},set fallbackFormat($){m=$,N.fallbackFormat=m},get warnHtmlMessage(){return g},set warnHtmlMessage($){g=$,N.warnHtmlMessage=$},get escapeParameter(){return v},set escapeParameter($){v=$,N.escapeParameter=$},t:Kt,getLocaleMessage:P,setLocaleMessage:q,mergeLocaleMessage:st,getPostTranslationHandler:ot,setPostTranslationHandler:G,getMissingHandler:et,setMissingHandler:at,[sO]:vt};return lt.datetimeFormats=U,lt.numberFormats=Z,lt.rt=Ht,lt.te=Ut,lt.tm=x,lt.d=Wt,lt.n=pe,lt.getDateTimeFormat=Q,lt.setDateTimeFormat=A,lt.mergeDateTimeFormat=I,lt.getNumberFormat=V,lt.setNumberFormat=X,lt.mergeNumberFormat=nt,lt[iO]=n,lt[Xf]=Y,lt[Yf]=ct,lt[Zf]=dt,lt}const ap={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:t=>t==="parent"||t==="global",default:"parent"},i18n:{type:Object}};function lO({slots:t},e){return e.length===1&&e[0]==="default"?(t.default?t.default():[]).reduce((s,i)=>[...s,...i.type===ht?i.children:[i]],[]):e.reduce((n,s)=>{const i=t[s];return i&&(n[s]=i()),n},Se())}function U0(){return ht}const cO=pi({name:"i18n-t",props:nn({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:t=>ze(t)||!isNaN(t)}},ap),setup(t,e){const{slots:n,attrs:s}=e,i=t.i18n||lp({useScope:t.scope,__useComponent:!0});return()=>{const r=Object.keys(n).filter(d=>d!=="_"),o=Se();t.locale&&(o.locale=t.locale),t.plural!==void 0&&(o.plural=St(t.plural)?+t.plural:t.plural);const a=lO(e,r),l=i[Xf](t.keypath,a,o),c=nn(Se(),s),u=St(t.tag)||fe(t.tag)?t.tag:U0();return Fs(u,c,l)}}}),Pg=cO;function uO(t){return Ze(t)&&!St(t[0])}function j0(t,e,n,s){const{slots:i,attrs:r}=e;return()=>{const o={part:!0};let a=Se();t.locale&&(o.locale=t.locale),St(t.format)?o.key=t.format:fe(t.format)&&(St(t.format.key)&&(o.key=t.format.key),a=Object.keys(t.format).reduce((f,h)=>n.includes(h)?nn(Se(),f,{[h]:t.format[h]}):f,Se()));const l=s(t.value,o,a);let c=[o.key];Ze(l)?c=l.map((f,h)=>{const p=i[f.type],m=p?p({[f.type]:f.value,index:h,parts:l}):[f.value];return uO(m)&&(m[0].key=`${f.type}-${h}`),m}):St(l)&&(c=[l]);const u=nn(Se(),r),d=St(t.tag)||fe(t.tag)?t.tag:U0();return Fs(d,u,c)}}const dO=pi({name:"i18n-n",props:nn({value:{type:Number,required:!0},format:{type:[String,Object]}},ap),setup(t,e){const n=t.i18n||lp({useScope:t.scope,__useComponent:!0});return j0(t,e,M0,(...s)=>n[Zf](...s))}}),Dg=dO;function fO(t,e){const n=t;if(t.mode==="composition")return n.__getInstance(e)||t.global;{const s=n.__getInstance(e);return s!=null?s.__composer:t.global.__composer}}function hO(t){const e=o=>{const{instance:a,value:l}=o;if(!a||!a.$)throw ks(us.UNEXPECTED_ERROR);const c=fO(t,a.$),u=Rg(l);return[Reflect.apply(c.t,c,[...Mg(u)]),c]};return{created:(o,a)=>{const[l,c]=e(a);Dc&&t.global===c&&(o.__i18nWatcher=Kn(c.locale,()=>{a.instance&&a.instance.$forceUpdate()})),o.__composer=c,o.textContent=l},unmounted:o=>{Dc&&o.__i18nWatcher&&(o.__i18nWatcher(),o.__i18nWatcher=void 0,delete o.__i18nWatcher),o.__composer&&(o.__composer=void 0,delete o.__composer)},beforeUpdate:(o,{value:a})=>{if(o.__composer){const l=o.__composer,c=Rg(a);o.textContent=Reflect.apply(l.t,l,[...Mg(c)])}},getSSRProps:o=>{const[a]=e(o);return{textContent:a}}}}function Rg(t){if(St(t))return{path:t};if(re(t)){if(!("path"in t))throw ks(us.REQUIRED_VALUE,"path");return t}else throw ks(us.INVALID_VALUE)}function Mg(t){const{path:e,locale:n,args:s,choice:i,plural:r}=t,o={},a=s||{};return St(n)&&(o.locale=n),ze(i)&&(o.plural=i),ze(r)&&(o.plural=r),[e,a,o]}function pO(t,e,...n){const s=re(n[0])?n[0]:{};(De(s.globalInstall)?s.globalInstall:!0)&&([Pg.name,"I18nT"].forEach(r=>t.component(r,Pg)),[Dg.name,"I18nN"].forEach(r=>t.component(r,Dg)),[$g.name,"I18nD"].forEach(r=>t.component(r,$g))),t.directive("t",hO(e))}const mO=Ji("global-vue-i18n");function gO(t={}){const e=De(t.globalInjection)?t.globalInjection:!0,n=new Map,[s,i]=yO(t),r=Ji("");function o(u){return n.get(u)||null}function a(u,d){n.set(u,d)}function l(u){n.delete(u)}const c={get mode(){return"composition"},async install(u,...d){if(u.__VUE_I18N_SYMBOL__=r,u.provide(u.__VUE_I18N_SYMBOL__,c),re(d[0])){const p=d[0];c.__composerExtend=p.__composerExtend,c.__vueI18nExtend=p.__vueI18nExtend}let f=null;e&&(f=CO(u,c.global)),pO(u,c,...d);const h=u.unmount;u.unmount=()=>{f&&f(),c.dispose(),h()}},get global(){return i},dispose(){s.stop()},__instances:n,__getInstance:o,__setInstance:a,__deleteInstance:l};return c}function lp(t={}){const e=In();if(e==null)throw ks(us.MUST_BE_CALL_SETUP_TOP);if(!e.isCE&&e.appContext.app!=null&&!e.appContext.app.__VUE_I18N_SYMBOL__)throw ks(us.NOT_INSTALLED);const n=bO(e),s=_O(n),i=V0(e),r=vO(t,i);if(r==="global")return rO(s,t,i),s;if(r==="parent"){let l=SO(n,e,t.__useComponent);return l==null&&(l=s),l}const o=n;let a=o.__getInstance(e);if(a==null){const l=nn({},t);"__i18n"in i&&(l.__i18n=i.__i18n),s&&(l.__root=s),a=H0(l),o.__composerExtend&&(a[Jf]=o.__composerExtend(a)),wO(o,e,a),o.__setInstance(e,a)}return a}function yO(t,e){const n=lu(),s=n.run(()=>H0(t));if(s==null)throw ks(us.UNEXPECTED_ERROR);return[n,s]}function bO(t){const e=os(t.isCE?mO:t.appContext.app.__VUE_I18N_SYMBOL__);if(!e)throw ks(t.isCE?us.NOT_INSTALLED_WITH_PROVIDE:us.UNEXPECTED_ERROR);return e}function vO(t,e){return Pu(t)?"__i18n"in e?"local":"global":t.useScope?t.useScope:"local"}function _O(t){return t.mode==="composition"?t.global:t.global.__composer}function SO(t,e,n=!1){let s=null;const i=e.root;let r=EO(e,n);for(;r!=null;){const o=t;if(t.mode==="composition"&&(s=o.__getInstance(r)),s!=null||i===r)break;r=r.parent}return s}function EO(t,e=!1){return t==null?null:e&&t.vnode.ctx||t.parent}function wO(t,e,n){Io(()=>{},e),Ya(()=>{const s=n;t.__deleteInstance(e);const i=s[Jf];i&&(i(),delete s[Jf])},e)}const kO=["locale","fallbackLocale","availableLocales"],Lg=["t","rt","d","n","tm","te"];function CO(t,e){const n=Object.create(null);return kO.forEach(i=>{const r=Object.getOwnPropertyDescriptor(e,i);if(!r)throw ks(us.UNEXPECTED_ERROR);const o=xe(r.value)?{get(){return r.value.value},set(a){r.value.value=a}}:{get(){return r.get&&r.get()}};Object.defineProperty(n,i,o)}),t.config.globalProperties.$i18n=n,Lg.forEach(i=>{const r=Object.getOwnPropertyDescriptor(e,i);if(!r||!r.value)throw ks(us.UNEXPECTED_ERROR);Object.defineProperty(t.config.globalProperties,`$${i}`,r)}),()=>{delete t.config.globalProperties.$i18n,Lg.forEach(i=>{delete t.config.globalProperties[`$${i}`]})}}const TO=pi({name:"i18n-d",props:nn({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},ap),setup(t,e){const n=t.i18n||lp({useScope:t.scope,__useComponent:!0});return j0(t,e,R0,(...s)=>n[Yf](...s))}}),$g=TO;nO();RA(mA);MA(NA);LA(O0);if(__INTLIFY_PROD_DEVTOOLS__){const t=tp();t.__INTLIFY__=!0,gA(t.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const Ld=t=>t&&typeof t=="object"&&!Array.isArray(t),Qf=(t,...e)=>{if(!e.length)return t;const n=e.shift();if(Ld(t)&&Ld(n))for(const s in n)Ld(n[s])?(t[s]||Object.assign(t,{[s]:{}}),Qf(t[s],n[s])):Object.assign(t,{[s]:n[s]});return Qf(t,...e)},AO=Qf({},{de:{actions:{add:{t:0,b:{t:2,i:[{t:3}],s:"Hinzufügen"}},"add-next":{t:0,b:{t:2,i:[{t:3}],s:"Als nächstes hinzufügen"}},"add-stream":{t:0,b:{t:2,i:[{t:3}],s:"Stream hinzufügen"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Abbrechen"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Alle entfernen"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Bearbeiten"}},login:{t:0,b:{t:2,i:[{t:3}],s:"Einloggen"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"Ausloggen"}},"hide-previous":{t:0,b:{t:2,i:[{t:3}],s:"Vorherige verbergen"}},"mark-all-played":{t:0,b:{t:2,i:[{t:3}],s:"Alle abgespielten markieren"}},"mark-as-new":{t:0,b:{t:2,i:[{t:3}],s:"Markiere als neu"}},"mark-as-played":{t:0,b:{t:2,i:[{t:3}],s:"Markiere als gespielt"}},pair:{t:0,b:{t:2,i:[{t:3}],s:"Remote paaren"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Spielen"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"Entfernen"}},"remove-podcast":{t:0,b:{t:2,i:[{t:3}],s:"Entferne podcast"}},rescan:{t:0,b:{t:2,i:[{t:3}],s:"Neu einlesen"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Speichern"}},send:{t:0,b:{t:2,i:[{t:3}],s:"Senden"}},"show-more":{t:0,b:{t:2,i:[{t:3}],s:"Zeige mehr"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Zufallswiedergabe"}}},count:{albums:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Alben"}]}]}},artists:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" Künstler"}]}},audiobooks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Hörbuch"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Hörbuch"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Hörbücher"}]}]}},authors:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Autor"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Autor"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Autoren"}]}]}},channels:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" canal"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" canaux"}]}]}},composers:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Komponist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Komponist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Komponisten"}]}]}},genres:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Genres"}]}]}},playlists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Playlist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Playlisten"}]}]}},podcasts:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Podcasts"}]}]}},stations:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Stationen"}]}]}},tracks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Track"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Track"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Tracks"}]}]}}},data:{kind:{file:{t:0,b:{t:2,i:[{t:3}],s:"Datei"}},url:{t:0,b:{t:2,i:[{t:3}],s:"URL"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},pipe:{t:0,b:{t:2,i:[{t:3}],s:"Stream"}}}},dialog:{add:{rss:{help:{t:0,b:{t:2,i:[{t:3}],s:"Hinzufügen eines Podcasts führt zur Anlage einer RSS-Playlist, so kann OwnTone das Podcast-Abo verwalten."}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-rss"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Verarbeite…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcast hinzufügen"}}},stream:{loading:{t:0,b:{t:2,i:[{t:3}],s:"Lade…"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-stream"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Verarbeite…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Stream hinzufügen"}}}},playlist:{save:{"playlist-name":{t:0,b:{t:2,i:[{t:3}],s:"Playlistname"}},saving:{t:0,b:{t:2,i:[{t:3}],s:"Speichere…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Warteschlange als Playlist speichern"}}}},"queue-item":{"quality-value":{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"channels"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}}},"remote-pairing":{"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Pairing-Code"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Remote-Paarungs-Anfrage"}}},track:{"quality-value":{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"channels"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}},"rating-value":{t:0,b:{t:2,i:[{t:4,k:"rating"},{t:3,v:" / 10"}]}}},update:{all:{t:0,b:{t:2,i:[{t:3}],s:"Alles neu einlesen"}},feeds:{t:0,b:{t:2,i:[{t:3}],s:"Nur RSS-Feeds neu einlesen"}},info:{t:0,b:{t:2,i:[{t:3}],s:"Suche nach neuen, gelöschten und veränderten Dateien"}},local:{t:0,b:{t:2,i:[{t:3}],s:"Nur lokale Bibliothek neu einlesen"}},progress:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothek wird neu eingelesen…"}},"rescan-metadata":{t:0,b:{t:2,i:[{t:3}],s:"Metadata von unveränderten Dateien neu einlesen"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Nur Spotify neu einlesen"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothek neu einlesen"}}}},language:{de:{t:0,b:{t:2,i:[{t:3}],s:"Deutsch"}},en:{t:0,b:{t:2,i:[{t:3}],s:"Englisch (English)"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"Französisch (Français)"}},"zh-CN":{t:0,b:{t:2,i:[{t:3}],s:"Vereinfachtes Chinesisch (簡體中文)"}},"zh-TW":{t:0,b:{t:2,i:[{t:3}],s:"Traditionelles Chinesisch (繁體中文)"}}},list:{albums:{info:{t:0,b:{t:2,i:[{t:3,v:"Diesen Podcast dauerhaft aus der Bibliothek löschen?"},{t:4,k:"separator"},{t:3,v:"(Damit wird auch die RSS-Playliste "},{t:4,k:"name"},{t:3,v:" gelöscht)"}]}}},spotify:{"not-playable-track":{t:0,b:{t:2,i:[{t:3}],s:"Track kann nicht gespielt werden"}},"restriction-reason":{t:0,b:{t:2,i:[{t:3,v:", Beschränkungsgrund: "},{t:4,k:"reason"}]}}}},media:{kind:{album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},audiobook:{t:0,b:{t:2,i:[{t:3}],s:"Hörbuch"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Musik"}},podcast:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}}}},navigation:{about:{t:0,b:{t:2,i:[{t:3}],s:"Über"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Hörbücher"}},"now-playing":{t:0,b:{t:2,i:[{t:3,v:" - "},{t:4,k:"album"}]}},"stream-error":{t:0,b:{t:2,i:[{t:3}],s:"HTTP-stream-Fehler: Stream kann nicht geladen werden oder wurde wg. Netzwerkfehler gestopt"}},stream:{t:0,b:{t:2,i:[{t:3}],s:"HTTP-stream"}},volume:{t:0,b:{t:2,i:[{t:3}],s:"Lautstärke"}},files:{t:0,b:{t:2,i:[{t:3}],s:"Dateien"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Musik"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlisten"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},search:{t:0,b:{t:2,i:[{t:3}],s:"Suche"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Einstellungen"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},"update-library":{t:0,b:{t:2,i:[{t:3}],s:"Bibliothek neu einlesen"}}},options:{filter:{"hide-singles":{t:0,b:{t:2,i:[{t:3}],s:"Verbirgt Singles"}},"hide-singles-help":{t:0,b:{t:2,i:[{t:3}],s:"Wenn aktiv, blendet Singles und alles, was mit ihnen verbunden ist, aus."}},"hide-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Verbirgt Spotify-Inhalt"}},"hide-spotify-help":{t:0,b:{t:2,i:[{t:3}],s:"Wenn aktiv, blendet Inhalte aus, die von Spotify stammen."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Filtern"}}},sort:{"artist-name":{t:0,b:{t:2,i:[{t:3}],s:"Künstler › Name"}},"artist-date":{t:0,b:{t:2,i:[{t:3}],s:"Künstler › Erscheinungsdatum"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Namen"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Bewertung"}},"recently-added":{t:0,b:{t:2,i:[{t:3}],s:"Kürzlich hinzugefügt"}},"recently-released":{t:0,b:{t:2,i:[{t:3}],s:"Kürzlich erschienen"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Erscheinungsdatum"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Sortieren"}}}},page:{about:{"built-with":{t:0,b:{t:2,i:[{t:3,v:"Oberfläche erstellt mit "},{t:4,k:"bulma"},{t:3,v:", "},{t:4,k:"mdi"},{t:3,v:", "},{t:4,k:"vuejs"},{t:3,v:", "},{t:4,k:"axios"},{t:3,v:" und "},{t:4,k:"others"},{t:3,v:"."}]}},"compiled-with":{t:0,b:{t:2,i:[{t:3,v:"Compiliert mit Unterstützung von "},{t:4,k:"options"},{t:3,v:"."}]}},library:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothek"}},more:{t:0,b:{t:2,i:[{t:3}],s:"mehr"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Neu einlesen"}},version:{t:0,b:{t:2,i:[{t:3,v:"Version "},{t:4,k:"version"}]}}},albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}}},audiobooks:{albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Hörbücher"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Autoren"}}},tabs:{authors:{t:0,b:{t:2,i:[{t:3}],s:"Autoren"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Hörbücher"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}}},composers:{title:{t:0,b:{t:2,i:[{t:3}],s:"Komponisten"}}},files:{title:{t:0,b:{t:2,i:[{t:3}],s:"Dateien"}}},genres:{title:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}},music:{"recently-added":{title:{t:0,b:{t:2,i:[{t:3}],s:"Kürzlich hinzugefügt"}}},"recently-played":{title:{t:0,b:{t:2,i:[{t:3}],s:"Kürzlich gespielt"}}},tabs:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Komponisten"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},history:{t:0,b:{t:2,i:[{t:3}],s:"Verlauf"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},"now-playing":{info:{t:0,b:{t:2,i:[{t:3}],s:"Tracks durch Auswählen aus der Bibliothek anfügen"}},live:{t:0,b:{t:2,i:[{t:3}],s:"Live"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Deine Playliste ist leer."}}},playlists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Playlisten"}}},podcast:{"remove-info":{t:0,b:{t:2,i:[{t:3,v:"Diesen Podcast dauerhaft aus der Bibliothek löschen?"},{t:4,k:"separator"},{t:3,v:"(Damit wird auch die RSS-Playliste "},{t:4,k:"name"},{t:3,v:" gelöscht)"}]}}},podcasts:{"new-episodes":{t:0,b:{t:2,i:[{t:3}],s:"Neue Episoden"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Neu einlesen"}}},queue:{title:{t:0,b:{t:2,i:[{t:3}],s:"Warteschlange"}}},radio:{title:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Hörbücher"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Komponisten"}},expression:{t:0,b:{t:2,i:[{t:3}],s:"Ausdrücken"}},help:{t:0,b:{t:2,i:[{t:3,v:"Tip: Du kannst mit einer Smart-Playlist-Abfrage-Sprache nach "},{t:4,k:"help"},{t:3,v:" suchen wenn Du dem Ausdruck ein "},{t:4,k:"query"},{t:3,v:" voranstellst."}]}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"Keine Ergebnisse gefunden"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Suche"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlisten"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige das Album"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Alben"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige den Künstler"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Künstler"}]}]}},"show-audiobooks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige das Buch"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Hörbücher"}]}]}},"show-composers":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige den Komponist"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Komponisten"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige die Playlist"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Playlisten"}]}]}},"show-podcasts":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige den Podcast"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Podcasts"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige den Track"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Tracks"}]}]}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Tracks"}},tabs:{library:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothek"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},settings:{artwork:{title:{t:0,b:{t:2,i:[{t:3}],s:"Artwork"}},coverartarchive:{t:0,b:{t:2,i:[{t:3}],s:"Cover Art Archive"}},discogs:{t:0,b:{t:2,i:[{t:3}],s:"Discogs"}},"explanation-1":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone verarbeitet PNG- und JPEG-Artwork, welches in einer eigenen Datei in der Bibliothek, in die Dateien eingebettet oder online von Radiostationen bereitgestellt werden kann."}},"explanation-2":{t:0,b:{t:2,i:[{t:3}],s:"Zusätzlich kann auf folgende Artwork-Anbieter zugegriffen werden:"}},"show-coverart":{t:0,b:{t:2,i:[{t:3}],s:"Zeige Cover-Artwork in der Albumliste"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"Bereitgestellte Artwork von Radiostationen ignorieren"}}},devices:{"no-active-pairing":{t:0,b:{t:2,i:[{t:3}],s:"Keine aktive Pairing-Anfrage"}},"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Pairing-Code"}},"pairing-request":{t:0,b:{t:2,i:[{t:3}],s:"Remote-Pairing-Anfrage von "}},pairing:{t:0,b:{t:2,i:[{t:3}],s:"Pairing Remote"}},"speaker-pairing-info":{t:0,b:{t:2,i:[{t:3}],s:"Wenn der Laufsprecher PIN-basiertes Pairing verlangt, aktiviere ihn hier und gib dann den hier PIN an, der am Lautsprecher angezeigt wird."}},"speaker-pairing":{t:0,b:{t:2,i:[{t:3}],s:"Lautsprecher-Pairing und Geräteverifikation"}},"verification-code":{t:0,b:{t:2,i:[{t:3}],s:"Verifikationscode"}},verify:{t:0,b:{t:2,i:[{t:3}],s:"Verifizieren"}}},general:{audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Hörbücher"}},files:{t:0,b:{t:2,i:[{t:3}],s:"Dateien"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Sprache"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Musik"}},"navigation-item-selection-info":{t:0,b:{t:2,i:[{t:3}],s:"Wenn mehr Dateien ausgewählt werden, als der Bildschirm anzeigen kann, verschwindet das Burger-Menü."}},"navigation-item-selection":{t:0,b:{t:2,i:[{t:3}],s:"Wähle hier die Einträge des oberen Navigationsmenüs "}},"navigation-items":{t:0,b:{t:2,i:[{t:3}],s:"Navigationsmenüs"}},"now-playing-page":{t:0,b:{t:2,i:[{t:3}],s:"Aktuell läuft-Seite"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlisten"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},"recently-added-page-info":{t:0,b:{t:2,i:[{t:3}],s:"Beschränkte die Zahl der Alben"}},"recently-added-page":{t:0,b:{t:2,i:[{t:3}],s:"Kürzlich hinzugefügt-Seite"}},search:{t:0,b:{t:2,i:[{t:3}],s:"Suche"}},"show-composer-genres-help":{t:0,b:{t:2,i:[{t:3,v:"Komma getrennte Liste der Genres, für die der Komponist angezeigt werden soll."},{t:5,i:0},{t:3,v:"Leer lassen, um den Komponisten immer anzuzeigen."},{t:5,i:0},{t:3,v:'Der Genre-Tag des aktuellen Tracks wird abgeglichen als Teil-String des Genre-Tags. Z.B. "classical, soundtrack" wird den Komponisten beim Genre-Tag "Contemporary Classical" anzeigen'}]}},"show-composer-genres":{t:0,b:{t:2,i:[{t:3}],s:"Zeige den Komponisten für die aufgelisteten Genres an"}},"show-composer-info":{t:0,b:{t:2,i:[{t:3}],s:"Wenn aktiviert, wird der Komponist angezeigt."}},"show-composer":{t:0,b:{t:2,i:[{t:3}],s:"Komponisten anzeigen"}},"show-path":{t:0,b:{t:2,i:[{t:3}],s:"Dateipfad anzeigen"}}},services:{lastfm:{"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Melde Dich mit Deinem Last.fm-Benutzernamen und Passwort an, um Scrobbeln zu aktivieren"}},info:{t:0,b:{t:2,i:[{t:3}],s:"OwnTone wird den Benutzernamen und das Passwort von last.fm nicht speichern, nur den Sitzungs-Schlüssel. Dieser läuft nicht ab."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Last.fm"}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone wurde ohne Unterstützung für Last.fm erstellt."}}},spotify:{"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone wurde entweder ohne Unterstützung für Spotify erstellt oder libspotify ist nicht installiert."}},"logged-as":{t:0,b:{t:2,i:[{t:3}],s:"Angemeldet als "}},requirements:{t:0,b:{t:2,i:[{t:3}],s:"Spotify Premium Abo erforderlich. Zugriff auf die Spotify Web-Api ermöglicht scannen der Spotify-Blibliothek. Erforderliche scopes sind: "}},user:{t:0,b:{t:2,i:[{t:3}],s:"Zugriff gestattet für "}},authorize:{t:0,b:{t:2,i:[{t:3}],s:"Authorisiere Web-API-Zugriff"}},"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Zugriff auf die Spotify Web-API gestatten"}},reauthorize:{t:0,b:{t:2,i:[{t:3}],s:"Bitte den Zugriff der Web-API durch setzen folgender Zugriffsrechte für OwnTone: "}},title:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},password:{t:0,b:{t:2,i:[{t:3}],s:"Passwort"}},username:{t:0,b:{t:2,i:[{t:3}],s:"Benutzername"}}},tabs:{artwork:{t:0,b:{t:2,i:[{t:3}],s:"Artwork"}},general:{t:0,b:{t:2,i:[{t:3}],s:"Allgemein"}},"online-services":{t:0,b:{t:2,i:[{t:3}],s:"Online-Services"}},"remotes-and-outputs":{t:0,b:{t:2,i:[{t:3}],s:"Fernbedienungen und Ausgänge"}}}},spotify:{music:{"featured-playlists":{t:0,b:{t:2,i:[{t:3}],s:"Ausgezeichnete Playlisten"}},"new-releases":{t:0,b:{t:2,i:[{t:3}],s:"Neuvorstellung"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"Keine Ergebnisse gefunden"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Suche"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlisten"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige das Album"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Alben"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige den Künstler"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Künstler"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige die Playlist"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Playlisten"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige den Track"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Tracks"}]}]}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Tracks"}}}}},playlist:{type:{folder:{t:0,b:{t:2,i:[{t:3}],s:"Ordner"}},plain:{t:0,b:{t:2,i:[{t:3}],s:"Einfache"}},smart:{t:0,b:{t:2,i:[{t:3}],s:"Intelligente"}}}},player:{button:{consume:{t:0,b:{t:2,i:[{t:3}],s:"Verlauf löschen"}},pause:{t:0,b:{t:2,i:[{t:3}],s:"Wiedergabe anhalten"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Wiedergeben"}},repeat:{t:0,b:{t:2,i:[{t:3}],s:"Alle Tracks wiederholen"}},"repeat-off":{t:0,b:{t:2,i:[{t:3}],s:"Tracks einmal lesen"}},"repeat-once":{t:0,b:{t:2,i:[{t:3}],s:"Aktuellen Track wiederholen"}},"seek-backward":{t:0,b:{t:2,i:[{t:3}],s:"Rückwärts im Track suchen"}},"seek-forward":{t:0,b:{t:2,i:[{t:3}],s:"Vorwärts im Track suchen"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Tracks zufällig wiedergeben"}},"shuffle-disabled":{t:0,b:{t:2,i:[{t:3}],s:"Tracks in Reihenfolge wiedergeben"}},"skip-backward":{t:0,b:{t:2,i:[{t:3}],s:"Zum vorherigen Track springen"}},"skip-forward":{t:0,b:{t:2,i:[{t:3}],s:"Zum nächsten Track springen"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Wiedergabe stoppen"}},"toggle-lyrics":{t:0,b:{t:2,i:[{t:3}],s:"Liedtexte anzeigen/verbergen"}}}},property:{"added-on":{t:0,b:{t:2,i:[{t:3}],s:"Hinzugefügt am"}},album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}},"album-artist":{t:0,b:{t:2,i:[{t:3}],s:"Album-Künstler"}},artist:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},comment:{t:0,b:{t:2,i:[{t:3}],s:"Kommentar"}},composer:{t:0,b:{t:2,i:[{t:3}],s:"Komponist"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Dauer"}},genre:{t:0,b:{t:2,i:[{t:3}],s:"Genre"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Name"}},owner:{t:0,b:{t:2,i:[{t:3}],s:"Besitzer"}},path:{t:0,b:{t:2,i:[{t:3}],s:"Pfad"}},playtime:{t:0,b:{t:2,i:[{t:3}],s:"Spielzeit"}},popularity:{t:0,b:{t:2,i:[{t:3}],s:"Popularität / Followers"}},position:{t:0,b:{t:2,i:[{t:3}],s:"Disc / Track"}},quality:{t:0,b:{t:2,i:[{t:3}],s:"Qualität"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Bewertung"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Erscheinungsdatum"}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Tracks"}},type:{t:0,b:{t:2,i:[{t:3}],s:"Art"}},updated:{t:0,b:{t:2,i:[{t:3}],s:"Neu eingelesen"}},uptime:{t:0,b:{t:2,i:[{t:3}],s:"Laufzeit"}},year:{t:0,b:{t:2,i:[{t:3}],s:"Jahr"}}},server:{"connection-failed":{t:0,b:{t:2,i:[{t:3}],s:"Fehler bei Verbindung zum OwnTone-Server"}},"request-failed":{t:0,b:{t:2,i:[{t:3,v:"Anfrage gescheitert (Status: "},{t:4,k:"status"},{t:3,v:" "},{t:4,k:"cause"},{t:3,v:" "},{t:4,k:"url"},{t:3,v:")"}]}},"queue-saved":{t:0,b:{t:2,i:[{t:3,v:"Warteschlange zu Playlist "},{t:4,k:"name"},{t:3,v:" gesichert"}]}},"appended-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Track an die Abspielliste angehängt"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Tracks an die Abspielliste angehängt"}]}]}},"empty-queue":{t:0,b:{t:2,i:[{t:3}],s:"Warteschlange ist leer"}}},"grouped-list":{today:{t:0,b:{t:2,i:[{t:3}],s:"Heute"}},"last-week":{t:0,b:{t:2,i:[{t:3}],s:"Letzte Woche"}},"last-month":{t:0,b:{t:2,i:[{t:3}],s:"Letzer Monat"}},undefined:{t:0,b:{t:2,i:[{t:3}],s:"Unbestimmt"}}}}},{en:{actions:{add:{t:0,b:{t:2,i:[{t:3}],s:"Add"}},"add-next":{t:0,b:{t:2,i:[{t:3}],s:"Add Next"}},"add-stream":{t:0,b:{t:2,i:[{t:3}],s:"Add stream"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Cancel"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Clear"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Edit"}},login:{t:0,b:{t:2,i:[{t:3}],s:"Login"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"Logout"}},"hide-previous":{t:0,b:{t:2,i:[{t:3}],s:"Hide previous"}},"mark-all-played":{t:0,b:{t:2,i:[{t:3}],s:"Mark All Played"}},"mark-as-new":{t:0,b:{t:2,i:[{t:3}],s:"Mark as new"}},"mark-as-played":{t:0,b:{t:2,i:[{t:3}],s:"Mark as played"}},pair:{t:0,b:{t:2,i:[{t:3}],s:"Pair Remote"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Play"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"Remove"}},"remove-podcast":{t:0,b:{t:2,i:[{t:3}],s:"Remove podcast"}},rescan:{t:0,b:{t:2,i:[{t:3}],s:"Rescan"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Save"}},send:{t:0,b:{t:2,i:[{t:3}],s:"Send"}},"show-more":{t:0,b:{t:2,i:[{t:3}],s:"Show more"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Shuffle"}}},count:{albums:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" albums"}]}]}},artists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" artist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" artist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" artists"}]}]}},audiobooks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" audiobook"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" audiobook"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" audiobooks"}]}]}},authors:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" author"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" author"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" authors"}]}]}},channels:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" channel"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" channels"}]}]}},composers:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" composer"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" composer"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" composers"}]}]}},genres:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" genres"}]}]}},playlists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" playlist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" playlist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" playlists"}]}]}},podcasts:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" podcasts"}]}]}},stations:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" stations"}]}]}},tracks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" track"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" track"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" tracks"}]}]}}},data:{kind:{file:{t:0,b:{t:2,i:[{t:3}],s:"File"}},url:{t:0,b:{t:2,i:[{t:3}],s:"URL"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},pipe:{t:0,b:{t:2,i:[{t:3}],s:"Stream"}}}},dialog:{add:{rss:{help:{t:0,b:{t:2,i:[{t:3}],s:"Adding a podcast includes creating an RSS playlist, that will allow OwnTone to manage the podcast subscription."}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-rss"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Processing…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Add podcast"}}},stream:{loading:{t:0,b:{t:2,i:[{t:3}],s:"Loading…"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-stream"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Processing…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Add stream"}}}},playlist:{save:{"playlist-name":{t:0,b:{t:2,i:[{t:3}],s:"Playlist name"}},saving:{t:0,b:{t:2,i:[{t:3}],s:"Saving…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Save queue to playlist"}}}},"queue-item":{"quality-value":{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"count.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}}},"remote-pairing":{"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Pairing code"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Remote pairing request"}}},track:{"quality-value":{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"count.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}},"rating-value":{t:0,b:{t:2,i:[{t:4,k:"rating"},{t:3,v:" / 10"}]}}},update:{all:{t:0,b:{t:2,i:[{t:3}],s:"Update everything"}},feeds:{t:0,b:{t:2,i:[{t:3}],s:"Only update RSS feeds"}},info:{t:0,b:{t:2,i:[{t:3}],s:"Scan for new, deleted and modified files"}},local:{t:0,b:{t:2,i:[{t:3}],s:"Only update local library"}},progress:{t:0,b:{t:2,i:[{t:3}],s:"Library update in progress…"}},"rescan-metadata":{t:0,b:{t:2,i:[{t:3}],s:"Rescan metadata of unmodified files"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Only update Spotify"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Update library"}}}},language:{de:{t:0,b:{t:2,i:[{t:3}],s:"German (Deutsch)"}},en:{t:0,b:{t:2,i:[{t:3}],s:"English"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"French (Français)"}},"zh-CN":{t:0,b:{t:2,i:[{t:3}],s:"Simplified Chinese (簡體中文)"}},"zh-TW":{t:0,b:{t:2,i:[{t:3}],s:"Traditional Chinese (繁體中文)"}}},list:{albums:{info:{t:0,b:{t:2,i:[{t:3,v:"Permanently remove this podcast from your library?"},{t:4,k:"separator"},{t:3,v:"(This will also remove the RSS playlist "},{t:4,k:"name"},{t:3,v:")"}]}}},spotify:{"not-playable-track":{t:0,b:{t:2,i:[{t:3}],s:"Track is not playable"}},"restriction-reason":{t:0,b:{t:2,i:[{t:3,v:", restriction reason: "},{t:4,k:"reason"}]}}}},media:{kind:{album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},audiobook:{t:0,b:{t:2,i:[{t:3}],s:"Audiobook"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Music"}},podcast:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}}}},navigation:{about:{t:0,b:{t:2,i:[{t:3}],s:"About"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Audiobooks"}},"now-playing":{t:0,b:{t:2,i:[{t:3,v:" - "},{t:4,k:"album"}]}},"stream-error":{t:0,b:{t:2,i:[{t:3}],s:"HTTP stream error: failed to load stream or stopped loading due to network problem"}},stream:{t:0,b:{t:2,i:[{t:3}],s:"HTTP stream"}},volume:{t:0,b:{t:2,i:[{t:3}],s:"Volume"}},files:{t:0,b:{t:2,i:[{t:3}],s:"Files"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Music"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlists"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},search:{t:0,b:{t:2,i:[{t:3}],s:"Search"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Settings"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},"update-library":{t:0,b:{t:2,i:[{t:3}],s:"Update Library"}}},options:{filter:{"hide-singles":{t:0,b:{t:2,i:[{t:3}],s:"Hide singles"}},"hide-singles-help":{t:0,b:{t:2,i:[{t:3}],s:"If active, hides singles and anything associated with them."}},"hide-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Hide Spotify content"}},"hide-spotify-help":{t:0,b:{t:2,i:[{t:3}],s:"If active, hides content from Spotify."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Filter"}}},sort:{"artist-name":{t:0,b:{t:2,i:[{t:3}],s:"Artist › Name"}},"artist-date":{t:0,b:{t:2,i:[{t:3}],s:"Artist › Release date"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Name"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Rating"}},"recently-added":{t:0,b:{t:2,i:[{t:3}],s:"Recently added"}},"recently-released":{t:0,b:{t:2,i:[{t:3}],s:"Recently released"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Release date"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Sort"}}}},page:{about:{"built-with":{t:0,b:{t:2,i:[{t:3,v:"Web interface built with "},{t:4,k:"bulma"},{t:3,v:", "},{t:4,k:"mdi"},{t:3,v:", "},{t:4,k:"vuejs"},{t:3,v:", "},{t:4,k:"axios"},{t:3,v:" and "},{t:4,k:"others"},{t:3,v:"."}]}},"compiled-with":{t:0,b:{t:2,i:[{t:3,v:"Compiled with support for "},{t:4,k:"options"},{t:3,v:"."}]}},library:{t:0,b:{t:2,i:[{t:3}],s:"Library"}},more:{t:0,b:{t:2,i:[{t:3}],s:"more"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Update"}},version:{t:0,b:{t:2,i:[{t:3,v:"Version "},{t:4,k:"version"}]}}},albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}}},audiobooks:{albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Audiobooks"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Authors"}}},tabs:{authors:{t:0,b:{t:2,i:[{t:3}],s:"Authors"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Audiobooks"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}}},composers:{title:{t:0,b:{t:2,i:[{t:3}],s:"Composers"}}},files:{title:{t:0,b:{t:2,i:[{t:3}],s:"Files"}}},genres:{title:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}},music:{"recently-added":{title:{t:0,b:{t:2,i:[{t:3}],s:"Recently added"}}},"recently-played":{title:{t:0,b:{t:2,i:[{t:3}],s:"Recently played"}}},tabs:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Composers"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},history:{t:0,b:{t:2,i:[{t:3}],s:"History"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},"now-playing":{info:{t:0,b:{t:2,i:[{t:3}],s:"Add some tracks by browsing your library"}},live:{t:0,b:{t:2,i:[{t:3}],s:"Live"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Your play queue is empty"}}},playlists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Playlists"}}},podcast:{"remove-info":{t:0,b:{t:2,i:[{t:3,v:"Permanently remove this podcast from your library?"},{t:4,k:"separator"},{t:3,v:"(This will also remove the RSS playlist "},{t:4,k:"name"},{t:3,v:")"}]}}},podcasts:{"new-episodes":{t:0,b:{t:2,i:[{t:3}],s:"New Episodes"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Update"}}},queue:{title:{t:0,b:{t:2,i:[{t:3}],s:"Queue"}}},radio:{title:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Audiobooks"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Composers"}},expression:{t:0,b:{t:2,i:[{t:3}],s:"expression"}},help:{t:0,b:{t:2,i:[{t:3,v:"Tip: you can search by a smart playlist query language "},{t:4,k:"help"},{t:3,v:" if you prefix it with "},{t:4,k:"query"},{t:3,v:"."}]}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"No results found"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Search"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlists"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the album"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" albums"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the artist"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" artists"}]}]}},"show-audiobooks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the audiobook"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" audiobooks"}]}]}},"show-composers":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the composer"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" composers"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the playlist"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" playlists"}]}]}},"show-podcasts":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the podcast"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" podcasts"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the track"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" tracks"}]}]}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Tracks"}},tabs:{library:{t:0,b:{t:2,i:[{t:3}],s:"Library"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},settings:{artwork:{title:{t:0,b:{t:2,i:[{t:3}],s:"Artwork"}},coverartarchive:{t:0,b:{t:2,i:[{t:3}],s:"Cover Art Archive"}},discogs:{t:0,b:{t:2,i:[{t:3}],s:"Discogs"}},"explanation-1":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone supports PNG and JPEG artwork which is either placed as separate image files in the library, embedded in the media files or made available online by radio stations."}},"explanation-2":{t:0,b:{t:2,i:[{t:3}],s:"In addition to that, you can enable fetching artwork from the following artwork providers:"}},"show-coverart":{t:0,b:{t:2,i:[{t:3}],s:"Show cover artwork in album list"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"Ignore artwork provided by radio stations"}}},devices:{"no-active-pairing":{t:0,b:{t:2,i:[{t:3}],s:"No active pairing request."}},"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Pairing code"}},"pairing-request":{t:0,b:{t:2,i:[{t:3}],s:"Remote pairing request from "}},pairing:{t:0,b:{t:2,i:[{t:3}],s:"Remote Pairing"}},"speaker-pairing-info":{t:0,b:{t:2,i:[{t:3}],s:"If your speaker requires pairing then activate it below and enter the PIN that it displays."}},"speaker-pairing":{t:0,b:{t:2,i:[{t:3}],s:"Speaker pairing and device verification"}},"verification-code":{t:0,b:{t:2,i:[{t:3}],s:"Verification code"}},verify:{t:0,b:{t:2,i:[{t:3}],s:"Verify"}}},general:{audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Audiobooks"}},files:{t:0,b:{t:2,i:[{t:3}],s:"Files"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Language"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Music"}},"navigation-item-selection-info":{t:0,b:{t:2,i:[{t:3}],s:"If you select more items than can be shown on your screen then the burger menu will disappear."}},"navigation-item-selection":{t:0,b:{t:2,i:[{t:3}],s:"Select the top navigation bar menu items"}},"navigation-items":{t:0,b:{t:2,i:[{t:3}],s:"Navigation Bar"}},"now-playing-page":{t:0,b:{t:2,i:[{t:3}],s:"Now playing page"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlists"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},"recently-added-page-info":{t:0,b:{t:2,i:[{t:3}],s:"Limit the number of albums displayed"}},"recently-added-page":{t:0,b:{t:2,i:[{t:3}],s:"Recently added page"}},search:{t:0,b:{t:2,i:[{t:3}],s:"Search"}},"show-composer-genres-help":{t:0,b:{t:2,i:[{t:3,v:"Comma-separated list of genres, for which the composer must be displayed."},{t:5,i:0},{t:3,v:"Leave empty to always show the composer."},{t:5,i:0},{t:3,v:'The genre tag of the current track is matched by checking, if one of the defined genres are included. For example setting to "classical, soundtrack" will show the composer for tracks with a genre tag of "Contemporary Classical"'}]}},"show-composer-genres":{t:0,b:{t:2,i:[{t:3}],s:"Show composer only for listed genres"}},"show-composer-info":{t:0,b:{t:2,i:[{t:3}],s:"If enabled, the composer of the current playing track is displayed"}},"show-composer":{t:0,b:{t:2,i:[{t:3}],s:"Show composer"}},"show-path":{t:0,b:{t:2,i:[{t:3}],s:"Show filepath"}}},services:{lastfm:{"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Login with your Last.fm username and password to enable scrobbling"}},info:{t:0,b:{t:2,i:[{t:3}],s:"OwnTone will not store your Last.fm username/password, only the session key. The session key does not expire."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Last.fm"}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone was built without support for Last.fm."}}},spotify:{"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone was either built without support for Spotify or libspotify is not installed."}},"logged-as":{t:0,b:{t:2,i:[{t:3}],s:"Logged in as "}},requirements:{t:0,b:{t:2,i:[{t:3}],s:"You must have a Spotify premium account. Access to the Spotify Web API enables scanning of your Spotify library. Required scopes are: "}},user:{t:0,b:{t:2,i:[{t:3}],s:"Access granted for "}},authorize:{t:0,b:{t:2,i:[{t:3}],s:"Authorize Web API access"}},"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Grant access to the Spotify Web API"}},reauthorize:{t:0,b:{t:2,i:[{t:3}],s:"Please reauthorize Web API access to grant OwnTone the following additional access rights: "}},title:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},password:{t:0,b:{t:2,i:[{t:3}],s:"Password"}},username:{t:0,b:{t:2,i:[{t:3}],s:"Username"}}},tabs:{artwork:{t:0,b:{t:2,i:[{t:3}],s:"Artwork"}},general:{t:0,b:{t:2,i:[{t:3}],s:"General"}},"online-services":{t:0,b:{t:2,i:[{t:3}],s:"Online Services"}},"remotes-and-outputs":{t:0,b:{t:2,i:[{t:3}],s:"Remotes and Outputs"}}}},spotify:{music:{"featured-playlists":{t:0,b:{t:2,i:[{t:3}],s:"Featured Playlists"}},"new-releases":{t:0,b:{t:2,i:[{t:3}],s:"New Releases"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"No results found"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Search"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlists"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the album"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" albums"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the artist"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" artists"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the playlist"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" playlists"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the track"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" tracks"}]}]}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Tracks"}}}}},playlist:{type:{folder:{t:0,b:{t:2,i:[{t:3}],s:"Folder"}},plain:{t:0,b:{t:2,i:[{t:3}],s:"Plain"}},smart:{t:0,b:{t:2,i:[{t:3}],s:"Smart"}}}},player:{button:{consume:{t:0,b:{t:2,i:[{t:3}],s:"Clear history"}},pause:{t:0,b:{t:2,i:[{t:3}],s:"Pause"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Play"}},repeat:{t:0,b:{t:2,i:[{t:3}],s:"Repeat all tracks"}},"repeat-off":{t:0,b:{t:2,i:[{t:3}],s:"Read tracks once"}},"repeat-once":{t:0,b:{t:2,i:[{t:3}],s:"Repeat current track"}},"seek-backward":{t:0,b:{t:2,i:[{t:3}],s:"Seek backward in the track"}},"seek-forward":{t:0,b:{t:2,i:[{t:3}],s:"Seek forward in the track"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Play tracks randomly"}},"shuffle-disabled":{t:0,b:{t:2,i:[{t:3}],s:"Play tracks in order"}},"skip-backward":{t:0,b:{t:2,i:[{t:3}],s:"Skip to previous track"}},"skip-forward":{t:0,b:{t:2,i:[{t:3}],s:"Skip to next track"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Stop"}},"toggle-lyrics":{t:0,b:{t:2,i:[{t:3}],s:"Toggle lyrics"}}}},property:{"added-on":{t:0,b:{t:2,i:[{t:3}],s:"Added On"}},album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},"album-artist":{t:0,b:{t:2,i:[{t:3}],s:"Album Artist"}},artist:{t:0,b:{t:2,i:[{t:3}],s:"Artist"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}},comment:{t:0,b:{t:2,i:[{t:3}],s:"Comment"}},composer:{t:0,b:{t:2,i:[{t:3}],s:"Composer"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Duration"}},genre:{t:0,b:{t:2,i:[{t:3}],s:"Genre"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Name"}},owner:{t:0,b:{t:2,i:[{t:3}],s:"Owner"}},path:{t:0,b:{t:2,i:[{t:3}],s:"Path"}},playtime:{t:0,b:{t:2,i:[{t:3}],s:"Playtime"}},popularity:{t:0,b:{t:2,i:[{t:3}],s:"Popularity / Followers"}},position:{t:0,b:{t:2,i:[{t:3}],s:"Disc / Track"}},quality:{t:0,b:{t:2,i:[{t:3}],s:"Quality"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Rating"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Release Date"}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Tracks"}},type:{t:0,b:{t:2,i:[{t:3}],s:"Type"}},updated:{t:0,b:{t:2,i:[{t:3}],s:"Updated"}},uptime:{t:0,b:{t:2,i:[{t:3}],s:"Uptime"}},year:{t:0,b:{t:2,i:[{t:3}],s:"Year"}}},server:{"connection-failed":{t:0,b:{t:2,i:[{t:3}],s:"Failed to connect to OwnTone server"}},"request-failed":{t:0,b:{t:2,i:[{t:3,v:"Request failed (status: "},{t:4,k:"status"},{t:3,v:" "},{t:4,k:"cause"},{t:3,v:" "},{t:4,k:"url"},{t:3,v:")"}]}},"queue-saved":{t:0,b:{t:2,i:[{t:3,v:"Queue saved to playlist "},{t:4,k:"name"}]}},"appended-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" track appended to the queue"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" tracks appended to the queue"}]}]}},"empty-queue":{t:0,b:{t:2,i:[{t:3}],s:"Queue is empty"}}},"grouped-list":{today:{t:0,b:{t:2,i:[{t:3}],s:"Today"}},"last-week":{t:0,b:{t:2,i:[{t:3}],s:"Last week"}},"last-month":{t:0,b:{t:2,i:[{t:3}],s:"Last month"}},undefined:{t:0,b:{t:2,i:[{t:3}],s:"Undefined"}}}}},{fr:{actions:{add:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter"}},"add-next":{t:0,b:{t:2,i:[{t:3}],s:"Ajouter ensuite"}},"add-stream":{t:0,b:{t:2,i:[{t:3}],s:"Ajouter un flux"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Annuler"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Effacer"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Éditer"}},login:{t:0,b:{t:2,i:[{t:3}],s:"Se connecter"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"Se déconnecter"}},"hide-previous":{t:0,b:{t:2,i:[{t:3}],s:"Masquer l’historique"}},"mark-all-played":{t:0,b:{t:2,i:[{t:3}],s:"Marquer comme lus"}},"mark-as-new":{t:0,b:{t:2,i:[{t:3}],s:"Marquer comme nouveau"}},"mark-as-played":{t:0,b:{t:2,i:[{t:3}],s:"Marquer comme lu"}},pair:{t:0,b:{t:2,i:[{t:3}],s:"Jumeler la télécommande"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Lire"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer"}},"remove-podcast":{t:0,b:{t:2,i:[{t:3}],s:"Supprimer le podcast"}},rescan:{t:0,b:{t:2,i:[{t:3}],s:"Analyser"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Enregistrer"}},send:{t:0,b:{t:2,i:[{t:3}],s:"Envoyer"}},"show-more":{t:0,b:{t:2,i:[{t:3}],s:"Afficher plus"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Lecture aléatoire"}}},count:{albums:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" albums"}]}]}},artists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" artiste"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" artiste"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" artistes"}]}]}},audiobooks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" livre audio"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" livre audio"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" livres audio"}]}]}},authors:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" auteur"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" auteur"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" auteurs"}]}]}},channels:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" canal"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" canaux"}]}]}},composers:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" compositeur"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" compositeur"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" compositeurs"}]}]}},genres:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" genres"}]}]}},playlists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" liste de lecture"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" liste de lecture"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" listes de lecture"}]}]}},podcasts:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" podcasts"}]}]}},stations:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" stations"}]}]}},tracks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" piste"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" piste"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" pistes"}]}]}}},data:{kind:{file:{t:0,b:{t:2,i:[{t:3}],s:"Fichier"}},url:{t:0,b:{t:2,i:[{t:3}],s:"URL"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},pipe:{t:0,b:{t:2,i:[{t:3}],s:"Flux"}}}},dialog:{add:{rss:{help:{t:0,b:{t:2,i:[{t:3}],s:"L’ajout d’un podcast inclut la création d’une liste de lecture RSS, qui permettra à OwnTone de gérer l’abonnement au podcast."}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-du-flux-rss"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Traitement en cours…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter un podcast"}}},stream:{loading:{t:0,b:{t:2,i:[{t:3}],s:"Chargement…"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-du-flux"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Traitement en cours…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter un flux"}}}},playlist:{save:{"playlist-name":{t:0,b:{t:2,i:[{t:3}],s:"Nom de la liste de lecture"}},saving:{t:0,b:{t:2,i:[{t:3}],s:"Enregistrement en cours…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Enregistrer la file d’attente dans une liste de lecture"}}}},"queue-item":{"quality-value":{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"channels"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}}},"remote-pairing":{"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Code de jumelage"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Demande de jumelage de télécommande"}}},track:{"quality-value":{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"channels"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}},"rating-value":{t:0,b:{t:2,i:[{t:4,k:"rating"},{t:3,v:" / 10"}]}}},update:{all:{t:0,b:{t:2,i:[{t:3}],s:"Tout actualiser"}},feeds:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser uniquement les flux RSS"}},info:{t:0,b:{t:2,i:[{t:3}],s:"Recherche les fichiers ajoutés, supprimés et modifiés"}},local:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser uniquement la bibliothèque locale"}},progress:{t:0,b:{t:2,i:[{t:3}],s:"Actualisation de la bibliothèque en cours…"}},"rescan-metadata":{t:0,b:{t:2,i:[{t:3}],s:"Analyser les métadonnées des fichiers non modifiés"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser uniquement Spotify"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser la bibliothèque"}}}},language:{de:{t:0,b:{t:2,i:[{t:3}],s:"Allemand (Deutsch)"}},en:{t:0,b:{t:2,i:[{t:3}],s:"Anglais (English)"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"Français"}},"zh-CN":{t:0,b:{t:2,i:[{t:3}],s:"Chinois simplifié (簡體中文)"}},"zh-TW":{t:0,b:{t:2,i:[{t:3}],s:"Chinois traditionnel (繁體中文)"}}},list:{albums:{info:{t:0,b:{t:2,i:[{t:3,v:"Supprimer définitivement ce podcast de votre bibliothèque ?"},{t:4,k:"separator"},{t:3,v:"(Cela supprimera également la liste de lecture RSS "},{t:4,k:"name"},{t:3,v:")"}]}}},spotify:{"not-playable-track":{t:0,b:{t:2,i:[{t:3}],s:"La piste ne peut pas être lue"}},"restriction-reason":{t:0,b:{t:2,i:[{t:3,v:", raison de la restriction : "},{t:4,k:"reason"}]}}}},media:{kind:{album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},audiobook:{t:0,b:{t:2,i:[{t:3}],s:"Livre audio"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Musique"}},podcast:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}}}},navigation:{about:{t:0,b:{t:2,i:[{t:3}],s:"À propos"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Livres audio"}},"now-playing":{t:0,b:{t:2,i:[{t:3,v:" - "},{t:4,k:"album"}]}},"stream-error":{t:0,b:{t:2,i:[{t:3}],s:"Erreur du flux HTTP : échec du chargement du flux ou arrêt du chargement en raison d’un problème réseau"}},stream:{t:0,b:{t:2,i:[{t:3}],s:"Flux HTTP"}},volume:{t:0,b:{t:2,i:[{t:3}],s:"Volume"}},files:{t:0,b:{t:2,i:[{t:3}],s:"Fichiers"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Musique"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},search:{t:0,b:{t:2,i:[{t:3}],s:"Recherche"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Réglages"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},"update-library":{t:0,b:{t:2,i:[{t:3}],s:"Actualiser la bibliothèque"}}},options:{filter:{"hide-singles":{t:0,b:{t:2,i:[{t:3}],s:"Masquer les singles"}},"hide-singles-help":{t:0,b:{t:2,i:[{t:3}],s:"Si actif, masque les singles et tout ce qui leur est associé."}},"hide-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Masquer le contenu de Spotify"}},"hide-spotify-help":{t:0,b:{t:2,i:[{t:3}],s:"Si actif, masque le contenu qui provient de Spotify."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Filtrer"}}},sort:{"artist-name":{t:0,b:{t:2,i:[{t:3}],s:"Artiste › Nom"}},"artist-date":{t:0,b:{t:2,i:[{t:3}],s:"Artiste › Date de sortie"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Nom"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Classement"}},"recently-added":{t:0,b:{t:2,i:[{t:3}],s:"Ajouts récents"}},"recently-released":{t:0,b:{t:2,i:[{t:3}],s:"Sorties récentes"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Date de sortie"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Trier"}}}},page:{about:{"built-with":{t:0,b:{t:2,i:[{t:3,v:"Interface utilisateur construite avec "},{t:4,k:"bulma"},{t:3,v:", "},{t:4,k:"mdi"},{t:3,v:", "},{t:4,k:"vuejs"},{t:3,v:", "},{t:4,k:"axios"},{t:3,v:" et "},{t:4,k:"others"},{t:3,v:"."}]}},"compiled-with":{t:0,b:{t:2,i:[{t:3,v:"Compilé avec les options "},{t:4,k:"options"},{t:3,v:"."}]}},library:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothèque"}},more:{t:0,b:{t:2,i:[{t:3}],s:"plus"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser"}},version:{t:0,b:{t:2,i:[{t:3,v:"Version "},{t:4,k:"version"}]}}},albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}}},audiobooks:{albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Livres audio"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Auteurs"}}},tabs:{authors:{t:0,b:{t:2,i:[{t:3}],s:"Auteurs"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Livres audio"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}}},composers:{title:{t:0,b:{t:2,i:[{t:3}],s:"Compositeurs"}}},files:{title:{t:0,b:{t:2,i:[{t:3}],s:"Fichiers"}}},genres:{title:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}},music:{"recently-added":{title:{t:0,b:{t:2,i:[{t:3}],s:"Ajouts récents"}}},"recently-played":{title:{t:0,b:{t:2,i:[{t:3}],s:"Lectures récentes"}}},tabs:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Compositeurs"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},history:{t:0,b:{t:2,i:[{t:3}],s:"Historique"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},"now-playing":{info:{t:0,b:{t:2,i:[{t:3}],s:"Ajoutez des pistes en parcourant votre bibliothèque"}},live:{t:0,b:{t:2,i:[{t:3}],s:"En direct"}},title:{t:0,b:{t:2,i:[{t:3}],s:"La file d’attente est vide"}}},playlists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture"}}},podcast:{"remove-info":{t:0,b:{t:2,i:[{t:3,v:"Supprimer ce podcast de manière permanente de la bibliothèque ?"},{t:4,k:"separator"},{t:3,v:"(Cela supprimera également la liste de lecture RSS "},{t:4,k:"name"},{t:3,v:")"}]}}},podcasts:{"new-episodes":{t:0,b:{t:2,i:[{t:3}],s:"Nouveaux épisodes"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser"}}},queue:{title:{t:0,b:{t:2,i:[{t:3}],s:"File d’attente"}}},radio:{title:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Livres audio"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Compositeurs"}},expression:{t:0,b:{t:2,i:[{t:3}],s:"expression"}},help:{t:0,b:{t:2,i:[{t:3,v:"Astuce : vous pouvez effectuer une recherche avec une "},{t:4,k:"help"},{t:3,v:" du langage de requête de liste de lecture intelligente en préfixant votre requête avec "},{t:4,k:"query"}]}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"Aucun résultat trouvé"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Recherche"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher l’album"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" albums"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher l’artiste"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" artistes"}]}]}},"show-audiobooks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher le livre audio"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" livres audio"}]}]}},"show-composers":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher le compositeur"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" compositeurs"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher la liste de lecture"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" listes de lecture"}]}]}},"show-podcasts":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher le podcast"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" podcasts"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher la piste"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" pistes"}]}]}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Pistes"}},tabs:{library:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothèque"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},settings:{artwork:{title:{t:0,b:{t:2,i:[{t:3}],s:"Illustrations"}},coverartarchive:{t:0,b:{t:2,i:[{t:3}],s:"Cover Art Archive"}},discogs:{t:0,b:{t:2,i:[{t:3}],s:"Discogs"}},"explanation-1":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone prend en charge les illustrations au format PNG et JPEG qui sont soit placées dans la bibliothèque en tant que fichiers image séparés, soit intégrées dans les fichiers média, soit mises à disposition en ligne par les stations de radio."}},"explanation-2":{t:0,b:{t:2,i:[{t:3}],s:"En outre, vous pouvez activer la récupération des illustrations à partir des fournisseurs d’illustrations suivants :"}},"show-coverart":{t:0,b:{t:2,i:[{t:3}],s:"Afficher les illustrations dans la liste d’albums"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"Ignorer les illustrations fournies par les stations de radio"}}},devices:{"no-active-pairing":{t:0,b:{t:2,i:[{t:3}],s:"Aucune demande de jumelage active."}},"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Code de jumelage"}},"pairing-request":{t:0,b:{t:2,i:[{t:3}],s:"Demande de jumelage de télécommande "}},pairing:{t:0,b:{t:2,i:[{t:3}],s:"Jumelage de télécommande"}},"speaker-pairing-info":{t:0,b:{t:2,i:[{t:3}],s:"Si votre enceinte nécessite un jumelage, activez-la ci-dessous et entrez le code PIN qu’elle affiche."}},"speaker-pairing":{t:0,b:{t:2,i:[{t:3}],s:"Jumelage d’enceinte et vérification d’appareil"}},"verification-code":{t:0,b:{t:2,i:[{t:3}],s:"Code de vérification"}},verify:{t:0,b:{t:2,i:[{t:3}],s:"Vérifier"}}},general:{audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Livres audio"}},files:{t:0,b:{t:2,i:[{t:3}],s:"Fichiers"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Langue"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Musique"}},"navigation-item-selection-info":{t:0,b:{t:2,i:[{t:3}],s:"Si vous sélectionnez plus d’éléments que ce qui peut être affiché sur votre écran, le menu disparaîtra."}},"navigation-item-selection":{t:0,b:{t:2,i:[{t:3}],s:"Sélectionnez les éléments de la barre de navigation supérieure"}},"navigation-items":{t:0,b:{t:2,i:[{t:3}],s:"Barre de navigation"}},"now-playing-page":{t:0,b:{t:2,i:[{t:3}],s:"Page « En cours de lecture »"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},"recently-added-page-info":{t:0,b:{t:2,i:[{t:3}],s:"Limiter le nombre d’albums affichés"}},"recently-added-page":{t:0,b:{t:2,i:[{t:3}],s:"Page « Ajouts récents »"}},search:{t:0,b:{t:2,i:[{t:3}],s:"Recherche"}},"show-composer-genres-help":{t:0,b:{t:2,i:[{t:3,v:"Liste de genres séparés par des virgules pour lesquels le compositeur doit être affiché."},{t:5,i:0},{t:3,v:"Laissez vide pour toujours afficher le compositeur."},{t:5,i:0},{t:3,v:'L’étiquette de genre de la piste actuelle est comparée en vérifiant si l’un des genres définis est inclus. Par exemple, en choisissant "classique, bande sonore", le compositeur pour les pistes dont l’étiquette de genre est "classique contemporain" sera affiché.'}]}},"show-composer-genres":{t:0,b:{t:2,i:[{t:3}],s:"Afficher le compositeur uniquement pour les genres listés"}},"show-composer-info":{t:0,b:{t:2,i:[{t:3}],s:"Si actif, le compositeur de la piste en cours de lecture est affiché"}},"show-composer":{t:0,b:{t:2,i:[{t:3}],s:"Afficher le compositeur"}},"show-path":{t:0,b:{t:2,i:[{t:3}],s:"Afficher le chemin du fichier"}}},services:{lastfm:{"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Connectez-vous avec votre nom d’utilisateur et votre mot de passe Last.fm pour activer le scrobbling."}},info:{t:0,b:{t:2,i:[{t:3}],s:"Le nom d’utilisateur et le mot de passe Last.fm ne sont pas enregistrés, uniquement la clé de session. La clé de session n’expire pas."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Last.fm"}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"L’option Last.fm n’est pas présente."}}},spotify:{"no-support":{t:0,b:{t:2,i:[{t:3}],s:"L’option Spotify n’est pas présente."}},"logged-as":{t:0,b:{t:2,i:[{t:3}],s:"Connecté en tant que "}},requirements:{t:0,b:{t:2,i:[{t:3}],s:"Vous devez posséder un compte Spotify Premium. L’accès à l’API de Spotify permet l’analyse de votre bibliothèque Spotify. Les champs d’application requis sont les suivants :"}},user:{t:0,b:{t:2,i:[{t:3}],s:"Accès autorisé pour "}},authorize:{t:0,b:{t:2,i:[{t:3}],s:"Autoriser l’accès à l’API"}},"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Accordez l’accès à l’API de Spotify"}},reauthorize:{t:0,b:{t:2,i:[{t:3}],s:"Veuillez autoriser à nouveau l’accès à l’API pour accorder à OwnTone les droits d’accès supplémentaires suivants :"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},password:{t:0,b:{t:2,i:[{t:3}],s:"Mot de passe"}},username:{t:0,b:{t:2,i:[{t:3}],s:"Nom d’utilisateur"}}},tabs:{artwork:{t:0,b:{t:2,i:[{t:3}],s:"Illustrations"}},general:{t:0,b:{t:2,i:[{t:3}],s:"Général"}},"online-services":{t:0,b:{t:2,i:[{t:3}],s:"Services en ligne"}},"remotes-and-outputs":{t:0,b:{t:2,i:[{t:3}],s:"Télécommandes et sorties"}}}},spotify:{music:{"featured-playlists":{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture en vedette"}},"new-releases":{t:0,b:{t:2,i:[{t:3}],s:"Nouvelle sorties"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"Aucun résultat trouvé"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Recherche"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher l’album"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" albums"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher l’artiste"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" artistes"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher la liste de lecture"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" listes de lecture"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher la piste"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" pistes"}]}]}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Pistes"}}}}},playlist:{type:{folder:{t:0,b:{t:2,i:[{t:3}],s:"Dossier"}},plain:{t:0,b:{t:2,i:[{t:3}],s:"Simple"}},smart:{t:0,b:{t:2,i:[{t:3}],s:"Intelligente"}}}},player:{button:{consume:{t:0,b:{t:2,i:[{t:3}],s:"Effacer l’historique"}},pause:{t:0,b:{t:2,i:[{t:3}],s:"Mettre la lecture en pause"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Lire"}},repeat:{t:0,b:{t:2,i:[{t:3}],s:"Répéter toutes les pistes"}},"repeat-off":{t:0,b:{t:2,i:[{t:3}],s:"Lire les pistes une fois"}},"repeat-once":{t:0,b:{t:2,i:[{t:3}],s:"Répéter la piste en cours"}},"seek-backward":{t:0,b:{t:2,i:[{t:3}],s:"Reculer dans la piste"}},"seek-forward":{t:0,b:{t:2,i:[{t:3}],s:"Avancer dans la piste"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Lire les pistes aléatoirement"}},"shuffle-disabled":{t:0,b:{t:2,i:[{t:3}],s:"Lire les pistes dans l’ordre"}},"skip-backward":{t:0,b:{t:2,i:[{t:3}],s:"Reculer à la piste précédente"}},"skip-forward":{t:0,b:{t:2,i:[{t:3}],s:"Avancer à la piste suivante"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Arrêter la lecture"}},"toggle-lyrics":{t:0,b:{t:2,i:[{t:3}],s:"Voir/Cacher les paroles"}}}},property:{"added-on":{t:0,b:{t:2,i:[{t:3}],s:"Ajouté le"}},album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},"album-artist":{t:0,b:{t:2,i:[{t:3}],s:"Artiste de l’album"}},artist:{t:0,b:{t:2,i:[{t:3}],s:"Artiste"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}},comment:{t:0,b:{t:2,i:[{t:3}],s:"Commentaire"}},composer:{t:0,b:{t:2,i:[{t:3}],s:"Compositeur"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Durée"}},genre:{t:0,b:{t:2,i:[{t:3}],s:"Genre"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Nom"}},owner:{t:0,b:{t:2,i:[{t:3}],s:"Propriétaire"}},path:{t:0,b:{t:2,i:[{t:3}],s:"Emplacement"}},playtime:{t:0,b:{t:2,i:[{t:3}],s:"Temps de lecture"}},popularity:{t:0,b:{t:2,i:[{t:3}],s:"Popularité / Abonnements"}},position:{t:0,b:{t:2,i:[{t:3}],s:"Disque / Piste"}},quality:{t:0,b:{t:2,i:[{t:3}],s:"Qualité"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Classement"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Date de sortie"}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Pistes"}},type:{t:0,b:{t:2,i:[{t:3}],s:"Type"}},updated:{t:0,b:{t:2,i:[{t:3}],s:"Mise à jour"}},uptime:{t:0,b:{t:2,i:[{t:3}],s:"Temps de fonctionnement"}},year:{t:0,b:{t:2,i:[{t:3}],s:"Année"}}},server:{"connection-failed":{t:0,b:{t:2,i:[{t:3}],s:"Échec de connexion au serveur"}},"request-failed":{t:0,b:{t:2,i:[{t:3,v:"La requête a échoué (status: "},{t:4,k:"status"},{t:3,v:" "},{t:4,k:"cause"},{t:3,v:" "},{t:4,k:"url"},{t:3,v:")"}]}},"queue-saved":{t:0,b:{t:2,i:[{t:3,v:"La file d’attente enregistrée dans la liste de lecture "},{t:4,k:"name"}]}},"appended-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" piste ajoutée à la file d’attente"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" pistes ajoutées à la file d’attente"}]}]}},"empty-queue":{t:0,b:{t:2,i:[{t:3}],s:"La file d’attente est vide"}}},"grouped-list":{today:{t:0,b:{t:2,i:[{t:3}],s:"Aujourd’hui"}},"last-week":{t:0,b:{t:2,i:[{t:3}],s:"La semaine dernière"}},"last-month":{t:0,b:{t:2,i:[{t:3}],s:"Le mois dernier"}},undefined:{t:0,b:{t:2,i:[{t:3}],s:"Indéfini"}}}}},{"zh-CN":{actions:{add:{t:0,b:{t:2,i:[{t:3}],s:"添加"}},"add-next":{t:0,b:{t:2,i:[{t:3}],s:"插播"}},"add-stream":{t:0,b:{t:2,i:[{t:3}],s:"添加流"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"取消"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"清除"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"编辑"}},login:{t:0,b:{t:2,i:[{t:3}],s:"登入"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"退出"}},"hide-previous":{t:0,b:{t:2,i:[{t:3}],s:"隐藏历史"}},"mark-all-played":{t:0,b:{t:2,i:[{t:3}],s:"全部标记为已播放"}},"mark-as-new":{t:0,b:{t:2,i:[{t:3}],s:"标记为最新"}},"mark-as-played":{t:0,b:{t:2,i:[{t:3}],s:"标记为已播放"}},pair:{t:0,b:{t:2,i:[{t:3}],s:"遥控配对"}},play:{t:0,b:{t:2,i:[{t:3}],s:"播放"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"移除"}},"remove-podcast":{t:0,b:{t:2,i:[{t:3}],s:"移除播客"}},rescan:{t:0,b:{t:2,i:[{t:3}],s:"重新扫描"}},save:{t:0,b:{t:2,i:[{t:3}],s:"保存"}},send:{t:0,b:{t:2,i:[{t:3}],s:"发送"}},"show-more":{t:0,b:{t:2,i:[{t:3}],s:"显示更多"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"随机播放"}}},count:{albums:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 张专辑"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 张专辑"}]}]}},artists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位艺人"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位艺人"}]}]}},audiobooks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 个有声读物"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 个有声读物"}]}]}},authors:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作者"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作者"}]}]}},channels:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" canal"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" canaux"}]}]}},composers:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作曲家"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作曲家"}]}]}},genres:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 个流派"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 个流派"}]}]}},playlists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 个播放列表"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 个播放列表"}]}]}},podcasts:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 个播客"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 个播客"}]}]}},stations:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 个电台"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 个电台"}]}]}},tracks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 只曲目"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 只曲目"}]}]}}},data:{kind:{file:{t:0,b:{t:2,i:[{t:3}],s:"文件"}},url:{t:0,b:{t:2,i:[{t:3}],s:"链接"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},pipe:{t:0,b:{t:2,i:[{t:3}],s:"流"}}}},dialog:{add:{rss:{help:{t:0,b:{t:2,i:[{t:3}],s:"添加一个可生成播放列表的播客RSS链接,这将允许OwnTone管理订阅"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-rss"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"处理中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"添加播客"}}},stream:{loading:{t:0,b:{t:2,i:[{t:3}],s:"加载中…"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-stream"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"处理中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"添加流"}}}},playlist:{save:{"playlist-name":{t:0,b:{t:2,i:[{t:3}],s:"播放列表名称"}},saving:{t:0,b:{t:2,i:[{t:3}],s:"保存中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"保存播放清单到列表"}}}},"queue-item":{"quality-value":{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"channels"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}}},"remote-pairing":{"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"配对码"}},title:{t:0,b:{t:2,i:[{t:3}],s:"请求遥控配对"}}},track:{"quality-value":{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"channels"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}},"rating-value":{t:0,b:{t:2,i:[{t:4,k:"rating"},{t:3,v:" / 10"}]}}},update:{all:{t:0,b:{t:2,i:[{t:3}],s:"更新所有内容"}},feeds:{t:0,b:{t:2,i:[{t:3}],s:"仅更新RSS订阅内容"}},info:{t:0,b:{t:2,i:[{t:3}],s:"扫描新的、删除的和修改的文件"}},local:{t:0,b:{t:2,i:[{t:3}],s:"仅更新本地资料库"}},progress:{t:0,b:{t:2,i:[{t:3}],s:"正在更新本地资料库…"}},"rescan-metadata":{t:0,b:{t:2,i:[{t:3}],s:"重新扫描未修改文件的元数据"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"仅更新Spotify"}},title:{t:0,b:{t:2,i:[{t:3}],s:"更新资料库"}}}},language:{de:{t:0,b:{t:2,i:[{t:3}],s:"德语 (Deutsch)"}},en:{t:0,b:{t:2,i:[{t:3}],s:"英语 (English)"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"法语 (Français)"}},"zh-CN":{t:0,b:{t:2,i:[{t:3}],s:"简体中文"}},"zh-TW":{t:0,b:{t:2,i:[{t:3}],s:"繁體中文"}}},list:{albums:{info:{t:0,b:{t:2,i:[{t:3,v:"从资料库中永久移除该播客吗?"},{t:4,k:"separator"},{t:3,v:"(这也将移除RSS播放列表 "},{t:4,k:"name"},{t:3,v:")"}]}}},spotify:{"not-playable-track":{t:0,b:{t:2,i:[{t:3}],s:"曲目无法播放"}},"restriction-reason":{t:0,b:{t:2,i:[{t:3,v:",被限制原因:"},{t:4,k:"reason"}]}}}},media:{kind:{album:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},audiobook:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}},music:{t:0,b:{t:2,i:[{t:3}],s:"音乐"}},podcast:{t:0,b:{t:2,i:[{t:3}],s:"播客"}}}},navigation:{about:{t:0,b:{t:2,i:[{t:3}],s:"关于"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}},"now-playing":{t:0,b:{t:2,i:[{t:3,v:" - "},{t:4,k:"album"}]}},"stream-error":{t:0,b:{t:2,i:[{t:3}],s:"HTTP流错误:流载入失败或者由于网络原因无法载入"}},stream:{t:0,b:{t:2,i:[{t:3}],s:"HTTP流"}},volume:{t:0,b:{t:2,i:[{t:3}],s:"音量"}},files:{t:0,b:{t:2,i:[{t:3}],s:"文件"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"流派"}},music:{t:0,b:{t:2,i:[{t:3}],s:"音乐"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"播客"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"广播电台"}},search:{t:0,b:{t:2,i:[{t:3}],s:"搜索"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"设置"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},"update-library":{t:0,b:{t:2,i:[{t:3}],s:"更新资料库"}}},options:{filter:{"hide-singles":{t:0,b:{t:2,i:[{t:3}],s:"隐藏单曲"}},"hide-singles-help":{t:0,b:{t:2,i:[{t:3}],s:"如果处于活动状态,则隐藏单曲和与其关联的任何内容"}},"hide-spotify":{t:0,b:{t:2,i:[{t:3}],s:"隐藏来自Spotify的内容"}},"hide-spotify-help":{t:0,b:{t:2,i:[{t:3}],s:"如果处于活动状态,则隐藏 Spotify 中的内容"}},title:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}}},sort:{"artist-name":{t:0,b:{t:2,i:[{t:3}],s:"艺人 › 名称"}},"artist-date":{t:0,b:{t:2,i:[{t:3}],s:"艺人 › 发行日期"}},name:{t:0,b:{t:2,i:[{t:3}],s:"名称"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"评级"}},"recently-added":{t:0,b:{t:2,i:[{t:3}],s:"最近添加"}},"recently-released":{t:0,b:{t:2,i:[{t:3}],s:"最近发行"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"发行日期"}},title:{t:0,b:{t:2,i:[{t:3}],s:"分类"}}}},page:{about:{"built-with":{t:0,b:{t:2,i:[{t:3,v:"界面贡献者包括 "},{t:4,k:"bulma"},{t:3,v:","},{t:4,k:"mdi"},{t:3,v:","},{t:4,k:"vuejs"},{t:3,v:","},{t:4,k:"axios"},{t:3,v:" 和 "},{t:4,k:"others"}]}},"compiled-with":{t:0,b:{t:2,i:[{t:3,v:"编译支持来自于 "},{t:4,k:"options"}]}},library:{t:0,b:{t:2,i:[{t:3}],s:"资料库"}},more:{t:0,b:{t:2,i:[{t:3}],s:"更多"}},update:{t:0,b:{t:2,i:[{t:3}],s:"更新"}},version:{t:0,b:{t:2,i:[{t:3,v:"版本 "},{t:4,k:"version"}]}}},albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"张专辑"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}}},audiobooks:{albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"作者"}}},tabs:{authors:{t:0,b:{t:2,i:[{t:3}],s:"作者"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"流派"}}}},composers:{title:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}}},files:{title:{t:0,b:{t:2,i:[{t:3}],s:"文件"}}},genres:{title:{t:0,b:{t:2,i:[{t:3}],s:"流派"}}},music:{"recently-added":{title:{t:0,b:{t:2,i:[{t:3}],s:"最近添加"}}},"recently-played":{title:{t:0,b:{t:2,i:[{t:3}],s:"最近播放"}}},tabs:{albums:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"流派"}},history:{t:0,b:{t:2,i:[{t:3}],s:"历史"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},"now-playing":{info:{t:0,b:{t:2,i:[{t:3}],s:"浏览资料库添加曲目"}},live:{t:0,b:{t:2,i:[{t:3}],s:"直播"}},title:{t:0,b:{t:2,i:[{t:3}],s:"播放清单是空的"}}},playlists:{title:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}}},podcast:{"remove-info":{t:0,b:{t:2,i:[{t:3,v:"从资料库中永久移除该播客?"},{t:4,k:"separator"},{t:3,v:"(这也将移除该播客RSS列表 "},{t:4,k:"name"},{t:3,v:")"}]}}},podcasts:{"new-episodes":{t:0,b:{t:2,i:[{t:3}],s:"最新单集"}},title:{t:0,b:{t:2,i:[{t:3}],s:"播客"}},update:{t:0,b:{t:2,i:[{t:3}],s:"更新"}}},queue:{title:{t:0,b:{t:2,i:[{t:3}],s:"清单"}}},radio:{title:{t:0,b:{t:2,i:[{t:3}],s:"广播电台"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},expression:{t:0,b:{t:2,i:[{t:3}],s:"表达式"}},help:{t:0,b:{t:2,i:[{t:3,v:"提示:如果您使用 "},{t:4,k:"query"},{t:3,v:" 前缀,则可以通过智能播放列表查询语言 "},{t:4,k:"help"},{t:3,v:" 进行搜索"}]}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"未找到结果"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"搜索"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"播客"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示专辑"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 个专辑"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示艺人"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 位艺人"}]}]}},"show-audiobooks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示有声书"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 本有声书"}]}]}},"show-composers":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示作曲家"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 位作曲家"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示播放列表"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 个播放列表"}]}]}},"show-podcasts":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示播客"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 个播客"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示曲目"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 只曲目"}]}]}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"曲目"}},tabs:{library:{t:0,b:{t:2,i:[{t:3}],s:"资料库"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},settings:{artwork:{title:{t:0,b:{t:2,i:[{t:3}],s:"封面"}},coverartarchive:{t:0,b:{t:2,i:[{t:3}],s:"Cover Art Archive"}},discogs:{t:0,b:{t:2,i:[{t:3}],s:"Discogs"}},"explanation-1":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone支持PNG和 JPEG封面,这些封面可以作为单独的图像文件放置在库中或嵌入到媒体文件中,也可以通过广播电台在线提供"}},"explanation-2":{t:0,b:{t:2,i:[{t:3}],s:"除此之外,您还可以从以下素材提供者获取封面:"}},"show-coverart":{t:0,b:{t:2,i:[{t:3}],s:"在专辑列表中显示封面艺术作品"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"忽略广播电台提供的作品"}}},devices:{"no-active-pairing":{t:0,b:{t:2,i:[{t:3}],s:"没有活跃的配对请求"}},"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"配对代码"}},"pairing-request":{t:0,b:{t:2,i:[{t:3}],s:"远程配对请求来自于 "}},pairing:{t:0,b:{t:2,i:[{t:3}],s:"遥控配对"}},"speaker-pairing-info":{t:0,b:{t:2,i:[{t:3}],s:"如果您的扬声器需要配对,请在下面输入它显示的 PIN以激活"}},"speaker-pairing":{t:0,b:{t:2,i:[{t:3}],s:"扬声器配对和设备验证"}},"verification-code":{t:0,b:{t:2,i:[{t:3}],s:"验证码"}},verify:{t:0,b:{t:2,i:[{t:3}],s:"验证"}}},general:{audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}},files:{t:0,b:{t:2,i:[{t:3}],s:"文件"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"流派"}},language:{t:0,b:{t:2,i:[{t:3}],s:"语言"}},music:{t:0,b:{t:2,i:[{t:3}],s:"音乐"}},"navigation-item-selection-info":{t:0,b:{t:2,i:[{t:3}],s:"如果您选择的项目多于屏幕上可以显示的项目,则侧边栏菜单将会消失"}},"navigation-item-selection":{t:0,b:{t:2,i:[{t:3}],s:"选择顶部导航栏菜单项"}},"navigation-items":{t:0,b:{t:2,i:[{t:3}],s:"导航条"}},"now-playing-page":{t:0,b:{t:2,i:[{t:3}],s:"“正在播放”页面"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"播客"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"广播电台"}},"recently-added-page-info":{t:0,b:{t:2,i:[{t:3}],s:"限制显示的相册数量"}},"recently-added-page":{t:0,b:{t:2,i:[{t:3}],s:"“最近添加”页面"}},search:{t:0,b:{t:2,i:[{t:3}],s:"搜索"}},"show-composer-genres-help":{t:0,b:{t:2,i:[{t:3,v:"以逗号分隔的流派列表,必须显示作曲家所属的流派"},{t:5,i:0},{t:3,v:"留空以始终显示作曲家"},{t:5,i:0},{t:3,v:"通过检查是否包含定义的流派之一来匹配当前曲目的流派标签。例如,设置为“古典、原声带”将显示流派标签为“当代古典”的曲目的作曲家"}]}},"show-composer-genres":{t:0,b:{t:2,i:[{t:3}],s:"仅显示列出的流派的作曲家"}},"show-composer-info":{t:0,b:{t:2,i:[{t:3}],s:"如果启用,则会显示当前播放曲目的作曲家"}},"show-composer":{t:0,b:{t:2,i:[{t:3}],s:"显示作曲家"}},"show-path":{t:0,b:{t:2,i:[{t:3}],s:"显示文件路径"}}},services:{lastfm:{"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"使用您的 Last.fm 用户名和密码登录以启用记录功能"}},info:{t:0,b:{t:2,i:[{t:3}],s:"OwnTone不会存储您的 Last.fm 用户名/密码,仅存储会话密钥。会话密钥不会过期"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Last.fm"}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone的构建没有来自Last.fm的官方支持"}}},spotify:{"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone的构建没有来自 Spotify 官方的支持,也未安装 libspotify"}},"logged-as":{t:0,b:{t:2,i:[{t:3}],s:"登录为 "}},requirements:{t:0,b:{t:2,i:[{t:3}],s:"您必须拥有 Spotify付费帐户。访问 Spotify Web API 可以扫描您的 Spotify库。所需范围是:"}},user:{t:0,b:{t:2,i:[{t:3}],s:"授予访问权限"}},authorize:{t:0,b:{t:2,i:[{t:3}],s:"授权 Web API 访问"}},"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"授予对 Spotify Web API 的访问权限"}},reauthorize:{t:0,b:{t:2,i:[{t:3}],s:"请重新授权 Web API 访问权限,以授予 OwnTone 以下附加访问权限:"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},password:{t:0,b:{t:2,i:[{t:3}],s:"密码"}},username:{t:0,b:{t:2,i:[{t:3}],s:"用户名"}}},tabs:{artwork:{t:0,b:{t:2,i:[{t:3}],s:"封面"}},general:{t:0,b:{t:2,i:[{t:3}],s:"概览"}},"online-services":{t:0,b:{t:2,i:[{t:3}],s:"在线服务"}},"remotes-and-outputs":{t:0,b:{t:2,i:[{t:3}],s:"遥控和输出"}}}},spotify:{music:{"featured-playlists":{t:0,b:{t:2,i:[{t:3}],s:"特色列表"}},"new-releases":{t:0,b:{t:2,i:[{t:3}],s:"最新发行"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"未找到结果"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"搜索"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示专辑"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 个专辑"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示艺人"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 位艺人"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示播放列表"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 个播放列表"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示曲目"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 只曲目"}]}]}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"曲目"}}}}},playlist:{type:{folder:{t:0,b:{t:2,i:[{t:3}],s:"文件夹"}},plain:{t:0,b:{t:2,i:[{t:3}],s:"简单"}},smart:{t:0,b:{t:2,i:[{t:3}],s:"智能"}}}},player:{button:{consume:{t:0,b:{t:2,i:[{t:3}],s:"清除历史"}},pause:{t:0,b:{t:2,i:[{t:3}],s:"暂停"}},play:{t:0,b:{t:2,i:[{t:3}],s:"播放"}},repeat:{t:0,b:{t:2,i:[{t:3}],s:"重复播放所有曲目"}},"repeat-off":{t:0,b:{t:2,i:[{t:3}],s:"所有曲目仅播放一遍"}},"repeat-once":{t:0,b:{t:2,i:[{t:3}],s:"重复当前曲目"}},"seek-backward":{t:0,b:{t:2,i:[{t:3}],s:"在当前曲目后退"}},"seek-forward":{t:0,b:{t:2,i:[{t:3}],s:"在当前曲目前进"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"随机播放曲目"}},"shuffle-disabled":{t:0,b:{t:2,i:[{t:3}],s:"按顺序播放曲目"}},"skip-backward":{t:0,b:{t:2,i:[{t:3}],s:"播放上一首"}},"skip-forward":{t:0,b:{t:2,i:[{t:3}],s:"播放下一首"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"停止"}},"toggle-lyrics":{t:0,b:{t:2,i:[{t:3}],s:"显示/隐藏歌词"}}}},property:{"added-on":{t:0,b:{t:2,i:[{t:3}],s:"添加时间"}},album:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"张专辑"}},"album-artist":{t:0,b:{t:2,i:[{t:3}],s:"专辑艺人"}},artist:{t:0,b:{t:2,i:[{t:3}],s:"专辑艺人"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}},comment:{t:0,b:{t:2,i:[{t:3}],s:"评论"}},composer:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"时长"}},genre:{t:0,b:{t:2,i:[{t:3}],s:"流派"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"流派"}},name:{t:0,b:{t:2,i:[{t:3}],s:"名称"}},owner:{t:0,b:{t:2,i:[{t:3}],s:"所有者"}},path:{t:0,b:{t:2,i:[{t:3}],s:"路径"}},playtime:{t:0,b:{t:2,i:[{t:3}],s:"总播放时长"}},popularity:{t:0,b:{t:2,i:[{t:3}],s:"流行度 / 粉丝数"}},position:{t:0,b:{t:2,i:[{t:3}],s:"盘符 / 曲目"}},quality:{t:0,b:{t:2,i:[{t:3}],s:"质量"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"评级"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"发行日期"}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"只曲目"}},type:{t:0,b:{t:2,i:[{t:3}],s:"类型"}},updated:{t:0,b:{t:2,i:[{t:3}],s:"更新于"}},uptime:{t:0,b:{t:2,i:[{t:3}],s:"运行时长"}},year:{t:0,b:{t:2,i:[{t:3}],s:"年份"}}},server:{"connection-failed":{t:0,b:{t:2,i:[{t:3}],s:"无法连接到 OwnTone 服务器"}},"request-failed":{t:0,b:{t:2,i:[{t:3,v:"请求失败 (状态:"},{t:4,k:"status"},{t:3,v:" "},{t:4,k:"cause"},{t:3,v:" "},{t:4,k:"url"},{t:3,v:")"}]}},"queue-saved":{t:0,b:{t:2,i:[{t:3,v:"清单以添加到播放列表 "},{t:4,k:"name"}]}},"appended-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3,v:"已附加到队列的 "},{t:4,k:"count"},{t:3,v:" 只曲目"}]},{t:2,i:[{t:3,v:"已附加到队列的 "},{t:4,k:"count"},{t:3,v:" 只曲目"}]}]}},"empty-queue":{t:0,b:{t:2,i:[{t:3}],s:"清单是空的"}}},"grouped-list":{today:{t:0,b:{t:2,i:[{t:3}],s:"今日"}},"last-week":{t:0,b:{t:2,i:[{t:3}],s:"上周"}},"last-month":{t:0,b:{t:2,i:[{t:3}],s:"上月"}},undefined:{t:0,b:{t:2,i:[{t:3}],s:"未定义"}}}}},{"zh-TW":{actions:{add:{t:0,b:{t:2,i:[{t:3}],s:"新增"}},"add-next":{t:0,b:{t:2,i:[{t:3}],s:"插播"}},"add-stream":{t:0,b:{t:2,i:[{t:3}],s:"新增串流"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"取消"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"清除"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"編輯"}},login:{t:0,b:{t:2,i:[{t:3}],s:"登入"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"退出"}},"hide-previous":{t:0,b:{t:2,i:[{t:3}],s:"隱藏歷史"}},"mark-all-played":{t:0,b:{t:2,i:[{t:3}],s:"全部標記為已播放"}},"mark-as-new":{t:0,b:{t:2,i:[{t:3}],s:"標記為最新"}},"mark-as-played":{t:0,b:{t:2,i:[{t:3}],s:"標記為已播放"}},pair:{t:0,b:{t:2,i:[{t:3}],s:"遙控配對"}},play:{t:0,b:{t:2,i:[{t:3}],s:"播放"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"移除"}},"remove-podcast":{t:0,b:{t:2,i:[{t:3}],s:"移除Podcast"}},rescan:{t:0,b:{t:2,i:[{t:3}],s:"重新掃描"}},save:{t:0,b:{t:2,i:[{t:3}],s:"儲存"}},send:{t:0,b:{t:2,i:[{t:3}],s:"發送"}},"show-more":{t:0,b:{t:2,i:[{t:3}],s:"顯示更多"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"隨機播放"}}},count:{albums:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 張專輯"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 張專輯"}]}]}},artists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位藝人"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位藝人"}]}]}},audiobooks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 個有聲書"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 個有聲書"}]}]}},authors:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作者"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作者"}]}]}},channels:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 信道"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 信道"}]}]}},composers:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作曲家"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作曲家"}]}]}},genres:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 個音樂類型"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 個音樂類型"}]}]}},playlists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 個播放列表"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 個播放列表"}]}]}},podcasts:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 個Podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 個Podcast"}]}]}},stations:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 個電台"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 個電台"}]}]}},tracks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 首曲目"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 首曲目"}]}]}}},data:{kind:{file:{t:0,b:{t:2,i:[{t:3}],s:"文件"}},url:{t:0,b:{t:2,i:[{t:3}],s:"鏈接"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},pipe:{t:0,b:{t:2,i:[{t:3}],s:"串流"}}}},dialog:{add:{rss:{help:{t:0,b:{t:2,i:[{t:3}],s:"新增一個可生成播放列表的Podcast RSS鏈接,這將允許OwnTone管理訂閱"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-rss"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"處理中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"新增Podcast"}}},stream:{loading:{t:0,b:{t:2,i:[{t:3}],s:"載入中…"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-stream"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"處理中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"新增串流"}}}},playlist:{save:{"playlist-name":{t:0,b:{t:2,i:[{t:3}],s:"播放列表名稱"}},saving:{t:0,b:{t:2,i:[{t:3}],s:"儲存中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"儲存播放清單到列表"}}}},"queue-item":{"quality-value":{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"channels"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}}},"remote-pairing":{"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"配對碼"}},title:{t:0,b:{t:2,i:[{t:3}],s:"請求遙控配對"}}},track:{"quality-value":{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"channels"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}},"rating-value":{t:0,b:{t:2,i:[{t:4,k:"rating"},{t:3,v:" / 10"}]}}},update:{all:{t:0,b:{t:2,i:[{t:3}],s:"更新所有內容"}},feeds:{t:0,b:{t:2,i:[{t:3}],s:"僅更新RSS訂閱內容"}},info:{t:0,b:{t:2,i:[{t:3}],s:"掃描新的、刪除的和修改的文件"}},local:{t:0,b:{t:2,i:[{t:3}],s:"僅更新本地資料庫"}},progress:{t:0,b:{t:2,i:[{t:3}],s:"正在更新本地資料庫…"}},"rescan-metadata":{t:0,b:{t:2,i:[{t:3}],s:"重新掃描未修改文件的中繼資料"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"僅更新Spotify"}},title:{t:0,b:{t:2,i:[{t:3}],s:"更新資料庫"}}}},language:{de:{t:0,b:{t:2,i:[{t:3}],s:"德語 (Deutsch)"}},en:{t:0,b:{t:2,i:[{t:3}],s:"英語 (English)"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"法語 (Français)"}},"zh-CN":{t:0,b:{t:2,i:[{t:3}],s:"簡體中文"}},"zh-TW":{t:0,b:{t:2,i:[{t:3}],s:"繁體中文"}}},list:{albums:{info:{t:0,b:{t:2,i:[{t:3,v:"從資料庫中永久移除該Podcast嗎?"},{t:4,k:"separator"},{t:3,v:"(這也將移除RSS播放列表 "},{t:4,k:"name"},{t:3,v:")"}]}}},spotify:{"not-playable-track":{t:0,b:{t:2,i:[{t:3}],s:"曲目無法播放"}},"restriction-reason":{t:0,b:{t:2,i:[{t:3,v:",被限制原因:"},{t:4,k:"reason"}]}}}},media:{kind:{album:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},audiobook:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}},music:{t:0,b:{t:2,i:[{t:3}],s:"音樂"}},podcast:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}}}},navigation:{about:{t:0,b:{t:2,i:[{t:3}],s:"關於"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}},"now-playing":{t:0,b:{t:2,i:[{t:3,v:" - "},{t:4,k:"album"}]}},"stream-error":{t:0,b:{t:2,i:[{t:3}],s:"HTTP串流錯誤:串流載入失敗或者由於網絡原因無法載入"}},stream:{t:0,b:{t:2,i:[{t:3}],s:"HTTP串流"}},volume:{t:0,b:{t:2,i:[{t:3}],s:"音量"}},files:{t:0,b:{t:2,i:[{t:3}],s:"文件"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}},music:{t:0,b:{t:2,i:[{t:3}],s:"音樂"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"電台"}},search:{t:0,b:{t:2,i:[{t:3}],s:"搜尋"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"設定"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},"update-library":{t:0,b:{t:2,i:[{t:3}],s:"更新資料庫"}}},options:{filter:{"hide-singles":{t:0,b:{t:2,i:[{t:3}],s:"隱藏單曲"}},"hide-singles-help":{t:0,b:{t:2,i:[{t:3}],s:"如果處於活動狀態,則隱藏單曲和與其關聯的任何內容"}},"hide-spotify":{t:0,b:{t:2,i:[{t:3}],s:"隱藏來自Spotify的內容"}},"hide-spotify-help":{t:0,b:{t:2,i:[{t:3}],s:"如果處於活動狀態,則隱藏 Spotify 中的內容"}},title:{t:0,b:{t:2,i:[{t:3}],s:"篩選"}}},sort:{"artist-name":{t:0,b:{t:2,i:[{t:3}],s:"藝人 › 名稱"}},"artist-date":{t:0,b:{t:2,i:[{t:3}],s:"藝人 › 發行日期"}},name:{t:0,b:{t:2,i:[{t:3}],s:"名稱"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"評級"}},"recently-added":{t:0,b:{t:2,i:[{t:3}],s:"最近新增"}},"recently-released":{t:0,b:{t:2,i:[{t:3}],s:"最近發行"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"發行日期"}},title:{t:0,b:{t:2,i:[{t:3}],s:"分類"}}}},page:{about:{"built-with":{t:0,b:{t:2,i:[{t:3,v:"界面貢獻者包括 "},{t:4,k:"bulma"},{t:3,v:","},{t:4,k:"mdi"},{t:3,v:","},{t:4,k:"vuejs"},{t:3,v:","},{t:4,k:"axios"},{t:3,v:" 和 "},{t:4,k:"others"}]}},"compiled-with":{t:0,b:{t:2,i:[{t:3,v:"編譯支持來自於 "},{t:4,k:"options"}]}},library:{t:0,b:{t:2,i:[{t:3}],s:"資料庫"}},more:{t:0,b:{t:2,i:[{t:3}],s:"更多"}},update:{t:0,b:{t:2,i:[{t:3}],s:"更新"}},version:{t:0,b:{t:2,i:[{t:3,v:"版本 "},{t:4,k:"version"}]}}},albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}}},audiobooks:{albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"作者"}}},tabs:{authors:{t:0,b:{t:2,i:[{t:3}],s:"作者"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}}}},composers:{title:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}}},files:{title:{t:0,b:{t:2,i:[{t:3}],s:"文件"}}},genres:{title:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}}},music:{"recently-added":{title:{t:0,b:{t:2,i:[{t:3}],s:"最近新增"}}},"recently-played":{title:{t:0,b:{t:2,i:[{t:3}],s:"最近播放"}}},tabs:{albums:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}},history:{t:0,b:{t:2,i:[{t:3}],s:"歷史"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},"now-playing":{info:{t:0,b:{t:2,i:[{t:3}],s:"瀏覽資料庫新增曲目"}},live:{t:0,b:{t:2,i:[{t:3}],s:"直播"}},title:{t:0,b:{t:2,i:[{t:3}],s:"播放清單是空的"}}},playlists:{title:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}}},podcast:{"remove-info":{t:0,b:{t:2,i:[{t:3,v:"從資料庫中永久移除該Podcast?"},{t:4,k:"separator"},{t:3,v:"(這也將移除該PodcastRSS列表 "},{t:4,k:"name"},{t:3,v:")"}]}}},podcasts:{"new-episodes":{t:0,b:{t:2,i:[{t:3}],s:"最新單集"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}},update:{t:0,b:{t:2,i:[{t:3}],s:"更新"}}},queue:{title:{t:0,b:{t:2,i:[{t:3}],s:"清單"}}},radio:{title:{t:0,b:{t:2,i:[{t:3}],s:"電台"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},expression:{t:0,b:{t:2,i:[{t:3}],s:"表達式"}},help:{t:0,b:{t:2,i:[{t:3,v:"提示:如果您使用 "},{t:4,k:"query"},{t:3,v:" 前綴,則可以通過智能播放列表查詢語言 "},{t:4,k:"help"},{t:3,v:" 進行搜尋"}]}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"未找到結果"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"搜尋"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示專輯"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 個專輯"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示藝人"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 位藝人"}]}]}},"show-audiobooks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示有聲書"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 本有聲書"}]}]}},"show-composers":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示作曲家"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 位作曲家"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示播放列表"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 個播放列表"}]}]}},"show-podcasts":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示Podcast"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 個Podcast"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示曲目"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 首曲目"}]}]}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"曲目"}},tabs:{library:{t:0,b:{t:2,i:[{t:3}],s:"資料庫"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},settings:{artwork:{title:{t:0,b:{t:2,i:[{t:3}],s:"封面"}},coverartarchive:{t:0,b:{t:2,i:[{t:3}],s:"Cover Art Archive"}},discogs:{t:0,b:{t:2,i:[{t:3}],s:"Discogs"}},"explanation-1":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone支持PNG和 JPEG封面,這些封面可以作為單獨的圖像文件放置在庫中或嵌入到媒體文件中,也可以通過電台在線提供"}},"explanation-2":{t:0,b:{t:2,i:[{t:3}],s:"除此之外,您還可以從以下素材提供者獲取封面:"}},"show-coverart":{t:0,b:{t:2,i:[{t:3}],s:"在專輯列表中顯示封面藝術作品"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"忽略電台提供的作品"}}},devices:{"no-active-pairing":{t:0,b:{t:2,i:[{t:3}],s:"沒有活躍的配對請求"}},"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"配對代碼"}},"pairing-request":{t:0,b:{t:2,i:[{t:3}],s:"遠程配對請求來自於 "}},pairing:{t:0,b:{t:2,i:[{t:3}],s:"遙控配對"}},"speaker-pairing-info":{t:0,b:{t:2,i:[{t:3}],s:"如果您的揚聲器需要配對,請在下面輸入它顯示的 PIN以啓用"}},"speaker-pairing":{t:0,b:{t:2,i:[{t:3}],s:"揚聲器配對和設備驗證"}},"verification-code":{t:0,b:{t:2,i:[{t:3}],s:"驗證碼"}},verify:{t:0,b:{t:2,i:[{t:3}],s:"驗證"}}},general:{audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}},files:{t:0,b:{t:2,i:[{t:3}],s:"文件"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}},language:{t:0,b:{t:2,i:[{t:3}],s:"語言"}},music:{t:0,b:{t:2,i:[{t:3}],s:"音樂"}},"navigation-item-selection-info":{t:0,b:{t:2,i:[{t:3}],s:"如果您選擇的項目多於屏幕上可以顯示的項目,則側邊欄菜單將會消失"}},"navigation-item-selection":{t:0,b:{t:2,i:[{t:3}],s:"選擇頂部導航欄菜單項"}},"navigation-items":{t:0,b:{t:2,i:[{t:3}],s:"導航條"}},"now-playing-page":{t:0,b:{t:2,i:[{t:3}],s:"“正在播放”頁面"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"電台"}},"recently-added-page-info":{t:0,b:{t:2,i:[{t:3}],s:"限制顯示的相簿數量"}},"recently-added-page":{t:0,b:{t:2,i:[{t:3}],s:"“最近新增”頁面"}},search:{t:0,b:{t:2,i:[{t:3}],s:"搜尋"}},"show-composer-genres-help":{t:0,b:{t:2,i:[{t:3,v:"以逗號分隔的音樂類型清單,將顯示作曲家的音樂類型"},{t:5,i:0},{t:3,v:"留空以始終顯示作曲家"},{t:5,i:0},{t:3,v:"通過檢查是否包含定義的音樂類型之一來匹配當前曲目的音樂類型標籤。例如,設定為“古典、原聲帶”將顯示音樂類型標籤為“當代古典”的曲目的作曲家"}]}},"show-composer-genres":{t:0,b:{t:2,i:[{t:3}],s:"僅顯示列出的音樂類型的作曲家"}},"show-composer-info":{t:0,b:{t:2,i:[{t:3}],s:"如果啟用,則會顯示目前播放曲目的作曲家"}},"show-composer":{t:0,b:{t:2,i:[{t:3}],s:"顯示作曲家"}},"show-path":{t:0,b:{t:2,i:[{t:3}],s:"顯示檔案路徑"}}},services:{lastfm:{"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"使用您的 Last.fm 用戶名和密碼登入以啓用記錄功能"}},info:{t:0,b:{t:2,i:[{t:3}],s:"OwnTone不會存儲您的 Last.fm 用戶名/密碼,僅存儲會話密鑰。會話密鑰不會過期"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Last.fm"}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone並無Last.fm的官方支持"}}},spotify:{"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone並無 Spotify 官方的支持,也未安裝 libspotify"}},"logged-as":{t:0,b:{t:2,i:[{t:3}],s:"登入為 "}},requirements:{t:0,b:{t:2,i:[{t:3}],s:"您必須擁有 Spotify付費帳戶。訪問 Spotify Web API 可以掃描您的 Spotify庫。所需範圍是:"}},user:{t:0,b:{t:2,i:[{t:3}],s:"授予訪問權限"}},authorize:{t:0,b:{t:2,i:[{t:3}],s:"授權 Web API 訪問"}},"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"授予對 Spotify Web API 的訪問權限"}},reauthorize:{t:0,b:{t:2,i:[{t:3}],s:"請重新授權 Web API 訪問權限,以授予 OwnTone 以下附加訪問權限:"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},password:{t:0,b:{t:2,i:[{t:3}],s:"密碼"}},username:{t:0,b:{t:2,i:[{t:3}],s:"用戶名"}}},tabs:{artwork:{t:0,b:{t:2,i:[{t:3}],s:"封面"}},general:{t:0,b:{t:2,i:[{t:3}],s:"概覽"}},"online-services":{t:0,b:{t:2,i:[{t:3}],s:"在線服務"}},"remotes-and-outputs":{t:0,b:{t:2,i:[{t:3}],s:"遙控和輸出"}}}},spotify:{music:{"featured-playlists":{t:0,b:{t:2,i:[{t:3}],s:"特色列表"}},"new-releases":{t:0,b:{t:2,i:[{t:3}],s:"最新發行"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"未找到結果"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"搜尋"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示專輯"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 個專輯"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示藝人"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 位藝人"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示播放列表"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 個播放列表"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示曲目"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 首曲目"}]}]}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"曲目"}}}}},playlist:{type:{folder:{t:0,b:{t:2,i:[{t:3}],s:"檔案夾"}},plain:{t:0,b:{t:2,i:[{t:3}],s:"簡單"}},smart:{t:0,b:{t:2,i:[{t:3}],s:"智能"}}}},player:{button:{consume:{t:0,b:{t:2,i:[{t:3}],s:"清除歷史"}},pause:{t:0,b:{t:2,i:[{t:3}],s:"暫停"}},play:{t:0,b:{t:2,i:[{t:3}],s:"播放"}},repeat:{t:0,b:{t:2,i:[{t:3}],s:"重復播放所有曲目"}},"repeat-off":{t:0,b:{t:2,i:[{t:3}],s:"所有曲目僅播放一遍"}},"repeat-once":{t:0,b:{t:2,i:[{t:3}],s:"重復當前曲目"}},"seek-backward":{t:0,b:{t:2,i:[{t:3}],s:"在當前曲目後退"}},"seek-forward":{t:0,b:{t:2,i:[{t:3}],s:"在當前曲目前進"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"隨機播放曲目"}},"shuffle-disabled":{t:0,b:{t:2,i:[{t:3}],s:"按順序播放曲目"}},"skip-backward":{t:0,b:{t:2,i:[{t:3}],s:"播放上一首"}},"skip-forward":{t:0,b:{t:2,i:[{t:3}],s:"播放下一首"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"停止"}},"toggle-lyrics":{t:0,b:{t:2,i:[{t:3}],s:"顯示/隱藏歌詞"}}}},property:{"added-on":{t:0,b:{t:2,i:[{t:3}],s:"新增時間"}},album:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"張專輯"}},"album-artist":{t:0,b:{t:2,i:[{t:3}],s:"專輯藝人"}},artist:{t:0,b:{t:2,i:[{t:3}],s:"專輯藝人"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}},comment:{t:0,b:{t:2,i:[{t:3}],s:"評論"}},composer:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"時長"}},genre:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}},name:{t:0,b:{t:2,i:[{t:3}],s:"名稱"}},owner:{t:0,b:{t:2,i:[{t:3}],s:"所有者"}},path:{t:0,b:{t:2,i:[{t:3}],s:"路徑"}},playtime:{t:0,b:{t:2,i:[{t:3}],s:"總播放時長"}},popularity:{t:0,b:{t:2,i:[{t:3}],s:"流行度 / 粉絲數"}},position:{t:0,b:{t:2,i:[{t:3}],s:"盤符 / 曲目"}},quality:{t:0,b:{t:2,i:[{t:3}],s:"品質"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"評級"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"發行日期"}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"曲目"}},type:{t:0,b:{t:2,i:[{t:3}],s:"類型"}},updated:{t:0,b:{t:2,i:[{t:3}],s:"更新於"}},uptime:{t:0,b:{t:2,i:[{t:3}],s:"運行時長"}},year:{t:0,b:{t:2,i:[{t:3}],s:"年份"}}},server:{"connection-failed":{t:0,b:{t:2,i:[{t:3}],s:"無法連接到 OwnTone 伺服器"}},"request-failed":{t:0,b:{t:2,i:[{t:3,v:"請求失敗 (狀態:"},{t:4,k:"status"},{t:3,v:" "},{t:4,k:"cause"},{t:3,v:" "},{t:4,k:"url"},{t:3,v:")"}]}},"queue-saved":{t:0,b:{t:2,i:[{t:3,v:"清單以新增到播放列表 "},{t:4,k:"name"}]}},"appended-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3,v:"已附加到隊列的 "},{t:4,k:"count"},{t:3,v:" 首曲目"}]},{t:2,i:[{t:3,v:"已附加到隊列的 "},{t:4,k:"count"},{t:3,v:" 首曲目"}]}]}},"empty-queue":{t:0,b:{t:2,i:[{t:3}],s:"清單是空的"}}},"grouped-list":{today:{t:0,b:{t:2,i:[{t:3}],s:"今日"}},"last-week":{t:0,b:{t:2,i:[{t:3}],s:"上周"}},"last-month":{t:0,b:{t:2,i:[{t:3}],s:"上月"}},undefined:{t:0,b:{t:2,i:[{t:3}],s:"未定義"}}}}}),Mu=gO({fallbackLocale:"en",fallbackWarn:!1,locale:navigator.language,messages:AO,missingWarn:!1}),$s=hs("NotificationsStore",{actions:{add(t){const e={id:this.nextId++,text:t.text,timeout:t.timeout,topic:t.topic,type:t.type};if(e.topic){const n=this.list.findIndex(s=>s.topic===e.topic);if(n>=0){this.list.splice(n,1,e);return}}this.list.push(e),t.timeout>0&&setTimeout(()=>{this.remove(e)},t.timeout)},remove(t){const e=this.list.indexOf(t);e!==-1&&this.list.splice(e,1)}},state:()=>({list:[],nextId:1})}),qi=hs("ConfigurationStore",{state:()=>({allow_modifying_stored_playlists:!1,buildoptions:[],default_playlist_directory:"",library_name:"",version:"",websocket_port:0})}),Jn=hs("PlayerStore",{getters:{isPlaying:t=>t.state==="play",isRepeatAll:t=>t.repeat==="all",isRepeatOff:t=>t.repeat==="off",isRepeatSingle:t=>t.repeat==="single",isStopped:t=>t.state==="stop"},state:()=>({consume:!1,item_id:0,item_length_ms:0,item_progress_ms:0,repeat:"off",shuffle:!1,state:"stop",volume:0})}),Cs=hs("QueueStore",{getters:{current(t){const e=Jn();return t.items.find(n=>n.id===e.item_id)??{}},isEmpty(t){return t.items.length===0},isPauseAllowed(t){return t.current&&t.current.data_kind!=="pipe"},isSavingAllowed(t){const e=qi();return e.allow_modifying_stored_playlists&&e.default_playlist_directory}},state:()=>({count:0,items:[],version:0})}),{t:Yr}=Mu.global;ut.interceptors.response.use(t=>t,t=>(t.request.status&&t.request.responseURL&&$s().add({text:Yr("server.request-failed",{cause:t.request.statusText,status:t.request.status,url:t.request.responseURL}),type:"danger"}),Promise.reject(t)));const tt={config(){return ut.get("./api/config")},lastfm(){return ut.get("./api/lastfm")},lastfm_login(t){return ut.post("./api/lastfm-login",t)},lastfm_logout(){return ut.get("./api/lastfm-logout")},library_add(t){return ut.post("./api/library/add",null,{params:{url:t}})},library_album(t){return ut.get(`./api/library/albums/${t}`)},library_album_track_update(t,e){return ut.put(`./api/library/albums/${t}/tracks`,null,{params:e})},library_album_tracks(t,e={limit:-1,offset:0}){return ut.get(`./api/library/albums/${t}/tracks`,{params:e})},library_albums(t){return ut.get("./api/library/albums",{params:{media_kind:t}})},library_artist(t){return ut.get(`./api/library/artists/${t}`)},library_artist_albums(t){return ut.get(`./api/library/artists/${t}/albums`)},library_artist_tracks(t){const e={expression:`songartistid is "${t}"`,type:"tracks"};return ut.get("./api/search",{params:e})},library_artists(t){return ut.get("./api/library/artists",{params:{media_kind:t}})},library_composer(t){return ut.get(`./api/library/composers/${encodeURIComponent(t)}`)},library_composer_albums(t){const e={expression:`composer is "${t}" and media_kind is music`,type:"albums"};return ut.get("./api/search",{params:e})},library_composer_tracks(t){const e={expression:`composer is "${t}" and media_kind is music`,type:"tracks"};return ut.get("./api/search",{params:e})},library_composers(t){return ut.get("./api/library/composers",{params:{media_kind:t}})},library_count(t){return ut.get(`./api/library/count?expression=${t}`)},library_files(t){return ut.get("./api/library/files",{params:{directory:t}})},library_genre(t,e){const n={expression:`genre is "${t}" and media_kind is ${e}`,type:"genres"};return ut.get("./api/search",{params:n})},library_genre_albums(t,e){const n={expression:`genre is "${t}" and media_kind is ${e}`,type:"albums"};return ut.get("./api/search",{params:n})},library_genre_tracks(t,e){const n={expression:`genre is "${t}" and media_kind is ${e}`,type:"tracks"};return ut.get("./api/search",{params:n})},library_genres(t){const e={expression:`media_kind is ${t}`,type:"genres"};return ut.get("./api/search",{params:e})},library_playlist(t){return ut.get(`./api/library/playlists/${t}`)},library_playlist_delete(t){return ut.delete(`./api/library/playlists/${t}`,null)},library_playlist_folder(t=0){return ut.get(`./api/library/playlists/${t}/playlists`)},library_playlist_tracks(t){return ut.get(`./api/library/playlists/${t}/tracks`)},library_podcast_episodes(t){const e={expression:`media_kind is podcast and songalbumid is "${t}" ORDER BY date_released DESC`,type:"tracks"};return ut.get("./api/search",{params:e})},library_podcasts_new_episodes(){const t={expression:"media_kind is podcast and play_count = 0 ORDER BY time_added DESC",type:"tracks"};return ut.get("./api/search",{params:t})},library_radio_streams(){const t={expression:"data_kind is url and song_length = 0",media_kind:"music",type:"tracks"};return ut.get("./api/search",{params:t})},library_rescan(t){return ut.put("./api/rescan",null,{params:{scan_kind:t}})},library_stats(){return ut.get("./api/library")},library_track(t){return ut.get(`./api/library/tracks/${t}`)},library_track_playlists(t){return ut.get(`./api/library/tracks/${t}/playlists`)},library_track_update(t,e={}){return ut.put(`./api/library/tracks/${t}`,null,{params:e})},library_update(t){return ut.put("./api/update",null,{params:{scan_kind:t}})},output_toggle(t){return ut.put(`./api/outputs/${t}/toggle`)},output_update(t,e){return ut.put(`./api/outputs/${t}`,e)},outputs(){return ut.get("./api/outputs")},pairing(){return ut.get("./api/pairing")},pairing_kickoff(t){return ut.post("./api/pairing",t)},player_consume(t){return ut.put(`./api/player/consume?state=${t}`)},player_next(){return ut.put("./api/player/next")},player_output_volume(t,e){return ut.put(`./api/player/volume?volume=${e}&output_id=${t}`)},player_pause(){return ut.put("./api/player/pause")},player_play(t={}){return ut.put("./api/player/play",null,{params:t})},player_play_expression(t,e,n){const s={clear:"true",expression:t,playback:"start",playback_from_position:n,shuffle:e};return ut.post("./api/queue/items/add",null,{params:s})},player_play_uri(t,e,n){const s={clear:"true",playback:"start",playback_from_position:n,shuffle:e,uris:t};return ut.post("./api/queue/items/add",null,{params:s})},player_previous(){return ut.put("./api/player/previous")},player_repeat(t){return ut.put(`./api/player/repeat?state=${t}`)},player_seek(t){return ut.put(`./api/player/seek?seek_ms=${t}`)},player_seek_to_pos(t){return ut.put(`./api/player/seek?position_ms=${t}`)},player_shuffle(t){return ut.put(`./api/player/shuffle?state=${t}`)},player_status(){return ut.get("./api/player")},player_stop(){return ut.put("./api/player/stop")},player_volume(t){return ut.put(`./api/player/volume?volume=${t}`)},queue(){return ut.get("./api/queue")},async queue_add(t){const e=await ut.post(`./api/queue/items/add?uris=${t}`);return $s().add({text:Yr("server.appended-tracks",{count:e.data.count}),timeout:2e3,type:"info"}),await Promise.resolve(e)},async queue_add_next(t){let e=0;const{current:n}=Cs();n!=null&&n.id&&(e=n.position+1);const s=await ut.post(`./api/queue/items/add?uris=${t}&position=${e}`);return $s().add({text:Yr("server.appended-tracks",{count:s.data.count}),timeout:2e3,type:"info"}),await Promise.resolve(s)},queue_clear(){return ut.put("./api/queue/clear")},async queue_expression_add(t){const e=await ut.post("./api/queue/items/add",null,{params:{expression:t}});return $s().add({text:Yr("server.appended-tracks",{count:e.data.count}),timeout:2e3,type:"info"}),await Promise.resolve(e)},async queue_expression_add_next(t){const e={};e.expression=t,e.position=0;const{current:n}=Cs();n!=null&&n.id&&(e.position=n.position+1);const s=await ut.post("./api/queue/items/add",null,{params:e});return $s().add({text:Yr("server.appended-tracks",{count:s.data.count}),timeout:2e3,type:"info"}),await Promise.resolve(s)},queue_move(t,e){return ut.put(`./api/queue/items/${t}?new_position=${e}`)},queue_remove(t){return ut.delete(`./api/queue/items/${t}`)},async queue_save_playlist(t){const e=await ut.post("./api/queue/save",null,{params:{name:t}});return $s().add({text:Yr("server.queue-saved",{name:t}),timeout:2e3,type:"info"}),await Promise.resolve(e)},search(t){return ut.get("./api/search",{params:t})},settings(){return ut.get("./api/settings")},settings_update(t,e){return ut.put(`./api/settings/${t}/${e.name}`,e)},spotify(){return ut.get("./api/spotify")},spotify_logout(){return ut.get("./api/spotify-logout")}},OO={name:"ModalDialogRemotePairing",components:{ModalDialog:gi},props:{show:Boolean},emits:["close"],setup(){return{remoteStore:Yh()}},data(){return{pairing_req:{pin:""}}},computed:{actions(){return[{handler:this.cancel,icon:"cancel",key:"actions.cancel"},{handler:this.pair,icon:"cellphone",key:"actions.pair"}]},pairing(){return this.remoteStore.pairing}},watch:{show(){this.show&&(this.loading=!1,setTimeout(()=>{this.$refs.pin_field.focus()},10))}},methods:{cancel(){this.$emit("close")},pair(){tt.pairing_kickoff(this.pairing_req).then(()=>{this.pairing_req.pin=""})}}},xO=["textContent"],IO={class:"field"},NO={class:"control"},PO=["placeholder"];function DO(t,e,n,s,i,r){const o=C("modal-dialog");return O(),_t(o,{actions:r.actions,show:n.show,title:t.$t("dialog.remote-pairing.title"),onClose:e[2]||(e[2]=a=>t.$emit("close"))},{content:M(()=>[S("form",{onSubmit:e[1]||(e[1]=Ie((...a)=>r.pair&&r.pair(...a),["prevent"]))},[S("label",{class:"label",textContent:j(r.pairing.remote)},null,8,xO),S("div",IO,[S("div",NO,[xn(S("input",{ref:"pin_field","onUpdate:modelValue":e[0]||(e[0]=a=>i.pairing_req.pin=a),class:"input",inputmode:"numeric",pattern:"[\\d]{4}",placeholder:t.$t("dialog.remote-pairing.pairing-code")},null,8,PO),[[Zn,i.pairing_req.pin]])])])],32)]),_:1},8,["actions","show","title"])}const RO=it(OO,[["render",DO]]),MO={name:"ControlSwitch",props:{modelValue:Boolean},emits:["update:modelValue"]},LO={class:"field mb-0 is-flex is-align-items-center"},$O={class:"toggle is-flex is-align-items-center"},FO={class:"control is-flex is-align-items-center"},VO=["checked"],HO={key:0,class:"help mb-4"};function UO(t,e,n,s,i,r){return O(),L(ht,null,[S("div",LO,[S("label",$O,[S("div",FO,[S("input",{checked:n.modelValue,type:"checkbox",class:"toggle-checkbox is-hidden",onChange:e[0]||(e[0]=o=>t.$emit("update:modelValue",!n.modelValue))},null,40,VO),e[1]||(e[1]=S("div",{class:"toggle-switch"},null,-1))]),ye(t.$slots,"label",{},void 0,!0)])]),t.$slots.help?(O(),L("div",HO,[ye(t.$slots,"help",{},void 0,!0)])):yt("",!0)],64)}const Dr=it(MO,[["render",UO],["__scopeId","data-v-2fe564ab"]]),Lu=hs("LibraryStore",{state:()=>({albums:0,artists:0,db_playtime:0,rss:{},songs:0,started_at:"01",update_dialog_scan_kind:"",updated_at:"01",updating:!1})}),je=hs("ServicesStore",{actions:{isSpotifyEnabled(){return this.spotify.webapi_token_valid}},state:()=>({lastfm:{},spotify:{}})}),jO={name:"ModalDialogUpdate",components:{ControlSwitch:Dr,ModalDialog:gi},props:{show:Boolean},emits:["close"],setup(){return{libraryStore:Lu(),servicesStore:je()}},data(){return{rescan_metadata:!1}},computed:{actions(){const t=[{handler:this.cancel,icon:"cancel",key:"actions.cancel"}];return this.libraryStore.updating||t.push({handler:this.analyse,icon:"check",key:"actions.rescan"}),t},rss(){return this.libraryStore.rss}},methods:{analyse(){this.rescan_metadata?tt.library_rescan(this.libraryStore.update_dialog_scan_kind):tt.library_update(this.libraryStore.update_dialog_scan_kind)},cancel(){this.$emit("close"),this.libraryStore.update_dialog_scan_kind=""}}},BO={key:0},WO={key:0,class:"field"},qO=["textContent"],GO={class:"control"},zO={class:"select is-small"},KO=["textContent"],XO=["textContent"],YO=["textContent"],ZO=["textContent"],JO=["textContent"],QO={key:1},tx=["textContent"];function ex(t,e,n,s,i,r){const o=C("control-switch"),a=C("modal-dialog");return O(),_t(a,{actions:r.actions,show:n.show,title:t.$t("dialog.update.title"),onClose:e[2]||(e[2]=l=>t.$emit("close"))},{content:M(()=>[s.libraryStore.updating?(O(),L("div",QO,[S("p",{class:"mb-3",textContent:j(t.$t("dialog.update.progress"))},null,8,tx)])):(O(),L("div",BO,[s.servicesStore.isSpotifyEnabled||r.rss.tracks>0?(O(),L("div",WO,[S("label",{class:"label",textContent:j(t.$t("dialog.update.info"))},null,8,qO),S("div",GO,[S("div",zO,[xn(S("select",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.libraryStore.update_dialog_scan_kind=l)},[S("option",{value:"",textContent:j(t.$t("dialog.update.all"))},null,8,KO),S("option",{value:"files",textContent:j(t.$t("dialog.update.local"))},null,8,XO),s.servicesStore.isSpotifyEnabled?(O(),L("option",{key:0,value:"spotify",textContent:j(t.$t("dialog.update.spotify"))},null,8,YO)):yt("",!0),r.rss.tracks>0?(O(),L("option",{key:1,value:"rss",textContent:j(t.$t("dialog.update.feeds"))},null,8,ZO)):yt("",!0)],512),[[Xh,s.libraryStore.update_dialog_scan_kind]])])])])):yt("",!0),E(o,{modelValue:i.rescan_metadata,"onUpdate:modelValue":e[1]||(e[1]=l=>i.rescan_metadata=l)},{label:M(()=>[S("span",{textContent:j(t.$t("dialog.update.rescan-metadata"))},null,8,JO)]),_:1},8,["modelValue"])]))]),_:1},8,["actions","show","title"])}const nx=it(jO,[["render",ex]]),Un=hs("UIStore",{actions:{hideMenus(){this.showBurgerMenu=!1,this.showPlayerMenu=!1},toggleBurgerMenu(){this.showPlayerMenu=!1,this.showBurgerMenu=!this.showBurgerMenu},togglePlayerMenu(){this.showBurgerMenu=!1,this.showPlayerMenu=!this.showPlayerMenu},toggleHideReadItems(){this.hideReadItems=!this.hideReadItems}},state:()=>({albums_sort:1,artist_albums_sort:1,artist_tracks_sort:1,artists_sort:1,composer_tracks_sort:1,genre_tracks_sort:1,hideReadItems:!1,hideSingles:!1,hideSpotify:!1,showBurgerMenu:!1,showPlayerMenu:!1,showUpdateDialog:!1})}),sx={name:"ControlLink",props:{to:{required:!0,type:Object}},setup(){return{uiStore:Un()}},methods:{open(){this.uiStore.hideMenus(),this.$router.push(this.to)}}},ix=["href"];function rx(t,e,n,s,i,r){return O(),L("a",{href:t.$router.resolve(n.to).href,onClick:e[0]||(e[0]=Ie((...o)=>r.open&&r.open(...o),["stop","prevent"]))},[ye(t.$slots,"default")],8,ix)}const B0=it(sx,[["render",rx]]),ox={name:"ControlSlider",props:{disabled:Boolean,max:{required:!0,type:Number},value:{required:!0,type:Number}},emits:["update:value"],computed:{ratio(){return this.value/this.max}}},ax=["value","disabled","max"];function lx(t,e,n,s,i,r){return O(),L("input",{value:n.value,disabled:n.disabled,class:Vt(["slider",{"is-inactive":n.disabled}]),max:n.max,type:"range",style:hi({"--ratio":r.ratio}),onInput:e[0]||(e[0]=o=>t.$emit("update:value",o.target.valueAsNumber))},null,46,ax)}const $u=it(ox,[["render",lx],["__scopeId","data-v-d0c7e339"]]),cx={name:"ControlVolume",components:{ControlSlider:$u},setup(){return{player:Jn()}},data(){return{old_volume:0}},computed:{icon(){return this.player.volume>0?"volume-high":"volume-off"}},watch:{"player.volume"(){this.player.volume>0&&(this.old_volume=this.player.volume)}},methods:{changeVolume(t){tt.player_volume(this.player.volume)},toggle(){this.player.volume=this.player.volume>0?0:this.old_volume,this.changeVolume()}}},ux={class:"media is-align-items-center mb-0"},dx={class:"media-left"},fx={class:"media-content"},hx=["textContent"];function px(t,e,n,s,i,r){const o=C("mdicon"),a=C("control-slider");return O(),L("div",ux,[S("div",dx,[S("button",{class:"button is-small",onClick:e[0]||(e[0]=(...l)=>r.toggle&&r.toggle(...l))},[E(o,{class:"icon",name:r.icon},null,8,["name"])])]),S("div",fx,[S("div",{class:"is-size-7 is-uppercase",textContent:j(t.$t("navigation.volume"))},null,8,hx),E(a,{value:s.player.volume,"onUpdate:value":e[1]||(e[1]=l=>s.player.volume=l),max:100,onChange:r.changeVolume},null,8,["value","onChange"])])])}const mx=it(cx,[["render",px]]),gx={name:"ControlOutputVolume",components:{ControlSlider:$u},props:{output:{required:!0,type:Object}},data(){return{volume:this.output.selected?this.output.volume:0}},computed:{icon(){return this.output.type.startsWith("AirPlay")?"cast-variant":this.output.type==="Chromecast"?"cast":this.output.type==="fifo"?"pipe":"server"}},watch:{output(){this.volume=this.output.volume}},methods:{changeVolume(){tt.player_output_volume(this.output.id,this.volume)},toggle(){const t={selected:!this.output.selected};tt.output_update(this.output.id,t)}}},yx={class:"media is-align-items-center mb-0"},bx={class:"media-left"},vx={class:"media-content"},_x=["textContent"];function Sx(t,e,n,s,i,r){const o=C("mdicon"),a=C("control-slider");return O(),L("div",yx,[S("div",bx,[S("button",{class:Vt(["button is-small",{"has-text-grey-light":!n.output.selected}]),onClick:e[0]||(e[0]=(...l)=>r.toggle&&r.toggle(...l))},[E(o,{class:"icon",name:r.icon,title:n.output.type},null,8,["name","title"])],2)]),S("div",vx,[S("div",{class:Vt(["is-size-7 is-uppercase",{"has-text-grey-light":!n.output.selected}]),textContent:j(n.output.name)},null,10,_x),E(a,{value:i.volume,"onUpdate:value":e[1]||(e[1]=l=>i.volume=l),disabled:!n.output.selected,max:100,onChange:r.changeVolume},null,8,["value","disabled","onChange"])])])}const Ex=it(gx,[["render",Sx]]),wx={name:"ControlPlayerBack",props:{offset:{required:!0,type:Number}},setup(){return{playerStore:Jn(),queueStore:Cs()}},computed:{disabled(){var t;return((t=this.queueStore)==null?void 0:t.count)<=0||this.playerStore.isStopped||this.queueStore.current.data_kind==="pipe"},visible(){return["podcast","audiobook"].includes(this.queueStore.current.media_kind)}},methods:{seek(){this.disabled||tt.player_seek(this.offset*-1)}}},kx=["disabled"];function Cx(t,e,n,s,i,r){const o=C("mdicon");return r.visible?(O(),L("a",{key:0,disabled:r.disabled,onClick:e[0]||(e[0]=(...a)=>r.seek&&r.seek(...a))},[E(o,{class:"icon",name:"rewind-10",title:t.$t("player.button.seek-backward")},null,8,["title"])],8,kx)):yt("",!0)}const Tx=it(wx,[["render",Cx]]),Ax={name:"ControlPlayerConsume",setup(){return{playerStore:Jn()}},methods:{toggle(){tt.player_consume(!this.playerStore.consume)}}};function Ox(t,e,n,s,i,r){const o=C("mdicon");return O(),L("a",{class:Vt({"is-dark":s.playerStore.consume}),onClick:e[0]||(e[0]=(...a)=>r.toggle&&r.toggle(...a))},[E(o,{class:"icon",name:"fire",size:"16",title:t.$t("player.button.consume")},null,8,["title"])],2)}const xx=it(Ax,[["render",Ox]]),Ix={name:"ControlPlayerForward",props:{offset:{required:!0,type:Number}},setup(){return{playerStore:Jn(),queueStore:Cs()}},computed:{disabled(){var t;return((t=this.queueStore)==null?void 0:t.count)<=0||this.playerStore.isStopped||this.queueStore.current.data_kind==="pipe"},visible(){return["podcast","audiobook"].includes(this.queueStore.current.media_kind)}},methods:{seek(){this.disabled||tt.player_seek(this.offset)}}},Nx=["disabled"];function Px(t,e,n,s,i,r){const o=C("mdicon");return r.visible?(O(),L("a",{key:0,disabled:r.disabled,onClick:e[0]||(e[0]=(...a)=>r.seek&&r.seek(...a))},[E(o,{class:"icon",name:"fast-forward-30",title:t.$t("player.button.seek-forward")},null,8,["title"])],8,Nx)):yt("",!0)}const Dx=it(Ix,[["render",Px]]),Fu=hs("LyricsStore",{actions:{toggle(){this.active=!this.active}},state:()=>({content:[],active:!1})}),Rx={name:"ControlPlayerLyrics",setup(){return{lyricsStore:Fu()}},computed:{icon(){return this.lyricsStore.active?"script-text-play":"script-text-outline"}}};function Mx(t,e,n,s,i,r){const o=C("mdicon");return O(),L("a",{class:Vt({"is-dark":s.lyricsStore.active}),onClick:e[0]||(e[0]=(...a)=>s.lyricsStore.toggle&&s.lyricsStore.toggle(...a))},[E(o,{class:"icon",name:r.icon,size:16,title:t.$t("player.button.toggle-lyrics")},null,8,["name","title"])],2)}const Lx=it(Rx,[["render",Mx]]),$x={name:"ControlPlayerNext",setup(){return{queueStore:Cs()}},computed:{disabled(){return this.queueStore.count<=0}},methods:{next(){this.disabled||tt.player_next()}}},Fx=["disabled"];function Vx(t,e,n,s,i,r){const o=C("mdicon");return O(),L("a",{disabled:r.disabled,onClick:e[0]||(e[0]=(...a)=>r.next&&r.next(...a))},[E(o,{class:"icon",name:"skip-forward",title:t.$t("player.button.skip-forward")},null,8,["title"])],8,Fx)}const Hx=it($x,[["render",Vx]]),Ux={name:"ControlPlayerPlay",props:{show_disabled_message:Boolean},setup(){return{notificationsStore:$s(),playerStore:Jn(),queueStore:Cs()}},computed:{disabled(){var t;return((t=this.queueStore)==null?void 0:t.count)<=0},icon(){if(this.playerStore.isPlaying){if(this.queueStore.isPauseAllowed)return"pause"}else return"play";return"stop"}},methods:{toggle(){if(this.disabled){this.show_disabled_message&&this.notificationsStore.add({text:this.$t("server.empty-queue"),timeout:2e3,topic:"connection",type:"info"});return}this.playerStore.isPlaying&&this.queueStore.isPauseAllowed?tt.player_pause():this.playerStore.isPlaying&&!this.queueStore.isPauseAllowed?tt.player_stop():tt.player_play()}}},jx=["disabled"];function Bx(t,e,n,s,i,r){const o=C("mdicon");return O(),L("a",{disabled:r.disabled,onClick:e[0]||(e[0]=(...a)=>r.toggle&&r.toggle(...a))},[E(o,{class:"icon",name:r.icon,title:t.$t(`player.button.${r.icon}`)},null,8,["name","title"])],8,jx)}const Wx=it(Ux,[["render",Bx]]),qx={name:"ControlPlayerPrevious",setup(){return{queueStore:Cs()}},computed:{disabled(){return this.queueStore.count<=0}},methods:{playPrevious(){this.disabled||tt.player_previous()}}},Gx=["disabled"];function zx(t,e,n,s,i,r){const o=C("mdicon");return O(),L("a",{disabled:r.disabled,onClick:e[0]||(e[0]=(...a)=>r.playPrevious&&r.playPrevious(...a))},[E(o,{class:"icon",name:"skip-backward",title:t.$t("player.button.skip-backward")},null,8,["title"])],8,Gx)}const Kx=it(qx,[["render",zx]]),Xx={name:"ControlPlayerRepeat",setup(){return{playerStore:Jn()}},computed:{icon(){return this.playerStore.isRepeatAll?"repeat":this.playerStore.isRepeatSingle?"repeat-once":"repeat-off"}},methods:{toggle(){this.playerStore.isRepeatAll?tt.player_repeat("single"):this.playerStore.isRepeatSingle?tt.player_repeat("off"):tt.player_repeat("all")}}};function Yx(t,e,n,s,i,r){const o=C("mdicon");return O(),L("a",{class:Vt({"is-dark":!s.playerStore.isRepeatOff}),onClick:e[0]||(e[0]=(...a)=>r.toggle&&r.toggle(...a))},[E(o,{class:"icon",name:r.icon,size:16,title:t.$t(`player.button.${r.icon}`)},null,8,["name","title"])],2)}const Zx=it(Xx,[["render",Yx]]),Jx={name:"ControlPlayerShuffle",setup(){return{playerStore:Jn()}},computed:{icon(){return this.playerStore.shuffle?"shuffle":"shuffle-disabled"}},methods:{toggle(){tt.player_shuffle(!this.playerStore.shuffle)}}};function Qx(t,e,n,s,i,r){const o=C("mdicon");return O(),L("a",{class:Vt({"is-dark":s.playerStore.shuffle}),onClick:e[0]||(e[0]=(...a)=>r.toggle&&r.toggle(...a))},[E(o,{class:"icon",name:r.icon,size:16,title:t.$t(`player.button.${r.icon}`)},null,8,["name","title"])],2)}const tI=it(Jx,[["render",Qx]]),Wo={audio:new Audio,context:null,play(t){this.stop(),this.context.resume().then(()=>{this.audio.src=`${String(t||"")}?x=${Date.now()}`,this.audio.crossOrigin="anonymous",this.audio.load()})},setVolume(t){this.audio&&(this.audio.volume=Math.min(1,Math.max(0,parseFloat(t)||0)))},setup(){return this.context=new(window.AudioContext||window.webkitAudioContext),this.context.createMediaElementSource(this.audio).connect(this.context.destination),this.audio.addEventListener("canplaythrough",()=>{this.audio.play()}),this.audio.addEventListener("canplay",()=>{this.audio.play()}),this.audio},stop(){try{this.audio.pause()}catch{}try{this.audio.stop()}catch{}try{this.audio.close()}catch{}}},eI={name:"ControlStreamVolume",components:{ControlSlider:$u},emits:["change","mute"],data(){return{loading:!1,playing:!1,volume:10}},mounted(){this.setupAudio()},unmounted(){this.closeAudio()},methods:{changeVolume(){Wo.setVolume(this.volume/100)},closeAudio(){Wo.stop(),this.playing=!1},playChannel(){this.playing||(this.loading=!0,Wo.play("/stream.mp3"),Wo.setVolume(this.volume/100))},setupAudio(){const t=Wo.setup();t.addEventListener("waiting",()=>{this.playing=!1,this.loading=!0}),t.addEventListener("playing",()=>{this.playing=!0,this.loading=!1}),t.addEventListener("ended",()=>{this.playing=!1,this.loading=!1}),t.addEventListener("error",()=>{this.closeAudio(),this.notificationsStore.add({text:this.$t("navigation.stream-error"),type:"danger"}),this.playing=!1,this.loading=!1})},togglePlay(){this.loading||(this.playing&&this.closeAudio(),this.playChannel())}}},nI={class:"media is-align-items-center mb-0"},sI={class:"media-left"},iI={class:"media-content is-align-items-center"},rI=["textContent"],oI={href:"stream.mp3",class:"ml-2",target:"_blank"};function aI(t,e,n,s,i,r){const o=C("mdicon"),a=C("control-slider");return O(),L("div",nI,[S("div",sI,[S("button",{class:Vt(["button is-small",{"has-text-grey-light":!i.playing&&!i.loading,"is-loading":i.loading}]),onClick:e[0]||(e[0]=(...l)=>r.togglePlay&&r.togglePlay(...l))},[E(o,{class:"icon",name:"broadcast"})],2)]),S("div",iI,[S("div",{class:Vt(["is-flex",{"has-text-grey-light":!i.playing}])},[S("div",{class:"is-size-7 is-uppercase",textContent:j(t.$t("navigation.stream"))},null,8,rI),S("a",oI,[E(o,{class:"icon is-small",name:"open-in-new"})])],2),E(a,{value:i.volume,"onUpdate:value":e[1]||(e[1]=l=>i.volume=l),disabled:!i.playing,max:100,onChange:r.changeVolume},null,8,["value","disabled","onChange"])])])}const lI=it(eI,[["render",aI]]),cp=hs("OutputsStore",{state:()=>({outputs:[]})}),cI={name:"NavbarBottom",components:{ControlLink:B0,ControlMainVolume:mx,ControlOutputVolume:Ex,ControlPlayerBack:Tx,ControlPlayerConsume:xx,ControlPlayerForward:Dx,ControlPlayerLyrics:Lx,ControlPlayerNext:Hx,ControlPlayerPlay:Wx,ControlPlayerPrevious:Kx,ControlPlayerRepeat:Zx,ControlPlayerShuffle:tI,ControlStreamVolume:lI},setup(){return{notificationsStore:$s(),outputsStore:cp(),queueStore:Cs(),uiStore:Un()}},computed:{isNowPlayingPage(){return this.$route.name==="now-playing"}}},uI={class:"navbar-brand is-flex-grow-1"},dI={class:"is-text-clipped"},fI=["textContent"],hI=["textContent"],pI=["textContent"],mI={class:"dropdown-menu is-mobile"},gI={class:"dropdown-content"},yI={class:"dropdown-item pt-0"},bI={class:"dropdown-item is-flex is-justify-content-center"},vI={class:"buttons has-addons"};function _I(t,e,n,s,i,r){const o=C("mdicon"),a=C("control-link"),l=C("control-player-previous"),c=C("control-player-back"),u=C("control-player-play"),d=C("control-player-forward"),f=C("control-player-next"),h=C("control-main-volume"),p=C("control-output-volume"),m=C("control-stream-volume"),b=C("control-player-repeat"),y=C("control-player-shuffle"),_=C("control-player-consume"),g=C("control-player-lyrics");return O(),L("nav",{class:Vt(["navbar is-fixed-bottom",{"is-dark":!r.isNowPlayingPage}])},[S("div",uI,[E(a,{class:"navbar-item",to:{name:"queue"}},{default:M(()=>[E(o,{class:"icon",name:"playlist-play"})]),_:1}),r.isNowPlayingPage?(O(),L(ht,{key:0},[E(l,{class:"navbar-item ml-auto"}),E(c,{class:"navbar-item",offset:1e4}),E(u,{class:"navbar-item",show_disabled_message:""}),E(d,{class:"navbar-item",offset:3e4}),E(f,{class:"navbar-item mr-auto"})],64)):(O(),L(ht,{key:1},[E(a,{to:{name:"now-playing"},exact:"",class:"navbar-item is-justify-content-flex-start is-expanded is-clipped is-size-7"},{default:M(()=>[S("div",dI,[S("strong",{textContent:j(s.queueStore.current.title)},null,8,fI),e[1]||(e[1]=S("br",null,null,-1)),S("span",{textContent:j(s.queueStore.current.artist)},null,8,hI),s.queueStore.current.album?(O(),L("span",{key:0,textContent:j(t.$t("navigation.now-playing",{album:s.queueStore.current.album}))},null,8,pI)):yt("",!0)])]),_:1}),E(u,{class:"navbar-item",show_disabled_message:""})],64)),S("a",{class:"navbar-item",onClick:e[0]||(e[0]=(...v)=>s.uiStore.togglePlayerMenu&&s.uiStore.togglePlayerMenu(...v))},[E(o,{class:"icon",name:s.uiStore.showPlayerMenu?"chevron-down":"chevron-up"},null,8,["name"])]),S("div",{class:Vt(["dropdown is-up is-right",{"is-active":s.uiStore.showPlayerMenu}])},[S("div",mI,[S("div",gI,[S("div",yI,[E(h),(O(!0),L(ht,null,ce(s.outputsStore.outputs,v=>(O(),_t(p,{key:v.id,output:v},null,8,["output"]))),128)),E(m)]),e[2]||(e[2]=S("hr",{class:"dropdown-divider"},null,-1)),S("div",bI,[S("div",vI,[E(b,{class:"button"}),E(y,{class:"button"}),E(_,{class:"button"}),E(g,{class:"button"})])])])])],2)])],2)}const SI=it(cI,[["render",_I],["__scopeId","data-v-684c9a14"]]),up=hs("SearchStore",{actions:{add(t){const e=this.history.indexOf(t);e!==-1&&this.history.splice(e,1),this.history.unshift(t),this.history.length>5&&this.history.pop()},remove(t){const e=this.history.indexOf(t);e!==-1&&this.history.splice(e,1)}},state:()=>({history:[],query:"",source:"search-library"})}),yi=hs("SettingsStore",{actions:{setting(t,e){var n;return((n=this.categories.find(s=>s.name===t))==null?void 0:n.options.find(s=>s.name===e))??{}},update(t){const e=this.categories.find(s=>s.name===t.category);if(!e)return;const n=e.options.find(s=>s.name===t.name);n&&(n.value=t.value)}},getters:{recently_added_limit:t=>{var e;return((e=t.setting("webinterface","recently_added_limit"))==null?void 0:e.value)??100},show_composer_for_genre:t=>{var e;return((e=t.setting("webinterface","show_composer_for_genre"))==null?void 0:e.value)??null},show_composer_now_playing:t=>{var e;return((e=t.setting("webinterface","show_composer_now_playing"))==null?void 0:e.value)??!1},show_cover_artwork_in_album_lists:t=>{var e;return((e=t.setting("artwork","show_cover_artwork_in_album_lists"))==null?void 0:e.value)??!1},show_filepath_now_playing:t=>{var e;return((e=t.setting("webinterface","show_filepath_now_playing"))==null?void 0:e.value)??!1},show_menu_item_audiobooks:t=>{var e;return((e=t.setting("webinterface","show_menu_item_audiobooks"))==null?void 0:e.value)??!1},show_menu_item_files:t=>{var e;return((e=t.setting("webinterface","show_menu_item_files"))==null?void 0:e.value)??!1},show_menu_item_music:t=>{var e;return((e=t.setting("webinterface","show_menu_item_music"))==null?void 0:e.value)??!1},show_menu_item_playlists:t=>{var e;return((e=t.setting("webinterface","show_menu_item_playlists"))==null?void 0:e.value)??!1},show_menu_item_podcasts:t=>{var e;return((e=t.setting("webinterface","show_menu_item_podcasts"))==null?void 0:e.value)??!1},show_menu_item_radio:t=>{var e;return((e=t.setting("webinterface","show_menu_item_radio"))==null?void 0:e.value)??!1},show_menu_item_search:t=>{var e;return((e=t.setting("webinterface","show_menu_item_search"))==null?void 0:e.value)??!1}},state:()=>({categories:[]})}),EI={name:"NavbarTop",components:{ControlLink:B0},setup(){return{searchStore:up(),servicesStore:je(),settingsStore:yi(),uiStore:Un()}},computed:{menus(){return[{icon:"music-box-multiple",key:"navigation.playlists",name:"playlists",show:this.settingsStore.show_menu_item_playlists},{icon:"music",key:"navigation.music",name:"music",show:this.settingsStore.show_menu_item_music},{key:"navigation.artists",name:"music-artists",show:!0,sub:!0},{key:"navigation.albums",name:"music-albums",show:!0,sub:!0},{key:"navigation.genres",name:"music-genres",show:!0,sub:!0},{key:"navigation.spotify",name:"music-spotify",show:this.servicesStore.spotify.webapi_token_valid,sub:!0},{icon:"microphone",key:"navigation.podcasts",name:"podcasts",show:this.settingsStore.show_menu_item_podcasts},{icon:"book-open-variant",key:"navigation.audiobooks",name:"audiobooks",show:this.settingsStore.show_menu_item_audiobooks},{icon:"radio",key:"navigation.radio",name:"radio",show:this.settingsStore.show_menu_item_radio},{icon:"folder-open",key:"navigation.files",name:"files",show:this.settingsStore.show_menu_item_files},{icon:"magnify",key:"navigation.search",name:this.searchStore.source,show:this.settingsStore.show_menu_item_search},{separator:!0,show:!0},{key:"navigation.settings",name:"settings-webinterface",show:!0},{action:this.openUpdateDialog,key:"navigation.update-library",show:!0},{key:"navigation.about",name:"about",show:!0}]},zindex(){return this.uiStore.showPlayerMenu?"z-index: 21":""}},methods:{openUpdateDialog(){this.uiStore.showUpdateDialog=!0,this.uiStore.hideMenus()}}},wI={class:"navbar-brand is-flex-grow-1"},kI={class:"dropdown-menu is-mobile"},CI={class:"dropdown-content"},TI={key:0,class:"my-3"},AI=["onClick","textContent"],OI={key:0,class:"icon-text"},xI=["textContent"];function II(t,e,n,s,i,r){const o=C("mdicon"),a=C("control-link");return O(),L("nav",{class:"navbar is-fixed-top is-light",style:hi(r.zindex)},[S("div",wI,[(O(!0),L(ht,null,ce(r.menus.filter(l=>l.show&&l.icon),l=>(O(),_t(a,{key:l.name,to:{name:l.name},class:"navbar-item"},{default:M(()=>[E(o,{class:"icon",name:l.icon,size:"16"},null,8,["name"])]),_:2},1032,["to"]))),128)),S("a",{class:"navbar-item ml-auto",onClick:e[0]||(e[0]=(...l)=>s.uiStore.toggleBurgerMenu&&s.uiStore.toggleBurgerMenu(...l))},[E(o,{class:"icon",name:s.uiStore.showBurgerMenu?"close":"menu"},null,8,["name"])]),S("div",{class:Vt(["dropdown is-right",{"is-active":s.uiStore.showBurgerMenu}])},[S("div",kI,[S("div",CI,[(O(!0),L(ht,null,ce(r.menus.filter(l=>l.show),l=>(O(),L(ht,{key:l.name},[l.separator?(O(),L("hr",TI)):l.action?(O(),L("a",{key:1,class:"dropdown-item",onClick:Ie(l.action,["stop","prevent"]),textContent:j(t.$t(l.key))},null,8,AI)):(O(),_t(a,{key:2,to:{name:l.name},class:"dropdown-item"},{default:M(()=>[l.icon?(O(),L("span",OI,[E(o,{class:"icon",name:l.icon,size:"16"},null,8,["name"])])):yt("",!0),S("span",{class:Vt({"pl-5":l.sub,"has-text-weight-semibold":l.icon}),textContent:j(t.$t(l.key))},null,10,xI)]),_:2},1032,["to"]))],64))),128))])])],2)])],4)}const NI=it(EI,[["render",II]]),PI={name:"NotificationList",setup(){return{notificationsStore:$s()}},computed:{notifications(){return this.notificationsStore.list}},methods:{remove(t){this.notificationsStore.remove(t)}}},DI={key:0,class:"notifications"},RI={class:"columns is-centered"},MI={class:"column is-half"},LI=["onClick"],$I=["textContent"];function FI(t,e,n,s,i,r){return r.notifications.length>0?(O(),L("section",DI,[S("div",RI,[S("div",MI,[(O(!0),L(ht,null,ce(r.notifications,o=>(O(),L("div",{key:o.id,class:Vt(["notification",o.type?`is-${o.type}`:""])},[S("button",{class:"delete",onClick:a=>r.remove(o)},null,8,LI),S("div",{class:"text",textContent:j(o.text)},null,8,$I)],2))),128))])])])):yt("",!0)}const VI=it(PI,[["render",FI],["__scopeId","data-v-8e5ff698"]]);function Vu(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Hu(t){if(t.__esModule)return t;var e=t.default;if(typeof e=="function"){var n=function s(){return this instanceof s?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(t).forEach(function(s){var i=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(n,s,i.get?i:{enumerable:!0,get:function(){return t[s]}})}),n}var tc={exports:{}},HI=tc.exports,Fg;function UI(){return Fg||(Fg=1,function(t){(function(e,n){t.exports?t.exports=n():e.ReconnectingWebSocket=n()})(HI,function(){if(!("WebSocket"in window))return;function e(n,s,i){var r={debug:!1,automaticOpen:!0,reconnectInterval:1e3,maxReconnectInterval:3e4,reconnectDecay:1.5,timeoutInterval:2e3,maxReconnectAttempts:null};i||(i={});for(var o in r)typeof i[o]<"u"?this[o]=i[o]:this[o]=r[o];this.url=n,this.reconnectAttempts=0,this.readyState=WebSocket.CONNECTING,this.protocol=null;var a=this,l,c=!1,u=!1,d=document.createElement("div");d.addEventListener("open",function(h){a.onopen(h)}),d.addEventListener("close",function(h){a.onclose(h)}),d.addEventListener("connecting",function(h){a.onconnecting(h)}),d.addEventListener("message",function(h){a.onmessage(h)}),d.addEventListener("error",function(h){a.onerror(h)}),this.addEventListener=d.addEventListener.bind(d),this.removeEventListener=d.removeEventListener.bind(d),this.dispatchEvent=d.dispatchEvent.bind(d);function f(h,p){var m=document.createEvent("CustomEvent");return m.initCustomEvent(h,!1,!1,p),m}this.open=function(h){if(l=new WebSocket(a.url,s||[]),h){if(this.maxReconnectAttempts&&this.reconnectAttempts>this.maxReconnectAttempts)return}else d.dispatchEvent(f("connecting")),this.reconnectAttempts=0;(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","attempt-connect",a.url);var p=l,m=setTimeout(function(){(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","connection-timeout",a.url),u=!0,p.close(),u=!1},a.timeoutInterval);l.onopen=function(b){clearTimeout(m),(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","onopen",a.url),a.protocol=l.protocol,a.readyState=WebSocket.OPEN,a.reconnectAttempts=0;var y=f("open");y.isReconnect=h,h=!1,d.dispatchEvent(y)},l.onclose=function(b){if(clearTimeout(_),l=null,c)a.readyState=WebSocket.CLOSED,d.dispatchEvent(f("close"));else{a.readyState=WebSocket.CONNECTING;var y=f("connecting");y.code=b.code,y.reason=b.reason,y.wasClean=b.wasClean,d.dispatchEvent(y),!h&&!u&&((a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","onclose",a.url),d.dispatchEvent(f("close")));var _=a.reconnectInterval*Math.pow(a.reconnectDecay,a.reconnectAttempts);setTimeout(function(){a.reconnectAttempts++,a.open(!0)},_>a.maxReconnectInterval?a.maxReconnectInterval:_)}},l.onmessage=function(b){(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","onmessage",a.url,b.data);var y=f("message");y.data=b.data,d.dispatchEvent(y)},l.onerror=function(b){(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","onerror",a.url,b),d.dispatchEvent(f("error"))}},this.automaticOpen==!0&&this.open(!1),this.send=function(h){if(l)return(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","send",a.url,h),l.send(h);throw"INVALID_STATE_ERR : Pausing to reconnect websocket"},this.close=function(h,p){typeof h>"u"&&(h=1e3),c=!0,l&&l.close(h,p)},this.refresh=function(){l&&l.close()}}return e.prototype.onopen=function(n){},e.prototype.onclose=function(n){},e.prototype.onconnecting=function(n){},e.prototype.onmessage=function(n){},e.prototype.onerror=function(n){},e.debugAll=!1,e.CONNECTING=WebSocket.CONNECTING,e.OPEN=WebSocket.OPEN,e.CLOSING=WebSocket.CLOSING,e.CLOSED=WebSocket.CLOSED,e})}(tc)),tc.exports}var jI=UI();const BI=Vu(jI),WI={name:"App",components:{ModalDialogRemotePairing:RO,ModalDialogUpdate:nx,NavbarBottom:SI,NavbarTop:NI,NotificationList:VI},setup(){return{configurationStore:qi(),libraryStore:Lu(),lyricsStore:Fu(),notificationsStore:$s(),outputsStore:cp(),playerStore:Jn(),queueStore:Cs(),remotesStore:Yh(),servicesStore:je(),settingsStore:yi(),uiStore:Un()}},data(){return{pairing_active:!1,reconnect_attempts:0,token_timer_id:0}},computed:{showBurgerMenu:{get(){return this.uiStore.showBurgerMenu},set(t){this.uiStore.showBurgerMenu=t}},showPlayerMenu:{get(){return this.uiStore.showPlayerMenu},set(t){this.uiStore.showPlayerMenu=t}},showUpdateDialog:{get(){return this.uiStore.showUpdateDialog},set(t){this.uiStore.showUpdateDialog=t}}},watch:{showBurgerMenu(){this.update_is_clipped()},showPlayerMenu(){this.update_is_clipped()}},created(){this.connect(),this.$Progress.start(),this.$router.beforeEach((t,e,n)=>{t.path===e.path&&t.hash||(t.meta.progress&&this.$Progress.parseMeta(t.meta.progress),this.$Progress.start()),n()}),this.$router.afterEach((t,e)=>{this.$Progress.finish()})},methods:{connect(){tt.config().then(({data:t})=>{this.configurationStore.$state=t,this.uiStore.hideSingles=t.hide_singles,document.title=t.library_name,this.openWebsocket(),this.$Progress.finish()}).catch(()=>{this.notificationsStore.add({text:this.$t("server.connection-failed"),topic:"connection",type:"danger"})})},openWebsocket(){const t=this.create_websocket(),e=this;t.onopen=()=>{e.reconnect_attempts=0,t.send(JSON.stringify({notify:["update","database","player","options","outputs","volume","queue","spotify","lastfm","pairing"]})),e.update_outputs(),e.update_player_status(),e.update_library_stats(),e.update_settings(),e.update_queue(),e.update_spotify(),e.update_lastfm(),e.update_pairing()};let n=!1;const s=()=>{n||(e.update_outputs(),e.update_player_status(),e.update_library_stats(),e.update_settings(),e.update_queue(),e.update_spotify(),e.update_lastfm(),e.update_pairing(),n=!0,setTimeout(()=>{n=!1},500))};window.addEventListener("focus",s),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&s()}),t.onmessage=i=>{const r=JSON.parse(i.data);(r.notify.includes("update")||r.notify.includes("database"))&&e.update_library_stats(),(r.notify.includes("player")||r.notify.includes("options")||r.notify.includes("volume"))&&e.update_player_status(),(r.notify.includes("outputs")||r.notify.includes("volume"))&&e.update_outputs(),r.notify.includes("queue")&&e.update_queue(),r.notify.includes("spotify")&&e.update_spotify(),r.notify.includes("lastfm")&&e.update_lastfm(),r.notify.includes("pairing")&&e.update_pairing()}},create_websocket(){const t=window.location.protocol.replace("http","ws"),e=window.location.hostname,n=this.configurationStore.websocket_port||`${window.location.port}/ws`,s=`${t}${e}:${n}`;return new BI(s,"notify",{maxReconnectInterval:2e3,reconnectInterval:1e3})},update_is_clipped(){this.showBurgerMenu||this.showPlayerMenu?document.querySelector("html").classList.add("is-clipped"):document.querySelector("html").classList.remove("is-clipped")},update_lastfm(){tt.lastfm().then(({data:t})=>{this.servicesStore.lastfm=t})},update_library_stats(){tt.library_stats().then(({data:t})=>{this.libraryStore.$state=t}),tt.library_count("scan_kind is rss").then(({data:t})=>{this.libraryStore.rss=t})},update_lyrics(){const t=this.queueStore.current;t!=null&&t.track_id?tt.library_track(t.track_id).then(({data:e})=>{this.lyricsStore.lyrics=e.lyrics}):this.lyricsStore.$reset()},update_outputs(){tt.outputs().then(({data:t})=>{this.outputsStore.outputs=t.outputs})},update_pairing(){tt.pairing().then(({data:t})=>{this.remotesStore.$state=t,this.pairing_active=t.active})},update_player_status(){tt.player_status().then(({data:t})=>{this.playerStore.$state=t,this.update_lyrics()})},update_queue(){tt.queue().then(({data:t})=>{this.queueStore.$state=t,this.update_lyrics()})},update_settings(){tt.settings().then(({data:t})=>{this.settingsStore.$state=t})},update_spotify(){tt.spotify().then(({data:t})=>{this.servicesStore.spotify=t,this.token_timer_id>0&&(window.clearTimeout(this.token_timer_id),this.token_timer_id=0),t.webapi_token_expires_in>0&&t.webapi_token&&(this.token_timer_id=window.setTimeout(this.update_spotify,1e3*t.webapi_token_expires_in))})}},template:""};function qI(t,e,n,s,i,r){const o=C("vue-progress-bar"),a=C("navbar-top"),l=C("router-view"),c=C("modal-dialog-remote-pairing"),u=C("modal-dialog-update"),d=C("notification-list"),f=C("navbar-bottom");return O(),L(ht,null,[E(o,{class:"has-background-primary"}),E(a),E(l,null,{default:M(({Component:h})=>[(O(),_t(Su(h)))]),_:1}),E(c,{show:i.pairing_active,onClose:e[0]||(e[0]=h=>i.pairing_active=!1)},null,8,["show"]),E(u,{show:r.showUpdateDialog,onClose:e[1]||(e[1]=h=>r.showUpdateDialog=!1)},null,8,["show"]),xn(E(d,null,null,512),[[Ac,!r.showBurgerMenu]]),E(f),xn(S("div",{class:"overlay-fullscreen",onClick:e[2]||(e[2]=(...h)=>s.uiStore.hideMenus&&s.uiStore.hideMenus(...h))},null,512),[[Ac,r.showBurgerMenu||r.showPlayerMenu]])],64)}const GI=it(WI,[["render",qI]]),W0=function(){return document.ontouchstart!==null?"click":"touchstart"},Lc="__vue_click_away__",q0=function(t,e,n){G0(t);let s=n.context,i=e.value,r=!1;setTimeout(function(){r=!0},0),t[Lc]=function(o){if((!t||!t.contains(o.target))&&i&&r&&typeof i=="function")return i.call(s,o)},document.addEventListener(W0(),t[Lc],!1)},G0=function(t){document.removeEventListener(W0(),t[Lc],!1),delete t[Lc]},zI=function(t,e,n){e.value!==e.oldValue&&q0(t,e,n)},KI={install:function(t){t.directive("click-away",XI)}},XI={mounted:q0,updated:zI,unmounted:G0};var Rs=(t=>(t.LOADING="loading",t.LOADED="loaded",t.ERROR="error",t))(Rs||{});const YI=typeof window<"u"&&window!==null,ZI=eN(),JI=Object.prototype.propertyIsEnumerable,Vg=Object.getOwnPropertySymbols;function fa(t){return typeof t=="function"||toString.call(t)==="[object Object]"}function QI(t){return typeof t=="object"?t===null:typeof t!="function"}function tN(t){return t!=="__proto__"&&t!=="constructor"&&t!=="prototype"}function eN(){return YI&&"IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype?("isIntersecting"in window.IntersectionObserverEntry.prototype||Object.defineProperty(window.IntersectionObserverEntry.prototype,"isIntersecting",{get(){return this.intersectionRatio>0}}),!0):!1}function nN(t,...e){if(!fa(t))throw new TypeError("expected the first argument to be an object");if(e.length===0||typeof Symbol!="function"||typeof Vg!="function")return t;for(const n of e){const s=Vg(n);for(const i of s)JI.call(n,i)&&(t[i]=n[i])}return t}function z0(t,...e){let n=0;for(QI(t)&&(t=e[n++]),t||(t={});n{this._logger("Not support IntersectionObserver!")})),this._initIntersectionObserver(e,s,r,o,a)}update(e,n){var a;if(!e)return;(a=this._realObserver(e))==null||a.unobserve(e);const{src:s,error:i,lifecycle:r,delay:o}=this._valueFormatter(typeof n=="string"?n:n.value);this._initIntersectionObserver(e,s,i,r,o)}unmount(e){var n;e&&((n=this._realObserver(e))==null||n.unobserve(e),this._images.delete(e))}loadImages(e,n,s,i){this._setImageSrc(e,n,s,i)}_setImageSrc(e,n,s,i){e.tagName.toLowerCase()==="img"?(n&&e.getAttribute("src")!==n&&e.setAttribute("src",n),this._listenImageStatus(e,()=>{this._lifecycle(Rs.LOADED,i,e)},()=>{var r;e.onload=null,this._lifecycle(Rs.ERROR,i,e),(r=this._realObserver(e))==null||r.disconnect(),s&&e.getAttribute("src")!==s&&e.setAttribute("src",s),this._log(()=>{this._logger(`Image failed to load!And failed src was: ${n} `)})})):e.style.backgroundImage=`url('${n}')`}_initIntersectionObserver(e,n,s,i,r){var a;const o=this.options.observerOptions;this._images.set(e,new IntersectionObserver(l=>{Array.prototype.forEach.call(l,c=>{r&&r>0?this._delayedIntersectionCallback(e,c,r,n,s,i):this._intersectionCallback(e,c,n,s,i)})},o)),(a=this._realObserver(e))==null||a.observe(e)}_intersectionCallback(e,n,s,i,r){var o;n.isIntersecting&&((o=this._realObserver(e))==null||o.unobserve(n.target),this._setImageSrc(e,s,i,r))}_delayedIntersectionCallback(e,n,s,i,r,o){if(n.isIntersecting){if(n.target.hasAttribute(Vr))return;const a=setTimeout(()=>{this._intersectionCallback(e,n,i,r,o),n.target.removeAttribute(Vr)},s);n.target.setAttribute(Vr,String(a))}else n.target.hasAttribute(Vr)&&(clearTimeout(Number(n.target.getAttribute(Vr))),n.target.removeAttribute(Vr))}_listenImageStatus(e,n,s){e.onload=n,e.onerror=s}_valueFormatter(e){let n=e,s=this.options.loading,i=this.options.error,r=this.options.lifecycle,o=this.options.delay;return fa(e)&&(n=e.src,s=e.loading||this.options.loading,i=e.error||this.options.error,r=e.lifecycle||this.options.lifecycle,o=e.delay||this.options.delay),{src:n,loading:s,error:i,lifecycle:r,delay:o}}_log(e){this.options.log&&e()}_lifecycle(e,n,s){switch(e){case Rs.LOADING:s==null||s.setAttribute("lazy",Rs.LOADING),n!=null&&n.loading&&n.loading(s);break;case Rs.LOADED:s==null||s.setAttribute("lazy",Rs.LOADED),n!=null&&n.loaded&&n.loaded(s);break;case Rs.ERROR:s==null||s.setAttribute("lazy",Rs.ERROR),n!=null&&n.error&&n.error(s);break}}_realObserver(e){return this._images.get(e)}_logger(e,...n){let s=console.error;switch(this.options.logLevel){case"error":s=console.error;break;case"warn":s=console.warn;break;case"info":s=console.info;break;case"debug":s=console.debug;break}s(e,n)}}const oN={install(t,e){const n=new rN(e);t.config.globalProperties.$Lazyload=n,t.provide("Lazyload",n),t.directive("lazy",{mounted:n.mount.bind(n),updated:n.update.bind(n),unmounted:n.unmount.bind(n)})}};var $d={exports:{}},Fd={exports:{}},Vd={};/** + */const eO="11.1.2";function nO(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(tp().__INTLIFY_PROD_DEVTOOLS__=!1)}const us={UNEXPECTED_RETURN_TYPE:_A,INVALID_ARGUMENT:25,MUST_BE_CALL_SETUP_TOP:26,NOT_INSTALLED:27,REQUIRED_VALUE:28,INVALID_VALUE:29,NOT_INSTALLED_WITH_PROVIDE:31,UNEXPECTED_ERROR:32};function ks(t,...e){return Du(t,null,void 0)}const Xf=Ji("__translateVNode"),Yf=Ji("__datetimeParts"),Zf=Ji("__numberParts"),sO=Ji("__setPluralRules"),iO=Ji("__injectWithOption"),Jf=Ji("__dispose");function Ma(t){if(!fe(t))return t;for(const e in t)if(Ss(t,e))if(!e.includes("."))fe(t[e])&&Ma(t[e]);else{const n=e.split("."),s=n.length-1;let i=t,r=!1;for(let o=0;o{if("locale"in a&&"resource"in a){const{locale:l,resource:c}=a;l?(o[l]=o[l]||Se(),Ql(c,o[l])):Ql(c,o)}else St(a)&&Ql(JSON.parse(a),o)}),i==null&&r)for(const a in o)Ss(o,a)&&Ma(o[a]);return o}function V0(t){return t.type}function rO(t,e,n){let s=fe(e.messages)?e.messages:Se();"__i18nGlobal"in n&&(s=F0(t.locale.value,{messages:s,__i18n:n.__i18nGlobal}));const i=Object.keys(s);i.length&&i.forEach(r=>{t.mergeLocaleMessage(r,s[r])});{if(fe(e.datetimeFormats)){const r=Object.keys(e.datetimeFormats);r.length&&r.forEach(o=>{t.mergeDateTimeFormat(o,e.datetimeFormats[o])})}if(fe(e.numberFormats)){const r=Object.keys(e.numberFormats);r.length&&r.forEach(o=>{t.mergeNumberFormat(o,e.numberFormats[o])})}}}function Ag(t){return E(ri,null,t,0)}const Og="__INTLIFY_META__",xg=()=>[],oO=()=>!1;let Ig=0;function Ng(t){return(e,n,s,i)=>t(n,s,In()||void 0,i)}const aO=()=>{const t=In();let e=null;return t&&(e=V0(t)[Og])?{[Og]:e}:null};function H0(t={}){const{__root:e,__injectWithOption:n}=t,s=e===void 0,i=t.flatJson,r=Dc?rs:mu;let o=De(t.inheritLocale)?t.inheritLocale:!0;const a=r(e&&o?e.locale.value:St(t.locale)?t.locale:Mc),l=r(e&&o?e.fallbackLocale.value:St(t.fallbackLocale)||Ze(t.fallbackLocale)||re(t.fallbackLocale)||t.fallbackLocale===!1?t.fallbackLocale:a.value),c=r(F0(a.value,t)),u=r(re(t.datetimeFormats)?t.datetimeFormats:{[a.value]:{}}),d=r(re(t.numberFormats)?t.numberFormats:{[a.value]:{}});let f=e?e.missingWarn:De(t.missingWarn)||Rc(t.missingWarn)?t.missingWarn:!0,h=e?e.fallbackWarn:De(t.fallbackWarn)||Rc(t.fallbackWarn)?t.fallbackWarn:!0,p=e?e.fallbackRoot:De(t.fallbackRoot)?t.fallbackRoot:!0,m=!!t.fallbackFormat,b=Pe(t.missing)?t.missing:null,y=Pe(t.missing)?Ng(t.missing):null,_=Pe(t.postTranslation)?t.postTranslation:null,g=e?e.warnHtmlMessage:De(t.warnHtmlMessage)?t.warnHtmlMessage:!0,v=!!t.escapeParameter;const w=e?e.modifiers:re(t.modifiers)?t.modifiers:{};let k=t.pluralRules||e&&e.pluralRules,N;N=(()=>{s&&bg(null);const $={version:eO,locale:a.value,fallbackLocale:l.value,messages:c.value,modifiers:w,pluralRules:k,missing:y===null?void 0:y,missingWarn:f,fallbackWarn:h,fallbackFormat:m,unresolving:!0,postTranslation:_===null?void 0:_,warnHtmlMessage:g,escapeParameter:v,messageResolver:t.messageResolver,messageCompiler:t.messageCompiler,__meta:{framework:"vue"}};$.datetimeFormats=u.value,$.numberFormats=d.value,$.__datetimeFormatters=re(N)?N.__datetimeFormatters:void 0,$.__numberFormatters=re(N)?N.__numberFormatters:void 0;const z=HA($);return s&&bg(z),z})(),Bo(N,a.value,l.value);function T(){return[a.value,l.value,c.value,u.value,d.value]}const D=tn({get:()=>a.value,set:$=>{N.locale=$,a.value=$}}),B=tn({get:()=>l.value,set:$=>{N.fallbackLocale=$,l.value=$,Bo(N,a.value,$)}}),F=tn(()=>c.value),U=tn(()=>u.value),Z=tn(()=>d.value);function ot(){return Pe(_)?_:null}function G($){_=$,N.postTranslation=$}function et(){return b}function at($){$!==null&&(y=Ng($)),b=$,N.missing=y}const Ct=($,z,pt,Et,Gt,H)=>{T();let W;try{__INTLIFY_PROD_DEVTOOLS__,s||(N.fallbackContext=e?VA():void 0),W=$(N)}finally{__INTLIFY_PROD_DEVTOOLS__,s||(N.fallbackContext=void 0)}if(pt!=="translate exists"&&ze(W)&&W===Ru||pt==="translate exists"&&!W){const[K,rt]=z();return e&&p?Et(e):Gt(K)}else{if(H(W))return W;throw ks(us.UNEXPECTED_RETURN_TYPE)}};function Kt(...$){return Ct(z=>Reflect.apply(Tg,null,[z,...$]),()=>Kf(...$),"translate",z=>Reflect.apply(z.t,z,[...$]),z=>z,z=>St(z))}function Ht(...$){const[z,pt,Et]=$;if(Et&&!fe(Et))throw ks(us.INVALID_ARGUMENT);return Kt(z,pt,nn({resolvedMessage:!0},Et||{}))}function Wt(...$){return Ct(z=>Reflect.apply(_g,null,[z,...$]),()=>Gf(...$),"datetime format",z=>Reflect.apply(z.d,z,[...$]),()=>gg,z=>St(z))}function pe(...$){return Ct(z=>Reflect.apply(Eg,null,[z,...$]),()=>zf(...$),"number format",z=>Reflect.apply(z.n,z,[...$]),()=>gg,z=>St(z))}function be($){return $.map(z=>St(z)||ze(z)||De(z)?Ag(String(z)):z)}const qt={normalize:be,interpolate:$=>$,type:"vnode"};function Y(...$){return Ct(z=>{let pt;const Et=z;try{Et.processor=qt,pt=Reflect.apply(Tg,null,[Et,...$])}finally{Et.processor=null}return pt},()=>Kf(...$),"translate",z=>z[Xf](...$),z=>[Ag(z)],z=>Ze(z))}function dt(...$){return Ct(z=>Reflect.apply(Eg,null,[z,...$]),()=>zf(...$),"number format",z=>z[Zf](...$),xg,z=>St(z)||Ze(z))}function ct(...$){return Ct(z=>Reflect.apply(_g,null,[z,...$]),()=>Gf(...$),"datetime format",z=>z[Yf](...$),xg,z=>St(z)||Ze(z))}function vt($){k=$,N.pluralRules=k}function Ut($,z){return Ct(()=>{if(!$)return!1;const pt=St(z)?z:a.value,Et=P(pt),Gt=N.messageResolver(Et,$);return yo(Gt)||ns(Gt)||St(Gt)},()=>[$],"translate exists",pt=>Reflect.apply(pt.te,pt,[$,z]),oO,pt=>De(pt))}function Xt($){let z=null;const pt=O0(N,l.value,a.value);for(let Et=0;Et{o&&(a.value=$,N.locale=$,Bo(N,a.value,l.value))}),Kn(e.fallbackLocale,$=>{o&&(l.value=$,N.fallbackLocale=$,Bo(N,a.value,l.value))}));const lt={id:Ig,locale:D,fallbackLocale:B,get inheritLocale(){return o},set inheritLocale($){o=$,$&&e&&(a.value=e.locale.value,l.value=e.fallbackLocale.value,Bo(N,a.value,l.value))},get availableLocales(){return Object.keys(c.value).sort()},messages:F,get modifiers(){return w},get pluralRules(){return k||{}},get isGlobal(){return s},get missingWarn(){return f},set missingWarn($){f=$,N.missingWarn=f},get fallbackWarn(){return h},set fallbackWarn($){h=$,N.fallbackWarn=h},get fallbackRoot(){return p},set fallbackRoot($){p=$},get fallbackFormat(){return m},set fallbackFormat($){m=$,N.fallbackFormat=m},get warnHtmlMessage(){return g},set warnHtmlMessage($){g=$,N.warnHtmlMessage=$},get escapeParameter(){return v},set escapeParameter($){v=$,N.escapeParameter=$},t:Kt,getLocaleMessage:P,setLocaleMessage:q,mergeLocaleMessage:st,getPostTranslationHandler:ot,setPostTranslationHandler:G,getMissingHandler:et,setMissingHandler:at,[sO]:vt};return lt.datetimeFormats=U,lt.numberFormats=Z,lt.rt=Ht,lt.te=Ut,lt.tm=x,lt.d=Wt,lt.n=pe,lt.getDateTimeFormat=Q,lt.setDateTimeFormat=A,lt.mergeDateTimeFormat=I,lt.getNumberFormat=V,lt.setNumberFormat=X,lt.mergeNumberFormat=nt,lt[iO]=n,lt[Xf]=Y,lt[Yf]=ct,lt[Zf]=dt,lt}const ap={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:t=>t==="parent"||t==="global",default:"parent"},i18n:{type:Object}};function lO({slots:t},e){return e.length===1&&e[0]==="default"?(t.default?t.default():[]).reduce((s,i)=>[...s,...i.type===ht?i.children:[i]],[]):e.reduce((n,s)=>{const i=t[s];return i&&(n[s]=i()),n},Se())}function U0(){return ht}const cO=pi({name:"i18n-t",props:nn({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:t=>ze(t)||!isNaN(t)}},ap),setup(t,e){const{slots:n,attrs:s}=e,i=t.i18n||lp({useScope:t.scope,__useComponent:!0});return()=>{const r=Object.keys(n).filter(d=>d!=="_"),o=Se();t.locale&&(o.locale=t.locale),t.plural!==void 0&&(o.plural=St(t.plural)?+t.plural:t.plural);const a=lO(e,r),l=i[Xf](t.keypath,a,o),c=nn(Se(),s),u=St(t.tag)||fe(t.tag)?t.tag:U0();return Fs(u,c,l)}}}),Pg=cO;function uO(t){return Ze(t)&&!St(t[0])}function j0(t,e,n,s){const{slots:i,attrs:r}=e;return()=>{const o={part:!0};let a=Se();t.locale&&(o.locale=t.locale),St(t.format)?o.key=t.format:fe(t.format)&&(St(t.format.key)&&(o.key=t.format.key),a=Object.keys(t.format).reduce((f,h)=>n.includes(h)?nn(Se(),f,{[h]:t.format[h]}):f,Se()));const l=s(t.value,o,a);let c=[o.key];Ze(l)?c=l.map((f,h)=>{const p=i[f.type],m=p?p({[f.type]:f.value,index:h,parts:l}):[f.value];return uO(m)&&(m[0].key=`${f.type}-${h}`),m}):St(l)&&(c=[l]);const u=nn(Se(),r),d=St(t.tag)||fe(t.tag)?t.tag:U0();return Fs(d,u,c)}}const dO=pi({name:"i18n-n",props:nn({value:{type:Number,required:!0},format:{type:[String,Object]}},ap),setup(t,e){const n=t.i18n||lp({useScope:t.scope,__useComponent:!0});return j0(t,e,M0,(...s)=>n[Zf](...s))}}),Dg=dO;function fO(t,e){const n=t;if(t.mode==="composition")return n.__getInstance(e)||t.global;{const s=n.__getInstance(e);return s!=null?s.__composer:t.global.__composer}}function hO(t){const e=o=>{const{instance:a,value:l}=o;if(!a||!a.$)throw ks(us.UNEXPECTED_ERROR);const c=fO(t,a.$),u=Rg(l);return[Reflect.apply(c.t,c,[...Mg(u)]),c]};return{created:(o,a)=>{const[l,c]=e(a);Dc&&t.global===c&&(o.__i18nWatcher=Kn(c.locale,()=>{a.instance&&a.instance.$forceUpdate()})),o.__composer=c,o.textContent=l},unmounted:o=>{Dc&&o.__i18nWatcher&&(o.__i18nWatcher(),o.__i18nWatcher=void 0,delete o.__i18nWatcher),o.__composer&&(o.__composer=void 0,delete o.__composer)},beforeUpdate:(o,{value:a})=>{if(o.__composer){const l=o.__composer,c=Rg(a);o.textContent=Reflect.apply(l.t,l,[...Mg(c)])}},getSSRProps:o=>{const[a]=e(o);return{textContent:a}}}}function Rg(t){if(St(t))return{path:t};if(re(t)){if(!("path"in t))throw ks(us.REQUIRED_VALUE,"path");return t}else throw ks(us.INVALID_VALUE)}function Mg(t){const{path:e,locale:n,args:s,choice:i,plural:r}=t,o={},a=s||{};return St(n)&&(o.locale=n),ze(i)&&(o.plural=i),ze(r)&&(o.plural=r),[e,a,o]}function pO(t,e,...n){const s=re(n[0])?n[0]:{};(De(s.globalInstall)?s.globalInstall:!0)&&([Pg.name,"I18nT"].forEach(r=>t.component(r,Pg)),[Dg.name,"I18nN"].forEach(r=>t.component(r,Dg)),[$g.name,"I18nD"].forEach(r=>t.component(r,$g))),t.directive("t",hO(e))}const mO=Ji("global-vue-i18n");function gO(t={}){const e=De(t.globalInjection)?t.globalInjection:!0,n=new Map,[s,i]=yO(t),r=Ji("");function o(u){return n.get(u)||null}function a(u,d){n.set(u,d)}function l(u){n.delete(u)}const c={get mode(){return"composition"},async install(u,...d){if(u.__VUE_I18N_SYMBOL__=r,u.provide(u.__VUE_I18N_SYMBOL__,c),re(d[0])){const p=d[0];c.__composerExtend=p.__composerExtend,c.__vueI18nExtend=p.__vueI18nExtend}let f=null;e&&(f=CO(u,c.global)),pO(u,c,...d);const h=u.unmount;u.unmount=()=>{f&&f(),c.dispose(),h()}},get global(){return i},dispose(){s.stop()},__instances:n,__getInstance:o,__setInstance:a,__deleteInstance:l};return c}function lp(t={}){const e=In();if(e==null)throw ks(us.MUST_BE_CALL_SETUP_TOP);if(!e.isCE&&e.appContext.app!=null&&!e.appContext.app.__VUE_I18N_SYMBOL__)throw ks(us.NOT_INSTALLED);const n=bO(e),s=_O(n),i=V0(e),r=vO(t,i);if(r==="global")return rO(s,t,i),s;if(r==="parent"){let l=SO(n,e,t.__useComponent);return l==null&&(l=s),l}const o=n;let a=o.__getInstance(e);if(a==null){const l=nn({},t);"__i18n"in i&&(l.__i18n=i.__i18n),s&&(l.__root=s),a=H0(l),o.__composerExtend&&(a[Jf]=o.__composerExtend(a)),wO(o,e,a),o.__setInstance(e,a)}return a}function yO(t,e){const n=lu(),s=n.run(()=>H0(t));if(s==null)throw ks(us.UNEXPECTED_ERROR);return[n,s]}function bO(t){const e=os(t.isCE?mO:t.appContext.app.__VUE_I18N_SYMBOL__);if(!e)throw ks(t.isCE?us.NOT_INSTALLED_WITH_PROVIDE:us.UNEXPECTED_ERROR);return e}function vO(t,e){return Pu(t)?"__i18n"in e?"local":"global":t.useScope?t.useScope:"local"}function _O(t){return t.mode==="composition"?t.global:t.global.__composer}function SO(t,e,n=!1){let s=null;const i=e.root;let r=EO(e,n);for(;r!=null;){const o=t;if(t.mode==="composition"&&(s=o.__getInstance(r)),s!=null||i===r)break;r=r.parent}return s}function EO(t,e=!1){return t==null?null:e&&t.vnode.ctx||t.parent}function wO(t,e,n){Io(()=>{},e),Ya(()=>{const s=n;t.__deleteInstance(e);const i=s[Jf];i&&(i(),delete s[Jf])},e)}const kO=["locale","fallbackLocale","availableLocales"],Lg=["t","rt","d","n","tm","te"];function CO(t,e){const n=Object.create(null);return kO.forEach(i=>{const r=Object.getOwnPropertyDescriptor(e,i);if(!r)throw ks(us.UNEXPECTED_ERROR);const o=xe(r.value)?{get(){return r.value.value},set(a){r.value.value=a}}:{get(){return r.get&&r.get()}};Object.defineProperty(n,i,o)}),t.config.globalProperties.$i18n=n,Lg.forEach(i=>{const r=Object.getOwnPropertyDescriptor(e,i);if(!r||!r.value)throw ks(us.UNEXPECTED_ERROR);Object.defineProperty(t.config.globalProperties,`$${i}`,r)}),()=>{delete t.config.globalProperties.$i18n,Lg.forEach(i=>{delete t.config.globalProperties[`$${i}`]})}}const TO=pi({name:"i18n-d",props:nn({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},ap),setup(t,e){const n=t.i18n||lp({useScope:t.scope,__useComponent:!0});return j0(t,e,R0,(...s)=>n[Yf](...s))}}),$g=TO;nO();RA(mA);MA(NA);LA(O0);if(__INTLIFY_PROD_DEVTOOLS__){const t=tp();t.__INTLIFY__=!0,gA(t.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const Ld=t=>t&&typeof t=="object"&&!Array.isArray(t),Qf=(t,...e)=>{if(!e.length)return t;const n=e.shift();if(Ld(t)&&Ld(n))for(const s in n)Ld(n[s])?(t[s]||Object.assign(t,{[s]:{}}),Qf(t[s],n[s])):Object.assign(t,{[s]:n[s]});return Qf(t,...e)},AO=Qf({},{de:{actions:{add:{t:0,b:{t:2,i:[{t:3}],s:"Hinzufügen"}},"add-next":{t:0,b:{t:2,i:[{t:3}],s:"Als nächstes hinzufügen"}},"add-stream":{t:0,b:{t:2,i:[{t:3}],s:"Stream hinzufügen"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Abbrechen"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Alle entfernen"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Bearbeiten"}},login:{t:0,b:{t:2,i:[{t:3}],s:"Einloggen"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"Ausloggen"}},"hide-previous":{t:0,b:{t:2,i:[{t:3}],s:"Vorherige verbergen"}},"mark-all-played":{t:0,b:{t:2,i:[{t:3}],s:"Alle abgespielten markieren"}},"mark-as-new":{t:0,b:{t:2,i:[{t:3}],s:"Markiere als neu"}},"mark-as-played":{t:0,b:{t:2,i:[{t:3}],s:"Markiere als gespielt"}},pair:{t:0,b:{t:2,i:[{t:3}],s:"Remote paaren"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Spielen"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"Entfernen"}},"remove-podcast":{t:0,b:{t:2,i:[{t:3}],s:"Entferne podcast"}},rescan:{t:0,b:{t:2,i:[{t:3}],s:"Neu einlesen"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Speichern"}},send:{t:0,b:{t:2,i:[{t:3}],s:"Senden"}},"show-more":{t:0,b:{t:2,i:[{t:3}],s:"Zeige mehr"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Zufallswiedergabe"}}},count:{albums:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Alben"}]}]}},artists:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" Künstler"}]}},audiobooks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Hörbuch"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Hörbuch"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Hörbücher"}]}]}},authors:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Autor"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Autor"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Autoren"}]}]}},channels:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" canal"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" canaux"}]}]}},composers:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Komponist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Komponist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Komponisten"}]}]}},genres:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Genres"}]}]}},playlists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Playlist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Playlisten"}]}]}},podcasts:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Podcasts"}]}]}},stations:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Stationen"}]}]}},tracks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Track"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Track"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Tracks"}]}]}}},data:{kind:{file:{t:0,b:{t:2,i:[{t:3}],s:"Datei"}},url:{t:0,b:{t:2,i:[{t:3}],s:"URL"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},pipe:{t:0,b:{t:2,i:[{t:3}],s:"Stream"}}}},dialog:{add:{rss:{help:{t:0,b:{t:2,i:[{t:3}],s:"Hinzufügen eines Podcasts führt zur Anlage einer RSS-Playlist, so kann OwnTone das Podcast-Abo verwalten."}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-rss"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Verarbeite…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcast hinzufügen"}}},stream:{loading:{t:0,b:{t:2,i:[{t:3}],s:"Lade…"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-stream"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Verarbeite…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Stream hinzufügen"}}}},playlist:{save:{"playlist-name":{t:0,b:{t:2,i:[{t:3}],s:"Playlistname"}},saving:{t:0,b:{t:2,i:[{t:3}],s:"Speichere…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Warteschlange als Playlist speichern"}}}},"queue-item":{"quality-value":{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"channels"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}}},"remote-pairing":{"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Pairing-Code"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Remote-Paarungs-Anfrage"}}},track:{"quality-value":{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"channels"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}},"rating-value":{t:0,b:{t:2,i:[{t:4,k:"rating"},{t:3,v:" / 10"}]}}},update:{all:{t:0,b:{t:2,i:[{t:3}],s:"Alles neu einlesen"}},feeds:{t:0,b:{t:2,i:[{t:3}],s:"Nur RSS-Feeds neu einlesen"}},info:{t:0,b:{t:2,i:[{t:3}],s:"Suche nach neuen, gelöschten und veränderten Dateien"}},local:{t:0,b:{t:2,i:[{t:3}],s:"Nur lokale Bibliothek neu einlesen"}},progress:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothek wird neu eingelesen…"}},"rescan-metadata":{t:0,b:{t:2,i:[{t:3}],s:"Metadata von unveränderten Dateien neu einlesen"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Nur Spotify neu einlesen"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothek neu einlesen"}}}},language:{de:{t:0,b:{t:2,i:[{t:3}],s:"Deutsch"}},en:{t:0,b:{t:2,i:[{t:3}],s:"Englisch (English)"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"Französisch (Français)"}},"zh-CN":{t:0,b:{t:2,i:[{t:3}],s:"Vereinfachtes Chinesisch (簡體中文)"}},"zh-TW":{t:0,b:{t:2,i:[{t:3}],s:"Traditionelles Chinesisch (繁體中文)"}}},list:{albums:{info:{t:0,b:{t:2,i:[{t:3,v:"Diesen Podcast dauerhaft aus der Bibliothek löschen?"},{t:4,k:"separator"},{t:3,v:"(Damit wird auch die RSS-Playliste "},{t:4,k:"name"},{t:3,v:" gelöscht)"}]}}},spotify:{"not-playable-track":{t:0,b:{t:2,i:[{t:3}],s:"Track kann nicht gespielt werden"}},"restriction-reason":{t:0,b:{t:2,i:[{t:3,v:", Beschränkungsgrund: "},{t:4,k:"reason"}]}}}},media:{kind:{album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},audiobook:{t:0,b:{t:2,i:[{t:3}],s:"Hörbuch"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Musik"}},podcast:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}}}},navigation:{about:{t:0,b:{t:2,i:[{t:3}],s:"Über"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Hörbücher"}},"now-playing":{t:0,b:{t:2,i:[{t:3,v:" - "},{t:4,k:"album"}]}},"stream-error":{t:0,b:{t:2,i:[{t:3}],s:"HTTP-stream-Fehler: Stream kann nicht geladen werden oder wurde wg. Netzwerkfehler gestopt"}},stream:{t:0,b:{t:2,i:[{t:3}],s:"HTTP-stream"}},volume:{t:0,b:{t:2,i:[{t:3}],s:"Lautstärke"}},files:{t:0,b:{t:2,i:[{t:3}],s:"Dateien"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Musik"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlisten"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},search:{t:0,b:{t:2,i:[{t:3}],s:"Suche"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Einstellungen"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},"update-library":{t:0,b:{t:2,i:[{t:3}],s:"Bibliothek neu einlesen"}}},options:{filter:{"hide-singles":{t:0,b:{t:2,i:[{t:3}],s:"Verbirgt Singles"}},"hide-singles-help":{t:0,b:{t:2,i:[{t:3}],s:"Wenn aktiv, blendet Singles und alles, was mit ihnen verbunden ist, aus."}},"hide-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Verbirgt Spotify-Inhalt"}},"hide-spotify-help":{t:0,b:{t:2,i:[{t:3}],s:"Wenn aktiv, blendet Inhalte aus, die von Spotify stammen."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Filtern"}}},sort:{"artist-name":{t:0,b:{t:2,i:[{t:3}],s:"Künstler › Name"}},"artist-date":{t:0,b:{t:2,i:[{t:3}],s:"Künstler › Erscheinungsdatum"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Namen"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Bewertung"}},"recently-added":{t:0,b:{t:2,i:[{t:3}],s:"Kürzlich hinzugefügt"}},"recently-released":{t:0,b:{t:2,i:[{t:3}],s:"Kürzlich erschienen"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Erscheinungsdatum"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Sortieren"}}}},page:{about:{"built-with":{t:0,b:{t:2,i:[{t:3,v:"Oberfläche erstellt mit "},{t:4,k:"bulma"},{t:3,v:", "},{t:4,k:"mdi"},{t:3,v:", "},{t:4,k:"vuejs"},{t:3,v:", "},{t:4,k:"axios"},{t:3,v:" und "},{t:4,k:"others"},{t:3,v:"."}]}},"compiled-with":{t:0,b:{t:2,i:[{t:3,v:"Compiliert mit Unterstützung von "},{t:4,k:"options"},{t:3,v:"."}]}},library:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothek"}},more:{t:0,b:{t:2,i:[{t:3}],s:"mehr"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Neu einlesen"}},version:{t:0,b:{t:2,i:[{t:3,v:"Version "},{t:4,k:"version"}]}}},albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}}},audiobooks:{albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Hörbücher"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Autoren"}}},tabs:{authors:{t:0,b:{t:2,i:[{t:3}],s:"Autoren"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Hörbücher"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}}},composers:{title:{t:0,b:{t:2,i:[{t:3}],s:"Komponisten"}}},files:{title:{t:0,b:{t:2,i:[{t:3}],s:"Dateien"}}},genres:{title:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}},music:{"recently-added":{title:{t:0,b:{t:2,i:[{t:3}],s:"Kürzlich hinzugefügt"}}},"recently-played":{title:{t:0,b:{t:2,i:[{t:3}],s:"Kürzlich gespielt"}}},tabs:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Komponisten"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},history:{t:0,b:{t:2,i:[{t:3}],s:"Verlauf"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},"now-playing":{info:{t:0,b:{t:2,i:[{t:3}],s:"Tracks durch Auswählen aus der Bibliothek anfügen"}},live:{t:0,b:{t:2,i:[{t:3}],s:"Live"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Deine Playliste ist leer."}}},playlists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Playlisten"}}},podcast:{"remove-info":{t:0,b:{t:2,i:[{t:3,v:"Diesen Podcast dauerhaft aus der Bibliothek löschen?"},{t:4,k:"separator"},{t:3,v:"(Damit wird auch die RSS-Playliste "},{t:4,k:"name"},{t:3,v:" gelöscht)"}]}}},podcasts:{"new-episodes":{t:0,b:{t:2,i:[{t:3}],s:"Neue Episoden"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Neu einlesen"}}},queue:{title:{t:0,b:{t:2,i:[{t:3}],s:"Warteschlange"}}},radio:{title:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Hörbücher"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Komponisten"}},expression:{t:0,b:{t:2,i:[{t:3}],s:"Ausdrücken"}},help:{t:0,b:{t:2,i:[{t:3,v:"Tip: Du kannst mit einer Smart-Playlist-Abfrage-Sprache nach "},{t:4,k:"help"},{t:3,v:" suchen wenn Du dem Ausdruck ein "},{t:4,k:"query"},{t:3,v:" voranstellst."}]}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"Keine Ergebnisse gefunden"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Suche"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlisten"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige das Album"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Alben"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige den Künstler"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Künstler"}]}]}},"show-audiobooks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige das Buch"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Hörbücher"}]}]}},"show-composers":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige den Komponist"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Komponisten"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige die Playlist"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Playlisten"}]}]}},"show-podcasts":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige den Podcast"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Podcasts"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige den Track"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Tracks"}]}]}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Tracks"}},tabs:{library:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothek"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},settings:{artwork:{title:{t:0,b:{t:2,i:[{t:3}],s:"Artwork"}},coverartarchive:{t:0,b:{t:2,i:[{t:3}],s:"Cover Art Archive"}},discogs:{t:0,b:{t:2,i:[{t:3}],s:"Discogs"}},"explanation-1":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone verarbeitet PNG- und JPEG-Artwork, welches in einer eigenen Datei in der Bibliothek, in die Dateien eingebettet oder online von Radiostationen bereitgestellt werden kann."}},"explanation-2":{t:0,b:{t:2,i:[{t:3}],s:"Zusätzlich kann auf folgende Artwork-Anbieter zugegriffen werden:"}},"show-coverart":{t:0,b:{t:2,i:[{t:3}],s:"Zeige Cover-Artwork in der Albumliste"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"Bereitgestellte Artwork von Radiostationen ignorieren"}}},devices:{"no-active-pairing":{t:0,b:{t:2,i:[{t:3}],s:"Keine aktive Pairing-Anfrage"}},"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Pairing-Code"}},"pairing-request":{t:0,b:{t:2,i:[{t:3}],s:"Remote-Pairing-Anfrage von "}},pairing:{t:0,b:{t:2,i:[{t:3}],s:"Pairing Remote"}},"speaker-pairing-info":{t:0,b:{t:2,i:[{t:3}],s:"Wenn der Laufsprecher PIN-basiertes Pairing verlangt, aktiviere ihn hier und gib dann den hier PIN an, der am Lautsprecher angezeigt wird."}},"speaker-pairing":{t:0,b:{t:2,i:[{t:3}],s:"Lautsprecher-Pairing und Geräteverifikation"}},"verification-code":{t:0,b:{t:2,i:[{t:3}],s:"Verifikationscode"}},verify:{t:0,b:{t:2,i:[{t:3}],s:"Verifizieren"}}},general:{audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Hörbücher"}},files:{t:0,b:{t:2,i:[{t:3}],s:"Dateien"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Sprache"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Musik"}},"navigation-item-selection-info":{t:0,b:{t:2,i:[{t:3}],s:"Wenn mehr Dateien ausgewählt werden, als der Bildschirm anzeigen kann, verschwindet das Burger-Menü."}},"navigation-item-selection":{t:0,b:{t:2,i:[{t:3}],s:"Wähle hier die Einträge des oberen Navigationsmenüs "}},"navigation-items":{t:0,b:{t:2,i:[{t:3}],s:"Navigationsmenüs"}},"now-playing-page":{t:0,b:{t:2,i:[{t:3}],s:"Aktuell läuft-Seite"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlisten"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},"recently-added-page-info":{t:0,b:{t:2,i:[{t:3}],s:"Beschränkte die Zahl der Alben"}},"recently-added-page":{t:0,b:{t:2,i:[{t:3}],s:"Kürzlich hinzugefügt-Seite"}},search:{t:0,b:{t:2,i:[{t:3}],s:"Suche"}},"show-composer-genres-help":{t:0,b:{t:2,i:[{t:3,v:"Komma getrennte Liste der Genres, für die der Komponist angezeigt werden soll."},{t:5,i:0},{t:3,v:"Leer lassen, um den Komponisten immer anzuzeigen."},{t:5,i:0},{t:3,v:'Der Genre-Tag des aktuellen Tracks wird abgeglichen als Teil-String des Genre-Tags. Z.B. "classical, soundtrack" wird den Komponisten beim Genre-Tag "Contemporary Classical" anzeigen'}]}},"show-composer-genres":{t:0,b:{t:2,i:[{t:3}],s:"Zeige den Komponisten für die aufgelisteten Genres an"}},"show-composer-info":{t:0,b:{t:2,i:[{t:3}],s:"Wenn aktiviert, wird der Komponist angezeigt."}},"show-composer":{t:0,b:{t:2,i:[{t:3}],s:"Komponisten anzeigen"}},"show-path":{t:0,b:{t:2,i:[{t:3}],s:"Dateipfad anzeigen"}}},services:{lastfm:{"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Melde Dich mit Deinem Last.fm-Benutzernamen und Passwort an, um Scrobbeln zu aktivieren"}},info:{t:0,b:{t:2,i:[{t:3}],s:"OwnTone wird den Benutzernamen und das Passwort von last.fm nicht speichern, nur den Sitzungs-Schlüssel. Dieser läuft nicht ab."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Last.fm"}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone wurde ohne Unterstützung für Last.fm erstellt."}}},spotify:{"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone wurde entweder ohne Unterstützung für Spotify erstellt oder libspotify ist nicht installiert."}},"logged-as":{t:0,b:{t:2,i:[{t:3}],s:"Angemeldet als "}},requirements:{t:0,b:{t:2,i:[{t:3}],s:"Spotify Premium Abo erforderlich. Zugriff auf die Spotify Web-Api ermöglicht scannen der Spotify-Blibliothek. Erforderliche scopes sind: "}},user:{t:0,b:{t:2,i:[{t:3}],s:"Zugriff gestattet für "}},authorize:{t:0,b:{t:2,i:[{t:3}],s:"Authorisiere Web-API-Zugriff"}},"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Zugriff auf die Spotify Web-API gestatten"}},reauthorize:{t:0,b:{t:2,i:[{t:3}],s:"Bitte den Zugriff der Web-API durch setzen folgender Zugriffsrechte für OwnTone: "}},title:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},password:{t:0,b:{t:2,i:[{t:3}],s:"Passwort"}},username:{t:0,b:{t:2,i:[{t:3}],s:"Benutzername"}}},tabs:{artwork:{t:0,b:{t:2,i:[{t:3}],s:"Artwork"}},general:{t:0,b:{t:2,i:[{t:3}],s:"Allgemein"}},"online-services":{t:0,b:{t:2,i:[{t:3}],s:"Online-Services"}},"remotes-and-outputs":{t:0,b:{t:2,i:[{t:3}],s:"Fernbedienungen und Ausgänge"}}}},spotify:{music:{"featured-playlists":{t:0,b:{t:2,i:[{t:3}],s:"Ausgezeichnete Playlisten"}},"new-releases":{t:0,b:{t:2,i:[{t:3}],s:"Neuvorstellung"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"Keine Ergebnisse gefunden"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Suche"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlisten"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige das Album"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Alben"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige den Künstler"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Künstler"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige die Playlist"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Playlisten"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Zeige den Track"},{t:2,i:[{t:3,v:"Zeige alle "},{t:4,k:"count"},{t:3,v:" Tracks"}]}]}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Tracks"}}}}},playlist:{type:{folder:{t:0,b:{t:2,i:[{t:3}],s:"Ordner"}},plain:{t:0,b:{t:2,i:[{t:3}],s:"Einfache"}},smart:{t:0,b:{t:2,i:[{t:3}],s:"Intelligente"}}}},player:{button:{consume:{t:0,b:{t:2,i:[{t:3}],s:"Verlauf löschen"}},pause:{t:0,b:{t:2,i:[{t:3}],s:"Wiedergabe anhalten"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Wiedergeben"}},repeat:{t:0,b:{t:2,i:[{t:3}],s:"Alle Tracks wiederholen"}},"repeat-off":{t:0,b:{t:2,i:[{t:3}],s:"Tracks einmal lesen"}},"repeat-once":{t:0,b:{t:2,i:[{t:3}],s:"Aktuellen Track wiederholen"}},"seek-backward":{t:0,b:{t:2,i:[{t:3}],s:"Rückwärts im Track suchen"}},"seek-forward":{t:0,b:{t:2,i:[{t:3}],s:"Vorwärts im Track suchen"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Tracks zufällig wiedergeben"}},"shuffle-disabled":{t:0,b:{t:2,i:[{t:3}],s:"Tracks in Reihenfolge wiedergeben"}},"skip-backward":{t:0,b:{t:2,i:[{t:3}],s:"Zum vorherigen Track springen"}},"skip-forward":{t:0,b:{t:2,i:[{t:3}],s:"Zum nächsten Track springen"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Wiedergabe stoppen"}},"toggle-lyrics":{t:0,b:{t:2,i:[{t:3}],s:"Liedtexte anzeigen/verbergen"}}}},property:{"added-on":{t:0,b:{t:2,i:[{t:3}],s:"Hinzugefügt am"}},album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Alben"}},"album-artist":{t:0,b:{t:2,i:[{t:3}],s:"Album-Künstler"}},artist:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Künstler"}},comment:{t:0,b:{t:2,i:[{t:3}],s:"Kommentar"}},composer:{t:0,b:{t:2,i:[{t:3}],s:"Komponist"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Dauer"}},genre:{t:0,b:{t:2,i:[{t:3}],s:"Genre"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Name"}},owner:{t:0,b:{t:2,i:[{t:3}],s:"Besitzer"}},path:{t:0,b:{t:2,i:[{t:3}],s:"Pfad"}},playtime:{t:0,b:{t:2,i:[{t:3}],s:"Spielzeit"}},popularity:{t:0,b:{t:2,i:[{t:3}],s:"Popularität / Followers"}},position:{t:0,b:{t:2,i:[{t:3}],s:"Disc / Track"}},quality:{t:0,b:{t:2,i:[{t:3}],s:"Qualität"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Bewertung"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Erscheinungsdatum"}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Tracks"}},type:{t:0,b:{t:2,i:[{t:3}],s:"Art"}},updated:{t:0,b:{t:2,i:[{t:3}],s:"Neu eingelesen"}},uptime:{t:0,b:{t:2,i:[{t:3}],s:"Laufzeit"}},year:{t:0,b:{t:2,i:[{t:3}],s:"Jahr"}}},server:{"connection-failed":{t:0,b:{t:2,i:[{t:3}],s:"Fehler bei Verbindung zum OwnTone-Server"}},"request-failed":{t:0,b:{t:2,i:[{t:3,v:"Anfrage gescheitert (Status: "},{t:4,k:"status"},{t:3,v:" "},{t:4,k:"cause"},{t:3,v:" "},{t:4,k:"url"},{t:3,v:")"}]}},"queue-saved":{t:0,b:{t:2,i:[{t:3,v:"Warteschlange zu Playlist "},{t:4,k:"name"},{t:3,v:" gesichert"}]}},"appended-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" Track an die Abspielliste angehängt"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" Tracks an die Abspielliste angehängt"}]}]}},"empty-queue":{t:0,b:{t:2,i:[{t:3}],s:"Warteschlange ist leer"}}},"grouped-list":{today:{t:0,b:{t:2,i:[{t:3}],s:"Heute"}},"last-week":{t:0,b:{t:2,i:[{t:3}],s:"Letzte Woche"}},"last-month":{t:0,b:{t:2,i:[{t:3}],s:"Letzer Monat"}},undefined:{t:0,b:{t:2,i:[{t:3}],s:"Unbestimmt"}}}}},{en:{actions:{add:{t:0,b:{t:2,i:[{t:3}],s:"Add"}},"add-next":{t:0,b:{t:2,i:[{t:3}],s:"Add Next"}},"add-stream":{t:0,b:{t:2,i:[{t:3}],s:"Add stream"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Cancel"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Clear"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Edit"}},login:{t:0,b:{t:2,i:[{t:3}],s:"Login"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"Logout"}},"hide-previous":{t:0,b:{t:2,i:[{t:3}],s:"Hide previous"}},"mark-all-played":{t:0,b:{t:2,i:[{t:3}],s:"Mark All Played"}},"mark-as-new":{t:0,b:{t:2,i:[{t:3}],s:"Mark as new"}},"mark-as-played":{t:0,b:{t:2,i:[{t:3}],s:"Mark as played"}},pair:{t:0,b:{t:2,i:[{t:3}],s:"Pair Remote"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Play"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"Remove"}},"remove-podcast":{t:0,b:{t:2,i:[{t:3}],s:"Remove podcast"}},rescan:{t:0,b:{t:2,i:[{t:3}],s:"Rescan"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Save"}},send:{t:0,b:{t:2,i:[{t:3}],s:"Send"}},"show-more":{t:0,b:{t:2,i:[{t:3}],s:"Show more"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Shuffle"}}},count:{albums:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" albums"}]}]}},artists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" artist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" artist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" artists"}]}]}},audiobooks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" audiobook"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" audiobook"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" audiobooks"}]}]}},authors:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" author"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" author"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" authors"}]}]}},channels:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" channel"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" channels"}]}]}},composers:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" composer"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" composer"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" composers"}]}]}},genres:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" genres"}]}]}},playlists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" playlist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" playlist"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" playlists"}]}]}},podcasts:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" podcasts"}]}]}},stations:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" stations"}]}]}},tracks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" track"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" track"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" tracks"}]}]}}},data:{kind:{file:{t:0,b:{t:2,i:[{t:3}],s:"File"}},url:{t:0,b:{t:2,i:[{t:3}],s:"URL"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},pipe:{t:0,b:{t:2,i:[{t:3}],s:"Stream"}}}},dialog:{add:{rss:{help:{t:0,b:{t:2,i:[{t:3}],s:"Adding a podcast includes creating an RSS playlist, that will allow OwnTone to manage the podcast subscription."}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-rss"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Processing…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Add podcast"}}},stream:{loading:{t:0,b:{t:2,i:[{t:3}],s:"Loading…"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-stream"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Processing…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Add stream"}}}},playlist:{save:{"playlist-name":{t:0,b:{t:2,i:[{t:3}],s:"Playlist name"}},saving:{t:0,b:{t:2,i:[{t:3}],s:"Saving…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Save queue to playlist"}}}},"queue-item":{"quality-value":{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"count.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}}},"remote-pairing":{"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Pairing code"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Remote pairing request"}}},track:{"quality-value":{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:6,k:{t:7,v:"count.channels"}},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}},"rating-value":{t:0,b:{t:2,i:[{t:4,k:"rating"},{t:3,v:" / 10"}]}}},update:{all:{t:0,b:{t:2,i:[{t:3}],s:"Update everything"}},feeds:{t:0,b:{t:2,i:[{t:3}],s:"Only update RSS feeds"}},info:{t:0,b:{t:2,i:[{t:3}],s:"Scan for new, deleted and modified files"}},local:{t:0,b:{t:2,i:[{t:3}],s:"Only update local library"}},progress:{t:0,b:{t:2,i:[{t:3}],s:"Library update in progress…"}},"rescan-metadata":{t:0,b:{t:2,i:[{t:3}],s:"Rescan metadata of unmodified files"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Only update Spotify"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Update library"}}}},language:{de:{t:0,b:{t:2,i:[{t:3}],s:"German (Deutsch)"}},en:{t:0,b:{t:2,i:[{t:3}],s:"English"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"French (Français)"}},"zh-CN":{t:0,b:{t:2,i:[{t:3}],s:"Simplified Chinese (簡體中文)"}},"zh-TW":{t:0,b:{t:2,i:[{t:3}],s:"Traditional Chinese (繁體中文)"}}},list:{albums:{info:{t:0,b:{t:2,i:[{t:3,v:"Permanently remove this podcast from your library?"},{t:4,k:"separator"},{t:3,v:"(This will also remove the RSS playlist "},{t:4,k:"name"},{t:3,v:")"}]}}},spotify:{"not-playable-track":{t:0,b:{t:2,i:[{t:3}],s:"Track is not playable"}},"restriction-reason":{t:0,b:{t:2,i:[{t:3,v:", restriction reason: "},{t:4,k:"reason"}]}}}},media:{kind:{album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},audiobook:{t:0,b:{t:2,i:[{t:3}],s:"Audiobook"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Music"}},podcast:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}}}},navigation:{about:{t:0,b:{t:2,i:[{t:3}],s:"About"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Audiobooks"}},"now-playing":{t:0,b:{t:2,i:[{t:3,v:" - "},{t:4,k:"album"}]}},"stream-error":{t:0,b:{t:2,i:[{t:3}],s:"HTTP stream error: failed to load stream or stopped loading due to network problem"}},stream:{t:0,b:{t:2,i:[{t:3}],s:"HTTP stream"}},volume:{t:0,b:{t:2,i:[{t:3}],s:"Volume"}},files:{t:0,b:{t:2,i:[{t:3}],s:"Files"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Music"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlists"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},search:{t:0,b:{t:2,i:[{t:3}],s:"Search"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Settings"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},"update-library":{t:0,b:{t:2,i:[{t:3}],s:"Update Library"}}},options:{filter:{"hide-singles":{t:0,b:{t:2,i:[{t:3}],s:"Hide singles"}},"hide-singles-help":{t:0,b:{t:2,i:[{t:3}],s:"If active, hides singles and anything associated with them."}},"hide-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Hide Spotify content"}},"hide-spotify-help":{t:0,b:{t:2,i:[{t:3}],s:"If active, hides content from Spotify."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Filter"}}},sort:{"artist-name":{t:0,b:{t:2,i:[{t:3}],s:"Artist › Name"}},"artist-date":{t:0,b:{t:2,i:[{t:3}],s:"Artist › Release date"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Name"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Rating"}},"recently-added":{t:0,b:{t:2,i:[{t:3}],s:"Recently added"}},"recently-released":{t:0,b:{t:2,i:[{t:3}],s:"Recently released"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Release date"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Sort"}}}},page:{about:{"built-with":{t:0,b:{t:2,i:[{t:3,v:"Web interface built with "},{t:4,k:"bulma"},{t:3,v:", "},{t:4,k:"mdi"},{t:3,v:", "},{t:4,k:"vuejs"},{t:3,v:", "},{t:4,k:"axios"},{t:3,v:" and "},{t:4,k:"others"},{t:3,v:"."}]}},"compiled-with":{t:0,b:{t:2,i:[{t:3,v:"Compiled with support for "},{t:4,k:"options"},{t:3,v:"."}]}},library:{t:0,b:{t:2,i:[{t:3}],s:"Library"}},more:{t:0,b:{t:2,i:[{t:3}],s:"more"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Update"}},version:{t:0,b:{t:2,i:[{t:3,v:"Version "},{t:4,k:"version"}]}}},albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}}},audiobooks:{albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Audiobooks"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Authors"}}},tabs:{authors:{t:0,b:{t:2,i:[{t:3}],s:"Authors"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Audiobooks"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}}},composers:{title:{t:0,b:{t:2,i:[{t:3}],s:"Composers"}}},files:{title:{t:0,b:{t:2,i:[{t:3}],s:"Files"}}},genres:{title:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}},music:{"recently-added":{title:{t:0,b:{t:2,i:[{t:3}],s:"Recently added"}}},"recently-played":{title:{t:0,b:{t:2,i:[{t:3}],s:"Recently played"}}},tabs:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Composers"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},history:{t:0,b:{t:2,i:[{t:3}],s:"History"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},"now-playing":{info:{t:0,b:{t:2,i:[{t:3}],s:"Add some tracks by browsing your library"}},live:{t:0,b:{t:2,i:[{t:3}],s:"Live"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Your play queue is empty"}}},playlists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Playlists"}}},podcast:{"remove-info":{t:0,b:{t:2,i:[{t:3,v:"Permanently remove this podcast from your library?"},{t:4,k:"separator"},{t:3,v:"(This will also remove the RSS playlist "},{t:4,k:"name"},{t:3,v:")"}]}}},podcasts:{"new-episodes":{t:0,b:{t:2,i:[{t:3}],s:"New Episodes"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Update"}}},queue:{title:{t:0,b:{t:2,i:[{t:3}],s:"Queue"}}},radio:{title:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Audiobooks"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Composers"}},expression:{t:0,b:{t:2,i:[{t:3}],s:"expression"}},help:{t:0,b:{t:2,i:[{t:3,v:"Tip: you can search by a smart playlist query language "},{t:4,k:"help"},{t:3,v:" if you prefix it with "},{t:4,k:"query"},{t:3,v:"."}]}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"No results found"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Search"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlists"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the album"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" albums"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the artist"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" artists"}]}]}},"show-audiobooks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the audiobook"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" audiobooks"}]}]}},"show-composers":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the composer"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" composers"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the playlist"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" playlists"}]}]}},"show-podcasts":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the podcast"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" podcasts"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the track"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" tracks"}]}]}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Tracks"}},tabs:{library:{t:0,b:{t:2,i:[{t:3}],s:"Library"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},settings:{artwork:{title:{t:0,b:{t:2,i:[{t:3}],s:"Artwork"}},coverartarchive:{t:0,b:{t:2,i:[{t:3}],s:"Cover Art Archive"}},discogs:{t:0,b:{t:2,i:[{t:3}],s:"Discogs"}},"explanation-1":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone supports PNG and JPEG artwork which is either placed as separate image files in the library, embedded in the media files or made available online by radio stations."}},"explanation-2":{t:0,b:{t:2,i:[{t:3}],s:"In addition to that, you can enable fetching artwork from the following artwork providers:"}},"show-coverart":{t:0,b:{t:2,i:[{t:3}],s:"Show cover artwork in album list"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"Ignore artwork provided by radio stations"}}},devices:{"no-active-pairing":{t:0,b:{t:2,i:[{t:3}],s:"No active pairing request."}},"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Pairing code"}},"pairing-request":{t:0,b:{t:2,i:[{t:3}],s:"Remote pairing request from "}},pairing:{t:0,b:{t:2,i:[{t:3}],s:"Remote Pairing"}},"speaker-pairing-info":{t:0,b:{t:2,i:[{t:3}],s:"If your speaker requires pairing then activate it below and enter the PIN that it displays."}},"speaker-pairing":{t:0,b:{t:2,i:[{t:3}],s:"Speaker pairing and device verification"}},"verification-code":{t:0,b:{t:2,i:[{t:3}],s:"Verification code"}},verify:{t:0,b:{t:2,i:[{t:3}],s:"Verify"}}},general:{audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Audiobooks"}},files:{t:0,b:{t:2,i:[{t:3}],s:"Files"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Language"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Music"}},"navigation-item-selection-info":{t:0,b:{t:2,i:[{t:3}],s:"If you select more items than can be shown on your screen then the burger menu will disappear."}},"navigation-item-selection":{t:0,b:{t:2,i:[{t:3}],s:"Select the top navigation bar menu items"}},"navigation-items":{t:0,b:{t:2,i:[{t:3}],s:"Navigation Bar"}},"now-playing-page":{t:0,b:{t:2,i:[{t:3}],s:"Now playing page"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlists"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},"recently-added-page-info":{t:0,b:{t:2,i:[{t:3}],s:"Limit the number of albums displayed"}},"recently-added-page":{t:0,b:{t:2,i:[{t:3}],s:"Recently added page"}},search:{t:0,b:{t:2,i:[{t:3}],s:"Search"}},"show-composer-genres-help":{t:0,b:{t:2,i:[{t:3,v:"Comma-separated list of genres, for which the composer must be displayed."},{t:5,i:0},{t:3,v:"Leave empty to always show the composer."},{t:5,i:0},{t:3,v:'The genre tag of the current track is matched by checking, if one of the defined genres are included. For example setting to "classical, soundtrack" will show the composer for tracks with a genre tag of "Contemporary Classical"'}]}},"show-composer-genres":{t:0,b:{t:2,i:[{t:3}],s:"Show composer only for listed genres"}},"show-composer-info":{t:0,b:{t:2,i:[{t:3}],s:"If enabled, the composer of the current playing track is displayed"}},"show-composer":{t:0,b:{t:2,i:[{t:3}],s:"Show composer"}},"show-path":{t:0,b:{t:2,i:[{t:3}],s:"Show filepath"}}},services:{lastfm:{"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Login with your Last.fm username and password to enable scrobbling"}},info:{t:0,b:{t:2,i:[{t:3}],s:"OwnTone will not store your Last.fm username/password, only the session key. The session key does not expire."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Last.fm"}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone was built without support for Last.fm."}}},spotify:{"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone was either built without support for Spotify or libspotify is not installed."}},"logged-as":{t:0,b:{t:2,i:[{t:3}],s:"Logged in as "}},requirements:{t:0,b:{t:2,i:[{t:3}],s:"You must have a Spotify premium account. Access to the Spotify Web API enables scanning of your Spotify library. Required scopes are: "}},user:{t:0,b:{t:2,i:[{t:3}],s:"Access granted for "}},authorize:{t:0,b:{t:2,i:[{t:3}],s:"Authorize Web API access"}},"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Grant access to the Spotify Web API"}},reauthorize:{t:0,b:{t:2,i:[{t:3}],s:"Please reauthorize Web API access to grant OwnTone the following additional access rights: "}},title:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},password:{t:0,b:{t:2,i:[{t:3}],s:"Password"}},username:{t:0,b:{t:2,i:[{t:3}],s:"Username"}}},tabs:{artwork:{t:0,b:{t:2,i:[{t:3}],s:"Artwork"}},general:{t:0,b:{t:2,i:[{t:3}],s:"General"}},"online-services":{t:0,b:{t:2,i:[{t:3}],s:"Online Services"}},"remotes-and-outputs":{t:0,b:{t:2,i:[{t:3}],s:"Remotes and Outputs"}}}},spotify:{music:{"featured-playlists":{t:0,b:{t:2,i:[{t:3}],s:"Featured Playlists"}},"new-releases":{t:0,b:{t:2,i:[{t:3}],s:"New Releases"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"No results found"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Search"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Playlists"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the album"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" albums"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the artist"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" artists"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the playlist"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" playlists"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Show the track"},{t:2,i:[{t:3,v:"Show all "},{t:4,k:"count"},{t:3,v:" tracks"}]}]}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Tracks"}}}}},playlist:{type:{folder:{t:0,b:{t:2,i:[{t:3}],s:"Folder"}},plain:{t:0,b:{t:2,i:[{t:3}],s:"Plain"}},smart:{t:0,b:{t:2,i:[{t:3}],s:"Smart"}}}},player:{button:{consume:{t:0,b:{t:2,i:[{t:3}],s:"Clear history"}},pause:{t:0,b:{t:2,i:[{t:3}],s:"Pause"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Play"}},repeat:{t:0,b:{t:2,i:[{t:3}],s:"Repeat all tracks"}},"repeat-off":{t:0,b:{t:2,i:[{t:3}],s:"Read tracks once"}},"repeat-once":{t:0,b:{t:2,i:[{t:3}],s:"Repeat current track"}},"seek-backward":{t:0,b:{t:2,i:[{t:3}],s:"Seek backward in the track"}},"seek-forward":{t:0,b:{t:2,i:[{t:3}],s:"Seek forward in the track"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Play tracks randomly"}},"shuffle-disabled":{t:0,b:{t:2,i:[{t:3}],s:"Play tracks in order"}},"skip-backward":{t:0,b:{t:2,i:[{t:3}],s:"Skip to previous track"}},"skip-forward":{t:0,b:{t:2,i:[{t:3}],s:"Skip to next track"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Stop"}},"toggle-lyrics":{t:0,b:{t:2,i:[{t:3}],s:"Toggle lyrics"}}}},property:{"added-on":{t:0,b:{t:2,i:[{t:3}],s:"Added On"}},album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},"album-artist":{t:0,b:{t:2,i:[{t:3}],s:"Album Artist"}},artist:{t:0,b:{t:2,i:[{t:3}],s:"Artist"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artists"}},comment:{t:0,b:{t:2,i:[{t:3}],s:"Comment"}},composer:{t:0,b:{t:2,i:[{t:3}],s:"Composer"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Duration"}},genre:{t:0,b:{t:2,i:[{t:3}],s:"Genre"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Name"}},owner:{t:0,b:{t:2,i:[{t:3}],s:"Owner"}},path:{t:0,b:{t:2,i:[{t:3}],s:"Path"}},playtime:{t:0,b:{t:2,i:[{t:3}],s:"Playtime"}},popularity:{t:0,b:{t:2,i:[{t:3}],s:"Popularity / Followers"}},position:{t:0,b:{t:2,i:[{t:3}],s:"Disc / Track"}},quality:{t:0,b:{t:2,i:[{t:3}],s:"Quality"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Rating"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Release Date"}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Tracks"}},type:{t:0,b:{t:2,i:[{t:3}],s:"Type"}},updated:{t:0,b:{t:2,i:[{t:3}],s:"Updated"}},uptime:{t:0,b:{t:2,i:[{t:3}],s:"Uptime"}},year:{t:0,b:{t:2,i:[{t:3}],s:"Year"}}},server:{"connection-failed":{t:0,b:{t:2,i:[{t:3}],s:"Failed to connect to OwnTone server"}},"request-failed":{t:0,b:{t:2,i:[{t:3,v:"Request failed (status: "},{t:4,k:"status"},{t:3,v:" "},{t:4,k:"cause"},{t:3,v:" "},{t:4,k:"url"},{t:3,v:")"}]}},"queue-saved":{t:0,b:{t:2,i:[{t:3,v:"Queue saved to playlist "},{t:4,k:"name"}]}},"appended-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" track appended to the queue"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" tracks appended to the queue"}]}]}},"empty-queue":{t:0,b:{t:2,i:[{t:3}],s:"Queue is empty"}}},"grouped-list":{today:{t:0,b:{t:2,i:[{t:3}],s:"Today"}},"last-week":{t:0,b:{t:2,i:[{t:3}],s:"Last week"}},"last-month":{t:0,b:{t:2,i:[{t:3}],s:"Last month"}},undefined:{t:0,b:{t:2,i:[{t:3}],s:"Undefined"}}}}},{fr:{actions:{add:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter"}},"add-next":{t:0,b:{t:2,i:[{t:3}],s:"Ajouter ensuite"}},"add-stream":{t:0,b:{t:2,i:[{t:3}],s:"Ajouter un flux"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Annuler"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Effacer"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Éditer"}},login:{t:0,b:{t:2,i:[{t:3}],s:"Se connecter"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"Se déconnecter"}},"hide-previous":{t:0,b:{t:2,i:[{t:3}],s:"Masquer l’historique"}},"mark-all-played":{t:0,b:{t:2,i:[{t:3}],s:"Marquer comme lus"}},"mark-as-new":{t:0,b:{t:2,i:[{t:3}],s:"Marquer comme nouveau"}},"mark-as-played":{t:0,b:{t:2,i:[{t:3}],s:"Marquer comme lu"}},pair:{t:0,b:{t:2,i:[{t:3}],s:"Jumeler la télécommande"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Lire"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer"}},"remove-podcast":{t:0,b:{t:2,i:[{t:3}],s:"Supprimer le podcast"}},rescan:{t:0,b:{t:2,i:[{t:3}],s:"Analyser"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Enregistrer"}},send:{t:0,b:{t:2,i:[{t:3}],s:"Envoyer"}},"show-more":{t:0,b:{t:2,i:[{t:3}],s:"Afficher plus"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Lecture aléatoire"}}},count:{albums:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" album"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" albums"}]}]}},artists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" artiste"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" artiste"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" artistes"}]}]}},audiobooks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" livre audio"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" livre audio"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" livres audio"}]}]}},authors:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" auteur"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" auteur"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" auteurs"}]}]}},channels:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" canal"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" canaux"}]}]}},composers:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" compositeur"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" compositeur"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" compositeurs"}]}]}},genres:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" genre"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" genres"}]}]}},playlists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" liste de lecture"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" liste de lecture"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" listes de lecture"}]}]}},podcasts:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" podcasts"}]}]}},stations:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" station"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" stations"}]}]}},tracks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" piste"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" piste"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" pistes"}]}]}}},data:{kind:{file:{t:0,b:{t:2,i:[{t:3}],s:"Fichier"}},url:{t:0,b:{t:2,i:[{t:3}],s:"URL"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},pipe:{t:0,b:{t:2,i:[{t:3}],s:"Flux"}}}},dialog:{add:{rss:{help:{t:0,b:{t:2,i:[{t:3}],s:"L’ajout d’un podcast inclut la création d’une liste de lecture RSS, qui permettra à OwnTone de gérer l’abonnement au podcast."}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-du-flux-rss"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Traitement en cours…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter un podcast"}}},stream:{loading:{t:0,b:{t:2,i:[{t:3}],s:"Chargement…"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-du-flux"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Traitement en cours…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter un flux"}}}},playlist:{save:{"playlist-name":{t:0,b:{t:2,i:[{t:3}],s:"Nom de la liste de lecture"}},saving:{t:0,b:{t:2,i:[{t:3}],s:"Enregistrement en cours…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Enregistrer la file d’attente dans une liste de lecture"}}}},"queue-item":{"quality-value":{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"channels"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}}},"remote-pairing":{"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Code de jumelage"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Demande de jumelage de télécommande"}}},track:{"quality-value":{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"channels"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}},"rating-value":{t:0,b:{t:2,i:[{t:4,k:"rating"},{t:3,v:" / 10"}]}}},update:{all:{t:0,b:{t:2,i:[{t:3}],s:"Tout actualiser"}},feeds:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser uniquement les flux RSS"}},info:{t:0,b:{t:2,i:[{t:3}],s:"Recherche les fichiers ajoutés, supprimés et modifiés"}},local:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser uniquement la bibliothèque locale"}},progress:{t:0,b:{t:2,i:[{t:3}],s:"Actualisation de la bibliothèque en cours…"}},"rescan-metadata":{t:0,b:{t:2,i:[{t:3}],s:"Analyser les métadonnées des fichiers non modifiés"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser uniquement Spotify"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser la bibliothèque"}}}},language:{de:{t:0,b:{t:2,i:[{t:3}],s:"Allemand (Deutsch)"}},en:{t:0,b:{t:2,i:[{t:3}],s:"Anglais (English)"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"Français"}},"zh-CN":{t:0,b:{t:2,i:[{t:3}],s:"Chinois simplifié (簡體中文)"}},"zh-TW":{t:0,b:{t:2,i:[{t:3}],s:"Chinois traditionnel (繁體中文)"}}},list:{albums:{info:{t:0,b:{t:2,i:[{t:3,v:"Supprimer définitivement ce podcast de votre bibliothèque ?"},{t:4,k:"separator"},{t:3,v:"(Cela supprimera également la liste de lecture RSS "},{t:4,k:"name"},{t:3,v:")"}]}}},spotify:{"not-playable-track":{t:0,b:{t:2,i:[{t:3}],s:"La piste ne peut pas être lue"}},"restriction-reason":{t:0,b:{t:2,i:[{t:3,v:", raison de la restriction : "},{t:4,k:"reason"}]}}}},media:{kind:{album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},audiobook:{t:0,b:{t:2,i:[{t:3}],s:"Livre audio"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Musique"}},podcast:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}}}},navigation:{about:{t:0,b:{t:2,i:[{t:3}],s:"À propos"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Livres audio"}},"now-playing":{t:0,b:{t:2,i:[{t:3,v:" - "},{t:4,k:"album"}]}},"stream-error":{t:0,b:{t:2,i:[{t:3}],s:"Erreur du flux HTTP : échec du chargement du flux ou arrêt du chargement en raison d’un problème réseau"}},stream:{t:0,b:{t:2,i:[{t:3}],s:"Flux HTTP"}},volume:{t:0,b:{t:2,i:[{t:3}],s:"Volume"}},files:{t:0,b:{t:2,i:[{t:3}],s:"Fichiers"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Musique"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},search:{t:0,b:{t:2,i:[{t:3}],s:"Recherche"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Réglages"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},"update-library":{t:0,b:{t:2,i:[{t:3}],s:"Actualiser la bibliothèque"}}},options:{filter:{"hide-singles":{t:0,b:{t:2,i:[{t:3}],s:"Masquer les singles"}},"hide-singles-help":{t:0,b:{t:2,i:[{t:3}],s:"Si actif, masque les singles et tout ce qui leur est associé."}},"hide-spotify":{t:0,b:{t:2,i:[{t:3}],s:"Masquer le contenu de Spotify"}},"hide-spotify-help":{t:0,b:{t:2,i:[{t:3}],s:"Si actif, masque le contenu qui provient de Spotify."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Filtrer"}}},sort:{"artist-name":{t:0,b:{t:2,i:[{t:3}],s:"Artiste › Nom"}},"artist-date":{t:0,b:{t:2,i:[{t:3}],s:"Artiste › Date de sortie"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Nom"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Classement"}},"recently-added":{t:0,b:{t:2,i:[{t:3}],s:"Ajouts récents"}},"recently-released":{t:0,b:{t:2,i:[{t:3}],s:"Sorties récentes"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Date de sortie"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Trier"}}}},page:{about:{"built-with":{t:0,b:{t:2,i:[{t:3,v:"Interface utilisateur construite avec "},{t:4,k:"bulma"},{t:3,v:", "},{t:4,k:"mdi"},{t:3,v:", "},{t:4,k:"vuejs"},{t:3,v:", "},{t:4,k:"axios"},{t:3,v:" et "},{t:4,k:"others"},{t:3,v:"."}]}},"compiled-with":{t:0,b:{t:2,i:[{t:3,v:"Compilé avec les options "},{t:4,k:"options"},{t:3,v:"."}]}},library:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothèque"}},more:{t:0,b:{t:2,i:[{t:3}],s:"plus"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser"}},version:{t:0,b:{t:2,i:[{t:3,v:"Version "},{t:4,k:"version"}]}}},albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}}},audiobooks:{albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"Livres audio"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Auteurs"}}},tabs:{authors:{t:0,b:{t:2,i:[{t:3}],s:"Auteurs"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Livres audio"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}}},composers:{title:{t:0,b:{t:2,i:[{t:3}],s:"Compositeurs"}}},files:{title:{t:0,b:{t:2,i:[{t:3}],s:"Fichiers"}}},genres:{title:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}}},music:{"recently-added":{title:{t:0,b:{t:2,i:[{t:3}],s:"Ajouts récents"}}},"recently-played":{title:{t:0,b:{t:2,i:[{t:3}],s:"Lectures récentes"}}},tabs:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Compositeurs"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},history:{t:0,b:{t:2,i:[{t:3}],s:"Historique"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},"now-playing":{info:{t:0,b:{t:2,i:[{t:3}],s:"Ajoutez des pistes en parcourant votre bibliothèque"}},live:{t:0,b:{t:2,i:[{t:3}],s:"En direct"}},title:{t:0,b:{t:2,i:[{t:3}],s:"La file d’attente est vide"}}},playlists:{title:{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture"}}},podcast:{"remove-info":{t:0,b:{t:2,i:[{t:3,v:"Supprimer ce podcast de manière permanente de la bibliothèque ?"},{t:4,k:"separator"},{t:3,v:"(Cela supprimera également la liste de lecture RSS "},{t:4,k:"name"},{t:3,v:")"}]}}},podcasts:{"new-episodes":{t:0,b:{t:2,i:[{t:3}],s:"Nouveaux épisodes"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser"}}},queue:{title:{t:0,b:{t:2,i:[{t:3}],s:"File d’attente"}}},radio:{title:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Livres audio"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"Compositeurs"}},expression:{t:0,b:{t:2,i:[{t:3}],s:"expression"}},help:{t:0,b:{t:2,i:[{t:3,v:"Astuce : vous pouvez effectuer une recherche avec une "},{t:4,k:"help"},{t:3,v:" du langage de requête de liste de lecture intelligente en préfixant votre requête avec "},{t:4,k:"query"}]}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"Aucun résultat trouvé"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Recherche"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher l’album"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" albums"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher l’artiste"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" artistes"}]}]}},"show-audiobooks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher le livre audio"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" livres audio"}]}]}},"show-composers":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher le compositeur"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" compositeurs"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher la liste de lecture"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" listes de lecture"}]}]}},"show-podcasts":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher le podcast"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" podcasts"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher la piste"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" pistes"}]}]}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Pistes"}},tabs:{library:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothèque"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},settings:{artwork:{title:{t:0,b:{t:2,i:[{t:3}],s:"Illustrations"}},coverartarchive:{t:0,b:{t:2,i:[{t:3}],s:"Cover Art Archive"}},discogs:{t:0,b:{t:2,i:[{t:3}],s:"Discogs"}},"explanation-1":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone prend en charge les illustrations au format PNG et JPEG qui sont soit placées dans la bibliothèque en tant que fichiers image séparés, soit intégrées dans les fichiers média, soit mises à disposition en ligne par les stations de radio."}},"explanation-2":{t:0,b:{t:2,i:[{t:3}],s:"En outre, vous pouvez activer la récupération des illustrations à partir des fournisseurs d’illustrations suivants :"}},"show-coverart":{t:0,b:{t:2,i:[{t:3}],s:"Afficher les illustrations dans la liste d’albums"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"Ignorer les illustrations fournies par les stations de radio"}}},devices:{"no-active-pairing":{t:0,b:{t:2,i:[{t:3}],s:"Aucune demande de jumelage active."}},"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"Code de jumelage"}},"pairing-request":{t:0,b:{t:2,i:[{t:3}],s:"Demande de jumelage de télécommande "}},pairing:{t:0,b:{t:2,i:[{t:3}],s:"Jumelage de télécommande"}},"speaker-pairing-info":{t:0,b:{t:2,i:[{t:3}],s:"Si votre enceinte nécessite un jumelage, activez-la ci-dessous et entrez le code PIN qu’elle affiche."}},"speaker-pairing":{t:0,b:{t:2,i:[{t:3}],s:"Jumelage d’enceinte et vérification d’appareil"}},"verification-code":{t:0,b:{t:2,i:[{t:3}],s:"Code de vérification"}},verify:{t:0,b:{t:2,i:[{t:3}],s:"Vérifier"}}},general:{audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"Livres audio"}},files:{t:0,b:{t:2,i:[{t:3}],s:"Fichiers"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Langue"}},music:{t:0,b:{t:2,i:[{t:3}],s:"Musique"}},"navigation-item-selection-info":{t:0,b:{t:2,i:[{t:3}],s:"Si vous sélectionnez plus d’éléments que ce qui peut être affiché sur votre écran, le menu disparaîtra."}},"navigation-item-selection":{t:0,b:{t:2,i:[{t:3}],s:"Sélectionnez les éléments de la barre de navigation supérieure"}},"navigation-items":{t:0,b:{t:2,i:[{t:3}],s:"Barre de navigation"}},"now-playing-page":{t:0,b:{t:2,i:[{t:3}],s:"Page « En cours de lecture »"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcasts"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"Radio"}},"recently-added-page-info":{t:0,b:{t:2,i:[{t:3}],s:"Limiter le nombre d’albums affichés"}},"recently-added-page":{t:0,b:{t:2,i:[{t:3}],s:"Page « Ajouts récents »"}},search:{t:0,b:{t:2,i:[{t:3}],s:"Recherche"}},"show-composer-genres-help":{t:0,b:{t:2,i:[{t:3,v:"Liste de genres séparés par des virgules pour lesquels le compositeur doit être affiché."},{t:5,i:0},{t:3,v:"Laissez vide pour toujours afficher le compositeur."},{t:5,i:0},{t:3,v:'L’étiquette de genre de la piste actuelle est comparée en vérifiant si l’un des genres définis est inclus. Par exemple, en choisissant "classique, bande sonore", le compositeur pour les pistes dont l’étiquette de genre est "classique contemporain" sera affiché.'}]}},"show-composer-genres":{t:0,b:{t:2,i:[{t:3}],s:"Afficher le compositeur uniquement pour les genres listés"}},"show-composer-info":{t:0,b:{t:2,i:[{t:3}],s:"Si actif, le compositeur de la piste en cours de lecture est affiché"}},"show-composer":{t:0,b:{t:2,i:[{t:3}],s:"Afficher le compositeur"}},"show-path":{t:0,b:{t:2,i:[{t:3}],s:"Afficher le chemin du fichier"}}},services:{lastfm:{"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Connectez-vous avec votre nom d’utilisateur et votre mot de passe Last.fm pour activer le scrobbling."}},info:{t:0,b:{t:2,i:[{t:3}],s:"Le nom d’utilisateur et le mot de passe Last.fm ne sont pas enregistrés, uniquement la clé de session. La clé de session n’expire pas."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Last.fm"}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"L’option Last.fm n’est pas présente."}}},spotify:{"no-support":{t:0,b:{t:2,i:[{t:3}],s:"L’option Spotify n’est pas présente."}},"logged-as":{t:0,b:{t:2,i:[{t:3}],s:"Connecté en tant que "}},requirements:{t:0,b:{t:2,i:[{t:3}],s:"Vous devez posséder un compte Spotify Premium. L’accès à l’API de Spotify permet l’analyse de votre bibliothèque Spotify. Les champs d’application requis sont les suivants :"}},user:{t:0,b:{t:2,i:[{t:3}],s:"Accès autorisé pour "}},authorize:{t:0,b:{t:2,i:[{t:3}],s:"Autoriser l’accès à l’API"}},"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"Accordez l’accès à l’API de Spotify"}},reauthorize:{t:0,b:{t:2,i:[{t:3}],s:"Veuillez autoriser à nouveau l’accès à l’API pour accorder à OwnTone les droits d’accès supplémentaires suivants :"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},password:{t:0,b:{t:2,i:[{t:3}],s:"Mot de passe"}},username:{t:0,b:{t:2,i:[{t:3}],s:"Nom d’utilisateur"}}},tabs:{artwork:{t:0,b:{t:2,i:[{t:3}],s:"Illustrations"}},general:{t:0,b:{t:2,i:[{t:3}],s:"Général"}},"online-services":{t:0,b:{t:2,i:[{t:3}],s:"Services en ligne"}},"remotes-and-outputs":{t:0,b:{t:2,i:[{t:3}],s:"Télécommandes et sorties"}}}},spotify:{music:{"featured-playlists":{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture en vedette"}},"new-releases":{t:0,b:{t:2,i:[{t:3}],s:"Nouvelle sorties"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"Aucun résultat trouvé"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Recherche"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"Listes de lecture"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher l’album"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" albums"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher l’artiste"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" artistes"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher la liste de lecture"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" listes de lecture"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"Afficher la piste"},{t:2,i:[{t:3,v:"Afficher les "},{t:4,k:"count"},{t:3,v:" pistes"}]}]}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Pistes"}}}}},playlist:{type:{folder:{t:0,b:{t:2,i:[{t:3}],s:"Dossier"}},plain:{t:0,b:{t:2,i:[{t:3}],s:"Simple"}},smart:{t:0,b:{t:2,i:[{t:3}],s:"Intelligente"}}}},player:{button:{consume:{t:0,b:{t:2,i:[{t:3}],s:"Effacer l’historique"}},pause:{t:0,b:{t:2,i:[{t:3}],s:"Mettre la lecture en pause"}},play:{t:0,b:{t:2,i:[{t:3}],s:"Lire"}},repeat:{t:0,b:{t:2,i:[{t:3}],s:"Répéter toutes les pistes"}},"repeat-off":{t:0,b:{t:2,i:[{t:3}],s:"Lire les pistes une fois"}},"repeat-once":{t:0,b:{t:2,i:[{t:3}],s:"Répéter la piste en cours"}},"seek-backward":{t:0,b:{t:2,i:[{t:3}],s:"Reculer dans la piste"}},"seek-forward":{t:0,b:{t:2,i:[{t:3}],s:"Avancer dans la piste"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"Lire les pistes aléatoirement"}},"shuffle-disabled":{t:0,b:{t:2,i:[{t:3}],s:"Lire les pistes dans l’ordre"}},"skip-backward":{t:0,b:{t:2,i:[{t:3}],s:"Reculer à la piste précédente"}},"skip-forward":{t:0,b:{t:2,i:[{t:3}],s:"Avancer à la piste suivante"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Arrêter la lecture"}},"toggle-lyrics":{t:0,b:{t:2,i:[{t:3}],s:"Voir/Cacher les paroles"}}}},property:{"added-on":{t:0,b:{t:2,i:[{t:3}],s:"Ajouté le"}},album:{t:0,b:{t:2,i:[{t:3}],s:"Album"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"Albums"}},"album-artist":{t:0,b:{t:2,i:[{t:3}],s:"Artiste de l’album"}},artist:{t:0,b:{t:2,i:[{t:3}],s:"Artiste"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"Artistes"}},comment:{t:0,b:{t:2,i:[{t:3}],s:"Commentaire"}},composer:{t:0,b:{t:2,i:[{t:3}],s:"Compositeur"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Durée"}},genre:{t:0,b:{t:2,i:[{t:3}],s:"Genre"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"Genres"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Nom"}},owner:{t:0,b:{t:2,i:[{t:3}],s:"Propriétaire"}},path:{t:0,b:{t:2,i:[{t:3}],s:"Emplacement"}},playtime:{t:0,b:{t:2,i:[{t:3}],s:"Temps de lecture"}},popularity:{t:0,b:{t:2,i:[{t:3}],s:"Popularité / Abonnements"}},position:{t:0,b:{t:2,i:[{t:3}],s:"Disque / Piste"}},quality:{t:0,b:{t:2,i:[{t:3}],s:"Qualité"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"Classement"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"Date de sortie"}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"Pistes"}},type:{t:0,b:{t:2,i:[{t:3}],s:"Type"}},updated:{t:0,b:{t:2,i:[{t:3}],s:"Mise à jour"}},uptime:{t:0,b:{t:2,i:[{t:3}],s:"Temps de fonctionnement"}},year:{t:0,b:{t:2,i:[{t:3}],s:"Année"}}},server:{"connection-failed":{t:0,b:{t:2,i:[{t:3}],s:"Échec de connexion au serveur"}},"request-failed":{t:0,b:{t:2,i:[{t:3,v:"La requête a échoué (status: "},{t:4,k:"status"},{t:3,v:" "},{t:4,k:"cause"},{t:3,v:" "},{t:4,k:"url"},{t:3,v:")"}]}},"queue-saved":{t:0,b:{t:2,i:[{t:3,v:"La file d’attente enregistrée dans la liste de lecture "},{t:4,k:"name"}]}},"appended-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" piste ajoutée à la file d’attente"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" pistes ajoutées à la file d’attente"}]}]}},"empty-queue":{t:0,b:{t:2,i:[{t:3}],s:"La file d’attente est vide"}}},"grouped-list":{today:{t:0,b:{t:2,i:[{t:3}],s:"Aujourd’hui"}},"last-week":{t:0,b:{t:2,i:[{t:3}],s:"La semaine dernière"}},"last-month":{t:0,b:{t:2,i:[{t:3}],s:"Le mois dernier"}},undefined:{t:0,b:{t:2,i:[{t:3}],s:"Indéfini"}}}}},{"zh-CN":{actions:{add:{t:0,b:{t:2,i:[{t:3}],s:"添加"}},"add-next":{t:0,b:{t:2,i:[{t:3}],s:"插播"}},"add-stream":{t:0,b:{t:2,i:[{t:3}],s:"添加流"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"取消"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"清除"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"编辑"}},login:{t:0,b:{t:2,i:[{t:3}],s:"登入"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"退出"}},"hide-previous":{t:0,b:{t:2,i:[{t:3}],s:"隐藏历史"}},"mark-all-played":{t:0,b:{t:2,i:[{t:3}],s:"全部标记为已播放"}},"mark-as-new":{t:0,b:{t:2,i:[{t:3}],s:"标记为最新"}},"mark-as-played":{t:0,b:{t:2,i:[{t:3}],s:"标记为已播放"}},pair:{t:0,b:{t:2,i:[{t:3}],s:"遥控配对"}},play:{t:0,b:{t:2,i:[{t:3}],s:"播放"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"移除"}},"remove-podcast":{t:0,b:{t:2,i:[{t:3}],s:"移除播客"}},rescan:{t:0,b:{t:2,i:[{t:3}],s:"重新扫描"}},save:{t:0,b:{t:2,i:[{t:3}],s:"保存"}},send:{t:0,b:{t:2,i:[{t:3}],s:"发送"}},"show-more":{t:0,b:{t:2,i:[{t:3}],s:"显示更多"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"随机播放"}}},count:{albums:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 张专辑"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 张专辑"}]}]}},artists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位艺人"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位艺人"}]}]}},audiobooks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 个有声读物"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 个有声读物"}]}]}},authors:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作者"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作者"}]}]}},channels:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" canal"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" canaux"}]}]}},composers:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作曲家"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作曲家"}]}]}},genres:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 个流派"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 个流派"}]}]}},playlists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 个播放列表"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 个播放列表"}]}]}},podcasts:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 个播客"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 个播客"}]}]}},stations:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 个电台"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 个电台"}]}]}},tracks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 只曲目"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 只曲目"}]}]}}},data:{kind:{file:{t:0,b:{t:2,i:[{t:3}],s:"文件"}},url:{t:0,b:{t:2,i:[{t:3}],s:"链接"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},pipe:{t:0,b:{t:2,i:[{t:3}],s:"流"}}}},dialog:{add:{rss:{help:{t:0,b:{t:2,i:[{t:3}],s:"添加一个可生成播放列表的播客RSS链接,这将允许OwnTone管理订阅"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-rss"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"处理中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"添加播客"}}},stream:{loading:{t:0,b:{t:2,i:[{t:3}],s:"加载中…"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-stream"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"处理中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"添加流"}}}},playlist:{save:{"playlist-name":{t:0,b:{t:2,i:[{t:3}],s:"播放列表名称"}},saving:{t:0,b:{t:2,i:[{t:3}],s:"保存中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"保存播放清单到列表"}}}},"queue-item":{"quality-value":{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"channels"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}}},"remote-pairing":{"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"配对码"}},title:{t:0,b:{t:2,i:[{t:3}],s:"请求遥控配对"}}},track:{"quality-value":{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"channels"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}},"rating-value":{t:0,b:{t:2,i:[{t:4,k:"rating"},{t:3,v:" / 10"}]}}},update:{all:{t:0,b:{t:2,i:[{t:3}],s:"更新所有内容"}},feeds:{t:0,b:{t:2,i:[{t:3}],s:"仅更新RSS订阅内容"}},info:{t:0,b:{t:2,i:[{t:3}],s:"扫描新的、删除的和修改的文件"}},local:{t:0,b:{t:2,i:[{t:3}],s:"仅更新本地资料库"}},progress:{t:0,b:{t:2,i:[{t:3}],s:"正在更新本地资料库…"}},"rescan-metadata":{t:0,b:{t:2,i:[{t:3}],s:"重新扫描未修改文件的元数据"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"仅更新Spotify"}},title:{t:0,b:{t:2,i:[{t:3}],s:"更新资料库"}}}},language:{de:{t:0,b:{t:2,i:[{t:3}],s:"德语 (Deutsch)"}},en:{t:0,b:{t:2,i:[{t:3}],s:"英语 (English)"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"法语 (Français)"}},"zh-CN":{t:0,b:{t:2,i:[{t:3}],s:"简体中文"}},"zh-TW":{t:0,b:{t:2,i:[{t:3}],s:"繁體中文"}}},list:{albums:{info:{t:0,b:{t:2,i:[{t:3,v:"从资料库中永久移除该播客吗?"},{t:4,k:"separator"},{t:3,v:"(这也将移除RSS播放列表 "},{t:4,k:"name"},{t:3,v:")"}]}}},spotify:{"not-playable-track":{t:0,b:{t:2,i:[{t:3}],s:"曲目无法播放"}},"restriction-reason":{t:0,b:{t:2,i:[{t:3,v:",被限制原因:"},{t:4,k:"reason"}]}}}},media:{kind:{album:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},audiobook:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}},music:{t:0,b:{t:2,i:[{t:3}],s:"音乐"}},podcast:{t:0,b:{t:2,i:[{t:3}],s:"播客"}}}},navigation:{about:{t:0,b:{t:2,i:[{t:3}],s:"关于"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}},"now-playing":{t:0,b:{t:2,i:[{t:3,v:" - "},{t:4,k:"album"}]}},"stream-error":{t:0,b:{t:2,i:[{t:3}],s:"HTTP流错误:流载入失败或者由于网络原因无法载入"}},stream:{t:0,b:{t:2,i:[{t:3}],s:"HTTP流"}},volume:{t:0,b:{t:2,i:[{t:3}],s:"音量"}},files:{t:0,b:{t:2,i:[{t:3}],s:"文件"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"流派"}},music:{t:0,b:{t:2,i:[{t:3}],s:"音乐"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"播客"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"广播电台"}},search:{t:0,b:{t:2,i:[{t:3}],s:"搜索"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"设置"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},"update-library":{t:0,b:{t:2,i:[{t:3}],s:"更新资料库"}}},options:{filter:{"hide-singles":{t:0,b:{t:2,i:[{t:3}],s:"隐藏单曲"}},"hide-singles-help":{t:0,b:{t:2,i:[{t:3}],s:"如果处于活动状态,则隐藏单曲和与其关联的任何内容"}},"hide-spotify":{t:0,b:{t:2,i:[{t:3}],s:"隐藏来自Spotify的内容"}},"hide-spotify-help":{t:0,b:{t:2,i:[{t:3}],s:"如果处于活动状态,则隐藏 Spotify 中的内容"}},title:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}}},sort:{"artist-name":{t:0,b:{t:2,i:[{t:3}],s:"艺人 › 名称"}},"artist-date":{t:0,b:{t:2,i:[{t:3}],s:"艺人 › 发行日期"}},name:{t:0,b:{t:2,i:[{t:3}],s:"名称"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"评级"}},"recently-added":{t:0,b:{t:2,i:[{t:3}],s:"最近添加"}},"recently-released":{t:0,b:{t:2,i:[{t:3}],s:"最近发行"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"发行日期"}},title:{t:0,b:{t:2,i:[{t:3}],s:"分类"}}}},page:{about:{"built-with":{t:0,b:{t:2,i:[{t:3,v:"界面贡献者包括 "},{t:4,k:"bulma"},{t:3,v:","},{t:4,k:"mdi"},{t:3,v:","},{t:4,k:"vuejs"},{t:3,v:","},{t:4,k:"axios"},{t:3,v:" 和 "},{t:4,k:"others"}]}},"compiled-with":{t:0,b:{t:2,i:[{t:3,v:"编译支持来自于 "},{t:4,k:"options"}]}},library:{t:0,b:{t:2,i:[{t:3}],s:"资料库"}},more:{t:0,b:{t:2,i:[{t:3}],s:"更多"}},update:{t:0,b:{t:2,i:[{t:3}],s:"更新"}},version:{t:0,b:{t:2,i:[{t:3,v:"版本 "},{t:4,k:"version"}]}}},albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"张专辑"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}}},audiobooks:{albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"作者"}}},tabs:{authors:{t:0,b:{t:2,i:[{t:3}],s:"作者"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"流派"}}}},composers:{title:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}}},files:{title:{t:0,b:{t:2,i:[{t:3}],s:"文件"}}},genres:{title:{t:0,b:{t:2,i:[{t:3}],s:"流派"}}},music:{"recently-added":{title:{t:0,b:{t:2,i:[{t:3}],s:"最近添加"}}},"recently-played":{title:{t:0,b:{t:2,i:[{t:3}],s:"最近播放"}}},tabs:{albums:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"流派"}},history:{t:0,b:{t:2,i:[{t:3}],s:"历史"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},"now-playing":{info:{t:0,b:{t:2,i:[{t:3}],s:"浏览资料库添加曲目"}},live:{t:0,b:{t:2,i:[{t:3}],s:"直播"}},title:{t:0,b:{t:2,i:[{t:3}],s:"播放清单是空的"}}},playlists:{title:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}}},podcast:{"remove-info":{t:0,b:{t:2,i:[{t:3,v:"从资料库中永久移除该播客?"},{t:4,k:"separator"},{t:3,v:"(这也将移除该播客RSS列表 "},{t:4,k:"name"},{t:3,v:")"}]}}},podcasts:{"new-episodes":{t:0,b:{t:2,i:[{t:3}],s:"最新单集"}},title:{t:0,b:{t:2,i:[{t:3}],s:"播客"}},update:{t:0,b:{t:2,i:[{t:3}],s:"更新"}}},queue:{title:{t:0,b:{t:2,i:[{t:3}],s:"清单"}}},radio:{title:{t:0,b:{t:2,i:[{t:3}],s:"广播电台"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},expression:{t:0,b:{t:2,i:[{t:3}],s:"表达式"}},help:{t:0,b:{t:2,i:[{t:3,v:"提示:如果您使用 "},{t:4,k:"query"},{t:3,v:" 前缀,则可以通过智能播放列表查询语言 "},{t:4,k:"help"},{t:3,v:" 进行搜索"}]}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"未找到结果"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"搜索"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"播客"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示专辑"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 个专辑"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示艺人"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 位艺人"}]}]}},"show-audiobooks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示有声书"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 本有声书"}]}]}},"show-composers":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示作曲家"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 位作曲家"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示播放列表"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 个播放列表"}]}]}},"show-podcasts":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示播客"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 个播客"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示曲目"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 只曲目"}]}]}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"曲目"}},tabs:{library:{t:0,b:{t:2,i:[{t:3}],s:"资料库"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},settings:{artwork:{title:{t:0,b:{t:2,i:[{t:3}],s:"封面"}},coverartarchive:{t:0,b:{t:2,i:[{t:3}],s:"Cover Art Archive"}},discogs:{t:0,b:{t:2,i:[{t:3}],s:"Discogs"}},"explanation-1":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone支持PNG和 JPEG封面,这些封面可以作为单独的图像文件放置在库中或嵌入到媒体文件中,也可以通过广播电台在线提供"}},"explanation-2":{t:0,b:{t:2,i:[{t:3}],s:"除此之外,您还可以从以下素材提供者获取封面:"}},"show-coverart":{t:0,b:{t:2,i:[{t:3}],s:"在专辑列表中显示封面艺术作品"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"忽略广播电台提供的作品"}}},devices:{"no-active-pairing":{t:0,b:{t:2,i:[{t:3}],s:"没有活跃的配对请求"}},"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"配对代码"}},"pairing-request":{t:0,b:{t:2,i:[{t:3}],s:"远程配对请求来自于 "}},pairing:{t:0,b:{t:2,i:[{t:3}],s:"遥控配对"}},"speaker-pairing-info":{t:0,b:{t:2,i:[{t:3}],s:"如果您的扬声器需要配对,请在下面输入它显示的 PIN以激活"}},"speaker-pairing":{t:0,b:{t:2,i:[{t:3}],s:"扬声器配对和设备验证"}},"verification-code":{t:0,b:{t:2,i:[{t:3}],s:"验证码"}},verify:{t:0,b:{t:2,i:[{t:3}],s:"验证"}}},general:{audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有声读物"}},files:{t:0,b:{t:2,i:[{t:3}],s:"文件"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"流派"}},language:{t:0,b:{t:2,i:[{t:3}],s:"语言"}},music:{t:0,b:{t:2,i:[{t:3}],s:"音乐"}},"navigation-item-selection-info":{t:0,b:{t:2,i:[{t:3}],s:"如果您选择的项目多于屏幕上可以显示的项目,则侧边栏菜单将会消失"}},"navigation-item-selection":{t:0,b:{t:2,i:[{t:3}],s:"选择顶部导航栏菜单项"}},"navigation-items":{t:0,b:{t:2,i:[{t:3}],s:"导航条"}},"now-playing-page":{t:0,b:{t:2,i:[{t:3}],s:"“正在播放”页面"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"播客"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"广播电台"}},"recently-added-page-info":{t:0,b:{t:2,i:[{t:3}],s:"限制显示的相册数量"}},"recently-added-page":{t:0,b:{t:2,i:[{t:3}],s:"“最近添加”页面"}},search:{t:0,b:{t:2,i:[{t:3}],s:"搜索"}},"show-composer-genres-help":{t:0,b:{t:2,i:[{t:3,v:"以逗号分隔的流派列表,必须显示作曲家所属的流派"},{t:5,i:0},{t:3,v:"留空以始终显示作曲家"},{t:5,i:0},{t:3,v:"通过检查是否包含定义的流派之一来匹配当前曲目的流派标签。例如,设置为“古典、原声带”将显示流派标签为“当代古典”的曲目的作曲家"}]}},"show-composer-genres":{t:0,b:{t:2,i:[{t:3}],s:"仅显示列出的流派的作曲家"}},"show-composer-info":{t:0,b:{t:2,i:[{t:3}],s:"如果启用,则会显示当前播放曲目的作曲家"}},"show-composer":{t:0,b:{t:2,i:[{t:3}],s:"显示作曲家"}},"show-path":{t:0,b:{t:2,i:[{t:3}],s:"显示文件路径"}}},services:{lastfm:{"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"使用您的 Last.fm 用户名和密码登录以启用记录功能"}},info:{t:0,b:{t:2,i:[{t:3}],s:"OwnTone不会存储您的 Last.fm 用户名/密码,仅存储会话密钥。会话密钥不会过期"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Last.fm"}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone的构建没有来自Last.fm的官方支持"}}},spotify:{"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone的构建没有来自 Spotify 官方的支持,也未安装 libspotify"}},"logged-as":{t:0,b:{t:2,i:[{t:3}],s:"登录为 "}},requirements:{t:0,b:{t:2,i:[{t:3}],s:"您必须拥有 Spotify付费帐户。访问 Spotify Web API 可以扫描您的 Spotify库。所需范围是:"}},user:{t:0,b:{t:2,i:[{t:3}],s:"授予访问权限"}},authorize:{t:0,b:{t:2,i:[{t:3}],s:"授权 Web API 访问"}},"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"授予对 Spotify Web API 的访问权限"}},reauthorize:{t:0,b:{t:2,i:[{t:3}],s:"请重新授权 Web API 访问权限,以授予 OwnTone 以下附加访问权限:"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},password:{t:0,b:{t:2,i:[{t:3}],s:"密码"}},username:{t:0,b:{t:2,i:[{t:3}],s:"用户名"}}},tabs:{artwork:{t:0,b:{t:2,i:[{t:3}],s:"封面"}},general:{t:0,b:{t:2,i:[{t:3}],s:"概览"}},"online-services":{t:0,b:{t:2,i:[{t:3}],s:"在线服务"}},"remotes-and-outputs":{t:0,b:{t:2,i:[{t:3}],s:"遥控和输出"}}}},spotify:{music:{"featured-playlists":{t:0,b:{t:2,i:[{t:3}],s:"特色列表"}},"new-releases":{t:0,b:{t:2,i:[{t:3}],s:"最新发行"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"未找到结果"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"搜索"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示专辑"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 个专辑"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示艺人"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 位艺人"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示播放列表"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 个播放列表"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"显示曲目"},{t:2,i:[{t:3,v:"显示所有 "},{t:4,k:"count"},{t:3,v:" 只曲目"}]}]}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"曲目"}}}}},playlist:{type:{folder:{t:0,b:{t:2,i:[{t:3}],s:"文件夹"}},plain:{t:0,b:{t:2,i:[{t:3}],s:"简单"}},smart:{t:0,b:{t:2,i:[{t:3}],s:"智能"}}}},player:{button:{consume:{t:0,b:{t:2,i:[{t:3}],s:"清除历史"}},pause:{t:0,b:{t:2,i:[{t:3}],s:"暂停"}},play:{t:0,b:{t:2,i:[{t:3}],s:"播放"}},repeat:{t:0,b:{t:2,i:[{t:3}],s:"重复播放所有曲目"}},"repeat-off":{t:0,b:{t:2,i:[{t:3}],s:"所有曲目仅播放一遍"}},"repeat-once":{t:0,b:{t:2,i:[{t:3}],s:"重复当前曲目"}},"seek-backward":{t:0,b:{t:2,i:[{t:3}],s:"在当前曲目后退"}},"seek-forward":{t:0,b:{t:2,i:[{t:3}],s:"在当前曲目前进"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"随机播放曲目"}},"shuffle-disabled":{t:0,b:{t:2,i:[{t:3}],s:"按顺序播放曲目"}},"skip-backward":{t:0,b:{t:2,i:[{t:3}],s:"播放上一首"}},"skip-forward":{t:0,b:{t:2,i:[{t:3}],s:"播放下一首"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"停止"}},"toggle-lyrics":{t:0,b:{t:2,i:[{t:3}],s:"显示/隐藏歌词"}}}},property:{"added-on":{t:0,b:{t:2,i:[{t:3}],s:"添加时间"}},album:{t:0,b:{t:2,i:[{t:3}],s:"专辑"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"张专辑"}},"album-artist":{t:0,b:{t:2,i:[{t:3}],s:"专辑艺人"}},artist:{t:0,b:{t:2,i:[{t:3}],s:"专辑艺人"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"艺人"}},comment:{t:0,b:{t:2,i:[{t:3}],s:"评论"}},composer:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"时长"}},genre:{t:0,b:{t:2,i:[{t:3}],s:"流派"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"流派"}},name:{t:0,b:{t:2,i:[{t:3}],s:"名称"}},owner:{t:0,b:{t:2,i:[{t:3}],s:"所有者"}},path:{t:0,b:{t:2,i:[{t:3}],s:"路径"}},playtime:{t:0,b:{t:2,i:[{t:3}],s:"总播放时长"}},popularity:{t:0,b:{t:2,i:[{t:3}],s:"流行度 / 粉丝数"}},position:{t:0,b:{t:2,i:[{t:3}],s:"盘符 / 曲目"}},quality:{t:0,b:{t:2,i:[{t:3}],s:"质量"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"评级"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"发行日期"}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"只曲目"}},type:{t:0,b:{t:2,i:[{t:3}],s:"类型"}},updated:{t:0,b:{t:2,i:[{t:3}],s:"更新于"}},uptime:{t:0,b:{t:2,i:[{t:3}],s:"运行时长"}},year:{t:0,b:{t:2,i:[{t:3}],s:"年份"}}},server:{"connection-failed":{t:0,b:{t:2,i:[{t:3}],s:"无法连接到 OwnTone 服务器"}},"request-failed":{t:0,b:{t:2,i:[{t:3,v:"请求失败 (状态:"},{t:4,k:"status"},{t:3,v:" "},{t:4,k:"cause"},{t:3,v:" "},{t:4,k:"url"},{t:3,v:")"}]}},"queue-saved":{t:0,b:{t:2,i:[{t:3,v:"清单以添加到播放列表 "},{t:4,k:"name"}]}},"appended-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3,v:"已附加到队列的 "},{t:4,k:"count"},{t:3,v:" 只曲目"}]},{t:2,i:[{t:3,v:"已附加到队列的 "},{t:4,k:"count"},{t:3,v:" 只曲目"}]}]}},"empty-queue":{t:0,b:{t:2,i:[{t:3}],s:"清单是空的"}}},"grouped-list":{today:{t:0,b:{t:2,i:[{t:3}],s:"今日"}},"last-week":{t:0,b:{t:2,i:[{t:3}],s:"上周"}},"last-month":{t:0,b:{t:2,i:[{t:3}],s:"上月"}},undefined:{t:0,b:{t:2,i:[{t:3}],s:"未定义"}}}}},{"zh-TW":{actions:{add:{t:0,b:{t:2,i:[{t:3}],s:"新增"}},"add-next":{t:0,b:{t:2,i:[{t:3}],s:"插播"}},"add-stream":{t:0,b:{t:2,i:[{t:3}],s:"新增串流"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"取消"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"清除"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"編輯"}},login:{t:0,b:{t:2,i:[{t:3}],s:"登入"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"退出"}},"hide-previous":{t:0,b:{t:2,i:[{t:3}],s:"隱藏歷史"}},"mark-all-played":{t:0,b:{t:2,i:[{t:3}],s:"全部標記為已播放"}},"mark-as-new":{t:0,b:{t:2,i:[{t:3}],s:"標記為最新"}},"mark-as-played":{t:0,b:{t:2,i:[{t:3}],s:"標記為已播放"}},pair:{t:0,b:{t:2,i:[{t:3}],s:"遙控配對"}},play:{t:0,b:{t:2,i:[{t:3}],s:"播放"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"移除"}},"remove-podcast":{t:0,b:{t:2,i:[{t:3}],s:"移除Podcast"}},rescan:{t:0,b:{t:2,i:[{t:3}],s:"重新掃描"}},save:{t:0,b:{t:2,i:[{t:3}],s:"儲存"}},send:{t:0,b:{t:2,i:[{t:3}],s:"發送"}},"show-more":{t:0,b:{t:2,i:[{t:3}],s:"顯示更多"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"隨機播放"}}},count:{albums:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 張專輯"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 張專輯"}]}]}},artists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位藝人"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位藝人"}]}]}},audiobooks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 個有聲書"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 個有聲書"}]}]}},authors:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作者"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作者"}]}]}},channels:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 信道"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 信道"}]}]}},composers:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作曲家"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 位作曲家"}]}]}},genres:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 個音樂類型"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 個音樂類型"}]}]}},playlists:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 個播放列表"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 個播放列表"}]}]}},podcasts:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 個Podcast"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 個Podcast"}]}]}},stations:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 個電台"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 個電台"}]}]}},tracks:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" 首曲目"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" 首曲目"}]}]}}},data:{kind:{file:{t:0,b:{t:2,i:[{t:3}],s:"文件"}},url:{t:0,b:{t:2,i:[{t:3}],s:"鏈接"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},pipe:{t:0,b:{t:2,i:[{t:3}],s:"串流"}}}},dialog:{add:{rss:{help:{t:0,b:{t:2,i:[{t:3}],s:"新增一個可生成播放列表的Podcast RSS鏈接,這將允許OwnTone管理訂閱"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-rss"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"處理中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"新增Podcast"}}},stream:{loading:{t:0,b:{t:2,i:[{t:3}],s:"載入中…"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"https://url-to-stream"}},processing:{t:0,b:{t:2,i:[{t:3}],s:"處理中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"新增串流"}}}},playlist:{save:{"playlist-name":{t:0,b:{t:2,i:[{t:3}],s:"播放列表名稱"}},saving:{t:0,b:{t:2,i:[{t:3}],s:"儲存中…"}},title:{t:0,b:{t:2,i:[{t:3}],s:"儲存播放清單到列表"}}}},"queue-item":{"quality-value":{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"channels"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}}},"remote-pairing":{"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"配對碼"}},title:{t:0,b:{t:2,i:[{t:3}],s:"請求遙控配對"}}},track:{"quality-value":{t:0,b:{t:2,i:[{t:4,k:"format"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"samplerate"},{t:3,v:" Hz "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"channels"},{t:3,v:" "},{t:9,v:"|"},{t:3,v:" "},{t:4,k:"bitrate"},{t:3,v:" kbit/s"}]}},"rating-value":{t:0,b:{t:2,i:[{t:4,k:"rating"},{t:3,v:" / 10"}]}}},update:{all:{t:0,b:{t:2,i:[{t:3}],s:"更新所有內容"}},feeds:{t:0,b:{t:2,i:[{t:3}],s:"僅更新RSS訂閱內容"}},info:{t:0,b:{t:2,i:[{t:3}],s:"掃描新的、刪除的和修改的文件"}},local:{t:0,b:{t:2,i:[{t:3}],s:"僅更新本地資料庫"}},progress:{t:0,b:{t:2,i:[{t:3}],s:"正在更新本地資料庫…"}},"rescan-metadata":{t:0,b:{t:2,i:[{t:3}],s:"重新掃描未修改文件的中繼資料"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"僅更新Spotify"}},title:{t:0,b:{t:2,i:[{t:3}],s:"更新資料庫"}}}},language:{de:{t:0,b:{t:2,i:[{t:3}],s:"德語 (Deutsch)"}},en:{t:0,b:{t:2,i:[{t:3}],s:"英語 (English)"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"法語 (Français)"}},"zh-CN":{t:0,b:{t:2,i:[{t:3}],s:"簡體中文"}},"zh-TW":{t:0,b:{t:2,i:[{t:3}],s:"繁體中文"}}},list:{albums:{info:{t:0,b:{t:2,i:[{t:3,v:"從資料庫中永久移除該Podcast嗎?"},{t:4,k:"separator"},{t:3,v:"(這也將移除RSS播放列表 "},{t:4,k:"name"},{t:3,v:")"}]}}},spotify:{"not-playable-track":{t:0,b:{t:2,i:[{t:3}],s:"曲目無法播放"}},"restriction-reason":{t:0,b:{t:2,i:[{t:3,v:",被限制原因:"},{t:4,k:"reason"}]}}}},media:{kind:{album:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},audiobook:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}},music:{t:0,b:{t:2,i:[{t:3}],s:"音樂"}},podcast:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}}}},navigation:{about:{t:0,b:{t:2,i:[{t:3}],s:"關於"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}},"now-playing":{t:0,b:{t:2,i:[{t:3,v:" - "},{t:4,k:"album"}]}},"stream-error":{t:0,b:{t:2,i:[{t:3}],s:"HTTP串流錯誤:串流載入失敗或者由於網絡原因無法載入"}},stream:{t:0,b:{t:2,i:[{t:3}],s:"HTTP串流"}},volume:{t:0,b:{t:2,i:[{t:3}],s:"音量"}},files:{t:0,b:{t:2,i:[{t:3}],s:"文件"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}},music:{t:0,b:{t:2,i:[{t:3}],s:"音樂"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"電台"}},search:{t:0,b:{t:2,i:[{t:3}],s:"搜尋"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"設定"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},"update-library":{t:0,b:{t:2,i:[{t:3}],s:"更新資料庫"}}},options:{filter:{"hide-singles":{t:0,b:{t:2,i:[{t:3}],s:"隱藏單曲"}},"hide-singles-help":{t:0,b:{t:2,i:[{t:3}],s:"如果處於活動狀態,則隱藏單曲和與其關聯的任何內容"}},"hide-spotify":{t:0,b:{t:2,i:[{t:3}],s:"隱藏來自Spotify的內容"}},"hide-spotify-help":{t:0,b:{t:2,i:[{t:3}],s:"如果處於活動狀態,則隱藏 Spotify 中的內容"}},title:{t:0,b:{t:2,i:[{t:3}],s:"篩選"}}},sort:{"artist-name":{t:0,b:{t:2,i:[{t:3}],s:"藝人 › 名稱"}},"artist-date":{t:0,b:{t:2,i:[{t:3}],s:"藝人 › 發行日期"}},name:{t:0,b:{t:2,i:[{t:3}],s:"名稱"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"評級"}},"recently-added":{t:0,b:{t:2,i:[{t:3}],s:"最近新增"}},"recently-released":{t:0,b:{t:2,i:[{t:3}],s:"最近發行"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"發行日期"}},title:{t:0,b:{t:2,i:[{t:3}],s:"分類"}}}},page:{about:{"built-with":{t:0,b:{t:2,i:[{t:3,v:"界面貢獻者包括 "},{t:4,k:"bulma"},{t:3,v:","},{t:4,k:"mdi"},{t:3,v:","},{t:4,k:"vuejs"},{t:3,v:","},{t:4,k:"axios"},{t:3,v:" 和 "},{t:4,k:"others"}]}},"compiled-with":{t:0,b:{t:2,i:[{t:3,v:"編譯支持來自於 "},{t:4,k:"options"}]}},library:{t:0,b:{t:2,i:[{t:3}],s:"資料庫"}},more:{t:0,b:{t:2,i:[{t:3}],s:"更多"}},update:{t:0,b:{t:2,i:[{t:3}],s:"更新"}},version:{t:0,b:{t:2,i:[{t:3,v:"版本 "},{t:4,k:"version"}]}}},albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}}},audiobooks:{albums:{title:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}}},artists:{title:{t:0,b:{t:2,i:[{t:3}],s:"作者"}}},tabs:{authors:{t:0,b:{t:2,i:[{t:3}],s:"作者"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}}}},composers:{title:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}}},files:{title:{t:0,b:{t:2,i:[{t:3}],s:"文件"}}},genres:{title:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}}},music:{"recently-added":{title:{t:0,b:{t:2,i:[{t:3}],s:"最近新增"}}},"recently-played":{title:{t:0,b:{t:2,i:[{t:3}],s:"最近播放"}}},tabs:{albums:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}},history:{t:0,b:{t:2,i:[{t:3}],s:"歷史"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},"now-playing":{info:{t:0,b:{t:2,i:[{t:3}],s:"瀏覽資料庫新增曲目"}},live:{t:0,b:{t:2,i:[{t:3}],s:"直播"}},title:{t:0,b:{t:2,i:[{t:3}],s:"播放清單是空的"}}},playlists:{title:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}}},podcast:{"remove-info":{t:0,b:{t:2,i:[{t:3,v:"從資料庫中永久移除該Podcast?"},{t:4,k:"separator"},{t:3,v:"(這也將移除該PodcastRSS列表 "},{t:4,k:"name"},{t:3,v:")"}]}}},podcasts:{"new-episodes":{t:0,b:{t:2,i:[{t:3}],s:"最新單集"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}},update:{t:0,b:{t:2,i:[{t:3}],s:"更新"}}},queue:{title:{t:0,b:{t:2,i:[{t:3}],s:"清單"}}},radio:{title:{t:0,b:{t:2,i:[{t:3}],s:"電台"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}},audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}},composers:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},expression:{t:0,b:{t:2,i:[{t:3}],s:"表達式"}},help:{t:0,b:{t:2,i:[{t:3,v:"提示:如果您使用 "},{t:4,k:"query"},{t:3,v:" 前綴,則可以通過智能播放列表查詢語言 "},{t:4,k:"help"},{t:3,v:" 進行搜尋"}]}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"未找到結果"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"搜尋"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示專輯"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 個專輯"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示藝人"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 位藝人"}]}]}},"show-audiobooks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示有聲書"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 本有聲書"}]}]}},"show-composers":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示作曲家"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 位作曲家"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示播放列表"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 個播放列表"}]}]}},"show-podcasts":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示Podcast"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 個Podcast"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示曲目"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 首曲目"}]}]}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"曲目"}},tabs:{library:{t:0,b:{t:2,i:[{t:3}],s:"資料庫"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}}},settings:{artwork:{title:{t:0,b:{t:2,i:[{t:3}],s:"封面"}},coverartarchive:{t:0,b:{t:2,i:[{t:3}],s:"Cover Art Archive"}},discogs:{t:0,b:{t:2,i:[{t:3}],s:"Discogs"}},"explanation-1":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone支持PNG和 JPEG封面,這些封面可以作為單獨的圖像文件放置在庫中或嵌入到媒體文件中,也可以通過電台在線提供"}},"explanation-2":{t:0,b:{t:2,i:[{t:3}],s:"除此之外,您還可以從以下素材提供者獲取封面:"}},"show-coverart":{t:0,b:{t:2,i:[{t:3}],s:"在專輯列表中顯示封面藝術作品"}},spotify:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"忽略電台提供的作品"}}},devices:{"no-active-pairing":{t:0,b:{t:2,i:[{t:3}],s:"沒有活躍的配對請求"}},"pairing-code":{t:0,b:{t:2,i:[{t:3}],s:"配對代碼"}},"pairing-request":{t:0,b:{t:2,i:[{t:3}],s:"遠程配對請求來自於 "}},pairing:{t:0,b:{t:2,i:[{t:3}],s:"遙控配對"}},"speaker-pairing-info":{t:0,b:{t:2,i:[{t:3}],s:"如果您的揚聲器需要配對,請在下面輸入它顯示的 PIN以啓用"}},"speaker-pairing":{t:0,b:{t:2,i:[{t:3}],s:"揚聲器配對和設備驗證"}},"verification-code":{t:0,b:{t:2,i:[{t:3}],s:"驗證碼"}},verify:{t:0,b:{t:2,i:[{t:3}],s:"驗證"}}},general:{audiobooks:{t:0,b:{t:2,i:[{t:3}],s:"有聲書"}},files:{t:0,b:{t:2,i:[{t:3}],s:"文件"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}},language:{t:0,b:{t:2,i:[{t:3}],s:"語言"}},music:{t:0,b:{t:2,i:[{t:3}],s:"音樂"}},"navigation-item-selection-info":{t:0,b:{t:2,i:[{t:3}],s:"如果您選擇的項目多於屏幕上可以顯示的項目,則側邊欄菜單將會消失"}},"navigation-item-selection":{t:0,b:{t:2,i:[{t:3}],s:"選擇頂部導航欄菜單項"}},"navigation-items":{t:0,b:{t:2,i:[{t:3}],s:"導航條"}},"now-playing-page":{t:0,b:{t:2,i:[{t:3}],s:"“正在播放”頁面"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},podcasts:{t:0,b:{t:2,i:[{t:3}],s:"Podcast"}},radio:{t:0,b:{t:2,i:[{t:3}],s:"電台"}},"recently-added-page-info":{t:0,b:{t:2,i:[{t:3}],s:"限制顯示的相簿數量"}},"recently-added-page":{t:0,b:{t:2,i:[{t:3}],s:"“最近新增”頁面"}},search:{t:0,b:{t:2,i:[{t:3}],s:"搜尋"}},"show-composer-genres-help":{t:0,b:{t:2,i:[{t:3,v:"以逗號分隔的音樂類型清單,將顯示作曲家的音樂類型"},{t:5,i:0},{t:3,v:"留空以始終顯示作曲家"},{t:5,i:0},{t:3,v:"通過檢查是否包含定義的音樂類型之一來匹配當前曲目的音樂類型標籤。例如,設定為“古典、原聲帶”將顯示音樂類型標籤為“當代古典”的曲目的作曲家"}]}},"show-composer-genres":{t:0,b:{t:2,i:[{t:3}],s:"僅顯示列出的音樂類型的作曲家"}},"show-composer-info":{t:0,b:{t:2,i:[{t:3}],s:"如果啟用,則會顯示目前播放曲目的作曲家"}},"show-composer":{t:0,b:{t:2,i:[{t:3}],s:"顯示作曲家"}},"show-path":{t:0,b:{t:2,i:[{t:3}],s:"顯示檔案路徑"}}},services:{lastfm:{"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"使用您的 Last.fm 用戶名和密碼登入以啓用記錄功能"}},info:{t:0,b:{t:2,i:[{t:3}],s:"OwnTone不會存儲您的 Last.fm 用戶名/密碼,僅存儲會話密鑰。會話密鑰不會過期"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Last.fm"}},"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone並無Last.fm的官方支持"}}},spotify:{"no-support":{t:0,b:{t:2,i:[{t:3}],s:"OwnTone並無 Spotify 官方的支持,也未安裝 libspotify"}},"logged-as":{t:0,b:{t:2,i:[{t:3}],s:"登入為 "}},requirements:{t:0,b:{t:2,i:[{t:3}],s:"您必須擁有 Spotify付費帳戶。訪問 Spotify Web API 可以掃描您的 Spotify庫。所需範圍是:"}},user:{t:0,b:{t:2,i:[{t:3}],s:"授予訪問權限"}},authorize:{t:0,b:{t:2,i:[{t:3}],s:"授權 Web API 訪問"}},"grant-access":{t:0,b:{t:2,i:[{t:3}],s:"授予對 Spotify Web API 的訪問權限"}},reauthorize:{t:0,b:{t:2,i:[{t:3}],s:"請重新授權 Web API 訪問權限,以授予 OwnTone 以下附加訪問權限:"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Spotify"}}},password:{t:0,b:{t:2,i:[{t:3}],s:"密碼"}},username:{t:0,b:{t:2,i:[{t:3}],s:"用戶名"}}},tabs:{artwork:{t:0,b:{t:2,i:[{t:3}],s:"封面"}},general:{t:0,b:{t:2,i:[{t:3}],s:"概覽"}},"online-services":{t:0,b:{t:2,i:[{t:3}],s:"在線服務"}},"remotes-and-outputs":{t:0,b:{t:2,i:[{t:3}],s:"遙控和輸出"}}}},spotify:{music:{"featured-playlists":{t:0,b:{t:2,i:[{t:3}],s:"特色列表"}},"new-releases":{t:0,b:{t:2,i:[{t:3}],s:"最新發行"}}},search:{albums:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}},"no-results":{t:0,b:{t:2,i:[{t:3}],s:"未找到結果"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"搜尋"}},playlists:{t:0,b:{t:2,i:[{t:3}],s:"播放列表"}},"show-albums":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示專輯"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 個專輯"}]}]}},"show-artists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示藝人"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 位藝人"}]}]}},"show-playlists":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示播放列表"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 個播放列表"}]}]}},"show-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3}],s:"顯示曲目"},{t:2,i:[{t:3,v:"顯示所有 "},{t:4,k:"count"},{t:3,v:" 首曲目"}]}]}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"曲目"}}}}},playlist:{type:{folder:{t:0,b:{t:2,i:[{t:3}],s:"檔案夾"}},plain:{t:0,b:{t:2,i:[{t:3}],s:"簡單"}},smart:{t:0,b:{t:2,i:[{t:3}],s:"智能"}}}},player:{button:{consume:{t:0,b:{t:2,i:[{t:3}],s:"清除歷史"}},pause:{t:0,b:{t:2,i:[{t:3}],s:"暫停"}},play:{t:0,b:{t:2,i:[{t:3}],s:"播放"}},repeat:{t:0,b:{t:2,i:[{t:3}],s:"重復播放所有曲目"}},"repeat-off":{t:0,b:{t:2,i:[{t:3}],s:"所有曲目僅播放一遍"}},"repeat-once":{t:0,b:{t:2,i:[{t:3}],s:"重復當前曲目"}},"seek-backward":{t:0,b:{t:2,i:[{t:3}],s:"在當前曲目後退"}},"seek-forward":{t:0,b:{t:2,i:[{t:3}],s:"在當前曲目前進"}},shuffle:{t:0,b:{t:2,i:[{t:3}],s:"隨機播放曲目"}},"shuffle-disabled":{t:0,b:{t:2,i:[{t:3}],s:"按順序播放曲目"}},"skip-backward":{t:0,b:{t:2,i:[{t:3}],s:"播放上一首"}},"skip-forward":{t:0,b:{t:2,i:[{t:3}],s:"播放下一首"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"停止"}},"toggle-lyrics":{t:0,b:{t:2,i:[{t:3}],s:"顯示/隱藏歌詞"}}}},property:{"added-on":{t:0,b:{t:2,i:[{t:3}],s:"新增時間"}},album:{t:0,b:{t:2,i:[{t:3}],s:"專輯"}},albums:{t:0,b:{t:2,i:[{t:3}],s:"張專輯"}},"album-artist":{t:0,b:{t:2,i:[{t:3}],s:"專輯藝人"}},artist:{t:0,b:{t:2,i:[{t:3}],s:"專輯藝人"}},artists:{t:0,b:{t:2,i:[{t:3}],s:"藝人"}},comment:{t:0,b:{t:2,i:[{t:3}],s:"評論"}},composer:{t:0,b:{t:2,i:[{t:3}],s:"作曲家"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"時長"}},genre:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}},genres:{t:0,b:{t:2,i:[{t:3}],s:"音樂類型"}},name:{t:0,b:{t:2,i:[{t:3}],s:"名稱"}},owner:{t:0,b:{t:2,i:[{t:3}],s:"所有者"}},path:{t:0,b:{t:2,i:[{t:3}],s:"路徑"}},playtime:{t:0,b:{t:2,i:[{t:3}],s:"總播放時長"}},popularity:{t:0,b:{t:2,i:[{t:3}],s:"流行度 / 粉絲數"}},position:{t:0,b:{t:2,i:[{t:3}],s:"盤符 / 曲目"}},quality:{t:0,b:{t:2,i:[{t:3}],s:"品質"}},rating:{t:0,b:{t:2,i:[{t:3}],s:"評級"}},"release-date":{t:0,b:{t:2,i:[{t:3}],s:"發行日期"}},tracks:{t:0,b:{t:2,i:[{t:3}],s:"曲目"}},type:{t:0,b:{t:2,i:[{t:3}],s:"類型"}},updated:{t:0,b:{t:2,i:[{t:3}],s:"更新於"}},uptime:{t:0,b:{t:2,i:[{t:3}],s:"運行時長"}},year:{t:0,b:{t:2,i:[{t:3}],s:"年份"}}},server:{"connection-failed":{t:0,b:{t:2,i:[{t:3}],s:"無法連接到 OwnTone 伺服器"}},"request-failed":{t:0,b:{t:2,i:[{t:3,v:"請求失敗 (狀態:"},{t:4,k:"status"},{t:3,v:" "},{t:4,k:"cause"},{t:3,v:" "},{t:4,k:"url"},{t:3,v:")"}]}},"queue-saved":{t:0,b:{t:2,i:[{t:3,v:"清單以新增到播放列表 "},{t:4,k:"name"}]}},"appended-tracks":{t:0,b:{t:1,c:[{t:2,i:[{t:3,v:"已附加到隊列的 "},{t:4,k:"count"},{t:3,v:" 首曲目"}]},{t:2,i:[{t:3,v:"已附加到隊列的 "},{t:4,k:"count"},{t:3,v:" 首曲目"}]}]}},"empty-queue":{t:0,b:{t:2,i:[{t:3}],s:"清單是空的"}}},"grouped-list":{today:{t:0,b:{t:2,i:[{t:3}],s:"今日"}},"last-week":{t:0,b:{t:2,i:[{t:3}],s:"上周"}},"last-month":{t:0,b:{t:2,i:[{t:3}],s:"上月"}},undefined:{t:0,b:{t:2,i:[{t:3}],s:"未定義"}}}}}),Mu=gO({fallbackLocale:"en",fallbackWarn:!1,locale:navigator.language,messages:AO,missingWarn:!1}),$s=hs("NotificationsStore",{actions:{add(t){const e={id:this.nextId++,text:t.text,timeout:t.timeout,topic:t.topic,type:t.type};if(e.topic){const n=this.list.findIndex(s=>s.topic===e.topic);if(n>=0){this.list.splice(n,1,e);return}}this.list.push(e),t.timeout>0&&setTimeout(()=>{this.remove(e)},t.timeout)},remove(t){const e=this.list.indexOf(t);e!==-1&&this.list.splice(e,1)}},state:()=>({list:[],nextId:1})}),qi=hs("ConfigurationStore",{state:()=>({allow_modifying_stored_playlists:!1,buildoptions:[],default_playlist_directory:"",library_name:"",version:"",websocket_port:0})}),Jn=hs("PlayerStore",{getters:{isPlaying:t=>t.state==="play",isRepeatAll:t=>t.repeat==="all",isRepeatOff:t=>t.repeat==="off",isRepeatSingle:t=>t.repeat==="single",isStopped:t=>t.state==="stop"},state:()=>({consume:!1,item_id:0,item_length_ms:0,item_progress_ms:0,repeat:"off",shuffle:!1,state:"stop",volume:0})}),Cs=hs("QueueStore",{getters:{current(t){const e=Jn();return t.items.find(n=>n.id===e.item_id)??{}},isEmpty(t){return t.items.length===0},isPauseAllowed(t){return t.current&&t.current.data_kind!=="pipe"},isSavingAllowed(t){const e=qi();return e.allow_modifying_stored_playlists&&e.default_playlist_directory}},state:()=>({count:0,items:[],version:0})}),{t:Yr}=Mu.global;ut.interceptors.response.use(t=>t,t=>(t.request.status&&t.request.responseURL&&$s().add({text:Yr("server.request-failed",{cause:t.request.statusText,status:t.request.status,url:t.request.responseURL}),type:"danger"}),Promise.reject(t)));const tt={config(){return ut.get("./api/config")},lastfm(){return ut.get("./api/lastfm")},lastfm_login(t){return ut.post("./api/lastfm-login",t)},lastfm_logout(){return ut.get("./api/lastfm-logout")},library_add(t){return ut.post("./api/library/add",null,{params:{url:t}})},library_album(t){return ut.get(`./api/library/albums/${t}`)},library_album_track_update(t,e){return ut.put(`./api/library/albums/${t}/tracks`,null,{params:e})},library_album_tracks(t,e={limit:-1,offset:0}){return ut.get(`./api/library/albums/${t}/tracks`,{params:e})},library_albums(t){return ut.get("./api/library/albums",{params:{media_kind:t}})},library_artist(t){return ut.get(`./api/library/artists/${t}`)},library_artist_albums(t){return ut.get(`./api/library/artists/${t}/albums`)},library_artist_tracks(t){const e={expression:`songartistid is "${t}"`,type:"tracks"};return ut.get("./api/search",{params:e})},library_artists(t){return ut.get("./api/library/artists",{params:{media_kind:t}})},library_composer(t){return ut.get(`./api/library/composers/${encodeURIComponent(t)}`)},library_composer_albums(t){const e={expression:`composer is "${t}" and media_kind is music`,type:"albums"};return ut.get("./api/search",{params:e})},library_composer_tracks(t){const e={expression:`composer is "${t}" and media_kind is music`,type:"tracks"};return ut.get("./api/search",{params:e})},library_composers(t){return ut.get("./api/library/composers",{params:{media_kind:t}})},library_count(t){return ut.get(`./api/library/count?expression=${t}`)},library_files(t){return ut.get("./api/library/files",{params:{directory:t}})},library_genre(t,e){const n={expression:`genre is "${t}" and media_kind is ${e}`,type:"genres"};return ut.get("./api/search",{params:n})},library_genre_albums(t,e){const n={expression:`genre is "${t}" and media_kind is ${e}`,type:"albums"};return ut.get("./api/search",{params:n})},library_genre_tracks(t,e){const n={expression:`genre is "${t}" and media_kind is ${e}`,type:"tracks"};return ut.get("./api/search",{params:n})},library_genres(t){const e={expression:`media_kind is ${t}`,type:"genres"};return ut.get("./api/search",{params:e})},library_playlist(t){return ut.get(`./api/library/playlists/${t}`)},library_playlist_delete(t){return ut.delete(`./api/library/playlists/${t}`,null)},library_playlist_folder(t=0){return ut.get(`./api/library/playlists/${t}/playlists`)},library_playlist_tracks(t){return ut.get(`./api/library/playlists/${t}/tracks`)},library_podcast_episodes(t){const e={expression:`media_kind is podcast and songalbumid is "${t}" ORDER BY date_released DESC`,type:"tracks"};return ut.get("./api/search",{params:e})},library_podcasts_new_episodes(){const t={expression:"media_kind is podcast and play_count = 0 ORDER BY time_added DESC",type:"tracks"};return ut.get("./api/search",{params:t})},library_radio_streams(){const t={expression:"data_kind is url and song_length = 0",media_kind:"music",type:"tracks"};return ut.get("./api/search",{params:t})},library_rescan(t){return ut.put("./api/rescan",null,{params:{scan_kind:t}})},library_stats(){return ut.get("./api/library")},library_track(t){return ut.get(`./api/library/tracks/${t}`)},library_track_playlists(t){return ut.get(`./api/library/tracks/${t}/playlists`)},library_track_update(t,e={}){return ut.put(`./api/library/tracks/${t}`,null,{params:e})},library_update(t){return ut.put("./api/update",null,{params:{scan_kind:t}})},output_toggle(t){return ut.put(`./api/outputs/${t}/toggle`)},output_update(t,e){return ut.put(`./api/outputs/${t}`,e)},outputs(){return ut.get("./api/outputs")},pairing(){return ut.get("./api/pairing")},pairing_kickoff(t){return ut.post("./api/pairing",t)},player_consume(t){return ut.put(`./api/player/consume?state=${t}`)},player_next(){return ut.put("./api/player/next")},player_output_volume(t,e){return ut.put(`./api/player/volume?volume=${e}&output_id=${t}`)},player_pause(){return ut.put("./api/player/pause")},player_play(t={}){return ut.put("./api/player/play",null,{params:t})},player_play_expression(t,e,n){const s={clear:"true",expression:t,playback:"start",playback_from_position:n,shuffle:e};return ut.post("./api/queue/items/add",null,{params:s})},player_play_uri(t,e,n){const s={clear:"true",playback:"start",playback_from_position:n,shuffle:e,uris:t};return ut.post("./api/queue/items/add",null,{params:s})},player_previous(){return ut.put("./api/player/previous")},player_repeat(t){return ut.put(`./api/player/repeat?state=${t}`)},player_seek(t){return ut.put(`./api/player/seek?seek_ms=${t}`)},player_seek_to_pos(t){return ut.put(`./api/player/seek?position_ms=${t}`)},player_shuffle(t){return ut.put(`./api/player/shuffle?state=${t}`)},player_status(){return ut.get("./api/player")},player_stop(){return ut.put("./api/player/stop")},player_volume(t){return ut.put(`./api/player/volume?volume=${t}`)},queue(){return ut.get("./api/queue")},async queue_add(t){const e=await ut.post(`./api/queue/items/add?uris=${t}`);return $s().add({text:Yr("server.appended-tracks",{count:e.data.count}),timeout:2e3,type:"info"}),await Promise.resolve(e)},async queue_add_next(t){let e=0;const{current:n}=Cs();n!=null&&n.id&&(e=n.position+1);const s=await ut.post(`./api/queue/items/add?uris=${t}&position=${e}`);return $s().add({text:Yr("server.appended-tracks",{count:s.data.count}),timeout:2e3,type:"info"}),await Promise.resolve(s)},queue_clear(){return ut.put("./api/queue/clear")},async queue_expression_add(t){const e=await ut.post("./api/queue/items/add",null,{params:{expression:t}});return $s().add({text:Yr("server.appended-tracks",{count:e.data.count}),timeout:2e3,type:"info"}),await Promise.resolve(e)},async queue_expression_add_next(t){const e={};e.expression=t,e.position=0;const{current:n}=Cs();n!=null&&n.id&&(e.position=n.position+1);const s=await ut.post("./api/queue/items/add",null,{params:e});return $s().add({text:Yr("server.appended-tracks",{count:s.data.count}),timeout:2e3,type:"info"}),await Promise.resolve(s)},queue_move(t,e){return ut.put(`./api/queue/items/${t}?new_position=${e}`)},queue_remove(t){return ut.delete(`./api/queue/items/${t}`)},async queue_save_playlist(t){const e=await ut.post("./api/queue/save",null,{params:{name:t}});return $s().add({text:Yr("server.queue-saved",{name:t}),timeout:2e3,type:"info"}),await Promise.resolve(e)},search(t){return ut.get("./api/search",{params:t})},settings(){return ut.get("./api/settings")},settings_update(t,e){return ut.put(`./api/settings/${t}/${e.name}`,e)},spotify(){return ut.get("./api/spotify")},spotify_logout(){return ut.get("./api/spotify-logout")}},OO={name:"ModalDialogRemotePairing",components:{ModalDialog:gi},props:{show:Boolean},emits:["close"],setup(){return{remoteStore:Yh()}},data(){return{pairing_req:{pin:""}}},computed:{actions(){return[{handler:this.cancel,icon:"cancel",key:"actions.cancel"},{handler:this.pair,icon:"cellphone",key:"actions.pair"}]},pairing(){return this.remoteStore.pairing}},watch:{show(){this.show&&(this.loading=!1,setTimeout(()=>{this.$refs.pin_field.focus()},10))}},methods:{cancel(){this.$emit("close")},pair(){tt.pairing_kickoff(this.pairing_req).then(()=>{this.pairing_req.pin=""})}}},xO=["textContent"],IO={class:"field"},NO={class:"control"},PO=["placeholder"];function DO(t,e,n,s,i,r){const o=C("modal-dialog");return O(),_t(o,{actions:r.actions,show:n.show,title:t.$t("dialog.remote-pairing.title"),onClose:e[2]||(e[2]=a=>t.$emit("close"))},{content:M(()=>[S("form",{onSubmit:e[1]||(e[1]=Ie((...a)=>r.pair&&r.pair(...a),["prevent"]))},[S("label",{class:"label",textContent:j(r.pairing.remote)},null,8,xO),S("div",IO,[S("div",NO,[xn(S("input",{ref:"pin_field","onUpdate:modelValue":e[0]||(e[0]=a=>i.pairing_req.pin=a),class:"input",inputmode:"numeric",pattern:"[\\d]{4}",placeholder:t.$t("dialog.remote-pairing.pairing-code")},null,8,PO),[[Zn,i.pairing_req.pin]])])])],32)]),_:1},8,["actions","show","title"])}const RO=it(OO,[["render",DO]]),MO={name:"ControlSwitch",props:{modelValue:Boolean},emits:["update:modelValue"]},LO={class:"field mb-0 is-flex is-align-items-center"},$O={class:"toggle is-flex is-align-items-center"},FO={class:"control is-flex is-align-items-center"},VO=["checked"],HO={key:0,class:"help mb-4"};function UO(t,e,n,s,i,r){return O(),L(ht,null,[S("div",LO,[S("label",$O,[S("div",FO,[S("input",{checked:n.modelValue,type:"checkbox",class:"toggle-checkbox is-hidden",onChange:e[0]||(e[0]=o=>t.$emit("update:modelValue",!n.modelValue))},null,40,VO),e[1]||(e[1]=S("div",{class:"toggle-switch"},null,-1))]),ye(t.$slots,"label",{},void 0,!0)])]),t.$slots.help?(O(),L("div",HO,[ye(t.$slots,"help",{},void 0,!0)])):yt("",!0)],64)}const Dr=it(MO,[["render",UO],["__scopeId","data-v-2fe564ab"]]),Lu=hs("LibraryStore",{state:()=>({albums:0,artists:0,db_playtime:0,rss:{},songs:0,started_at:"01",update_dialog_scan_kind:"",updated_at:"01",updating:!1})}),je=hs("ServicesStore",{actions:{isSpotifyEnabled(){return this.spotify.webapi_token_valid}},state:()=>({lastfm:{},spotify:{}})}),jO={name:"ModalDialogUpdate",components:{ControlSwitch:Dr,ModalDialog:gi},props:{show:Boolean},emits:["close"],setup(){return{libraryStore:Lu(),servicesStore:je()}},data(){return{rescan_metadata:!1}},computed:{actions(){const t=[{handler:this.cancel,icon:"cancel",key:"actions.cancel"}];return this.libraryStore.updating||t.push({handler:this.analyse,icon:"check",key:"actions.rescan"}),t},rss(){return this.libraryStore.rss}},methods:{analyse(){this.rescan_metadata?tt.library_rescan(this.libraryStore.update_dialog_scan_kind):tt.library_update(this.libraryStore.update_dialog_scan_kind)},cancel(){this.$emit("close"),this.libraryStore.update_dialog_scan_kind=""}}},BO={key:0},WO={key:0,class:"field"},qO=["textContent"],GO={class:"control"},zO={class:"select is-small"},KO=["textContent"],XO=["textContent"],YO=["textContent"],ZO=["textContent"],JO=["textContent"],QO={key:1},tx=["textContent"];function ex(t,e,n,s,i,r){const o=C("control-switch"),a=C("modal-dialog");return O(),_t(a,{actions:r.actions,show:n.show,title:t.$t("dialog.update.title"),onClose:e[2]||(e[2]=l=>t.$emit("close"))},{content:M(()=>[s.libraryStore.updating?(O(),L("div",QO,[S("p",{class:"mb-3",textContent:j(t.$t("dialog.update.progress"))},null,8,tx)])):(O(),L("div",BO,[s.servicesStore.isSpotifyEnabled||r.rss.tracks>0?(O(),L("div",WO,[S("label",{class:"label",textContent:j(t.$t("dialog.update.info"))},null,8,qO),S("div",GO,[S("div",zO,[xn(S("select",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.libraryStore.update_dialog_scan_kind=l)},[S("option",{value:"",textContent:j(t.$t("dialog.update.all"))},null,8,KO),S("option",{value:"files",textContent:j(t.$t("dialog.update.local"))},null,8,XO),s.servicesStore.isSpotifyEnabled?(O(),L("option",{key:0,value:"spotify",textContent:j(t.$t("dialog.update.spotify"))},null,8,YO)):yt("",!0),r.rss.tracks>0?(O(),L("option",{key:1,value:"rss",textContent:j(t.$t("dialog.update.feeds"))},null,8,ZO)):yt("",!0)],512),[[Xh,s.libraryStore.update_dialog_scan_kind]])])])])):yt("",!0),E(o,{modelValue:i.rescan_metadata,"onUpdate:modelValue":e[1]||(e[1]=l=>i.rescan_metadata=l)},{label:M(()=>[S("span",{textContent:j(t.$t("dialog.update.rescan-metadata"))},null,8,JO)]),_:1},8,["modelValue"])]))]),_:1},8,["actions","show","title"])}const nx=it(jO,[["render",ex]]),Un=hs("UIStore",{actions:{hideMenus(){this.showBurgerMenu=!1,this.showPlayerMenu=!1},toggleBurgerMenu(){this.showPlayerMenu=!1,this.showBurgerMenu=!this.showBurgerMenu},togglePlayerMenu(){this.showBurgerMenu=!1,this.showPlayerMenu=!this.showPlayerMenu},toggleHideReadItems(){this.hideReadItems=!this.hideReadItems}},state:()=>({albums_sort:1,artist_albums_sort:1,artist_tracks_sort:1,artists_sort:1,composer_tracks_sort:1,genre_tracks_sort:1,hideReadItems:!1,hideSingles:!1,hideSpotify:!1,showBurgerMenu:!1,showPlayerMenu:!1,showUpdateDialog:!1})}),sx={name:"ControlLink",props:{to:{required:!0,type:Object}},setup(){return{uiStore:Un()}},methods:{open(){this.uiStore.hideMenus(),this.$router.push(this.to)}}},ix=["href"];function rx(t,e,n,s,i,r){return O(),L("a",{href:t.$router.resolve(n.to).href,onClick:e[0]||(e[0]=Ie((...o)=>r.open&&r.open(...o),["stop","prevent"]))},[ye(t.$slots,"default")],8,ix)}const B0=it(sx,[["render",rx]]),ox={name:"ControlSlider",props:{disabled:Boolean,max:{required:!0,type:Number},value:{required:!0,type:Number}},emits:["update:value"],computed:{ratio(){return this.value/this.max}}},ax=["value","disabled","max"];function lx(t,e,n,s,i,r){return O(),L("input",{value:n.value,disabled:n.disabled,class:Vt(["slider",{"is-inactive":n.disabled}]),max:n.max,type:"range",style:hi({"--ratio":r.ratio}),onInput:e[0]||(e[0]=o=>t.$emit("update:value",o.target.valueAsNumber))},null,46,ax)}const $u=it(ox,[["render",lx],["__scopeId","data-v-d0c7e339"]]),cx={name:"ControlVolume",components:{ControlSlider:$u},setup(){return{player:Jn()}},data(){return{old_volume:0}},computed:{icon(){return this.player.volume>0?"volume-high":"volume-off"}},watch:{"player.volume"(){this.player.volume>0&&(this.old_volume=this.player.volume)}},methods:{changeVolume(t){tt.player_volume(this.player.volume)},toggle(){this.player.volume=this.player.volume>0?0:this.old_volume,this.changeVolume()}}},ux={class:"media is-align-items-center mb-0"},dx={class:"media-left"},fx={class:"media-content"},hx=["textContent"];function px(t,e,n,s,i,r){const o=C("mdicon"),a=C("control-slider");return O(),L("div",ux,[S("div",dx,[S("button",{class:"button is-small",onClick:e[0]||(e[0]=(...l)=>r.toggle&&r.toggle(...l))},[E(o,{class:"icon",name:r.icon},null,8,["name"])])]),S("div",fx,[S("div",{class:"is-size-7 is-uppercase",textContent:j(t.$t("navigation.volume"))},null,8,hx),E(a,{value:s.player.volume,"onUpdate:value":e[1]||(e[1]=l=>s.player.volume=l),max:100,onChange:r.changeVolume},null,8,["value","onChange"])])])}const mx=it(cx,[["render",px]]),gx={name:"ControlOutputVolume",components:{ControlSlider:$u},props:{output:{required:!0,type:Object}},data(){return{volume:this.output.selected?this.output.volume:0}},computed:{icon(){return this.output.type.startsWith("AirPlay")?"cast-variant":this.output.type==="Chromecast"?"cast":this.output.type==="fifo"?"pipe":"server"}},watch:{output(){this.volume=this.output.volume}},methods:{changeVolume(){tt.player_output_volume(this.output.id,this.volume)},toggle(){const t={selected:!this.output.selected};tt.output_update(this.output.id,t)}}},yx={class:"media is-align-items-center mb-0"},bx={class:"media-left"},vx={class:"media-content"},_x=["textContent"];function Sx(t,e,n,s,i,r){const o=C("mdicon"),a=C("control-slider");return O(),L("div",yx,[S("div",bx,[S("button",{class:Vt(["button is-small",{"has-text-grey-light":!n.output.selected}]),onClick:e[0]||(e[0]=(...l)=>r.toggle&&r.toggle(...l))},[E(o,{class:"icon",name:r.icon,title:n.output.type},null,8,["name","title"])],2)]),S("div",vx,[S("div",{class:Vt(["is-size-7 is-uppercase",{"has-text-grey-light":!n.output.selected}]),textContent:j(n.output.name)},null,10,_x),E(a,{value:i.volume,"onUpdate:value":e[1]||(e[1]=l=>i.volume=l),disabled:!n.output.selected,max:100,onChange:r.changeVolume},null,8,["value","disabled","onChange"])])])}const Ex=it(gx,[["render",Sx]]),wx={name:"ControlPlayerBack",props:{offset:{required:!0,type:Number}},setup(){return{playerStore:Jn(),queueStore:Cs()}},computed:{disabled(){var t;return((t=this.queueStore)==null?void 0:t.count)<=0||this.playerStore.isStopped||this.queueStore.current.data_kind==="pipe"},visible(){return["podcast","audiobook"].includes(this.queueStore.current.media_kind)}},methods:{seek(){this.disabled||tt.player_seek(this.offset*-1)}}},kx=["disabled"];function Cx(t,e,n,s,i,r){const o=C("mdicon");return r.visible?(O(),L("a",{key:0,disabled:r.disabled,onClick:e[0]||(e[0]=(...a)=>r.seek&&r.seek(...a))},[E(o,{class:"icon",name:"rewind-10",title:t.$t("player.button.seek-backward")},null,8,["title"])],8,kx)):yt("",!0)}const Tx=it(wx,[["render",Cx]]),Ax={name:"ControlPlayerConsume",setup(){return{playerStore:Jn()}},methods:{toggle(){tt.player_consume(!this.playerStore.consume)}}};function Ox(t,e,n,s,i,r){const o=C("mdicon");return O(),L("a",{class:Vt({"is-dark":s.playerStore.consume}),onClick:e[0]||(e[0]=(...a)=>r.toggle&&r.toggle(...a))},[E(o,{class:"icon",name:"fire",size:"16",title:t.$t("player.button.consume")},null,8,["title"])],2)}const xx=it(Ax,[["render",Ox]]),Ix={name:"ControlPlayerForward",props:{offset:{required:!0,type:Number}},setup(){return{playerStore:Jn(),queueStore:Cs()}},computed:{disabled(){var t;return((t=this.queueStore)==null?void 0:t.count)<=0||this.playerStore.isStopped||this.queueStore.current.data_kind==="pipe"},visible(){return["podcast","audiobook"].includes(this.queueStore.current.media_kind)}},methods:{seek(){this.disabled||tt.player_seek(this.offset)}}},Nx=["disabled"];function Px(t,e,n,s,i,r){const o=C("mdicon");return r.visible?(O(),L("a",{key:0,disabled:r.disabled,onClick:e[0]||(e[0]=(...a)=>r.seek&&r.seek(...a))},[E(o,{class:"icon",name:"fast-forward-30",title:t.$t("player.button.seek-forward")},null,8,["title"])],8,Nx)):yt("",!0)}const Dx=it(Ix,[["render",Px]]),Fu=hs("LyricsStore",{actions:{toggle(){this.active=!this.active}},state:()=>({content:[],active:!1})}),Rx={name:"ControlPlayerLyrics",setup(){return{lyricsStore:Fu()}},computed:{icon(){return this.lyricsStore.active?"script-text-play":"script-text-outline"}}};function Mx(t,e,n,s,i,r){const o=C("mdicon");return O(),L("a",{class:Vt({"is-dark":s.lyricsStore.active}),onClick:e[0]||(e[0]=(...a)=>s.lyricsStore.toggle&&s.lyricsStore.toggle(...a))},[E(o,{class:"icon",name:r.icon,size:16,title:t.$t("player.button.toggle-lyrics")},null,8,["name","title"])],2)}const Lx=it(Rx,[["render",Mx]]),$x={name:"ControlPlayerNext",setup(){return{queueStore:Cs()}},computed:{disabled(){return this.queueStore.count<=0}},methods:{next(){this.disabled||tt.player_next()}}},Fx=["disabled"];function Vx(t,e,n,s,i,r){const o=C("mdicon");return O(),L("a",{disabled:r.disabled,onClick:e[0]||(e[0]=(...a)=>r.next&&r.next(...a))},[E(o,{class:"icon",name:"skip-forward",title:t.$t("player.button.skip-forward")},null,8,["title"])],8,Fx)}const Hx=it($x,[["render",Vx]]),Ux={name:"ControlPlayerPlay",props:{show_disabled_message:Boolean},setup(){return{notificationsStore:$s(),playerStore:Jn(),queueStore:Cs()}},computed:{disabled(){var t;return((t=this.queueStore)==null?void 0:t.count)<=0},icon(){if(this.playerStore.isPlaying){if(this.queueStore.isPauseAllowed)return"pause"}else return"play";return"stop"}},methods:{toggle(){if(this.disabled){this.show_disabled_message&&this.notificationsStore.add({text:this.$t("server.empty-queue"),timeout:2e3,topic:"connection",type:"info"});return}this.playerStore.isPlaying&&this.queueStore.isPauseAllowed?tt.player_pause():this.playerStore.isPlaying&&!this.queueStore.isPauseAllowed?tt.player_stop():tt.player_play()}}},jx=["disabled"];function Bx(t,e,n,s,i,r){const o=C("mdicon");return O(),L("a",{disabled:r.disabled,onClick:e[0]||(e[0]=(...a)=>r.toggle&&r.toggle(...a))},[E(o,{class:"icon",name:r.icon,title:t.$t(`player.button.${r.icon}`)},null,8,["name","title"])],8,jx)}const Wx=it(Ux,[["render",Bx]]),qx={name:"ControlPlayerPrevious",setup(){return{queueStore:Cs()}},computed:{disabled(){return this.queueStore.count<=0}},methods:{playPrevious(){this.disabled||tt.player_previous()}}},Gx=["disabled"];function zx(t,e,n,s,i,r){const o=C("mdicon");return O(),L("a",{disabled:r.disabled,onClick:e[0]||(e[0]=(...a)=>r.playPrevious&&r.playPrevious(...a))},[E(o,{class:"icon",name:"skip-backward",title:t.$t("player.button.skip-backward")},null,8,["title"])],8,Gx)}const Kx=it(qx,[["render",zx]]),Xx={name:"ControlPlayerRepeat",setup(){return{playerStore:Jn()}},computed:{icon(){return this.playerStore.isRepeatAll?"repeat":this.playerStore.isRepeatSingle?"repeat-once":"repeat-off"}},methods:{toggle(){this.playerStore.isRepeatAll?tt.player_repeat("single"):this.playerStore.isRepeatSingle?tt.player_repeat("off"):tt.player_repeat("all")}}};function Yx(t,e,n,s,i,r){const o=C("mdicon");return O(),L("a",{class:Vt({"is-dark":!s.playerStore.isRepeatOff}),onClick:e[0]||(e[0]=(...a)=>r.toggle&&r.toggle(...a))},[E(o,{class:"icon",name:r.icon,size:16,title:t.$t(`player.button.${r.icon}`)},null,8,["name","title"])],2)}const Zx=it(Xx,[["render",Yx]]),Jx={name:"ControlPlayerShuffle",setup(){return{playerStore:Jn()}},computed:{icon(){return this.playerStore.shuffle?"shuffle":"shuffle-disabled"}},methods:{toggle(){tt.player_shuffle(!this.playerStore.shuffle)}}};function Qx(t,e,n,s,i,r){const o=C("mdicon");return O(),L("a",{class:Vt({"is-dark":s.playerStore.shuffle}),onClick:e[0]||(e[0]=(...a)=>r.toggle&&r.toggle(...a))},[E(o,{class:"icon",name:r.icon,size:16,title:t.$t(`player.button.${r.icon}`)},null,8,["name","title"])],2)}const tI=it(Jx,[["render",Qx]]),Wo={audio:new Audio,context:null,play(t){this.stop(),this.context.resume().then(()=>{this.audio.src=`${String(t||"")}?x=${Date.now()}`,this.audio.crossOrigin="anonymous",this.audio.load()})},setVolume(t){this.audio&&(this.audio.volume=Math.min(1,Math.max(0,parseFloat(t)||0)))},setup(){return this.context=new(window.AudioContext||window.webkitAudioContext),this.context.createMediaElementSource(this.audio).connect(this.context.destination),this.audio.addEventListener("canplaythrough",()=>{this.audio.play()}),this.audio.addEventListener("canplay",()=>{this.audio.play()}),this.audio},stop(){try{this.audio.pause()}catch{}try{this.audio.stop()}catch{}try{this.audio.close()}catch{}}},eI={name:"ControlStreamVolume",components:{ControlSlider:$u},emits:["change","mute"],data(){return{loading:!1,playing:!1,volume:10}},mounted(){this.setupAudio()},unmounted(){this.closeAudio()},methods:{changeVolume(){Wo.setVolume(this.volume/100)},closeAudio(){Wo.stop(),this.playing=!1},playChannel(){this.playing||(this.loading=!0,Wo.play("/stream.mp3"),Wo.setVolume(this.volume/100))},setupAudio(){const t=Wo.setup();t.addEventListener("waiting",()=>{this.playing=!1,this.loading=!0}),t.addEventListener("playing",()=>{this.playing=!0,this.loading=!1}),t.addEventListener("ended",()=>{this.playing=!1,this.loading=!1}),t.addEventListener("error",()=>{this.closeAudio(),this.notificationsStore.add({text:this.$t("navigation.stream-error"),type:"danger"}),this.playing=!1,this.loading=!1})},togglePlay(){this.loading||(this.playing&&this.closeAudio(),this.playChannel())}}},nI={class:"media is-align-items-center mb-0"},sI={class:"media-left"},iI={class:"media-content is-align-items-center"},rI=["textContent"],oI={href:"stream.mp3",class:"ml-2",target:"_blank"};function aI(t,e,n,s,i,r){const o=C("mdicon"),a=C("control-slider");return O(),L("div",nI,[S("div",sI,[S("button",{class:Vt(["button is-small",{"has-text-grey-light":!i.playing&&!i.loading,"is-loading":i.loading}]),onClick:e[0]||(e[0]=(...l)=>r.togglePlay&&r.togglePlay(...l))},[E(o,{class:"icon",name:"broadcast"})],2)]),S("div",iI,[S("div",{class:Vt(["is-flex",{"has-text-grey-light":!i.playing}])},[S("div",{class:"is-size-7 is-uppercase",textContent:j(t.$t("navigation.stream"))},null,8,rI),S("a",oI,[E(o,{class:"icon is-small",name:"open-in-new"})])],2),E(a,{value:i.volume,"onUpdate:value":e[1]||(e[1]=l=>i.volume=l),disabled:!i.playing,max:100,onChange:r.changeVolume},null,8,["value","disabled","onChange"])])])}const lI=it(eI,[["render",aI]]),cp=hs("OutputsStore",{state:()=>({outputs:[]})}),cI={name:"NavbarBottom",components:{ControlLink:B0,ControlMainVolume:mx,ControlOutputVolume:Ex,ControlPlayerBack:Tx,ControlPlayerConsume:xx,ControlPlayerForward:Dx,ControlPlayerLyrics:Lx,ControlPlayerNext:Hx,ControlPlayerPlay:Wx,ControlPlayerPrevious:Kx,ControlPlayerRepeat:Zx,ControlPlayerShuffle:tI,ControlStreamVolume:lI},setup(){return{notificationsStore:$s(),outputsStore:cp(),queueStore:Cs(),uiStore:Un()}},computed:{isNowPlayingPage(){return this.$route.name==="now-playing"}}},uI={class:"navbar-brand is-flex-grow-1"},dI={class:"is-text-clipped"},fI=["textContent"],hI=["textContent"],pI=["textContent"],mI={class:"dropdown-menu is-mobile"},gI={class:"dropdown-content"},yI={class:"dropdown-item pt-0"},bI={class:"dropdown-item is-flex is-justify-content-center"},vI={class:"buttons has-addons"};function _I(t,e,n,s,i,r){const o=C("mdicon"),a=C("control-link"),l=C("control-player-previous"),c=C("control-player-back"),u=C("control-player-play"),d=C("control-player-forward"),f=C("control-player-next"),h=C("control-main-volume"),p=C("control-output-volume"),m=C("control-stream-volume"),b=C("control-player-repeat"),y=C("control-player-shuffle"),_=C("control-player-consume"),g=C("control-player-lyrics");return O(),L("nav",{class:Vt(["navbar is-fixed-bottom",{"is-dark":!r.isNowPlayingPage}])},[S("div",uI,[E(a,{class:"navbar-item",to:{name:"queue"}},{default:M(()=>[E(o,{class:"icon",name:"playlist-play"})]),_:1}),r.isNowPlayingPage?(O(),L(ht,{key:0},[E(l,{class:"navbar-item ml-auto"}),E(c,{class:"navbar-item",offset:1e4}),E(u,{class:"navbar-item",show_disabled_message:""}),E(d,{class:"navbar-item",offset:3e4}),E(f,{class:"navbar-item mr-auto"})],64)):(O(),L(ht,{key:1},[E(a,{to:{name:"now-playing"},exact:"",class:"navbar-item is-justify-content-flex-start is-expanded is-clipped is-size-7"},{default:M(()=>[S("div",dI,[S("strong",{textContent:j(s.queueStore.current.title)},null,8,fI),e[1]||(e[1]=S("br",null,null,-1)),S("span",{textContent:j(s.queueStore.current.artist)},null,8,hI),s.queueStore.current.album?(O(),L("span",{key:0,textContent:j(t.$t("navigation.now-playing",{album:s.queueStore.current.album}))},null,8,pI)):yt("",!0)])]),_:1}),E(u,{class:"navbar-item",show_disabled_message:""})],64)),S("a",{class:"navbar-item",onClick:e[0]||(e[0]=(...v)=>s.uiStore.togglePlayerMenu&&s.uiStore.togglePlayerMenu(...v))},[E(o,{class:"icon",name:s.uiStore.showPlayerMenu?"chevron-down":"chevron-up"},null,8,["name"])]),S("div",{class:Vt(["dropdown is-up is-right",{"is-active":s.uiStore.showPlayerMenu}])},[S("div",mI,[S("div",gI,[S("div",yI,[E(h),(O(!0),L(ht,null,ce(s.outputsStore.outputs,v=>(O(),_t(p,{key:v.id,output:v},null,8,["output"]))),128)),E(m)]),e[2]||(e[2]=S("hr",{class:"dropdown-divider"},null,-1)),S("div",bI,[S("div",vI,[E(b,{class:"button"}),E(y,{class:"button"}),E(_,{class:"button"}),E(g,{class:"button"})])])])])],2)])],2)}const SI=it(cI,[["render",_I],["__scopeId","data-v-684c9a14"]]),up=hs("SearchStore",{actions:{add(t){const e=this.history.indexOf(t);e!==-1&&this.history.splice(e,1),this.history.unshift(t),this.history.length>5&&this.history.pop()},remove(t){const e=this.history.indexOf(t);e!==-1&&this.history.splice(e,1)}},state:()=>({history:[],query:"",source:"search-library"})}),yi=hs("SettingsStore",{actions:{setting(t,e){var n;return((n=this.categories.find(s=>s.name===t))==null?void 0:n.options.find(s=>s.name===e))??{}},update(t){const e=this.categories.find(s=>s.name===t.category);if(!e)return;const n=e.options.find(s=>s.name===t.name);n&&(n.value=t.value)}},getters:{recently_added_limit:t=>{var e;return((e=t.setting("webinterface","recently_added_limit"))==null?void 0:e.value)??100},show_composer_for_genre:t=>{var e;return((e=t.setting("webinterface","show_composer_for_genre"))==null?void 0:e.value)??null},show_composer_now_playing:t=>{var e;return((e=t.setting("webinterface","show_composer_now_playing"))==null?void 0:e.value)??!1},show_cover_artwork_in_album_lists:t=>{var e;return((e=t.setting("artwork","show_cover_artwork_in_album_lists"))==null?void 0:e.value)??!1},show_filepath_now_playing:t=>{var e;return((e=t.setting("webinterface","show_filepath_now_playing"))==null?void 0:e.value)??!1},show_menu_item_audiobooks:t=>{var e;return((e=t.setting("webinterface","show_menu_item_audiobooks"))==null?void 0:e.value)??!1},show_menu_item_files:t=>{var e;return((e=t.setting("webinterface","show_menu_item_files"))==null?void 0:e.value)??!1},show_menu_item_music:t=>{var e;return((e=t.setting("webinterface","show_menu_item_music"))==null?void 0:e.value)??!1},show_menu_item_playlists:t=>{var e;return((e=t.setting("webinterface","show_menu_item_playlists"))==null?void 0:e.value)??!1},show_menu_item_podcasts:t=>{var e;return((e=t.setting("webinterface","show_menu_item_podcasts"))==null?void 0:e.value)??!1},show_menu_item_radio:t=>{var e;return((e=t.setting("webinterface","show_menu_item_radio"))==null?void 0:e.value)??!1},show_menu_item_search:t=>{var e;return((e=t.setting("webinterface","show_menu_item_search"))==null?void 0:e.value)??!1}},state:()=>({categories:[]})}),EI={name:"NavbarTop",components:{ControlLink:B0},setup(){return{searchStore:up(),servicesStore:je(),settingsStore:yi(),uiStore:Un()}},computed:{menus(){return[{icon:"music-box-multiple",key:"navigation.playlists",name:"playlists",show:this.settingsStore.show_menu_item_playlists},{icon:"music",key:"navigation.music",name:"music",show:this.settingsStore.show_menu_item_music},{key:"navigation.artists",name:"music-artists",show:!0,sub:!0},{key:"navigation.albums",name:"music-albums",show:!0,sub:!0},{key:"navigation.genres",name:"music-genres",show:!0,sub:!0},{key:"navigation.spotify",name:"music-spotify",show:this.servicesStore.spotify.webapi_token_valid,sub:!0},{icon:"microphone",key:"navigation.podcasts",name:"podcasts",show:this.settingsStore.show_menu_item_podcasts},{icon:"book-open-variant",key:"navigation.audiobooks",name:"audiobooks",show:this.settingsStore.show_menu_item_audiobooks},{icon:"radio",key:"navigation.radio",name:"radio",show:this.settingsStore.show_menu_item_radio},{icon:"folder-open",key:"navigation.files",name:"files",show:this.settingsStore.show_menu_item_files},{icon:"magnify",key:"navigation.search",name:this.searchStore.source,show:this.settingsStore.show_menu_item_search},{separator:!0,show:!0},{key:"navigation.settings",name:"settings-webinterface",show:!0},{action:this.openUpdateDialog,key:"navigation.update-library",show:!0},{key:"navigation.about",name:"about",show:!0}]},zindex(){return this.uiStore.showPlayerMenu?"z-index: 21":""}},methods:{openUpdateDialog(){this.uiStore.showUpdateDialog=!0,this.uiStore.hideMenus()}}},wI={class:"navbar-brand is-flex-grow-1"},kI={class:"dropdown-menu is-mobile"},CI={class:"dropdown-content"},TI={key:0,class:"my-3"},AI=["onClick","textContent"],OI={key:0,class:"icon-text"},xI=["textContent"];function II(t,e,n,s,i,r){const o=C("mdicon"),a=C("control-link");return O(),L("nav",{class:"navbar is-fixed-top is-light",style:hi(r.zindex)},[S("div",wI,[(O(!0),L(ht,null,ce(r.menus.filter(l=>l.show&&l.icon),l=>(O(),_t(a,{key:l.name,to:{name:l.name},class:"navbar-item"},{default:M(()=>[E(o,{class:"icon",name:l.icon,size:"16"},null,8,["name"])]),_:2},1032,["to"]))),128)),S("a",{class:"navbar-item ml-auto",onClick:e[0]||(e[0]=(...l)=>s.uiStore.toggleBurgerMenu&&s.uiStore.toggleBurgerMenu(...l))},[E(o,{class:"icon",name:s.uiStore.showBurgerMenu?"close":"menu"},null,8,["name"])]),S("div",{class:Vt(["dropdown is-right",{"is-active":s.uiStore.showBurgerMenu}])},[S("div",kI,[S("div",CI,[(O(!0),L(ht,null,ce(r.menus.filter(l=>l.show),l=>(O(),L(ht,{key:l.name},[l.separator?(O(),L("hr",TI)):l.action?(O(),L("a",{key:1,class:"dropdown-item",onClick:Ie(l.action,["stop","prevent"]),textContent:j(t.$t(l.key))},null,8,AI)):(O(),_t(a,{key:2,to:{name:l.name},class:"dropdown-item"},{default:M(()=>[l.icon?(O(),L("span",OI,[E(o,{class:"icon",name:l.icon,size:"16"},null,8,["name"])])):yt("",!0),S("span",{class:Vt({"pl-5":l.sub,"has-text-weight-semibold":l.icon}),textContent:j(t.$t(l.key))},null,10,xI)]),_:2},1032,["to"]))],64))),128))])])],2)])],4)}const NI=it(EI,[["render",II]]),PI={name:"NotificationList",setup(){return{notificationsStore:$s()}},computed:{notifications(){return this.notificationsStore.list}},methods:{remove(t){this.notificationsStore.remove(t)}}},DI={key:0,class:"notifications"},RI={class:"columns is-centered"},MI={class:"column is-half"},LI=["onClick"],$I=["textContent"];function FI(t,e,n,s,i,r){return r.notifications.length>0?(O(),L("section",DI,[S("div",RI,[S("div",MI,[(O(!0),L(ht,null,ce(r.notifications,o=>(O(),L("div",{key:o.id,class:Vt(["notification",o.type?`is-${o.type}`:""])},[S("button",{class:"delete",onClick:a=>r.remove(o)},null,8,LI),S("div",{class:"text",textContent:j(o.text)},null,8,$I)],2))),128))])])])):yt("",!0)}const VI=it(PI,[["render",FI],["__scopeId","data-v-8e5ff698"]]);function Vu(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Hu(t){if(t.__esModule)return t;var e=t.default;if(typeof e=="function"){var n=function s(){return this instanceof s?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(t).forEach(function(s){var i=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(n,s,i.get?i:{enumerable:!0,get:function(){return t[s]}})}),n}var tc={exports:{}},HI=tc.exports,Fg;function UI(){return Fg||(Fg=1,function(t){(function(e,n){t.exports?t.exports=n():e.ReconnectingWebSocket=n()})(HI,function(){if(!("WebSocket"in window))return;function e(n,s,i){var r={debug:!1,automaticOpen:!0,reconnectInterval:1e3,maxReconnectInterval:3e4,reconnectDecay:1.5,timeoutInterval:2e3,maxReconnectAttempts:null};i||(i={});for(var o in r)typeof i[o]<"u"?this[o]=i[o]:this[o]=r[o];this.url=n,this.reconnectAttempts=0,this.readyState=WebSocket.CONNECTING,this.protocol=null;var a=this,l,c=!1,u=!1,d=document.createElement("div");d.addEventListener("open",function(h){a.onopen(h)}),d.addEventListener("close",function(h){a.onclose(h)}),d.addEventListener("connecting",function(h){a.onconnecting(h)}),d.addEventListener("message",function(h){a.onmessage(h)}),d.addEventListener("error",function(h){a.onerror(h)}),this.addEventListener=d.addEventListener.bind(d),this.removeEventListener=d.removeEventListener.bind(d),this.dispatchEvent=d.dispatchEvent.bind(d);function f(h,p){var m=document.createEvent("CustomEvent");return m.initCustomEvent(h,!1,!1,p),m}this.open=function(h){if(l=new WebSocket(a.url,s||[]),h){if(this.maxReconnectAttempts&&this.reconnectAttempts>this.maxReconnectAttempts)return}else d.dispatchEvent(f("connecting")),this.reconnectAttempts=0;(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","attempt-connect",a.url);var p=l,m=setTimeout(function(){(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","connection-timeout",a.url),u=!0,p.close(),u=!1},a.timeoutInterval);l.onopen=function(b){clearTimeout(m),(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","onopen",a.url),a.protocol=l.protocol,a.readyState=WebSocket.OPEN,a.reconnectAttempts=0;var y=f("open");y.isReconnect=h,h=!1,d.dispatchEvent(y)},l.onclose=function(b){if(clearTimeout(_),l=null,c)a.readyState=WebSocket.CLOSED,d.dispatchEvent(f("close"));else{a.readyState=WebSocket.CONNECTING;var y=f("connecting");y.code=b.code,y.reason=b.reason,y.wasClean=b.wasClean,d.dispatchEvent(y),!h&&!u&&((a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","onclose",a.url),d.dispatchEvent(f("close")));var _=a.reconnectInterval*Math.pow(a.reconnectDecay,a.reconnectAttempts);setTimeout(function(){a.reconnectAttempts++,a.open(!0)},_>a.maxReconnectInterval?a.maxReconnectInterval:_)}},l.onmessage=function(b){(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","onmessage",a.url,b.data);var y=f("message");y.data=b.data,d.dispatchEvent(y)},l.onerror=function(b){(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","onerror",a.url,b),d.dispatchEvent(f("error"))}},this.automaticOpen==!0&&this.open(!1),this.send=function(h){if(l)return(a.debug||e.debugAll)&&console.debug("ReconnectingWebSocket","send",a.url,h),l.send(h);throw"INVALID_STATE_ERR : Pausing to reconnect websocket"},this.close=function(h,p){typeof h>"u"&&(h=1e3),c=!0,l&&l.close(h,p)},this.refresh=function(){l&&l.close()}}return e.prototype.onopen=function(n){},e.prototype.onclose=function(n){},e.prototype.onconnecting=function(n){},e.prototype.onmessage=function(n){},e.prototype.onerror=function(n){},e.debugAll=!1,e.CONNECTING=WebSocket.CONNECTING,e.OPEN=WebSocket.OPEN,e.CLOSING=WebSocket.CLOSING,e.CLOSED=WebSocket.CLOSED,e})}(tc)),tc.exports}var jI=UI();const BI=Vu(jI),WI={name:"App",components:{ModalDialogRemotePairing:RO,ModalDialogUpdate:nx,NavbarBottom:SI,NavbarTop:NI,NotificationList:VI},setup(){return{configurationStore:qi(),libraryStore:Lu(),lyricsStore:Fu(),notificationsStore:$s(),outputsStore:cp(),playerStore:Jn(),queueStore:Cs(),remotesStore:Yh(),servicesStore:je(),settingsStore:yi(),uiStore:Un()}},data(){return{pairing_active:!1,reconnect_attempts:0,token_timer_id:0}},computed:{showBurgerMenu:{get(){return this.uiStore.showBurgerMenu},set(t){this.uiStore.showBurgerMenu=t}},showPlayerMenu:{get(){return this.uiStore.showPlayerMenu},set(t){this.uiStore.showPlayerMenu=t}},showUpdateDialog:{get(){return this.uiStore.showUpdateDialog},set(t){this.uiStore.showUpdateDialog=t}}},watch:{showBurgerMenu(){this.update_is_clipped()},showPlayerMenu(){this.update_is_clipped()}},created(){this.connect(),this.$Progress.start(),this.$router.beforeEach((t,e,n)=>{t.path===e.path&&t.hash||(t.meta.progress&&this.$Progress.parseMeta(t.meta.progress),this.$Progress.start()),n()}),this.$router.afterEach((t,e)=>{this.$Progress.finish()})},methods:{connect(){tt.config().then(({data:t})=>{this.configurationStore.$state=t,this.uiStore.hideSingles=t.hide_singles,document.title=t.library_name,this.openWebsocket(),this.$Progress.finish()}).catch(()=>{this.notificationsStore.add({text:this.$t("server.connection-failed"),topic:"connection",type:"danger"})})},openWebsocket(){const t=this.create_websocket(),e=this;t.onopen=()=>{e.reconnect_attempts=0,t.send(JSON.stringify({notify:["update","database","player","options","outputs","volume","queue","spotify","lastfm","pairing"]})),e.update_outputs(),e.update_player_status(),e.update_library_stats(),e.update_settings(),e.update_queue(),e.update_spotify(),e.update_lastfm(),e.update_pairing()};let n=!1;const s=()=>{n||(e.update_outputs(),e.update_player_status(),e.update_library_stats(),e.update_settings(),e.update_queue(),e.update_spotify(),e.update_lastfm(),e.update_pairing(),n=!0,setTimeout(()=>{n=!1},500))};window.addEventListener("focus",s),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&s()}),t.onmessage=i=>{const r=JSON.parse(i.data);(r.notify.includes("update")||r.notify.includes("database"))&&e.update_library_stats(),(r.notify.includes("player")||r.notify.includes("options")||r.notify.includes("volume"))&&e.update_player_status(),(r.notify.includes("outputs")||r.notify.includes("volume"))&&e.update_outputs(),r.notify.includes("queue")&&e.update_queue(),r.notify.includes("spotify")&&e.update_spotify(),r.notify.includes("lastfm")&&e.update_lastfm(),r.notify.includes("pairing")&&e.update_pairing()}},create_websocket(){const t=window.location.protocol.replace("http","ws"),e=window.location.hostname,n=this.configurationStore.websocket_port||`${window.location.port}/ws`,s=`${t}${e}:${n}`;return new BI(s,"notify",{maxReconnectInterval:2e3,reconnectInterval:1e3})},update_is_clipped(){this.showBurgerMenu||this.showPlayerMenu?document.querySelector("html").classList.add("is-clipped"):document.querySelector("html").classList.remove("is-clipped")},update_lastfm(){tt.lastfm().then(({data:t})=>{this.servicesStore.lastfm=t})},update_library_stats(){tt.library_stats().then(({data:t})=>{this.libraryStore.$state=t}),tt.library_count("scan_kind is rss").then(({data:t})=>{this.libraryStore.rss=t})},update_lyrics(){const t=this.queueStore.current;t!=null&&t.track_id?tt.library_track(t.track_id).then(({data:e})=>{this.lyricsStore.lyrics=e.lyrics}):this.lyricsStore.$reset()},update_outputs(){tt.outputs().then(({data:t})=>{this.outputsStore.outputs=t.outputs})},update_pairing(){tt.pairing().then(({data:t})=>{this.remotesStore.$state=t,this.pairing_active=t.active})},update_player_status(){tt.player_status().then(({data:t})=>{this.playerStore.$state=t,this.update_lyrics()})},update_queue(){tt.queue().then(({data:t})=>{this.queueStore.$state=t,this.update_lyrics()})},update_settings(){tt.settings().then(({data:t})=>{this.settingsStore.$state=t})},update_spotify(){tt.spotify().then(({data:t})=>{this.servicesStore.spotify=t,this.token_timer_id>0&&(window.clearTimeout(this.token_timer_id),this.token_timer_id=0),t.webapi_token_expires_in>0&&t.webapi_token&&(this.token_timer_id=window.setTimeout(this.update_spotify,1e3*t.webapi_token_expires_in))})}},template:""};function qI(t,e,n,s,i,r){const o=C("vue-progress-bar"),a=C("navbar-top"),l=C("router-view"),c=C("modal-dialog-remote-pairing"),u=C("modal-dialog-update"),d=C("notification-list"),f=C("navbar-bottom");return O(),L(ht,null,[E(o,{class:"has-background-primary"}),E(a),E(l,null,{default:M(({Component:h})=>[(O(),_t(Su(h)))]),_:1}),E(c,{show:i.pairing_active,onClose:e[0]||(e[0]=h=>i.pairing_active=!1)},null,8,["show"]),E(u,{show:r.showUpdateDialog,onClose:e[1]||(e[1]=h=>r.showUpdateDialog=!1)},null,8,["show"]),xn(E(d,null,null,512),[[Ac,!r.showBurgerMenu]]),E(f),xn(S("div",{class:"overlay-fullscreen",onClick:e[2]||(e[2]=(...h)=>s.uiStore.hideMenus&&s.uiStore.hideMenus(...h))},null,512),[[Ac,r.showBurgerMenu||r.showPlayerMenu]])],64)}const GI=it(WI,[["render",qI]]),W0=function(){return document.ontouchstart!==null?"click":"touchstart"},Lc="__vue_click_away__",q0=function(t,e,n){G0(t);let s=n.context,i=e.value,r=!1;setTimeout(function(){r=!0},0),t[Lc]=function(o){if((!t||!t.contains(o.target))&&i&&r&&typeof i=="function")return i.call(s,o)},document.addEventListener(W0(),t[Lc],!1)},G0=function(t){document.removeEventListener(W0(),t[Lc],!1),delete t[Lc]},zI=function(t,e,n){e.value!==e.oldValue&&q0(t,e,n)},KI={install:function(t){t.directive("click-away",XI)}},XI={mounted:q0,updated:zI,unmounted:G0};var Rs=(t=>(t.LOADING="loading",t.LOADED="loaded",t.ERROR="error",t))(Rs||{});const YI=typeof window<"u"&&window!==null,ZI=eN(),JI=Object.prototype.propertyIsEnumerable,Vg=Object.getOwnPropertySymbols;function fa(t){return typeof t=="function"||toString.call(t)==="[object Object]"}function QI(t){return typeof t=="object"?t===null:typeof t!="function"}function tN(t){return t!=="__proto__"&&t!=="constructor"&&t!=="prototype"}function eN(){return YI&&"IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype?("isIntersecting"in window.IntersectionObserverEntry.prototype||Object.defineProperty(window.IntersectionObserverEntry.prototype,"isIntersecting",{get(){return this.intersectionRatio>0}}),!0):!1}function nN(t,...e){if(!fa(t))throw new TypeError("expected the first argument to be an object");if(e.length===0||typeof Symbol!="function"||typeof Vg!="function")return t;for(const n of e){const s=Vg(n);for(const i of s)JI.call(n,i)&&(t[i]=n[i])}return t}function z0(t,...e){let n=0;for(QI(t)&&(t=e[n++]),t||(t={});n{this._logger("Not support IntersectionObserver!")})),this._initIntersectionObserver(e,s,r,o,a)}update(e,n){var a;if(!e)return;(a=this._realObserver(e))==null||a.unobserve(e);const{src:s,error:i,lifecycle:r,delay:o}=this._valueFormatter(typeof n=="string"?n:n.value);this._initIntersectionObserver(e,s,i,r,o)}unmount(e){var n;e&&((n=this._realObserver(e))==null||n.unobserve(e),this._images.delete(e))}loadImages(e,n,s,i){this._setImageSrc(e,n,s,i)}_setImageSrc(e,n,s,i){e.tagName.toLowerCase()==="img"?(n&&e.getAttribute("src")!==n&&e.setAttribute("src",n),this._listenImageStatus(e,()=>{this._lifecycle(Rs.LOADED,i,e)},()=>{var r;e.onload=null,this._lifecycle(Rs.ERROR,i,e),(r=this._realObserver(e))==null||r.disconnect(),s&&e.getAttribute("src")!==s&&e.setAttribute("src",s),this._log(()=>{this._logger(`Image failed to load!And failed src was: ${n} `)})})):e.style.backgroundImage=`url('${n}')`}_initIntersectionObserver(e,n,s,i,r){var a;const o=this.options.observerOptions;this._images.set(e,new IntersectionObserver(l=>{Array.prototype.forEach.call(l,c=>{r&&r>0?this._delayedIntersectionCallback(e,c,r,n,s,i):this._intersectionCallback(e,c,n,s,i)})},o)),(a=this._realObserver(e))==null||a.observe(e)}_intersectionCallback(e,n,s,i,r){var o;n.isIntersecting&&((o=this._realObserver(e))==null||o.unobserve(n.target),this._setImageSrc(e,s,i,r))}_delayedIntersectionCallback(e,n,s,i,r,o){if(n.isIntersecting){if(n.target.hasAttribute(Vr))return;const a=setTimeout(()=>{this._intersectionCallback(e,n,i,r,o),n.target.removeAttribute(Vr)},s);n.target.setAttribute(Vr,String(a))}else n.target.hasAttribute(Vr)&&(clearTimeout(Number(n.target.getAttribute(Vr))),n.target.removeAttribute(Vr))}_listenImageStatus(e,n,s){e.onload=n,e.onerror=s}_valueFormatter(e){let n=e,s=this.options.loading,i=this.options.error,r=this.options.lifecycle,o=this.options.delay;return fa(e)&&(n=e.src,s=e.loading||this.options.loading,i=e.error||this.options.error,r=e.lifecycle||this.options.lifecycle,o=e.delay||this.options.delay),{src:n,loading:s,error:i,lifecycle:r,delay:o}}_log(e){this.options.log&&e()}_lifecycle(e,n,s){switch(e){case Rs.LOADING:s==null||s.setAttribute("lazy",Rs.LOADING),n!=null&&n.loading&&n.loading(s);break;case Rs.LOADED:s==null||s.setAttribute("lazy",Rs.LOADED),n!=null&&n.loaded&&n.loaded(s);break;case Rs.ERROR:s==null||s.setAttribute("lazy",Rs.ERROR),n!=null&&n.error&&n.error(s);break}}_realObserver(e){return this._images.get(e)}_logger(e,...n){let s=console.error;switch(this.options.logLevel){case"error":s=console.error;break;case"warn":s=console.warn;break;case"info":s=console.info;break;case"debug":s=console.debug;break}s(e,n)}}const oN={install(t,e){const n=new rN(e);t.config.globalProperties.$Lazyload=n,t.provide("Lazyload",n),t.directive("lazy",{mounted:n.mount.bind(n),updated:n.update.bind(n),unmounted:n.unmount.bind(n)})}};var $d={exports:{}},Fd={exports:{}},Vd={};/** * @vue/compiler-core v3.5.13 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT diff --git a/web-src/package-lock.json b/web-src/package-lock.json index 738c23f3..b0573e8c 100644 --- a/web-src/package-lock.json +++ b/web-src/package-lock.json @@ -65,12 +65,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz", - "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz", + "integrity": "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==", "license": "MIT", "dependencies": { - "@babel/types": "^7.26.9" + "@babel/types": "^7.26.10" }, "bin": { "parser": "bin/babel-parser.js" @@ -80,9 +80,9 @@ } }, "node_modules/@babel/types": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz", - "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz", + "integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.25.9", @@ -93,9 +93,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", - "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz", + "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==", "cpu": [ "ppc64" ], @@ -110,9 +110,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz", - "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz", + "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==", "cpu": [ "arm" ], @@ -127,9 +127,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", - "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz", + "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==", "cpu": [ "arm64" ], @@ -144,9 +144,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz", - "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz", + "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==", "cpu": [ "x64" ], @@ -161,9 +161,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", - "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz", + "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==", "cpu": [ "arm64" ], @@ -178,9 +178,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", - "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz", + "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==", "cpu": [ "x64" ], @@ -195,9 +195,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", - "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz", + "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==", "cpu": [ "arm64" ], @@ -212,9 +212,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", - "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz", + "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==", "cpu": [ "x64" ], @@ -229,9 +229,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", - "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz", + "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==", "cpu": [ "arm" ], @@ -246,9 +246,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", - "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz", + "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==", "cpu": [ "arm64" ], @@ -263,9 +263,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", - "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz", + "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==", "cpu": [ "ia32" ], @@ -280,9 +280,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", - "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz", + "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==", "cpu": [ "loong64" ], @@ -297,9 +297,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", - "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz", + "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==", "cpu": [ "mips64el" ], @@ -314,9 +314,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", - "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz", + "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==", "cpu": [ "ppc64" ], @@ -331,9 +331,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", - "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz", + "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==", "cpu": [ "riscv64" ], @@ -348,9 +348,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", - "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz", + "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==", "cpu": [ "s390x" ], @@ -365,9 +365,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", - "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz", + "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==", "cpu": [ "x64" ], @@ -382,9 +382,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", - "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz", + "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==", "cpu": [ "arm64" ], @@ -399,9 +399,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", - "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz", + "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==", "cpu": [ "x64" ], @@ -416,9 +416,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", - "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz", + "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==", "cpu": [ "arm64" ], @@ -433,9 +433,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", - "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz", + "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==", "cpu": [ "x64" ], @@ -450,9 +450,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", - "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz", + "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==", "cpu": [ "x64" ], @@ -467,9 +467,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", - "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz", + "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==", "cpu": [ "arm64" ], @@ -484,9 +484,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", - "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz", + "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==", "cpu": [ "ia32" ], @@ -501,9 +501,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", - "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz", + "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==", "cpu": [ "x64" ], @@ -518,9 +518,9 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", - "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.0.tgz", + "integrity": "sha512-RoV8Xs9eNwiDvhv7M+xcL4PWyRyIXRY/FLp3buU4h1EYfdF7unWUy3dOjPqb3C7rMUewIcqwW850PgS8h1o1yg==", "dev": true, "license": "MIT", "dependencies": { @@ -585,6 +585,16 @@ "node": "*" } }, + "node_modules/@eslint/config-helpers": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.1.0.tgz", + "integrity": "sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/core": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", @@ -647,9 +657,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.21.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.21.0.tgz", - "integrity": "sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==", + "version": "9.22.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.22.0.tgz", + "integrity": "sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==", "dev": true, "license": "MIT", "engines": { @@ -776,13 +786,13 @@ } }, "node_modules/@intlify/core-base": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-11.1.1.tgz", - "integrity": "sha512-bb8gZvoeKExCI2r/NVCK9E4YyOkvYGaSCPxVZe8T0jz8aX+dHEOZWxK06Z/Y9mWRkJfBiCH4aOhDF1yr1t5J8Q==", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-11.1.2.tgz", + "integrity": "sha512-nmG512G8QOABsserleechwHGZxzKSAlggGf9hQX0nltvSwyKNVuB/4o6iFeG2OnjXK253r8p8eSDOZf8PgFdWw==", "license": "MIT", "dependencies": { - "@intlify/message-compiler": "11.1.1", - "@intlify/shared": "11.1.1" + "@intlify/message-compiler": "11.1.2", + "@intlify/shared": "11.1.2" }, "engines": { "node": ">= 16" @@ -792,12 +802,12 @@ } }, "node_modules/@intlify/message-compiler": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-11.1.1.tgz", - "integrity": "sha512-4iEsUZ3aF7jXY19CJFN5VP+pPyLITD9FVsjB13z9TU1UxaZLlFsmNhvRxlPDSOfHAP5RpNF2QKKdZ3DHVf4Yzw==", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-11.1.2.tgz", + "integrity": "sha512-T/xbNDzi+Yv0Qn2Dfz2CWCAJiwNgU5d95EhhAEf4YmOgjCKktpfpiUSmLcBvK1CtLpPQ85AMMQk/2NCcXnNj1g==", "license": "MIT", "dependencies": { - "@intlify/shared": "11.1.1", + "@intlify/shared": "11.1.2", "source-map-js": "^1.0.2" }, "engines": { @@ -808,9 +818,9 @@ } }, "node_modules/@intlify/shared": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-11.1.1.tgz", - "integrity": "sha512-2kGiWoXaeV8HZlhU/Nml12oTbhv7j2ufsJ5vQaa0VTjzUmZVdd/nmKFRAOJ/FtjO90Qba5AnZDwsrY7ZND5udA==", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-11.1.2.tgz", + "integrity": "sha512-dF2iMMy8P9uKVHV/20LA1ulFLL+MKSbfMiixSmn6fpwqzvix38OIc7ebgnFbBqElvghZCW9ACtzKTGKsTGTWGA==", "license": "MIT", "engines": { "node": ">= 16" @@ -897,14 +907,14 @@ } }, "node_modules/@intlify/vue-i18n-extensions/node_modules/@intlify/core-base": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-10.0.5.tgz", - "integrity": "sha512-F3snDTQs0MdvnnyzTDTVkOYVAZOE/MHwRvF7mn7Jw1yuih4NrFYLNYIymGlLmq4HU2iIdzYsZ7f47bOcwY73XQ==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-10.0.6.tgz", + "integrity": "sha512-/NINGvy7t8qSCyyuqMIPmHS6CBQjqPIPVOps0Rb7xWrwwkwHJKtahiFnW1HC4iQVhzoYwEW6Js0923zTScLDiA==", "dev": true, "license": "MIT", "dependencies": { - "@intlify/message-compiler": "10.0.5", - "@intlify/shared": "10.0.5" + "@intlify/message-compiler": "10.0.6", + "@intlify/shared": "10.0.6" }, "engines": { "node": ">= 16" @@ -914,13 +924,13 @@ } }, "node_modules/@intlify/vue-i18n-extensions/node_modules/@intlify/message-compiler": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-10.0.5.tgz", - "integrity": "sha512-6GT1BJ852gZ0gItNZN2krX5QAmea+cmdjMvsWohArAZ3GmHdnNANEcF9JjPXAMRtQ6Ux5E269ymamg/+WU6tQA==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-10.0.6.tgz", + "integrity": "sha512-QcUYprK+e4X2lU6eJDxLuf/mUtCuVPj2RFBoFRlJJxK3wskBejzlRvh1Q0lQCi9tDOnD4iUK1ftcGylE3X3idA==", "dev": true, "license": "MIT", "dependencies": { - "@intlify/shared": "10.0.5", + "@intlify/shared": "10.0.6", "source-map-js": "^1.0.2" }, "engines": { @@ -931,9 +941,9 @@ } }, "node_modules/@intlify/vue-i18n-extensions/node_modules/@intlify/shared": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-10.0.5.tgz", - "integrity": "sha512-bmsP4L2HqBF6i6uaMqJMcFBONVjKt+siGluRq4Ca4C0q7W2eMaVZr8iCgF9dKbcVXutftkC7D6z2SaSMmLiDyA==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-10.0.6.tgz", + "integrity": "sha512-2xqwm05YPpo7TM//+v0bzS0FWiTzsjpSMnWdt7ZXs5/ZfQIedSuBXIrskd8HZ7c/cZzo1G9ALHTksnv/74vk/Q==", "dev": true, "license": "MIT", "engines": { @@ -951,14 +961,14 @@ "license": "MIT" }, "node_modules/@intlify/vue-i18n-extensions/node_modules/vue-i18n": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-10.0.5.tgz", - "integrity": "sha512-9/gmDlCblz3i8ypu/afiIc/SUIfTTE1mr0mZhb9pk70xo2csHAM9mp2gdQ3KD2O0AM3Hz/5ypb+FycTj/lHlPQ==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-10.0.6.tgz", + "integrity": "sha512-pQPspK5H4srzlu+47+HEY2tmiY3GyYIvSPgSBdQaYVWv7t1zj1t9p1FvHlxBXyJ17t9stG/Vxj+pykrvPWBLeQ==", "dev": true, "license": "MIT", "dependencies": { - "@intlify/core-base": "10.0.5", - "@intlify/shared": "10.0.5", + "@intlify/core-base": "10.0.6", + "@intlify/shared": "10.0.6", "@vue/devtools-api": "^6.5.0" }, "engines": { @@ -1355,9 +1365,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.9.tgz", - "integrity": "sha512-qZdlImWXur0CFakn2BJ2znJOdqYZKiedEPEVNTBrpfPjc/YuTGcaYZcdmNFTkUj3DU0ZM/AElcM8Ybww3xVLzA==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.35.0.tgz", + "integrity": "sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==", "cpu": [ "arm" ], @@ -1369,9 +1379,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.9.tgz", - "integrity": "sha512-4KW7P53h6HtJf5Y608T1ISKvNIYLWRKMvfnG0c44M6In4DQVU58HZFEVhWINDZKp7FZps98G3gxwC1sb0wXUUg==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.35.0.tgz", + "integrity": "sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==", "cpu": [ "arm64" ], @@ -1383,9 +1393,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.9.tgz", - "integrity": "sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.35.0.tgz", + "integrity": "sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==", "cpu": [ "arm64" ], @@ -1397,9 +1407,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.9.tgz", - "integrity": "sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.35.0.tgz", + "integrity": "sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==", "cpu": [ "x64" ], @@ -1411,9 +1421,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.9.tgz", - "integrity": "sha512-2lzjQPJbN5UnHm7bHIUKFMulGTQwdvOkouJDpPysJS+QFBGDJqcfh+CxxtG23Ik/9tEvnebQiylYoazFMAgrYw==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.35.0.tgz", + "integrity": "sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==", "cpu": [ "arm64" ], @@ -1425,9 +1435,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.9.tgz", - "integrity": "sha512-SLl0hi2Ah2H7xQYd6Qaiu01kFPzQ+hqvdYSoOtHYg/zCIFs6t8sV95kaoqjzjFwuYQLtOI0RZre/Ke0nPaQV+g==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.35.0.tgz", + "integrity": "sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==", "cpu": [ "x64" ], @@ -1439,9 +1449,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.9.tgz", - "integrity": "sha512-88I+D3TeKItrw+Y/2ud4Tw0+3CxQ2kLgu3QvrogZ0OfkmX/DEppehus7L3TS2Q4lpB+hYyxhkQiYPJ6Mf5/dPg==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.35.0.tgz", + "integrity": "sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==", "cpu": [ "arm" ], @@ -1453,9 +1463,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.9.tgz", - "integrity": "sha512-3qyfWljSFHi9zH0KgtEPG4cBXHDFhwD8kwg6xLfHQ0IWuH9crp005GfoUUh/6w9/FWGBwEHg3lxK1iHRN1MFlA==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.35.0.tgz", + "integrity": "sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==", "cpu": [ "arm" ], @@ -1467,9 +1477,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.9.tgz", - "integrity": "sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.35.0.tgz", + "integrity": "sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==", "cpu": [ "arm64" ], @@ -1481,9 +1491,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.9.tgz", - "integrity": "sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.35.0.tgz", + "integrity": "sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==", "cpu": [ "arm64" ], @@ -1495,9 +1505,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.9.tgz", - "integrity": "sha512-dRAgTfDsn0TE0HI6cmo13hemKpVHOEyeciGtvlBTkpx/F65kTvShtY/EVyZEIfxFkV5JJTuQ9tP5HGBS0hfxIg==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.35.0.tgz", + "integrity": "sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==", "cpu": [ "loong64" ], @@ -1509,9 +1519,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.9.tgz", - "integrity": "sha512-PHcNOAEhkoMSQtMf+rJofwisZqaU8iQ8EaSps58f5HYll9EAY5BSErCZ8qBDMVbq88h4UxaNPlbrKqfWP8RfJA==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.35.0.tgz", + "integrity": "sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==", "cpu": [ "ppc64" ], @@ -1523,9 +1533,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.9.tgz", - "integrity": "sha512-Z2i0Uy5G96KBYKjeQFKbbsB54xFOL5/y1P5wNBsbXB8yE+At3oh0DVMjQVzCJRJSfReiB2tX8T6HUFZ2k8iaKg==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.35.0.tgz", + "integrity": "sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==", "cpu": [ "riscv64" ], @@ -1537,9 +1547,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.9.tgz", - "integrity": "sha512-U+5SwTMoeYXoDzJX5dhDTxRltSrIax8KWwfaaYcynuJw8mT33W7oOgz0a+AaXtGuvhzTr2tVKh5UO8GVANTxyQ==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.35.0.tgz", + "integrity": "sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==", "cpu": [ "s390x" ], @@ -1551,9 +1561,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.9.tgz", - "integrity": "sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.35.0.tgz", + "integrity": "sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==", "cpu": [ "x64" ], @@ -1565,9 +1575,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.9.tgz", - "integrity": "sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.35.0.tgz", + "integrity": "sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==", "cpu": [ "x64" ], @@ -1579,9 +1589,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.9.tgz", - "integrity": "sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.35.0.tgz", + "integrity": "sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==", "cpu": [ "arm64" ], @@ -1593,9 +1603,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.9.tgz", - "integrity": "sha512-KB48mPtaoHy1AwDNkAJfHXvHp24H0ryZog28spEs0V48l3H1fr4i37tiyHsgKZJnCmvxsbATdZGBpbmxTE3a9w==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.35.0.tgz", + "integrity": "sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==", "cpu": [ "ia32" ], @@ -1607,9 +1617,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.9.tgz", - "integrity": "sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.35.0.tgz", + "integrity": "sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==", "cpu": [ "x64" ], @@ -1644,14 +1654,14 @@ "license": "MIT" }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.26.0.tgz", - "integrity": "sha512-E0ntLvsfPqnPwng8b8y4OGuzh/iIOm2z8U3S9zic2TeMLW61u5IH2Q1wu0oSTkfrSzwbDJIB/Lm8O3//8BWMPA==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.26.1.tgz", + "integrity": "sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.26.0", - "@typescript-eslint/visitor-keys": "8.26.0" + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1662,9 +1672,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.26.0.tgz", - "integrity": "sha512-89B1eP3tnpr9A8L6PZlSjBvnJhWXtYfZhECqlBl1D9Lme9mHO6iWlsprBtVenQvY1HMhax1mWOjhtL3fh/u+pA==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.26.1.tgz", + "integrity": "sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==", "dev": true, "license": "MIT", "engines": { @@ -1676,14 +1686,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.0.tgz", - "integrity": "sha512-tiJ1Hvy/V/oMVRTbEOIeemA2XoylimlDQ03CgPPNaHYZbpsc78Hmngnt+WXZfJX1pjQ711V7g0H7cSJThGYfPQ==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.1.tgz", + "integrity": "sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.26.0", - "@typescript-eslint/visitor-keys": "8.26.0", + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -1703,13 +1713,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.26.0.tgz", - "integrity": "sha512-2z8JQJWAzPdDd51dRQ/oqIJxe99/hoLIqmf8RMCAJQtYDc535W/Jt2+RTP4bP0aKeBG1F65yjIZuczOXCmbWwg==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.26.1.tgz", + "integrity": "sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.26.0", + "@typescript-eslint/types": "8.26.1", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -1950,9 +1960,9 @@ "license": "MIT" }, "node_modules/axios": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.1.tgz", - "integrity": "sha512-NN+fvwH/kV01dYUQ3PTOZns4LWtWhOFCAhQ/pHb88WQ1hNe5V/dvFwc4VJcDL11LT9xSX0QtsR8sWUuyOuOq7g==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.2.tgz", + "integrity": "sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -2294,9 +2304,9 @@ } }, "node_modules/esbuild": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", - "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz", + "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -2307,31 +2317,31 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.0", - "@esbuild/android-arm": "0.25.0", - "@esbuild/android-arm64": "0.25.0", - "@esbuild/android-x64": "0.25.0", - "@esbuild/darwin-arm64": "0.25.0", - "@esbuild/darwin-x64": "0.25.0", - "@esbuild/freebsd-arm64": "0.25.0", - "@esbuild/freebsd-x64": "0.25.0", - "@esbuild/linux-arm": "0.25.0", - "@esbuild/linux-arm64": "0.25.0", - "@esbuild/linux-ia32": "0.25.0", - "@esbuild/linux-loong64": "0.25.0", - "@esbuild/linux-mips64el": "0.25.0", - "@esbuild/linux-ppc64": "0.25.0", - "@esbuild/linux-riscv64": "0.25.0", - "@esbuild/linux-s390x": "0.25.0", - "@esbuild/linux-x64": "0.25.0", - "@esbuild/netbsd-arm64": "0.25.0", - "@esbuild/netbsd-x64": "0.25.0", - "@esbuild/openbsd-arm64": "0.25.0", - "@esbuild/openbsd-x64": "0.25.0", - "@esbuild/sunos-x64": "0.25.0", - "@esbuild/win32-arm64": "0.25.0", - "@esbuild/win32-ia32": "0.25.0", - "@esbuild/win32-x64": "0.25.0" + "@esbuild/aix-ppc64": "0.25.1", + "@esbuild/android-arm": "0.25.1", + "@esbuild/android-arm64": "0.25.1", + "@esbuild/android-x64": "0.25.1", + "@esbuild/darwin-arm64": "0.25.1", + "@esbuild/darwin-x64": "0.25.1", + "@esbuild/freebsd-arm64": "0.25.1", + "@esbuild/freebsd-x64": "0.25.1", + "@esbuild/linux-arm": "0.25.1", + "@esbuild/linux-arm64": "0.25.1", + "@esbuild/linux-ia32": "0.25.1", + "@esbuild/linux-loong64": "0.25.1", + "@esbuild/linux-mips64el": "0.25.1", + "@esbuild/linux-ppc64": "0.25.1", + "@esbuild/linux-riscv64": "0.25.1", + "@esbuild/linux-s390x": "0.25.1", + "@esbuild/linux-x64": "0.25.1", + "@esbuild/netbsd-arm64": "0.25.1", + "@esbuild/netbsd-x64": "0.25.1", + "@esbuild/openbsd-arm64": "0.25.1", + "@esbuild/openbsd-x64": "0.25.1", + "@esbuild/sunos-x64": "0.25.1", + "@esbuild/win32-arm64": "0.25.1", + "@esbuild/win32-ia32": "0.25.1", + "@esbuild/win32-x64": "0.25.1" } }, "node_modules/escape-string-regexp": { @@ -2370,18 +2380,19 @@ } }, "node_modules/eslint": { - "version": "9.21.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.21.0.tgz", - "integrity": "sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==", + "version": "9.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.22.0.tgz", + "integrity": "sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.19.2", + "@eslint/config-helpers": "^0.1.0", "@eslint/core": "^0.12.0", "@eslint/eslintrc": "^3.3.0", - "@eslint/js": "9.21.0", + "@eslint/js": "9.22.0", "@eslint/plugin-kit": "^0.2.7", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -2393,7 +2404,7 @@ "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.2.0", + "eslint-scope": "^8.3.0", "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0", "esquery": "^1.5.0", @@ -2430,13 +2441,13 @@ } }, "node_modules/eslint-config-prettier": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.0.2.tgz", - "integrity": "sha512-1105/17ZIMjmCOJOPNfVdbXafLCLj3hPmkmB7dLgt7XsQ/zkxSuDerE/xgO3RxoHysR1N1whmquY0lSn2O0VLg==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.1.tgz", + "integrity": "sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==", "dev": true, "license": "MIT", "bin": { - "eslint-config-prettier": "build/bin/cli.js" + "eslint-config-prettier": "bin/cli.js" }, "peerDependencies": { "eslint": ">=7.0.0" @@ -2482,9 +2493,9 @@ } }, "node_modules/eslint-scope": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -3341,9 +3352,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.9.tgz", + "integrity": "sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==", "funding": [ { "type": "github", @@ -3694,9 +3705,9 @@ "license": "MIT" }, "node_modules/rollup": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.9.tgz", - "integrity": "sha512-nF5XYqWWp9hx/LrpC8sZvvvmq0TeTjQgaZHYmAgwysT9nh8sWnZhBnM8ZyVbbJFIQBLwHDNoMqsBZBbUo4U8sQ==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.35.0.tgz", + "integrity": "sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==", "dev": true, "license": "MIT", "dependencies": { @@ -3710,25 +3721,25 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.34.9", - "@rollup/rollup-android-arm64": "4.34.9", - "@rollup/rollup-darwin-arm64": "4.34.9", - "@rollup/rollup-darwin-x64": "4.34.9", - "@rollup/rollup-freebsd-arm64": "4.34.9", - "@rollup/rollup-freebsd-x64": "4.34.9", - "@rollup/rollup-linux-arm-gnueabihf": "4.34.9", - "@rollup/rollup-linux-arm-musleabihf": "4.34.9", - "@rollup/rollup-linux-arm64-gnu": "4.34.9", - "@rollup/rollup-linux-arm64-musl": "4.34.9", - "@rollup/rollup-linux-loongarch64-gnu": "4.34.9", - "@rollup/rollup-linux-powerpc64le-gnu": "4.34.9", - "@rollup/rollup-linux-riscv64-gnu": "4.34.9", - "@rollup/rollup-linux-s390x-gnu": "4.34.9", - "@rollup/rollup-linux-x64-gnu": "4.34.9", - "@rollup/rollup-linux-x64-musl": "4.34.9", - "@rollup/rollup-win32-arm64-msvc": "4.34.9", - "@rollup/rollup-win32-ia32-msvc": "4.34.9", - "@rollup/rollup-win32-x64-msvc": "4.34.9", + "@rollup/rollup-android-arm-eabi": "4.35.0", + "@rollup/rollup-android-arm64": "4.35.0", + "@rollup/rollup-darwin-arm64": "4.35.0", + "@rollup/rollup-darwin-x64": "4.35.0", + "@rollup/rollup-freebsd-arm64": "4.35.0", + "@rollup/rollup-freebsd-x64": "4.35.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.35.0", + "@rollup/rollup-linux-arm-musleabihf": "4.35.0", + "@rollup/rollup-linux-arm64-gnu": "4.35.0", + "@rollup/rollup-linux-arm64-musl": "4.35.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.35.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.35.0", + "@rollup/rollup-linux-riscv64-gnu": "4.35.0", + "@rollup/rollup-linux-s390x-gnu": "4.35.0", + "@rollup/rollup-linux-x64-gnu": "4.35.0", + "@rollup/rollup-linux-x64-musl": "4.35.0", + "@rollup/rollup-win32-arm64-msvc": "4.35.0", + "@rollup/rollup-win32-ia32-msvc": "4.35.0", + "@rollup/rollup-win32-x64-msvc": "4.35.0", "fsevents": "~2.3.2" } }, @@ -3998,9 +4009,9 @@ "license": "MIT" }, "node_modules/vite": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.0.tgz", - "integrity": "sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.1.tgz", + "integrity": "sha512-n2GnqDb6XPhlt9B8olZPrgMD/es/Nd1RdChF6CBD/fHW6pUyUTt2sQW2fPRX5GiD9XEa6+8A6A4f2vT6pSsE7Q==", "dev": true, "license": "MIT", "dependencies": { @@ -4151,13 +4162,13 @@ } }, "node_modules/vue-i18n": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-11.1.1.tgz", - "integrity": "sha512-0P6DkKy96R4Wh2sIZJEHw8ivnlD1pnB6Ib/eldoF1SUpQutfKZv6aMqZwICS1gW0rwq24ZSXw7y3jW+PRVYqWA==", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-11.1.2.tgz", + "integrity": "sha512-MfdkdKGUHN+jkkaMT5Zbl4FpRmN7kfelJIwKoUpJ32ONIxdFhzxZiLTVaAXkAwvH3y9GmWpoiwjDqbPIkPIMFA==", "license": "MIT", "dependencies": { - "@intlify/core-base": "11.1.1", - "@intlify/shared": "11.1.1", + "@intlify/core-base": "11.1.2", + "@intlify/shared": "11.1.2", "@vue/devtools-api": "^6.5.0" }, "engines": {