diff --git a/client/package-lock.json b/client/package-lock.json
index 3cd3854..9923673 100644
--- a/client/package-lock.json
+++ b/client/package-lock.json
@@ -23,7 +23,7 @@
"@types/uuid": "^10.0.0",
"@yudiel/react-qr-scanner": "^1.2.10",
"antd": "^5.25.4",
- "axios": "^1.9.0",
+ "axios": "^1.12.2",
"html-to-image": "^1.11.13",
"i18next": "^25.2.1",
"i18next-browser-languagedetector": "^8.1.0",
@@ -53,7 +53,7 @@
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.20",
"typescript": "^5.8.3",
- "vite": "^6.3.5",
+ "vite": "^6.4.1",
"vite-plugin-mkcert": "^1.17.8"
},
"engines": {
@@ -1468,6 +1468,45 @@
"url": "https://github.com/sponsors/nzakas"
}
},
+ "node_modules/@inquirer/external-editor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz",
+ "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chardet": "^2.1.1",
+ "iconv-lite": "^0.7.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/external-editor/node_modules/iconv-lite": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.1.tgz",
+ "integrity": "sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
"node_modules/@isaacs/cliui": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
@@ -3673,12 +3712,13 @@
}
},
"node_modules/axios": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz",
- "integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==",
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz",
+ "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==",
+ "license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6",
- "form-data": "^4.0.0",
+ "form-data": "^4.0.4",
"proxy-from-env": "^1.1.0"
}
},
@@ -3738,23 +3778,24 @@
}
},
"node_modules/body-parser": {
- "version": "1.20.3",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
- "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
+ "version": "1.20.4",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz",
+ "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "bytes": "3.1.2",
+ "bytes": "~3.1.2",
"content-type": "~1.0.5",
"debug": "2.6.9",
"depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.13.0",
- "raw-body": "2.5.2",
+ "destroy": "~1.2.0",
+ "http-errors": "~2.0.1",
+ "iconv-lite": "~0.4.24",
+ "on-finished": "~2.4.1",
+ "qs": "~6.14.0",
+ "raw-body": "~2.5.3",
"type-is": "~1.6.18",
- "unpipe": "1.0.0"
+ "unpipe": "~1.0.0"
},
"engines": {
"node": ">= 0.8",
@@ -3770,12 +3811,43 @@
"ms": "2.0.0"
}
},
+ "node_modules/body-parser/node_modules/http-errors": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "depd": "~2.0.0",
+ "inherits": "~2.0.4",
+ "setprototypeof": "~1.2.0",
+ "statuses": "~2.0.2",
+ "toidentifier": "~1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
"node_modules/body-parser/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"dev": true
},
+ "node_modules/body-parser/node_modules/statuses": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
+ "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/boxen": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz",
@@ -3886,28 +3958,11 @@
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
- "node_modules/call-bind": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
- "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "set-function-length": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/call-bind-apply-helpers": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
@@ -3921,6 +3976,22 @@
"node": ">= 0.4"
}
},
+ "node_modules/call-bound": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.2",
+ "get-intrinsic": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@@ -4047,10 +4118,11 @@
}
},
"node_modules/chardet": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
- "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
- "dev": true
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz",
+ "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/classnames": {
"version": "2.5.1",
@@ -4458,22 +4530,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/define-data-property": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
- "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "gopd": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -5100,39 +5156,40 @@
}
},
"node_modules/express": {
- "version": "4.21.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
- "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
+ "version": "4.22.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz",
+ "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "1.20.3",
- "content-disposition": "0.5.4",
+ "body-parser": "~1.20.3",
+ "content-disposition": "~0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.7.1",
- "cookie-signature": "1.0.6",
+ "cookie": "~0.7.1",
+ "cookie-signature": "~1.0.6",
"debug": "2.6.9",
"depd": "2.0.0",
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "finalhandler": "1.3.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
+ "finalhandler": "~1.3.1",
+ "fresh": "~0.5.2",
+ "http-errors": "~2.0.0",
"merge-descriptors": "1.0.3",
"methods": "~1.1.2",
- "on-finished": "2.4.1",
+ "on-finished": "~2.4.1",
"parseurl": "~1.3.3",
- "path-to-regexp": "0.1.12",
+ "path-to-regexp": "~0.1.12",
"proxy-addr": "~2.0.7",
- "qs": "6.13.0",
+ "qs": "~6.14.0",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
- "send": "0.19.0",
- "serve-static": "1.16.2",
+ "send": "~0.19.0",
+ "serve-static": "~1.16.2",
"setprototypeof": "1.2.0",
- "statuses": "2.0.1",
+ "statuses": "~2.0.1",
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
@@ -5183,20 +5240,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/external-editor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
- "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
- "dev": true,
- "dependencies": {
- "chardet": "^0.7.0",
- "iconv-lite": "^0.4.24",
- "tmp": "^0.0.33"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -5800,10 +5843,11 @@
}
},
"node_modules/gray-matter/node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "version": "3.14.2",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
+ "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
@@ -5851,17 +5895,6 @@
"node": ">=8"
}
},
- "node_modules/has-property-descriptors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
- "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
- "dependencies": {
- "es-define-property": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/has-symbols": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
@@ -6156,16 +6189,17 @@
"integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q=="
},
"node_modules/inquirer": {
- "version": "8.2.6",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz",
- "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==",
+ "version": "8.2.7",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.7.tgz",
+ "integrity": "sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
+ "@inquirer/external-editor": "^1.0.0",
"ansi-escapes": "^4.2.1",
"chalk": "^4.1.1",
"cli-cursor": "^3.1.0",
"cli-width": "^3.0.0",
- "external-editor": "^3.0.3",
"figures": "^3.0.0",
"lodash": "^4.17.21",
"mute-stream": "0.0.8",
@@ -6414,9 +6448,10 @@
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
"node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+ "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -6623,10 +6658,11 @@
}
},
"node_modules/load-yaml-file/node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "version": "3.14.2",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
+ "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
@@ -7435,9 +7471,10 @@
}
},
"node_modules/object-inspect": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
- "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
+ "version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -7535,15 +7572,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/os-tmpdir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/p-limit": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
@@ -8059,11 +8087,12 @@
}
},
"node_modules/qs": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
- "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+ "version": "6.14.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz",
+ "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==",
+ "license": "BSD-3-Clause",
"dependencies": {
- "side-channel": "^1.0.6"
+ "side-channel": "^1.1.0"
},
"engines": {
"node": ">=0.6"
@@ -8119,20 +8148,52 @@
}
},
"node_modules/raw-body": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
- "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz",
+ "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
+ "bytes": "~3.1.2",
+ "http-errors": "~2.0.1",
+ "iconv-lite": "~0.4.24",
+ "unpipe": "~1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
+ "node_modules/raw-body/node_modules/http-errors": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "depd": "~2.0.0",
+ "inherits": "~2.0.4",
+ "setprototypeof": "~1.2.0",
+ "statuses": "~2.0.2",
+ "toidentifier": "~1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/raw-body/node_modules/statuses": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
+ "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/rc-cascader": {
"version": "3.34.0",
"resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.34.0.tgz",
@@ -9322,22 +9383,6 @@
"resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz",
"integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ=="
},
- "node_modules/set-function-length": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
- "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
- "dependencies": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
"node_modules/setprototypeof": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
@@ -9387,14 +9432,69 @@
}
},
"node_modules/side-channel": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
- "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
"es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "object-inspect": "^1.13.1"
+ "object-inspect": "^1.13.3",
+ "side-channel-list": "^1.0.0",
+ "side-channel-map": "^1.0.1",
+ "side-channel-weakmap": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-list": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-weakmap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3",
+ "side-channel-map": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -9786,18 +9886,6 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/tmp": {
- "version": "0.0.33",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
- "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
- "dev": true,
- "dependencies": {
- "os-tmpdir": "~1.0.2"
- },
- "engines": {
- "node": ">=0.6.0"
- }
- },
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -10233,10 +10321,11 @@
}
},
"node_modules/vite": {
- "version": "6.3.5",
- "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz",
- "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==",
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz",
+ "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"esbuild": "^0.25.0",
"fdir": "^6.4.4",
diff --git a/client/package.json b/client/package.json
index 4cd4a14..f74c260 100644
--- a/client/package.json
+++ b/client/package.json
@@ -22,7 +22,7 @@
"@types/uuid": "^10.0.0",
"@yudiel/react-qr-scanner": "^1.2.10",
"antd": "^5.25.4",
- "axios": "^1.9.0",
+ "axios": "^1.12.2",
"html-to-image": "^1.11.13",
"i18next": "^25.2.1",
"i18next-browser-languagedetector": "^8.1.0",
@@ -52,7 +52,7 @@
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.20",
"typescript": "^5.8.3",
- "vite": "^6.3.5",
+ "vite": "^6.4.1",
"vite-plugin-mkcert": "^1.17.8"
},
"scripts": {
diff --git a/client/public/locales/cs/common.json b/client/public/locales/cs/common.json
index cf0e829..c384cef 100644
--- a/client/public/locales/cs/common.json
+++ b/client/public/locales/cs/common.json
@@ -12,13 +12,13 @@
"logout": "Odhlášení",
"delete": "Smazat",
"edit": "Upravit",
- "cancel": "Storno",
+ "cancel": "Zrušit",
"confirm": "Jste si jisti?",
"filter": "Filtr",
- "clear": "Přehled",
- "refresh": "Obnovit",
+ "clear": "Vymazat",
+ "refresh": "Znovu načíst",
"show": "Zobrazit",
- "undo": "Zpět",
+ "undo": "Vrátit zpět",
"import": "Import",
"clone": "Duplikovat",
"archive": "Archivovat",
@@ -27,14 +27,14 @@
"showArchived": "Zobrazit archivované",
"notAccessTitle": "Nemáte oprávnění k přístupu",
"hideColumns": "Skrýt sloupce",
- "clearFilters": "Zrušit filtry",
+ "clearFilters": "Vypnout filtry",
"saveAndAdd": "Uložit a přidat",
"continue": "Pokračovat"
},
"warnWhenUnsavedChanges": "Jste si jisti, že chcete odejít? Máte neuložené změny.",
"notifications": {
"success": "Úspěšné",
- "error": "Chyba (status code: {{statusCode}})",
+ "error": "Chyba (kód chyby: {{statusCode}})",
"undoable": "Máte {{seconds}} sekund na zrušení.",
"createSuccess": "Úspěšně vytvořeno {{resource}}",
"createError": "Při vytváření došlo k chybě {{resource}} (status code: {{statusCode}})",
@@ -59,7 +59,7 @@
},
"printing": {
"generic": {
- "title": "Tisk",
+ "title": "Probíhá tisk",
"description": "Níže uvedeným nastavením dosáhnete požadovaného rozložení tisku. Mějte na paměti, že tiskárny a váš operační systém mohou použít vlastní okraje a měřítka, takže možná budete muset provést několik pokusů a omylů, než bude vše správně nastaveno. Před tiskem na skutečné štítky si to vyzkoušejte na kousku běžného papíru.",
"helpMargin": "Okraje by měly být nastaveny tak, aby odpovídaly papíru na štítky a tiskárně, jejich změna ovlivní velikost celé mřížky.",
"helpPrinterMargin": "Bezpečná zóna by měla být nastavena tak, jak blízko okraje papíru může tiskárna tisknout, jejich změna neovlivní celou mřížku.",
diff --git a/client/public/locales/de/common.json b/client/public/locales/de/common.json
index d032d3a..0cb571d 100644
--- a/client/public/locales/de/common.json
+++ b/client/public/locales/de/common.json
@@ -31,7 +31,7 @@
"saveAndAdd": "Speichern und hinzufügen",
"continue": "Weiter"
},
- "warnWhenUnsavedChanges": "Bist du sicher, dass du die Seite verlassen willst? Du hast ungespeicherte Änderungen.",
+ "warnWhenUnsavedChanges": "Sicher? Es sind nicht gespeicherte Änderungen vorhanden.",
"notifications": {
"success": "Erfolgreich",
"error": "Fehler (status code: {{statusCode}})",
@@ -349,7 +349,9 @@
},
"kofi": "Schick mir ein Trinkgeld über Ko-fi",
"home": {
- "home": "Home"
+ "home": "Home",
+ "welcome": "Willkommen auf deiner Spoolman Instanz!",
+ "description": "Es sieht so aus, als hättest du noch keine Spulen hinzugefügt. Schau auf unsere
Jei reikia, gamintojo objektas bus sukurtas automatiškai, kai spustelėsite „Gerai“."
+ },
+ "buttons": {
+ "add_spool": "Pridėti ritę"
+ }
+ },
+ "vendor": {
+ "vendor": "Gamintojai",
+ "fields": {
+ "id": "ID",
+ "name": "Pavadinimas",
+ "empty_spool_weight": "Tuščios ritės svoris",
+ "external_id": "Išorinis ID",
+ "registered": "Registruota",
+ "comment": "Komentaras"
+ },
+ "fields_help": {
+ "empty_spool_weight": "Tuščios šio gamintojo ritės svoris."
+ },
+ "titles": {
+ "create": "Sukurti gamintoją",
+ "clone": "Klonuoti gamintoją",
+ "edit": "Redaguoti gamintoją",
+ "list": "Gamintojai",
+ "show": "Rodyti gamintojus",
+ "show_title": "[Gamintojas #{{id}}] {{name}}"
+ },
+ "form": {
+ "vendor_updated": "Šio gamintojo duomenis atnaujino kažkas kitas nuo tada, kai atidarėte šį puslapį. Išsaugojus šiuos pakeitimus bus perrašyti!"
+ }
+ },
+ "home": {
+ "home": "Pradžia",
+ "welcome": "Sveiki atvykę į savo Spoolman!",
+ "description": "Panašu, kad dar nepridėjote jokių ričių. Norėdami gauti pagalbos, kaip pradėti, žr.
Štai keli patarimai, padėsiantys jums pradėti.
Spoolman saugo 3 skirtingų tipų duomenis:
Norėdami į duomenų bazę įtraukti naują ritę, pirmiausia sukurkite objektą
Pasirinktinai taip pat galite sugeneruoti objektą
Galite susieti su Spoolman kitas 3D spausdinimo paslaugas, pvz., „Moonraker“, kuri gali automatiškai stebėti siūlo naudojimą ir atnaujinti „Ritė“ objektus. Kaip tai nustatyti, žr.
Čia galite pridėti papildomų pasirinktinių laukų prie savo objektų.
Pridėjus lauką, negalite keisti jo rakto ar tipo, o pasirinkimų tipo laukų negalite pašalinti pasirinkimų ar pakeisti kelių pasirinkimų būsenos. Jei pašalinsite lauką, bus ištrinti su visais objektais susiję duomenys.
Raktas yra tai, kaip kitos programos skaito / rašo duomenis, todėl jei jūsų pasirinktinis laukas turėtų būti integruotas su trečiosios šalies programa, įsitikinkite, kad jis nustatytas teisingai. Numatytoji reikšmė taikoma tik naujiems elementams.
Papildomų laukų negalima rūšiuoti ar filtruoti lentelės rodiniuose.
", + "params": { + "key": "Raktas", + "name": "Pavadinimas", + "field_type": "Tipas", + "unit": "Vienetas", + "order": "Tvarka", + "default_value": "Numatytoji reikšmė", + "choices": "Pasirinkimai", + "multi_choice": "Keli pasirinkimai" + }, + "field_type": { + "text": "Tekstas", + "integer": "Skaičius", + "integer_range": "Sveiki skaičiai", + "float": "Realus skaičius", + "float_range": "Realūs skaičiai", + "datetime": "Data Laikas", + "boolean": "Loginis", + "choice": "Pasirinkimas" + }, + "boolean_true": "Taip", + "boolean_false": "Ne", + "choices_missing_error": "Negalite pašalinti pasirinkimų. Trūksta šių pasirinkimų: {{choices}}", + "non_unique_key_error": "Raktas turi būti unukalus.", + "key_not_changed": "Prašome pakeisti raktą į ką nors kitą.", + "delete_confirm": "Šalinti lauką {{name}}?", + "delete_confirm_description": "Tai ištrins lauką ir visus susijusius duomenis visiems objektams." + } + }, + "documentTitle": { + "default": "Spoolman", + "suffix": " | Spoolman", + "home": { + "list": "Pradžia | Spoolman" + }, + "help": { + "list": "Pagalba | Spoolman" + }, + "locations": { + "list": "Vieta | Spoolman" + }, + "filament": { + "list": "Gijos | Spoolman", + "show": "#{{id}} Rodyti gijas | Spoolman", + "edit": "#{{id}} Redaguoti gijas | Spoolman", + "create": "Kurti giją | Spoolman", + "clone": "#{{id}} Klonuoti giją | Spoolman" + }, + "spool": { + "list": "Ritės | Spoolman", + "show": "#{{id}} Rodyti rites| Spoolman", + "edit": "#{{id}} Redaguoti rites | Spoolman", + "create": "Kurti ritę | Spoolman", + "clone": "#{{id}} Klonuoti ritę | Spoolman" + }, + "vendor": { + "list": "Gamintojai | Spoolman", + "show": "#{{id}} Rodyti gamintojus | Spoolman", + "edit": "#{{id}} Redaguoti gamintojus | Spoolman", + "create": "Kurti gamintoją | Spoolman", + "clone": "#{{id}} Klonuoti gamintoją | Spoolman" + } + }, + "locations": { + "locations": "Vietos", + "new_location": "Nauja vieta", + "no_location": "Be vietos", + "no_locations_help": "Šiame puslapyje galite tvarkyti rites pagal vietas, pridėkite keletą ričių, kad pradėtumėte!" + } +} diff --git a/client/public/locales/nb-NO/common.json b/client/public/locales/nb-NO/common.json index 3886563..f986397 100644 --- a/client/public/locales/nb-NO/common.json +++ b/client/public/locales/nb-NO/common.json @@ -42,7 +42,12 @@ "vendor": "Leverandør", "settings_bed_temp": "Printplate temp", "density": "Tetthet", - "spools": "Vis ruller" + "spools": "Vis ruller", + "single_color": "Ensfarget", + "multi_color": "Flerfarget", + "coaxial": "Koaksial", + "longitudinal": "Langsgående", + "external_id": "Ekstern ID" }, "fields_help": { "name": "Filamentnavn, for å skille denne filamenttypen blant andre fra samme leverandør. Bør inneholde fargen f.eks.", @@ -50,7 +55,8 @@ "spool_weight": "Vekten av en tom spole. Brukes til å bestemme målt vekt på en spole.", "price": "Pris på en full spole i den system- valutaen.", "weight": "Filamentvekten til en full spole (nettovekt). Bør ikke inkludere vekten av selve spolen, kun filamentet. Det er det som vanligvis står på emballasjen.", - "material": "F.eks PLA,ABS,PETG, osv." + "material": "F.eks PLA,ABS,PETG, osv.", + "multi_color_direction": "Retning av fargeovergang for flerfarget filament." }, "titles": { "clone": "Kopier Filament", @@ -62,7 +68,12 @@ }, "filament": "Filamenter", "form": { - "filament_updated": "Dette filamentet har blitt oppdatert av noen/noe siden du åpnet denne siden. Lagring nå vil overskrive disse endringene!" + "filament_updated": "Dette filamentet har blitt oppdatert av noen/noe siden du åpnet denne siden. Lagring nå vil overskrive disse endringene!", + "import_external": "Importer fra ekstern database", + "import_external_description": "Hent filamentdata automatisk fra en ekstern kilde." + }, + "buttons": { + "add_spool": "Legg til spole" } }, "printing": { @@ -106,7 +117,8 @@ "settingsName": "Navn på mal", "saveSetting": "Lagre mal", "settings": "Maler", - "saveAsImage": "Lagre som bilde" + "saveAsImage": "Lagre som bilde", + "itemCopies": "Antall kopier" }, "qrcode": { "showTemperatures": "Temperaturer", @@ -131,7 +143,17 @@ "no": "Nei", "withIcon": "Med ikon" }, - "showQRCode": "Print QR-kode" + "showQRCode": "Print QR-kode", + "useHTTPUrl": { + "label": "QR-kodelenke", + "options": { + "default": "Standard", + "url": "URL" + }, + "preview": "Forhåndsvisning:", + "tooltip": "Velg om QR-koden skal bruke HTTP- eller intern URL." + }, + "templateHelp": "Velg hvilken etikettemplate du ønsker å bruke." }, "spoolSelect": { "showArchived": "Vis arkiverte", @@ -177,7 +199,8 @@ "create": "Opprett spole", "clone": "Klon spole", "show_title": "[Spole #{{id}}] {{name}}", - "list": "Spoler" + "list": "Spoler", + "adjust": "Juster spolefilament" }, "spool": "Spoler", "messages": { @@ -197,7 +220,17 @@ }, "form": { "new_location_prompt": "Skriv inn en ny lokasjon", - "spool_updated": "Denne rullen har blitt oppdatert av noen/noe siden du åpnet denne siden. Lagre nå vil overskrive disse endringene!" + "spool_updated": "Denne rullen har blitt oppdatert av noen/noe siden du åpnet denne siden. Lagre nå vil overskrive disse endringene!", + "measurement_type": { + "length": "Lengde", + "weight": "Vekt" + }, + "measurement_type_label": "Måleenhet", + "adjust_filament_help": "Justér verdien hvis målt filamentmengde avviker fra forventet.", + "adjust_filament_value": "Juster mengde" + }, + "formats": { + "last_used": "Sist brukt {{date}}" } }, "yes": "Ja", @@ -207,7 +240,9 @@ "registered": "Registrert", "name": "Navn", "id": "ID", - "comment": "Kommentar" + "comment": "Kommentar", + "empty_spool_weight": "Tom spolevekt", + "external_id": "Ekstern ID" }, "titles": { "show_title": "[Leverandør #{{id}}] {{name}}", @@ -220,6 +255,9 @@ "vendor": "Leverandører", "form": { "vendor_updated": "Denne leverandøren har blitt oppdatert av noen/noe siden du åpnet denne siden. Lagring nå vil overskrive disse endringene!" + }, + "fields_help": { + "empty_spool_weight": "Vekten av en tom spole for denne leverandøren." } }, "actions": { @@ -284,14 +322,17 @@ "edit": "#{{id}} Endre Filament | Spoolman" }, "home": { - "list": "" + "list": "Hjem | Spoolman" }, "help": { - "list": "" + "list": "Hjelp | Spoolman" + }, + "locations": { + "list": "Lokasjoner | Spoolman" } }, "table": { - "actions": "Handliger" + "actions": "Handlinger" }, "warnWhenUnsavedChanges": "Er du sikker på at du vil forlate? Du har ulagrede endringer.", "dashboard": { @@ -299,15 +340,72 @@ }, "kofi": "Gi meg tips på Ko-fi", "home": { - "home": "" + "home": "Hjem", + "welcome": "Velkommen til Spoolman!", + "description": "Det ser ut som du ikke har lagt til noen spoler ennå. SeHer er noen tips for å komme i gang.
Spoolman inneholder tre forskjellige typer data:
For å legge til en ny spole i databasen, start med å opprette et
Alternativt kan du også generere et
Du har muligheten til å koble andre 3D-printertjenester til Spoolman, som Moonraker, som automatisk kan overvåke filamentbruk og oppdatere spoleobjektene for deg. Se
Her kan du legge til ekstra tilpassede felt til enhetene dine.
Når et felt er lagt til, kan du ikke endre nøkkelen eller typen, og for valgtypefelt kan du ikke fjerne valg eller endre flervalgsstatusen. Hvis du fjerner et felt, slettes de tilknyttede dataene for alle enheter.
Nøkkelen er det andre programmer leser/skriver dataene som, så hvis det tilpassede feltet ditt skal integreres med et tredjepartsprogram, må du sørge for å angi det riktig. Standardverdien brukes bare på nye elementer.
Ekstra felt kan ikke sorteres eller filtreres i tabellvisningene.
", + "params": { + "key": "Nøkkel", + "name": "Navn", + "field_type": "Felttype", + "unit": "Enhet", + "order": "Rekkefølge", + "default_value": "Standardverdi", + "choices": "Valg", + "multi_choice": "Flervalg" + }, + "field_type": { + "text": "Tekst", + "integer": "Heltall", + "integer_range": "Heltallsområde", + "float": "Desimaltall", + "float_range": "Desimalområde", + "datetime": "Dato/Tid", + "boolean": "Ja/Nei", + "choice": "Valg" + }, + "boolean_true": "Ja", + "boolean_false": "Nei", + "choices_missing_error": "Du kan ikke fjerne valg. Følgende valg mangler: {{choices}}", + "non_unique_key_error": "Nøkkelen må være unik.", + "key_not_changed": "Nøkkelen kan ikke endres.", + "delete_confirm": "Slette felt {{name}}?", + "delete_confirm_description": "Dette vil fjerne feltet permanent fra systemet." + } } } diff --git a/client/public/locales/pt-BR/common.json b/client/public/locales/pt-BR/common.json index 4da3cd1..349c6fe 100644 --- a/client/public/locales/pt-BR/common.json +++ b/client/public/locales/pt-BR/common.json @@ -294,7 +294,7 @@ "home": { "home": "Início", "welcome": "Bem-vindo à sua instância do Spoolman!", - "description": "Parece que você ainda não adicionou nenhum carretel. Veja aIată câteva sfaturi pentru a te ajuta să începi.
Spoolman are 3 tipuri diferite de date:
Pentru a adăuga o nouă rolă în baza de date, începe prin a crea un obiect
Opțional, poți genera și un obiect
Ai opțiunea de a lega alte servicii pentru imprimante 3D de Spoolman, cum ar fi Moonraker, care poate monitoriza automat utilizarea filamentului și actualiza obiectele Rolă pentru tine. Consultă
Aici poți adăuga câmpuri suplimentare personalizate entităților tale.
Odată ce un câmp este adăugat, nu poți schimba cheia sau tipul acestuia, iar pentru câmpurile de tip alegere nu poți elimina opțiunile sau schimba starea de alegere multiplă. Dacă elimini un câmp, datele asociate pentru toate entitățile vor fi șterse.
Cheia este ceea ce alte programe folosesc pentru a citi/scrie date, așa că, dacă câmpul tău personalizat ar trebui să se integreze cu un program de terță parte, asigură-te că îl setezi corect. Valoarea implicită se aplică doar articolelor noi.
Câmpurile suplimentare nu pot fi sortate sau filtrate în tabele.
", + "params": { + "key": "Cheie", + "name": "Nume", + "field_type": "Tip", + "unit": "Unitate", + "order": "Stoc", + "default_value": "Valoarea implicită", + "choices": "Selecții", + "multi_choice": "Selecție multiplă" + }, + "field_type": { + "text": "Text", + "integer": "Întreg", + "integer_range": "Interval întreg", + "float": "Număr zecimal", + "float_range": "Interval de numere zecimale", + "datetime": "Dată/timp", + "boolean": "Boolean", + "choice": "Selecție" + }, + "boolean_true": "Da", + "boolean_false": "Nu", + "choices_missing_error": "Nu poți înlătura selecții. Următoarele selecții lipsesc: {{choices}}", + "non_unique_key_error": "Cheia trebuie să fie unică.", + "key_not_changed": "Te rog să schimbi cheia.", + "delete_confirm": "Ștergi câmpul{{name}}?", + "delete_confirm_description": "Ștergerea câmpului și a tuturor datelor asociate pentru toate entitățile." + } + }, + "locations": { + "locations": "Zone", + "new_location": "Zonă nouă", + "no_location": "Fără zonă", + "no_locations_help": "Această pagină îți permite să îți organizezi rolele în zone, adaugă câteva role pentru a începe!" } } diff --git a/client/public/locales/ru/common.json b/client/public/locales/ru/common.json index b0a45bf..b73ee07 100644 --- a/client/public/locales/ru/common.json +++ b/client/public/locales/ru/common.json @@ -188,7 +188,7 @@ "fields_help": { "used_weight": "Сколько филамента было использовано с катушки. На новой катушке должно быть использовано 0 г.", "location": "Где находится катушка, если у вас есть несколько мест хранения катушек.", - "lot_nr": "Номер партии производителя. Может использоваться для обеспечения однородного цвета отпечатка при использовании нескольких катушек.", + "lot_nr": "Номер партии производителя. Может использоваться для обеспечения однородного цвета печати при использовании нескольких катушек.", "weight_to_use": "Выберите, какое значение веса ввести. Измеренный вес доступен только в том случае, если вес катушки установлен для выбранной филамента.", "measured_weight": "Сколько весит филамент и катушка.", "remaining_weight": "Сколько филамента осталось на катушке. Для новой катушки этот вес должен соответствовать весу катушки.", @@ -350,7 +350,9 @@ }, "kofi": "Поддержите меня на Ko-fi", "home": { - "home": "Главная" + "home": "Главная", + "welcome": "Добро пожаловать в ваш личный Spoolman!", + "description": "Похоже, что вы ещё не добавили ни одной катушки. ПосетитеBaşlamak için bazı ipuçları:
Spoolman üç farklı veri türünü tutar:
Veritabanına yeni bir makara eklemek için önce bir
İsterseniz, filamentin üreticisi olan firma için bir
Ayrıca, filament kullanımını otomatik olarak takip edip Makara nesnelerini güncelleyebilen Moonraker gibi diğer 3D yazıcı servislerini Spoolman ile bağlama seçeneğiniz vardır. Kurulum için
Burada varlıklarınıza ekstra özel alanlar ekleyebilirsiniz.
Bir alan eklendikten sonra, anahtarını (key) veya türünü değiştiremezsiniz; seçim türündeki alanlarda ise seçenekleri kaldıramaz veya çoklu seçim durumunu değiştiremezsiniz. Bir alanı silerseniz, o alana bağlı tüm varlıkların verileri silinir.
Anahtar, diğer programların veriyi okuduğu/yazdığı isimdir; bu nedenle, özel alanınız üçüncü taraf bir programla entegrasyon için kullanılacaksa doğru şekilde ayarlandığından emin olun. Varsayılan değer yalnızca yeni öğelere uygulanır.
Ekstra alanlar tablo görünümünde sıralanamaz veya filtrelenemez.
", + "params": { + "key": "Anahtar", + "name": "İsim", + "field_type": "Tür", + "unit": "Birim", + "order": "Sipariş", + "default_value": "Varsayılan Değer", + "choices": "Seçenekler", + "multi_choice": "Çoklu Seçim" + }, + "field_type": { + "text": "Metin", + "integer": "Tam Sayı", + "integer_range": "Tam Sayı Aralık", + "float": "Ondalıklı Sayı", + "float_range": "Ondalıklı Sayı Aralığı", + "datetime": "Tarih+Saat", + "boolean": "İkili Değer", + "choice": "Seçim Listesi" + }, + "boolean_true": "Evet", + "boolean_false": "Hayır", + "choices_missing_error": "Seçenekleri kaldıramazsınız. Aşağıdaki seçenekler eksik: {{choices}}", + "non_unique_key_error": "Anahtar benzersiz olmalıdır.", + "key_not_changed": "Lütfen anahtarı başka bir şeyle değiştirin.", + "delete_confirm": "{{name}} alanı silinsin mi?", + "delete_confirm_description": "Bu işlem alanı ve ona bağlı tüm varlıkların verilerini silecektir." + } + }, + "documentTitle": { + "default": "Spoolman", + "suffix": " | Spoolman", + "home": { + "list": "Ana Sayfa | Spoolman" + }, + "help": { + "list": "Yardım | Spoolman" + }, + "locations": { + "list": "Konumlar | Spoolman" + }, + "filament": { + "list": "Filamentler | Spoolman", + "show": "#{{id}} Filament Görüntüle | Spoolman", + "edit": "#{{id}} Filament Düzenle | Spoolman", + "create": "Filament Oluştur | Spoolman", + "clone": "#{{id}} Filament Kopyala | Spoolman" + }, + "spool": { + "list": "Makaralar | Spoolman", + "show": "#{{id}} Makara Göster | Spoolman", + "edit": "#{{id}} Makara Düzenle | Spoolman", + "create": "Makara Oluştur | Spoolman", + "clone": "#{{id}}Makara Kopyala | Spoolman" + }, + "vendor": { + "list": "Üreticiler | Spoolman", + "show": "#{{id}} Üretici Göster | Spoolman", + "edit": "#{{id}} Üretici Düzenle | Spoolman", + "create": "Üretici Oluştur | Spoolman", + "clone": "#{{id}} Üretici Kopyala | Spoolman" + } + }, + "locations": { + "locations": "Konumlar", + "new_location": "Yeni Konum", + "no_location": "Konum Yok", + "no_locations_help": "Bu sayfa, makaralarınızı konumlara göre düzenlemenizi sağlar. Başlamak için birkaç makara ekleyin!" + } +}