Merged in feature/i18n-check (pull request #24)

Add vue-i18n-extract and npm command

Approved-by: Daniel Egger
This commit is contained in:
Christian Cueni 2023-02-21 06:14:57 +00:00
commit 8c0a6ea6b9
12 changed files with 512 additions and 338 deletions

View File

@ -94,6 +94,21 @@ Preferences -> Tools -> Actions on Save
* Run eslint --fix * Run eslint --fix
* Run prettier * Run prettier
## Translations
We use (vue-i18n)[https://kazupon.github.io/vue-i18n/] for translations
and (vue-i18n-extract)[https://github.com/Spittal/vue-i18n-extract] for helper
scripts.
```
# will create a report on command line with missing translations
npm run vue-i18n-extract
# add missing translations to files, see docs for more options
cd client
npx vue-i18n-extract --add
```
## Deployment to CapRover ## Deployment to CapRover
### CapRover Dev (vbv-lernwelt.control.iterativ.ch) ### CapRover Dev (vbv-lernwelt.control.iterativ.ch)

View File

@ -1,2 +1,4 @@
dist dist
node_modules node_modules
**/__tests__/*.json
src/colors.json

View File

@ -1,8 +1,9 @@
{ {
"htmlWhitespaceSensitivity": "ignore",
"jsonRecursiveSort": true,
"organizeImportsSkipDestructiveCodeActions": true,
"printWidth": 88,
"semi": true, "semi": true,
"singleQuote": false, "singleQuote": false,
"tabWidth": 2, "tabWidth": 2
"printWidth": 88,
"organizeImportsSkipDestructiveCodeActions": true,
"htmlWhitespaceSensitivity": "ignore"
} }

215
client/package-lock.json generated
View File

@ -21,6 +21,7 @@
"pinia": "^2.0.21", "pinia": "^2.0.21",
"vue": "^3.2.38", "vue": "^3.2.38",
"vue-i18n": "^9.2.2", "vue-i18n": "^9.2.2",
"vue-i18n-extract": "^2.0.7",
"vue-router": "^4.1.5" "vue-router": "^4.1.5"
}, },
"devDependencies": { "devDependencies": {
@ -51,6 +52,7 @@
"postcss-import": "^14.1.0", "postcss-import": "^14.1.0",
"prettier": "^2.7.1", "prettier": "^2.7.1",
"prettier-plugin-organize-imports": "^3.1.1", "prettier-plugin-organize-imports": "^3.1.1",
"prettier-plugin-sort-json": "^1.0.0",
"prettier-plugin-tailwindcss": "^0.2.1", "prettier-plugin-tailwindcss": "^0.2.1",
"replace-in-file": "^6.3.5", "replace-in-file": "^6.3.5",
"sass": "^1.54.6", "sass": "^1.54.6",
@ -3345,6 +3347,12 @@
"integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
"dev": true "dev": true
}, },
"node_modules/@types/prettier": {
"version": "2.7.2",
"resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz",
"integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==",
"dev": true
},
"node_modules/@types/semver": { "node_modules/@types/semver": {
"version": "7.3.13", "version": "7.3.13",
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",
@ -4225,8 +4233,7 @@
"node_modules/argparse": { "node_modules/argparse": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
"dev": true
}, },
"node_modules/aria-query": { "node_modules/aria-query": {
"version": "5.1.3", "version": "5.1.3",
@ -4409,8 +4416,7 @@
"node_modules/balanced-match": { "node_modules/balanced-match": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
"dev": true
}, },
"node_modules/base64-js": { "node_modules/base64-js": {
"version": "1.5.1", "version": "1.5.1",
@ -4467,7 +4473,6 @@
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
"dependencies": { "dependencies": {
"balanced-match": "^1.0.0" "balanced-match": "^1.0.0"
} }
@ -4569,6 +4574,14 @@
"node": ">=10.16.0" "node": ">=10.16.0"
} }
}, },
"node_modules/cac": {
"version": "6.7.14",
"resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
"integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/call-bind": { "node_modules/call-bind": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
@ -4942,8 +4955,7 @@
"node_modules/concat-map": { "node_modules/concat-map": {
"version": "0.0.1", "version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
"dev": true
}, },
"node_modules/constant-case": { "node_modules/constant-case": {
"version": "3.0.4", "version": "3.0.4",
@ -5725,6 +5737,26 @@
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==",
"dev": true "dev": true
}, },
"node_modules/dot-object": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/dot-object/-/dot-object-2.1.4.tgz",
"integrity": "sha512-7FXnyyCLFawNYJ+NhkqyP9Wd2yzuo+7n9pGiYpkmXCTYa8Ci2U0eUNDVg5OuO5Pm6aFXI2SWN8/N/w7SJWu1WA==",
"dependencies": {
"commander": "^4.0.0",
"glob": "^7.1.5"
},
"bin": {
"dot-object": "bin/dot-object"
}
},
"node_modules/dot-object/node_modules/commander": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
"integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
"engines": {
"node": ">= 6"
}
},
"node_modules/dotenv": { "node_modules/dotenv": {
"version": "16.0.3", "version": "16.0.3",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz",
@ -6953,8 +6985,7 @@
"node_modules/fs.realpath": { "node_modules/fs.realpath": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
"dev": true
}, },
"node_modules/fsevents": { "node_modules/fsevents": {
"version": "2.3.2", "version": "2.3.2",
@ -7046,7 +7077,6 @@
"version": "7.2.3", "version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dev": true,
"dependencies": { "dependencies": {
"fs.realpath": "^1.0.0", "fs.realpath": "^1.0.0",
"inflight": "^1.0.4", "inflight": "^1.0.4",
@ -7084,7 +7114,6 @@
"version": "1.1.11", "version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"dependencies": { "dependencies": {
"balanced-match": "^1.0.0", "balanced-match": "^1.0.0",
"concat-map": "0.0.1" "concat-map": "0.0.1"
@ -7094,7 +7123,6 @@
"version": "3.1.2", "version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"dependencies": { "dependencies": {
"brace-expansion": "^1.1.7" "brace-expansion": "^1.1.7"
}, },
@ -7552,7 +7580,6 @@
"version": "1.0.6", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dev": true,
"dependencies": { "dependencies": {
"once": "^1.3.0", "once": "^1.3.0",
"wrappy": "1" "wrappy": "1"
@ -7561,8 +7588,7 @@
"node_modules/inherits": { "node_modules/inherits": {
"version": "2.0.4", "version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
"dev": true
}, },
"node_modules/inquirer": { "node_modules/inquirer": {
"version": "8.2.5", "version": "8.2.5",
@ -7946,6 +7972,14 @@
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==",
"dev": true "dev": true
}, },
"node_modules/is-valid-glob": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz",
"integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-weakmap": { "node_modules/is-weakmap": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
@ -8062,7 +8096,6 @@
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
"dependencies": { "dependencies": {
"argparse": "^2.0.1" "argparse": "^2.0.1"
}, },
@ -8675,7 +8708,6 @@
"version": "5.1.0", "version": "5.1.0",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",
"integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
"dev": true,
"dependencies": { "dependencies": {
"brace-expansion": "^2.0.1" "brace-expansion": "^2.0.1"
}, },
@ -8965,7 +8997,6 @@
"version": "1.4.0", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true,
"dependencies": { "dependencies": {
"wrappy": "1" "wrappy": "1"
} }
@ -9205,7 +9236,6 @@
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true,
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=0.10.0"
} }
@ -9522,6 +9552,21 @@
} }
} }
}, },
"node_modules/prettier-plugin-sort-json": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/prettier-plugin-sort-json/-/prettier-plugin-sort-json-1.0.0.tgz",
"integrity": "sha512-XgcaF/Sojax1vD6j53wNIByx0rp7ecang+A8W0eM+Ks3yBFu/qXjJNvUtC1lEWeYbNfmRs/d8FyYJCYozAVENw==",
"dev": true,
"dependencies": {
"@types/prettier": "^2.7.2"
},
"engines": {
"node": ">=14.0.0"
},
"peerDependencies": {
"prettier": "^2.3.2"
}
},
"node_modules/prettier-plugin-tailwindcss": { "node_modules/prettier-plugin-tailwindcss": {
"version": "0.2.1", "version": "0.2.1",
"resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.2.1.tgz", "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.2.1.tgz",
@ -11125,6 +11170,39 @@
"vue": "^3.0.0" "vue": "^3.0.0"
} }
}, },
"node_modules/vue-i18n-extract": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/vue-i18n-extract/-/vue-i18n-extract-2.0.7.tgz",
"integrity": "sha512-i1NW5R58S720iQ1BEk+6ILo3hT6UA8mtYNNolSH4rt9345qvXdvA6GHy2+jHozdDAKHwlu9VvS/+vIMKs1UYQw==",
"dependencies": {
"cac": "^6.7.12",
"dot-object": "^2.1.4",
"glob": "^8.0.1",
"is-valid-glob": "^1.0.0",
"js-yaml": "^4.1.0"
},
"bin": {
"vue-i18n-extract": "bin/vue-i18n-extract.js"
}
},
"node_modules/vue-i18n-extract/node_modules/glob": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
"integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^5.0.1",
"once": "^1.3.0"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/vue-router": { "node_modules/vue-router": {
"version": "4.1.6", "version": "4.1.6",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.6.tgz", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.6.tgz",
@ -11460,8 +11538,7 @@
"node_modules/wrappy": { "node_modules/wrappy": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
"dev": true
}, },
"node_modules/ws": { "node_modules/ws": {
"version": "8.11.0", "version": "8.11.0",
@ -14317,6 +14394,12 @@
"integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
"dev": true "dev": true
}, },
"@types/prettier": {
"version": "2.7.2",
"resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz",
"integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==",
"dev": true
},
"@types/semver": { "@types/semver": {
"version": "7.3.13", "version": "7.3.13",
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",
@ -15009,8 +15092,7 @@
"argparse": { "argparse": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
"dev": true
}, },
"aria-query": { "aria-query": {
"version": "5.1.3", "version": "5.1.3",
@ -15149,8 +15231,7 @@
"balanced-match": { "balanced-match": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
"dev": true
}, },
"base64-js": { "base64-js": {
"version": "1.5.1", "version": "1.5.1",
@ -15190,7 +15271,6 @@
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
"requires": { "requires": {
"balanced-match": "^1.0.0" "balanced-match": "^1.0.0"
} }
@ -15256,6 +15336,11 @@
"streamsearch": "^1.1.0" "streamsearch": "^1.1.0"
} }
}, },
"cac": {
"version": "6.7.14",
"resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
"integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ=="
},
"call-bind": { "call-bind": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
@ -15544,8 +15629,7 @@
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
"dev": true
}, },
"constant-case": { "constant-case": {
"version": "3.0.4", "version": "3.0.4",
@ -16143,6 +16227,22 @@
} }
} }
}, },
"dot-object": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/dot-object/-/dot-object-2.1.4.tgz",
"integrity": "sha512-7FXnyyCLFawNYJ+NhkqyP9Wd2yzuo+7n9pGiYpkmXCTYa8Ci2U0eUNDVg5OuO5Pm6aFXI2SWN8/N/w7SJWu1WA==",
"requires": {
"commander": "^4.0.0",
"glob": "^7.1.5"
},
"dependencies": {
"commander": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
"integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="
}
}
},
"dotenv": { "dotenv": {
"version": "16.0.3", "version": "16.0.3",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz",
@ -16977,8 +17077,7 @@
"fs.realpath": { "fs.realpath": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
"dev": true
}, },
"fsevents": { "fsevents": {
"version": "2.3.2", "version": "2.3.2",
@ -17042,7 +17141,6 @@
"version": "7.2.3", "version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dev": true,
"requires": { "requires": {
"fs.realpath": "^1.0.0", "fs.realpath": "^1.0.0",
"inflight": "^1.0.4", "inflight": "^1.0.4",
@ -17056,7 +17154,6 @@
"version": "1.1.11", "version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"requires": { "requires": {
"balanced-match": "^1.0.0", "balanced-match": "^1.0.0",
"concat-map": "0.0.1" "concat-map": "0.0.1"
@ -17066,7 +17163,6 @@
"version": "3.1.2", "version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"requires": { "requires": {
"brace-expansion": "^1.1.7" "brace-expansion": "^1.1.7"
} }
@ -17416,7 +17512,6 @@
"version": "1.0.6", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dev": true,
"requires": { "requires": {
"once": "^1.3.0", "once": "^1.3.0",
"wrappy": "1" "wrappy": "1"
@ -17425,8 +17520,7 @@
"inherits": { "inherits": {
"version": "2.0.4", "version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
"dev": true
}, },
"inquirer": { "inquirer": {
"version": "8.2.5", "version": "8.2.5",
@ -17703,6 +17797,11 @@
} }
} }
}, },
"is-valid-glob": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz",
"integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA=="
},
"is-weakmap": { "is-weakmap": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
@ -17801,7 +17900,6 @@
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
"requires": { "requires": {
"argparse": "^2.0.1" "argparse": "^2.0.1"
} }
@ -18274,7 +18372,6 @@
"version": "5.1.0", "version": "5.1.0",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",
"integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
"dev": true,
"requires": { "requires": {
"brace-expansion": "^2.0.1" "brace-expansion": "^2.0.1"
} }
@ -18490,7 +18587,6 @@
"version": "1.4.0", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true,
"requires": { "requires": {
"wrappy": "1" "wrappy": "1"
} }
@ -18678,8 +18774,7 @@
"path-is-absolute": { "path-is-absolute": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
"dev": true
}, },
"path-key": { "path-key": {
"version": "3.1.1", "version": "3.1.1",
@ -18847,6 +18942,15 @@
"dev": true, "dev": true,
"requires": {} "requires": {}
}, },
"prettier-plugin-sort-json": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/prettier-plugin-sort-json/-/prettier-plugin-sort-json-1.0.0.tgz",
"integrity": "sha512-XgcaF/Sojax1vD6j53wNIByx0rp7ecang+A8W0eM+Ks3yBFu/qXjJNvUtC1lEWeYbNfmRs/d8FyYJCYozAVENw==",
"dev": true,
"requires": {
"@types/prettier": "^2.7.2"
}
},
"prettier-plugin-tailwindcss": { "prettier-plugin-tailwindcss": {
"version": "0.2.1", "version": "0.2.1",
"resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.2.1.tgz", "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.2.1.tgz",
@ -19980,6 +20084,32 @@
"@vue/devtools-api": "^6.2.1" "@vue/devtools-api": "^6.2.1"
} }
}, },
"vue-i18n-extract": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/vue-i18n-extract/-/vue-i18n-extract-2.0.7.tgz",
"integrity": "sha512-i1NW5R58S720iQ1BEk+6ILo3hT6UA8mtYNNolSH4rt9345qvXdvA6GHy2+jHozdDAKHwlu9VvS/+vIMKs1UYQw==",
"requires": {
"cac": "^6.7.12",
"dot-object": "^2.1.4",
"glob": "^8.0.1",
"is-valid-glob": "^1.0.0",
"js-yaml": "^4.1.0"
},
"dependencies": {
"glob": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
"integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^5.0.1",
"once": "^1.3.0"
}
}
}
},
"vue-router": { "vue-router": {
"version": "4.1.6", "version": "4.1.6",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.6.tgz", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.6.tgz",
@ -20233,8 +20363,7 @@
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
"dev": true
}, },
"ws": { "ws": {
"version": "8.11.0", "version": "8.11.0",

View File

@ -10,6 +10,7 @@
"coverage": "vitest run --coverage", "coverage": "vitest run --coverage",
"typecheck": "vue-tsc --noEmit -p tsconfig.app.json --composite false", "typecheck": "vue-tsc --noEmit -p tsconfig.app.json --composite false",
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore", "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
"vue-i18n-extract": "vue-i18n-extract report",
"prettier": "prettier . --write", "prettier": "prettier . --write",
"prettier:check": "prettier . --check", "prettier:check": "prettier . --check",
"tailwind": "tailwindcss -i tailwind.css -o ../server/vbv_lernwelt/static/css/tailwind.css --watch" "tailwind": "tailwindcss -i tailwind.css -o ../server/vbv_lernwelt/static/css/tailwind.css --watch"
@ -28,6 +29,7 @@
"pinia": "^2.0.21", "pinia": "^2.0.21",
"vue": "^3.2.38", "vue": "^3.2.38",
"vue-i18n": "^9.2.2", "vue-i18n": "^9.2.2",
"vue-i18n-extract": "^2.0.7",
"vue-router": "^4.1.5" "vue-router": "^4.1.5"
}, },
"devDependencies": { "devDependencies": {
@ -58,6 +60,7 @@
"postcss-import": "^14.1.0", "postcss-import": "^14.1.0",
"prettier": "^2.7.1", "prettier": "^2.7.1",
"prettier-plugin-organize-imports": "^3.1.1", "prettier-plugin-organize-imports": "^3.1.1",
"prettier-plugin-sort-json": "^1.0.0",
"prettier-plugin-tailwindcss": "^0.2.1", "prettier-plugin-tailwindcss": "^0.2.1",
"replace-in-file": "^6.3.5", "replace-in-file": "^6.3.5",
"sass": "^1.54.6", "sass": "^1.54.6",

View File

@ -1,170 +1,170 @@
{ {
"circlePage": {
"circleContentBoxTitle": "Das lernst du in diesem Circle.",
"contactExpertButton": "Fachexpertin kontaktieren",
"contactExpertDescription": "Tausche dich mit der Fachexpertin für den Circle {circleName} aus.",
"documents": {
"action": "Unterlagen hochladen",
"chooseLearningSequence": "Bitte wähle eine Lernsequenz aus",
"chooseName": "Bitte wähle einen Namen",
"chooseSequence": "Wähle eine Lernsequenz aus",
"expertDescription": "Stelle deinen Lernenden zusätzliche Inhalte zur Verfügung.",
"fileLabel": "Datei",
"maxFileSize": "Maximale Dateigrösse: 20 MB",
"modalAction": "Datei auswählen",
"modalFileName": "Name",
"modalNameInformation": "Max. 70 Zeichen",
"selectFile": "Bitte wähle eine Datei aus",
"title": "Unterlagen",
"uploadErrorMessage": "Beim Hochladen ist ein Fehler aufgetreten. Bitte versuche es erneut.",
"userDescription": "Hier findest du die Unterlagen, die dir die Fachexpertin zur Verfügung gestellt hat."
},
"duration": "Dauer",
"gotQuestions": "Hast du Fragen?",
"learnMore": "Erfahre mehr dazu"
},
"cockpit": {
"examsDone": "Abgelegte Prüfungen von Teilnehmer.",
"feedbacksDone": "Abgeschickte Feedbacks von Teilnehmer.",
"notifyTask": "Benachrichtigen",
"notifyTaskDescription": "Teilnehmer benachrichtigen",
"profileLink": "Profil anzeigen",
"progress": "Fortschritt",
"tasksDone": "Erledigte Transferaufträge von Teilnehmer.",
"title": "Cockpit"
},
"competences": {
"assessAgain": "Sich nochmals einschätzen",
"assessment": "Einschätzungen",
"competences": "Kompetenzen",
"lastImprovements": "Letzte verbesserte Kompetenzen",
"notAssessed": "Nicht eingeschätzt",
"title": "KompetenzNavi"
},
"constants": {
"no": "Nein",
"satisfied": "zufrieden",
"unsatisfied": "unzufrieden",
"verySatisfied": "sehr zufrieden",
"veryUnsatisfied": "sehr unzufrieden",
"yes": "Ja"
},
"dashboard": {
"welcome": "Willkommen, {name}"
},
"feedback": {
"answers": "Antworten",
"areYouSatisfied": "Wie zufrieden bist du?",
"average": "Durchschnitt",
"circleFeedback": "Feedback zum Circle",
"completionDescription": "Dein Feedback ist anonym. Dein Vor- und Nachname werden bei deiner Trainer/-in nicht angezeigt.",
"completionTitle": "Schicke dein Feedback an {name}",
"courseNegativeFeedbackLabel": "Wo sehen Sie Verbesserungspotenzial?",
"coursePositiveFeedbackLabel": "Was hat Ihnen besonders gut gefallen?",
"feedbackPageInfo": "Teilnehmer haben das Feedback ausgefüllt",
"feedbackPageTitle": "Feedback zum Lehrgang",
"feedbackSent": "Dein Feedback wurde abgeschickt",
"goalAttainmentLabel": "Zielerreichung insgesamt",
"happy": "Zufrieden",
"instructorCompetenceLabel": "Der Kursleiter war themenstark, fachkompetent.",
"instructorOpenFeedbackLabel": "Was ich dem Kursleiter sonst noch sagen wollte:",
"instructorRespectLabel": "Fragen und Anregungen der Kursteilnehmenden wurden ernst genommen und aufgegriffen.",
"intro": "{name}, dein/e Trainer/-in, bittet dich, ihm/ihr Feedback zu geben. Das ist freiwillig, würde aber ihm/ihr helfen, deine Lernerlebniss zu verbessern.",
"materialsRatingLabel": "Falls ja: Wie beurteilen Sie die Vorbereitungsunterlagen (z.B. eLearning)?",
"noFeedbacks": "Es wurden noch keine Feedbacks abgegeben",
"proficiencyLabel": "Wie beurteilen Sie Ihre Sicherheit bezüglichen den Themen nach dem Kurs?",
"questionTitle": "Frage",
"receivedMaterialsLabel": "Haben Sie Vorbereitungsunterlagen (z.B. eLearning) erhalten?",
"recommendLabel": "Würden Sie den Kurs weiterempfehlen?",
"satisfactionLabel": "Zufriedenheit insgesamt",
"sendFeedback": "Feedback abschicken",
"sentByUsers": "Von {count} Teilnehmern ausgefüllt",
"showDetails": "Details anzeigen",
"unhappy": "Unzufrieden",
"veryHappy": "Sehr zufrieden",
"veryUnhappy": "Sehr unzufrieden"
},
"footer": {
"contact": "Kontakt",
"dataProtection": "Datenschutzbestimmungen",
"faq": "FAQ",
"imprint": "Impressum"
},
"general": { "general": {
"nextStep": "Weiter geht's",
"start": "Los geht's",
"backToLearningPath": "zurück zum Lernpfad",
"backToCircle": "zurück zum Circle",
"next": "Weiter",
"back": "zurück", "back": "zurück",
"backCapitalized": "@.capitalize:general.back", "backCapitalized": "@.capitalize:general.back",
"save": "Speichern", "backToCircle": "zurück zum Circle",
"send": "Senden", "backToLearningPath": "zurück zum Lernpfad",
"learningUnit": "Lerneinheit", "certificate": "Zertifikat | Zertifikate",
"learningPath": "Lernpfad",
"learningSequence": "Lernsequenz",
"show": "Anschauen",
"circles": "Circles", "circles": "Circles",
"transferTask": "Transferauftrag | Transferaufträge",
"feedback": "Feedback | Feedbacks",
"exam": "Prüfung | Prüfungen", "exam": "Prüfung | Prüfungen",
"examResult": "Prüfungsresultat | Prüfungsresultate", "examResult": "Prüfungsresultat | Prüfungsresultate",
"certificate": "Zertifikat | Zertifikate", "feedback": "Feedback | Feedbacks",
"learningPath": "Lernpfad",
"learningSequence": "Lernsequenz",
"learningUnit": "Lerneinheit",
"next": "Weiter",
"nextStep": "Weiter geht's",
"no": "Nein",
"notification": "Benachrichtigung | Benachrichtigungen", "notification": "Benachrichtigung | Benachrichtigungen",
"profileLink": "Profil anzeigen", "profileLink": "Profil anzeigen",
"save": "Speichern",
"send": "Senden",
"settings": "Kontoeinstellungen",
"shop": "Shop", "shop": "Shop",
"yes": "Ja", "show": "Anschauen",
"no": "Nein",
"showAll": "Alle anschauen", "showAll": "Alle anschauen",
"settings": "Kontoeinstellungen" "start": "Los geht's",
"transferTask": "Transferauftrag | Transferaufträge",
"yes": "Ja"
},
"learningContent": {
"completeAndContinue": "Als erledigt markieren"
},
"learningPathPage": {
"nextStep": "Nächster Schritt",
"showListView": "Listenansicht anzeigen",
"welcomeBack": "Willkommen zurück, {name}"
}, },
"mainNavigation": { "mainNavigation": {
"logout": "Abmelden", "logout": "Abmelden",
"profile": "Profil" "profile": "Profil"
}, },
"dashboard": {
"welcome": "Willkommen, {name}"
},
"learningPathPage": {
"welcomeBack": "Willkommen zurück, {name}",
"showListView": "Listenansicht anzeigen",
"nextStep": "Nächster Schritt"
},
"circlePage": {
"duration": "Dauer",
"circleContentBoxTitle": "Das lernst du in diesem Circle.",
"gotQuestions": "Hast du Fragen?",
"contactExpertButton": "Fachexpertin kontaktieren",
"contactExpertDescription": "Tausche dich mit der Fachexpertin für den Circle {circleName} aus.",
"learnMore": "Erfahre mehr dazu",
"documents": {
"title": "Unterlagen",
"expertDescription": "Stelle deinen Lernenden zusätzliche Inhalte zur Verfügung.",
"userDescription": "Hier findest du die Unterlagen, die dir die Fachexpertin zur Verfügung gestellt hat.",
"action": "Unterlagen hochladen",
"modalAction": "Datei auswählen",
"fileLabel": "Datei",
"modalFileName": "Name",
"modalNameInformation": "Max. 70 Zeichen",
"chooseSequence": "Wähle eine Lernsequenz aus",
"selectFile": "Bitte wähle eine Datei aus",
"chooseName": "Bitte wähle einen Namen",
"chooseLearningSequence": "Bitte wähle eine Lernsequenz aus",
"uploadErrorMessage": "Beim Hochladen ist ein Fehler aufgetreten. Bitte versuche es erneut.",
"maxFileSize": "Maximale Dateigrösse: 20 MB"
}
},
"learningContent": {
"completeAndContinue": "Als erledigt markieren"
},
"selfEvaluation": {
"selfEvaluation": "Selbsteinschätzung",
"title": "@:selfEvaluation.selfEvaluation {title}",
"steps": "Schritt {current} von {max}",
"instruction": [
"Überprüfe, ob du in der Lernheinheit",
"alles verstanden hast.",
"Lies die folgende Aussage und bewerte sie:"
],
"yes": "Ja, ich kann das",
"no": "Das muss ich nochmals anschauen",
"progressText": "Schau dein Fortschritt in deinem KompetenzNavi:",
"progressLink": "KompetenzNavi öffnen",
"selfEvaluationYes": "@:selfEvaluation: Ich kann das.",
"selfEvaluationNo": "@:selfEvaluation: Muss ich nochmals anschauen."
},
"competences": {
"competences": "Kompetenzen",
"title": "KompetenzNavi",
"lastImprovements": "Letzte verbesserte Kompetenzen",
"assessment": "Einschätzungen",
"notAssessed": "Nicht eingeschätzt",
"assessAgain": "Sich nochmals einschätzen"
},
"mediaLibrary": { "mediaLibrary": {
"title": "Mediathek",
"learningMedia": {
"titel": "Lernmedien",
"description": "Finde eine vollständige Liste der Bücher und anderen Medien, auf die im Kurs verwiesen wird."
},
"handlungsfelder": { "handlungsfelder": {
"title": "Handlungsfeld | Handlungsfelder", "description": "Finde alle Ressourcen der Handlungsfelder wie Lernmedien, Links und andere nützliche Informationen.",
"description": "Finde alle Ressourcen der Handlungsfelder wie Lernmedien, Links und andere nützliche Informationen." "title": "Handlungsfeld | Handlungsfelder"
}
}, },
"footer": { "learningMedia": {
"dataProtection": "Datenschutzbestimmungen", "description": "Finde eine vollständige Liste der Bücher und anderen Medien, auf die im Kurs verwiesen wird.",
"imprint": "Impressum", "titel": "Lernmedien"
"contact": "Kontakt",
"faq": "FAQ"
}, },
"cockpit": { "title": "Mediathek"
"title": "Cockpit",
"tasksDone": "Erledigte Transferaufträge von Teilnehmer.",
"feedbacksDone": "Abgeschickte Feedbacks von Teilnehmer.",
"examsDone": "Abgelegte Prüfungen von Teilnehmer.",
"progress": "Fortschritt",
"profileLink": "Profil anzeigen",
"notifyTaskDescription": "Teilnehmer benachrichtigen",
"notifyTask": "Benachrichtigen"
}, },
"messages": { "messages": {
"sendMessage": "Nachricht schreiben" "sendMessage": "Nachricht schreiben"
}, },
"feedback": {
"intro": "{name}, dein/e Trainer/-in, bittet dich, ihm/ihr Feedback zu geben. Das ist freiwillig, würde aber ihm/ihr helfen, deine Lernerlebniss zu verbessern.",
"areYouSatisfied": "Wie zufrieden bist du?",
"recommendLabel": "Würden Sie den Kurs weiterempfehlen?",
"satisfactionLabel": "Zufriedenheit insgesamt",
"goalAttainmentLabel": "Zielerreichung insgesamt",
"proficiencyLabel": "Wie beurteilen Sie Ihre Sicherheit bezüglichen den Themen nach dem Kurs?",
"receivedMaterialsLabel": "Haben Sie Vorbereitungsunterlagen (z.B. eLearning) erhalten?",
"materialsRatingLabel": "Falls ja: Wie beurteilen Sie die Vorbereitungsunterlagen (z.B. eLearning)?",
"instructorCompetenceLabel": "Der Kursleiter war themenstark, fachkompetent.",
"instructorRespectLabel": "Fragen und Anregungen der Kursteilnehmenden wurden ernst genommen und aufgegriffen.",
"instructorOpenFeedbackLabel": "Was ich dem Kursleiter sonst noch sagen wollte:",
"courseNegativeFeedbackLabel": "Wo sehen Sie Verbesserungspotenzial?",
"coursePositiveFeedbackLabel": "Was hat Ihnen besonders gut gefallen?",
"completionTitle": "Schicke dein Feedback an {name}",
"completionDescription": "Dein Feedback ist anonym. Dein Vor- und Nachname werden bei deiner Trainer/-in nicht angezeigt.",
"sendFeedback": "Feedback abschicken",
"feedbackSent": "Dein Feedback wurde abgeschickt",
"circleFeedback": "Feedback zum Circle",
"showDetails": "Details anzeigen",
"sentByUsers": "Von {count} Teilnehmern ausgefüllt",
"feedbackPageTitle": "Feedback zum Lehrgang",
"feedbackPageInfo": "Teilnehmer haben das Feedback ausgefüllt",
"questionTitle": "Frage",
"veryUnhappy": "Sehr unzufrieden",
"unhappy": "Unzufrieden",
"happy": "Zufrieden",
"veryHappy": "Sehr zufrieden",
"average": "Durchschnitt",
"answers": "Antworten",
"noFeedbacks": "Es wurden noch keine Feedbacks abgegeben"
},
"notifications": { "notifications": {
"load_more": "Mehr laden", "load_more": "Mehr laden",
"no_notifications": "Du hast derzeit keine Benachrichtigungen" "no_notifications": "Du hast derzeit keine Benachrichtigungen"
}, },
"selfEvaluation": {
"instruction": [
"Überprüfe, ob du in der Lernheinheit",
"alles verstanden hast.",
"Lies die folgende Aussage und bewerte sie:"
],
"no": "Das muss ich nochmals anschauen",
"progressLink": "KompetenzNavi öffnen",
"progressText": "Schau dein Fortschritt in deinem KompetenzNavi:",
"selfEvaluation": "Selbsteinschätzung",
"selfEvaluationNo": "@:selfEvaluation: Muss ich nochmals anschauen.",
"selfEvaluationYes": "@:selfEvaluation: Ich kann das.",
"steps": "Schritt {current} von {max}",
"title": "@:selfEvaluation.selfEvaluation {title}",
"yes": "Ja, ich kann das"
},
"settings": { "settings": {
"emailNotifications": "Email Benachrichtigungen" "emailNotifications": "Email Benachrichtigungen"
},
"constants": {
"yes": "Ja",
"no": "Nein",
"verySatisfied": "sehr zufrieden",
"satisfied": "zufrieden",
"unsatisfied": "unzufrieden",
"veryUnsatisfied": "sehr unzufrieden"
} }
} }

View File

@ -1,159 +1,170 @@
{ {
"general": { "circlePage": {
"nextStep": "Prochaine étape", "circleContentBoxTitle": "Das lernst du in diesem Circle.",
"start": "Commencer", "contactExpertButton": "Fachexpertin kontaktieren",
"backToLearningPath": "zurück zum Lernpfad", "contactExpertDescription": "Tausche dich mit der Fachexpertin für den Circle {circleName} aus.",
"backToCircle": "zurück zum Circle", "documents": {
"next": "Weiter", "action": "Unterlagen hochladen",
"back": "zurück", "chooseLearningSequence": "Bitte wähle eine Lernsequenz aus",
"backCapitalized": "@.capitalize:general.back", "chooseName": "Bitte wähle einen Namen",
"save": "Speichern", "chooseSequence": "Wähle eine Lernsequenz aus",
"learningUnit": "Lerneinheit", "expertDescription": "Stelle deinen Lernenden zusätzliche Inhalte zur Verfügung.",
"learningPath": "Lernpfad", "fileLabel": "Datei",
"learningSequence": "Lernsequenz", "maxFileSize": "Maximale Dateigrösse: 20 MB",
"show": "Anschauen", "modalAction": "Datei auswählen",
"circles": "Circles", "modalFileName": "Name",
"transferTask": "Transferauftrag | Transferaufträge", "modalNameInformation": "Max. 70 Zeichen",
"feedback": "Feedback | Feedbacks", "selectFile": "Bitte wähle eine Datei aus",
"exam": "Prüfung | Prüfungen", "title": "Unterlagen",
"examResult": "Prüfungsresultat | Prüfungsresultate", "uploadErrorMessage": "Beim Hochladen ist ein Fehler aufgetreten. Bitte versuche es erneut.",
"certificate": "Zertifikat | Zertifikate", "userDescription": "Hier findest du die Unterlagen, die dir die Fachexpertin zur Verfügung gestellt hat."
"notification": "Benachrichtigung | Benachrichtigungen",
"profileLink": "Profil anzeigen",
"shop": "Shop",
"yes": "Ja",
"no": "Nein"
}, },
"mainNavigation": { "duration": "Dauer",
"logout": "Abmelden", "gotQuestions": "Hast du Fragen?",
"settings": "Kontoeinstellungen" "learnMore": "Erfahre mehr dazu"
},
"cockpit": {
"examsDone": "Abgelegte Prüfungen von Teilnehmer.",
"feedbacksDone": "Abgeschickte Feedbacks von Teilnehmer.",
"profileLink": "Profil anzeigen",
"progress": "Fortschritt",
"tasksDone": "Erledigte Transferaufträge von Teilnehmer.",
"title": "Cockpit"
},
"competences": {
"assessAgain": "Sich nochmals einschätzen",
"assessment": "Einschätzungen",
"competences": "Kompetenzen",
"lastImprovements": "Letzte verbesserte Kompetenzen",
"notAssessed": "Nicht eingeschätzt",
"showAll": "Alle anschauen",
"title": "KompetenzNavi"
},
"constants": {
"no": "Nein",
"satisfied": "zufrieden",
"unsatisfied": "unzufrieden",
"verySatisfied": "sehr zufrieden",
"veryUnsatisfied": "sehr unzufrieden",
"yes": "Ja"
}, },
"dashboard": { "dashboard": {
"welcome": "Willkommen, {name}" "welcome": "Willkommen, {name}"
}, },
"learningPathPage": { "feedback": {
"welcomeBack": "Willkommen zurück, {name}", "answers": "Antworten",
"showListView": "Listenansicht anzeigen", "areYouSatisfied": "Wie zufrieden bist du?",
"nextStep": "Nächster Schritt" "average": "Durchschnitt",
"circleFeedback": "Feedback zum Circle",
"completionDescription": "Dein Feedback ist anonym. Dein Vor- und Nachname werden bei deiner Trainer/-in nicht angezeigt.",
"completionTitle": "Schicke dein Feedback an {name}",
"courseNegativeFeedbackLabel": "Wo sehen Sie Verbesserungspotenzial?",
"coursePositiveFeedbackLabel": "Was hat Ihnen besonders gut gefallen?",
"feedbackPageInfo": "Teilnehmer haben das Feedback ausgefüllt",
"feedbackPageTitle": "Feedback zum Lehrgang",
"feedbackSent": "Dein Feedback wurde abgeschickt",
"goalAttainmentLabel": "Zielerreichung insgesamt",
"happy": "Zufrieden",
"instructorCompetenceLabel": "Der Kursleiter war themenstark, fachkompetent.",
"instructorOpenFeedbackLabel": "Was ich dem Kursleiter sonst noch sagen wollte:",
"instructorRespectLabel": "Fragen und Anregungen der Kursteilnehmenden wurden ernst genommen und aufgegriffen.",
"intro": "{name}, dein/e Trainer/-in, bittet dich, ihm/ihr Feedback zu geben. Das ist freiwillig, würde aber ihm/ihr helfen, deine Lernerlebniss zu verbessern.",
"materialsRatingLabel": "Falls ja: Wie beurteilen Sie die Vorbereitungsunterlagen (z.B. eLearning)?",
"noFeedbacks": "Es wurden noch keine Feedbacks abgegeben",
"proficiencyLabel": "Wie beurteilen Sie Ihre Sicherheit bezüglichen den Themen nach dem Kurs?",
"questionTitle": "Frage",
"receivedMaterialsLabel": "Haben Sie Vorbereitungsunterlagen (z.B. eLearning) erhalten?",
"recommendLabel": "Würden Sie den Kurs weiterempfehlen?",
"satisfactionLabel": "Zufriedenheit insgesamt",
"sendFeedback": "Feedback abschicken",
"sentByUsers": "Von {count} Teilnehmern ausgefüllt",
"showDetails": "Details anzeigen",
"unhappy": "Unzufrieden",
"veryHappy": "Sehr zufrieden",
"veryUnhappy": "Sehr unzufrieden"
}, },
"circlePage": { "footer": {
"duration": "Dauer", "contact": "Kontakt",
"circleContentBoxTitle": "Das lernst du in diesem Circle.", "dataProtection": "Datenschutzbestimmungen",
"gotQuestions": "Hast du Fragen?", "faq": "FAQ",
"contactExpertButton": "Fachexpertin kontaktieren", "imprint": "Impressum"
"contactExpertDescription": "Tausche dich mit der Fachexpertin für den Circle {circleName} aus.", },
"learnMore": "Erfahre mehr dazu", "general": {
"documents": { "back": "zurück",
"title": "Unterlagen", "backCapitalized": "@.capitalize:general.back",
"expertDescription": "Stelle deinen Lernenden zusätzliche Inhalte zur Verfügung.", "backToCircle": "zurück zum Circle",
"userDescription": "Hier findest du die Unterlagen, die dir die Fachexpertin zur Verfügung gestellt hat.", "backToLearningPath": "zurück zum Lernpfad",
"action": "Unterlagen hochladen", "certificate": "Zertifikat | Zertifikate",
"modalAction": "Datei auswählen", "circles": "Circles",
"fileLabel": "Datei", "exam": "Prüfung | Prüfungen",
"modalFileName": "Name", "examResult": "Prüfungsresultat | Prüfungsresultate",
"modalNameInformation": "Max. 70 Zeichen", "feedback": "Feedback | Feedbacks",
"chooseSequence": "Wähle eine Lernsequenz aus", "hello": "",
"selectFile": "Bitte wähle eine Datei aus", "learningPath": "Lernpfad",
"chooseName": "Bitte wähle einen Namen", "learningSequence": "Lernsequenz",
"chooseLearningSequence": "Bitte wähle eine Lernsequenz aus", "learningUnit": "Lerneinheit",
"uploadErrorMessage": "Beim Hochladen ist ein Fehler aufgetreten. Bitte versuche es erneut.", "next": "Weiter",
"maxFileSize": "Maximale Dateigrösse: 20 MB" "nextStep": "Prochaine étape",
} "no": "Nein",
"notification": "Benachrichtigung | Benachrichtigungen",
"profileLink": "Profil anzeigen",
"save": "Speichern",
"settings": "",
"shop": "Shop",
"show": "Anschauen",
"showAll": "",
"start": "Commencer",
"transferTask": "Transferauftrag | Transferaufträge",
"yes": "Ja"
}, },
"learningContent": { "learningContent": {
"completeAndContinue": "Als erledigt markieren" "completeAndContinue": "Als erledigt markieren"
}, },
"learningPathPage": {
"nextStep": "Nächster Schritt",
"showListView": "Listenansicht anzeigen",
"welcomeBack": "Willkommen zurück, {name}"
},
"mainNavigation": {
"logout": "Abmelden",
"profile": "",
"settings": "Kontoeinstellungen"
},
"mediaLibrary": {
"handlungsfelder": {
"description": "Finde alle Ressourcen der Handlungsfelder wie Lernmedien, Links und andere nützliche Informationen.",
"title": "Handlungsfeld | Handlungsfelder"
},
"learningMedia": {
"description": "Finde eine vollständige Liste der Bücher und anderen Medien, auf die im Kurs verwiesen wird.",
"titel": "Lernmedien"
},
"title": "Mediathek"
},
"messages": {
"sendMessage": "Nachricht schreiben"
},
"notifications": {
"load_more": "",
"no_notifications": ""
},
"selfEvaluation": { "selfEvaluation": {
"selfEvaluation": "Selbsteinschätzung",
"title": "@:selfEvaluation.selfEvaluation {title}",
"steps": "Schritt {current} von {max}",
"instruction": [ "instruction": [
"Überprüfe, ob du in der Lernheinheit", "Überprüfe, ob du in der Lernheinheit",
"alles verstanden hast.", "alles verstanden hast.",
"Lies die folgende Aussage und bewerte sie:" "Lies die folgende Aussage und bewerte sie:"
], ],
"yes": "Ja, ich kann das",
"no": "Das muss ich nochmals anschauen", "no": "Das muss ich nochmals anschauen",
"progressText": "Schau dein Fortschritt in deinem KompetenzNavi:",
"progressLink": "KompetenzNavi öffnen", "progressLink": "KompetenzNavi öffnen",
"progressText": "Schau dein Fortschritt in deinem KompetenzNavi:",
"selfEvaluation": "Selbsteinschätzung",
"selfEvaluationNo": "@:selfEvaluation: Muss ich nochmals anschauen.",
"selfEvaluationYes": "@:selfEvaluation: Ich kann das.", "selfEvaluationYes": "@:selfEvaluation: Ich kann das.",
"selfEvaluationNo": "@:selfEvaluation: Muss ich nochmals anschauen." "steps": "Schritt {current} von {max}",
"title": "@:selfEvaluation.selfEvaluation {title}",
"yes": "Ja, ich kann das"
}, },
"competences": { "settings": {
"competences": "Kompetenzen", "emailNotifications": ""
"title": "KompetenzNavi",
"lastImprovements": "Letzte verbesserte Kompetenzen",
"showAll": "Alle anschauen",
"assessment": "Einschätzungen",
"notAssessed": "Nicht eingeschätzt",
"assessAgain": "Sich nochmals einschätzen"
},
"mediaLibrary": {
"title": "Mediathek",
"learningMedia": {
"titel": "Lernmedien",
"description": "Finde eine vollständige Liste der Bücher und anderen Medien, auf die im Kurs verwiesen wird."
},
"handlungsfelder": {
"title": "Handlungsfeld | Handlungsfelder",
"description": "Finde alle Ressourcen der Handlungsfelder wie Lernmedien, Links und andere nützliche Informationen."
}
},
"footer": {
"dataProtection": "Datenschutzbestimmungen",
"imprint": "Impressum",
"contact": "Kontakt",
"faq": "FAQ"
},
"cockpit": {
"title": "Cockpit",
"tasksDone": "Erledigte Transferaufträge von Teilnehmer.",
"feedbacksDone": "Abgeschickte Feedbacks von Teilnehmer.",
"examsDone": "Abgelegte Prüfungen von Teilnehmer.",
"progress": "Fortschritt",
"profileLink": "Profil anzeigen"
},
"messages": {
"sendMessage": "Nachricht schreiben"
},
"feedback": {
"intro": "{name}, dein/e Trainer/-in, bittet dich, ihm/ihr Feedback zu geben. Das ist freiwillig, würde aber ihm/ihr helfen, deine Lernerlebniss zu verbessern.",
"areYouSatisfied": "Wie zufrieden bist du?",
"recommendLabel": "Würden Sie den Kurs weiterempfehlen?",
"satisfactionLabel": "Zufriedenheit insgesamt",
"goalAttainmentLabel": "Zielerreichung insgesamt",
"proficiencyLabel": "Wie beurteilen Sie Ihre Sicherheit bezüglichen den Themen nach dem Kurs?",
"receivedMaterialsLabel": "Haben Sie Vorbereitungsunterlagen (z.B. eLearning) erhalten?",
"materialsRatingLabel": "Falls ja: Wie beurteilen Sie die Vorbereitungsunterlagen (z.B. eLearning)?",
"instructorCompetenceLabel": "Der Kursleiter war themenstark, fachkompetent.",
"instructorRespectLabel": "Fragen und Anregungen der Kursteilnehmenden wurden ernst genommen und aufgegriffen.",
"instructorOpenFeedbackLabel": "Was ich dem Kursleiter sonst noch sagen wollte:",
"courseNegativeFeedbackLabel": "Wo sehen Sie Verbesserungspotenzial?",
"coursePositiveFeedbackLabel": "Was hat Ihnen besonders gut gefallen?",
"completionTitle": "Schicke dein Feedback an {name}",
"completionDescription": "Dein Feedback ist anonym. Dein Vor- und Nachname werden bei deiner Trainer/-in nicht angezeigt.",
"sendFeedback": "Feedback abschicken",
"feedbackSent": "Dein Feedback wurde abgeschickt",
"circleFeedback": "Feedback zum Circle",
"showDetails": "Details anzeigen",
"sentByUsers": "Von {count} Teilnehmern ausgefüllt",
"feedbackPageTitle": "Feedback zum Lehrgang",
"feedbackPageInfo": "Teilnehmer haben das Feedback ausgefüllt",
"questionTitle": "Frage",
"veryUnhappy": "Sehr unzufrieden",
"unhappy": "Unzufrieden",
"happy": "Zufrieden",
"veryHappy": "Sehr zufrieden",
"average": "Durchschnitt",
"answers": "Antworten",
"noFeedbacks": "Es wurden noch keine Feedbacks abgegeben"
},
"constants": {
"yes": "Ja",
"no": "Nein",
"verySatisfied": "sehr zufrieden",
"satisfied": "zufrieden",
"unsatisfied": "unzufrieden",
"veryUnsatisfied": "sehr unzufrieden"
} }
} }

View File

@ -1,15 +1,15 @@
{ {
"extends": "@vue/tsconfig/tsconfig.web.json",
"include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
"exclude": ["src/**/__tests__/*"],
"compilerOptions": { "compilerOptions": {
"lib": ["ES2021", "DOM", "DOM.Iterable"],
"composite": true,
"strict": true,
"allowJs": true, "allowJs": true,
"baseUrl": ".", "baseUrl": ".",
"composite": true,
"lib": ["ES2021", "DOM", "DOM.Iterable"],
"paths": { "paths": {
"@/*": ["./src/*"] "@/*": ["./src/*"]
} },
} "strict": true
},
"exclude": ["src/**/__tests__/*"],
"extends": "@vue/tsconfig/tsconfig.web.json",
"include": ["env.d.ts", "src/**/*", "src/**/*.vue"]
} }

View File

@ -1,8 +1,8 @@
{ {
"extends": "@vue/tsconfig/tsconfig.node.json",
"include": ["vite.config.*"],
"compilerOptions": { "compilerOptions": {
"composite": true, "composite": true,
"types": ["node", "vitest"] "types": ["node", "vitest"]
} },
"extends": "@vue/tsconfig/tsconfig.node.json",
"include": ["vite.config.*"]
} }

View File

@ -1,9 +1,9 @@
{ {
"extends": "./tsconfig.app.json",
"exclude": [],
"compilerOptions": { "compilerOptions": {
"composite": true, "composite": true,
"lib": [], "lib": [],
"types": ["node", "jsdom", "vitest/globals"] "types": ["node", "jsdom", "vitest/globals"]
} },
"exclude": [],
"extends": "./tsconfig.app.json"
} }

View File

@ -0,0 +1,12 @@
// eslint-disable-next-line
module.exports = {
vueFiles: "./src/**/*.?(js|vue)",
languageFiles: "./src/locales/*.json",
exclude: ["translation_key_1", "translation_key_2"],
output: false,
add: false,
remove: false,
ci: false,
separator: ".",
noEmptyTranslation: "",
};

View File

@ -6,7 +6,8 @@
"test": "echo \"Error: no test specified\" && exit 1", "test": "echo \"Error: no test specified\" && exit 1",
"cypress:open": "cypress open", "cypress:open": "cypress open",
"cypress:ci": "currents run --parallel --record --key $CURRENTS_KEY", "cypress:ci": "currents run --parallel --record --key $CURRENTS_KEY",
"prettier": "npm run prettier --prefix client" "prettier": "npm run prettier --prefix client",
"vue-i18n-extract": "npm run vue-i18n-extract --prefix client"
}, },
"devDependencies": { "devDependencies": {
"@currents/cli": "^3.1.3", "@currents/cli": "^3.1.3",