planche 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/README.md +10 -2
  2. package/dist/index.js +46 -17
  3. package/package.json +2 -3
  4. package/app/_headers +0 -19
  5. package/app/assets/AboutDialog-HsaLhYrq.js +0 -1
  6. package/app/assets/ConnectDialog-DAYnaSzA.js +0 -1
  7. package/app/assets/CopyDatabaseDialog-DCDkX1Zt.js +0 -1
  8. package/app/assets/CopyTableDialog-BylicT1d.js +0 -1
  9. package/app/assets/CreateDatabaseDialog-i7_uV-wh.js +0 -1
  10. package/app/assets/DataDiffDialog-B4SeJXry.js +0 -1
  11. package/app/assets/DownloadToCSVDialog-jX0lEP8B.js +0 -3
  12. package/app/assets/EditSchemaDialog-BVOHVgBR.js +0 -1
  13. package/app/assets/FindReplaceDialog-B0rD26fg.js +0 -1
  14. package/app/assets/FlushDialog-CNu4QuYo.js +0 -1
  15. package/app/assets/LinkColumnDialog-BwUBtMiy.js +0 -1
  16. package/app/assets/LocalHistoryDialog-DUlsyn8i.js +0 -1
  17. package/app/assets/ProcessListDialog-Chv324I7.js +0 -1
  18. package/app/assets/QuickCommandPalette-BG5A7y3V.js +0 -1
  19. package/app/assets/RowFormDialog-C5agNu3l.js +0 -2
  20. package/app/assets/SafetySettingsDialog-iaN6H-EP.js +0 -1
  21. package/app/assets/SchemaDiffDialog-D7re7sup.js +0 -7
  22. package/app/assets/SchemaToHTMLDialog-Biq3ELkl.js +0 -27
  23. package/app/assets/StatusDialog-D8CcfFkP.js +0 -1
  24. package/app/assets/TermsDialog-DbHxb0ld.js +0 -1
  25. package/app/assets/UserAddDialog-B_fz-cXy.js +0 -1
  26. package/app/assets/UserManagerDialog-ku7exEzu.js +0 -1
  27. package/app/assets/VariablesDialog-BP2RcCBK.js +0 -1
  28. package/app/assets/abap-08VXUWAP.js +0 -1
  29. package/app/assets/apex-BWPQTe0t.js +0 -1
  30. package/app/assets/app-storage-B6v72zLH.js +0 -1
  31. package/app/assets/azcli-Bc_sGQ0U.js +0 -1
  32. package/app/assets/bat-i0X4ZdIN.js +0 -1
  33. package/app/assets/bicep-B5-_aFwp.js +0 -2
  34. package/app/assets/button-DkRlMkru.js +0 -1
  35. package/app/assets/cameligo-DMUM7wLl.js +0 -1
  36. package/app/assets/chevron-up-Dy_mz-03.js +0 -1
  37. package/app/assets/clojure-Cm7r79vr.js +0 -1
  38. package/app/assets/codicon-ngg6Pgfi.ttf +0 -0
  39. package/app/assets/coffee-Ba7i2nA0.js +0 -1
  40. package/app/assets/connection-store-CJ_al8qv.js +0 -1
  41. package/app/assets/cpp-C7h46wYY.js +0 -1
  42. package/app/assets/csharp-BKxtCVv1.js +0 -1
  43. package/app/assets/csp-bTuwJoIa.js +0 -1
  44. package/app/assets/css-DIMkf-bt.js +0 -3
  45. package/app/assets/css.worker-Dsm2X3j_.js +0 -89
  46. package/app/assets/cssMode-BK7_e-YI.js +0 -1
  47. package/app/assets/cypher-CVaqCwHa.js +0 -1
  48. package/app/assets/dart-onAF5SnQ.js +0 -1
  49. package/app/assets/database-BIhkgl2O.js +0 -1
  50. package/app/assets/dbms-Cq4imB7l.js +0 -353
  51. package/app/assets/de-B_f2X0cM.js +0 -2
  52. package/app/assets/dialog-BtwqThq6.js +0 -1
  53. package/app/assets/dist-BV6Hwye5.js +0 -41
  54. package/app/assets/dist-C2pydad-.js +0 -1
  55. package/app/assets/dist-C3MLFgG1.js +0 -1
  56. package/app/assets/dist-Roudme38.js +0 -3
  57. package/app/assets/dockerfile-DZFCIeNp.js +0 -1
  58. package/app/assets/ecl-D05T4iGw.js +0 -1
  59. package/app/assets/editor-Br_kD0ds.css +0 -1
  60. package/app/assets/editor.api2-JBjomUWM.js +0 -872
  61. package/app/assets/editor.worker-BboMRUer.js +0 -26
  62. package/app/assets/elixir-6RTg0lbw.js +0 -1
  63. package/app/assets/engine-DBTzC3si.js +0 -1
  64. package/app/assets/file-name-CnYBZPf9.js +0 -1
  65. package/app/assets/flow9-C5_-GSwl.js +0 -1
  66. package/app/assets/fr-DigYoMZT.js +0 -2
  67. package/app/assets/freemarker2-Ca8y5qEc.js +0 -3
  68. package/app/assets/fsharp-C8Ef5oNN.js +0 -1
  69. package/app/assets/go-C-y9NEjX.js +0 -1
  70. package/app/assets/graphql-fmXr3nnJ.js +0 -1
  71. package/app/assets/handlebars-CMoDOM1Y.js +0 -1
  72. package/app/assets/hcl-CpzslTdj.js +0 -1
  73. package/app/assets/html-BOS8Hfbf.js +0 -1
  74. package/app/assets/html.worker-fD12ABR7.js +0 -502
  75. package/app/assets/htmlMode-CRjI81Qd.js +0 -1
  76. package/app/assets/i18n-C7R6hKCp.js +0 -2
  77. package/app/assets/ini-sBoK_t0W.js +0 -1
  78. package/app/assets/ja-CPMeuUuT.js +0 -2
  79. package/app/assets/java-BEtHBSE6.js +0 -1
  80. package/app/assets/javascript-2ntxzhMa.js +0 -1
  81. package/app/assets/json.worker-B2CIyALT.js +0 -58
  82. package/app/assets/jsonMode-C8yGgOEo.js +0 -7
  83. package/app/assets/julia-Bri6UV-V.js +0 -1
  84. package/app/assets/ko-IAtUoTg5.js +0 -2
  85. package/app/assets/kotlin-BOotOW0E.js +0 -1
  86. package/app/assets/less-B9JPFI3C.js +0 -2
  87. package/app/assets/lexon-CfSJPG6W.js +0 -1
  88. package/app/assets/liquid-DThFAxbS.js +0 -1
  89. package/app/assets/lspLanguageFeatures-DQW0rv3P.js +0 -4
  90. package/app/assets/lua-CsQS60Ue.js +0 -1
  91. package/app/assets/m3-D-oSqn_W.js +0 -1
  92. package/app/assets/main-DI8DxG3x.css +0 -2
  93. package/app/assets/main-NJl8KiiX.js +0 -73
  94. package/app/assets/markdown-Cimd5fb3.js +0 -1
  95. package/app/assets/mdx-CI71gDmg.js +0 -1
  96. package/app/assets/mips-CIPQ_RoX.js +0 -1
  97. package/app/assets/msdax-DauUninz.js +0 -1
  98. package/app/assets/mysql-SOo6toE5.js +0 -1
  99. package/app/assets/objective-c-FvmIjYaQ.js +0 -1
  100. package/app/assets/pascal-DrH0SRf2.js +0 -1
  101. package/app/assets/pascaligo-D-ptJ9y-.js +0 -1
  102. package/app/assets/perl-oz_6vUea.js +0 -1
  103. package/app/assets/pgsql-DTj74zXo.js +0 -1
  104. package/app/assets/php-nr791fC2.js +0 -1
  105. package/app/assets/pla-CopQ2nXW.js +0 -1
  106. package/app/assets/postiats-43DmfD33.js +0 -1
  107. package/app/assets/powerquery-D3hlyOfw.js +0 -1
  108. package/app/assets/powershell-DmHpPYUd.js +0 -1
  109. package/app/assets/preload-helper-Czpn1I53.js +0 -1
  110. package/app/assets/protobuf-C531GsRP.js +0 -2
  111. package/app/assets/pug-Z5eAx3Zn.js +0 -1
  112. package/app/assets/python-Ck7s8L2p.js +0 -1
  113. package/app/assets/qsharp-DkqhCAOL.js +0 -1
  114. package/app/assets/query-execution-CR2mkIdH.js +0 -7
  115. package/app/assets/query-store-DlzOIWw1.js +0 -1
  116. package/app/assets/r-BwWrilGY.js +0 -1
  117. package/app/assets/razor-DiN-9kkz.js +0 -1
  118. package/app/assets/redis-ClamHrr6.js +0 -1
  119. package/app/assets/redshift-DT7zqm-g.js +0 -1
  120. package/app/assets/restructuredtext-BYgofb2h.js +0 -1
  121. package/app/assets/rolldown-runtime-hePW80VL.js +0 -1
  122. package/app/assets/ruby-DezsRK8O.js +0 -1
  123. package/app/assets/rust-DdL9SqIa.js +0 -1
  124. package/app/assets/sb-CcwsVR0C.js +0 -1
  125. package/app/assets/scala-DHpiXF5c.js +0 -1
  126. package/app/assets/schema-nodes-n_QZJb21.js +0 -1
  127. package/app/assets/scheme-BeGwcela.js +0 -1
  128. package/app/assets/scss-gp-XZpBa.js +0 -3
  129. package/app/assets/select-CqYxAwnu.js +0 -1
  130. package/app/assets/settings-store-DxKFgC4Z.js +0 -1
  131. package/app/assets/shell-CC2rA5mh.js +0 -1
  132. package/app/assets/solidity-BEEn4gHE.js +0 -1
  133. package/app/assets/sophia-CRfGWb83.js +0 -1
  134. package/app/assets/sparql-D_Lu-MrJ.js +0 -1
  135. package/app/assets/sql-NEE52Syq.js +0 -1
  136. package/app/assets/sqlite3-BVKGSWc-.wasm +0 -0
  137. package/app/assets/sqlite3-opfs-async-proxy-D_xnb1D8.js +0 -876
  138. package/app/assets/sqlite3-worker1-CVKz6JuG.js +0 -43
  139. package/app/assets/st-DbInun42.js +0 -1
  140. package/app/assets/storage-worker-DEIYmjYK.js +0 -43
  141. package/app/assets/swift-Bxkupp3x.js +0 -1
  142. package/app/assets/systemverilog-Bz4Y3fRF.js +0 -1
  143. package/app/assets/table-copy-2y2RNth1.js +0 -1
  144. package/app/assets/table-definition-Bs5VSn0X.js +0 -1
  145. package/app/assets/tcl-DISqw1ZD.js +0 -1
  146. package/app/assets/ts.worker-BwG70EDZ.js +0 -67734
  147. package/app/assets/tsMode-Dzctobqp.js +0 -11
  148. package/app/assets/twig-De2hgUGE.js +0 -1
  149. package/app/assets/typescript-Ww5oHWDp.js +0 -1
  150. package/app/assets/typespec-B8J7ngcE.js +0 -1
  151. package/app/assets/ui-store-BPY9VfQP.js +0 -1
  152. package/app/assets/use-engine-F2Y_trPz.js +0 -1
  153. package/app/assets/user-store-D5dzuD-E.js +0 -1
  154. package/app/assets/vb-DV3o63ZY.js +0 -1
  155. package/app/assets/wgsl-DpFanUEy.js +0 -298
  156. package/app/assets/xml-CT99FsSc.js +0 -1
  157. package/app/assets/yaml-DA78fpmA.js +0 -1
  158. package/app/assets/zh-DCKqmOQA.js +0 -2
  159. package/app/cloudflare-d1-client/index.html +0 -111
  160. package/app/de/cloudflare-d1-client/index.html +0 -111
  161. package/app/de/index.html +0 -123
  162. package/app/de/mariadb-client/index.html +0 -111
  163. package/app/de/mysql-client/index.html +0 -112
  164. package/app/de/neon-client/index.html +0 -111
  165. package/app/de/oracle-client/index.html +0 -111
  166. package/app/de/postgresql-client/index.html +0 -111
  167. package/app/de/sql-server-client/index.html +0 -111
  168. package/app/de/sqlite-viewer/index.html +0 -112
  169. package/app/de/supabase-client/index.html +0 -111
  170. package/app/favicon.svg +0 -1
  171. package/app/fr/cloudflare-d1-client/index.html +0 -111
  172. package/app/fr/index.html +0 -123
  173. package/app/fr/mariadb-client/index.html +0 -111
  174. package/app/fr/mysql-client/index.html +0 -112
  175. package/app/fr/neon-client/index.html +0 -111
  176. package/app/fr/oracle-client/index.html +0 -111
  177. package/app/fr/postgresql-client/index.html +0 -111
  178. package/app/fr/sql-server-client/index.html +0 -111
  179. package/app/fr/sqlite-viewer/index.html +0 -112
  180. package/app/fr/supabase-client/index.html +0 -111
  181. package/app/icons.svg +0 -24
  182. package/app/index.html +0 -123
  183. package/app/ja/cloudflare-d1-client/index.html +0 -111
  184. package/app/ja/index.html +0 -123
  185. package/app/ja/mariadb-client/index.html +0 -111
  186. package/app/ja/mysql-client/index.html +0 -112
  187. package/app/ja/neon-client/index.html +0 -111
  188. package/app/ja/oracle-client/index.html +0 -111
  189. package/app/ja/postgresql-client/index.html +0 -111
  190. package/app/ja/sql-server-client/index.html +0 -111
  191. package/app/ja/sqlite-viewer/index.html +0 -112
  192. package/app/ja/supabase-client/index.html +0 -111
  193. package/app/ko/cloudflare-d1-client/index.html +0 -111
  194. package/app/ko/index.html +0 -123
  195. package/app/ko/mariadb-client/index.html +0 -111
  196. package/app/ko/mysql-client/index.html +0 -112
  197. package/app/ko/neon-client/index.html +0 -111
  198. package/app/ko/oracle-client/index.html +0 -111
  199. package/app/ko/postgresql-client/index.html +0 -111
  200. package/app/ko/sql-server-client/index.html +0 -111
  201. package/app/ko/sqlite-viewer/index.html +0 -112
  202. package/app/ko/supabase-client/index.html +0 -111
  203. package/app/landing.css +0 -25
  204. package/app/mariadb-client/index.html +0 -111
  205. package/app/mysql-client/index.html +0 -112
  206. package/app/neon-client/index.html +0 -111
  207. package/app/og-image.png +0 -0
  208. package/app/oracle-client/index.html +0 -111
  209. package/app/postgresql-client/index.html +0 -111
  210. package/app/robots.txt +0 -3
  211. package/app/sample-shop.db +0 -0
  212. package/app/sitemap.xml +0 -603
  213. package/app/sql-server-client/index.html +0 -111
  214. package/app/sqlite-viewer/index.html +0 -112
  215. package/app/supabase-client/index.html +0 -111
  216. package/app/zh/cloudflare-d1-client/index.html +0 -111
  217. package/app/zh/index.html +0 -123
  218. package/app/zh/mariadb-client/index.html +0 -111
  219. package/app/zh/mysql-client/index.html +0 -112
  220. package/app/zh/neon-client/index.html +0 -111
  221. package/app/zh/oracle-client/index.html +0 -111
  222. package/app/zh/postgresql-client/index.html +0 -111
  223. package/app/zh/sql-server-client/index.html +0 -111
  224. package/app/zh/sqlite-viewer/index.html +0 -112
  225. package/app/zh/supabase-client/index.html +0 -111
@@ -1 +0,0 @@
1
- import{pt as e}from"./main-NJl8KiiX.js";import{h as t}from"./editor.api2-JBjomUWM.js";import{_ as n,a as r,c as i,d as a,f as o,g as s,h as c,i as l,l as u,m as d,n as f,o as p,p as m,r as h,s as g,t as _,u as v,v as y}from"./lspLanguageFeatures-DQW0rv3P.js";var b=12e4,x=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),3e4),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&=(this._worker.dispose(),null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){this._worker&&Date.now()-this._lastUsedTime>b&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||=(this._worker=e({moduleId:`vs/language/html/htmlWorker`,createWorker:()=>new Worker(new URL(`/assets/html.worker-fD12ABR7.js`,``+import.meta.url),{type:`module`}),createData:{languageSettings:this._defaults.options,languageId:this._defaults.languageId},label:this._defaults.languageId}),this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let t;return this._getClient().then(e=>{t=e}).then(t=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(e=>t)}},S=class extends _{constructor(e){super(e,[`.`,`:`,`<`,`"`,`=`,`/`])}};function C(e){let n=new x(e),o=(...e)=>n.getLanguageServiceWorker(...e),s=e.languageId;t.registerCompletionItemProvider(s,new S(o)),t.registerHoverProvider(s,new a(o)),t.registerDocumentHighlightProvider(s,new p(o)),t.registerLinkProvider(s,new g(o)),t.registerFoldingRangeProvider(s,new v(o)),t.registerDocumentSymbolProvider(s,new u(o)),t.registerSelectionRangeProvider(s,new d(o)),t.registerRenameProvider(s,new m(o)),s===`html`&&(t.registerDocumentFormattingEditProvider(s,new r(o)),t.registerDocumentRangeFormattingEditProvider(s,new i(o)))}function w(e){let n=[],o=[],s=new x(e);n.push(s);let c=(...e)=>s.getLanguageServiceWorker(...e);function l(){let{languageId:n,modeConfiguration:s}=e;E(o),s.completionItems&&o.push(t.registerCompletionItemProvider(n,new S(c))),s.hovers&&o.push(t.registerHoverProvider(n,new a(c))),s.documentHighlights&&o.push(t.registerDocumentHighlightProvider(n,new p(c))),s.links&&o.push(t.registerLinkProvider(n,new g(c))),s.documentSymbols&&o.push(t.registerDocumentSymbolProvider(n,new u(c))),s.rename&&o.push(t.registerRenameProvider(n,new m(c))),s.foldingRanges&&o.push(t.registerFoldingRangeProvider(n,new v(c))),s.selectionRanges&&o.push(t.registerSelectionRangeProvider(n,new d(c))),s.documentFormattingEdits&&o.push(t.registerDocumentFormattingEditProvider(n,new r(c))),s.documentRangeFormattingEdits&&o.push(t.registerDocumentRangeFormattingEditProvider(n,new i(c)))}return l(),n.push(T(o)),T(n)}function T(e){return{dispose:()=>E(e)}}function E(e){for(;e.length;)e.pop().dispose()}export{_ as CompletionAdapter,f as DefinitionAdapter,h as DiagnosticsAdapter,l as DocumentColorAdapter,r as DocumentFormattingEditProvider,p as DocumentHighlightAdapter,g as DocumentLinkAdapter,i as DocumentRangeFormattingEditProvider,u as DocumentSymbolAdapter,v as FoldingRangeAdapter,a as HoverAdapter,o as ReferenceAdapter,m as RenameAdapter,d as SelectionRangeAdapter,x as WorkerManager,c as fromPosition,s as fromRange,w as setupMode,C as setupMode1,n as toRange,y as toTextEdit};
@@ -1,2 +0,0 @@
1
- import{f as e,u as t}from"./ui-store-BPY9VfQP.js";import{t as n}from"./preload-helper-Czpn1I53.js";var r=e=>typeof e==`string`,i=()=>{let e,t,n=new Promise((n,r)=>{e=n,t=r});return n.resolve=e,n.reject=t,n},a=e=>e==null?``:String(e),o=(e,t,n)=>{e.forEach(e=>{t[e]&&(n[e]=t[e])})},s=/###/g,c=e=>e&&e.includes(`###`)?e.replace(s,`.`):e,l=e=>!e||r(e),u=(e,t,n)=>{let i=r(t)?t.split(`.`):t,a=0;for(;a<i.length-1;){if(l(e))return{};let t=c(i[a]);!e[t]&&n&&(e[t]=new n),e=Object.prototype.hasOwnProperty.call(e,t)?e[t]:{},++a}return l(e)?{}:{obj:e,k:c(i[a])}},d=(e,t,n)=>{let{obj:r,k:i}=u(e,t,Object);if(r!==void 0||t.length===1){r[i]=n;return}let a=t[t.length-1],o=t.slice(0,t.length-1),s=u(e,o,Object);for(;s.obj===void 0&&o.length;)a=`${o[o.length-1]}.${a}`,o=o.slice(0,o.length-1),s=u(e,o,Object),s?.obj&&s.obj[`${s.k}.${a}`]!==void 0&&(s.obj=void 0);s.obj[`${s.k}.${a}`]=n},f=(e,t,n,r)=>{let{obj:i,k:a}=u(e,t,Object);i[a]=i[a]||[],i[a].push(n)},p=(e,t)=>{let{obj:n,k:r}=u(e,t);if(n&&Object.prototype.hasOwnProperty.call(n,r))return n[r]},m=(e,t,n)=>{let r=p(e,n);return r===void 0?p(t,n):r},h=(e,t,n)=>{for(let i in t)i!==`__proto__`&&i!==`constructor`&&(Object.prototype.hasOwnProperty.call(e,i)?r(e[i])||e[i]instanceof String||r(t[i])||t[i]instanceof String?n&&(e[i]=t[i]):h(e[i],t[i],n):e[i]=t[i]);return e},g=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,`\\$&`),_={"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`,"/":`&#x2F;`},v=e=>r(e)?e.replace(/[&<>"'\/]/g,e=>_[e]):e,y=class{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){let t=this.regExpMap.get(e);if(t!==void 0)return t;let n=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,n),this.regExpQueue.push(e),n}},b=[` `,`,`,`?`,`!`,`;`],x=new y(20),S=(e,t,n)=>{t||=``,n||=``;let r=b.filter(e=>!t.includes(e)&&!n.includes(e));if(r.length===0)return!0;let i=x.getRegExp(`(${r.map(e=>e===`?`?`\\?`:e).join(`|`)})`),a=!i.test(e);if(!a){let t=e.indexOf(n);t>0&&!i.test(e.substring(0,t))&&(a=!0)}return a},C=(e,t,n=`.`)=>{if(!e)return;if(e[t])return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0;let r=t.split(n),i=e;for(let e=0;e<r.length;){if(!i||typeof i!=`object`)return;let t,a=``;for(let o=e;o<r.length;++o)if(o!==e&&(a+=n),a+=r[o],t=i[a],t!==void 0){if([`string`,`number`,`boolean`].includes(typeof t)&&o<r.length-1)continue;e+=o-e+1;break}i=t}return i},w=e=>e?.replace(/_/g,`-`),T={type:`logger`,log(e){this.output(`log`,e)},warn(e){this.output(`warn`,e)},error(e){this.output(`error`,e)},output(e,t){console?.[e]?.apply?.(console,t)}},E=new class e{constructor(e,t={}){this.init(e,t)}init(e,t={}){this.prefix=t.prefix||`i18next:`,this.logger=e||T,this.options=t,this.debug=t.debug}log(...e){return this.forward(e,`log`,``,!0)}warn(...e){return this.forward(e,`warn`,``,!0)}error(...e){return this.forward(e,`error`,``)}deprecate(...e){return this.forward(e,`warn`,`WARNING DEPRECATED: `,!0)}forward(e,t,n,i){return i&&!this.debug?null:(e=e.map(e=>r(e)?e.replace(/[\r\n\x00-\x1F\x7F]/g,` `):e),r(e[0])&&(e[0]=`${n}${this.prefix} ${e[0]}`),this.logger[t](e))}create(t){return new e(this.logger,{prefix:`${this.prefix}:${t}:`,...this.options})}clone(t){return t||=this.options,t.prefix=t.prefix||this.prefix,new e(this.logger,t)}},D=class{constructor(){this.observers={}}on(e,t){return e.split(` `).forEach(e=>{this.observers[e]||(this.observers[e]=new Map);let n=this.observers[e].get(t)||0;this.observers[e].set(t,n+1)}),this}off(e,t){if(this.observers[e]){if(!t){delete this.observers[e];return}this.observers[e].delete(t)}}once(e,t){let n=(...r)=>{t(...r),this.off(e,n)};return this.on(e,n),this}emit(e,...t){this.observers[e]&&Array.from(this.observers[e].entries()).forEach(([e,n])=>{for(let r=0;r<n;r++)e(...t)}),this.observers[`*`]&&Array.from(this.observers[`*`].entries()).forEach(([n,r])=>{for(let i=0;i<r;i++)n(e,...t)})}},O=class extends D{constructor(e,t={ns:[`translation`],defaultNS:`translation`}){super(),this.data=e||{},this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator=`.`),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.includes(e)||this.options.ns.push(e)}removeNamespaces(e){let t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}getResource(e,t,n,i={}){let a=i.keySeparator===void 0?this.options.keySeparator:i.keySeparator,o=i.ignoreJSONStructure===void 0?this.options.ignoreJSONStructure:i.ignoreJSONStructure,s;e.includes(`.`)?s=e.split(`.`):(s=[e,t],n&&(Array.isArray(n)?s.push(...n):r(n)&&a?s.push(...n.split(a)):s.push(n)));let c=p(this.data,s);return!c&&!t&&!n&&e.includes(`.`)&&(e=s[0],t=s[1],n=s.slice(2).join(`.`)),c||!o||!r(n)?c:C(this.data?.[e]?.[t],n,a)}addResource(e,t,n,r,i={silent:!1}){let a=i.keySeparator===void 0?this.options.keySeparator:i.keySeparator,o=[e,t];n&&(o=o.concat(a?n.split(a):n)),e.includes(`.`)&&(o=e.split(`.`),r=t,t=o[1]),this.addNamespaces(t),d(this.data,o,r),i.silent||this.emit(`added`,e,t,n,r)}addResources(e,t,n,i={silent:!1}){for(let i in n)(r(n[i])||Array.isArray(n[i]))&&this.addResource(e,t,i,n[i],{silent:!0});i.silent||this.emit(`added`,e,t,n)}addResourceBundle(e,t,n,r,i,a={silent:!1,skipCopy:!1}){let o=[e,t];e.includes(`.`)&&(o=e.split(`.`),r=n,n=t,t=o[1]),this.addNamespaces(t);let s=p(this.data,o)||{};a.skipCopy||(n=JSON.parse(JSON.stringify(n))),r?h(s,n,i):s={...s,...n},d(this.data,o,s),a.silent||this.emit(`added`,e,t,n)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit(`removed`,e,t)}hasResourceBundle(e,t){return this.getResource(e,t)!==void 0}getResourceBundle(e,t){return t||=this.options.defaultNS,this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){let t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(e=>t[e]&&Object.keys(t[e]).length>0)}toJSON(){return this.data}},k={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,r,i){return e.forEach(e=>{t=this.processors[e]?.process(t,n,r,i)??t}),t}},A=Symbol(`i18next/PATH_KEY`);function j(){let e=[],t=Object.create(null),n;return t.get=(r,i)=>(n?.revoke?.(),i===A?e:(e.push(i),n=Proxy.revocable(r,t),n.proxy)),Proxy.revocable(Object.create(null),t).proxy}function M(e,t){let{[A]:n}=e(j()),r=t?.keySeparator??`.`,i=t?.nsSeparator??`:`,a=t?.enableSelector===`strict`;if(n.length>1&&i){let e=t?.ns,o=a?Array.isArray(e)?e:e?[e]:null:Array.isArray(e)?e:null;if(o&&(a?o:o.length>1?o.slice(1):[]).includes(n[0]))return`${n[0]}${i}${n.slice(1).join(r)}`}return n.join(r)}var N=e=>!r(e)&&typeof e!=`boolean`&&typeof e!=`number`,P=class e extends D{constructor(e,t={}){super(),o([`resourceStore`,`languageUtils`,`pluralResolver`,`interpolator`,`backendConnector`,`i18nFormat`,`utils`],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator=`.`),this.logger=E.create(`translator`),this.checkedLoadedFor={}}changeLanguage(e){e&&(this.language=e)}exists(e,t={interpolation:{}}){let n={...t};if(e==null)return!1;let r=this.resolve(e,n);if(r?.res===void 0)return!1;let i=N(r.res);return!(n.returnObjects===!1&&i)}extractFromKey(e,t){let n=t.nsSeparator===void 0?this.options.nsSeparator:t.nsSeparator;n===void 0&&(n=`:`);let i=t.keySeparator===void 0?this.options.keySeparator:t.keySeparator,a=t.ns||this.options.defaultNS||[],o=n&&e.includes(n),s=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!S(e,n,i);if(o&&!s){let t=e.match(this.interpolator.nestingRegexp);if(t&&t.length>0)return{key:e,namespaces:r(a)?[a]:a};let o=e.split(n);(n!==i||n===i&&this.options.ns.includes(o[0]))&&(a=o.shift()),e=o.join(i)}return{key:e,namespaces:r(a)?[a]:a}}translate(t,n,i){let a=typeof n==`object`?{...n}:n;if(typeof a!=`object`&&this.options.overloadTranslationOptionHandler&&(a=this.options.overloadTranslationOptionHandler(arguments)),typeof a==`object`&&(a={...a}),a||={},t==null)return``;typeof t==`function`&&(t=M(t,{...this.options,...a})),Array.isArray(t)||(t=[String(t)]),t=t.map(e=>typeof e==`function`?M(e,{...this.options,...a}):String(e));let o=a.returnDetails===void 0?this.options.returnDetails:a.returnDetails,s=a.keySeparator===void 0?this.options.keySeparator:a.keySeparator,{key:c,namespaces:l}=this.extractFromKey(t[t.length-1],a),u=l[l.length-1],d=a.nsSeparator===void 0?this.options.nsSeparator:a.nsSeparator;d===void 0&&(d=`:`);let f=a.lng||this.language,p=a.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(f?.toLowerCase()===`cimode`)return p?o?{res:`${u}${d}${c}`,usedKey:c,exactUsedKey:c,usedLng:f,usedNS:u,usedParams:this.getUsedParamsDetails(a)}:`${u}${d}${c}`:o?{res:c,usedKey:c,exactUsedKey:c,usedLng:f,usedNS:u,usedParams:this.getUsedParamsDetails(a)}:c;let m=this.resolve(t,a),h=m?.res,g=m?.usedKey||c,_=m?.exactUsedKey||c,v=[`[object Number]`,`[object Function]`,`[object RegExp]`],y=a.joinArrays===void 0?this.options.joinArrays:a.joinArrays,b=!this.i18nFormat||this.i18nFormat.handleAsObject,x=a.count!==void 0&&!r(a.count),S=e.hasDefaultValue(a),C=x?this.pluralResolver.getSuffix(f,a.count,a):``,w=a.ordinal&&x?this.pluralResolver.getSuffix(f,a.count,{ordinal:!1}):``,T=x&&!a.ordinal&&a.count===0,E=T&&a[`defaultValue${this.options.pluralSeparator}zero`]||a[`defaultValue${C}`]||a[`defaultValue${w}`]||a.defaultValue,D=h;b&&!h&&S&&(D=E);let O=N(D),k=Object.prototype.toString.apply(D);if(b&&D&&O&&!v.includes(k)&&!(r(y)&&Array.isArray(D))){if(!a.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn(`accessing an object - but returnObjects options is not enabled!`);let e=this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,D,{...a,ns:l}):`key '${c} (${this.language})' returned an object instead of string.`;return o?(m.res=e,m.usedParams=this.getUsedParamsDetails(a),m):e}if(s){let e=Array.isArray(D),t=e?[]:{},n=e?_:g;for(let e in D)if(Object.prototype.hasOwnProperty.call(D,e)){let r=`${n}${s}${e}`;t[e]=S&&!h?this.translate(r,{...a,defaultValue:N(E)?E[e]:void 0,joinArrays:!1,ns:l}):this.translate(r,{...a,joinArrays:!1,ns:l}),t[e]===r&&(t[e]=D[e])}h=t}}else if(b&&r(y)&&Array.isArray(h))h=h.join(y),h&&=this.extendTranslation(h,t,a,i);else{let e=!1,n=!1;!this.isValidLookup(h)&&S&&(e=!0,h=E),this.isValidLookup(h)||(n=!0,h=c);let r=(a.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&n?void 0:h,o=S&&E!==h&&this.options.updateMissing;if(n||e||o){if(this.logger.log(o?`updateKey`:`missingKey`,f,u,x&&!o?`${c}${this.pluralResolver.getSuffix(f,a.count,a)}`:c,o?E:h),s){let e=this.resolve(c,{...a,keySeparator:!1});e&&e.res&&this.logger.warn(`Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.`)}let e=[],t=this.languageUtils.getFallbackCodes(this.options.fallbackLng,a.lng||this.language);if(this.options.saveMissingTo===`fallback`&&t&&t[0])for(let n=0;n<t.length;n++)e.push(t[n]);else this.options.saveMissingTo===`all`?e=this.languageUtils.toResolveHierarchy(a.lng||this.language):e.push(a.lng||this.language);let n=(e,t,n)=>{let i=S&&n!==h?n:r;this.options.missingKeyHandler?this.options.missingKeyHandler(e,u,t,i,o,a):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(e,u,t,i,o,a),this.emit(`missingKey`,e,u,t,h)};this.options.saveMissing&&(this.options.saveMissingPlurals&&x?e.forEach(e=>{let t=this.pluralResolver.getSuffixes(e,a);T&&a[`defaultValue${this.options.pluralSeparator}zero`]&&!t.includes(`${this.options.pluralSeparator}zero`)&&t.push(`${this.options.pluralSeparator}zero`),t.forEach(t=>{n([e],c+t,a[`defaultValue${t}`]||E)})}):n(e,c,E))}h=this.extendTranslation(h,t,a,m,i),n&&h===c&&this.options.appendNamespaceToMissingKey&&(h=`${u}${d}${c}`),(n||e)&&this.options.parseMissingKeyHandler&&(h=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${u}${d}${c}`:c,e?h:void 0,a))}return o?(m.res=h,m.usedParams=this.getUsedParamsDetails(a),m):h}extendTranslation(e,t,n,i,a){if(this.i18nFormat?.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||i.usedLng,i.usedNS,i.usedKey,{resolved:i});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});let o=r(e)&&(n?.interpolation?.skipOnVariables===void 0?this.options.interpolation.skipOnVariables:n.interpolation.skipOnVariables),s;if(o){let t=e.match(this.interpolator.nestingRegexp);s=t&&t.length}let c=n.replace&&!r(n.replace)?n.replace:n;if(this.options.interpolation.defaultVariables&&(c={...this.options.interpolation.defaultVariables,...c}),e=this.interpolator.interpolate(e,c,n.lng||this.language||i.usedLng,n),o){let t=e.match(this.interpolator.nestingRegexp),r=t&&t.length;s<r&&(n.nest=!1)}!n.lng&&i&&i.res&&(n.lng=this.language||i.usedLng),n.nest!==!1&&(e=this.interpolator.nest(e,(...e)=>a?.[0]===e[0]&&!n.context?(this.logger.warn(`It seems you are nesting recursively key: ${e[0]} in key: ${t[0]}`),null):this.translate(...e,t),n)),n.interpolation&&this.interpolator.reset()}let o=n.postProcess||this.options.postProcess,s=r(o)?[o]:o;return e!=null&&s?.length&&n.applyPostProcessor!==!1&&(e=k.handle(s,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...i,usedParams:this.getUsedParamsDetails(n)},...n}:n,this)),e}resolve(e,t={}){let n,i,a,o,s;return r(e)&&(e=[e]),Array.isArray(e)&&(e=e.map(e=>typeof e==`function`?M(e,{...this.options,...t}):e)),e.forEach(e=>{if(this.isValidLookup(n))return;let c=this.extractFromKey(e,t),l=c.key;i=l;let u=c.namespaces;this.options.fallbackNS&&(u=u.concat(this.options.fallbackNS));let d=t.count!==void 0&&!r(t.count),f=d&&!t.ordinal&&t.count===0,p=t.context!==void 0&&(r(t.context)||typeof t.context==`number`)&&t.context!==``,m=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);u.forEach(e=>{this.isValidLookup(n)||(s=e,!this.checkedLoadedFor[`${m[0]}-${e}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(s)&&(this.checkedLoadedFor[`${m[0]}-${e}`]=!0,this.logger.warn(`key "${i}" for languages "${m.join(`, `)}" won't get resolved as namespace "${s}" was not yet loaded`,`This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!`)),m.forEach(r=>{if(this.isValidLookup(n))return;o=r;let i=[l];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(i,l,r,e,t);else{let e;d&&(e=this.pluralResolver.getSuffix(r,t.count,t));let n=`${this.options.pluralSeparator}zero`,a=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(d&&(t.ordinal&&e.startsWith(a)&&i.push(l+e.replace(a,this.options.pluralSeparator)),i.push(l+e),f&&i.push(l+n)),p){let r=`${l}${this.options.contextSeparator||`_`}${t.context}`;i.push(r),d&&(t.ordinal&&e.startsWith(a)&&i.push(r+e.replace(a,this.options.pluralSeparator)),i.push(r+e),f&&i.push(r+n))}}let s;for(;s=i.pop();)this.isValidLookup(n)||(a=s,n=this.getResource(r,e,s,t))}))})}),{res:n,usedKey:i,exactUsedKey:a,usedLng:o,usedNS:s}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e===``)}getResource(e,t,n,r={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}getUsedParamsDetails(e={}){let t=[`defaultValue`,`ordinal`,`context`,`replace`,`lng`,`lngs`,`fallbackLng`,`ns`,`keySeparator`,`nsSeparator`,`returnObjects`,`returnDetails`,`joinArrays`,`postProcess`,`interpolation`],n=e.replace&&!r(e.replace),i=n?e.replace:e;if(n&&e.count!==void 0&&(i={...i,count:e.count}),this.options.interpolation.defaultVariables&&(i={...this.options.interpolation.defaultVariables,...i}),!n){i={...i};for(let e of t)delete i[e]}return i}static hasDefaultValue(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&t.startsWith(`defaultValue`)&&e[t]!==void 0)return!0;return!1}},F=class{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=E.create(`languageUtils`),this.resolveHierarchyCache={}}clearCache(){this.resolveHierarchyCache={}}getScriptPartFromCode(e){if(e=w(e),!e||!e.includes(`-`))return null;let t=e.split(`-`);return t.length===2||(t.pop(),t[t.length-1].toLowerCase()===`x`)?null:this.formatLanguageCode(t.join(`-`))}getLanguagePartFromCode(e){if(e=w(e),!e||!e.includes(`-`))return e;let t=e.split(`-`);return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(r(e)&&e.includes(`-`)){let t;try{t=Intl.getCanonicalLocales(e)[0]}catch{}return t&&this.options.lowerCaseLng&&(t=t.toLowerCase()),t||(this.options.lowerCaseLng?e.toLowerCase():e)}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load===`languageOnly`||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.includes(e)}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach(e=>{if(t)return;let n=this.formatLanguageCode(e);(!this.options.supportedLngs||this.isSupportedCode(n))&&(t=n)}),!t&&this.options.supportedLngs&&e.forEach(e=>{if(t)return;let n=this.getScriptPartFromCode(e);if(this.isSupportedCode(n))return t=n;let r=this.getLanguagePartFromCode(e);if(this.isSupportedCode(r))return t=r;t=this.options.supportedLngs.find(e=>e===r?!0:!e.includes(`-`)&&!r.includes(`-`)?!1:!!(e.includes(`-`)&&!r.includes(`-`)&&e.slice(0,e.indexOf(`-`))===r||e.startsWith(r)&&r.length>1))}),t||=this.getFallbackCodes(this.options.fallbackLng)[0],t}getFallbackCodes(e,t){if(!e)return[];if(typeof e==`function`&&(e=e(t)),r(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let n=e[t];return n||=e[this.getScriptPartFromCode(t)],n||=e[this.formatLanguageCode(t)],n||=e[this.getLanguagePartFromCode(t)],n||=e.default,n||[]}toResolveHierarchy(e,t){let n=this.options.fallbackLng,i=Array.isArray(n)?n.join(`|`):n;i!==this._cachedFallbackLng&&(this.resolveHierarchyCache={},this._cachedFallbackLng=i);let a=t===void 0||t===!1||r(t),o=t===void 0&&typeof this.options.fallbackLng==`function`,s=r(e)&&a&&!o,c=null;if(s){let n;n=t===void 0?`undefined`:t===!1?`boolean:false`:`string:${t}`,c=`${e.length}:${e}|${n}`}if(c!==null){let e=this.resolveHierarchyCache[c];if(e!==void 0)return e.slice()}let l=this.getFallbackCodes((t===!1?[]:t)||this.options.fallbackLng||[],e),u=[],d=e=>{e&&(this.isSupportedCode(e)?u.push(e):this.logger.warn(`rejecting language code not found in supportedLngs: ${e}`))};return r(e)&&(e.includes(`-`)||e.includes(`_`))?(this.options.load!==`languageOnly`&&d(this.formatLanguageCode(e)),this.options.load!==`languageOnly`&&this.options.load!==`currentOnly`&&d(this.getScriptPartFromCode(e)),this.options.load!==`currentOnly`&&d(this.getLanguagePartFromCode(e))):r(e)&&d(this.formatLanguageCode(e)),l.forEach(e=>{u.includes(e)||d(this.formatLanguageCode(e))}),c===null?u:(this.resolveHierarchyCache[c]=u,u.slice())}},I={zero:0,one:1,two:2,few:3,many:4,other:5},L={select:e=>e===1?`one`:`other`,resolvedOptions:()=>({pluralCategories:[`one`,`other`]})},R=class{constructor(e,t={}){this.languageUtils=e,this.options=t,this.logger=E.create(`pluralResolver`),this.pluralRulesCache={}}clearCache(){this.pluralRulesCache={}}getRule(e,t={}){let n=w(e===`dev`?`en`:e),r=t.ordinal?`ordinal`:`cardinal`,i=JSON.stringify({cleanedCode:n,type:r});if(i in this.pluralRulesCache)return this.pluralRulesCache[i];let a;try{a=new Intl.PluralRules(n,{type:r})}catch{if(typeof Intl>`u`)return this.logger.error(`No Intl support, please use an Intl polyfill!`),L;if(!e.match(/-|_/))return L;let n=this.languageUtils.getLanguagePartFromCode(e);a=this.getRule(n,t)}return this.pluralRulesCache[i]=a,a}needsPlural(e,t={}){let n=this.getRule(e,t);return n||=this.getRule(`dev`,t),n?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(e,t,n={}){return this.getSuffixes(e,n).map(e=>`${t}${e}`)}getSuffixes(e,t={}){let n=this.getRule(e,t);return n||=this.getRule(`dev`,t),n?n.resolvedOptions().pluralCategories.sort((e,t)=>I[e]-I[t]).map(e=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:``}${e}`):[]}getSuffix(e,t,n={}){let r=this.getRule(e,n);return r?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:``}${r.select(t)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix(`dev`,t,n))}},z=(e,t,n,i=`.`,a=!0)=>{let o=m(e,t,n);return!o&&a&&r(n)&&(o=C(e,n,i),o===void 0&&(o=C(t,n,i))),o},B=e=>e.replace(/\$/g,`$$$$`),V=class{constructor(e={}){this.logger=E.create(`interpolator`),this.options=e,this.format=e?.interpolation?.format||(e=>e),this.init(e)}init(e={}){e.interpolation||={escapeValue:!0};let{escape:t,escapeValue:n,useRawValueToEscape:r,prefix:i,prefixEscaped:a,suffix:o,suffixEscaped:s,formatSeparator:c,unescapeSuffix:l,unescapePrefix:u,nestingPrefix:d,nestingPrefixEscaped:f,nestingSuffix:p,nestingSuffixEscaped:m,nestingOptionsSeparator:h,maxReplaces:_,alwaysFormat:y}=e.interpolation;this.escape=t===void 0?v:t,this.escapeValue=n===void 0||n,this.useRawValueToEscape=r!==void 0&&r,this.prefix=i?g(i):a||`{{`,this.suffix=o?g(o):s||`}}`,this.formatSeparator=c||`,`,this.unescapePrefix=l?``:u?g(u):`-`,this.unescapeSuffix=this.unescapePrefix?``:l?g(l):``,this.nestingPrefix=d?g(d):f||g(`$t(`),this.nestingSuffix=p?g(p):m||g(`)`),this.nestingOptionsSeparator=h||`,`,this.maxReplaces=_||1e3,this.alwaysFormat=y!==void 0&&y,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){let e=(e,t)=>e?.source===t?(e.lastIndex=0,e):new RegExp(t,`g`);this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(e,t,n,i){let o,s,c,l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},u=e=>{if(!e.includes(this.formatSeparator)){let r=z(t,l,e,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(r,void 0,n,{...i,...t,interpolationkey:e}):r}let r=e.split(this.formatSeparator),a=r.shift().trim(),o=r.join(this.formatSeparator).trim();return this.format(z(t,l,a,this.options.keySeparator,this.options.ignoreJSONStructure),o,n,{...i,...t,interpolationkey:a})};this.resetRegExp(),!this.escapeValue&&typeof e==`string`&&/\$t\([^)]*\{[^}]*\{\{/.test(e)&&this.logger.warn(`nesting options string contains interpolated variables with escapeValue: false — if any of those values are attacker-controlled they can inject additional nesting options (e.g. redirect lng/ns). Sanitise untrusted input before passing it to t(), or keep escapeValue: true.`);let d=i?.missingInterpolationHandler||this.options.missingInterpolationHandler,f=i?.interpolation?.skipOnVariables===void 0?this.options.interpolation.skipOnVariables:i.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:e=>e},{regex:this.regexp,safeValue:e=>this.escapeValue?this.escape(e):e}].forEach(t=>{for(c=0;o=t.regex.exec(e);){let n=o[1].trim();if(s=u(n),s===void 0){if(typeof d==`function`){let t=d(e,o,i);s=r(t)?t:``}else if(i&&Object.prototype.hasOwnProperty.call(i,n))s=``;else if(f){s=o[0];continue}else this.logger.warn(`missed to pass in variable ${n} for interpolating ${e}`),s=``}else!r(s)&&!this.useRawValueToEscape&&(s=a(s));let l=t.safeValue(s);if(e=e.replace(o[0],B(l)),f?(t.regex.lastIndex+=l.length,t.regex.lastIndex-=o[0].length):t.regex.lastIndex=0,c++,c>=this.maxReplaces)break}}),e}nest(e,t,n={}){let i,o,s,c=(e,t)=>{let n=this.nestingOptionsSeparator;if(!e.includes(n))return e;let r=e.split(RegExp(`${g(n)}[ ]*{`)),i=`{${r[1]}`;e=r[0],i=this.interpolate(i,s);let a=i.match(/'/g),o=i.match(/"/g);((a?.length??0)%2==0&&!o||(o?.length??0)%2!=0)&&(i=i.replace(/'/g,`"`));try{s=JSON.parse(i),t&&(s={...t,...s})}catch(t){return this.logger.warn(`failed parsing options string in nesting for key ${e}`,t),`${e}${n}${i}`}return s.defaultValue&&s.defaultValue.includes(this.prefix)&&delete s.defaultValue,e};for(;i=this.nestingRegexp.exec(e);){let l=[];s={...n},s=s.replace&&!r(s.replace)?s.replace:s,s.applyPostProcessor=!1,delete s.defaultValue;let u=/{.*}/s.test(i[1])?i[1].lastIndexOf(`}`)+1:i[1].indexOf(this.formatSeparator);if(u!==-1&&(l=i[1].slice(u).split(this.formatSeparator).map(e=>e.trim()).filter(Boolean),i[1]=i[1].slice(0,u)),o=t(c.call(this,i[1].trim(),s),s),o&&i[0]===e&&!r(o))return o;r(o)||(o=a(o)),o||=(this.logger.warn(`missed to resolve ${i[1]} for nesting ${e}`),``),l.length&&(o=l.reduce((e,t)=>this.format(e,t,n.lng,{...n,interpolationkey:i[1].trim()}),o.trim())),e=e.replace(i[0],o),this.regexp.lastIndex=0}return e}},H=e=>{let t=e.toLowerCase().trim(),n={};if(e.includes(`(`)){let r=e.split(`(`);t=r[0].toLowerCase().trim();let i=r[1].slice(0,-1);t===`currency`&&!i.includes(`:`)?n.currency||=i.trim():t===`relativetime`&&!i.includes(`:`)?n.range||=i.trim():i.split(`;`).forEach(e=>{if(e){let[t,...r]=e.split(`:`),i=r.join(`:`).trim().replace(/^'+|'+$/g,``),a=t.trim();n[a]||(n[a]=i),i===`false`&&(n[a]=!1),i===`true`&&(n[a]=!0),isNaN(i)||(n[a]=parseInt(i,10))}})}return{formatName:t,formatOptions:n}},U=e=>{let t={};return(n,r,i)=>{let a=i;i&&i.interpolationkey&&i.formatParams&&i.formatParams[i.interpolationkey]&&i[i.interpolationkey]&&(a={...a,[i.interpolationkey]:void 0});let o=r+JSON.stringify(a),s=t[o];return s||(s=e(w(r),i),t[o]=s),s(n)}},W=e=>(t,n,r)=>e(w(n),r)(t),G=class{constructor(e={}){this.logger=E.create(`formatter`),this.options=e,this.init(e)}init(e,t={interpolation:{}}){this.formatSeparator=t.interpolation.formatSeparator||`,`;let n=t.cacheInBuiltFormats?U:W;this.formats={number:n((e,t)=>{let n=new Intl.NumberFormat(e,{...t});return e=>n.format(e)}),currency:n((e,t)=>{let n=new Intl.NumberFormat(e,{...t,style:`currency`});return e=>n.format(e)}),datetime:n((e,t)=>{let n=new Intl.DateTimeFormat(e,{...t});return e=>n.format(e)}),relativetime:n((e,t)=>{let n=new Intl.RelativeTimeFormat(e,{...t});return e=>n.format(e,t.range||`day`)}),list:n((e,t)=>{let n=new Intl.ListFormat(e,{...t});return e=>n.format(e)})}}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=U(t)}format(e,t,n,r={}){if(!t||e==null)return e;let i=t.split(this.formatSeparator),a=[];for(let e=0;e<i.length;e++){let t=i[e];for(;t.indexOf(`(`)>-1&&!t.includes(`)`)&&e+1<i.length;)t=`${t}${this.formatSeparator}${i[++e]}`;a.push(t)}return a.reduce((e,t)=>{let{formatName:i,formatOptions:a}=H(t);if(this.formats[i]){let t=e;try{let o=r?.formatParams?.[r.interpolationkey]||{},s=o.locale||o.lng||r.locale||r.lng||n;t=this.formats[i](e,s,{...a,...r,...o})}catch(e){this.logger.warn(e)}return t}return this.logger.warn(`there was no format function for ${i}`),e},e)}},K=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)},q=class extends D{constructor(e,t,n,r={}){super(),this.backend=e,this.store=t,this.services=n,this.languageUtils=n.languageUtils,this.options=r,this.logger=E.create(`backendConnector`),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(n,r.backend,r)}queueLoad(e,t,n,r){let i={},a={},o={},s={};return e.forEach(e=>{let r=!0;t.forEach(t=>{let o=`${e}|${t}`;!n.reload&&this.store.hasResourceBundle(e,t)?this.state[o]=2:this.state[o]<0||(this.state[o]===1?a[o]===void 0&&(a[o]=!0):(this.state[o]=1,r=!1,a[o]===void 0&&(a[o]=!0),i[o]===void 0&&(i[o]=!0),s[t]===void 0&&(s[t]=!0)))}),r||(o[e]=!0)}),(Object.keys(i).length||Object.keys(a).length)&&this.queue.push({pending:a,pendingCount:Object.keys(a).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(i),pending:Object.keys(a),toLoadLanguages:Object.keys(o),toLoadNamespaces:Object.keys(s)}}loaded(e,t,n){let r=e.split(`|`),i=r[0],a=r[1];t&&this.emit(`failedLoading`,i,a,t),!t&&n&&this.store.addResourceBundle(i,a,n,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&n&&(this.state[e]=0);let o={};this.queue.forEach(n=>{f(n.loaded,[i],a),K(n,e),t&&n.errors.push(t),n.pendingCount===0&&!n.done&&(Object.keys(n.loaded).forEach(e=>{o[e]||(o[e]={});let t=n.loaded[e];t.length&&t.forEach(t=>{o[e][t]===void 0&&(o[e][t]=!0)})}),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())}),this.emit(`loaded`,o),this.queue=this.queue.filter(e=>!e.done)}read(e,t,n,r=0,i=this.retryTimeout,a){if(!e.length)return a(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:t,fcName:n,tried:r,wait:i,callback:a});return}this.readingCalls++;let o=(o,s)=>{if(this.readingCalls--,this.waitingReads.length>0){let e=this.waitingReads.shift();this.read(e.lng,e.ns,e.fcName,e.tried,e.wait,e.callback)}if(o&&s&&r<this.maxRetries){setTimeout(()=>{this.read(e,t,n,r+1,i*2,a)},i);return}a(o,s)},s=this.backend[n].bind(this.backend);if(s.length===2){try{let n=s(e,t);n&&typeof n.then==`function`?n.then(e=>o(null,e)).catch(o):o(null,n)}catch(e){o(e)}return}return s(e,t,o)}prepareLoading(e,t,n={},i){if(!this.backend)return this.logger.warn(`No backend was added via i18next.use. Will not load resources.`),i&&i();r(e)&&(e=this.languageUtils.toResolveHierarchy(e)),r(t)&&(t=[t]);let a=this.queueLoad(e,t,n,i);if(!a.toLoad.length)return a.pending.length||i(),null;a.toLoad.forEach(e=>{this.loadOne(e)})}load(e,t,n){this.prepareLoading(e,t,{},n)}reload(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}loadOne(e,t=``){let n=e.split(`|`),r=n[0],i=n[1];this.read(r,i,`read`,void 0,void 0,(n,a)=>{n&&this.logger.warn(`${t}loading namespace ${i} for language ${r} failed`,n),!n&&a&&this.logger.log(`${t}loaded namespace ${i} for language ${r}`,a),this.loaded(e,n,a)})}saveMissing(e,t,n,r,i,a={},o=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(t)){this.logger.warn(`did not save key "${n}" as the namespace "${t}" was not yet loaded`,`This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!`);return}if(n!=null&&n!==``){if(this.backend?.create){let s={...a,isUpdate:i},c=this.backend.create.bind(this.backend);if(c.length<6)try{let i;i=c.length===5?c(e,t,n,r,s):c(e,t,n,r),i&&typeof i.then==`function`?i.then(e=>o(null,e)).catch(o):o(null,i)}catch(e){o(e)}else c(e,t,n,r,o,s)}!e||!e[0]||this.store.addResource(e[0],t,n,r)}}},J=()=>({debug:!1,initAsync:!0,ns:[`translation`],defaultNS:[`translation`],fallbackLng:[`dev`],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:`all`,preload:!1,keySeparator:`.`,nsSeparator:`:`,pluralSeparator:`_`,contextSeparator:`_`,enableSelector:!1,partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:`fallback`,saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]==`object`&&(t=e[1]),r(e[1])&&(t.defaultValue=e[1]),r(e[2])&&(t.tDescription=e[2]),typeof e[2]==`object`||typeof e[3]==`object`){let n=e[3]||e[2];Object.keys(n).forEach(e=>{t[e]=n[e]})}return t},interpolation:{escapeValue:!0,prefix:`{{`,suffix:`}}`,formatSeparator:`,`,unescapePrefix:`-`,nestingPrefix:`$t(`,nestingSuffix:`)`,nestingOptionsSeparator:`,`,maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),Y=e=>(r(e.ns)&&(e.ns=[e.ns]),r(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),r(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&!e.supportedLngs.includes(`cimode`)&&(e.supportedLngs=e.supportedLngs.concat([`cimode`])),e),X=()=>{},ee=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(t=>{typeof e[t]==`function`&&(e[t]=e[t].bind(e))})},Z=class e extends D{constructor(e={},t){if(super(),this.options=Y(e),this.services={},this.logger=E,this.modules={external:[]},ee(this),t&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(e={},t){this.isInitializing=!0,typeof e==`function`&&(t=e,e={}),e.defaultNS==null&&e.ns&&(r(e.ns)?e.defaultNS=e.ns:e.ns.includes(`translation`)||(e.defaultNS=e.ns[0]));let n=J();this.options={...n,...this.options,...Y(e)},this.options.interpolation={...n.interpolation,...this.options.interpolation},e.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=e.keySeparator),e.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=e.nsSeparator),typeof this.options.overloadTranslationOptionHandler!=`function`&&(this.options.overloadTranslationOptionHandler=n.overloadTranslationOptionHandler);let a=e=>e?typeof e==`function`?new e:e:null;if(!this.options.isClone){this.modules.logger?E.init(a(this.modules.logger),this.options):E.init(null,this.options);let e;e=this.modules.formatter?this.modules.formatter:G;let t=new F(this.options);this.store=new O(this.options.resources,this.options);let n=this.services;n.logger=E,n.resourceStore=this.store,n.languageUtils=t,n.pluralResolver=new R(t,{prepend:this.options.pluralSeparator}),e&&(n.formatter=a(e),n.formatter.init&&n.formatter.init(n,this.options),this.options.interpolation.format=n.formatter.format.bind(n.formatter)),n.interpolator=new V(this.options),n.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},n.backendConnector=new q(a(this.modules.backend),n.resourceStore,n,this.options),n.backendConnector.on(`*`,(e,...t)=>{this.emit(e,...t)}),this.modules.languageDetector&&(n.languageDetector=a(this.modules.languageDetector),n.languageDetector.init&&n.languageDetector.init(n,this.options.detection,this.options)),this.modules.i18nFormat&&(n.i18nFormat=a(this.modules.i18nFormat),n.i18nFormat.init&&n.i18nFormat.init(this)),this.translator=new P(this.services,this.options),this.translator.on(`*`,(e,...t)=>{this.emit(e,...t)}),this.modules.external.forEach(e=>{e.init&&e.init(this)})}if(this.format=this.options.interpolation.format,t||=X,this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){let e=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);e.length>0&&e[0]!==`dev`&&(this.options.lng=e[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn(`init: no languageDetector is used and no lng is defined`),[`getResource`,`hasResourceBundle`,`getResourceBundle`,`getDataByLanguage`].forEach(e=>{this[e]=(...t)=>this.store[e](...t)}),[`addResource`,`addResources`,`addResourceBundle`,`removeResourceBundle`].forEach(e=>{this[e]=(...t)=>(this.store[e](...t),this)});let o=i(),s=()=>{let e=(e,n)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn(`init: i18next is already initialized. You should call init just once!`),this.isInitialized=!0,this.options.isClone||this.logger.log(`initialized`,this.options),this.emit(`initialized`,this.options),o.resolve(n),t(e,n)};if((this.languages||this.isLanguageChangingTo)&&!this.isInitialized)return e(null,this.t.bind(this));this.changeLanguage(this.options.lng,e)};return this.options.resources||!this.options.initAsync?s():setTimeout(s,0),o}loadResources(e,t=X){let n=t,i=r(e)?e:this.language;if(typeof e==`function`&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(i?.toLowerCase()===`cimode`&&(!this.options.preload||this.options.preload.length===0))return n();let e=[],t=t=>{t&&t!==`cimode`&&this.services.languageUtils.toResolveHierarchy(t).forEach(t=>{t!==`cimode`&&(e.includes(t)||e.push(t))})};i?t(i):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(e=>t(e)),this.options.preload?.forEach?.(e=>t(e)),this.services.backendConnector.load(e,this.options.ns,e=>{!e&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),n(e)})}else n(null)}reloadResources(e,t,n){let r=i();return typeof e==`function`&&(n=e,e=void 0),typeof t==`function`&&(n=t,t=void 0),e||=this.languages,t||=this.options.ns,n||=X,this.services.backendConnector.reload(e,t,e=>{r.resolve(),n(e)}),r}use(e){if(!e)throw Error(`You are passing an undefined module! Please check the object you are passing to i18next.use()`);if(!e.type)throw Error(`You are passing a wrong module! Please check the object you are passing to i18next.use()`);return e.type===`backend`&&(this.modules.backend=e),(e.type===`logger`||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type===`languageDetector`&&(this.modules.languageDetector=e),e.type===`i18nFormat`&&(this.modules.i18nFormat=e),e.type===`postProcessor`&&k.addPostProcessor(e),e.type===`formatter`&&(this.modules.formatter=e),e.type===`3rdParty`&&this.modules.external.push(e),this}setResolvedLanguage(e){if(!(!e||!this.languages)&&![`cimode`,`dev`].includes(e)){for(let e=0;e<this.languages.length;e++){let t=this.languages[e];if(![`cimode`,`dev`].includes(t)&&this.store.hasLanguageSomeTranslations(t)){this.resolvedLanguage=t;break}}!this.resolvedLanguage&&!this.languages.includes(e)&&this.store.hasLanguageSomeTranslations(e)&&(this.resolvedLanguage=e,this.languages.unshift(e))}}changeLanguage(e,t){this.isLanguageChangingTo=e;let n=i();this.emit(`languageChanging`,e);let a=e=>{this.language=e,this.languages=this.services.languageUtils.toResolveHierarchy(e),this.resolvedLanguage=void 0,this.setResolvedLanguage(e)},o=(r,i)=>{i?this.isLanguageChangingTo===e&&(a(i),this.translator.changeLanguage(i),this.isLanguageChangingTo=void 0,this.emit(`languageChanged`,i),this.logger.log(`languageChanged`,i)):this.isLanguageChangingTo=void 0,n.resolve((...e)=>this.t(...e)),t&&t(r,(...e)=>this.t(...e))},s=t=>{!e&&!t&&this.services.languageDetector&&(t=[]);let n=r(t)?t:t&&t[0],i=this.store.hasLanguageSomeTranslations(n)?n:this.services.languageUtils.getBestMatchFromCodes(r(t)?[t]:t);i&&(this.language||a(i),this.translator.language||this.translator.changeLanguage(i),this.services.languageDetector?.cacheUserLanguage?.(i)),this.loadResources(i,e=>{o(e,i)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?s(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(s):this.services.languageDetector.detect(s):s(e),n}getFixedT(e,t,n,i){let a=i?.scopeNs,o=(e,t,...r)=>{let i;i=typeof t==`object`?{...t}:this.options.overloadTranslationOptionHandler([e,t].concat(r)),i.lng=i.lng||o.lng,i.lngs=i.lngs||o.lngs;let s=i.ns!==void 0&&i.ns!==null;i.ns=i.ns||o.ns,i.keyPrefix!==``&&(i.keyPrefix=i.keyPrefix||n||o.keyPrefix);let c={...this.options,...i};Array.isArray(a)&&!s&&(c.ns=a),typeof i.keyPrefix==`function`&&(i.keyPrefix=M(i.keyPrefix,c));let l=this.options.keySeparator||`.`,u;return i.keyPrefix&&Array.isArray(e)?u=e.map(e=>(typeof e==`function`&&(e=M(e,c)),`${i.keyPrefix}${l}${e}`)):(typeof e==`function`&&(e=M(e,c)),u=i.keyPrefix?`${i.keyPrefix}${l}${e}`:e),this.t(u,i)};return r(e)?o.lng=e:o.lngs=e,o.ns=t,o.keyPrefix=n,o}t(...e){return this.translator?.translate(...e)}exists(...e){return this.translator?.exists(...e)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e,t={}){if(!this.isInitialized)return this.logger.warn(`hasLoadedNamespace: i18next was not initialized`,this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn(`hasLoadedNamespace: i18n.languages were undefined or empty`,this.languages),!1;let n=t.lng||this.resolvedLanguage||this.languages[0],r=this.options?this.options.fallbackLng:!1,i=this.languages[this.languages.length-1];if(n.toLowerCase()===`cimode`)return!0;let a=(e,t)=>{let n=this.services.backendConnector.state[`${e}|${t}`];return n===-1||n===0||n===2};if(t.precheck){let e=t.precheck(this,a);if(e!==void 0)return e}return!!(this.hasResourceBundle(n,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||a(n,e)&&(!r||a(i,e)))}loadNamespaces(e,t){let n=i();return this.options.ns?(r(e)&&(e=[e]),e.forEach(e=>{this.options.ns.includes(e)||this.options.ns.push(e)}),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}loadLanguages(e,t){let n=i();r(e)&&(e=[e]);let a=this.options.preload||[],o=e.filter(e=>!a.includes(e)&&this.services.languageUtils.isSupportedCode(e));return o.length?(this.options.preload=a.concat(o),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}dir(e){if(e||=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language),!e)return`rtl`;try{let t=new Intl.Locale(e);if(t&&t.getTextInfo){let e=t.getTextInfo();if(e&&e.direction)return e.direction}}catch{}let t=`ar.shu.sqr.ssh.xaa.yhd.yud.aao.abh.abv.acm.acq.acw.acx.acy.adf.ads.aeb.aec.afb.ajp.apc.apd.arb.arq.ars.ary.arz.auz.avl.ayh.ayl.ayn.ayp.bbz.pga.he.iw.ps.pbt.pbu.pst.prp.prd.ug.ur.ydd.yds.yih.ji.yi.hbo.men.xmn.fa.jpr.peo.pes.prs.dv.sam.ckb`.split(`.`),n=this.services?.languageUtils||new F(J());return e.toLowerCase().indexOf(`-latn`)>1?`ltr`:t.includes(n.getLanguagePartFromCode(e))||e.toLowerCase().indexOf(`-arab`)>1?`rtl`:`ltr`}static createInstance(t={},n){let r=new e(t,n);return r.createInstance=e.createInstance,r}cloneInstance(t={},n=X){let r=t.forkResourceStore;r&&delete t.forkResourceStore;let i={...this.options,...t,isClone:!0},a=new e(i);if((t.debug!==void 0||t.prefix!==void 0)&&(a.logger=a.logger.clone(t)),[`store`,`services`,`language`].forEach(e=>{a[e]=this[e]}),a.services={...this.services},a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},r&&(a.store=new O(Object.keys(this.store.data).reduce((e,t)=>(e[t]={...this.store.data[t]},e[t]=Object.keys(e[t]).reduce((n,r)=>(n[r]={...e[t][r]},n),e[t]),e),{}),i),a.services.resourceStore=a.store),t.interpolation){let e={...J().interpolation,...this.options.interpolation,...t.interpolation},n={...i,interpolation:e};a.services.interpolator=new V(n)}return a.translator=new P(a.services,i),a.translator.on(`*`,(e,...t)=>{a.emit(e,...t)}),a.init(i,n),a.translator.options=i,a.translator.backendConnector.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}.createInstance();Z.createInstance,Z.dir,Z.init,Z.loadResources,Z.reloadResources,Z.use,Z.changeLanguage,Z.getFixedT,Z.t,Z.exists,Z.setDefaultNamespace,Z.hasLoadedNamespace,Z.loadNamespaces,Z.loadLanguages;var te={type:`3rdParty`,init(n){e(n.options.react),t(n)}},ne={app:{reconnecting:`Reconnecting
`,dropSqlite:`Drop to open the SQLite file`,dropSqliteHint:`Opened in your browser with WebAssembly — the file stays on your computer. Drop the -wal sidecar together with it if there is one.`,dropFailedTitle:`Could not open the dropped file`,dropNotSqlite:`{{name}} is not a SQLite database file.`,crashTitle:`Something went wrong`,crashBody:`The app hit an unexpected error. Reloading restores your connections and tabs; unsaved grid edits are lost.`,crashReload:`Reload`},language:{auto:`System language ({{name}})`,en:`English`,ko:`한국얎`,zh:`䞭文简䜓`,ja:`日本語`,de:`Deutsch`,fr:`Français`},settings:{title:`Safety`,description:`Guard rails against accidental data loss. Read-only, environment colour and transaction mode are set per connection.`,language:`Language`,languageHint:`Applies immediately. "System language" follows your browser.`,resetDefaults:`Reset to defaults`,done:`Done`,analytics:`Share anonymous usage statistics`,analyticsHint:`Sends anonymous usage events (engine, feature, statement type) to Google Analytics. Never SQL text, host names, table or user names.`,analyticsUnavailableHint:`Not active in this build (no measurement id configured).`,persistHistory:`Keep query history across reloads`,persistHistoryHint:`Statement text is stored in this browser (password literals are masked; the open editor tabs themselves are always kept). Off: history and snapshots live only until the tab closes.`},menu:{settings:{safety:`Safety
`,language:`Language`,title:`Settings`,theme:`Theme`},help:{gettingStarted:`Getting Started`,about:`About Planche`,title:`Help`,terms:`Terms of Use`},connection:{title:`Connection`,connect:`Connect`,disconnect:`Disconnect`,readOnly:`Read-only`,manualTransactions:`Manual Transactions`,saveDatabaseFile:`Save Database File`,saveDatabaseFileBlocked:`Save Database File (load -wal first)`,exit:`Exit`},query:{title:`Query`,execute:`Execute`,executeStatementAtCursor:`Execute Statement at Cursor`,executeWholeScript:`Execute Whole Script`,newQueryTab:`New Query Tab`,findReplace:`Find & Replace`,localHistory:`Local History
`},edit:{title:`Edit`,undo:`Undo`,redo:`Redo`,cut:`Cut`,copy:`Copy`,paste:`Paste`,selectAll:`Select All`},database:{title:`Database`,create:`Create Database`,alter:`Alter Database`,drop:`Drop Database`,copy:`Copy Database`,compare:`Compare Schemas
`,truncate:`Truncate Database`,compareData:`Compare Data
`},table:{title:`Table`,create:`Create Table`,alter:`Alter Table`,drop:`Drop Table`,rename:`Rename Table`,truncate:`Truncate Table`,duplicateStructure:`Duplicate Table Structure`},export:{title:`Export`,csv:`Download to CSV`,schemaHtml:`Schema to HTML`,links:`Export column links
`,importLinks:`Import column links
`},tools:{title:`Tools`,userManager:`User Manager`,processList:`Process List`,variables:`Variables`,status:`Status`,flush:`Flush`,quickCommand:`Quick Command`,viewErd:`View ERD`,scratchpad:`Scratchpad (in-browser SQLite)`,federated:`Federated query (join across connections)
`,federatedTab:`Federated {{n}}`},messages:{databaseFileSaved:`Database file saved`,databaseExported:`Database exported as download`,databaseExportedWithReason:`Database exported as download — {{reason}}`,errorSavingDatabase:`Error saving database: {{message}}`,noDatabaseSelected:`No database selected`,noTableSelected:`No table selected`,noActiveConnection:`No active connection`,databaseDropped:`Database "{{database}}" dropped successfully`,errorDroppingDatabase:`Error dropping database: {{message}}`,noTablesInDatabase:`No tables found in database "{{database}}"`,databaseTruncated_one:`All {{count}} table in "{{database}}" truncated successfully`,databaseTruncated_other:`All {{count}} tables in "{{database}}" truncated successfully`,errorTruncatingDatabase:`Error truncating database: {{message}}`,tableDropped:`Table "{{table}}" dropped successfully`,errorDroppingTable:`Error dropping table: {{message}}`,tableTruncated:`Table "{{table}}" truncated successfully`,errorTruncatingTable:`Error truncating table: {{message}}`,renameTablePrompt:`Rename table "{{table}}" to:`,tableRenamed:`Table "{{table}}" renamed to "{{newName}}" successfully`,errorRenamingTable:`Error renaming table: {{message}}`,truncateDatabaseTitle:`Truncate all tables in "{{name}}"?`,truncateDatabaseDescription:`Every row in {{count}} table(s) of "{{name}}" will be deleted. Table structures are kept. This cannot be undone.`,truncateDatabaseConfirm:`Truncate all tables`,renameTableTitle:`Rename table`,renameTableConfirm:`Rename`,noLinksToExport:`No column links to export.`,linksExported:`Exported {{count}} column links.`,linksImported:`Imported {{count}} column links.`,linksImportedPartial:`Imported {{count}} column links; no matching profile for: {{profiles}}`,linksImportFailed:`Could not import column links: {{reason}}`}},about:{title:`About Planche`,tagline:`A database client for MySQL, MariaDB, PostgreSQL and SQLite.`,version:`Version`,website:`Website`,disclaimer:`Planche is provided "as is", without warranty of any kind. The authors are not liable for any damage or data loss arising from its use. Back up your data before running destructive statements.`,rights:`All rights reserved.`},connection:{dialog:{title:`Connect to Database`,firstQueryTab:`Query 1`,colHostName:`Host Name`,colTarget:`Target`,colDbms:`DBMS`,noSaved:`No saved connections`,unnamed:`(unnamed)`,pickOnConnect:`(pick on connect)`,noFile:`(no file)`,selectPrompt:`Select a connection or add a new one`,addNew:`Add New`,delete:`Delete`,testConnection:`Test Connection`,connect:`Connect`,close:`Close`,unknownError:`Unknown error`,browserTestHint:`In-browser SQLite connections open a local file when you click Connect.`,testSuccess:`Connection successful`,restoredUnsaved:`{{file}}: restored unsaved changes from the cached copy`,restoredUnsavedDiskChanged:`{{file}}: restored unsaved changes from the cached copy — note the file on disk changed since`,walPending:`{{file}} is in WAL mode: recent changes may still be in its -wal file. Use "Load -wal file" above to include them.`,walApplied:`{{file}} opened with its -wal changes applied`,connectFailedTitle:`Connection failed`,testSuccessDescription:`The server accepted the credentials.`,testFailedTitle:`Connection test failed`,privacy:`Nothing you enter here is sent to or stored on planche.dev servers. Connection profiles live only in this browser's local storage; queries go straight from the local agent to your database.`,hostKeyTitle:`Unknown SSH host key`,hostKeyDescription:`{{host}}:{{port}} presented a {{type}} key with fingerprint {{fingerprint}}. Compare it with the fingerprint your server administrator gave you; accepting the wrong key lets an attacker read your traffic.`,hostKeyAccept:`Trust this host`,gatewayTitle:`Gateway profiles`,gatewayAdd:`Add`,gatewayAdded:`Added gateway profile {{name}}.`,gatewayReadOnly:`read-only`,gatewayWritable:`writable`,gatewayProfileHint:`This connection uses the profile "{{name}}" held by the gateway; there is nothing to configure here.`,gatewayLoadFailed:`Could not load the gateway profiles: {{error}}`},form:{hostName:`Host Name`,hostNamePlaceholder:`My Connection`,dataSource:`Data Source`,openVia:`Open Via`,viaBrowser:`Browser (local file)`,viaAgent:`Local agent`,viaBrowserHint:`Nothing to install. Best for files no other program is using: the browser works on an in-memory copy and cannot lock the file, so edits made elsewhere while it is open are not seen and Save overwrites them.`,viaAgentHint:`Opens the file with SQLite itself via npx planche — proper locking and WAL, safe alongside other programs using the same database.`,databaseFile:`Database File`,changeFile:`Change file`,filePickerHint:`A file picker opens when you click Connect (tip: ⌘⇧. shows hidden files, ⌘⇧G lets you type a path).`,fileRememberedHint:`The chosen file is remembered (Chromium) so reconnecting only asks for permission. Use Connection > Save Database File to write changes back.`,authToken:`Auth Token`,authTokenPlaceholder:`Leave empty to use the paired agent token`,filePathPlaceholder:`/path/to/database.sqlite or :memory:`,createIfMissing:`Create If Missing`,createIfMissingHint:`Path is resolved on the tunneling server host`,host:`Host`,port:`Port`,database:`Database`,serviceName:`Service name`,user:`User`,password:`Password`,savePassword:`Save password`,savePasswordHint:`Off: the password is kept only for this browser session and never written to disk.`,charset:`Charset`,autoConnection:`Auto Connection`,safety:`Safety`,environment:`Environment`,environmentHint:`tints the tab and workspace`,readOnly:`Read-only`,readOnlyHint:`Refuse statements that modify data or schema`,transactions:`Transactions`,txAuto:`Auto-commit`,txManual:`Manual — Commit / Rollback from the toolbar`,ssh:`SSH`,sshTunnel:`SSH tunnel`,sshTunnelHint:`Reach the database through an SSH jump host (opened by the local agent)`,sshHost:`SSH Host`,sshPort:`SSH port`,sshUser:`SSH User`,sshAuth:`SSH Auth`,sshAuthKey:`Private key`,sshAuthPassword:`Password`,sshAuthAgent:`ssh-agent`,sshAuthAgentHint:`Uses the keys loaded in the ssh-agent of the machine running npx planche (SSH_AUTH_SOCK).`,sshPassword:`SSH Password`,sshKey:`Private Key`,sshKeyPick:`Choose key file
`,sshKeyLoaded:`Key loaded`,sshKeyHint:`Leave empty to use the IdentityFile from ~/.ssh/config (or ~/.ssh/id_*) on the agent's machine; a picked key is stored with this profile`,sshPassphrase:`Passphrase`,sshPassphrasePlaceholder:`Leave empty if the key has none`,sshSecretsHint:`The SSH password, private key and passphrase follow the "Save password" setting above. Unknown host keys are shown for you to verify before the first connection and saved to ~/.planche/known_hosts on the agent's machine.`,sshHostPlaceholder:`bastion.example.com or a Host alias from ~/.ssh/config`,sshUserPlaceholder:`Leave empty to use ~/.ssh/config`,sshTargetHint:`The database host and port are resolved on the jump host — use the database's real address (e.g. the RDS endpoint), not localhost or a local port forward.`,connectionString:`Connection string`,connectionStringApplied:`Applied to the fields below. The string itself is not saved — only the fields are.`,connectionStringInvalid:`Not a PostgreSQL URI (expected postgresql://user:password@host/database).`,neonHint:`Paste the URI from the Neon console (Connect > Connection string); the fields below are filled in from it.`,supabaseHint:`Paste the URI from Supabase (Connect > Session pooler or Direct connection); the fields below are filled in from it.`,supabasePoolerWarning:`Port 6543 is the transaction-mode pooler: each statement may run on a different backend, so switching schemas, temp tables, prepared statements and manual transactions do not work. Use the session pooler (port 5432) or the direct connection.`,managedTlsHint:`TLS is always on for this service; the connection goes straight from the local agent to the service (no SSH tunnel).`,d1AccountId:`Account ID`,d1DatabaseId:`Database ID`,d1ApiToken:`API Token`,d1Hint:`Account ID: Cloudflare dashboard, right side of the account home. Database ID: Storage & Databases > D1 > your database. Token: My Profile > API Tokens > Create Token with the "D1 Edit" permission (or "D1 Read" for read-only). The local agent calls the Cloudflare API with it.`,d1LimitsHint:`D1 runs each request on its own and auto-commits, so manual transactions are unavailable; the database appears as the single schema "main".`,tls:`TLS`,tlsEnable:`Encrypt the connection`,tlsVerify:`Verify server certificate`,tlsVerifyHint:`Off: self-signed certificates are accepted (encrypted, but the server is not authenticated). Not available over an SSH tunnel.`},agent:{copy:`Copy`,looking:`Looking for the Planche agent
`,online:`Agent <b>v{{version}}</b> is running at <mono>{{url}}</mono>`,outdated:`Agent v{{version}} speaks protocol {{protocol}}, but this app needs a newer one. Restart it with <cmd/>`,unauthorized:`Agent <b>v{{version}}</b> is running at <mono>{{url}}</mono>, but this app is not paired with it (the token changes on every start). Open the link printed in the agent's terminal, or paste the token under Configure.`,offline:`No agent at <mono>{{url}}</mono>. Run <cmd/> in a terminal — it opens this app already paired.`,close:`Close`,configure:`Configure`,checkAgain:`Check again`,urlLabel:`Agent URL`,urlPlaceholder:`http://127.0.0.1:8888 (default)`,tokenLabel:`Token`,tokenPlaceholder:`Printed by the agent`,reset:`Reset`,save:`Save`,remoteWarning:`This agent is not on your computer ({{host}}): every connection sends its passwords and SSH keys there.`,remoteRefusedTitle:`Remote agent not allowed`,remoteRefused:"The agent must run on this computer (127.0.0.1 or localhost). To use one on another machine, forward its port with `ssh -L 8888:127.0.0.1:8888 user@host` and keep the URL at http://127.0.0.1:8888.",gateway:`Gateway "{{name}}": {{count}} server-side profiles. Credentials stay on the gateway; pick a profile below.`},tab:{noConnections:`No connections open. Press Connect to get started.`,theSqliteFile:`the SQLite file`,reopened:`Reopened {{file}}`,reopenFailed:`Could not reopen file: {{message}}`,reopenPrompt:`The browser needs your permission again to read <b>{{file}}</b>.`,reopenFile:`Reopen file`,closeConnection:`Close connection`,reconnected:`Reconnected {{file}}`,accessNotGranted:`File access was not granted; Save will export a download instead.`,detachedPrompt:`Working on a cached copy of <b>{{file}}</b>. Reconnect the file to save changes in place.`,reconnectFile:`Reconnect file`,detachedHide:`Hide (Save will ask for the file when needed)`,walFramesApplied_one:`Applied {{count}} WAL frame from {{file}}-wal`,walFramesApplied_other:`Applied {{count}} WAL frames from {{file}}-wal`,walNoChanges:`The -wal file had no committed changes`,walLoadFailed:`Could not load -wal file: {{message}}`,walPrompt:`<b>{{file}}</b> is in WAL mode: it may not show the latest data until its <mono>{{file}}-wal</mono> file is loaded, and saving is disabled until then. If no such file exists next to it (the database was closed cleanly), confirm that instead. If another program is still using this database, open it through the local agent (<mono>npx planche</mono>) instead: the browser cannot share the file safely.`,loadWal:`Load -wal file`,noWalHint:`I checked: there is no -wal file next to the database`,noWal:`No -wal file`,dismiss:`Dismiss`,walHide:`Hide (saving stays disabled)`,readOnlyBadge:`read-only`}},toolbar:{connect:`Connect (Alt+N)`,disconnect:`Disconnect`,newQueryTab:`New Query Tab (Alt+T)`,execute:`Execute (F9)`,executeStatement:`Execute statement at cursor / selection (Ctrl+Enter)`,commit:`Commit`,commitHint:`Commit the open transaction`,noOpenTransaction:`No open transaction`,rollback:`Rollback`,rollbackHint:`Discard the open transaction`,readOnlyBadge:`read-only`,readOnlyHint:`This connection refuses statements that modify data or schema`,userManager:`User Manager (Alt+U)`,quickCommand:`Quick Command`,processList:`Process List`,variables:`Variables`,status:`Status`,flush:`Flush`,fullscreen:`Fullscreen`},footer:{readOnly:`read-only`,txOpen:`tx open`,manualTx:`manual tx`},palette:{title:`Quick Command`,description:`Search for a command to run...`,inputPlaceholder:`Type a command or search...`,empty:`No commands found.`,groups:{connection:`Connection`,query:`Query`,database:`Database`,table:`Table`,tools:`Tools`},commands:{connect:`Connect`,disconnect:`Disconnect`,executeQuery:`Execute Query`,newQueryTab:`New Query Tab`,createDatabase:`Create Database`,dropDatabase:`Drop Database`,createTable:`Create Table`,alterTable:`Alter Table`,dropTable:`Drop Table`,processList:`Process List`,serverVariables:`Server Variables`,serverStatus:`Server Status`,flush:`Flush`,userManager:`User Manager`}},welcome:{title:`Welcome to Planche`,intro:`A SQL client that runs in your browser. Your databases are reached through a small agent on your machine, so credentials and data never leave your computer.`,skip:`Skip`,skipTitle:`Hide this screen (Help > Getting Started brings it back)`,copy:`Copy`,copied:`Copied`,sampleOpenFailed:`Could not open the sample database: {{message}}`,steps:{agent:{title:`Run the local agent`,body:`In a terminal (Node.js 22 or newer), run this once. It starts the agent and pairs it with this page.`},connection:{title:`Add a connection`,body:`Pick your database to open the connection form with the right defaults.`},sample:{title:`No database at hand? Try the sample`,body:`Load a sample web-shop database (24 tables, ~50k rows, views and triggers) into the browser to try the editor, grid and schema tree.`,loading:`Loading sample
`,button:`Try the sample database`}},terms:{title:`Before you start`,local:`Everything runs locally: credentials, queries and results stay on your machine and are never sent to us.`,asIs:`Planche is provided as is, without warranty. The safeguards (destructive confirms, read-only mode) are conveniences, not guarantees.`,dataLoss:`You are responsible for every statement executed through Planche. Back up your data before running anything destructive.`,agree:`I have read and agree to the Terms of Use.`,accepted:`You accepted the Terms of Use.`,readFull:`Read the full terms`}},schema:{treeLabel:`Schema`,unreachableHint:`Not the database this connection is bound to; create a profile for it to browse it`,objectType:{table:`Table`,view:`View`,procedure:`Procedure`,function:`Function`,trigger:`Trigger`,event:`Event`},menu:{showCreate:`Show Create {{type}}`,alter:`Alter {{type}}`,drop:`Drop {{type}}`,create:`Create {{type}}`,refresh:`Refresh`,unreachable:`Connect with a profile bound to this database to browse it`,openDatabase:`Open Database`,createSchema:`Create Schema`,createTable:`Create Table`,dropDatabase:`Drop Database`,openSchema:`Open Schema`,dropSchema:`Drop Schema`,newQueryTab:`New Query Tab`,generateSql:`Generate SQL`,openTable:`Open Table`,alterTable:`Alter Table`,showCreateTable:`Show Create Table`,duplicateStructure:`Duplicate Structure`,copyTable:`Copy Table to
`,compare:`Compare {{type}}
`,truncateTable:`Truncate Table`,dropTable:`Drop Table`,exportCsv:`Export to CSV`,openView:`Open View`,alterView:`Alter View`,showCreateView:`Show Create View`,dropView:`Drop View`,compareData:`Compare Data
`},actions:{createStatementUnavailable:`-- Could not retrieve CREATE statement for {{type}} {{name}}`,getCreateFailed:`Failed to get CREATE {{type}}: {{message}}`,createTabTitle:`Create {{type}}`,createSchemaTabTitle:`Create Schema`,generateSqlFailed:`Could not generate SQL: {{message}}`,dropTableTitle:`Drop table "{{name}}"?`,dropTableDescription:`This permanently deletes the table and every row in it{{from}}. This cannot be undone.`,dropTableConfirm:`Drop table`,dropObjectTitle:`Drop {{type}} "{{name}}"?`,dropObjectDescription:`The {{type}} definition will be removed{{from}}. This cannot be undone.`,dropObjectConfirm:`Drop {{type}}`,fromDatabase:` from database "{{database}}"`,dropped:`Dropped {{type}} {{name}}`,dropFailed:`Failed to drop {{type}}`,dropDatabaseTitle:`Drop database "{{name}}"?`,dropDatabaseDescription:`This permanently deletes the database with all of its tables and data. This cannot be undone.`,dropDatabaseConfirm:`Drop database`,droppedDatabase:`Dropped database {{name}}`,dropDatabaseFailed:`Failed to drop database`,dropSchemaTitle:`Drop schema "{{name}}"?`,dropSchemaDescription:`This permanently deletes the schema with all of its tables and data. This cannot be undone.`,dropSchemaConfirm:`Drop schema`,droppedSchema:`Dropped schema {{name}}`,dropSchemaFailed:`Failed to drop schema`,truncateTitle:`Truncate table "{{name}}"?`,truncateDescription:`Every row in "{{name}}" will be deleted. The table structure is kept. This cannot be undone.`,truncateConfirm:`Truncate table`,truncated:`Truncated {{name}}`,truncateFailed:`Failed to truncate`},tree:{loadDatabasesFailed:`Failed to load databases: {{message}}`}},query:{editor:{destructiveMarker:`Destructive: {{action}} {{names}}`,readOnlyMarker:`Connection is read-only; this statement modifies data or schema`,actionExecute:`Execute (per settings)`,actionExecuteStatement:`Execute Statement at Cursor / Selection`,actionExecuteScript:`Execute Whole Script`},tabs:{newQuery:`New Query`,queryTitle:`Query {{n}}`,erdViewer:`ERD Viewer`,close:`Close`,closeOthers:`Close Others`,closeLeft:`Close Tabs to the Left`,closeRight:`Close Tabs to the Right`,closeAll:`Close All`},executor:{noActiveConnection:`No active connection`,uncommittedTitle:`Uncommitted transaction`,uncommittedDescription:`This connection has an open transaction. Disconnecting will roll back its changes.`,uncommittedConfirm:`Rollback and disconnect`,unsavedTitle:`Unsaved changes`,unsavedDescription:`{{file}} has changes that were not saved to its file. Disconnecting discards them (use Connection > Save Database File first to keep them).`,theSqliteDatabase:`The SQLite database`,unsavedConfirm:`Discard and disconnect`}},result:{tabs:{message:`Message`,info:`Info`,history:`History`,result:`Result`,resultN:`Result {{n}}`},message:{executing:`Executing query...`,error:`Error: {{message}}`,total:` (Total: {{ms}}ms)`,ready:`Ready.`,log:`Execution log`,statementN:`Statement {{n}}`,limitedBadge:`limit hit`,insertId:`insert id {{id}}`,failed:`Failed`,failedStatement:`Failed statement`,summary:`{{ok}} succeeded · {{failed}} failed · {{ms}} total`,copy:`Copy`,copied:`Copied`,showSql:`Show SQL`,hideSql:`Hide SQL`},info:{empty:`No query information available.`,resultN:`Result {{n}}`,metadata:`Query Metadata`,executionTime:`Execution Time`,notAvailable:`N/A`,affectedRows:`Affected Rows`,fields:`Fields`,fieldDetails:`Field Details`,colName:`Name`,colType:`Type`,colTable:`Table`,resultSets:`Result Sets`,rowsReturned:`Rows Returned`,insertId:`Last Insert ID`,lastQuery:`Last executed statement`,copy:`Copy`,copied:`Copied`,colOrigin:`Origin`,primaryKey:`Primary key`,rowsAndFields:`{{rows}} rows × {{fields}} fields`,noFields:`This statement returned no columns.`},rowForm:{colColumn:`Column`,colValue:`Value`,insertTitle:`Insert row`,editTitle:`Edit row`,loading:`Loading columns...`,preview:`Statement`,nothingToWrite:`Nothing to write`,insert:`Insert`,update:`Update`,stageInsert:`Add as pending row`,stageEdit:`Apply to grid`,stageHint:`Put the values in the grid without running anything; commit later with the other edits.`,inserted:`Row inserted into {{table}}`,updated:`Row updated in {{table}}`,confirmInsertTitle:`Insert a row into {{table}}?`,confirmUpdateTitle:`Update a row in {{table}}?`,inTransaction:`Runs inside the open transaction`,pickDate:`Pick a date`,now:`Now`,formatJson:`Format`,binaryUnsupported:`Binary columns cannot be edited here; leave NULL / DEFAULT or set them with SQL.`,generateUuid:`Generate UUID`,defaultValue:`Default value`,clickToChange:`Click to change`,empty:`(empty)`,autoHint:`Generated by the server`,mode:{keep:`Keep`,auto:`Auto`,value:`Value`},invalid:{integer:`Enter a whole number`,unsigned:`This column does not accept negative numbers`,number:`Enter a number`,json:`Invalid JSON`,date:`Use YYYY-MM-DD`,datetime:`Use YYYY-MM-DD HH:MM:SS`,time:`Use HH:MM:SS`,length:`At most {{max}} characters`}},history:{copied:`Copied to clipboard`,searchPlaceholder:`Search history...`,all:`All`,success:`Succeeded`,failed:`Failed`,thisTab:`This tab only`,noMatch:`No entries match.`,count:`{{count}} entries`,clear:`Clear`,clearTitle:`Clear query history?`,clearDescription:`All {{count}} entries for this connection will be removed. This cannot be undone.`,clearConfirm:`Clear history`,insert:`Insert into editor`,inserted:`Inserted into the editor`,copy:`Copy`,rows:`{{count}} rows`,affected:`{{count}} affected`,today:`Today`,yesterday:`Yesterday`,empty:`No query history.`},json:{arrayLength:`Array[{{count}}]`,keys_one:`{{count}} key`,keys_other:`{{count}} keys`,invalid:`Invalid JSON`,clickToView:`Click to view JSON`,expandAll:`Expand all`,collapseAll:`Collapse all`,edit:`Edit`,view:`View`,copied:`Copied`,copy:`Copy`,shortcutHint:`{{mod}}+Enter to save · Esc to cancel`,cancel:`Cancel`,save:`Save`},grid:{readOnlyConnection:`Read-only connection`,readOnlyWal:`Read-only: -wal file not loaded`,readOnlyNoPk:`Read-only: table has no primary key`,commitTitle:`Commit {{count}} change(s) to {{table}}?`,commitDescription:`The following statements will be executed.`,commitConfirm:`Commit`,rowPrefix:`Row {{row}}:`,cancelled:`cancelled`,commitFailed:`Commit failed: {{message}}`,executedInTransaction:`Executed {{count}} change(s) inside the open transaction — press Commit in the toolbar to make them permanent (reloading rolls them back)`,committed:`Committed {{count}} change(s) to {{table}}`,noData:`No data to display.`,commit:`Commit`,discard:`Discard`,addRow:`Add row`,removeNewRow:`Cancel this new row`,addRowForm:`Add with form`,addRowFormHint:`Open a form with an input per column (committed as INSERT)`,editRowForm:`Edit this row in a form`,addRowHint:`Add a new row (committed as INSERT)`,delete:`Delete`,deleteCount:`Delete ({{count}})`,deleteHint:`Delete the selected rows (committed as DELETE). Select rows with the row-number column.`,field:`Field`,searchPlaceholder:`Search...`,orderBy:`Order by`,none:`None`,refresh:`Refresh`,dismiss:`Dismiss`,clearSelection:`Clear selection`,columns:`Columns`,showAllColumns:`Show all`,hideAllColumns:`Hide all`,selectAll:`Select all rows`,emptyTable:`This table has no rows.`,noRows:`No rows returned.`,addARow:`Add a row`,markedForDeletion:`Marked for deletion — click to restore`,newRow:`New row`,clickToSelect:`Click to select; Shift/Ctrl for multiple`,rows:`Rows: {{count}}`,rowsWithNew:`Rows: {{count}} (+{{added}})`,sortedBy:`Sorted by: {{column}} {{direction}}`,selected:`{{count}} selected`,cellsModified:`{{count}} cell(s) modified`,newCount:`{{count}} new`,toDelete:`{{count}} to delete`,searchMode:`Match mode`,contains:`contains`,equals:`equals`,followLink:`Open {{table}} where {{column}} = value`,linkColumn:`Link "{{column}}" to another table
`,editLink:`Edit link of "{{column}}"
`,removeLink:`Remove link`,copyValue:`Copy value`,filterByValue:`Filter: {{column}} = this value`,clearFilter:`Clear filter`,copyColumnName:`Copy column name`,editCell:`Edit cell`,setNull:`Set NULL`,setEmpty:`Set empty string`,restoreRow:`Restore row`,hideColumn:`Hide column "{{column}}"`,copyRowsTsv_one:`Copy row as TSV (with header)`,copyRowsTsv_other:`Copy {{count}} rows as TSV (with header)`,copyRowsCsv_one:`Copy row as CSV`,copyRowsCsv_other:`Copy {{count}} rows as CSV`,copyRowsJson_one:`Copy row as JSON`,copyRowsJson_other:`Copy {{count}} rows as JSON`,copyRowsInsert_one:`Copy row as INSERT`,copyRowsInsert_other:`Copy {{count}} rows as INSERT`,deleteRowsPending_one:`Delete row (pending until Commit)`,deleteRowsPending_other:`Delete {{count}} rows (pending until Commit)`,sendRowsToScratchpad_one:`Send row to scratchpad`,sendRowsToScratchpad_other:`Send {{count}} rows to scratchpad`,sendAllToScratchpad:`Send all {{count}} loaded rows to scratchpad`,sentToScratchpad:`{{count}} rows copied into scratchpad table {{table}}.`,changesSince:`Since last load: {{changed}} changed · {{added}} new · {{gone}} gone`,changesToggle:`Toggle highlighting of what changed since the previous load`,changesDismiss:`Forget these changes`,previousValue:`Previous value: {{value}}`},link:{title:`Link column to another table`,source:`Column`,hint:`Values of this column become links: clicking one opens the target table filtered to the matching row(s). Real foreign keys are linked automatically.`,targetDatabase:`Target database`,targetTable:`Target table`,targetColumn:`Target column`,pickTable:`Choose a table`,pickColumn:`Choose a column`,remove:`Remove link`,cancel:`Cancel`,save:`Save link`,targetConnection:`Target connection`,targetNotConnected:`The linked connection is not open. Connect it first.`}},confirm:{defaultDescription:`This action cannot be undone.`,typeToConfirm:`Type <name/> to confirm`,cancel:`Cancel`,confirm:`Confirm`,ok:`OK`},table:{dialog:{createTitle:`Create Table`,alterTitle:`Alter Table`,duplicateTitle:`Duplicate Table Structure`,create:`Create`,alter:`Alter`,cancel:`Cancel`,tableName:`Table Name`,tableNamePlaceholder:`Enter table name...`,loading:`Loading table schema...`,tabSchema:`Schema`,tabIndexes:`Indexes`,tabProperties:`Properties`},schema:{colField:`Field Name`,colType:`Datatype`,colLength:`Length`,colDefault:`Default`,colPk:`PK`,colNotNull:`Not Null`,colUnsigned:`Unsigned`,colAutoIncrement:`Auto Incr`,colZerofill:`Zerofill`,colComment:`Comment`,empty:`No columns defined. Click "Add Column" to add one.`,add:`Add Column`,remove:`Remove Column`},indexes:{colName:`Index Name`,colType:`Index Type`,colColumns:`Columns`,empty:`No indexes defined. Click "Add Index" to add one.`,add:`Add Index`,remove:`Remove Index`},index:{addTitle:`Add Index`,editTitle:`Edit Index`,name:`Index Name`,namePlaceholder:`Enter index name`,type:`Index Type`,columns:`Columns`,noColumns:`No columns available. Define columns in the Schema tab first.`,unnamed:`(unnamed)`,cancel:`Cancel`,ok:`OK`},properties:{engine:`Engine`,charset:`Charset`,collation:`Collation`,autoIncrement:`Auto Increment`,autoIncrementPlaceholder:`Default`,comment:`Comment`},info:{engine:`Engine`,version:`Version`,rowFormat:`Row Format`,rows:`Rows`,avgRowLength:`Avg Row Length`,dataLength:`Data Length`,createTime:`Create Time`,updateTime:`Update Time`,collation:`Collation`,comment:`Comment`},copy:{title:`Copy Table`,source:`Source`,targetConnection:`Target connection`,targetDatabase:`Target database`,targetTable:`Target table name`,what:`Copy`,structureAndData:`Structure & data`,structureOnly:`Structure only`,ifExists:`If the target table exists`,abort:`Abort (default)`,dropAndRecreate:`Drop and recreate (asks to retype the name)`,preview:`CREATE TABLE on the target (editable)`,crossEngineHint:`The target is {{engine}}: review the types below, MySQL-specific attributes were dropped.`,readOnly:`read-only`,loading:`Loading
`,progressCreate:`Creating table
`,progressCount:`Counting rows
`,progressRows:`Copied {{copied}} of {{total}} rows`,progressDone:`Done`,doneTitle:`Table copied`,doneRows:`{{count}} rows copied into {{table}}.`,doneStructure:`Structure of {{table}} created.`,noColumns:`The source table has no columns.`,exists:`Table {{table}} already exists in the target. Choose another name or "Drop and recreate".`,dropTitle:`Drop existing table {{table}}?`,dropDescription:`The target table and all of its rows will be dropped before the copy. This cannot be undone.`,dropConfirm:`Drop and copy`,cancelled:`Copy cancelled.`,stop:`Stop`,cancel:`Cancel`,copy:`Copy`}},database:{copy:{title:`Copy Database`,source:`Source Database`,target:`Target Database Name`,targetPlaceholder:`Enter target database name`,options:`Options`,structureAndData:`Structure & Data`,structureOnly:`Structure Only`,cancel:`Cancel`,copy:`Copy`},diff:{title:`Compare Schemas`,source:`Source`,target:`Target`,pickConnection:`Connection`,pickDatabase:`Database`,crossEngineHint:`Different engines: type names differ by dialect, so most columns will show a type change.`,sameSide:`Source and target are the same database.`,summary:`{{changed}} changed, {{missingTarget}} missing in target, {{missingSource}} only in target, {{identical}} identical`,showIdentical:`Show identical tables`,identicalAll:`The tables are identical.`,column:`Column`,index:`Index`,object:`Object`,selectTable:`Select a table to see its differences.`,missingInTarget:`{{table}} does not exist in the target; the script creates it.`,missingInSource:`{{table}} exists only in the target; the script drops it (commented out unless DROPs are included).`,includeDrops:`Include DROP statements as live SQL (default: commented out)`,tabTitle:`Sync {{database}}`,close:`Close`,compare:`Compare`,comparing:`Comparing
`,openScript:`Open script in editor`,noDefinition:`No CREATE statement available`},create:{title:`Create Database`,name:`Database Name`,namePlaceholder:`Enter database name`,charset:`Character Set`,collation:`Collation`,cancel:`Cancel`,create:`Create`},csv:{title:`Download to CSV`,target:`Target`,targetQueryResult:`Current Query Result`,targetTableData:`Table Data`,tableName:`Table Name`,tableNamePlaceholder:`Enter table name`,delimiter:`Delimiter`,delimiterComma:`Comma (,)`,delimiterTab:`Tab (\\t)`,delimiterSemicolon:`Semicolon (;)`,delimiterPipe:`Pipe (|)`,includeHeaders:`Include Headers`,cancel:`Cancel`,download:`Download`,downloading:`Downloading...`,progress:`{{loaded}} of {{total}} rows written`,progressUnknown:`{{loaded}} rows written`,stop:`Stop`,done:`Exported {{count}} rows of {{table}} to CSV.`,database:`Database`,databasePlaceholder:`Choose a database`},html:{title:`Schema to HTML`,database:`Database`,selectDatabase:`Select database`,tables:`Tables to Include`,selectAll:`Select All`,deselectAll:`Deselect All`,noTables:`No tables available.`,include:`Include`,includeColumns:`Columns`,includeIndexes:`Indexes`,includeProperties:`Properties`,cancel:`Cancel`,generate:`Generate`,generating:`Generating...`,sectionColumns:`Columns`,sectionIndexes:`Indexes`,sectionProperties:`Properties`,docTitle:`Schema: {{database}}`,heading:`Database: {{database}}`,summary:`Tables: {{count}} | Generated: {{date}}`,footer:`Generated by Planche 2026`},dataDiff:{title:`Compare Data`,pickTable:`Table`,hint:`Rows are matched by the source table's primary key and compared as text. Up to {{cap}} rows per side are loaded; narrow big tables with a filter first.`,sameSide:`Source and target are the same table.`,noPrimaryKey:`{{table}} has no primary key; the comparison needs one to match rows.`,keyMissingInTarget:`The target table lacks the key column(s): {{columns}}`,summary:`Key: {{key}} — {{added}} missing in target, {{changed}} different, {{removed}} only in target, {{identical}} identical`,capped:`Only the first {{cap}} rows of each side were compared.`,ignoredColumns:`Columns ignored (one side only): {{columns}}`,added_one:`{{count}} missing in target`,added_other:`{{count}} missing in target`,changed_one:`{{count}} different`,changed_other:`{{count}} different`,removed_one:`{{count}} only in target`,removed_other:`{{count}} only in target`,none:`Nothing in this group.`,more:`
 {{count}} more not listed`,includeDeletes:`Include DELETE statements as live SQL (default: commented out)`,tabTitle:`Sync data {{table}}`,loading:`Loading rows — source: {{source}}, target: {{target}}`}},user:{manager:{title:`User Manager`,addUser:`Add User`,removeUser:`Remove User`,noUsers:`No users loaded`,grantScope:`Grant Scope`,apply:`Apply`,close:`Close`,removed:`User '{{user}}'@'{{host}}' removed`,selectUserFirst:`Please select a user first`,applied:`Changes applied successfully`},add:{title:`Add User`,username:`Username`,usernamePlaceholder:`Enter username`,host:`Host`,password:`Password`,passwordPlaceholder:`Enter password`,confirmPassword:`Confirm Password`,confirmPasswordPlaceholder:`Confirm password`,plugin:`Plugin`,cancel:`Cancel`,add:`Add`,usernameRequired:`Username is required`,passwordMismatch:`Passwords do not match`,added:`User '{{user}}'@'{{host}}' added`},privileges:{globalTitle:`Global Privileges`,databaseTitle:`Database Privileges`,tableTitle:`Table Privileges`,checkAll:`Check All`,uncheckAll:`Uncheck All`,categoryData:`Data`,categoryStructure:`Structure`,categoryAdministration:`Administration`},grantTree:{globalPrivileges:`Global Privileges`}},command:{close:`Close`,noActiveConnection:`No active connection`,variableName:`Variable Name`,value:`Value`,scope:{session:`Session`,global:`Global`},findReplace:{findPlaceholder:`Find`,replacePlaceholder:`Replace`,found:`{{count}} found`,noResults:`No results`,previous:`Previous`,next:`Next`,close:`Close`,replace:`Replace`,all:`All`,caseSensitive:`Case Sensitive`,regex:`Regex`,wholeWord:`Whole Word`},flush:{title:`Flush`,executed:`Executed: {{command}}`,executeError:`Error executing {{command}}: {{message}}`},localHistory:{title:`Local History`,description:`Versions of this tab captured before each run and before a template overwrote it.`,empty:`No history for this tab yet.`,restored:`Editor content restored from local history`,restore:`Restore this version`,chars:`{{count}} chars`,reason:{execute:`before run`,replaced:`before overwrite`,restore:`before restore`}},processList:{title:`Process List`,refresh:`Refresh`,autoRefresh:`Auto-refresh`,empty:`No processes to display`,kill:`Kill`,killProcess:`Kill Process`,selectToKill:`Please select a process to kill`,killed:`Process {{id}} killed successfully`,killError:`Error killing process: {{message}}`,loadError:`Error loading process list: {{message}}`,updatedAt:`updated {{time}}`,filterPlaceholder:`Filter by user, host, db, SQL...`,hideIdle:`Hide idle`,noMatch:`No processes match the filter`,self:`me`,selfHint:`This is Planche's own session`,statementOf:`Statement of #{{id}}`,noStatement:`No statement`,copy:`Copy`,copied:`Copied`,killConfirmTitle:`Kill process {{id}}?`,killConfirmDescription:`The session of {{user}}@{{host}} will be terminated and its running statement aborted. An open transaction is rolled back.`,stats:{total:`Total`,active:`Active`,idle:`Idle`,longest:`Longest running`},columns:{id:`Id`,user:`User`,host:`Host`,db:`db`,command:`Command`,time:`Time`,state:`State`,info:`Info`,action:`Action`}},status:{title:`Server Status`,filterPlaceholder:`Filter status variables...`,empty:`No status variables to display`,loadError:`Error loading status: {{message}}`},variables:{title:`Server Variables`,filterPlaceholder:`Filter variables...`,empty:`No variables to display`,loadError:`Error loading variables: {{message}}`}},erd:{empty:{title:`Open a Prisma schema file (.prisma) to view the ERD`,description:`Models, enums, and relations will be automatically analyzed`,openFile:`Open .prisma File`,dropHint:`or drag and drop a file onto this area`},entity:{enumBadge:`ENUM`,modelBadge:`MODEL`,columns:{value:`Value`,comment:`Comment`,type:`Type`,column:`Column`},linkBadge:`LINK`,externalTitle:`Linked table on {{location}} (column link, not a real foreign key)`},toolbar:{refresh:`Refresh`,zoomIn:`Zoom In`,zoomOut:`Zoom Out`,resetView:`Reset View`,center:`Center`,fitAll:`Fit All`,spreadAll:`Spread All`,resetLayout:`Reset Layout`,legendOneToMany:`1:N (FK)`,tables:`Tables:`,relations:`Relations:`,columns:`Columns:`},viewer:{noServerConnection:`No active server connection`,loading:`Loading schema from {{database}}...`,loadFailed:`Failed to load ERD`,noDatabase:`No database selected.`,selectDatabaseHint:`Select a database in the Schema Tree, then open View ERD.`}},services:{runAnyway:`Run anyway`,query:{rowsReturned:`{{count}} row(s) returned`,rowsAffected:`{{count}} row(s) affected`,rowsReturnedLimited:`{{count}} row(s) returned (limited to {{limit}}; add LIMIT to fetch more)`,notConnected:`Not connected`,fileNotOpen:`The SQLite file is not open yet — click "Reopen file" above to grant access again.`,failed:`Query failed`,nothingToExecute:`Nothing to execute`},destructive:{title_one:`Run destructive statement?`,title_other:`Run {{count}} destructive statements?`,description:`The following will permanently modify or delete data. This cannot be undone.`,unknownTarget:`(unknown)`,deleteAll:`DELETE all rows from {{target}}`,updateAll:`UPDATE all rows in {{target}}`,alterDrop:`DROP COLUMN/PARTITION on {{target}}`},readOnly:{refused:`Connection "{{label}}" is read-only. {{count}} statement(s) would modify data or schema.`,title:`"{{label}}" is read-only`,description:`These statements modify data or schema. Run them on this connection anyway?`},transaction:{startFailed:`Could not start transaction`,started:`Transaction started — Commit or Rollback when done`,implicitCommit:`{{kind}} caused an implicit COMMIT of the open transaction`,committed:`Transaction committed`,rolledBack:`Transaction rolled back`,commandFailed:`{{name}} failed`,commandFailedWith:`{{name}} failed: {{message}}`},save:{notBrowserSqlite:`Not a browser SQLite connection.`,inMemory:`In-memory database: it can only be exported as a download.`,noFileSystemAccess:`This browser has no File System Access API (Chrome/Edge only): the database is exported as a download instead of written in place.`,noWritableHandle:`The file was opened without a writable handle: it is exported as a download.`},agent:{devProxyUrl:`{{url}} (via dev proxy)`,notPlanche:`Something answered, but it is not a Planche agent`,unreachable:"Planche agent unreachable at {{url}} — run `npx planche` ({{message}})",httpError:`HTTP error: {{status}} {{statusText}}`,emptyResponse:`Tunneling server returned an empty response`,reconnected:`Reconnected to {{name}} — the agent had dropped the connection (restart or idle timeout).`},sample:{profileName:`Sample shop (in-browser)`,downloadFailed:`Could not download the sample database ({{status}})`,tabTitle:`Query 1`},sqliteFile:{tooSmall:`File is too small to be a SQLite database.`,notSqlite:`Not a SQLite database (or an encrypted one, e.g. SQLCipher). The 16-byte header does not read "SQLite format 3".`,badPageSize:`Corrupt SQLite header: invalid page size {{size}}.`,unreadable:`SQLite could not read the file: {{message}}`,pickerDescription:`SQLite database`,walNotLoaded:`This database is in WAL mode and its -wal file was not loaded. Load it, or confirm in the banner that no -wal file exists, before saving.`,changedOnDisk:`{{name}} changed on disk after it was loaded (another program wrote to it). Saving would overwrite those changes — reopen the file and redo your edits, or use the tunneling server.`,walHasChanges:`{{name}}-wal contains new changes; load it before saving.`,walChangedOnDisk:`{{name}}-wal was written by another program after it was loaded; reopen the file before saving.`,writeDenied:`Write access to {{name}} was not granted. Allow it in the browser prompt, or export as a download instead.`},environment:{none:`None`,green:`Green (dev)`,blue:`Blue`,yellow:`Yellow (staging)`,orange:`Orange`,red:`Red (production)`,purple:`Purple`},scratchpad:{profileName:`Scratchpad`,namePromptTitle:`Scratchpad table name`,namePromptDescription:`A table named {{table}} already exists in the scratchpad. Choose another name.`,nameTaken:`Table {{table}} already exists.`},federated:{pulling:`Pulling {{table}} from {{connection}}
`,capped:`{{table}}: only the first {{limit}} rows were pulled.`,templateLine1:`Reference a table of any open connection as "Connection name".database.table; it is copied into this scratchpad before the statement runs.`,templateLine2:`Tables are capped at {{limit}} rows. The query itself runs in SQLite (in your browser).`,templateConnections:`Open connections: {{names}}`,templateNone:`No other connection is open yet. Connect one, then reference it here.`,done:`Pulled {{rows}} rows from {{tables}} remote tables into the scratchpad.`,pullingProgress:`Pulling {{table}} from {{connection}}: {{loaded}} / {{total}} rows
`},paged:{noColumns:`{{table}} has no columns.`,cancelled:`Cancelled.`}},terms:{title:`Terms of Use`,version:`Version {{version}}`,englishOnly:`The terms are provided in English. The summary on the welcome screen is available in your language.`},dryRun:{title:`{{kind}} would affect {{count}} rows`,titleUnknown:`{{kind}} — affected rows unknown`,description:`These are the rows the statement would touch right now, read with a SELECT. Nothing has been written yet.`,previewFailed:`The preview query failed: {{error}}
2
- You can still run the statement.`,noRows:`No rows match — the statement would change nothing.`,truncated:`Showing the first {{shown}} of {{count}} rows.`,previewQuery:`Preview query`,run:`Run {{kind}} ({{count}} rows)`,runAnyway:`Run anyway`}},Q=[`en`,`ko`,`zh`,`ja`,`de`,`fr`];function $(e=navigator.languages??[navigator.language]){for(let t of e){let e=t.toLowerCase().split(`-`)[0];if(Q.includes(e))return e}return`en`}function re(e){return e===`auto`?$():e}var ie={ko:()=>n(()=>import(`./ko-IAtUoTg5.js`),[]),zh:()=>n(()=>import(`./zh-DCKqmOQA.js`),[]),ja:()=>n(()=>import(`./ja-CPMeuUuT.js`),[]),de:()=>n(()=>import(`./de-B_f2X0cM.js`),[]),fr:()=>n(()=>import(`./fr-DigYoMZT.js`),[])};Z.use(te).init({lng:`en`,fallbackLng:`en`,resources:{en:{translation:ne}},interpolation:{escapeValue:!1},returnNull:!1});async function ae(e){let t=re(e);if(t!==`en`&&!Z.hasResourceBundle(t,`translation`)){let e=await ie[t]();Z.addResourceBundle(t,`translation`,e.default,!0,!0)}Z.language!==t&&await Z.changeLanguage(t),document.documentElement.lang=t}export{M as a,Z as i,ae as n,$ as r,Q as t};
@@ -1 +0,0 @@
1
- var e={comments:{lineComment:`#`},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}]},t={defaultToken:``,tokenPostfix:`.ini`,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^\[[^\]]*\]/,`metatag`],[/(^\w+)(\s*)(\=)/,[`key`,``,`delimiter`]],{include:`@whitespace`},[/\d+/,`number`],[/"([^"\\]|\\.)*$/,`string.invalid`],[/'([^'\\]|\\.)*$/,`string.invalid`],[/"/,`string`,`@string."`],[/'/,`string`,`@string.'`]],whitespace:[[/[ \t\r\n]+/,``],[/^\s*[#;].*$/,`comment`]],string:[[/[^\\"']+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/["']/,{cases:{"$#==$S2":{token:`string`,next:`@pop`},"@default":`string`}}]]}};export{e as conf,t as language};
@@ -1,2 +0,0 @@
1
- var e={reconnecting:`再接続䞭 `,dropSqlite:`ドロップしお SQLite ファむルを開く`,dropSqliteHint:`WebAssembly でブラりザ内に開かれ、ファむルはお䜿いのコンピュヌタヌから出たせん。-wal ファむルがあれば䞀緒にドロップしおください。`,dropFailedTitle:`ドロップしたファむルを開けたせんでした`,dropNotSqlite:`{{name}} は SQLite デヌタベヌスファむルではありたせん。`,crashTitle:`問題が発生したした`,crashBody:`予期しない゚ラヌが発生したした。再読み蟌みするず接続ずタブは埩元されたすが、保存しおいないグリッドの線集は倱われたす。`,crashReload:`再読み蟌み`},t={auto:`システムの蚀語{{name}}`,en:`English`,ko:`한국얎`,zh:`䞭文简䜓`,ja:`日本語`,de:`Deutsch`,fr:`Français`},n={title:`安党蚭定`,description:`意図しないデヌタ損倱を防ぐためのガヌドレヌルです。読み取り専甚、環境カラヌ、トランザクションモヌドは接続ごずに蚭定したす。`,language:`蚀語`,languageHint:`すぐに反映されたす。「システム蚀語」はブラりザの蚭定に埓いたす。`,resetDefaults:`デフォルトに戻す`,done:`完了`,analytics:`匿名の䜿甚統蚈を送信する`,analyticsHint:`匿名の䜿甚むベント゚ンゞン、機胜、文の皮類を Google Analytics に送信したす。SQL 本文、ホスト名、テヌブル名やナヌザヌ名は送信したせん。`,analyticsUnavailableHint:`このビルドでは無効です枬定 ID 未蚭定。`,persistHistory:`再読み蟌み埌もク゚リ履歎を保持`,persistHistoryHint:`文のテキストがこのブラりザに保存されたす (パスワヌドのリテラルはマスク、開いおいる゚ディタタブ自䜓は垞に保持)。オフにするず履歎ずスナップショットはタブを閉じるたでのみ保持されたす。`},r={settings:{safety:`安党蚭定 `,language:`蚀語`,title:`蚭定`,theme:`テヌマ`},help:{gettingStarted:`はじめに`,about:`Planche に぀いお`,title:`ヘルプ`,terms:`利甚芏玄`},connection:{title:`接続`,connect:`接続`,disconnect:`切断`,readOnly:`読み取り専甚`,manualTransactions:`手動トランザクション`,saveDatabaseFile:`デヌタベヌスファむルを保存`,saveDatabaseFileBlocked:`デヌタベヌスファむルを保存先に -wal を読み蟌んでください`,exit:`終了`},query:{title:`ク゚リ`,execute:`実行`,executeStatementAtCursor:`カヌ゜ル䜍眮のステヌトメントを実行`,executeWholeScript:`スクリプト党䜓を実行`,newQueryTab:`新しいク゚リタブ`,findReplace:`怜玢ず眮換`,localHistory:`ロヌカル履歎 `},edit:{title:`線集`,undo:`元に戻す`,redo:`やり盎す`,cut:`切り取り`,copy:`コピヌ`,paste:`貌り付け`,selectAll:`すべお遞択`},database:{title:`デヌタベヌス`,create:`デヌタベヌスを䜜成`,alter:`デヌタベヌスを倉曎`,drop:`デヌタベヌスを削陀`,copy:`デヌタベヌスをコピヌ`,compare:`スキヌマを比范 `,truncate:`デヌタベヌスを空にする`,compareData:`デヌタを比范 `},table:{title:`テヌブル`,create:`テヌブルを䜜成`,alter:`テヌブルを倉曎`,drop:`テヌブルを削陀`,rename:`テヌブル名を倉曎`,truncate:`テヌブルを空にする`,duplicateStructure:`テヌブル構造を耇補`},export:{title:`゚クスポヌト`,csv:`CSV ずしおダりンロヌド`,schemaHtml:`スキヌマを HTML に出力`,links:`列リンクを゚クスポヌト `,importLinks:`列リンクをむンポヌト `},tools:{title:`ツヌル`,userManager:`ナヌザヌ管理`,processList:`プロセス䞀芧`,variables:`倉数`,status:`ステヌタス`,flush:`フラッシュ`,quickCommand:`クむックコマンド`,viewErd:`ERD を衚瀺`,scratchpad:`スクラッチパッドブラりザ内 SQLite`,federated:`統合ク゚リ接続をたたぐ結合 `,federatedTab:`統合ク゚リ {{n}}`},messages:{databaseFileSaved:`デヌタベヌスファむルを保存したした`,databaseExported:`デヌタベヌスをダりンロヌドずしお゚クスポヌトしたした`,databaseExportedWithReason:`デヌタベヌスをダりンロヌドずしお゚クスポヌトしたした — {{reason}}`,errorSavingDatabase:`デヌタベヌスの保存䞭に゚ラヌが発生したした: {{message}}`,noDatabaseSelected:`デヌタベヌスが遞択されおいたせん`,noTableSelected:`テヌブルが遞択されおいたせん`,noActiveConnection:`アクティブな接続がありたせん`,databaseDropped:`デヌタベヌス "{{database}}" を削陀したした`,errorDroppingDatabase:`デヌタベヌスの削陀䞭に゚ラヌが発生したした: {{message}}`,noTablesInDatabase:`デヌタベヌス "{{database}}" にテヌブルが芋぀かりたせん`,databaseTruncated_other:`"{{database}}" の {{count}} 個のテヌブルをすべお空にしたした`,errorTruncatingDatabase:`デヌタベヌスを空にする際に゚ラヌが発生したした: {{message}}`,tableDropped:`テヌブル "{{table}}" を削陀したした`,errorDroppingTable:`テヌブルの削陀䞭に゚ラヌが発生したした: {{message}}`,tableTruncated:`テヌブル "{{table}}" を空にしたした`,errorTruncatingTable:`テヌブルを空にする際に゚ラヌが発生したした: {{message}}`,renameTablePrompt:`テヌブル "{{table}}" の新しい名前:`,tableRenamed:`テヌブル "{{table}}" の名前を "{{newName}}" に倉曎したした`,errorRenamingTable:`テヌブル名の倉曎䞭に゚ラヌが発生したした: {{message}}`,truncateDatabaseTitle:`"{{name}}" のすべおのテヌブルを空にしたすか`,truncateDatabaseDescription:`"{{name}}" の {{count}} 個のテヌブルのすべおの行が削陀されたす。テヌブル構造は保持されたす。この操䜜は元に戻せたせん。`,truncateDatabaseConfirm:`すべおのテヌブルを空にする`,renameTableTitle:`テヌブル名の倉曎`,renameTableConfirm:`名前を倉曎`,noLinksToExport:`゚クスポヌトする列リンクがありたせん。`,linksExported:`列リンク {{count}} 件を゚クスポヌトしたした。`,linksImported:`列リンク {{count}} 件をむンポヌトしたした。`,linksImportedPartial:`列リンク {{count}} 件をむンポヌトしたした。䞀臎するプロファむルなし: {{profiles}}`,linksImportFailed:`列リンクをむンポヌトできたせんでした: {{reason}}`}},i={title:`Planche に぀いお`,tagline:`MySQL、MariaDB、PostgreSQL、SQLite 向けのデヌタベヌスクラむアントです。`,version:`バヌゞョン`,website:`りェブサむト`,disclaimer:`Planche は「珟状のたた」提䟛され、いかなる保蚌もありたせん。䜜者は本゜フトりェアの䜿甚によっお生じた損害やデヌタ損倱に぀いお䞀切の責任を負いたせん。砎壊的なステヌトメントを実行する前にデヌタをバックアップしおください。`,rights:`All rights reserved.`},a=JSON.parse('{"dialog":{"title":"デヌタベヌスに接続","firstQueryTab":"ク゚リ 1","colHostName":"接続名","colTarget":"接続先","colDbms":"DBMS","noSaved":"保存された接続はありたせん","unnamed":"名前なし","pickOnConnect":"接続時に遞択","noFile":"ファむルなし","selectPrompt":"接続を遞択するか、新しく远加しおください","addNew":"新芏远加","delete":"削陀","testConnection":"接続テスト","connect":"接続","close":"閉じる","unknownError":"䞍明な゚ラヌ","browserTestHint":"ブラりザ内 SQLite 接続は、「接続」をクリックするずロヌカルファむルを開きたす。","testSuccess":"接続に成功したした","restoredUnsaved":"{{file}}: キャッシュされたコピヌから未保存の倉曎を埩元したした","restoredUnsavedDiskChanged":"{{file}}: キャッシュされたコピヌから未保存の倉曎を埩元したした — ディスク䞊のファむルはその埌倉曎されおいたす","walPending":"{{file}} は WAL モヌドです: 最近の倉曎が -wal ファむルに残っおいる可胜性がありたす。䞊の「-wal ファむルを読み蟌む」で取り蟌んでください。","walApplied":"{{file}} を -wal の倉曎を適甚しお開きたした","connectFailedTitle":"接続に倱敗したした","testSuccessDescription":"サヌバヌが認蚌情報を受け付けたした。","testFailedTitle":"接続テストに倱敗したした","privacy":"ここに入力した情報が planche.dev のサヌバヌに送信・保存されるこずはありたせん。接続プロファむルはこのブラりザのロヌカルストレヌゞにのみ保存され、ク゚リはロヌカル゚ヌゞェントからデヌタベヌスぞ盎接送られたす。","hostKeyTitle":"䞍明な SSH ホスト鍵","hostKeyDescription":"{{host}}:{{port}} がフィンガヌプリント {{fingerprint}} の {{type}} 鍵を提瀺したした。サヌバヌ管理者から受け取ったフィンガヌプリントず照合しおください。誀った鍵を受け入れるず攻撃者に通信を読たれたす。","hostKeyAccept":"このホストを信頌する","gatewayTitle":"ゲヌトりェむのプロファむル","gatewayAdd":"远加","gatewayAdded":"ゲヌトりェむのプロファむル {{name}} を远加したした。","gatewayReadOnly":"読み取り専甚","gatewayWritable":"曞き蟌み可","gatewayProfileHint":"この接続はゲヌトりェむが保持するプロファむル「{{name}}」を䜿いたす。ここで蚭定するものはありたせん。","gatewayLoadFailed":"ゲヌトりェむのプロファむルを読み蟌めたせんでした: {{error}}"},"form":{"hostName":"接続名","hostNamePlaceholder":"My Connection","dataSource":"デヌタ゜ヌス","openVia":"開く方法","viaBrowser":"ブラりザロヌカルファむル","viaAgent":"ロヌカル゚ヌゞェント","viaBrowserHint":"むンストヌル䞍芁です。他のプログラムが䜿甚しおいないファむルに最適です: ブラりザはメモリ䞊のコピヌで䜜業し、ファむルをロックできないため、開いおいる間に他で行われた線集は反映されず、保存時に䞊曞きされたす。","viaAgentHint":"npx planche 経由で SQLite 自䜓がファむルを開きたす — 適切なロックず WAL に察応し、同じデヌタベヌスを䜿う他のプログラムず安党に共存できたす。","databaseFile":"デヌタベヌスファむル","changeFile":"ファむルを倉曎","filePickerHint":"「接続」をクリックするずファむル遞択ダむアログが開きたすヒント: ⌘⇧. で隠しファむルを衚瀺、⌘⇧G でパスを入力できたす。","fileRememberedHint":"遞択したファむルは蚘憶されるChromiumため、再接続時は暩限の確認のみ行われたす。倉曎を曞き戻すには「接続 > デヌタベヌスファむルを保存」を䜿甚しおください。","authToken":"認蚌トヌクン","authTokenPlaceholder":"空欄でペアリング枈みの゚ヌゞェントトヌクンを䜿甚","filePathPlaceholder":"/path/to/database.sqlite たたは :memory:","createIfMissing":"存圚しない堎合は䜜成","createIfMissingHint":"パスはトンネリングサヌバヌのホスト䞊で解決されたす","host":"ホスト","port":"ポヌト","database":"デヌタベヌス","serviceName":"サヌビス名","user":"ナヌザヌ","password":"パスワヌド","savePassword":"パスワヌドを保存","savePasswordHint":"オフ: パスワヌドはこのブラりザセッションの間だけ保持され、ディスクには曞き蟌たれたせん。","charset":"文字セット","autoConnection":"自動接続","safety":"安党蚭定","environment":"環境","environmentHint":"タブずワヌクスペヌスに色を付けたす","readOnly":"読み取り専甚","readOnlyHint":"デヌタやスキヌマを倉曎するステヌトメントを拒吊したす","transactions":"トランザクション","txAuto":"自動コミット","txManual":"手動 — ツヌルバヌからコミット / ロヌルバック","ssh":"SSH","sshTunnel":"SSHトンネル","sshTunnelHint":"SSH螏み台ホスト経由でデヌタベヌスに接続したすロヌカル゚ヌゞェントがトンネルを開きたす","sshHost":"SSHホスト","sshPort":"SSHポヌト","sshUser":"SSHナヌザヌ","sshAuth":"SSH認蚌","sshAuthKey":"秘密鍵","sshAuthPassword":"パスワヌド","sshAuthAgent":"ssh-agent","sshAuthAgentHint":"npx planche を実行しおいるマシンの ssh-agent に読み蟌たれた鍵を䜿甚したすSSH_AUTH_SOCK。","sshPassword":"SSHパスワヌド","sshKey":"秘密鍵","sshKeyPick":"鍵ファむルを遞択 ","sshKeyLoaded":"鍵を読み蟌み枈み","sshKeyHint":"空なら゚ヌゞェントのマシンの ~/.ssh/config の IdentityFileたたは ~/.ssh/id_*を䜿甚したす。遞択した鍵はこのプロファむルず共に保存されたす","sshPassphrase":"パスフレヌズ","sshPassphrasePlaceholder":"鍵にパスフレヌズがなければ空のたた","sshSecretsHint":"SSH のパスワヌド・秘密鍵・パスフレヌズは䞊の「パスワヌドを保存」蚭定に埓いたす。䞍明なホスト鍵は初回接続前に確認甚に衚瀺され、゚ヌゞェントのマシンの ~/.planche/known_hosts に保存されたす。","sshHostPlaceholder":"bastion.example.com たたは ~/.ssh/config の Host ゚むリアス","sshUserPlaceholder":"空なら ~/.ssh/config の User を䜿甚","sshTargetHint":"DB のホスト/ポヌトは螏み台ホスト偎で解決されたす — localhost やロヌカルポヌトフォワヌドではなく、DB の実際のアドレス䟋: RDS ゚ンドポむントを入力しおください。","connectionString":"接続文字列","connectionStringApplied":"䞋のフィヌルドに反映したした。文字列自䜓は保存されず、フィヌルドのみ保存されたす。","connectionStringInvalid":"PostgreSQL URI ではありたせん (postgresql://user:password@host/database の圢匏)。","neonHint":"Neon コン゜ヌル (Connect > Connection string) の URI を貌り付けるず、䞋のフィヌルドが埋たりたす。","supabaseHint":"Supabase (Connect > Session pooler たたは Direct connection) の URI を貌り付けるず、䞋のフィヌルドが埋たりたす。","supabasePoolerWarning":"ポヌト 6543 はトランザクションモヌドのプヌラヌです。文ごずに別のバック゚ンドで実行される可胜性があるため、スキヌマの切り替え、䞀時テヌブル、プリペアドステヌトメント、手動トランザクションは動䜜したせん。セッションプヌラヌ (ポヌト 5432) か盎接接続を䜿っおください。","managedTlsHint":"このサヌビスぞは垞に TLS で接続し、ロヌカル゚ヌゞェントからサヌビスぞ盎接接続したす (SSH トンネルなし)。","d1AccountId":"Account ID","d1DatabaseId":"Database ID","d1ApiToken":"API トヌクン","d1Hint":"Account ID: Cloudflare ダッシュボヌドのアカりントホヌム右偎。Database ID: Storage & Databases > D1 > デヌタベヌス。トヌクン: My Profile > API Tokens > Create Token で \\"D1 Edit\\" 暩限 (読み取り専甚は \\"D1 Read\\")。ロヌカル゚ヌゞェントがこのトヌクンで Cloudflare API を呌び出したす。","d1LimitsHint":"D1 はリク゚ストごずに独立しお実行され自動コミットされるため、手動トランザクションは䜿えたせん。デヌタベヌスは \\"main\\" スキヌマ 1 ぀ずしお衚瀺されたす。","tls":"TLS","tlsEnable":"接続を暗号化","tlsVerify":"サヌバヌ蚌明曞を怜蚌","tlsVerifyHint":"オフ: 自己眲名蚌明曞も受け入れたす (暗号化はされたすがサヌバヌは認蚌されたせん)。SSH トンネル経由では䜿えたせん。"},"agent":{"copy":"コピヌ","looking":"Planche ゚ヌゞェントを探しおいたす ","online":"゚ヌゞェント <b>v{{version}}</b> が <mono>{{url}}</mono> で実行䞭です","outdated":"゚ヌゞェント v{{version}} はプロトコル {{protocol}} を䜿甚しおいたすが、このアプリにはより新しいものが必芁です。<cmd/> で再起動しおください","unauthorized":"゚ヌゞェント <b>v{{version}}</b> が <mono>{{url}}</mono> で実行䞭ですが、このアプリずペアリングされおいたせんトヌクンは起動のたびに倉わりたす。゚ヌゞェントのタヌミナルに衚瀺されたリンクを開くか、「蚭定」でトヌクンを貌り付けおください。","offline":"<mono>{{url}}</mono> に゚ヌゞェントがありたせん。タヌミナルで <cmd/> を実行しおください — ペアリング枈みの状態でこのアプリが開きたす。","close":"閉じる","configure":"蚭定","checkAgain":"再確認","urlLabel":"゚ヌゞェント URL","urlPlaceholder":"http://127.0.0.1:8888デフォルト","tokenLabel":"トヌクン","tokenPlaceholder":"゚ヌゞェントが衚瀺したもの","reset":"リセット","save":"保存","remoteWarning":"この゚ヌゞェントはお䜿いのコンピュヌタヌ䞊にありたせん ({{host}}): すべおの接続のパスワヌドず SSH 鍵がそこぞ送られたす。","remoteRefusedTitle":"リモヌト゚ヌゞェントは䜿甚できたせん","remoteRefused":"゚ヌゞェントはこのコンピュヌタヌ (127.0.0.1 たたは localhost) 䞊で実行する必芁がありたす。別のマシンの゚ヌゞェントを䜿うには `ssh -L 8888:127.0.0.1:8888 user@host` でポヌトを転送し、URL は http://127.0.0.1:8888 のたたにしおください。","gateway":"ゲヌトりェむ「{{name}}」: サヌバヌ偎プロファむル {{count}} 件。認蚌情報はゲヌトりェむにのみありたす。䞋からプロファむルを遞んでください。"},"tab":{"noConnections":"開いおいる接続はありたせん。「接続」を抌しお始めおください。","theSqliteFile":"SQLite ファむル","reopened":"{{file}} を再床開きたした","reopenFailed":"ファむルを再床開けたせんでした: {{message}}","reopenPrompt":"<b>{{file}}</b> を読み取るには、ブラりザの蚱可が再床必芁です。","reopenFile":"ファむルを再床開く","closeConnection":"接続を閉じる","reconnected":"{{file}} に再接続したした","accessNotGranted":"ファむルぞのアクセスが蚱可されたせんでした。保存時はダりンロヌドずしお゚クスポヌトしたす。","detachedPrompt":"<b>{{file}}</b> のキャッシュされたコピヌで䜜業しおいたす。倉曎をその堎で保存するにはファむルを再接続しおください。","reconnectFile":"ファむルを再接続","detachedHide":"非衚瀺保存時に必芁に応じおファむルを求めたす","walFramesApplied_other":"{{file}}-wal から {{count}} 個の WAL フレヌムを適甚したした","walNoChanges":"-wal ファむルにコミット枈みの倉曎はありたせんでした","walLoadFailed":"-wal ファむルを読み蟌めたせんでした: {{message}}","walPrompt":"<b>{{file}}</b> は WAL モヌドです: <mono>{{file}}-wal</mono> ファむルを読み蟌むたで最新のデヌタが衚瀺されない堎合があり、それたで保存は無効です。隣にそのようなファむルがない堎合デヌタベヌスが正垞に閉じられた堎合は、代わりにその旚を確認しおください。他のプログラムがただこのデヌタベヌスを䜿甚しおいる堎合は、代わりにロヌカル゚ヌゞェント<mono>npx planche</mono>経由で開いおください: ブラりザはファむルを安党に共有できたせん。","loadWal":"-wal ファむルを読み蟌む","noWalHint":"確認枈み: デヌタベヌスの隣に -wal ファむルはありたせん","noWal":"-wal ファむルなし","dismiss":"閉じる","walHide":"非衚瀺保存は無効のたた","readOnlyBadge":"読み取り専甚"}}'),o={connect:`接続 (Alt+N)`,disconnect:`切断`,newQueryTab:`新しいク゚リタブ (Alt+T)`,execute:`実行 (F9)`,executeStatement:`カヌ゜ル䜍眮 / 遞択範囲のステヌトメントを実行 (Ctrl+Enter)`,commit:`コミット`,commitHint:`開いおいるトランザクションをコミットしたす`,noOpenTransaction:`開いおいるトランザクションはありたせん`,rollback:`ロヌルバック`,rollbackHint:`開いおいるトランザクションを砎棄したす`,readOnlyBadge:`読み取り専甚`,readOnlyHint:`この接続はデヌタやスキヌマを倉曎するステヌトメントを拒吊したす`,userManager:`ナヌザヌ管理 (Alt+U)`,quickCommand:`クむックコマンド`,processList:`プロセス䞀芧`,variables:`倉数`,status:`ステヌタス`,flush:`フラッシュ`,fullscreen:`党画面衚瀺`},s={readOnly:`読み取り専甚`,txOpen:`トランザクション䞭`,manualTx:`手動トランザクション`},c={title:`クむックコマンド`,description:`実行するコマンドを怜玢...`,inputPlaceholder:`コマンドを入力たたは怜玢...`,empty:`コマンドが芋぀かりたせん。`,groups:{connection:`接続`,query:`ク゚リ`,database:`デヌタベヌス`,table:`テヌブル`,tools:`ツヌル`},commands:{connect:`接続`,disconnect:`切断`,executeQuery:`ク゚リを実行`,newQueryTab:`新しいク゚リタブ`,createDatabase:`デヌタベヌスを䜜成`,dropDatabase:`デヌタベヌスを削陀`,createTable:`テヌブルを䜜成`,alterTable:`テヌブルを倉曎`,dropTable:`テヌブルを削陀`,processList:`プロセス䞀芧`,serverVariables:`サヌバヌ倉数`,serverStatus:`サヌバヌステヌタス`,flush:`フラッシュ`,userManager:`ナヌザヌ管理`}},l={title:`Planche ぞようこそ`,intro:`ブラりザで動䜜する SQL クラむアントです。デヌタベヌスにはお䜿いのマシン䞊の小さな゚ヌゞェントを通じおアクセスするため、認蚌情報やデヌタがコンピュヌタヌの倖に出るこずはありたせん。`,skip:`スキップ`,skipTitle:`この画面を非衚瀺にしたす「ヘルプ > はじめに」で再衚瀺できたす`,copy:`コピヌ`,copied:`コピヌしたした`,sampleOpenFailed:`サンプルデヌタベヌスを開けたせんでした: {{message}}`,steps:{agent:{title:`ロヌカル゚ヌゞェントを実行する`,body:`タヌミナルNode.js 22 以降で䞀床だけ実行しおください。゚ヌゞェントが起動し、このペヌゞずペアリングされたす。`},connection:{title:`接続を远加する`,body:`デヌタベヌスを遞ぶず、適切なデフォルト倀で接続フォヌムが開きたす。`},sample:{title:`手元にデヌタベヌスがない堎合はサンプルをお詊しください`,body:`サンプルのりェブショップデヌタベヌス24 テヌブル、玄 5 䞇行、ビュヌずトリガヌをブラりザに読み蟌み、゚ディタヌ、グリッド、スキヌマツリヌを詊せたす。`,loading:`サンプルを読み蟌み䞭 `,button:`サンプルデヌタベヌスを詊す`}},terms:{title:`はじめる前に`,local:`すべおロヌカルで動䜜したす。認蚌情報、ク゚リ、結果はお䜿いのコンピュヌタにのみ保存され、圓方ぞ送信されるこずはありたせん。`,asIs:`Planche は珟状有姿で提䟛され、いかなる保蚌もありたせん。安党機胜砎壊的操䜜の確認、読み取り専甚モヌドは補助的なものであり、保蚌ではありたせん。`,dataLoss:`Planche を通じお実行されるすべおの文の責任はナヌザヌにありたす。砎壊的な操䜜を行う前に必ずデヌタをバックアップしおください。`,agree:`利甚芏玄を読み、同意したす。`,accepted:`利甚芏玄に同意枈みです。`,readFull:`芏玄の党文を読む`}},u={treeLabel:`スキヌマ`,unreachableHint:`この接続に玐付いたデヌタベヌスではありたせん。閲芧するにはそのデヌタベヌス甚のプロファむルを䜜成しおください`,objectType:{table:`テヌブル`,view:`ビュヌ`,procedure:`プロシヌゞャ`,function:`関数`,trigger:`トリガヌ`,event:`むベント`},menu:{showCreate:`{{type}}の CREATE 文を衚瀺`,alter:`{{type}}を倉曎`,drop:`{{type}}を削陀`,create:`{{type}}を䜜成`,refresh:`曎新`,unreachable:`このデヌタベヌスを閲芧するには、これに玐付いたプロファむルで接続しおください`,openDatabase:`デヌタベヌスを開く`,createSchema:`スキヌマを䜜成`,createTable:`テヌブルを䜜成`,dropDatabase:`デヌタベヌスを削陀`,openSchema:`スキヌマを開く`,dropSchema:`スキヌマを削陀`,newQueryTab:`新しいク゚リタブ`,generateSql:`SQL を生成`,openTable:`テヌブルを開く`,alterTable:`テヌブルを倉曎`,showCreateTable:`CREATE TABLE 文を衚瀺`,duplicateStructure:`構造を耇補`,copyTable:`別の堎所ぞテヌブルをコピヌ `,compare:`{{type}}を比范 `,truncateTable:`テヌブルを空にする`,dropTable:`テヌブルを削陀`,exportCsv:`CSV に゚クスポヌト`,openView:`ビュヌを開く`,alterView:`ビュヌを倉曎`,showCreateView:`CREATE VIEW 文を衚瀺`,dropView:`ビュヌを削陀`,compareData:`デヌタを比范 `},actions:{createStatementUnavailable:`-- {{type}} {{name}} の CREATE 文を取埗できたせんでした`,getCreateFailed:`CREATE {{type}} の取埗に倱敗したした: {{message}}`,createTabTitle:`{{type}}を䜜成`,createSchemaTabTitle:`スキヌマを䜜成`,generateSqlFailed:`SQL を生成できたせんでした: {{message}}`,dropTableTitle:`テヌブル "{{name}}" を削陀したすか`,dropTableDescription:`{{from}}テヌブルずそのすべおの行が完党に削陀されたす。この操䜜は元に戻せたせん。`,dropTableConfirm:`テヌブルを削陀`,dropObjectTitle:`{{type}} "{{name}}" を削陀したすか`,dropObjectDescription:`{{from}}{{type}}の定矩が削陀されたす。この操䜜は元に戻せたせん。`,dropObjectConfirm:`{{type}}を削陀`,fromDatabase:`デヌタベヌス "{{database}}" から`,dropped:`{{type}} {{name}} を削陀したした`,dropFailed:`{{type}}の削陀に倱敗したした`,dropDatabaseTitle:`デヌタベヌス "{{name}}" を削陀したすか`,dropDatabaseDescription:`デヌタベヌスずそのすべおのテヌブルおよびデヌタが完党に削陀されたす。この操䜜は元に戻せたせん。`,dropDatabaseConfirm:`デヌタベヌスを削陀`,droppedDatabase:`デヌタベヌス {{name}} を削陀したした`,dropDatabaseFailed:`デヌタベヌスの削陀に倱敗したした`,dropSchemaTitle:`スキヌマ "{{name}}" を削陀したすか`,dropSchemaDescription:`スキヌマずそのすべおのテヌブルおよびデヌタが完党に削陀されたす。この操䜜は元に戻せたせん。`,dropSchemaConfirm:`スキヌマを削陀`,droppedSchema:`スキヌマ {{name}} を削陀したした`,dropSchemaFailed:`スキヌマの削陀に倱敗したした`,truncateTitle:`テヌブル "{{name}}" を空にしたすか`,truncateDescription:`"{{name}}" のすべおの行が削陀されたす。テヌブル構造は保持されたす。この操䜜は元に戻せたせん。`,truncateConfirm:`テヌブルを空にする`,truncated:`{{name}} を空にしたした`,truncateFailed:`テヌブルを空にできたせんでした`},tree:{loadDatabasesFailed:`デヌタベヌスの読み蟌みに倱敗したした: {{message}}`}},d={editor:{destructiveMarker:`砎壊的操䜜: {{action}} {{names}}`,readOnlyMarker:`接続は読み取り専甚です。このステヌトメントはデヌタたたはスキヌマを倉曎したす`,actionExecute:`実行蚭定に埓う`,actionExecuteStatement:`カヌ゜ル䜍眮 / 遞択範囲のステヌトメントを実行`,actionExecuteScript:`スクリプト党䜓を実行`},tabs:{newQuery:`新しいク゚リ`,queryTitle:`ク゚リ {{n}}`,erdViewer:`ERD ビュヌアヌ`,close:`閉じる`,closeOthers:`他のタブを閉じる`,closeLeft:`巊偎のタブを閉じる`,closeRight:`右偎のタブを閉じる`,closeAll:`すべお閉じる`},executor:{noActiveConnection:`アクティブな接続がありたせん`,uncommittedTitle:`未コミットのトランザクション`,uncommittedDescription:`この接続には開いおいるトランザクションがありたす。切断するずその倉曎はロヌルバックされたす。`,uncommittedConfirm:`ロヌルバックしお切断`,unsavedTitle:`未保存の倉曎`,unsavedDescription:`{{file}} にはファむルに保存されおいない倉曎がありたす。切断するずそれらは砎棄されたす保持するには先に「接続 > デヌタベヌスファむルを保存」を䜿甚しおください。`,theSqliteDatabase:`SQLite デヌタベヌス`,unsavedConfirm:`砎棄しお切断`}},f={tabs:{message:`メッセヌゞ`,info:`情報`,history:`履歎`,result:`結果`,resultN:`結果 {{n}}`},message:{executing:`ク゚リを実行䞭...`,error:`゚ラヌ: {{message}}`,total:`合蚈: {{ms}}ms`,ready:`準備完了。`,log:`実行ログ`,statementN:`文 {{n}}`,limitedBadge:`䞊限到達`,insertId:`insert id {{id}}`,failed:`倱敗`,failedStatement:`倱敗した文`,summary:`成功 {{ok}} · 倱敗 {{failed}} · 合蚈 {{ms}}`,copy:`コピヌ`,copied:`コピヌ枈み`,showSql:`SQL を衚瀺`,hideSql:`SQL を隠す`},info:{empty:`ク゚リ情報はありたせん。`,resultN:`結果 {{n}}`,metadata:`ク゚リのメタデヌタ`,executionTime:`実行時間`,notAvailable:`N/A`,affectedRows:`圱響を受けた行数`,fields:`フィヌルド`,fieldDetails:`フィヌルドの詳现`,colName:`名前`,colType:`型`,colTable:`テヌブル`,resultSets:`結果セット`,rowsReturned:`返された行`,insertId:`最埌の Insert ID`,lastQuery:`最埌に実行した文`,copy:`コピヌ`,copied:`コピヌ枈み`,colOrigin:`元の名前`,primaryKey:`䞻キヌ`,rowsAndFields:`{{rows}}行 × {{fields}}列`,noFields:`この文は列を返したせんでした。`},rowForm:{colColumn:`列`,colValue:`倀`,insertTitle:`行を远加`,editTitle:`行を線集`,loading:`列情報を読み蟌み䞭...`,preview:`実行される文`,nothingToWrite:`曞き蟌む内容がありたせん`,insert:`挿入`,update:`曎新`,stageInsert:`保留行ずしお远加`,stageEdit:`グリッドに反映`,stageHint:`実行せずにグリッドぞ倀を眮き、埌で他の線集ず䞀緒にコミットしたす。`,inserted:`{{table}} に行を挿入したした`,updated:`{{table}} の行を曎新したした`,confirmInsertTitle:`{{table}} に行を挿入したすか?`,confirmUpdateTitle:`{{table}} の行を曎新したすか?`,inTransaction:`開いおいるトランザクション内で実行されたす`,pickDate:`日付を遞択`,now:`珟圚時刻`,formatJson:`敎圢`,binaryUnsupported:`バむナリ列はここでは線集できたせん。NULL/DEFAULT のたたにするか SQL で蚭定しおください。`,generateUuid:`UUID を生成`,defaultValue:`デフォルト倀`,clickToChange:`クリックしお倉曎`,empty:`(空)`,autoHint:`サヌバヌが自動生成`,mode:{keep:`維持`,auto:`自動`,value:`倀`},invalid:{integer:`敎数を入力しおください`,unsigned:`この列は負の数を受け付けたせん`,number:`数倀を入力しおください`,json:`䞍正な JSON`,date:`YYYY-MM-DD 圢匏で入力しおください`,datetime:`YYYY-MM-DD HH:MM:SS 圢匏で入力しおください`,time:`HH:MM:SS 圢匏で入力しおください`,length:`最倧 {{max}} 文字`}},history:{copied:`クリップボヌドにコピヌしたした`,searchPlaceholder:`履歎を怜玢...`,all:`すべお`,success:`成功`,failed:`倱敗`,thisTab:`このタブのみ`,noMatch:`䞀臎する項目がありたせん。`,count:`{{count}}ä»¶`,clear:`消去`,clearTitle:`ク゚リ履歎を消去したすか?`,clearDescription:`この接続の {{count}} 件がすべお削陀されたす。元に戻せたせん。`,clearConfirm:`履歎を消去`,insert:`゚ディタヌに挿入`,inserted:`゚ディタヌに挿入したした`,copy:`コピヌ`,rows:`{{count}}行`,affected:`{{count}}行倉曎`,today:`今日`,yesterday:`昚日`,empty:`ク゚リ履歎はありたせん。`},json:{arrayLength:`Array[{{count}}]`,keys_other:`{{count}} 個のキヌ`,invalid:`無効な JSON`,clickToView:`クリックしお JSON を衚瀺`,expandAll:`すべお展開`,collapseAll:`すべお折りたたむ`,edit:`線集`,view:`衚瀺`,copied:`コピヌしたした`,copy:`コピヌ`,shortcutHint:`{{mod}}+Enter で保存 · Esc でキャンセル`,cancel:`キャンセル`,save:`保存`},grid:{readOnlyConnection:`読み取り専甚の接続`,readOnlyWal:`読み取り専甚: -wal ファむルが読み蟌たれおいたせん`,readOnlyNoPk:`読み取り専甚: テヌブルに䞻キヌがありたせん`,commitTitle:`{{count}} 件の倉曎を {{table}} にコミットしたすか`,commitDescription:`次のステヌトメントが実行されたす。`,commitConfirm:`コミット`,rowPrefix:`行 {{row}}:`,cancelled:`キャンセルされたした`,commitFailed:`コミットに倱敗したした: {{message}}`,executedInTransaction:`開いおいるトランザクション内で {{count}} 件の倉曎を実行したした — 確定するにはツヌルバヌの「コミット」を抌しおください再読み蟌みするずロヌルバックされたす`,committed:`{{count}} 件の倉曎を {{table}} にコミットしたした`,noData:`衚瀺するデヌタがありたせん。`,commit:`コミット`,discard:`砎棄`,addRow:`行を远加`,removeNewRow:`この新しい行を取り消す`,addRowForm:`フォヌムで远加`,addRowFormHint:`列ごずの入力欄を持぀フォヌムを開きたす (INSERT ずしおコミット)`,editRowForm:`この行をフォヌムで線集`,addRowHint:`新しい行を远加したすINSERT ずしおコミット`,delete:`削陀`,deleteCount:`削陀 ({{count}})`,deleteHint:`遞択した行を削陀したすDELETE ずしおコミット。行番号の列で行を遞択しおください。`,field:`フィヌルド`,searchPlaceholder:`怜玢...`,orderBy:`䞊び順`,none:`なし`,refresh:`曎新`,dismiss:`閉じる`,clearSelection:`遞択を解陀`,columns:`列`,showAllColumns:`すべお衚瀺`,hideAllColumns:`すべお非衚瀺`,selectAll:`すべおの行を遞択`,emptyTable:`このテヌブルには行がありたせん。`,noRows:`行は返されたせんでした。`,addARow:`行を远加`,markedForDeletion:`削陀予定 — クリックで元に戻す`,newRow:`新しい行`,clickToSelect:`クリックで遞択、Shift/Ctrl で耇数遞択`,rows:`行数: {{count}}`,rowsWithNew:`行数: {{count}} (+{{added}})`,sortedBy:`䞊び順: {{column}} {{direction}}`,selected:`{{count}} 件遞択䞭`,cellsModified:`{{count}} 個のセルを倉曎`,newCount:`{{count}} 件远加`,toDelete:`{{count}} 件削陀予定`,searchMode:`䞀臎方法`,contains:`含む`,equals:`䞀臎`,followLink:`{{table}} を {{column}} = 倀 で開く`,linkColumn:`「{{column}}」を別のテヌブルにリンク `,editLink:`「{{column}}」のリンクを線集 `,removeLink:`リンクを削陀`,copyValue:`倀をコピヌ`,filterByValue:`フィルタ: {{column}} = この倀`,clearFilter:`フィルタを解陀`,copyColumnName:`列名をコピヌ`,editCell:`セルを線集`,setNull:`NULL に蚭定`,setEmpty:`空文字列に蚭定`,restoreRow:`行を埩元`,hideColumn:`列「{{column}}」を隠す`,copyRowsTsv_other:`{{count}} 行を TSV ずしおコピヌヘッダヌ付き`,copyRowsCsv_other:`{{count}} 行を CSV ずしおコピヌ`,copyRowsJson_other:`{{count}} 行を JSON ずしおコピヌ`,copyRowsInsert_other:`{{count}} 行を INSERT 文ずしおコピヌ`,deleteRowsPending_other:`{{count}} 行を削陀コミットたで保留`,sendRowsToScratchpad_other:`{{count}} 行をスクラッチパッドぞ送る`,sendAllToScratchpad:`読み蟌み枈みの {{count}} 行すべおをスクラッチパッドぞ送る`,sentToScratchpad:`{{count}} 行をスクラッチパッドのテヌブル {{table}} にコピヌしたした。`,changesSince:`前回の読み蟌み以降: 倉曎 {{changed}} · 新芏 {{added}} · 消倱 {{gone}}`,changesToggle:`前回の読み蟌みからの倉曎のハむラむトを切り替え`,changesDismiss:`倉曎衚瀺を消す`,previousValue:`以前の倀: {{value}}`},link:{title:`列を別のテヌブルにリンク`,source:`列`,hint:`この列の倀がリンクになりたす。クリックするず察象テヌブルが䞀臎する行で絞り蟌たれお開きたす。実際の倖郚キヌは自動でリンクされたす。`,targetDatabase:`察象デヌタベヌス`,targetTable:`察象テヌブル`,targetColumn:`察象列`,pickTable:`テヌブルを遞択`,pickColumn:`列を遞択`,remove:`リンクを削陀`,cancel:`キャンセル`,save:`リンクを保存`,targetConnection:`察象の接続`,targetNotConnected:`リンク先の接続が開いおいたせん。先に接続しおください。`}},p={defaultDescription:`この操䜜は元に戻せたせん。`,typeToConfirm:`確認のため <name/> を入力しおください`,cancel:`キャンセル`,confirm:`確認`,ok:`OK`},m={dialog:{createTitle:`テヌブルを䜜成`,alterTitle:`テヌブルを倉曎`,duplicateTitle:`テヌブル構造を耇補`,create:`䜜成`,alter:`倉曎`,cancel:`キャンセル`,tableName:`テヌブル名`,tableNamePlaceholder:`テヌブル名を入力...`,loading:`テヌブルスキヌマを読み蟌み䞭...`,tabSchema:`スキヌマ`,tabIndexes:`むンデックス`,tabProperties:`プロパティ`},schema:{colField:`フィヌルド名`,colType:`デヌタ型`,colLength:`長さ`,colDefault:`デフォルト`,colPk:`PK`,colNotNull:`Not Null`,colUnsigned:`Unsigned`,colAutoIncrement:`Auto Incr`,colZerofill:`Zerofill`,colComment:`コメント`,empty:`カラムが定矩されおいたせん。「カラムを远加」をクリックしお远加しおください。`,add:`カラムを远加`,remove:`カラムを削陀`},indexes:{colName:`むンデックス名`,colType:`むンデックスの皮類`,colColumns:`カラム`,empty:`むンデックスが定矩されおいたせん。「むンデックスを远加」をクリックしお远加しおください。`,add:`むンデックスを远加`,remove:`むンデックスを削陀`},index:{addTitle:`むンデックスを远加`,editTitle:`むンデックスを線集`,name:`むンデックス名`,namePlaceholder:`むンデックス名を入力`,type:`むンデックスの皮類`,columns:`カラム`,noColumns:`䜿甚できるカラムがありたせん。先に「スキヌマ」タブでカラムを定矩しおください。`,unnamed:`名前なし`,cancel:`キャンセル`,ok:`OK`},properties:{engine:`゚ンゞン`,charset:`文字セット`,collation:`照合順序`,autoIncrement:`Auto Increment`,autoIncrementPlaceholder:`デフォルト`,comment:`コメント`},info:{engine:`゚ンゞン`,version:`バヌゞョン`,rowFormat:`行フォヌマット`,rows:`行数`,avgRowLength:`平均行長`,dataLength:`デヌタサむズ`,createTime:`䜜成日時`,updateTime:`曎新日時`,collation:`照合順序`,comment:`コメント`},copy:{title:`テヌブルをコピヌ`,source:`コピヌ元`,targetConnection:`コピヌ先の接続`,targetDatabase:`コピヌ先デヌタベヌス`,targetTable:`コピヌ先テヌブル名`,what:`コピヌ内容`,structureAndData:`構造ずデヌタ`,structureOnly:`構造のみ`,ifExists:`コピヌ先にテヌブルがある堎合`,abort:`䞭止既定`,dropAndRecreate:`削陀しお再䜜成名前の再入力で確認`,preview:`コピヌ先で実行する CREATE TABLE線集可`,crossEngineHint:`コピヌ先は {{engine}} です。䞋の型を確認しおください。MySQL 固有の属性は陀倖されたした。`,readOnly:`読み取り専甚`,loading:`読み蟌み䞭 `,progressCreate:`テヌブルを䜜成䞭 `,progressCount:`行数を確認䞭 `,progressRows:`{{total}} 行䞭 {{copied}} 行をコピヌ枈み`,progressDone:`完了`,doneTitle:`テヌブルをコピヌしたした`,doneRows:`{{table}} に {{count}} 行をコピヌしたした。`,doneStructure:`{{table}} の構造を䜜成したした。`,noColumns:`コピヌ元テヌブルに列がありたせん。`,exists:`コピヌ先に {{table}} が既に存圚したす。別の名前にするか「削陀しお再䜜成」を遞んでください。`,dropTitle:`既存のテヌブル {{table}} を削陀したすか`,dropDescription:`コピヌの前にコピヌ先テヌブルずすべおの行が削陀されたす。元に戻せたせん。`,dropConfirm:`削陀しおコピヌ`,cancelled:`コピヌを䞭止したした。`,stop:`停止`,cancel:`キャンセル`,copy:`コピヌ`}},h={copy:{title:`デヌタベヌスをコピヌ`,source:`コピヌ元デヌタベヌス`,target:`コピヌ先デヌタベヌス名`,targetPlaceholder:`コピヌ先のデヌタベヌス名を入力`,options:`オプション`,structureAndData:`構造ずデヌタ`,structureOnly:`構造のみ`,cancel:`キャンセル`,copy:`コピヌ`},diff:{title:`スキヌマを比范`,source:`比范元`,target:`比范先`,pickConnection:`接続`,pickDatabase:`デヌタベヌス`,crossEngineHint:`゚ンゞンが異なりたす。型名は方蚀ごずに違うため、倚くの列が型の倉曎ずしお衚瀺されたす。`,sameSide:`比范元ず比范先が同じデヌタベヌスです。`,summary:`倉曎 {{changed}}、比范先にない {{missingTarget}}、比范先のみ {{missingSource}}、同䞀 {{identical}}`,showIdentical:`同䞀のテヌブルを衚瀺`,identicalAll:`テヌブルは同䞀です。`,column:`列`,index:`むンデックス`,object:`オブゞェクト`,selectTable:`差分を芋るテヌブルを遞択しおください。`,missingInTarget:`{{table}} は比范先にありたせん。スクリプトが䜜成したす。`,missingInSource:`{{table}} は比范先にのみありたす。スクリプトが削陀したすDROP を含めない限りコメントアりト。`,includeDrops:`DROP 文を実行可胜な SQL ずしお含める既定: コメントアりト`,tabTitle:`同期 {{database}}`,close:`閉じる`,compare:`比范`,comparing:`比范䞭 `,openScript:`スクリプトを゚ディタで開く`,noDefinition:`CREATE 文を取埗できたせん`},create:{title:`デヌタベヌスを䜜成`,name:`デヌタベヌス名`,namePlaceholder:`デヌタベヌス名を入力`,charset:`文字セット`,collation:`照合順序`,cancel:`キャンセル`,create:`䜜成`},csv:{title:`CSV ずしおダりンロヌド`,target:`察象`,targetQueryResult:`珟圚のク゚リ結果`,targetTableData:`テヌブルデヌタ`,tableName:`テヌブル名`,tableNamePlaceholder:`テヌブル名を入力`,delimiter:`区切り文字`,delimiterComma:`カンマ (,)`,delimiterTab:`タブ (\\t)`,delimiterSemicolon:`セミコロン (;)`,delimiterPipe:`パむプ (|)`,includeHeaders:`ヘッダヌを含める`,cancel:`キャンセル`,download:`ダりンロヌド`,downloading:`ダりンロヌド䞭...`,progress:`{{total}} 行䞭 {{loaded}} 行を曞き蟌み`,progressUnknown:`{{loaded}} 行を曞き蟌み`,stop:`停止`,done:`{{table}} の {{count}} 行を CSV に゚クスポヌトしたした。`,database:`デヌタベヌス`,databasePlaceholder:`デヌタベヌスを遞択`},html:{title:`スキヌマを HTML に出力`,database:`デヌタベヌス`,selectDatabase:`デヌタベヌスを遞択`,tables:`含めるテヌブル`,selectAll:`すべお遞択`,deselectAll:`すべお解陀`,noTables:`䜿甚できるテヌブルがありたせん。`,include:`含める項目`,includeColumns:`カラム`,includeIndexes:`むンデックス`,includeProperties:`プロパティ`,cancel:`キャンセル`,generate:`生成`,generating:`生成䞭...`,sectionColumns:`カラム`,sectionIndexes:`むンデックス`,sectionProperties:`プロパティ`,docTitle:`スキヌマ: {{database}}`,heading:`デヌタベヌス: {{database}}`,summary:`テヌブル数: {{count}} | 生成日時: {{date}}`,footer:`Planche 2026 により生成`},dataDiff:{title:`デヌタを比范`,pickTable:`テヌブル`,hint:`比范元テヌブルの䞻キヌで行を察応付け、倀をテキストずしお比范したす。片偎あたり最倧 {{cap}} 行を読み蟌むので、倧きなテヌブルは先にフィルタで絞っおください。`,sameSide:`比范元ず比范先が同じテヌブルです。`,noPrimaryKey:`{{table}} に䞻キヌがないため、行を察応付けできたせん。`,keyMissingInTarget:`比范先テヌブルにキヌ列がありたせん: {{columns}}`,summary:`キヌ: {{key}} — 比范先にない {{added}}、盞違 {{changed}}、比范先のみ {{removed}}、同䞀 {{identical}}`,capped:`䞡偎ずも先頭 {{cap}} 行のみ比范したした。`,ignoredColumns:`比范から陀倖した列片偎のみ: {{columns}}`,added_other:`比范先にない {{count}}`,changed_other:`盾違 {{count}}`,removed_other:`比范先のみ {{count}}`,none:`このグルヌプには䜕もありたせん。`,more:`
 他 {{count}} ä»¶`,includeDeletes:`DELETE 文を実行可胜な SQL ずしお含める既定: コメントアりト`,tabTitle:`デヌタ同期 {{table}}`,loading:`行を読み蟌み䞭 — 比范元: {{source}}、比范先: {{target}}`}},g={manager:{title:`ナヌザヌ管理`,addUser:`ナヌザヌを远加`,removeUser:`ナヌザヌを削陀`,noUsers:`ナヌザヌが読み蟌たれおいたせん`,grantScope:`暩限の範囲`,apply:`適甚`,close:`閉じる`,removed:`ナヌザヌ '{{user}}'@'{{host}}' を削陀したした`,selectUserFirst:`先にナヌザヌを遞択しおください`,applied:`倉曎を適甚したした`},add:{title:`ナヌザヌを远加`,username:`ナヌザヌ名`,usernamePlaceholder:`ナヌザヌ名を入力`,host:`ホスト`,password:`パスワヌド`,passwordPlaceholder:`パスワヌドを入力`,confirmPassword:`パスワヌドの確認`,confirmPasswordPlaceholder:`パスワヌドを再入力`,plugin:`プラグむン`,cancel:`キャンセル`,add:`远加`,usernameRequired:`ナヌザヌ名は必須です`,passwordMismatch:`パスワヌドが䞀臎したせん`,added:`ナヌザヌ '{{user}}'@'{{host}}' を远加したした`},privileges:{globalTitle:`グロヌバル暩限`,databaseTitle:`デヌタベヌス暩限`,tableTitle:`テヌブル暩限`,checkAll:`すべおチェック`,uncheckAll:`すべお解陀`,categoryData:`デヌタ`,categoryStructure:`構造`,categoryAdministration:`管理`},grantTree:{globalPrivileges:`グロヌバル暩限`}},_={close:`閉じる`,noActiveConnection:`アクティブな接続がありたせん`,variableName:`倉数名`,value:`倀`,scope:{session:`セッション`,global:`グロヌバル`},findReplace:{findPlaceholder:`怜玢`,replacePlaceholder:`眮換`,found:`{{count}} 件芋぀かりたした`,noResults:`結果なし`,previous:`前ぞ`,next:`次ぞ`,close:`閉じる`,replace:`眮換`,all:`すべお`,caseSensitive:`倧文字ず小文字を区別`,regex:`正芏衚珟`,wholeWord:`単語単䜍`},flush:{title:`フラッシュ`,executed:`実行したした: {{command}}`,executeError:`{{command}} の実行䞭に゚ラヌが発生したした: {{message}}`},localHistory:{title:`ロヌカル履歎`,description:`各実行前およびテンプレヌトによる䞊曞き前に蚘録された、このタブのバヌゞョンです。`,empty:`このタブの履歎はただありたせん。`,restored:`ロヌカル履歎から゚ディタヌの内容を埩元したした`,restore:`このバヌゞョンを埩元`,chars:`{{count}} 文字`,reason:{execute:`実行前`,replaced:`䞊曞き前`,restore:`埩元前`}},processList:{title:`プロセス䞀芧`,refresh:`曎新`,autoRefresh:`自動曎新`,empty:`衚瀺するプロセスがありたせん`,kill:`匷制終了`,killProcess:`プロセスを匷制終了`,selectToKill:`匷制終了するプロセスを遞択しおください`,killed:`プロセス {{id}} を匷制終了したした`,killError:`プロセスの匷制終了䞭に゚ラヌが発生したした: {{message}}`,loadError:`プロセス䞀芧の読み蟌み䞭に゚ラヌが発生したした: {{message}}`,updatedAt:`{{time}} 曎新`,filterPlaceholder:`ナヌザヌ、ホスト、DB、SQL で絞り蟌み...`,hideIdle:`アむドルを隠す`,noMatch:`条件に䞀臎するプロセスがありたせん`,self:`自分`,selfHint:`Planche 自身のセッションです`,statementOf:`#{{id}} の実行文`,noStatement:`実行䞭の文なし`,copy:`コピヌ`,copied:`コピヌ枈み`,killConfirmTitle:`プロセス {{id}} を終了したすか?`,killConfirmDescription:`{{user}}@{{host}} のセッションが切断され、実行䞭の文は䞭断されたす。開いおいるトランザクションはロヌルバックされたす。`,stats:{total:`合蚈`,active:`アクティブ`,idle:`アむドル`,longest:`最長実行`},columns:{id:`Id`,user:`ナヌザヌ`,host:`ホスト`,db:`db`,command:`コマンド`,time:`時間`,state:`状態`,info:`情報`,action:`操䜜`}},status:{title:`サヌバヌステヌタス`,filterPlaceholder:`ステヌタス倉数を絞り蟌み...`,empty:`衚瀺するステヌタス倉数がありたせん`,loadError:`ステヌタスの読み蟌み䞭に゚ラヌが発生したした: {{message}}`},variables:{title:`サヌバヌ倉数`,filterPlaceholder:`倉数を絞り蟌み...`,empty:`衚瀺する倉数がありたせん`,loadError:`倉数の読み蟌み䞭に゚ラヌが発生したした: {{message}}`}},v={empty:{title:`Prisma スキヌマファむル (.prisma) を開いお ERD を衚瀺`,description:`モデル、enum、リレヌションが自動的に解析されたす`,openFile:`.prisma ファむルを開く`,dropHint:`たたはこの領域にファむルをドラッグドロップ`},entity:{enumBadge:`ENUM`,modelBadge:`MODEL`,columns:{value:`倀`,comment:`コメント`,type:`型`,column:`カラム`},linkBadge:`リンク`,externalTitle:`{{location}} 䞊のリンク先テヌブル実際の倖郚キヌではなく列リンク`},toolbar:{refresh:`曎新`,zoomIn:`拡倧`,zoomOut:`瞮小`,resetView:`衚瀺をリセット`,center:`䞭倮に配眮`,fitAll:`党䜓を衚瀺`,spreadAll:`すべお広げる`,resetLayout:`レむアりトをリセット`,legendOneToMany:`1:N (FK)`,tables:`テヌブル:`,relations:`リレヌション:`,columns:`カラム:`},viewer:{noServerConnection:`アクティブなサヌバヌ接続がありたせん`,loading:`{{database}} からスキヌマを読み蟌み䞭...`,loadFailed:`ERD の読み蟌みに倱敗したした`,noDatabase:`デヌタベヌスが遞択されおいたせん。`,selectDatabaseHint:`スキヌマツリヌでデヌタベヌスを遞択しおから、「ERD を衚瀺」を開いおください。`}},y={runAnyway:`それでも実行`,query:{rowsReturned:`{{count}} 行を返したした`,rowsAffected:`{{count}} 行が圱響を受けたした`,rowsReturnedLimited:`{{count}} 行を返したした{{limit}} 行に制限。さらに取埗するには LIMIT を远加しおください`,notConnected:`接続されおいたせん`,fileNotOpen:`SQLite ファむルがただ開かれおいたせん — 䞊の「ファむルを再床開く」をクリックしおアクセスを再床蚱可しおください。`,failed:`ク゚リが倱敗したした`,nothingToExecute:`実行するものがありたせん`},destructive:{title_other:`{{count}} 件の砎壊的なステヌトメントを実行したすか`,description:`次の操䜜はデヌタを完党に倉曎たたは削陀したす。この操䜜は元に戻せたせん。`,unknownTarget:`䞍明`,deleteAll:`{{target}} のすべおの行を DELETE`,updateAll:`{{target}} のすべおの行を UPDATE`,alterDrop:`{{target}} に察する DROP COLUMN/PARTITION`},readOnly:{refused:`接続 "{{label}}" は読み取り専甚です。{{count}} 件のステヌトメントがデヌタたたはスキヌマを倉曎しようずしたした。`,title:`"{{label}}" は読み取り専甚です`,description:`これらのステヌトメントはデヌタたたはスキヌマを倉曎したす。それでもこの接続で実行したすか`},transaction:{startFailed:`トランザクションを開始できたせんでした`,started:`トランザクションを開始したした — 終了時にコミットたたはロヌルバックしおください`,implicitCommit:`{{kind}} により、開いおいたトランザクションが暗黙的に COMMIT されたした`,committed:`トランザクションをコミットしたした`,rolledBack:`トランザクションをロヌルバックしたした`,commandFailed:`{{name}} に倱敗したした`,commandFailedWith:`{{name}} に倱敗したした: {{message}}`},save:{notBrowserSqlite:`ブラりザ SQLite 接続ではありたせん。`,inMemory:`むンメモリデヌタベヌス: ダりンロヌドずしおのみ゚クスポヌトできたす。`,noFileSystemAccess:`このブラりザには File System Access API がありたせんChrome/Edge のみ察応: デヌタベヌスはその堎に曞き蟌む代わりにダりンロヌドずしお゚クスポヌトされたす。`,noWritableHandle:`ファむルは曞き蟌み可胜なハンドルなしで開かれたした: ダりンロヌドずしお゚クスポヌトされたす。`},agent:{devProxyUrl:`{{url}}開発甚プロキシ経由`,notPlanche:`応答はありたしたが、Planche ゚ヌゞェントではありたせん`,unreachable:"{{url}} の Planche ゚ヌゞェントに到達できたせん — `npx planche` を実行しおください{{message}}",httpError:`HTTP ゚ラヌ: {{status}} {{statusText}}`,emptyResponse:`トンネリングサヌバヌが空の応答を返したした`,reconnected:`{{name}} に再接続したした — ゚ヌゞェントが接続を砎棄しおいたした (再起動たたはアむドルタむムアりト)。`},sample:{profileName:`サンプルショップブラりザ内`,downloadFailed:`サンプルデヌタベヌスをダりンロヌドできたせんでした{{status}}`,tabTitle:`ク゚リ 1`},sqliteFile:{tooSmall:`ファむルが小さすぎるため SQLite デヌタベヌスではありたせん。`,notSqlite:`SQLite デヌタベヌスではありたせんたたは SQLCipher などで暗号化されおいたす。16 バむトのヘッダヌが "SQLite format 3" ではありたせん。`,badPageSize:`SQLite ヘッダヌが砎損しおいたす: 無効なペヌゞサむズ {{size}}。`,unreadable:`SQLite がファむルを読み取れたせんでした: {{message}}`,pickerDescription:`SQLite デヌタベヌス`,walNotLoaded:`このデヌタベヌスは WAL モヌドですが、-wal ファむルが読み蟌たれおいたせん。保存する前に読み蟌むか、バナヌで -wal ファむルが存圚しないこずを確認しおください。`,changedOnDisk:`{{name}} は読み蟌み埌にディスク䞊で倉曎されたした他のプログラムが曞き蟌みたした。保存するずその倉曎が䞊曞きされたす — ファむルを再床開いお線集をやり盎すか、トンネリングサヌバヌを䜿甚しおください。`,walHasChanges:`{{name}}-wal に新しい倉曎がありたす。保存する前に読み蟌んでください。`,walChangedOnDisk:`{{name}}-wal は読み蟌み埌に他のプログラムによっお曞き蟌たれたした。保存する前にファむルを再床開いおください。`,writeDenied:`{{name}} ぞの曞き蟌みアクセスが蚱可されたせんでした。ブラりザのプロンプトで蚱可するか、代わりにダりンロヌドずしお゚クスポヌトしおください。`},environment:{none:`なし`,green:`緑開発`,blue:`青`,yellow:`黄ステヌゞング`,orange:`オレンゞ`,red:`赀本番`,purple:`玫`},scratchpad:{profileName:`スクラッチパッド`,namePromptTitle:`スクラッチパッドのテヌブル名`,namePromptDescription:`スクラッチパッドに {{table}} ずいう名前のテヌブルが既にありたす。別の名前を入力しおください。`,nameTaken:`テヌブル {{table}} は既に存圚したす。`},federated:{pulling:`{{connection}} から {{table}} を取埗䞭 `,capped:`{{table}}: 先頭 {{limit}} 行のみ取埗したした。`,templateLine1:`開いおいる接続のテヌブルを "接続名".database.table ずしお参照したす。文の実行前にこのスクラッチパッドぞコピヌされたす。`,templateLine2:`テヌブルごずに最倧 {{limit}} 行。ク゚リ自䜓はブラりザ内の SQLite で実行されたす。`,templateConnections:`開いおいる接続: {{names}}`,templateNone:`ただ他の接続が開いおいたせん。接続しおからここで参照しおください。`,done:`リモヌトテヌブル {{tables}} 個から {{rows}} 行をスクラッチパッドぞ取埗したした。`,pullingProgress:`{{connection}} から {{table}} を取埗䞭: {{loaded}} / {{total}} 行 `},paged:{noColumns:`{{table}} に列がありたせん。`,cancelled:`キャンセルしたした。`}},b={title:`利甚芏玄`,version:`バヌゞョン {{version}}`,englishOnly:`芏玄の党文は英語で提䟛されたす。ようこそ画面の芁玄はお䜿いの蚀語で衚瀺されたす。`},x={title:`{{kind}} は {{count}} 行に圱響したす`,titleUnknown:`{{kind}} — 圱響行数は䞍明`,description:`この文が今觊れる行を SELECT で先に読んだものです。ただ䜕も曞き蟌んでいたせん。`,previewFailed:`プレビュヌク゚リが倱敗したした: {{error}}
2
- それでも文を実行できたす。`,noRows:`䞀臎する行がありたせん — この文は䜕も倉曎したせん。`,truncated:`{{count}} 行のうち先頭 {{shown}} 行を衚瀺しおいたす。`,previewQuery:`プレビュヌク゚リ`,run:`{{kind}} を実行{{count}} 行`,runAnyway:`それでも実行`},S={app:e,language:t,settings:n,menu:r,about:i,connection:a,toolbar:o,footer:s,palette:c,welcome:l,schema:u,query:d,result:f,confirm:p,table:m,database:h,user:g,command:_,erd:v,services:y,terms:b,dryRun:x};export{i as about,e as app,_ as command,p as confirm,a as connection,h as database,S as default,x as dryRun,v as erd,s as footer,t as language,r as menu,c as palette,d as query,f as result,u as schema,y as services,n as settings,m as table,b as terms,o as toolbar,g as user,l as welcome};
@@ -1 +0,0 @@
1
- var e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:`//`,blockComment:[`/*`,`*/`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`},{open:`<`,close:`>`}],folding:{markers:{start:RegExp(`^\\s*//\\s*(?:(?:#?region\\b)|(?:<editor-fold\\b))`),end:RegExp(`^\\s*//\\s*(?:(?:#?endregion\\b)|(?:</editor-fold>))`)}}},t={defaultToken:``,tokenPostfix:`.java`,keywords:`abstract.continue.for.new.switch.assert.default.goto.package.synchronized.boolean.do.if.private.this.break.double.implements.protected.throw.byte.else.import.public.throws.case.enum.instanceof.return.transient.catch.extends.int.short.try.char.final.interface.static.void.class.finally.long.strictfp.volatile.const.float.native.super.while.true.false.yield.record.sealed.non-sealed.permits`.split(`.`),operators:`=.>.<.!.~.?.:.==.<=.>=.!=.&&.||.++.--.+.-.*./.&.|.^.%.<<.>>.>>>.+=.-=.*=./=.&=.|=.^=.%=.<<=.>>=.>>>=`.split(`.`),symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,tokenizer:{root:[[`non-sealed`,`keyword.non-sealed`],[/[a-zA-Z_$][\w$]*/,{cases:{"@keywords":{token:`keyword.$0`},"@default":`identifier`}}],{include:`@whitespace`},[/[{}()\[\]]/,`@brackets`],[/[<>](?!@symbols)/,`@brackets`],[/@symbols/,{cases:{"@operators":`delimiter`,"@default":``}}],[/@\s*[a-zA-Z_\$][\w\$]*/,`annotation`],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,`number.float`],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,`number.float`],[/0[xX](@hexdigits)[Ll]?/,`number.hex`],[/0(@octaldigits)[Ll]?/,`number.octal`],[/0[bB](@binarydigits)[Ll]?/,`number.binary`],[/(@digits)[fFdD]/,`number.float`],[/(@digits)[lL]?/,`number`],[/[;,.]/,`delimiter`],[/"([^"\\]|\\.)*$/,`string.invalid`],[/"""/,`string`,`@multistring`],[/"/,`string`,`@string`],[/'[^\\']'/,`string`],[/(')(@escapes)(')/,[`string`,`string.escape`,`string`]],[/'/,`string.invalid`]],whitespace:[[/[ \t\r\n]+/,``],[/\/\*\*(?!\/)/,`comment.doc`,`@javadoc`],[/\/\*/,`comment`,`@comment`],[/\/\/.*$/,`comment`]],comment:[[/[^\/*]+/,`comment`],[/\*\//,`comment`,`@pop`],[/[\/*]/,`comment`]],javadoc:[[/[^\/*]+/,`comment.doc`],[/\/\*/,`comment.doc.invalid`],[/\*\//,`comment.doc`,`@pop`],[/[\/*]/,`comment.doc`]],string:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"/,`string`,`@pop`]],multistring:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"""/,`string`,`@pop`],[/./,`string`]]}};export{e as conf,t as language};
@@ -1 +0,0 @@
1
- import{conf as e,language as t}from"./typescript-Ww5oHWDp.js";var n=e,r={defaultToken:`invalid`,tokenPostfix:`.js`,keywords:`break.case.catch.class.continue.const.constructor.debugger.default.delete.do.else.export.extends.false.finally.for.from.function.get.if.import.in.instanceof.let.new.null.return.set.static.super.switch.symbol.this.throw.true.try.typeof.undefined.var.void.while.with.yield.async.await.of`.split(`.`),typeKeywords:[],operators:t.operators,symbols:t.symbols,escapes:t.escapes,digits:t.digits,octaldigits:t.octaldigits,binarydigits:t.binarydigits,hexdigits:t.hexdigits,regexpctl:t.regexpctl,regexpesc:t.regexpesc,tokenizer:t.tokenizer};export{n as conf,r as language};