@x18n/ui 0.0.5 → 0.0.7
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 +15 -6
- package/dist/index.mjs +29 -15
- package/dist/nitro.json +1 -1
- package/dist/public/200.html +1 -1
- package/dist/public/404.html +1 -1
- package/dist/public/_nuxt/02DyCwxD.js +1 -0
- package/dist/public/_nuxt/B-pOeIed.js +1 -0
- package/dist/public/_nuxt/{Df7YC0e0.js → B48W2q7f.js} +1 -1
- package/dist/public/_nuxt/B95Xo308.js +1 -0
- package/dist/public/_nuxt/BEQcjiBv.js +1 -0
- package/dist/public/_nuxt/BLH-zAnn.js +1 -0
- package/dist/public/_nuxt/BQFxnUqO.js +1 -0
- package/dist/public/_nuxt/BQbZdzYt.js +1 -0
- package/dist/public/_nuxt/BWmypMON.js +3 -0
- package/dist/public/_nuxt/{DiDiLO9x.js → BZwyJa72.js} +1 -1
- package/dist/public/_nuxt/Bqlbbq4u.js +1 -0
- package/dist/public/_nuxt/C-7DUGFU.js +1 -0
- package/dist/public/_nuxt/C67ZD0uD.js +1 -0
- package/dist/public/_nuxt/{DqvFL0Kd.js → CEb7njzd.js} +1 -1
- package/dist/public/_nuxt/{Ccxs59XZ.js → CJr8eCPg.js} +1 -1
- package/dist/public/_nuxt/{D1ZHlQ5G.js → CQOvHI-h.js} +1 -1
- package/dist/public/_nuxt/CZm1hx3M.js +1 -0
- package/dist/public/_nuxt/Cbqdjx_Y.js +1 -0
- package/dist/public/_nuxt/CgfzuETb.js +1 -0
- package/dist/public/_nuxt/ChIAts7W.js +1 -0
- package/dist/public/_nuxt/{BQsRGoRo.js → D3K1nMHN.js} +1 -1
- package/dist/public/_nuxt/D7-xsrqe.js +1 -0
- package/dist/public/_nuxt/DBxHLmxb.js +1 -0
- package/dist/public/_nuxt/DQNu8teu.js +1 -0
- package/dist/public/_nuxt/DWpOVjuS.js +1 -0
- package/dist/public/_nuxt/SGqoyjTw.js +1 -0
- package/dist/public/_nuxt/{BL7WZl0t.js → Vq2dNnuk.js} +1 -1
- package/dist/public/_nuxt/Ze5G054N.js +1 -0
- package/dist/public/_nuxt/builds/latest.json +1 -1
- package/dist/public/_nuxt/builds/meta/33bfcf49-6c29-4ff2-8a7c-2676280e43b0.json +1 -0
- package/dist/public/_nuxt/entry.D2md-EYL.css +1 -0
- package/dist/public/_nuxt/n6pi28wD.js +5 -0
- package/dist/public/_nuxt/ztSLDBsK.js +1 -0
- package/dist/public/index.html +1 -1
- package/package.json +4 -4
- package/dist/public/_nuxt/BAuZ_bOg.js +0 -1
- package/dist/public/_nuxt/BDNMzG2s.js +0 -1
- package/dist/public/_nuxt/BF0GwwSj.js +0 -1
- package/dist/public/_nuxt/BOzFHLxb.js +0 -1
- package/dist/public/_nuxt/BPDtdGtS.js +0 -1
- package/dist/public/_nuxt/BhEbR39R.js +0 -1
- package/dist/public/_nuxt/BriO7i_e.js +0 -1
- package/dist/public/_nuxt/Bx_-K8sr.js +0 -1
- package/dist/public/_nuxt/CSj9m9n-.js +0 -1
- package/dist/public/_nuxt/C_0Sx1sV.js +0 -1
- package/dist/public/_nuxt/CiBP4H8h.js +0 -1
- package/dist/public/_nuxt/CleZzkRG.js +0 -1
- package/dist/public/_nuxt/CoPvbHfg.js +0 -1
- package/dist/public/_nuxt/CvZr1WUA.js +0 -1
- package/dist/public/_nuxt/D0iElgch.js +0 -1
- package/dist/public/_nuxt/DCrEftnh.js +0 -1
- package/dist/public/_nuxt/DH5mSOoi.js +0 -1
- package/dist/public/_nuxt/DyY1zKC9.js +0 -5
- package/dist/public/_nuxt/OQ06FBli.js +0 -1
- package/dist/public/_nuxt/UNS2zuJ1.js +0 -1
- package/dist/public/_nuxt/_cWgq-kS.js +0 -1
- package/dist/public/_nuxt/builds/meta/7ac730c1-0d41-432b-b8d2-f847ad2a3472.json +0 -1
- package/dist/public/_nuxt/entry.CI_zWg7k.css +0 -1
- package/dist/public/_nuxt/k4SpML6D.js +0 -1
- package/dist/public/_nuxt/pmF1D2Eh.js +0 -1
- package/dist/public/_nuxt/xKaCciGs.js +0 -1
package/dist/index.d.mts
CHANGED
|
@@ -107,6 +107,16 @@ interface HistoryView {
|
|
|
107
107
|
readonly revision: string | undefined;
|
|
108
108
|
readonly author: string | undefined;
|
|
109
109
|
}
|
|
110
|
+
/** The messages one revision changed. */
|
|
111
|
+
interface ChangeGroup extends HistoryView {
|
|
112
|
+
/** The first keys by name, each with every locale the revision touched. */
|
|
113
|
+
readonly keys: readonly {
|
|
114
|
+
readonly key: KeyString;
|
|
115
|
+
readonly locales: readonly LocaleCode[];
|
|
116
|
+
}[];
|
|
117
|
+
/** How many keys the revision changed in all. */
|
|
118
|
+
readonly total: number;
|
|
119
|
+
}
|
|
110
120
|
interface LocaleSummary {
|
|
111
121
|
readonly code: LocaleCode;
|
|
112
122
|
readonly displayName: string | undefined;
|
|
@@ -142,11 +152,8 @@ interface ProjectSummary {
|
|
|
142
152
|
readonly diagnostics: DiagnosticCounts;
|
|
143
153
|
/** Presets that are listed in the config or detected. */
|
|
144
154
|
readonly presets: readonly string[];
|
|
145
|
-
/** The latest
|
|
146
|
-
readonly changes: readonly
|
|
147
|
-
readonly key: KeyString;
|
|
148
|
-
readonly locale: LocaleCode;
|
|
149
|
-
})[];
|
|
155
|
+
/** The latest revisions in history, local changes first. */
|
|
156
|
+
readonly changes: readonly ChangeGroup[];
|
|
150
157
|
}
|
|
151
158
|
interface ProjectList {
|
|
152
159
|
readonly projects: readonly ProjectSummary[];
|
|
@@ -186,6 +193,8 @@ interface UsageView {
|
|
|
186
193
|
readonly line: number;
|
|
187
194
|
/** 1-based. */
|
|
188
195
|
readonly column: number;
|
|
196
|
+
/** Characters of the key text at `column`, for highlighting. */
|
|
197
|
+
readonly length: number;
|
|
189
198
|
readonly kind: UsageKind;
|
|
190
199
|
readonly dynamic: false | "prefix" | "unknown";
|
|
191
200
|
/** True for prefix usages that may refer to the key. */
|
|
@@ -278,4 +287,4 @@ interface RpcOptions {
|
|
|
278
287
|
/** The x18n UI, RPC functions and MCP tools over loaded projects, as a devframe definition. */
|
|
279
288
|
export declare function createX18nDevframe(projects: readonly UiProject[], options?: RpcOptions): DevframeDefinition;
|
|
280
289
|
//#endregion
|
|
281
|
-
export type { AgentCheckQuery, AgentDeleteQuery, AgentKeysQuery, AgentRenameQuery, AgentSetQuery, AgentUsagesQuery, AnalysisView, ApplyQuery, ApplyView, ChangeView, DiagnosticCounts, ExplainList, ExplainView, ExtractApplyQuery, ExtractPlanItem, ExtractQuery, HistoryView, KeyDetail, KeyQuery, KeyRow, KeyTable, LocaleSummary, MessageView, OpenQuery, PlanQuery, PlanView, ProjectList, ProjectQuery, ProjectSummary, PromptQuery, Snippet, UiEditOp, UiLocation, UiProject, UsageQuery, UsageView, RpcOptions as X18nDevframeOptions, X18nState };
|
|
290
|
+
export type { AgentCheckQuery, AgentDeleteQuery, AgentKeysQuery, AgentRenameQuery, AgentSetQuery, AgentUsagesQuery, AnalysisView, ApplyQuery, ApplyView, ChangeGroup, ChangeView, DiagnosticCounts, ExplainList, ExplainView, ExtractApplyQuery, ExtractPlanItem, ExtractQuery, HistoryView, KeyDetail, KeyQuery, KeyRow, KeyTable, LocaleSummary, MessageView, OpenQuery, PlanQuery, PlanView, ProjectList, ProjectQuery, ProjectSummary, PromptQuery, Snippet, UiEditOp, UiLocation, UiProject, UsageQuery, UsageView, RpcOptions as X18nDevframeOptions, X18nState };
|
package/dist/index.mjs
CHANGED
|
@@ -6,7 +6,7 @@ import { X18nError, createLineIndex, parseMessageBatch, placeholderProblems, ren
|
|
|
6
6
|
import * as v from "valibot";
|
|
7
7
|
//#region package.json
|
|
8
8
|
var name = "@x18n/ui";
|
|
9
|
-
var version = "0.0.
|
|
9
|
+
var version = "0.0.7";
|
|
10
10
|
var description = "x18n UI as a devframe: dev server, static report, in-browser workspace and VS Code panel";
|
|
11
11
|
var homepage = "https://github.com/x18n-dev/x18n#readme";
|
|
12
12
|
//#endregion
|
|
@@ -173,7 +173,32 @@ function outdatedByKey(coverage) {
|
|
|
173
173
|
for (const c of coverage) for (const key of c.outdated) out.set(key, [...out.get(key) ?? [], c.locale]);
|
|
174
174
|
return out;
|
|
175
175
|
}
|
|
176
|
-
const
|
|
176
|
+
const recentRevisions = 8;
|
|
177
|
+
const keysPerRevision = 20;
|
|
178
|
+
/** The latest revisions, each with the keys it changed and the locales of a key merged into one entry. */
|
|
179
|
+
function recentChangeGroups(project) {
|
|
180
|
+
const groups = /* @__PURE__ */ new Map();
|
|
181
|
+
for (const key of project.keys()) for (const locale of project.locales) {
|
|
182
|
+
const change = project.history(key, locale);
|
|
183
|
+
if (!change) continue;
|
|
184
|
+
const id = change.revision ?? "local";
|
|
185
|
+
const group = groups.get(id) ?? {
|
|
186
|
+
updatedAt: change.updatedAt,
|
|
187
|
+
view: historyView(change),
|
|
188
|
+
keys: /* @__PURE__ */ new Map()
|
|
189
|
+
};
|
|
190
|
+
group.keys.set(key, [...group.keys.get(key) ?? [], locale]);
|
|
191
|
+
groups.set(id, group);
|
|
192
|
+
}
|
|
193
|
+
return [...groups.values()].sort((a, b) => b.updatedAt === a.updatedAt ? 0 : b.updatedAt > a.updatedAt ? 1 : -1).slice(0, recentRevisions).map(({ view, keys }) => ({
|
|
194
|
+
...view,
|
|
195
|
+
total: keys.size,
|
|
196
|
+
keys: [...keys].sort(([a], [b]) => a.localeCompare(b)).slice(0, keysPerRevision).map(([key, locales]) => ({
|
|
197
|
+
key,
|
|
198
|
+
locales
|
|
199
|
+
}))
|
|
200
|
+
}));
|
|
201
|
+
}
|
|
177
202
|
function summarize({ name, project }) {
|
|
178
203
|
const analysis = project.analyze();
|
|
179
204
|
const byCode = /* @__PURE__ */ new Map();
|
|
@@ -214,19 +239,7 @@ function summarize({ name, project }) {
|
|
|
214
239
|
byCode: [...byCode.values()].sort((a, b) => b.count - a.count || a.code.localeCompare(b.code))
|
|
215
240
|
},
|
|
216
241
|
presets: project.explain().presets.filter((p) => p.reason === "listed" || p.reason === "detected").map((p) => p.name),
|
|
217
|
-
changes:
|
|
218
|
-
const change = project.history(key, locale);
|
|
219
|
-
return change ? [{
|
|
220
|
-
key,
|
|
221
|
-
locale,
|
|
222
|
-
updatedAt: change.updatedAt,
|
|
223
|
-
view: historyView(change)
|
|
224
|
-
}] : [];
|
|
225
|
-
})).sort((a, b) => b.updatedAt === a.updatedAt ? 0 : b.updatedAt > a.updatedAt ? 1 : -1).slice(0, recentChanges).map(({ key, locale, view }) => ({
|
|
226
|
-
key,
|
|
227
|
-
locale,
|
|
228
|
-
...view
|
|
229
|
-
}))
|
|
242
|
+
changes: recentChangeGroups(project)
|
|
230
243
|
};
|
|
231
244
|
}
|
|
232
245
|
function keyTable({ name, project }) {
|
|
@@ -294,6 +307,7 @@ function usageView(p, usage, possible = false) {
|
|
|
294
307
|
path: usage.path,
|
|
295
308
|
line: position.line + 1,
|
|
296
309
|
column: position.character + 1,
|
|
310
|
+
length: usage.range.end - usage.range.start,
|
|
297
311
|
kind: usage.kind,
|
|
298
312
|
dynamic: usage.dynamic,
|
|
299
313
|
possible,
|
package/dist/nitro.json
CHANGED
package/dist/public/200.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>x18n</title><script type="importmap">{"imports":{"#entry":"/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>x18n</title><script type="importmap">{"imports":{"#entry":"/_nuxt/n6pi28wD.js"}}</script><script>{const p=new URLSearchParams(location.hash.slice(1)),c=p.get('devframe_otp');if(c){sessionStorage.setItem('x18n:otp',c);history.replaceState(null,'',location.pathname+location.search+'#'+(p.get('route')||'/'))}}</script><link rel="stylesheet" href="/_nuxt/entry.D2md-EYL.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/n6pi28wD.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bw3sjlsE.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B4prFwj0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DoHg1T7s.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D4dwYDex.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bqlbbq4u.js"><script type="module" src="/_nuxt/n6pi28wD.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/B48W2q7f.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ChbLIx1c.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.B3F8lAkA.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DWpOVjuS.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/CQOvHI-h.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BO-H0E44.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ChIAts7W.js"><link rel="icon" href="./logo.svg" type="image/svg+xml"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"33bfcf49-6c29-4ff2-8a7c-2676280e43b0",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792557719683,false]</script></body></html>
|
package/dist/public/404.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>x18n</title><script type="importmap">{"imports":{"#entry":"/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>x18n</title><script type="importmap">{"imports":{"#entry":"/_nuxt/n6pi28wD.js"}}</script><script>{const p=new URLSearchParams(location.hash.slice(1)),c=p.get('devframe_otp');if(c){sessionStorage.setItem('x18n:otp',c);history.replaceState(null,'',location.pathname+location.search+'#'+(p.get('route')||'/'))}}</script><link rel="stylesheet" href="/_nuxt/entry.D2md-EYL.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/n6pi28wD.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bw3sjlsE.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B4prFwj0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DoHg1T7s.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D4dwYDex.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bqlbbq4u.js"><script type="module" src="/_nuxt/n6pi28wD.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/B48W2q7f.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ChbLIx1c.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.B3F8lAkA.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DWpOVjuS.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/CQOvHI-h.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BO-H0E44.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ChIAts7W.js"><link rel="icon" href="./logo.svg" type="image/svg+xml"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"33bfcf49-6c29-4ff2-8a7c-2676280e43b0",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792557719684,false]</script></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Et as e,M as t,_ as n,c as r,d as i,it as a,u as o}from"./B4prFwj0.js";import{C as s,S as c,_ as l}from"./Bqlbbq4u.js";var u={class:`inline-flex min-w-0 items-center gap-1.5 text-xs color-muted`},d={key:0},f=[`datetime`,`title`],p=[`title`],m={key:3,class:`truncate`},h=n({__name:`ChangeInfo`,props:{change:{}},setup(n){return(h,g)=>(t(),i(`span`,u,[g[0]||=r(`span`,{class:`i-ph-clock-counter-clockwise-duotone shrink-0`},null,-1),n.change.at===null?(t(),i(`span`,d,e(a(c)(`history.local`)),1)):(t(),i(`time`,{key:1,datetime:new Date(n.change.at).toISOString(),title:new Date(n.change.at).toLocaleString(a(s))},e(a(l)(n.change.at)),9,f)),n.change.revision?(t(),i(`code`,{key:2,class:`font-mono`,title:n.change.revision},e(n.change.revision.slice(0,7)),9,p)):o(``,!0),n.change.author?(t(),i(`span`,m,e(n.change.author),1)):o(``,!0)]))}});export{h as t};
|
|
@@ -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{C as v,S as y,a as b,l as x,n as S,t as C,v as w,y as T}from"./Bqlbbq4u.js";import{i as E,n as D}from"#entry";import{t as O}from"./ztSLDBsK.js";import{t as k}from"./DQNu8teu.js";import{n as A,r as j,t as M}from"./BWmypMON.js";import{t as N}from"./BZwyJa72.js";import{t as P}from"./02DyCwxD.js";var F={class:`inline-flex items-center gap-1 font-mono text-xs color-muted`},I={key:0,class:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-xs`},L={class:`flex items-center gap-1.5 font-mono`},R=c({__name:`ChangedValues`,props:{project:{},keyName:{},locales:{}},setup(e){let s=e,c=g(()=>s.locales??b.value.map(e=>e.code)),v=o();async function x(){v.value=await C.value?.key(s.project,s.keyName)}return(e,o)=>(i(),p(j,{label:f(y)(`history.locales`,{count:c.value.length}),align:`left`,onShow:x},{trigger:r(()=>[n(e.$slots,`default`,{},()=>[l(`span`,F,[c.value.length===1?(i(),u(h,{key:0},[d(D,{code:c.value[0]},null,8,[`code`]),m(t(c.value[0]),1)],64)):(i(),u(h,{key:1},[m(t(f(y)(`history.locales`,{count:c.value.length})),1)],64))])])]),default:r(()=>[v.value?(i(),u(`div`,I,[(i(!0),u(h,null,a(c.value,e=>(i(),u(h,{key:e},[l(`span`,L,[d(D,{code:e},null,8,[`code`]),m(t(e),1)]),d(N,{value:v.value.messages.find(t=>t.locale===e)?.value,placeholders:v.value.messages.find(t=>t.locale===e)?.placeholders??[]},null,8,[`value`,`placeholders`])],64))),128))])):_(``,!0)]),_:3},8,[`label`]))}}),z={class:`flex flex-col gap-1 px-4 py-3`},B={class:`font-mono text-2xl tabular-nums`},V={class:`label`},H=c({__name:`UiStat`,props:{label:{},value:{}},setup(e){return(n,r)=>(i(),u(`div`,z,[l(`span`,B,t(e.value.toLocaleString(f(v))),1),l(`span`,V,t(e.label),1)]))}}),U={class:`grid grid-cols-2 border-b border-base md:grid-cols-4`},W={class:`flex items-center gap-2 font-mono`},G={key:0,class:`badge`},K=[`title`],q={class:`text-xs color-muted tabular-nums`},J={key:0,class:`color-warn`},Y={class:`flex w-12 shrink-0 justify-center`},X={class:`grid md:grid-cols-2`},Z={class:`font-mono text-xs color-error tabular-nums`},Q={class:`font-mono text-xs color-warn tabular-nums`},$={key:0,class:`px-4 py-3 color-muted`},ee={class:`flex-auto font-mono text-xs`},te={class:`font-mono tabular-nums`},ne={class:`flex flex-wrap gap-1 px-4 py-3`},re={key:0,class:`color-muted`},ie={class:`flex flex-wrap gap-1 px-4 py-3`},ae={key:0,class:`color-muted`},oe=[`aria-expanded`,`onClick`],se=[`title`],ce={key:0,class:`border-t border-base`},le={class:`truncate font-mono text-xs`},ue={key:0,class:`py-1.5 pl-10 pr-4 text-xs color-muted`},de=c({__name:`index`,setup(n){function c(e){return e.total===0?0:e.outdated/e.total*100}let v=o(new Set);function C(e,t){return t===0!==v.value.has(e.revision??`local`)}function j(e){let t=e.revision??`local`,n=new Set(v.value);n.delete(t)||n.add(t),v.value=n}let N=g(()=>(S.value?.locales??[]).filter(e=>e.code!==S.value?.sourceLocale)),F=g(()=>N.value.filter(e=>e.missing+e.empty+e.outdated>0)),I=g(()=>S.value&&[{label:y(`overview.keys`),value:S.value.keys,to:`/keys`},{label:y(`overview.resources`),value:S.value.resources,to:`/project`},{label:y(`overview.usages`),value:S.value.usages,to:`/usages`},{label:y(`overview.locales`),value:S.value.locales.length,to:`/keys`}]);return(n,o)=>f(S)?(i(),p(O,{key:0},{default:r(()=>[l(`div`,U,[(i(!0),u(h,null,a(I.value,e=>(i(),p(f(E),{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(H,{label:e.label,value:e.value},null,8,[`label`,`value`])]),_:2},1032,[`to`]))),128))]),d(k,{index:`01`,title:f(y)(`overview.coverage`)},{aside:r(()=>[o[0]||=l(`span`,{class:`flex-auto`},null,-1),N.value.length?(i(),p(A,{key:0,text:f(M)((F.value.length?F.value:N.value).map(e=>({locale:e.code,stale:e.outdated>0}))),label:f(y)(`prompt.copyAll`),hint:f(y)(`prompt.allHint`)},null,8,[`text`,`label`,`hint`])):_(``,!0)]),default:r(()=>[(i(!0),u(h,null,a(f(b),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(E),{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`,W,[d(D,{code:n.code},null,8,[`code`]),m(` `+t(n.code)+` `,1),n.code===f(S).sourceLocale?(i(),u(`span`,G,t(f(y)(`overview.source`)),1)):_(``,!0)]),l(`span`,{class:`h-1.5 flex border border-strong`,title:f(T)(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,K),l(`span`,{class:e([`text-right font-mono tabular-nums`,n.percent>=100&&`color-ok`])},t(f(w)(n.percent)),3),l(`span`,q,[m(t(f(y)(`overview.missing`,{missing:n.missing,empty:n.empty}))+` `,1),n.outdated?(i(),u(`span`,J,`· `+t(f(y)(`overview.outdated`,{count:n.outdated})),1)):_(``,!0)])]),_:2},1032,[`to`]),l(`span`,Y,[n.code===f(S).sourceLocale?_(``,!0):(i(),p(A,{key:0,text:f(M)([{locale:n.code,stale:n.outdated>0}]),label:n.outdated?f(y)(`prompt.copyStale`):f(y)(`prompt.copy`),hint:n.outdated?f(y)(`prompt.staleHint`):f(y)(`prompt.hint`)},null,8,[`text`,`label`,`hint`]))])]))),128))]),_:1},8,[`title`]),l(`div`,X,[d(k,{index:`02`,title:f(y)(`overview.diagnostics`),class:`md:border-r`},{aside:r(()=>[o[1]||=l(`span`,{class:`flex-auto`},null,-1),l(`span`,Z,t(f(y)(`overview.errors`,{count:f(S).diagnostics.errors})),1),l(`span`,Q,t(f(y)(`overview.warnings`,{count:f(S).diagnostics.warnings})),1)]),default:r(()=>[f(S).diagnostics.byCode.length?_(``,!0):(i(),u(`p`,$,t(f(y)(`overview.clean`)),1)),(i(!0),u(h,null,a(f(S).diagnostics.byCode,n=>(i(),u(`div`,{key:n.code,class:`flex items-center gap-2 px-4 py-1.5`},[l(`span`,{class:e(n.severity===`error`?`i-ph-x-circle-duotone color-error`:`i-ph-warning-duotone color-warn`)},null,2),l(`span`,ee,t(n.code),1),l(`span`,te,t(n.count),1)]))),128))]),_:1},8,[`title`]),l(`div`,null,[d(k,{index:`03`,title:f(y)(`overview.presets`)},{default:r(()=>[l(`div`,ne,[(i(!0),u(h,null,a(f(S).presets,e=>(i(),u(`span`,{key:e,class:`border border-strong px-1.5 font-mono text-xs`},t(e),1))),128)),f(S).presets.length?_(``,!0):(i(),u(`span`,re,t(f(y)(`overview.noPresets`)),1))])]),_:1},8,[`title`]),d(k,{index:`04`,title:f(y)(`overview.recent`)},{default:r(()=>[l(`div`,ie,[(i(!0),u(h,null,a(f(x),e=>(i(),p(R,{key:e,project:f(S).name,"key-name":e},{default:r(()=>[d(f(E),{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(x).length?_(``,!0):(i(),u(`span`,ae,t(f(y)(`overview.noRecent`)),1))])]),_:1},8,[`title`])])]),f(S).changes.length?(i(),p(k,{key:0,index:`05`,title:f(y)(`history.title`)},{default:r(()=>[(i(!0),u(h,null,a(f(S).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":C(n,s),onClick:e=>j(n)},[l(`span`,{class:e([`i-ph-caret-right-duotone shrink-0 transition-transform`,C(n,s)&&`rotate-90`])},null,2),d(P,{change:n},null,8,[`change`]),o[2]||=l(`span`,{class:`flex-auto`},null,-1),l(`span`,{class:`badge`,title:f(y)(`overview.keys`)},t(n.total),9,se)],8,oe),C(n,s)?(i(),u(`div`,ce,[(i(!0),u(h,null,a(n.keys,e=>(i(),p(f(E),{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`,le,t(e.key),1),d(R,{project:f(S).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`,ue,t(f(y)(`history.more`,{count:n.total-n.keys.length})),1)):_(``,!0)])):_(``,!0)]))),128))]),_:1},8,[`title`])):_(``,!0)]),_:1})):_(``,!0)}});export{de as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{r as e}from"#entry";var t=Symbol.for(`devframe:browser-agent-registry`),{tools:n,listeners:r}=globalThis[t]??={tools:new Map,listeners:new Set};function i(){return[...n.values()]}function a(e){return r.add(e),()=>r.delete(e)}var o=`devframe:client-id`,s;function c(t=globalThis.window){try{let n=t?.sessionStorage;if(n){let t=n.getItem(o);return t||(t=e(),n.setItem(o,t)),t}}catch{}return s??=e(),s}function l(e){e.client.register({name:`devframe:agent:invoke-client-tool`,type:`action`,jsonSerializable:!0,handler:async(e,t)=>{let n=i().find(t=>t.id===e);if(!n)throw Error(`[devframe/agent] browser tool "${e}" not found`);return await n.invoke(t)}});let t=!1,n=!1,r=0,o=()=>{t||n||(t=!0,queueMicrotask(async()=>{if(t=!1,n)return;let a=i().map(({invoke:e,...t})=>t);(a.length!==0||r!==0)&&(r=a.length,await e.callOptional(`devframe:agent:sync-client-tools`,c(),a).catch(()=>{}))}))},s=a(o),l=e.events.on(`connection:status`,e=>{e===`connected`&&o()});return o(),()=>{n=!0,s(),l()}}export{l as setupBrowserAgentRpcBridge};
|
|
@@ -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`},extract:{apply:`Extraire ({count})`,done:`Clés extraites\xA0: {count}. Fichiers modifiés\xA0: {files}.`,hint:`Chaînes codées en dur avec une clé proposée. Modifiez les clés, décochez les chaînes à ignorer, puis appliquez.`,key:`Clé`,none:`Aucune chaîne codée en dur trouvée.`,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`},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`}};export{e as default};
|
|
@@ -0,0 +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"./Bqlbbq4u.js";import{n as d,r as f}from"./SGqoyjTw.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:"`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:`このまま保存`},extract:{apply:`抽出 ({count})`,done:`抽出したキー: {count}。変更したファイル: {files}。`,hint:`ハードコードされた文字列と提案キーの一覧です。キーを編集し、スキップする文字列のチェックを外してから適用してください。`,key:`キー`,none:`ハードコードされた文字列は見つかりませんでした。`,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:`すべてのプリセットを表示`},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} ロケール`}};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:`仍要儲存`},extract:{apply:`擷取({count})`,done:`已擷取鍵:{count}。已變更檔案:{files}。`,hint:`已附建議鍵的寫死字串。可編輯鍵、取消勾選要略過的字串,然後套用。`,key:`鍵`,none:`找不到寫死的字串。`,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:`顯示所有預設`},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} 種語言`}};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`},extract:{apply:`Extraer ({count})`,done:`Claves extraídas: {count}. Archivos modificados: {files}.`,hint:`Cadenas fijas en el código con una clave propuesta. Edita las claves, desmarca las cadenas que quieras omitir y aplica.`,key:`Clave`,none:`No se encontraron cadenas fijas en el código.`,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`},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`}};export{e as default};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{B as e,Ct as t,Et as n,F as r,H as i,M as a,Q as o,_ as s,c,d as l,it as u,l as d,u as f,z as p}from"./B4prFwj0.js";import{s as m}from"./DoHg1T7s.js";import{S as h,T as g,c as _,s as v,t as y}from"./Bqlbbq4u.js";var b=[`aria-label`,`aria-expanded`],x={class:`border border-strong bg-base p-2 shadow-lg`},S=s({__name:`InfoPop`,props:{icon:{},label:{},align:{default:`right`},pinnable:{type:Boolean,default:!0}},emits:[`show`,`click`],setup(n,{emit:i}){let s=i,u=p(`root`),d=o(!1),h=o(!1);g(u,()=>h.value=!1),e(()=>d.value||h.value,e=>{e&&s(`show`)});function _(){n.pinnable?h.value=!h.value:s(`click`)}return(e,i)=>(a(),l(`span`,{ref_key:`root`,ref:u,class:`relative inline-flex`,onMouseenter:i[2]||=e=>d.value=!0,onMouseleave:i[3]||=e=>d.value=!1,onKeydown:i[4]||=m(e=>h.value=!1,[`escape`])},[r(e.$slots,`trigger`,{},()=>[c(`button`,{type:`button`,class:t([`btn-icon h-6 w-6 text-sm`,h.value&&`bg-hover color-base`]),"aria-label":n.label,"aria-expanded":d.value||h.value,onClick:_,onFocus:i[0]||=e=>d.value=!0,onBlur:i[1]||=e=>d.value=!1},[c(`span`,{class:t(n.icon)},null,2)],42,b)]),d.value||h.value?(a(),l(`div`,{key:0,class:t([`absolute top-full z-10 w-max max-w-96 pt-1`,n.align===`left`?`left-0`:`right-0`]),role:`tooltip`},[c(`div`,x,[r(e.$slots,`default`)])],2)):f(``,!0)],544))}}),C={class:`grid w-80 gap-2`},w={class:`text-xs font-medium`},T={class:`text-xs color-muted`},E={class:`max-h-64 of-auto whitespace-pre-wrap break-words border border-base p-2 font-mono text-[11px] leading-4`},D=s({__name:`CopyPrompt`,props:{text:{},label:{},hint:{}},setup(e){let t=e,r=o(!1);async function s(){await navigator.clipboard.writeText(t.text),r.value=!0,setTimeout(()=>r.value=!1,1500)}return(t,o)=>u(y)?.capabilities.prompts?(a(),d(S,{key:0,icon:r.value?`i-ph-check-duotone`:`i-ph-sparkle-duotone`,label:e.label,pinnable:!1,onClick:s},{default:i(()=>[c(`div`,C,[c(`span`,w,n(r.value?u(h)(`prompt.copied`):e.label),1),c(`p`,T,n(e.hint),1),c(`pre`,E,n(e.text),1)])]),_:1},8,[`icon`,`label`])):f(``,!0)}});function O(e){let t=(v.value?.projects.length??0)>1?_.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
|
+
`)}export{D as n,S as r,O as t};
|
|
@@ -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"./Bqlbbq4u.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:`border-b border-current font-mono color-info`,"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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{B as e,E as t,K as n,Q as r,V as i,W as a,Y as o,Z as s,et as c,it as l,j as u,nt as d,rt as f,s as p,tt as m,v as h}from"./B4prFwj0.js";var g=`modulepreload`,ee=function(e,t){return new URL(e,t).href},_={},v=function(e){return e.pathname.endsWith(`.css`)},y=function(e,t,n){if(t in e)return e[t];let r=n();if(!r){e[t]=void 0;return}let i=r.then(()=>{e[t]=void 0},n=>{throw e[t]=void 0,n});return e[t]=i,i},b=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=ee(t,n);let r=s(t),i=v(r);return y(_,r.href,()=>{if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let t=document.createElement(`link`);if(t.rel=i?`stylesheet`:g,i||(t.as=`script`),t.crossOrigin=``,t.href=r.href,a&&t.setAttribute(`nonce`,a),document.head.appendChild(t),i)return new Promise((e,n)=>{t.addEventListener(`load`,e),t.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${r}`)))})})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};function x(e,t){return n()?(o(e,t),!0):!1}var S=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var C=Object.prototype.toString,te=e=>C.call(e)===`[object Object]`,w=()=>{},T=E();function E(){var e,t;return S&&!!((e=window)!=null&&(e=e.navigator)!=null&&e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window)==null||(t=t.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window?.navigator.userAgent))}function ne(...e){if(e.length!==1)return d(...e);let t=e[0];return typeof t==`function`?s(a(()=>({get:t,set:w}))):r(t)}function re(e,t){function n(...n){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(r).catch(i)})}return`cancel`in e&&Object.assign(n,{cancel:e.cancel,flush:e.flush,isPending:e.isPending}),n}var D=e=>e();function ie(e=D,t={}){let{initialState:n=`active`}=t,r=ne(n===`active`);function i(){r.value=!1}function a(){r.value=!0}return{isActive:c(r),pause:i,resume:a,eventFilter:(...t)=>{r.value&&e(...t)}}}function O(e){return Array.isArray(e)?e:[e]}function ae(e){return e||h()}function oe(t,n,r={}){let{eventFilter:i=D,...a}=r;return e(t,re(i,n),a)}function se(e,t,n={}){let{eventFilter:r,initialState:i=`active`,...a}=n,{eventFilter:o,pause:s,resume:c,isActive:l}=ie(r,{initialState:i});return{stop:oe(e,t,{...a,eventFilter:o}),pause:s,resume:c,isActive:l}}function k(e,n=!0,r){ae(r)?u(e,r):n?e():t(e)}function ce(t,n,r){return e(t,n,{...r,immediate:!0})}var A=S?window:void 0;S&&window.document,S&&window.navigator,S&&window.location;function j(e){let t=f(e);return t?.$el??t}function M(...e){let t=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),n=p(()=>{let t=O(f(e[0])).filter(e=>e!=null);return t.every(e=>typeof e!=`string`)?t:void 0});return ce(()=>[n.value?.map(e=>j(e))??[A].filter(e=>e!=null),O(f(n.value?e[1]:e[0])),O(l(n.value?e[2]:e[1])),f(n.value?e[3]:e[2])],([e,n,r,i],a,o)=>{if(!e?.length||!n?.length||!r?.length)return;let s=te(i)?{...i}:i,c=e.flatMap(e=>n.flatMap(n=>r.map(r=>t(e,n,r,s))));o(()=>{c.forEach(e=>e())})},{flush:`post`})}var N=!1;function le(e,t,n={}){let{window:r=A,ignore:i=[],capture:a=!0,detectIframe:o=!1,controls:s=!1}=n;if(!r)return s?{stop:w,cancel:w,trigger:w}:w;if(T&&!N){N=!0;let e={passive:!0};Array.from(r.document.body.children).forEach(t=>t.addEventListener(`click`,w,e)),r.document.documentElement.addEventListener(`click`,w,e)}let c=!0,l=e=>f(i).some(t=>{if(typeof t==`string`)return Array.from(r.document.querySelectorAll(t)).some(t=>t===e.target||e.composedPath().includes(t));{let n=j(t);return n&&(e.target===n||e.composedPath().includes(n))}});function u(e){let t=f(e);return t&&t.$.subTree.shapeFlag===16}function d(e,t){let n=f(e),r=n.$.subTree&&n.$.subTree.children;return r==null||!Array.isArray(r)?!1:r.some(e=>e.el===t.target||t.composedPath().includes(e.el))}let p=n=>{let r=j(e);n.target!=null&&(!(r instanceof Element)&&u(e)&&d(e,n)||r&&r!==n.target&&!n.composedPath().includes(r)&&(`detail`in n&&n.detail===0&&(c=!l(n)),c?t(n):c=!0))},m=!1,h=[M(r,`click`,e=>{m||(m=!0,setTimeout(()=>{m=!1},0),p(e))},{passive:!0,capture:a}),M(r,`pointerdown`,t=>{let n=j(e);c=!l(t)&&!(!n||t.composedPath().includes(n))},{passive:!0}),o&&M(r,`blur`,n=>{setTimeout(()=>{let i=j(e),a=r.document.activeElement;for(;a?.shadowRoot;)a=a.shadowRoot.activeElement;a?.tagName===`IFRAME`&&!i?.contains(r.document.activeElement)&&t(n)},0)},{passive:!0})].filter(Boolean),g=()=>h.forEach(e=>e());return s?{stop:g,cancel:()=>{c=!1},trigger:e=>{c=!0,p(e),c=!1}}:g}function ue(){let e=m(!1),t=h();return t&&u(()=>{e.value=!0},t),e}function de(e){let t=ue();return p(()=>(t.value,!!e()))}var P=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{},F=`__vueuse_ssr_handlers__`,fe=pe();function pe(){return F in P||(P[F]=P[F]||{}),P[F]}function me(e,t){return fe[e]||t}function he(e){return e==null?`any`:e instanceof Set?`set`:e instanceof Map?`map`:e instanceof Date?`date`:typeof e==`boolean`?`boolean`:typeof e==`string`?`string`:typeof e==`object`?`object`:Number.isNaN(e)?`any`:`number`}var ge={boolean:{read:e=>e===`true`,write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},I=`vueuse-storage`;function _e(n,i,a,o={}){let{flush:s=`pre`,deep:c=!0,listenToStorageChanges:l=!0,writeDefaults:u=!0,mergeDefaults:d=!1,shallow:h,window:g=A,eventFilter:ee,onError:_=e=>{console.error(e)},initOnMounted:v}=o,y=(h?m:r)(typeof i==`function`?i():i),b=p(()=>f(n));if(!a)try{a=me(`getDefaultStorage`,()=>A?.localStorage)()}catch(e){_(e)}if(!a)return y;let x=f(i),S=he(x),C=o.serializer??ge[S],{pause:te,resume:w}=se(y,e=>ne(e),{flush:s,deep:c,eventFilter:ee});e(b,()=>D(),{flush:s});let T=!1;g&&l&&(a instanceof Storage?M(g,`storage`,e=>{(!v||T)&&D(e)},{passive:!0}):M(g,I,e=>{(!v||T)&&ie(e)})),v?k(()=>{T=!0,D()}):D();function E(e,t){if(g){let n={key:b.value,oldValue:e,newValue:t,storageArea:a};g.dispatchEvent(a instanceof Storage?new StorageEvent(`storage`,n):new CustomEvent(I,{detail:n}))}}function ne(e){try{let t=a.getItem(b.value);if(e==null)E(t,null),a.removeItem(b.value);else{let n=C.write(e);t!==n&&(a.setItem(b.value,n),E(t,n))}}catch(e){_(e)}}function re(e){let t=e?e.newValue:a.getItem(b.value);if(t==null)return u&&x!=null&&a.setItem(b.value,C.write(x)),x;if(!e&&d){let e=C.read(t);return typeof d==`function`?d(e,x):S===`object`&&!Array.isArray(e)?{...x,...e}:e}return typeof t==`string`?C.read(t):t}function D(e){if(!(e&&e.storageArea!==a)){if(e&&e.key==null)y.value=x;else if(!(e&&e.key!==b.value)){te();try{let t=C.write(y.value);(e===void 0||e?.newValue!==t)&&(y.value=re(e))}catch(e){_(e)}finally{e?t(w):w()}}}}function ie(e){D(e.detail)}return y}function ve(t,n,r={}){let{window:i=A,...a}=r,o,s=de(()=>i&&`ResizeObserver`in i),c=()=>{o&&=(o.disconnect(),void 0)},l=p(()=>{let e=f(t);return Array.isArray(e)?e.map(e=>j(e)):[j(e)]}),u=e(l,e=>{if(c(),s.value&&i){o=new ResizeObserver(n);for(let t of e)t instanceof Element&&o.observe(t,a)}},{immediate:!0,flush:`post`}),d=()=>{c(),u()};return x(d),{isSupported:s,stop:d}}function ye(t,n={width:0,height:0},r={}){let{window:i=A,box:a=`content-box`}=r,o=p(()=>{var e;return(e=j(t))==null||(e=e.namespaceURI)==null?void 0:e.includes(`svg`)}),s=m(n.width),c=m(n.height),{stop:l}=ve(t,([e])=>{let n=a===`border-box`?e.borderBoxSize:a===`content-box`?e.contentBoxSize:e.devicePixelContentBoxSize;if(i&&o.value){let e=j(t);if(e){let t=e.getBoundingClientRect();s.value=t.width,c.value=t.height}}else if(n){let e=O(n);s.value=e.reduce((e,{inlineSize:t})=>e+t,0),c.value=e.reduce((e,{blockSize:t})=>e+t,0)}else s.value=e.contentRect.width,c.value=e.contentRect.height},r);k(()=>{let e=j(t);if(e&&`offsetWidth`in e){if(a===`content-box`&&i){let t=i.getComputedStyle(e),n=Number.parseFloat(t.paddingLeft)+Number.parseFloat(t.paddingRight),r=Number.parseFloat(t.paddingTop)+Number.parseFloat(t.paddingBottom),a=Number.parseFloat(t.borderLeftWidth)+Number.parseFloat(t.borderRightWidth),o=Number.parseFloat(t.borderTopWidth)+Number.parseFloat(t.borderBottomWidth);s.value=e.offsetWidth-n-a,c.value=e.offsetHeight-r-o}else s.value=e.offsetWidth,c.value=e.offsetHeight}else e&&(s.value=n.width,c.value=n.height)});let u=e(()=>j(t),e=>{s.value=e?n.width:0,c.value=e?n.height:0});function d(){l(),u()}return{width:s,height:c,stop:d}}function L(e,t,n={}){let{window:r=A}=n;return _e(e,t,r?.localStorage,n)}function be(e,t){let{containerStyle:n,wrapperProps:r,scrollTo:i,calculateRange:a,currentList:o,containerRef:s}=`itemHeight`in t?Te(t,e):we(t,e);return{list:o,scrollTo:i,containerProps:{ref:s,onScroll:()=>{a()},style:n},wrapperProps:r}}function R(e){let t=m(null),n=ye(t),i=r([]),a=m(e);return{state:r({start:0,end:10}),source:a,currentList:i,size:n,containerRef:t}}function z(e,t,n){return r=>{if(typeof n==`number`)return Math.ceil(r/n);let{start:i=0}=e.value,a=0,o=0;for(let e=i;e<t.value.length;e++){let t=n(e);if(a+=t,o=e,a>r)break}return o-i}}function B(e,t){return n=>{if(typeof t==`number`)return Math.floor(n/t)+1;let r=0,i=0;for(let a=0;a<e.value.length;a++){let e=t(a);if(r+=e,r>=n){i=a;break}}return i+1}}function V(e,t,n,r,{containerRef:i,state:a,currentList:o,source:s}){return()=>{let c=i.value;if(c){let i=n(e===`vertical`?c.scrollTop:c.scrollLeft),l=r(e===`vertical`?c.clientHeight:c.clientWidth),u=i-t,d=i+l+t;a.value={start:u<0?0:u,end:d>s.value.length?s.value.length:d},o.value=s.value.slice(a.value.start,a.value.end).map((e,t)=>({data:e,index:t+a.value.start}))}}}function H(e,t){return n=>typeof e==`number`?n*e:t.value.slice(0,n).reduce((t,n,r)=>t+e(r),0)}function U(t,n,r,i,a){e([t.width,t.height,n,r,i],()=>{a()})}function W(e,t){return p(()=>typeof e==`number`?t.value.length*e:t.value.reduce((t,n,r)=>t+e(r),0))}var xe={horizontal:`scrollLeft`,vertical:`scrollTop`},Se={horizontal:`left`,vertical:`top`},G={behavior:`auto`,block:`start`,inline:`nearest`};function Ce(e,t,n,r,i){return(a,o=G)=>{if(!r.value)return;o={...G,...o};let s=0,c=o[e===`horizontal`?`inline`:`block`];if(c){let t=e===`horizontal`?r.value.clientWidth:r.value.clientHeight,o=typeof i==`number`?i:i(a);if(c===`center`)s=t/2-o/2;else if(c===`end`)s=t-o;else if(c===`nearest`){let i=r.value[xe[e]];n(a)>i+t/2&&(s=t-o)}}r.value.scrollTo({[Se[e]]:n(a)-s,behavior:o.behavior}),t()}}function we(e,t){let n=R(t),{state:r,source:i,currentList:a,size:o,containerRef:s}=n,c={overflowX:`auto`},{itemWidth:l,overscan:u=5}=e,d=z(r,i,l),f=V(`horizontal`,u,B(i,l),d,n),m=H(l,i),h=p(()=>m(r.value.start)),g=W(l,i);return U(o,i,g,s,f),{scrollTo:Ce(`horizontal`,f,m,s,l),calculateRange:f,wrapperProps:p(()=>({style:{height:`100%`,width:`${g.value-h.value}px`,marginLeft:`${h.value}px`,display:`flex`}})),containerStyle:c,currentList:a,containerRef:s}}function Te(e,t){let n=R(t),{state:r,source:i,currentList:a,size:o,containerRef:s}=n,c={overflowY:`auto`},{itemHeight:l,overscan:u=5}=e,d=z(r,i,l),f=V(`vertical`,u,B(i,l),d,n),m=H(l,i),h=p(()=>m(r.value.start)),g=W(l,i);return U(o,i,g,s,f),{calculateRange:f,scrollTo:Ce(`vertical`,f,m,s,l),containerStyle:c,wrapperProps:p(()=>({style:{width:`100%`,height:`${g.value-h.value}px`,marginTop:`${h.value}px`}})),currentList:a,containerRef:s}}var Ee={app:{name:`x18n`,loading:`Loading the project…`,error:`Could not connect: {message}`,project:`Project`,static:`Read-only report`,staticHint:"A snapshot built with `x18n build`. Run `x18n ui` to edit.",language:`Language`},auth:{label:`Authentication`,title:`Connect to x18n`,hint:"Enter the 6-digit code that `x18n ui` printed in the terminal.",code:`Auth code`,submit:`Connect`,rejected:`That code did not work. Check the terminal for the current one.`},nav:{overview:`Overview`,keys:`Keys`,usages:`Usages`,extract:`Extract`,project:`Project`},localeBar:{title:`Locales`,bar:`Locales to show`,toggle:`Show or hide {locale}`,shown:`{shown} of {total} shown`,showAll:`Show all`,noneShown:`Every locale is hidden. Pick one in the bar above.`,resetOrder:`Reset order`,flags:`Show flags`,reorder:`Drag, or press Alt and an arrow key, to reorder.`},overview:{keys:`Keys`,resources:`Resources`,usages:`Usages`,locales:`Locales`,coverage:`Coverage`,source:`source`,missing:`{missing} missing, {empty} empty`,diagnostics:`Diagnostics`,errors:`Errors: {count}`,warnings:`Warnings: {count}`,clean:`No problems found.`,presets:`Presets`,noPresets:`No preset detected.`,recent:`Recent changes`,noRecent:`Nothing changed since the page opened.`,outdated:`{count} outdated`},keys:{search:`Search keys and values`,namespace:`Namespace`,allNamespaces:`All namespaces`,missingIn:`Missing in`,anyLocale:`Any locale`,missingInLocale:`Missing in {locale}`,unused:`Unused`,withDiagnostics:`With problems`,count:`{shown} of {total} keys`,grid:`Keys and values per locale`,key:`Key`,unusedHint:`No code uses this key`,diagnosticsHint:`Problems on this key`,editValue:`Value of {key} in {locale}`,empty:`No keys match.`,helpMove:`Arrows or j/k to move`,helpEdit:`Enter to edit, Esc to cancel`,helpOpen:`o to open the key`,helpSearch:`/ to search`,outdated:`Outdated`,sort:`Sort`,sortKey:`Key`,sortRecent:`Recently changed`},value:{missing:`missing`,empty:`empty`},edit:{rejected:`Not saved: {key} in {locale}: {message}.`,placeholdersMissing:`missing placeholders {names}`,placeholdersExtra:`unexpected placeholders {names}`,saveAnyway:`Save anyway`,dismiss:`Dismiss`},detail:{label:`Key`,back:`Back to keys`,notFound:`This key is not defined.`,values:`Values`,edit:`Edit`,diagnostics:`Problems`,usages:`Usages ({count})`,noUsages:`No code uses this key.`,possible:`possible`,openInEditor:`Open in editor`,showAllLocales:`Show all locales`,file:`File`},prompt:{copy:`Copy translate prompt`,copied:`Copied`,hint:`Copy a prompt for an LLM or agent that translates the missing messages`,copyStale:`Copy prompt with outdated`,staleHint:`Copy a prompt for an LLM or agent that translates the missing messages and updates the outdated ones`,copyAll:`Copy translate prompt for all locales`,allHint:`Copy a prompt for an LLM or agent that translates what is missing in every locale`},locale:{label:`Locale`,openInGrid:`Show in the grid`,progress:`{translated} of {total} translated ({percent})`,missing:`Missing ({count})`,empty:`Empty ({count})`,problems:`Placeholder and syntax problems ({count})`,notFound:`This project has no such locale.`,complete:`Every key is translated.`,outdated:`Outdated ({count})`},usages:{missing:`Not defined ({count})`,unused:`Unused ({count})`,dynamic:`Dynamic ({count})`,all:`All ({count})`,missingHint:`Keys used in code but not defined in the source locale.`,unusedHint:`Keys defined in the source locale that no code uses.`,dynamicHint:`Usages with a computed key. Keys under their prefix count as used.`,filter:`Filter by file or key`},extract:{hint:`Hard-coded strings with a proposed key. Edit keys, untick strings to skip, then apply.`,none:`No hard-coded strings found.`,key:`Key`,apply:`Extract ({count})`,done:`Extracted keys: {count}. Changed files: {files}.`,strings:`Strings: {count}`},project:{presets:`Presets`,finders:`Locale finders`,resources:`Resources: {count}`,formats:`Formats`,scanners:`Scanners`,files:`Files: {count}`,problems:`Problems`,conflict:`.{extension}: {winner} wins over {loser}`,config:`Config and where each value comes from`,showAllPresets:`Show all presets`},history:{title:`History`,local:`changed locally`,outdated:`outdated`,outdatedHint:`The source message changed after this translation`,sourceThen:`Source then`,sourceNow:`Source now`,more:`and {count} more`,locales:`{count} locales`}};function K(e,t=``,n=new Map){for(let[r,i]of Object.entries(e))typeof i==`string`?n.set(`${t}${r}`,i):K(i,`${t}${r}.`,n);return n}var De=[`en`,`zh-Hans`,`zh-Hant`,`ja`,`ko`,`de`,`fr`,`es`,`pt-BR`,`ru`],Oe=Object.assign({"./locales/de.json":()=>b(()=>import(`./DBxHLmxb.js`).then(e=>e.default),[],import.meta.url),"./locales/es.json":()=>b(()=>import(`./BQbZdzYt.js`).then(e=>e.default),[],import.meta.url),"./locales/fr.json":()=>b(()=>import(`./B95Xo308.js`).then(e=>e.default),[],import.meta.url),"./locales/ja.json":()=>b(()=>import(`./BLH-zAnn.js`).then(e=>e.default),[],import.meta.url),"./locales/ko.json":()=>b(()=>import(`./C-7DUGFU.js`).then(e=>e.default),[],import.meta.url),"./locales/pt-BR.json":()=>b(()=>import(`./Cbqdjx_Y.js`).then(e=>e.default),[],import.meta.url),"./locales/ru.json":()=>b(()=>import(`./CZm1hx3M.js`).then(e=>e.default),[],import.meta.url),"./locales/zh-Hans.json":()=>b(()=>import(`./CgfzuETb.js`).then(e=>e.default),[],import.meta.url),"./locales/zh-Hant.json":()=>b(()=>import(`./BQFxnUqO.js`).then(e=>e.default),[],import.meta.url)}),q=K(Ee),ke=`x18n:lang`,J=r(`en`),Ae=m(q);function je(e){let t;try{t=new Intl.Locale(e).maximize()}catch{return}return t.language===`zh`?t.script===`Hant`?`zh-Hant`:`zh-Hans`:t.language===`pt`?`pt-BR`:De.find(e=>e===t.language)}function Me(e){return new Intl.DisplayNames([e],{type:`language`}).of(e)??e}function Ne(){J.value=[new URLSearchParams(location.search).get(`lang`),localStorage.getItem(ke),...navigator.languages].map(e=>e?je(e):void 0).find(e=>e!==void 0)??`en`,i(async()=>{let e=J.value;document.documentElement.lang=e;let t=e===`en`?void 0:await Oe[`./locales/${e}.json`]?.();e===J.value&&(Ae.value=t?K(t):q)})}function Pe(e){J.value=e,localStorage.setItem(ke,e)}function Fe(e,t={}){return(Ae.value.get(e)??q.get(e)??e).replace(/\{(\w+)\}/g,(e,n)=>{let r=t[n];return r===void 0?e:typeof r==`number`?r.toLocaleString(J.value):r})}function Ie(e){return(e/100).toLocaleString(J.value,{style:`percent`,maximumFractionDigits:1})}function Le(e){try{return new Intl.DisplayNames([J.value],{type:`language`}).of(e)}catch{return}}var Re=[[`year`,31536e6],[`month`,2592e6],[`week`,6048e5],[`day`,864e5],[`hour`,36e5],[`minute`,6e4]];function ze(e){let t=e-Date.now(),[n,r]=Re.find(([,e])=>Math.abs(t)>=e)??[`second`,1e3];return new Intl.RelativeTimeFormat(J.value,{numeric:`auto`}).format(Math.round(t/r),n)}var Be=m(),Ve=m(),Y=r(),He=r(0),Ue=m([]),We=p(()=>Ve.value?.projects.find(e=>e.name===Y.value)),X=L(`x18n:locale-order`,{}),Z=p(()=>{let e=We.value;if(!e)return[];let t=[...e.locales.filter(t=>t.code===e.sourceLocale),...e.locales.filter(t=>t.code!==e.sourceLocale)],n=X.value[e.name]??[],r=e=>{let t=n.indexOf(e);return t===-1?n.length:t};return t.map((e,t)=>({locale:e,i:t})).sort((e,t)=>r(e.locale.code)-r(t.locale.code)||e.i-t.i).map(({locale:e})=>e)}),Ge=p(()=>!!X.value[Y.value??``]);function Ke(e,t){let n=Y.value;if(!n)return;let r=Z.value.map(e=>e.code).filter(t=>t!==e);r.splice(Math.max(0,Math.min(t,r.length)),0,e),X.value={...X.value,[n]:r}}function qe(){let{[Y.value??``]:e,...t}=X.value;X.value=t}var Q=L(`x18n:hidden-locales`,{}),$=p(()=>new Set(Q.value[Y.value??``]??[])),Je=p(()=>Z.value.filter(e=>!$.value.has(e.code)));function Ye(e){return!$.value.has(e)}function Xe(e){let t=Y.value;if(!t)return;let n=new Set($.value);n.delete(e)||n.add(e),Q.value={...Q.value,[t]:[...n]}}function Ze(){let{[Y.value??``]:e,...t}=Q.value;Q.value=t}function Qe(e){let t=m(),n=0;return i(()=>{let r=Be.value,i=Y.value;if(He.value,!r||!i)return;let a=++n;e(r,i).then(e=>{a===n&&(t.value=e)})}),t}export{J as C,be as D,L as E,b as O,Fe as S,le as T,ze as _,Z as a,Pe as b,Y as c,He as d,Ze as f,Me as g,Je as h,Ye as i,Ue as l,Qe as m,We as n,Ke as o,Xe as p,Ge as r,Ve as s,Be as t,qe as u,Ie as v,De as w,Ne as x,Le as y};
|
|
@@ -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:`그래도 저장`},extract:{apply:`추출 ({count})`,done:`추출한 키: {count}. 변경된 파일: {files}.`,hint:`제안된 키가 있는 하드코딩된 문자열입니다. 키를 편집하고, 건너뛸 문자열은 선택 해제한 뒤 적용하세요.`,key:`키`,none:`하드코딩된 문자열이 없습니다.`,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:`모든 프리셋 표시`},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}개`}};export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ct as e,Et as t,H as n,M as r,P as i,Q as a,_ as o,c as s,d as c,h as l,it as u,j as d,l as f,m as p,r as m,s as h,tt as g,u as _}from"./B4prFwj0.js";import{S as v,c as y,t as b}from"./Bqlbbq4u.js";import{t as x}from"./SGqoyjTw.js";import{t as S}from"./ztSLDBsK.js";import{t as C}from"./DQNu8teu.js";var w={class:`flex-auto font-mono text-xs`},T={class:`label`},E={class:`flex cursor-pointer list-none items-center gap-2 px-4 py-1.5 hover:bg-hover`},D={class:`font-mono text-xs`},O={class:`label`},k={class:`grid gap-1 pb-2 pl-10 pr-4`},A={class:`grid md:grid-cols-2`},j={class:`flex-auto`},M={class:`color-faint`},N={class:`tabular-nums`},P={class:`flex-auto`},F={class:`color-faint`},I={class:`tabular-nums color-muted`},L={class:`font-mono text-xs`},R={class:`flex-auto`},z={class:`color-muted`},B={class:`of-x-auto p-4 font-mono text-xs leading-5 color-muted`},V=o({__name:`project`,setup(o){let V=g();d(async()=>{V.value=await b.value.explain()});let H=h(()=>V.value?.projects.find(e=>e.name===y.value)),U=a(!1),W=h(()=>(H.value?.presets??[]).filter(e=>U.value||K(e.reason))),G=h(()=>(H.value?.presets.length??0)-W.value.length);function K(e){return e===`listed`||e===`detected`}return(a,o)=>H.value?(r(),f(S,{key:0},{default:n(()=>[l(C,{index:`01`,title:u(v)(`project.presets`)},{default:n(()=>[(r(!0),c(m,null,i(W.value,n=>(r(),c(`div`,{key:n.name,class:`flex items-center gap-2 border-b border-base px-4 py-1.5 last:border-b-0`},[s(`span`,{class:e(K(n.reason)?`i-ph-check-circle-duotone color-ok`:`i-ph-circle-duotone color-faint`)},null,2),s(`span`,w,t(n.name),1),s(`span`,T,t(n.reason),1)]))),128)),G.value?(r(),c(`button`,{key:0,class:`btn-ghost h-9 w-full justify-start px-4`,onClick:o[0]||=e=>U.value=!0},[o[1]||=s(`span`,{class:`i-ph-dots-three-duotone`},null,-1),p(` `+t(u(v)(`project.showAllPresets`))+` (`+t(G.value)+`) `,1)])):_(``,!0)]),_:1},8,[`title`]),l(C,{index:`02`,title:u(v)(`project.finders`)},{default:n(()=>[(r(!0),c(m,null,i(H.value.finders,e=>(r(),c(`details`,{key:e.id,class:`group border-b border-base last:border-b-0`},[s(`summary`,E,[o[2]||=s(`span`,{class:`i-ph-caret-right-duotone text-xs color-muted transition-transform group-open:rotate-90`},null,-1),s(`span`,D,t(e.id),1),s(`span`,O,t(u(v)(`project.resources`,{count:e.resources.length})),1)]),s(`div`,k,[(r(!0),c(m,null,i(e.resources,e=>(r(),f(x,{key:e,path:e},null,8,[`path`]))),128))])]))),128))]),_:1},8,[`title`]),s(`div`,A,[l(C,{index:`03`,title:u(v)(`project.formats`),class:`md:border-r`},{default:n(()=>[(r(!0),c(m,null,i(H.value.formats.filter(e=>e.resources>0),e=>(r(),c(`div`,{key:e.id,class:`flex gap-2 border-b border-base px-4 py-1.5 font-mono text-xs last:border-b-0`},[s(`span`,j,[p(t(e.id)+` `,1),s(`span`,M,t(e.extensions.join(`, `)),1)]),s(`span`,N,t(e.resources),1)]))),128))]),_:1},8,[`title`]),l(C,{index:`04`,title:u(v)(`project.scanners`)},{default:n(()=>[(r(!0),c(m,null,i(H.value.scanners,e=>(r(),c(`div`,{key:e.id,class:`flex gap-2 border-b border-base px-4 py-1.5 font-mono text-xs last:border-b-0`},[s(`span`,P,[p(t(e.id)+` `,1),s(`span`,F,t(e.extensions.join(`, `)),1)]),s(`span`,I,t(u(v)(`project.files`,{count:e.files})),1)]))),128))]),_:1},8,[`title`])]),H.value.errors.length||H.value.conflicts.length?(r(),f(C,{key:0,index:`05`,title:u(v)(`project.problems`)},{default:n(()=>[(r(!0),c(m,null,i(H.value.errors,(e,n)=>(r(),c(`div`,{key:`e${n}`,class:`flex items-center gap-2 border-b border-base px-4 py-1.5 color-error last:border-b-0`},[s(`span`,L,t(e.code),1),p(` `+t(e.message)+` `,1),e.path?(r(),f(x,{key:0,path:e.path},null,8,[`path`])):_(``,!0)]))),128)),(r(!0),c(m,null,i(H.value.conflicts,e=>(r(),c(`div`,{key:e.extension,class:`border-b border-base px-4 py-1.5 color-warn last:border-b-0`},t(u(v)(`project.conflict`,{extension:e.extension,winner:e.winner,loser:e.loser})),1))),128))]),_:1},8,[`title`])):_(``,!0),l(C,{index:`06`,title:u(v)(`project.config`)},{default:n(()=>[(r(!0),c(m,null,i(H.value.config.origins,(e,n)=>(r(),c(`div`,{key:n,class:`flex gap-2 border-b border-base px-4 py-1.5 font-mono text-xs`},[s(`span`,R,t(n),1),s(`span`,z,t(e),1)]))),128)),s(`pre`,B,t(JSON.stringify(H.value.config,null,2)),1)]),_:1},8,[`title`])]),_:1})):_(``,!0)}});export{V 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"./Bqlbbq4u.js";function r(e,r=!1){return n.value.apply({project:t.value,ops:e,force:r})}function i(e,t,n,i=!1){return r([{type:`set`,key:e,locale:t,value:n}],i)}function a(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{a as n,i as r,r as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,Et as t,H as n,M as r,P as i,Q as a,U as o,_ as s,c,d as l,h as u,it as d,l as f,r as p,s as m,u as h}from"./B4prFwj0.js";import{i as g,o as _}from"./DoHg1T7s.js";import{S as v,c as y,m as b,t as x}from"./
|
|
1
|
+
import{B as e,Et as t,H as n,M as r,P as i,Q as a,U as o,_ as s,c,d as l,h as u,it as d,l as f,r as p,s as m,u as h}from"./B4prFwj0.js";import{i as g,o as _}from"./DoHg1T7s.js";import{S as v,c as y,m as b,t as x}from"./Bqlbbq4u.js";import{t as S}from"./SGqoyjTw.js";import{t as C}from"./ztSLDBsK.js";import{t as w}from"./DQNu8teu.js";var T={class:`flex items-center gap-3 border-b border-base px-4 py-3`},E={class:`flex-auto color-muted`},D={key:0,class:`color-ok`},O=[`disabled`],k={key:0,class:`px-4 py-3 color-muted`},A=[`onUpdate:modelValue`,`disabled`],j={class:`text-right font-mono text-xs color-faint tabular-nums`},M=[`title`],N=[`onUpdate:modelValue`,`readonly`,`aria-label`],P=s({__name:`extract`,setup(s){let P=b((e,t)=>e.extractCandidates(t)),F=a([]);e(P,e=>{F.value=(e??[]).map(e=>({candidate:e,key:e.key,picked:!0}))});let I=m(()=>{let e=new Map;for(let t of F.value){let n=e.get(t.candidate.path)??[];e.set(t.candidate.path,n),n.push(t)}return[...e]}),L=m(()=>F.value.filter(e=>e.picked)),R=a();async function z(){let e=L.value.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})),t=await x.value.extractApply({project:y.value,items:e});R.value={count:t.keys.length,files:t.changes.length}}return(e,a)=>(r(),f(C,null,{default:n(()=>[c(`header`,T,[c(`p`,E,t(d(v)(`extract.hint`)),1),R.value?(r(),l(`span`,D,t(d(v)(`extract.done`,R.value)),1)):h(``,!0),d(x)?.capabilities.write?(r(),l(`button`,{key:1,class:`btn-solid`,disabled:!L.value.length,onClick:z},t(d(v)(`extract.apply`,{count:L.value.length})),9,O)):h(``,!0)]),d(P)&&!F.value.length?(r(),l(`p`,k,t(d(v)(`extract.none`)),1)):h(``,!0),(r(!0),l(p,null,i(I.value,([e,a],s)=>(r(),f(w,{key:e,index:String(s+1).padStart(2,`0`),title:d(v)(`extract.strings`,{count:a.length})},{aside:n(()=>[u(S,{path:e,class:`ml-2`},null,8,[`path`])]),default:n(()=>[(r(!0),l(p,null,i(a,e=>(r(),l(`label`,{key:e.candidate.range.start,class:`grid grid-cols-[auto_3rem_1fr_18rem] items-center gap-3 border-b border-base px-4 py-1.5 last:border-b-0`},[o(c(`input`,{"onUpdate:modelValue":t=>e.picked=t,type:`checkbox`,class:`accent-[var(--x-fg)]`,disabled:!d(x)?.capabilities.write},null,8,A),[[g,e.picked]]),c(`span`,j,t(e.candidate.line),1),c(`span`,{class:`truncate`,title:e.candidate.text},t(e.candidate.text),9,M),o(c(`input`,{"onUpdate:modelValue":t=>e.key=t,class:`input font-mono text-xs`,readonly:!d(x)?.capabilities.write,"aria-label":d(v)(`extract.key`)},null,8,N),[[_,e.key]])]))),128))]),_:2},1032,[`index`,`title`]))),128))]),_:1}))}});export{P as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,g as t,h as n,v as r}from"./Bw3sjlsE.js";import{D as i,J as a,K as o,O as s,Q as c,S as l,V as u,Y as d,k as f,rt as p,v as m,x as h}from"./B4prFwj0.js";import{
|
|
1
|
+
import{a as e,g as t,h as n,v as r}from"./Bw3sjlsE.js";import{D as i,J as a,K as o,O as s,Q as c,S as l,V as u,Y as d,k as f,rt as p,v as m,x as h}from"./B4prFwj0.js";import{o as g,s as _}from"#entry";var v=Object.assign((e,t)=>a(t)?p(t):t,{_static:!0});function y(e,t={}){let n=t.head||g();return n.ssr?n.push(e||{},t):b(n,e,t)}function b(e,t,n={}){let r=o();if(r&&!r.active)return{patch(){},dispose(){},_i:-1};let a=c(!1);if(n.onRendered&&r){let e=n.onRendered;n={...n,onRendered:t=>r.run(()=>e(t))}}let l;return u(()=>{let r=a.value?{}:_(t,v);l?l.patch(r):l=e.push(r,n)}),m()?(s(()=>{l.dispose()}),f(()=>{a.value=!0}),i(()=>{a.value=!1})):r&&d(()=>l.dispose()),l}var x=r({docsBase:n,reporters:t});function S(t){let n=t||e();return n.ssrContext?.head||n.runWithContext(()=>{if(h()){let e=l(`usehead`);if(!e)throw x.NUXT_E6001();return e}})}function C(e,t={}){return y(e,{head:t.head||S(t.nuxt),...t})}export{C 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:`Всё равно сохранить`},extract:{apply:`Извлечь ({count})`,done:`Извлечено ключей: {count}. Изменено файлов: {files}.`,hint:`Строки в коде с предложенным ключом. Измените ключи, снимите отметку со строк, которые нужно пропустить, и примените.`,key:`Ключ`,none:`Строк в коде не найдено.`,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:`Показать все пресеты`},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}`}};export{e 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`},extract:{apply:`Extrair ({count})`,done:`Chaves extraídas: {count}. Arquivos alterados: {files}.`,hint:`Strings fixas no código com uma chave sugerida. Edite as chaves, desmarque as strings a ignorar e aplique.`,key:`Chave`,none:`Nenhuma string fixa encontrada.`,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`},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`}};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:`仍然保存`},extract:{apply:`提取({count})`,done:`已提取键:{count}。已修改文件:{files}。`,hint:`带有建议键的硬编码字符串。可编辑键,取消勾选要跳过的字符串,然后应用。`,key:`键`,none:`未发现硬编码字符串。`,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:`显示所有预设`},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} 种语言`}};export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Et as e,M as t,c as n,d as r}from"./B4prFwj0.js";import{t as i}from"./CQOvHI-h.js";import{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-947f3f29`]]);export{d as default};
|
|
@@ -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 ee,Tt as u,U as d,_ as f,c as p,d as m,h,it as g,m as _,r as v,s as y,u as b,wt as te,y as ne,z as x}from"./B4prFwj0.js";import{a as S,i as C,o as w,s as T}from"./DoHg1T7s.js";import{d as re,u as ie}from"./D4dwYDex.js";import{E as ae,S as E,h as oe,m as se,n as ce,t as D}from"./BPDtdGtS.js";import{t as le}from"#entry";import{t as ue}from"./DiDiLO9x.js";import{n as de,r as fe}from"./DqvFL0Kd.js";import{t as pe}from"./C7ReGOzp.js";var O={class:`inline-flex cursor-pointer items-center gap-2 text-xs select-none`},k=f({__name:`UiToggle`,props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let n=l(e,`modelValue`);return(e,r)=>(o(),m(`label`,O,[d(p(`input`,{"onUpdate:modelValue":r[0]||=e=>n.value=e,type:`checkbox`,class:`peer sr-only`},null,512),[[C,n.value]]),p(`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`])},[p(`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`)]))}});function A(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}var me={class:`h-full flex flex-col`},he={class:`shrink-0 flex flex-wrap items-center gap-3 border-b border-base px-4 py-2`},ge={class:`input w-80 flex items-center gap-2 focus-within:border-inverse`},_e=[`placeholder`,`aria-label`],ve=[`aria-label`],ye={value:``},be=[`value`],xe=[`aria-label`],Se={value:``},Ce=[`value`],we={class:`font-mono text-xs color-muted tabular-nums`},Te={key:0,class:`shrink-0 flex items-center gap-2 border-b border-base px-4 py-1.5 color-warn`,role:`alert`},Ee={class:`color-base`},De=[`aria-label`,`aria-rowcount`],Oe={class:`label flex items-center px-4`,role:`columnheader`},ke={class:`label color-base`},Ae={key:0,class:`badge`},je=[`aria-rowindex`,`data-key`],Me=[`title`,`onClick`,`onDblclick`],Ne={class:`truncate`},Pe=[`title`],Fe=[`title`],Ie=[`data-locale`,`onClick`,`onDblclick`],Le=[`aria-label`],Re=[`title`],ze=[`title`],Be={key:0,class:`p-4 color-muted`},j={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=f({__name:`index`,setup(i){let l=ie(),f=re(),C=se((e,t)=>e.keys(t)),O=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=y(()=>[{value:`key`,label:E(`keys.sortKey`)},{value:`recent`,label:E(`keys.sortRecent`)}]),Ue=y(()=>(C.value?.rows??[]).some(e=>e.changedAt!==void 0)),z=y(()=>oe.value.map(e=>e.code)),B=y(()=>[...new Set((C.value?.rows??[]).flatMap(e=>e.namespace??[]))].sort()),V=y(()=>{let e=O.value.trim(),t=(C.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=>A(e,String(t))/2);return{row:t,score:Math.max(A(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}=ae(V,{itemHeight:M,overscan:12}),U=c({row:0,col:0}),W=c(),G=c(),K=x(`searchInput`),q=x(`editor`);e(V,()=>{U.value={row:Math.min(U.value.row,Math.max(V.value.length-1,0)),col:U.value.col}});let J=y(()=>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(!D.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 fe(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(de).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){f.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(),m(`div`,me,[p(`div`,he,[p(`label`,ge,[n[12]||=p(`span`,{class:`i-ph-magnifying-glass color-faint`},null,-1),d(p(`input`,{ref_key:`searchInput`,ref:K,"onUpdate:modelValue":n[0]||=e=>O.value=e,class:`flex-auto bg-transparent outline-none`,placeholder:g(E)(`keys.search`),"aria-label":g(E)(`keys.search`),onKeydown:[n[1]||=T(e=>g(H).ref.value?.focus(),[`escape`]),n[2]||=T(e=>g(H).ref.value?.focus(),[`enter`])]},null,40,_e),[[w,O.value]]),n[13]||=p(`kbd`,{class:`badge`},`/`,-1)]),B.value.length?d((o(),m(`select`,{key:0,"onUpdate:modelValue":n[3]||=e=>N.value=e,class:`input text-xs`,"aria-label":g(E)(`keys.namespace`)},[p(`option`,ye,r(g(E)(`keys.allNamespaces`)),1),(o(!0),m(v,null,s(B.value,e=>(o(),m(`option`,{key:e,value:e},r(e),9,be))),128))],8,ve)),[[S,N.value]]):b(``,!0),d(p(`select`,{"onUpdate:modelValue":n[4]||=e=>P.value=e,class:`input text-xs`,"aria-label":g(E)(`keys.missingIn`)},[p(`option`,Se,r(g(E)(`keys.anyLocale`)),1),(o(!0),m(v,null,s(z.value,e=>(o(),m(`option`,{key:e,value:e},r(g(E)(`keys.missingInLocale`,{locale:e})),9,Ce))),128))],8,xe),[[S,P.value]]),h(k,{modelValue:F.value,"onUpdate:modelValue":n[5]||=e=>F.value=e},{default:a(()=>[_(r(g(E)(`keys.unused`)),1)]),_:1},8,[`modelValue`]),h(k,{modelValue:I.value,"onUpdate:modelValue":n[6]||=e=>I.value=e},{default:a(()=>[_(r(g(E)(`keys.withDiagnostics`)),1)]),_:1},8,[`modelValue`]),Ue.value?(o(),m(v,{key:1},[h(k,{modelValue:L.value,"onUpdate:modelValue":n[7]||=e=>L.value=e},{default:a(()=>[_(r(g(E)(`keys.outdated`)),1)]),_:1},8,[`modelValue`]),h(pe,{modelValue:R.value,"onUpdate:modelValue":n[8]||=e=>R.value=e,options:He.value,label:g(E)(`keys.sort`)},null,8,[`modelValue`,`options`,`label`])],64)):b(``,!0),n[14]||=p(`div`,{class:`flex-auto`},null,-1),p(`span`,we,r(g(E)(`keys.count`,{shown:V.value.length,total:g(C)?.rows.length??0})),1)]),G.value?(o(),m(`div`,Te,[n[15]||=p(`span`,{class:`i-ph-warning`},null,-1),p(`span`,Ee,r(g(E)(`edit.rejected`,{key:G.value.key,locale:G.value.locale,message:G.value.message})),1),p(`button`,{class:`btn-outline h-7`,onClick:Je},r(g(E)(`edit.saveAnyway`)),1),p(`button`,{class:`btn-ghost h-7`,onClick:n[9]||=e=>G.value=void 0},r(g(E)(`edit.dismiss`)),1)])):b(``,!0),p(`div`,ee(g(H),{class:`flex-auto min-h-0 of-auto outline-none`,tabindex:`0`,role:`grid`,"aria-label":g(E)(`keys.grid`),"aria-rowcount":V.value.length,onKeydown:Xe}),[p(`div`,{class:`sticky top-0 z-20 grid border-b border-strong bg-base`,style:u({gridTemplateColumns:J.value,height:`${M}px`}),role:`row`},[p(`div`,Oe,r(g(E)(`keys.key`)),1),(o(!0),m(v,null,s(z.value,e=>(o(),m(`div`,{key:e,class:`flex items-center gap-2 border-l border-base px-3`,role:`columnheader`},[h(le,{code:e},null,8,[`code`]),p(`span`,ke,r(e),1),e===g(ce)?.sourceLocale?(o(),m(`span`,Ae,r(g(E)(`overview.source`)),1)):b(``,!0)]))),128))],4),p(`div`,te(ne(g(Ge))),[(o(!0),m(v,null,s(g(We),({data:e,index:i})=>(o(),m(`div`,{key:e.key,class:t([`grid border-b border-base`,i===U.value.row?`bg-hover`:``]),style:u({gridTemplateColumns:J.value,height:`${M}px`}),role:`row`,"aria-rowindex":i+1,"data-key":e.key},[p(`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)},[p(`span`,Ne,r(e.key),1),e.unused?(o(),m(`span`,{key:0,class:`i-ph-ghost shrink-0 color-faint`,title:g(E)(`keys.unusedHint`)},null,8,Pe)):b(``,!0),e.diagnostics?(o(),m(`span`,{key:1,class:`badge shrink-0 border-current color-error`,title:g(E)(`keys.diagnosticsHint`)},r(e.diagnostics),9,Fe)):b(``,!0)],42,Me),(o(!0),m(v,null,s(z.value,(r,a)=>(o(),m(`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?d((o(),m(`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":g(E)(`keys.editValue`,{key:e.key,locale:r}),onKeydown:Ze,onBlur:n[11]||=e=>Z()},null,40,Le)),[[w,W.value.draft]]):(o(),m(v,{key:1},[p(`span`,{class:`truncate`,title:String(e.values[r]??``)},[h(ue,{value:e.values[r],inline:``},null,8,[`value`])],8,Re),e.outdated.includes(r)?(o(),m(`span`,{key:0,class:`ml-auto shrink-0 pl-2 color-warn`,title:g(E)(`history.outdatedHint`)},[...n[16]||=[p(`span`,{class:`i-ph-clock-counter-clockwise block`},null,-1)]],8,ze)):b(``,!0)],64))],42,Ie))),128))],14,je))),128))],16),g(C)&&!V.value.length?(o(),m(`p`,Be,r(g(E)(`keys.empty`)),1)):b(``,!0)],16,De),p(`div`,j,[p(`span`,null,r(g(E)(`keys.helpMove`)),1),g(D)?.capabilities.write?(o(),m(`span`,Ve,r(g(E)(`keys.helpEdit`)),1)):b(``,!0),p(`span`,null,r(g(E)(`keys.helpOpen`)),1),p(`span`,null,r(g(E)(`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 ee,Tt as u,U as d,_ as f,c as p,d as m,h,it as g,m as _,r as v,s as y,u as b,wt as te,y as ne,z as x}from"./B4prFwj0.js";import{a as S,i as C,o as w,s as T}from"./DoHg1T7s.js";import{d as re,u as ie}from"./D4dwYDex.js";import{D as ae,S as E,h as oe,m as se,n as ce,t as D}from"./Bqlbbq4u.js";import{n as le}from"#entry";import{t as ue}from"./BZwyJa72.js";import{n as de,r as fe}from"./CEb7njzd.js";import{t as pe}from"./C7ReGOzp.js";var O={class:`inline-flex cursor-pointer items-center gap-2 text-xs select-none`},k=f({__name:`UiToggle`,props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let n=l(e,`modelValue`);return(e,r)=>(o(),m(`label`,O,[d(p(`input`,{"onUpdate:modelValue":r[0]||=e=>n.value=e,type:`checkbox`,class:`peer sr-only`},null,512),[[C,n.value]]),p(`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`])},[p(`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`)]))}});function A(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}var me={class:`h-full flex flex-col`},he={class:`shrink-0 flex flex-wrap items-center gap-3 border-b border-base px-4 py-2`},ge={class:`input w-80 flex items-center gap-2 focus-within:border-inverse`},_e=[`placeholder`,`aria-label`],ve=[`aria-label`],ye={value:``},be=[`value`],xe=[`aria-label`],Se={value:``},Ce=[`value`],we={class:`font-mono text-xs color-muted tabular-nums`},Te={key:0,class:`shrink-0 flex items-center gap-2 border-b border-base px-4 py-1.5 color-warn`,role:`alert`},Ee={class:`color-base`},De=[`aria-label`,`aria-rowcount`],Oe={class:`label flex items-center px-4`,role:`columnheader`},ke={class:`label color-base`},Ae={key:0,class:`badge`},je=[`aria-rowindex`,`data-key`],Me=[`title`,`onClick`,`onDblclick`],Ne={class:`truncate`},Pe=[`title`],Fe=[`title`],Ie=[`data-locale`,`onClick`,`onDblclick`],Le=[`aria-label`],Re=[`title`],ze=[`title`],Be={key:0,class:`p-4 color-muted`},j={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=f({__name:`index`,setup(i){let l=ie(),f=re(),C=se((e,t)=>e.keys(t)),O=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=y(()=>[{value:`key`,label:E(`keys.sortKey`)},{value:`recent`,label:E(`keys.sortRecent`)}]),Ue=y(()=>(C.value?.rows??[]).some(e=>e.changedAt!==void 0)),z=y(()=>oe.value.map(e=>e.code)),B=y(()=>[...new Set((C.value?.rows??[]).flatMap(e=>e.namespace??[]))].sort()),V=y(()=>{let e=O.value.trim(),t=(C.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=>A(e,String(t))/2);return{row:t,score:Math.max(A(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}=ae(V,{itemHeight:M,overscan:12}),U=c({row:0,col:0}),W=c(),G=c(),K=x(`searchInput`),q=x(`editor`);e(V,()=>{U.value={row:Math.min(U.value.row,Math.max(V.value.length-1,0)),col:U.value.col}});let J=y(()=>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(!D.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 fe(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(de).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){f.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(),m(`div`,me,[p(`div`,he,[p(`label`,ge,[n[12]||=p(`span`,{class:`i-ph-magnifying-glass-duotone color-faint`},null,-1),d(p(`input`,{ref_key:`searchInput`,ref:K,"onUpdate:modelValue":n[0]||=e=>O.value=e,class:`flex-auto bg-transparent outline-none`,placeholder:g(E)(`keys.search`),"aria-label":g(E)(`keys.search`),onKeydown:[n[1]||=T(e=>g(H).ref.value?.focus(),[`escape`]),n[2]||=T(e=>g(H).ref.value?.focus(),[`enter`])]},null,40,_e),[[w,O.value]]),n[13]||=p(`kbd`,{class:`badge`},`/`,-1)]),B.value.length?d((o(),m(`select`,{key:0,"onUpdate:modelValue":n[3]||=e=>N.value=e,class:`input text-xs`,"aria-label":g(E)(`keys.namespace`)},[p(`option`,ye,r(g(E)(`keys.allNamespaces`)),1),(o(!0),m(v,null,s(B.value,e=>(o(),m(`option`,{key:e,value:e},r(e),9,be))),128))],8,ve)),[[S,N.value]]):b(``,!0),d(p(`select`,{"onUpdate:modelValue":n[4]||=e=>P.value=e,class:`input text-xs`,"aria-label":g(E)(`keys.missingIn`)},[p(`option`,Se,r(g(E)(`keys.anyLocale`)),1),(o(!0),m(v,null,s(z.value,e=>(o(),m(`option`,{key:e,value:e},r(g(E)(`keys.missingInLocale`,{locale:e})),9,Ce))),128))],8,xe),[[S,P.value]]),h(k,{modelValue:F.value,"onUpdate:modelValue":n[5]||=e=>F.value=e},{default:a(()=>[_(r(g(E)(`keys.unused`)),1)]),_:1},8,[`modelValue`]),h(k,{modelValue:I.value,"onUpdate:modelValue":n[6]||=e=>I.value=e},{default:a(()=>[_(r(g(E)(`keys.withDiagnostics`)),1)]),_:1},8,[`modelValue`]),Ue.value?(o(),m(v,{key:1},[h(k,{modelValue:L.value,"onUpdate:modelValue":n[7]||=e=>L.value=e},{default:a(()=>[_(r(g(E)(`keys.outdated`)),1)]),_:1},8,[`modelValue`]),h(pe,{modelValue:R.value,"onUpdate:modelValue":n[8]||=e=>R.value=e,options:He.value,label:g(E)(`keys.sort`)},null,8,[`modelValue`,`options`,`label`])],64)):b(``,!0),n[14]||=p(`div`,{class:`flex-auto`},null,-1),p(`span`,we,r(g(E)(`keys.count`,{shown:V.value.length,total:g(C)?.rows.length??0})),1)]),G.value?(o(),m(`div`,Te,[n[15]||=p(`span`,{class:`i-ph-warning-duotone`},null,-1),p(`span`,Ee,r(g(E)(`edit.rejected`,{key:G.value.key,locale:G.value.locale,message:G.value.message})),1),p(`button`,{class:`btn-outline h-7`,onClick:Je},r(g(E)(`edit.saveAnyway`)),1),p(`button`,{class:`btn-ghost h-7`,onClick:n[9]||=e=>G.value=void 0},r(g(E)(`edit.dismiss`)),1)])):b(``,!0),p(`div`,ee(g(H),{class:`flex-auto min-h-0 of-auto outline-none`,tabindex:`0`,role:`grid`,"aria-label":g(E)(`keys.grid`),"aria-rowcount":V.value.length,onKeydown:Xe}),[p(`div`,{class:`sticky top-0 z-20 grid border-b border-strong bg-base`,style:u({gridTemplateColumns:J.value,height:`${M}px`}),role:`row`},[p(`div`,Oe,r(g(E)(`keys.key`)),1),(o(!0),m(v,null,s(z.value,e=>(o(),m(`div`,{key:e,class:`flex items-center gap-2 border-l border-base px-3`,role:`columnheader`},[h(le,{code:e},null,8,[`code`]),p(`span`,ke,r(e),1),e===g(ce)?.sourceLocale?(o(),m(`span`,Ae,r(g(E)(`overview.source`)),1)):b(``,!0)]))),128))],4),p(`div`,te(ne(g(Ge))),[(o(!0),m(v,null,s(g(We),({data:e,index:i})=>(o(),m(`div`,{key:e.key,class:t([`grid border-b border-base`,i===U.value.row?`bg-hover`:``]),style:u({gridTemplateColumns:J.value,height:`${M}px`}),role:`row`,"aria-rowindex":i+1,"data-key":e.key},[p(`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)},[p(`span`,Ne,r(e.key),1),e.unused?(o(),m(`span`,{key:0,class:`i-ph-ghost-duotone shrink-0 color-faint`,title:g(E)(`keys.unusedHint`)},null,8,Pe)):b(``,!0),e.diagnostics?(o(),m(`span`,{key:1,class:`badge shrink-0 border-current color-error`,title:g(E)(`keys.diagnosticsHint`)},r(e.diagnostics),9,Fe)):b(``,!0)],42,Me),(o(!0),m(v,null,s(z.value,(r,a)=>(o(),m(`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?d((o(),m(`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":g(E)(`keys.editValue`,{key:e.key,locale:r}),onKeydown:Ze,onBlur:n[11]||=e=>Z()},null,40,Le)),[[w,W.value.draft]]):(o(),m(v,{key:1},[p(`span`,{class:`truncate`,title:String(e.values[r]??``)},[h(ue,{value:e.values[r],inline:``},null,8,[`value`])],8,Re),e.outdated.includes(r)?(o(),m(`span`,{key:0,class:`ml-auto shrink-0 pl-2 color-warn`,title:g(E)(`history.outdatedHint`)},[...n[16]||=[p(`span`,{class:`i-ph-clock-counter-clockwise-duotone block`},null,-1)]],8,ze)):b(``,!0)],64))],42,Ie))),128))],14,je))),128))],16),g(C)&&!V.value.length?(o(),m(`p`,Be,r(g(E)(`keys.empty`)),1)):b(``,!0)],16,De),p(`div`,j,[p(`span`,null,r(g(E)(`keys.helpMove`)),1),g(D)?.capabilities.write?(o(),m(`span`,Ve,r(g(E)(`keys.helpEdit`)),1)):b(``,!0),p(`span`,null,r(g(E)(`keys.helpOpen`)),1),p(`span`,null,r(g(E)(`keys.helpSearch`)),1)])]))}});export{N as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ct as e,Et as t,H as n,M as r,P as i,Q as a,U as ee,_ 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{c as te,o as ne,s as g}from"./DoHg1T7s.js";import{u as _}from"./D4dwYDex.js";import{S as v,a as re,c as ie,f as y,h as b,m as x,n as S,t as C}from"./Bqlbbq4u.js";import{i as ae,n as oe}from"#entry";import{t as w}from"./SGqoyjTw.js";import{t as se}from"./ztSLDBsK.js";import{t as T}from"./DQNu8teu.js";import{n as ce,r as E,t as le}from"./BWmypMON.js";import{t as D}from"./BZwyJa72.js";import{t as O}from"./02DyCwxD.js";import{t as k}from"./BEQcjiBv.js";import{n as A,r as j,t as M}from"./CEb7njzd.js";var N={class:`flex items-center gap-3 border-b border-base px-4 py-4`},P={class:`grid gap-1`},F={class:`label`},I={class:`break-all font-mono text-xl font-medium`},L={key:0,class:`badge self-end`},R={key:0,class:`px-4 py-3 color-muted`},z={key:0,class:`px-4 py-3 color-muted`},B=[`data-locale`],V={class:`flex items-center gap-2 pt-0.5 font-mono`},H={key:0,class:`badge`},U=[`title`],W={key:0,class:`grid gap-2`},ue=[`aria-label`],de={key:0,class:`flex items-center gap-2 color-warn`},fe=[`title`,`onDblclick`],pe={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`},me={class:`label`},he={class:`color-muted line-through decoration-[var(--x-faint)]`},ge={class:`label`},_e={class:`flex gap-1`},ve={class:`font-mono text-xs color-muted`},ye={class:`flex-auto`},be=[`onClick`],xe={key:0,class:`px-4 py-3 color-muted`},Se={class:`flex items-center gap-2`},Ce={key:0,class:`badge`},we=[`onClick`],G=o({__name:`[key]`,setup(o){let G=_(),K=m(()=>String(G.params.key)),q=x((e,t)=>e.key(t,K.value)),J=m(()=>b.value.map(e=>({locale:e.code,message:q.value?.messages.find(t=>t.locale===e.code)}))),Y=m(()=>re.value.length-b.value.length),Te=m(()=>q.value?.messages.find(e=>e.locale===S.value?.sourceLocale)?.value),X=a(),Z=a();async function Q(e=!1){let t=X.value;if(!t)return;let n=await j(K.value,t.locale,t.draft,e);n.applied?(X.value=void 0,Z.value=void 0):Z.value=n.problems.map(A).join(`; `)}function Ee(e,t){X.value={locale:e,draft:t==null?``:String(t)},Z.value=void 0}function $(e){return e.type!==`extract`&&e.type!==`format`}function De(e){C.value?.openInEditor({project:ie.value,path:e.path,line:e.line,column:e.column})}return(a,o)=>(r(),d(se,null,{default:n(()=>[s(`header`,N,[l(u(ae),{to:`/keys`,class:`btn-icon`,"aria-label":u(v)(`detail.back`)},{default:n(()=>[...o[5]||=[s(`span`,{class:`i-ph-arrow-left-duotone`},null,-1)]]),_:1},8,[`aria-label`]),s(`div`,P,[s(`span`,F,t(u(v)(`detail.label`)),1),s(`h1`,I,t(K.value),1)]),u(q)?.namespace?(r(),c(`span`,L,t(u(q).namespace),1)):h(``,!0)]),u(q)===null?(r(),c(`p`,R,t(u(v)(`detail.notFound`)),1)):u(q)?(r(),c(p,{key:1},[l(T,{index:`01`,title:u(v)(`detail.values`)},{default:n(()=>[J.value.length?h(``,!0):(r(),c(`p`,z,t(u(v)(`localeBar.noneShown`)),1)),(r(!0),c(p,null,i(J.value,e=>(r(),c(`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},[s(`span`,V,[l(oe,{code:e.locale},null,8,[`code`]),f(` `+t(e.locale)+` `,1),e.locale===u(S)?.sourceLocale?(r(),c(`span`,H,t(u(v)(`overview.source`)),1)):h(``,!0),e.message?.outdated?(r(),c(`span`,{key:1,class:`badge border-current color-warn`,title:u(v)(`history.outdatedHint`)},t(u(v)(`history.outdated`)),9,U)):h(``,!0)]),X.value?.locale===e.locale?(r(),c(`div`,W,[ee(s(`textarea`,{"onUpdate:modelValue":o[0]||=e=>X.value.draft=e,class:`input h-auto py-1.5 font-mono`,rows:`2`,"aria-label":u(v)(`keys.editValue`,{key:K.value,locale:e.locale}),onKeydown:[o[1]||=g(te(e=>Q(),[`exact`,`prevent`]),[`enter`]),o[2]||=g(e=>X.value=void 0,[`escape`])]},null,40,ue),[[ne,X.value.draft]]),Z.value?(r(),c(`p`,de,[o[6]||=s(`span`,{class:`i-ph-warning-duotone`},null,-1),f(` `+t(Z.value)+` `,1),s(`button`,{class:`btn-outline h-7`,onClick:o[3]||=e=>Q(!0)},t(u(v)(`edit.saveAnyway`)),1)])):h(``,!0)])):(r(),c(`div`,{key:1,class:`grid min-w-0 gap-1`,title:u(C)?.capabilities.write?u(v)(`detail.edit`):void 0,onDblclick:t=>u(C)?.capabilities.write&&Ee(e.locale,e.message?.value)},[l(D,{value:e.message?.value,placeholders:e.message?.placeholders??[]},null,8,[`value`,`placeholders`]),e.message?.sourceThen===void 0?h(``,!0):(r(),c(`dl`,pe,[s(`dt`,me,t(u(v)(`history.sourceThen`)),1),s(`dd`,he,[l(D,{value:e.message.sourceThen},null,8,[`value`])]),s(`dt`,ge,t(u(v)(`history.sourceNow`)),1),s(`dd`,null,[l(D,{value:Te.value},null,8,[`value`])])]))],40,fe)),s(`div`,_e,[e.locale===u(S)?.sourceLocale?h(``,!0):(r(),d(ce,{key:0,text:u(le)([{locale:e.locale,key:K.value}]),label:u(v)(`prompt.copy`),hint:u(v)(`prompt.hint`)},null,8,[`text`,`label`,`hint`])),e.message?(r(),d(E,{key:1,icon:`i-ph-file-text-duotone`,label:u(v)(`detail.file`)},{default:n(()=>[l(w,{path:e.message.path,line:e.message.line},null,8,[`path`,`line`])]),_:2},1032,[`label`])):h(``,!0),e.message?.changed?(r(),d(E,{key:2,icon:`i-ph-clock-counter-clockwise-duotone`,label:u(v)(`history.title`)},{default:n(()=>[l(O,{change:e.message.changed},null,8,[`change`])]),_:2},1032,[`label`])):h(``,!0)])],8,B))),128)),Y.value?(r(),c(`button`,{key:1,class:`btn-ghost h-9 w-full justify-start px-4`,onClick:o[4]||=(...e)=>u(y)&&u(y)(...e)},[o[7]||=s(`span`,{class:`i-ph-dots-three-duotone`},null,-1),f(` `+t(u(v)(`detail.showAllLocales`))+` (`+t(Y.value)+`) `,1)])):h(``,!0)]),_:1},8,[`title`]),u(q).diagnostics.length?(r(),d(T,{key:0,index:`02`,title:u(v)(`detail.diagnostics`)},{default:n(()=>[(r(!0),c(p,null,i(u(q).diagnostics,(n,a)=>(r(),c(`div`,{key:a,class:`flex items-center gap-2 border-b border-base px-4 py-2 last:border-b-0`},[s(`span`,{class:e(n.severity===`error`?`i-ph-x-circle-duotone color-error`:`i-ph-warning-duotone color-warn`)},null,2),s(`span`,ve,t(n.code),1),s(`span`,ye,t(n.message),1),u(C)?.capabilities.write?(r(!0),c(p,{key:0},i(n.fixes.filter(e=>e.ops.every($)),e=>(r(),c(`button`,{key:e.title,class:`btn-outline h-7`,onClick:t=>u(M)(e.ops.filter($))},t(e.title),9,be))),128)):h(``,!0)]))),128))]),_:1},8,[`title`])):h(``,!0),l(T,{index:`03`,title:u(v)(`detail.usages`,{count:u(q).usages.length})},{default:n(()=>[u(q).usages.length?h(``,!0):(r(),c(`p`,xe,t(u(v)(`detail.noUsages`)),1)),(r(!0),c(p,null,i(u(q).usages,(e,n)=>(r(),c(`div`,{key:n,class:`grid gap-2 border-b border-base px-4 py-3 last:border-b-0`},[s(`div`,Se,[l(w,{path:e.path,line:e.line,column:e.column},null,8,[`path`,`line`,`column`]),e.possible?(r(),c(`span`,Ce,t(u(v)(`detail.possible`)),1)):h(``,!0),o[9]||=s(`span`,{class:`flex-auto`},null,-1),u(C)?.capabilities.openInEditor?(r(),c(`button`,{key:1,class:`btn-ghost h-7`,onClick:t=>De(e)},[o[8]||=s(`span`,{class:`i-ph-arrow-square-out-duotone`},null,-1),f(` `+t(u(v)(`detail.openInEditor`)),1)],8,we)):h(``,!0)]),l(k,{usage:e},null,8,[`usage`])]))),128))]),_:1},8,[`title`])],64)):h(``,!0)]),_:1}))}});export{G 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`},extract:{apply:`Extrahieren ({count})`,done:`Extrahierte Schlüssel: {count}. Geänderte Dateien: {files}.`,hint:`Fest codierte Strings mit vorgeschlagenem Schlüssel. Schlüssel bearbeiten, zu überspringende Strings abwählen, dann anwenden.`,key:`Schlüssel`,none:`Keine fest codierten Strings gefunden.`,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`},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`}};export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Et as e,F as t,M as n,_ as r,c as i,d as a,h as o,u as s}from"./B4prFwj0.js";import{t as c}from"#entry";var l={},u={class:`pointer-events-none absolute z-1 size-[11px] color-base`,viewBox:`0 0 11 11`,"aria-hidden":`true`};function d(e,t){return n(),a(`svg`,u,[...t[0]||=[i(`path`,{d:`M5.5 0v11M0 5.5h11`,stroke:`currentColor`,"stroke-width":`1`},null,-1)]])}var f=c(l,[[`render`,d]]),p={class:`relative border-b border-base`},m={class:`flex min-h-10 items-center gap-3 border-b border-base px-4 py-2`},h={key:0,class:`label color-faint`},g={class:`label color-base`},_=r({__name:`UiSection`,props:{index:{},title:{}},setup(r){return(c,l)=>(n(),a(`section`,p,[o(f,{class:`-left-[6px] -bottom-[6px]`}),o(f,{class:`-right-[6px] -bottom-[6px]`}),i(`header`,m,[r.index?(n(),a(`span`,h,e(r.index),1)):s(``,!0),i(`h2`,g,e(r.title),1),t(c.$slots,`aside`)]),t(c.$slots,`default`)]))}});export{_ as t};
|
|
@@ -0,0 +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{t as s}from"./CQOvHI-h.js";import{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 s({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}`}]}),(s,_)=>{let v=c;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-e18f111c`]]);export{_ as default};
|
|
@@ -0,0 +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"./Bqlbbq4u.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,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"./Bqlbbq4u.js";import{i as y}from"#entry";import{t as b}from"./SGqoyjTw.js";import{t as x}from"./ztSLDBsK.js";import{t as S}from"./BEQcjiBv.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};
|