Merge branch 'master' into spool_count

This commit is contained in:
JakobGue
2026-01-02 16:02:00 +01:00
committed by GitHub
15 changed files with 1414 additions and 259 deletions

427
client/package-lock.json generated
View File

@@ -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",

View File

@@ -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": {

View File

@@ -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.",

View File

@@ -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 <helpPageLink>Hilfeseite</helpPageLink>, falls du Hilfe beim Start benötigst."
},
"settings": {
"header": "Einstellungen",

View File

@@ -350,7 +350,9 @@
},
"kofi": "Donar en Ko-fi",
"home": {
"home": "Inicio"
"home": "Inicio",
"welcome": "¡Bienvenido a tu instancia de Spoolman!",
"description": "Parece que aún no has añadido ninguna bobina aún. Visita la <helpPageLink>página de ayuda</helpPageLink> para comenzar."
},
"settings": {
"header": "Ajustes",
@@ -366,6 +368,10 @@
"show_spool_count": {
"label": "Mostrar cantidad de bobinas",
"tooltip": "Mostrar el número de bobinas para cada ubicación."
},
"round_prices": {
"label": "Redondear precios",
"tooltip": "Redondear precios al número entero más cercano."
}
},
"extra_fields": {

View File

@@ -350,7 +350,8 @@
},
"kofi": "Me donner un pourboire sur Ko-fi",
"home": {
"home": "Accueil"
"home": "Accueil",
"welcome": "Bienvenue sur votre instance Spoolman!"
},
"settings": {
"settings": "Paramètres",

View File

@@ -0,0 +1,17 @@
{
"actions": {
"list": "Suchi",
"create": "Banaye",
"edit": "Sampadan Karen",
"show": "Dikhayen",
"clone": "Clone"
},
"buttons": {
"create": "Banaye",
"save": "Sahejen",
"edit": "Sampadan Karen",
"confirm": "Kya aapko pakka hai?",
"continue": "Aage badhen",
"show": "Dikhayen"
}
}

View File

@@ -118,6 +118,9 @@
},
"help": {
"list": "Aiuto | Spoolman"
},
"locations": {
"list": "Posizione | Spoolman"
}
},
"spool": {
@@ -181,6 +184,9 @@
"spool": "Bobine",
"messages": {
"archive": "Sei sicuro di voler archiviare questa bobina?"
},
"formats": {
"last_used": "Ultimo utilizzo {{date}}"
}
},
"buttons": {
@@ -344,7 +350,9 @@
},
"kofi": "Donazione su Ko-fi",
"home": {
"home": "Home"
"home": "Home",
"welcome": "Benvenuto nella tua istanza Spoolman!",
"description": "Sembra che tu non abbia ancora aggiunto alcuna bobina. Vai su <helpPageLink>Help page</helpPageLink> per ricevere assistenza su come iniziare."
},
"settings": {
"settings": "Configurazione",
@@ -388,7 +396,17 @@
"base_url": {
"label": "URL di base",
"tooltip": "L'URL di base da utilizzare quando si generano funzioni come i codici QR."
},
"round_prices": {
"label": "Prezzi arrotondati",
"tooltip": "Prezzi arrotondati al numero intero più vicino."
}
}
},
"locations": {
"locations": "Posizioni",
"new_location": "Nuova Posizione",
"no_location": "Nessuna Posizione",
"no_locations_help": "Questa pagina ti consente di organizzare le bobine in base alla posizione. Aggiungi alcune bobine per iniziare!"
}
}

View File

@@ -1 +1,400 @@
{}
{
"actions": {
"list": "Sąrašas",
"create": "Sukurti",
"edit": "Redaguoti",
"show": "Rodyti",
"clone": "Klonuoti"
},
"buttons": {
"create": "Sukurti",
"save": "Išsaugoti",
"saveAndAdd": "Išsaugoti ir pridėti",
"logout": "Atsijungti",
"delete": "Šalinti",
"edit": "Redaguoti",
"cancel": "Atšaukti",
"confirm": "Ar tikrai?",
"continue": "Tęsti",
"filter": "Filtras",
"clear": "Išvalyti",
"refresh": "Atnaujinti",
"show": "Rodyti",
"undo": "Gražinti",
"import": "Importuoti",
"clone": "Klonuoti",
"archive": "Archyvas",
"unArchive": "Išarchyvuoti",
"hideArchived": "Paslėpti archyvuotus",
"showArchived": "Rodyti archyvuotus",
"notAccessTitle": "Nepakanka teisių",
"hideColumns": "Slėpti stulpelius",
"clearFilters": "Valyti filtrus"
},
"warnWhenUnsavedChanges": "Ar tikrai norite išeiti? Yra neišsaugotų pakeitimų.",
"notifications": {
"success": "Sėkmingai",
"error": "Klaida (kodas: {{statusCode}})",
"undoable": "Jūs turite {{seconds}} sekundes, kad atšauktumėte.",
"createSuccess": "Sėkmingai sukurta {{resource}}",
"createError": "Kūrimo klaida {{resource}} (kodas: {{statusCode}})",
"deleteSuccess": "Sėkmingai ištrinta {{resource}}",
"deleteError": "Tkaida trinant {{resource}} (kodas: {{statusCode}})",
"editSuccess": "Sėkmingai redaguota {{resource}}",
"editError": "Redagavimo klaida {{resource}} (kodas: {{statusCode}})",
"importProgress": "Importuojama: {{processed}}/{{total}}",
"saveSuccessful": "Įrašytaa sėkmingai!",
"validationError": "Tikrinimo klaida: {{error}}"
},
"kofi": "Paremk mane Ko-fi",
"loading": "Kraunasi",
"version": "Versija",
"unknown": "Nežinoma",
"yes": "Taip",
"no": "Ne",
"tags": {
"clone": "Klonuoti"
},
"dashboard": {
"title": "Darbastalis"
},
"printing": {
"generic": {
"title": "Spausdinama",
"description": "Norėdami gauti norimą spausdinimo maketą, pakoreguokite toliau pateiktus nustatymus. Atminkite, kad spausdintuvai ir jūsų operacinė sistema gali taikyti savo paraštes ir mastelį, todėl gali tekti atlikti bandymus ir klaidas, kol viskas bus teisinga. Prieš spausdindami ant etikečių, išbandykite ant įprasto popieriaus lapo.",
"helpMargin": "Paraštės turėtų būti sukonfigūruotos taip, kad atitiktų jūsų etikečių popierių ir spausdintuvą, nes jų keitimas turės įtakos viso tinklelio dydžiui.",
"helpPrinterMargin": "Saugios zonos nustatymas turėtų atitikti spausdinimo atstumą nuo popieriaus krašto. Šios zonos keitimas neturės įtakos visam tinkleliui.",
"print": "Spausdinti",
"columns": "Stulpeliai",
"rows": "Eilutės",
"paperSize": "Popieriaus dydis",
"customSize": "Tinkintas",
"dimensions": "Matmenys",
"showBorder": "Rodyti paraštes",
"previewScale": "Peržiūros mastelis",
"skipItems": "Praleisti elementus",
"itemCopies": "Elemento kopijos",
"contentSettings": "Turinio nustatymai",
"layoutSettings": "Išdėstymo nustatymai",
"horizontalSpacing": "Horizontalūs tarpai",
"verticalSpacing": "Vertikalūs tarpai",
"marginLeft": "Kairioji paraštė",
"marginRight": "Dešinioji paraštė",
"marginTop": "Viršutinė paraštė",
"marginBottom": "Apatinė paraštė",
"printerMarginLeft": "Saugi zona kairėje",
"printerMarginRight": "Saugi zona dešinėje",
"printerMarginTop": "Saugi zona viršuje",
"printerMarginBottom": "Saugi zona apačioje",
"borders": {
"none": "Nėra",
"border": "Paraštė",
"grid": "Tinklelis"
},
"settings": "Išankstiniai nustatymai",
"defaultSettings": "Numatytasis",
"addSettings": "Pridėti naują išankstinį nustatymą",
"newSetting": "Naujas",
"duplicateSettings": "Kopija",
"deleteSettings": "Ištrinti dabartinį išankstinį nustatymą",
"deleteSettingsConfirm": "Ar tikrai norite ištrinti šį išankstinį nustatymą?",
"settingsName": "Iš anksto nustatytas pavadinimas",
"saveSetting": "Išsaugoti išankstinius nustatymus",
"saveAsImage": "Įrašyti kaip paveikslėlį"
},
"qrcode": {
"button": "Spausdinti etiketes",
"title": "Etikečių spausdinimas",
"template": "Etiketės šablonas",
"templateHelp": "Norėdami įterpti ritės objekto reikšmes kaip tekstą, naudokite {}. Pavyzdžiui, {id} bus pakeistas ritės ID arba {filament.material} bus pakeistas ritės medžiaga. Jei reikšmės trūksta, ji bus pakeista simboliu „?“. Norėdami tai pašalinti, galima naudoti antrą {} rinkinį. Be to, bet koks tekstas tarp {} rinkinių bus pašalintas, jei reikšmės trūksta. Pavyzdžiui, {Lot Nr: {lot_nr}} rodys žymą tik tuo atveju, jei ritė turi partijos numerį. Apsukite tekstą dviguba žvaigždute **, kad jis būtų paryškintas. Spustelėkite mygtuką, kad peržiūrėtumėte visų galimų žymų sąrašą.",
"textSize": "Etiketės teksto dydis",
"showContent": "Spausdinti etiketę",
"useHTTPUrl": {
"label": "QR kodo nuoroda",
"tooltip": "Bus naudojama patentuota nuoroda, kuri veiks tik nuskaityta naudojant „Spoolman“ nuskaitymo funkciją (numatytasis nustatymas). URL naudoja arba nustatymuose nurodytą bazinį URL, arba dabartinio puslapio URL, jei nenustatytas.",
"options": {
"default": "Numatytasis",
"url": "URL"
},
"preview": "Peržiūra:"
},
"showQRCode": "Spausdinti QR kodą",
"showQRCodeMode": {
"no": "Ne",
"simple": "Paprasta",
"withIcon": "Su piktograma"
}
},
"spoolSelect": {
"title": "Pasirinkite ritę",
"description": "Pasirinkite rites, kurioms norite spausdinti etiketes.",
"showArchived": "Rodyti archyvuotus",
"noSpoolsSelected": "Nepasirinkote jokių ričių.",
"selectAll": "Pasirinkti/Atšaukti visų pasirinkimą",
"selectedTotal_one": "{{count}} ritė pasirinkta",
"selectedTotal_few": "{{count}} ritės pasirinktos",
"selectedTotal_other": "{{count}} ričių pasirinkta"
}
},
"scanner": {
"title": "QR kodo skaitytuvas",
"description": "Nuskaitykite Spoolman QR kodą, kad peržiūrėtumėte išsamią informaciją apie ritę.",
"error": {
"notAllowed": "Jūs nesuteikėte leidimo pasiekti kameros.",
"insecureContext": "Puslapis neperduodamas per HTTPS.",
"streamApiNotSupported": "Naršyklė nepalaiko „MediaStream“ API.",
"notReadable": "Kameros rodmenys neįskaitomi.",
"notFound": "Nerasta jokios kameros.",
"unknown": "Įvyko nežinoma klaida. ({{error}})"
}
},
"spool": {
"spool": "Ritės",
"fields": {
"id": "ID",
"filament_name": "Gija",
"filament": "Gija",
"filament_internal": "Vidinis",
"filament_external": "Išorinis",
"price": "Kaina",
"material": "Medžiaga",
"weight_to_use": "Svoris",
"used_weight": "Naudotas svoris",
"remaining_weight": "Likęs svoris",
"measured_weight": "Išmatuotas svoris",
"used_length": "Panaudotas ilgis",
"remaining_length": "Likęs ilgis",
"initial_weight": "Pradinis svoris",
"spool_weight": "Tuščas svoris",
"location": "Vieta",
"lot_nr": "Lot Nr",
"first_used": "Pirmą kartą panaudota",
"last_used": "Paskutinį kartą panaudota",
"registered": "Registruota",
"comment": "Komentaras",
"archived": "Archyvuota"
},
"fields_help": {
"price": "Pilnos ritės kaina. Jei nenustatyta, bus laikoma, kad kaina yra pačios gijos kaina.",
"weight_to_use": "Pasirinkite, kokią svorio vertę įvesti. Išmatuotas svoris galimas tik tuo atveju, jei pasirinktai kaitinimo medžiagai nustatytas ritės svoris.",
"used_weight": "Kiek plastiko buvo sunaudota iš ritės. Naujoje ritėje turėtų būti sunaudota 0 g.",
"remaining_weight": "Kiek gijos liko ant ritės. Naujos ritės svoris turėtų atitikti ritės svorį.",
"measured_weight": "Kiek sveria gija ir ritė.",
"initial_weight": "Pradinis gijos svoris ant ritės (grynasis svoris). Jei nenustatytas, bus naudojamas gijos objekto svoris.",
"spool_weight": "Tuščios ritės svoris. Palikite tuščią, jei norite naudoti vertę, nurodytą ant gijos arba gamintojo.",
"location": "Kur yra ritė, jei rites laikote keliose vietose.",
"lot_nr": "Gamintojo partijos numeris. Gali būti naudojamas siekiant užtikrinti, kad spaudinio spalva būtų vienoda, jei naudojamos kelios ritės.",
"external_filament": "Pasirinkote gijąiš išorinės duomenų bazės. Kuriant šią ritę, bus automatiškai sukurtas gijos objektas (ir galbūt gamintojo objektas). Tai gali sukurti pasikartojančius gijų objektus, jei jau sukūrėte šios gijos objektą."
},
"titles": {
"create": "Sukurti ritę",
"clone": "Klonuoti ritę",
"edit": "Redaguoti ritę",
"list": "Ritės",
"show": "Rodyti ritę",
"show_title": "[Ritė #{{id}}] {{name}}",
"archive": "Archyvuoti ritę",
"adjust": "Reguliuoti ritės giją"
},
"form": {
"measurement_type": {
"length": "Ilgis",
"weight": "Svoris"
},
"measurement_type_label": "Matavimo tipas",
"adjust_filament_help": "Čia galite tiesiogiai pridėti arba atimti giją iš ritės. Teigiama vertė sunaudos giją, neigiama jį pridės.",
"adjust_filament_value": "Suvartoti kiekį",
"new_location_prompt": "Įveskite naują vietą",
"spool_updated": "Šią ritę kažkas kitas atnaujino nuo tada, kai atidarėte šį puslapį. Išsaugojus šie pakeitimai bus perrašyti!"
},
"messages": {
"archive": "Ar tikrai norite archyvuoti šią ritę?"
},
"formats": {
"last_used": "Paskutinį kartą naudota {{date}}"
}
},
"filament": {
"filament": "Gijos",
"fields": {
"id": "ID",
"vendor_name": "Gamintojas",
"vendor": "Gamintojas",
"name": "Pavadinimas",
"material": "Medžiaga",
"price": "Kaina",
"density": "Tankis",
"diameter": "Skersmuo",
"weight": "Svoris",
"spool_weight": "Ritės svoris",
"article_number": "Gaminio numeris",
"registered": "Registruota",
"comment": "Komentaras",
"settings_extruder_temp": "Ekstruderio temperatūra",
"settings_bed_temp": "Pado temperatūra",
"color_hex": "Spalva",
"single_color": "Viena",
"multi_color": "Daugiaspalvis",
"coaxial": "Koekstruduotas",
"longitudinal": "Išilginis",
"external_id": "Išorinis ID",
"spools": "Rodyti rites"
},
"fields_help": {
"name": "Gijos pavadinimas, kad būtų galima atskirti šį gijos tipą nuo kitų to paties gamintojo gijų. Pavyzdžiui, turėtų būti nurodyta spalva.",
"material": "Pvz. PLA, ABS, PETG, ir tt.",
"price": "Pilnos ritės kaina.",
"weight": "Pilnos ritės gijos svoris (grynasis svoris). Į šį skaičių neturėtų būti įtrauktas pačios ritės svoris, tik gijos svoris. Tai paprastai nurodoma ant pakuotės.",
"spool_weight": "Tuščios ritės svoris. Naudojamas išmatuotam ritės svoriui nustatyti.",
"article_number": "Pvz. EAN, UPC, ir tt.",
"multi_color_direction": "Gijos turėti kelias spalvas dviem būdais: arba dėl koekstruzijos, kaip dviejų spalvų gijos su nuosekliomis daugiaspalvėmis spalvomis, arba dėl išilginių spalvų pokyčių, kaip gradientinės gijos, kurios keičia spalvas išilgai ritės."
},
"titles": {
"create": "Kirti giją",
"clone": "Klonuoti giją",
"edit": "Redaguoti giją",
"list": "Gijos",
"show": "Rodyti gijas",
"show_title": "[Gija #{{id}}] {{name}}"
},
"form": {
"filament_updated": "Šią giją kažkas kitas atnaujino nuo tada, kai atidarėte šį puslapį. Išsaugojus šie pakeitimai bus perrašyti!",
"import_external": "Importuoti iš išorės",
"import_external_description": "Pasirinkite giją sąraše, kad jos informacija būtų automatiškai užpildyta gijos kūrimo formoje. Tai perrašys visus formoje įvestus duomenis.<br><br>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. <helpPageLink>pagalbos puslapį</helpPageLink>."
},
"help": {
"help": "Pagalba",
"resources": {
"filament": "Gijų prekės ženklai. Jie turi tokias savybes kaip pavadinimas, medžiaga, spalva, skersmuo ir kita.",
"spool": "Atskiros fizinės konkrečios gijos ritės.",
"vendor": "Įmonės, gaminančios giją."
},
"description": "<title>Pagalba</title><p>Štai keli patarimai, padėsiantys jums pradėti.</p><p>Spoolman saugo 3 skirtingų tipų duomenis:</p><itemsHelp/><p>Norėdami į duomenų bazę įtraukti naują ritę, pirmiausia sukurkite objektą <filamentCreateLink>Filament</filamentCreateLink>. Tai padarę, sukurkite objektą <spoolCreateLink>Ritė</spoolCreateLink> tai konkrečiai ritei. Jei vėliau įsigysite papildomų to paties siūlo ričių, tiesiog sugeneruokite papildomus „Ritės“ objektus ir pakartotinai naudokite tą patį „Gija“ objektą.</p><p>Pasirinktinai taip pat galite sugeneruoti objektą <vendorCreateLink>Gamintojo</vendorCreateLink> įmonei, gaminančiai giją, jei norite sekti šią informaciją.</p><p>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. <readmeLink>„Spoolman README“</readmeLink>.</p>"
},
"table": {
"actions": "Veiksmai"
},
"settings": {
"settings": "Nustatymai",
"header": "Nustatymai",
"general": {
"tab": "Pagrindiniai",
"currency": {
"label": "Valiuta"
},
"base_url": {
"label": "Bazinis URL",
"tooltip": "Bazinis URL, naudojamas generuojant tokias funkcijas kaip QR kodai."
},
"round_prices": {
"label": "Apvalinti kainas",
"tooltip": "Apvalinkite kainas iki artimiausio sveikojo skaičiaus."
}
},
"extra_fields": {
"tab": "Papildomi laukai",
"description": "<p>Čia galite pridėti papildomų pasirinktinių laukų prie savo objektų.</p><p>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.</p><p>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.</p><p>Papildomų laukų negalima rūšiuoti ar filtruoti lentelės rodiniuose.</p>",
"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!"
}
}

View File

@@ -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å. Se <helpPageLink>hjelpesiden</helpPageLink> for hjelp til å komme i gang."
},
"help": {
"help": "",
"help": "Hjelp",
"resources": {
"filament": "",
"spool": "",
"vendor": ""
"filament": "Filament leverandører. De har egenskaper som navn, materiale, farge, diameter og mer.",
"spool": "Individuelle fysiske ruller med spesifikt filament.",
"vendor": "Produsent av filament."
},
"description": ""
"description": "<title>Hjelp</title><p>Her er noen tips for å komme i gang.</p><p>Spoolman inneholder tre forskjellige typer data:</p><itemsHelp/><p>For å legge til en ny spole i databasen, start med å opprette et <filamentCreateLink>Filament</filamentCreateLink>-objekt. Når det er gjort, fortsett med å opprette et <spoolCreateLink>Spool</spoolCreateLink>-objekt for den spesifikke spolen. Hvis du anskaffer flere spoler av samme filament senere, genererer du ganske enkelt flere spoleobjekter og bruker det samme filamentobjektet på nytt.</p><p>Alternativt kan du også generere et <vendorCreateLink>Manufacturer</vendorCreateLink>-objekt for selskapet som produserer filamentet hvis du ønsker å spore denne informasjonen.</p><p>Du har muligheten til å koble andre 3D-printertjenester til Spoolman, som Moonraker, som automatisk kan overvåke filamentbruk og oppdatere spoleobjektene for deg. Se <readmeLink>Spoolman README</readmeLink> for veiledning om hvordan du konfigurerer dette.</p>"
},
"locations": {
"locations": "Lokasjoner",
"new_location": "Ny lokasjon",
"no_location": "Ingen lokasjon",
"no_locations_help": "Denne siden mar deg organisere rullene med filament i lokasjoner. Legg til noen ruller for å starte!"
},
"settings": {
"settings": "Innstillinger",
"header": "Innstillinger",
"general": {
"tab": "Generelt",
"currency": {
"label": "Valuta"
},
"base_url": {
"label": "Base-URL",
"tooltip": "URL som brukes ved generering av QR-koder og eksterne lenker."
},
"round_prices": {
"label": "Avrund priser",
"tooltip": "Runder priser til nærmeste hele verdi."
}
},
"extra_fields": {
"tab": "Ekstra felt",
"description": "<p>Her kan du legge til ekstra tilpassede felt til enhetene dine.</p><p>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.</p><p>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.</p><p>Ekstra felt kan ikke sorteres eller filtreres i tabellvisningene.</p>",
"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."
}
}
}

View File

@@ -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 a <helpPageLink>Página de Ajuda</helpPageLink> para obter ajuda para começar."
"description": "Parece que você ainda não adicionou nenhum carretel. Veja a <helpPageLink>Página de Ajuda</helpPageLink> para obter ajuda sobre como começar."
},
"help": {
"help": "Ajuda",

View File

@@ -291,7 +291,9 @@
}
},
"home": {
"home": "Início"
"home": "Início",
"welcome": "Bem vindo à sua instância do Spoolman!",
"description": "Parece que ainda não adicionou nenhuma bobine. Veja a <helpPageLink>Página de Ajuda</helpPageLink> para obter ajuda a começar."
},
"help": {
"help": "Ajuda",

View File

@@ -6,13 +6,13 @@
"filter": "filtreaza",
"cancel": "anuleaza",
"edit": "editeaza",
"confirm": "confirma",
"delete": "sterge",
"confirm": "Ești sigur?",
"delete": "Șterge",
"undo": "inapoi",
"import": "importa",
"logout": "Iesire",
"saveAndAdd": "salveazaSiAdauga",
"clear": "sterge",
"clear": "Șterge",
"refresh": "actualizeaza",
"clone": "cloneaza",
"archive": "arhiveaza",
@@ -86,12 +86,23 @@
"printerMarginLeft": "Safe-Zone stanga",
"showBorder": "Arată marginea",
"printerMarginBottom": "Safe-Zone jos",
"title": "Imprimare"
"title": "Imprimare",
"itemCopies": "Copii ale obiectelor",
"settings": "Prestabilite",
"defaultSettings": "Implicit",
"addSettings": "Adăugarea de noi prestabilite",
"newSetting": "Nou",
"duplicateSettings": "Duplicat",
"deleteSettings": "Ștergerea presetării curente",
"deleteSettingsConfirm": "Ești sigur că vrei să ștergi această prestabilită?",
"settingsName": "Numele valorii prestabilite",
"saveSetting": "Salvare prestabilite",
"saveAsImage": "Salvare ca imagine"
},
"spoolSelect": {
"showArchived": "Arata arhivate",
"title": "Selectați bobine",
"description": "Selectati bobinele pentru care trebuie printate etichete.",
"description": "Selectați rolele pentru care trebuie printate etichete.",
"selectedTotal_one": "{{count}} bobina selectata",
"selectedTotal_few": "{{count}} bobine selectate",
"selectedTotal_other": "{{count}} bobine selectate",
@@ -100,60 +111,80 @@
},
"qrcode": {
"bedTemp": "BT: {{temp}}",
"title": "Printati codurile QR",
"button": "Imprimati codurile QR",
"title": "Printarea codurilor QR",
"button": "Imprimați codurile QR",
"showTemperatures": "Temperaturi",
"spoolWeight": "Greutatea rolei de filament: {{weight}}",
"showFilamentComment": "Filament Comentariu",
"showLotNr": "Lot Nr",
"showContent": "Imprimă eticheta",
"showSpoolWeight": "Greutate bobină",
"textSize": "Marimea textului",
"textSize": "Mărimea textului",
"showVendorComment": "Comentariul furnizorului",
"showSpoolmanIcon": "Arata iconul Spoolman",
"showSpoolComment": "Bobină Comentariu",
"extruderTemp": "ET: {{temp}}",
"showVendor": "Furnizor",
"lotNr": "Lot Nr: {{lot}}"
"lotNr": "Lot Nr: {{lot}}",
"template": "Șablon etichetă",
"useHTTPUrl": {
"label": "Link către codul QR",
"tooltip": "Se va folosi un link proprietar care va funcționa doar dacă este scanat din funcția de scanare a Spoolman (implicit). URL-ul folosește fie URL-ul de bază specificat în setări, fie URL-ul paginii curente dacă nu este setat.",
"options": {
"default": "Implicit",
"url": "URL"
},
"preview": "Previzualizare:"
},
"showQRCode": "Printarea codului QR",
"showQRCodeMode": {
"no": "Nu",
"simple": "Simplu",
"withIcon": "Cu imagine"
},
"templateHelp": "Utilizați {} pentru a insera valorile obiectului filament ca text. De exemplu, {id} va fi înlocuit cu id-ul filamentului, sau {filament.material} va fi înlocuit cu materialul filamentului. Dacă o valoare lipsește, aceasta va fi înlocuită cu \"?\". Un al doilea set de {} poate fi folosit pentru a elimina acesta. În plus, orice text între seturile de {} va fi eliminat dacă valoarea lipsește. De exemplu, {Lot Nr: {lot_nr}} va afișa doar eticheta dacă filamentul are un număr de lot. Încadrați textul cu asteriscuri duble ** pentru a-l face îngroșat. Faceți clic pe buton pentru a vizualiza o listă cu toate etichetele disponibile."
}
},
"documentTitle": {
"vendor": {
"show": "",
"list": "",
"edit": "",
"create": "",
"clone": ""
"show": "#{{id}} Afișare producători | Spoolman",
"list": "Producători | Spoolman",
"edit": "#{{id}} Editare producător | Spoolman",
"create": "Adăugare producător | Spoolman",
"clone": "#{{id}} Duplicare producător | Spoolman"
},
"spool": {
"create": "",
"clone": "",
"list": "",
"edit": "",
"show": ""
"create": "Creare rolă| Spoolman",
"clone": "#{{id}} Clonare rolă | Spoolman",
"list": "Role | Spoolman",
"edit": "#{{id}} Editare rolă | Spoolman",
"show": "#{{id}} Afișare role | Spoolman"
},
"filament": {
"show": "",
"list": "",
"clone": "",
"edit": "",
"create": ""
"show": "#{{id}} Afișare filamente | Spoolman",
"list": "Filamente | Spoolman",
"clone": "#{{id}} Clonare filament | Spoolman",
"edit": "#{{id}} Editare filamente | Spoolman",
"create": "Creare filament| Spoolman"
},
"home": {
"list": ""
"list": "Acasă | Spoolman"
},
"suffix": "",
"suffix": " | Spoolman",
"default": "Spoolman",
"help": {
"list": ""
"list": "Ajutor | Spoolman"
},
"locations": {
"list": "Zone | Spoolman"
}
},
"help": {
"description": "",
"description": "<title>Ajutor</title><p>Iată câteva sfaturi pentru a te ajuta să începi.</p><p>Spoolman are 3 tipuri diferite de date:</p><itemsHelp/><p>Pentru a adăuga o nouă rolă în baza de date, începe prin a crea un obiect <filamentCreateLink>Filament</filamentCreateLink>. Odată ce ai terminat, continuă prin a crea un obiect <spoolCreateLink>Spool</spoolCreateLink> pentru aca rolă. Dacă mai achiziționezi role suplimentare din același filament mai târziu, pur și simplu generează obiecte Rolă suplimentare și reutilizează același obiect Filament.</p><p>Opțional, poți genera și un obiect <vendorCreateLink>Producător</vendorCreateLink> pentru compania care produce filamentul, dacă dorești să urmărești această informație.</p><p>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ă <readmeLink>README-ul Spoolman</readmeLink> pentru orientări despre cum să configurezi acest lucru.</p>",
"resources": {
"spool": "",
"filament": "",
"vendor": ""
"spool": "Role de filament individuale ale unui filament specific.",
"filament": "Brand-uri de filament. Au proprietăți precum nume, material, culoare, diametru și altele.",
"vendor": "Companiile care produc filamentul."
},
"help": "Ajutor"
},
@@ -176,7 +207,11 @@
"filament": "Filament",
"filament_name": "Filament",
"remaining_length": "Lungime ramasa",
"remaining_weight": "Greutate ramasa"
"remaining_weight": "Greutate ramasa",
"filament_internal": "Intern",
"filament_external": "Extern",
"initial_weight": "Greutatea inițială",
"spool_weight": "Greutatea rolei"
},
"fields_help": {
"location": "Locatia in care bobina este stocata.",
@@ -185,7 +220,10 @@
"price": "Pretul unei bobine. Daca nu e definit, pretul filamentului va fi folosit.",
"lot_nr": "Numarul de productie al lotului. Poate fi folosit pentru a garanta consistenta culorii, in caz ca mai multe bobine sunt folosite la acelasi print.",
"remaining_weight": "Cat filament a ramas pe bobina. Aceasta valoare reprezinta greutatea filamentului de pe bobina respectiva.",
"measured_weight": "Greutatea totala a bobinei si filamentului."
"measured_weight": "Greutatea totala a bobinei si filamentului.",
"initial_weight": "Greutatea inițială a filamentului de pe rolă (greutate netă). Se va folosi greutatea din obiectul filament dacă nu este setată.",
"spool_weight": "Greutatea rolei atunci când este goală. Lăsați necompletat pentru a folosi valoarea de la filament sau de la producător.",
"external_filament": "Ai selectat un filament din baza de date externă. Un obiect filament (și posibil un obiect de la fabricant) va fi creat automat atunci când creați această rolă. Aceasta poate crea obiecte filament duplicate dacă ați creat deja un obiect filament pentru acest filament."
},
"titles": {
"list": "Bobine",
@@ -194,44 +232,61 @@
"create": "Creați bobină",
"show": "Arata bobina",
"edit": "Editeaza bobina",
"clone": "Cloneaza bobina"
"clone": "Cloneaza bobina",
"adjust": "Ajustarea rolei de filament"
},
"messages": {
"archive": "Esti sigur ca vrei sa arhivezi aceasta bobina?"
},
"form": {
"spool_updated": "Aceasta bobina a fost modificata de altcineva in timpul scurs de la deschiderea acestei pagini, Salvarea va suprascrie aceste schimbari!",
"new_location_prompt": "Introduceti o locatie noua"
"new_location_prompt": "Introduceti o locatie noua",
"measurement_type": {
"length": "Lungime",
"weight": "Greutate"
},
"measurement_type_label": "Tipul măsurării",
"adjust_filament_help": "Aici poți adăuga sau elimina direct filament din rolă. O valoare pozitivă va consuma filament, iar o valoare negativă îl va adăuga.",
"adjust_filament_value": "Cantitatea consumată"
},
"spool": "Bobine"
"spool": "Bobine",
"formats": {
"last_used": "Ultima utilizare {{date}}"
}
},
"filament": {
"fields": {
"registered": "Înregistrat",
"article_number": "Numarul articolului",
"id": "ID",
"vendor": "Furnizor",
"vendor": "Producător",
"settings_bed_temp": "Temperatura patului",
"material": "Material",
"price": "Preț",
"name": "Nume",
"color_hex": "Culoare",
"settings_extruder_temp": "Temperatura extruderului",
"vendor_name": "Furnizor",
"vendor_name": "Producător",
"diameter": "Diametru",
"density": "Densitate",
"weight": "Greutate",
"spools": "Arata bobinele",
"comment": "Comentariu",
"spool_weight": "Greutatea bobinei"
"spool_weight": "Greutatea bobinei",
"single_color": "Unică",
"multi_color": "Multi",
"coaxial": "Co-extrudat",
"longitudinal": "Longitudinal",
"external_id": "ID extern"
},
"fields_help": {
"price": "Pretului unei bobine noi.",
"material": "Ex. PLA, ABS, PETG, etc.",
"name": "Numele filamentului, pentru a-l putea distinge de altele ale aceluiasi producator. Recomandabil sa contina culoarea de exemplu.",
"name": "Numele filamentului, pentru a-l putea distinge de altele ale aceluiași producător. Trebuie să conțină culoarea de exemplu.",
"spool_weight": "Greutatea unei bobine goale (fara filament). Este folosita pentru a calcula greutatea unei bobine cu filament.",
"article_number": "",
"weight": "Greutatea neta a filamentului de pe o bobina. Nu trebuie sa includa greutatea bobinei, ci doar cea a filamentului. De obicei greutatea filementului este cea inscrisa pe ambalaj."
"article_number": "Ex. EAN, UPC etc.",
"weight": "Greutatea neta a filamentului de pe o bobina. Nu trebuie sa includa greutatea bobinei, ci doar cea a filamentului. De obicei greutatea filementului este cea inscrisa pe ambalaj.",
"multi_color_direction": "Filamentele pot avea multiple culori în două moduri: fie prin co-extrudare, cum ar fi filamentele de două culori cu culori multiple consistente, fie prin schimbări de culoare longitudinale, cum ar fi filamentele gradient care își schimbă culorile pe parcursul rolei."
},
"titles": {
"edit": "Modifica del filamento",
@@ -242,35 +297,47 @@
"clone": "Clonarea filamentului"
},
"form": {
"filament_updated": ""
"filament_updated": "Acest filament a fost actualizat de cineva/altceva de când ai deschis această pagină. Salvarea va suprascrie aceste modificări!",
"import_external": "Importare din exterior",
"import_external_description": "Selectați un filament din listă pentru a completa automat detaliile sale în formularul de creare a filamentului. Acest lucru va suprascrie orice date pe care le-ați introdus în formular.<br><br>Un obiect Producător va fi creat automat când faceți clic pe Ok, dacă este necesar."
},
"filament": "Filamente"
"filament": "Filamente",
"buttons": {
"add_spool": "Adăugare rolă"
}
},
"vendor": {
"vendor": "Furnizori",
"vendor": "Producători",
"fields": {
"registered": "Înregistrat",
"comment": "Comentariu",
"name": "Nume",
"id": "ID"
"id": "ID",
"empty_spool_weight": "Greutatea rolei goale",
"external_id": "ID extern"
},
"titles": {
"clone": "",
"show": "",
"list": "Furnizori",
"create": "",
"show_title": "",
"edit": ""
"clone": "Duplicarea producătorului",
"show": "Afișarea producătorilor",
"list": "Producători",
"create": "Adăugarea unui producător",
"show_title": "[Producător #{{id}}] {{name}}",
"edit": "Editarea producătorului"
},
"form": {
"vendor_updated": ""
"vendor_updated": "Acest producător a fost actualizat de cineva/altceva de când ai deschis această pagină. Salvarea va suprascrie acele modificări!"
},
"fields_help": {
"empty_spool_weight": "Greutatea unei role goale de la acest producător."
}
},
"dashboard": {
"title": "Tablou de bord"
},
"home": {
"home": "Acasă"
"home": "Acasă",
"welcome": "Bine ai venit în instanța ta Spoolman!",
"description": "Se pare că nu ați adăugat încă nici o rolă. Consultați pagina <helpPageLink>Ajutor</helpPageLink> pentru a începe."
},
"scanner": {
"error": {
@@ -286,5 +353,60 @@
},
"table": {
"actions": "Acțiuni"
},
"settings": {
"settings": "Setări",
"header": "Setări",
"general": {
"tab": "General",
"currency": {
"label": "Valută"
},
"base_url": {
"label": "URL de bază",
"tooltip": "URL-ul de bază care trebuie utilizat atunci când generați caracteristici, cum ar fi codurile QR."
},
"round_prices": {
"label": "Prețurile estimative",
"tooltip": "Prețurile estimative la cel mai apropiat întreg."
}
},
"extra_fields": {
"tab": "Câmpuri extra",
"description": "<p>Aici poți adăuga câmpuri suplimentare personalizate entităților tale.</p><p>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.</p><p>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.</p><p>Câmpurile suplimentare nu pot fi sortate sau filtrate în tabele.</p>",
"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!"
}
}

View File

@@ -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": "Похоже, что вы ещё не добавили ни одной катушки. Посетите <helpPageLink>Страницу помощи</helpPageLink>, для комфортного начала."
},
"settings": {
"extra_fields": {

View File

@@ -0,0 +1,399 @@
{
"actions": {
"list": "Liste",
"create": "Oluştur",
"edit": "Düzenle",
"show": "Göster",
"clone": "Kopyala"
},
"buttons": {
"create": "Oluştur",
"save": "Kaydet",
"saveAndAdd": "Kaydet ve Ekle",
"logout": ıkış yap",
"delete": "Sil",
"edit": "Düzenle",
"cancel": "İptal et",
"confirm": "Emin misiniz?",
"continue": "Devam et",
"filter": "Filtrele",
"clear": "Temizle",
"refresh": "Yenile",
"show": "Göster",
"undo": "Geri al",
"import": "İçe aktar",
"clone": "Kopyala",
"archive": "Arşivle",
"unArchive": "Arşivden çıkar",
"hideArchived": "Arşivlenenleri gizle",
"showArchived": "Arşivlenenleri göster",
"notAccessTitle": "Erişim için yetkiniz bulunmamakta",
"hideColumns": "Sütunları gizle",
"clearFilters": "Filtreleri temizle"
},
"warnWhenUnsavedChanges": ıkmak istediğinizden emin misiniz? Kaydedilmemiş değişiklikleriniz bulunmakta.",
"notifications": {
"success": "Başarılı",
"error": "Hata (durum kodu: {{statusCode}})",
"undoable": "Geri almak için {{seconds}} saniyeniz var.",
"createSuccess": "{{resource}} başarıyla oluşturuldu",
"createError": "{{resource}} oluşturulurken bir hata ile karşılaşıldı (durum kodu :{{statusCode}})",
"deleteSuccess": "{{resource}} başarılı şekilde silindi",
"deleteError": "{{resource}} silinirken hata ile karşılaşıldı(durum kodu:{{statusCode}})",
"editSuccess": "{{resource}} başarılı şekilde düzenlendi",
"editError": "{{resource}} düzenlenirken hata ile karşılaşıldı(durum kodu:{{statusCode}})",
"importProgress": "İçe aktarılıyor: {{processed}}/{{total}}",
"saveSuccessful": "Kayıt başarılı!",
"validationError": "Form kontrol hatası: {{error}}"
},
"kofi": "Ko-fi'den bana birşeyler ateşle",
"loading": "Yükleniyor",
"version": "Versiyon",
"unknown": "Bilinmeyen",
"yes": "Evet",
"no": "Hayır",
"tags": {
"clone": "Kopyala"
},
"dashboard": {
"title": "Gösterge paneli"
},
"printing": {
"generic": {
"title": "Yazdırılıyor",
"description": "İstenilen yazıcı düzenine sahip olmak için aşağıdaki ayarları düzenleyiniz. İşletim sisteminizin ve yazıcınızın kendi boşluk ve boyutlandırma ayarlarını uygulayabileceği nedeniyle doğru sonuca ulaşana kadar birkaç kez deneme yanılma gerçekleştirmeniz gerekebilir. Gerçek etikete basmadan önce normal kağıtta deneyiniz.",
"helpMargin": "Boşluklar seçtiğiniz etikete ve yazıcınıza bağlı olarak ayarlanmalıdır, bunlarda yapacağınız herhangi bir değişiklik tüm dizgeyi değiştirecektir.",
"helpPrinterMargin": "Güvenli-Bölge yazıcınızın sayfa kenarına ne kadar yakınlıkta yazabileceğine göre ayarlanmalıdır, bunu değiştirmek dizge üstünden değişikliğe neden olmayacaktır.",
"print": "Yazdır",
"columns": "Sütunlar",
"rows": "Satırlar",
"paperSize": "Sayfa Boyutu",
"customSize": "Özel",
"dimensions": "Boyutlar",
"showBorder": "Kenarlık Göster",
"previewScale": "Ölçeklendirmeyi Önizle",
"skipItems": "Öğeleri Atla",
"itemCopies": "Öğe Kopyası",
"contentSettings": "İçerik Ayarları",
"layoutSettings": "Düzen Ayarları",
"horizontalSpacing": "Yatay Boşluk",
"verticalSpacing": "Dikey Boşluk",
"marginLeft": "Sol Kenar Boşluğu",
"marginRight": "Sağ Kenar Boşluğu",
"marginTop": "Üst Kenar Boşluğu",
"marginBottom": "Alt Kenar Boşluğu",
"printerMarginLeft": "Sol Güvenli-Bölge",
"printerMarginRight": "Sağ Güvenli-Bölge",
"printerMarginTop": "Üst Güvenli-Bölge",
"printerMarginBottom": "Alt Güvenli-Bölge",
"borders": {
"none": "Kenarlık Yok",
"border": "Kenarlıklı",
"grid": "Izgara Görünümü"
},
"settings": "Kayıtlı Etiketler",
"defaultSettings": "Varsayılan",
"addSettings": "Yeni Kayıtlı Etiket Ekle",
"newSetting": "Yeni",
"duplicateSettings": "Mükerrer",
"deleteSettings": "Mevcut Kayıtlı Etiketi Sil",
"deleteSettingsConfirm": "Mevcut kayıtlı etiketi silmek istediğinizden emin misiniz?",
"settingsName": "Kayıtlı Etiket Adı",
"saveSetting": "Kaydet",
"saveAsImage": "Resim olarak kaydet"
},
"qrcode": {
"button": "Etiketleri Yazdır",
"title": "Etiket Yazdırılıyor",
"template": "Etiket Şablonu",
"templateHelp": "Makara nesnesinin değerlerini metin olarak eklemek için {} işaretini kullanın. Örneğin, {id} makaraya ait kimlik numarasıyla, {filament.material} ise makaradaki malzeme türüyle değiştirilecektir. Eğer bir değer eksikse, yerine \"?\" ibaresi konur. İkinci bir {} çifti kullanılarak bu durum önlenebilir. Ayrıca, iki {} çifti arasındaki herhangi bir metin, değer eksikse tamamen kaldırılır. Örneğin, {Lot Nr: {lot_nr}} ifadesi yalnızca makarada lot numarası varsa etiket olarak gösterilecektir. Metni kalın yapmak için çift yıldız işareti ** ile metni çevreleyin. Tüm kullanılabilir etiketlerin listesini görmek için butona tıklayın.",
"textSize": "Etiket Metin Boyutu",
"showContent": "Etiket Yazdır",
"useHTTPUrl": {
"label": "QR kod bağlantısı",
"tooltip": "Yalnızca Spoolman'ın tarama özelliği (varsayılan) ile tarandığında çalışacak özel bir bağlantı kullanılacaktır. URL, ayarlarda belirtilen temel URL'yi veya ayarlanmadıysa mevcut sayfanın URL'sini kullanır.",
"options": {
"default": "Varsayılan",
"url": "URL"
},
"preview": "Öngörünüm:"
},
"showQRCode": "QR kodu yazdır",
"showQRCodeMode": {
"no": "Hayır",
"simple": "Basit",
"withIcon": "Simge ile"
}
},
"spoolSelect": {
"title": "Makaraları Seçin",
"description": "Etiket yazdırılacak makaraları seçin.",
"showArchived": "Arşivlenmişleri göster",
"noSpoolsSelected": "Hiçbir makara seçimi yapmadınız.",
"selectAll": "Tümünü Seçin/Kaldırın",
"selectedTotal_one": "{{count}} makara seçildi",
"selectedTotal_other": "{{count}} makara seçildi"
}
},
"scanner": {
"title": "QR Kod Tarayıcı",
"description": "Makara hakkında bilgi almak için Spoolman QR kodunu taratınız.",
"error": {
"notAllowed": "Kameraya erişim yetkisi vermediniz.",
"insecureContext": "Bu sayfa HTTPS üstünden güvenli olarak gösterilmemektedir.",
"streamApiNotSupported": "Bu tarayıcı MediaStream API'sini desteklememektedir.",
"notReadable": "Kamera okunabilir değil.",
"notFound": "Kamera bulunamadı.",
"unknown": "Bilinmeyen hata oluştu.({{error}})"
}
},
"spool": {
"spool": "Makaralar",
"fields": {
"id": "ID",
"filament_name": "Filament",
"filament": "Filament",
"filament_internal": "Dahili",
"filament_external": "Harici",
"price": "Fiyat",
"material": "Malzeme",
"weight_to_use": "Ağırlık",
"used_weight": "Kullanılmış Ağırlık",
"remaining_weight": "Kalan Ağırlık",
"measured_weight": "Tartılmış Ağırlık",
"used_length": "Kullanılmış Uzunluk",
"remaining_length": "Kalan Uzunluk",
"initial_weight": "Başlangıç Ağırlığı",
"spool_weight": "Boş Makara Ağırlığı",
"location": "Konum",
"lot_nr": "Lot No",
"first_used": "İlk Kullanım Tarihi",
"last_used": "Son Kullanım Tarihi",
"registered": "Kayıtlı",
"comment": "Yorum",
"archived": "Arşivlendi"
},
"fields_help": {
"price": "Makaranın fiyatı eğer makara fiyatı belirlenmemişse filament fiyatı devralınacaktır.",
"weight_to_use": "Hangi ağırlık değerinin girileceğini seçin. Ölçülen ağırlık, yalnızca seçilen filamente ait makara ağırlığı ayarlanmışsa kullanılabilir.",
"used_weight": "Makaradan ne kadar filament kullanıldığını gösterir. Yeni bir makaranın kullanılmamış olması gerekir ve 0g kullanım göstermelidir.",
"remaining_weight": "Makara üzerinde ne kadar filament kaldığını gösterir. Yeni bir makara için bu değer, makara ağırlığıyla eşlit olmalıdır.",
"measured_weight": "Filament ve makaranın toplam ağırlığını gösterir.",
"initial_weight": "Makara üzerindeki filamentin ilk (net) ağırlığıdır. Ayarlanmadıysa, filament nesnesindeki ağırlık değeri kullanılır.",
"spool_weight": "Makaranın boş ağırlığıdır. Bu alan boş bırakılırsa, filamentten veya üreticiden gelen değer kullanılır.",
"location": "Makaralarınızı birden fazla konumda saklamanız durumunda makaranın bulunduğu yer bilgisidir.",
"lot_nr": "Üretici lot numarası. Birden fazla makara kullanımı durumunda tutarlı renk alınmasını sağlamak için kullanılabilir.",
"external_filament": "Dış veritabanından bir filament seçtiniz. Bu makarayı oluşturduğunuzda otomatik olarak bir filament nesnesi (ve muhtemelen bir üretici nesnesi) oluşturulacaktır. Eğer bu filament için zaten bir filament nesnesi oluşturduysanız, bu işlem tekrarlanan (çift) filament nesneleri yaratabilir."
},
"titles": {
"create": "Makara Oluştur",
"clone": "Makara Kopyala",
"edit": "Makara Düzenle",
"list": "Makaralar",
"show": "Makarayı Göster",
"show_title": "[Makara #{{id}}] {{name}}",
"archive": "Makarayı Arşivle",
"adjust": "Makara filamentini ayarla"
},
"form": {
"measurement_type": {
"length": "Uzunluk",
"weight": "Ağırlık"
},
"measurement_type_label": "Ölçüm Şekli",
"adjust_filament_help": "Burada makaradan filament doğrudan ekleyebilir veya çıkarabilirsiniz. Pozitif bir değer filamentin tüketildiğini, negatif bir değer ise filamentin eklendiğini gösterir.",
"adjust_filament_value": "Tüketim Miktarı",
"new_location_prompt": "Yeni konumu girin",
"spool_updated": "Bu makara, siz bu sayfayı açtığınızdan beri başka biri veya bir şey tarafından güncellendi. Kaydetme işlemi bu değişikliklerin üzerine yazacaktır!"
},
"messages": {
"archive": "Bu makarayı arşivlemek istediğinizden emin misiniz?"
},
"formats": {
"last_used": "Son kullanım tarihi {{date}}"
}
},
"filament": {
"filament": "Filamentler",
"fields": {
"id": "ID",
"vendor_name": "Üretici",
"vendor": "Üretici",
"name": "Ad",
"material": "Malzeme",
"price": "Fiyat",
"density": "Yoğunluk",
"diameter": "Çap",
"weight": "Ağırlık",
"spool_weight": "Makara Ağırlığı",
"article_number": "Artikel Numarası",
"registered": "Kayıtlı",
"comment": "Yorum",
"settings_extruder_temp": "Extruder Sıcaklığı",
"settings_bed_temp": "Tabla Sıcaklığı",
"color_hex": "Renk",
"single_color": "Tek Renk",
"multi_color": "Çok Renk",
"coaxial": "Koekstrüde edilmiş",
"longitudinal": "Boylamsal",
"external_id": "Harici ID",
"spools": "Makaraları Göster"
},
"fields_help": {
"name": "Filament adı, aynı üreticinin diğer filament türlerinden ayırt edilebilmesi için kullanılır. Örneğin, renk bilgisini içermelidir.",
"material": "Örn.PLA, ABS, PETG, gibi.",
"price": "Tam dolu makaranın fiyatı.",
"weight": "Dolu bir makaradaki filamentin ağırlığıdır (net ağırlık). Bu değer yalnızca filamentin ağırlığını içermelidir, makaranın kendisinin ağırlığı dahil edilmemelidir. Genellikle ambalaj üzerinde yazan değerdir.",
"spool_weight": "Boş bir makaranın ağırlığıdır. Makaradaki ölçülen ağırlığın hesaplanmasında kullanılır.",
"article_number": "Örn. EAN, UPC, gibi.",
"multi_color_direction": "Filamentler iki farklı şekilde birden fazla renge sahip olabilir: Birincisi, çift renkli filamentlerde olduğu gibi, koekstrüzyon yoluyla sabit çoklu renklerle üretilen filamentlerdir. İkincisi ise, makara boyunca renk geçişleri olan gradyan filamentlerde görülen boyuna (uzunlamasına) renk değişiklikleridir."
},
"titles": {
"create": "Filament Oluştur",
"clone": "Filament Kopyala",
"edit": "Filament Düzenle",
"list": "Filamentler",
"show": "Filament Göster",
"show_title": "[Filament #{{id}}] {{name}}"
},
"form": {
"filament_updated": "Bu filament, siz bu sayfayı açtıktan sonra başka biri veya bir şey tarafından güncellendi. Kaydetme işlemi bu değişikliklerin üzerine yazacaktır!",
"import_external": "Harici Kaynaktan İçeriye Aktar",
"import_external_description": "Listeden bir filament seçerek, filament oluşturma formunun detaylarının otomatik olarak doldurulmasını sağlayabilirsiniz. Bu işlem, formda daha önce girdiğiniz tüm verilerin üzerine yazacaktır.<br><br>Gerekirse, \"Tamam\" butonuna tıkladığınızda otomatik olarak bir Üretici nesnesi oluşturulacaktır."
},
"buttons": {
"add_spool": "Makara Ekle"
}
},
"vendor": {
"vendor": "Üreticiler",
"fields": {
"id": "ID",
"name": "İsim",
"empty_spool_weight": "Boş Makara Ağırlığı",
"external_id": "Harici ID",
"registered": "Kayıtlı",
"comment": "Yorum"
},
"fields_help": {
"empty_spool_weight": "Bu üreticiden boş bir makaranın ağırlığı."
},
"titles": {
"create": "Üretici Oluştur",
"clone": "Üretici Kopyala",
"edit": "Üretici Düzenle",
"list": "Üreticiler",
"show": "Üretici Göster",
"show_title": "[Üretici#{{id}}] {{name}}"
},
"form": {
"vendor_updated": "Bu üretici, siz bu sayfayı açtıktan sonra başka biri veya bir şey tarafından güncellendi. Kaydetme işlemi bu değişikliklerin üzerine yazacaktır!"
}
},
"home": {
"home": "Ana Sayfa",
"welcome": "Spoolman sunucunuza hoşgeldiniz!",
"description": "Görünüşe göre henüz hiç makara eklememişsiniz. Başlamak için yardım almak isterseniz <helpPageLink>Yardım sayfasına</helpPageLink> göz atabilirsiniz."
},
"help": {
"help": "Yardım",
"resources": {
"filament": "Filament markalarıdır. İsim, malzeme, renk, çap gibi çeşitli özelliklere sahiptirler.",
"spool": "Belirli bir filamente ait bireysel fiziksel makaralardır.",
"vendor": "Filamenti üreten şirketlerdir."
},
"description": "<title>Yardım</title><p>Başlamak için bazı ipuçları:</p><p>Spoolman üç farklı veri türünü tutar:</p><itemsHelp/><p>Veritabanına yeni bir makara eklemek için önce bir <filamentCreateLink>Filament</filamentCreateLink> nesnesi oluşturun. Bu işlem tamamlandıktan sonra, ilgili makara için bir <spoolCreateLink>Makara</spoolCreateLink> nesnesi oluşturun. Daha sonra aynı filamentten ek makaralar edinirseniz, sadece yeni Makara nesneleri oluşturup mevcut Filament nesnesini kullanabilirsiniz.</p><p>İsterseniz, filamentin üreticisi olan firma için bir <vendorCreateLink>Üretici</vendorCreateLink> nesnesi oluşturarak bu bilgiyi de takip edebilirsiniz.</p><p>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 <readmeLink>Spoolman README</readmeLink> dokümanına bakabilirsiniz.</p>"
},
"table": {
"actions": "İşlemler"
},
"settings": {
"settings": "Ayarlar",
"header": "Ayarlar",
"general": {
"tab": "Genel",
"currency": {
"label": "Para Birimi"
},
"base_url": {
"label": "Temel URL",
"tooltip": "QR kodları gibi ek özellikler kullanılırken kullanılacak temel URL."
},
"round_prices": {
"label": "Fiyatları Yuvarla",
"tooltip": "Fiyatları en yakın tam sayıya yuvarla."
}
},
"extra_fields": {
"tab": "Ekstra Alanlar",
"description": "<p>Burada varlıklarınıza ekstra özel alanlar ekleyebilirsiniz.</p><p>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.</p><p>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.</p><p>Ekstra alanlar tablo görünümünde sıralanamaz veya filtrelenemez.</p>",
"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!"
}
}