@x18n/ui 0.0.12 → 0.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +4 -2
- package/dist/index.mjs +3 -2
- package/dist/nitro.json +1 -1
- package/dist/public/200.html +1 -1
- package/dist/public/404.html +1 -1
- package/dist/public/_nuxt/{DF0vjjh8.js → BMk3frKd.js} +1 -1
- package/dist/public/_nuxt/{DjCCuC3W.js → BQt3bm8c.js} +4 -4
- package/dist/public/_nuxt/BXMubO3c.js +1 -0
- package/dist/public/_nuxt/BdRzFi-7.js +1 -0
- package/dist/public/_nuxt/{pjS1_eVL.js → BksN_39l.js} +1 -1
- package/dist/public/_nuxt/{L4Dhp0Sv.js → BrQXMZiN.js} +1 -1
- package/dist/public/_nuxt/{Boxecvzt.js → BvWJ0ee6.js} +1 -1
- package/dist/public/_nuxt/By9SURJ0.js +1 -0
- package/dist/public/_nuxt/C-FN7NZ5.js +4 -0
- package/dist/public/_nuxt/{jwxOgCzJ.js → C2NDV-aj.js} +1 -1
- package/dist/public/_nuxt/{D08T24dG.js → C9NjIzeY.js} +1 -1
- package/dist/public/_nuxt/{Cuj77bTR.js → CEnmEDIF.js} +1 -1
- package/dist/public/_nuxt/CJYF9l4i.js +1 -0
- package/dist/public/_nuxt/CTHz3W6Z.js +1 -0
- package/dist/public/_nuxt/{D9175g8g.js → CYt0tzKv.js} +1 -1
- package/dist/public/_nuxt/CjABOUCt.js +1 -0
- package/dist/public/_nuxt/Cla6r_hp.js +1 -0
- package/dist/public/_nuxt/{C3YrgNlB.js → CmTOev3L.js} +1 -1
- package/dist/public/_nuxt/CqFP5-dM.js +1 -0
- package/dist/public/_nuxt/{f6bf8PNO.js → D0qDe1RK.js} +1 -1
- package/dist/public/_nuxt/{DwGgiVOP.js → DEHKzIZA.js} +1 -1
- package/dist/public/_nuxt/{CxBYt3qP.js → DFSrEpkt.js} +1 -1
- package/dist/public/_nuxt/DGZ47nDY.js +1 -0
- package/dist/public/_nuxt/DwfVoZK4.js +1 -0
- package/dist/public/_nuxt/DxKFtHBx.js +1 -0
- package/dist/public/_nuxt/GykjZmqe.js +1 -0
- package/dist/public/_nuxt/OCEG5gyJ.js +1 -0
- package/dist/public/_nuxt/builds/latest.json +1 -1
- package/dist/public/_nuxt/builds/meta/1768fa1c-81c1-455a-8b7e-07e2b05e0c06.json +1 -0
- package/dist/public/_nuxt/{CJjWC7Ka.js → codzHuXh.js} +1 -1
- package/dist/public/_nuxt/entry.BrYZ28rY.css +1 -0
- package/dist/public/_nuxt/error-404.BgnUIvx5.css +1 -0
- package/dist/public/_nuxt/error-500.BI0LH_MG.css +1 -0
- package/dist/public/_nuxt/{BuVS4UTW.js → rgsxZ82X.js} +1 -1
- package/dist/public/index.html +1 -1
- package/package.json +4 -4
- package/dist/public/_nuxt/6DTeintI.js +0 -1
- package/dist/public/_nuxt/BH143Pz-.js +0 -1
- package/dist/public/_nuxt/BQbrRyj1.js +0 -1
- package/dist/public/_nuxt/ByAXDZRg.js +0 -1
- package/dist/public/_nuxt/C5AT5PNH.js +0 -1
- package/dist/public/_nuxt/CAeV2zG7.js +0 -1
- package/dist/public/_nuxt/CugIO4Ok.js +0 -1
- package/dist/public/_nuxt/D8wRJGd0.js +0 -1
- package/dist/public/_nuxt/DGFmLyn4.js +0 -1
- package/dist/public/_nuxt/DSHArhRM.js +0 -1
- package/dist/public/_nuxt/EGsfZg42.js +0 -1
- package/dist/public/_nuxt/HmocOjc4.js +0 -4
- package/dist/public/_nuxt/MHlmqv3A.js +0 -1
- package/dist/public/_nuxt/builds/meta/ba464564-d83b-4115-af1e-9dbe9a6f368a.json +0 -1
- package/dist/public/_nuxt/entry.C19c3NgF.css +0 -1
- package/dist/public/_nuxt/error-404.B3F8lAkA.css +0 -1
- package/dist/public/_nuxt/error-500.BO-H0E44.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ct as e,Et as t,F as n,H as r,M as i,P as a,Q as o,Tt as s,_ as c,c as l,d as u,h as d,it as f,l as p,m,r as h,s as g,u as _}from"./B4prFwj0.js";import{S as v,a as y,l as b,n as x,t as S,v as ee,y as C}from"./BMk3frKd.js";import{a as w,n as T}from"#entry";import{t as E}from"./DwfVoZK4.js";import{n as D,r as O}from"./C-FN7NZ5.js";import{t as te}from"./ztSLDBsK.js";import{t as k}from"./D0qDe1RK.js";import{t as A}from"./DQNu8teu.js";import{t as j}from"./rgsxZ82X.js";import{t as M}from"./CYt0tzKv.js";var N={class:`inline-flex items-center gap-1 font-mono text-xs color-muted`},P={key:0,class:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-xs`},F={class:`flex items-center gap-1.5 font-mono`},I=c({__name:`ChangedValues`,props:{project:{},keyName:{},locales:{}},setup(e){let s=e,c=g(()=>s.locales??y.value.map(e=>e.code)),b=o();async function x(){b.value=await S.value?.key(s.project,s.keyName)}return(e,o)=>(i(),p(E,{label:f(v)(`history.locales`,{count:c.value.length}),align:`left`,onShow:x},{trigger:r(()=>[n(e.$slots,`default`,{},()=>[l(`span`,N,[c.value.length===1?(i(),u(h,{key:0},[d(T,{code:c.value[0]},null,8,[`code`]),m(t(c.value[0]),1)],64)):(i(),u(h,{key:1},[m(t(f(v)(`history.locales`,{count:c.value.length})),1)],64))])])]),default:r(()=>[b.value?(i(),u(`div`,P,[(i(!0),u(h,null,a(c.value,e=>(i(),u(h,{key:e},[l(`span`,F,[d(T,{code:e},null,8,[`code`]),m(t(e),1)]),d(k,{value:b.value.messages.find(t=>t.locale===e)?.value,placeholders:b.value.messages.find(t=>t.locale===e)?.placeholders??[]},null,8,[`value`,`placeholders`])],64))),128))])):_(``,!0)]),_:3},8,[`label`]))}}),L={class:`grid grid-cols-2 border-b border-base md:grid-cols-4`},R={class:`flex items-center gap-2 font-mono`},z={key:0,class:`badge`},B=[`title`],V={class:`text-xs color-muted tabular-nums`},H={key:0,class:`color-warn`},U={class:`flex w-12 shrink-0 justify-center`},W={class:`grid md:grid-cols-2`},G={class:`font-mono text-xs color-error tabular-nums`},K={class:`font-mono text-xs color-warn tabular-nums`},q={key:0,class:`px-4 py-3 color-muted`},J={class:`flex-auto font-mono text-xs`},Y={class:`font-mono tabular-nums`},X={class:`flex flex-wrap gap-1 px-4 py-3`},Z={key:0,class:`color-muted`},ne={class:`flex flex-wrap gap-1 px-4 py-3`},re={key:0,class:`color-muted`},ie={key:1,class:`color-muted`},ae=[`aria-expanded`,`onClick`],oe=[`title`],se={key:0,class:`border-t border-base`},ce={class:`truncate font-mono text-xs`},le={key:0,class:`py-1.5 pl-10 pr-4 text-xs color-muted`},Q=20,$=c({__name:`index`,setup(n){function c(e){return e.total===0?0:e.outdated/e.total*100}let S=o(new Set);function E(e,t){return t===0!==S.value.has(e.revision??`local`)}function k(e){let t=e.revision??`local`,n=new Set(S.value);n.delete(t)||n.add(t),S.value=n}let N=g(()=>b.value.slice(0,Q)),P=g(()=>(x.value?.locales??[]).filter(e=>e.code!==x.value?.sourceLocale)),F=g(()=>P.value.filter(e=>e.missing+e.empty+e.outdated>0)),$=g(()=>x.value&&[{label:v(`overview.keys`),value:x.value.keys,to:`/keys`},{label:v(`overview.resources`),value:x.value.resources,to:`/project`},{label:v(`overview.usages`),value:x.value.usages,to:`/usages`},{label:v(`overview.locales`),value:x.value.locales.length,to:`/keys`}]);return(n,o)=>f(x)?(i(),p(te,{key:0},{default:r(()=>[l(`div`,L,[(i(!0),u(h,null,a($.value,e=>(i(),p(f(w),{key:e.label,to:e.to,class:`focus-ring border-r border-base transition-colors last:border-r-0 hover:bg-hover`},{default:r(()=>[d(M,{label:e.label,value:e.value},null,8,[`label`,`value`])]),_:2},1032,[`to`]))),128))]),d(A,{index:`01`,title:f(v)(`overview.coverage`)},{aside:r(()=>[o[0]||=l(`span`,{class:`flex-auto`},null,-1),P.value.length?(i(),p(O,{key:0,text:f(D)((F.value.length?F.value:P.value).map(e=>({locale:e.code,stale:e.outdated>0}))),label:f(v)(`prompt.copyAll`),hint:f(v)(`prompt.allHint`)},null,8,[`text`,`label`,`hint`])):_(``,!0)]),default:r(()=>[(i(!0),u(h,null,a(f(y),n=>(i(),u(`div`,{key:n.code,class:`flex items-center border-b border-base transition-colors last:border-b-0 hover:bg-hover`},[d(f(w),{to:`/locales/${encodeURIComponent(n.code)}`,class:`focus-ring grid flex-auto grid-cols-[7rem_1fr_4.5rem_14rem] items-center gap-4 py-2 pl-4`},{default:r(()=>[l(`span`,R,[d(T,{code:n.code},null,8,[`code`]),m(` `+t(n.code)+` `,1),n.code===f(x).sourceLocale?(i(),u(`span`,z,t(f(v)(`overview.source`)),1)):_(``,!0)]),l(`span`,{class:`h-1.5 flex border border-strong`,title:f(C)(n.code)},[l(`span`,{class:`h-full bg-inverse`,style:s({width:`${Math.max(0,n.percent-c(n))}%`})},null,4),l(`span`,{class:`h-full bg-[var(--x-warn)]`,style:s({width:`${c(n)}%`})},null,4)],8,B),l(`span`,{class:e([`text-right font-mono tabular-nums`,n.percent>=100&&`color-ok`])},t(f(ee)(n.percent)),3),l(`span`,V,[m(t(f(v)(`overview.missing`,{missing:n.missing,empty:n.empty}))+` `,1),n.outdated?(i(),u(`span`,H,`· `+t(f(v)(`overview.outdated`,{count:n.outdated})),1)):_(``,!0)])]),_:2},1032,[`to`]),l(`span`,U,[n.code===f(x).sourceLocale?_(``,!0):(i(),p(O,{key:0,text:f(D)([{locale:n.code,stale:n.outdated>0}]),label:n.outdated?f(v)(`prompt.copyStale`):f(v)(`prompt.copy`),hint:n.outdated?f(v)(`prompt.staleHint`):f(v)(`prompt.hint`)},null,8,[`text`,`label`,`hint`]))])]))),128))]),_:1},8,[`title`]),l(`div`,W,[d(A,{index:`02`,title:f(v)(`overview.diagnostics`),class:`md:border-r`},{aside:r(()=>[o[1]||=l(`span`,{class:`flex-auto`},null,-1),d(f(w),{to:`/diagnostics`,class:`focus-ring font-mono text-xs color-muted hover:underline`},{default:r(()=>[m(t(f(v)(`diagnostics.viewAll`)),1)]),_:1}),l(`span`,G,t(f(v)(`overview.errors`,{count:f(x).diagnostics.errors})),1),l(`span`,K,t(f(v)(`overview.warnings`,{count:f(x).diagnostics.warnings})),1)]),default:r(()=>[f(x).diagnostics.byCode.length?_(``,!0):(i(),u(`p`,q,t(f(v)(`overview.clean`)),1)),(i(!0),u(h,null,a(f(x).diagnostics.byCode,n=>(i(),p(f(w),{key:n.code,to:{path:`/diagnostics`,query:{code:n.code}},class:`focus-ring flex items-center gap-2 px-4 py-1.5 transition-colors hover:bg-hover`},{default:r(()=>[l(`span`,{class:e(n.severity===`error`?`i-ph-x-circle-duotone color-error`:`i-ph-warning-duotone color-warn`)},null,2),l(`span`,J,t(n.code),1),l(`span`,Y,t(n.count),1),o[2]||=l(`span`,{class:`i-ph-caret-right-duotone text-xs color-muted`},null,-1)]),_:2},1032,[`to`]))),128))]),_:1},8,[`title`]),l(`div`,null,[d(A,{index:`03`,title:f(v)(`overview.presets`)},{default:r(()=>[l(`div`,X,[(i(!0),u(h,null,a(f(x).presets,e=>(i(),u(`span`,{key:e,class:`border border-strong px-1.5 font-mono text-xs`},t(e),1))),128)),f(x).presets.length?_(``,!0):(i(),u(`span`,Z,t(f(v)(`overview.noPresets`)),1))])]),_:1},8,[`title`]),d(A,{index:`04`,title:f(v)(`overview.recent`)},{default:r(()=>[l(`div`,ne,[(i(!0),u(h,null,a(N.value,e=>(i(),p(I,{key:e,project:f(x).name,"key-name":e},{default:r(()=>[d(f(w),{to:`/keys/${encodeURIComponent(e)}`,class:`focus-ring border border-base px-1.5 font-mono text-xs hover:border-inverse`},{default:r(()=>[m(t(e),1)]),_:2},1032,[`to`])]),_:2},1032,[`project`,`key-name`]))),128)),f(b).length?f(b).length>Q?(i(),u(`span`,ie,t(f(v)(`history.more`,{count:f(b).length-Q})),1)):_(``,!0):(i(),u(`span`,re,t(f(v)(`overview.noRecent`)),1))])]),_:1},8,[`title`])])]),f(x).changes.length?(i(),p(A,{key:0,index:`05`,title:f(v)(`history.title`)},{default:r(()=>[(i(!0),u(h,null,a(f(x).changes,(n,s)=>(i(),u(`div`,{key:n.revision??`local`,class:`border-b border-base last:border-b-0`},[l(`button`,{type:`button`,class:`focus-ring flex w-full items-center gap-3 px-4 py-2 text-left transition-colors hover:bg-hover`,"aria-expanded":E(n,s),onClick:e=>k(n)},[l(`span`,{class:e([`i-ph-caret-right-duotone shrink-0 transition-transform`,E(n,s)&&`rotate-90`])},null,2),d(j,{change:n},null,8,[`change`]),o[3]||=l(`span`,{class:`flex-auto`},null,-1),l(`span`,{class:`badge`,title:f(v)(`overview.keys`)},t(n.total),9,oe)],8,ae),E(n,s)?(i(),u(`div`,se,[(i(!0),u(h,null,a(n.keys,e=>(i(),p(f(w),{key:e.key,to:`/keys/${encodeURIComponent(e.key)}`,class:`focus-ring grid grid-cols-[minmax(0,20rem)_1fr] items-center gap-4 border-b border-base py-1.5 pl-10 pr-4 transition-colors last:border-b-0 hover:bg-hover`},{default:r(()=>[l(`span`,ce,t(e.key),1),d(I,{project:f(x).name,"key-name":e.key,locales:e.locales},null,8,[`project`,`key-name`,`locales`])]),_:2},1032,[`to`]))),128)),n.total>n.keys.length?(i(),u(`p`,le,t(f(v)(`history.more`,{count:n.total-n.keys.length})),1)):_(``,!0)])):_(``,!0)]))),128))]),_:1},8,[`title`])):_(``,!0)]),_:1})):_(``,!0)}});export{$ as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{B as e,Ct as t,Et as n,H as r,M as i,P as a,Q as o,U as s,_ as c,c as l,d as u,h as d,it as f,l as p,m,r as h,s as g,u as _}from"./B4prFwj0.js";import{i as v,o as y}from"./DoHg1T7s.js";import{S as b,a as x,c as S,m as C,t as w}from"./BMk3frKd.js";import{n as ee}from"#entry";import{t as te}from"./DwfVoZK4.js";import{t as ne}from"./DEHKzIZA.js";import{t as re}from"./ztSLDBsK.js";import{t as ie}from"./D0qDe1RK.js";import{t as T}from"./DQNu8teu.js";var E={class:`flex items-center gap-3 border-b border-base px-4 py-3`},D={class:`flex-auto color-muted`},O={key:0,class:`color-ok`},k=[`disabled`],A={key:0,class:`px-4 py-3 color-muted`},j=[`disabled`,`onClick`],M={class:`contents`},N=[`onUpdate:modelValue`,`disabled`],P={class:`text-right font-mono text-xs color-faint tabular-nums`},F=[`title`],I={class:`flex items-center gap-2`},L=[`aria-label`],R={class:`mb-1.5 text-xs color-muted`},z={key:0,class:`mb-1.5 text-xs color-warn`},B={class:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-xs`},V={class:`flex items-center gap-1.5 font-mono`},H=[`title`,`aria-label`],U=[`onUpdate:modelValue`,`readonly`,`aria-label`],W=[`disabled`,`title`,`aria-label`,`onClick`],G=c({__name:`extract`,setup(c){let G=C((e,t)=>e.extractCandidates(t)),K=C((e,t)=>e.keys(t)),q=g(()=>new Map(K.value?.rows.map(e=>[e.key,e]))),J=o([]);e(G,e=>{let t=new Map(J.value.map(e=>[e.id,e])),n=new Map;J.value=(e??[]).map(e=>{let r=`${e.path}\0${e.original}`,i=n.get(r)??0;n.set(r,i+1);let a=`${r}\0${i}`,o=t.get(a);return{id:a,candidate:e,key:o&&o.key!==o.candidate.key?o.key:e.key,picked:o?.picked??!1}})});let ae=g(()=>{let e=new Map;for(let t of J.value){let n=e.get(t.candidate.path)??[];e.set(t.candidate.path,n),n.push(t)}return[...e]}),Y=g(()=>J.value.filter(e=>e.picked)),X=o(),Z=o(!1);async function Q(e){let t=e.map(({candidate:e,key:t})=>({path:e.path,range:e.range,original:e.original,key:t,value:e.value,replacement:e.replacement.replace(e.key,t),imports:e.imports}));Z.value=!0;try{let e=await w.value.extractApply({project:S.value,items:t});X.value={count:e.keys.length,files:e.changes.length}}finally{Z.value=!1}}function $(e){let t=K.value?.sourceLocale;return t!==void 0&&q.value.get(e.key)?.values[t]!==e.candidate.value}return(e,o)=>(i(),p(re,null,{default:r(()=>[l(`header`,E,[l(`p`,D,n(f(b)(`extract.hint`)),1),X.value?(i(),u(`span`,O,n(f(b)(`extract.done`,X.value)),1)):_(``,!0),f(w)?.capabilities.write?(i(),u(`button`,{key:1,class:`btn-solid`,disabled:!Y.value.length||Z.value,onClick:o[0]||=e=>Q(Y.value)},n(f(b)(`extract.apply`,{count:Y.value.length})),9,k)):_(``,!0)]),f(G)&&!J.value.length?(i(),u(`p`,A,n(f(b)(`extract.none`)),1)):_(``,!0),(i(!0),u(h,null,a(ae.value,([e,c],g)=>(i(),p(T,{key:e,index:String(g+1).padStart(2,`0`),title:f(b)(`extract.strings`,{count:c.length})},{aside:r(()=>[d(ne,{path:e,class:`ml-2 flex-auto`},null,8,[`path`]),f(w)?.capabilities.write?(i(),u(`button`,{key:0,class:`btn-outline`,disabled:Z.value,onClick:e=>Q(c)},n(f(b)(`extract.file`)),9,j)):_(``,!0)]),default:r(()=>[(i(!0),u(h,null,a(c,e=>(i(),u(`div`,{key:e.id,class:`grid grid-cols-[auto_3rem_1fr_20rem_auto] items-center gap-3 border-b border-base px-4 py-1.5 last:border-b-0`},[l(`label`,M,[s(l(`input`,{"onUpdate:modelValue":t=>e.picked=t,type:`checkbox`,class:`accent-[var(--x-fg)]`,disabled:!f(w)?.capabilities.write},null,8,N),[[v,e.picked]]),l(`span`,P,n(e.candidate.line),1),l(`span`,{class:`truncate`,title:e.candidate.text},n(e.candidate.text),9,F)]),l(`div`,I,[q.value.get(e.key)?(i(),p(te,{key:0,label:f(b)(`extract.existing`),pinnable:!1,align:`left`},{trigger:r(()=>[l(`span`,{class:t([`i-ph-link-simple-duotone shrink-0 text-base`,$(e)?`color-warn`:`color-info`]),role:`img`,"aria-label":f(b)(`extract.existing`)},null,10,L)]),default:r(()=>[l(`p`,R,n(f(b)(`extract.existing`)),1),$(e)?(i(),u(`p`,z,n(f(b)(`extract.differs`)),1)):_(``,!0),l(`div`,B,[(i(!0),u(h,null,a(f(x),t=>(i(),u(h,{key:t.code},[l(`span`,V,[d(ee,{code:t.code},null,8,[`code`]),m(n(t.code),1)]),d(ie,{value:q.value.get(e.key)?.values[t.code]},null,8,[`value`])],64))),128))])]),_:2},1032,[`label`])):(i(),u(`span`,{key:1,class:`i-ph-plus-circle-duotone shrink-0 text-base color-ok`,role:`img`,title:f(b)(`extract.new`),"aria-label":f(b)(`extract.new`)},null,8,H)),s(l(`input`,{"onUpdate:modelValue":t=>e.key=t,class:`input min-w-0 flex-auto font-mono text-xs`,readonly:!f(w)?.capabilities.write,"aria-label":f(b)(`extract.key`)},null,8,U),[[y,e.key]])]),f(w)?.capabilities.write?(i(),u(`button`,{key:0,class:`btn-icon`,disabled:Z.value||!e.key,title:f(b)(`extract.one`),"aria-label":f(b)(`extract.one`),onClick:t=>Q([e])},[...o[1]||=[l(`span`,{class:`i-ph-hammer-duotone text-base`},null,-1)]],8,W)):_(``,!0)]))),128))]),_:2},1032,[`index`,`title`]))),128))]),_:1}))}});export{G as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ct as e,Et as t,H as n,M as r,P as i,_ as a,c as o,d as s,h as c,it as l,l as u,m as d,r as f,s as p,u as m}from"./B4prFwj0.js";import{d as h,u as g}from"./BbIaocwP.js";import{S as _,m as v}from"./
|
|
1
|
+
import{Ct as e,Et as t,H as n,M as r,P as i,_ as a,c as o,d as s,h as c,it as l,l as u,m as d,r as f,s as p,u as m}from"./B4prFwj0.js";import{d as h,u as g}from"./BbIaocwP.js";import{S as _,m as v}from"./BMk3frKd.js";import{a as y,n as b}from"#entry";import{r as x,t as S}from"./C-FN7NZ5.js";import{t as C}from"./DEHKzIZA.js";import{t as w}from"./ztSLDBsK.js";var T={class:`flex flex-wrap items-center gap-2 border-b border-base px-4 py-3`},E=[`onClick`],D={class:`tabular-nums color-muted`},O={key:0,class:`border-b border-base px-4 py-3 color-muted`},k={class:`flex items-center gap-2`},A={class:`font-mono text-xs color-muted`},j={key:0,class:`inline-flex items-center gap-1.5 font-mono text-xs`},M={class:`flex flex-wrap items-center gap-x-4 gap-y-1`},N=a({__name:`diagnostics`,setup(a){let N=g(),P=h(),F=v((e,t)=>e.analysis(t)),I=p(()=>typeof N.query.code==`string`?N.query.code:void 0),L=p(()=>F.value?.diagnostics??[]),R=p(()=>{let e=new Map;for(let t of L.value){let n=e.get(t.code)??{code:t.code,severity:t.severity,count:0};n.count++,e.set(t.code,n)}return[...e.values()].sort((e,t)=>t.count-e.count)}),z=p(()=>L.value.filter(e=>!I.value||e.code===I.value).toSorted((e,t)=>e.severity===t.severity?0:e.severity===`error`?-1:1));function B(e){P.replace({query:e?{code:e}:{}})}return(a,p)=>l(F)?(r(),u(w,{key:0},{default:n(()=>[o(`div`,T,[o(`button`,{type:`button`,class:e([`btn h-7`,I.value?`btn-ghost`:`border-strong`]),onClick:p[0]||=e=>B(void 0)},t(l(_)(`diagnostics.all`,{count:L.value.length})),3),(r(!0),s(f,null,i(R.value,n=>(r(),s(`button`,{key:n.code,type:`button`,class:e([`btn h-7 font-mono text-xs`,I.value===n.code?`border-strong`:`btn-ghost`]),onClick:e=>B(n.code)},[o(`span`,{class:e(n.severity===`error`?`i-ph-x-circle-duotone color-error`:`i-ph-warning-duotone color-warn`)},null,2),d(` `+t(n.code)+` `,1),o(`span`,D,t(n.count),1)],10,E))),128)),p[1]||=o(`span`,{class:`flex-auto`},null,-1),z.value.length?(r(),u(x,{key:0,text:l(S)(I.value),label:l(_)(`diagnostics.copyFix`),hint:I.value?l(_)(`diagnostics.fixCodeHint`,{code:I.value}):l(_)(`diagnostics.fixHint`)},null,8,[`text`,`label`,`hint`])):m(``,!0)]),z.value.length?m(``,!0):(r(),s(`p`,O,t(l(_)(`overview.clean`)),1)),(r(!0),s(f,null,i(z.value,(i,a)=>(r(),s(`div`,{key:a,class:`grid gap-1 border-b border-base px-4 py-3`},[o(`div`,k,[o(`span`,{class:e(i.severity===`error`?`i-ph-x-circle-duotone color-error`:`i-ph-warning-duotone color-warn`)},null,2),o(`span`,A,t(i.code),1),p[2]||=o(`span`,{class:`flex-auto`},null,-1),i.locale?(r(),s(`span`,j,[c(b,{code:i.locale},null,8,[`code`]),d(t(i.locale),1)])):m(``,!0)]),o(`p`,null,t(i.message),1),o(`div`,M,[i.key?(r(),u(l(y),{key:0,to:`/keys/${encodeURIComponent(i.key)}`,class:`focus-ring font-mono text-xs hover:underline`},{default:n(()=>[d(t(i.key),1)]),_:2},1032,[`to`])):m(``,!0),i.file?(r(),u(C,{key:1,path:i.file,line:i.range?.line,column:i.range?.column},null,8,[`path`,`line`,`column`])):m(``,!0)])]))),128))]),_:1})):m(``,!0)}});export{N as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ct as e,Et as t,H as n,L as ee,M as r,P as i,Tt as a,_ as te,c as o,d as s,h as c,it as l,l as u,m as d,r as f,s as p,u as m}from"./B4prFwj0.js";import{u as ne}from"./BbIaocwP.js";import{S as h,i as re,m as g,n as _,p as ie,v as ae,y as oe}from"./
|
|
1
|
+
import{Ct as e,Et as t,H as n,L as ee,M as r,P as i,Tt as a,_ as te,c as o,d as s,h as c,it as l,l as u,m as d,r as f,s as p,u as m}from"./B4prFwj0.js";import{u as ne}from"./BbIaocwP.js";import{S as h,i as re,m as g,n as _,p as ie,v as ae,y as oe}from"./BMk3frKd.js";import{a as v,n as y}from"#entry";import{n as b,r as se}from"./C-FN7NZ5.js";import{t as ce}from"./ztSLDBsK.js";import{t as x}from"./D0qDe1RK.js";import{t as S}from"./DQNu8teu.js";var le={class:`grid gap-4 border-b border-base px-4 py-5`},C={class:`flex items-end gap-3`},w={class:`grid gap-1`},T={class:`label`},E={class:`flex items-center gap-3 font-mono text-2xl font-medium`},D={key:0,class:`pb-1 color-muted`},O={key:1,class:`badge mb-1.5`},k={key:0,class:`grid gap-1.5`},A={class:`h-2 flex border border-strong`},j={class:`font-mono text-xs color-muted tabular-nums`},M={key:1,class:`color-muted`},N={class:`truncate font-mono text-xs`},P={class:`truncate color-muted`},F={class:`truncate font-mono text-xs`},I={class:`truncate color-muted`},L={class:`flex min-w-0 items-center gap-2 font-mono text-xs`},ue={class:`truncate`},R={class:`truncate`},z={class:`truncate color-muted`},B={class:`font-mono text-xs color-muted`},V={key:0,class:`font-mono text-xs`},H={class:`flex-auto truncate`},U={key:4,class:`flex items-center gap-2 px-4 py-3 color-ok`},W=te({__name:`[locale]`,setup(te){let W=ne(),G=p(()=>String(W.params.locale)),K=p(()=>_.value?.locales.find(e=>e.code===G.value)),q=p(()=>G.value===_.value?.sourceLocale),J=g((e,t)=>e.keys(t)),de=g((e,t)=>e.analysis(t)),Y=p(()=>(J.value?.rows??[]).filter(e=>e.missing.includes(G.value)&&e.values[G.value]===void 0)),X=p(()=>(J.value?.rows??[]).filter(e=>e.missing.includes(G.value)&&e.values[G.value]!==void 0)),Z=p(()=>(J.value?.rows??[]).filter(e=>e.outdated.includes(G.value))),Q=p(()=>K.value&&K.value.total?K.value.outdated/K.value.total*100:0),$=p(()=>(de.value?.diagnostics??[]).filter(e=>e.locale===G.value&&(e.code===`placeholder-mismatch`||e.code===`invalid-syntax`)));function fe(){re(G.value)||ie(G.value)}return(te,p)=>(r(),u(ce,null,{default:n(()=>[o(`header`,le,[o(`div`,C,[o(`div`,w,[o(`span`,T,t(l(h)(`locale.label`)),1),o(`h1`,E,[c(y,{code:G.value},null,8,[`code`]),d(` `+t(G.value),1)])]),K.value?(r(),s(`span`,D,t(l(oe)(G.value)??K.value.displayName),1)):m(``,!0),q.value?(r(),s(`span`,O,t(l(h)(`overview.source`)),1)):m(``,!0),p[1]||=o(`span`,{class:`flex-auto`},null,-1),c(l(v),{to:{path:`/keys`,query:{missing:G.value}},class:`btn-outline`,onClick:fe},{default:n(()=>[p[0]||=o(`span`,{class:`i-ph-table-duotone`},null,-1),d(` `+t(l(h)(`locale.openInGrid`)),1)]),_:1},8,[`to`]),q.value?m(``,!0):(r(),u(se,{key:2,text:l(b)([{locale:G.value,stale:Z.value.length>0}]),label:Z.value.length?l(h)(`prompt.copyStale`):l(h)(`prompt.copy`),hint:Z.value.length?l(h)(`prompt.staleHint`):l(h)(`prompt.hint`)},null,8,[`text`,`label`,`hint`]))]),K.value?(r(),s(`div`,k,[o(`span`,A,[o(`span`,{class:`h-full bg-inverse`,style:a({width:`${Math.max(0,K.value.percent-Q.value)}%`})},null,4),o(`span`,{class:`h-full bg-[var(--x-warn)]`,style:a({width:`${Q.value}%`})},null,4)]),o(`span`,j,t(l(h)(`locale.progress`,{translated:K.value.translated,total:K.value.total,percent:l(ae)(K.value.percent)})),1)])):l(_)?(r(),s(`p`,M,t(l(h)(`locale.notFound`)),1)):m(``,!0)]),Y.value.length?(r(),u(S,{key:0,index:`01`,title:l(h)(`locale.missing`,{count:Y.value.length})},{default:n(()=>[(r(!0),s(f,null,i(Y.value,e=>(r(),u(l(v),{key:e.key,to:`/keys/${encodeURIComponent(e.key)}`,class:`focus-ring grid grid-cols-[minmax(0,20rem)_1fr] items-baseline gap-4 border-b border-base px-4 py-1.5 transition-colors last:border-b-0 hover:bg-hover`},{default:n(()=>[o(`span`,N,t(e.key),1),o(`span`,P,[c(x,{value:e.values[l(_)?.sourceLocale??``],inline:``},null,8,[`value`])])]),_:2},1032,[`to`]))),128))]),_:1},8,[`title`])):m(``,!0),X.value.length?(r(),u(S,{key:1,index:`02`,title:l(h)(`locale.empty`,{count:X.value.length})},{default:n(()=>[(r(!0),s(f,null,i(X.value,e=>(r(),u(l(v),{key:e.key,to:`/keys/${encodeURIComponent(e.key)}`,class:`focus-ring grid grid-cols-[minmax(0,20rem)_1fr] items-baseline gap-4 border-b border-base px-4 py-1.5 transition-colors last:border-b-0 hover:bg-hover`},{default:n(()=>[o(`span`,F,t(e.key),1),o(`span`,I,[c(x,{value:e.values[l(_)?.sourceLocale??``],inline:``},null,8,[`value`])])]),_:2},1032,[`to`]))),128))]),_:1},8,[`title`])):m(``,!0),Z.value.length?(r(),u(S,{key:2,index:`03`,title:l(h)(`locale.outdated`,{count:Z.value.length})},{default:n(()=>[(r(!0),s(f,null,i(Z.value,e=>(r(),u(l(v),{key:e.key,to:`/keys/${encodeURIComponent(e.key)}`,class:`focus-ring grid grid-cols-[minmax(0,20rem)_1fr_1fr] items-center gap-4 border-b border-base px-4 py-1.5 transition-colors last:border-b-0 hover:bg-hover`},{default:n(()=>[o(`span`,L,[p[2]||=o(`span`,{class:`i-ph-clock-counter-clockwise-duotone shrink-0 color-warn`},null,-1),o(`span`,ue,t(e.key),1)]),o(`span`,R,[c(x,{value:e.values[l(_)?.sourceLocale??``],inline:``},null,8,[`value`])]),o(`span`,z,[c(x,{value:e.values[G.value],inline:``},null,8,[`value`])])]),_:2},1032,[`to`]))),128))]),_:1},8,[`title`])):m(``,!0),$.value.length?(r(),u(S,{key:3,index:`04`,title:l(h)(`locale.problems`,{count:$.value.length})},{default:n(()=>[(r(!0),s(f,null,i($.value,(i,a)=>(r(),u(ee(i.key?l(v):`div`),{key:a,to:i.key?`/keys/${encodeURIComponent(i.key)}`:void 0,class:e([`flex items-center gap-2 border-b border-base px-4 py-1.5 last:border-b-0`,i.key&&`transition-colors hover:bg-hover`])},{default:n(()=>[o(`span`,{class:e(i.severity===`error`?`i-ph-x-circle-duotone color-error`:`i-ph-warning-duotone color-warn`)},null,2),o(`span`,B,t(i.code),1),i.key?(r(),s(`span`,V,t(i.key),1)):m(``,!0),o(`span`,H,t(i.message),1)]),_:2},1032,[`to`,`class`]))),128))]),_:1},8,[`title`])):m(``,!0),K.value&&l(J)&&!Y.value.length&&!X.value.length&&!Z.value.length&&!$.value.length?(r(),s(`p`,U,[p[3]||=o(`span`,{class:`i-ph-check-circle-duotone`},null,-1),d(` `+t(l(h)(`locale.complete`)),1)])):m(``,!0)]),_:1}))}});export{W as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ct as e,Et as t,H as n,M as r,P as i,Q as ee,Tt as a,_ as o,c as s,d as c,h as l,it as u,j as te,l as d,m as f,r as p,s as m,tt as h,u as g}from"./B4prFwj0.js";import{S as _,c as ne,t as re}from"./
|
|
1
|
+
import{Ct as e,Et as t,H as n,M as r,P as i,Q as ee,Tt as a,_ as o,c as s,d as c,h as l,it as u,j as te,l as d,m as f,r as p,s as m,tt as h,u as g}from"./B4prFwj0.js";import{S as _,c as ne,t as re}from"./BMk3frKd.js";import{t as v}from"./DEHKzIZA.js";import{t as y}from"./ztSLDBsK.js";import{t as b}from"./DQNu8teu.js";import{t as ie}from"./CYt0tzKv.js";var ae={class:`grid grid-cols-2 border-b border-base md:grid-cols-4`},oe={class:`font-mono text-xs color-error`},se={class:`text-xs color-muted`},x={class:`flex flex-wrap gap-2 p-4`},S={class:`label`},C={key:0,class:`flex flex-wrap items-center gap-2 border-t border-base px-4 py-2`},w={class:`label`},T={class:`flex cursor-pointer list-none items-center gap-2 px-4 py-2 hover:bg-hover`},E={class:`flex-auto font-mono text-xs`},D={class:`label`},O={class:`grid gap-1 pb-3 pl-10 pr-4`},k={key:0,class:`px-4 py-3 text-xs color-muted`},A={key:1,class:`group border-t border-base`},j={class:`flex cursor-pointer list-none items-center gap-2 px-4 py-2 hover:bg-hover`},M={class:`flex-auto text-xs color-muted`},N={class:`font-mono`},P={class:`grid md:grid-cols-2`},F={class:`flex items-baseline gap-2 font-mono text-xs`},I={class:`flex-auto`},L={class:`color-faint`},R={class:`tabular-nums`},z={class:`h-1 border border-strong`},B={key:0,class:`px-4 py-3 text-xs color-muted`},V={class:`flex items-baseline gap-2 font-mono text-xs`},H={class:`flex-auto`},U={class:`color-faint`},ce={class:`tabular-nums color-muted`},W={class:`h-1 border border-strong`},G={key:0,class:`px-4 py-3 text-xs color-muted`},le={class:`flex-auto`},ue={class:`color-muted`},de={class:`flex-auto`},fe={class:`color-muted`},pe={class:`group`},me={class:`flex cursor-pointer list-none items-center gap-2 px-4 py-2 hover:bg-hover`},he={class:`label`},ge={class:`of-x-auto border-t border-base p-4 font-mono text-xs leading-5 color-muted`},K=o({__name:`project`,setup(o){let K=h();te(async()=>{K.value=await re.value.explain()});let q=m(()=>K.value?.projects.find(e=>e.name===ne.value)),J=ee(!1),Y=m(()=>(q.value?.presets??[]).filter(e=>J.value||Z(e.reason))),X=m(()=>(q.value?.presets.length??0)-Y.value.length);function Z(e){return e===`listed`||e===`detected`}let Q=m(()=>(q.value?.formats??[]).filter(e=>e.resources>0)),_e=m(()=>Math.max(1,...Q.value.map(e=>e.resources))),ve=m(()=>Math.max(1,...(q.value?.scanners??[]).map(e=>e.files))),ye=m(()=>q.value?.finders.reduce((e,t)=>e+t.resources.length,0)??0),$=m(()=>(q.value?.errors.length??0)+(q.value?.conflicts.length??0)),be=m(()=>q.value&&[{label:_(`project.presets`),value:q.value.presets.filter(e=>Z(e.reason)).length},{label:_(`project.finders`),value:q.value.finders.length},{label:_(`overview.resources`),value:ye.value},{label:_(`project.problems`),value:$.value}]),xe=m(()=>Object.entries(q.value?.config.origins??{}));return(ee,o)=>q.value?(r(),d(y,{key:0},{default:n(()=>[s(`div`,ae,[(r(!0),c(p,null,i(be.value,t=>(r(),d(ie,{key:t.label,label:t.label,value:t.value,class:e([`border-r border-base last:border-r-0 max-md:nth-[2n]:border-r-0`,t.label===u(_)(`project.problems`)&&t.value>0&&`color-error`])},null,8,[`label`,`value`,`class`]))),128))]),$.value?(r(),d(b,{key:0,title:u(_)(`project.problems`)},{default:n(()=>[(r(!0),c(p,null,i(q.value.errors,(e,n)=>(r(),c(`div`,{key:`e${n}`,class:`flex flex-wrap items-center gap-x-3 gap-y-1 border-b border-base px-4 py-2 last:border-b-0`},[o[1]||=s(`span`,{class:`i-ph-warning-circle-duotone color-error`},null,-1),s(`span`,oe,t(e.name),1),s(`span`,se,t(e.why),1),e.path?(r(),d(v,{key:0,path:e.path},null,8,[`path`])):g(``,!0)]))),128)),(r(!0),c(p,null,i(q.value.conflicts,e=>(r(),c(`div`,{key:e.extension,class:`flex items-center gap-3 border-b border-base px-4 py-2 text-xs color-warn last:border-b-0`},[o[2]||=s(`span`,{class:`i-ph-warning-duotone`},null,-1),f(` `+t(u(_)(`project.conflict`,{extension:e.extension,winner:e.winner,loser:e.loser})),1)]))),128))]),_:1},8,[`title`])):g(``,!0),l(b,{title:u(_)(`project.presets`)},{default:n(()=>[s(`div`,x,[(r(!0),c(p,null,i(Y.value,n=>(r(),c(`span`,{key:n.name,class:e([`inline-flex items-center gap-1.5 border px-2 py-1 font-mono text-xs`,Z(n.reason)?`border-strong`:`border-base color-muted`])},[s(`span`,{class:e(Z(n.reason)?`i-ph-check-circle-duotone color-ok`:`i-ph-circle-duotone color-faint`)},null,2),f(` `+t(n.name)+` `,1),s(`span`,S,t(n.reason),1)],2))),128)),X.value?(r(),c(`button`,{key:0,class:`btn-ghost h-7`,onClick:o[0]||=e=>J.value=!0},[o[3]||=s(`span`,{class:`i-ph-dots-three-duotone`},null,-1),f(` `+t(u(_)(`project.showAllPresets`))+` (`+t(X.value)+`) `,1)])):g(``,!0)]),q.value.plugins.length?(r(),c(`div`,C,[s(`span`,w,t(u(_)(`project.plugins`)),1),(r(!0),c(p,null,i(q.value.plugins,e=>(r(),c(`span`,{key:e,class:`badge`},t(e),1))),128))])):g(``,!0)]),_:1},8,[`title`]),l(b,{title:u(_)(`project.finders`)},{default:n(()=>[(r(!0),c(p,null,i(q.value.finders,e=>(r(),c(`details`,{key:e.id,class:`group border-b border-base last:border-b-0`},[s(`summary`,T,[o[4]||=s(`span`,{class:`i-ph-caret-right-duotone text-xs color-muted transition-transform group-open:rotate-90`},null,-1),s(`span`,E,t(e.id),1),s(`span`,D,t(u(_)(`project.resources`,{count:e.resources.length})),1)]),s(`div`,O,[(r(!0),c(p,null,i(e.resources,e=>(r(),d(v,{key:e,path:e},null,8,[`path`]))),128))])]))),128)),q.value.finders.length?g(``,!0):(r(),c(`div`,k,t(u(_)(`project.none`)),1)),q.value.duplicates.length?(r(),c(`details`,A,[s(`summary`,j,[o[5]||=s(`span`,{class:`i-ph-caret-right-duotone text-xs color-muted transition-transform group-open:rotate-90`},null,-1),s(`span`,M,t(u(_)(`project.duplicates`,{count:q.value.duplicates.length})),1)]),(r(!0),c(p,null,i(q.value.duplicates,e=>(r(),c(`div`,{key:`${e.finder}:${e.path}`,class:`flex flex-wrap items-center gap-2 pb-2 pl-10 pr-4 text-xs color-muted`},[l(v,{path:e.path},null,8,[`path`]),s(`span`,N,t(e.finder)+` → `+t(e.keptFrom),1)]))),128))])):g(``,!0)]),_:1},8,[`title`]),s(`div`,P,[l(b,{title:u(_)(`project.formats`),class:`md:border-r`},{default:n(()=>[(r(!0),c(p,null,i(Q.value,e=>(r(),c(`div`,{key:e.id,class:`grid gap-1.5 border-b border-base px-4 py-2 last:border-b-0`},[s(`div`,F,[s(`span`,I,[f(t(e.id)+` `,1),s(`span`,L,t(e.extensions.join(`, `)),1)]),s(`span`,R,t(e.resources),1)]),s(`span`,z,[s(`span`,{class:`block h-full bg-inverse`,style:a({width:`${e.resources/_e.value*100}%`})},null,4)])]))),128)),Q.value.length?g(``,!0):(r(),c(`div`,B,t(u(_)(`project.none`)),1))]),_:1},8,[`title`]),l(b,{title:u(_)(`project.scanners`)},{default:n(()=>[(r(!0),c(p,null,i(q.value.scanners,e=>(r(),c(`div`,{key:e.id,class:`grid gap-1.5 border-b border-base px-4 py-2 last:border-b-0`},[s(`div`,V,[s(`span`,H,[f(t(e.id)+` `,1),s(`span`,U,t(e.extensions.join(`, `)),1)]),s(`span`,ce,t(u(_)(`project.files`,{count:e.files})),1)]),s(`span`,W,[s(`span`,{class:`block h-full bg-inverse`,style:a({width:`${e.files/ve.value*100}%`})},null,4)])]))),128)),q.value.scanners.length?g(``,!0):(r(),c(`div`,G,t(u(_)(`project.none`)),1))]),_:1},8,[`title`])]),q.value.skipped.length?(r(),d(b,{key:1,title:u(_)(`project.skipped`)},{default:n(()=>[(r(!0),c(p,null,i(q.value.skipped,e=>(r(),c(`div`,{key:e.name,class:`flex gap-3 border-b border-base px-4 py-2 font-mono text-xs last:border-b-0`},[s(`span`,le,t(e.name),1),s(`span`,ue,t(e.reason),1)]))),128))]),_:1},8,[`title`])):g(``,!0),l(b,{title:u(_)(`project.config`)},{default:n(()=>[(r(!0),c(p,null,i(xe.value,([e,n])=>(r(),c(`div`,{key:e,class:`flex gap-2 border-b border-base px-4 py-1.5 font-mono text-xs`},[s(`span`,de,t(e),1),s(`span`,fe,t(n),1)]))),128)),s(`details`,pe,[s(`summary`,me,[o[6]||=s(`span`,{class:`i-ph-caret-right-duotone text-xs color-muted transition-transform group-open:rotate-90`},null,-1),s(`span`,he,t(u(_)(`project.rawConfig`)),1)]),s(`pre`,ge,t(JSON.stringify(q.value.config,null,2)),1)])]),_:1},8,[`title`])]),_:1})):g(``,!0)}});export{K as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={app:{error:`연결할 수 없습니다: {message}`,language:`언어`,loading:`프로젝트를 불러오는 중…`,name:`x18n`,project:`프로젝트`,static:`읽기 전용 보고서`,staticHint:"`x18n build`로 만든 스냅샷입니다. 편집하려면 `x18n ui`를 실행하세요."},auth:{code:`인증 코드`,hint:"`x18n ui`가 터미널에 출력한 6자리 코드를 입력하세요.",label:`인증`,rejected:`코드가 올바르지 않습니다. 터미널에서 현재 코드를 확인하세요.`,submit:`연결`,title:`x18n에 연결`},detail:{back:`키 목록으로 돌아가기`,diagnostics:`문제`,edit:`편집`,label:`키`,noUsages:`이 키를 사용하는 코드가 없습니다.`,notFound:`정의되지 않은 키입니다.`,openInEditor:`에디터에서 열기`,possible:`추정`,usages:`사용처 ({count})`,values:`값`,showAllLocales:`모든 로캘 표시`,file:`파일`},edit:{dismiss:`닫기`,placeholdersExtra:`예상치 못한 플레이스홀더 {names}`,placeholdersMissing:`누락된 플레이스홀더 {names}`,rejected:`저장되지 않음: {locale}의 {key}: {message}.`,saveAnyway:`그래도 저장`,save:`저장`,cancel:`취소`,hint:`Enter로 저장 · Shift+Enter로 줄 바꿈 · Esc로 취소`},extract:{apply:`추출 ({count})`,differs:`원본 메시지가 이 문자열과 다릅니다. 추출해도 기존 메시지는 그대로 유지됩니다.`,done:`추출한 키: {count}. 변경된 파일: {files}.`,existing:`기존 키를 재사용합니다`,file:`이 파일 추출`,hint:`제안된 키가 있는 하드코딩된 문자열입니다. 키를 편집한 뒤 문자열 하나, 파일 하나 또는 선택한 문자열 전체를 추출하세요.`,key:`키`,new:`새 키를 만듭니다`,none:`하드코딩된 문자열이 없습니다.`,one:`이 문자열 추출`,strings:`문자열: {count}`},keys:{allNamespaces:`모든 네임스페이스`,anyLocale:`모든 로케일`,count:`키 {total}개 중 {shown}개`,diagnosticsHint:`이 키의 문제`,editValue:`{locale}의 {key} 값`,empty:`일치하는 키가 없습니다.`,grid:`로케일별 키와 값`,helpEdit:`Enter로 편집, Esc로 취소`,helpMove:`화살표 또는 j/k로 이동`,helpOpen:`o로 키 열기`,helpSearch:`/로 검색`,key:`키`,missingIn:`누락된 로케일`,missingInLocale:`{locale}에 누락`,namespace:`네임스페이스`,search:`키와 값 검색`,unused:`미사용`,unusedHint:`이 키를 사용하는 코드가 없습니다`,withDiagnostics:`문제 있음`,outdated:`오래된 번역`,sort:`정렬`,sortKey:`키`,sortRecent:`최근 변경`},locale:{complete:`모든 키가 번역되었습니다.`,empty:`빈 값 ({count})`,label:`로케일`,missing:`누락 ({count})`,notFound:`이 프로젝트에 해당 로케일이 없습니다.`,openInGrid:`그리드에서 보기`,problems:`플레이스홀더 및 구문 문제 ({count})`,progress:`{total}개 중 {translated}개 번역됨 ({percent})`,outdated:`오래된 번역 ({count})`},localeBar:{bar:`표시할 로케일`,noneShown:`모든 로케일이 숨겨져 있습니다. 위 막대에서 하나를 선택하세요.`,showAll:`모두 표시`,shown:`{total}개 중 {shown}개 표시`,title:`로케일`,toggle:`{locale} 표시/숨기기`,resetOrder:`순서 초기화`,flags:`국기 표시`,reorder:`드래그하거나 Alt와 화살표 키를 눌러 순서를 바꿉니다.`},nav:{extract:`추출`,keys:`키`,overview:`개요`,project:`프로젝트`,usages:`사용처`},overview:{clean:`문제가 없습니다.`,coverage:`번역률`,diagnostics:`진단`,errors:`오류: {count}`,keys:`키`,locales:`로케일`,missing:`누락 {missing}, 빈 값 {empty}`,noPresets:`감지된 프리셋이 없습니다.`,noRecent:`페이지를 연 뒤로 변경된 내용이 없습니다.`,presets:`프리셋`,recent:`최근 변경`,resources:`리소스`,source:`원본`,usages:`사용처`,warnings:`경고: {count}`,outdated:`오래됨 {count}개`},project:{config:`설정과 각 값의 출처`,conflict:`.{extension}: {winner}이(가) {loser}보다 우선함`,files:`파일: {count}`,finders:`로케일 파인더`,formats:`형식`,presets:`프리셋`,problems:`문제`,resources:`리소스: {count}`,scanners:`스캐너`,showAllPresets:`모든 프리셋 표시`,plugins:`플러그인`,none:`찾은 항목이 없습니다`,duplicates:`건너뛴 중복 리소스: {count}`,skipped:`건너뛴 프리셋 및 플러그인`,rawConfig:`원본 설정`},prompt:{copied:`복사됨`,copy:`번역 프롬프트 복사`,hint:`누락된 메시지를 번역하는 LLM 또는 에이전트용 프롬프트 복사`,copyStale:`오래된 번역 포함 프롬프트 복사`,staleHint:`누락된 메시지를 번역하고 오래된 번역을 갱신하는 LLM 또는 에이전트용 프롬프트를 복사합니다`,copyAll:`모든 로캘의 번역 프롬프트 복사`,allHint:`모든 로캘에서 누락된 메시지를 번역하는 LLM 또는 에이전트용 프롬프트를 복사합니다`},usages:{all:`전체 ({count})`,dynamic:`동적 ({count})`,dynamicHint:`계산된 키를 쓰는 사용처입니다. 해당 접두사 아래의 키는 사용된 것으로 간주합니다.`,filter:`파일 또는 키로 필터`,missing:`미정의 ({count})`,missingHint:`코드에서 사용되지만 원본 로케일에 정의되지 않은 키입니다.`,unused:`미사용 ({count})`,unusedHint:`원본 로케일에 정의되어 있지만 코드에서 사용하지 않는 키입니다.`},value:{empty:`빈 값`,missing:`누락`},history:{title:`기록`,local:`로컬에서 변경됨`,outdated:`오래됨`,outdatedHint:`이 번역 이후에 원본 메시지가 변경되었습니다`,sourceThen:`당시 원본`,sourceNow:`현재 원본`,more:`외 {count}개`,locales:`로캘 {count}개`},sidebar:{list:`목록 보기`,tree:`트리 보기`,filter:`키 필터`,view:`키 목록 보기 방식`},diagnostics:{all:`전체 ({count})`,viewAll:`모두 보기`,copyFix:`수정 프롬프트 복사`,fixHint:`이 프로젝트의 모든 진단을 수정하는 LLM 또는 에이전트용 프롬프트를 복사합니다`,fixCodeHint:`{code} 진단을 수정하는 LLM 또는 에이전트용 프롬프트를 복사합니다`}};export{e as default};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{Et as e,H as t,M as n,Q as r,_ as i,c as a,it as o,l as s,u as c}from"./B4prFwj0.js";import{S as l,c as u,s as d,t as f}from"./BMk3frKd.js";import{t as p}from"./DwfVoZK4.js";var m={class:`grid w-80 gap-2`},h={class:`text-xs font-medium`},g={class:`text-xs color-muted`},_={class:`max-h-64 of-auto whitespace-pre-wrap break-words border border-base p-2 font-mono text-[11px] leading-4`},v=i({__name:`CopyPrompt`,props:{text:{},label:{},hint:{}},setup(i){let u=i,d=r(!1);async function v(){await navigator.clipboard.writeText(u.text),d.value=!0,setTimeout(()=>d.value=!1,1500)}return(r,u)=>o(f)?.capabilities.prompts?(n(),s(p,{key:0,icon:d.value?`i-ph-check-duotone`:`i-ph-sparkle-duotone`,label:i.label,pinnable:!1,onClick:v},{default:t(()=>[a(`div`,m,[a(`span`,h,e(d.value?o(l)(`prompt.copied`):i.label),1),a(`p`,g,e(i.hint),1),a(`pre`,_,e(i.text),1)])]),_:1},8,[`icon`,`label`])):c(``,!0)}});function y(e){let t=(d.value?.projects.length??0)>1?u.value:void 0,n=t?` --project ${t}`:``,r=({locale:e,stale:t,key:r})=>`x18n prompt translate --to ${e}${r?` --keys ${r}`:``}${t?` --stale`:``}${n}`,[i]=e;return e.length===1&&i?[`Translate ${i.key?`the message \`${i.key}\``:`the missing${i.stale?` and outdated`:``} messages of this project`} into ${i.locale} with the x18n CLI.`,``,`Run \`${r(i)}\` and follow its instructions: it lists the messages with their context and says how to write the translations back.${i.key?``:` It works in pages, so repeat with the cursor it prints until \`x18n keys --missing ${i.locale}${n}\` lists nothing.`}`].join(`
|
|
2
|
+
`):[`Translate the missing messages of this project into each locale below with the x18n CLI.`,``,"For every locale, run its command and follow the instructions it prints: it lists the messages with their context and says how to write the translations back. It works in pages, so repeat with the cursor it prints until `x18n keys --missing <locale>` lists nothing.",``,...e.map(e=>`- ${e.locale}: \`${r(e)}\``)].join(`
|
|
3
|
+
`)}function b(e){let t=(d.value?.projects.length??0)>1?u.value:void 0,n=`${e?` --only ${e}`:``}${t?` --project ${t}`:``}`;return[e?`Fix the \`${e}\` diagnostics of this project with the x18n CLI.`:`Fix the diagnostics of this project with the x18n CLI.`,``,`Run \`x18n check${n}\` to list them. Fix each one at its source: edit the locale files or the code that uses the key, and use \`x18n\` commands to add, rename or remove keys instead of editing by hand where you can. Do not silence a diagnostic in the config.`,``,`Run \`x18n check${n}\` again until it reports nothing.`].join(`
|
|
4
|
+
`)}export{y as n,v as r,b as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Et as e,H as t,M as n,P as r,Q as i,U as a,_ as o,c as s,d as c,h as l,it as u,l as d,m as f,r as p,s as m,u as h}from"./B4prFwj0.js";import{o as g}from"./DoHg1T7s.js";import{S as _,m as v}from"./
|
|
1
|
+
import{Et as e,H as t,M as n,P as r,Q as i,U as a,_ as o,c as s,d as c,h as l,it as u,l as d,m as f,r as p,s as m,u as h}from"./B4prFwj0.js";import{o as g}from"./DoHg1T7s.js";import{S as _,m as v}from"./BMk3frKd.js";import{a as y}from"#entry";import{t as b}from"./DEHKzIZA.js";import{t as x}from"./ztSLDBsK.js";import{t as S}from"./CmTOev3L.js";import{t as C}from"./C7ReGOzp.js";var w={class:`flex flex-wrap items-center gap-3 border-b border-base px-4 py-3`},T=[`placeholder`,`aria-label`],E={class:`border-b border-base px-4 py-2 text-xs color-muted`},D={class:`font-mono font-medium color-error`},O={class:`border-b border-base px-4 py-2 text-xs color-muted`},k={class:`border-b border-base px-4 py-2 text-xs color-muted`},A={class:`flex items-center gap-2`},j={class:`font-mono text-xs color-info`},M={key:1,class:`truncate font-mono text-xs color-muted`},N=o({__name:`usages`,setup(o){let N=v((e,t)=>e.analysis(t)),P=v((e,t)=>e.usages(t)),F=i(`missing`),I=i(``),L=m(()=>{let e=new Map;for(let t of N.value?.undefinedUsages??[]){let n=e.get(t.key??t.raw)??[];e.set(t.key??t.raw,n),n.push(t)}return[...e]}),R=m(()=>(P.value??[]).filter(e=>e.dynamic!==!1)),z=m(()=>(P.value??[]).filter(e=>!I.value||e.path.includes(I.value)||(e.key??e.raw).includes(I.value))),B=m(()=>[{value:`missing`,label:_(`usages.missing`,{count:L.value.length})},{value:`unused`,label:_(`usages.unused`,{count:N.value?.unused.length??0})},{value:`dynamic`,label:_(`usages.dynamic`,{count:R.value.length})},{value:`all`,label:_(`usages.all`,{count:P.value?.length??0})}]);return(i,o)=>(n(),d(x,null,{default:t(()=>[s(`div`,w,[l(C,{modelValue:F.value,"onUpdate:modelValue":o[0]||=e=>F.value=e,options:B.value,label:u(_)(`nav.usages`)},null,8,[`modelValue`,`options`,`label`]),F.value===`all`?a((n(),c(`input`,{key:0,"onUpdate:modelValue":o[1]||=e=>I.value=e,class:`input w-72`,placeholder:u(_)(`usages.filter`),"aria-label":u(_)(`usages.filter`)},null,8,T)),[[g,I.value]]):h(``,!0)]),F.value===`missing`?(n(),c(p,{key:0},[s(`p`,E,e(u(_)(`usages.missingHint`)),1),(n(!0),c(p,null,r(L.value,([t,i])=>(n(),c(`div`,{key:t,class:`grid gap-2 border-b border-base px-4 py-3`},[s(`span`,D,e(t),1),(n(!0),c(p,null,r(i,(e,t)=>(n(),c(`div`,{key:t,class:`grid gap-1`},[l(b,{path:e.path,line:e.line,column:e.column},null,8,[`path`,`line`,`column`]),l(S,{usage:e},null,8,[`usage`])]))),128))]))),128))],64)):F.value===`unused`?(n(),c(p,{key:1},[s(`p`,O,e(u(_)(`usages.unusedHint`)),1),(n(!0),c(p,null,r(u(N)?.unused,r=>(n(),d(u(y),{key:r,to:`/keys/${encodeURIComponent(r)}`,class:`focus-ring flex items-center gap-2 border-b border-base px-4 py-1.5 font-mono text-xs transition-colors hover:bg-hover`},{default:t(()=>[o[2]||=s(`span`,{class:`i-ph-ghost-duotone color-faint`},null,-1),f(` `+e(r),1)]),_:2},1032,[`to`]))),128))],64)):F.value===`dynamic`?(n(),c(p,{key:2},[s(`p`,k,e(u(_)(`usages.dynamicHint`)),1),(n(!0),c(p,null,r(R.value,(t,r)=>(n(),c(`div`,{key:r,class:`grid gap-1 border-b border-base px-4 py-3`},[s(`div`,A,[l(b,{path:t.path,line:t.line},null,8,[`path`,`line`]),s(`code`,j,e(t.raw),1)]),l(S,{usage:t},null,8,[`usage`])]))),128))],64)):(n(!0),c(p,{key:3},r(z.value,(r,i)=>(n(),c(`div`,{key:i,class:`grid grid-cols-[minmax(0,22rem)_1fr] items-center gap-4 border-b border-base px-4 py-1 transition-colors hover:bg-hover`},[l(b,{path:r.path,line:r.line},null,8,[`path`,`line`]),r.key?(n(),d(u(y),{key:0,to:`/keys/${encodeURIComponent(r.key)}`,class:`truncate font-mono text-xs hover:underline`},{default:t(()=>[f(e(r.key),1)]),_:2},1032,[`to`])):(n(),c(`span`,M,e(r.raw),1))]))),128))]),_:1}))}});export{N as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as e,c as t,t as n}from"./
|
|
1
|
+
import{S as e,c as t,t as n}from"./BMk3frKd.js";function r(e,t){let n=e.toLowerCase(),r=t.toLowerCase(),i=r.indexOf(n);if(i!==-1)return 1e3-i;let a=0,o=-1;for(let e of n){let t=r.indexOf(e,o+1);if(t===-1)return-1;a+=t===o+1?2:1,o=t}return a}function i(e,r=!1){return n.value.apply({project:t.value,ops:e,force:r})}function a(e,t,n,r=!1){return i([{type:`set`,key:e,locale:t,value:n}],r)}function o(t){return[t.missing.length?e(`edit.placeholdersMissing`,{names:t.missing.join(`, `)}):``,t.extra.length?e(`edit.placeholdersExtra`,{names:t.extra.join(`, `)}):``].filter(Boolean).join(`; `)}export{r as i,o as n,a as r,i as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Et as e,M as t,c as n,d as r}from"./B4prFwj0.js";import{i,t as a}from"#entry";var o={class:`antialiased bg-white dark:bg-neutral-950 dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-neutral-950 tracking-wide`},s={class:`max-w-520px text-center`},c=[`textContent`],l=[`textContent`],u=[`textContent`],d=a({__name:`error-500`,props:{appName:{type:String,default:`Nuxt`},status:{type:Number,default:500},statusText:{type:String,default:`Internal server error`},description:{type:String,default:`This page is temporarily unavailable.`},refresh:{type:String,default:`Refresh this page`}},setup(a){let d=a;return i({title:`${d.status} - ${d.statusText} | ${d.appName}`,script:[],style:[{innerHTML:`*,:after,:before{box-sizing:border-box;border-style:solid;border-width:0;border-color:var(--un-default-border-color,#e5e7eb);--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 #0000;--un-ring-shadow:0 0 #0000;--un-shadow-inset: ;--un-shadow:0 0 #0000;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:#93c5fd80;--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }:after,:before{--un-content:""}html{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}h1,h2,p{margin:0}`}]}),(i,d)=>(t(),r(`div`,o,[n(`div`,s,[n(`h1`,{class:`font-medium leading-none mb-4 sm:text-[72px] tabular-nums text-[56px]`,textContent:e(a.status)},null,8,c),n(`h2`,{class:`font-semibold mb-2 sm:text-3xl text-2xl`,textContent:e(a.statusText)},null,8,l),n(`p`,{class:`mb-4 px-2 text-md text-neutral-500`,textContent:e(a.description)},null,8,u)])]))}},[[`__scopeId`,`data-v-
|
|
1
|
+
import{Et as e,M as t,c as n,d as r}from"./B4prFwj0.js";import{i,t as a}from"#entry";var o={class:`antialiased bg-white dark:bg-neutral-950 dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-neutral-950 tracking-wide`},s={class:`max-w-520px text-center`},c=[`textContent`],l=[`textContent`],u=[`textContent`],d=a({__name:`error-500`,props:{appName:{type:String,default:`Nuxt`},status:{type:Number,default:500},statusText:{type:String,default:`Internal server error`},description:{type:String,default:`This page is temporarily unavailable.`},refresh:{type:String,default:`Refresh this page`}},setup(a){let d=a;return i({title:`${d.status} - ${d.statusText} | ${d.appName}`,script:[],style:[{innerHTML:`*,:after,:before{box-sizing:border-box;border-style:solid;border-width:0;border-color:var(--un-default-border-color,#e5e7eb);--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 #0000;--un-ring-shadow:0 0 #0000;--un-shadow-inset: ;--un-shadow:0 0 #0000;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:#93c5fd80;--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }:after,:before{--un-content:""}html{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}h1,h2,p{margin:0}`}]}),(i,d)=>(t(),r(`div`,o,[n(`div`,s,[n(`h1`,{class:`font-medium leading-none mb-4 sm:text-[72px] tabular-nums text-[56px]`,textContent:e(a.status)},null,8,c),n(`h2`,{class:`font-semibold mb-2 sm:text-3xl text-2xl`,textContent:e(a.statusText)},null,8,l),n(`p`,{class:`mb-4 px-2 text-md text-neutral-500`,textContent:e(a.description)},null,8,u)])]))}},[[`__scopeId`,`data-v-dafa5658`]]);export{d as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={app:{error:`無法連線:{message}`,language:`語言`,loading:`正在載入專案…`,name:`x18n`,project:`專案`,static:`唯讀報告`,staticHint:"以 `x18n build` 建置的快照。執行 `x18n ui` 即可編輯。"},auth:{code:`驗證碼`,hint:"請輸入 `x18n ui` 在終端機中顯示的 6 位數驗證碼。",label:`身分驗證`,rejected:`驗證碼無效。請查看終端機中目前的驗證碼。`,submit:`連線`,title:`連線至 x18n`},detail:{back:`返回鍵列表`,diagnostics:`問題`,edit:`編輯`,label:`鍵`,noUsages:`沒有程式碼使用此鍵。`,notFound:`此鍵未定義。`,openInEditor:`在編輯器中開啟`,possible:`可能`,usages:`使用處({count})`,values:`值`,showAllLocales:`顯示所有語言`,file:`檔案`},edit:{dismiss:`關閉`,placeholdersExtra:`多出的佔位符 {names}`,placeholdersMissing:`缺少佔位符 {names}`,rejected:`未儲存:{key}({locale}):{message}。`,saveAnyway:`仍要儲存`,save:`儲存`,cancel:`取消`,hint:`Enter 儲存 · Shift+Enter 換行 · Esc 取消`},extract:{apply:`擷取({count})`,differs:`其來源訊息與此字串不同;擷取時會保留既有訊息。`,done:`已擷取鍵:{count}。已變更檔案:{files}。`,existing:`沿用既有鍵`,file:`擷取此檔案`,hint:`已附建議鍵的寫死字串。可編輯鍵,然後逐條、依檔案或批次擷取已勾選的字串。`,key:`鍵`,new:`建立新鍵`,none:`找不到寫死的字串。`,one:`擷取此字串`,strings:`字串:{count}`},keys:{allNamespaces:`所有命名空間`,anyLocale:`任何語系`,count:`{shown} / {total} 個鍵`,diagnosticsHint:`此鍵的問題`,editValue:`{key} 在 {locale} 的值`,empty:`沒有符合的鍵。`,grid:`各語系的鍵與值`,helpEdit:`Enter 編輯,Esc 取消`,helpMove:`方向鍵或 j/k 移動`,helpOpen:`o 開啟鍵`,helpSearch:`/ 搜尋`,key:`鍵`,missingIn:`缺少於`,missingInLocale:`{locale} 中缺少`,namespace:`命名空間`,search:`搜尋鍵與值`,unused:`未使用`,unusedHint:`沒有程式碼使用此鍵`,withDiagnostics:`有問題`,outdated:`過時`,sort:`排序`,sortKey:`鍵`,sortRecent:`最近變更`},locale:{complete:`所有鍵皆已翻譯。`,empty:`空白({count})`,label:`語系`,missing:`缺少({count})`,notFound:`此專案沒有這個語系。`,openInGrid:`在表格中顯示`,problems:`佔位符與語法問題({count})`,progress:`已翻譯 {translated} / {total}({percent})`,outdated:`過時({count})`},localeBar:{bar:`要顯示的語系`,noneShown:`所有語系皆已隱藏。請在上方列中選擇一個。`,showAll:`全部顯示`,shown:`已顯示 {shown} / {total}`,title:`語系`,toggle:`顯示或隱藏 {locale}`,resetOrder:`重設順序`,flags:`顯示旗幟`,reorder:`拖曳或按 Alt 加方向鍵以調整順序。`},nav:{extract:`擷取`,keys:`鍵`,overview:`總覽`,project:`專案`,usages:`使用處`},overview:{clean:`未發現問題。`,coverage:`涵蓋率`,diagnostics:`診斷`,errors:`錯誤:{count}`,keys:`鍵`,locales:`語系`,missing:`缺少 {missing},空白 {empty}`,noPresets:`未偵測到預設集。`,noRecent:`開啟頁面後沒有任何變更。`,presets:`預設集`,recent:`最近變更`,resources:`資源`,source:`來源`,usages:`使用處`,warnings:`警告:{count}`,outdated:`{count} 則過時`},project:{config:`設定及各值來源`,conflict:`.{extension}:{winner} 優先於 {loser}`,files:`檔案:{count}`,finders:`語系搜尋器`,formats:`格式`,presets:`預設集`,problems:`問題`,resources:`資源:{count}`,scanners:`掃描器`,showAllPresets:`顯示所有預設`,plugins:`外掛`,none:`找不到任何內容`,duplicates:`已略過的重複資源:{count}`,skipped:`已略過的預設和外掛`,rawConfig:`原始設定`},prompt:{copied:`已複製`,copy:`複製翻譯提示詞`,hint:`複製提示詞,讓 LLM 或代理程式翻譯缺少的訊息`,copyStale:`複製包含過時翻譯的提示詞`,staleHint:`複製提示詞,供 LLM 或代理程式翻譯缺少的訊息並更新過時的翻譯`,copyAll:`複製所有語言的翻譯提示詞`,allHint:`複製一段提示詞,供 LLM 或代理翻譯每種語言中缺少的訊息`},usages:{all:`全部({count})`,dynamic:`動態({count})`,dynamicHint:`使用計算鍵的使用處。其前綴下的鍵皆視為已使用。`,filter:`依檔案或鍵篩選`,missing:`未定義({count})`,missingHint:`程式碼中使用、但未在來源語系中定義的鍵。`,unused:`未使用({count})`,unusedHint:`已在來源語系中定義、但沒有程式碼使用的鍵。`},value:{empty:`空白`,missing:`缺少`},history:{title:`歷史`,local:`本機已變更`,outdated:`過時`,outdatedHint:`此翻譯之後來源訊息已變更`,sourceThen:`當時的來源`,sourceNow:`目前的來源`,more:`以及另外 {count} 個`,locales:`{count} 種語言`},sidebar:{list:`清單檢視`,tree:`樹狀檢視`,filter:`篩選鍵`,view:`鍵清單檢視`},diagnostics:{all:`全部 ({count})`,viewAll:`檢視全部`,copyFix:`複製修復提示詞`,fixHint:`複製提示詞,供 LLM 或代理修復此專案的所有診斷`,fixCodeHint:`複製提示詞,供 LLM 或代理修復 {code} 診斷`}};export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={app:{error:`No se pudo conectar: {message}`,language:`Idioma de la interfaz`,loading:`Cargando el proyecto…`,name:`x18n`,project:`Proyecto`,static:`Informe de solo lectura`,staticHint:"Una instantánea generada con `x18n build`. Ejecuta `x18n ui` para editar."},auth:{code:`Código de acceso`,hint:"Introduce el código de 6 dígitos que `x18n ui` mostró en la terminal.",label:`Autenticación`,rejected:`Ese código no funcionó. Consulta el código actual en la terminal.`,submit:`Conectar`,title:`Conectar con x18n`},detail:{back:`Volver a las claves`,diagnostics:`Problemas`,edit:`Editar`,label:`Clave`,noUsages:`Ningún código usa esta clave.`,notFound:`Esta clave no está definida.`,openInEditor:`Abrir en el editor`,possible:`posible`,usages:`Usos ({count})`,values:`Valores`,showAllLocales:`Mostrar todos los idiomas`,file:`Archivo`},edit:{dismiss:`Descartar`,placeholdersExtra:`marcadores de posición inesperados {names}`,placeholdersMissing:`faltan marcadores de posición {names}`,rejected:`No guardado: {key} en {locale}: {message}.`,saveAnyway:`Guardar de todos modos`,save:`Guardar`,cancel:`Cancelar`,hint:`Intro para guardar · Mayús+Intro para nueva línea · Esc para cancelar`},extract:{apply:`Extraer ({count})`,differs:`Su mensaje de origen difiere de esta cadena; la extracción conserva los mensajes existentes.`,done:`Claves extraídas: {count}. Archivos modificados: {files}.`,existing:`Reutiliza una clave existente`,file:`Extraer este archivo`,hint:`Cadenas fijas en el código con una clave propuesta. Edita las claves y extrae una cadena, un archivo o todas las cadenas marcadas.`,key:`Clave`,new:`Crea una clave nueva`,none:`No se encontraron cadenas fijas en el código.`,one:`Extraer esta cadena`,strings:`Cadenas: {count}`},keys:{allNamespaces:`Todos los espacios de nombres`,anyLocale:`Cualquier idioma`,count:`{shown} de {total} claves`,diagnosticsHint:`Problemas en esta clave`,editValue:`Valor de {key} en {locale}`,empty:`Ninguna clave coincide.`,grid:`Claves y valores por idioma`,helpEdit:`Intro para editar, Esc para cancelar`,helpMove:`Flechas o j/k para moverte`,helpOpen:`o para abrir la clave`,helpSearch:`/ para buscar`,key:`Clave`,missingIn:`Falta en`,missingInLocale:`Falta en {locale}`,namespace:`Espacio de nombres`,search:`Buscar claves y valores`,unused:`Sin usar`,unusedHint:`Ningún código usa esta clave`,withDiagnostics:`Con problemas`,outdated:`Desactualizadas`,sort:`Orden`,sortKey:`Clave`,sortRecent:`Cambiadas recientemente`},locale:{complete:`Todas las claves están traducidas.`,empty:`Vacías ({count})`,label:`Idioma`,missing:`Faltantes ({count})`,notFound:`Este proyecto no tiene ese idioma.`,openInGrid:`Mostrar en la tabla`,problems:`Problemas de marcadores y sintaxis ({count})`,progress:`{translated} de {total} traducidas ({percent})`,outdated:`Desactualizadas ({count})`},localeBar:{bar:`Idiomas visibles`,noneShown:`Todos los idiomas están ocultos. Elige uno en la barra superior.`,showAll:`Mostrar todos`,shown:`{shown} de {total} visibles`,title:`Idiomas`,toggle:`Mostrar u ocultar {locale}`,resetOrder:`Restablecer orden`,flags:`Mostrar banderas`,reorder:`Arrastra, o pulsa Alt y una flecha, para reordenar.`},nav:{extract:`Extraer`,keys:`Claves`,overview:`Resumen`,project:`Proyecto`,usages:`Usos`},overview:{clean:`No se encontraron problemas.`,coverage:`Cobertura`,diagnostics:`Diagnósticos`,errors:`Errores: {count}`,keys:`Claves`,locales:`Idiomas`,missing:`{missing} faltantes, {empty} vacías`,noPresets:`No se detectó ningún preset.`,noRecent:`Nada ha cambiado desde que se abrió la página.`,presets:`Presets`,recent:`Cambios recientes`,resources:`Recursos`,source:`origen`,usages:`Usos`,warnings:`Avisos: {count}`,outdated:`{count} desactualizadas`},project:{config:`Configuración y origen de cada valor`,conflict:`.{extension}: {winner} prevalece sobre {loser}`,files:`Archivos: {count}`,finders:`Buscadores de idiomas`,formats:`Formatos`,presets:`Presets`,problems:`Problemas`,resources:`Recursos: {count}`,scanners:`Escáneres`,showAllPresets:`Mostrar todos los presets`,plugins:`Plugins`,none:`No se encontró nada`,duplicates:`Recursos duplicados omitidos: {count}`,skipped:`Presets y plugins omitidos`,rawConfig:`Configuración sin procesar`},prompt:{copied:`Copiado`,copy:`Copiar prompt de traducción`,hint:`Copia un prompt para que un LLM o agente traduzca los mensajes que faltan`,copyStale:`Copiar prompt con desactualizadas`,staleHint:`Copia un prompt para un LLM o agente que traduce los mensajes que faltan y actualiza los desactualizados`,copyAll:`Copiar el prompt de traducción de todos los idiomas`,allHint:`Copia un prompt para un LLM o agente que traduzca lo que falta en cada idioma`},usages:{all:`Todos ({count})`,dynamic:`Dinámicos ({count})`,dynamicHint:`Usos con una clave calculada. Las claves bajo su prefijo cuentan como usadas.`,filter:`Filtrar por archivo o clave`,missing:`No definidas ({count})`,missingHint:`Claves usadas en el código pero no definidas en el idioma de origen.`,unused:`Sin usar ({count})`,unusedHint:`Claves definidas en el idioma de origen que ningún código usa.`},value:{empty:`vacío`,missing:`falta`},history:{title:`Historial`,local:`cambiado localmente`,outdated:`desactualizada`,outdatedHint:`El mensaje de origen cambió después de esta traducción`,sourceThen:`Origen entonces`,sourceNow:`Origen ahora`,more:`y {count} más`,locales:`{count} idiomas`},sidebar:{list:`Vista de lista`,tree:`Vista de árbol`,filter:`Filtrar claves`,view:`Vista de la lista de claves`},diagnostics:{all:`Todos ({count})`,viewAll:`Ver todos`,copyFix:`Copiar prompt de corrección`,fixHint:`Copia un prompt para un LLM o agente que corrige todos los diagnósticos de este proyecto`,fixCodeHint:`Copia un prompt para un LLM o agente que corrige los diagnósticos {code}`}};export{e as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Et as e,M as t,_ as n,c as r,d as i,it as a}from"./B4prFwj0.js";import{C as o}from"./
|
|
1
|
+
import{Et as e,M as t,_ as n,c as r,d as i,it as a}from"./B4prFwj0.js";import{C as o}from"./BMk3frKd.js";var s={class:`flex flex-col gap-1 px-4 py-3`},c={class:`font-mono text-2xl tabular-nums`},l={class:`label`},u=n({__name:`UiStat`,props:{label:{},value:{}},setup(n){return(u,d)=>(t(),i(`div`,s,[r(`span`,c,e(n.value.toLocaleString(a(o))),1),r(`span`,l,e(n.label),1)]))}});export{u as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{B as e,Ct as t,E as n,Et as r,H as i,M as a,P as o,Q as s,R as c,T as l,Tt as u,U as d,_ as f,c as p,d as m,h,it as g,j as _,l as v,m as y,r as b,s as x,u as S,w as C,wt as w,y as T,z as E}from"./B4prFwj0.js";import{c as D,o as O,s as k}from"./DoHg1T7s.js";import{u as A}from"./BbIaocwP.js";import{D as ee,E as te,S as j,a as M,c as N,f as P,h as F,m as I,n as L,t as R}from"./BMk3frKd.js";import{a as z,n as B}from"#entry";import{t as V}from"./DwfVoZK4.js";import{n as ne,r as re}from"./C-FN7NZ5.js";import{t as H}from"./DEHKzIZA.js";import{t as U}from"./D0qDe1RK.js";import{t as W}from"./DQNu8teu.js";import{t as G}from"./rgsxZ82X.js";import{t as K}from"./CmTOev3L.js";import{i as q,n as J,r as Y,t as X}from"./C9NjIzeY.js";function Z(e){return[...e.matchAll(/[^.:]+/g)].map(t=>({id:e.slice(0,t.index+t[0].length),label:t[0]}))}function ie(e,t,n=!1){let r=new Map;for(let t of e){let e=r,n;for(let{id:r,label:i}of Z(t))n=e.get(i)??{id:r,label:i,key:void 0,children:new Map},e.set(i,n),e=n.children;n&&(n.key=t)}let i=[],a=(e,r)=>{for(let o of[...e.values()].sort((e,t)=>e.label.localeCompare(t.label))){let e=o.children.size>0,s=n||t.has(o.id);i.push({id:o.id,label:o.label,depth:r,key:o.key,branch:e,open:e&&s}),e&&s&&a(o.children,r+1)}};return a(r,0),i}function ae(e){return Z(e).slice(0,-1).map(e=>e.id)}var oe={class:`min-h-0 flex flex-auto flex-col`},se={class:`flex items-center gap-2 border-b border-base px-3 py-2`},ce={class:`label`},le={class:`font-mono text-xs color-faint tabular-nums`},ue=[`aria-label`],de=[`aria-pressed`,`title`,`aria-label`],fe=[`aria-pressed`,`title`,`aria-label`],pe={class:`border-b border-base px-3 py-2`},me=[`placeholder`,`aria-label`],he=[`aria-expanded`,`aria-label`,`onClick`],ge={key:1,class:`size-4 shrink-0`},_e=[`onClick`],Q=28,ve=f({__name:`KeySidebar`,setup(c){let f=A(),h=x(()=>String(f.params.key)),_=I((e,t)=>e.keys(t)),C=te(`x18n:key-view`,`tree`),E=s(``),D=s(new Set);e(h,e=>{D.value=new Set([...D.value,...ae(e)])},{immediate:!0});let k=x(()=>_.value?.rows.map(e=>e.key)??[]),M=x(()=>{let e=E.value.trim();return e?k.value.map(t=>({key:t,score:q(e,t)})).filter(e=>e.score>=0).sort((e,t)=>t.score-e.score).map(e=>e.key):k.value}),N=x(()=>C.value===`tree`?ie(M.value,D.value,E.value.trim()!==``):M.value.map(e=>({id:e,label:e,depth:0,key:e,branch:!1,open:!1}))),{list:P,containerProps:F,wrapperProps:L}=ee(N,{itemHeight:Q,overscan:10});function R(e){let t=new Set(D.value);t.delete(e.id)||t.add(e.id),D.value=t}async function B(){await n();let e=F.ref.value,t=N.value.findIndex(e=>e.key===h.value);if(!e||t<0)return;let r=t*Q;(r<e.scrollTop||r+Q>e.scrollTop+e.clientHeight)&&(e.scrollTop=Math.max(0,r-e.clientHeight/2))}return e([h,C,()=>_.value?.rows.length],B,{flush:`post`}),(e,n)=>(a(),m(`div`,oe,[p(`div`,se,[p(`span`,ce,r(g(j)(`nav.keys`)),1),p(`span`,le,r(k.value.length),1),n[5]||=p(`span`,{class:`flex-auto`},null,-1),p(`div`,{class:`flex`,role:`group`,"aria-label":g(j)(`sidebar.view`)},[p(`button`,{type:`button`,class:t([`btn-icon h-6 w-6 text-sm`,g(C)===`list`&&`bg-hover color-base`]),"aria-pressed":g(C)===`list`,title:g(j)(`sidebar.list`),"aria-label":g(j)(`sidebar.list`),onClick:n[0]||=e=>C.value=`list`},[...n[3]||=[p(`span`,{class:`i-ph-list-bullets-duotone`},null,-1)]],10,de),p(`button`,{type:`button`,class:t([`btn-icon h-6 w-6 text-sm`,g(C)===`tree`&&`bg-hover color-base`]),"aria-pressed":g(C)===`tree`,title:g(j)(`sidebar.tree`),"aria-label":g(j)(`sidebar.tree`),onClick:n[1]||=e=>C.value=`tree`},[...n[4]||=[p(`span`,{class:`i-ph-tree-structure-duotone`},null,-1)]],10,fe)],8,ue)]),p(`div`,pe,[d(p(`input`,{"onUpdate:modelValue":n[2]||=e=>E.value=e,class:`input h-7 w-full font-mono text-xs`,type:`search`,placeholder:g(j)(`sidebar.filter`),"aria-label":g(j)(`sidebar.filter`)},null,8,me),[[O,E.value]])]),p(`div`,l(g(F),{class:`min-h-0 flex-auto`}),[p(`div`,w(T(g(L))),[(a(!0),m(b,null,o(g(P),({data:e})=>(a(),m(`div`,{key:e.id,class:t([`h-7 flex items-center pr-2 font-mono text-xs transition-colors hover:bg-hover`,e.key===h.value?`bg-hover color-base shadow-[inset_2px_0_var(--x-fg)]`:`color-muted`]),style:u({paddingLeft:`${8+e.depth*12}px`})},[g(C)===`tree`?(a(),m(b,{key:0},[e.branch?(a(),m(`button`,{key:0,type:`button`,class:`focus-ring size-4 flex shrink-0 items-center justify-center`,"aria-expanded":e.open,"aria-label":e.label,onClick:t=>R(e)},[p(`span`,{class:t([`i-ph-caret-right-duotone transition-transform`,e.open&&`rotate-90`])},null,2)],8,he)):(a(),m(`span`,ge))],64)):S(``,!0),e.key?(a(),v(g(z),{key:1,to:`/keys/${encodeURIComponent(e.key)}`,class:`focus-ring ml-1 min-w-0 flex-auto truncate`,"aria-current":e.key===h.value?`page`:void 0,title:e.key},{default:i(()=>[y(r(e.label),1)]),_:2},1032,[`to`,`aria-current`,`title`])):(a(),m(`button`,{key:2,type:`button`,class:`focus-ring ml-1 min-w-0 flex-auto truncate text-left`,onClick:t=>R(e)},r(e.label),9,_e))],6))),128))],16)],16)]))}}),ye=[`aria-label`],be=[`aria-label`],xe={key:0,class:`flex items-center gap-2 border-t border-base px-3 py-1.5 text-xs color-warn`,role:`alert`},Se={class:`flex-auto`},Ce={class:`flex items-center gap-2 border-t border-base py-1 pl-3 pr-1`},we={class:`flex-auto font-mono text-[11px] color-faint`},Te=f({__name:`MessageEditor`,props:C({label:{},problem:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:C([`save`,`cancel`],[`update:modelValue`]),setup(e,{emit:t}){let n=t,i=c(e,`modelValue`),o=E(`field`);return _(()=>{let e=o.value;e.focus(),e.setSelectionRange(e.value.length,e.value.length)}),(t,s)=>(a(),m(`div`,{class:`border border-inverse bg-base`,role:`group`,"aria-label":e.label},[d(p(`textarea`,{ref_key:`field`,ref:o,"onUpdate:modelValue":s[0]||=e=>i.value=e,class:`block min-h-16 w-full resize-none bg-transparent px-3 py-2 font-mono text-sm outline-none [field-sizing:content]`,rows:`2`,"aria-label":e.label,onKeydown:[s[1]||=k(D(e=>n(`save`,!1),[`exact`,`prevent`]),[`enter`]),s[2]||=k(D(e=>n(`cancel`),[`prevent`]),[`escape`])]},null,40,be),[[O,i.value]]),e.problem?(a(),m(`div`,xe,[s[6]||=p(`span`,{class:`i-ph-warning-duotone shrink-0`},null,-1),p(`span`,Se,r(e.problem),1),p(`button`,{class:`btn-outline h-7`,onClick:s[3]||=e=>n(`save`,!0)},r(g(j)(`edit.saveAnyway`)),1)])):S(``,!0),p(`div`,Ce,[p(`span`,we,r(g(j)(`edit.hint`)),1),p(`button`,{class:`btn-ghost h-7`,onClick:s[4]||=e=>n(`cancel`)},[s[7]||=p(`span`,{class:`i-ph-x`},null,-1),y(` `+r(g(j)(`edit.cancel`)),1)]),p(`button`,{class:`btn-solid h-7`,onClick:s[5]||=e=>n(`save`,!1)},[s[8]||=p(`span`,{class:`i-ph-check`},null,-1),y(` `+r(g(j)(`edit.save`)),1)])])],8,ye))}}),Ee={class:`mx-auto h-full w-full flex max-w-6xl border-x border-base xl:max-w-[90rem]`},De={class:`hidden w-72 shrink-0 flex-col border-r border-base xl:flex`},Oe={class:`min-w-0 flex-auto of-y-auto`},ke={class:`flex items-center gap-3 border-b border-base px-4 py-4`},Ae={class:`grid gap-1`},je={class:`label`},Me={class:`break-all font-mono text-xl font-medium`},Ne={key:0,class:`badge self-end`},Pe={key:0,class:`px-4 py-3 color-muted`},Fe={key:0,class:`px-4 py-3 color-muted`},Ie=[`data-locale`],Le={class:`flex items-center gap-2 pt-0.5 font-mono`},Re={key:0,class:`badge`},ze=[`title`],Be=[`title`,`onDblclick`],Ve={key:0,class:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-0.5 border-l-2 border-[var(--x-warn)] py-0.5 pl-3 text-xs`},$={class:`label`},He={class:`color-muted line-through decoration-[var(--x-faint)]`},Ue={class:`label`},We={class:`flex gap-1`},Ge={class:`font-mono text-xs color-muted`},Ke={class:`flex-auto`},qe=[`onClick`],Je={key:0,class:`px-4 py-3 color-muted`},Ye={class:`flex items-center gap-2`},Xe={key:0,class:`badge`},Ze=[`onClick`],Qe=f({__name:`[key]`,setup(e){let n=A(),c=x(()=>String(n.params.key)),l=I((e,t)=>e.key(t,c.value)),u=x(()=>F.value.map(e=>({locale:e.code,message:l.value?.messages.find(t=>t.locale===e.code)}))),d=x(()=>M.value.length-F.value.length),f=x(()=>l.value?.messages.find(e=>e.locale===L.value?.sourceLocale)?.value),_=s(),C=s();async function w(e=!1){let t=_.value;if(!t)return;let n=await Y(c.value,t.locale,t.draft,e);n.applied?(_.value=void 0,C.value=void 0):C.value=n.problems.map(J).join(`; `)}function T(e,t){_.value={locale:e,draft:t==null?``:String(t)},C.value=void 0}function E(e){return e.type!==`extract`&&e.type!==`format`}function D(e){R.value?.openInEditor({project:N.value,path:e.path,line:e.line,column:e.column})}return(e,n)=>(a(),m(`div`,Ee,[p(`aside`,De,[h(ve)]),p(`div`,Oe,[p(`header`,ke,[h(g(z),{to:`/keys`,class:`btn-icon`,"aria-label":g(j)(`detail.back`)},{default:i(()=>[...n[3]||=[p(`span`,{class:`i-ph-arrow-left-duotone`},null,-1)]]),_:1},8,[`aria-label`]),p(`div`,Ae,[p(`span`,je,r(g(j)(`detail.label`)),1),p(`h1`,Me,r(c.value),1)]),g(l)?.namespace?(a(),m(`span`,Ne,r(g(l).namespace),1)):S(``,!0)]),g(l)===null?(a(),m(`p`,Pe,r(g(j)(`detail.notFound`)),1)):g(l)?(a(),m(b,{key:1},[h(W,{index:`01`,title:g(j)(`detail.values`)},{default:i(()=>[u.value.length?S(``,!0):(a(),m(`p`,Fe,r(g(j)(`localeBar.noneShown`)),1)),(a(!0),m(b,null,o(u.value,e=>(a(),m(`div`,{key:e.locale,class:`grid grid-cols-[7rem_1fr_auto] items-start gap-4 border-b border-base px-4 py-3 last:border-b-0`,"data-locale":e.locale},[p(`span`,Le,[h(B,{code:e.locale},null,8,[`code`]),y(` `+r(e.locale)+` `,1),e.locale===g(L)?.sourceLocale?(a(),m(`span`,Re,r(g(j)(`overview.source`)),1)):S(``,!0),e.message?.outdated?(a(),m(`span`,{key:1,class:`badge border-current color-warn`,title:g(j)(`history.outdatedHint`)},r(g(j)(`history.outdated`)),9,ze)):S(``,!0)]),_.value?.locale===e.locale?(a(),v(Te,{key:0,modelValue:_.value.draft,"onUpdate:modelValue":n[0]||=e=>_.value.draft=e,label:g(j)(`keys.editValue`,{key:c.value,locale:e.locale}),problem:C.value,onSave:w,onCancel:n[1]||=e=>_.value=void 0},null,8,[`modelValue`,`label`,`problem`])):(a(),m(`div`,{key:1,class:`grid min-w-0 gap-1`,title:g(R)?.capabilities.write?g(j)(`detail.edit`):void 0,onDblclick:t=>g(R)?.capabilities.write&&T(e.locale,e.message?.value)},[h(U,{value:e.message?.value,placeholders:e.message?.placeholders??[]},null,8,[`value`,`placeholders`]),e.message?.sourceThen===void 0?S(``,!0):(a(),m(`dl`,Ve,[p(`dt`,$,r(g(j)(`history.sourceThen`)),1),p(`dd`,He,[h(U,{value:e.message.sourceThen},null,8,[`value`])]),p(`dt`,Ue,r(g(j)(`history.sourceNow`)),1),p(`dd`,null,[h(U,{value:f.value},null,8,[`value`])])]))],40,Be)),p(`div`,We,[e.locale===g(L)?.sourceLocale?S(``,!0):(a(),v(re,{key:0,text:g(ne)([{locale:e.locale,key:c.value}]),label:g(j)(`prompt.copy`),hint:g(j)(`prompt.hint`)},null,8,[`text`,`label`,`hint`])),e.message?(a(),v(V,{key:1,icon:`i-ph-file-text-duotone`,label:g(j)(`detail.file`)},{default:i(()=>[h(H,{path:e.message.path,line:e.message.line},null,8,[`path`,`line`])]),_:2},1032,[`label`])):S(``,!0),e.message?.changed?(a(),v(V,{key:2,icon:`i-ph-clock-counter-clockwise-duotone`,label:g(j)(`history.title`)},{default:i(()=>[h(G,{change:e.message.changed},null,8,[`change`])]),_:2},1032,[`label`])):S(``,!0)])],8,Ie))),128)),d.value?(a(),m(`button`,{key:1,class:`btn-ghost h-9 w-full justify-start px-4`,onClick:n[2]||=(...e)=>g(P)&&g(P)(...e)},[n[4]||=p(`span`,{class:`i-ph-dots-three-duotone`},null,-1),y(` `+r(g(j)(`detail.showAllLocales`))+` (`+r(d.value)+`) `,1)])):S(``,!0)]),_:1},8,[`title`]),g(l).diagnostics.length?(a(),v(W,{key:0,index:`02`,title:g(j)(`detail.diagnostics`)},{default:i(()=>[(a(!0),m(b,null,o(g(l).diagnostics,(e,n)=>(a(),m(`div`,{key:n,class:`flex items-center gap-2 border-b border-base px-4 py-2 last:border-b-0`},[p(`span`,{class:t(e.severity===`error`?`i-ph-x-circle-duotone color-error`:`i-ph-warning-duotone color-warn`)},null,2),p(`span`,Ge,r(e.code),1),p(`span`,Ke,r(e.message),1),g(R)?.capabilities.write?(a(!0),m(b,{key:0},o(e.fixes.filter(e=>e.ops.every(E)),e=>(a(),m(`button`,{key:e.title,class:`btn-outline h-7`,onClick:t=>g(X)(e.ops.filter(E))},r(e.title),9,qe))),128)):S(``,!0)]))),128))]),_:1},8,[`title`])):S(``,!0),h(W,{index:`03`,title:g(j)(`detail.usages`,{count:g(l).usages.length})},{default:i(()=>[g(l).usages.length?S(``,!0):(a(),m(`p`,Je,r(g(j)(`detail.noUsages`)),1)),(a(!0),m(b,null,o(g(l).usages,(e,t)=>(a(),m(`div`,{key:t,class:`grid gap-2 border-b border-base px-4 py-3 last:border-b-0`},[p(`div`,Ye,[h(H,{path:e.path,line:e.line,column:e.column},null,8,[`path`,`line`,`column`]),e.possible?(a(),m(`span`,Xe,r(g(j)(`detail.possible`)),1)):S(``,!0),n[6]||=p(`span`,{class:`flex-auto`},null,-1),g(R)?.capabilities.openInEditor?(a(),m(`button`,{key:1,class:`btn-ghost h-7`,onClick:t=>D(e)},[n[5]||=p(`span`,{class:`i-ph-arrow-square-out-duotone`},null,-1),y(` `+r(g(j)(`detail.openInEditor`)),1)],8,Ze)):S(``,!0)]),h(K,{usage:e},null,8,[`usage`])]))),128))]),_:1},8,[`title`])],64)):S(``,!0)])]))}});export{Qe as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={app:{error:`Verbindung fehlgeschlagen: {message}`,language:`Sprache`,loading:`Projekt wird geladen…`,name:`x18n`,project:`Projekt`,static:`Schreibgeschützter Bericht`,staticHint:"Ein mit `x18n build` erstellter Snapshot. Zum Bearbeiten `x18n ui` ausführen."},auth:{code:`Auth-Code`,hint:"Den 6-stelligen Code eingeben, den `x18n ui` im Terminal ausgegeben hat.",label:`Authentifizierung`,rejected:`Dieser Code ist ungültig. Den aktuellen Code im Terminal prüfen.`,submit:`Verbinden`,title:`Mit x18n verbinden`},detail:{back:`Zurück zu den Schlüsseln`,diagnostics:`Probleme`,edit:`Bearbeiten`,label:`Schlüssel`,noUsages:`Kein Code verwendet diesen Schlüssel.`,notFound:`Dieser Schlüssel ist nicht definiert.`,openInEditor:`Im Editor öffnen`,possible:`möglich`,usages:`Verwendungen ({count})`,values:`Werte`,showAllLocales:`Alle Sprachen anzeigen`,file:`Datei`},edit:{dismiss:`Schließen`,placeholdersExtra:`unerwartete Platzhalter {names}`,placeholdersMissing:`fehlende Platzhalter {names}`,rejected:`Nicht gespeichert: {key} in {locale}: {message}.`,saveAnyway:`Trotzdem speichern`,save:`Speichern`,cancel:`Abbrechen`,hint:`Enter zum Speichern · Umschalt+Enter für neue Zeile · Esc zum Abbrechen`},extract:{apply:`Extrahieren ({count})`,differs:`Die Quellnachricht weicht von diesem String ab; beim Extrahieren bleiben die vorhandenen Nachrichten erhalten.`,done:`Extrahierte Schlüssel: {count}. Geänderte Dateien: {files}.`,existing:`Verwendet einen vorhandenen Schlüssel`,file:`Diese Datei extrahieren`,hint:`Fest codierte Strings mit vorgeschlagenem Schlüssel. Schlüssel bearbeiten, dann einen String, eine Datei oder alle angehakten Strings extrahieren.`,key:`Schlüssel`,new:`Legt einen neuen Schlüssel an`,none:`Keine fest codierten Strings gefunden.`,one:`Diesen String extrahieren`,strings:`Strings: {count}`},keys:{allNamespaces:`Alle Namespaces`,anyLocale:`Beliebige Sprache`,count:`{shown} von {total} Schlüsseln`,diagnosticsHint:`Probleme bei diesem Schlüssel`,editValue:`Wert von {key} in {locale}`,empty:`Keine passenden Schlüssel.`,grid:`Schlüssel und Werte pro Sprache`,helpEdit:`Enter zum Bearbeiten, Esc zum Abbrechen`,helpMove:`Pfeiltasten oder j/k zum Bewegen`,helpOpen:`o öffnet den Schlüssel`,helpSearch:`/ zum Suchen`,key:`Schlüssel`,missingIn:`Fehlt in`,missingInLocale:`Fehlt in {locale}`,namespace:`Namespace`,search:`Schlüssel und Werte durchsuchen`,unused:`Unbenutzt`,unusedHint:`Kein Code verwendet diesen Schlüssel`,withDiagnostics:`Mit Problemen`,outdated:`Veraltet`,sort:`Sortierung`,sortKey:`Schlüssel`,sortRecent:`Zuletzt geändert`},locale:{complete:`Alle Schlüssel sind übersetzt.`,empty:`Leer ({count})`,label:`Sprache`,missing:`Fehlend ({count})`,notFound:`Diese Sprache gibt es im Projekt nicht.`,openInGrid:`Im Raster anzeigen`,problems:`Platzhalter- und Syntaxprobleme ({count})`,progress:`{translated} von {total} übersetzt ({percent})`,outdated:`Veraltet ({count})`},localeBar:{bar:`Anzuzeigende Sprachen`,noneShown:`Alle Sprachen sind ausgeblendet. Oben in der Leiste eine auswählen.`,showAll:`Alle anzeigen`,shown:`{shown} von {total} angezeigt`,title:`Sprachen`,toggle:`{locale} ein- oder ausblenden`,resetOrder:`Reihenfolge zurücksetzen`,flags:`Flaggen anzeigen`,reorder:`Zum Umsortieren ziehen oder Alt und eine Pfeiltaste drücken.`},nav:{extract:`Extrahieren`,keys:`Schlüssel`,overview:`Übersicht`,project:`Projekt`,usages:`Verwendungen`},overview:{clean:`Keine Probleme gefunden.`,coverage:`Abdeckung`,diagnostics:`Diagnosen`,errors:`Fehler: {count}`,keys:`Schlüssel`,locales:`Sprachen`,missing:`{missing} fehlend, {empty} leer`,noPresets:`Kein Preset erkannt.`,noRecent:`Seit dem Öffnen der Seite hat sich nichts geändert.`,presets:`Presets`,recent:`Letzte Änderungen`,resources:`Ressourcen`,source:`Quelle`,usages:`Verwendungen`,warnings:`Warnungen: {count}`,outdated:`{count} veraltet`},project:{config:`Konfiguration und Herkunft der Werte`,conflict:`.{extension}: {winner} hat Vorrang vor {loser}`,files:`Dateien: {count}`,finders:`Sprach-Finder`,formats:`Formate`,presets:`Presets`,problems:`Probleme`,resources:`Ressourcen: {count}`,scanners:`Scanner`,showAllPresets:`Alle Presets anzeigen`,plugins:`Plugins`,none:`Nichts gefunden`,duplicates:`Übersprungene doppelte Ressourcen: {count}`,skipped:`Übersprungene Presets und Plugins`,rawConfig:`Rohe Konfiguration`},prompt:{copied:`Kopiert`,copy:`Übersetzungs-Prompt kopieren`,hint:`Einen Prompt für ein LLM oder einen Agenten kopieren, der die fehlenden Texte übersetzt`,copyStale:`Prompt mit veralteten kopieren`,staleHint:`Prompt für ein LLM oder einen Agenten kopieren, der fehlende Nachrichten übersetzt und veraltete aktualisiert`,copyAll:`Übersetzungs-Prompt für alle Sprachen kopieren`,allHint:`Kopiert einen Prompt für ein LLM oder einen Agenten, der fehlende Nachrichten in jeder Sprache übersetzt`},usages:{all:`Alle ({count})`,dynamic:`Dynamisch ({count})`,dynamicHint:`Verwendungen mit berechnetem Schlüssel. Schlüssel unter ihrem Präfix gelten als verwendet.`,filter:`Nach Datei oder Schlüssel filtern`,missing:`Nicht definiert ({count})`,missingHint:`Schlüssel, die im Code verwendet, aber in der Quellsprache nicht definiert sind.`,unused:`Unbenutzt ({count})`,unusedHint:`In der Quellsprache definierte Schlüssel, die kein Code verwendet.`},value:{empty:`leer`,missing:`fehlt`},history:{title:`Verlauf`,local:`lokal geändert`,outdated:`veraltet`,outdatedHint:`Die Quellnachricht hat sich nach dieser Übersetzung geändert`,sourceThen:`Quelle damals`,sourceNow:`Quelle jetzt`,more:`und {count} weitere`,locales:`{count} Sprachen`},sidebar:{list:`Listenansicht`,tree:`Baumansicht`,filter:`Schlüssel filtern`,view:`Ansicht der Schlüsselliste`},diagnostics:{all:`Alle ({count})`,viewAll:`Alle anzeigen`,copyFix:`Prompt zur Behebung kopieren`,fixHint:`Kopiert einen Prompt für ein LLM oder einen Agenten, der alle Diagnosen dieses Projekts behebt`,fixCodeHint:`Kopiert einen Prompt für ein LLM oder einen Agenten, der die Diagnosen {code} behebt`}};export{e as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ct as e,Et as t,M as n,P as r,_ as i,c as a,d as o,it as s,m as c,r as l}from"./B4prFwj0.js";import{S as u}from"./
|
|
1
|
+
import{Ct as e,Et as t,M as n,P as r,_ as i,c as a,d as o,it as s,m as c,r as l}from"./B4prFwj0.js";import{S as u}from"./BMk3frKd.js";import{n as d,r as f}from"./DEHKzIZA.js";var p={class:`of-x-auto border border-base py-1 font-mono text-xs leading-5`},m=[`title`,`onClick`],h={class:`bg-teal:10 px0.5 py0.1 rounded border border-teal:50 text-teal-700 dark:text-teal-200`,"data-usage-key":``},g=i({__name:`CodeSnippet`,props:{usage:{}},setup(i){let g=i;function _(e,t){window.getSelection()?.toString()||f(g.usage.path,e,t)}function v(e){let t=g.usage.column-1,n=Math.min(e.length,t+(g.usage.length??g.usage.raw.length));return{before:e.slice(0,t),hit:e.slice(t,n),after:e.slice(n)}}return(f,g)=>(n(),o(`pre`,p,[a(`code`,null,[(n(!0),o(l,null,r(i.usage.snippet.lines,(r,f)=>(n(),o(`span`,{key:f,class:e([`block pr-3`,[i.usage.snippet.line+f===i.usage.line?`bg-hover color-base`:`color-muted`,s(d)&&`cursor-pointer hover:bg-hover`]]),title:s(d)?s(u)(`detail.openInEditor`):void 0,onClick:e=>_(i.usage.snippet.line+f,i.usage.snippet.line+f===i.usage.line?i.usage.column:1)},[a(`span`,{class:e([`inline-block w-10 select-none pr-3 text-right tabular-nums color-faint`,i.usage.snippet.line+f===i.usage.line&&`shadow-[inset_2px_0_var(--x-fg)]`])},t(i.usage.snippet.line+f),3),i.usage.snippet.line+f===i.usage.line?(n(),o(l,{key:0},[c(t(v(r).before),1),a(`mark`,h,t(v(r).hit),1),c(t(v(r).after),1)],64)):(n(),o(l,{key:1},[c(t(r),1)],64))],10,m))),128))])]))}});export{g as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={app:{error:`Не удалось подключиться: {message}`,language:`Язык`,loading:`Загрузка проекта…`,name:`x18n`,project:`Проект`,static:`Отчёт только для чтения`,staticHint:"Снимок, собранный через `x18n build`. Для редактирования запустите `x18n ui`."},auth:{code:`Код доступа`,hint:"Введите 6-значный код, который `x18n ui` вывел в терминал.",label:`Аутентификация`,rejected:`Код не подошёл. Проверьте текущий код в терминале.`,submit:`Подключиться`,title:`Подключение к x18n`},detail:{back:`Назад к ключам`,diagnostics:`Проблемы`,edit:`Изменить`,label:`Ключ`,noUsages:`Этот ключ не используется в коде.`,notFound:`Этот ключ не определён.`,openInEditor:`Открыть в редакторе`,possible:`возможно`,usages:`Использования ({count})`,values:`Значения`,showAllLocales:`Показать все локали`,file:`Файл`},edit:{dismiss:`Закрыть`,placeholdersExtra:`лишние плейсхолдеры {names}`,placeholdersMissing:`нет плейсхолдеров {names}`,rejected:`Не сохранено: {key} в {locale}: {message}.`,saveAnyway:`Всё равно сохранить`,save:`Сохранить`,cancel:`Отмена`,hint:`Enter: сохранить · Shift+Enter: новая строка · Esc: отмена`},extract:{apply:`Извлечь ({count})`,differs:`Исходное сообщение отличается от этой строки; при извлечении существующие сообщения сохраняются.`,done:`Извлечено ключей: {count}. Изменено файлов: {files}.`,existing:`Использует существующий ключ`,file:`Извлечь этот файл`,hint:`Строки в коде с предложенным ключом. Измените ключи, затем извлеките одну строку, один файл или все отмеченные строки.`,key:`Ключ`,new:`Создаёт новый ключ`,none:`Строк в коде не найдено.`,one:`Извлечь эту строку`,strings:`Строки: {count}`},keys:{allNamespaces:`Все пространства имён`,anyLocale:`Любая локаль`,count:`Ключи: {shown} из {total}`,diagnosticsHint:`Проблемы в этом ключе`,editValue:`Значение {key} в {locale}`,empty:`Нет подходящих ключей.`,grid:`Ключи и значения по локалям`,helpEdit:`Enter: изменить, Esc: отмена`,helpMove:`Стрелки или j/k: перемещение`,helpOpen:`o: открыть ключ`,helpSearch:`/: поиск`,key:`Ключ`,missingIn:`Нет в локали`,missingInLocale:`Нет в {locale}`,namespace:`Пространство имён`,search:`Поиск по ключам и значениям`,unused:`Неиспользуемые`,unusedHint:`Этот ключ не используется в коде`,withDiagnostics:`С проблемами`,outdated:`Устаревшие`,sort:`Сортировка`,sortKey:`Ключ`,sortRecent:`Недавно изменённые`},locale:{complete:`Все ключи переведены.`,empty:`Пустые ({count})`,label:`Локаль`,missing:`Отсутствуют ({count})`,notFound:`В проекте нет такой локали.`,openInGrid:`Показать в таблице`,problems:`Проблемы с плейсхолдерами и синтаксисом ({count})`,progress:`Переведено: {translated} из {total} ({percent})`,outdated:`Устаревшие ({count})`},localeBar:{bar:`Отображаемые локали`,noneShown:`Все локали скрыты. Выберите локаль на панели выше.`,showAll:`Показать все`,shown:`Показано: {shown} из {total}`,title:`Локали`,toggle:`Показать или скрыть {locale}`,resetOrder:`Сбросить порядок`,flags:`Показывать флаги`,reorder:`Перетащите или нажмите Alt и стрелку, чтобы изменить порядок.`},nav:{extract:`Извлечение`,keys:`Ключи`,overview:`Обзор`,project:`Проект`,usages:`Использования`},overview:{clean:`Проблем не найдено.`,coverage:`Покрытие`,diagnostics:`Диагностика`,errors:`Ошибки: {count}`,keys:`Ключи`,locales:`Локали`,missing:`Отсутствуют: {missing}, пустые: {empty}`,noPresets:`Пресет не обнаружен.`,noRecent:`С открытия страницы ничего не изменилось.`,presets:`Пресеты`,recent:`Последние изменения`,resources:`Ресурсы`,source:`исходная`,usages:`Использования`,warnings:`Предупреждения: {count}`,outdated:`устарело: {count}`},project:{config:`Конфигурация и источник каждого значения`,conflict:`.{extension}: {winner} перекрывает {loser}`,files:`Файлы: {count}`,finders:`Поиск локалей`,formats:`Форматы`,presets:`Пресеты`,problems:`Проблемы`,resources:`Ресурсы: {count}`,scanners:`Сканеры`,showAllPresets:`Показать все пресеты`,plugins:`Плагины`,none:`Ничего не найдено`,duplicates:`Пропущено повторяющихся ресурсов: {count}`,skipped:`Пропущенные пресеты и плагины`,rawConfig:`Исходная конфигурация`},prompt:{copied:`Скопировано`,copy:`Копировать промпт для перевода`,hint:`Скопировать промпт для LLM или агента, который переведёт недостающие сообщения`,copyStale:`Копировать промпт с устаревшими`,staleHint:`Скопировать промпт для LLM или агента, который переведёт недостающие сообщения и обновит устаревшие`,copyAll:`Скопировать промпт перевода для всех локалей`,allHint:`Копирует промпт для LLM или агента, который переведёт недостающие сообщения во всех локалях`},usages:{all:`Все ({count})`,dynamic:`Динамические ({count})`,dynamicHint:`Использования с вычисляемым ключом. Ключи с их префиксом считаются используемыми.`,filter:`Фильтр по файлу или ключу`,missing:`Не определены ({count})`,missingHint:`Ключи, которые используются в коде, но не определены в исходной локали.`,unused:`Неиспользуемые ({count})`,unusedHint:`Ключи из исходной локали, которые не используются в коде.`},value:{empty:`пусто`,missing:`нет`},history:{title:`История`,local:`изменено локально`,outdated:`устарело`,outdatedHint:`Исходное сообщение изменилось после этого перевода`,sourceThen:`Исходник тогда`,sourceNow:`Исходник сейчас`,more:`и ещё {count}`,locales:`локалей: {count}`},sidebar:{list:`Список`,tree:`Дерево`,filter:`Фильтр ключей`,view:`Вид списка ключей`},diagnostics:{all:`Все ({count})`,viewAll:`Показать все`,copyFix:`Скопировать промпт для исправления`,fixHint:`Копирует промпт для LLM или агента, который исправляет все диагностики этого проекта`,fixCodeHint:`Копирует промпт для LLM или агента, который исправляет диагностики {code}`}};export{e as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ct as e,Et as t,M as n,P as r,_ as i,d as a,it as o,m as s,r as c,s as l}from"./B4prFwj0.js";import{S as u}from"./
|
|
1
|
+
import{Ct as e,Et as t,M as n,P as r,_ as i,d as a,it as o,m as s,r as c,s as l}from"./B4prFwj0.js";import{S as u}from"./BMk3frKd.js";var d={key:0,class:`font-mono text-[11px] uppercase tracking-[0.08em] color-error op-80`},f={key:1,class:`font-mono text-[11px] uppercase tracking-[0.08em] color-warn op-80`},p={key:2,class:`font-mono color-info`},m={key:0,class:`bg-gray:10 px0.8 py0.1 rounded text-gray-400 text-xs`,"data-placeholder":``},h=i({__name:`MessageText`,props:{value:{type:[String,Number,Boolean,null]},placeholders:{},inline:{type:Boolean}},setup(i){let h=i,g=l(()=>{if(typeof h.value!=`string`)return[];let e=[],t=0;for(let n of h.placeholders??[])n.start>t&&e.push({text:h.value.slice(t,n.start),placeholder:!1}),e.push({text:h.value.slice(n.start,n.end),placeholder:!0}),t=n.end;return t<h.value.length&&e.push({text:h.value.slice(t),placeholder:!1}),e});return(l,h)=>i.value===void 0?(n(),a(`span`,d,t(o(u)(`value.missing`)),1)):i.value===``?(n(),a(`span`,f,t(o(u)(`value.empty`)),1)):typeof i.value==`string`?(n(),a(`span`,{key:3,class:e(i.inline?`whitespace-nowrap`:`whitespace-pre-wrap break-words`)},[(n(!0),a(c,null,r(g.value,(e,r)=>(n(),a(c,{key:r},[e.placeholder?(n(),a(`span`,m,t(e.text),1)):(n(),a(c,{key:1},[s(t(e.text),1)],64))],64))),128))],2)):(n(),a(`span`,p,t(JSON.stringify(i.value)),1))}});export{h as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ct as e,Et as t,H as n,L as r,M as i,_ as a,c as o,d as s,it as c,l,m as u,r as d,s as f,u as p}from"./B4prFwj0.js";import{S as m,c as h,t as g}from"./
|
|
1
|
+
import{Ct as e,Et as t,H as n,L as r,M as i,_ as a,c as o,d as s,it as c,l,m as u,r as d,s as f,u as p}from"./B4prFwj0.js";import{S as m,c as h,t as g}from"./BMk3frKd.js";var _=f(()=>!!(g.value?.capabilities.openInEditor&&h.value));function v(e,t=1,n=1){_.value&&g.value.openInEditor({project:h.value,path:e,line:t,column:n})}var y=[{match:/\.vue$/,name:`vue`,icon:`i-catppuccin:vue`},{match:/\.svelte$/,name:`svelte`,icon:`i-catppuccin:svelte`},{match:/\.astro$/,name:`astro`,icon:`i-catppuccin:astro`},{match:/\.tsx$/,name:`tsx`,icon:`i-catppuccin:typescript-react`},{match:/\.jsx$/,name:`jsx`,icon:`i-catppuccin:javascript-react`},{match:/\.d\.[cm]?ts$/,name:`dts`,icon:`i-catppuccin:typescript-def`},{match:/\.(?:test|spec)\.[cm]?[jt]sx?$/,name:`test`,icon:`i-catppuccin:typescript-test`},{match:/\.[cm]?ts$/,name:`ts`,icon:`i-catppuccin:typescript`},{match:/\.[cm]?js$/,name:`js`,icon:`i-catppuccin:javascript`},{match:/\.json[5c]?$/,name:`json`,icon:`i-catppuccin:json`},{match:/\.ya?ml$/,name:`yaml`,icon:`i-catppuccin:yaml`},{match:/\.toml$/,name:`toml`,icon:`i-catppuccin:toml`},{match:/\.md$/,name:`markdown`,icon:`i-catppuccin:markdown`},{match:/\.html?$/,name:`html`,icon:`i-catppuccin:html`},{match:/\.php$/,name:`php`,icon:`i-catppuccin:php`},{match:/\.rb$/,name:`ruby`,icon:`i-catppuccin:ruby`},{match:/\.(?:xml|xliff|xlf)$/,name:`xml`,icon:`i-catppuccin:xml`},{match:/\.properties$/,name:`properties`,icon:`i-catppuccin:properties`},{match:/\.(?:po|pot|strings|arb|txt)$/,name:`text`,icon:`i-catppuccin:text`}];function b(e){return y.find(t=>t.match.test(e))??{name:`file`,icon:`i-catppuccin:file`}}var x=[`title`],S=a({__name:`FileIcon`,props:{path:{}},setup(t){let n=t,r=f(()=>b(n.path));return(t,n)=>(i(),s(`span`,{class:e([`icon-catppuccin shrink-0`,r.value.icon]),title:r.value.name,"aria-hidden":`true`},null,10,x))}}),C={class:`truncate`},w={class:`color-faint`},T={class:`color-base`},E={key:0,class:`color-faint`},D=a({__name:`FilePath`,props:{path:{},line:{},column:{},icon:{type:Boolean,default:!0}},setup(a){let h=f(()=>{let e=a.path.lastIndexOf(`/`)+1;return{dir:a.path.slice(0,e),base:a.path.slice(e)}});function g(e){e.preventDefault(),e.stopPropagation(),v(a.path,a.line,a.column)}return(f,v)=>(i(),l(r(c(_)?`button`:`span`),{type:c(_)?`button`:void 0,class:e([`inline-flex min-w-0 max-w-full items-center gap-1.5 font-mono text-xs`,c(_)&&`focus-ring cursor-pointer text-left hover:underline`]),title:c(_)?`${c(m)(`detail.openInEditor`)}: ${a.path}`:a.path,onClick:v[0]||=e=>c(_)&&g(e)},{default:n(()=>[a.icon?(i(),l(S,{key:0,path:a.path},null,8,[`path`])):p(``,!0),o(`span`,C,[o(`span`,w,t(h.value.dir),1),o(`span`,T,t(h.value.base),1),a.line===void 0?p(``,!0):(i(),s(`span`,E,[u(`:`+t(a.line),1),a.column===void 0?p(``,!0):(i(),s(d,{key:0},[u(`:`+t(a.column),1)],64))]))])]),_:1},8,[`type`,`class`,`title`]))}});export{_ as n,v as r,D as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Et as e,H as t,M as n,c as r,d as i,h as a,m as o}from"./B4prFwj0.js";import{a as s,i as c,t as l}from"#entry";var u={class:`antialiased bg-white dark:bg-neutral-950 dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-neutral-950 tracking-wide`},d={class:`max-w-520px text-center`},f=[`textContent`],p=[`textContent`],m=[`textContent`],h={class:`flex items-center justify-center w-full`},g=[`textContent`],_=l({__name:`error-404`,props:{appName:{type:String,default:`Nuxt`},status:{type:Number,default:404},statusText:{type:String,default:`Page not found`},description:{type:String,default:`Sorry, the page you are looking for could not be found.`},backHome:{type:String,default:`Go back home`},backToPrevious:{type:String,default:`Go back`}},setup(l){let _=l;return c({title:`${_.status} - ${_.statusText} | ${_.appName}`,script:[{innerHTML:`(()=>{if(!(window.history.state&&window.history.state.back||document.referrer.startsWith(window.location.origin+"/")))return;const t=document.querySelector("[data-back-home]"),e=document.querySelector("[data-back-previous]");t&&e&&(e.onclick=()=>window.history.back(),t.hidden=!0,e.hidden=!1)})();`,tagPosition:`bodyClose`}],style:[{innerHTML:`*,:after,:before{box-sizing:border-box;border-style:solid;border-width:0;border-color:var(--un-default-border-color,#e5e7eb);--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 #0000;--un-ring-shadow:0 0 #0000;--un-shadow-inset: ;--un-shadow:0 0 #0000;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:#93c5fd80;--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }:after,:before{--un-content:""}html{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body,button{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}a{-webkit-text-decoration:inherit;text-decoration:inherit}a,button{color:inherit}button{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;padding:0;text-transform:none;cursor:pointer}[type=button],button{-webkit-appearance:button;background-color:#0000;background-image:none}h1,h2,p{margin:0}[hidden]:where(:not([hidden=until-found])){display:none}`}]}),(c,_)=>{let v=s;return n(),i(`div`,u,[r(`div`,d,[r(`h1`,{class:`font-medium leading-none mb-4 sm:text-[72px] tabular-nums text-[56px]`,textContent:e(l.status)},null,8,f),r(`h2`,{class:`font-semibold mb-2 sm:text-3xl text-2xl`,textContent:e(l.statusText)},null,8,p),r(`p`,{class:`mb-4 px-2 text-md text-neutral-500`,textContent:e(l.description)},null,8,m),r(`div`,h,[a(v,{to:`/`,"data-back-home":``,class:`font-medium hover:text-[#00DC82] text-sm underline underline-offset-3`},{default:t(()=>[o(e(l.backHome),1)]),_:1}),_[0]||=o(),r(`button`,{type:`button`,"data-back-previous":``,hidden:``,class:`appearance-none bg-transparent border-0 cursor-pointer font-medium font-sans hover:text-[#00DC82] p-0 text-inherit text-sm underline underline-offset-3`,textContent:e(l.backToPrevious)},null,8,g)])])])}}},[[`__scopeId`,`data-v-
|
|
1
|
+
import{Et as e,H as t,M as n,c as r,d as i,h as a,m as o}from"./B4prFwj0.js";import{a as s,i as c,t as l}from"#entry";var u={class:`antialiased bg-white dark:bg-neutral-950 dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-neutral-950 tracking-wide`},d={class:`max-w-520px text-center`},f=[`textContent`],p=[`textContent`],m=[`textContent`],h={class:`flex items-center justify-center w-full`},g=[`textContent`],_=l({__name:`error-404`,props:{appName:{type:String,default:`Nuxt`},status:{type:Number,default:404},statusText:{type:String,default:`Page not found`},description:{type:String,default:`Sorry, the page you are looking for could not be found.`},backHome:{type:String,default:`Go back home`},backToPrevious:{type:String,default:`Go back`}},setup(l){let _=l;return c({title:`${_.status} - ${_.statusText} | ${_.appName}`,script:[{innerHTML:`(()=>{if(!(window.history.state&&window.history.state.back||document.referrer.startsWith(window.location.origin+"/")))return;const t=document.querySelector("[data-back-home]"),e=document.querySelector("[data-back-previous]");t&&e&&(e.onclick=()=>window.history.back(),t.hidden=!0,e.hidden=!1)})();`,tagPosition:`bodyClose`}],style:[{innerHTML:`*,:after,:before{box-sizing:border-box;border-style:solid;border-width:0;border-color:var(--un-default-border-color,#e5e7eb);--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 #0000;--un-ring-shadow:0 0 #0000;--un-shadow-inset: ;--un-shadow:0 0 #0000;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:#93c5fd80;--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }:after,:before{--un-content:""}html{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body,button{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}a{-webkit-text-decoration:inherit;text-decoration:inherit}a,button{color:inherit}button{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;padding:0;text-transform:none;cursor:pointer}[type=button],button{-webkit-appearance:button;background-color:#0000;background-image:none}h1,h2,p{margin:0}[hidden]:where(:not([hidden=until-found])){display:none}`}]}),(c,_)=>{let v=s;return n(),i(`div`,u,[r(`div`,d,[r(`h1`,{class:`font-medium leading-none mb-4 sm:text-[72px] tabular-nums text-[56px]`,textContent:e(l.status)},null,8,f),r(`h2`,{class:`font-semibold mb-2 sm:text-3xl text-2xl`,textContent:e(l.statusText)},null,8,p),r(`p`,{class:`mb-4 px-2 text-md text-neutral-500`,textContent:e(l.description)},null,8,m),r(`div`,h,[a(v,{to:`/`,"data-back-home":``,class:`font-medium hover:text-[#00DC82] text-sm underline underline-offset-3`},{default:t(()=>[o(e(l.backHome),1)]),_:1}),_[0]||=o(),r(`button`,{type:`button`,"data-back-previous":``,hidden:``,class:`appearance-none bg-transparent border-0 cursor-pointer font-medium font-sans hover:text-[#00DC82] p-0 text-inherit text-sm underline underline-offset-3`,textContent:e(l.backToPrevious)},null,8,g)])])])}}},[[`__scopeId`,`data-v-37d82342`]]);export{_ as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={app:{error:`Não foi possível conectar: {message}`,language:`Idioma`,loading:`Carregando o projeto…`,name:`x18n`,project:`Projeto`,static:`Relatório somente leitura`,staticHint:"Um snapshot gerado com `x18n build`. Execute `x18n ui` para editar."},auth:{code:`Código de autenticação`,hint:"Digite o código de 6 dígitos que o `x18n ui` exibiu no terminal.",label:`Autenticação`,rejected:`Esse código não funcionou. Confira o código atual no terminal.`,submit:`Conectar`,title:`Conectar ao x18n`},detail:{back:`Voltar às chaves`,diagnostics:`Problemas`,edit:`Editar`,label:`Chave`,noUsages:`Nenhum código usa esta chave.`,notFound:`Esta chave não está definida.`,openInEditor:`Abrir no editor`,possible:`possível`,usages:`Usos ({count})`,values:`Valores`,showAllLocales:`Mostrar todos os idiomas`,file:`Arquivo`},edit:{dismiss:`Dispensar`,placeholdersExtra:`placeholders inesperados {names}`,placeholdersMissing:`placeholders ausentes {names}`,rejected:`Não salvo: {key} em {locale}: {message}.`,saveAnyway:`Salvar mesmo assim`,save:`Salvar`,cancel:`Cancelar`,hint:`Enter para salvar · Shift+Enter para nova linha · Esc para cancelar`},extract:{apply:`Extrair ({count})`,differs:`A mensagem de origem difere desta string; a extração mantém as mensagens existentes.`,done:`Chaves extraídas: {count}. Arquivos alterados: {files}.`,existing:`Reutiliza uma chave existente`,file:`Extrair este arquivo`,hint:`Strings fixas no código com uma chave sugerida. Edite as chaves e extraia uma string, um arquivo ou todas as strings marcadas.`,key:`Chave`,new:`Cria uma chave nova`,none:`Nenhuma string fixa encontrada.`,one:`Extrair esta string`,strings:`Strings: {count}`},keys:{allNamespaces:`Todos os namespaces`,anyLocale:`Qualquer idioma`,count:`{shown} de {total} chaves`,diagnosticsHint:`Problemas nesta chave`,editValue:`Valor de {key} em {locale}`,empty:`Nenhuma chave corresponde.`,grid:`Chaves e valores por idioma`,helpEdit:`Enter para editar, Esc para cancelar`,helpMove:`Setas ou j/k para mover`,helpOpen:`o para abrir a chave`,helpSearch:`/ para buscar`,key:`Chave`,missingIn:`Ausente em`,missingInLocale:`Ausente em {locale}`,namespace:`Namespace`,search:`Buscar chaves e valores`,unused:`Não usadas`,unusedHint:`Nenhum código usa esta chave`,withDiagnostics:`Com problemas`,outdated:`Desatualizadas`,sort:`Ordem`,sortKey:`Chave`,sortRecent:`Alteradas recentemente`},locale:{complete:`Todas as chaves estão traduzidas.`,empty:`Vazias ({count})`,label:`Idioma`,missing:`Ausentes ({count})`,notFound:`Este projeto não tem esse idioma.`,openInGrid:`Mostrar na grade`,problems:`Problemas de placeholder e sintaxe ({count})`,progress:`{translated} de {total} traduzidas ({percent})`,outdated:`Desatualizadas ({count})`},localeBar:{bar:`Idiomas a exibir`,noneShown:`Todos os idiomas estão ocultos. Escolha um na barra acima.`,showAll:`Mostrar todos`,shown:`{shown} de {total} exibidos`,title:`Idiomas`,toggle:`Mostrar ou ocultar {locale}`,resetOrder:`Redefinir ordem`,flags:`Mostrar bandeiras`,reorder:`Arraste, ou pressione Alt e uma seta, para reordenar.`},nav:{extract:`Extrair`,keys:`Chaves`,overview:`Visão geral`,project:`Projeto`,usages:`Usos`},overview:{clean:`Nenhum problema encontrado.`,coverage:`Cobertura`,diagnostics:`Diagnósticos`,errors:`Erros: {count}`,keys:`Chaves`,locales:`Idiomas`,missing:`{missing} ausentes, {empty} vazias`,noPresets:`Nenhum preset detectado.`,noRecent:`Nada mudou desde que a página foi aberta.`,presets:`Presets`,recent:`Alterações recentes`,resources:`Recursos`,source:`origem`,usages:`Usos`,warnings:`Avisos: {count}`,outdated:`{count} desatualizadas`},project:{config:`Configuração e a origem de cada valor`,conflict:`.{extension}: {winner} prevalece sobre {loser}`,files:`Arquivos: {count}`,finders:`Localizadores de idiomas`,formats:`Formatos`,presets:`Presets`,problems:`Problemas`,resources:`Recursos: {count}`,scanners:`Scanners`,showAllPresets:`Mostrar todos os presets`,plugins:`Plugins`,none:`Nada encontrado`,duplicates:`Recursos duplicados ignorados: {count}`,skipped:`Presets e plugins ignorados`,rawConfig:`Configuração bruta`},prompt:{copied:`Copiado`,copy:`Copiar prompt de tradução`,hint:`Copiar um prompt para um LLM ou agente traduzir as mensagens ausentes`,copyStale:`Copiar prompt com desatualizadas`,staleHint:`Copia um prompt para um LLM ou agente que traduz as mensagens ausentes e atualiza as desatualizadas`,copyAll:`Copiar o prompt de tradução de todos os idiomas`,allHint:`Copia um prompt para um LLM ou agente que traduza o que falta em cada idioma`},usages:{all:`Todos ({count})`,dynamic:`Dinâmicos ({count})`,dynamicHint:`Usos com chave calculada. Chaves sob o prefixo contam como usadas.`,filter:`Filtrar por arquivo ou chave`,missing:`Não definidas ({count})`,missingHint:`Chaves usadas no código, mas não definidas no idioma de origem.`,unused:`Não usadas ({count})`,unusedHint:`Chaves definidas no idioma de origem que nenhum código usa.`},value:{empty:`vazio`,missing:`ausente`},history:{title:`Histórico`,local:`alterado localmente`,outdated:`desatualizada`,outdatedHint:`A mensagem de origem mudou depois desta tradução`,sourceThen:`Origem na época`,sourceNow:`Origem agora`,more:`e mais {count}`,locales:`{count} idiomas`},sidebar:{list:`Visualização em lista`,tree:`Visualização em árvore`,filter:`Filtrar chaves`,view:`Visualização da lista de chaves`},diagnostics:{all:`Todos ({count})`,viewAll:`Ver todos`,copyFix:`Copiar prompt de correção`,fixHint:`Copia um prompt para um LLM ou agente que corrige todos os diagnósticos deste projeto`,fixCodeHint:`Copia um prompt para um LLM ou agente que corrige os diagnósticos {code}`}};export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{B as e,Ct as t,F as n,M as r,Q as i,_ as a,c as o,d as s,u as c,z as l}from"./B4prFwj0.js";import{s as u}from"./DoHg1T7s.js";import{T as d}from"./BMk3frKd.js";var f=[`aria-label`,`aria-expanded`],p={class:`border border-strong bg-base p-2 shadow-lg`},m=a({__name:`InfoPop`,props:{icon:{},label:{},align:{default:`right`},pinnable:{type:Boolean,default:!0}},emits:[`show`,`click`],setup(a,{emit:m}){let h=m,g=l(`root`),_=i(!1),v=i(!1);d(g,()=>v.value=!1),e(()=>_.value||v.value,e=>{e&&h(`show`)});function y(){a.pinnable?v.value=!v.value:h(`click`)}return(e,i)=>(r(),s(`span`,{ref_key:`root`,ref:g,class:`relative inline-flex`,onMouseenter:i[2]||=e=>_.value=!0,onMouseleave:i[3]||=e=>_.value=!1,onKeydown:i[4]||=u(e=>v.value=!1,[`escape`])},[n(e.$slots,`trigger`,{},()=>[o(`button`,{type:`button`,class:t([`btn-icon h-6 w-6 text-sm`,v.value&&`bg-hover color-base`]),"aria-label":a.label,"aria-expanded":_.value||v.value,onClick:y,onFocus:i[0]||=e=>_.value=!0,onBlur:i[1]||=e=>_.value=!1},[o(`span`,{class:t(a.icon)},null,2)],42,f)]),_.value||v.value?(r(),s(`div`,{key:0,class:t([`absolute top-full z-10 w-max max-w-96 pt-1`,a.align===`left`?`left-0`:`right-0`]),role:`tooltip`},[o(`div`,p,[n(e.$slots,`default`)])],2)):c(``,!0)],544))}});export{m as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={app:{error:`接続できませんでした: {message}`,language:`言語`,loading:`プロジェクトを読み込み中…`,name:`x18n`,project:`プロジェクト`,static:`読み取り専用レポート`,staticHint:"`x18n build` で作成したスナップショットです。編集するには `x18n ui` を実行してください。"},auth:{code:`認証コード`,hint:"`x18n ui` がターミナルに表示した 6 桁のコードを入力してください。",label:`認証`,rejected:`このコードは無効です。ターミナルで最新のコードを確認してください。`,submit:`接続`,title:`x18n に接続`},detail:{back:`キー一覧に戻る`,diagnostics:`問題`,edit:`編集`,label:`キー`,noUsages:`このキーを使用しているコードはありません。`,notFound:`このキーは定義されていません。`,openInEditor:`エディタで開く`,possible:`推定`,usages:`使用箇所 ({count})`,values:`値`,showAllLocales:`すべてのロケールを表示`,file:`ファイル`},edit:{dismiss:`閉じる`,placeholdersExtra:`想定外のプレースホルダー {names}`,placeholdersMissing:`不足しているプレースホルダー {names}`,rejected:`保存されませんでした: {locale} の {key}: {message}。`,saveAnyway:`このまま保存`,save:`保存`,cancel:`キャンセル`,hint:`Enter で保存 · Shift+Enter で改行 · Esc でキャンセル`},extract:{apply:`抽出 ({count})`,differs:`ソースメッセージがこの文字列と異なります。抽出しても既存のメッセージはそのまま残ります。`,done:`抽出したキー: {count}。変更したファイル: {files}。`,existing:`既存のキーを再利用します`,file:`このファイルを抽出`,hint:`ハードコードされた文字列と提案キーの一覧です。キーを編集し、文字列ごと、ファイルごと、またはチェックした文字列をまとめて抽出してください。`,key:`キー`,new:`新しいキーを作成します`,none:`ハードコードされた文字列は見つかりませんでした。`,one:`この文字列を抽出`,strings:`文字列: {count}`},keys:{allNamespaces:`すべての名前空間`,anyLocale:`すべてのロケール`,count:`{shown} / {total} キー`,diagnosticsHint:`このキーの問題`,editValue:`{locale} の {key} の値`,empty:`一致するキーはありません。`,grid:`ロケールごとのキーと値`,helpEdit:`Enter で編集、Esc でキャンセル`,helpMove:`矢印キーまたは j/k で移動`,helpOpen:`o でキーを開く`,helpSearch:`/ で検索`,key:`キー`,missingIn:`未翻訳のロケール`,missingInLocale:`{locale} で未翻訳`,namespace:`名前空間`,search:`キーと値を検索`,unused:`未使用`,unusedHint:`このキーを使用しているコードはありません`,withDiagnostics:`問題あり`,outdated:`古い翻訳`,sort:`並び順`,sortKey:`キー`,sortRecent:`最近の変更`},locale:{complete:`すべてのキーが翻訳済みです。`,empty:`空 ({count})`,label:`ロケール`,missing:`未翻訳 ({count})`,notFound:`このプロジェクトにそのロケールはありません。`,openInGrid:`グリッドで表示`,problems:`プレースホルダーと構文の問題 ({count})`,progress:`{total} 件中 {translated} 件翻訳済み ({percent})`,outdated:`古い翻訳({count})`},localeBar:{bar:`表示するロケール`,noneShown:`すべてのロケールが非表示です。上のバーで選択してください。`,showAll:`すべて表示`,shown:`{shown} / {total} 表示中`,title:`ロケール`,toggle:`{locale} の表示を切り替え`,resetOrder:`順序をリセット`,flags:`国旗を表示`,reorder:`ドラッグ、または Alt と矢印キーで並べ替え。`},nav:{extract:`抽出`,keys:`キー`,overview:`概要`,project:`プロジェクト`,usages:`使用箇所`},overview:{clean:`問題は見つかりませんでした。`,coverage:`カバレッジ`,diagnostics:`診断`,errors:`エラー: {count}`,keys:`キー`,locales:`ロケール`,missing:`未翻訳 {missing}、空 {empty}`,noPresets:`プリセットは検出されませんでした。`,noRecent:`ページを開いてから変更はありません。`,presets:`プリセット`,recent:`最近の変更`,resources:`リソース`,source:`ソース`,usages:`使用箇所`,warnings:`警告: {count}`,outdated:`古い {count} 件`},project:{config:`設定と各値の由来`,conflict:`.{extension}: {winner} が {loser} より優先`,files:`ファイル: {count}`,finders:`ロケールファインダー`,formats:`フォーマット`,presets:`プリセット`,problems:`問題`,resources:`リソース: {count}`,scanners:`スキャナー`,showAllPresets:`すべてのプリセットを表示`,plugins:`プラグイン`,none:`見つかりませんでした`,duplicates:`スキップした重複リソース: {count}`,skipped:`スキップしたプリセットとプラグイン`,rawConfig:`生の設定`},prompt:{copied:`コピーしました`,copy:`翻訳プロンプトをコピー`,hint:`未翻訳のメッセージを翻訳させる LLM またはエージェント向けのプロンプトをコピー`,copyStale:`古い翻訳も含めてプロンプトをコピー`,staleHint:`不足しているメッセージを翻訳し、古い翻訳を更新する LLM やエージェント向けのプロンプトをコピー`,copyAll:`すべてのロケールの翻訳プロンプトをコピー`,allHint:`すべてのロケールで不足しているメッセージを翻訳する LLM やエージェント向けのプロンプトをコピーします`},usages:{all:`すべて ({count})`,dynamic:`動的 ({count})`,dynamicHint:`キーが動的に計算される使用箇所です。そのプレフィックス配下のキーは使用中とみなされます。`,filter:`ファイルまたはキーで絞り込み`,missing:`未定義 ({count})`,missingHint:`コードで使用されているが、ソースロケールに定義されていないキーです。`,unused:`未使用 ({count})`,unusedHint:`ソースロケールに定義されているが、どのコードでも使用されていないキーです。`},value:{empty:`空`,missing:`未翻訳`},history:{title:`履歴`,local:`ローカルで変更`,outdated:`古い`,outdatedHint:`この翻訳の後にソースメッセージが変更されました`,sourceThen:`当時のソース`,sourceNow:`現在のソース`,more:`ほか {count} 件`,locales:`{count} ロケール`},sidebar:{list:`リスト表示`,tree:`ツリー表示`,filter:`キーを絞り込む`,view:`キー一覧の表示`},diagnostics:{all:`すべて ({count})`,viewAll:`すべて表示`,copyFix:`修正プロンプトをコピー`,fixHint:`このプロジェクトのすべての診断を修正する LLM やエージェント向けのプロンプトをコピーします`,fixCodeHint:`{code} の診断を修正する LLM やエージェント向けのプロンプトをコピーします`}};export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={app:{error:`无法连接:{message}`,language:`语言`,loading:`正在加载项目…`,name:`x18n`,project:`项目`,static:`只读报告`,staticHint:"由 `x18n build` 生成的快照。运行 `x18n ui` 进行编辑。"},auth:{code:`验证码`,hint:"输入 `x18n ui` 在终端中打印的 6 位验证码。",label:`身份验证`,rejected:`验证码无效。请在终端中查看当前验证码。`,submit:`连接`,title:`连接到 x18n`},detail:{back:`返回键列表`,diagnostics:`问题`,edit:`编辑`,label:`键`,noUsages:`没有代码使用此键。`,notFound:`此键未定义。`,openInEditor:`在编辑器中打开`,possible:`可能`,usages:`引用({count})`,values:`值`,showAllLocales:`显示所有语言`,file:`文件`},edit:{dismiss:`关闭`,placeholdersExtra:`多余的占位符 {names}`,placeholdersMissing:`缺少占位符 {names}`,rejected:`未保存:{key}({locale}):{message}。`,saveAnyway:`仍然保存`,save:`保存`,cancel:`取消`,hint:`Enter 保存 · Shift+Enter 换行 · Esc 取消`},extract:{apply:`提取({count})`,differs:`其源消息与此字符串不同;提取时会保留现有消息。`,done:`已提取键:{count}。已修改文件:{files}。`,existing:`复用已有键`,file:`提取此文件`,hint:`带有建议键的硬编码字符串。可编辑键,然后逐条、按文件或批量提取已勾选的字符串。`,key:`键`,new:`创建新键`,none:`未发现硬编码字符串。`,one:`提取此字符串`,strings:`字符串:{count}`},keys:{allNamespaces:`所有命名空间`,anyLocale:`任意语言`,count:`{shown} / {total} 个键`,diagnosticsHint:`此键存在的问题`,editValue:`{key} 在 {locale} 中的值`,empty:`没有匹配的键。`,grid:`各语言的键和值`,helpEdit:`Enter 编辑,Esc 取消`,helpMove:`方向键或 j/k 移动`,helpOpen:`o 打开键`,helpSearch:`/ 搜索`,key:`键`,missingIn:`缺失于`,missingInLocale:`{locale} 中缺失`,namespace:`命名空间`,search:`搜索键和值`,unused:`未使用`,unusedHint:`没有代码使用此键`,withDiagnostics:`有问题`,outdated:`过时`,sort:`排序`,sortKey:`键`,sortRecent:`最近更改`},locale:{complete:`所有键均已翻译。`,empty:`空值({count})`,label:`语言`,missing:`缺失({count})`,notFound:`此项目中没有该语言。`,openInGrid:`在表格中显示`,problems:`占位符和语法问题({count})`,progress:`已翻译 {translated} / {total}({percent})`,outdated:`过时({count})`},localeBar:{bar:`要显示的语言`,noneShown:`所有语言均已隐藏。请在上方栏中选择一个。`,showAll:`全部显示`,shown:`已显示 {shown} / {total}`,title:`语言`,toggle:`显示或隐藏 {locale}`,resetOrder:`重置顺序`,flags:`显示旗帜`,reorder:`拖动或按 Alt 加方向键以调整顺序。`},nav:{extract:`提取`,keys:`键`,overview:`概览`,project:`项目`,usages:`引用`},overview:{clean:`未发现问题。`,coverage:`覆盖率`,diagnostics:`诊断`,errors:`错误:{count}`,keys:`键`,locales:`语言`,missing:`{missing} 个缺失,{empty} 个为空`,noPresets:`未检测到预设。`,noRecent:`自页面打开以来没有更改。`,presets:`预设`,recent:`最近更改`,resources:`资源`,source:`源`,usages:`引用`,warnings:`警告:{count}`,outdated:`{count} 条过时`},project:{config:`配置及各值来源`,conflict:`.{extension}:{winner} 优先于 {loser}`,files:`文件:{count}`,finders:`语言查找器`,formats:`格式`,presets:`预设`,problems:`问题`,resources:`资源:{count}`,scanners:`扫描器`,showAllPresets:`显示所有预设`,plugins:`插件`,none:`未找到任何内容`,duplicates:`已跳过的重复资源:{count}`,skipped:`已跳过的预设和插件`,rawConfig:`原始配置`},prompt:{copied:`已复制`,copy:`复制翻译提示词`,hint:`复制一段提示词,供 LLM 或智能体翻译缺失的消息`,copyStale:`复制包含过时翻译的提示词`,staleHint:`复制提示词,供 LLM 或智能体翻译缺失的消息并更新过时的翻译`,copyAll:`复制所有语言的翻译提示词`,allHint:`复制一段提示词,供 LLM 或智能体翻译每种语言中缺失的消息`},usages:{all:`全部({count})`,dynamic:`动态({count})`,dynamicHint:`使用计算键的引用。其前缀下的键均视为已使用。`,filter:`按文件或键筛选`,missing:`未定义({count})`,missingHint:`代码中使用但未在源语言中定义的键。`,unused:`未使用({count})`,unusedHint:`已在源语言中定义但没有代码使用的键。`},value:{empty:`空`,missing:`缺失`},history:{title:`历史`,local:`本地已更改`,outdated:`过时`,outdatedHint:`此翻译之后源消息发生了更改`,sourceThen:`当时的源文本`,sourceNow:`现在的源文本`,more:`以及另外 {count} 个`,locales:`{count} 种语言`},sidebar:{list:`列表视图`,tree:`树状视图`,filter:`筛选键`,view:`键列表视图`},diagnostics:{all:`全部 ({count})`,viewAll:`查看全部`,copyFix:`复制修复提示词`,fixHint:`复制提示词,供 LLM 或智能体修复此项目的所有诊断`,fixCodeHint:`复制提示词,供 LLM 或智能体修复 {code} 诊断`}};export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={app:{error:`Connexion impossible\xA0: {message}`,language:`Langue`,loading:`Chargement du projet…`,name:`x18n`,project:`Projet`,static:`Rapport en lecture seule`,staticHint:"Instantané généré avec `x18n build`. Lancez `x18n ui` pour modifier."},auth:{code:`Code d’authentification`,hint:"Saisissez le code à 6 chiffres affiché par `x18n ui` dans le terminal.",label:`Authentification`,rejected:`Ce code n’a pas fonctionné. Consultez le terminal pour obtenir le code actuel.`,submit:`Se connecter`,title:`Se connecter à x18n`},detail:{back:`Retour aux clés`,diagnostics:`Problèmes`,edit:`Modifier`,label:`Clé`,noUsages:`Aucun code n’utilise cette clé.`,notFound:`Cette clé n’est pas définie.`,openInEditor:`Ouvrir dans l’éditeur`,possible:`possible`,usages:`Utilisations ({count})`,values:`Valeurs`,showAllLocales:`Afficher toutes les langues`,file:`Fichier`},edit:{dismiss:`Ignorer`,placeholdersExtra:`espaces réservés inattendus {names}`,placeholdersMissing:`espaces réservés manquants {names}`,rejected:`Non enregistré\xA0: {key} en {locale}\xA0: {message}.`,saveAnyway:`Enregistrer quand même`,save:`Enregistrer`,cancel:`Annuler`,hint:`Entrée pour enregistrer · Maj+Entrée pour une nouvelle ligne · Échap pour annuler`},extract:{apply:`Extraire ({count})`,differs:`Son message source diffère de cette chaîne ; l’extraction conserve les messages existants.`,done:`Clés extraites\xA0: {count}. Fichiers modifiés\xA0: {files}.`,existing:`Réutilise une clé existante`,file:`Extraire ce fichier`,hint:`Chaînes codées en dur avec une clé proposée. Modifiez les clés, puis extrayez une chaîne, un fichier ou toutes les chaînes cochées.`,key:`Clé`,new:`Crée une nouvelle clé`,none:`Aucune chaîne codée en dur trouvée.`,one:`Extraire cette chaîne`,strings:`Chaînes\xA0: {count}`},keys:{allNamespaces:`Tous les espaces de noms`,anyLocale:`Toute langue`,count:`{shown} clés sur {total}`,diagnosticsHint:`Problèmes sur cette clé`,editValue:`Valeur de {key} en {locale}`,empty:`Aucune clé ne correspond.`,grid:`Clés et valeurs par langue`,helpEdit:`Entrée pour modifier, Échap pour annuler`,helpMove:`Flèches ou j/k pour se déplacer`,helpOpen:`o pour ouvrir la clé`,helpSearch:`/ pour rechercher`,key:`Clé`,missingIn:`Manquante en`,missingInLocale:`Manquante en {locale}`,namespace:`Espace de noms`,search:`Rechercher clés et valeurs`,unused:`Inutilisées`,unusedHint:`Aucun code n’utilise cette clé`,withDiagnostics:`Avec problèmes`,outdated:`Obsolètes`,sort:`Tri`,sortKey:`Clé`,sortRecent:`Modifiées récemment`},locale:{complete:`Toutes les clés sont traduites.`,empty:`Vides ({count})`,label:`Langue`,missing:`Manquantes ({count})`,notFound:`Ce projet ne contient pas cette langue.`,openInGrid:`Afficher dans la grille`,problems:`Problèmes d’espaces réservés et de syntaxe ({count})`,progress:`{translated} sur {total} traduites ({percent})`,outdated:`Obsolètes ({count})`},localeBar:{bar:`Langues à afficher`,noneShown:`Toutes les langues sont masquées. Choisissez-en une dans la barre ci-dessus.`,showAll:`Tout afficher`,shown:`{shown} sur {total} affichées`,title:`Langues`,toggle:`Afficher ou masquer {locale}`,resetOrder:`Réinitialiser l’ordre`,flags:`Afficher les drapeaux`,reorder:`Faites glisser, ou appuyez sur Alt et une flèche, pour réordonner.`},nav:{extract:`Extraire`,keys:`Clés`,overview:`Aperçu`,project:`Projet`,usages:`Utilisations`},overview:{clean:`Aucun problème détecté.`,coverage:`Couverture`,diagnostics:`Diagnostics`,errors:`Erreurs\xA0: {count}`,keys:`Clés`,locales:`Langues`,missing:`{missing} manquantes, {empty} vides`,noPresets:`Aucun preset détecté.`,noRecent:`Aucune modification depuis l’ouverture de la page.`,presets:`Presets`,recent:`Modifications récentes`,resources:`Ressources`,source:`source`,usages:`Utilisations`,warnings:`Avertissements\xA0: {count}`,outdated:`{count} obsolètes`},project:{config:`Configuration et origine de chaque valeur`,conflict:`.{extension}\xA0: {winner} l’emporte sur {loser}`,files:`Fichiers\xA0: {count}`,finders:`Détecteurs de langues`,formats:`Formats`,presets:`Presets`,problems:`Problèmes`,resources:`Ressources\xA0: {count}`,scanners:`Scanners`,showAllPresets:`Afficher tous les presets`,plugins:`Plugins`,none:`Rien trouvé`,duplicates:`Ressources en double ignorées : {count}`,skipped:`Préréglages et plugins ignorés`,rawConfig:`Configuration brute`},prompt:{copied:`Copié`,copy:`Copier le prompt de traduction`,hint:`Copier un prompt pour un LLM ou un agent qui traduit les messages manquants`,copyStale:`Copier le prompt avec les obsolètes`,staleHint:`Copier un prompt pour un LLM ou un agent qui traduit les messages manquants et met à jour les obsolètes`,copyAll:`Copier le prompt de traduction de toutes les langues`,allHint:`Copie un prompt pour un LLM ou un agent qui traduit ce qui manque dans chaque langue`},usages:{all:`Toutes ({count})`,dynamic:`Dynamiques ({count})`,dynamicHint:`Utilisations avec une clé calculée. Les clés sous leur préfixe comptent comme utilisées.`,filter:`Filtrer par fichier ou clé`,missing:`Non définies ({count})`,missingHint:`Clés utilisées dans le code mais non définies dans la langue source.`,unused:`Inutilisées ({count})`,unusedHint:`Clés définies dans la langue source qu’aucun code n’utilise.`},value:{empty:`vide`,missing:`manquant`},history:{title:`Historique`,local:`modifié localement`,outdated:`obsolète`,outdatedHint:`Le message source a changé après cette traduction`,sourceThen:`Source alors`,sourceNow:`Source actuelle`,more:`et {count} de plus`,locales:`{count} langues`},sidebar:{list:`Vue en liste`,tree:`Vue en arbre`,filter:`Filtrer les clés`,view:`Affichage de la liste des clés`},diagnostics:{all:`Tous ({count})`,viewAll:`Tout afficher`,copyFix:`Copier le prompt de correction`,fixHint:`Copie un prompt pour un LLM ou un agent qui corrige tous les diagnostics de ce projet`,fixCodeHint:`Copie un prompt pour un LLM ou un agent qui corrige les diagnostics {code}`}};export{e as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"
|
|
1
|
+
{"id":"1768fa1c-81c1-455a-8b7e-07e2b05e0c06","timestamp":1792798958488}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"1768fa1c-81c1-455a-8b7e-07e2b05e0c06","timestamp":1792798958488,"prerendered":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,Ct as t,E as n,Et as r,F as i,H as a,M as o,P as s,Q as c,R as l,T as u,Tt as d,U as f,_ as p,c as m,d as h,h as g,it as _,m as v,r as y,s as b,u as x,wt as ee,y as te,z as S}from"./B4prFwj0.js";import{a as C,i as w,o as T,s as E}from"./DoHg1T7s.js";import{d as ne,u as re}from"./BbIaocwP.js";import{D as ie,S as D,h as ae,m as oe,n as se,t as O}from"./DF0vjjh8.js";import{n as ce}from"#entry";import{t as le}from"./f6bf8PNO.js";import{i as k,n as ue,r as de}from"./D08T24dG.js";import{t as fe}from"./C7ReGOzp.js";var A={class:`inline-flex cursor-pointer items-center gap-2 text-xs select-none`},j=p({__name:`UiToggle`,props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let n=l(e,`modelValue`);return(e,r)=>(o(),h(`label`,A,[f(m(`input`,{"onUpdate:modelValue":r[0]||=e=>n.value=e,type:`checkbox`,class:`peer sr-only`},null,512),[[w,n.value]]),m(`span`,{class:t([`relative h-4 w-7 border transition-colors peer-focus-visible:outline-2 peer-focus-visible:outline-offset-2 peer-focus-visible:outline-[var(--x-fg)]`,n.value?`border-inverse bg-inverse`:`border-strong bg-base`])},[m(`span`,{class:t([`absolute top-[2px] size-[10px] transition-all`,n.value?`left-[14px] bg-base`:`left-[2px] bg-inverse`])},null,2)],2),i(e.$slots,`default`)]))}}),pe={class:`h-full flex flex-col`},me={class:`shrink-0 flex flex-wrap items-center gap-3 border-b border-base px-4 py-2`},he={class:`input w-80 flex items-center gap-2 focus-within:border-inverse`},ge=[`placeholder`,`aria-label`],_e=[`aria-label`],ve={value:``},ye=[`value`],be=[`aria-label`],xe={value:``},Se=[`value`],Ce={class:`font-mono text-xs color-muted tabular-nums`},we={key:0,class:`shrink-0 flex items-center gap-2 border-b border-base px-4 py-1.5 color-warn`,role:`alert`},Te={class:`color-base`},Ee=[`aria-label`,`aria-rowcount`],De={class:`label flex items-center px-4`,role:`columnheader`},Oe={class:`label color-base`},ke={key:0,class:`badge`},Ae=[`aria-rowindex`,`data-key`],je=[`title`,`onClick`,`onDblclick`],Me={class:`truncate`},Ne=[`title`],Pe=[`title`],Fe=[`data-locale`,`onClick`,`onDblclick`],Ie=[`aria-label`],Le=[`title`],Re=[`title`],ze={key:0,class:`p-4 color-muted`},Be={class:`shrink-0 flex gap-4 border-t border-base px-4 py-1.5 font-mono text-[11px] color-muted`},Ve={key:0},M=32,N=p({__name:`index`,setup(i){let l=re(),p=ne(),w=oe((e,t)=>e.keys(t)),A=c(``),N=c(``),P=c(typeof l.query.missing==`string`?l.query.missing:``),F=c(!1),I=c(!1),L=c(l.query.outdated!==void 0),R=c(`key`),He=b(()=>[{value:`key`,label:D(`keys.sortKey`)},{value:`recent`,label:D(`keys.sortRecent`)}]),Ue=b(()=>(w.value?.rows??[]).some(e=>e.changedAt!==void 0)),z=b(()=>ae.value.map(e=>e.code)),B=b(()=>[...new Set((w.value?.rows??[]).flatMap(e=>e.namespace??[]))].sort()),V=b(()=>{let e=A.value.trim(),t=(w.value?.rows??[]).filter(e=>(!N.value||e.namespace===N.value)&&(!P.value||!z.value.includes(P.value)||e.missing.includes(P.value))&&(!F.value||e.unused)&&(!I.value||e.diagnostics>0)&&(!L.value||e.outdated.some(e=>z.value.includes(e))));return e?t.map(t=>{let n=Object.values(t.values).map(t=>k(e,String(t))/2);return{row:t,score:Math.max(k(e,t.key),...n)}}).filter(e=>e.score>=0).sort((e,t)=>t.score-e.score).map(e=>e.row):R.value===`recent`?[...t].sort((e,t)=>(t.changedAt??0)-(e.changedAt??0)):t}),{list:We,containerProps:H,wrapperProps:Ge,scrollTo:Ke}=ie(V,{itemHeight:M,overscan:12}),U=c({row:0,col:0}),W=c(),G=c(),K=S(`searchInput`),q=S(`editor`);e(V,()=>{U.value={row:Math.min(U.value.row,Math.max(V.value.length-1,0)),col:U.value.col}});let J=b(()=>z.value.length?`minmax(16rem, 1.2fr) repeat(${z.value.length}, minmax(12rem, 1fr))`:`1fr`);function Y(e,t){let n={row:Math.max(0,Math.min(V.value.length-1,e)),col:Math.max(0,Math.min(z.value.length,t))};U.value=n;let r=H.ref.value;if(r){let e=n.row*M;(e<r.scrollTop||e+64>r.scrollTop+r.clientHeight)&&Ke(n.row)}}async function X(e,t){if(!O.value?.capabilities.write)return;let r=e.values[t];W.value={key:e.key,locale:t,draft:r==null?``:String(r)},await n(),q.value?.[0]?.focus()}async function Z(e=!1){let t=W.value;if(!t)return;W.value=void 0;let n=await de(t.key,t.locale,t.draft,e);G.value=n.applied?void 0:{key:t.key,locale:t.locale,value:t.draft,message:n.problems.map(ue).join(`; `)},H.ref.value?.focus()}function qe(){W.value=void 0,H.ref.value?.focus()}async function Je(){let e=G.value;e&&(W.value={key:e.key,locale:e.locale,draft:e.value},await Z(!0))}function Q(e){p.push(`/keys/${encodeURIComponent(e.key)}`)}function $(){let e=V.value[U.value.row];if(!e)return;let t=z.value[U.value.col-1];t?X(e,t):Q(e)}let Ye={ArrowDown:()=>Y(U.value.row+1,U.value.col),ArrowUp:()=>Y(U.value.row-1,U.value.col),ArrowRight:()=>Y(U.value.row,U.value.col+1),ArrowLeft:()=>Y(U.value.row,U.value.col-1),PageDown:()=>Y(U.value.row+20,U.value.col),PageUp:()=>Y(U.value.row-20,U.value.col),Home:()=>Y(0,U.value.col),End:()=>Y(V.value.length-1,U.value.col),Enter:$,F2:$,o:()=>V.value[U.value.row]&&Q(V.value[U.value.row]),j:()=>Y(U.value.row+1,U.value.col),k:()=>Y(U.value.row-1,U.value.col),"/":()=>K.value?.focus()};function Xe(e){if(W.value||e.metaKey||e.ctrlKey||e.altKey)return;let t=Ye[e.key];t&&(e.preventDefault(),t())}function Ze(e){e.stopPropagation(),e.key===`Escape`?(e.preventDefault(),qe()):(e.key===`Enter`||e.key===`Tab`)&&(e.preventDefault(),Z().then(()=>{e.key===`Tab`&&Y(U.value.row,U.value.col+1)}))}return(e,n)=>(o(),h(`div`,pe,[m(`div`,me,[m(`label`,he,[n[12]||=m(`span`,{class:`i-ph-magnifying-glass-duotone color-faint`},null,-1),f(m(`input`,{ref_key:`searchInput`,ref:K,"onUpdate:modelValue":n[0]||=e=>A.value=e,class:`flex-auto bg-transparent outline-none`,placeholder:_(D)(`keys.search`),"aria-label":_(D)(`keys.search`),onKeydown:[n[1]||=E(e=>_(H).ref.value?.focus(),[`escape`]),n[2]||=E(e=>_(H).ref.value?.focus(),[`enter`])]},null,40,ge),[[T,A.value]]),n[13]||=m(`kbd`,{class:`badge`},`/`,-1)]),B.value.length?f((o(),h(`select`,{key:0,"onUpdate:modelValue":n[3]||=e=>N.value=e,class:`input text-xs`,"aria-label":_(D)(`keys.namespace`)},[m(`option`,ve,r(_(D)(`keys.allNamespaces`)),1),(o(!0),h(y,null,s(B.value,e=>(o(),h(`option`,{key:e,value:e},r(e),9,ye))),128))],8,_e)),[[C,N.value]]):x(``,!0),f(m(`select`,{"onUpdate:modelValue":n[4]||=e=>P.value=e,class:`input text-xs`,"aria-label":_(D)(`keys.missingIn`)},[m(`option`,xe,r(_(D)(`keys.anyLocale`)),1),(o(!0),h(y,null,s(z.value,e=>(o(),h(`option`,{key:e,value:e},r(_(D)(`keys.missingInLocale`,{locale:e})),9,Se))),128))],8,be),[[C,P.value]]),g(j,{modelValue:F.value,"onUpdate:modelValue":n[5]||=e=>F.value=e},{default:a(()=>[v(r(_(D)(`keys.unused`)),1)]),_:1},8,[`modelValue`]),g(j,{modelValue:I.value,"onUpdate:modelValue":n[6]||=e=>I.value=e},{default:a(()=>[v(r(_(D)(`keys.withDiagnostics`)),1)]),_:1},8,[`modelValue`]),Ue.value?(o(),h(y,{key:1},[g(j,{modelValue:L.value,"onUpdate:modelValue":n[7]||=e=>L.value=e},{default:a(()=>[v(r(_(D)(`keys.outdated`)),1)]),_:1},8,[`modelValue`]),g(fe,{modelValue:R.value,"onUpdate:modelValue":n[8]||=e=>R.value=e,options:He.value,label:_(D)(`keys.sort`)},null,8,[`modelValue`,`options`,`label`])],64)):x(``,!0),n[14]||=m(`div`,{class:`flex-auto`},null,-1),m(`span`,Ce,r(_(D)(`keys.count`,{shown:V.value.length,total:_(w)?.rows.length??0})),1)]),G.value?(o(),h(`div`,we,[n[15]||=m(`span`,{class:`i-ph-warning-duotone`},null,-1),m(`span`,Te,r(_(D)(`edit.rejected`,{key:G.value.key,locale:G.value.locale,message:G.value.message})),1),m(`button`,{class:`btn-outline h-7`,onClick:Je},r(_(D)(`edit.saveAnyway`)),1),m(`button`,{class:`btn-ghost h-7`,onClick:n[9]||=e=>G.value=void 0},r(_(D)(`edit.dismiss`)),1)])):x(``,!0),m(`div`,u(_(H),{class:`flex-auto min-h-0 of-auto outline-none`,tabindex:`0`,role:`grid`,"aria-label":_(D)(`keys.grid`),"aria-rowcount":V.value.length,onKeydown:Xe}),[m(`div`,{class:`sticky top-0 z-20 grid border-b border-strong bg-base`,style:d({gridTemplateColumns:J.value,height:`${M}px`}),role:`row`},[m(`div`,De,r(_(D)(`keys.key`)),1),(o(!0),h(y,null,s(z.value,e=>(o(),h(`div`,{key:e,class:`flex items-center gap-2 border-l border-base px-3`,role:`columnheader`},[g(ce,{code:e},null,8,[`code`]),m(`span`,Oe,r(e),1),e===_(se)?.sourceLocale?(o(),h(`span`,ke,r(_(D)(`overview.source`)),1)):x(``,!0)]))),128))],4),m(`div`,ee(te(_(Ge))),[(o(!0),h(y,null,s(_(We),({data:e,index:i})=>(o(),h(`div`,{key:e.key,class:t([`grid border-b border-base`,i===U.value.row?`bg-hover`:``]),style:d({gridTemplateColumns:J.value,height:`${M}px`}),role:`row`,"aria-rowindex":i+1,"data-key":e.key},[m(`div`,{class:t([`flex min-w-0 cursor-pointer items-center gap-1.5 px-4 font-mono text-xs`,i===U.value.row&&U.value.col===0?`outline outline-1 outline-[var(--x-fg)] -outline-offset-1`:``]),role:`gridcell`,title:e.key,onClick:e=>Y(i,0),onDblclick:t=>Q(e)},[m(`span`,Me,r(e.key),1),e.unused?(o(),h(`span`,{key:0,class:`i-ph-ghost-duotone shrink-0 color-faint`,title:_(D)(`keys.unusedHint`)},null,8,Ne)):x(``,!0),e.diagnostics?(o(),h(`span`,{key:1,class:`badge shrink-0 border-current color-error`,title:_(D)(`keys.diagnosticsHint`)},r(e.diagnostics),9,Pe)):x(``,!0)],42,je),(o(!0),h(y,null,s(z.value,(r,a)=>(o(),h(`div`,{key:r,class:t([`flex min-w-0 items-center border-l border-base px-3`,i===U.value.row&&U.value.col===a+1?`outline outline-1 outline-[var(--x-fg)] -outline-offset-1`:``]),role:`gridcell`,"data-locale":r,onClick:e=>Y(i,a+1),onDblclick:t=>X(e,r)},[W.value&&W.value.key===e.key&&W.value.locale===r?f((o(),h(`input`,{key:0,ref_for:!0,ref_key:`editor`,ref:q,"onUpdate:modelValue":n[10]||=e=>W.value.draft=e,class:`w-full bg-transparent outline-none`,"aria-label":_(D)(`keys.editValue`,{key:e.key,locale:r}),onKeydown:Ze,onBlur:n[11]||=e=>Z()},null,40,Ie)),[[T,W.value.draft]]):(o(),h(y,{key:1},[m(`span`,{class:`truncate`,title:String(e.values[r]??``)},[g(le,{value:e.values[r],inline:``},null,8,[`value`])],8,Le),e.outdated.includes(r)?(o(),h(`span`,{key:0,class:`ml-auto shrink-0 pl-2 color-warn`,title:_(D)(`history.outdatedHint`)},[...n[16]||=[m(`span`,{class:`i-ph-clock-counter-clockwise-duotone block`},null,-1)]],8,Re)):x(``,!0)],64))],42,Fe))),128))],14,Ae))),128))],16),_(w)&&!V.value.length?(o(),h(`p`,ze,r(_(D)(`keys.empty`)),1)):x(``,!0)],16,Ee),m(`div`,Be,[m(`span`,null,r(_(D)(`keys.helpMove`)),1),_(O)?.capabilities.write?(o(),h(`span`,Ve,r(_(D)(`keys.helpEdit`)),1)):x(``,!0),m(`span`,null,r(_(D)(`keys.helpOpen`)),1),m(`span`,null,r(_(D)(`keys.helpSearch`)),1)])]))}});export{N as default};
|
|
1
|
+
import{B as e,Ct as t,E as n,Et as r,F as i,H as a,M as o,P as s,Q as c,R as l,T as u,Tt as d,U as f,_ as p,c as m,d as h,h as g,it as _,m as v,r as y,s as b,u as x,wt as ee,y as te,z as S}from"./B4prFwj0.js";import{a as C,i as w,o as T,s as E}from"./DoHg1T7s.js";import{d as ne,u as re}from"./BbIaocwP.js";import{D as ie,S as D,h as ae,m as oe,n as se,t as O}from"./BMk3frKd.js";import{n as ce}from"#entry";import{t as le}from"./D0qDe1RK.js";import{i as k,n as ue,r as de}from"./C9NjIzeY.js";import{t as fe}from"./C7ReGOzp.js";var A={class:`inline-flex cursor-pointer items-center gap-2 text-xs select-none`},j=p({__name:`UiToggle`,props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let n=l(e,`modelValue`);return(e,r)=>(o(),h(`label`,A,[f(m(`input`,{"onUpdate:modelValue":r[0]||=e=>n.value=e,type:`checkbox`,class:`peer sr-only`},null,512),[[w,n.value]]),m(`span`,{class:t([`relative h-4 w-7 border transition-colors peer-focus-visible:outline-2 peer-focus-visible:outline-offset-2 peer-focus-visible:outline-[var(--x-fg)]`,n.value?`border-inverse bg-inverse`:`border-strong bg-base`])},[m(`span`,{class:t([`absolute top-[2px] size-[10px] transition-all`,n.value?`left-[14px] bg-base`:`left-[2px] bg-inverse`])},null,2)],2),i(e.$slots,`default`)]))}}),pe={class:`h-full flex flex-col`},me={class:`shrink-0 flex flex-wrap items-center gap-3 border-b border-base px-4 py-2`},he={class:`input w-80 flex items-center gap-2 focus-within:border-inverse`},ge=[`placeholder`,`aria-label`],_e=[`aria-label`],ve={value:``},ye=[`value`],be=[`aria-label`],xe={value:``},Se=[`value`],Ce={class:`font-mono text-xs color-muted tabular-nums`},we={key:0,class:`shrink-0 flex items-center gap-2 border-b border-base px-4 py-1.5 color-warn`,role:`alert`},Te={class:`color-base`},Ee=[`aria-label`,`aria-rowcount`],De={class:`label flex items-center px-4`,role:`columnheader`},Oe={class:`label color-base`},ke={key:0,class:`badge`},Ae=[`aria-rowindex`,`data-key`],je=[`title`,`onClick`,`onDblclick`],Me={class:`truncate`},Ne=[`title`],Pe=[`title`],Fe=[`data-locale`,`onClick`,`onDblclick`],Ie=[`aria-label`],Le=[`title`],Re=[`title`],ze={key:0,class:`p-4 color-muted`},Be={class:`shrink-0 flex gap-4 border-t border-base px-4 py-1.5 font-mono text-[11px] color-muted`},Ve={key:0},M=32,N=p({__name:`index`,setup(i){let l=re(),p=ne(),w=oe((e,t)=>e.keys(t)),A=c(``),N=c(``),P=c(typeof l.query.missing==`string`?l.query.missing:``),F=c(!1),I=c(!1),L=c(l.query.outdated!==void 0),R=c(`key`),He=b(()=>[{value:`key`,label:D(`keys.sortKey`)},{value:`recent`,label:D(`keys.sortRecent`)}]),Ue=b(()=>(w.value?.rows??[]).some(e=>e.changedAt!==void 0)),z=b(()=>ae.value.map(e=>e.code)),B=b(()=>[...new Set((w.value?.rows??[]).flatMap(e=>e.namespace??[]))].sort()),V=b(()=>{let e=A.value.trim(),t=(w.value?.rows??[]).filter(e=>(!N.value||e.namespace===N.value)&&(!P.value||!z.value.includes(P.value)||e.missing.includes(P.value))&&(!F.value||e.unused)&&(!I.value||e.diagnostics>0)&&(!L.value||e.outdated.some(e=>z.value.includes(e))));return e?t.map(t=>{let n=Object.values(t.values).map(t=>k(e,String(t))/2);return{row:t,score:Math.max(k(e,t.key),...n)}}).filter(e=>e.score>=0).sort((e,t)=>t.score-e.score).map(e=>e.row):R.value===`recent`?[...t].sort((e,t)=>(t.changedAt??0)-(e.changedAt??0)):t}),{list:We,containerProps:H,wrapperProps:Ge,scrollTo:Ke}=ie(V,{itemHeight:M,overscan:12}),U=c({row:0,col:0}),W=c(),G=c(),K=S(`searchInput`),q=S(`editor`);e(V,()=>{U.value={row:Math.min(U.value.row,Math.max(V.value.length-1,0)),col:U.value.col}});let J=b(()=>z.value.length?`minmax(16rem, 1.2fr) repeat(${z.value.length}, minmax(12rem, 1fr))`:`1fr`);function Y(e,t){let n={row:Math.max(0,Math.min(V.value.length-1,e)),col:Math.max(0,Math.min(z.value.length,t))};U.value=n;let r=H.ref.value;if(r){let e=n.row*M;(e<r.scrollTop||e+64>r.scrollTop+r.clientHeight)&&Ke(n.row)}}async function X(e,t){if(!O.value?.capabilities.write)return;let r=e.values[t];W.value={key:e.key,locale:t,draft:r==null?``:String(r)},await n(),q.value?.[0]?.focus()}async function Z(e=!1){let t=W.value;if(!t)return;W.value=void 0;let n=await de(t.key,t.locale,t.draft,e);G.value=n.applied?void 0:{key:t.key,locale:t.locale,value:t.draft,message:n.problems.map(ue).join(`; `)},H.ref.value?.focus()}function qe(){W.value=void 0,H.ref.value?.focus()}async function Je(){let e=G.value;e&&(W.value={key:e.key,locale:e.locale,draft:e.value},await Z(!0))}function Q(e){p.push(`/keys/${encodeURIComponent(e.key)}`)}function $(){let e=V.value[U.value.row];if(!e)return;let t=z.value[U.value.col-1];t?X(e,t):Q(e)}let Ye={ArrowDown:()=>Y(U.value.row+1,U.value.col),ArrowUp:()=>Y(U.value.row-1,U.value.col),ArrowRight:()=>Y(U.value.row,U.value.col+1),ArrowLeft:()=>Y(U.value.row,U.value.col-1),PageDown:()=>Y(U.value.row+20,U.value.col),PageUp:()=>Y(U.value.row-20,U.value.col),Home:()=>Y(0,U.value.col),End:()=>Y(V.value.length-1,U.value.col),Enter:$,F2:$,o:()=>V.value[U.value.row]&&Q(V.value[U.value.row]),j:()=>Y(U.value.row+1,U.value.col),k:()=>Y(U.value.row-1,U.value.col),"/":()=>K.value?.focus()};function Xe(e){if(W.value||e.metaKey||e.ctrlKey||e.altKey)return;let t=Ye[e.key];t&&(e.preventDefault(),t())}function Ze(e){e.stopPropagation(),e.key===`Escape`?(e.preventDefault(),qe()):(e.key===`Enter`||e.key===`Tab`)&&(e.preventDefault(),Z().then(()=>{e.key===`Tab`&&Y(U.value.row,U.value.col+1)}))}return(e,n)=>(o(),h(`div`,pe,[m(`div`,me,[m(`label`,he,[n[12]||=m(`span`,{class:`i-ph-magnifying-glass-duotone color-faint`},null,-1),f(m(`input`,{ref_key:`searchInput`,ref:K,"onUpdate:modelValue":n[0]||=e=>A.value=e,class:`flex-auto bg-transparent outline-none`,placeholder:_(D)(`keys.search`),"aria-label":_(D)(`keys.search`),onKeydown:[n[1]||=E(e=>_(H).ref.value?.focus(),[`escape`]),n[2]||=E(e=>_(H).ref.value?.focus(),[`enter`])]},null,40,ge),[[T,A.value]]),n[13]||=m(`kbd`,{class:`badge`},`/`,-1)]),B.value.length?f((o(),h(`select`,{key:0,"onUpdate:modelValue":n[3]||=e=>N.value=e,class:`input text-xs`,"aria-label":_(D)(`keys.namespace`)},[m(`option`,ve,r(_(D)(`keys.allNamespaces`)),1),(o(!0),h(y,null,s(B.value,e=>(o(),h(`option`,{key:e,value:e},r(e),9,ye))),128))],8,_e)),[[C,N.value]]):x(``,!0),f(m(`select`,{"onUpdate:modelValue":n[4]||=e=>P.value=e,class:`input text-xs`,"aria-label":_(D)(`keys.missingIn`)},[m(`option`,xe,r(_(D)(`keys.anyLocale`)),1),(o(!0),h(y,null,s(z.value,e=>(o(),h(`option`,{key:e,value:e},r(_(D)(`keys.missingInLocale`,{locale:e})),9,Se))),128))],8,be),[[C,P.value]]),g(j,{modelValue:F.value,"onUpdate:modelValue":n[5]||=e=>F.value=e},{default:a(()=>[v(r(_(D)(`keys.unused`)),1)]),_:1},8,[`modelValue`]),g(j,{modelValue:I.value,"onUpdate:modelValue":n[6]||=e=>I.value=e},{default:a(()=>[v(r(_(D)(`keys.withDiagnostics`)),1)]),_:1},8,[`modelValue`]),Ue.value?(o(),h(y,{key:1},[g(j,{modelValue:L.value,"onUpdate:modelValue":n[7]||=e=>L.value=e},{default:a(()=>[v(r(_(D)(`keys.outdated`)),1)]),_:1},8,[`modelValue`]),g(fe,{modelValue:R.value,"onUpdate:modelValue":n[8]||=e=>R.value=e,options:He.value,label:_(D)(`keys.sort`)},null,8,[`modelValue`,`options`,`label`])],64)):x(``,!0),n[14]||=m(`div`,{class:`flex-auto`},null,-1),m(`span`,Ce,r(_(D)(`keys.count`,{shown:V.value.length,total:_(w)?.rows.length??0})),1)]),G.value?(o(),h(`div`,we,[n[15]||=m(`span`,{class:`i-ph-warning-duotone`},null,-1),m(`span`,Te,r(_(D)(`edit.rejected`,{key:G.value.key,locale:G.value.locale,message:G.value.message})),1),m(`button`,{class:`btn-outline h-7`,onClick:Je},r(_(D)(`edit.saveAnyway`)),1),m(`button`,{class:`btn-ghost h-7`,onClick:n[9]||=e=>G.value=void 0},r(_(D)(`edit.dismiss`)),1)])):x(``,!0),m(`div`,u(_(H),{class:`flex-auto min-h-0 of-auto outline-none`,tabindex:`0`,role:`grid`,"aria-label":_(D)(`keys.grid`),"aria-rowcount":V.value.length,onKeydown:Xe}),[m(`div`,{class:`sticky top-0 z-20 grid border-b border-strong bg-base`,style:d({gridTemplateColumns:J.value,height:`${M}px`}),role:`row`},[m(`div`,De,r(_(D)(`keys.key`)),1),(o(!0),h(y,null,s(z.value,e=>(o(),h(`div`,{key:e,class:`flex items-center gap-2 border-l border-base px-3`,role:`columnheader`},[g(ce,{code:e},null,8,[`code`]),m(`span`,Oe,r(e),1),e===_(se)?.sourceLocale?(o(),h(`span`,ke,r(_(D)(`overview.source`)),1)):x(``,!0)]))),128))],4),m(`div`,ee(te(_(Ge))),[(o(!0),h(y,null,s(_(We),({data:e,index:i})=>(o(),h(`div`,{key:e.key,class:t([`grid border-b border-base`,i===U.value.row?`bg-hover`:``]),style:d({gridTemplateColumns:J.value,height:`${M}px`}),role:`row`,"aria-rowindex":i+1,"data-key":e.key},[m(`div`,{class:t([`flex min-w-0 cursor-pointer items-center gap-1.5 px-4 font-mono text-xs`,i===U.value.row&&U.value.col===0?`outline outline-1 outline-[var(--x-fg)] -outline-offset-1`:``]),role:`gridcell`,title:e.key,onClick:e=>Y(i,0),onDblclick:t=>Q(e)},[m(`span`,Me,r(e.key),1),e.unused?(o(),h(`span`,{key:0,class:`i-ph-ghost-duotone shrink-0 color-faint`,title:_(D)(`keys.unusedHint`)},null,8,Ne)):x(``,!0),e.diagnostics?(o(),h(`span`,{key:1,class:`badge shrink-0 border-current color-error`,title:_(D)(`keys.diagnosticsHint`)},r(e.diagnostics),9,Pe)):x(``,!0)],42,je),(o(!0),h(y,null,s(z.value,(r,a)=>(o(),h(`div`,{key:r,class:t([`flex min-w-0 items-center border-l border-base px-3`,i===U.value.row&&U.value.col===a+1?`outline outline-1 outline-[var(--x-fg)] -outline-offset-1`:``]),role:`gridcell`,"data-locale":r,onClick:e=>Y(i,a+1),onDblclick:t=>X(e,r)},[W.value&&W.value.key===e.key&&W.value.locale===r?f((o(),h(`input`,{key:0,ref_for:!0,ref_key:`editor`,ref:q,"onUpdate:modelValue":n[10]||=e=>W.value.draft=e,class:`w-full bg-transparent outline-none`,"aria-label":_(D)(`keys.editValue`,{key:e.key,locale:r}),onKeydown:Ze,onBlur:n[11]||=e=>Z()},null,40,Ie)),[[T,W.value.draft]]):(o(),h(y,{key:1},[m(`span`,{class:`truncate`,title:String(e.values[r]??``)},[g(le,{value:e.values[r],inline:``},null,8,[`value`])],8,Le),e.outdated.includes(r)?(o(),h(`span`,{key:0,class:`ml-auto shrink-0 pl-2 color-warn`,title:_(D)(`history.outdatedHint`)},[...n[16]||=[m(`span`,{class:`i-ph-clock-counter-clockwise-duotone block`},null,-1)]],8,Re)):x(``,!0)],64))],42,Fe))),128))],14,Ae))),128))],16),_(w)&&!V.value.length?(o(),h(`p`,ze,r(_(D)(`keys.empty`)),1)):x(``,!0)],16,Ee),m(`div`,Be,[m(`span`,null,r(_(D)(`keys.helpMove`)),1),_(O)?.capabilities.write?(o(),h(`span`,Ve,r(_(D)(`keys.helpEdit`)),1)):x(``,!0),m(`span`,null,r(_(D)(`keys.helpOpen`)),1),m(`span`,null,r(_(D)(`keys.helpSearch`)),1)])]))}});export{N as default};
|