@adminiumjs/i18n 0.2.5 → 0.2.6

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 (430) hide show
  1. package/dist/a11y-keys.d.ts +1 -1
  2. package/dist/a11y-keys.d.ts.map +1 -1
  3. package/dist/a11y-keys.js +545 -18
  4. package/dist/a11y-keys.js.map +1 -1
  5. package/dist/format/index.d.ts +15 -3
  6. package/dist/format/index.d.ts.map +1 -1
  7. package/dist/format/index.js +15 -4
  8. package/dist/format/index.js.map +1 -1
  9. package/dist/resources/ar-eg/automations.d.ts +417 -0
  10. package/dist/resources/ar-eg/automations.d.ts.map +1 -0
  11. package/dist/resources/ar-eg/automations.js +417 -0
  12. package/dist/resources/ar-eg/automations.js.map +1 -0
  13. package/dist/resources/ar-eg/common.d.ts +23 -91
  14. package/dist/resources/ar-eg/common.d.ts.map +1 -1
  15. package/dist/resources/ar-eg/common.js +25 -93
  16. package/dist/resources/ar-eg/common.js.map +1 -1
  17. package/dist/resources/ar-eg/dataio.d.ts +260 -0
  18. package/dist/resources/ar-eg/dataio.d.ts.map +1 -0
  19. package/dist/resources/ar-eg/dataio.js +260 -0
  20. package/dist/resources/ar-eg/dataio.js.map +1 -0
  21. package/dist/resources/ar-eg/email.d.ts +824 -0
  22. package/dist/resources/ar-eg/email.d.ts.map +1 -0
  23. package/dist/resources/ar-eg/email.js +824 -0
  24. package/dist/resources/ar-eg/email.js.map +1 -0
  25. package/dist/resources/ar-eg/files.d.ts +112 -0
  26. package/dist/resources/ar-eg/files.d.ts.map +1 -0
  27. package/dist/resources/ar-eg/files.js +112 -0
  28. package/dist/resources/ar-eg/files.js.map +1 -0
  29. package/dist/resources/ar-eg/invoices.d.ts +717 -0
  30. package/dist/resources/ar-eg/invoices.d.ts.map +1 -0
  31. package/dist/resources/ar-eg/invoices.js +717 -0
  32. package/dist/resources/ar-eg/invoices.js.map +1 -0
  33. package/dist/resources/ar-eg/onboarding.d.ts +190 -0
  34. package/dist/resources/ar-eg/onboarding.d.ts.map +1 -0
  35. package/dist/resources/ar-eg/onboarding.js +190 -0
  36. package/dist/resources/ar-eg/onboarding.js.map +1 -0
  37. package/dist/resources/ar-eg/reportBuilder.d.ts +415 -0
  38. package/dist/resources/ar-eg/reportBuilder.d.ts.map +1 -0
  39. package/dist/resources/ar-eg/reportBuilder.js +415 -0
  40. package/dist/resources/ar-eg/reportBuilder.js.map +1 -0
  41. package/dist/resources/ar-eg/studio.d.ts +1760 -1117
  42. package/dist/resources/ar-eg/studio.d.ts.map +1 -1
  43. package/dist/resources/ar-eg/studio.js +1782 -1139
  44. package/dist/resources/ar-eg/studio.js.map +1 -1
  45. package/dist/resources/ar-eg/ui.d.ts +45 -9
  46. package/dist/resources/ar-eg/ui.d.ts.map +1 -1
  47. package/dist/resources/ar-eg/ui.js +47 -11
  48. package/dist/resources/ar-eg/ui.js.map +1 -1
  49. package/dist/resources/cs-cz/automations.d.ts +417 -0
  50. package/dist/resources/cs-cz/automations.d.ts.map +1 -0
  51. package/dist/resources/cs-cz/automations.js +417 -0
  52. package/dist/resources/cs-cz/automations.js.map +1 -0
  53. package/dist/resources/cs-cz/common.d.ts +23 -91
  54. package/dist/resources/cs-cz/common.d.ts.map +1 -1
  55. package/dist/resources/cs-cz/common.js +25 -93
  56. package/dist/resources/cs-cz/common.js.map +1 -1
  57. package/dist/resources/cs-cz/dataio.d.ts +260 -0
  58. package/dist/resources/cs-cz/dataio.d.ts.map +1 -0
  59. package/dist/resources/cs-cz/dataio.js +260 -0
  60. package/dist/resources/cs-cz/dataio.js.map +1 -0
  61. package/dist/resources/cs-cz/email.d.ts +824 -0
  62. package/dist/resources/cs-cz/email.d.ts.map +1 -0
  63. package/dist/resources/cs-cz/email.js +824 -0
  64. package/dist/resources/cs-cz/email.js.map +1 -0
  65. package/dist/resources/cs-cz/files.d.ts +112 -0
  66. package/dist/resources/cs-cz/files.d.ts.map +1 -0
  67. package/dist/resources/cs-cz/files.js +112 -0
  68. package/dist/resources/cs-cz/files.js.map +1 -0
  69. package/dist/resources/cs-cz/invoices.d.ts +717 -0
  70. package/dist/resources/cs-cz/invoices.d.ts.map +1 -0
  71. package/dist/resources/cs-cz/invoices.js +717 -0
  72. package/dist/resources/cs-cz/invoices.js.map +1 -0
  73. package/dist/resources/cs-cz/onboarding.d.ts +190 -0
  74. package/dist/resources/cs-cz/onboarding.d.ts.map +1 -0
  75. package/dist/resources/cs-cz/onboarding.js +190 -0
  76. package/dist/resources/cs-cz/onboarding.js.map +1 -0
  77. package/dist/resources/cs-cz/reportBuilder.d.ts +415 -0
  78. package/dist/resources/cs-cz/reportBuilder.d.ts.map +1 -0
  79. package/dist/resources/cs-cz/reportBuilder.js +415 -0
  80. package/dist/resources/cs-cz/reportBuilder.js.map +1 -0
  81. package/dist/resources/cs-cz/studio.d.ts +1759 -1116
  82. package/dist/resources/cs-cz/studio.d.ts.map +1 -1
  83. package/dist/resources/cs-cz/studio.js +1774 -1131
  84. package/dist/resources/cs-cz/studio.js.map +1 -1
  85. package/dist/resources/cs-cz/ui.d.ts +45 -9
  86. package/dist/resources/cs-cz/ui.d.ts.map +1 -1
  87. package/dist/resources/cs-cz/ui.js +47 -11
  88. package/dist/resources/cs-cz/ui.js.map +1 -1
  89. package/dist/resources/da-dk/automations.d.ts +417 -0
  90. package/dist/resources/da-dk/automations.d.ts.map +1 -0
  91. package/dist/resources/da-dk/automations.js +417 -0
  92. package/dist/resources/da-dk/automations.js.map +1 -0
  93. package/dist/resources/da-dk/common.d.ts +23 -91
  94. package/dist/resources/da-dk/common.d.ts.map +1 -1
  95. package/dist/resources/da-dk/common.js +25 -93
  96. package/dist/resources/da-dk/common.js.map +1 -1
  97. package/dist/resources/da-dk/dataio.d.ts +260 -0
  98. package/dist/resources/da-dk/dataio.d.ts.map +1 -0
  99. package/dist/resources/da-dk/dataio.js +260 -0
  100. package/dist/resources/da-dk/dataio.js.map +1 -0
  101. package/dist/resources/da-dk/email.d.ts +824 -0
  102. package/dist/resources/da-dk/email.d.ts.map +1 -0
  103. package/dist/resources/da-dk/email.js +824 -0
  104. package/dist/resources/da-dk/email.js.map +1 -0
  105. package/dist/resources/da-dk/files.d.ts +112 -0
  106. package/dist/resources/da-dk/files.d.ts.map +1 -0
  107. package/dist/resources/da-dk/files.js +112 -0
  108. package/dist/resources/da-dk/files.js.map +1 -0
  109. package/dist/resources/da-dk/invoices.d.ts +717 -0
  110. package/dist/resources/da-dk/invoices.d.ts.map +1 -0
  111. package/dist/resources/da-dk/invoices.js +717 -0
  112. package/dist/resources/da-dk/invoices.js.map +1 -0
  113. package/dist/resources/da-dk/onboarding.d.ts +190 -0
  114. package/dist/resources/da-dk/onboarding.d.ts.map +1 -0
  115. package/dist/resources/da-dk/onboarding.js +190 -0
  116. package/dist/resources/da-dk/onboarding.js.map +1 -0
  117. package/dist/resources/da-dk/reportBuilder.d.ts +415 -0
  118. package/dist/resources/da-dk/reportBuilder.d.ts.map +1 -0
  119. package/dist/resources/da-dk/reportBuilder.js +415 -0
  120. package/dist/resources/da-dk/reportBuilder.js.map +1 -0
  121. package/dist/resources/da-dk/studio.d.ts +1760 -1117
  122. package/dist/resources/da-dk/studio.d.ts.map +1 -1
  123. package/dist/resources/da-dk/studio.js +1771 -1128
  124. package/dist/resources/da-dk/studio.js.map +1 -1
  125. package/dist/resources/da-dk/ui.d.ts +45 -9
  126. package/dist/resources/da-dk/ui.d.ts.map +1 -1
  127. package/dist/resources/da-dk/ui.js +47 -11
  128. package/dist/resources/da-dk/ui.js.map +1 -1
  129. package/dist/resources/de-de/automations.d.ts +417 -0
  130. package/dist/resources/de-de/automations.d.ts.map +1 -0
  131. package/dist/resources/de-de/automations.js +417 -0
  132. package/dist/resources/de-de/automations.js.map +1 -0
  133. package/dist/resources/de-de/common.d.ts +23 -91
  134. package/dist/resources/de-de/common.d.ts.map +1 -1
  135. package/dist/resources/de-de/common.js +25 -93
  136. package/dist/resources/de-de/common.js.map +1 -1
  137. package/dist/resources/de-de/dataio.d.ts +260 -0
  138. package/dist/resources/de-de/dataio.d.ts.map +1 -0
  139. package/dist/resources/de-de/dataio.js +260 -0
  140. package/dist/resources/de-de/dataio.js.map +1 -0
  141. package/dist/resources/de-de/email.d.ts +824 -0
  142. package/dist/resources/de-de/email.d.ts.map +1 -0
  143. package/dist/resources/de-de/email.js +824 -0
  144. package/dist/resources/de-de/email.js.map +1 -0
  145. package/dist/resources/de-de/files.d.ts +112 -0
  146. package/dist/resources/de-de/files.d.ts.map +1 -0
  147. package/dist/resources/de-de/files.js +112 -0
  148. package/dist/resources/de-de/files.js.map +1 -0
  149. package/dist/resources/de-de/invoices.d.ts +717 -0
  150. package/dist/resources/de-de/invoices.d.ts.map +1 -0
  151. package/dist/resources/de-de/invoices.js +717 -0
  152. package/dist/resources/de-de/invoices.js.map +1 -0
  153. package/dist/resources/de-de/onboarding.d.ts +190 -0
  154. package/dist/resources/de-de/onboarding.d.ts.map +1 -0
  155. package/dist/resources/de-de/onboarding.js +190 -0
  156. package/dist/resources/de-de/onboarding.js.map +1 -0
  157. package/dist/resources/de-de/reportBuilder.d.ts +415 -0
  158. package/dist/resources/de-de/reportBuilder.d.ts.map +1 -0
  159. package/dist/resources/de-de/reportBuilder.js +415 -0
  160. package/dist/resources/de-de/reportBuilder.js.map +1 -0
  161. package/dist/resources/de-de/studio.d.ts +1759 -1116
  162. package/dist/resources/de-de/studio.d.ts.map +1 -1
  163. package/dist/resources/de-de/studio.js +1770 -1127
  164. package/dist/resources/de-de/studio.js.map +1 -1
  165. package/dist/resources/de-de/ui.d.ts +45 -9
  166. package/dist/resources/de-de/ui.d.ts.map +1 -1
  167. package/dist/resources/de-de/ui.js +47 -11
  168. package/dist/resources/de-de/ui.js.map +1 -1
  169. package/dist/resources/en-us/automations.d.ts +417 -0
  170. package/dist/resources/en-us/automations.d.ts.map +1 -0
  171. package/dist/resources/en-us/automations.js +417 -0
  172. package/dist/resources/en-us/automations.js.map +1 -0
  173. package/dist/resources/en-us/common.d.ts +23 -91
  174. package/dist/resources/en-us/common.d.ts.map +1 -1
  175. package/dist/resources/en-us/common.js +25 -93
  176. package/dist/resources/en-us/common.js.map +1 -1
  177. package/dist/resources/en-us/dataio.d.ts +260 -0
  178. package/dist/resources/en-us/dataio.d.ts.map +1 -0
  179. package/dist/resources/en-us/dataio.js +260 -0
  180. package/dist/resources/en-us/dataio.js.map +1 -0
  181. package/dist/resources/en-us/email.d.ts +824 -0
  182. package/dist/resources/en-us/email.d.ts.map +1 -0
  183. package/dist/resources/en-us/email.js +824 -0
  184. package/dist/resources/en-us/email.js.map +1 -0
  185. package/dist/resources/en-us/files.d.ts +112 -0
  186. package/dist/resources/en-us/files.d.ts.map +1 -0
  187. package/dist/resources/en-us/files.js +112 -0
  188. package/dist/resources/en-us/files.js.map +1 -0
  189. package/dist/resources/en-us/invoices.d.ts +717 -0
  190. package/dist/resources/en-us/invoices.d.ts.map +1 -0
  191. package/dist/resources/en-us/invoices.js +717 -0
  192. package/dist/resources/en-us/invoices.js.map +1 -0
  193. package/dist/resources/en-us/onboarding.d.ts +190 -0
  194. package/dist/resources/en-us/onboarding.d.ts.map +1 -0
  195. package/dist/resources/en-us/onboarding.js +190 -0
  196. package/dist/resources/en-us/onboarding.js.map +1 -0
  197. package/dist/resources/en-us/reportBuilder.d.ts +415 -0
  198. package/dist/resources/en-us/reportBuilder.d.ts.map +1 -0
  199. package/dist/resources/en-us/reportBuilder.js +415 -0
  200. package/dist/resources/en-us/reportBuilder.js.map +1 -0
  201. package/dist/resources/en-us/studio.d.ts +1742 -1099
  202. package/dist/resources/en-us/studio.d.ts.map +1 -1
  203. package/dist/resources/en-us/studio.js +1769 -1126
  204. package/dist/resources/en-us/studio.js.map +1 -1
  205. package/dist/resources/en-us/ui.d.ts +37 -1
  206. package/dist/resources/en-us/ui.d.ts.map +1 -1
  207. package/dist/resources/en-us/ui.js +39 -3
  208. package/dist/resources/en-us/ui.js.map +1 -1
  209. package/dist/resources/fr-fr/automations.d.ts +417 -0
  210. package/dist/resources/fr-fr/automations.d.ts.map +1 -0
  211. package/dist/resources/fr-fr/automations.js +417 -0
  212. package/dist/resources/fr-fr/automations.js.map +1 -0
  213. package/dist/resources/fr-fr/common.d.ts +23 -91
  214. package/dist/resources/fr-fr/common.d.ts.map +1 -1
  215. package/dist/resources/fr-fr/common.js +25 -93
  216. package/dist/resources/fr-fr/common.js.map +1 -1
  217. package/dist/resources/fr-fr/dataio.d.ts +260 -0
  218. package/dist/resources/fr-fr/dataio.d.ts.map +1 -0
  219. package/dist/resources/fr-fr/dataio.js +260 -0
  220. package/dist/resources/fr-fr/dataio.js.map +1 -0
  221. package/dist/resources/fr-fr/email.d.ts +824 -0
  222. package/dist/resources/fr-fr/email.d.ts.map +1 -0
  223. package/dist/resources/fr-fr/email.js +824 -0
  224. package/dist/resources/fr-fr/email.js.map +1 -0
  225. package/dist/resources/fr-fr/files.d.ts +112 -0
  226. package/dist/resources/fr-fr/files.d.ts.map +1 -0
  227. package/dist/resources/fr-fr/files.js +112 -0
  228. package/dist/resources/fr-fr/files.js.map +1 -0
  229. package/dist/resources/fr-fr/invoices.d.ts +717 -0
  230. package/dist/resources/fr-fr/invoices.d.ts.map +1 -0
  231. package/dist/resources/fr-fr/invoices.js +717 -0
  232. package/dist/resources/fr-fr/invoices.js.map +1 -0
  233. package/dist/resources/fr-fr/onboarding.d.ts +190 -0
  234. package/dist/resources/fr-fr/onboarding.d.ts.map +1 -0
  235. package/dist/resources/fr-fr/onboarding.js +190 -0
  236. package/dist/resources/fr-fr/onboarding.js.map +1 -0
  237. package/dist/resources/fr-fr/reportBuilder.d.ts +415 -0
  238. package/dist/resources/fr-fr/reportBuilder.d.ts.map +1 -0
  239. package/dist/resources/fr-fr/reportBuilder.js +415 -0
  240. package/dist/resources/fr-fr/reportBuilder.js.map +1 -0
  241. package/dist/resources/fr-fr/studio.d.ts +1759 -1116
  242. package/dist/resources/fr-fr/studio.d.ts.map +1 -1
  243. package/dist/resources/fr-fr/studio.js +1774 -1131
  244. package/dist/resources/fr-fr/studio.js.map +1 -1
  245. package/dist/resources/fr-fr/ui.d.ts +44 -8
  246. package/dist/resources/fr-fr/ui.d.ts.map +1 -1
  247. package/dist/resources/fr-fr/ui.js +46 -10
  248. package/dist/resources/fr-fr/ui.js.map +1 -1
  249. package/dist/resources/index.d.ts.map +1 -1
  250. package/dist/resources/index.js +14 -0
  251. package/dist/resources/index.js.map +1 -1
  252. package/dist/resources/lazy.d.ts.map +1 -1
  253. package/dist/resources/lazy.js +57 -1
  254. package/dist/resources/lazy.js.map +1 -1
  255. package/dist/resources/namespaces.d.ts +62 -3
  256. package/dist/resources/namespaces.d.ts.map +1 -1
  257. package/dist/resources/namespaces.js +84 -3
  258. package/dist/resources/namespaces.js.map +1 -1
  259. package/dist/resources/zh-cn/automations.d.ts +417 -0
  260. package/dist/resources/zh-cn/automations.d.ts.map +1 -0
  261. package/dist/resources/zh-cn/automations.js +417 -0
  262. package/dist/resources/zh-cn/automations.js.map +1 -0
  263. package/dist/resources/zh-cn/common.d.ts +23 -91
  264. package/dist/resources/zh-cn/common.d.ts.map +1 -1
  265. package/dist/resources/zh-cn/common.js +25 -93
  266. package/dist/resources/zh-cn/common.js.map +1 -1
  267. package/dist/resources/zh-cn/dataio.d.ts +260 -0
  268. package/dist/resources/zh-cn/dataio.d.ts.map +1 -0
  269. package/dist/resources/zh-cn/dataio.js +260 -0
  270. package/dist/resources/zh-cn/dataio.js.map +1 -0
  271. package/dist/resources/zh-cn/email.d.ts +824 -0
  272. package/dist/resources/zh-cn/email.d.ts.map +1 -0
  273. package/dist/resources/zh-cn/email.js +824 -0
  274. package/dist/resources/zh-cn/email.js.map +1 -0
  275. package/dist/resources/zh-cn/files.d.ts +112 -0
  276. package/dist/resources/zh-cn/files.d.ts.map +1 -0
  277. package/dist/resources/zh-cn/files.js +112 -0
  278. package/dist/resources/zh-cn/files.js.map +1 -0
  279. package/dist/resources/zh-cn/invoices.d.ts +717 -0
  280. package/dist/resources/zh-cn/invoices.d.ts.map +1 -0
  281. package/dist/resources/zh-cn/invoices.js +717 -0
  282. package/dist/resources/zh-cn/invoices.js.map +1 -0
  283. package/dist/resources/zh-cn/onboarding.d.ts +190 -0
  284. package/dist/resources/zh-cn/onboarding.d.ts.map +1 -0
  285. package/dist/resources/zh-cn/onboarding.js +190 -0
  286. package/dist/resources/zh-cn/onboarding.js.map +1 -0
  287. package/dist/resources/zh-cn/reportBuilder.d.ts +415 -0
  288. package/dist/resources/zh-cn/reportBuilder.d.ts.map +1 -0
  289. package/dist/resources/zh-cn/reportBuilder.js +415 -0
  290. package/dist/resources/zh-cn/reportBuilder.js.map +1 -0
  291. package/dist/resources/zh-cn/studio.d.ts +1758 -1115
  292. package/dist/resources/zh-cn/studio.d.ts.map +1 -1
  293. package/dist/resources/zh-cn/studio.js +1764 -1121
  294. package/dist/resources/zh-cn/studio.js.map +1 -1
  295. package/dist/resources/zh-cn/ui.d.ts +45 -9
  296. package/dist/resources/zh-cn/ui.d.ts.map +1 -1
  297. package/dist/resources/zh-cn/ui.js +47 -11
  298. package/dist/resources/zh-cn/ui.js.map +1 -1
  299. package/dist/resources/zh-tw/automations.d.ts +417 -0
  300. package/dist/resources/zh-tw/automations.d.ts.map +1 -0
  301. package/dist/resources/zh-tw/automations.js +417 -0
  302. package/dist/resources/zh-tw/automations.js.map +1 -0
  303. package/dist/resources/zh-tw/common.d.ts +23 -91
  304. package/dist/resources/zh-tw/common.d.ts.map +1 -1
  305. package/dist/resources/zh-tw/common.js +25 -93
  306. package/dist/resources/zh-tw/common.js.map +1 -1
  307. package/dist/resources/zh-tw/dataio.d.ts +260 -0
  308. package/dist/resources/zh-tw/dataio.d.ts.map +1 -0
  309. package/dist/resources/zh-tw/dataio.js +260 -0
  310. package/dist/resources/zh-tw/dataio.js.map +1 -0
  311. package/dist/resources/zh-tw/email.d.ts +824 -0
  312. package/dist/resources/zh-tw/email.d.ts.map +1 -0
  313. package/dist/resources/zh-tw/email.js +824 -0
  314. package/dist/resources/zh-tw/email.js.map +1 -0
  315. package/dist/resources/zh-tw/files.d.ts +112 -0
  316. package/dist/resources/zh-tw/files.d.ts.map +1 -0
  317. package/dist/resources/zh-tw/files.js +112 -0
  318. package/dist/resources/zh-tw/files.js.map +1 -0
  319. package/dist/resources/zh-tw/invoices.d.ts +717 -0
  320. package/dist/resources/zh-tw/invoices.d.ts.map +1 -0
  321. package/dist/resources/zh-tw/invoices.js +717 -0
  322. package/dist/resources/zh-tw/invoices.js.map +1 -0
  323. package/dist/resources/zh-tw/onboarding.d.ts +190 -0
  324. package/dist/resources/zh-tw/onboarding.d.ts.map +1 -0
  325. package/dist/resources/zh-tw/onboarding.js +190 -0
  326. package/dist/resources/zh-tw/onboarding.js.map +1 -0
  327. package/dist/resources/zh-tw/reportBuilder.d.ts +415 -0
  328. package/dist/resources/zh-tw/reportBuilder.d.ts.map +1 -0
  329. package/dist/resources/zh-tw/reportBuilder.js +415 -0
  330. package/dist/resources/zh-tw/reportBuilder.js.map +1 -0
  331. package/dist/resources/zh-tw/studio.d.ts +1759 -1116
  332. package/dist/resources/zh-tw/studio.d.ts.map +1 -1
  333. package/dist/resources/zh-tw/studio.js +1773 -1130
  334. package/dist/resources/zh-tw/studio.js.map +1 -1
  335. package/dist/resources/zh-tw/ui.d.ts +45 -9
  336. package/dist/resources/zh-tw/ui.d.ts.map +1 -1
  337. package/dist/resources/zh-tw/ui.js +47 -11
  338. package/dist/resources/zh-tw/ui.js.map +1 -1
  339. package/dist/review-status.js +7 -7
  340. package/dist/server.d.ts.map +1 -1
  341. package/dist/server.js +14 -1
  342. package/dist/server.js.map +1 -1
  343. package/locales/ar-EG/.meta.json +15999 -5979
  344. package/locales/ar-EG/automations.json +406 -0
  345. package/locales/ar-EG/common.json +25 -93
  346. package/locales/ar-EG/dataio.json +249 -0
  347. package/locales/ar-EG/email.json +813 -0
  348. package/locales/ar-EG/files.json +101 -0
  349. package/locales/ar-EG/invoices.json +706 -0
  350. package/locales/ar-EG/onboarding.json +179 -0
  351. package/locales/ar-EG/reportBuilder.json +404 -0
  352. package/locales/ar-EG/studio.json +1782 -1139
  353. package/locales/ar-EG/ui.json +47 -11
  354. package/locales/cs-CZ/.meta.json +16271 -6251
  355. package/locales/cs-CZ/automations.json +406 -0
  356. package/locales/cs-CZ/common.json +25 -93
  357. package/locales/cs-CZ/dataio.json +249 -0
  358. package/locales/cs-CZ/email.json +813 -0
  359. package/locales/cs-CZ/files.json +101 -0
  360. package/locales/cs-CZ/invoices.json +706 -0
  361. package/locales/cs-CZ/onboarding.json +179 -0
  362. package/locales/cs-CZ/reportBuilder.json +404 -0
  363. package/locales/cs-CZ/studio.json +1774 -1131
  364. package/locales/cs-CZ/ui.json +47 -11
  365. package/locales/da-DK/.meta.json +16245 -6225
  366. package/locales/da-DK/automations.json +406 -0
  367. package/locales/da-DK/common.json +25 -93
  368. package/locales/da-DK/dataio.json +249 -0
  369. package/locales/da-DK/email.json +813 -0
  370. package/locales/da-DK/files.json +101 -0
  371. package/locales/da-DK/invoices.json +706 -0
  372. package/locales/da-DK/onboarding.json +179 -0
  373. package/locales/da-DK/reportBuilder.json +404 -0
  374. package/locales/da-DK/studio.json +1771 -1128
  375. package/locales/da-DK/ui.json +47 -11
  376. package/locales/de-DE/.meta.json +16094 -6074
  377. package/locales/de-DE/automations.json +406 -0
  378. package/locales/de-DE/common.json +25 -93
  379. package/locales/de-DE/dataio.json +249 -0
  380. package/locales/de-DE/email.json +813 -0
  381. package/locales/de-DE/files.json +101 -0
  382. package/locales/de-DE/invoices.json +706 -0
  383. package/locales/de-DE/onboarding.json +179 -0
  384. package/locales/de-DE/reportBuilder.json +404 -0
  385. package/locales/de-DE/studio.json +1770 -1127
  386. package/locales/de-DE/ui.json +47 -11
  387. package/locales/en-US/automations.json +406 -0
  388. package/locales/en-US/common.json +25 -93
  389. package/locales/en-US/dataio.json +249 -0
  390. package/locales/en-US/email.json +813 -0
  391. package/locales/en-US/files.json +101 -0
  392. package/locales/en-US/invoices.json +706 -0
  393. package/locales/en-US/onboarding.json +179 -0
  394. package/locales/en-US/reportBuilder.json +404 -0
  395. package/locales/en-US/studio.json +1769 -1126
  396. package/locales/en-US/ui.json +39 -3
  397. package/locales/fr-FR/.meta.json +14117 -4097
  398. package/locales/fr-FR/automations.json +406 -0
  399. package/locales/fr-FR/common.json +25 -93
  400. package/locales/fr-FR/dataio.json +249 -0
  401. package/locales/fr-FR/email.json +813 -0
  402. package/locales/fr-FR/files.json +101 -0
  403. package/locales/fr-FR/invoices.json +706 -0
  404. package/locales/fr-FR/onboarding.json +179 -0
  405. package/locales/fr-FR/reportBuilder.json +404 -0
  406. package/locales/fr-FR/studio.json +1774 -1131
  407. package/locales/fr-FR/ui.json +46 -10
  408. package/locales/zh-CN/.meta.json +16223 -6203
  409. package/locales/zh-CN/automations.json +406 -0
  410. package/locales/zh-CN/common.json +25 -93
  411. package/locales/zh-CN/dataio.json +249 -0
  412. package/locales/zh-CN/email.json +813 -0
  413. package/locales/zh-CN/files.json +101 -0
  414. package/locales/zh-CN/invoices.json +706 -0
  415. package/locales/zh-CN/onboarding.json +179 -0
  416. package/locales/zh-CN/reportBuilder.json +404 -0
  417. package/locales/zh-CN/studio.json +1764 -1121
  418. package/locales/zh-CN/ui.json +47 -11
  419. package/locales/zh-TW/.meta.json +15999 -5979
  420. package/locales/zh-TW/automations.json +406 -0
  421. package/locales/zh-TW/common.json +25 -93
  422. package/locales/zh-TW/dataio.json +249 -0
  423. package/locales/zh-TW/email.json +813 -0
  424. package/locales/zh-TW/files.json +101 -0
  425. package/locales/zh-TW/invoices.json +706 -0
  426. package/locales/zh-TW/onboarding.json +179 -0
  427. package/locales/zh-TW/reportBuilder.json +404 -0
  428. package/locales/zh-TW/studio.json +1773 -1130
  429. package/locales/zh-TW/ui.json +47 -11
  430. package/package.json +1 -1
@@ -9,659 +9,835 @@
9
9
  * scripts/gen-resources.mjs.
10
10
  */
11
11
  export default {
12
- "title": "Studio",
13
- "settings": {
14
- "title": "設定",
15
- "workspaceSection": "工作區",
16
- "globalDefaultsNav": "全域預設值"
17
- },
18
- "source": {
19
- "engine": {
20
- "label": "資料庫引擎",
21
- "postgres": "PostgreSQL",
22
- "mysql": "MySQL / MariaDB",
23
- "sqlite": "SQLite"
12
+ "addOns": {
13
+ "browse": {
14
+ "all": "全部",
15
+ "bundled": "Included",
16
+ "categories": "分類",
17
+ "discard": "Discard",
18
+ "download": "Download",
19
+ "emptyBody": "This build shipped none, and the online catalogue is off.",
20
+ "emptyOnlineBody": "線上目錄已開啟,但上次檢查沒有找到內容。試試檢查更新。",
21
+ "emptyTitle": "No add-ons available",
22
+ "install": "Install",
23
+ "noMatchBody": "沒有外掛符合該搜尋與分類。",
24
+ "noMatchTitle": "沒有相符項目",
25
+ "offline": "Showing the add-ons that came with this build. Browsing online is switched off, and nothing here has contacted the internet.",
26
+ "online": "Includes add-ons from the online catalogue. Checking for newer versions is a separate action.",
27
+ "refresh": "Check for newer",
28
+ "search": "搜尋外掛",
29
+ "title": "Available",
30
+ "toggle": "Browse the online catalogue",
31
+ "upgrade": "v{version} available",
32
+ "upgradeAction": "Upgrade"
24
33
  },
25
- "format": {
26
- "label": "綱要格式",
27
- "helper": "除非自動偵測判斷錯誤,否則保持自動偵測即可。",
28
- "auto": "自動偵測",
29
- "sql": "SQL DDL / pg_dump",
30
- "prisma": "Prisma 綱要",
31
- "drizzle": "Drizzle ORM",
32
- "typeorm": "TypeORM 實體",
33
- "sequelize": "Sequelize 模型",
34
- "rails": "Rails schema.rb",
35
- "django": "Django models.py",
36
- "json": "Adminium JSON"
34
+ "card": {
35
+ "needsApiKey": "需要 API 金鑰",
36
+ "needsOauth": "透過 OAuth 連接"
37
37
  },
38
- "sqlite": {
39
- "file": "資料庫檔案路徑",
40
- "helper": "SQLite 是檔案而非伺服器——請填寫執行 Adminium 的機器上的絕對路徑。"
38
+ "category": {
39
+ "artwork": "美術",
40
+ "data": "資料",
41
+ "delivery": "配送",
42
+ "email": "郵件",
43
+ "payments": "付款"
41
44
  },
42
- "file": {
43
- "detectedAs": "偵測到:{format}",
44
- "moreWarnings": "還有 {count} 則警告——完整清單會在分析步驟顯示。",
45
- "dropTitle": "將結構描述檔案拖放到此處,或瀏覽選取",
46
- "dropHint": "SQL DDL / pg_dump、Prisma、Drizzle、TypeORM、Sequelize、Rails schema.rb、Django 模型、Adminium JSON",
47
- "pitch": "無需資料庫連線——我們會解析你的結構描述檔案並建立相同的儀表板。",
48
- "parsing": "正在讀取上傳的結構描述檔案…",
49
- "tables": "個資料表",
50
- "columns": "",
51
- "warnings": "警告",
52
- "errorTitle": "無法解析該檔案",
53
- "parseFailed": "我們無法解析該檔案。如果自動偵測判斷錯誤,請明確選擇格式後重試。",
54
- "unsupported": "無法辨識該格式——支援 SQL DDL、Prisma、Drizzle、TypeORM、Sequelize、Rails schema.rb、Django 模型與 Adminium JSON。請明確選擇一種後重試。",
55
- "requestFailed": "上傳失敗——請檢查網路連線後重試。"
45
+ "confirm": {
46
+ "cancel": "Cancel",
47
+ "close": "Close",
48
+ "discard": "Discard",
49
+ "discardBody": "The downloaded files are deleted. Nothing was installed, so nothing else changes — you can download it again whenever you like.",
50
+ "discardTitle": "Discard this download",
51
+ "disconnect": "Disconnect",
52
+ "disconnectBody": "Its keys are deleted and it stops making calls. Every table and every row it created stays exactly as it is, and you can reconnect at any time.",
53
+ "disconnectTitle": "Disconnect this add-on",
54
+ "uninstall": "Uninstall",
55
+ "uninstallBody": "Its keys are deleted and its files are removed from this server. Every table and every row it created stays exactly as it is. You can install it again later.",
56
+ "uninstallTitle": "Uninstall this add-on"
56
57
  },
57
- "title": "連接你的資料庫",
58
- "subtitle": " Adminium 指向資料庫,我們會根據其結構描述產生管理儀表板。",
59
- "name": "連線名稱",
60
- "namePlaceholder": "正式環境 Postgres",
61
- "modeLabel": "來源輸入方式",
62
- "mode": {
63
- "dsn": "連線字串",
64
- "fields": "逐項欄位",
65
- "file": "結構描述檔案"
58
+ "connect": {
59
+ "apiKey": "API key",
60
+ "submit": "Connect"
66
61
  },
67
- "dsn": {
68
- "label": "連線字串",
69
- "helper": "postgres://user:password@host:5432/database——mysql:// 與 sqlite: 也可使用。",
70
- "incomplete": "請補齊主機與資料庫,例如 postgres://user@host:5432/db",
71
- "invalidScheme": "無法辨識的協定——應為 postgres://、mysql://、mariadb:// 或 sqlite:",
72
- "quickFill": "快速填入:"
62
+ "consent": {
63
+ "cancel": "Cancel",
64
+ "close": "Close",
65
+ "confirm": "Install",
66
+ "hosts": "Attach to",
67
+ "loading": "Working out what this would do…",
68
+ "subtitle": "What this add-on will do, before it can do it.",
69
+ "title": "Install {name}"
73
70
  },
74
- "fields": {
75
- "host": "主機",
76
- "port": "連接埠",
77
- "database": "資料庫",
78
- "user": "使用者",
79
- "password": "密碼",
80
- "ssl": "SSL 模式",
81
- "preview": "連線字串預覽:"
71
+ "error": "Something went wrong",
72
+ "installed": {
73
+ "connected": "Connected",
74
+ "disconnect": "Disconnect",
75
+ "egress": "May contact: {hosts}",
76
+ "emptyBody": "Install an add-on above and it will appear here with its hosts and connection.",
77
+ "emptyTitle": "Nothing installed yet",
78
+ "notConnected": "Not connected",
79
+ "off": "off",
80
+ "on": "on",
81
+ "title": "Installed",
82
+ "uninstall": "Uninstall"
82
83
  },
83
- "readOnlyRole": {
84
- "title": "使用唯讀角色",
85
- "body": "Adminium 絕不會寫入你的資料庫——設定過程僅使用結構描述中繼資料。建議使用僅具 SELECT 權限的專用使用者;Adminium 自身資料表的存放位置可在中繼資料儲存步驟中決定。"
84
+ "job": {
85
+ "body": "Fetching and verifying. Nothing is installed until you say so.",
86
+ "failed": "The download did not finish. Nothing was installed.",
87
+ "title": "Downloading"
88
+ },
89
+ "plan": {
90
+ "blocked": "This cannot be installed here",
91
+ "needsColumns": "This add-on needs columns you do not have",
92
+ "needsColumnsBody": "Adminium will not add columns to tables you already own. Add them yourself, then install.",
93
+ "noData": "This add-on reads and writes no tables of its own.",
94
+ "reuse": "This add-on will use tables you already have:",
95
+ "willCreate": "This will create tables in your database",
96
+ "willCreateBody": "Installing creates these tables. Uninstalling later leaves them, and their data, alone."
97
+ },
98
+ "settings": {
99
+ "badJson": "這不是有效的 JSON,因此未儲存。",
100
+ "save": "儲存設定",
101
+ "title": "設定"
102
+ },
103
+ "sideload": {
104
+ "file": "Package file (.tgz)",
105
+ "hint": "For a server with no internet. It is checked exactly as a download would be, so it needs the hash that came with it.",
106
+ "key": "Add-on key",
107
+ "sha": "Integrity (sha512-…)",
108
+ "shaHint": "The `integrity` value `npm pack --json` printed. The upload is refused if the bytes do not match.",
109
+ "submit": "Upload",
110
+ "title": "Upload a package",
111
+ "version": "Version"
112
+ },
113
+ "subtitle": "Extra capabilities you can add to your apps — shipping, artwork, data. Each one says what it needs before you install it.",
114
+ "title": "Add-ons",
115
+ "upgradeNote": "Upgrading keeps the hosts an add-on is attached to and the connection it already has.",
116
+ "veto": {
117
+ "body": "The setting is saved, but network features are off for this server and that wins. Downloaded add-ons still work, and you can still upload one yourself.",
118
+ "title": "This deployment cannot browse online"
86
119
  }
87
120
  },
88
121
  "capability": {
122
+ "importNoLiveHealth": "沒有即時資料庫連線——此來源無法進行健康檢查與綱要漂移偵測。",
123
+ "importNoRowCounts": "綱要檔案不含資料列數——資料表清單會顯示 — 而不是虛構的數字。",
89
124
  "mysqlApproxRows": "MySQL 的資料列數為儲存引擎估計值(誤差可達 ±40%),以 ≈ 顯示。",
90
125
  "mysqlFkEnum": "MySQL 的外鍵/列舉中繼資料較弱:MyISAM 資料表不宣告外鍵,列舉是逐欄的 enum(…) 型別,CHECK 條件約束需要 MySQL 8.0.16+ / MariaDB 10.2+。",
91
- "sqliteCheckEnums": "SQLite 沒有原生列舉型別——列舉由 CHECK (col IN (…)) 條件約束合成。",
92
- "sqliteNoComments": "SQLite 不支援欄位註解——請在綱要重對應編輯器中新增標籤。",
93
- "importNoRowCounts": "綱要檔案不含資料列數——資料表清單會顯示 — 而不是虛構的數字。",
94
- "importNoLiveHealth": "沒有即時資料庫連線——此來源無法進行健康檢查與綱要漂移偵測。",
95
- "rowsUnavailable": "綱要檔案沒有即時資料庫——在連接資料庫之前,資料列數未知。",
96
- "rowsRunAnalyze": "尚無估計值——請在資料庫上執行 ANALYZE 以取得資料列數。",
126
+ "rowsApproximate": "儲存引擎估計值——在 InnoDB 上誤差可達 ±40%。",
97
127
  "rowsNoEstimate": "引擎未回報此資料表的估計值。",
98
- "rowsApproximate": "儲存引擎估計值——在 InnoDB 上誤差可達 ±40%。"
99
- },
100
- "test": {
101
- "log": {
102
- "moreWarnings": "還有 {count} 則解析器警告",
103
- "connecting": "正在建立安全連線…",
104
- "connected": "已連線({latency} 毫秒)· 唯讀內省",
105
- "connectFailed": "連線失敗。",
106
- "readingSchema": "正在讀取結構描述:public",
107
- "readingFile": "正在讀取上傳的結構描述檔案…",
108
- "parsingFile": "正在解析 {file}…",
109
- "detected": "偵測到 {tables} 個資料表 · {columns} 欄",
110
- "found": "共找到 {tables} 個資料表 · {columns} 欄",
111
- "mapping": "正在對應欄類型 → 輸入元件",
112
- "relations": "正在偵測關聯…",
113
- "piiScan": "正在掃描 PII 欄…",
114
- "piiDone": "PII 掃描完成——預設遮罩 {count} 欄",
115
- "piiDoneUnknown": "PII 掃描完成",
116
- "jobFailed": "內省失敗。",
117
- "networkFailed": "要求失敗——請檢查網路連線後重試。",
118
- "ready": "就緒"
119
- },
120
- "title": "正在分析你的結構描述",
121
- "subtitle": "正在內省資料表、欄與關聯。這需要幾秒鐘。",
122
- "trust": "我們只讀取你的結構描述與資料,不會進行任何修改。",
123
- "errorTitle": "連線失敗",
124
- "retry": "重試",
125
- "logLabel": "內省記錄",
126
- "hint": {
127
- "auth": "驗證失敗——請檢查 DSN 中的使用者名稱與密碼。",
128
- "hostUnreachable": "無法連上主機——請檢查主機名稱與連接埠,並確認資料庫接受來自本機的連線(將我們的 IP 加入允許清單)。",
129
- "metaPlacement": "該資料來源無法承載 Adminium 的中繼資料表——請改用獨立的中繼資料庫繼續。",
130
- "permission": "該角色已連線,但缺少讀取結構描述的權限——請為內省角色授予該結構描述的 USAGE 權限。",
131
- "timeout": "資料庫未及時回應——請檢查網路路徑與負載後重試。",
132
- "tls": "TLS 交涉失敗——請嘗試 sslmode=require,或上傳伺服器所需的 CA 憑證。",
133
- "unknown": "連線失敗——請核對 DSN 後重試。"
134
- }
135
- },
136
- "tables": {
137
- "importNoCounts": "綱要檔案不含資料列數——在連接即時資料庫之前,此欄會顯示 —。",
138
- "title": "選擇資料表",
139
- "subtitle": "選擇要納入的資料表。之後可隨時變更。",
140
- "search": "篩選資料表…",
141
- "listLabel": "可納入的資料表",
142
- "emptyFilter": "沒有符合篩選條件的資料表。",
143
- "pii": "PII",
144
- "highVolume": "高資料量",
145
- "highVolumeNote": "超過 100,000 列的資料表預設不勾選——維運類資料表很少適合放進儀表板。",
146
- "joinHidden": "{count} 個關聯/系統資料表已預先隱藏——它們仍支撐多對多關聯。"
128
+ "rowsRunAnalyze": "尚無估計值——請在資料庫上執行 ANALYZE 以取得資料列數。",
129
+ "rowsUnavailable": "綱要檔案沒有即時資料庫——在連接資料庫之前,資料列數未知。",
130
+ "sqliteCheckEnums": "SQLite 沒有原生列舉型別——列舉由 CHECK (col IN (…)) 條件約束合成。",
131
+ "sqliteNoComments": "SQLite 不支援欄位註解——請在綱要重對應編輯器中新增標籤。"
147
132
  },
148
- "hub": {
149
- "title": "資料連線",
150
- "subtitle": "{total, plural, other {# 個連線中 {healthy, number} 個}}狀態正常",
151
- "connectNew": "新增連線",
152
- "stats": {
153
- "connections": "連線",
154
- "healthy": "正常",
155
- "tables": "已包含的資料表",
156
- "pages": "已產生的頁面"
157
- },
158
- "status": {
159
- "connected": "已連線",
160
- "error": "錯誤",
161
- "unconfigured": "草稿",
162
- "testing": "測試中…",
163
- "paused": "已暫停"
164
- },
165
- "card": {
166
- "readOnly": "唯讀",
167
- "tables": "資料表",
168
- "pages": "頁面",
169
- "latency": "延遲",
170
- "latencyMs": "{latency, number} 毫秒",
171
- "lastIntrospected": "上次內省",
172
- "never": "從未",
173
- "timezone": "時區",
174
- "timezoneGuessed": "來自此伺服器",
175
- "paused": "Adminium 不會連線至此資料庫。恢復後,其頁面會重新載入資料。",
176
- "pausedSince": "已於{when}暫停 — Adminium 不會連線至此資料庫。恢復後,其頁面會重新載入資料。"
177
- },
178
- "action": {
179
- "test": "測試",
180
- "reintrospect": "重新內省",
181
- "reintrospectFile": "結構檔案來源沒有線上資料庫——請改為重新上傳檔案。",
182
- "remap": "重新對應結構",
183
- "delete": "刪除",
184
- "regional": "區域設定",
185
- "pause": "暫停",
186
- "resume": "恢復",
187
- "pausedHint": "此連線已暫停 — 恢復後才能存取資料庫。",
188
- "rename": "重新命名"
189
- },
190
- "regional": {
191
- "title": "區域設定",
192
- "intro": "這些設定描述該資料庫所屬的業務,而非閱讀者本人。由 Adminium 提供服務的應用程式會從這裡讀取。",
193
- "timezone": "時區",
194
- "timezoneHelper": "日期和時間以此時區顯示。若未設定,由 Adminium 代管的應用會退回 UTC,並在畫面上說明。",
195
- "guessedTitle": "此時區來自伺服器",
196
- "guessedBody": "Adminium 從其執行所在的機器取得該時區,並非有人在此選擇。儲存即可確認,或選擇該商家實際所在的時區。",
197
- "timezonePlaceholder": "地區/城市",
198
- "currency": "貨幣",
199
- "currencyHelper": "用於格式化金額。選填——未設定僅影響格式。",
200
- "currencyPlaceholder": "ISO-4217 代碼",
201
- "notSet": "未設定",
202
- "noMatch": "沒有相符的時區",
203
- "noMatchCurrency": "沒有相符的貨幣",
204
- "save": "儲存",
205
- "failed": "無法儲存區域設定",
206
- "saved": "區域設定已更新"
207
- },
208
- "test": {
209
- "ok": "連線正常 · {latency, number} 毫秒",
210
- "failed": "連線測試失敗"
133
+ "design": {
134
+ "adopt": {
135
+ "action": "加入我的應用程式",
136
+ "done": "新建 {created} 個頁面,更新 {updated} 個,{unchanged} 個已是最新。",
137
+ "everything": "此連線已顯示所有資料表,因此無需再包含任何內容。",
138
+ "forbidden": "你的角色可以修改結構,但不能產生頁面。請讓擁有連線管理權限的管理員把這些資料表加入應用程式。",
139
+ "grants": "不會自動給任何角色授權——請在「設定 → 角色」中授予。",
140
+ "offer": "新資料表在有頁面之前不會起任何作用。要把 {tables} 加入你的應用程式嗎?",
141
+ "skippedEdited": "因為你編輯過而保持原樣:{pages}。"
142
+ },
143
+ "apply": "套用",
144
+ "ceiling": {
145
+ "authorise": "授權此次重寫",
146
+ "body": "{table} 有超過 {rows} 列——超出 Adminium 自行重寫的規模。只有超級管理員可以授權,且重寫期間該資料表將被鎖定。",
147
+ "hint": "請完全按照上方顯示的名稱輸入資料表名稱。",
148
+ "notYours": "{table} 有超過 {rows} 列。只有超級管理員能授權這麼大的重寫——請聯繫一位,或在維護時段用你自己的工具執行。",
149
+ "prompt": "再次輸入 {table} 以授權重寫"
211
150
  },
212
- "introspect": {
213
- "noChanges": "結構沒有變更——未建立新快照。",
214
- "updated": "已重新內省結構",
215
- "masksProposed": "{count, plural, other {建議對 # 個欄位進行遮罩}}——請在重新對應編輯器中檢視。",
216
- "failed": "內省失敗,請再試一次。"
151
+ "column": {
152
+ "help": "這些設定是什麼意思?",
153
+ "key": "主鍵",
154
+ "length": "長度",
155
+ "link": "連結到",
156
+ "linkHelp": "將此連結到另一個資料表中的一列。",
157
+ "linkTypeNote": "型別已與連結資料表的主鍵相符。",
158
+ "name": "名稱",
159
+ "namePlaceholder": "client_id",
160
+ "noLink": "無",
161
+ "onDelete": "當連結的資料列被刪除時",
162
+ "precision": "精確度",
163
+ "primaryKey": "主鍵",
164
+ "remove": "移除 {name}",
165
+ "required": "必填",
166
+ "type": "類型",
167
+ "unique": "唯一"
217
168
  },
218
- "delete": {
219
- "title": "刪除連線",
220
- "body": "此操作會刪除「{name}」及其產生的頁面。您的資料庫本身不會被更動。",
221
- "prompt": "輸入 {name} 以確認",
222
- "confirm": "刪除連線",
169
+ "confirm": {
170
+ "body": "此變更會捨棄資料或移除物件。Adminium 無法復原。",
223
171
  "cancel": "取消",
224
172
  "close": "關閉",
225
- "success": "已刪除連線「{name}」",
226
- "failed": "無法刪除連線,請再試一次。"
173
+ "confirm": "套用變更",
174
+ "prompt": "輸入 {word} 以確認",
175
+ "title": "套用破壞性變更"
227
176
  },
177
+ "designer": "資料表設計工具",
178
+ "discard": "捨棄變更",
179
+ "dropping": "已標記為刪除",
228
180
  "empty": {
229
- "title": "尚無資料來源",
230
- "body": "連接資料庫後,Adminium 會根據其結構產生您的管理面板。",
231
- "cta": "連接資料庫"
181
+ "body": "建立一個資料表,或挑一個來編輯。在你檢視並套用這些陳述式之前,不會有任何內容寫入你的資料庫。",
182
+ "title": "設計你的結構描述"
183
+ },
184
+ "error": {
185
+ "atColumn": "第 {n} 欄,{field}",
186
+ "atTable": "資料表 {field}",
187
+ "empty": "需要填寫名稱。",
188
+ "identifier": "請使用小寫字母、數字與底線,並以字母開頭。",
189
+ "tooLong": "太長 — {dialect} 允許 {max} 個字元。"
190
+ },
191
+ "existing": "既有資料表",
192
+ "hazard": {
193
+ "irreversible": "無法復原",
194
+ "locking": "會持有鎖定",
195
+ "lossy": "會捨棄資料",
196
+ "refused": "已拒絕",
197
+ "rewrite": "會重寫資料表",
198
+ "safe": "安全"
199
+ },
200
+ "help": {
201
+ "close": "關閉",
202
+ "link": {
203
+ "example": "一筆預約連結到一位客戶。Adminium 接著會在預約上顯示該客戶,也會在客戶上顯示他的預約。",
204
+ "term": "連結到另一個資料表",
205
+ "what": "把這一列連結到另一個資料表中的一列,並要求資料庫守住這層關聯——你無法指向一個不存在的東西。"
206
+ },
207
+ "primaryKey": {
208
+ "example": "沒有主鍵,Adminium 可以列出資料列,但無法編輯或刪除其中任何一列。",
209
+ "term": "主鍵",
210
+ "what": "用來辨識每一列的欄位——Adminium 靠它分辨這一列和那一列。每個資料表都應該剛好有一個,而且幾乎總是系統為你建立的 \"id\" 欄位。"
211
+ },
212
+ "required": {
213
+ "example": "訂單一定要有客戶,所以那個欄位是必填。送貨備註可有可無,所以不是。",
214
+ "term": "必填",
215
+ "what": "這個欄位一定要填。只要它是空的,該資料列就無法儲存。"
216
+ },
217
+ "subtitle": "用白話說明每一項設定,以及它會為使用你應用程式的人帶來什麼改變。",
218
+ "title": "這些欄位是什麼意思",
219
+ "type": {
220
+ "example": "電話號碼通常是文字而不是數字——數字會把開頭的 0 去掉。",
221
+ "term": "類型",
222
+ "what": "這個欄位存放哪一種資訊——文字、整數、金額、日期,或是/否的答案。選對了,Adminium 才能顯示日期選擇器而不是文字方塊,也才能把一整欄金額加總起來。"
223
+ },
224
+ "unique": {
225
+ "example": "兩位客戶不該共用同一個電子郵件地址——把它標為唯一,他們就不能了。",
226
+ "term": "唯一",
227
+ "what": "任何兩個資料列都不能存放相同的值。資料庫會拒絕第二個。"
228
+ }
232
229
  },
233
- "hostedApps": "託管應用程式",
234
- "subtitlePaused": "{total, plural, other {# 個連線中 {healthy, number} 個}}狀態正常 · {paused, number} 個已暫停",
235
- "pause": {
236
- "title": "暫停此連線?",
237
- "body": "Adminium 將不再開啟到「{name}」的任何連線。在你恢復之前,{pages, plural, other {它的 # 個頁面}}、排程報表與託管應用程式都會停止載入資料。",
238
- "keeps": "不會刪除任何內容 — 連線、它的結構和{pages, plural, other {它的 # 個頁面}}都會保留,一鍵即可恢復。",
239
- "confirm": "暫停連線",
240
- "pausedToast": "已暫停連線「{name}」",
241
- "resumedToast": "已恢復連線「{name}」",
242
- "pauseFailed": "無法暫停該連線。請重試。",
243
- "resumeFailed": "無法恢復該連線。請重試。"
230
+ "keepTable": "保留 {table}",
231
+ "newTable": "新增資料表",
232
+ "onDelete": {
233
+ "cascade": "一併刪除此列",
234
+ "restrict": "阻止刪除",
235
+ "setNull": "將此欄位留空"
244
236
  },
245
- "rename": {
246
- "title": "重新命名連線",
247
- "label": "名稱",
248
- "helper": "該資料庫在整個 Adminium 中的顯示名稱——卡片、其頁面上方的側邊欄群組,以及每個提供它的選擇器。資料庫本身不會被重新命名。",
249
- "save": "重新命名",
250
- "saved": "連線已重新命名",
251
- "failed": "無法重新命名該連線"
252
- }
253
- },
254
- "settingsHub": {
255
- "title": "工作區設定",
256
- "subtitle": "此工作區的識別、安全性與危險操作。",
257
- "save": "儲存變更",
258
- "saved": "工作區設定已更新",
259
- "saveFailed": "無法儲存工作區設定,請再試一次。",
260
- "superAdminOnlyTitle": "需要超級管理員",
261
- "superAdminOnly": "只有超級管理員才能變更工作區識別與安全性設定。",
262
- "identity": {
263
- "heading": "工作區識別",
264
- "appName": {
265
- "label": "應用程式名稱",
266
- "helper": "顯示在側邊欄、瀏覽器標題與電子郵件中。",
267
- "error": "請輸入不超過 60 個字元的名稱。"
268
- },
269
- "logo": {
270
- "label": "標誌",
271
- "drop": "將圖片拖放到此處",
272
- "helper": "支援 PNG、JPEG、WebP、GIF 或 SVG,上限 1 MB。將在所有位置取代內建標誌。",
273
- "upload": "上傳標誌",
274
- "replace": "更換標誌",
275
- "remove": "移除",
276
- "uploaded": "標誌已更新",
277
- "removed": "標誌已移除",
278
- "tooLarge": "此圖片大於 1 MB。",
279
- "badType": "請選擇 PNG、JPEG、WebP、GIF 或 SVG 圖片。",
280
- "undo": "復原"
281
- },
282
- "showVersion": {
283
- "label": "側邊欄中的版本",
284
- "helper": "標誌旁的版本編號。關閉後將隱藏您執行的版本。"
285
- }
286
- },
287
- "security": {
288
- "heading": "安全性",
289
- "require2fa": {
290
- "label": "強制雙重驗證",
291
- "desc": "每位成員都必須啟用雙重驗證才能登入。",
292
- "note": "這是提示而非強制:未啟用雙重驗證的成員會被導向設定,之後也無法再關閉,但登入不會被阻擋,API 金鑰也不受影響。"
293
- },
294
- "allowSignup": {
295
- "label": "允許自行註冊",
296
- "desc": "任何人都可以建立帳戶——關閉後此工作區僅限邀請。"
297
- },
298
- "sessionTtl": {
299
- "label": "工作階段有效期(小時)",
300
- "error": "介於 {min, number} 到 {max, number} 小時之間。"
301
- },
302
- "passwordMin": {
303
- "label": "密碼最小長度",
304
- "error": "介於 {min, number} 到 {max, number} 個字元之間。"
305
- }
306
- },
307
- "email": {
308
- "heading": "電子郵件 (SMTP)",
309
- "unconfigured": "尚未設定郵件伺服器,因此 Adminium 無法寄送密碼重設、使用者邀請或排程報表。",
310
- "host": {
311
- "label": "SMTP 主機",
312
- "error": "只能填寫主機名稱或 IP 位址 — 不含通訊協定、連接埠或憑證。"
313
- },
314
- "port": {
315
- "label": "連接埠",
316
- "error": "介於 {min, number} 與 {max, number} 之間。"
317
- },
318
- "user": {
319
- "label": "使用者名稱",
320
- "helper": "若中繼不需驗證,請留空。"
321
- },
322
- "pass": {
323
- "label": "密碼",
324
- "helper": "加密儲存且不會再顯示。留空即保留目前的密碼。",
325
- "error": "此使用者名稱需要密碼。"
326
- },
327
- "from": {
328
- "label": "寄件者位址",
329
- "helper": "可只填位址,或在位址前加上顯示名稱。",
330
- "error": "請輸入電子郵件位址。"
331
- },
332
- "secure": {
333
- "label": "隱含式 TLS",
334
- "helper": "連接埠 465 請開啟。關閉時以明文開始並透過 STARTTLS 升級,這正是連接埠 587 所預期的。"
335
- },
336
- "remove": "移除郵件伺服器",
337
- "review": {
338
- "removed": "已移除",
339
- "password": "已取代"
340
- }
237
+ "plan": "檢視變更",
238
+ "result": {
239
+ "applied": "已套用。Adminium 已重新讀取你的結構。",
240
+ "failed": "未套用任何變更——你的資料庫沒有變化。{error}",
241
+ "partial": "部分套用:{total} 個步驟中已執行 {done} 個。再次套用相同的變更即可完成。",
242
+ "repaired": "重新命名已同步到 {pages, plural, other {# 個頁面}}、{grants, plural, other {# 項角色授權}}和 {overrides, plural, other {# 項結構覆寫}}。"
341
243
  },
342
244
  "review": {
343
- "title": "儲存工作區設定",
344
- "subtitle": "儲存前請確認您的變更。",
345
- "confirm": "儲存變更",
346
- "cancel": "取消",
347
- "close": "關閉",
348
- "on": "開",
349
- "off": "關",
350
- "shown": "顯示",
351
- "hidden": "隱藏",
352
- "change": "{before} → {after}"
353
- },
354
- "defaultsCard": {
355
- "heading": "外觀與語言預設值",
356
- "body": "整個工作區的主題、強調色、密度與語言設定位於全域預設值。",
357
- "cta": "開啟全域預設值"
358
- },
359
- "danger": {
360
- "heading": "危險區域",
361
- "subtitle": "不可逆的操作。",
362
- "empty": "沒有可刪除的項目——尚無連線。",
363
- "deleteDesc": "刪除該連線及其產生的頁面。您的資料庫不會被更動。此操作無法復原。",
364
- "deleteCta": "刪除連線"
365
- },
366
- "aiCard": {
367
- "heading": "AI 增強",
368
- "body": "設定 AI 供應商(或複製貼上往返)以增強標籤、分組與關聯。",
369
- "cta": "開啟 AI 設定"
370
- },
371
- "pagesCard": {
372
- "heading": "頁面",
373
- "body": "新增、編輯與刪除頁面,變更每個頁面的內容,並重新排列側邊欄。",
374
- "cta": "管理頁面"
245
+ "noChanges": "尚無結構描述變更。",
246
+ "pending": "檢視你的變更,即可看到 Adminium 將執行的確切陳述式。",
247
+ "steps": "預定步驟",
248
+ "superAdmin": "超級管理員",
249
+ "unfinished": "此連線上先前的一次套用從未回報結果。它的結構描述可能停在兩種形態之間——在套用更多變更前請查看變更紀錄。"
375
250
  },
376
- "translationsCard": {
377
- "heading": "語言與翻譯",
378
- "body": "重寫 Adminium 中的任何文字,決定使用者可以選哪些語言,並加入你自己的語言。",
379
- "cta": "開啟翻譯"
380
- }
251
+ "reviewPane": "檢視",
252
+ "table": {
253
+ "addColumn": "新增欄位",
254
+ "columns": "欄位",
255
+ "drop": "刪除此資料表",
256
+ "dropHelp": "該資料表與其中所有資料列都會被銷毀。在執行任何動作前,您會看到具體會有什麼受影響。",
257
+ "name": "資料表名稱",
258
+ "nameHelp": "小寫字母、數字與底線。",
259
+ "namePlaceholder": "reservations",
260
+ "noKey": "此資料表沒有主鍵,因此 Adminium 會將其視為唯讀——可以列出資料列,但無法編輯。",
261
+ "renameHelp": "變更它會重新命名你資料庫中的資料表。",
262
+ "uuidKeyUnavailable": "在此引擎上,主鍵必須是產生的整數:資料庫產生的 uuid 在插入後無法讀回。"
263
+ },
264
+ "unnamed": "為每個資料表和欄位命名後才能檢視變更。",
265
+ "unrepresentableDefaults": "這些欄位保留由資料庫產生的預設值,Adminium 無法在此編輯,將維持原樣:{columns}"
381
266
  },
382
- "settingsAi": {
383
- "title": "AI 增強",
384
- "subtitle": "連接一個模型,讓 Adminium 建議標籤、分組、關聯等——在套用之前一律以差異形式審閱。",
385
- "saved": "AI 供應商已儲存",
386
- "saveFailed": "無法儲存 AI 供應商。請重試。",
387
- "save": "儲存供應商",
388
- "test": "測試連線",
389
- "testHintDirty": "測試前請先儲存變更。",
390
- "testing": "正在連線供應商…",
391
- "testError": "測試失敗",
392
- "testErrorBody": "無法連線到供應商。請檢查金鑰與基礎 URL。",
393
- "testOk": "已連線到 {model},耗時 {latency} 毫秒",
394
- "testUnknownModel": "供應商",
395
- "provider": {
396
- "heading": "AI 供應商",
397
- "subtitle": "選擇 Adminium 如何存取模型以增強你的結構描述。金鑰會加密儲存且不再顯示。",
398
- "active": "使用中",
399
- "anthropic": {
400
- "label": "Anthropic",
401
- "desc": "透過 Anthropic API 使用 Claude 模型。"
402
- },
403
- "openai": {
404
- "label": "OpenAI",
405
- "desc": "透過 OpenAI API 使用 GPT 模型。"
406
- },
407
- "openaiCompatible": {
408
- "label": "相容 OpenAI",
409
- "desc": "任何使用 OpenAI 協定的端點——Groq、Together、vLLM、LM Studio。"
410
- },
411
- "ollama": {
412
- "label": "Ollama(本機)",
413
- "desc": "透過 Ollama 在本機執行模型——免金鑰,免雲端。"
414
- },
415
- "requiresNetwork": "需要網際網路與 API 金鑰",
416
- "networkDisabledTitle": "此安裝已關閉直連 AI 服務商",
417
- "networkDisabledBody": "此 Adminium 設定為無對外網路存取,無法連線服務商 API。請使用下方的複製貼上往返方式——不需金鑰,也不需連網。"
418
- },
419
- "configure": {
420
- "heading": "設定 {provider}"
421
- },
422
- "field": {
423
- "baseUrl": "基礎 URL",
424
- "baseUrlOptional": "除非 Ollama 執行於其他主機,否則保持不變。",
425
- "baseUrlHelper": "提供 /chat/completions 的端點根位址。",
426
- "model": "模型",
427
- "modelFreeText": "輸入你的端點所提供的確切模型 ID。",
428
- "modelLive": "已從供應商即時載入。",
429
- "modelStatic": "一份經過驗證的清單;儲存後輸入自訂 ID 可重新整理。",
430
- "modelLoading": "載入中…",
431
- "modelPlaceholder": "選擇一個模型…",
432
- "key": "API 金鑰",
433
- "keyStored": "已加密儲存。替換它以使用其他金鑰。",
434
- "keyMask": "sk-…{last4}",
435
- "keyReplace": "替換金鑰",
436
- "keyOptional": "選填——部分端點不需要金鑰。",
437
- "keyWriteOnly": "僅供寫入:一旦儲存即不再顯示。",
438
- "noKeyTitle": "不需要 API 金鑰",
439
- "noKeyBody": "Ollama 在本機執行,因此沒有任何內容離開這台機器。"
440
- },
441
- "runStatus": {
442
- "draft": "草稿",
443
- "running": "執行中",
444
- "awaitingResponse": "等待回應",
445
- "validated": "已驗證",
446
- "applied": "已套用",
447
- "partiallyApplied": "部分套用",
448
- "failed": "失敗",
449
- "discarded": "已捨棄"
450
- },
451
- "byo": {
452
- "heading": "沒有金鑰?使用你自己的 AI 工具",
453
- "subtitle": "複製貼上往返——沒有任何內容離開這台機器。",
454
- "body": "Studio 可以依你的結構描述產生一個自足的提示詞。在 Claude Code、ChatGPT 或任何工具中執行它,然後將回傳的 JSON 貼回連線精靈。驗證、審閱與結果都與直連方式相同。",
455
- "guaranteeTitle": "無遙測保證",
456
- "guarantee1": "提示詞僅包含你的結構描述與彙總統計——預設絕不包含列資料。",
457
- "guarantee2": "不嵌入任何憑證、執行個體 URL 或識別碼。",
458
- "guarantee3": "BYO 執行不進行任何網路呼叫。",
459
- "promptVersion": "提示詞 {version}",
460
- "schemaVersion": "結構描述 {version}",
461
- "headingRecommended": "使用你自己的 AI 工具——不需金鑰",
462
- "recommended": "建議"
267
+ "diagram": {
268
+ "ceiling": "正在顯示關聯最多的 {shown} 個資料表。另有 {omitted} 個被隱藏——搜尋可將其叫出。",
269
+ "legend": {
270
+ "declared": "外來鍵",
271
+ "inferred": "推斷",
272
+ "virtual": "在 Adminium 中新增"
273
+ },
274
+ "legendLabel": "圖例",
275
+ "node": {
276
+ "foreignKey": "外來鍵",
277
+ "more": "還有 {count} 個",
278
+ "primaryKey": "主鍵"
279
+ },
280
+ "outline": {
281
+ "intro": "{tables} 個資料表與 {relations} 個關聯,以清單呈現。",
282
+ "more": " 以及另外 {count} 個",
283
+ "referencedBy": "被引用於:{list}",
284
+ "references": "引用:{list}"
285
+ },
286
+ "saveLayout": "儲存版面",
287
+ "search": "尋找資料表或欄位",
288
+ "showDiagram": "顯示圖表",
289
+ "showList": "以清單顯示"
290
+ },
291
+ "documents": {
292
+ "cancel": "取消",
293
+ "connectionLabel": "連線",
294
+ "delete": "刪除",
295
+ "delivery": {
296
+ "email": "寄送給",
297
+ "noEmail": "不寄送——只留在記錄上",
298
+ "noEmailSlot": "這種單據沒有地址欄位,因此無法寄送。",
299
+ "noSmtp": "這套 Adminium 還沒有設定郵件伺服器,因此無法寄送。請在 Studio → 設定 → 郵件中設定一個。",
300
+ "stored": "始終留在記錄上。"
301
+ },
302
+ "disabled": "已關閉",
303
+ "edit": "編輯",
304
+ "empty": "尚無對應。",
305
+ "grants": {
306
+ "refused": "這條對應會讀取 {tables},而你無權閱讀。由它產生的單據對你會失敗。",
307
+ "title": "你無權閱讀其中全部"
308
+ },
309
+ "intro": "一條對應說明哪張表的哪些欄位構成一種單據、由什麼觸發,以及去往何處。",
310
+ "name": "為這條對應命名",
311
+ "newFrom": "新增對應:",
312
+ "noProvider": "尚無已安裝的外掛可以繪製單據。請先在「外掛」中安裝一個,可用的對應就會出現在這裡。",
313
+ "pickTable": "選擇一張表…",
314
+ "prefix": "編號前綴",
315
+ "render": {
316
+ "failedRow": "沒有繪製出來:{reason}",
317
+ "intro": "現在就從你選的一筆資料繪製一份。不會送往任何地方——它像其他單據一樣留在記錄上。",
318
+ "noRows": "還沒有可供繪製的資料。",
319
+ "open": "開啟",
320
+ "pending": "正在繪製…",
321
+ "pick": "繪製這一筆",
322
+ "ready": "已繪製。",
323
+ "saveFirst": "請先儲存對應。單據是從已儲存的對應繪製的,這樣你能比其他人先看到結果。",
324
+ "search": "搜尋資料",
325
+ "slow": "還沒有單據出現。它可能仍在排隊,也可能這套安裝沒有執行背景工作——沒有執行就不會繪製。",
326
+ "slowTitle": "仍然沒有"
327
+ },
328
+ "save": "儲存對應",
329
+ "slot": {
330
+ "byDefault": "由 Adminium 填入",
331
+ "lineColumnOf": "每筆明細的 {column}",
332
+ "lineColumns": "每一筆明細的各欄位由什麼填入",
333
+ "looksLikeLines": "看起來像明細",
334
+ "noChildren": "你的資料庫中沒有任何表指向這張表,因此沒有明細可繪製。單據需要一張帶外鍵指回本表的子表。",
335
+ "noLines": "沒有明細",
336
+ "pii": "隱藏資料",
337
+ "typed": "我填寫的值",
338
+ "typedHint": "在此填寫,不從你的資料中讀取——這條對應產生的每份單據都取同一個值。",
339
+ "typedValue": "{slot} 的值",
340
+ "unmapped": "不填入"
463
341
  },
464
- "history": {
465
- "heading": "執行紀錄",
466
- "subtitle": "過往的增強執行。開啟其中一個以審閱其建議。",
467
- "tableLabel": "增強執行",
468
- "colDate": "日期",
469
- "colSource": "來源",
470
- "colStatus": "狀態",
471
- "colChunks": "區塊",
472
- "openReview": "開啟 {date} 的執行審閱",
473
- "connection": "連線",
474
- "empty": "尚無增強執行。在連線精靈中增強結構描述後,紀錄將顯示於此。",
475
- "errorTitle": "無法載入執行",
476
- "errorBody": "重新整理頁面以再試一次。",
477
- "noConnections": "請先連線資料庫——增強執行會依連線分別記錄。",
478
- "byo": "BYO",
479
- "directPath": "直連"
480
- }
342
+ "step": {
343
+ "delivery": "去往何處",
344
+ "kind": "類型",
345
+ "mapping": "各欄位由什麼填入",
346
+ "mappingHelp": "每個單據欄位讀取一個資料欄位,或取用你在此填寫的值。",
347
+ "render": "在一筆資料上試試",
348
+ "table": "連線與表",
349
+ "trigger": "由什麼觸發"
350
+ },
351
+ "tableLabel": "",
352
+ "title": "單據對應",
353
+ "trigger": {
354
+ "created": "新增一列時",
355
+ "manual": "僅在有人要求時",
356
+ "manualShort": "依要求",
357
+ "note": "透過匯入新增的列、或直接寫入資料庫的列不會觸發任何繪製——只有經由 Adminium 的寫入才會。",
358
+ "noteTitle": "什麼算作變更",
359
+ "updated": "某列變更時"
360
+ },
361
+ "unbound": "仍需填寫:{slots}"
481
362
  },
482
363
  "enrich": {
483
- "title": "使用 AI 豐富",
484
- "subtitle": "可選擇使用 LLM 優化生成的標籤、分組、列舉和儀表板。啟發式基準無需它即可運作——這僅新增供你在套用前審閱的建議。",
485
- "intentLabel": "你希望如何豐富?",
486
- "sectionsLegend": "應由 AI 決定哪些內容?",
487
- "localesLegend": "將標籤翻譯為",
488
- "localeLocked": "(必填)",
489
- "samplingTitle": "包含範例值",
490
- "samplingHint": "在提示中為每個非 PII 欄位最多包含 20 個真實值。",
491
- "samplingPreviewTitle": "離開此機器的內容",
492
- "samplingPreviewBody": "每個非 PII 欄位最多 20 個最常見值,以及數值與日期欄位的最小/最大值。標記為 PII 的欄位永不取樣。其餘所有內容僅保留彙總值。複製前請審閱確切的提示(BYO)——未經你的操作不會傳送任何內容。",
493
- "noSections": "請至少選擇一個要豐富的決策群組。",
494
- "generatePrompt": "生成提示",
495
- "startProvider": "開始豐富",
496
- "startOver": "重新開始",
497
- "copied": "已複製",
498
- "createFailed": "無法建立豐富提示——請重試。",
499
- "createFailedTitle": "無法啟動",
500
- "providerFallback": "你的 AI 供應商",
501
- "fileTitle": "AI 豐富需要一個線上資料庫",
502
- "fileBody": "結構描述檔案來源尚無可豐富的快照。連接一個線上資料庫以使用 AI 豐富,或繼續——啟發式基準仍會生成完整的應用程式。",
503
- "section": {
504
- "labels": "標籤與描述",
505
- "groups": "導覽分組",
506
- "enums": "列舉語意",
507
- "relations": "關聯",
508
- "keys": "關鍵欄位",
509
- "templates": "頁面範本",
510
- "widgets": "儀表板小工具",
511
- "pii": "PII 與遮罩",
512
- "icons": "圖示",
513
- "microcopy": "微文案"
514
- },
515
- "provider": {
516
- "title": "使用我的 AI 供應商",
517
- "description": "立即使用已設定的供應商執行豐富。你將以差異形式審閱每則建議。",
518
- "unconfigured": "尚未設定 AI 供應商——請在下方將提示複製到你自己的工具,或先設定一個供應商。",
519
- "settingsHint": "想直接執行嗎?",
520
- "settingsLink": "在「設定 → AI」中設定供應商",
521
- "networkDisabled": "此 Adminium 無對外網路存取,無法連線服務商 API。請改用複製貼上往返方式——同樣的提示詞,同樣的審閱。"
522
- },
523
364
  "byo": {
524
- "cardTitle": "複製提示到我自己的 AI 工具",
525
365
  "cardDescription": "將一個自包含的提示複製到 Claude Code、ChatGPT 或任何工具——然後將 JSON 貼回。無需金鑰,不會自動將任何內容傳出此機器。",
526
- "guidance": "在任意 AI 工具中執行——Claude Code、ChatGPT,皆可。將其回傳的 JSON 貼到下方。",
527
- "promptLabel": "豐富提示",
528
- "promptLabelN": "豐富提示 第 {index} 個,共 {total} 個",
529
- "tokenChip": "≈ {tokens} 個 token",
530
- "copyPrompt": "複製提示",
531
- "copyPromptDone": "提示已複製",
532
- "download": "下載 .md",
533
- "chunkTabs": "提示分塊",
366
+ "cardTitle": "複製提示到我自己的 AI 工具",
367
+ "cardTitleRecommended": "把提示詞複製到我自己的 AI 工具——建議",
534
368
  "chunkTab": "提示 {index}",
369
+ "chunkTabs": "提示分塊",
535
370
  "chunkValid": "分塊 {index} 已驗證",
536
- "pasteLabel": "貼上 JSON 回應",
537
- "pastePlaceholder": "在此貼上 JSON 回應…",
538
- "validate": "驗證",
539
- "valid": "回應已驗證",
540
- "mergedTitle": "全部 {count} 個分塊已驗證並合併",
541
- "mergedTitleSingle": "回應已驗證",
542
- "mergedBody": "建議已準備好,可對照啟發式基準進行審閱。",
543
- "errorsTitle": "驗證發現 {count} 個問題",
371
+ "continueReview": "繼續審閱",
544
372
  "copyErrors": "為你的 AI 工具複製錯誤",
545
373
  "copyErrorsDone": "錯誤已複製",
546
374
  "copyErrorsHint": "將其貼回你的 AI 工具以取得更正後的回應。",
375
+ "copyPrompt": "複製提示",
376
+ "copyPromptDone": "提示已複製",
377
+ "download": "下載 .md",
547
378
  "droppedItems": "有 {count} 則建議在驗證時被捨棄——審閱中顯示其餘內容。",
548
- "pendingTitle": "驗證每個提示以繼續",
379
+ "errorsTitle": "驗證發現 {count} 個問題",
380
+ "guidance": "在任意 AI 工具中執行——Claude Code、ChatGPT,皆可。將其回傳的 JSON 貼到下方。",
381
+ "mergedBody": "建議已準備好,可對照啟發式基準進行審閱。",
382
+ "mergedTitle": "全部 {count} 個分塊已驗證並合併",
383
+ "mergedTitleSingle": "回應已驗證",
384
+ "pasteLabel": "貼上 JSON 回應",
385
+ "pastePlaceholder": "在此貼上 JSON 回應…",
549
386
  "pendingBody": "在上方貼上 JSON 回應並驗證,以繼續進行審閱。",
550
387
  "pendingBodyChunked": "每個分塊都必須先驗證,建議才會合併。請貼上並驗證上方的每個提示。",
388
+ "pendingTitle": "驗證每個提示以繼續",
389
+ "promptLabel": "豐富提示",
390
+ "promptLabelN": "豐富提示 第 {index} 個,共 {total} 個",
551
391
  "requestFailed": "無法連接伺服器進行驗證——請重試。",
552
- "continueReview": "繼續審閱",
553
- "wholeDocument": "整份文件",
554
- "cardTitleRecommended": "把提示詞複製到我自己的 AI 工具——建議"
392
+ "tokenChip": "≈ {tokens} 個 token",
393
+ "valid": "回應已驗證",
394
+ "validate": "驗證",
395
+ "wholeDocument": "整份文件"
555
396
  },
397
+ "copied": "已複製",
398
+ "createFailed": "無法建立豐富提示——請重試。",
399
+ "createFailedTitle": "無法啟動",
556
400
  "direct": {
557
- "title": "正在使用 AI 豐富",
558
- "subtitle": "正在將你的結構描述傳送至",
401
+ "back": "返回選項",
559
402
  "building": "正在建立提示…",
560
- "logLabel": "豐富日誌",
561
403
  "cancel": "取消",
562
- "back": "返回選項",
563
- "retry": "重試",
564
- "done": "豐富完成——請審閱建議。",
565
404
  "continueReview": "繼續審閱",
405
+ "done": "豐富完成——請審閱建議。",
406
+ "errorTitle": "豐富失敗",
566
407
  "failed": "供應商執行失敗。請檢查你的 AI 設定並重試。",
567
408
  "jobFailed": "豐富執行未完成。",
409
+ "logLabel": "豐富日誌",
410
+ "retry": "重試",
568
411
  "startFailed": "無法啟動執行——請重試。",
569
- "errorTitle": "豐富失敗"
412
+ "subtitle": "正在將你的結構描述傳送至",
413
+ "title": "正在使用 AI 豐富"
414
+ },
415
+ "fileBody": "結構描述檔案來源尚無可豐富的快照。連接一個線上資料庫以使用 AI 豐富,或繼續——啟發式基準仍會生成完整的應用程式。",
416
+ "fileTitle": "AI 豐富需要一個線上資料庫",
417
+ "generatePrompt": "生成提示",
418
+ "intentLabel": "你希望如何豐富?",
419
+ "localeLocked": "(必填)",
420
+ "localesLegend": "將標籤翻譯為",
421
+ "noSections": "請至少選擇一個要豐富的決策群組。",
422
+ "provider": {
423
+ "configError": "無法載入供應商設定——請在「設定 → AI」中設定一個,然後回到此步驟。",
424
+ "description": "立即使用已設定的供應商執行豐富。你將以差異形式審閱每則建議。",
425
+ "networkDisabled": "此 Adminium 無對外網路存取,無法連線服務商 API。請改用複製貼上往返方式——同樣的提示詞,同樣的審閱。",
426
+ "readyBody": "在上方選擇「使用我的 AI 供應商」,立即對此連線執行豐富。",
427
+ "readyTitle": "AI 供應商已設定",
428
+ "setUpHere": "在此設定供應商",
429
+ "setUpHide": "隱藏供應商設定",
430
+ "settingsHint": "想直接執行嗎?",
431
+ "settingsLink": "在「設定 → AI」中設定供應商",
432
+ "title": "使用我的 AI 供應商",
433
+ "unconfigured": "尚未設定 AI 供應商——請在下方設定一個,或將提示複製到你自己的 AI 工具。"
434
+ },
435
+ "providerFallback": "你的 AI 供應商",
436
+ "samplingHint": "在提示中為每個非 PII 欄位最多包含 20 個真實值。",
437
+ "samplingPreviewBody": "每個非 PII 欄位最多 20 個最常見值,以及數值與日期欄位的最小/最大值。標記為 PII 的欄位永不取樣。其餘所有內容僅保留彙總值。複製前請審閱確切的提示(BYO)——未經你的操作不會傳送任何內容。",
438
+ "samplingPreviewTitle": "離開此機器的內容",
439
+ "samplingTitle": "包含範例值",
440
+ "section": {
441
+ "enums": "列舉語意",
442
+ "groups": "導覽分組",
443
+ "icons": "圖示",
444
+ "keys": "關鍵欄位",
445
+ "labels": "標籤與描述",
446
+ "microcopy": "微文案",
447
+ "pii": "PII 與遮罩",
448
+ "relations": "關聯",
449
+ "templates": "頁面範本",
450
+ "widgets": "儀表板小工具"
570
451
  },
452
+ "sectionsLegend": "應由 AI 決定哪些內容?",
571
453
  "skip": {
572
- "title": "略過——僅使用啟發式",
573
- "description": "從啟發式基準生成。你之後可在「設定 → AI」中豐富——略過絕不會受到懲罰。",
454
+ "confirmBody": "生成的應用程式將使用啟發式的標籤、分組和儀表板。繼續生成——你可隨時在「設定 → AI」中執行 AI 豐富。",
574
455
  "confirmTitle": "繼續使用啟發式",
575
- "confirmBody": "生成的應用程式將使用啟發式的標籤、分組和儀表板。繼續生成——你可隨時在「設定 → AI」中執行 AI 豐富。"
456
+ "description": "從啟發式基準生成。你之後可在「設定 → AI」中豐富——略過絕不會受到懲罰。",
457
+ "title": "略過——僅使用啟發式"
458
+ },
459
+ "startOver": "重新開始",
460
+ "startProvider": "開始豐富",
461
+ "subtitle": "可選擇使用 LLM 優化生成的標籤、分組、列舉和儀表板。啟發式基準無需它即可運作——這僅新增供你在套用前審閱的建議。",
462
+ "title": "使用 AI 豐富"
463
+ },
464
+ "generate": {
465
+ "errorTitle": "產生失敗",
466
+ "failed": "產生失敗——請重試,或先重新執行內省。",
467
+ "fileBody": "你的結構描述解析順利,上方預覽是真實的。直接從結構描述檔案產生可執行的應用程式(含佔位列)尚不可用——請連接即時資料庫立即產生。",
468
+ "fileTitle": "結構描述檔案已解析——產生需要即時資料庫",
469
+ "log": {
470
+ "classifying": "正在對結構描述分類…",
471
+ "composing": "正在組合範本…",
472
+ "done": "已產生 {pages} 個頁面,分佈於 {groups} 個導覽群組",
473
+ "writing": "正在寫入頁面…"
474
+ },
475
+ "logLabel": "產生記錄",
476
+ "openApp": "開啟你的應用程式",
477
+ "run": "產生儀表板",
478
+ "subtitle": "每個已納入的資料表一個頁面,外加依領域產生的儀表板——意圖:",
479
+ "successBody": "{pages} 個頁面,分佈於 {groups} 個導覽群組——由你的結構描述產生,可在 Studio 中編輯。",
480
+ "successTitle": "你的儀表板已就緒",
481
+ "title": "產生你的應用程式"
482
+ },
483
+ "hostedApps": {
484
+ "domains": {
485
+ "add": "附加網域",
486
+ "hostLabel": "主機",
487
+ "instanceLabel": "執行個體",
488
+ "instanceOwn": "應用本身",
489
+ "issuesTitle": "網域對應遭拒",
490
+ "none": "未附加任何網域。",
491
+ "remove": "移除",
492
+ "save": "儲存網域",
493
+ "savedBody": "對應會在數秒內生效。只有當其 DNS 與你的代理伺服器真正到達此執行個體時,主機才會回應。",
494
+ "savedTitle": "已儲存",
495
+ "subtitle": "將網域的 DNS 指向你的代理伺服器,把 Host 標頭透傳給 Adminium,然後在此附加——該主機隨後會提供此介面而非本儀表板。憑證保留在你的代理伺服器上。",
496
+ "surfaceLabel": "介面",
497
+ "title": "網域"
498
+ },
499
+ "emptyBody": "將 ADMINIUM_SURFACES_DIR 指向存放已建置介面的目錄——每個應用程式和端各一個資料夾,各含其 index.html——然後重新啟動。之後它們會在 /apps/ 下提供,並顯示在這裡。",
500
+ "emptyTitle": "目前沒有提供任何應用介面",
501
+ "error": "發生了一些問題",
502
+ "instances": {
503
+ "add": "新增執行個體",
504
+ "appLabel": "應用",
505
+ "body": "讓同一個應用服務於多個資料庫。每個執行個體可透過 /apps/<app>/<segment>/<side>/ 存取,且只讀取你指定的連線。",
506
+ "empty": "沒有額外的執行個體。",
507
+ "failed": "執行個體未儲存",
508
+ "readsLabel": "讀取",
509
+ "remove": "移除",
510
+ "save": "儲存執行個體",
511
+ "slugLabel": "URL 片段",
512
+ "title": "執行個體"
513
+ },
514
+ "subtitle": "此執行個體所提供的應用介面——每個介面出現的位置,以及指向它們的網域。",
515
+ "surfaces": {
516
+ "boundKey": "提供金鑰",
517
+ "connectionLabel": "讀取",
518
+ "connectionUnset": "目前提供服務的連線",
519
+ "customer": "客戶",
520
+ "mintLink": "在「公開 API」中建立",
521
+ "noKey": "未綁定金鑰——為其建立金鑰之前,此介面無法讀取資料。",
522
+ "noNav": "內嵌位置無法使用——請用目前的工具鏈重新建置此介面,使其產生 surface.json。",
523
+ "placementExternal": "外部(僅自有網址)",
524
+ "placementInternal": "在側邊欄中(內嵌)",
525
+ "placementLabel": "位置",
526
+ "staff": "員工",
527
+ "subtitle": "員工介面可以融入此儀表板的側邊欄,也可以獨立存在;客戶介面是公開的,透過其綁定的金鑰讀取資料。",
528
+ "title": "介面"
529
+ },
530
+ "title": "託管應用程式",
531
+ "install": {
532
+ "steps": {
533
+ "bundle": "安裝包",
534
+ "database": "資料庫",
535
+ "plan": "結構計畫",
536
+ "done": "完成"
537
+ },
538
+ "progress": "安裝進度",
539
+ "failed": "安裝失敗",
540
+ "bundle": {
541
+ "title": "上傳應用程式安裝包",
542
+ "hint": "`npm pack` 為已建置介面產生的 .tgz 檔——其中含有 manifest.json 以及 staff/ 或 customer/ 目錄。",
543
+ "file": "安裝包檔案(.tgz)",
544
+ "fileHint": "在你於結構計畫這一步確認之前,不會建立任何東西。",
545
+ "key": "應用程式識別碼",
546
+ "version": "版本",
547
+ "integrity": "完整性校驗(選填)",
548
+ "integrityHint": "貼上 `npm pack --json` 輸出的 sha512- 值,伺服器會據此檢查這些位元組。留空則在本頁計算。"
549
+ },
550
+ "database": {
551
+ "title": "要安裝到哪個資料庫?",
552
+ "hint": "選擇一個可寫入的連線。資料表會建立在那裡,應用程式之後也從那裡讀取。",
553
+ "tables": "資料表:{count}",
554
+ "readOnly": "唯讀",
555
+ "writable": "可寫入",
556
+ "noWritable": "沒有可寫入的連線",
557
+ "allReadOnly": "這裡所有連線都使用唯讀角色,因此任何應用程式都無法建立自己的資料表。請先連接一個可以執行 DDL 的連線。"
558
+ },
559
+ "plan": {
560
+ "title": "檢視結構計畫",
561
+ "hint": "這正是將在你的資料庫中建立的內容。目前尚未寫入任何資料。",
562
+ "refused": "這個應用程式無法安裝到這裡",
563
+ "create": "建立",
564
+ "reuse": "沿用現有",
565
+ "toggleDdl": "顯示 DDL 預覽",
566
+ "ddl": "DDL 預覽",
567
+ "ddlNote": "僅供參考。伺服器會為你的資料庫引擎產生確切語句,包含外鍵。",
568
+ "summary": "建立 {created} · 沿用 {reused}"
569
+ },
570
+ "done": {
571
+ "title": "已安裝",
572
+ "body": "{key} 已開始提供服務。請在下方選擇其員工端的顯示位置。",
573
+ "schema": "已建立資料表:{created} · 沿用:{reused}"
574
+ },
575
+ "cancel": "取消",
576
+ "back": "上一步",
577
+ "upload": "上傳",
578
+ "continue": "繼續",
579
+ "confirm": "安裝",
580
+ "finish": "管理應用程式",
581
+ "staged": "已解開的檔案:{files}",
582
+ "footerStep": "第 {n} 步,共 {total} 步",
583
+ "footerStepApp": "第 {n} 步,共 {total} 步 · {app}",
584
+ "chosen": {
585
+ "title": "安裝 {app}",
586
+ "hint": "這個應用程式隨你的建置附帶,已經在磁碟上。在你確認結構計畫之前不會建立任何東西。"
587
+ }
588
+ },
589
+ "installed": {
590
+ "title": "已安裝的應用程式",
591
+ "install": "安裝應用程式",
592
+ "emptyTitle": "尚未安裝任何應用程式",
593
+ "emptyBody": "上傳已建置的介面包即可安裝。在這裡安裝的應用程式會立即提供服務——與指向目錄的做法不同,不需重新啟動。",
594
+ "uninstall": "解除安裝",
595
+ "confirmTitle": "要解除安裝這個應用程式嗎?",
596
+ "confirmBody": "它的介面會停止提供服務,安裝包也會刪除。它在你資料庫中建立的資料表不會受到影響。",
597
+ "confirmPrompt": "輸入 {key} 以確認",
598
+ "confirmCancel": "取消",
599
+ "confirmClose": "關閉",
600
+ "stagedTitle": "已上傳但未安裝",
601
+ "stagedHint": "捨棄你決定不用的那一個,或再次上傳相同識別碼以取代它。",
602
+ "discard": "捨棄",
603
+ "installedAt": "安裝於 {when}"
604
+ },
605
+ "browse": {
606
+ "title": "可安裝的應用程式",
607
+ "subtitle": "隨此建置附帶的現成應用程式。安裝會建立它需要的資料表並開始提供其畫面——在你確認計畫之前不會發生任何事。",
608
+ "search": "搜尋應用程式…",
609
+ "clear": "清除搜尋",
610
+ "all": "全部",
611
+ "by": "來自 {publisher}",
612
+ "install": "安裝",
613
+ "installed": "已安裝",
614
+ "noMatch": "沒有符合的應用程式",
615
+ "noMatchBody": "換個關鍵字,或換個分類試試。",
616
+ "emptyTitle": "沒有可安裝的應用程式",
617
+ "emptyBody": "隨此建置附帶的應用程式會顯示在這裡。把 ADMINIUM_BUNDLED_APPS 指向一個應用程式包目錄,或自行上傳一個。",
618
+ "unreadable": "無法讀取這個包的資訊清單,因此無法安裝——請在下方捨棄它。"
576
619
  }
577
620
  },
578
- "review": {
579
- "unavailableTitle": "審閱畫面不可用",
580
- "unavailableBody": "此組建尚未包含增強審閱畫面(06-T14)。它將隨差異與套用流程一起推出。"
621
+ "hub": {
622
+ "action": {
623
+ "delete": "刪除",
624
+ "pause": "暫停",
625
+ "pausedHint": "此連線已暫停 — 恢復後才能存取資料庫。",
626
+ "regional": "區域設定",
627
+ "reintrospect": "重新內省",
628
+ "reintrospectFile": "結構檔案來源沒有線上資料庫——請改為重新上傳檔案。",
629
+ "remap": "重新對應結構",
630
+ "rename": "重新命名",
631
+ "resume": "恢復",
632
+ "test": "測試"
633
+ },
634
+ "card": {
635
+ "lastIntrospected": "上次內省",
636
+ "latency": "延遲",
637
+ "latencyMs": "{latency, number} 毫秒",
638
+ "never": "從未",
639
+ "pages": "頁面",
640
+ "paused": "Adminium 不會連線至此資料庫。恢復後,其頁面會重新載入資料。",
641
+ "pausedSince": "已於{when}暫停 — Adminium 不會連線至此資料庫。恢復後,其頁面會重新載入資料。",
642
+ "readOnly": "唯讀",
643
+ "tables": "資料表",
644
+ "timezone": "時區",
645
+ "timezoneGuessed": "來自此伺服器"
646
+ },
647
+ "connectNew": "新增連線",
648
+ "delete": {
649
+ "body": "此操作會刪除「{name}」及其產生的頁面。您的資料庫本身不會被更動。",
650
+ "cancel": "取消",
651
+ "close": "關閉",
652
+ "confirm": "刪除連線",
653
+ "failed": "無法刪除連線,請再試一次。",
654
+ "prompt": "輸入 {name} 以確認",
655
+ "success": "已刪除連線「{name}」",
656
+ "title": "刪除連線"
657
+ },
658
+ "empty": {
659
+ "body": "連接資料庫後,Adminium 會根據其結構產生您的管理面板。",
660
+ "cta": "連接資料庫",
661
+ "title": "尚無資料來源"
662
+ },
663
+ "hostedApps": "託管應用程式",
664
+ "introspect": {
665
+ "failed": "內省失敗,請再試一次。",
666
+ "masksProposed": "{count, plural, other {建議對 # 個欄位進行遮罩}}——請在重新對應編輯器中檢視。",
667
+ "noChanges": "結構沒有變更——未建立新快照。",
668
+ "updated": "已重新內省結構"
669
+ },
670
+ "pause": {
671
+ "body": "Adminium 將不再開啟到「{name}」的任何連線。在你恢復之前,{pages, plural, other {它的 # 個頁面}}、排程報表與託管應用程式都會停止載入資料。",
672
+ "confirm": "暫停連線",
673
+ "keeps": "不會刪除任何內容 — 連線、它的結構和{pages, plural, other {它的 # 個頁面}}都會保留,一鍵即可恢復。",
674
+ "pauseFailed": "無法暫停該連線。請重試。",
675
+ "pausedToast": "已暫停連線「{name}」",
676
+ "resumeFailed": "無法恢復該連線。請重試。",
677
+ "resumedToast": "已恢復連線「{name}」",
678
+ "title": "暫停此連線?"
679
+ },
680
+ "regional": {
681
+ "currency": "貨幣",
682
+ "currencyHelper": "用於格式化金額。選填——未設定僅影響格式。",
683
+ "currencyPlaceholder": "ISO-4217 代碼",
684
+ "failed": "無法儲存區域設定",
685
+ "guessedBody": "Adminium 從其執行所在的機器取得該時區,並非有人在此選擇。儲存即可確認,或選擇該商家實際所在的時區。",
686
+ "guessedTitle": "此時區來自伺服器",
687
+ "intro": "這些設定描述該資料庫所屬的業務,而非閱讀者本人。由 Adminium 提供服務的應用程式會從這裡讀取。",
688
+ "noMatch": "沒有相符的時區",
689
+ "noMatchCurrency": "沒有相符的貨幣",
690
+ "notSet": "未設定",
691
+ "save": "儲存",
692
+ "saved": "區域設定已更新",
693
+ "timezone": "時區",
694
+ "timezoneHelper": "日期和時間以此時區顯示。若未設定,由 Adminium 代管的應用會退回 UTC,並在畫面上說明。",
695
+ "timezonePlaceholder": "地區/城市",
696
+ "title": "區域設定"
697
+ },
698
+ "rename": {
699
+ "failed": "無法重新命名該連線",
700
+ "helper": "該資料庫在整個 Adminium 中的顯示名稱——卡片、其頁面上方的側邊欄群組,以及每個提供它的選擇器。資料庫本身不會被重新命名。",
701
+ "label": "名稱",
702
+ "save": "重新命名",
703
+ "saved": "連線已重新命名",
704
+ "title": "重新命名連線"
705
+ },
706
+ "stats": {
707
+ "connections": "連線",
708
+ "healthy": "正常",
709
+ "pages": "已產生的頁面",
710
+ "tables": "已包含的資料表"
711
+ },
712
+ "status": {
713
+ "connected": "已連線",
714
+ "error": "錯誤",
715
+ "paused": "已暫停",
716
+ "testing": "測試中…",
717
+ "unconfigured": "草稿"
718
+ },
719
+ "subtitle": "{total, plural, other {# 個連線中 {healthy, number} 個}}狀態正常",
720
+ "subtitlePaused": "{total, plural, other {# 個連線中 {healthy, number} 個}}狀態正常 · {paused, number} 個已暫停",
721
+ "test": {
722
+ "failed": "連線測試失敗",
723
+ "ok": "連線正常 · {latency, number} 毫秒"
724
+ },
725
+ "title": "資料連線"
726
+ },
727
+ "intent": {
728
+ "analytics": {
729
+ "description": "儀表板、圖表與唯讀網格。沒有表單、沒有寫入——所有角色上限為檢視者。",
730
+ "title": "唯讀分析"
731
+ },
732
+ "crud": {
733
+ "description": "每個資料表一個編輯頁面,外加搜尋與匯入/匯出——極簡首頁,沒有儀表板。",
734
+ "title": "CRUD 資料表"
735
+ },
736
+ "fullAdmin": {
737
+ "description": "儀表板、CRUD 頁面、搜尋、匯入與匯出——你的結構描述支援的一切。",
738
+ "title": "完整管理面板"
739
+ },
740
+ "subtitle": "意圖決定會產生哪些頁面。之後可以變更——變更會提議重新產生,絕不會靜默改寫。",
741
+ "support": {
742
+ "description": "優先產生佇列、工單與客戶詳情頁面。預設關閉刪除。(佇列範本將於 M7 推出——v1 頁面集與完整管理面板相同。)",
743
+ "title": "客服主控台"
744
+ },
745
+ "title": "你需要什麼?",
746
+ "trust": "我們只讀取你的結構描述——設定期間絕不讀取列資料。"
581
747
  },
582
748
  "llmRuns": {
583
749
  "review": {
584
- "header": {
585
- "title": "審查 AI 建議",
586
- "model": "模型",
587
- "snapshot": "快照",
588
- "byo": "自帶",
589
- "pathDirect": "直接 API",
590
- "pathByo": "複製貼上",
591
- "agree": "{n} 項一致",
592
- "conflict": "{n} 項衝突",
593
- "new": "{n} 項新增",
594
- "rejects": "{n} 項拒絕",
595
- "countsAria": "建議數量"
750
+ "applied": {
751
+ "body": "下方已接受的建議為唯讀。",
752
+ "title": "此執行已套用"
753
+ },
754
+ "apply": {
755
+ "confirm": "套用變更",
756
+ "empty": "未選擇任何要套用的內容。",
757
+ "subtitle": "這些變更將在單一交易中寫入,並可復原。",
758
+ "title": "套用 {n} 項建議"
596
759
  },
760
+ "applyFailed": "沒有任何變更被套用",
761
+ "applyUnknown": "伺服器沒有說明原因。",
597
762
  "bulk": {
598
- "thresholdLabel": "信心度門檻",
599
- "thresholdAria": "「全部接受」的信心度門檻",
600
763
  "acceptAll": "接受所有 ≥ {pct}%",
601
- "clear": "清除選取"
764
+ "clear": "清除選取",
765
+ "thresholdAria": "「全部接受」的信心度門檻",
766
+ "thresholdLabel": "信心度門檻"
602
767
  },
603
- "section": {
604
- "selectAllAria": "全選 {group}",
605
- "acceptedCount": "已接受 {n} 項"
768
+ "cat": {
769
+ "copy": "微文案",
770
+ "dashboard": "儀表板",
771
+ "enum": "列舉",
772
+ "group": "導覽群組",
773
+ "key": "鍵欄位",
774
+ "label": "標籤",
775
+ "pii": "個人資料",
776
+ "relation": "關聯",
777
+ "template": "頁面範本",
778
+ "widget": "小工具"
779
+ },
780
+ "empty": {
781
+ "body": "此執行未產生可審查的建議。",
782
+ "title": "無建議"
783
+ },
784
+ "error": {
785
+ "title": "無法載入此執行"
786
+ },
787
+ "footer": {
788
+ "apply": "套用 {n} 項已接受的建議",
789
+ "count": "已選擇 {n} 項建議",
790
+ "failed": "套用失敗"
606
791
  },
607
792
  "group": {
608
- "labels": "標籤與翻譯",
609
- "navigation": "導覽與領域",
793
+ "dashboards": "儀表板與小工具",
610
794
  "enums": "列舉語意",
611
- "relations": "關聯",
795
+ "icons": "圖示",
612
796
  "keys": "鍵欄位",
613
- "templates": "頁面範本",
614
- "dashboards": "儀表板與小工具",
797
+ "labels": "標籤與翻譯",
798
+ "microcopy": "微文案",
799
+ "navigation": "導覽與領域",
615
800
  "pii": "個人資料與遮罩",
616
- "icons": "圖示",
617
- "microcopy": "微文案"
801
+ "relations": "關聯",
802
+ "templates": "頁面範本"
618
803
  },
619
- "status": {
620
- "agree": "一致",
621
- "conflict": "衝突",
622
- "new": "新增",
623
- "heuristicOnly": "僅啟發式",
624
- "rejects": "拒絕啟發式",
625
- "locked": "已鎖定"
804
+ "header": {
805
+ "agree": "{n} 項一致",
806
+ "byo": "自帶",
807
+ "conflict": "{n} 項衝突",
808
+ "countsAria": "建議數量",
809
+ "model": "模型",
810
+ "new": "{n} 項新增",
811
+ "pathByo": "複製貼上",
812
+ "pathDirect": "直接 API",
813
+ "rejects": "{n} 項拒絕",
814
+ "snapshot": "快照",
815
+ "title": "審查 AI 建議"
816
+ },
817
+ "notReady": {
818
+ "body": "執行必須先通過驗證,才能審查其建議。請先產生或貼上回應。",
819
+ "title": "此執行尚無可審查的建議"
626
820
  },
627
821
  "row": {
628
822
  "acceptAria": "接受 {target} 的{noun}建議",
823
+ "confidenceAria": "信心度 {pct}%",
824
+ "hideTranslations": "隱藏翻譯",
629
825
  "keptEdited": "已保留——由您編輯",
826
+ "noAi": "無 AI 建議",
630
827
  "rejectsCallout": "AI 拒絕了某項啟發式決策——接受前請確認。",
631
- "showTranslations": "顯示翻譯",
632
- "hideTranslations": "隱藏翻譯",
633
- "confidenceAria": "信心度 {pct}%",
634
- "noAi": "無 AI 建議"
635
- },
636
- "value": {
637
- "none": "無值",
638
- "absent": "無",
639
- "dash": "—",
640
- "display": "顯示",
641
- "key": "鍵",
642
- "rank": "排名 {n}",
643
- "span": "跨距 {n}",
644
- "tableCount": "{n} 張資料表",
645
- "widgetCount": "{n} 個小工具",
646
- "enumWorkflow": "工作流程",
647
- "enumCategory": "分類",
648
- "notPii": "非個人資料",
649
- "label": "標籤",
650
- "description": "描述",
651
- "subtitle": "頁面副標題",
652
- "headline": "空狀態標題",
653
- "guidance": "空狀態提示"
828
+ "showTranslations": "顯示翻譯"
654
829
  },
655
- "apply": {
656
- "title": "套用 {n} 項建議",
657
- "subtitle": "這些變更將在單一交易中寫入,並可復原。",
658
- "empty": "未選擇任何要套用的內容。",
659
- "confirm": "套用變更"
830
+ "section": {
831
+ "acceptedCount": "已接受 {n} ",
832
+ "selectAllAria": "全選 {group}"
660
833
  },
661
- "footer": {
662
- "count": "已選擇 {n} 項建議",
663
- "apply": "套用 {n} 項已接受的建議",
664
- "failed": "套用失敗"
834
+ "status": {
835
+ "agree": "一致",
836
+ "conflict": "衝突",
837
+ "heuristicOnly": "僅啟發式",
838
+ "locked": "已鎖定",
839
+ "new": "新增",
840
+ "rejects": "拒絕啟發式"
665
841
  },
666
842
  "toast": {
667
843
  "applied": "已套用 {n} 項建議",
@@ -669,630 +845,1097 @@ export default {
669
845
  "applyFailed": "無法套用建議",
670
846
  "undoFailed": "無法復原此變更"
671
847
  },
672
- "error": {
673
- "title": "無法載入此執行"
674
- },
675
- "notReady": {
676
- "title": "此執行尚無可審查的建議",
677
- "body": "執行必須先通過驗證,才能審查其建議。請先產生或貼上回應。"
678
- },
679
- "applied": {
680
- "title": "此執行已套用",
681
- "body": "下方已接受的建議為唯讀。"
682
- },
683
- "empty": {
684
- "title": "無建議",
685
- "body": "此執行未產生可審查的建議。"
686
- },
687
- "cat": {
848
+ "value": {
849
+ "absent": "",
850
+ "dash": "—",
851
+ "description": "描述",
852
+ "display": "顯示",
853
+ "enumCategory": "分類",
854
+ "enumWorkflow": "工作流程",
855
+ "guidance": "空狀態提示",
856
+ "headline": "空狀態標題",
857
+ "key": "",
688
858
  "label": "標籤",
689
- "key": "鍵欄位",
690
- "enum": "列舉",
691
- "relation": "關聯",
692
- "pii": "個人資料",
693
- "template": "頁面範本",
694
- "group": "導覽群組",
695
- "dashboard": "儀表板",
696
- "widget": "小工具",
697
- "copy": "微文案"
859
+ "none": "無值",
860
+ "notPii": "非個人資料",
861
+ "rank": "排名 {n}",
862
+ "span": "跨距 {n}",
863
+ "subtitle": "頁面副標題",
864
+ "tableCount": "{n} 張資料表",
865
+ "widgetCount": "{n} 個小工具"
698
866
  }
699
867
  }
700
868
  },
701
- "wizard": {
702
- "title": "新增連線",
703
- "back": "返回",
704
- "continue": "繼續",
705
- "progress": "設定進度",
706
- "persistFailed": "無法儲存你的資料表選擇——請重試。",
707
- "persistFailedTitle": "儲存失敗",
708
- "bridgeAppliedTitle": "已收到連線字串",
709
- "bridgeAppliedBody": "由你的瀏覽器從 adminium.dev 直接交給本機——它從未被上傳到任何伺服器。請在下方核對後繼續。",
710
- "bridgeFailedTitle": "無法使用這次交接",
711
- "bridgeFailedBody": "它已被使用或已過期。請改為在下方貼上你的連線字串。",
712
- "step": {
713
- "source": "來源",
714
- "test": "分析",
715
- "tables": "資料表",
716
- "meta": "中繼資料儲存",
717
- "intent": "意圖",
718
- "enrich": "豐富",
719
- "generate": "產生"
720
- }
721
- },
722
869
  "meta": {
723
- "title": "Adminium 應將自己的資料表放在哪裡?",
724
- "subtitle": "頁面、角色、稽核記錄與設定存放在以 adminium_ 為前綴的資料表中——絕不混入你的資料。",
870
+ "move": {
871
+ "copying": "正在搬移 Adminium 的資料表…",
872
+ "copyingBody": "正在將每張 adminium_ 資料表複製到新資料庫。您的來源資料不會被更動,且必須通過驗證後才會切換。",
873
+ "failed": "無法搬移 Adminium 的資料表——請重試。",
874
+ "restarting": "正在重新啟動…",
875
+ "restartingBody": "複製已完成。Adminium 正在新資料庫上重新啟動——本頁面將在數秒後自動繼續。",
876
+ "timeout": "Adminium 已搬移資料表,但尚未恢復。您的資料已安全存放於新資料庫——請稍後重新載入本頁面。",
877
+ "title": "正在搬移 Adminium 的資料表"
878
+ },
725
879
  "sameDb": {
726
- "title": "同一資料庫",
727
880
  "description": "adminium_* 資料表會建立在你的來源資料表旁。這是最簡單的設定——需要具有寫入與 CREATE TABLE 權限的角色。",
728
- "disabledReadOnly": "你的角色為唯讀——Adminium 絕不會寫入此資料庫。請為 Adminium 自身的資料表選擇獨立的資料庫。",
881
+ "disabledFile": "結構描述檔案沒有即時資料庫——請為 Adminium 自身的資料表選擇獨立的資料庫。",
729
882
  "disabledNoDdl": "該角色無法執行 DDL——Adminium 遷移需要 CREATE TABLE 權限。請為 Adminium 自身的資料表選擇獨立的資料庫。",
730
- "disabledFile": "結構描述檔案沒有即時資料庫——請為 Adminium 自身的資料表選擇獨立的資料庫。"
883
+ "disabledReadOnly": "你的角色為唯讀——Adminium 絕不會寫入此資料庫。請為 Adminium 自身的資料表選擇獨立的資料庫。",
884
+ "title": "同一資料庫"
731
885
  },
732
886
  "separate": {
733
- "title": "獨立的資料庫",
734
887
  "description": "Adminium 會將其資料表保存在另一個資料庫中。你的來源保持不變——唯讀來源必須如此。",
735
888
  "dsn": "中繼資料庫連線字串",
889
+ "errorTitle": "中繼資料存放區不相容",
736
890
  "helper": "需要寫入與 DDL 權限——Adminium 會在那裡執行自己的遷移。",
737
- "test": "測試連線",
738
- "ok": "相容——寫入 ✓ · DDL ✓",
739
891
  "insufficient": "該角色無法承載中繼資料存放區——Adminium 在那裡需要寫入與 CREATE TABLE 權限。",
740
- "errorTitle": "中繼資料存放區不相容"
892
+ "ok": "相容——寫入 ✓ · DDL ✓",
893
+ "test": "測試連線",
894
+ "title": "獨立的資料庫"
741
895
  },
896
+ "subtitle": "頁面、角色、稽核記錄與設定存放在以 adminium_ 為前綴的資料表中——絕不混入你的資料。",
742
897
  "testFailed": "連線失敗。",
898
+ "title": "Adminium 應將自己的資料表放在哪裡?",
743
899
  "v1Note": {
744
- "title": "關於此安裝",
745
- "body": "此伺服器已將自有資料表保存在設定好的資料庫中,本步驟不會搬移它們。它只驗證您的選擇是否與此連線相容——伺服器會獨立執行相同規則(409 META_PLACEMENT_INVALID)。"
746
- },
747
- "move": {
748
- "title": "正在搬移 Adminium 的資料表",
749
- "copying": "正在搬移 Adminium 的資料表…",
750
- "restarting": "正在重新啟動…",
751
- "copyingBody": "正在將每張 adminium_ 資料表複製到新資料庫。您的來源資料不會被更動,且必須通過驗證後才會切換。",
752
- "restartingBody": "複製已完成。Adminium 正在新資料庫上重新啟動——本頁面將在數秒後自動繼續。",
753
- "failed": "無法搬移 Adminium 的資料表——請重試。",
754
- "timeout": "Adminium 已搬移資料表,但尚未恢復。您的資料已安全存放於新資料庫——請稍後重新載入本頁面。"
900
+ "body": "此伺服器已將自有資料表保存在設定好的資料庫中,本步驟不會搬移它們。它只驗證您的選擇是否與此連線相容——伺服器會獨立執行相同規則(409 META_PLACEMENT_INVALID)。",
901
+ "title": "關於此安裝"
755
902
  },
756
903
  "willMove": {
757
- "title": "此步驟將搬移 Adminium 的資料表",
758
- "body": "Adminium 目前使用內建的 SQLite 儲存區。按「繼續」會將該儲存區複製到您選擇的資料庫並在其上重新啟動——帳號、頁面與設定都會一併搬移,您將保持登入狀態。"
904
+ "body": "Adminium 目前使用內建的 SQLite 儲存區。按「繼續」會將該儲存區複製到您選擇的資料庫並在其上重新啟動——帳號、頁面與設定都會一併搬移,您將保持登入狀態。",
905
+ "title": "此步驟將搬移 Adminium 的資料表"
759
906
  }
760
907
  },
761
- "intent": {
762
- "title": "你需要什麼?",
763
- "subtitle": "意圖決定會產生哪些頁面。之後可以變更——變更會提議重新產生,絕不會靜默改寫。",
764
- "trust": "我們只讀取你的結構描述——設定期間絕不讀取列資料。",
765
- "fullAdmin": {
766
- "title": "完整管理面板",
767
- "description": "儀表板、CRUD 頁面、搜尋、匯入與匯出——你的結構描述支援的一切。"
768
- },
769
- "analytics": {
770
- "title": "唯讀分析",
771
- "description": "儀表板、圖表與唯讀網格。沒有表單、沒有寫入——所有角色上限為檢視者。"
908
+ "pages": {
909
+ "action": {
910
+ "delete": "刪除頁面",
911
+ "duplicate": "建立複本",
912
+ "edit": "編輯頁面",
913
+ "hide": "在側邊欄中隱藏",
914
+ "show": "在側邊欄中顯示"
915
+ },
916
+ "attachments": {
917
+ "accept": "接受的檔案類型",
918
+ "acceptHint": "一個都不選,即接受此工作區允許的一切。這裡的選擇只會縮小那份清單,永遠不會擴大。",
919
+ "column": {
920
+ "adoptHint": "此資料表已有該欄位,因此不會建立——將直接使用它。",
921
+ "bound": "檔案存放在此資料表的 {column} 欄位中。",
922
+ "boundHint": "日後關閉附件只會解除此頁面的繫結。該欄位及其中的檔案維持不變。",
923
+ "confirm": "執行",
924
+ "create": "建立欄位",
925
+ "createHint": "Adminium 會為此資料表新增一個文字欄位。執行前你會看到確切的敘述句。",
926
+ "createdHint": "欄位已建立。儲存此頁面即可完成連接。",
927
+ "failed": "操作未成功",
928
+ "invalid": "欄位名稱必須以字母開頭,且只能包含小寫字母、數字與底線。",
929
+ "label": "存放檔案的欄位",
930
+ "required": "請為欄位命名。",
931
+ "tooLong": "該名稱對欄位而言太長了。",
932
+ "use": "使用此欄位",
933
+ "wrongType": "此資料表已有同名欄位,且無法存放檔案參照。請換一個名稱。"
934
+ },
935
+ "destination": "檔案存放的位置",
936
+ "destinationDefault": "預設目的地",
937
+ "destinationHint": "除非此資料表的檔案該放在別處,否則保持預設即可。",
938
+ "destinationIsDefault": "{name}(預設)",
939
+ "destinationLocal": "本伺服器的磁碟",
940
+ "enable": "允許在此資料表的記錄上附加檔案",
941
+ "enableHint": "檔案在 Adminium 這一側建立關聯,因此此資料表不需要新增欄位——唯讀連線可用,你不想更動的資料表也可用。",
942
+ "enableHintColumn": "檔案存放在此資料表的一個欄位中,因此會同時出現在「新增」和「編輯」對話方塊以及每筆記錄上。",
943
+ "enableHintSidecar": "檔案改為在 Adminium 這一側關聯。它們出現在每筆記錄的頁面上,而不是「新增」對話方塊中。",
944
+ "maxBytes": "最大檔案(MB)",
945
+ "maxBytesHint": "留空即遵循工作區的上限。在此填數字只會把它調得更低。",
946
+ "maxCount": "每筆記錄最多檔案數",
947
+ "maxCountHint": "留空即接受一筆記錄所需的任意數量。",
948
+ "sidecar": {
949
+ "noPrivilege": "此連線的角色無法變更資料表,因此 Adminium 無法為它新增欄位。",
950
+ "readOnlyIntent": "此連線設定為唯讀分析,因此 Adminium 無法為它新增欄位。",
951
+ "readOnlyRole": "此連線使用唯讀角色登入,因此 Adminium 無法為它新增欄位。",
952
+ "schemaFile": "此連線由結構描述檔建立,因此 Adminium 無法為它新增欄位。"
953
+ },
954
+ "type": {
955
+ "office": "Office 文件",
956
+ "text": "純文字"
957
+ }
772
958
  },
773
- "crud": {
774
- "title": "CRUD 資料表",
775
- "description": "每個資料表一個編輯頁面,外加搜尋與匯入/匯出——極簡首頁,沒有儀表板。"
959
+ "columns": {
960
+ "addFromLinked": "來自連結資料表",
961
+ "addFromTable": "來自 {table}",
962
+ "addLinkedFrom": "連結到此資料表的資料表",
963
+ "addLinkedFromHelp": "統計指向每筆記錄的列數,或將其中一個數字相加。",
964
+ "addLinkedHelp": "顯示連結欄位所指向資料表中的值。",
965
+ "addNoMatches": "沒有符合「{query}」的欄位。",
966
+ "addOpen": "新增欄位",
967
+ "addSearch": "搜尋欄位…",
968
+ "addTitle": "新增欄位",
969
+ "addVia": "透過 {column}",
970
+ "avatar": "頭像",
971
+ "avatarToggle": "在 {name} 旁顯示字母圖示",
972
+ "countBadge": "計數",
973
+ "dragHandle": "調整 {name} 的順序",
974
+ "empty": "尚無欄位——請在下方新增。",
975
+ "file": {
976
+ "acceptHelp": "所有類型都不勾選,即接受此工作區所接受的一切。選擇類型只會縮小那份清單——欄位永遠無法接受工作區拒絕的類型。",
977
+ "acceptLabel": "接受的類型",
978
+ "badge": "檔案",
979
+ "destinationDefault": "預設目的地",
980
+ "destinationHelp": "透過此欄位上傳的位元組存放在哪裡。",
981
+ "destinationLabel": "目的地",
982
+ "inlineHelp": "只有圖片會畫在儲存格中。無論這裡怎麼設定,其餘一律維持為標籤,顯示檔名與大小。",
983
+ "inlineLabel": "在表格中顯示",
984
+ "maxCountHelp": "留空則接受記錄所需的任意數量。",
985
+ "maxCountLabel": "每筆記錄最多檔案數",
986
+ "maxCountToggle": "{name} 最多可存放的檔案數",
987
+ "maxHelp": "留空即採用工作區的上限。欄位只能要求更小的值。",
988
+ "maxLabel": "最大檔案(MB)",
989
+ "maxToggle": "{name} 接受的最大檔案,單位為 MB",
990
+ "multipleHelp": "該欄位儲存檔案清單而不是單一檔案。現有的單一值仍然有效——會被讀作只有一項的清單。",
991
+ "multipleLabel": "存放多個檔案",
992
+ "ref": {
993
+ "id": "Adminium 的檔案 ID",
994
+ "key": "目的地中的鍵值",
995
+ "url": "檔案的連結"
996
+ },
997
+ "refHelp": "上傳檔案時寫入此欄位的內容。已經存好的值仍然可用——這只會改變下一個。",
998
+ "refLabel": "儲存的值",
999
+ "refTooNarrow": "此欄位太短,放不下該值。請改選它容得下的值,或在資料庫中加寬此欄位。",
1000
+ "refWidth": "{shape}——需要 {needs} 個字元,此欄位只容納 {holds}",
1001
+ "switch": "檔案",
1002
+ "switchToggle": "{name} 存放檔案",
1003
+ "type": {
1004
+ "csv": "CSV",
1005
+ "gif": "GIF",
1006
+ "heic": "HEIC",
1007
+ "jpeg": "JPEG",
1008
+ "json": "JSON",
1009
+ "markdown": "Markdown",
1010
+ "mp3": "MP3 音訊",
1011
+ "mp4": "MP4 影片",
1012
+ "office": "Office 文件",
1013
+ "ogg": "Ogg",
1014
+ "pdf": "PDF",
1015
+ "png": "PNG",
1016
+ "svg": "SVG",
1017
+ "text": "純文字",
1018
+ "wav": "WAV 音訊",
1019
+ "webm": "WebM",
1020
+ "webp": "WebP",
1021
+ "zip": "ZIP"
1022
+ }
1023
+ },
1024
+ "fold": {
1025
+ "avg": "平均值",
1026
+ "max": "最大值",
1027
+ "min": "最小值",
1028
+ "sum": "加總"
1029
+ },
1030
+ "foldAdd": "新增",
1031
+ "foldLabel": "彙總",
1032
+ "followColumn": "跟隨 {name}",
1033
+ "header": "{name} 的欄位標題",
1034
+ "help": "拖曳以重新排序欄位、重新命名欄位標題,並選擇哪些欄位顯示在表格中。",
1035
+ "lookupBack": "返回",
1036
+ "lookupBadge": "關聯",
1037
+ "lookupBroken": "該關聯已無法解析",
1038
+ "lookupBrokenBody": "瀏覽期間結構已變更。請重新開始關聯。",
1039
+ "lookupBrowse": "選擇要從 {table} 顯示的內容",
1040
+ "mask": "遮蔽",
1041
+ "maskHelp": "遮蔽會把數值藏在顯示按鈕之後,供有權檢視的人點開。資料是否離開資料庫,由連線設定決定,不在這裡。",
1042
+ "maskToggle": "將 {name} 隱藏在顯示按鈕之後",
1043
+ "masked": "已遮蔽",
1044
+ "none": {
1045
+ "body": "產生頁面時會從資料表讀取欄位。請將此頁面繫結至資料表後重新產生。",
1046
+ "title": "此頁面尚無欄位"
1047
+ },
1048
+ "pk": "主鍵",
1049
+ "remove": "移除 {name}",
1050
+ "schemaUnavailable": "無法列出資料庫的欄位,因此這裡無法重新加入欄位。",
1051
+ "shown": "顯示",
1052
+ "toggle": "在表格中顯示 {name}"
776
1053
  },
777
- "support": {
778
- "title": "客服主控台",
779
- "description": "優先產生佇列、工單與客戶詳情頁面。預設關閉刪除。(佇列範本將於 M7 推出——v1 頁面集與完整管理面板相同。)"
780
- }
781
- },
782
- "generate": {
783
- "title": "產生你的應用程式",
784
- "subtitle": "每個已納入的資料表一個頁面,外加依領域產生的儀表板——意圖:",
785
- "run": "產生儀表板",
786
- "openApp": "開啟你的應用程式",
787
- "logLabel": "產生記錄",
788
- "log": {
789
- "classifying": "正在對結構描述分類…",
790
- "composing": "正在組合範本…",
791
- "writing": "正在寫入頁面…",
792
- "done": "已產生 {pages} 個頁面,分佈於 {groups} 個導覽群組"
1054
+ "create": {
1055
+ "failed": "無法建立頁面",
1056
+ "submit": "建立頁面",
1057
+ "subtitle": "選擇此頁面顯示什麼以及外觀如何。預覽會跟隨您的選擇。",
1058
+ "title": "新增頁面"
793
1059
  },
794
- "successTitle": "你的儀表板已就緒",
795
- "successBody": "{pages} 個頁面,分佈於 {groups} 個導覽群組——由你的結構描述產生,可在 Studio 中編輯。",
796
- "errorTitle": "產生失敗",
797
- "failed": "產生失敗——請重試,或先重新執行內省。",
798
- "fileTitle": "結構描述檔案已解析——產生需要即時資料庫",
799
- "fileBody": "你的結構描述解析順利,上方預覽是真實的。直接從結構描述檔案產生可執行的應用程式(含佔位列)尚不可用——請連接即時資料庫立即產生。"
800
- },
801
- "remap": {
802
- "column": {
803
- "nullable": "可為 null",
804
- "labelOverride": "顯示標籤",
805
- "labelHelper": "推斷:{name}",
806
- "logicalType": "邏輯型別",
807
- "logicalTypeHelper": "推斷:{type}(來自 {dbType})——由配接器對應;v1 不可覆寫。",
808
- "semantic": "語意型別",
809
- "unclassified": "尚未分類。",
810
- "semanticHelper": "分類器:{tag} · 信心度 {confidence}% · 來源:{source}",
811
- "semanticInferred": "推斷:{tag}",
812
- "currency": "貨幣",
813
- "currencyHelper": "套用於金額格式的 ISO 4217 代碼。",
814
- "pii": "預設遮罩",
815
- "piiHelper": "遮罩的值會以隱匿形式呈現;取消遮罩需要 data.unmask_pii 權限,且會寫入稽核記錄。",
816
- "enum": "列舉語意",
817
- "enumKind": "列舉種類",
818
- "enumWorkflow": "工作流程",
819
- "enumCategory": "類別",
820
- "enumLabelFor": "{value} 的標籤",
821
- "enumToneFor": "{value} 的色調",
822
- "enumToneAuto": "自動",
823
- "enumHelper": "工作流程列舉會驅動狀態膠囊與看板欄;色調會將各值對應到語意色調刻度。"
1060
+ "createButton": "新增頁面",
1061
+ "delete": {
1062
+ "body": "此操作無法復原。此頁面上所有已儲存的檢視與個人版面配置將對所有人刪除。",
1063
+ "bodyGenerated": "此頁面由結構描述產生,下次重新產生時會再次出現。已儲存的檢視與個人版面配置將對所有人刪除。",
1064
+ "confirm": "刪除頁面",
1065
+ "prompt": "輸入 {slug} 以確認",
1066
+ "title": "確定要刪除此頁面嗎?"
824
1067
  },
825
- "diff": {
826
- "one": "1 項變更",
827
- "count": "{count} 項變更",
828
- "saved": "已儲存覆寫。",
829
- "revertOne": "還原 {change}",
830
- "regenerate": "重新產生頁面",
831
- "revertAll": "全部還原",
832
- "save": "儲存覆寫"
1068
+ "derived": {
1069
+ "add": "新增欄位",
1070
+ "atLeast": "至少為",
1071
+ "cancel": "取消",
1072
+ "emptyBody": "請先在「欄位」卡片中彙總一個關聯表——這裡的規則以那些數字為基礎。",
1073
+ "emptyTitle": "尚無計算數字",
1074
+ "fieldBadge": "計算值",
1075
+ "foldBadge": "彙總",
1076
+ "help": "根據上方的彙總與本筆記錄自身的欄位計算數字。它們在頁面載入時計算,無法排序。",
1077
+ "label": "欄位標題",
1078
+ "minus": "減",
1079
+ "numberHelp": "數字為普通小數——500 或 12.50,不能寫成 1,000 或 5e3。",
1080
+ "operandA": "數字",
1081
+ "operandB": "數字",
1082
+ "operator": "運算子",
1083
+ "otherwise": "否則",
1084
+ "percentOf": "來自本筆記錄的百分比",
1085
+ "plus": "加",
1086
+ "preset": {
1087
+ "combine": "兩個數字相加或相減",
1088
+ "percent": "某個數字的百分比",
1089
+ "rule": "帶門檻的規則"
1090
+ },
1091
+ "previewHelp": "範例值,由頁面所用的同一段程式碼計算。",
1092
+ "previewTitle": "預覽",
1093
+ "remove": "移除 {name}",
1094
+ "thenShow": "則顯示"
833
1095
  },
834
- "table": {
835
- "iconPicker": "資料表圖示",
836
- "system": "系統",
837
- "labelOverride": "顯示標籤",
838
- "labelHelper": "推斷:{name}",
839
- "icon": "圖示",
840
- "navGroup": "導覽群組",
841
- "navGroupHelper": "導覽位置由產生器決定——table.navGroup 覆寫不在 v1 詞彙表中。",
842
- "include": "納入產生的應用程式",
843
- "includeHelper": "被排除的資料表不會產生頁面,並會從導覽中消失。",
844
- "shape": "資料表形態(已分類)",
845
- "role": "角色",
846
- "unclassified": "未分類",
847
- "kind": "種類",
848
- "hierarchy": "階層",
849
- "selfFk": "透過 {column} 自我參照",
850
- "polymorphic": "多型配對",
851
- "rows": "資料列估計值",
852
- "shapeHelper": "每次內省都會重新計算分類;覆寫會疊加在其上,並在重新產生後保留。"
1096
+ "duplicate": {
1097
+ "failed": "無法建立複本",
1098
+ "submit": "建立複本",
1099
+ "title": "建立頁面複本"
853
1100
  },
854
- "relations": {
855
- "declared": "已宣告的外鍵",
856
- "noneDeclared": "沒有已宣告的外鍵涉及此資料表。",
857
- "inferred": "推斷的關聯",
858
- "noneInferred": "此資料表沒有任何推斷結果。",
859
- "confidence": "推斷 · {pct}%",
860
- "accepted": "已接受",
861
- "suppressed": "已抑制",
862
- "accept": "接受",
863
- "suppress": "抑制",
864
- "overrides": "覆寫關聯(已套用)",
865
- "overrideBadge": "覆寫",
866
- "add": "新增虛擬關聯",
867
- "fromColumn": "來源欄位",
868
- "noColumns": "沒有符合的欄位",
869
- "fromPlaceholder": "customer_id",
870
- "toTable": "目標資料表",
871
- "noTables": "沒有符合的資料表",
872
- "toColumn": "目標欄位",
873
- "cardinality": "基數",
874
- "addButton": "新增關聯"
875
- },
876
- "toast": {
877
- "saved": "已儲存結構描述覆寫",
878
- "savedDetail": "下方已套用的結構描述已反映你的變更。",
879
- "regenerated": "已建立 {created} · 已更新 {updated} · 未變更 {unchanged}",
880
- "regeneratedDetail": "你手動編輯過的頁面會被保留——只有 generated_hash 未被更動的頁面才會就地重新產生。",
881
- "regenerateFailed": "重新產生失敗"
1101
+ "editor": {
1102
+ "appearance": "外觀",
1103
+ "attachments": "附件",
1104
+ "columns": "欄位",
1105
+ "contentInvalid": "無法讀取此頁面的設定",
1106
+ "contentInvalidBody": "設定由較新的版本寫入,或已損毀。請重新產生或刪除此頁面。",
1107
+ "contentUnavailable": "無法載入頁面內容",
1108
+ "contentUnavailableBody": "上方的設定仍可儲存。",
1109
+ "data": "資料",
1110
+ "derived": "衍生數字",
1111
+ "details": "詳細資訊",
1112
+ "generated": {
1113
+ "body": "重新產生時會保留您的修改:頁面會標記為已編輯並原樣保留。但刪除只在下次產生前有效,屆時頁面會重新建立。",
1114
+ "title": "此頁面依您的結構描述產生"
1115
+ },
1116
+ "itemsPending": "請先儲存上方的變更——頁面內容將依新的範本與資料表重建。",
1117
+ "missing": "此頁面已不存在",
1118
+ "missingBody": "它可能已被刪除,或被某次重新產生移除。",
1119
+ "notBindable": "此範本不繫結單一資料表",
1120
+ "notBindableBody": "它的內容由小工具逐一組成。開啟頁面並點選「編輯」即可加入。",
1121
+ "openPage": "開啟頁面",
1122
+ "recompose": "此頁面將重新建立",
1123
+ "recomposeBody": "儲存後會依上方的範本與資料表用全新版面配置取代頁面內容。此頁面上的欄位調整與小工具變更將會遺失。",
1124
+ "save": "儲存變更",
1125
+ "saveFailed": "無法儲存變更",
1126
+ "schemaFailed": "無法列出資料表",
1127
+ "schemaFailedBody": "此連線可能尚未分析。請在「工作室 資料連線」中執行結構分析。",
1128
+ "title": "編輯頁面"
882
1129
  },
883
- "title": "結構描述重新對應",
884
- "subtitle": "{tables} 個資料表 · 已套用 {applied} 項覆寫",
885
- "saveFailed": "儲存失敗:{message}",
886
- "loadFailed": "無法載入此連線的結構描述。",
887
- "inspector": "檢閱器",
888
1130
  "empty": {
889
- "title": "選擇資料表或欄位",
890
- "description": "在結構描述樹中選取項目,即可重新對應其標籤、型別、關聯或遮罩。"
1131
+ "body": "連線資料庫即可自動產生頁面,也可以手動建立一個。",
1132
+ "title": "尚無頁面"
891
1133
  },
892
- "tabs": {
893
- "details": "詳細資料",
894
- "relations": "關聯"
1134
+ "field": {
1135
+ "connection": "資料來源",
1136
+ "connectionNone": "",
1137
+ "group": "側邊欄群組",
1138
+ "groupHint": "頁面出現在側邊欄的哪個區塊。",
1139
+ "icon": "圖示",
1140
+ "iconHint": "顯示在側邊欄中頁面名稱的旁邊。",
1141
+ "iconPick": "選擇頁面圖示",
1142
+ "newRowLabel": "新增按鈕",
1143
+ "newRowLabelHint": "新增記錄的按鈕上顯示的文字。留空則使用預設文字,預設文字已翻譯。",
1144
+ "padding": "頁面內距",
1145
+ "slug": "頁面網址",
1146
+ "slugHint": "僅限小寫字母、數字與連字號。只需填寫最後一段,其餘部分會自動補上。",
1147
+ "slugTaken": "已有其他頁面使用此網址。",
1148
+ "slugWarning": "變更網址會使指向此頁面的現有連結與書籤失效。",
1149
+ "table": "資料表",
1150
+ "tableCreateHint": "此頁面讀取的資料表。現在選擇即可直接使用;留空則可稍後再繫結。",
1151
+ "tableNeedsConnection": "請先選擇資料來源。",
1152
+ "tableNone": "未繫結",
1153
+ "template": "範本",
1154
+ "templateHint": "決定頁面可以承載哪些內容,之後可以變更。",
1155
+ "title": "標題",
1156
+ "titleHint": "顯示在側邊欄與頁面標題列中。",
1157
+ "visible": "在側邊欄中顯示",
1158
+ "visibleHint": "隱藏的頁面仍可透過網址存取,只要對方有連結。",
1159
+ "width": "內容寬度",
1160
+ "widthHint": "在大螢幕上,頁面內容欄最多可以有多寬。"
895
1161
  },
896
- "tree": {
897
- "label": "結構描述",
898
- "search": "搜尋資料表與欄位",
899
- "searchPlaceholder": "搜尋資料表…",
900
- "noMatches": "沒有符合搜尋條件的資料表。",
901
- "collapse": "收合資料表",
902
- "expand": "展開資料表",
903
- "unsaved": "未儲存的變更",
904
- "excluded": "已排除"
1162
+ "icon": {
1163
+ "noMatches": "沒有圖示符合此搜尋。",
1164
+ "none": "選擇圖示",
1165
+ "search": "搜尋圖示"
905
1166
  },
906
- "badge": {
907
- "pk": "PK",
908
- "fk": "FK",
909
- "unique": "UNIQUE",
910
- "pii": "PII",
911
- "masked": "已遮罩"
1167
+ "list": {
1168
+ "count": "{count, plural, other {# 個頁面}}",
1169
+ "title": "頁面"
912
1170
  },
913
- "unavailableTitle": "結構描述重新對應編輯器無法使用",
914
- "unavailableBody": "目前的組建尚未包含重新對應編輯器(09-T12)。等它推出後重新執行產生流程,即可重新對應標籤、型別與關聯。"
915
- },
916
- "publicApi": {
917
- "error": "Something went wrong",
918
- "scopes": {
919
- "deleteTitle": "Delete this scope",
920
- "deleteBody": "Any page using a key bound to this scope stops loading data. Keys are not deleted — revoke them first if that is what you meant.",
921
- "deletePrompt": "Type the scope name to confirm",
922
- "deleteConfirm": "Delete scope",
923
- "issuesTitle": "This scope did not compile",
924
- "title": "Scopes",
925
- "subtitle": "A scope is the whole of what a key may reach — the tables, the exact columns, and a filter the caller can narrow but never remove.",
926
- "emptyTitle": "No scopes yet",
927
- "emptyBody": "Create one below. It is checked against your live schema before it is saved.",
928
- "keyCount": "{count, plural, =0 {no keys} other {# keys}}",
929
- "delete": "Delete",
930
- "nameLabel": "Name",
931
- "connectionLabel": "Connection ID",
932
- "documentLabel": "Scope document",
933
- "documentHint": "Compiled against your schema when you save. Every column a caller can reach is listed here and nowhere else.",
934
- "create": "Create scope",
935
- "formLabel": "Create a scope"
936
- },
937
- "cancel": "Cancel",
938
- "close": "Close",
939
- "title": "Public API",
940
- "subtitle": "Let your own customer- or staff-facing pages read this database, through a scope you define.",
941
- "notRegistered": {
942
- "title": "Not enabled on this server",
943
- "body": "Set ADMINIUM_PUBLIC_API_ORIGINS to the exact origins allowed to call it, then restart. Until then these routes are not served at all."
1171
+ "loadFailed": {
1172
+ "body": "管理頁面需要「管理頁面」權限。請聯絡管理員將該權限授予您的其中一個角色。",
1173
+ "title": "無法載入頁面"
944
1174
  },
945
- "toggle": {
946
- "label": "Serve the public API",
947
- "hint": "Turning this off stops every public request immediately. Nothing is deleted — keys, scopes and data all survive."
1175
+ "origin": {
1176
+ "generated": "自動產生",
1177
+ "llm": "助理",
1178
+ "manifest": "外掛",
1179
+ "system": "系統",
1180
+ "user": "自訂"
948
1181
  },
949
- "origins": {
950
- "label": "Origins allowed to call it"
1182
+ "padding": {
1183
+ "custom": "自訂…",
1184
+ "default": "此範本的預設值",
1185
+ "none": "無",
1186
+ "standard": "標準 (28 × 24)",
1187
+ "x": "左右 (px)",
1188
+ "y": "上下 (px)"
951
1189
  },
952
- "keys": {
953
- "title": "Keys",
954
- "subtitle": "These go in your page’s JavaScript, so anyone can read them. That is expected — a key can only ever do what its scope allows.",
955
- "emptyTitle": "No keys yet",
956
- "emptyBody": "Create a scope first, then mint a key for it.",
957
- "reveal": "Show key",
958
- "rotate": "Rotate",
959
- "revoke": "Revoke",
960
- "nameLabel": "Name",
961
- "scopeLabel": "Scope",
962
- "scopePlaceholder": "Choose a scope",
963
- "create": "Create key",
964
- "formLabel": "Create a key",
965
- "scopeIsAuthTitle": "The scope is the only permission",
966
- "scopeIsAuthBody": "A key can reach exactly what its scope lists and nothing else. It does not use roles or table permissions, and it cannot read anything through the rest of the API.",
967
- "appLabel": "綁定到託管應用介面(選填)",
968
- "appHint": "應用程式的客戶介面隨後會自行提供此金鑰——輪換金鑰無需重新建置。",
969
- "appNone": "未綁定"
1190
+ "preview": {
1191
+ "note": "這是版面示意圖,不是您的資料。儲存後真實頁面才會填入內容。",
1192
+ "untitled": "未命名頁面"
1193
+ },
1194
+ "row": {
1195
+ "menu": "{title} 的操作"
1196
+ },
1197
+ "sidebar": {
1198
+ "discard": "捨棄",
1199
+ "emptyGroup": "此群組中沒有頁面。",
1200
+ "help": "在群組內重新排序頁面,或將頁面移至其他群組。變更會對所有人生效。",
1201
+ "moveDown": " {title} 下移",
1202
+ "moveTo": " {title} 移至其他群組",
1203
+ "moveUp": " {title} 上移",
1204
+ "save": "儲存排序",
1205
+ "saveFailed": "無法儲存新的排序",
1206
+ "ungrouped": {
1207
+ "body": "這些頁面可透過網址存取,但不會出現在側邊欄中。請逐一開啟並選擇群組。",
1208
+ "title": "有些頁面不屬於任何側邊欄群組"
1209
+ }
970
1210
  },
971
1211
  "status": {
972
- "heading": "Status"
973
- }
974
- },
975
- "hostedApps": {
976
- "title": "託管應用程式",
977
- "subtitle": "此執行個體所提供的應用介面——每個介面出現的位置,以及指向它們的網域。",
978
- "error": "發生了一些問題",
979
- "emptyTitle": "目前沒有提供任何應用介面",
980
- "emptyBody": "將 ADMINIUM_SURFACES_DIR 指向存放已建置介面的目錄——每個應用程式和端各一個資料夾,各含其 index.html——然後重新啟動。之後它們會在 /apps/ 下提供,並顯示在這裡。",
981
- "surfaces": {
982
- "title": "介面",
983
- "subtitle": "員工介面可以融入此儀表板的側邊欄,也可以獨立存在;客戶介面是公開的,透過其綁定的金鑰讀取資料。",
984
- "staff": "員工",
985
- "customer": "客戶",
986
- "noNav": "內嵌位置無法使用——請用目前的工具鏈重新建置此介面,使其產生 surface.json。",
987
- "noKey": "未綁定金鑰——為其建立金鑰之前,此介面無法讀取資料。",
988
- "mintLink": "在「公開 API」中建立",
989
- "boundKey": "提供金鑰",
990
- "placementLabel": "位置",
991
- "placementInternal": "在側邊欄中(內嵌)",
992
- "placementExternal": "外部(僅自有網址)",
993
- "connectionLabel": "讀取",
994
- "connectionUnset": "目前提供服務的連線"
1212
+ "hidden": "已隱藏",
1213
+ "live": "已啟用"
995
1214
  },
996
- "domains": {
997
- "title": "網域",
998
- "subtitle": "將網域的 DNS 指向你的代理伺服器,把 Host 標頭透傳給 Adminium,然後在此附加——該主機隨後會提供此介面而非本儀表板。憑證保留在你的代理伺服器上。",
999
- "issuesTitle": "網域對應遭拒",
1000
- "savedTitle": "已儲存",
1001
- "savedBody": "對應會在數秒內生效。只有當其 DNS 與你的代理伺服器真正到達此執行個體時,主機才會回應。",
1002
- "none": "未附加任何網域。",
1003
- "hostLabel": "主機",
1004
- "surfaceLabel": "介面",
1005
- "remove": "移除",
1006
- "add": "附加網域",
1007
- "save": "儲存網域",
1008
- "instanceLabel": "執行個體",
1009
- "instanceOwn": "應用本身"
1215
+ "subtitle": "新增、編輯與整理應用程式的頁面,以及它們在側邊欄中的排序。",
1216
+ "tab": {
1217
+ "pages": "所有頁面",
1218
+ "sidebar": "側邊欄排序"
1010
1219
  },
1011
- "instances": {
1012
- "title": "執行個體",
1013
- "body": "讓同一個應用服務於多個資料庫。每個執行個體可透過 /apps/<app>/<segment>/<side>/ 存取,且只讀取你指定的連線。",
1014
- "appLabel": "應用",
1015
- "slugLabel": "URL 片段",
1016
- "readsLabel": "讀取",
1017
- "add": "新增執行個體",
1018
- "save": "儲存執行個體",
1019
- "remove": "移除",
1020
- "empty": "沒有額外的執行個體。",
1021
- "failed": "執行個體未儲存"
1220
+ "title": "頁面",
1221
+ "width": {
1222
+ "content": "內容(900px)",
1223
+ "dash": "儀表板(1320px)",
1224
+ "default": "此範本的預設值",
1225
+ "full": "全寬(不限制)",
1226
+ "narrow": "窄(720px)",
1227
+ "page": "頁面(1080px)",
1228
+ "wide": "寬(1800px)"
1022
1229
  }
1023
1230
  },
1024
- "addOns": {
1025
- "plan": {
1026
- "blocked": "This cannot be installed here",
1027
- "needsColumns": "This add-on needs columns you do not have",
1028
- "needsColumnsBody": "Adminium will not add columns to tables you already own. Add them yourself, then install.",
1029
- "willCreate": "This will create tables in your database",
1030
- "willCreateBody": "Installing creates these tables. Uninstalling later leaves them, and their data, alone.",
1031
- "noData": "This add-on reads and writes no tables of its own.",
1032
- "reuse": "This add-on will use tables you already have:"
1033
- },
1034
- "consent": {
1035
- "title": "Install {name}",
1036
- "subtitle": "What this add-on will do, before it can do it.",
1037
- "close": "Close",
1038
- "loading": "Working out what this would do…",
1039
- "hosts": "Attach to",
1040
- "cancel": "Cancel",
1041
- "confirm": "Install"
1042
- },
1043
- "connect": {
1044
- "apiKey": "API key",
1045
- "submit": "Connect"
1046
- },
1047
- "title": "Add-ons",
1048
- "subtitle": "Extra capabilities you can add to your apps — shipping, artwork, data. Each one says what it needs before you install it.",
1049
- "error": "Something went wrong",
1050
- "browse": {
1051
- "title": "Available",
1052
- "online": "Includes add-ons from the online catalogue. Checking for newer versions is a separate action.",
1053
- "offline": "Showing the add-ons that came with this build. Browsing online is switched off, and nothing here has contacted the internet.",
1054
- "refresh": "Check for newer",
1055
- "emptyTitle": "No add-ons available",
1056
- "emptyBody": "This build shipped none, and the online catalogue is off.",
1057
- "bundled": "Included",
1058
- "upgrade": "v{version} available",
1059
- "download": "Download",
1060
- "install": "Install",
1061
- "discard": "Discard",
1062
- "upgradeAction": "Upgrade",
1063
- "toggle": "Browse the online catalogue"
1231
+ "publicApi": {
1232
+ "cancel": "取消",
1233
+ "close": "關閉",
1234
+ "error": "發生了一些問題",
1235
+ "keys": {
1236
+ "appHint": "應用程式的客戶介面隨後會自行提供此金鑰——輪換金鑰無需重新建置。",
1237
+ "appLabel": "綁定到託管應用介面(選填)",
1238
+ "appNone": "未綁定",
1239
+ "create": "建立金鑰",
1240
+ "emptyBody": "請先建立範圍,再為它建立金鑰。",
1241
+ "emptyTitle": "尚無金鑰",
1242
+ "formLabel": "建立一個金鑰",
1243
+ "nameLabel": "名稱",
1244
+ "reveal": "顯示金鑰",
1245
+ "revoke": "撤銷",
1246
+ "rotate": "輪換",
1247
+ "scopeIsAuthBody": "金鑰能觸及的,恰好就是其範圍所列的內容,別無其他。它不使用角色或資料表權限,也無法透過 API 的其餘部分讀取任何東西。",
1248
+ "scopeIsAuthTitle": "範圍就是唯一的權限",
1249
+ "scopeLabel": "範圍",
1250
+ "scopePlaceholder": "選擇範圍",
1251
+ "subtitle": "這些金鑰會放進你頁面的 JavaScript,所以任何人都讀得到。這是預期中的——金鑰能做的,永遠不會超出其範圍所允許的。",
1252
+ "title": "金鑰"
1064
1253
  },
1065
- "installed": {
1066
- "title": "Installed",
1067
- "emptyTitle": "Nothing installed yet",
1068
- "emptyBody": "Install an add-on above and it will appear here with its hosts and connection.",
1069
- "connected": "Connected",
1070
- "notConnected": "Not connected",
1071
- "egress": "May contact: {hosts}",
1072
- "on": "on",
1073
- "off": "off",
1074
- "disconnect": "Disconnect",
1075
- "uninstall": "Uninstall"
1254
+ "notRegistered": {
1255
+ "body": "請將 ADMINIUM_PUBLIC_API_ORIGINS 設為允許呼叫它的確切來源,然後重新啟動。在那之前,這些路由完全不會提供服務。",
1256
+ "title": "此伺服器未啟用"
1076
1257
  },
1077
- "confirm": {
1078
- "close": "Close",
1079
- "disconnectTitle": "Disconnect this add-on",
1080
- "uninstallTitle": "Uninstall this add-on",
1081
- "discardTitle": "Discard this download",
1082
- "disconnectBody": "Its keys are deleted and it stops making calls. Every table and every row it created stays exactly as it is, and you can reconnect at any time.",
1083
- "uninstallBody": "Its keys are deleted and its files are removed from this server. Every table and every row it created stays exactly as it is. You can install it again later.",
1084
- "discardBody": "The downloaded files are deleted. Nothing was installed, so nothing else changes — you can download it again whenever you like.",
1085
- "cancel": "Cancel",
1086
- "disconnect": "Disconnect",
1087
- "uninstall": "Uninstall",
1088
- "discard": "Discard"
1258
+ "origins": {
1259
+ "label": "允許呼叫它的來源"
1089
1260
  },
1090
- "upgradeNote": "Upgrading keeps the hosts an add-on is attached to and the connection it already has.",
1091
- "job": {
1092
- "title": "Downloading",
1093
- "body": "Fetching and verifying. Nothing is installed until you say so.",
1094
- "failed": "The download did not finish. Nothing was installed."
1261
+ "scopes": {
1262
+ "connectionLabel": "連線 ID",
1263
+ "create": "建立範圍",
1264
+ "delete": "刪除",
1265
+ "deleteBody": "凡是使用綁定到此範圍之金鑰的頁面都會停止載入資料。金鑰不會一併刪除——若你的本意是那樣,請先撤銷它們。",
1266
+ "deleteConfirm": "刪除範圍",
1267
+ "deletePrompt": "輸入範圍名稱以確認",
1268
+ "deleteTitle": "刪除此範圍",
1269
+ "documentHint": "儲存時會對照你的結構描述進行編譯。呼叫端能觸及的每個欄位都只列在這裡,別無他處。預設值可以是 '{'\"$generate\": \"uuid\"'}' 或 '{'\"$generate\": \"now\"'}'——伺服器會在建立時填入,因此訪客不必自己挑選 id 就能新增一列。",
1270
+ "documentLabel": "範圍文件",
1271
+ "emptyBody": "請在下方建立一個。儲存前會先對照你的線上結構描述進行檢查。",
1272
+ "emptyTitle": "尚無範圍",
1273
+ "formLabel": "建立一個範圍",
1274
+ "issuesTitle": "此範圍未通過編譯",
1275
+ "keyCount": "{count, plural, =0 {沒有金鑰} other {# 個金鑰}}",
1276
+ "nameLabel": "名稱",
1277
+ "subtitle": "範圍就是一把金鑰所能觸及的全部——哪些資料表、哪些確切欄位,以及一道呼叫端只能收窄、永遠無法移除的篩選條件。",
1278
+ "title": "範圍"
1095
1279
  },
1096
- "veto": {
1097
- "title": "This deployment cannot browse online",
1098
- "body": "The setting is saved, but network features are off for this server and that wins. Downloaded add-ons still work, and you can still upload one yourself."
1280
+ "status": {
1281
+ "heading": "狀態"
1099
1282
  },
1100
- "sideload": {
1101
- "title": "Upload a package",
1102
- "hint": "For a server with no internet. It is checked exactly as a download would be, so it needs the hash that came with it.",
1103
- "file": "Package file (.tgz)",
1104
- "key": "Add-on key",
1105
- "version": "Version",
1106
- "sha": "Integrity (sha512-…)",
1107
- "shaHint": "The `integrity` value `npm pack --json` printed. The upload is refused if the bytes do not match.",
1108
- "submit": "Upload"
1283
+ "subtitle": "讓你自己面向客戶或員工的頁面,透過你定義的範圍讀取這個資料庫。",
1284
+ "title": "公開 API",
1285
+ "toggle": {
1286
+ "hint": "關閉後會立即中止所有公開請求。不會刪除任何東西——金鑰、範圍與資料都會保留。",
1287
+ "label": "提供公開 API"
1109
1288
  }
1110
1289
  },
1111
- "pages": {
1112
- "title": "頁面",
1113
- "subtitle": "新增、編輯與整理應用程式的頁面,以及它們在側邊欄中的排序。",
1114
- "createButton": "新增頁面",
1115
- "loadFailed": {
1116
- "title": "無法載入頁面",
1117
- "body": "管理頁面需要「管理頁面」權限。請聯絡管理員將該權限授予您的其中一個角色。"
1290
+ "remap": {
1291
+ "badge": {
1292
+ "fk": "FK",
1293
+ "masked": "已遮罩",
1294
+ "pii": "PII",
1295
+ "pk": "PK",
1296
+ "unique": "UNIQUE"
1118
1297
  },
1119
- "tab": {
1120
- "pages": "所有頁面",
1121
- "sidebar": "側邊欄排序"
1298
+ "column": {
1299
+ "currency": "貨幣",
1300
+ "currencyHelper": "套用於金額格式的 ISO 4217 代碼。",
1301
+ "enum": "列舉語意",
1302
+ "enumCategory": "類別",
1303
+ "enumHelper": "工作流程列舉會驅動狀態膠囊與看板欄;色調會將各值對應到語意色調刻度。",
1304
+ "enumKind": "列舉種類",
1305
+ "enumLabelFor": "{value} 的標籤",
1306
+ "enumToneAuto": "自動",
1307
+ "enumToneFor": "{value} 的色調",
1308
+ "enumWorkflow": "工作流程",
1309
+ "labelHelper": "推斷:{name}",
1310
+ "labelOverride": "顯示標籤",
1311
+ "logicalType": "邏輯型別",
1312
+ "logicalTypeHelper": "推斷:{type}(來自 {dbType})——由配接器對應;v1 不可覆寫。",
1313
+ "nullable": "可為 null",
1314
+ "pii": "預設遮罩",
1315
+ "piiHelper": "遮罩的值會以隱匿形式呈現;取消遮罩需要 data.unmask_pii 權限,且會寫入稽核記錄。",
1316
+ "semantic": "語意型別",
1317
+ "semanticHelper": "分類器:{tag} · 信心度 {confidence}% · 來源:{source}",
1318
+ "semanticInferred": "推斷:{tag}",
1319
+ "unclassified": "尚未分類。"
1122
1320
  },
1123
- "list": {
1124
- "title": "頁面",
1125
- "count": "{count, plural, other {# 個頁面}}"
1321
+ "diff": {
1322
+ "count": "{count} 項變更",
1323
+ "one": "1 項變更",
1324
+ "regenerate": "重新產生頁面",
1325
+ "revertAll": "全部還原",
1326
+ "revertOne": "還原 {change}",
1327
+ "save": "儲存覆寫",
1328
+ "saved": "已儲存覆寫。"
1126
1329
  },
1127
1330
  "empty": {
1128
- "title": "尚無頁面",
1129
- "body": "連線資料庫即可自動產生頁面,也可以手動建立一個。"
1331
+ "description": "在結構描述樹中選取項目,即可重新對應其標籤、型別、關聯或遮罩。",
1332
+ "title": "選擇資料表或欄位"
1130
1333
  },
1131
- "status": {
1132
- "live": "已啟用",
1133
- "hidden": "已隱藏"
1334
+ "inspector": "檢閱器",
1335
+ "loadFailed": "無法載入此連線的結構描述。",
1336
+ "mode": {
1337
+ "design": "設計",
1338
+ "diagram": "關聯圖",
1339
+ "remap": "標籤與關聯"
1134
1340
  },
1135
- "origin": {
1136
- "generated": "自動產生",
1137
- "manifest": "外掛",
1138
- "llm": "助理",
1341
+ "modeLabel": "編輯器模式",
1342
+ "noDesign": {
1343
+ "noPrivilege": "此連線的角色無法建立或修改資料表。請授予它結構權限,或改用具備權限的角色連線。",
1344
+ "readOnlyIntent": "此連線被設定為唯讀分析用途。請在「設定」中更改其用途,才能編輯其結構。",
1345
+ "readOnlyRole": "此連線使用唯讀角色登入,因此 Adminium 無法更改其結構。",
1346
+ "schemaFile": "此連線由結構檔案建立,因此沒有可更改的資料庫。標籤和關聯仍可使用。"
1347
+ },
1348
+ "relations": {
1349
+ "accept": "接受",
1350
+ "accepted": "已接受",
1351
+ "add": "新增虛擬關聯",
1352
+ "addButton": "新增關聯",
1353
+ "cardinality": "基數",
1354
+ "confidence": "推斷 · {pct}%",
1355
+ "declared": "已宣告的外鍵",
1356
+ "fromColumn": "來源欄位",
1357
+ "fromPlaceholder": "customer_id",
1358
+ "inferred": "推斷的關聯",
1359
+ "noColumns": "沒有符合的欄位",
1360
+ "noTables": "沒有符合的資料表",
1361
+ "noneDeclared": "沒有已宣告的外鍵涉及此資料表。",
1362
+ "noneInferred": "此資料表沒有任何推斷結果。",
1363
+ "overrideBadge": "覆寫",
1364
+ "overrides": "覆寫關聯(已套用)",
1365
+ "suppress": "抑制",
1366
+ "suppressed": "已抑制",
1367
+ "toColumn": "目標欄位",
1368
+ "toTable": "目標資料表"
1369
+ },
1370
+ "saveFailed": "儲存失敗:{message}",
1371
+ "subtitle": "{tables} 個資料表 · 已套用 {applied} 項覆寫",
1372
+ "table": {
1373
+ "hierarchy": "階層",
1374
+ "icon": "圖示",
1375
+ "iconPicker": "資料表圖示",
1376
+ "include": "納入產生的應用程式",
1377
+ "includeHelper": "被排除的資料表不會產生頁面,並會從導覽中消失。",
1378
+ "kind": "種類",
1379
+ "labelHelper": "推斷:{name}",
1380
+ "labelOverride": "顯示標籤",
1381
+ "navGroup": "導覽群組",
1382
+ "navGroupHelper": "導覽位置由產生器決定——table.navGroup 覆寫不在 v1 詞彙表中。",
1383
+ "polymorphic": "多型配對",
1384
+ "role": "角色",
1385
+ "rows": "資料列估計值",
1386
+ "selfFk": "透過 {column} 自我參照",
1387
+ "shape": "資料表形態(已分類)",
1388
+ "shapeHelper": "每次內省都會重新計算分類;覆寫會疊加在其上,並在重新產生後保留。",
1139
1389
  "system": "系統",
1140
- "user": "自訂"
1390
+ "unclassified": "未分類"
1141
1391
  },
1142
- "row": {
1143
- "menu": "{title} 的操作"
1392
+ "tabs": {
1393
+ "details": "詳細資料",
1394
+ "relations": "關聯"
1144
1395
  },
1145
- "action": {
1146
- "edit": "編輯頁面",
1147
- "duplicate": "建立複本",
1148
- "hide": "在側邊欄中隱藏",
1149
- "show": "在側邊欄中顯示",
1150
- "delete": "刪除頁面"
1396
+ "title": "結構描述",
1397
+ "toast": {
1398
+ "regenerateFailed": "重新產生失敗",
1399
+ "regenerated": "已建立 {created} · 已更新 {updated} · 未變更 {unchanged}",
1400
+ "regeneratedDetail": "你手動編輯過的頁面會被保留——只有 generated_hash 未被更動的頁面才會就地重新產生。",
1401
+ "saved": "已儲存結構描述覆寫",
1402
+ "savedDetail": "下方已套用的結構描述已反映你的變更。"
1151
1403
  },
1152
- "create": {
1153
- "title": "新增頁面",
1154
- "failed": "無法建立頁面",
1155
- "submit": "建立頁面",
1156
- "subtitle": "選擇此頁面顯示什麼以及外觀如何。預覽會跟隨您的選擇。"
1404
+ "tree": {
1405
+ "collapse": "收合資料表",
1406
+ "excluded": "已排除",
1407
+ "expand": "展開資料表",
1408
+ "label": "結構描述",
1409
+ "noMatches": "沒有符合搜尋條件的資料表。",
1410
+ "search": "搜尋資料表與欄位",
1411
+ "searchPlaceholder": "搜尋資料表…",
1412
+ "unsaved": "未儲存的變更"
1157
1413
  },
1158
- "duplicate": {
1159
- "title": "建立頁面複本",
1160
- "failed": "無法建立複本",
1161
- "submit": "建立複本"
1414
+ "unavailableBody": "目前的組建尚未包含重新對應編輯器(09-T12)。等它推出後重新執行產生流程,即可重新對應標籤、型別與關聯。",
1415
+ "unavailableTitle": "結構描述重新對應編輯器無法使用"
1416
+ },
1417
+ "review": {
1418
+ "unavailableBody": "此組建尚未包含增強審閱畫面(06-T14)。它將隨差異與套用流程一起推出。",
1419
+ "unavailableTitle": "審閱畫面不可用"
1420
+ },
1421
+ "settings": {
1422
+ "globalDefaultsNav": "全域預設值",
1423
+ "title": "設定",
1424
+ "workspaceSection": "工作區"
1425
+ },
1426
+ "settingsAi": {
1427
+ "byo": {
1428
+ "body": "Studio 可以依你的結構描述產生一個自足的提示詞。在 Claude Code、ChatGPT 或任何工具中執行它,然後將回傳的 JSON 貼回連線精靈。驗證、審閱與結果都與直連方式相同。",
1429
+ "guarantee1": "提示詞僅包含你的結構描述與彙總統計——預設絕不包含列資料。",
1430
+ "guarantee2": "不嵌入任何憑證、執行個體 URL 或識別碼。",
1431
+ "guarantee3": "BYO 執行不進行任何網路呼叫。",
1432
+ "guaranteeTitle": "無遙測保證",
1433
+ "heading": "沒有金鑰?使用你自己的 AI 工具",
1434
+ "headingRecommended": "使用你自己的 AI 工具——不需金鑰",
1435
+ "promptVersion": "提示詞 {version}",
1436
+ "recommended": "建議",
1437
+ "schemaVersion": "結構描述 {version}",
1438
+ "subtitle": "複製貼上往返——沒有任何內容離開這台機器。"
1162
1439
  },
1163
- "delete": {
1164
- "title": "確定要刪除此頁面嗎?",
1165
- "body": "此操作無法復原。此頁面上所有已儲存的檢視與個人版面配置將對所有人刪除。",
1166
- "bodyGenerated": "此頁面由結構描述產生,下次重新產生時會再次出現。已儲存的檢視與個人版面配置將對所有人刪除。",
1167
- "prompt": "輸入 {slug} 以確認",
1168
- "confirm": "刪除頁面"
1440
+ "configure": {
1441
+ "heading": "設定 {provider}"
1169
1442
  },
1170
1443
  "field": {
1171
- "title": "標題",
1172
- "titleHint": "顯示在側邊欄與頁面標題列中。",
1173
- "slug": "頁面網址",
1174
- "slugHint": "僅限小寫字母、數字與連字號。只需填寫最後一段,其餘部分會自動補上。",
1175
- "slugTaken": "已有其他頁面使用此網址。",
1176
- "slugWarning": "變更網址會使指向此頁面的現有連結與書籤失效。",
1177
- "template": "範本",
1178
- "templateHint": "決定頁面可以承載哪些內容,之後可以變更。",
1179
- "group": "側邊欄群組",
1180
- "groupHint": "頁面出現在側邊欄的哪個區塊。",
1181
- "icon": "圖示",
1182
- "iconHint": "顯示在側邊欄中頁面名稱的旁邊。",
1183
- "visible": "在側邊欄中顯示",
1184
- "visibleHint": "隱藏的頁面仍可透過網址存取,只要對方有連結。",
1185
- "table": "資料表",
1186
- "tableCreateHint": "此頁面讀取的資料表。現在選擇即可直接使用;留空則可稍後再繫結。",
1187
- "tableNone": "未繫結",
1188
- "tableNeedsConnection": "請先選擇資料來源。",
1189
- "connection": "資料來源",
1190
- "connectionNone": "無",
1191
- "iconPick": "選擇頁面圖示",
1192
- "padding": "頁面內距",
1193
- "width": "內容寬度",
1194
- "widthHint": "在大螢幕上,頁面內容欄最多可以有多寬。"
1444
+ "baseUrl": "基礎 URL",
1445
+ "baseUrlHelper": "提供 /chat/completions 的端點根位址。",
1446
+ "baseUrlOptional": "除非 Ollama 執行於其他主機,否則保持不變。",
1447
+ "key": "API 金鑰",
1448
+ "keyMask": "sk-…{last4}",
1449
+ "keyOptional": "選填——部分端點不需要金鑰。",
1450
+ "keyReplace": "替換金鑰",
1451
+ "keyStored": "已加密儲存。替換它以使用其他金鑰。",
1452
+ "keyWriteOnly": "僅供寫入:一旦儲存即不再顯示。",
1453
+ "model": "模型",
1454
+ "modelFreeText": "輸入你的端點所提供的確切模型 ID。",
1455
+ "modelLive": "已從供應商即時載入。",
1456
+ "modelLoading": "載入中…",
1457
+ "modelPlaceholder": "選擇一個模型…",
1458
+ "modelStatic": "一份經過驗證的清單;儲存後輸入自訂 ID 可重新整理。",
1459
+ "noKeyBody": "Ollama 在本機執行,因此沒有任何內容離開這台機器。",
1460
+ "noKeyTitle": "不需要 API 金鑰"
1195
1461
  },
1196
- "editor": {
1197
- "title": "編輯頁面",
1198
- "save": "儲存變更",
1199
- "saveFailed": "無法儲存變更",
1200
- "openPage": "開啟頁面",
1201
- "generated": {
1202
- "title": "此頁面依您的結構描述產生",
1203
- "body": "重新產生時會保留您的修改:頁面會標記為已編輯並原樣保留。但刪除只在下次產生前有效,屆時頁面會重新建立。"
1462
+ "history": {
1463
+ "byo": "BYO",
1464
+ "colChunks": "區塊",
1465
+ "colDate": "日期",
1466
+ "colSource": "來源",
1467
+ "colStatus": "狀態",
1468
+ "connection": "連線",
1469
+ "directPath": "直連",
1470
+ "empty": "尚無增強執行。在連線精靈中增強結構描述後,紀錄將顯示於此。",
1471
+ "errorBody": "重新整理頁面以再試一次。",
1472
+ "errorTitle": "無法載入執行",
1473
+ "heading": "執行紀錄",
1474
+ "noConnections": "請先連線資料庫——增強執行會依連線分別記錄。",
1475
+ "openReview": "開啟 {date} 的執行審閱",
1476
+ "subtitle": "過往的增強執行。開啟其中一個以審閱其建議。",
1477
+ "tableLabel": "增強執行"
1478
+ },
1479
+ "provider": {
1480
+ "active": "使用中",
1481
+ "anthropic": {
1482
+ "desc": "透過 Anthropic API 使用 Claude 模型。",
1483
+ "label": "Anthropic"
1204
1484
  },
1205
- "contentUnavailable": "無法載入頁面內容",
1206
- "contentUnavailableBody": "上方的設定仍可儲存。",
1207
- "contentInvalid": "無法讀取此頁面的設定",
1208
- "contentInvalidBody": "設定由較新的版本寫入,或已損毀。請重新產生或刪除此頁面。",
1209
- "data": "資料",
1210
- "schemaFailed": "無法列出資料表",
1211
- "schemaFailedBody": "此連線可能尚未分析。請在「工作室 → 資料連線」中執行結構分析。",
1212
- "notBindable": "此範本不繫結單一資料表",
1213
- "notBindableBody": "它的內容由小工具逐一組成。開啟頁面並點選「編輯」即可加入。",
1214
- "recompose": "此頁面將重新建立",
1215
- "recomposeBody": "儲存後會依上方的範本與資料表用全新版面配置取代頁面內容。此頁面上的欄位調整與小工具變更將會遺失。",
1216
- "missing": "此頁面已不存在",
1217
- "missingBody": "它可能已被刪除,或被某次重新產生移除。",
1218
- "details": "詳細資訊",
1219
- "itemsPending": "請先儲存上方的變更——頁面內容將依新的範本與資料表重建。",
1220
- "columns": "欄位",
1221
- "appearance": "外觀"
1485
+ "heading": "AI 供應商",
1486
+ "networkDisabledBody": "此 Adminium 設定為無對外網路存取,無法連線服務商 API。請使用下方的複製貼上往返方式——不需金鑰,也不需連網。",
1487
+ "networkDisabledTitle": "此安裝已關閉直連 AI 服務商",
1488
+ "ollama": {
1489
+ "desc": "透過 Ollama 在本機執行模型——免金鑰,免雲端。",
1490
+ "label": "Ollama(本機)"
1491
+ },
1492
+ "openai": {
1493
+ "desc": "透過 OpenAI API 使用 GPT 模型。",
1494
+ "label": "OpenAI"
1495
+ },
1496
+ "openaiCompatible": {
1497
+ "desc": "任何使用 OpenAI 協定的端點——Groq、Together、vLLM、LM Studio。",
1498
+ "label": "相容 OpenAI"
1499
+ },
1500
+ "requiresNetwork": "需要網際網路與 API 金鑰",
1501
+ "subtitle": "選擇 Adminium 如何存取模型以增強你的結構描述。金鑰會加密儲存且不再顯示。"
1222
1502
  },
1223
- "sidebar": {
1224
- "help": "在群組內重新排序頁面,或將頁面移至其他群組。變更會對所有人生效。",
1225
- "discard": "捨棄",
1226
- "save": "儲存排序",
1227
- "saveFailed": "無法儲存新的排序",
1228
- "emptyGroup": "此群組中沒有頁面。",
1229
- "moveUp": "將 {title} 上移",
1230
- "moveDown": "將 {title} 下移",
1231
- "moveTo": "將 {title} 移至其他群組",
1232
- "ungrouped": {
1233
- "title": "有些頁面不屬於任何側邊欄群組",
1234
- "body": "這些頁面可透過網址存取,但不會出現在側邊欄中。請逐一開啟並選擇群組。"
1503
+ "runStatus": {
1504
+ "applied": "已套用",
1505
+ "awaitingResponse": "等待回應",
1506
+ "discarded": "已捨棄",
1507
+ "draft": "草稿",
1508
+ "failed": "失敗",
1509
+ "partiallyApplied": "部分套用",
1510
+ "running": "執行中",
1511
+ "validated": "已驗證"
1512
+ },
1513
+ "save": "儲存供應商",
1514
+ "saveFailed": "無法儲存 AI 供應商。請重試。",
1515
+ "saved": "AI 供應商已儲存",
1516
+ "subtitle": "連接一個模型,讓 Adminium 建議標籤、分組、關聯等——在套用之前一律以差異形式審閱。",
1517
+ "test": "測試連線",
1518
+ "testError": "測試失敗",
1519
+ "testErrorBody": "無法連線到供應商。請檢查金鑰與基礎 URL。",
1520
+ "testHintDirty": "測試前請先儲存變更。",
1521
+ "testOk": "已連線到 {model},耗時 {latency} 毫秒",
1522
+ "testUnknownModel": "供應商",
1523
+ "testing": "正在連線供應商…",
1524
+ "title": "AI 增強"
1525
+ },
1526
+ "settingsHub": {
1527
+ "addOnsCard": {
1528
+ "body": "瀏覽、安裝並連接外掛——額外的區塊、資料包與整合——或自行上傳一個。",
1529
+ "cta": "開啟外掛",
1530
+ "heading": "外掛"
1531
+ },
1532
+ "aiCard": {
1533
+ "body": "設定 AI 供應商(或複製貼上往返)以增強標籤、分組與關聯。",
1534
+ "cta": "開啟 AI 設定",
1535
+ "heading": "AI 增強"
1536
+ },
1537
+ "danger": {
1538
+ "deleteCta": "刪除連線",
1539
+ "deleteDesc": "刪除該連線及其產生的頁面。您的資料庫不會被更動。此操作無法復原。",
1540
+ "empty": "沒有可刪除的項目——尚無連線。",
1541
+ "heading": "危險區域",
1542
+ "subtitle": "不可逆的操作。"
1543
+ },
1544
+ "defaultsCard": {
1545
+ "body": "整個工作區的主題、強調色、密度與語言設定位於全域預設值。",
1546
+ "cta": "開啟全域預設值",
1547
+ "heading": "外觀與語言預設值"
1548
+ },
1549
+ "email": {
1550
+ "attachmentCap": {
1551
+ "error": "介於 {min, number} 到 {max, number} MB 之間。",
1552
+ "helper": "單封郵件可夾帶的附件總大小上限。",
1553
+ "label": "附件上限(MB)"
1554
+ },
1555
+ "from": {
1556
+ "error": "請輸入電子郵件位址。",
1557
+ "helper": "可只填位址,或在位址前加上顯示名稱。",
1558
+ "label": "寄件者位址"
1559
+ },
1560
+ "heading": "電子郵件 (SMTP)",
1561
+ "host": {
1562
+ "error": "只能填寫主機名稱或 IP 位址 — 不含通訊協定、連接埠或憑證。",
1563
+ "label": "SMTP 主機"
1564
+ },
1565
+ "pass": {
1566
+ "error": "此使用者名稱需要密碼。",
1567
+ "helper": "加密儲存且不會再顯示。留空即保留目前的密碼。",
1568
+ "label": "密碼"
1569
+ },
1570
+ "port": {
1571
+ "error": "介於 {min, number} 與 {max, number} 之間。",
1572
+ "label": "連接埠"
1573
+ },
1574
+ "remove": "移除郵件伺服器",
1575
+ "review": {
1576
+ "password": "已取代",
1577
+ "removed": "已移除"
1578
+ },
1579
+ "secure": {
1580
+ "helper": "連接埠 465 請開啟。關閉時以明文開始並透過 STARTTLS 升級,這正是連接埠 587 所預期的。",
1581
+ "label": "隱含式 TLS"
1582
+ },
1583
+ "senders": {
1584
+ "add": "新增寄件者",
1585
+ "address": "地址",
1586
+ "error": "請輸入電子郵件地址。",
1587
+ "heading": "寄件者",
1588
+ "helper": "郵件可使用的寄件地址。SMTP 寄件地址永遠可用。",
1589
+ "implicit": "SMTP 寄件地址",
1590
+ "name": "顯示名稱",
1591
+ "remove": "移除寄件者",
1592
+ "review": "寄件者"
1593
+ },
1594
+ "unconfigured": "尚未設定郵件伺服器,因此 Adminium 無法寄送密碼重設、使用者邀請或排程報表。",
1595
+ "user": {
1596
+ "helper": "若中繼不需驗證,請留空。",
1597
+ "label": "使用者名稱"
1235
1598
  }
1236
1599
  },
1237
- "columns": {
1238
- "help": "拖曳以重新排序欄位、重新命名欄位標題,並選擇哪些欄位顯示在表格中。",
1239
- "empty": "尚無欄位——請在下方新增。",
1240
- "pk": "主鍵",
1241
- "pii": "個人資料",
1242
- "header": "{name} 的欄位標題",
1243
- "shown": "顯示",
1244
- "toggle": "在表格中顯示 {name}",
1245
- "dragHandle": "調整 {name} 的順序",
1246
- "remove": "移除 {name}",
1247
- "addOpen": "新增欄位",
1248
- "addTitle": "新增欄位",
1249
- "addSearch": "搜尋欄位…",
1250
- "addFromTable": "來自 {table}",
1251
- "addFromLinked": "來自連結資料表",
1252
- "addLinkedHelp": "顯示連結欄位所指向資料表中的值。",
1253
- "addVia": "透過 {column}",
1254
- "addNoMatches": "沒有符合「{query}」的欄位。",
1255
- "followColumn": "跟隨 {name}",
1256
- "addLinkedFrom": "連結到此資料表的資料表",
1257
- "addLinkedFromHelp": "新增指向每筆記錄的資料列數。",
1258
- "countBadge": "計數",
1259
- "lookupBadge": "關聯",
1260
- "lookupBack": "返回",
1261
- "lookupBrowse": "選擇要從 {table} 顯示的內容",
1262
- "lookupBroken": "該關聯已無法解析",
1263
- "lookupBrokenBody": "瀏覽期間結構已變更。請重新開始關聯。",
1264
- "schemaUnavailable": "無法列出資料庫的欄位,因此這裡無法重新加入欄位。",
1265
- "none": {
1266
- "title": "此頁面尚無欄位",
1267
- "body": "產生頁面時會從資料表讀取欄位。請將此頁面繫結至資料表後重新產生。"
1600
+ "identity": {
1601
+ "appName": {
1602
+ "error": "請輸入不超過 60 個字元的名稱。",
1603
+ "helper": "顯示在側邊欄、瀏覽器標題與電子郵件中。",
1604
+ "label": "應用程式名稱"
1605
+ },
1606
+ "heading": "工作區識別",
1607
+ "logo": {
1608
+ "badType": "請選擇 PNG、JPEG、WebP、GIF 或 SVG 圖片。",
1609
+ "drop": "將圖片拖放到此處",
1610
+ "helper": "支援 PNG、JPEG、WebP、GIF 或 SVG,上限 1 MB。將在所有位置取代內建標誌。",
1611
+ "label": "標誌",
1612
+ "remove": "移除",
1613
+ "removed": "標誌已移除",
1614
+ "replace": "更換標誌",
1615
+ "tooLarge": "此圖片大於 1 MB。",
1616
+ "undo": "復原",
1617
+ "upload": "上傳標誌",
1618
+ "uploaded": "標誌已更新"
1619
+ },
1620
+ "showVersion": {
1621
+ "helper": "標誌旁的版本編號。關閉後將隱藏您執行的版本。",
1622
+ "label": "側邊欄中的版本"
1268
1623
  }
1269
1624
  },
1270
- "icon": {
1271
- "none": "選擇圖示",
1272
- "search": "搜尋圖示",
1273
- "noMatches": "沒有圖示符合此搜尋。"
1625
+ "pagesCard": {
1626
+ "body": "新增、編輯與刪除頁面,變更每個頁面的內容,並重新排列側邊欄。",
1627
+ "cta": "管理頁面",
1628
+ "heading": "頁面"
1274
1629
  },
1275
- "preview": {
1276
- "untitled": "未命名頁面",
1277
- "note": "這是版面示意圖,不是您的資料。儲存後真實頁面才會填入內容。"
1630
+ "publicApiCard": {
1631
+ "body": "讓你自己面向客戶或員工的頁面,透過你定義的範圍讀取這個資料庫。",
1632
+ "cta": "開啟公開 API",
1633
+ "heading": "公開 API"
1278
1634
  },
1279
- "padding": {
1280
- "default": "此範本的預設值",
1281
- "none": "",
1282
- "standard": "標準 (28 × 24)",
1283
- "custom": "自訂…",
1284
- "x": "左右 (px)",
1285
- "y": "上下 (px)"
1635
+ "review": {
1636
+ "cancel": "取消",
1637
+ "change": "{before} → {after}",
1638
+ "close": "關閉",
1639
+ "confirm": "儲存變更",
1640
+ "hidden": "隱藏",
1641
+ "off": "",
1642
+ "on": "開",
1643
+ "shown": "顯示",
1644
+ "subtitle": "儲存前請確認您的變更。",
1645
+ "title": "儲存工作區設定"
1286
1646
  },
1287
- "width": {
1288
- "default": "此範本的預設值",
1289
- "narrow": "窄(720px)",
1290
- "content": "內容(900px)",
1291
- "page": "頁面(1080px)",
1292
- "dash": "儀表板(1320px)",
1293
- "wide": "寬(1800px)",
1294
- "full": "全寬(不限制)"
1647
+ "save": "儲存變更",
1648
+ "saveFailed": "無法儲存工作區設定,請再試一次。",
1649
+ "saved": "工作區設定已更新",
1650
+ "security": {
1651
+ "allowSignup": {
1652
+ "desc": "任何人都可以建立帳戶——關閉後此工作區僅限邀請。",
1653
+ "label": "允許自行註冊"
1654
+ },
1655
+ "heading": "安全性",
1656
+ "passwordMin": {
1657
+ "error": "介於 {min, number} 到 {max, number} 個字元之間。",
1658
+ "label": "密碼最小長度"
1659
+ },
1660
+ "require2fa": {
1661
+ "desc": "每位成員都必須啟用雙重驗證才能登入。",
1662
+ "label": "強制雙重驗證",
1663
+ "note": "這是提示而非強制:未啟用雙重驗證的成員會被導向設定,之後也無法再關閉,但登入不會被阻擋,API 金鑰也不受影響。"
1664
+ },
1665
+ "sessionTtl": {
1666
+ "error": "介於 {min, number} 到 {max, number} 小時之間。",
1667
+ "label": "工作階段有效期(小時)"
1668
+ }
1669
+ },
1670
+ "storageCard": {
1671
+ "body": "選擇上傳的檔案、匯出檔與其他已儲存位元組要放在哪裡——本伺服器、儲存貯體,或你自己的伺服器。",
1672
+ "cta": "開啟儲存空間",
1673
+ "heading": "儲存空間"
1674
+ },
1675
+ "subtitle": "此工作區的識別、安全性與危險操作。",
1676
+ "superAdminOnly": "只有超級管理員才能變更工作區識別與安全性設定。",
1677
+ "superAdminOnlyTitle": "需要超級管理員",
1678
+ "title": "工作區設定",
1679
+ "translationsCard": {
1680
+ "body": "重寫 Adminium 中的任何文字,決定使用者可以選哪些語言,並加入你自己的語言。",
1681
+ "cta": "開啟翻譯",
1682
+ "heading": "語言與翻譯"
1295
1683
  }
1684
+ },
1685
+ "source": {
1686
+ "dsn": {
1687
+ "helper": "postgres://user:password@host:5432/database——mysql:// 與 sqlite: 也可使用。",
1688
+ "incomplete": "請補齊主機與資料庫,例如 postgres://user@host:5432/db",
1689
+ "invalidScheme": "無法辨識的協定——應為 postgres://、mysql://、mariadb:// 或 sqlite:",
1690
+ "label": "連線字串",
1691
+ "quickFill": "快速填入:"
1692
+ },
1693
+ "engine": {
1694
+ "label": "資料庫引擎",
1695
+ "mysql": "MySQL / MariaDB",
1696
+ "postgres": "PostgreSQL",
1697
+ "sqlite": "SQLite"
1698
+ },
1699
+ "fields": {
1700
+ "database": "資料庫",
1701
+ "host": "主機",
1702
+ "password": "密碼",
1703
+ "port": "連接埠",
1704
+ "preview": "連線字串預覽:",
1705
+ "ssl": "SSL 模式",
1706
+ "user": "使用者"
1707
+ },
1708
+ "file": {
1709
+ "columns": "欄",
1710
+ "detectedAs": "偵測到:{format}",
1711
+ "dropHint": "SQL DDL / pg_dump、Prisma、Drizzle、TypeORM、Sequelize、Rails schema.rb、Django 模型、Adminium JSON",
1712
+ "dropTitle": "將結構描述檔案拖放到此處,或瀏覽選取",
1713
+ "errorTitle": "無法解析該檔案",
1714
+ "moreWarnings": "還有 {count} 則警告——完整清單會在分析步驟顯示。",
1715
+ "parseFailed": "我們無法解析該檔案。如果自動偵測判斷錯誤,請明確選擇格式後重試。",
1716
+ "parsing": "正在讀取上傳的結構描述檔案…",
1717
+ "pitch": "無需資料庫連線——我們會解析你的結構描述檔案並建立相同的儀表板。",
1718
+ "requestFailed": "上傳失敗——請檢查網路連線後重試。",
1719
+ "tables": "個資料表",
1720
+ "unsupported": "無法辨識該格式——支援 SQL DDL、Prisma、Drizzle、TypeORM、Sequelize、Rails schema.rb、Django 模型與 Adminium JSON。請明確選擇一種後重試。",
1721
+ "warnings": "警告"
1722
+ },
1723
+ "format": {
1724
+ "auto": "自動偵測",
1725
+ "django": "Django models.py",
1726
+ "drizzle": "Drizzle ORM",
1727
+ "helper": "除非自動偵測判斷錯誤,否則保持自動偵測即可。",
1728
+ "json": "Adminium JSON",
1729
+ "label": "綱要格式",
1730
+ "prisma": "Prisma 綱要",
1731
+ "rails": "Rails schema.rb",
1732
+ "sequelize": "Sequelize 模型",
1733
+ "sql": "SQL DDL / pg_dump",
1734
+ "typeorm": "TypeORM 實體"
1735
+ },
1736
+ "mode": {
1737
+ "dsn": "連線字串",
1738
+ "fields": "逐項欄位",
1739
+ "file": "結構描述檔案"
1740
+ },
1741
+ "modeLabel": "來源輸入方式",
1742
+ "name": "連線名稱",
1743
+ "namePlaceholder": "正式環境 Postgres",
1744
+ "readOnlyRole": {
1745
+ "body": "設定期間 Adminium 只讀取結構描述中繼資料——絕不讀取你的資料列。建議使用僅具 SELECT 權限的專用使用者;Adminium 自己的資料表存放在哪裡,你可以在中繼資料儲存步驟中決定。",
1746
+ "title": "使用唯讀角色"
1747
+ },
1748
+ "sqlite": {
1749
+ "file": "資料庫檔案路徑",
1750
+ "helper": "SQLite 是檔案而非伺服器——請填寫執行 Adminium 的機器上的絕對路徑。"
1751
+ },
1752
+ "subtitle": "將 Adminium 指向資料庫,我們會根據其結構描述產生管理儀表板。",
1753
+ "title": "連接你的資料庫"
1754
+ },
1755
+ "storage": {
1756
+ "actionFailed": "這次沒有成功",
1757
+ "add": "新增目的地",
1758
+ "availableOnDisk": "此磁碟上有 {size} 可用",
1759
+ "default": "預設",
1760
+ "defaultBlockedByDisabled": "已停用的目的地無法設為預設。請先啟用它。",
1761
+ "delete": {
1762
+ "blockedBody": "{name} 仍存有 {count, plural, other {# 個檔案}}。請先把它們搬移到其他目的地,再刪除它。",
1763
+ "blockedTitle": "此目的地仍存有檔案",
1764
+ "body": "Adminium 會忘記 {name} 及其憑證。其中存放的內容不會被更動——儲存貯體或伺服器本身仍歸你所有;若仍有檔案記錄在它名下,刪除會被拒絕。",
1765
+ "confirm": "刪除目的地",
1766
+ "title": "刪除此目的地"
1767
+ },
1768
+ "deleteButton": "刪除",
1769
+ "disable": "停用",
1770
+ "disabled": "已停用",
1771
+ "driver": {
1772
+ "local": "這台機器上的路徑",
1773
+ "s3": "S3 相容的儲存貯體",
1774
+ "webdav": "WebDAV 伺服器"
1775
+ },
1776
+ "edit": "編輯",
1777
+ "editor": {
1778
+ "createTitle": "新增目的地",
1779
+ "editTitle": "編輯目的地",
1780
+ "subtitle": "Adminium 會代你透過此目的地讀寫;這是由你掌控的基礎設施。"
1781
+ },
1782
+ "enable": "啟用",
1783
+ "field": {
1784
+ "accessKeyId": "存取金鑰 ID",
1785
+ "bucket": "儲存貯體",
1786
+ "driver": "種類",
1787
+ "driverLocked": "變更已存有檔案的目的地種類,會讓那些檔案無法存取。",
1788
+ "endpoint": "端點",
1789
+ "endpointDerived": "使用 AWS 本身時請留空——端點會由區域推導而來。",
1790
+ "name": "名稱",
1791
+ "namePlaceholder": "上傳用儲存貯體",
1792
+ "password": "密碼",
1793
+ "pathStyle": "路徑式定址",
1794
+ "pathStyleToggle": "以路徑而非主機名稱定址儲存貯體",
1795
+ "prefix": "前綴",
1796
+ "prefixHelper": "目的地內的一個資料夾。同一個儲存貯體上只有這裡不同的兩個目的地,會共用該儲存貯體但不共用命名空間。",
1797
+ "preset": "供應商",
1798
+ "presetHelper": "會填入端點、區域與定址方式。供應商無從得知的帳戶資訊會留空,由你自行填寫。",
1799
+ "publicBaseUrl": "公開基礎 URL",
1800
+ "publicBaseUrlHelper": "選填。這些物件不經 Adminium 也能讀取的位址——例如公開儲存貯體前方的 CDN。只有在欄位儲存連結時才會用到。",
1801
+ "region": "區域",
1802
+ "root": "目錄",
1803
+ "rootHelper": "此伺服器可寫入的絕對路徑——掛載的磁碟區或網路共用。不要填預設目錄,它已經是清單中的第一項。",
1804
+ "secretAccessKey": "祕密存取金鑰",
1805
+ "secretKept": "已儲存一組金鑰。兩個欄位都留空即保留它;兩個都填寫則會取代它。",
1806
+ "url": "集合 URL",
1807
+ "urlHelper": "Adminium 寫入的集合,依你的伺服器公開它的形式填寫。",
1808
+ "username": "使用者名稱"
1809
+ },
1810
+ "fileCount": "{count, plural, other {# 個檔案}}",
1811
+ "kind": {
1812
+ "archive": "已封存的稽核記錄批次",
1813
+ "branding": "工作區標誌",
1814
+ "export": "資料匯出產生的檔案",
1815
+ "import": "上傳的 CSV 檔案及其錯誤報告",
1816
+ "schema": "匯入的結構描述檔案",
1817
+ "upload": "附加到記錄的檔案"
1818
+ },
1819
+ "list": {
1820
+ "subtitle": "新檔案會存入預設目的地。既有檔案在你搬移之前都留在原處。",
1821
+ "title": "目的地"
1822
+ },
1823
+ "loadFailed": {
1824
+ "forbidden": "變更檔案的存放位置需要「管理儲存空間」權限。請聯絡管理員將該權限授予你的其中一個角色。",
1825
+ "title": "無法載入目的地"
1826
+ },
1827
+ "localDisk": "本伺服器的磁碟",
1828
+ "move": {
1829
+ "from": "來源",
1830
+ "kinds": "限定為",
1831
+ "kindsHelp": "全部不勾選代表搬移所有種類。上傳檔案是大家附加的檔案;其餘都是 Adminium 自己產生的產物。",
1832
+ "open": "搬移檔案…",
1833
+ "start": "開始搬移",
1834
+ "startedBody": "它以背景工作 {jobId} 執行,即使你離開此頁面也會繼續。下方的計數會隨著檔案抵達而變動——請重新載入以查看。",
1835
+ "startedTitle": "搬移已開始",
1836
+ "subtitle": "把每個檔案從一個目的地複製到另一個,然後忘記舊的副本。整個過程中下載都照常運作。",
1837
+ "title": "搬移檔案",
1838
+ "to": "目標"
1839
+ },
1840
+ "preset": {
1841
+ "aws": "AWS S3",
1842
+ "b2": "Backblaze B2",
1843
+ "minio": "MinIO 或其他 S3 相容伺服器",
1844
+ "r2": "Cloudflare R2",
1845
+ "spaces": "DigitalOcean Spaces",
1846
+ "tigris": "Tigris",
1847
+ "wasabi": "Wasabi"
1848
+ },
1849
+ "save": "儲存目的地",
1850
+ "secret": {
1851
+ "partialBody": "兩個欄位都填寫才會取代已儲存的憑證,兩個都清空則保留它。只填其中一個,會在你毫無察覺的情況下沿用舊的那組。",
1852
+ "partialTitle": "只填一半的憑證不算憑證"
1853
+ },
1854
+ "setDefault": "設為預設",
1855
+ "status": {
1856
+ "error": "無法連線",
1857
+ "ok": "可連線",
1858
+ "untested": "尚未測試"
1859
+ },
1860
+ "subtitle": "此執行個體存放上傳檔案、匯出檔與其他已儲存位元組的位置。",
1861
+ "test": {
1862
+ "button": "測試",
1863
+ "failed": "無法連線到此目的地",
1864
+ "ok": "{ms} 毫秒內連線成功",
1865
+ "unreachable": "無法執行測試"
1866
+ },
1867
+ "title": "儲存空間",
1868
+ "usedBytes": "已使用 {size}"
1869
+ },
1870
+ "tables": {
1871
+ "emptyFilter": "沒有符合篩選條件的資料表。",
1872
+ "highVolume": "高資料量",
1873
+ "highVolumeNote": "超過 100,000 列的資料表預設不勾選——維運類資料表很少適合放進儀表板。",
1874
+ "importNoCounts": "綱要檔案不含資料列數——在連接即時資料庫之前,此欄會顯示 —。",
1875
+ "joinHidden": "{count} 個關聯/系統資料表已預先隱藏——它們仍支撐多對多關聯。",
1876
+ "listLabel": "可納入的資料表",
1877
+ "pii": "PII",
1878
+ "search": "篩選資料表…",
1879
+ "subtitle": "選擇要納入的資料表。之後可隨時變更。",
1880
+ "title": "選擇資料表"
1881
+ },
1882
+ "test": {
1883
+ "errorTitle": "連線失敗",
1884
+ "hint": {
1885
+ "auth": "驗證失敗——請檢查 DSN 中的使用者名稱與密碼。",
1886
+ "hostUnreachable": "無法連上主機——請檢查主機名稱與連接埠,並確認資料庫接受來自本機的連線(將我們的 IP 加入允許清單)。",
1887
+ "metaPlacement": "該資料來源無法承載 Adminium 的中繼資料表——請改用獨立的中繼資料庫繼續。",
1888
+ "permission": "該角色已連線,但缺少讀取結構描述的權限——請為內省角色授予該結構描述的 USAGE 權限。",
1889
+ "timeout": "資料庫未及時回應——請檢查網路路徑與負載後重試。",
1890
+ "tls": "TLS 交涉失敗——請嘗試 sslmode=require,或上傳伺服器所需的 CA 憑證。",
1891
+ "unknown": "連線失敗——請核對 DSN 後重試。"
1892
+ },
1893
+ "log": {
1894
+ "connectFailed": "連線失敗。",
1895
+ "connected": "已連線({latency} 毫秒)· 唯讀內省",
1896
+ "connecting": "正在建立安全連線…",
1897
+ "detected": "偵測到 {tables} 個資料表 · {columns} 欄",
1898
+ "found": "共找到 {tables} 個資料表 · {columns} 欄",
1899
+ "jobFailed": "內省失敗。",
1900
+ "mapping": "正在對應欄類型 → 輸入元件",
1901
+ "moreWarnings": "還有 {count} 則解析器警告",
1902
+ "networkFailed": "要求失敗——請檢查網路連線後重試。",
1903
+ "parsingFile": "正在解析 {file}…",
1904
+ "piiDone": "PII 掃描完成——預設遮罩 {count} 欄",
1905
+ "piiDoneUnknown": "PII 掃描完成",
1906
+ "piiScan": "正在掃描 PII 欄…",
1907
+ "readingFile": "正在讀取上傳的結構描述檔案…",
1908
+ "readingSchema": "正在讀取結構描述:public",
1909
+ "ready": "就緒",
1910
+ "relations": "正在偵測關聯…"
1911
+ },
1912
+ "logLabel": "內省記錄",
1913
+ "retry": "重試",
1914
+ "subtitle": "正在內省資料表、欄與關聯。這需要幾秒鐘。",
1915
+ "title": "正在分析你的結構描述",
1916
+ "trust": "我們只讀取你的結構描述與資料,不會進行任何修改。"
1917
+ },
1918
+ "title": "Studio",
1919
+ "wizard": {
1920
+ "back": "返回",
1921
+ "bridgeAppliedBody": "由你的瀏覽器從 adminium.dev 直接交給本機——它從未被上傳到任何伺服器。請在下方核對後繼續。",
1922
+ "bridgeAppliedTitle": "已收到連線字串",
1923
+ "bridgeFailedBody": "它已被使用或已過期。請改為在下方貼上你的連線字串。",
1924
+ "bridgeFailedTitle": "無法使用這次交接",
1925
+ "continue": "繼續",
1926
+ "persistFailed": "無法儲存你的資料表選擇——請重試。",
1927
+ "persistFailedTitle": "儲存失敗",
1928
+ "progress": "設定進度",
1929
+ "step": {
1930
+ "enrich": "豐富",
1931
+ "generate": "產生",
1932
+ "intent": "意圖",
1933
+ "meta": "中繼資料儲存",
1934
+ "source": "來源",
1935
+ "tables": "資料表",
1936
+ "test": "分析"
1937
+ },
1938
+ "title": "新增連線"
1296
1939
  }
1297
1940
  };
1298
1941
  //# sourceMappingURL=studio.js.map