@x18n/ui 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/index.mjs +1 -1
  2. package/dist/nitro.json +1 -1
  3. package/dist/public/200.html +1 -1
  4. package/dist/public/404.html +1 -1
  5. package/dist/public/_nuxt/{CU-cHgDp.js → 6DTeintI.js} +1 -1
  6. package/dist/public/_nuxt/{C059D2ly.js → AdR9tqED.js} +1 -1
  7. package/dist/public/_nuxt/{D4W_YgBv.js → BH143Pz-.js} +1 -1
  8. package/dist/public/_nuxt/BHxb101O.js +1 -0
  9. package/dist/public/_nuxt/{D3lsgOGg.js → BQbrRyj1.js} +1 -1
  10. package/dist/public/_nuxt/Boxecvzt.js +1 -0
  11. package/dist/public/_nuxt/{BtGb9LkL.js → BuVS4UTW.js} +1 -1
  12. package/dist/public/_nuxt/{BqPdh3b3.js → C3YrgNlB.js} +1 -1
  13. package/dist/public/_nuxt/{D5tpRc1q.js → C5AT5PNH.js} +1 -1
  14. package/dist/public/_nuxt/{BWdW6dXs.js → CAeV2zG7.js} +1 -1
  15. package/dist/public/_nuxt/{eVN_U-F6.js → CugIO4Ok.js} +1 -1
  16. package/dist/public/_nuxt/{Bkjpr8TV.js → D08T24dG.js} +1 -1
  17. package/dist/public/_nuxt/{Cnqs6S_B.js → D8wRJGd0.js} +1 -1
  18. package/dist/public/_nuxt/D9175g8g.js +1 -0
  19. package/dist/public/_nuxt/{DsqCc3fC.js → DF0vjjh8.js} +1 -1
  20. package/dist/public/_nuxt/{Dc1J86T9.js → DFNwy14e.js} +1 -1
  21. package/dist/public/_nuxt/{Eg7r6GmC.js → DPc4aOpP.js} +1 -1
  22. package/dist/public/_nuxt/{BR2xHYez.js → DSHArhRM.js} +1 -1
  23. package/dist/public/_nuxt/{Cr_IeTC5.js → DvBiEoxc.js} +1 -1
  24. package/dist/public/_nuxt/{0cXQUs3T.js → DwGgiVOP.js} +1 -1
  25. package/dist/public/_nuxt/{CGD9uLl4.js → EGsfZg42.js} +1 -1
  26. package/dist/public/_nuxt/{JMXpOiMg.js → HmocOjc4.js} +3 -2
  27. package/dist/public/_nuxt/{z56wu47o.js → MHlmqv3A.js} +1 -1
  28. package/dist/public/_nuxt/{DJiNcGZq.js → UNeUdORH.js} +4 -4
  29. package/dist/public/_nuxt/builds/latest.json +1 -1
  30. package/dist/public/_nuxt/builds/meta/3aca01cb-a9af-4da3-9d17-d110d7e229c4.json +1 -0
  31. package/dist/public/_nuxt/entry.O6-qt5XN.css +1 -0
  32. package/dist/public/_nuxt/{CcXhso-T.js → f6bf8PNO.js} +1 -1
  33. package/dist/public/_nuxt/mUMfez_o.js +1 -0
  34. package/dist/public/index.html +1 -1
  35. package/package.json +4 -4
  36. package/dist/public/_nuxt/BJFGPxOj.js +0 -1
  37. package/dist/public/_nuxt/BSomwWYk.js +0 -1
  38. package/dist/public/_nuxt/builds/meta/8a31ddf7-f214-42d6-b90e-fa6fcd47377d.json +0 -1
  39. package/dist/public/_nuxt/entry.DCwNI6d7.css +0 -1
package/dist/index.mjs CHANGED
@@ -6,7 +6,7 @@ import { createLineIndex, errors, parseMessageBatch, placeholderProblems, render
6
6
  import * as v from "valibot";
7
7
  //#region package.json
8
8
  var name = "@x18n/ui";
9
- var version = "0.0.9";
9
+ var version = "0.0.10";
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
package/dist/nitro.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "date": "2026-10-21T08:12:01.755Z",
2
+ "date": "2026-10-22T01:32:05.261Z",
3
3
  "preset": "static",
4
4
  "framework": {
5
5
  "name": "nuxt",
@@ -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/DJiNcGZq.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.DCwNI6d7.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DJiNcGZq.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/DsqCc3fC.js"><script type="module" src="/_nuxt/DJiNcGZq.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:"8a31ddf7-f214-42d6-b90e-fa6fcd47377d",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792570321687,false]</script></body></html>
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/UNeUdORH.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.O6-qt5XN.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/UNeUdORH.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/DF0vjjh8.js"><script type="module" src="/_nuxt/UNeUdORH.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:"3aca01cb-a9af-4da3-9d17-d110d7e229c4",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792632725212,false]</script></body></html>
@@ -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/DJiNcGZq.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.DCwNI6d7.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DJiNcGZq.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/DsqCc3fC.js"><script type="module" src="/_nuxt/DJiNcGZq.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:"8a31ddf7-f214-42d6-b90e-fa6fcd47377d",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792570321688,false]</script></body></html>
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/UNeUdORH.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.O6-qt5XN.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/UNeUdORH.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/DF0vjjh8.js"><script type="module" src="/_nuxt/UNeUdORH.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:"3aca01cb-a9af-4da3-9d17-d110d7e229c4",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792632725213,false]</script></body></html>
@@ -1 +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`},sidebar:{list:`Listenansicht`,tree:`Baumansicht`,filter:`Schlüssel filtern`,view:`Ansicht der Schlüsselliste`}};export{e as default};
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`,plugins:`Plugins`,none:`Nichts gefunden`,duplicates:`Übersprungene doppelte Ressourcen: {count}`,skipped:`Übersprungene Presets und Plugins`,rawConfig:`Rohe Konfiguration`},prompt:{copied:`Kopiert`,copy:`Übersetzungs-Prompt kopieren`,hint:`Einen Prompt für ein LLM oder einen Agenten kopieren, der die fehlenden Texte übersetzt`,copyStale:`Prompt mit veralteten kopieren`,staleHint:`Prompt für ein LLM oder einen Agenten kopieren, der fehlende Nachrichten übersetzt und veraltete aktualisiert`,copyAll:`Übersetzungs-Prompt für alle Sprachen kopieren`,allHint:`Kopiert einen Prompt für ein LLM oder einen Agenten, der fehlende Nachrichten in jeder Sprache übersetzt`},usages:{all:`Alle ({count})`,dynamic:`Dynamisch ({count})`,dynamicHint:`Verwendungen mit berechnetem Schlüssel. Schlüssel unter ihrem Präfix gelten als verwendet.`,filter:`Nach Datei oder Schlüssel filtern`,missing:`Nicht definiert ({count})`,missingHint:`Schlüssel, die im Code verwendet, aber in der Quellsprache nicht definiert sind.`,unused:`Unbenutzt ({count})`,unusedHint:`In der Quellsprache definierte Schlüssel, die kein Code verwendet.`},value:{empty:`leer`,missing:`fehlt`},history:{title:`Verlauf`,local:`lokal geändert`,outdated:`veraltet`,outdatedHint:`Die Quellnachricht hat sich nach dieser Übersetzung geändert`,sourceThen:`Quelle damals`,sourceNow:`Quelle jetzt`,more:`und {count} weitere`,locales:`{count} Sprachen`},sidebar:{list:`Listenansicht`,tree:`Baumansicht`,filter:`Schlüssel filtern`,view:`Ansicht der Schlüsselliste`},diagnostics:{all:`Alle ({count})`,viewAll:`Alle anzeigen`,copyFix:`Prompt zur Behebung kopieren`,fixHint:`Kopiert einen Prompt für ein LLM oder einen Agenten, der alle Diagnosen dieses Projekts behebt`,fixCodeHint:`Kopiert einen Prompt für ein LLM oder einen Agenten, der die Diagnosen {code} behebt`}};export{e as default};
@@ -1 +1 @@
1
- import{Ct as e,Et as t,H as n,L as ee,M as r,P as i,Tt as a,_ as te,c as o,d as s,h as c,it as l,l as u,m as d,r as f,s as p,u as m}from"./B4prFwj0.js";import{u as ne}from"./D4dwYDex.js";import{S as h,i as re,m as g,n as _,p as ie,v as ae,y as oe}from"./DsqCc3fC.js";import{i as v,n as y}from"#entry";import{t as b}from"./ztSLDBsK.js";import{t as x}from"./DQNu8teu.js";import{n as se,t as ce}from"./JMXpOiMg.js";import{t as S}from"./CcXhso-T.js";var le={class:`grid gap-4 border-b border-base px-4 py-5`},C={class:`flex items-end gap-3`},w={class:`grid gap-1`},T={class:`label`},E={class:`flex items-center gap-3 font-mono text-2xl font-medium`},D={key:0,class:`pb-1 color-muted`},O={key:1,class:`badge mb-1.5`},k={key:0,class:`grid gap-1.5`},A={class:`h-2 flex border border-strong`},j={class:`font-mono text-xs color-muted tabular-nums`},M={key:1,class:`color-muted`},N={class:`truncate font-mono text-xs`},P={class:`truncate color-muted`},F={class:`truncate font-mono text-xs`},I={class:`truncate color-muted`},L={class:`flex min-w-0 items-center gap-2 font-mono text-xs`},ue={class:`truncate`},R={class:`truncate`},z={class:`truncate color-muted`},B={class:`font-mono text-xs color-muted`},V={key:0,class:`font-mono text-xs`},H={class:`flex-auto truncate`},U={key:4,class:`flex items-center gap-2 px-4 py-3 color-ok`},W=te({__name:`[locale]`,setup(te){let W=ne(),G=p(()=>String(W.params.locale)),K=p(()=>_.value?.locales.find(e=>e.code===G.value)),q=p(()=>G.value===_.value?.sourceLocale),J=g((e,t)=>e.keys(t)),de=g((e,t)=>e.analysis(t)),Y=p(()=>(J.value?.rows??[]).filter(e=>e.missing.includes(G.value)&&e.values[G.value]===void 0)),X=p(()=>(J.value?.rows??[]).filter(e=>e.missing.includes(G.value)&&e.values[G.value]!==void 0)),Z=p(()=>(J.value?.rows??[]).filter(e=>e.outdated.includes(G.value))),Q=p(()=>K.value&&K.value.total?K.value.outdated/K.value.total*100:0),$=p(()=>(de.value?.diagnostics??[]).filter(e=>e.locale===G.value&&(e.code===`placeholder-mismatch`||e.code===`invalid-syntax`)));function fe(){re(G.value)||ie(G.value)}return(te,p)=>(r(),u(b,null,{default:n(()=>[o(`header`,le,[o(`div`,C,[o(`div`,w,[o(`span`,T,t(l(h)(`locale.label`)),1),o(`h1`,E,[c(y,{code:G.value},null,8,[`code`]),d(` `+t(G.value),1)])]),K.value?(r(),s(`span`,D,t(l(oe)(G.value)??K.value.displayName),1)):m(``,!0),q.value?(r(),s(`span`,O,t(l(h)(`overview.source`)),1)):m(``,!0),p[1]||=o(`span`,{class:`flex-auto`},null,-1),c(l(v),{to:{path:`/keys`,query:{missing:G.value}},class:`btn-outline`,onClick:fe},{default:n(()=>[p[0]||=o(`span`,{class:`i-ph-table-duotone`},null,-1),d(` `+t(l(h)(`locale.openInGrid`)),1)]),_:1},8,[`to`]),q.value?m(``,!0):(r(),u(se,{key:2,text:l(ce)([{locale:G.value,stale:Z.value.length>0}]),label:Z.value.length?l(h)(`prompt.copyStale`):l(h)(`prompt.copy`),hint:Z.value.length?l(h)(`prompt.staleHint`):l(h)(`prompt.hint`)},null,8,[`text`,`label`,`hint`]))]),K.value?(r(),s(`div`,k,[o(`span`,A,[o(`span`,{class:`h-full bg-inverse`,style:a({width:`${Math.max(0,K.value.percent-Q.value)}%`})},null,4),o(`span`,{class:`h-full bg-[var(--x-warn)]`,style:a({width:`${Q.value}%`})},null,4)]),o(`span`,j,t(l(h)(`locale.progress`,{translated:K.value.translated,total:K.value.total,percent:l(ae)(K.value.percent)})),1)])):l(_)?(r(),s(`p`,M,t(l(h)(`locale.notFound`)),1)):m(``,!0)]),Y.value.length?(r(),u(x,{key:0,index:`01`,title:l(h)(`locale.missing`,{count:Y.value.length})},{default:n(()=>[(r(!0),s(f,null,i(Y.value,e=>(r(),u(l(v),{key:e.key,to:`/keys/${encodeURIComponent(e.key)}`,class:`focus-ring grid grid-cols-[minmax(0,20rem)_1fr] items-baseline gap-4 border-b border-base px-4 py-1.5 transition-colors last:border-b-0 hover:bg-hover`},{default:n(()=>[o(`span`,N,t(e.key),1),o(`span`,P,[c(S,{value:e.values[l(_)?.sourceLocale??``],inline:``},null,8,[`value`])])]),_:2},1032,[`to`]))),128))]),_:1},8,[`title`])):m(``,!0),X.value.length?(r(),u(x,{key:1,index:`02`,title:l(h)(`locale.empty`,{count:X.value.length})},{default:n(()=>[(r(!0),s(f,null,i(X.value,e=>(r(),u(l(v),{key:e.key,to:`/keys/${encodeURIComponent(e.key)}`,class:`focus-ring grid grid-cols-[minmax(0,20rem)_1fr] items-baseline gap-4 border-b border-base px-4 py-1.5 transition-colors last:border-b-0 hover:bg-hover`},{default:n(()=>[o(`span`,F,t(e.key),1),o(`span`,I,[c(S,{value:e.values[l(_)?.sourceLocale??``],inline:``},null,8,[`value`])])]),_:2},1032,[`to`]))),128))]),_:1},8,[`title`])):m(``,!0),Z.value.length?(r(),u(x,{key:2,index:`03`,title:l(h)(`locale.outdated`,{count:Z.value.length})},{default:n(()=>[(r(!0),s(f,null,i(Z.value,e=>(r(),u(l(v),{key:e.key,to:`/keys/${encodeURIComponent(e.key)}`,class:`focus-ring grid grid-cols-[minmax(0,20rem)_1fr_1fr] items-center gap-4 border-b border-base px-4 py-1.5 transition-colors last:border-b-0 hover:bg-hover`},{default:n(()=>[o(`span`,L,[p[2]||=o(`span`,{class:`i-ph-clock-counter-clockwise-duotone shrink-0 color-warn`},null,-1),o(`span`,ue,t(e.key),1)]),o(`span`,R,[c(S,{value:e.values[l(_)?.sourceLocale??``],inline:``},null,8,[`value`])]),o(`span`,z,[c(S,{value:e.values[G.value],inline:``},null,8,[`value`])])]),_:2},1032,[`to`]))),128))]),_:1},8,[`title`])):m(``,!0),$.value.length?(r(),u(x,{key:3,index:`04`,title:l(h)(`locale.problems`,{count:$.value.length})},{default:n(()=>[(r(!0),s(f,null,i($.value,(i,a)=>(r(),u(ee(i.key?l(v):`div`),{key:a,to:i.key?`/keys/${encodeURIComponent(i.key)}`:void 0,class:e([`flex items-center gap-2 border-b border-base px-4 py-1.5 last:border-b-0`,i.key&&`transition-colors hover:bg-hover`])},{default:n(()=>[o(`span`,{class:e(i.severity===`error`?`i-ph-x-circle-duotone color-error`:`i-ph-warning-duotone color-warn`)},null,2),o(`span`,B,t(i.code),1),i.key?(r(),s(`span`,V,t(i.key),1)):m(``,!0),o(`span`,H,t(i.message),1)]),_:2},1032,[`to`,`class`]))),128))]),_:1},8,[`title`])):m(``,!0),K.value&&l(J)&&!Y.value.length&&!X.value.length&&!Z.value.length&&!$.value.length?(r(),s(`p`,U,[p[3]||=o(`span`,{class:`i-ph-check-circle-duotone`},null,-1),d(` `+t(l(h)(`locale.complete`)),1)])):m(``,!0)]),_:1}))}});export{W as default};
1
+ import{Ct as e,Et as t,H as n,L as ee,M as r,P as i,Tt as a,_ as te,c as o,d as s,h as c,it as l,l as u,m as d,r as f,s as p,u as m}from"./B4prFwj0.js";import{u as ne}from"./D4dwYDex.js";import{S as h,i as re,m as g,n as _,p as ie,v as ae,y as oe}from"./DF0vjjh8.js";import{i as v,n as y}from"#entry";import{n as b,r as se}from"./HmocOjc4.js";import{t as ce}from"./ztSLDBsK.js";import{t as x}from"./DQNu8teu.js";import{t as S}from"./f6bf8PNO.js";var le={class:`grid gap-4 border-b border-base px-4 py-5`},C={class:`flex items-end gap-3`},w={class:`grid gap-1`},T={class:`label`},E={class:`flex items-center gap-3 font-mono text-2xl font-medium`},D={key:0,class:`pb-1 color-muted`},O={key:1,class:`badge mb-1.5`},k={key:0,class:`grid gap-1.5`},A={class:`h-2 flex border border-strong`},j={class:`font-mono text-xs color-muted tabular-nums`},M={key:1,class:`color-muted`},N={class:`truncate font-mono text-xs`},P={class:`truncate color-muted`},F={class:`truncate font-mono text-xs`},I={class:`truncate color-muted`},L={class:`flex min-w-0 items-center gap-2 font-mono text-xs`},ue={class:`truncate`},R={class:`truncate`},z={class:`truncate color-muted`},B={class:`font-mono text-xs color-muted`},V={key:0,class:`font-mono text-xs`},H={class:`flex-auto truncate`},U={key:4,class:`flex items-center gap-2 px-4 py-3 color-ok`},W=te({__name:`[locale]`,setup(te){let W=ne(),G=p(()=>String(W.params.locale)),K=p(()=>_.value?.locales.find(e=>e.code===G.value)),q=p(()=>G.value===_.value?.sourceLocale),J=g((e,t)=>e.keys(t)),de=g((e,t)=>e.analysis(t)),Y=p(()=>(J.value?.rows??[]).filter(e=>e.missing.includes(G.value)&&e.values[G.value]===void 0)),X=p(()=>(J.value?.rows??[]).filter(e=>e.missing.includes(G.value)&&e.values[G.value]!==void 0)),Z=p(()=>(J.value?.rows??[]).filter(e=>e.outdated.includes(G.value))),Q=p(()=>K.value&&K.value.total?K.value.outdated/K.value.total*100:0),$=p(()=>(de.value?.diagnostics??[]).filter(e=>e.locale===G.value&&(e.code===`placeholder-mismatch`||e.code===`invalid-syntax`)));function fe(){re(G.value)||ie(G.value)}return(te,p)=>(r(),u(ce,null,{default:n(()=>[o(`header`,le,[o(`div`,C,[o(`div`,w,[o(`span`,T,t(l(h)(`locale.label`)),1),o(`h1`,E,[c(y,{code:G.value},null,8,[`code`]),d(` `+t(G.value),1)])]),K.value?(r(),s(`span`,D,t(l(oe)(G.value)??K.value.displayName),1)):m(``,!0),q.value?(r(),s(`span`,O,t(l(h)(`overview.source`)),1)):m(``,!0),p[1]||=o(`span`,{class:`flex-auto`},null,-1),c(l(v),{to:{path:`/keys`,query:{missing:G.value}},class:`btn-outline`,onClick:fe},{default:n(()=>[p[0]||=o(`span`,{class:`i-ph-table-duotone`},null,-1),d(` `+t(l(h)(`locale.openInGrid`)),1)]),_:1},8,[`to`]),q.value?m(``,!0):(r(),u(se,{key:2,text:l(b)([{locale:G.value,stale:Z.value.length>0}]),label:Z.value.length?l(h)(`prompt.copyStale`):l(h)(`prompt.copy`),hint:Z.value.length?l(h)(`prompt.staleHint`):l(h)(`prompt.hint`)},null,8,[`text`,`label`,`hint`]))]),K.value?(r(),s(`div`,k,[o(`span`,A,[o(`span`,{class:`h-full bg-inverse`,style:a({width:`${Math.max(0,K.value.percent-Q.value)}%`})},null,4),o(`span`,{class:`h-full bg-[var(--x-warn)]`,style:a({width:`${Q.value}%`})},null,4)]),o(`span`,j,t(l(h)(`locale.progress`,{translated:K.value.translated,total:K.value.total,percent:l(ae)(K.value.percent)})),1)])):l(_)?(r(),s(`p`,M,t(l(h)(`locale.notFound`)),1)):m(``,!0)]),Y.value.length?(r(),u(x,{key:0,index:`01`,title:l(h)(`locale.missing`,{count:Y.value.length})},{default:n(()=>[(r(!0),s(f,null,i(Y.value,e=>(r(),u(l(v),{key:e.key,to:`/keys/${encodeURIComponent(e.key)}`,class:`focus-ring grid grid-cols-[minmax(0,20rem)_1fr] items-baseline gap-4 border-b border-base px-4 py-1.5 transition-colors last:border-b-0 hover:bg-hover`},{default:n(()=>[o(`span`,N,t(e.key),1),o(`span`,P,[c(S,{value:e.values[l(_)?.sourceLocale??``],inline:``},null,8,[`value`])])]),_:2},1032,[`to`]))),128))]),_:1},8,[`title`])):m(``,!0),X.value.length?(r(),u(x,{key:1,index:`02`,title:l(h)(`locale.empty`,{count:X.value.length})},{default:n(()=>[(r(!0),s(f,null,i(X.value,e=>(r(),u(l(v),{key:e.key,to:`/keys/${encodeURIComponent(e.key)}`,class:`focus-ring grid grid-cols-[minmax(0,20rem)_1fr] items-baseline gap-4 border-b border-base px-4 py-1.5 transition-colors last:border-b-0 hover:bg-hover`},{default:n(()=>[o(`span`,F,t(e.key),1),o(`span`,I,[c(S,{value:e.values[l(_)?.sourceLocale??``],inline:``},null,8,[`value`])])]),_:2},1032,[`to`]))),128))]),_:1},8,[`title`])):m(``,!0),Z.value.length?(r(),u(x,{key:2,index:`03`,title:l(h)(`locale.outdated`,{count:Z.value.length})},{default:n(()=>[(r(!0),s(f,null,i(Z.value,e=>(r(),u(l(v),{key:e.key,to:`/keys/${encodeURIComponent(e.key)}`,class:`focus-ring grid grid-cols-[minmax(0,20rem)_1fr_1fr] items-center gap-4 border-b border-base px-4 py-1.5 transition-colors last:border-b-0 hover:bg-hover`},{default:n(()=>[o(`span`,L,[p[2]||=o(`span`,{class:`i-ph-clock-counter-clockwise-duotone shrink-0 color-warn`},null,-1),o(`span`,ue,t(e.key),1)]),o(`span`,R,[c(S,{value:e.values[l(_)?.sourceLocale??``],inline:``},null,8,[`value`])]),o(`span`,z,[c(S,{value:e.values[G.value],inline:``},null,8,[`value`])])]),_:2},1032,[`to`]))),128))]),_:1},8,[`title`])):m(``,!0),$.value.length?(r(),u(x,{key:3,index:`04`,title:l(h)(`locale.problems`,{count:$.value.length})},{default:n(()=>[(r(!0),s(f,null,i($.value,(i,a)=>(r(),u(ee(i.key?l(v):`div`),{key:a,to:i.key?`/keys/${encodeURIComponent(i.key)}`:void 0,class:e([`flex items-center gap-2 border-b border-base px-4 py-1.5 last:border-b-0`,i.key&&`transition-colors hover:bg-hover`])},{default:n(()=>[o(`span`,{class:e(i.severity===`error`?`i-ph-x-circle-duotone color-error`:`i-ph-warning-duotone color-warn`)},null,2),o(`span`,B,t(i.code),1),i.key?(r(),s(`span`,V,t(i.key),1)):m(``,!0),o(`span`,H,t(i.message),1)]),_:2},1032,[`to`,`class`]))),128))]),_:1},8,[`title`])):m(``,!0),K.value&&l(J)&&!Y.value.length&&!X.value.length&&!Z.value.length&&!$.value.length?(r(),s(`p`,U,[p[3]||=o(`span`,{class:`i-ph-check-circle-duotone`},null,-1),d(` `+t(l(h)(`locale.complete`)),1)])):m(``,!0)]),_:1}))}});export{W as default};
@@ -1 +1 @@
1
- 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`},sidebar:{list:`Vista de lista`,tree:`Vista de árbol`,filter:`Filtrar claves`,view:`Vista de la lista de claves`}};export{e as default};
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`,plugins:`Plugins`,none:`No se encontró nada`,duplicates:`Recursos duplicados omitidos: {count}`,skipped:`Presets y plugins omitidos`,rawConfig:`Configuración sin procesar`},prompt:{copied:`Copiado`,copy:`Copiar prompt de traducción`,hint:`Copia un prompt para que un LLM o agente traduzca los mensajes que faltan`,copyStale:`Copiar prompt con desactualizadas`,staleHint:`Copia un prompt para un LLM o agente que traduce los mensajes que faltan y actualiza los desactualizados`,copyAll:`Copiar el prompt de traducción de todos los idiomas`,allHint:`Copia un prompt para un LLM o agente que traduzca lo que falta en cada idioma`},usages:{all:`Todos ({count})`,dynamic:`Dinámicos ({count})`,dynamicHint:`Usos con una clave calculada. Las claves bajo su prefijo cuentan como usadas.`,filter:`Filtrar por archivo o clave`,missing:`No definidas ({count})`,missingHint:`Claves usadas en el código pero no definidas en el idioma de origen.`,unused:`Sin usar ({count})`,unusedHint:`Claves definidas en el idioma de origen que ningún código usa.`},value:{empty:`vacío`,missing:`falta`},history:{title:`Historial`,local:`cambiado localmente`,outdated:`desactualizada`,outdatedHint:`El mensaje de origen cambió después de esta traducción`,sourceThen:`Origen entonces`,sourceNow:`Origen ahora`,more:`y {count} más`,locales:`{count} idiomas`},sidebar:{list:`Vista de lista`,tree:`Vista de árbol`,filter:`Filtrar claves`,view:`Vista de la lista de claves`},diagnostics:{all:`Todos ({count})`,viewAll:`Ver todos`,copyFix:`Copiar prompt de corrección`,fixHint:`Copia un prompt para un LLM o agente que corrige todos los diagnósticos de este proyecto`,fixCodeHint:`Copia un prompt para un LLM o agente que corrige los diagnósticos {code}`}};export{e as default};
@@ -0,0 +1 @@
1
+ import{Ct as e,Et as t,F as n,H as r,M as i,P as a,Q as o,Tt as s,_ as c,c as l,d as u,h as d,it as f,l as p,m,r as h,s as g,u as _}from"./B4prFwj0.js";import{S as v,a as y,l as b,n as x,t as S,v as ee,y as te}from"./DF0vjjh8.js";import{i as C,n as w}from"#entry";import{i as T,n as E,r as D}from"./HmocOjc4.js";import{t as O}from"./ztSLDBsK.js";import{t as k}from"./DQNu8teu.js";import{t as A}from"./f6bf8PNO.js";import{t as j}from"./BuVS4UTW.js";import{t as M}from"./D9175g8g.js";var N={class:`inline-flex items-center gap-1 font-mono text-xs color-muted`},P={key:0,class:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-xs`},F={class:`flex items-center gap-1.5 font-mono`},I=c({__name:`ChangedValues`,props:{project:{},keyName:{},locales:{}},setup(e){let s=e,c=g(()=>s.locales??y.value.map(e=>e.code)),b=o();async function x(){b.value=await S.value?.key(s.project,s.keyName)}return(e,o)=>(i(),p(T,{label:f(v)(`history.locales`,{count:c.value.length}),align:`left`,onShow:x},{trigger:r(()=>[n(e.$slots,`default`,{},()=>[l(`span`,N,[c.value.length===1?(i(),u(h,{key:0},[d(w,{code:c.value[0]},null,8,[`code`]),m(t(c.value[0]),1)],64)):(i(),u(h,{key:1},[m(t(f(v)(`history.locales`,{count:c.value.length})),1)],64))])])]),default:r(()=>[b.value?(i(),u(`div`,P,[(i(!0),u(h,null,a(c.value,e=>(i(),u(h,{key:e},[l(`span`,F,[d(w,{code:e},null,8,[`code`]),m(t(e),1)]),d(A,{value:b.value.messages.find(t=>t.locale===e)?.value,placeholders:b.value.messages.find(t=>t.locale===e)?.placeholders??[]},null,8,[`value`,`placeholders`])],64))),128))])):_(``,!0)]),_:3},8,[`label`]))}}),L={class:`grid grid-cols-2 border-b border-base md:grid-cols-4`},R={class:`flex items-center gap-2 font-mono`},z={key:0,class:`badge`},B=[`title`],V={class:`text-xs color-muted tabular-nums`},H={key:0,class:`color-warn`},U={class:`flex w-12 shrink-0 justify-center`},W={class:`grid md:grid-cols-2`},G={class:`font-mono text-xs color-error tabular-nums`},K={class:`font-mono text-xs color-warn tabular-nums`},q={key:0,class:`px-4 py-3 color-muted`},J={class:`flex-auto font-mono text-xs`},Y={class:`font-mono tabular-nums`},X={class:`flex flex-wrap gap-1 px-4 py-3`},Z={key:0,class:`color-muted`},ne={class:`flex flex-wrap gap-1 px-4 py-3`},re={key:0,class:`color-muted`},ie={key:1,class:`color-muted`},ae=[`aria-expanded`,`onClick`],oe=[`title`],se={key:0,class:`border-t border-base`},ce={class:`truncate font-mono text-xs`},le={key:0,class:`py-1.5 pl-10 pr-4 text-xs color-muted`},Q=20,$=c({__name:`index`,setup(n){function c(e){return e.total===0?0:e.outdated/e.total*100}let S=o(new Set);function T(e,t){return t===0!==S.value.has(e.revision??`local`)}function A(e){let t=e.revision??`local`,n=new Set(S.value);n.delete(t)||n.add(t),S.value=n}let N=g(()=>b.value.slice(0,Q)),P=g(()=>(x.value?.locales??[]).filter(e=>e.code!==x.value?.sourceLocale)),F=g(()=>P.value.filter(e=>e.missing+e.empty+e.outdated>0)),$=g(()=>x.value&&[{label:v(`overview.keys`),value:x.value.keys,to:`/keys`},{label:v(`overview.resources`),value:x.value.resources,to:`/project`},{label:v(`overview.usages`),value:x.value.usages,to:`/usages`},{label:v(`overview.locales`),value:x.value.locales.length,to:`/keys`}]);return(n,o)=>f(x)?(i(),p(O,{key:0},{default:r(()=>[l(`div`,L,[(i(!0),u(h,null,a($.value,e=>(i(),p(f(C),{key:e.label,to:e.to,class:`focus-ring border-r border-base transition-colors last:border-r-0 hover:bg-hover`},{default:r(()=>[d(M,{label:e.label,value:e.value},null,8,[`label`,`value`])]),_:2},1032,[`to`]))),128))]),d(k,{index:`01`,title:f(v)(`overview.coverage`)},{aside:r(()=>[o[0]||=l(`span`,{class:`flex-auto`},null,-1),P.value.length?(i(),p(D,{key:0,text:f(E)((F.value.length?F.value:P.value).map(e=>({locale:e.code,stale:e.outdated>0}))),label:f(v)(`prompt.copyAll`),hint:f(v)(`prompt.allHint`)},null,8,[`text`,`label`,`hint`])):_(``,!0)]),default:r(()=>[(i(!0),u(h,null,a(f(y),n=>(i(),u(`div`,{key:n.code,class:`flex items-center border-b border-base transition-colors last:border-b-0 hover:bg-hover`},[d(f(C),{to:`/locales/${encodeURIComponent(n.code)}`,class:`focus-ring grid flex-auto grid-cols-[7rem_1fr_4.5rem_14rem] items-center gap-4 py-2 pl-4`},{default:r(()=>[l(`span`,R,[d(w,{code:n.code},null,8,[`code`]),m(` `+t(n.code)+` `,1),n.code===f(x).sourceLocale?(i(),u(`span`,z,t(f(v)(`overview.source`)),1)):_(``,!0)]),l(`span`,{class:`h-1.5 flex border border-strong`,title:f(te)(n.code)},[l(`span`,{class:`h-full bg-inverse`,style:s({width:`${Math.max(0,n.percent-c(n))}%`})},null,4),l(`span`,{class:`h-full bg-[var(--x-warn)]`,style:s({width:`${c(n)}%`})},null,4)],8,B),l(`span`,{class:e([`text-right font-mono tabular-nums`,n.percent>=100&&`color-ok`])},t(f(ee)(n.percent)),3),l(`span`,V,[m(t(f(v)(`overview.missing`,{missing:n.missing,empty:n.empty}))+` `,1),n.outdated?(i(),u(`span`,H,`· `+t(f(v)(`overview.outdated`,{count:n.outdated})),1)):_(``,!0)])]),_:2},1032,[`to`]),l(`span`,U,[n.code===f(x).sourceLocale?_(``,!0):(i(),p(D,{key:0,text:f(E)([{locale:n.code,stale:n.outdated>0}]),label:n.outdated?f(v)(`prompt.copyStale`):f(v)(`prompt.copy`),hint:n.outdated?f(v)(`prompt.staleHint`):f(v)(`prompt.hint`)},null,8,[`text`,`label`,`hint`]))])]))),128))]),_:1},8,[`title`]),l(`div`,W,[d(k,{index:`02`,title:f(v)(`overview.diagnostics`),class:`md:border-r`},{aside:r(()=>[o[1]||=l(`span`,{class:`flex-auto`},null,-1),d(f(C),{to:`/diagnostics`,class:`focus-ring font-mono text-xs color-muted hover:underline`},{default:r(()=>[m(t(f(v)(`diagnostics.viewAll`)),1)]),_:1}),l(`span`,G,t(f(v)(`overview.errors`,{count:f(x).diagnostics.errors})),1),l(`span`,K,t(f(v)(`overview.warnings`,{count:f(x).diagnostics.warnings})),1)]),default:r(()=>[f(x).diagnostics.byCode.length?_(``,!0):(i(),u(`p`,q,t(f(v)(`overview.clean`)),1)),(i(!0),u(h,null,a(f(x).diagnostics.byCode,n=>(i(),p(f(C),{key:n.code,to:{path:`/diagnostics`,query:{code:n.code}},class:`focus-ring flex items-center gap-2 px-4 py-1.5 transition-colors hover:bg-hover`},{default:r(()=>[l(`span`,{class:e(n.severity===`error`?`i-ph-x-circle-duotone color-error`:`i-ph-warning-duotone color-warn`)},null,2),l(`span`,J,t(n.code),1),l(`span`,Y,t(n.count),1),o[2]||=l(`span`,{class:`i-ph-caret-right-duotone text-xs color-muted`},null,-1)]),_:2},1032,[`to`]))),128))]),_:1},8,[`title`]),l(`div`,null,[d(k,{index:`03`,title:f(v)(`overview.presets`)},{default:r(()=>[l(`div`,X,[(i(!0),u(h,null,a(f(x).presets,e=>(i(),u(`span`,{key:e,class:`border border-strong px-1.5 font-mono text-xs`},t(e),1))),128)),f(x).presets.length?_(``,!0):(i(),u(`span`,Z,t(f(v)(`overview.noPresets`)),1))])]),_:1},8,[`title`]),d(k,{index:`04`,title:f(v)(`overview.recent`)},{default:r(()=>[l(`div`,ne,[(i(!0),u(h,null,a(N.value,e=>(i(),p(I,{key:e,project:f(x).name,"key-name":e},{default:r(()=>[d(f(C),{to:`/keys/${encodeURIComponent(e)}`,class:`focus-ring border border-base px-1.5 font-mono text-xs hover:border-inverse`},{default:r(()=>[m(t(e),1)]),_:2},1032,[`to`])]),_:2},1032,[`project`,`key-name`]))),128)),f(b).length?f(b).length>Q?(i(),u(`span`,ie,t(f(v)(`history.more`,{count:f(b).length-Q})),1)):_(``,!0):(i(),u(`span`,re,t(f(v)(`overview.noRecent`)),1))])]),_:1},8,[`title`])])]),f(x).changes.length?(i(),p(k,{key:0,index:`05`,title:f(v)(`history.title`)},{default:r(()=>[(i(!0),u(h,null,a(f(x).changes,(n,s)=>(i(),u(`div`,{key:n.revision??`local`,class:`border-b border-base last:border-b-0`},[l(`button`,{type:`button`,class:`focus-ring flex w-full items-center gap-3 px-4 py-2 text-left transition-colors hover:bg-hover`,"aria-expanded":T(n,s),onClick:e=>A(n)},[l(`span`,{class:e([`i-ph-caret-right-duotone shrink-0 transition-transform`,T(n,s)&&`rotate-90`])},null,2),d(j,{change:n},null,8,[`change`]),o[3]||=l(`span`,{class:`flex-auto`},null,-1),l(`span`,{class:`badge`,title:f(v)(`overview.keys`)},t(n.total),9,oe)],8,ae),T(n,s)?(i(),u(`div`,se,[(i(!0),u(h,null,a(n.keys,e=>(i(),p(f(C),{key:e.key,to:`/keys/${encodeURIComponent(e.key)}`,class:`focus-ring grid grid-cols-[minmax(0,20rem)_1fr] items-center gap-4 border-b border-base py-1.5 pl-10 pr-4 transition-colors last:border-b-0 hover:bg-hover`},{default:r(()=>[l(`span`,ce,t(e.key),1),d(I,{project:f(x).name,"key-name":e.key,locales:e.locales},null,8,[`project`,`key-name`,`locales`])]),_:2},1032,[`to`]))),128)),n.total>n.keys.length?(i(),u(`p`,le,t(f(v)(`history.more`,{count:n.total-n.keys.length})),1)):_(``,!0)])):_(``,!0)]))),128))]),_:1},8,[`title`])):_(``,!0)]),_:1})):_(``,!0)}});export{$ as default};
@@ -1 +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`},sidebar:{list:`Visualização em lista`,tree:`Visualização em árvore`,filter:`Filtrar chaves`,view:`Visualização da lista de chaves`}};export{e as default};
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`,plugins:`Plugins`,none:`Nada encontrado`,duplicates:`Recursos duplicados ignorados: {count}`,skipped:`Presets e plugins ignorados`,rawConfig:`Configuração bruta`},prompt:{copied:`Copiado`,copy:`Copiar prompt de tradução`,hint:`Copiar um prompt para um LLM ou agente traduzir as mensagens ausentes`,copyStale:`Copiar prompt com desatualizadas`,staleHint:`Copia um prompt para um LLM ou agente que traduz as mensagens ausentes e atualiza as desatualizadas`,copyAll:`Copiar o prompt de tradução de todos os idiomas`,allHint:`Copia um prompt para um LLM ou agente que traduza o que falta em cada idioma`},usages:{all:`Todos ({count})`,dynamic:`Dinâmicos ({count})`,dynamicHint:`Usos com chave calculada. Chaves sob o prefixo contam como usadas.`,filter:`Filtrar por arquivo ou chave`,missing:`Não definidas ({count})`,missingHint:`Chaves usadas no código, mas não definidas no idioma de origem.`,unused:`Não usadas ({count})`,unusedHint:`Chaves definidas no idioma de origem que nenhum código usa.`},value:{empty:`vazio`,missing:`ausente`},history:{title:`Histórico`,local:`alterado localmente`,outdated:`desatualizada`,outdatedHint:`A mensagem de origem mudou depois desta tradução`,sourceThen:`Origem na época`,sourceNow:`Origem agora`,more:`e mais {count}`,locales:`{count} idiomas`},sidebar:{list:`Visualização em lista`,tree:`Visualização em árvore`,filter:`Filtrar chaves`,view:`Visualização da lista de chaves`},diagnostics:{all:`Todos ({count})`,viewAll:`Ver todos`,copyFix:`Copiar prompt de correção`,fixHint:`Copia um prompt para um LLM ou agente que corrige todos os diagnósticos deste projeto`,fixCodeHint:`Copia um prompt para um LLM ou agente que corrige os diagnósticos {code}`}};export{e as default};
@@ -0,0 +1 @@
1
+ import{Ct as e,Et as t,H as n,M as r,P as i,Q as ee,Tt as a,_ as o,c as s,d as c,h as l,it as u,j as te,l as d,m as f,r as p,s as m,tt as h,u as g}from"./B4prFwj0.js";import{S as _,c as ne,t as re}from"./DF0vjjh8.js";import{t as v}from"./DwGgiVOP.js";import{t as y}from"./ztSLDBsK.js";import{t as b}from"./DQNu8teu.js";import{t as ie}from"./D9175g8g.js";var ae={class:`grid grid-cols-2 border-b border-base md:grid-cols-4`},oe={class:`font-mono text-xs color-error`},se={class:`text-xs color-muted`},x={class:`flex flex-wrap gap-2 p-4`},S={class:`label`},C={key:0,class:`flex flex-wrap items-center gap-2 border-t border-base px-4 py-2`},w={class:`label`},T={class:`flex cursor-pointer list-none items-center gap-2 px-4 py-2 hover:bg-hover`},E={class:`flex-auto font-mono text-xs`},D={class:`label`},O={class:`grid gap-1 pb-3 pl-10 pr-4`},k={key:0,class:`px-4 py-3 text-xs color-muted`},A={key:1,class:`group border-t border-base`},j={class:`flex cursor-pointer list-none items-center gap-2 px-4 py-2 hover:bg-hover`},M={class:`flex-auto text-xs color-muted`},N={class:`font-mono`},P={class:`grid md:grid-cols-2`},F={class:`flex items-baseline gap-2 font-mono text-xs`},I={class:`flex-auto`},L={class:`color-faint`},R={class:`tabular-nums`},z={class:`h-1 border border-strong`},B={key:0,class:`px-4 py-3 text-xs color-muted`},V={class:`flex items-baseline gap-2 font-mono text-xs`},H={class:`flex-auto`},U={class:`color-faint`},ce={class:`tabular-nums color-muted`},W={class:`h-1 border border-strong`},G={key:0,class:`px-4 py-3 text-xs color-muted`},le={class:`flex-auto`},ue={class:`color-muted`},de={class:`flex-auto`},fe={class:`color-muted`},pe={class:`group`},me={class:`flex cursor-pointer list-none items-center gap-2 px-4 py-2 hover:bg-hover`},he={class:`label`},ge={class:`of-x-auto border-t border-base p-4 font-mono text-xs leading-5 color-muted`},K=o({__name:`project`,setup(o){let K=h();te(async()=>{K.value=await re.value.explain()});let q=m(()=>K.value?.projects.find(e=>e.name===ne.value)),J=ee(!1),Y=m(()=>(q.value?.presets??[]).filter(e=>J.value||Z(e.reason))),X=m(()=>(q.value?.presets.length??0)-Y.value.length);function Z(e){return e===`listed`||e===`detected`}let Q=m(()=>(q.value?.formats??[]).filter(e=>e.resources>0)),_e=m(()=>Math.max(1,...Q.value.map(e=>e.resources))),ve=m(()=>Math.max(1,...(q.value?.scanners??[]).map(e=>e.files))),ye=m(()=>q.value?.finders.reduce((e,t)=>e+t.resources.length,0)??0),$=m(()=>(q.value?.errors.length??0)+(q.value?.conflicts.length??0)),be=m(()=>q.value&&[{label:_(`project.presets`),value:q.value.presets.filter(e=>Z(e.reason)).length},{label:_(`project.finders`),value:q.value.finders.length},{label:_(`overview.resources`),value:ye.value},{label:_(`project.problems`),value:$.value}]),xe=m(()=>Object.entries(q.value?.config.origins??{}));return(ee,o)=>q.value?(r(),d(y,{key:0},{default:n(()=>[s(`div`,ae,[(r(!0),c(p,null,i(be.value,t=>(r(),d(ie,{key:t.label,label:t.label,value:t.value,class:e([`border-r border-base last:border-r-0 max-md:nth-[2n]:border-r-0`,t.label===u(_)(`project.problems`)&&t.value>0&&`color-error`])},null,8,[`label`,`value`,`class`]))),128))]),$.value?(r(),d(b,{key:0,title:u(_)(`project.problems`)},{default:n(()=>[(r(!0),c(p,null,i(q.value.errors,(e,n)=>(r(),c(`div`,{key:`e${n}`,class:`flex flex-wrap items-center gap-x-3 gap-y-1 border-b border-base px-4 py-2 last:border-b-0`},[o[1]||=s(`span`,{class:`i-ph-warning-circle-duotone color-error`},null,-1),s(`span`,oe,t(e.name),1),s(`span`,se,t(e.why),1),e.path?(r(),d(v,{key:0,path:e.path},null,8,[`path`])):g(``,!0)]))),128)),(r(!0),c(p,null,i(q.value.conflicts,e=>(r(),c(`div`,{key:e.extension,class:`flex items-center gap-3 border-b border-base px-4 py-2 text-xs color-warn last:border-b-0`},[o[2]||=s(`span`,{class:`i-ph-warning-duotone`},null,-1),f(` `+t(u(_)(`project.conflict`,{extension:e.extension,winner:e.winner,loser:e.loser})),1)]))),128))]),_:1},8,[`title`])):g(``,!0),l(b,{title:u(_)(`project.presets`)},{default:n(()=>[s(`div`,x,[(r(!0),c(p,null,i(Y.value,n=>(r(),c(`span`,{key:n.name,class:e([`inline-flex items-center gap-1.5 border px-2 py-1 font-mono text-xs`,Z(n.reason)?`border-strong`:`border-base color-muted`])},[s(`span`,{class:e(Z(n.reason)?`i-ph-check-circle-duotone color-ok`:`i-ph-circle-duotone color-faint`)},null,2),f(` `+t(n.name)+` `,1),s(`span`,S,t(n.reason),1)],2))),128)),X.value?(r(),c(`button`,{key:0,class:`btn-ghost h-7`,onClick:o[0]||=e=>J.value=!0},[o[3]||=s(`span`,{class:`i-ph-dots-three-duotone`},null,-1),f(` `+t(u(_)(`project.showAllPresets`))+` (`+t(X.value)+`) `,1)])):g(``,!0)]),q.value.plugins.length?(r(),c(`div`,C,[s(`span`,w,t(u(_)(`project.plugins`)),1),(r(!0),c(p,null,i(q.value.plugins,e=>(r(),c(`span`,{key:e,class:`badge`},t(e),1))),128))])):g(``,!0)]),_:1},8,[`title`]),l(b,{title:u(_)(`project.finders`)},{default:n(()=>[(r(!0),c(p,null,i(q.value.finders,e=>(r(),c(`details`,{key:e.id,class:`group border-b border-base last:border-b-0`},[s(`summary`,T,[o[4]||=s(`span`,{class:`i-ph-caret-right-duotone text-xs color-muted transition-transform group-open:rotate-90`},null,-1),s(`span`,E,t(e.id),1),s(`span`,D,t(u(_)(`project.resources`,{count:e.resources.length})),1)]),s(`div`,O,[(r(!0),c(p,null,i(e.resources,e=>(r(),d(v,{key:e,path:e},null,8,[`path`]))),128))])]))),128)),q.value.finders.length?g(``,!0):(r(),c(`div`,k,t(u(_)(`project.none`)),1)),q.value.duplicates.length?(r(),c(`details`,A,[s(`summary`,j,[o[5]||=s(`span`,{class:`i-ph-caret-right-duotone text-xs color-muted transition-transform group-open:rotate-90`},null,-1),s(`span`,M,t(u(_)(`project.duplicates`,{count:q.value.duplicates.length})),1)]),(r(!0),c(p,null,i(q.value.duplicates,e=>(r(),c(`div`,{key:`${e.finder}:${e.path}`,class:`flex flex-wrap items-center gap-2 pb-2 pl-10 pr-4 text-xs color-muted`},[l(v,{path:e.path},null,8,[`path`]),s(`span`,N,t(e.finder)+` → `+t(e.keptFrom),1)]))),128))])):g(``,!0)]),_:1},8,[`title`]),s(`div`,P,[l(b,{title:u(_)(`project.formats`),class:`md:border-r`},{default:n(()=>[(r(!0),c(p,null,i(Q.value,e=>(r(),c(`div`,{key:e.id,class:`grid gap-1.5 border-b border-base px-4 py-2 last:border-b-0`},[s(`div`,F,[s(`span`,I,[f(t(e.id)+` `,1),s(`span`,L,t(e.extensions.join(`, `)),1)]),s(`span`,R,t(e.resources),1)]),s(`span`,z,[s(`span`,{class:`block h-full bg-inverse`,style:a({width:`${e.resources/_e.value*100}%`})},null,4)])]))),128)),Q.value.length?g(``,!0):(r(),c(`div`,B,t(u(_)(`project.none`)),1))]),_:1},8,[`title`]),l(b,{title:u(_)(`project.scanners`)},{default:n(()=>[(r(!0),c(p,null,i(q.value.scanners,e=>(r(),c(`div`,{key:e.id,class:`grid gap-1.5 border-b border-base px-4 py-2 last:border-b-0`},[s(`div`,V,[s(`span`,H,[f(t(e.id)+` `,1),s(`span`,U,t(e.extensions.join(`, `)),1)]),s(`span`,ce,t(u(_)(`project.files`,{count:e.files})),1)]),s(`span`,W,[s(`span`,{class:`block h-full bg-inverse`,style:a({width:`${e.files/ve.value*100}%`})},null,4)])]))),128)),q.value.scanners.length?g(``,!0):(r(),c(`div`,G,t(u(_)(`project.none`)),1))]),_:1},8,[`title`])]),q.value.skipped.length?(r(),d(b,{key:1,title:u(_)(`project.skipped`)},{default:n(()=>[(r(!0),c(p,null,i(q.value.skipped,e=>(r(),c(`div`,{key:e.name,class:`flex gap-3 border-b border-base px-4 py-2 font-mono text-xs last:border-b-0`},[s(`span`,le,t(e.name),1),s(`span`,ue,t(e.reason),1)]))),128))]),_:1},8,[`title`])):g(``,!0),l(b,{title:u(_)(`project.config`)},{default:n(()=>[(r(!0),c(p,null,i(xe.value,([e,n])=>(r(),c(`div`,{key:e,class:`flex gap-2 border-b border-base px-4 py-1.5 font-mono text-xs`},[s(`span`,de,t(e),1),s(`span`,fe,t(n),1)]))),128)),s(`details`,pe,[s(`summary`,me,[o[6]||=s(`span`,{class:`i-ph-caret-right-duotone text-xs color-muted transition-transform group-open:rotate-90`},null,-1),s(`span`,he,t(u(_)(`project.rawConfig`)),1)]),s(`pre`,ge,t(JSON.stringify(q.value.config,null,2)),1)])]),_:1},8,[`title`])]),_:1})):g(``,!0)}});export{K as default};
@@ -1 +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"./DsqCc3fC.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};
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"./DF0vjjh8.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};
@@ -1 +1 @@
1
- import{Ct as e,Et as t,M as n,P as r,_ as i,c as a,d as o,it as s,m as c,r as l}from"./B4prFwj0.js";import{S as u}from"./DsqCc3fC.js";import{n as d,r as f}from"./0cXQUs3T.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};
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"./DF0vjjh8.js";import{n as d,r as f}from"./DwGgiVOP.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};
@@ -1 +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}`},sidebar:{list:`Список`,tree:`Дерево`,filter:`Фильтр ключей`,view:`Вид списка ключей`}};export{e as default};
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:`Показать все пресеты`,plugins:`Плагины`,none:`Ничего не найдено`,duplicates:`Пропущено повторяющихся ресурсов: {count}`,skipped:`Пропущенные пресеты и плагины`,rawConfig:`Исходная конфигурация`},prompt:{copied:`Скопировано`,copy:`Копировать промпт для перевода`,hint:`Скопировать промпт для LLM или агента, который переведёт недостающие сообщения`,copyStale:`Копировать промпт с устаревшими`,staleHint:`Скопировать промпт для LLM или агента, который переведёт недостающие сообщения и обновит устаревшие`,copyAll:`Скопировать промпт перевода для всех локалей`,allHint:`Копирует промпт для LLM или агента, который переведёт недостающие сообщения во всех локалях`},usages:{all:`Все ({count})`,dynamic:`Динамические ({count})`,dynamicHint:`Использования с вычисляемым ключом. Ключи с их префиксом считаются используемыми.`,filter:`Фильтр по файлу или ключу`,missing:`Не определены ({count})`,missingHint:`Ключи, которые используются в коде, но не определены в исходной локали.`,unused:`Неиспользуемые ({count})`,unusedHint:`Ключи из исходной локали, которые не используются в коде.`},value:{empty:`пусто`,missing:`нет`},history:{title:`История`,local:`изменено локально`,outdated:`устарело`,outdatedHint:`Исходное сообщение изменилось после этого перевода`,sourceThen:`Исходник тогда`,sourceNow:`Исходник сейчас`,more:`и ещё {count}`,locales:`локалей: {count}`},sidebar:{list:`Список`,tree:`Дерево`,filter:`Фильтр ключей`,view:`Вид списка ключей`},diagnostics:{all:`Все ({count})`,viewAll:`Показать все`,copyFix:`Скопировать промпт для исправления`,fixHint:`Копирует промпт для LLM или агента, который исправляет все диагностики этого проекта`,fixCodeHint:`Копирует промпт для LLM или агента, который исправляет диагностики {code}`}};export{e as default};
@@ -1 +1 @@
1
- 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}개`},sidebar:{list:`목록 보기`,tree:`트리 보기`,filter:`키 필터`,view:`키 목록 보기 방식`}};export{e as default};
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:`모든 프리셋 표시`,plugins:`플러그인`,none:`찾은 항목이 없습니다`,duplicates:`건너뛴 중복 리소스: {count}`,skipped:`건너뛴 프리셋 및 플러그인`,rawConfig:`원본 설정`},prompt:{copied:`복사됨`,copy:`번역 프롬프트 복사`,hint:`누락된 메시지를 번역하는 LLM 또는 에이전트용 프롬프트 복사`,copyStale:`오래된 번역 포함 프롬프트 복사`,staleHint:`누락된 메시지를 번역하고 오래된 번역을 갱신하는 LLM 또는 에이전트용 프롬프트를 복사합니다`,copyAll:`모든 로캘의 번역 프롬프트 복사`,allHint:`모든 로캘에서 누락된 메시지를 번역하는 LLM 또는 에이전트용 프롬프트를 복사합니다`},usages:{all:`전체 ({count})`,dynamic:`동적 ({count})`,dynamicHint:`계산된 키를 쓰는 사용처입니다. 해당 접두사 아래의 키는 사용된 것으로 간주합니다.`,filter:`파일 또는 키로 필터`,missing:`미정의 ({count})`,missingHint:`코드에서 사용되지만 원본 로케일에 정의되지 않은 키입니다.`,unused:`미사용 ({count})`,unusedHint:`원본 로케일에 정의되어 있지만 코드에서 사용하지 않는 키입니다.`},value:{empty:`빈 값`,missing:`누락`},history:{title:`기록`,local:`로컬에서 변경됨`,outdated:`오래됨`,outdatedHint:`이 번역 이후에 원본 메시지가 변경되었습니다`,sourceThen:`당시 원본`,sourceNow:`현재 원본`,more:`외 {count}개`,locales:`로캘 {count}개`},sidebar:{list:`목록 보기`,tree:`트리 보기`,filter:`키 필터`,view:`키 목록 보기 방식`},diagnostics:{all:`전체 ({count})`,viewAll:`모두 보기`,copyFix:`수정 프롬프트 복사`,fixHint:`이 프로젝트의 모든 진단을 수정하는 LLM 또는 에이전트용 프롬프트를 복사합니다`,fixCodeHint:`{code} 진단을 수정하는 LLM 또는 에이전트용 프롬프트를 복사합니다`}};export{e as default};
@@ -1 +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} ロケール`},sidebar:{list:`リスト表示`,tree:`ツリー表示`,filter:`キーを絞り込む`,view:`キー一覧の表示`}};export{e as default};
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:`すべてのプリセットを表示`,plugins:`プラグイン`,none:`見つかりませんでした`,duplicates:`スキップした重複リソース: {count}`,skipped:`スキップしたプリセットとプラグイン`,rawConfig:`生の設定`},prompt:{copied:`コピーしました`,copy:`翻訳プロンプトをコピー`,hint:`未翻訳のメッセージを翻訳させる LLM またはエージェント向けのプロンプトをコピー`,copyStale:`古い翻訳も含めてプロンプトをコピー`,staleHint:`不足しているメッセージを翻訳し、古い翻訳を更新する LLM やエージェント向けのプロンプトをコピー`,copyAll:`すべてのロケールの翻訳プロンプトをコピー`,allHint:`すべてのロケールで不足しているメッセージを翻訳する LLM やエージェント向けのプロンプトをコピーします`},usages:{all:`すべて ({count})`,dynamic:`動的 ({count})`,dynamicHint:`キーが動的に計算される使用箇所です。そのプレフィックス配下のキーは使用中とみなされます。`,filter:`ファイルまたはキーで絞り込み`,missing:`未定義 ({count})`,missingHint:`コードで使用されているが、ソースロケールに定義されていないキーです。`,unused:`未使用 ({count})`,unusedHint:`ソースロケールに定義されているが、どのコードでも使用されていないキーです。`},value:{empty:`空`,missing:`未翻訳`},history:{title:`履歴`,local:`ローカルで変更`,outdated:`古い`,outdatedHint:`この翻訳の後にソースメッセージが変更されました`,sourceThen:`当時のソース`,sourceNow:`現在のソース`,more:`ほか {count} 件`,locales:`{count} ロケール`},sidebar:{list:`リスト表示`,tree:`ツリー表示`,filter:`キーを絞り込む`,view:`キー一覧の表示`},diagnostics:{all:`すべて ({count})`,viewAll:`すべて表示`,copyFix:`修正プロンプトをコピー`,fixHint:`このプロジェクトのすべての診断を修正する LLM やエージェント向けのプロンプトをコピーします`,fixCodeHint:`{code} の診断を修正する LLM やエージェント向けのプロンプトをコピーします`}};export{e as default};
@@ -1 +1 @@
1
- import{S as e,c as t,t as n}from"./DsqCc3fC.js";function r(e,t){let n=e.toLowerCase(),r=t.toLowerCase(),i=r.indexOf(n);if(i!==-1)return 1e3-i;let a=0,o=-1;for(let e of n){let t=r.indexOf(e,o+1);if(t===-1)return-1;a+=t===o+1?2:1,o=t}return a}function i(e,r=!1){return n.value.apply({project:t.value,ops:e,force:r})}function a(e,t,n,r=!1){return i([{type:`set`,key:e,locale:t,value:n}],r)}function o(t){return[t.missing.length?e(`edit.placeholdersMissing`,{names:t.missing.join(`, `)}):``,t.extra.length?e(`edit.placeholdersExtra`,{names:t.extra.join(`, `)}):``].filter(Boolean).join(`; `)}export{r as i,o as n,a as r,i as t};
1
+ import{S as e,c as t,t as n}from"./DF0vjjh8.js";function r(e,t){let n=e.toLowerCase(),r=t.toLowerCase(),i=r.indexOf(n);if(i!==-1)return 1e3-i;let a=0,o=-1;for(let e of n){let t=r.indexOf(e,o+1);if(t===-1)return-1;a+=t===o+1?2:1,o=t}return a}function i(e,r=!1){return n.value.apply({project:t.value,ops:e,force:r})}function a(e,t,n,r=!1){return i([{type:`set`,key:e,locale:t,value:n}],r)}function o(t){return[t.missing.length?e(`edit.placeholdersMissing`,{names:t.missing.join(`, `)}):``,t.extra.length?e(`edit.placeholdersExtra`,{names:t.extra.join(`, `)}):``].filter(Boolean).join(`; `)}export{r as i,o as n,a as r,i as t};
@@ -1 +1 @@
1
- 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`},sidebar:{list:`Vue en liste`,tree:`Vue en arbre`,filter:`Filtrer les clés`,view:`Affichage de la liste des clés`}};export{e as default};
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`,plugins:`Plugins`,none:`Rien trouvé`,duplicates:`Ressources en double ignorées : {count}`,skipped:`Préréglages et plugins ignorés`,rawConfig:`Configuration brute`},prompt:{copied:`Copié`,copy:`Copier le prompt de traduction`,hint:`Copier un prompt pour un LLM ou un agent qui traduit les messages manquants`,copyStale:`Copier le prompt avec les obsolètes`,staleHint:`Copier un prompt pour un LLM ou un agent qui traduit les messages manquants et met à jour les obsolètes`,copyAll:`Copier le prompt de traduction de toutes les langues`,allHint:`Copie un prompt pour un LLM ou un agent qui traduit ce qui manque dans chaque langue`},usages:{all:`Toutes ({count})`,dynamic:`Dynamiques ({count})`,dynamicHint:`Utilisations avec une clé calculée. Les clés sous leur préfixe comptent comme utilisées.`,filter:`Filtrer par fichier ou clé`,missing:`Non définies ({count})`,missingHint:`Clés utilisées dans le code mais non définies dans la langue source.`,unused:`Inutilisées ({count})`,unusedHint:`Clés définies dans la langue source qu’aucun code n’utilise.`},value:{empty:`vide`,missing:`manquant`},history:{title:`Historique`,local:`modifié localement`,outdated:`obsolète`,outdatedHint:`Le message source a changé après cette traduction`,sourceThen:`Source alors`,sourceNow:`Source actuelle`,more:`et {count} de plus`,locales:`{count} langues`},sidebar:{list:`Vue en liste`,tree:`Vue en arbre`,filter:`Filtrer les clés`,view:`Affichage de la liste des clés`},diagnostics:{all:`Tous ({count})`,viewAll:`Tout afficher`,copyFix:`Copier le prompt de correction`,fixHint:`Copie un prompt pour un LLM ou un agent qui corrige tous les diagnostics de ce projet`,fixCodeHint:`Copie un prompt pour un LLM ou un agent qui corrige les diagnostics {code}`}};export{e as default};
@@ -0,0 +1 @@
1
+ import{Et as e,M as t,_ as n,c as r,d as i,it as a}from"./B4prFwj0.js";import{C as o}from"./DF0vjjh8.js";var s={class:`flex flex-col gap-1 px-4 py-3`},c={class:`font-mono text-2xl tabular-nums`},l={class:`label`},u=n({__name:`UiStat`,props:{label:{},value:{}},setup(n){return(u,d)=>(t(),i(`div`,s,[r(`span`,c,e(n.value.toLocaleString(a(o))),1),r(`span`,l,e(n.label),1)]))}});export{u as t};
@@ -1 +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`},sidebar:{list:`List view`,tree:`Tree view`,filter:`Filter keys`,view:`Key list view`}};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(`./CU-cHgDp.js`).then(e=>e.default),[],import.meta.url),"./locales/es.json":()=>b(()=>import(`./D4W_YgBv.js`).then(e=>e.default),[],import.meta.url),"./locales/fr.json":()=>b(()=>import(`./Cnqs6S_B.js`).then(e=>e.default),[],import.meta.url),"./locales/ja.json":()=>b(()=>import(`./eVN_U-F6.js`).then(e=>e.default),[],import.meta.url),"./locales/ko.json":()=>b(()=>import(`./BWdW6dXs.js`).then(e=>e.default),[],import.meta.url),"./locales/pt-BR.json":()=>b(()=>import(`./D3lsgOGg.js`).then(e=>e.default),[],import.meta.url),"./locales/ru.json":()=>b(()=>import(`./D5tpRc1q.js`).then(e=>e.default),[],import.meta.url),"./locales/zh-Hans.json":()=>b(()=>import(`./z56wu47o.js`).then(e=>e.default),[],import.meta.url),"./locales/zh-Hant.json":()=>b(()=>import(`./BR2xHYez.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};
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})`},diagnostics:{all:`All ({count})`,viewAll:`View all`,copyFix:`Copy fix prompt`,fixHint:`Copy a prompt for an LLM or agent that fixes every diagnostic of this project`,fixCodeHint:`Copy a prompt for an LLM or agent that fixes the {code} diagnostics`},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`,plugins:`Plugins`,none:`Nothing found`,duplicates:`Skipped duplicate resources: {count}`,skipped:`Skipped presets and plugins`,rawConfig:`Raw config`},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`},sidebar:{list:`List view`,tree:`Tree view`,filter:`Filter keys`,view:`Key list view`}};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(`./6DTeintI.js`).then(e=>e.default),[],import.meta.url),"./locales/es.json":()=>b(()=>import(`./BH143Pz-.js`).then(e=>e.default),[],import.meta.url),"./locales/fr.json":()=>b(()=>import(`./D8wRJGd0.js`).then(e=>e.default),[],import.meta.url),"./locales/ja.json":()=>b(()=>import(`./CugIO4Ok.js`).then(e=>e.default),[],import.meta.url),"./locales/ko.json":()=>b(()=>import(`./CAeV2zG7.js`).then(e=>e.default),[],import.meta.url),"./locales/pt-BR.json":()=>b(()=>import(`./BQbrRyj1.js`).then(e=>e.default),[],import.meta.url),"./locales/ru.json":()=>b(()=>import(`./C5AT5PNH.js`).then(e=>e.default),[],import.meta.url),"./locales/zh-Hans.json":()=>b(()=>import(`./MHlmqv3A.js`).then(e=>e.default),[],import.meta.url),"./locales/zh-Hant.json":()=>b(()=>import(`./DSHArhRM.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};
@@ -1 +1 @@
1
- import{B as e,Ct as t,E as n,Et as r,H as i,M as a,P as o,Q as s,T as c,Tt as l,U as u,_ as d,c as f,d as p,h as m,it as h,l as g,m as _,r as v,s as y,u as b,wt as x,y as S}from"./B4prFwj0.js";import{c as C,o as w,s as T}from"./DoHg1T7s.js";import{u as E}from"./D4dwYDex.js";import{D,E as O,S as k,a as A,c as j,f as M,h as N,m as P,n as F,t as I}from"./DsqCc3fC.js";import{i as L,n as R}from"#entry";import{t as z}from"./0cXQUs3T.js";import{t as B}from"./DQNu8teu.js";import{n as V,r as H,t as U}from"./JMXpOiMg.js";import{t as W}from"./CcXhso-T.js";import{t as G}from"./BtGb9LkL.js";import{t as K}from"./BqPdh3b3.js";import{i as q,n as ee,r as te,t as ne}from"./Bkjpr8TV.js";function J(e){return[...e.matchAll(/[^.:]+/g)].map(t=>({id:e.slice(0,t.index+t[0].length),label:t[0]}))}function Y(e,t,n=!1){let r=new Map;for(let t of e){let e=r,n;for(let{id:r,label:i}of J(t))n=e.get(i)??{id:r,label:i,key:void 0,children:new Map},e.set(i,n),e=n.children;n&&(n.key=t)}let i=[],a=(e,r)=>{for(let o of[...e.values()].sort((e,t)=>e.label.localeCompare(t.label))){let e=o.children.size>0,s=n||t.has(o.id);i.push({id:o.id,label:o.label,depth:r,key:o.key,branch:e,open:e&&s}),e&&s&&a(o.children,r+1)}};return a(r,0),i}function X(e){return J(e).slice(0,-1).map(e=>e.id)}var Z={class:`min-h-0 flex flex-auto flex-col`},re={class:`flex items-center gap-2 border-b border-base px-3 py-2`},ie={class:`label`},ae={class:`font-mono text-xs color-faint tabular-nums`},oe=[`aria-label`],se=[`aria-pressed`,`title`,`aria-label`],ce=[`aria-pressed`,`title`,`aria-label`],le={class:`border-b border-base px-3 py-2`},ue=[`placeholder`,`aria-label`],de=[`aria-expanded`,`aria-label`,`onClick`],fe={key:1,class:`size-4 shrink-0`},pe=[`onClick`],Q=28,me=d({__name:`KeySidebar`,setup(d){let m=E(),C=y(()=>String(m.params.key)),T=P((e,t)=>e.keys(t)),A=O(`x18n:key-view`,`tree`),j=s(``),M=s(new Set);e(C,e=>{M.value=new Set([...M.value,...X(e)])},{immediate:!0});let N=y(()=>T.value?.rows.map(e=>e.key)??[]),F=y(()=>{let e=j.value.trim();return e?N.value.map(t=>({key:t,score:q(e,t)})).filter(e=>e.score>=0).sort((e,t)=>t.score-e.score).map(e=>e.key):N.value}),I=y(()=>A.value===`tree`?Y(F.value,M.value,j.value.trim()!==``):F.value.map(e=>({id:e,label:e,depth:0,key:e,branch:!1,open:!1}))),{list:R,containerProps:z,wrapperProps:B}=D(I,{itemHeight:Q,overscan:10});function V(e){let t=new Set(M.value);t.delete(e.id)||t.add(e.id),M.value=t}async function H(){await n();let e=z.ref.value,t=I.value.findIndex(e=>e.key===C.value);if(!e||t<0)return;let r=t*Q;(r<e.scrollTop||r+Q>e.scrollTop+e.clientHeight)&&(e.scrollTop=Math.max(0,r-e.clientHeight/2))}return e([C,A,()=>T.value?.rows.length],H,{flush:`post`}),(e,n)=>(a(),p(`div`,Z,[f(`div`,re,[f(`span`,ie,r(h(k)(`nav.keys`)),1),f(`span`,ae,r(N.value.length),1),n[5]||=f(`span`,{class:`flex-auto`},null,-1),f(`div`,{class:`flex`,role:`group`,"aria-label":h(k)(`sidebar.view`)},[f(`button`,{type:`button`,class:t([`btn-icon h-6 w-6 text-sm`,h(A)===`list`&&`bg-hover color-base`]),"aria-pressed":h(A)===`list`,title:h(k)(`sidebar.list`),"aria-label":h(k)(`sidebar.list`),onClick:n[0]||=e=>A.value=`list`},[...n[3]||=[f(`span`,{class:`i-ph-list-bullets-duotone`},null,-1)]],10,se),f(`button`,{type:`button`,class:t([`btn-icon h-6 w-6 text-sm`,h(A)===`tree`&&`bg-hover color-base`]),"aria-pressed":h(A)===`tree`,title:h(k)(`sidebar.tree`),"aria-label":h(k)(`sidebar.tree`),onClick:n[1]||=e=>A.value=`tree`},[...n[4]||=[f(`span`,{class:`i-ph-tree-structure-duotone`},null,-1)]],10,ce)],8,oe)]),f(`div`,le,[u(f(`input`,{"onUpdate:modelValue":n[2]||=e=>j.value=e,class:`input h-7 w-full font-mono text-xs`,type:`search`,placeholder:h(k)(`sidebar.filter`),"aria-label":h(k)(`sidebar.filter`)},null,8,ue),[[w,j.value]])]),f(`div`,c(h(z),{class:`min-h-0 flex-auto`}),[f(`div`,x(S(h(B))),[(a(!0),p(v,null,o(h(R),({data:e})=>(a(),p(`div`,{key:e.id,class:t([`h-7 flex items-center pr-2 font-mono text-xs transition-colors hover:bg-hover`,e.key===C.value?`bg-hover color-base shadow-[inset_2px_0_var(--x-fg)]`:`color-muted`]),style:l({paddingLeft:`${8+e.depth*12}px`})},[h(A)===`tree`?(a(),p(v,{key:0},[e.branch?(a(),p(`button`,{key:0,type:`button`,class:`focus-ring size-4 flex shrink-0 items-center justify-center`,"aria-expanded":e.open,"aria-label":e.label,onClick:t=>V(e)},[f(`span`,{class:t([`i-ph-caret-right-duotone transition-transform`,e.open&&`rotate-90`])},null,2)],8,de)):(a(),p(`span`,fe))],64)):b(``,!0),e.key?(a(),g(h(L),{key:1,to:`/keys/${encodeURIComponent(e.key)}`,class:`focus-ring ml-1 min-w-0 flex-auto truncate`,"aria-current":e.key===C.value?`page`:void 0,title:e.key},{default:i(()=>[_(r(e.label),1)]),_:2},1032,[`to`,`aria-current`,`title`])):(a(),p(`button`,{key:2,type:`button`,class:`focus-ring ml-1 min-w-0 flex-auto truncate text-left`,onClick:t=>V(e)},r(e.label),9,pe))],6))),128))],16)],16)]))}}),he={class:`mx-auto h-full w-full flex max-w-6xl border-x border-base xl:max-w-[90rem]`},ge={class:`hidden w-72 shrink-0 flex-col border-r border-base xl:flex`},_e={class:`min-w-0 flex-auto of-y-auto`},ve={class:`flex items-center gap-3 border-b border-base px-4 py-4`},ye={class:`grid gap-1`},be={class:`label`},xe={class:`break-all font-mono text-xl font-medium`},Se={key:0,class:`badge self-end`},Ce={key:0,class:`px-4 py-3 color-muted`},we={key:0,class:`px-4 py-3 color-muted`},Te=[`data-locale`],Ee={class:`flex items-center gap-2 pt-0.5 font-mono`},De={key:0,class:`badge`},Oe=[`title`],ke={key:0,class:`grid gap-2`},Ae=[`aria-label`],je={key:0,class:`flex items-center gap-2 color-warn`},Me=[`title`,`onDblclick`],Ne={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`},Pe={class:`label`},$={class:`color-muted line-through decoration-[var(--x-faint)]`},Fe={class:`label`},Ie={class:`flex gap-1`},Le={class:`font-mono text-xs color-muted`},Re={class:`flex-auto`},ze=[`onClick`],Be={key:0,class:`px-4 py-3 color-muted`},Ve={class:`flex items-center gap-2`},He={key:0,class:`badge`},Ue=[`onClick`],We=d({__name:`[key]`,setup(e){let n=E(),c=y(()=>String(n.params.key)),l=P((e,t)=>e.key(t,c.value)),d=y(()=>N.value.map(e=>({locale:e.code,message:l.value?.messages.find(t=>t.locale===e.code)}))),x=y(()=>A.value.length-N.value.length),S=y(()=>l.value?.messages.find(e=>e.locale===F.value?.sourceLocale)?.value),D=s(),O=s();async function q(e=!1){let t=D.value;if(!t)return;let n=await te(c.value,t.locale,t.draft,e);n.applied?(D.value=void 0,O.value=void 0):O.value=n.problems.map(ee).join(`; `)}function J(e,t){D.value={locale:e,draft:t==null?``:String(t)},O.value=void 0}function Y(e){return e.type!==`extract`&&e.type!==`format`}function X(e){I.value?.openInEditor({project:j.value,path:e.path,line:e.line,column:e.column})}return(e,n)=>(a(),p(`div`,he,[f(`aside`,ge,[m(me)]),f(`div`,_e,[f(`header`,ve,[m(h(L),{to:`/keys`,class:`btn-icon`,"aria-label":h(k)(`detail.back`)},{default:i(()=>[...n[5]||=[f(`span`,{class:`i-ph-arrow-left-duotone`},null,-1)]]),_:1},8,[`aria-label`]),f(`div`,ye,[f(`span`,be,r(h(k)(`detail.label`)),1),f(`h1`,xe,r(c.value),1)]),h(l)?.namespace?(a(),p(`span`,Se,r(h(l).namespace),1)):b(``,!0)]),h(l)===null?(a(),p(`p`,Ce,r(h(k)(`detail.notFound`)),1)):h(l)?(a(),p(v,{key:1},[m(B,{index:`01`,title:h(k)(`detail.values`)},{default:i(()=>[d.value.length?b(``,!0):(a(),p(`p`,we,r(h(k)(`localeBar.noneShown`)),1)),(a(!0),p(v,null,o(d.value,e=>(a(),p(`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},[f(`span`,Ee,[m(R,{code:e.locale},null,8,[`code`]),_(` `+r(e.locale)+` `,1),e.locale===h(F)?.sourceLocale?(a(),p(`span`,De,r(h(k)(`overview.source`)),1)):b(``,!0),e.message?.outdated?(a(),p(`span`,{key:1,class:`badge border-current color-warn`,title:h(k)(`history.outdatedHint`)},r(h(k)(`history.outdated`)),9,Oe)):b(``,!0)]),D.value?.locale===e.locale?(a(),p(`div`,ke,[u(f(`textarea`,{"onUpdate:modelValue":n[0]||=e=>D.value.draft=e,class:`input h-auto py-1.5 font-mono`,rows:`2`,"aria-label":h(k)(`keys.editValue`,{key:c.value,locale:e.locale}),onKeydown:[n[1]||=T(C(e=>q(),[`exact`,`prevent`]),[`enter`]),n[2]||=T(e=>D.value=void 0,[`escape`])]},null,40,Ae),[[w,D.value.draft]]),O.value?(a(),p(`p`,je,[n[6]||=f(`span`,{class:`i-ph-warning-duotone`},null,-1),_(` `+r(O.value)+` `,1),f(`button`,{class:`btn-outline h-7`,onClick:n[3]||=e=>q(!0)},r(h(k)(`edit.saveAnyway`)),1)])):b(``,!0)])):(a(),p(`div`,{key:1,class:`grid min-w-0 gap-1`,title:h(I)?.capabilities.write?h(k)(`detail.edit`):void 0,onDblclick:t=>h(I)?.capabilities.write&&J(e.locale,e.message?.value)},[m(W,{value:e.message?.value,placeholders:e.message?.placeholders??[]},null,8,[`value`,`placeholders`]),e.message?.sourceThen===void 0?b(``,!0):(a(),p(`dl`,Ne,[f(`dt`,Pe,r(h(k)(`history.sourceThen`)),1),f(`dd`,$,[m(W,{value:e.message.sourceThen},null,8,[`value`])]),f(`dt`,Fe,r(h(k)(`history.sourceNow`)),1),f(`dd`,null,[m(W,{value:S.value},null,8,[`value`])])]))],40,Me)),f(`div`,Ie,[e.locale===h(F)?.sourceLocale?b(``,!0):(a(),g(V,{key:0,text:h(U)([{locale:e.locale,key:c.value}]),label:h(k)(`prompt.copy`),hint:h(k)(`prompt.hint`)},null,8,[`text`,`label`,`hint`])),e.message?(a(),g(H,{key:1,icon:`i-ph-file-text-duotone`,label:h(k)(`detail.file`)},{default:i(()=>[m(z,{path:e.message.path,line:e.message.line},null,8,[`path`,`line`])]),_:2},1032,[`label`])):b(``,!0),e.message?.changed?(a(),g(H,{key:2,icon:`i-ph-clock-counter-clockwise-duotone`,label:h(k)(`history.title`)},{default:i(()=>[m(G,{change:e.message.changed},null,8,[`change`])]),_:2},1032,[`label`])):b(``,!0)])],8,Te))),128)),x.value?(a(),p(`button`,{key:1,class:`btn-ghost h-9 w-full justify-start px-4`,onClick:n[4]||=(...e)=>h(M)&&h(M)(...e)},[n[7]||=f(`span`,{class:`i-ph-dots-three-duotone`},null,-1),_(` `+r(h(k)(`detail.showAllLocales`))+` (`+r(x.value)+`) `,1)])):b(``,!0)]),_:1},8,[`title`]),h(l).diagnostics.length?(a(),g(B,{key:0,index:`02`,title:h(k)(`detail.diagnostics`)},{default:i(()=>[(a(!0),p(v,null,o(h(l).diagnostics,(e,n)=>(a(),p(`div`,{key:n,class:`flex items-center gap-2 border-b border-base px-4 py-2 last:border-b-0`},[f(`span`,{class:t(e.severity===`error`?`i-ph-x-circle-duotone color-error`:`i-ph-warning-duotone color-warn`)},null,2),f(`span`,Le,r(e.code),1),f(`span`,Re,r(e.message),1),h(I)?.capabilities.write?(a(!0),p(v,{key:0},o(e.fixes.filter(e=>e.ops.every(Y)),e=>(a(),p(`button`,{key:e.title,class:`btn-outline h-7`,onClick:t=>h(ne)(e.ops.filter(Y))},r(e.title),9,ze))),128)):b(``,!0)]))),128))]),_:1},8,[`title`])):b(``,!0),m(B,{index:`03`,title:h(k)(`detail.usages`,{count:h(l).usages.length})},{default:i(()=>[h(l).usages.length?b(``,!0):(a(),p(`p`,Be,r(h(k)(`detail.noUsages`)),1)),(a(!0),p(v,null,o(h(l).usages,(e,t)=>(a(),p(`div`,{key:t,class:`grid gap-2 border-b border-base px-4 py-3 last:border-b-0`},[f(`div`,Ve,[m(z,{path:e.path,line:e.line,column:e.column},null,8,[`path`,`line`,`column`]),e.possible?(a(),p(`span`,He,r(h(k)(`detail.possible`)),1)):b(``,!0),n[9]||=f(`span`,{class:`flex-auto`},null,-1),h(I)?.capabilities.openInEditor?(a(),p(`button`,{key:1,class:`btn-ghost h-7`,onClick:t=>X(e)},[n[8]||=f(`span`,{class:`i-ph-arrow-square-out-duotone`},null,-1),_(` `+r(h(k)(`detail.openInEditor`)),1)],8,Ue)):b(``,!0)]),m(K,{usage:e},null,8,[`usage`])]))),128))]),_:1},8,[`title`])],64)):b(``,!0)])]))}});export{We as default};
1
+ import{B as e,Ct as t,E as n,Et as r,H as i,M as a,P as o,Q as s,T as c,Tt as l,U as u,_ as d,c as f,d as p,h as m,it as h,l as g,m as _,r as v,s as y,u as b,wt as x,y as S}from"./B4prFwj0.js";import{c as C,o as w,s as T}from"./DoHg1T7s.js";import{u as E}from"./D4dwYDex.js";import{D,E as O,S as k,a as A,c as j,f as M,h as N,m as P,n as F,t as I}from"./DF0vjjh8.js";import{i as L,n as R}from"#entry";import{i as z,n as B,r as V}from"./HmocOjc4.js";import{t as H}from"./DwGgiVOP.js";import{t as U}from"./DQNu8teu.js";import{t as W}from"./f6bf8PNO.js";import{t as G}from"./BuVS4UTW.js";import{t as ee}from"./C3YrgNlB.js";import{i as K,n as q,r as te,t as ne}from"./D08T24dG.js";function J(e){return[...e.matchAll(/[^.:]+/g)].map(t=>({id:e.slice(0,t.index+t[0].length),label:t[0]}))}function Y(e,t,n=!1){let r=new Map;for(let t of e){let e=r,n;for(let{id:r,label:i}of J(t))n=e.get(i)??{id:r,label:i,key:void 0,children:new Map},e.set(i,n),e=n.children;n&&(n.key=t)}let i=[],a=(e,r)=>{for(let o of[...e.values()].sort((e,t)=>e.label.localeCompare(t.label))){let e=o.children.size>0,s=n||t.has(o.id);i.push({id:o.id,label:o.label,depth:r,key:o.key,branch:e,open:e&&s}),e&&s&&a(o.children,r+1)}};return a(r,0),i}function X(e){return J(e).slice(0,-1).map(e=>e.id)}var Z={class:`min-h-0 flex flex-auto flex-col`},re={class:`flex items-center gap-2 border-b border-base px-3 py-2`},ie={class:`label`},ae={class:`font-mono text-xs color-faint tabular-nums`},oe=[`aria-label`],se=[`aria-pressed`,`title`,`aria-label`],ce=[`aria-pressed`,`title`,`aria-label`],le={class:`border-b border-base px-3 py-2`},ue=[`placeholder`,`aria-label`],de=[`aria-expanded`,`aria-label`,`onClick`],fe={key:1,class:`size-4 shrink-0`},pe=[`onClick`],Q=28,me=d({__name:`KeySidebar`,setup(d){let m=E(),C=y(()=>String(m.params.key)),T=P((e,t)=>e.keys(t)),A=O(`x18n:key-view`,`tree`),j=s(``),M=s(new Set);e(C,e=>{M.value=new Set([...M.value,...X(e)])},{immediate:!0});let N=y(()=>T.value?.rows.map(e=>e.key)??[]),F=y(()=>{let e=j.value.trim();return e?N.value.map(t=>({key:t,score:K(e,t)})).filter(e=>e.score>=0).sort((e,t)=>t.score-e.score).map(e=>e.key):N.value}),I=y(()=>A.value===`tree`?Y(F.value,M.value,j.value.trim()!==``):F.value.map(e=>({id:e,label:e,depth:0,key:e,branch:!1,open:!1}))),{list:R,containerProps:z,wrapperProps:B}=D(I,{itemHeight:Q,overscan:10});function V(e){let t=new Set(M.value);t.delete(e.id)||t.add(e.id),M.value=t}async function H(){await n();let e=z.ref.value,t=I.value.findIndex(e=>e.key===C.value);if(!e||t<0)return;let r=t*Q;(r<e.scrollTop||r+Q>e.scrollTop+e.clientHeight)&&(e.scrollTop=Math.max(0,r-e.clientHeight/2))}return e([C,A,()=>T.value?.rows.length],H,{flush:`post`}),(e,n)=>(a(),p(`div`,Z,[f(`div`,re,[f(`span`,ie,r(h(k)(`nav.keys`)),1),f(`span`,ae,r(N.value.length),1),n[5]||=f(`span`,{class:`flex-auto`},null,-1),f(`div`,{class:`flex`,role:`group`,"aria-label":h(k)(`sidebar.view`)},[f(`button`,{type:`button`,class:t([`btn-icon h-6 w-6 text-sm`,h(A)===`list`&&`bg-hover color-base`]),"aria-pressed":h(A)===`list`,title:h(k)(`sidebar.list`),"aria-label":h(k)(`sidebar.list`),onClick:n[0]||=e=>A.value=`list`},[...n[3]||=[f(`span`,{class:`i-ph-list-bullets-duotone`},null,-1)]],10,se),f(`button`,{type:`button`,class:t([`btn-icon h-6 w-6 text-sm`,h(A)===`tree`&&`bg-hover color-base`]),"aria-pressed":h(A)===`tree`,title:h(k)(`sidebar.tree`),"aria-label":h(k)(`sidebar.tree`),onClick:n[1]||=e=>A.value=`tree`},[...n[4]||=[f(`span`,{class:`i-ph-tree-structure-duotone`},null,-1)]],10,ce)],8,oe)]),f(`div`,le,[u(f(`input`,{"onUpdate:modelValue":n[2]||=e=>j.value=e,class:`input h-7 w-full font-mono text-xs`,type:`search`,placeholder:h(k)(`sidebar.filter`),"aria-label":h(k)(`sidebar.filter`)},null,8,ue),[[w,j.value]])]),f(`div`,c(h(z),{class:`min-h-0 flex-auto`}),[f(`div`,x(S(h(B))),[(a(!0),p(v,null,o(h(R),({data:e})=>(a(),p(`div`,{key:e.id,class:t([`h-7 flex items-center pr-2 font-mono text-xs transition-colors hover:bg-hover`,e.key===C.value?`bg-hover color-base shadow-[inset_2px_0_var(--x-fg)]`:`color-muted`]),style:l({paddingLeft:`${8+e.depth*12}px`})},[h(A)===`tree`?(a(),p(v,{key:0},[e.branch?(a(),p(`button`,{key:0,type:`button`,class:`focus-ring size-4 flex shrink-0 items-center justify-center`,"aria-expanded":e.open,"aria-label":e.label,onClick:t=>V(e)},[f(`span`,{class:t([`i-ph-caret-right-duotone transition-transform`,e.open&&`rotate-90`])},null,2)],8,de)):(a(),p(`span`,fe))],64)):b(``,!0),e.key?(a(),g(h(L),{key:1,to:`/keys/${encodeURIComponent(e.key)}`,class:`focus-ring ml-1 min-w-0 flex-auto truncate`,"aria-current":e.key===C.value?`page`:void 0,title:e.key},{default:i(()=>[_(r(e.label),1)]),_:2},1032,[`to`,`aria-current`,`title`])):(a(),p(`button`,{key:2,type:`button`,class:`focus-ring ml-1 min-w-0 flex-auto truncate text-left`,onClick:t=>V(e)},r(e.label),9,pe))],6))),128))],16)],16)]))}}),he={class:`mx-auto h-full w-full flex max-w-6xl border-x border-base xl:max-w-[90rem]`},ge={class:`hidden w-72 shrink-0 flex-col border-r border-base xl:flex`},_e={class:`min-w-0 flex-auto of-y-auto`},ve={class:`flex items-center gap-3 border-b border-base px-4 py-4`},ye={class:`grid gap-1`},be={class:`label`},xe={class:`break-all font-mono text-xl font-medium`},Se={key:0,class:`badge self-end`},Ce={key:0,class:`px-4 py-3 color-muted`},we={key:0,class:`px-4 py-3 color-muted`},Te=[`data-locale`],Ee={class:`flex items-center gap-2 pt-0.5 font-mono`},De={key:0,class:`badge`},Oe=[`title`],ke={key:0,class:`grid gap-2`},Ae=[`aria-label`],je={key:0,class:`flex items-center gap-2 color-warn`},Me=[`title`,`onDblclick`],Ne={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`},Pe={class:`label`},$={class:`color-muted line-through decoration-[var(--x-faint)]`},Fe={class:`label`},Ie={class:`flex gap-1`},Le={class:`font-mono text-xs color-muted`},Re={class:`flex-auto`},ze=[`onClick`],Be={key:0,class:`px-4 py-3 color-muted`},Ve={class:`flex items-center gap-2`},He={key:0,class:`badge`},Ue=[`onClick`],We=d({__name:`[key]`,setup(e){let n=E(),c=y(()=>String(n.params.key)),l=P((e,t)=>e.key(t,c.value)),d=y(()=>N.value.map(e=>({locale:e.code,message:l.value?.messages.find(t=>t.locale===e.code)}))),x=y(()=>A.value.length-N.value.length),S=y(()=>l.value?.messages.find(e=>e.locale===F.value?.sourceLocale)?.value),D=s(),O=s();async function K(e=!1){let t=D.value;if(!t)return;let n=await te(c.value,t.locale,t.draft,e);n.applied?(D.value=void 0,O.value=void 0):O.value=n.problems.map(q).join(`; `)}function J(e,t){D.value={locale:e,draft:t==null?``:String(t)},O.value=void 0}function Y(e){return e.type!==`extract`&&e.type!==`format`}function X(e){I.value?.openInEditor({project:j.value,path:e.path,line:e.line,column:e.column})}return(e,n)=>(a(),p(`div`,he,[f(`aside`,ge,[m(me)]),f(`div`,_e,[f(`header`,ve,[m(h(L),{to:`/keys`,class:`btn-icon`,"aria-label":h(k)(`detail.back`)},{default:i(()=>[...n[5]||=[f(`span`,{class:`i-ph-arrow-left-duotone`},null,-1)]]),_:1},8,[`aria-label`]),f(`div`,ye,[f(`span`,be,r(h(k)(`detail.label`)),1),f(`h1`,xe,r(c.value),1)]),h(l)?.namespace?(a(),p(`span`,Se,r(h(l).namespace),1)):b(``,!0)]),h(l)===null?(a(),p(`p`,Ce,r(h(k)(`detail.notFound`)),1)):h(l)?(a(),p(v,{key:1},[m(U,{index:`01`,title:h(k)(`detail.values`)},{default:i(()=>[d.value.length?b(``,!0):(a(),p(`p`,we,r(h(k)(`localeBar.noneShown`)),1)),(a(!0),p(v,null,o(d.value,e=>(a(),p(`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},[f(`span`,Ee,[m(R,{code:e.locale},null,8,[`code`]),_(` `+r(e.locale)+` `,1),e.locale===h(F)?.sourceLocale?(a(),p(`span`,De,r(h(k)(`overview.source`)),1)):b(``,!0),e.message?.outdated?(a(),p(`span`,{key:1,class:`badge border-current color-warn`,title:h(k)(`history.outdatedHint`)},r(h(k)(`history.outdated`)),9,Oe)):b(``,!0)]),D.value?.locale===e.locale?(a(),p(`div`,ke,[u(f(`textarea`,{"onUpdate:modelValue":n[0]||=e=>D.value.draft=e,class:`input h-auto py-1.5 font-mono`,rows:`2`,"aria-label":h(k)(`keys.editValue`,{key:c.value,locale:e.locale}),onKeydown:[n[1]||=T(C(e=>K(),[`exact`,`prevent`]),[`enter`]),n[2]||=T(e=>D.value=void 0,[`escape`])]},null,40,Ae),[[w,D.value.draft]]),O.value?(a(),p(`p`,je,[n[6]||=f(`span`,{class:`i-ph-warning-duotone`},null,-1),_(` `+r(O.value)+` `,1),f(`button`,{class:`btn-outline h-7`,onClick:n[3]||=e=>K(!0)},r(h(k)(`edit.saveAnyway`)),1)])):b(``,!0)])):(a(),p(`div`,{key:1,class:`grid min-w-0 gap-1`,title:h(I)?.capabilities.write?h(k)(`detail.edit`):void 0,onDblclick:t=>h(I)?.capabilities.write&&J(e.locale,e.message?.value)},[m(W,{value:e.message?.value,placeholders:e.message?.placeholders??[]},null,8,[`value`,`placeholders`]),e.message?.sourceThen===void 0?b(``,!0):(a(),p(`dl`,Ne,[f(`dt`,Pe,r(h(k)(`history.sourceThen`)),1),f(`dd`,$,[m(W,{value:e.message.sourceThen},null,8,[`value`])]),f(`dt`,Fe,r(h(k)(`history.sourceNow`)),1),f(`dd`,null,[m(W,{value:S.value},null,8,[`value`])])]))],40,Me)),f(`div`,Ie,[e.locale===h(F)?.sourceLocale?b(``,!0):(a(),g(V,{key:0,text:h(B)([{locale:e.locale,key:c.value}]),label:h(k)(`prompt.copy`),hint:h(k)(`prompt.hint`)},null,8,[`text`,`label`,`hint`])),e.message?(a(),g(z,{key:1,icon:`i-ph-file-text-duotone`,label:h(k)(`detail.file`)},{default:i(()=>[m(H,{path:e.message.path,line:e.message.line},null,8,[`path`,`line`])]),_:2},1032,[`label`])):b(``,!0),e.message?.changed?(a(),g(z,{key:2,icon:`i-ph-clock-counter-clockwise-duotone`,label:h(k)(`history.title`)},{default:i(()=>[m(G,{change:e.message.changed},null,8,[`change`])]),_:2},1032,[`label`])):b(``,!0)])],8,Te))),128)),x.value?(a(),p(`button`,{key:1,class:`btn-ghost h-9 w-full justify-start px-4`,onClick:n[4]||=(...e)=>h(M)&&h(M)(...e)},[n[7]||=f(`span`,{class:`i-ph-dots-three-duotone`},null,-1),_(` `+r(h(k)(`detail.showAllLocales`))+` (`+r(x.value)+`) `,1)])):b(``,!0)]),_:1},8,[`title`]),h(l).diagnostics.length?(a(),g(U,{key:0,index:`02`,title:h(k)(`detail.diagnostics`)},{default:i(()=>[(a(!0),p(v,null,o(h(l).diagnostics,(e,n)=>(a(),p(`div`,{key:n,class:`flex items-center gap-2 border-b border-base px-4 py-2 last:border-b-0`},[f(`span`,{class:t(e.severity===`error`?`i-ph-x-circle-duotone color-error`:`i-ph-warning-duotone color-warn`)},null,2),f(`span`,Le,r(e.code),1),f(`span`,Re,r(e.message),1),h(I)?.capabilities.write?(a(!0),p(v,{key:0},o(e.fixes.filter(e=>e.ops.every(Y)),e=>(a(),p(`button`,{key:e.title,class:`btn-outline h-7`,onClick:t=>h(ne)(e.ops.filter(Y))},r(e.title),9,ze))),128)):b(``,!0)]))),128))]),_:1},8,[`title`])):b(``,!0),m(U,{index:`03`,title:h(k)(`detail.usages`,{count:h(l).usages.length})},{default:i(()=>[h(l).usages.length?b(``,!0):(a(),p(`p`,Be,r(h(k)(`detail.noUsages`)),1)),(a(!0),p(v,null,o(h(l).usages,(e,t)=>(a(),p(`div`,{key:t,class:`grid gap-2 border-b border-base px-4 py-3 last:border-b-0`},[f(`div`,Ve,[m(H,{path:e.path,line:e.line,column:e.column},null,8,[`path`,`line`,`column`]),e.possible?(a(),p(`span`,He,r(h(k)(`detail.possible`)),1)):b(``,!0),n[9]||=f(`span`,{class:`flex-auto`},null,-1),h(I)?.capabilities.openInEditor?(a(),p(`button`,{key:1,class:`btn-ghost h-7`,onClick:t=>X(e)},[n[8]||=f(`span`,{class:`i-ph-arrow-square-out-duotone`},null,-1),_(` `+r(h(k)(`detail.openInEditor`)),1)],8,Ue)):b(``,!0)]),m(ee,{usage:e},null,8,[`usage`])]))),128))]),_:1},8,[`title`])],64)):b(``,!0)])]))}});export{We as default};
@@ -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"./DsqCc3fC.js";import{i as y}from"#entry";import{t as b}from"./0cXQUs3T.js";import{t as x}from"./ztSLDBsK.js";import{t as S}from"./BqPdh3b3.js";import{t as C}from"./C7ReGOzp.js";var w={class:`flex flex-wrap items-center gap-3 border-b border-base px-4 py-3`},T=[`placeholder`,`aria-label`],E={class:`border-b border-base px-4 py-2 text-xs color-muted`},D={class:`font-mono font-medium color-error`},O={class:`border-b border-base px-4 py-2 text-xs color-muted`},k={class:`border-b border-base px-4 py-2 text-xs color-muted`},A={class:`flex items-center gap-2`},j={class:`font-mono text-xs color-info`},M={key:1,class:`truncate font-mono text-xs color-muted`},N=o({__name:`usages`,setup(o){let N=v((e,t)=>e.analysis(t)),P=v((e,t)=>e.usages(t)),F=i(`missing`),I=i(``),L=m(()=>{let e=new Map;for(let t of N.value?.undefinedUsages??[]){let n=e.get(t.key??t.raw)??[];e.set(t.key??t.raw,n),n.push(t)}return[...e]}),R=m(()=>(P.value??[]).filter(e=>e.dynamic!==!1)),z=m(()=>(P.value??[]).filter(e=>!I.value||e.path.includes(I.value)||(e.key??e.raw).includes(I.value))),B=m(()=>[{value:`missing`,label:_(`usages.missing`,{count:L.value.length})},{value:`unused`,label:_(`usages.unused`,{count:N.value?.unused.length??0})},{value:`dynamic`,label:_(`usages.dynamic`,{count:R.value.length})},{value:`all`,label:_(`usages.all`,{count:P.value?.length??0})}]);return(i,o)=>(n(),d(x,null,{default:t(()=>[s(`div`,w,[l(C,{modelValue:F.value,"onUpdate:modelValue":o[0]||=e=>F.value=e,options:B.value,label:u(_)(`nav.usages`)},null,8,[`modelValue`,`options`,`label`]),F.value===`all`?a((n(),c(`input`,{key:0,"onUpdate:modelValue":o[1]||=e=>I.value=e,class:`input w-72`,placeholder:u(_)(`usages.filter`),"aria-label":u(_)(`usages.filter`)},null,8,T)),[[g,I.value]]):h(``,!0)]),F.value===`missing`?(n(),c(p,{key:0},[s(`p`,E,e(u(_)(`usages.missingHint`)),1),(n(!0),c(p,null,r(L.value,([t,i])=>(n(),c(`div`,{key:t,class:`grid gap-2 border-b border-base px-4 py-3`},[s(`span`,D,e(t),1),(n(!0),c(p,null,r(i,(e,t)=>(n(),c(`div`,{key:t,class:`grid gap-1`},[l(b,{path:e.path,line:e.line,column:e.column},null,8,[`path`,`line`,`column`]),l(S,{usage:e},null,8,[`usage`])]))),128))]))),128))],64)):F.value===`unused`?(n(),c(p,{key:1},[s(`p`,O,e(u(_)(`usages.unusedHint`)),1),(n(!0),c(p,null,r(u(N)?.unused,r=>(n(),d(u(y),{key:r,to:`/keys/${encodeURIComponent(r)}`,class:`focus-ring flex items-center gap-2 border-b border-base px-4 py-1.5 font-mono text-xs transition-colors hover:bg-hover`},{default:t(()=>[o[2]||=s(`span`,{class:`i-ph-ghost-duotone color-faint`},null,-1),f(` `+e(r),1)]),_:2},1032,[`to`]))),128))],64)):F.value===`dynamic`?(n(),c(p,{key:2},[s(`p`,k,e(u(_)(`usages.dynamicHint`)),1),(n(!0),c(p,null,r(R.value,(t,r)=>(n(),c(`div`,{key:r,class:`grid gap-1 border-b border-base px-4 py-3`},[s(`div`,A,[l(b,{path:t.path,line:t.line},null,8,[`path`,`line`]),s(`code`,j,e(t.raw),1)]),l(S,{usage:t},null,8,[`usage`])]))),128))],64)):(n(!0),c(p,{key:3},r(z.value,(r,i)=>(n(),c(`div`,{key:i,class:`grid grid-cols-[minmax(0,22rem)_1fr] items-center gap-4 border-b border-base px-4 py-1 transition-colors hover:bg-hover`},[l(b,{path:r.path,line:r.line},null,8,[`path`,`line`]),r.key?(n(),d(u(y),{key:0,to:`/keys/${encodeURIComponent(r.key)}`,class:`truncate font-mono text-xs hover:underline`},{default:t(()=>[f(e(r.key),1)]),_:2},1032,[`to`])):(n(),c(`span`,M,e(r.raw),1))]))),128))]),_:1}))}});export{N as default};
1
+ 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"./DF0vjjh8.js";import{i as y}from"#entry";import{t as b}from"./DwGgiVOP.js";import{t as x}from"./ztSLDBsK.js";import{t as S}from"./C3YrgNlB.js";import{t as C}from"./C7ReGOzp.js";var w={class:`flex flex-wrap items-center gap-3 border-b border-base px-4 py-3`},T=[`placeholder`,`aria-label`],E={class:`border-b border-base px-4 py-2 text-xs color-muted`},D={class:`font-mono font-medium color-error`},O={class:`border-b border-base px-4 py-2 text-xs color-muted`},k={class:`border-b border-base px-4 py-2 text-xs color-muted`},A={class:`flex items-center gap-2`},j={class:`font-mono text-xs color-info`},M={key:1,class:`truncate font-mono text-xs color-muted`},N=o({__name:`usages`,setup(o){let N=v((e,t)=>e.analysis(t)),P=v((e,t)=>e.usages(t)),F=i(`missing`),I=i(``),L=m(()=>{let e=new Map;for(let t of N.value?.undefinedUsages??[]){let n=e.get(t.key??t.raw)??[];e.set(t.key??t.raw,n),n.push(t)}return[...e]}),R=m(()=>(P.value??[]).filter(e=>e.dynamic!==!1)),z=m(()=>(P.value??[]).filter(e=>!I.value||e.path.includes(I.value)||(e.key??e.raw).includes(I.value))),B=m(()=>[{value:`missing`,label:_(`usages.missing`,{count:L.value.length})},{value:`unused`,label:_(`usages.unused`,{count:N.value?.unused.length??0})},{value:`dynamic`,label:_(`usages.dynamic`,{count:R.value.length})},{value:`all`,label:_(`usages.all`,{count:P.value?.length??0})}]);return(i,o)=>(n(),d(x,null,{default:t(()=>[s(`div`,w,[l(C,{modelValue:F.value,"onUpdate:modelValue":o[0]||=e=>F.value=e,options:B.value,label:u(_)(`nav.usages`)},null,8,[`modelValue`,`options`,`label`]),F.value===`all`?a((n(),c(`input`,{key:0,"onUpdate:modelValue":o[1]||=e=>I.value=e,class:`input w-72`,placeholder:u(_)(`usages.filter`),"aria-label":u(_)(`usages.filter`)},null,8,T)),[[g,I.value]]):h(``,!0)]),F.value===`missing`?(n(),c(p,{key:0},[s(`p`,E,e(u(_)(`usages.missingHint`)),1),(n(!0),c(p,null,r(L.value,([t,i])=>(n(),c(`div`,{key:t,class:`grid gap-2 border-b border-base px-4 py-3`},[s(`span`,D,e(t),1),(n(!0),c(p,null,r(i,(e,t)=>(n(),c(`div`,{key:t,class:`grid gap-1`},[l(b,{path:e.path,line:e.line,column:e.column},null,8,[`path`,`line`,`column`]),l(S,{usage:e},null,8,[`usage`])]))),128))]))),128))],64)):F.value===`unused`?(n(),c(p,{key:1},[s(`p`,O,e(u(_)(`usages.unusedHint`)),1),(n(!0),c(p,null,r(u(N)?.unused,r=>(n(),d(u(y),{key:r,to:`/keys/${encodeURIComponent(r)}`,class:`focus-ring flex items-center gap-2 border-b border-base px-4 py-1.5 font-mono text-xs transition-colors hover:bg-hover`},{default:t(()=>[o[2]||=s(`span`,{class:`i-ph-ghost-duotone color-faint`},null,-1),f(` `+e(r),1)]),_:2},1032,[`to`]))),128))],64)):F.value===`dynamic`?(n(),c(p,{key:2},[s(`p`,k,e(u(_)(`usages.dynamicHint`)),1),(n(!0),c(p,null,r(R.value,(t,r)=>(n(),c(`div`,{key:r,class:`grid gap-1 border-b border-base px-4 py-3`},[s(`div`,A,[l(b,{path:t.path,line:t.line},null,8,[`path`,`line`]),s(`code`,j,e(t.raw),1)]),l(S,{usage:t},null,8,[`usage`])]))),128))],64)):(n(!0),c(p,{key:3},r(z.value,(r,i)=>(n(),c(`div`,{key:i,class:`grid grid-cols-[minmax(0,22rem)_1fr] items-center gap-4 border-b border-base px-4 py-1 transition-colors hover:bg-hover`},[l(b,{path:r.path,line:r.line},null,8,[`path`,`line`]),r.key?(n(),d(u(y),{key:0,to:`/keys/${encodeURIComponent(r.key)}`,class:`truncate font-mono text-xs hover:underline`},{default:t(()=>[f(e(r.key),1)]),_:2},1032,[`to`])):(n(),c(`span`,M,e(r.raw),1))]))),128))]),_:1}))}});export{N as default};
@@ -1 +1 @@
1
- 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} 種語言`},sidebar:{list:`清單檢視`,tree:`樹狀檢視`,filter:`篩選鍵`,view:`鍵清單檢視`}};export{e as default};
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:`顯示所有預設`,plugins:`外掛`,none:`找不到任何內容`,duplicates:`已略過的重複資源:{count}`,skipped:`已略過的預設和外掛`,rawConfig:`原始設定`},prompt:{copied:`已複製`,copy:`複製翻譯提示詞`,hint:`複製提示詞,讓 LLM 或代理程式翻譯缺少的訊息`,copyStale:`複製包含過時翻譯的提示詞`,staleHint:`複製提示詞,供 LLM 或代理程式翻譯缺少的訊息並更新過時的翻譯`,copyAll:`複製所有語言的翻譯提示詞`,allHint:`複製一段提示詞,供 LLM 或代理翻譯每種語言中缺少的訊息`},usages:{all:`全部({count})`,dynamic:`動態({count})`,dynamicHint:`使用計算鍵的使用處。其前綴下的鍵皆視為已使用。`,filter:`依檔案或鍵篩選`,missing:`未定義({count})`,missingHint:`程式碼中使用、但未在來源語系中定義的鍵。`,unused:`未使用({count})`,unusedHint:`已在來源語系中定義、但沒有程式碼使用的鍵。`},value:{empty:`空白`,missing:`缺少`},history:{title:`歷史`,local:`本機已變更`,outdated:`過時`,outdatedHint:`此翻譯之後來源訊息已變更`,sourceThen:`當時的來源`,sourceNow:`目前的來源`,more:`以及另外 {count} 個`,locales:`{count} 種語言`},sidebar:{list:`清單檢視`,tree:`樹狀檢視`,filter:`篩選鍵`,view:`鍵清單檢視`},diagnostics:{all:`全部 ({count})`,viewAll:`檢視全部`,copyFix:`複製修復提示詞`,fixHint:`複製提示詞,供 LLM 或代理修復此專案的所有診斷`,fixCodeHint:`複製提示詞,供 LLM 或代理修復 {code} 診斷`}};export{e as default};