diff --git a/README.md b/README.md index 5ba494da..96526a1d 100644 --- a/README.md +++ b/README.md @@ -101,53 +101,38 @@ Preferences -> Tools -> Actions on Save ## Translations -We use (Locize)[https://locize.com] (see 1Password for credentials) -together with (i18next)[https://www.i18next.com/] -for translations on the Frontend. +We use the [i18next](https://www.i18next.com/) library for translations. +Please add `a.` prefix for new translation keys in the code: -Please make sure that the required environment variables are set -(see ./env_secrets/local_daniel.env for the values): - -* LOCIZE_PROJECT_ID -* LOCIZE_API_KEY - -The master for translated files is on Locize! -That means, that the app will take the translations/texts from Locize -to show in the app. -The files in ./client/locales are only used as reference and are not the master! - -There are multiple ways on how to add new translations to Locize: - -### Process one: Let Locize add missing keys automatically - -When running the app, it will automatically add the missing translation -keys to Locize. -There you can translate them, and also add the German translation. - -### Process two: Add keys manually - -You can add the new keys manually to the German locale file in -./client/locales/de/translation.json - -Then you can run the following command to add the keys to Locize: - -### Helpers - -The following command could help find missing and/or unused keys. -But manual review is still needed. - -```bash -npx vue-i18n-extract report --vueFiles './src/**/*.?(ts|vue)' --languageFiles './src/locales/**/*.?(json|yml|yaml)' +``` +

{{ $t("a.Demo mit Daniel") }}

``` +With [i18next-parser](https://github.com/i18next/i18next-parser) we can extraxt the +new translation keys directly from the code to the language files in `./client/src/locales`. + ```bash -npm run locize:sync +# extract new translation keys +# in `./client` directory +npm run i18next:parse ``` -The command will add the keys and the German translation to Locize. +The new keys will end up in the `./client/src/locales/de/translation.json` file. + +You can translate the keys directly in the files. + +#### Bonus: Translate with BabelEdit desktop app + +The [BabelEdit](https://www.codeandweb.com/babeledit) desktop can help directly with +the translation. + +![](./docs/assets/babeledit01.png) + +Here are the settings that I use in BabelEdit: +![](./docs/assets/babeledit02.png) + +Run the `npm run i18next:sort` to get a "clean" sorted file after edit with BabelEdit. -Bonus: Use the "i18n ally" plugin in VSCode or IntelliJ to get extract untranslated -texts directly from the code to the translation.json file. ### "_many" plural form in French and Italian diff --git a/client/.gitignore b/client/.gitignore index 38adffa6..0620c3a3 100644 --- a/client/.gitignore +++ b/client/.gitignore @@ -26,3 +26,4 @@ coverage *.njsproj *.sln *.sw? +babel-edit.babel \ No newline at end of file diff --git a/client/.prettierrc b/client/.prettierrc index 49aec493..0e2e0704 100644 --- a/client/.prettierrc +++ b/client/.prettierrc @@ -1,6 +1,7 @@ { "htmlWhitespaceSensitivity": "ignore", "jsonRecursiveSort": true, + "jsonSortOrder": "{\"/.*/\": \"caseInsensitiveNumeric\"}", "organizeImportsSkipDestructiveCodeActions": true, "plugins": [ "prettier-plugin-sort-json", diff --git a/client/i18next-parser.config.mjs b/client/i18next-parser.config.mjs new file mode 100644 index 00000000..de1a763b --- /dev/null +++ b/client/i18next-parser.config.mjs @@ -0,0 +1,133 @@ +// i18next-parser.config.js + +export default { + contextSeparator: "_", + // Key separator used in your translation keys + + createOldCatalogs: false, + // Save the \_old files + + defaultNamespace: "translation", + // Default namespace used in your i18next config + + // eslint-disable-next-line @typescript-eslint/no-unused-vars + defaultValue: function (locale, namespace, key, value) { + if (locale === "de") { + return key; + } + return ""; + }, + // Default value to give to keys with no value + // You may also specify a function accepting the locale, namespace, key, and value as arguments + + indentation: 2, + // Indentation of the catalog files + + keepRemoved: true, + // Keep keys from the catalog that are no longer in code + // You may either specify a boolean to keep or discard all removed keys. + // You may also specify an array of patterns: the keys from the catalog that are no long in the code but match one of the patterns will be kept. + // The patterns are applied to the full key including the namespace, the parent keys and the separators. + + keySeparator: false, + // Key separator used in your translation keys + // If you want to use plain english keys, separators such as `.` and `:` will conflict. You might want to set `keySeparator: false` and `namespaceSeparator: false`. That way, `t('Status: Loading...')` will not think that there are a namespace and three separator dots for instance. + + // see below for more details + lexers: { + vue: [ + { + lexer: "JavascriptLexer", + functions: ["t", "$t"], // Array of functions to match + namespaceFunctions: ["useTranslation", "withTranslation"], // Array of functions to match for namespace + }, + ], + default: ["JavascriptLexer"], + }, + + lineEnding: "auto", + // Control the line ending. See options at https://github.com/ryanve/eol + + locales: ["de", "fr", "it"], + // An array of the locales in your applications + + namespaceSeparator: false, + // Namespace separator used in your translation keys + // If you want to use plain english keys, separators such as `.` and `:` will conflict. You might want to set `keySeparator: false` and `namespaceSeparator: false`. That way, `t('Status: Loading...')` will not think that there are a namespace and three separator dots for instance. + + output: "src/locales/$LOCALE/$NAMESPACE.json", + // Supports $LOCALE and $NAMESPACE injection + // Supports JSON (.json) and YAML (.yml) file formats + // Where to write the locale files relative to process.cwd() + + pluralSeparator: "_", + // Plural separator used in your translation keys + // If you want to use plain english keys, separators such as `_` might conflict. You might want to set `pluralSeparator` to a different string that does not occur in your keys. + // If you don't want to generate keys for plurals (for example, in case you are using ICU format), set `pluralSeparator: false`. + + input: ["src/**/*.{js,ts,vue}"], + // An array of globs that describe where to look for source files + // relative to the location of the configuration file + + sort: false, + // Whether or not to sort the catalog. Can also be a [compareFunction](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#parameters) + + verbose: false, + // Display info about the parsing including some stats + + failOnWarnings: false, + // Exit with an exit code of 1 on warnings + + failOnUpdate: false, + // Exit with an exit code of 1 when translations are updated (for CI purpose) + + customValueTemplate: null, + // If you wish to customize the value output the value as an object, you can set your own format. + // + // - ${defaultValue} is the default value you set in your translation function. + // - ${filePaths} will be expanded to an array that contains the absolute + // file paths where the translations originated in, in case e.g., you need + // to provide translators with context + // + // Any other custom property will be automatically extracted from the 2nd + // argument of your `t()` function or tOptions in + // + // Example: + // For `t('my-key', {maxLength: 150, defaultValue: 'Hello'})` in + // /path/to/your/file.js, + // + // Using the following customValueTemplate: + // + // customValueTemplate: { + // message: "${defaultValue}", + // description: "${maxLength}", + // paths: "${filePaths}", + // } + // + // Will result in the following item being extracted: + // + // "my-key": { + // "message": "Hello", + // "description": 150, + // "paths": ["/path/to/your/file.js"] + // } + + resetDefaultValueLocale: null, + // The locale to compare with default values to determine whether a default value has been changed. + // If this is set and a default value differs from a translation in the specified locale, all entries + // for that key across locales are reset to the default value, and existing translations are moved to + // the `_old` file. + + i18nextOptions: null, + // If you wish to customize options in internally used i18next instance, you can define an object with any + // configuration property supported by i18next (https://www.i18next.com/overview/configuration-options). + // { compatibilityJSON: 'v3' } can be used to generate v3 compatible plurals. + + yamlOptions: null, + // If you wish to customize options for yaml output, you can define an object here. + // Configuration options are here (https://github.com/nodeca/js-yaml#dump-object---options-). + // Example: + // { + // lineWidth: -1, + // } +}; diff --git a/client/package-lock.json b/client/package-lock.json index f4917956..01ed182b 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -61,6 +61,7 @@ "eslint-config-prettier": "^8.10.0", "eslint-plugin-cypress": "^2.15.2", "eslint-plugin-vue": "^9.27.0", + "i18next-parser": "^9.0.2", "jsdom": "^24.1.0", "locize-cli": "^8.0.1", "postcss": "^8.4.39", @@ -1560,6 +1561,22 @@ "node": ">=12" } }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/openbsd-x64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", @@ -2725,6 +2742,18 @@ "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, + "node_modules/@gulpjs/to-absolute-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@gulpjs/to-absolute-glob/-/to-absolute-glob-4.0.0.tgz", + "integrity": "sha512-kjotm7XJrJ6v+7knhPaRgaT6q8F8K2jiafwYdNHLzmV0uGLuZY43FK6smNSHUPrhq5kX2slCUy+RGG/xGqmIKA==", + "dev": true, + "dependencies": { + "is-negated-glob": "^1.0.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", @@ -4332,6 +4361,12 @@ "integrity": "sha512-OpXEVoCKSS3lQqjx9GGGOapBeuW5eUboYHRlHP9urXPX25IKZ6AnP5ZRxtVf63iieUbsHxLn8NQ5Nlftc6yzAA==", "dev": true }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, "node_modules/@types/node": { "version": "20.14.10", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", @@ -4351,6 +4386,12 @@ "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==" }, + "node_modules/@types/symlink-or-copy": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/symlink-or-copy/-/symlink-or-copy-1.2.2.tgz", + "integrity": "sha512-MQ1AnmTLOncwEf9IVU+B2e4Hchrku5N67NkgcAHW0p3sdzPe0FNMANxEm6OJUzPniEQGkeT3OROLlCwZJLWFZA==", + "dev": true + }, "node_modules/@types/tough-cookie": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", @@ -5605,6 +5646,12 @@ "proxy-from-env": "^1.1.0" } }, + "node_modules/b4a": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", + "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", + "dev": true + }, "node_modules/babel-plugin-syntax-trailing-function-commas": { "version": "7.0.0-beta.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", @@ -5654,6 +5701,13 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "node_modules/bare-events": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.4.2.tgz", + "integrity": "sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==", + "dev": true, + "optional": true + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -5738,6 +5792,85 @@ "node": ">=8" } }, + "node_modules/broccoli-node-api": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/broccoli-node-api/-/broccoli-node-api-1.7.0.tgz", + "integrity": "sha512-QIqLSVJWJUVOhclmkmypJJH9u9s/aWH4+FH6Q6Ju5l+Io4dtwqdPUNmDfw40o6sxhbZHhqGujDJuHTML1wG8Yw==", + "dev": true + }, + "node_modules/broccoli-node-info": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/broccoli-node-info/-/broccoli-node-info-2.2.0.tgz", + "integrity": "sha512-VabSGRpKIzpmC+r+tJueCE5h8k6vON7EIMMWu6d/FyPdtijwLQ7QvzShEw+m3mHoDzUaj/kiZsDYrS8X2adsBg==", + "dev": true, + "engines": { + "node": "8.* || >= 10.*" + } + }, + "node_modules/broccoli-output-wrapper": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/broccoli-output-wrapper/-/broccoli-output-wrapper-3.2.5.tgz", + "integrity": "sha512-bQAtwjSrF4Nu0CK0JOy5OZqw9t5U0zzv2555EA/cF8/a8SLDTIetk9UgrtMVw7qKLKdSpOZ2liZNeZZDaKgayw==", + "dev": true, + "dependencies": { + "fs-extra": "^8.1.0", + "heimdalljs-logger": "^0.1.10", + "symlink-or-copy": "^1.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + } + }, + "node_modules/broccoli-output-wrapper/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/broccoli-output-wrapper/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/broccoli-output-wrapper/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/broccoli-plugin": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/broccoli-plugin/-/broccoli-plugin-4.0.7.tgz", + "integrity": "sha512-a4zUsWtA1uns1K7p9rExYVYG99rdKeGRymW0qOCNkvDPHQxVi3yVyJHhQbM3EZwdt2E0mnhr5e0c/bPpJ7p3Wg==", + "dev": true, + "dependencies": { + "broccoli-node-api": "^1.7.0", + "broccoli-output-wrapper": "^3.2.5", + "fs-merger": "^3.2.1", + "promise-map-series": "^0.3.0", + "quick-temp": "^0.1.8", + "rimraf": "^3.0.2", + "symlink-or-copy": "^1.3.1" + }, + "engines": { + "node": "10.* || >= 12.*" + } + }, "node_modules/browserslist": { "version": "4.23.2", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz", @@ -6037,21 +6170,25 @@ } }, "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", + "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", "dev": true, "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" + "domutils": "^3.1.0", + "encoding-sniffer": "^0.2.0", + "htmlparser2": "^9.1.0", + "parse5": "^7.1.2", + "parse5-htmlparser2-tree-adapter": "^7.0.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^6.19.5", + "whatwg-mimetype": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">=18.17" }, "funding": { "url": "https://github.com/cheeriojs/cheerio?sponsor=1" @@ -6207,6 +6344,12 @@ "node": ">=0.8" } }, + "node_modules/clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", + "dev": true + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -6353,6 +6496,12 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, "node_modules/cosmiconfig": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", @@ -7519,6 +7668,19 @@ "iconv-lite": "^0.6.2" } }, + "node_modules/encoding-sniffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz", + "integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==", + "dev": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" + } + }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -7538,6 +7700,12 @@ "node": ">=8.6" } }, + "node_modules/ensure-posix-path": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ensure-posix-path/-/ensure-posix-path-1.1.1.tgz", + "integrity": "sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw==", + "dev": true + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -7549,6 +7717,12 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/eol": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz", + "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==", + "dev": true + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -8140,6 +8314,12 @@ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", "dev": true }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", @@ -8436,6 +8616,94 @@ "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", "dev": true }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs-merger": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/fs-merger/-/fs-merger-3.2.1.tgz", + "integrity": "sha512-AN6sX12liy0JE7C2evclwoo0aCG3PFulLjrTLsJpWh/2mM+DinhpSGqYLbHBBbIW1PLRNcFhJG8Axtz8mQW3ug==", + "dev": true, + "dependencies": { + "broccoli-node-api": "^1.7.0", + "broccoli-node-info": "^2.1.0", + "fs-extra": "^8.0.1", + "fs-tree-diff": "^2.0.1", + "walk-sync": "^2.2.0" + } + }, + "node_modules/fs-merger/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-merger/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/fs-merger/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/fs-mkdirp-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-2.0.1.tgz", + "integrity": "sha512-UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.8", + "streamx": "^2.12.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/fs-tree-diff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fs-tree-diff/-/fs-tree-diff-2.0.1.tgz", + "integrity": "sha512-x+CfAZ/lJHQqwlD64pYM5QxWjzWhSjroaVsr8PW831zOApL55qPibed0c+xebaLWVr2BnHFoHdrwOv8pzt8R5A==", + "dev": true, + "dependencies": { + "@types/symlink-or-copy": "^1.2.0", + "heimdalljs-logger": "^0.1.7", + "object-assign": "^4.1.0", + "path-posix": "^1.0.0", + "symlink-or-copy": "^1.1.8" + }, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -8579,6 +8847,37 @@ "node": ">= 6" } }, + "node_modules/glob-stream": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-8.0.2.tgz", + "integrity": "sha512-R8z6eTB55t3QeZMmU1C+Gv+t5UnNRkA55c5yo67fAVfxODxieTwsjNG7utxS/73NdP1NbDgCrhVEg2h00y4fFw==", + "dev": true, + "dependencies": { + "@gulpjs/to-absolute-glob": "^4.0.0", + "anymatch": "^3.1.3", + "fastq": "^1.13.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "is-negated-glob": "^1.0.0", + "normalize-path": "^3.0.0", + "streamx": "^2.12.5" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-stream/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/glob/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -8783,6 +9082,15 @@ "graphql": ">=0.11 <=16" } }, + "node_modules/gulp-sort": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/gulp-sort/-/gulp-sort-2.0.0.tgz", + "integrity": "sha512-MyTel3FXOdh1qhw1yKhpimQrAmur9q1X0ZigLmCOxouQD+BD3za9/89O+HfbgBQvvh4igEbp0/PUWO+VqGYG1g==", + "dev": true, + "dependencies": { + "through2": "^2.0.1" + } + }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -8868,6 +9176,46 @@ "tslib": "^2.0.3" } }, + "node_modules/heimdalljs": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/heimdalljs/-/heimdalljs-0.2.6.tgz", + "integrity": "sha512-o9bd30+5vLBvBtzCPwwGqpry2+n0Hi6H1+qwt6y+0kwRHGGF8TFIhJPmnuM0xO97zaKrDZMwO/V56fAnn8m/tA==", + "dev": true, + "dependencies": { + "rsvp": "~3.2.1" + } + }, + "node_modules/heimdalljs-logger": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/heimdalljs-logger/-/heimdalljs-logger-0.1.10.tgz", + "integrity": "sha512-pO++cJbhIufVI/fmB/u2Yty3KJD0TqNPecehFae0/eps0hkZ3b4Zc/PezUMOpYuHFQbA7FxHZxa305EhmjLj4g==", + "dev": true, + "dependencies": { + "debug": "^2.2.0", + "heimdalljs": "^0.2.6" + } + }, + "node_modules/heimdalljs-logger/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/heimdalljs-logger/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/heimdalljs/node_modules/rsvp": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.2.1.tgz", + "integrity": "sha512-Rf4YVNYpKjZ6ASAmibcwTNciQ5Co5Ztq6iZPEykHpkoflnD/K5ryE/rHehFsTm4NJj8nKDhbi3eKBWGogmNnkg==", + "dev": true + }, "node_modules/html-encoding-sniffer": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", @@ -8881,9 +9229,9 @@ } }, "node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", @@ -8895,8 +9243,8 @@ "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" + "domutils": "^3.1.0", + "entities": "^4.5.0" } }, "node_modules/http-proxy-agent": { @@ -8997,6 +9345,467 @@ "node-fetch": "^2.6.12" } }, + "node_modules/i18next-parser": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/i18next-parser/-/i18next-parser-9.0.2.tgz", + "integrity": "sha512-Q1yTZljBp1DcVAQD7LxduEqFRpjIeZc+5VnQ+gU8qG9WvY3U5rqK0IVONRWNtngh3orb197bfy1Sz4wlwcplxg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.23.2", + "broccoli-plugin": "^4.0.7", + "cheerio": "^1.0.0", + "colors": "1.4.0", + "commander": "~12.1.0", + "eol": "^0.9.1", + "esbuild": "^0.23.0", + "fs-extra": "^11.1.0", + "gulp-sort": "^2.0.0", + "i18next": "^23.5.1", + "js-yaml": "4.1.0", + "lilconfig": "^3.0.0", + "rsvp": "^4.8.2", + "sort-keys": "^5.0.0", + "typescript": "^5.0.4", + "vinyl": "~3.0.0", + "vinyl-fs": "^4.0.0" + }, + "bin": { + "i18next": "bin/cli.js" + }, + "engines": { + "node": ">=18.0.0 || >=20.0.0 || >=22.0.0", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/aix-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/android-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/android-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/android-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/darwin-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/darwin-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/freebsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/linux-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/linux-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/linux-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/linux-loong64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/linux-mips64el": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/linux-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/linux-riscv64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/linux-s390x": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/linux-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/netbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/openbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/sunos-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/win32-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/win32-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/@esbuild/win32-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/i18next-parser/node_modules/esbuild": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" + } + }, + "node_modules/i18next-parser/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, "node_modules/i18next-subliminal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/i18next-subliminal/-/i18next-subliminal-1.0.0.tgz", @@ -9403,6 +10212,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -9435,6 +10253,18 @@ "node": ">=8" } }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-potential-custom-element-name": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", @@ -9587,6 +10417,15 @@ "tslib": "^2.0.3" } }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-weakmap": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", @@ -9991,6 +10830,15 @@ "node": "> 0.8" } }, + "node_modules/lead": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-4.0.0.tgz", + "integrity": "sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -10318,6 +11166,41 @@ "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==", "dev": true }, + "node_modules/matcher-collection": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/matcher-collection/-/matcher-collection-2.0.1.tgz", + "integrity": "sha512-daE62nS2ZQsDg9raM0IlZzLmI2u+7ZapXBwdoeBUKAYERPDDIc0qNqA8E0Rp2D+gspKR7BgIFP52GeujaGXWeQ==", + "dev": true, + "dependencies": { + "@types/minimatch": "^3.0.3", + "minimatch": "^3.0.2" + }, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/matcher-collection/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/matcher-collection/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -10450,6 +11333,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/mktemp": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/mktemp/-/mktemp-0.4.0.tgz", + "integrity": "sha512-IXnMcJ6ZyTuhRmJSjzvHSRhlVPiN9Jwc6e59V0bEJ0ba6OBeX2L0E+mRN1QseeOF4mM+F1Rit6Nh7o+rl2Yn/A==", + "dev": true, + "engines": { + "node": ">0.9" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -10606,6 +11498,18 @@ "node": ">=0.10.0" } }, + "node_modules/now-and-later": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-3.0.0.tgz", + "integrity": "sha512-pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -10930,6 +11834,18 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "dev": true, + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/pascal-case": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", @@ -10987,6 +11903,12 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-posix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/path-posix/-/path-posix-1.0.0.tgz", + "integrity": "sha512-1gJ0WpNIiYcQydgg3Ed8KzvIqTsDpNwq+cjBCssvBtuTWjEqY1AW+i+OepiEMqDCzyro9B2sLAe4RBPajMYFiA==", + "dev": true + }, "node_modules/path-root": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", @@ -11463,6 +12385,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, "node_modules/process.argv": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/process.argv/-/process.argv-0.6.1.tgz", @@ -11481,6 +12409,15 @@ "asap": "~2.0.3" } }, + "node_modules/promise-map-series": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/promise-map-series/-/promise-map-series-0.3.0.tgz", + "integrity": "sha512-3npG2NGhTc8BWBolLLf8l/92OxMGaRLbqvIh9wjCHhDXNvk4zsxaTaCpiCunW09qWPrN2zeNSNwRLVBrQQtutA==", + "dev": true, + "engines": { + "node": "10.* || >= 12.*" + } + }, "node_modules/proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", @@ -11574,6 +12511,36 @@ } ] }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, + "node_modules/quick-temp": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/quick-temp/-/quick-temp-0.1.8.tgz", + "integrity": "sha512-YsmIFfD9j2zaFwJkzI6eMG7y0lQP7YeWzgtFgNl38pGWZBSXJooZbOWwkcRot7Vt0Fg9L23pX0tqWU3VvLDsiA==", + "dev": true, + "dependencies": { + "mktemp": "~0.4.0", + "rimraf": "^2.5.4", + "underscore.string": "~3.3.4" + } + }, + "node_modules/quick-temp/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, "node_modules/rdotjson": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/rdotjson/-/rdotjson-1.0.4.tgz", @@ -11683,6 +12650,15 @@ "integrity": "sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA==", "dev": true }, + "node_modules/replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, "node_modules/replace-in-file": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-7.2.0.tgz", @@ -11787,6 +12763,18 @@ "node": ">=8" } }, + "node_modules/resolve-options": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-2.0.0.tgz", + "integrity": "sha512-/FopbmmFOQCfsCx77BRFdKOniglTiHumLgwvd6IDPihy1GKkadZbgQJBcTb2lMzSR1pndzd96b1nZrreZ7+9/A==", + "dev": true, + "dependencies": { + "value-or-function": "^4.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -11864,6 +12852,15 @@ "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==", "dev": true }, + "node_modules/rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "dev": true, + "engines": { + "node": "6.* || >= 7.*" + } + }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -12119,6 +13116,21 @@ "tslib": "^2.0.3" } }, + "node_modules/sort-keys": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-5.1.0.tgz", + "integrity": "sha512-aSbHV0DaBcr7u0PVHXzM6NbZNAtrr9sF6+Qfs9UUVG7Ll3jQ6hHi8F/xqIIcn2rvIVbr0v/2zyjSdwSV47AgLQ==", + "dev": true, + "dependencies": { + "is-plain-obj": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/source-map-js": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", @@ -12154,6 +13166,12 @@ "tslib": "^2.0.3" } }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true + }, "node_modules/sshpk": { "version": "1.17.0", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", @@ -12235,6 +13253,15 @@ "duplexer": "~0.1.1" } }, + "node_modules/stream-composer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-composer/-/stream-composer-1.0.2.tgz", + "integrity": "sha512-bnBselmwfX5K10AH6L4c8+S5lgZMWI7ZYrz2rvYjCPB2DIMC4Ig8OpxGpNJSxRZ58oti7y1IcNvjBAz9vW5m4w==", + "dev": true, + "dependencies": { + "streamx": "^2.13.2" + } + }, "node_modules/streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", @@ -12244,6 +13271,20 @@ "node": ">=10.0.0" } }, + "node_modules/streamx": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.1.tgz", + "integrity": "sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==", + "dev": true, + "dependencies": { + "fast-fifo": "^1.3.2", + "queue-tick": "^1.0.1", + "text-decoder": "^1.1.0" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -12483,6 +13524,12 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "node_modules/symlink-or-copy": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/symlink-or-copy/-/symlink-or-copy-1.3.1.tgz", + "integrity": "sha512-0K91MEXFpBUaywiwSSkmKjnGcasG/rVBXFLJz5DrgGabpYD6N+3yZrfD6uUIfpuTu65DZLHi7N8CizHc07BPZA==", + "dev": true + }, "node_modules/synckit": { "version": "0.8.8", "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", @@ -12578,6 +13625,24 @@ "node": ">=4" } }, + "node_modules/teex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", + "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", + "dev": true, + "dependencies": { + "streamx": "^2.12.5" + } + }, + "node_modules/text-decoder": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.0.tgz", + "integrity": "sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==", + "dev": true, + "dependencies": { + "b4a": "^1.6.4" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -12615,6 +13680,46 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/tinybench": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz", @@ -12699,6 +13804,18 @@ "node": ">=8.0" } }, + "node_modules/to-through": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-3.0.0.tgz", + "integrity": "sha512-y8MN937s/HVhEoBU1SxfHC+wxCHkV1a9gW8eAdTadYh/bGyesZIVcbjI+mSpFbSVwQici/XjBjuUyri1dnXwBw==", + "dev": true, + "dependencies": { + "streamx": "^2.12.5" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/tough-cookie": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", @@ -12846,6 +13963,28 @@ "node": ">=0.10.0" } }, + "node_modules/underscore.string": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.6.tgz", + "integrity": "sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==", + "dev": true, + "dependencies": { + "sprintf-js": "^1.1.1", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/undici": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.8.tgz", + "integrity": "sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==", + "dev": true, + "engines": { + "node": ">=18.17" + } + }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -12979,6 +14118,15 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/value-or-function": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-4.0.0.tgz", + "integrity": "sha512-aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg==", + "dev": true, + "engines": { + "node": ">= 10.13.0" + } + }, "node_modules/value-or-promise": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", @@ -13006,6 +14154,121 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" }, + "node_modules/vinyl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", + "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", + "dev": true, + "dependencies": { + "clone": "^2.1.2", + "clone-stats": "^1.0.0", + "remove-trailing-separator": "^1.1.0", + "replace-ext": "^2.0.0", + "teex": "^1.0.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/vinyl-contents": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-contents/-/vinyl-contents-2.0.0.tgz", + "integrity": "sha512-cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q==", + "dev": true, + "dependencies": { + "bl": "^5.0.0", + "vinyl": "^3.0.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/vinyl-contents/node_modules/bl": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "dev": true, + "dependencies": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/vinyl-contents/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/vinyl-fs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-4.0.0.tgz", + "integrity": "sha512-7GbgBnYfaquMk3Qu9g22x000vbYkOex32930rBnc3qByw6HfMEAoELjCjoJv4HuEQxHAurT+nvMHm6MnJllFLw==", + "dev": true, + "dependencies": { + "fs-mkdirp-stream": "^2.0.1", + "glob-stream": "^8.0.0", + "graceful-fs": "^4.2.11", + "iconv-lite": "^0.6.3", + "is-valid-glob": "^1.0.0", + "lead": "^4.0.0", + "normalize-path": "3.0.0", + "resolve-options": "^2.0.0", + "stream-composer": "^1.0.2", + "streamx": "^2.14.0", + "to-through": "^3.0.0", + "value-or-function": "^4.0.0", + "vinyl": "^3.0.0", + "vinyl-sourcemap": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/vinyl-sourcemap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-2.0.0.tgz", + "integrity": "sha512-BAEvWxbBUXvlNoFQVFVHpybBbjW1r03WhohJzJDSfgrrK5xVYIDTan6xN14DlyImShgDRv2gl9qhM6irVMsV0Q==", + "dev": true, + "dependencies": { + "convert-source-map": "^2.0.0", + "graceful-fs": "^4.2.10", + "now-and-later": "^3.0.0", + "streamx": "^2.12.5", + "vinyl": "^3.0.0", + "vinyl-contents": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/vinyl/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, "node_modules/vite": { "version": "4.5.3", "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz", @@ -14479,6 +15742,43 @@ "node": ">=12.0.0" } }, + "node_modules/walk-sync": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/walk-sync/-/walk-sync-2.2.0.tgz", + "integrity": "sha512-IC8sL7aB4/ZgFcGI2T1LczZeFWZ06b3zoHH7jBPyHxOtIIz1jppWHjjEXkOFvFojBVAK9pV7g47xOZ4LW3QLfg==", + "dev": true, + "dependencies": { + "@types/minimatch": "^3.0.3", + "ensure-posix-path": "^1.1.0", + "matcher-collection": "^2.0.0", + "minimatch": "^3.0.4" + }, + "engines": { + "node": "8.* || >= 10.*" + } + }, + "node_modules/walk-sync/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/walk-sync/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -14784,6 +16084,15 @@ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -15848,6 +17157,13 @@ "dev": true, "optional": true }, + "@esbuild/openbsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "dev": true, + "optional": true + }, "@esbuild/openbsd-x64": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", @@ -16700,6 +18016,15 @@ "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", "dev": true }, + "@gulpjs/to-absolute-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@gulpjs/to-absolute-glob/-/to-absolute-glob-4.0.0.tgz", + "integrity": "sha512-kjotm7XJrJ6v+7knhPaRgaT6q8F8K2jiafwYdNHLzmV0uGLuZY43FK6smNSHUPrhq5kX2slCUy+RGG/xGqmIKA==", + "dev": true, + "requires": { + "is-negated-glob": "^1.0.0" + } + }, "@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", @@ -17843,6 +19168,12 @@ "integrity": "sha512-OpXEVoCKSS3lQqjx9GGGOapBeuW5eUboYHRlHP9urXPX25IKZ6AnP5ZRxtVf63iieUbsHxLn8NQ5Nlftc6yzAA==", "dev": true }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, "@types/node": { "version": "20.14.10", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", @@ -17862,6 +19193,12 @@ "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==" }, + "@types/symlink-or-copy": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/symlink-or-copy/-/symlink-or-copy-1.2.2.tgz", + "integrity": "sha512-MQ1AnmTLOncwEf9IVU+B2e4Hchrku5N67NkgcAHW0p3sdzPe0FNMANxEm6OJUzPniEQGkeT3OROLlCwZJLWFZA==", + "dev": true + }, "@types/tough-cookie": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", @@ -18734,6 +20071,12 @@ "proxy-from-env": "^1.1.0" } }, + "b4a": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", + "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", + "dev": true + }, "babel-plugin-syntax-trailing-function-commas": { "version": "7.0.0-beta.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", @@ -18780,6 +20123,13 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "bare-events": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.4.2.tgz", + "integrity": "sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==", + "dev": true, + "optional": true + }, "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -18844,6 +20194,72 @@ "fill-range": "^7.0.1" } }, + "broccoli-node-api": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/broccoli-node-api/-/broccoli-node-api-1.7.0.tgz", + "integrity": "sha512-QIqLSVJWJUVOhclmkmypJJH9u9s/aWH4+FH6Q6Ju5l+Io4dtwqdPUNmDfw40o6sxhbZHhqGujDJuHTML1wG8Yw==", + "dev": true + }, + "broccoli-node-info": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/broccoli-node-info/-/broccoli-node-info-2.2.0.tgz", + "integrity": "sha512-VabSGRpKIzpmC+r+tJueCE5h8k6vON7EIMMWu6d/FyPdtijwLQ7QvzShEw+m3mHoDzUaj/kiZsDYrS8X2adsBg==", + "dev": true + }, + "broccoli-output-wrapper": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/broccoli-output-wrapper/-/broccoli-output-wrapper-3.2.5.tgz", + "integrity": "sha512-bQAtwjSrF4Nu0CK0JOy5OZqw9t5U0zzv2555EA/cF8/a8SLDTIetk9UgrtMVw7qKLKdSpOZ2liZNeZZDaKgayw==", + "dev": true, + "requires": { + "fs-extra": "^8.1.0", + "heimdalljs-logger": "^0.1.10", + "symlink-or-copy": "^1.2.0" + }, + "dependencies": { + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, + "broccoli-plugin": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/broccoli-plugin/-/broccoli-plugin-4.0.7.tgz", + "integrity": "sha512-a4zUsWtA1uns1K7p9rExYVYG99rdKeGRymW0qOCNkvDPHQxVi3yVyJHhQbM3EZwdt2E0mnhr5e0c/bPpJ7p3Wg==", + "dev": true, + "requires": { + "broccoli-node-api": "^1.7.0", + "broccoli-output-wrapper": "^3.2.5", + "fs-merger": "^3.2.1", + "promise-map-series": "^0.3.0", + "quick-temp": "^0.1.8", + "rimraf": "^3.0.2", + "symlink-or-copy": "^1.3.1" + } + }, "browserslist": { "version": "4.23.2", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz", @@ -19050,18 +20466,22 @@ "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==" }, "cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", + "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", "dev": true, "requires": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" + "domutils": "^3.1.0", + "encoding-sniffer": "^0.2.0", + "htmlparser2": "^9.1.0", + "parse5": "^7.1.2", + "parse5-htmlparser2-tree-adapter": "^7.0.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^6.19.5", + "whatwg-mimetype": "^4.0.0" } }, "cheerio-select": { @@ -19159,6 +20579,12 @@ "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", + "dev": true + }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -19273,6 +20699,12 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, "cosmiconfig": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", @@ -20132,6 +21564,16 @@ "iconv-lite": "^0.6.2" } }, + "encoding-sniffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz", + "integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==", + "dev": true, + "requires": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + } + }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -20148,11 +21590,23 @@ "ansi-colors": "^4.1.1" } }, + "ensure-posix-path": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ensure-posix-path/-/ensure-posix-path-1.1.1.tgz", + "integrity": "sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw==", + "dev": true + }, "entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" }, + "eol": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz", + "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==", + "dev": true + }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -20582,6 +22036,12 @@ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", "dev": true }, + "fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, "fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", @@ -20815,6 +22275,81 @@ "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", "dev": true }, + "fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-merger": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/fs-merger/-/fs-merger-3.2.1.tgz", + "integrity": "sha512-AN6sX12liy0JE7C2evclwoo0aCG3PFulLjrTLsJpWh/2mM+DinhpSGqYLbHBBbIW1PLRNcFhJG8Axtz8mQW3ug==", + "dev": true, + "requires": { + "broccoli-node-api": "^1.7.0", + "broccoli-node-info": "^2.1.0", + "fs-extra": "^8.0.1", + "fs-tree-diff": "^2.0.1", + "walk-sync": "^2.2.0" + }, + "dependencies": { + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, + "fs-mkdirp-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-2.0.1.tgz", + "integrity": "sha512-UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.8", + "streamx": "^2.12.0" + } + }, + "fs-tree-diff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fs-tree-diff/-/fs-tree-diff-2.0.1.tgz", + "integrity": "sha512-x+CfAZ/lJHQqwlD64pYM5QxWjzWhSjroaVsr8PW831zOApL55qPibed0c+xebaLWVr2BnHFoHdrwOv8pzt8R5A==", + "dev": true, + "requires": { + "@types/symlink-or-copy": "^1.2.0", + "heimdalljs-logger": "^0.1.7", + "object-assign": "^4.1.0", + "path-posix": "^1.0.0", + "symlink-or-copy": "^1.1.8" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -20940,6 +22475,33 @@ "is-glob": "^4.0.1" } }, + "glob-stream": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-8.0.2.tgz", + "integrity": "sha512-R8z6eTB55t3QeZMmU1C+Gv+t5UnNRkA55c5yo67fAVfxODxieTwsjNG7utxS/73NdP1NbDgCrhVEg2h00y4fFw==", + "dev": true, + "requires": { + "@gulpjs/to-absolute-glob": "^4.0.0", + "anymatch": "^3.1.3", + "fastq": "^1.13.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "is-negated-glob": "^1.0.0", + "normalize-path": "^3.0.0", + "streamx": "^2.12.5" + }, + "dependencies": { + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + } + } + }, "global-dirs": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", @@ -21073,6 +22635,15 @@ "integrity": "sha512-eiX7ES/ZQr0q7hSM5UBOEIFfaAUmAY9/CSDyAnsETuybByU7l/v46drRg9DQoTvVABEHp3QnrvwgTRMhqy7zxQ==", "dev": true }, + "gulp-sort": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/gulp-sort/-/gulp-sort-2.0.0.tgz", + "integrity": "sha512-MyTel3FXOdh1qhw1yKhpimQrAmur9q1X0ZigLmCOxouQD+BD3za9/89O+HfbgBQvvh4igEbp0/PUWO+VqGYG1g==", + "dev": true, + "requires": { + "through2": "^2.0.1" + } + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -21131,6 +22702,50 @@ "tslib": "^2.0.3" } }, + "heimdalljs": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/heimdalljs/-/heimdalljs-0.2.6.tgz", + "integrity": "sha512-o9bd30+5vLBvBtzCPwwGqpry2+n0Hi6H1+qwt6y+0kwRHGGF8TFIhJPmnuM0xO97zaKrDZMwO/V56fAnn8m/tA==", + "dev": true, + "requires": { + "rsvp": "~3.2.1" + }, + "dependencies": { + "rsvp": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.2.1.tgz", + "integrity": "sha512-Rf4YVNYpKjZ6ASAmibcwTNciQ5Co5Ztq6iZPEykHpkoflnD/K5ryE/rHehFsTm4NJj8nKDhbi3eKBWGogmNnkg==", + "dev": true + } + } + }, + "heimdalljs-logger": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/heimdalljs-logger/-/heimdalljs-logger-0.1.10.tgz", + "integrity": "sha512-pO++cJbhIufVI/fmB/u2Yty3KJD0TqNPecehFae0/eps0hkZ3b4Zc/PezUMOpYuHFQbA7FxHZxa305EhmjLj4g==", + "dev": true, + "requires": { + "debug": "^2.2.0", + "heimdalljs": "^0.2.6" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, "html-encoding-sniffer": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", @@ -21141,15 +22756,15 @@ } }, "htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", "dev": true, "requires": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" + "domutils": "^3.1.0", + "entities": "^4.5.0" } }, "http-proxy-agent": { @@ -21225,6 +22840,238 @@ } } }, + "i18next-parser": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/i18next-parser/-/i18next-parser-9.0.2.tgz", + "integrity": "sha512-Q1yTZljBp1DcVAQD7LxduEqFRpjIeZc+5VnQ+gU8qG9WvY3U5rqK0IVONRWNtngh3orb197bfy1Sz4wlwcplxg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.23.2", + "broccoli-plugin": "^4.0.7", + "cheerio": "^1.0.0", + "colors": "1.4.0", + "commander": "~12.1.0", + "eol": "^0.9.1", + "esbuild": "^0.23.0", + "fs-extra": "^11.1.0", + "gulp-sort": "^2.0.0", + "i18next": "^23.5.1", + "js-yaml": "4.1.0", + "lilconfig": "^3.0.0", + "rsvp": "^4.8.2", + "sort-keys": "^5.0.0", + "typescript": "^5.0.4", + "vinyl": "~3.0.0", + "vinyl-fs": "^4.0.0" + }, + "dependencies": { + "@esbuild/aix-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", + "dev": true, + "optional": true + }, + "commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true + }, + "esbuild": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" + } + }, + "lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true + } + } + }, "i18next-subliminal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/i18next-subliminal/-/i18next-subliminal-1.0.0.tgz", @@ -21513,6 +23360,12 @@ "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", "dev": true }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", + "dev": true + }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -21533,6 +23386,12 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" }, + "is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "dev": true + }, "is-potential-custom-element-name": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", @@ -21637,6 +23496,12 @@ "tslib": "^2.0.3" } }, + "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==", + "dev": true + }, "is-weakmap": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", @@ -21932,6 +23797,12 @@ "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==" }, + "lead": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-4.0.0.tgz", + "integrity": "sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg==", + "dev": true + }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -22194,6 +24065,37 @@ "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==", "dev": true }, + "matcher-collection": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/matcher-collection/-/matcher-collection-2.0.1.tgz", + "integrity": "sha512-daE62nS2ZQsDg9raM0IlZzLmI2u+7ZapXBwdoeBUKAYERPDDIc0qNqA8E0Rp2D+gspKR7BgIFP52GeujaGXWeQ==", + "dev": true, + "requires": { + "@types/minimatch": "^3.0.3", + "minimatch": "^3.0.2" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -22276,6 +24178,12 @@ "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "dev": true }, + "mktemp": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/mktemp/-/mktemp-0.4.0.tgz", + "integrity": "sha512-IXnMcJ6ZyTuhRmJSjzvHSRhlVPiN9Jwc6e59V0bEJ0ba6OBeX2L0E+mRN1QseeOF4mM+F1Rit6Nh7o+rl2Yn/A==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -22399,6 +24307,15 @@ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true }, + "now-and-later": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-3.0.0.tgz", + "integrity": "sha512-pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, "npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -22636,6 +24553,15 @@ "parse5": "^7.0.0" } }, + "parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "dev": true, + "requires": { + "parse5": "^7.0.0" + } + }, "pascal-case": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", @@ -22684,6 +24610,12 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "path-posix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/path-posix/-/path-posix-1.0.0.tgz", + "integrity": "sha512-1gJ0WpNIiYcQydgg3Ed8KzvIqTsDpNwq+cjBCssvBtuTWjEqY1AW+i+OepiEMqDCzyro9B2sLAe4RBPajMYFiA==", + "dev": true + }, "path-root": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", @@ -22931,6 +24863,12 @@ } } }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, "process.argv": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/process.argv/-/process.argv-0.6.1.tgz", @@ -22949,6 +24887,12 @@ "asap": "~2.0.3" } }, + "promise-map-series": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/promise-map-series/-/promise-map-series-0.3.0.tgz", + "integrity": "sha512-3npG2NGhTc8BWBolLLf8l/92OxMGaRLbqvIh9wjCHhDXNvk4zsxaTaCpiCunW09qWPrN2zeNSNwRLVBrQQtutA==", + "dev": true + }, "proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", @@ -23016,6 +24960,34 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, + "queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, + "quick-temp": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/quick-temp/-/quick-temp-0.1.8.tgz", + "integrity": "sha512-YsmIFfD9j2zaFwJkzI6eMG7y0lQP7YeWzgtFgNl38pGWZBSXJooZbOWwkcRot7Vt0Fg9L23pX0tqWU3VvLDsiA==", + "dev": true, + "requires": { + "mktemp": "~0.4.0", + "rimraf": "^2.5.4", + "underscore.string": "~3.3.4" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, "rdotjson": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/rdotjson/-/rdotjson-1.0.4.tgz", @@ -23107,6 +25079,12 @@ "integrity": "sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA==", "dev": true }, + "replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true + }, "replace-in-file": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-7.2.0.tgz", @@ -23185,6 +25163,15 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, + "resolve-options": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-2.0.0.tgz", + "integrity": "sha512-/FopbmmFOQCfsCx77BRFdKOniglTiHumLgwvd6IDPihy1GKkadZbgQJBcTb2lMzSR1pndzd96b1nZrreZ7+9/A==", + "dev": true, + "requires": { + "value-or-function": "^4.0.0" + } + }, "restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -23242,6 +25229,12 @@ "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==", "dev": true }, + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "dev": true + }, "run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -23424,6 +25417,15 @@ "tslib": "^2.0.3" } }, + "sort-keys": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-5.1.0.tgz", + "integrity": "sha512-aSbHV0DaBcr7u0PVHXzM6NbZNAtrr9sF6+Qfs9UUVG7Ll3jQ6hHi8F/xqIIcn2rvIVbr0v/2zyjSdwSV47AgLQ==", + "dev": true, + "requires": { + "is-plain-obj": "^4.0.0" + } + }, "source-map-js": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", @@ -23453,6 +25455,12 @@ "tslib": "^2.0.3" } }, + "sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true + }, "sshpk": { "version": "1.17.0", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", @@ -23515,12 +25523,33 @@ "duplexer": "~0.1.1" } }, + "stream-composer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-composer/-/stream-composer-1.0.2.tgz", + "integrity": "sha512-bnBselmwfX5K10AH6L4c8+S5lgZMWI7ZYrz2rvYjCPB2DIMC4Ig8OpxGpNJSxRZ58oti7y1IcNvjBAz9vW5m4w==", + "dev": true, + "requires": { + "streamx": "^2.13.2" + } + }, "streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", "dev": true }, + "streamx": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.1.tgz", + "integrity": "sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==", + "dev": true, + "requires": { + "bare-events": "^2.2.0", + "fast-fifo": "^1.3.2", + "queue-tick": "^1.0.1", + "text-decoder": "^1.1.0" + } + }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -23698,6 +25727,12 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "symlink-or-copy": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/symlink-or-copy/-/symlink-or-copy-1.3.1.tgz", + "integrity": "sha512-0K91MEXFpBUaywiwSSkmKjnGcasG/rVBXFLJz5DrgGabpYD6N+3yZrfD6uUIfpuTu65DZLHi7N8CizHc07BPZA==", + "dev": true + }, "synckit": { "version": "0.8.8", "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", @@ -23770,6 +25805,24 @@ } } }, + "teex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", + "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", + "dev": true, + "requires": { + "streamx": "^2.12.5" + } + }, + "text-decoder": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.0.tgz", + "integrity": "sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==", + "dev": true, + "requires": { + "b4a": "^1.6.4" + } + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -23804,6 +25857,48 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "tinybench": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz", @@ -23870,6 +25965,15 @@ "is-number": "^7.0.0" } }, + "to-through": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-3.0.0.tgz", + "integrity": "sha512-y8MN937s/HVhEoBU1SxfHC+wxCHkV1a9gW8eAdTadYh/bGyesZIVcbjI+mSpFbSVwQici/XjBjuUyri1dnXwBw==", + "dev": true, + "requires": { + "streamx": "^2.12.5" + } + }, "tough-cookie": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", @@ -23968,6 +26072,22 @@ "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", "dev": true }, + "underscore.string": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.6.tgz", + "integrity": "sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==", + "dev": true, + "requires": { + "sprintf-js": "^1.1.1", + "util-deprecate": "^1.0.2" + } + }, + "undici": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.8.tgz", + "integrity": "sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==", + "dev": true + }, "undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -24068,6 +26188,12 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, + "value-or-function": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-4.0.0.tgz", + "integrity": "sha512-aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg==", + "dev": true + }, "value-or-promise": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", @@ -24091,6 +26217,96 @@ } } }, + "vinyl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", + "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", + "dev": true, + "requires": { + "clone": "^2.1.2", + "clone-stats": "^1.0.0", + "remove-trailing-separator": "^1.1.0", + "replace-ext": "^2.0.0", + "teex": "^1.0.1" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true + } + } + }, + "vinyl-contents": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-contents/-/vinyl-contents-2.0.0.tgz", + "integrity": "sha512-cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q==", + "dev": true, + "requires": { + "bl": "^5.0.0", + "vinyl": "^3.0.0" + }, + "dependencies": { + "bl": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "dev": true, + "requires": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + } + } + }, + "vinyl-fs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-4.0.0.tgz", + "integrity": "sha512-7GbgBnYfaquMk3Qu9g22x000vbYkOex32930rBnc3qByw6HfMEAoELjCjoJv4HuEQxHAurT+nvMHm6MnJllFLw==", + "dev": true, + "requires": { + "fs-mkdirp-stream": "^2.0.1", + "glob-stream": "^8.0.0", + "graceful-fs": "^4.2.11", + "iconv-lite": "^0.6.3", + "is-valid-glob": "^1.0.0", + "lead": "^4.0.0", + "normalize-path": "3.0.0", + "resolve-options": "^2.0.0", + "stream-composer": "^1.0.2", + "streamx": "^2.14.0", + "to-through": "^3.0.0", + "value-or-function": "^4.0.0", + "vinyl": "^3.0.0", + "vinyl-sourcemap": "^2.0.0" + } + }, + "vinyl-sourcemap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-2.0.0.tgz", + "integrity": "sha512-BAEvWxbBUXvlNoFQVFVHpybBbjW1r03WhohJzJDSfgrrK5xVYIDTan6xN14DlyImShgDRv2gl9qhM6irVMsV0Q==", + "dev": true, + "requires": { + "convert-source-map": "^2.0.0", + "graceful-fs": "^4.2.10", + "now-and-later": "^3.0.0", + "streamx": "^2.12.5", + "vinyl": "^3.0.0", + "vinyl-contents": "^2.0.0" + } + }, "vite": { "version": "4.5.3", "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz", @@ -24828,6 +27044,39 @@ "rxjs": "^7.8.1" } }, + "walk-sync": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/walk-sync/-/walk-sync-2.2.0.tgz", + "integrity": "sha512-IC8sL7aB4/ZgFcGI2T1LczZeFWZ06b3zoHH7jBPyHxOtIIz1jppWHjjEXkOFvFojBVAK9pV7g47xOZ4LW3QLfg==", + "dev": true, + "requires": { + "@types/minimatch": "^3.0.3", + "ensure-posix-path": "^1.1.0", + "matcher-collection": "^2.0.0", + "minimatch": "^3.0.4" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -25044,6 +27293,12 @@ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/client/package.json b/client/package.json index 9c2813cf..9de59a60 100644 --- a/client/package.json +++ b/client/package.json @@ -16,7 +16,9 @@ "tailwind": "tailwindcss -i tailwind.css -o ../server/vbv_lernwelt/static/css/tailwind.css --watch", "test": "vitest run", "typecheck": "npm run codegen && vue-tsc --noEmit -p tsconfig.app.json --composite false", - "typecheck-only": "vue-tsc --noEmit -p tsconfig.app.json --composite false" + "typecheck-only": "vue-tsc --noEmit -p tsconfig.app.json --composite false", + "i18next:sort": "prettier --write src/locales/**/*.json", + "i18next:parse": "i18next && npm run i18next:sort" }, "dependencies": { "@headlessui/tailwindcss": "^0.2.1", @@ -72,6 +74,7 @@ "eslint-config-prettier": "^8.10.0", "eslint-plugin-cypress": "^2.15.2", "eslint-plugin-vue": "^9.27.0", + "i18next-parser": "^9.0.2", "jsdom": "^24.1.0", "locize-cli": "^8.0.1", "postcss": "^8.4.39", diff --git a/client/src/i18nextWrapper.ts b/client/src/i18nextWrapper.ts index 5220e0ea..de6be78e 100644 --- a/client/src/i18nextWrapper.ts +++ b/client/src/i18nextWrapper.ts @@ -1,7 +1,5 @@ import type { AvailableLanguages } from "@/stores/user"; import i18next from "i18next"; -import Backend from "i18next-locize-backend"; -import { locizePlugin } from "locize"; import { nextTick } from "vue"; @@ -21,23 +19,42 @@ export function i18nextInit() { // .use(LanguageDetector) // init i18next // for all options read: https://www.i18next.com/overview/configuration-options - .use(Backend) - .use(locizePlugin) + // .use(Backend) + // .use(locizePlugin) .init({ debug: true, supportedLngs: SUPPORT_LOCALES, fallbackLng: "de", defaultNS: "translation", returnNull: false, - saveMissing: import.meta.env.DEV, - backend: { - projectId: - import.meta.env.VITE_LOCIZE_PROJECTID || - "7518c269-cbf7-4d25-bc5c-6ceba2a8b74b", - apiKey: import.meta.env.DEV ? import.meta.env.VITE_LOCIZE_API_KEY : undefined, - fallbackLng: "de", - allowedAddOrUpdateHosts: ["localhost", "127.0.0.1"], + saveMissing: false, + keySeparator: false, + resources: { + de: { + translation: { + "general.title": "myVBV", + }, + }, + fr: { + translation: { + "general.title": "myAFA", + }, + }, + it: { + translation: { + "general.title": "myAFA", + }, + }, }, + + // backend: { + // projectId: + // import.meta.env.VITE_LOCIZE_PROJECTID || + // "7518c269-cbf7-4d25-bc5c-6ceba2a8b74b", + // apiKey: import.meta.env.DEV ? import.meta.env.VITE_LOCIZE_API_KEY : undefined, + // fallbackLng: "de", + // allowedAddOrUpdateHosts: ["localhost", "127.0.0.1"], + // }, }) ); } @@ -56,10 +73,18 @@ export function setI18nLanguage(locale: string) { export async function loadI18nextLocaleMessages(locale: any) { // load locale messages with dynamic import - // unused with locize - const messages = await import(`./locales/${locale}.json`); + let messages = null; + if (locale === "de") { + messages = await import("./locales/de/translation.json"); + } else if (locale === "fr") { + messages = await import("./locales/fr/translation.json"); + } else if (locale === "it") { + messages = await import("./locales/it/translation.json"); + } - i18next.addResourceBundle(locale, "messages", messages, true, true); + if (messages) { + i18next.addResourceBundle(locale, "translation", messages.default, true, true); + } return nextTick(); } diff --git a/client/src/locales/de/translation.json b/client/src/locales/de/translation.json index d7c6518d..b68ca58e 100644 --- a/client/src/locales/de/translation.json +++ b/client/src/locales/de/translation.json @@ -1,373 +1,670 @@ { - "100%": "100%", "20%": "20%", "40%": "40%", "60%": "60%", "80%": "80%", + "100%": "100%", + "a.": "a.", + "a.a.AlleCircle": "a.a.AlleCircle", + "a.Abbrechen": "Abbrechen", + "a.Abgabetermin": "Abgabetermin", + "a.Abgezogene Punkte": "Abgezogene Punkte", + "a.Adresse": "Adresse", + "a.Aktuell begleitest du niemanden als Lernbegleitung.": "Aktuell begleitest du niemanden als Lernbegleitung.", + "a.Aktuell begleitest du niemanden als Praxisbildner.": "Aktuell begleitest du niemanden als Praxisbildner.", + "a.Aktuell bist du leider keiner Durchführung zugewiesen.": "Aktuell bist du leider keiner Durchführung zugewiesen.", + "a.Aktuell hast du noch keine Person als Lernbegleitung eingeladen.": "Aktuell hast du noch keine Person als Lernbegleitung eingeladen.", + "a.Aktuell hast du noch keine Person als Lernbegleitung eingeladen. Lade jetzt jemanden ein.": "Aktuell hast du noch keine Person als Lernbegleitung eingeladen. Lade jetzt jemanden ein.", + "a.Aktuell hast du noch keine Person als Praxisbildner eingeladen.": "Aktuell hast du noch keine Person als Praxisbildner eingeladen.", + "a.Aktuell hast du noch keine Person als Praxisbildner eingeladen. Lade jetzt jemanden ein.": "a.Aktuell hast du noch keine Person als Praxisbildner eingeladen. Lade jetzt jemanden ein.", + "a.Aktueller Lehrgang": "Aktueller Lehrgang", + "a.Allbranche": "Allbranche", + "a.Alle": "Alle", + "a.Alle aufklappen": "Alle aufklappen", + "a.Alle Lehrgang": "a.Alle Lehrgang", + "a.Alle Lehrgänge": "a.Alle Lehrgänge", + "a.Alle Lehrgänge anzeigen": "Alle Lehrgänge anzeigen", + "a.Alle Personen anzeigen": "Alle Personen anzeigen", + "a.Alle Termine anzeigen": "Alle Termine anzeigen", + "a.Alle zuklappen": "Alle zuklappen", + "a.AlleCircle": "Circle: Alle", + "a.AlleDurchführungen": "Durchführungen: Alle", + "a.AlleGenerationen": "Generationen: Alle", + "a.AlleKreise": "a.AlleKreise", + "a.AlleRegionen": "a.AlleRegionen", + "a.AlleTermine": "Termine", + "a.AlleTypen": "Alle Typen", + "a.Allgemeine Zufriedenheit": "Allgemeine Zufriedenheit", + "a.Als Excel exportieren": "Als Excel exportieren", + "a.An Durchführung teilnehmen": "An Durchführung teilnehmen", + "a.Anmelden": "Anmelden", + "a.Anwesenheit": "Anwesenheit", + "a.Arbeiten": "Arbeiten", + "a.assignment.evaluationFeedbackDescriptionText": "Gib dein Feedback frei, damit es mit dem Teilnehmer geteilt wird.", + "a.assignment.evaluationInstrumentDescriptionTextFeedback": "Bitte unterstütze {{name}} und gib Feedback zum Auftrag.", + "a.Aufgabe": "Aufgabe", + "a.Aufgaben": "Aufgaben", + "a.Auswählen": "Auswählen", + "a.Bearbeiten": "Bearbeiten", + "a.Begründung": "Begründung", + "a.Bestanden": "Bestanden", + "a.Beurteilungsinstrument anzeigen": "Beurteilungsinstrument anzeigen", + "a.Beurteilungskriterium": "Beurteilungskriterium", + "a.Bewertung": "Bewertung", + "a.Bewertung abschliessen": "Bewertung abschliessen", + "a.Bewertung ansehen": "Bewertung ansehen", + "a.Bewertung bearbeiten": "a.Bewertung bearbeiten", + "a.Bewertung bearbeitet": "a.Bewertung bearbeitet", + "a.Bewertung erneut bearbeitet": "a.Bewertung erneut bearbeitet", + "a.Bewertung fortsetzen": "Bewertung fortsetzen", + "a.Bewertung Freigabe": "Bewertung Freigabe", + "a.Bewertung freigeben": "Bewertung freigeben", + "a.Bewertung freigegeben": "Bewertung freigegeben", + "a.Bewertung starten": "Bewertung starten", + "a.Bewertung von x y": "Bewertung von {{x}} {{y}}", + "a.Bild hochladen": "Bild hochladen", + "a.Bitte folgende Felder ausfüllen": "Bitte folgende Felder ausfüllen", + "a.Bitte überprüfe deine Eingaben. Es sind Fehler in deinem Formular aufgetreten.": "Bitte überprüfe deine Eingaben. Es sind Fehler in deinem Formular aufgetreten.", + "a.Circle": "Circle", + "a.Cockpit anschauen": "Cockpit anschauen", + "a.competenceCertificateNoUserPoints": "Der Punktestand wird zu einem späteren Zeitpunkt berechnet.", + "a.confirmSubmitPersonPraxisAssignment": "Folgende Person soll mir Feedback zu meinen Ergebnissen geben.", + "a.Damit du mit diesem Lehrgang starten kannst, musst du einer Durchführung zugewiesen werden. Nimm dafür deinem üK-Verantwortlichen oder unserem {support} Kontakt auf.": "Damit du mit diesem Lehrgang starten kannst, musst du einer Durchführung zugewiesen werden. Nimm dafür deinem üK-Verantwortlichen oder unserem {support} Kontakt auf.", + "a.Damit du myVBV nutzen kannst, brauchst du ein Konto.": "Damit du myVBV nutzen kannst, brauchst du ein Konto.", + "a.Das muss ich nochmals anschauen": "Das muss ich nochmals anschauen", + "a.Das wurde mit dir geteilt": "Das wurde mit dir geteilt", + "a.Datei auswählen": "Datei auswählen", + "a.Datei hochladen": "Datei hochladen", + "a.Datei kann nicht gespeichert werden.": "Datei kann nicht gespeichert werden.", + "a.Datum": "Datum", + "a.Debit-/Kreditkarte/Twint": "Debit-/Kreditkarte/Twint", + "a.Dein Feedback für x y wurde freigegeben.": "Dein Feedback für {{x}} {{y}} wurde freigegeben.", + "a.Deine Bewertung für x y wurde freigegeben.": "Deine Bewertung für {{x}} {{y}} wurde freigegeben.", + "a.Deine Fremdeinschätzung": "Deine Fremdeinschätzung\n", + "a.Deine Selbsteinschätzung": "Deine Selbsteinschätzung", + "a.Deine Änderungen wurden gespeichert": "Deine Änderungen wurden gespeichert", + "a.Der Lehrgang und die Prüfung zum Erwerb des Verbandszertifikats als Versicherungsvermittler/-in.": "Der Lehrgang und die Prüfung zum Erwerb des Verbandszertifikats als Versicherungsvermittler/-in.", + "a.Der Preis für den Lehrgang {course} beträgt {price}.": "Der Preis für den Lehrgang {course} beträgt {price} exkl. MWSt.", + "a.Details anschauen": "Details anschauen", + "a.Details anzeigen": "Details anzeigen", + "a.Deutsch": "Deutsch", + "a.Die Anwesenheit wurde definitiv bestätigt": "Die Anwesenheit wurde definitiv bestätigt", + "a.Die Einladung konnte nicht akzeptiert werden. Bitte melde dich beim Support.": "Die Einladung konnte nicht akzeptiert werden. Bitte melde dich beim Support.", + "a.Die Einladung wurde noch nicht angenommen.": "Die Einladung wurde noch nicht angenommen.", + "a.Die Zahlung für den Lehrgang «{course}» wurde erfolgreich ausgeführt.": "Die Zahlung für den Lehrgang «{course}» wurde erfolgreich ausgeführt.", + "a.Die überbetrieblichen Kurse der kaufmännischen Ausbildungs- und Prüfungsbranche 'Privatversicherung'.": "Die überbetrieblichen Kurse der kaufmännischen Ausbildungs- und Prüfungsbranche 'Privatversicherung'.", + "a.Du hast alles erledigt.": "Du hast alles erledigt.", + "a.Du hast deine Fremdeinschätzung freigegeben": "Du hast deine Fremdeinschätzung freigegeben.", + "a.Du hast deine Selbsteinschätzung erfolgreich mit FULL_NAME geteilt.": "Du hast deine Selbsteinschätzung erfolgreich mit {{FULL_NAME}} geteilt.", + "a.Du hast die Einladung von {name} erfolgreich akzeptiert.": "Du hast die Einladung von {name} erfolgreich akzeptiert.", + "a.Du hast erfolgreich ein Konto für EMAIL erstellt.": "Du hast erfolgreich ein Konto für {{email}} erstellt.", + "a.Du kannst deine Selbsteinschätzung mit deiner Lernbegleitung teilen, damit sie eine Fremdeinschätzung vornimmt.": "Du kannst deine Selbsteinschätzung mit deiner Lernbegleitung teilen, damit sie eine Fremdeinschätzung vornimmt.", + "a.Durchfuehrung": "Durchführung", + "a.Durchführung": "Durchführung", + "a.Durchführungen": "Durchführungen", + "a.Durchschnittsnote": "Durchschnittsnote", + "a.E-Mail Adresse": "E-Mail Adresse", + "a.Einladung": "Einladung", + "a.Einladung abschicken": "Einladung abschicken", + "a.Email": "Email", + "a.Entfernen": "Entfernen", + "a.Erfahrungsnote üK": "Erfahrungsnote üK", + "a.Ergebnis bewerten": "Ergebnis bewerten", + "a.Ergebnisse": "Ergebnisse", + "a.Ergebnisse abgegeben": "Ergebnisse abgegeben", + "a.Ergebnisse anschauen": "Ergebnisse anschauen", + "a.Ergebnisse bewerten": "Ergebnisse bewerten", + "a.Ergebnisse teilen": "Ergebnisse teilen", + "a.Erneut bearbeiten": "Erneut bearbeiten", + "a.Experte": "", + "a.Feedback abschliessen": "Feedback abschliessen", + "a.Feedback ansehen": "Feedback ansehen", + "a.Feedback erneut bearbeitet": "Feedback erneut bearbeitet", + "a.Feedback fortsetzen": "Feedback fortsetzen", + "a.Feedback Freigabe": "Feedback Freigabe", + "a.Feedback freigeben": "Feedback freigeben", + "a.Feedback freigegeben": "Feedback freigegeben", + "a.Feedback geben": "Feedback geben", + "a.Feedback Teilnehmer": "Feedback Teilnehmer", + "a.Feedback von x y": "Feedback von {{x}} {{y}}", + "a.feedback.introductionVV": "Wir bitten dich um dein Feedback. Es hilft uns, damit wir deine Lernerlebnisse verbessern\nkönnen.", + "a.Fehler bei der Zahlung. Bitte versuche es erneut oder kontaktiere uns": "Fehler bei der Zahlung. Bitte versuche es erneut oder wähle eine andere Zahlungsmethode.", + "a.Fehler bei der Zahlung. Bitte versuche es erneut oder wähle eine andere Zahlungsmethode.": "Fehler bei der Zahlung. Bitte versuche es erneut oder wähle eine andere Zahlungsmethode.", + "a.Fehlermeldung": "Fehlermeldung", + "a.Firmenanschrift": "Firmenanschrift", + "a.Firmenname": "Firmenname", + "a.Franzosisch": "Französisch", + "a.Fremdeinschätzung anzeigen": "Fremdeinschätzung anzeigen", + "a.Fremdeinschätzung freigeben": "Fremdeinschätzung freigeben", + "a.Fremdeinschätzung von FEEDBACK_PROVIDER_NAME": "Fremdeinschätzung von {{FEEDBACK_PROVIDER_NAME}}", + "a.Fremdeinschätzung vornehmen": "Fremdeinschätzung vornehmen", + "a.Fremdeinschätzungen": "Fremdeinschätzungen", + "a.FULL_NAME wird eine Fremdeinschätzung für dich vornehmen. Du wirst per Benachrichtigung informiert, sobald die Fremdeinschätzung für dich freigegeben wurde.": "{{FULL_NAME}} wird eine Fremdeinschätzung für dich vornehmen. Du wirst per Benachrichtigung informiert, sobald die Fremdeinschätzung für dich freigegeben wurde.", + "a.Geburtsdatum": "Geburtsdatum", + "a.Geleitete Fallarbeit": "Geleitete Fallarbeit", + "a.Generation": "Generation", + "a.Gesamtpunktzahl": "Gesamtpunktzahl", + "a.Geschäftsdaten": "Geschäftsdaten", + "a.Gesellschaft": "Gesellschaft", + "a.Gleich wie die Firmenanschrift": "Gleich wie die Firmenanschrift", + "a.Gleich wie die Privatadresse": "Gleich wie die Privatadresse", + "a.Gratuliere!": "Gratuliere!", + "a.Grund": "Grund", + "a.Hallo {userFirstName}, wähle jetzt deinen Lehrgang aus": "Hallo {userFirstName}, wähle jetzt deinen Lehrgang aus:", + "a.Handlungskompetenzen": "Handlungskompetenzen", + "a.Hast du Fragen? Kontaktiere uns": "Hast du Fragen? Kontaktiere uns", + "a.Hast du Fragen? Schau dir unsere FAQ an oder kontaktiere uns": "Hast du Fragen? Schau dir unsere {faq} an oder kontaktiere uns", + "a.Hast du schon ein Konto?": "Hast du schon ein Konto?", + "a.Hausnummmer": "Hausnummmer", + "a.Hier kannst du ausschliesslich mit einer Kreditkarte bezahlen.": "a.Hier kannst du ausschliesslich mit einer Kreditkarte bezahlen.", + "a.Hier kannst du Personen einladen, damit sie deine Lernbegleitung werden. Zudem siehst du jederzeit eine Übersicht aller Personen, die du bereits als Lernbegleitung hinzugefügt hast.": "Hier kannst du Personen einladen, damit sie deine Lernbegleitung werden. Zudem siehst du jederzeit eine Übersicht aller Personen, die du bereits als Lernbegleitung hinzugefügt hast.", + "a.Höchstpunktzahl": "Höchstpunktzahl", + "a.Ich kann das": "Ich kann das", + "a.Italienisch": "Italienisch", + "a.Ja, NAME kann das.": "Ja, {{NAME}} kann das", + "a.Jetzt mit Lehrgang starten": "Jetzt mit Lehrgang starten", + "a.Kann FULLNAME das?": "Kann {{FULLNAME}} das?", + "a.Kein Circle verfügbar oder ausgewählt.": "Kein Circle verfügbar oder ausgewählt.", + "a.Keine Angabe": "Keine Angabe", + "a.Kommentar": "a.Kommentar", + "a.Kommentar erfassen": "a.Kommentar erfassen", + "a.Kompetenznachweis": "Kompetenznachweis", + "a.Kompetenznachweis-Elemente": "Kompetenznachweis-Elemente", + "a.Kompetenznachweise": "Kompetenznachweise", + "a.KompetenzNavi": "KompetenzNavi", + "a.Konto erstellen": "Konto erstellen", + "a.Kosten": "Kosten", + "a.Kosten aller Jahre ansehen": "a.Kosten aller Jahre ansehen", + "a.Kosten in 2024": "a.Kosten in 2024", + "a.Krankenzusatzversicherung": "Krankenzusatzversicherung", + "a.Krankenzusatzversicherungen": "Krankenzusatzversicherungen", + "a.Lade ein Profilbild hoch, damit dich andere Personen auf den ersten Blick erkennen.": "Lade ein Profilbild hoch, damit dich andere Personen auf den ersten Blick erkennen.", + "a.Laden...": "Laden...", + "a.Land": "Land", + "a.Leben": "Leben", + "a.Lehrgang": "Lehrgang", + "a.Lehrgang kaufen": "Lehrgang kaufen", + "a.Leistungsziel": "Leistungsziel", + "a.Leistungsziele": "Leistungsziele", + "a.Lernbegleiter": "a.Lernbegleiter", + "a.Lernbegleitung": "Lernbegleitung", + "a.Lernbegleitung auswählen": "Lernbegleitung auswählen", + "a.Lernbegleitung einladen": "Lernbegleitung einladen", + "a.Liste anzeigen": "Liste anzeigen", + "a.Mach nun weiter mit dem nächsten Schritt.": "Mach nun weiter mit dem nächsten Schritt.", + "a.Maximale Dateigrösse": "Maximale Dateigrösse", + "a.Mediathek": "Mediathek", + "a.Mehr erfahren": "Mehr erfahren", + "a.Meine Lernbegleitung": "Meine Lernbegleitung", + "a.mit Abzug": "mit Abzug", + "a.Mit dem Kauf erhältst du Zugang auf den gesamten Kurs (inkl. Prüfung).": " Mit dem Kauf erhältst du Zugang zum Lernpfad und den Lernmedien.", + "a.Mit Kreditkarte bezahlen": "Mit Debit-/Kreditkarte/Twint bezahlen", + "a.Mit Rechnung bezahlen": "Mit Rechnung bezahlen", + "a.Mögliche Formate": "Mögliche Formate", + "a.Nachname": "Nachname", + "a.Name": "Name", + "a.Nein, NAME muss das nochmals anschauen.": "Nein, {{NAME}} muss das nochmals anschauen", + "a.Neue Lernbegleitung einladen": "Neue Lernbegleitung einladen", + "a.Nicht Bestanden": "Nicht bestanden", + "a.Nicht bewertet": "Nicht bewertet", + "a.Nichtleben": "Nichtleben", + "a.Note": "Note", + "a.NUMBER Elemente abgeschlossen": "{NUMBER} Elemente abgeschlossen", + "a.NUMBER Präsenztage abgeschlossen": "{NUMBER} Präsenztage abgeschlossen", + "a.NUMBER Teilnehmer anwesend": "{NUMBER} Teilnehmer anwesend", + "a.Nächste Termine": "a.Nächste Termine", + "a.OldCircle": "a.OldCircle", + "a.Optionale Anwesenheit": "Optionale Anwesenheit", + "a.Ort": "Ort", + "a.Personen": "Personen", + "a.Personen, die du begleitest": "Personen, die du begleitest ", + "a.Persönliche Informationen": "Persönliche Informationen", + "a.PLZ": "PLZ", + "a.Praxisauftrag": "Praxisauftrag", + "a.Praxisaufträge anschauen": "Praxisaufträge anschauen", + "a.Praxisbildner": "Praxisbildner", + "a.present von total Teilnehmenden anwesend": "{{present}} von {{total}} Teilnehmenden anwesend", + "a.Privatadresse": "Privatadresse", + "a.Profil anzeigen": "Profil anzeigen", + "a.Profil bearbeiten": "Profil bearbeiten", + "a.Profil ergänzen": "Profil ergänzen", + "a.Profilbild": "Profilbild", + "a.Präsenztag": "Präsenztag", + "a.Punkte": "Punkte", + "a.Punkte aus Bewertung": "Punkte aus Bewertung", + "a.PunkteVonDaniel": "", + "a.PunkteVonDaniel123": "Super Sache", + "a.Rechnung": "Rechnung", + "a.RechnungPaymentMethodDescription": "a.RechnungPaymentMethodDescription", + "a.Rechnungsadresse": "Rechnungsadresse", + "a.Rechnungsadresse hinzufügen": "Rechnungsadresse hinzufügen", + "a.Rechnungsadresse von {organisation}": "Rechnungsadresse von {{organisation}}", + "a.Rechnungsadresse von {organisation} hinzufügen": "Rechnungsadresse von {{organisation}} hinzufügen", + "a.Regionenleiter": "a.Regionenleiter", + "a.Resultat": "Resultat", + "a.Schliessen": "a.Schliessen", + "a.Selbst- und Fremdeinschätzungen": "Selbst- und Fremdeinschätzungen", + "a.Selbsteinschätzung": "Selbsteinschätzung", + "a.Selbsteinschätzung anschauen": "Selbsteinschätzung anschauen", + "a.Selbsteinschätzung anzeigen": "Selbsteinschätzung anzeigen", + "a.Selbsteinschätzung geteilt": "Selbsteinschätzung geteilt", + "a.Selbsteinschätzung mit MENTOR_NAME teilen": "Selbsteinschätzung mit {{MENTOR_NAME}} teilen", + "a.Selbsteinschätzung teilen": "Selbsteinschätzung teilen", + "a.Selbsteinschätzung von FEEDBACK_REQUESTER_NAME": "Selbsteinschätzung von {{FEEDBACK_REQUESTER_NAME}}", + "a.Selbsteinschätzungen": "Selbsteinschätzungen", + "a.Selbsteinschätzungen geteilt": "Selbsteinschätzungen geteilt", + "a.So startest du mit diesem Lehrgang": "So startest du mit diesem Lehrgang", + "a.Standort": "Standort", + "a.Statistik": "a.Statistik", + "a.Statistik für alle Lernenden": "a.Statistik für alle Lernenden", + "a.Stelle deinen Lernenden zusätzliche Inhalte zur Verfügung.": "Stelle deinen Teilnehmern zusätzliche Inhalte zur Verfügung.", + "a.Strasse": "Strasse", + "a.Super, nun ist alles bereit. Du bist der Durchführung «{course}» zugewiesen und kannst mit dem Lehrgang starten.": "Super, nun ist alles bereit. Du bist der Durchführung «{{course}}» zugewiesen und kannst mit dem Lehrgang starten.", + "a.Teilnehmer": "Teilnehmer", + "a.Teilnehmer im 2024": "a.Teilnehmer im 2024", + "a.Telefonnummer": "Telefonnummer", + "a.Telefonnummer hat das falsche Format": "a.Telefonnummer hat das falsche Format", + "a.Termin": "Termin", + "a.Termine": "Termine", + "a.Total {NUMBER} Antworten": "Total {NUMBER} Antworten", + "a.Trainer": "Trainer", + "a.Um die Zahlung vornehmen zu können, benötigen wir deine Privatadresse. Optional kannst du die Rechnungsadresse deiner Gesellschaft hinzufügen.": "Um die Zahlung vornehmen zu können, benötigen wir deine Privatadresse. Nach der Bezahlung erhältst du dann eine Buchungsbestätigung via Mail.", + "a.Ungerundete Note": "Ungerundete Note", + "a.Unterlagen": "Unterlagen", + "a.Unterlagen für Teilnehmenden": "Unterlagen für Teilnehmende", + "a.Unternehmen": "Unternehmen", + "a.VALUE von MAXIMUM": "{{VALUE}} von {{MAXIMUM}}", + "a.Versicherungsvermittler/-in": "Versicherungsvermittler/-in VBV", + "a.Vorname": "Vorname", + "a.Vorschau Teilnehmer": "Vorschau Teilnehmer", + "a.VorschauTeilnehmer": "Vorschau Teilnehmer", + "a.Wegleitung üK": "Wegleitung üK", + "a.wegleitungUkUrl": "https://www.vbv.ch/fileadmin/vbv/Dokumente/Bildungsabschluesse/KV/Wegleitung_ueK_240215_de_V2.pdf", + "a.Weiter zur Zahlung": "a.Weiter zur Zahlung", + "a.Wir haben per E-Mail eine Bestätigung an {email} geschickt.": "Wir haben per E-Mail eine Bestätigung an {email} geschickt.", + "a.Wähle ein Zulassungsprofil, damit du deinen Lehrgang an der richtigen Stelle beginnen kannst.": "Wähle ein Zulassungsprofil, damit du deinen Lehrgang an der richtigen Stelle beginnen kannst.", + "a.Wähle ein Zulassungsprofil, damit du deinen Lehrgang an der richtigen Stelle beginnen kannst. Du kannst ihn später jederzeit ändern.": "Wähle ein Zulassungsprofil, damit du deinen Lehrgang an der richtigen Stelle beginnen kannst. Du kannst ihn später jederzeit ändern.", + "a.Wähle hier den Namen der Gesellschaft aus, in der du arbeitest. So können dich andere Personen einfacher finden.": "Wähle hier den Namen der Gesellschaft aus, in der du arbeitest. So können dich andere Personen einfacher finden.", + "a.xOfY Punkten erreicht": "{xOfY} Punkten erreicht", + "a.Zahlungsart": "Zahlungsart", + "a.Zu erledigen": "Zu erledigen", + "a.Zulassungsprofil": "Zulassungsprofil", + "a.Zulassungsprofil auswählen": "Zulassungsprofil auswählen", + "a.Zum Unterlagen-Upload": "Unterlagen hochladen", + "a.Zurück": "a.Zurück", + "a.Zwischenstand": "Zwischenstand", + "a.{AVG} von {MAX}": "{AVG} von {MAX}", + "a.{NUMBER} Bestanden": "{NUMBER} Bestanden", + "a.{NUMBER} Das kann ich": "{NUMBER} Das kann ich", + "a.{NUMBER} Das will ich nochmals anschauen": "{NUMBER} Das will ich nochmals anschauen", + "a.Überbetriebliche Kurse": "Überbetriebliche Kurse", + "a.Überprüfe deine Eingaben unten und gib anschliessend deine Fremdeinschätzung für FEEDBACK_REQUESTER frei": "Überprüfe deine Eingaben unten und gib anschliessend deine Fremdeinschätzung für {{FEEDBACK_REQUESTER}} frei.", + "a.Übersicht": "Übersicht", + "a.Übersicht anschauen": "Übersicht anschauen", + "Abgabe": "Abgabe", "Abgabetermin Ergebnisse:": "Abgabetermin Ergebnisse:", "Alle": "Alle", - "Anwesenheit Präsenzkurse": "Anwesenheit Präsenzkurse", + "Anwesenheit": "Anwesenheit", "Anwesenheit bestätigen": "Anwesenheit bestätigen", + "Anwesenheit Präsenzkurse": "Anwesenheit Präsenzkurse", "Anwesenheit prüfen": "Anwesenheit prüfen", "Anwesenheitskontrolle Präsenzkurse": "Anwesenheitskontrolle Präsenzkurse", + "assignment.acceptConditionsDisclaimer": "Bedingungen akzeptieren und Ergebnisse abgeben", + "assignment.assessmentDocumentDisclaimer": "Diese geleitete Fallarbeit wird auf Grund des folgenden Beurteilungsinstrument bewertet:", + "assignment.assessmentTitle": "Bewertung", + "assignment.assignmentSubmitted": "Du hast deine Ergebnisse erfolgreich abgegeben.", + "assignment.confirmSubmitPerson": "Ja, die folgende Person soll meine Ergebnisse bewerten.", + "assignment.confirmSubmitResults": "Ja, ich gebe meine Resultate ab.", + "assignment.Du musst die Bewertung bis am x um y Uhr abschliessen und freigeben": "Du musst die Bewertung bis am {{x}} um {{y}} Uhr abschliessen und freigeben.", + "assignment.dueDateEvaluation": "Freigabetermin Bewertung", + "assignment.dueDateIntroduction": "Reiche deine Ergebnisse pünktlich ein bis am: ", + "assignment.dueDateNotSet": "Keine Abgabedaten wurden erfasst für diese Durchführung", + "assignment.dueDateSubmission": "Abgabetermin", + "assignment.dueDateTitle": "assignment.dueDateTitle", + "assignment.edit": "Bearbeiten", + "assignment.effortTitle": "Zeitaufwand", + "assignment.evaluationFeedback": "Feedback", + "assignment.evaluationInstrumentDescriptionText": "Die Gesamtpunktzahl und die daraus resultierende Note wird auf Grund des hinterlegeten Beurteilungsinstrument berechnet.", + "assignment.evaluationReason": "Begründung", + "assignment.feedbackRequiredText": "Erfasse hier deine Kommentare.", + "assignment.initialSituationTitle": "Ausgangslage", + "assignment.justificationRequiredText": "Hier muss zwingend eine Begründung erfasst werden.", + "assignment.lastChangesNotSaved": "Die letzte Änderung konnte nicht gespeichert werden.", + "assignment.performanceObjectivesTitle": "Leistungsziele", + "assignment.showAssessmentDocument": "Bewertungsinstrument anzeigen", + "assignment.submissionNotificationDisclaimer": "{{name}} wird deine Ergebnisse bewerten. Du wirst per Benachrichtigung informiert, sobald die Bewertung für dich freigegeben wurde.", + "assignment.submissionShowSampleSolution": "Musterlösung Anzeigen", + "assignment.submissionShowSampleSolutionText": "Hier findest du eine mögliche Lösung zu deinen Aufgaben. Vorgehen und Prozesse in deiner Organisation können von dieser Lösung abweichen.", + "assignment.submitAssignment": "Ergebnisse abgeben", + "assignment.taskDefinition": "Bearbeite die Teilaufgaben und dokumentiere deine Ergebnisse.", + "assignment.taskDefinitionTitle": "Aufgabenstellung", + "assignment.von x Punkten": "von {{x}} Punkten", + "assignment.x hat die Ergebnisse am y um z Uhr abgegeben": "{{x}} hat die Ergebnisse am {{y}} um {{z}} Uhr abgegeben", + "assignment.x von y Arbeiten abgeschlossen": "{{x}} von {{y}} Arbeiten abgeschlossen", + "assignment.x von y Kompetenznachweis-Elementen abgeschlossen": "{{x}} von {{y}} Kompetenznachweis-Elementen abgeschlossen", + "Aufgrund von Problemen beim Zahlungsanbieter ist ein Erwerb der myVBV-Lizenz derzeit nur mit TWINT möglich. Wir arbeiten mit Hochdruck an der Lösung des Problems. ": "Aufgrund von Problemen beim Zahlungsanbieter ist ein Erwerb der myVBV-Lizenz derzeit nur mit TWINT möglich. Wir arbeiten mit Hochdruck an der Lösung des Problems. ", + "Ausbildungsverantwortlicher": "Ausbildungsverantwortlicher", "Benutzername": "Benutzername", + "Berufsbildner": "Berufsbildner", + "Bestanden": "Bestanden", + "Bewertung von x y": "Bewertung von {{x}} {{y}}", + "Circle": "Circle", + "circlePage.circleContentBoxTitle": "Das lernst du in diesem Circle", + "circlePage.contactExpertButton": "Trainer/-in kontaktieren", + "circlePage.contactExpertDescription": "Tausche dich mit der Trainer/-in für den Circle {{circleName}} aus.", + "circlePage.contactLearningMentorButton": "Lernbegleiter/-in kontaktieren", + "circlePage.contactLearningMentorDescription": "Tausche dich mit deiner Lernbegleitung aus.", + "circlePage.Dieser Inhalt gehört zu x": "Dieser Inhalt gehört zu «{{x}}»", + "circlePage.documents.action": "Unterlagen hochladen", + "circlePage.documents.chooseLearningSequence": "Bitte wähle eine Lernsequenz aus", + "circlePage.documents.chooseName": "Bitte wähle einen Namen", + "circlePage.documents.chooseSequence": "Wähle eine Lernsequenz aus", + "circlePage.documents.deleteModalTitle": "Unterlage löschen", + "circlePage.documents.deleteModalWarning": "Willst du die Unterlage \"{{title}}\" löschen?
Diese Aktion ist nicht umkehrbar.", + "circlePage.documents.expertDescription": "Stelle deinen Lernenden zusätzliche Inhalte zur Verfügung.", + "circlePage.documents.fileLabel": "Datei", + "circlePage.documents.maxFileSize": "Maximale Dateigrösse: 50 MB", + "circlePage.documents.modalAction": "Datei auswählen", + "circlePage.documents.modalFileName": "Name", + "circlePage.documents.modalNameInformation": "Max. 70 Zeichen", + "circlePage.documents.selectFile": "Bitte wähle eine Datei aus", + "circlePage.documents.title": "Unterlagen", + "circlePage.documents.trainerDescription": "Finde auf Teams zusätzliche Inhalte für deinen Unterricht.", + "circlePage.documents.trainerLinkSrc": "https://vbvbern.sharepoint.com/sites/myVBV-AFA_K-CI", + "circlePage.documents.trainerLinkText": "Inhalte auf Teams anschauen", + "circlePage.documents.trainerTitle": "Begleitung für Trainer", + "circlePage.documents.uploadErrorMessage": "Beim Hochladen ist ein Fehler aufgetreten. Bitte versuche es erneut.", + "circlePage.documents.userDescription": "Hier findest du zusätzliche Unterlagen, die dich beim Lernen in diesem Circle unterstützen.", + "circlePage.duration": "Dauer", + "circlePage.gotQuestions": "Hast du Fragen?", + "circlePage.Im KompetenzNavi anschauen": "Im KompetenzNavi anzeigen", + "circlePage.learnMore": "Erfahre mehr dazu", + "Cockpit anschauen": "Cockpit anschauen", + "cockpit.all": "Alle", + "cockpit.examsDone": "Abgelegte Prüfungen von Teilnehmer.", + "cockpit.feedbacksDone": "Abgeschickte Feedbacks von Teilnehmer.", + "cockpit.notifyTask": "Benachrichtigen", + "cockpit.notifyTaskDescription": "Teilnehmer benachrichtigen", + "cockpit.profileLink": "Profil anzeigen", + "cockpit.progress": "Teilnehmende / Status", + "cockpit.tasksDone": "Erledigte Transferaufträge von Teilnehmer.", + "cockpit.title": "Cockpit", + "cockpit.trainerFilesText": "Hier findest du die Trainerunterlagen (Lösungsblätter, Präsentationen etc.) für deinen Circle.", + "competence.listPageDescription": "Einleitung: Hier findest du einen Überblick aller Handlungskompetenzen und den dazugehörigen Leistungszielen, welche für deinen Lehrgang relevant sind. ", + "competenceCertificate.mainTitle": "Kompetenznachweis", + "competenceCertificates.mainTitle": "Kompetenznachweise", + "competences.assessAgain": "Selbsteinschätzung im Circle «{{x}}» anschauen", + "competences.assessment": "Einschätzungen", + "competences.competences": "Kompetenzen", + "competences.lastImprovements": "Letzte verbesserte Kompetenzen", + "competences.notAssessed": "Nicht eingeschätzt", + "competences.title": "KompetenzNavi", + "constants.no": "Nein", + "constants.satisfied": "zufrieden", + "constants.unsatisfied": "unzufrieden", + "constants.verySatisfied": "sehr zufrieden", + "constants.veryUnsatisfied": "sehr unzufrieden", + "constants.yes": "Ja", + "dashboard.courses": "Lehrgang", + "dashboard.nocourses": "Du wurdest noch keinem Lehrgang zugewiesen.", + "dashboard.welcome": "Willkommen, {{name}}", + "Der Preis für den Lehrgang «Versicherungsvermittler-/in VBV» beträgt CHF 300 exkl. MWSt.. Mit dem Kauf erhältst du Zugang zum Lernpfad und den Lernmedien.": "Nach der Bezahlung von 300 CHF exkl. MWSt. erhältst du Zugang für den gesamten Lehrgang (inkl. Prüfung).", + "dueDates.noDueDatesAvailable": "Keine Termine vorhanden", + "dueDates.showAllDueDates": "Alle Termine anzeigen", + "Durchführung": "Durchführung", + "edoniqTest.checkboxTitle": "Bedingungen akzeptieren und Test durchführen", + "edoniqTest.deadlineInPast": "Der Test kann nicht mehr durchgeführt werden, da das Abgabedatum abgelaufen ist.", + "edoniqTest.qualifiesForExtendedTime": "Ich bestätige, dass ich Anrecht auf einen Test mit Nachteilsausgleich habe.", + "edoniqTest.qualifiesForExtendedTimeTitle": "Lernende mit Nachteilsausgleich (bewilligungspflichtig)", + "edoniqTest.startTest": "Test starten", + "edoniqTest.submitDateDescription": "Reiche deine Ergebnisse pünktlich ein bis am {{x}}.", + "edoniqTest.testDescription": "Führe den folgenden Test durch. Der Test kann nur einmal durchgeführt werden und ist notenrelevant.", + "edoniqTest.testSubmitted": "Du hast diesen Test abgeschlossen", + "edoniqTest.viewResults": "Ergebnisse anschauen", + "Elemente zu erledigen": "Elemente zu erledigen", "Ergebnisse anschauen": "Ergebnisse anschauen", "Ergebnisse anzeigen": "Ergebnisse anzeigen", "Feedback": "Feedback", "Feedback anschauen": "Feedback anschauen", + "feedback.answers": "Antworten", + "feedback.areYouSatisfied": "Kursfeedback", + "feedback.average": "Durchschnitt", + "feedback.circleFeedback": "Feedback zum Circle", + "feedback.completionDescription": "Dein Feedback ist anonym. Dein Vor- und Nachname werden bei deiner Trainer/-in nicht angezeigt.", + "feedback.completionDescriptionVV": "Dein Feedback ist anonym und dein Vor- und Nachname sind nicht sichtbar.", + "feedback.completionTitle": "Schicke dein Feedback an {{name}}", + "feedback.completionTitleVV": "Schicke dein Feedback an VBV", + "feedback.courseNegativeFeedbackLabel": "Wo siehst du Verbesserungspotential?", + "feedback.coursePositiveFeedbackLabel": "Was hat dir besonders gut gefallen?", + "feedback.feedbackPageInfo": "Teilnehmer haben das Feedback ausgefüllt", + "feedback.feedbackPageTitle": "Feedback zum Lehrgang", + "feedback.feedbackSent": "Dein Feedback wurde abgeschickt", + "feedback.goalAttainmentLabel": "Zielerreichung insgesamt", + "feedback.happy": "Zufrieden", + "feedback.instructorCompetenceLabel": "Wie beurteilst du die Themensicherheit und Fachkompetenz des Kursleiters/der Kursleiterin?", + "feedback.instructorOpenFeedbackLabel": "Was möchtest du dem Kursleiter/der Kursleiterin sonst noch sagen?", + "feedback.instructorRespectLabel": "Wurden Fragen und Anregungen der Kursteilnehmenden ernst genommen und aufgegriffen?", + "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.", + "feedback.materialsRatingLabel": "Falls ja: Wie beurteilen Sie die Vorbereitungsunterlagen (z.B. eLearning)?", + "feedback.noFeedbacks": "Es wurden noch keine Feedbacks abgegeben", + "feedback.praxisAssignmentClarity": "Waren die Praxisaufträge klar und verständlich?", + "feedback.preparationTaskClarityLabel": "Waren die Vorbereitungsaufträge klar und verständlich?", + "feedback.proficiencyLabel": "Wie beurteilst du deine Sicherheit bezüglichen den Themen nach dem Kurs?", + "feedback.proficiencyLabelVV": "Wie beurteilst du deine Sicherheit bezüglichen den Themen nach dem Circle?", + "feedback.questionTitle": "Frage", + "feedback.recommendLabel": "Würdest du den Kurs weiterempfehlen?", + "feedback.recommendLabelVV": "Würdest du den Circle weiterempfehlen?", + "feedback.satisfactionLabel": "Zufriedenheit insgesamt", + "feedback.sendFeedback": "Feedback abschicken", + "feedback.sentByUsers": "Von {{count}} Teilnehmern ausgefüllt", + "feedback.showDetails": "Details anzeigen", + "feedback.unhappy": "Unzufrieden", + "feedback.veryHappy": "Sehr zufrieden", + "feedback.veryUnhappy": "Sehr unzufrieden", "Feedback: Feedback zum Lehrgang": "Feedback: Feedback zum Lehrgang", + "foobar.hello": "Hallo von der Innoweek", + "footer.contact": "Kontakt", + "footer.contactLink": "https://www.vbv.ch/de/der-vbv/organisation/kontakt", + "footer.contactText": "Kontakt", + "footer.copyright": "© 2023 VBV", + "footer.dataProtectionLink": "https://www.vbv.ch/de/datenschutzbestimmungen", + "footer.dataProtectionText": "Datenschutzbestimmungen", + "footer.imprintLink": "https://www.vbv.ch/de/impressum", + "footer.imprintText": "Impressum", "Freigabetermin Bewertungen:": "Freigabetermin Bewertungen:", - "Hier überprüfst und bestätigst du die Anwesenheit deiner Teilnehmenden": [], + "Füge dein Profilbild hinzu und ergänze die fehlenden Angaben.": "Füge dein Profilbild hinzu und ergänze die fehlenden Angaben.", + "Geleitete Fallarbeit": "Geleitete Fallarbeit", + "general.back": "Zurück", + "general.backCapitalized": "Zurück", + "general.backToCircle": "zurück zum Circle", + "general.backToLearningPath": "zurück zum Lernpfad", + "general.cancel": "Abbrechen", + "general.certificate_many": "", + "general.certificate_one": "Zertifikat", + "general.certificate_other": "Zertifikate", + "general.circles": "Circles", + "general.close": "Schliessen", + "general.exam_many": "", + "general.exam_one": "Prüfung", + "general.exam_other": "Prüfungen", + "general.examResult_many": "", + "general.examResult_one": "Prüfungsresultat", + "general.examResult_other": "Prüfungsresultate", + "general.feedback_many": "", + "general.feedback_one": "Feedback", + "general.feedback_other": "Feedbacks", + "general.im circle x anschauen": "Im Circle «{{x}}» anzeigen", + "general.introduction": "Einleitung", + "general.learningPath": "Lernpfad", + "general.learningSequence": "Lernsequenz", + "general.learningUnit": "Lerneinheit", + "general.next": "Weiter", + "general.nextStep": "Weiter geht's", + "general.no": "Nein", + "general.notification_many": "", + "general.notification_one": "Benachrichtigung", + "general.notification_other": "Benachrichtigungen", + "general.profileLink": "Details anzeigen", + "general.save": "Speichern", + "general.send": "Senden", + "general.settings": "Kontoeinstellungen", + "general.shop": "Shop", + "general.show": "Anschauen", + "general.showAll": "Alle anschauen", + "general.start": "Los geht's", + "general.submission": "Abgabe", + "general.title": "myVBV", + "general.transferTask_many": "", + "general.transferTask_one": "Transferauftrag", + "general.transferTask_other": "Transferaufträge", + "general.yes": "Ja", + "Generation": "Generation", + "Hast du Fragen?": "Hast du Fragen?", + "Hier überprüfst und bestätigst du die Anwesenheit deiner Teilnehmenden.": "Hier überprüfst und bestätigst du die Anwesenheit deiner Teilnehmenden.", + "Ich will die Anwesenheit der untenstehenden Personen definitiv bestätigen.": "Ich will die Anwesenheit der untenstehenden Personen definitiv bestätigen.", + "Jahr": "Jahr", + "Keine Auftragsdetails verfügbar.": "Keine Auftragsdetails verfügbar.", + "Kompetenznachweise": "Kompetenznachweise", + "Kompetenzprofil": "Kompetenzprofil", + "Kosten im": "Kosten im", + "Kosten in": "Kosten in", + "Kosten in 2024": "Kosten in 2024", + "language.de": "Deutsch", + "language.fr": "Français", + "language.it": "Italiano", + "learningContent.markAsDone": "Als erledigt markieren", + "learningContentTypes.attendanceCourse": "Präsenzkurs", + "learningContentTypes.casework": "Geleitete Fallarbeit", + "learningContentTypes.documents": "Dokumente", + "learningContentTypes.edoniqTest": "Wissens- und Verständnisfragen", + "learningContentTypes.feedback": "Feedback", + "learningContentTypes.knowledgeAssessment": "Test", + "learningContentTypes.learningModule": "Lernmodul", + "learningContentTypes.mandatory_casework": "learningContentTypes.mandatory_casework", + "learningContentTypes.placeholder": "In Umsetzung", + "learningContentTypes.praxisAssignment": "Auftrag", + "learningContentTypes.prepAssignment": "Vorbereitungsauftrag", + "learningContentTypes.reflection": "Reflexion", + "learningContentTypes.task": "Aufgabe", + "learningContentTypes.test": "Test", + "learningContentTypes.text": "Text", + "learningContentTypes.video": "Video", + "learningPathPage.currentCircle": "Aktueller Circle", + "learningPathPage.listView": "Listenansicht", + "learningPathPage.nextDueDates": "Nächste Termine", + "learningPathPage.nextStep": "Nächster Schritt", + "learningPathPage.pathView": "Pfadansicht", + "learningPathPage.progressText": "Du hast {{ inProgressCount }} von {{ allCount }} Circles bearbeitet", + "learningPathPage.showListView": "Listenansicht anzeigen", + "learningPathPage.topics": "Themen:", + "learningPathPage.welcomeBack": "Willkommen zurück in deinem Lehrgang:", + "Lehrgang": "Lehrgang", + "Lernbegleitung einladen": "Lernbegleitung einladen", + "Lernpfad kaufen": "", + "login.demoLogin": "Demo Login", + "login.guidelineFile": "Registrierung_myVBV.pdf", + "login.guidelineText": "Erfahre wie du dich als Lernende/r registrieren kannst", + "login.login": "Login", + "login.ssoLogin": "SSO Login/Registration", + "login.ssoText": "Klicke auf den Button, um dich über SSO anzumelden oder zu registrieren.", + "login.welcomeText": "Herzlich willkommen auf der Login-Seite für die überbetrieblichen Kurse der kaufmännischen\nAusbildungs- und Prüfungsbranche «Privatversicherung».", + "login.welcomeUk": "Willkommen", + "mainNavigation.logout": "Abmelden", + "mainNavigation.profile": "Profil", + "mediaLibrary.handlungsfelder.description": "Finde alle Ressourcen der Handlungsfelder wie Lernmedien, Links und andere nützliche Informationen.", + "mediaLibrary.handlungsfelder.title_many": "", + "mediaLibrary.handlungsfelder.title_one": "Handlungsfeld", + "mediaLibrary.handlungsfelder.title_other": "Handlungsfelder", + "mediaLibrary.learningMedia.description": "Finde eine vollständige Liste der Bücher und anderen Medien, auf die im Kurs verwiesen wird.", + "mediaLibrary.learningMedia.titel": "Lernmedien", + "mediaLibrary.show": "Mediathek anzeigen", + "mediaLibrary.title": "Mediathek", + "Meine Lernbegleiter": "Meine Lernbegleiter", + "Meine Praxisbildner": "Meine Praxisbildner", + "Member": "Teilnehmer", + "MentorUK": "Praxisbildner/Praxisbildnerin", + "MentorVV": "Lernbegleitung", + "messages.sendMessage": "Nachricht schreiben", "MS Teams öffnen": "MS Teams öffnen", + "Nach der Bezahlung von 300 CHF exkl. MWSt. erhältst du Zugang für den gesamten Lehrgang (inkl. Prüfung).": "Nach der Bezahlung von 300 CHF exkl. MWSt. erhältst du Zugang für den gesamten Lehrgang (inkl. Prüfung).", + "Neuen Praxisbildner einladen": "Neuen Praxisbildner einladen", + "Nicht bestanden": "Nicht bestanden", + "notifications.load_more": "Mehr laden", + "notifications.no_notifications": "Du hast derzeit keine Benachrichtigungen", "Nächste Termine": "Nächste Termine", "Passwort": "Passwort", + "Personen": "Personen", + "profile.": "profile.", + "profile.all": "Allbranche", + "profile.krankenzusatzversicherung": "Krankenzusatz", + "profile.leben": "Leben", + "profile.nichtleben": "Nichtleben", + "profile.null": "profile.null", "Präsenzkurs": "Präsenzkurs", + "receivedEvaluation.no": "Das musst du nochmals anschauen", + "receivedEvaluation.yes": "Ja, du kannst das", + "Reflexion": "Reflexion", + "Region": "Region", + "Rolle": "Rolle", "Sehr unzufrieden": "Sehr unzufrieden", "Sehr zufrieden": "Sehr zufrieden", + "selfEvaluation.instruction.0": "Überprüfe, ob du in der Lernheinheit", + "selfEvaluation.instruction.1": "alles verstanden hast.", + "selfEvaluation.instruction.2": "Lies die folgende Aussage und bewerte sie:", + "selfEvaluation.no": "Das muss ich nochmals anschauen", + "selfEvaluation.progressLink": "KompetenzNavi öffnen", + "selfEvaluation.progressText": "Schau dein Fortschritt in deinem KompetenzNavi:", + "selfEvaluation.selfEvaluation": "Selbsteinschätzung", + "selfEvaluation.selfEvaluationNo": "$t(a.Selbsteinschätzung): Muss ich nochmals anschauen.", + "selfEvaluation.selfEvaluationYes": "$t(a.Selbsteinschätzung): Ich kann das.", + "selfEvaluation.steps": "Schritt {{current}} von {{max}}", + "selfEvaluation.title": "Selbsteinschätzung {{title}}", + "selfEvaluation.yes": "Ja, ich kann das", + "settings.emailNotifications": "Email Benachrichtigungen", + "shop.paymentCembraByjunoMessage": "Eine Zahlung auf Rechnung ist ausschliesslich an deine Privatadresse möglich. Du musst zwingend deine Telefonnummer und dein Geburtsdatum angeben. Wichtig: die Zahlungsfrist beträgt 30 Tage. Die Abwicklung deiner Zahlung (inkl. Mahnung, Inkasso, Betreibung) erfolgt direkt durch CembraPay AG. Die Rechnung erhälst du per Email.", + "Sobald du einer Durchführung zugewiesen bist, ist alles bereit.": "Sobald du einer Durchführung zugewiesen bist, ist alles bereit.", + "Sprache wählen und Lehrgang starten": "Sprache wählen und Lehrgang starten", + "start.chooseCourse": "Wähle jetzt deinen Lehrgang aus:", + "start.myvbvDescription": "Die Lernumgebung für die Versicherungswirtschaft", + "start.ukDescription": "Die überbetrieblichen Kurse im Zusammenhang mit der Ausbildung «Kaufmann/-frau EFZ Privatversicherung»", + "start.ukTitle": "Kaufmann/-frau EFZ Privatversicherung / Überbetriebliche Kurse", + "start.vvDescription": "Der Lernpfad und die Lernmedien, welche dich auf die Prüfung «Versicherungsvermittler/-in VBV» vorbereiten.", "Status anschauen": "Status anschauen", + "Supervisor": "Regionenleiter", + "Teilnehmer": "Teilnehmer", + "Teilnehmer im": "Teilnehmer im", + "Teilnehmer im 2024": "Teilnehmer im 2024", + "Teilnehmer nach Zulassungsprofilen": "Teilnehmer nach Zulassungsprofilen", + "Teilnehmer nach Zulassungsprofilen im": "Teilnehmer nach Zulassungsprofilen im", + "Termin nicht festgelegt": "", "TODO: Nächste Termine": "TODO: Nächste Termine", + "Trainer": "Trainer", "Trainerunterlagen": "Trainerunterlagen", - "Wissens - und Verständnisfragen": "Wissens - und Verständnisfragen", - "Zur Zeit sind keine Termine vorhanden": "Zur Zeit sind keine Termine vorhanden", - "a": { - "Alle aufklappen": "Alle aufklappen", - "AlleTermine": "a.AlleTermine", - "Begründung": "Begründung", - "Beurteilungsinstrument anzeigen": "Beurteilungsinstrument anzeigen", - "Beurteilungskriterium": "Beurteilungskriterium", - "Bewertung": "Bewertung", - "Bewertung fortsetzen": "a.Bewertung fortsetzen", - "Bewertung freigegeben": "Bewertung freigegeben", - "Bewertung starten": "Bewertung starten", - "Circle": "Circle", - "Datum": "Datum", - "Details anzeigen": "Details anzeigen", - "Ergebnisse": "Ergebnisse", - "Ergebnisse abgegeben": "Ergebnisse abgegeben", - "Ergebnisse anschauen": "Ergebnisse anschauen", - "Geleitete Fallarbeit": "Geleitete Fallarbeit", - "Gesamtpunktzahl": "Gesamtpunktzahl", - "Handlungskompetenzen": "Handlungskompetenzen", - "Höchstpunktzahl": "Höchstpunktzahl", - "Kein Circle verfügbar oder ausgewählt": [], - "KompetenzNavi": "KompetenzNavi", - "Kompetenznachweis": "Kompetenznachweis", - "Kompetenznachweise": "Kompetenznachweise", - "Leistungsziele": "Leistungsziele", - "Mediathek": "Mediathek", - "Punkte": "Punkte", - "Selbsteinschätzung": "Selbsteinschätzung", - "Selbsteinschätzung anschauen": "a.Selbsteinschätzung anschauen", - "Selbsteinschätzungen": "Selbsteinschätzungen", - "Standort": "Standort", - "Trainer": "Trainer", - "VorschauTeilnehmer": "Vorschau Teilnehmer", - "Zwischenstand": "Zwischenstand", - "competenceCertificateNoUserPoints": "Der Punktestand wird zu einem späteren Zeitpunkt berechnet.", - "Übersicht": "Übersicht" - }, - "assignment": { - "Du musst die Bewertung bis am x um y Uhr abschliessen und freigeben": "Du musst die Bewertung bis am {{x}} um {{y}} Uhr abschliessen und freigeben.", - "acceptConditionsDisclaimer": "Bedingungen akzeptieren und Ergebnisse abgeben", - "assessmentDocumentDisclaimer": "Diese geleitete Fallarbeit wird auf Grund des folgenden Beurteilungsinstrument bewertet:", - "assessmentTitle": "Bewertung", - "assignmentSubmitted": "Du hast deine Ergebnisse erfolgreich abgegeben.", - "confirmSubmitPerson": "Hiermit bestätige ich, dass die folgende Person meine Ergebnisse bewerten soll.", - "confirmSubmitResults": "Hiermit bestätige ich, dass ich die Zusammenfassung meiner Ergebnisse überprüft habe und so abgeben will.", - "dueDateEvaluation": "Freigabetermin Bewertung", - "dueDateIntroduction": "Reiche deine Ergebnisse pünktlich ein bis am: ", - "dueDateNotSet": "Keine Abgabedaten wurden erfasst für diese Durchführung", - "dueDateSubmission": "Abgabetermin", - "edit": "Bearbeiten", - "effortTitle": "Zeitaufwand", - "evaluationInstrumentDescriptionText": "Die Gesamtpunktzahl und die daraus resultierende Note wird auf Grund des hinterlegeten Beurteilungsinstrument berechnet.", - "initialSituationTitle": "Ausgangslage", - "justificationRequiredText": "Hier muss zwingend eine Begründung erfasst werden.", - "lastChangesNotSaved": "Die letzte Änderung konnte nicht gespeichert werden.", - "performanceObjectivesTitle": "Leistungsziele", - "showAssessmentDocument": "Bewertungsinstrument anzeigen", - "submissionNotificationDisclaimer": "{{name}} wird deine Ergebnisse bewerten. Du wirst per Benachrichtigung informiert, sobald die Bewertung für dich freigegeben wurde.", - "submissionShowSampleSolution": "Musterlösung anzeigen", - "submissionShowSampleSolutionText": "Hier findest du eine mögliche Lösung zu deinen Aufgaben. Vorgehen und Prozesse in deiner Organisation können von dieser Lösung abweichen.", - "submitAssignment": "Ergebnisse abgeben", - "taskDefinition": "Bearbeite die Teilaufgaben und dokumentiere deine Ergebnisse.", - "taskDefinitionTitle": "Aufgabenstellung", - "von x Punkten": "von {{x}} Punkten", - "x hat die Ergebnisse am y um z Uhr abgegeben": "{{x}} hat die Ergebnisse am {{y}} um {{z}} Uhr abgegeben", - "x von y Arbeiten abgeschlossen": "{{x}} von {{y}} Arbeiten abgeschlossen", - "x von y Kompetenznachweis-Elementen abgeschlossen": "{{x}} von {{y}} Kompetenznachweis-Elementen abgeschlossen" - }, - "circlePage": { - "Dieser Inhalt gehört zu x": "Dieser Inhalt gehört zu «{{x}}»", - "Im KompetenzNavi anschauen": "Im KompetenzNavi anzeigen", - "circleContentBoxTitle": "Das lernst du in diesem Circle", - "contactExpertButton": "Trainer/-in kontaktieren", - "contactExpertDescription": "Tausche dich mit der Trainer/-in 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", - "deleteModalTitle": "Unterlage löschen", - "deleteModalWarning": "Willst du die Unterlage \"{{title}}\" löschen?
Diese Aktion ist nicht umkehrbar.", - "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", - "trainerDescription": "Finde auf Teams zusätzliche Inhalte für deinen Unterricht.", - "trainerLinkSrc": "https://vbvbern.sharepoint.com/sites/myVBV-AFA_K-CI", - "trainerLinkText": "Inhalte auf Teams anschauen", - "trainerTitle": "Begleitung für Trainer", - "uploadErrorMessage": "Beim Hochladen ist ein Fehler aufgetreten. Bitte versuche es erneut.", - "userDescription": "Hier findest du zusätzliche Unterlagen, die dich beim Lernen in diesem Circle unterstützen." - }, - "duration": "Dauer", - "gotQuestions": "Hast du Fragen?", - "learnMore": "Erfahre mehr dazu" - }, - "cockpit": { - "all": "Alle", - "examsDone": "Abgelegte Prüfungen von Teilnehmer.", - "feedbacksDone": "Abgeschickte Feedbacks von Teilnehmer.", - "notifyTask": "Benachrichtigen", - "notifyTaskDescription": "Teilnehmer benachrichtigen", - "profileLink": "Profil anzeigen", - "progress": "Teilnehmende / Status", - "tasksDone": "Erledigte Transferaufträge von Teilnehmer.", - "title": "Cockpit", - "trainerFilesText": "Hier findest du die Trainerunterlagen (Lösungsblätter, Präsentationen etc.) für deinen Circle." - }, - "competence": { - "listPageDescription": "competence.listPageDescription" - }, - "competenceCertificate": { - "mainTitle": "Kompetenznachweis" - }, - "competenceCertificates": { - "mainTitle": "Kompetenznachweise" - }, - "competences": { - "assessAgain": "Selbsteinschätzung im Circle «{{x}}» anschauen", - "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": { - "courses": "Lehrgang", - "dueDatesTitle": "Termine", - "nocourses": "Du wurdest noch keinem Lehrgang zugewiesen.", - "welcome": "Willkommen, {{name}}" - }, - "dueDates": { - "nextDueDates": "Nächste Termine", - "noDueDatesAvailable": "Keine Termine vorhanden", - "showAllDueDates": "Alle Termine anzeigen" - }, - "edoniqTest": { - "qualifiesForExtendedTime": "Ich bestätige, dass ich Anrecht auf einen Test mit Nachteilsausgleich habe.", - "qualifiesForExtendedTimeTitle": "Lernende mit Nachteilsausgleich (bewilligungspflichtig)", - "startTest": "Test starten" - }, - "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 siehst du Verbesserungspotential?", - "coursePositiveFeedbackLabel": "Was hat dir 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": "Wie beurteilst du die Themensicherheit und Fachkompetenz des Kursleiters/der Kursleiterin?", - "instructorOpenFeedbackLabel": "Was möchtest du dem Kursleiter/der Kursleiterin sonst noch sagen?", - "instructorRespectLabel": "Wurden Fragen und Anregungen der Kursteilnehmenden 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", - "preparationTaskClarityLabel": "Waren die Vorbereitungsaufträge klar und verständlich?", - "proficiencyLabel": "Wie beurteilst du deine Sicherheit bezüglichen den Themen nach dem Kurs?", - "questionTitle": "Frage", - "recommendLabel": "Würdest du 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" - }, - "foobar": { - "hello": "Hallo von der Innoweek" - }, - "footer": { - "contact": "Kontakt", - "contactLink": "https://www.vbv.ch/de/der-vbv/organisation/kontakt", - "contactText": "Kontakt", - "copyright": "© 2023 VBV", - "dataProtectionLink": "https://www.vbv.ch/de/datenschutzbestimmungen", - "dataProtectionText": "Datenschutzbestimmungen", - "imprintLink": "https://www.vbv.ch/de/impressum", - "imprintText": "Impressum" - }, - "general": { - "back": "Zurück", - "backCapitalized": "Zurück", - "backToCircle": "zurück zum Circle", - "backToLearningPath": "zurück zum Lernpfad", - "certificate_one": "Zertifikat", - "certificate_other": "Zertifikate", - "circles": "Circles", - "close": "Schliessen", - "examResult_one": "Prüfungsresultat", - "examResult_other": "Prüfungsresultate", - "exam_one": "Prüfung", - "exam_other": "Prüfungen", - "feedback_one": "Feedback", - "feedback_other": "Feedbacks", - "im circle x anschauen": "Im Circle «{{x}}» anzeigen", - "introduction": "Einleitung", - "learningPath": "Lernpfad", - "learningSequence": "Lernsequenz", - "learningUnit": "Lerneinheit", - "next": "Weiter", - "nextStep": "Weiter geht's", - "no": "Nein", - "notification_one": "Benachrichtigung", - "notification_other": "Benachrichtigungen", - "profileLink": "Details anzeigen", - "save": "Speichern", - "send": "Senden", - "settings": "Kontoeinstellungen", - "shop": "Shop", - "show": "Anschauen", - "showAll": "Alle anschauen", - "start": "Los geht's", - "submission": "Abgabe", - "title": "myVBV", - "transferTask_one": "Transferauftrag", - "transferTask_other": "Transferaufträge", - "yes": "Ja" - }, - "language": { - "de": "Deutsch", - "fr": "Français", - "it": "Italiano" - }, - "learningContent": { - "markAsDone": "Als erledigt markieren" - }, - "learningContentTypes": { - "attendanceCourse": "Präsenzkurs", - "casework": "Geleitete Fallarbeit", - "documents": "Dokumente", - "edoniqTest": "Wissens- und Verständnisfragen", - "feedback": "Feedback", - "learningModule": "Lernmodul", - "placeholder": "In Umsetzung", - "prepAssignment": "Vorbereitungsauftrag", - "reflection": "Reflexion", - "task": "Aufgabe", - "test": "Test", - "text": "Text", - "video": "Video" - }, - "learningPathPage": { - "currentCircle": "Aktueller Circle", - "listView": "Listenansicht", - "nextDueDates": "Nächste Termine", - "nextStep": "Nächster Schritt", - "pathView": "Pfadansicht", - "progressText": "Du hast {{ inProgressCount }} von {{ allCount }} Circles bearbeitet", - "showListView": "Listenansicht anzeigen", - "topics": "Themen:", - "welcomeBack": "Willkommen zurück in deinem Lehrgang:" - }, - "login": { - "demoLogin": "Demo Login", - "guidelineFile": "Registrierung_myVBV.pdf", - "guidelineText": "Erfahre wie du dich als Lernende/r registrieren kannst", - "login": "Login", - "ssoLogin": "SSO Login/Registration", - "ssoText": "Klicke auf den Button, um dich über SSO anzumelden oder zu registrieren.", - "welcomeText": "Herzlich willkommen auf der Login-Seite für die überbetrieblichen Kurse der kaufmännischen\nAusbildungs- und Prüfungsbranche «Privatversicherung».", - "welcomeUk": "Willkommen" - }, - "mainNavigation": { - "logout": "Abmelden", - "profile": "Profil" - }, - "mediaLibrary": { - "handlungsfelder": { - "description": "Finde alle Ressourcen der Handlungsfelder wie Lernmedien, Links und andere nützliche Informationen.", - "title_one": "Handlungsfeld", - "title_other": "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": "Mehr laden", - "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": "$t(a.Selbsteinschätzung): Muss ich nochmals anschauen.", - "selfEvaluationYes": "$t(a.Selbsteinschätzung): Ich kann das.", - "steps": "Schritt {{current}} von {{max}}", - "title": "Selbsteinschätzung {{title}}", - "yes": "Ja, ich kann das" - }, - "settings": { - "emailNotifications": "Email Benachrichtigungen" - }, - "uk": { - "contact": { - "address": "Laupenstrasse 10, 3008 Bern", - "team": "Team Nachwuchsentwicklung", - "title": "Berufsbildungsverband der Versicherungswirtschaft VBV" - }, - "dashboard": { - "allClear": "Alles klar?", - "nextSteps": "Als lernende Person wirst in den kommenden Tagen einem üK-Lehrgang zugewiesen. Dann\nerscheint hier Deine personalisierte Lehrgangs-Box mit den weiteren Informationen.", - "welcome": "Es hat alles geklappt, du bist nun auf der digitalen Lernumgebung des Berufsbildungsverbands derVersicherungswirtschaft (VBV) registriert!" - } - }, + "TrainingResponsible": "Ausbildungsverantwortlicher", + "uk.contact.address": "Laupenstrasse 10, 3008 Bern", + "uk.contact.team": "Team Nachwuchsentwicklung", + "uk.contact.title": "Berufsbildungsverband der Versicherungswirtschaft VBV", + "uk.dashboard.allClear": "Alles klar?", + "uk.dashboard.nextSteps": "Als lernende Person wirst in den kommenden Tagen einem üK-Lehrgang zugewiesen. Dann\nerscheint hier Deine personalisierte Lehrgangs-Box mit den weiteren Informationen.", + "uk.dashboard.welcome": "Es hat alles geklappt, du bist nun auf der digitalen Lernumgebung des Berufsbildungsverbands derVersicherungswirtschaft (VBV) registriert!", + "UnknownRoleKey": "UnknownRoleKey", "unzufrieden": "unzufrieden", + "Vorbedingung": "Vorbedingung", + "Vorbereitungsaufgabe": "Vorbereitungsauftrag", + "vv.contact.team": "Team Vermittler", + "Weiter lernen": "Weiter lernen", + "Wichtig: wird die Rechnung von deinem Arbeitgeber bezahlt, dann kannst du zusätzlich die Rechnungsadresse deines Arbeitsgebers erfassen.": "Wichtig: wird die Rechnung von deinem Arbeitgeber bezahlt, dann kannst du zusätzlich die Rechnungsadresse deines Arbeitsgebers erfassen.", + "Wir bedauern die Unannehmlichkeiten und danken für dein Verständnis. Bei Fragen steht dir das Team Vermittler gerne zur Verfügung.": "Wir bedauern die Unannehmlichkeiten und danken für dein Verständnis. Bei Fragen steht dir das Team Vermittler gerne zur Verfügung.", + "Wissens - und Verständnisfragen": "Wissens - und Verständnisfragen", + "Wähle ein Zulassungsprofil, damit du deinen Lehrgang an der richtigen Stelle beginnen kannst": "Wähle ein Zulassungsprofil, damit du deinen Lehrgang an der richtigen Stelle beginnen kannst", + "Wähle ein Zulassungsprofil, damit du deinen Lehrgang an der richtigen Stelle beginnen kannst.": "Wähle ein Zulassungsprofil, damit du deinen Lehrgang an der richtigen Stelle beginnen kannst.", + "x von y abgeschlossen": "{{x}} von {{y}} abgeschlossen", "x von y Bewertungen freigegeben": "{{x}} von {{y}} Bewertungen freigegeben", "x von y Ergebnisse abgegeben": "{{x}} von {{y}} Ergebnisse abgegeben", "x von y Feedbacks abgegeben": "{{x}} von {{y}} Feedbacks abgegeben", - "x von y abgeschlossen": "{{x}} von {{y}} abgeschlossen", - "zufrieden": "zufrieden" + "Zu erledigen": "Zu erledigen", + "zufrieden": "zufrieden", + "Zulassungsprofil": "Zulassungsprofil", + "Zur Zeit sind keine Termine vorhanden": "Zur Zeit sind keine Termine vorhanden", + "Überbetriebliche Kurse": "Überbetriebliche Kurse" } diff --git a/client/src/locales/fr/translation.json b/client/src/locales/fr/translation.json index 1c60634f..40bf3146 100644 --- a/client/src/locales/fr/translation.json +++ b/client/src/locales/fr/translation.json @@ -1,364 +1,670 @@ { + "20%": "", + "40%": "", + "60%": "", + "80%": "", + "100%": "", + "a.": "", + "a.a.AlleCircle": "", + "a.Abbrechen": "Annuler", + "a.Abgabetermin": "Date de remise", + "a.Abgezogene Punkte": "Points déduits", + "a.Adresse": "Adresse", + "a.Aktuell begleitest du niemanden als Lernbegleitung.": "Actuellement, vous n'accompagnez personne en tant que mentor d'apprentissage.", + "a.Aktuell begleitest du niemanden als Praxisbildner.": "Actuellement, vous n'accompagnez personne en tant que formateur/-trice pratique.", + "a.Aktuell bist du leider keiner Durchführung zugewiesen.": "Actuellement, vous n'êtes malheureusement affecté à aucune session.", + "a.Aktuell hast du noch keine Person als Lernbegleitung eingeladen.": "Actuellement, tu n'as invité aucune personne comme tuteur.", + "a.Aktuell hast du noch keine Person als Lernbegleitung eingeladen. Lade jetzt jemanden ein.": "Actuellement, tu n'as invité aucune personne comme tuteur. Invite quelqu'un maintenant.", + "a.Aktuell hast du noch keine Person als Praxisbildner eingeladen.": "Actuellement, tu n'as pas encore invité de personne comme formateur/-trice pratique.", + "a.Aktuell hast du noch keine Person als Praxisbildner eingeladen. Lade jetzt jemanden ein.": "", + "a.Aktueller Lehrgang": "Cours en cours", + "a.Allbranche": "Allbranche", + "a.Alle": "Tout", + "a.Alle aufklappen": "Tout déplier", + "a.Alle Lehrgang": "", + "a.Alle Lehrgänge": "", + "a.Alle Lehrgänge anzeigen": "Afficher tous les cours", + "a.Alle Personen anzeigen": "Afficher toutes les personnes", + "a.Alle Termine anzeigen": "Afficher tous les dates", + "a.Alle zuklappen": "Ferme tout", + "a.AlleCircle": "Circle: Tous", + "a.AlleDurchführungen": "Opérations: Tous", + "a.AlleGenerationen": "Générations : Toutes", + "a.AlleKreise": "", + "a.AlleRegionen": "", + "a.AlleTermine": "Rendez-vous", + "a.AlleTypen": "Tous les types", + "a.Allgemeine Zufriedenheit": "Satisfaction générale", + "a.Als Excel exportieren": "Exporter en Excel", + "a.An Durchführung teilnehmen": "Participer à la session", + "a.Anmelden": "Connexion", + "a.Anwesenheit": "Présence", + "a.Arbeiten": "Travaux", + "a.assignment.evaluationFeedbackDescriptionText": "Valide ton feedback pour qu'il puisse être partagé aux participants.", + "a.assignment.evaluationInstrumentDescriptionTextFeedback": "Veuillez soutenir {{name}} et donner votre avis sur la mission.", + "a.Aufgabe": "Tâche", + "a.Aufgaben": "Tâches", + "a.Auswählen": "Choisir", + "a.Bearbeiten": "Modifier", + "a.Begründung": "Justification", + "a.Bestanden": "Réussi", + "a.Beurteilungsinstrument anzeigen": "Afficher l'outil d'évaluation", + "a.Beurteilungskriterium": "Critère d'évaluation", + "a.Bewertung": "Évaluation", + "a.Bewertung abschliessen": "Évaluation complète", + "a.Bewertung ansehen": "Voir l'avis", + "a.Bewertung bearbeiten": "", + "a.Bewertung bearbeitet": "", + "a.Bewertung erneut bearbeitet": "", + "a.Bewertung fortsetzen": "Continuer l'évaluation", + "a.Bewertung Freigabe": "Libération de l'évaluation", + "a.Bewertung freigeben": "Libérer l'évaluation", + "a.Bewertung freigegeben": "Évaluations validée/s", + "a.Bewertung starten": "Continuer l'évaluation", + "a.Bewertung von x y": "Évaluation de {{x}} {{y}}", + "a.Bild hochladen": "Télécharger une image", + "a.Bitte folgende Felder ausfüllen": "Veuillez remplir les champs suivants", + "a.Bitte überprüfe deine Eingaben. Es sind Fehler in deinem Formular aufgetreten.": "Veuillez vérifier vos saisies. Des erreurs sont survenues dans votre formulaire.", + "a.Circle": "Circle", + "a.Cockpit anschauen": "Voir le cockpit", + "a.competenceCertificateNoUserPoints": "Le score sera calculé à un moment ultérieur.", + "a.confirmSubmitPersonPraxisAssignment": "La personne suivante doit formuler un feedback sur mes résultats.", + "a.Damit du mit diesem Lehrgang starten kannst, musst du einer Durchführung zugewiesen werden. Nimm dafür deinem üK-Verantwortlichen oder unserem {support} Kontakt auf.": "Pour commencer ce cours, vous devez être assigné à une session. Pour cela, veuillez contacter votre responsable CI ou notre {support}.", + "a.Damit du myVBV nutzen kannst, brauchst du ein Konto.": "Pour utiliser myVBV, vous devez créer un compte.", + "a.Das muss ich nochmals anschauen": "Il faut que je regarde cela encore une fois de plus près", + "a.Das wurde mit dir geteilt": "Cela a été partagé avec toi", + "a.Datei auswählen": "Sélectionner le fichier", + "a.Datei hochladen": "Télécharger le fichier", + "a.Datei kann nicht gespeichert werden.": "Impossible d'enregistrer le fichier.", + "a.Datum": "Date", + "a.Debit-/Kreditkarte/Twint": "Carte de débit/crédit / Twint", + "a.Dein Feedback für x y wurde freigegeben.": "Ton feedback pour {{x}} {{y}} a été validé.", + "a.Deine Bewertung für x y wurde freigegeben.": "Ton évaluation de {{x}} {{y}} a été validée.", + "a.Deine Fremdeinschätzung": "Ton évaluation externe", + "a.Deine Selbsteinschätzung": "Ton auto-évaluation", + "a.Deine Änderungen wurden gespeichert": "Tes modifications ont été enregistrées", + "a.Der Lehrgang und die Prüfung zum Erwerb des Verbandszertifikats als Versicherungsvermittler/-in.": "Le cours et l'examen pour obtenir le certificat d'association comme courtier/agent d'assurance.", + "a.Der Preis für den Lehrgang {course} beträgt {price}.": "Le prix de la formation {course} est de {price} hors TVA.", + "a.Details anschauen": "Voir les détails", + "a.Details anzeigen": "Afficher les détails", + "a.Deutsch": "Allemand", + "a.Die Anwesenheit wurde definitiv bestätigt": "La présence a été confirmée définitivement", + "a.Die Einladung konnte nicht akzeptiert werden. Bitte melde dich beim Support.": "L'invitation n'a pas pu être acceptée. Veuillez contacter le support.", + "a.Die Einladung wurde noch nicht angenommen.": "L'invitation n'a pas encore été acceptée.", + "a.Die Zahlung für den Lehrgang «{course}» wurde erfolgreich ausgeführt.": "Le paiement pour le cours «{course}» a été effectué avec succès.", + "a.Die überbetrieblichen Kurse der kaufmännischen Ausbildungs- und Prüfungsbranche 'Privatversicherung'.": "Les cours interentreprises du secteur de la formation et des examens commerciaux 'Assurance privée'.", + "a.Du hast alles erledigt.": "Tu as tout fini.", + "a.Du hast deine Fremdeinschätzung freigegeben": "Tu as autorisé ton évaluation externe.", + "a.Du hast deine Selbsteinschätzung erfolgreich mit FULL_NAME geteilt.": "Tu as partagé avec succès ton auto-évaluation avec {{FULL_NAME}}.", + "a.Du hast die Einladung von {name} erfolgreich akzeptiert.": "Tu as accepté avec succès l'invitation de {name}.", + "a.Du hast erfolgreich ein Konto für EMAIL erstellt.": "Vous avez créé un compte avec succès pour {{email}}.", + "a.Du kannst deine Selbsteinschätzung mit deiner Lernbegleitung teilen, damit sie eine Fremdeinschätzung vornimmt.": "Tu peux partager ton auto-évaluation avec ton accompagnateur d'apprentissage afin qu'il puisse effectuer une évaluation externe.", + "a.Durchfuehrung": "Opérations", + "a.Durchführung": "Formations / cours suivis", + "a.Durchführungen": "Opérations", + "a.Durchschnittsnote": "Note moyenne", + "a.E-Mail Adresse": "Adresse e-mail", + "a.Einladung": "Invitation", + "a.Einladung abschicken": "Envoyer l'invitation", + "a.Email": "", + "a.Entfernen": "Supprimer", + "a.Erfahrungsnote üK": "Note d’expérience CI", + "a.Ergebnis bewerten": "Évaluer le résultat", + "a.Ergebnisse": "Résultats", + "a.Ergebnisse abgegeben": "Résultats remis", + "a.Ergebnisse anschauen": "Voir les résultats", + "a.Ergebnisse bewerten": "Évaluer les résultats", + "a.Ergebnisse teilen": "Partager les résultats", + "a.Erneut bearbeiten": "Modifier à nouveau", + "a.Experte": "", + "a.Feedback abschliessen": "Terminer le feedback", + "a.Feedback ansehen": "Voir le feedback", + "a.Feedback erneut bearbeitet": "", + "a.Feedback fortsetzen": "Poursuivre le feedback", + "a.Feedback Freigabe": "Validation du feedback", + "a.Feedback freigeben": "Valider le feedback", + "a.Feedback freigegeben": "Feedback validé", + "a.Feedback geben": "Donner un feedback", + "a.Feedback Teilnehmer": "Feedback des participants", + "a.Feedback von x y": "Feedback de {{x}} {{y}}", + "a.feedback.introductionVV": "Nous te demandons ton feedback. Cela nous aide à améliorer ton expérience d'apprentissage.", + "a.Fehler bei der Zahlung. Bitte versuche es erneut oder kontaktiere uns": "Erreur lors du paiement. Veuillez réessayer ou choisir un autre mode de paiement.", + "a.Fehler bei der Zahlung. Bitte versuche es erneut oder wähle eine andere Zahlungsmethode.": "Erreur lors du paiement. Veuillez réessayer ou choisir un autre mode de paiement.", + "a.Fehlermeldung": "Message d'erreur", + "a.Firmenanschrift": "Adresse de l'entreprise", + "a.Firmenname": "Nom de l'entreprise", + "a.Franzosisch": "Français", + "a.Fremdeinschätzung anzeigen": "Valutazione esterna", + "a.Fremdeinschätzung freigeben": "Autoriser l'évaluation externe", + "a.Fremdeinschätzung von FEEDBACK_PROVIDER_NAME": "Évaluation externe de {{FEEDBACK_PROVIDER_NAME}}", + "a.Fremdeinschätzung vornehmen": "Effectuer une évaluation externe", + "a.Fremdeinschätzungen": "Évaluations externes", + "a.FULL_NAME wird eine Fremdeinschätzung für dich vornehmen. Du wirst per Benachrichtigung informiert, sobald die Fremdeinschätzung für dich freigegeben wurde.": "{{FULL_NAME}} effectuera une évaluation externe pour toi. Tu seras informé(e) par notification dès que l'évaluation externe aura été rendue disponible pour toi.", + "a.Geburtsdatum": "Date de naissance", + "a.Geleitete Fallarbeit": "Étude de cas dirigée", + "a.Generation": "Génération", + "a.Gesamtpunktzahl": "Score total", + "a.Geschäftsdaten": "Données commerciales", + "a.Gesellschaft": "Compagnie d'assurance", + "a.Gleich wie die Firmenanschrift": "Identique à l'adresse de l'entreprise", + "a.Gleich wie die Privatadresse": "Identique à l'adresse privée", + "a.Gratuliere!": "Félicitations !", + "a.Grund": "Raison", + "a.Hallo {userFirstName}, wähle jetzt deinen Lehrgang aus": "Bonjour {userFirstName}, choisis maintenant ton cours:", + "a.Handlungskompetenzen": "Compétences opérationnelles", + "a.Hast du Fragen? Kontaktiere uns": "As-tu des questions ? Contacte-nous", + "a.Hast du Fragen? Schau dir unsere FAQ an oder kontaktiere uns": "Vous avez des questions ? Consultez notre {faq} ou contactez-nous", + "a.Hast du schon ein Konto?": "Avez-vous déjà un compte?", + "a.Hausnummmer": "Numéro de maison", + "a.Hier kannst du ausschliesslich mit einer Kreditkarte bezahlen.": "", + "a.Hier kannst du Personen einladen, damit sie deine Lernbegleitung werden. Zudem siehst du jederzeit eine Übersicht aller Personen, die du bereits als Lernbegleitung hinzugefügt hast.": "Ici, tu peux inviter des personnes pour devenir ton tuteur. De plus, tu peux toujours voir un aperçu de toutes les personnes que tu as déjà ajoutées comme tuteurs.", + "a.Höchstpunktzahl": "Score maximum", + "a.Ich kann das": "Je maîtrise cette question", + "a.Italienisch": "Italien", + "a.Ja, NAME kann das.": "Oui, {{NAME}} peut le faire", + "a.Jetzt mit Lehrgang starten": "Commencez maintenant le cours", + "a.Kann FULLNAME das?": "Peut {{FULLNAME}} faire cela?", + "a.Kein Circle verfügbar oder ausgewählt.": "Aucun Circle disponible ou sélectionné.", + "a.Keine Angabe": "Aucune indication", + "a.Kommentar": "", + "a.Kommentar erfassen": "", + "a.Kompetenznachweis": "Contrôle de compétences", + "a.Kompetenznachweis-Elemente": "Éléments de contrôle", + "a.Kompetenznachweise": "Contrôles de compétences", + "a.KompetenzNavi": "NaviCompétence", + "a.Konto erstellen": "Créer un compte", + "a.Kosten": "Coûts", + "a.Kosten aller Jahre ansehen": "Voir les coûts de toutes les années", + "a.Kosten in 2024": "", + "a.Krankenzusatzversicherung": "Assurance maladie complémentaire", + "a.Krankenzusatzversicherungen": "Assurances maladie complémentaires", + "a.Lade ein Profilbild hoch, damit dich andere Personen auf den ersten Blick erkennen.": "Téléchargez une photo de profil pour que les autres puissent vous reconnaître au premier coup d'œil.", + "a.Laden...": "Chargement...", + "a.Land": "Pays", + "a.Leben": "Vie", + "a.Lehrgang": "Formation", + "a.Lehrgang kaufen": "Acheter le cours", + "a.Leistungsziel": "Objectif de valutazione", + "a.Leistungsziele": "Objectif évaluateur", + "a.Lernbegleiter": "", + "a.Lernbegleitung": "Tuteur", + "a.Lernbegleitung auswählen": "Tutorat sélectionner", + "a.Lernbegleitung einladen": "Inviter un tuteur", + "a.Liste anzeigen": "Afficher la liste", + "a.Mach nun weiter mit dem nächsten Schritt.": "Passez à l'étape suivante.", + "a.Maximale Dateigrösse": "Taille maximale du fichier", + "a.Mediathek": "Médiathèque", + "a.Mehr erfahren": "En savoir plus", + "a.Meine Lernbegleitung": "Mon accompagnement d'apprentissage", + "a.mit Abzug": "y compris la déduction", + "a.Mit dem Kauf erhältst du Zugang auf den gesamten Kurs (inkl. Prüfung).": "L'achat te donne accès au parcours d'apprentissage et aux médias d'apprentissage.", + "a.Mit Kreditkarte bezahlen": "Payer avec une carte de débit/crédit/Twint", + "a.Mit Rechnung bezahlen": "Payer par facture", + "a.Mögliche Formate": "Formats possibles", + "a.Nachname": "Nom de famille", + "a.Name": "Nom", + "a.Nein, NAME muss das nochmals anschauen.": "Non, {{NAME}} doit revoir cela", + "a.Neue Lernbegleitung einladen": "Inviter un nouveau tuteur", + "a.Nicht Bestanden": "Échoué", + "a.Nicht bewertet": "Non évalué", + "a.Nichtleben": "Non-vie", + "a.Note": "Note", + "a.NUMBER Elemente abgeschlossen": "{NUMBER} éléments terminés", + "a.NUMBER Präsenztage abgeschlossen": "{NUMBER} jours de présence complétés", + "a.NUMBER Teilnehmer anwesend": "{NUMBER} participants présents", + "a.Nächste Termine": "", + "a.OldCircle": "", + "a.Optionale Anwesenheit": "Présence facultative", + "a.Ort": "Ville", + "a.Personen": "Personnes", + "a.Personen, die du begleitest": "Personnes que tu accompagnes", + "a.Persönliche Informationen": "Informations personnelles", + "a.PLZ": "Code postal", + "a.Praxisauftrag": "Exercice pratique", + "a.Praxisaufträge anschauen": "Voir les missions pratiques", + "a.Praxisbildner": "Formateur pratique", + "a.present von total Teilnehmenden anwesend": "{{present}} sur {{total}} participants présents", + "a.Privatadresse": "Adresse privée", + "a.Profil anzeigen": "Afficher le profil", + "a.Profil bearbeiten": "Modifier le profil", + "a.Profil ergänzen": "Compléter le profil", + "a.Profilbild": "Photo de profil", + "a.Präsenztag": "Jour de présence", + "a.Punkte": "points", + "a.Punkte aus Bewertung": "Points de l'évaluation", + "a.PunkteVonDaniel": "", + "a.PunkteVonDaniel123": "", + "a.Rechnung": "Facture", + "a.RechnungPaymentMethodDescription": "", + "a.Rechnungsadresse": "Adresse de facturation", + "a.Rechnungsadresse hinzufügen": "Ajouter une adresse de facturation", + "a.Rechnungsadresse von {organisation}": "Adresse de facturation de {{organisation}}", + "a.Rechnungsadresse von {organisation} hinzufügen": "Ajouter l'adresse de facturation de {{organisation}}", + "a.Regionenleiter": "", + "a.Resultat": "Résultat", + "a.Schliessen": "", + "a.Selbst- und Fremdeinschätzungen": "Auto-évaluations et évaluations externes", + "a.Selbsteinschätzung": "Auto-évaluation", + "a.Selbsteinschätzung anschauen": "Voir l'auto-évaluation", + "a.Selbsteinschätzung anzeigen": "Afficher l'auto-évaluation", + "a.Selbsteinschätzung geteilt": "Auto-évaluation partagée", + "a.Selbsteinschätzung mit MENTOR_NAME teilen": "Partager l'auto-évaluation avec {{MENTOR_NAME}}", + "a.Selbsteinschätzung teilen": "Partager l'auto-évaluation", + "a.Selbsteinschätzung von FEEDBACK_REQUESTER_NAME": "Auto-évaluation de {{FEEDBACK_REQUESTER_NAME}}", + "a.Selbsteinschätzungen": "Auto-évaluations", + "a.Selbsteinschätzungen geteilt": "Auto-évaluations partagées", + "a.So startest du mit diesem Lehrgang": "C'est ainsi que tu commences ce parcours d'apprentissage", + "a.Standort": "Emplacement", + "a.Statistik": "", + "a.Statistik für alle Lernenden": "", + "a.Stelle deinen Lernenden zusätzliche Inhalte zur Verfügung.": "Proposez à vos participants du contenu supplémentaire", + "a.Strasse": "Rue", + "a.Super, nun ist alles bereit. Du bist der Durchführung «{course}» zugewiesen und kannst mit dem Lehrgang starten.": "Super, tout est prêt maintenant. Vous êtes assigné à la session «{{course}}» et pouvez commencer le cours.", + "a.Teilnehmer": "Participants", + "a.Teilnehmer im 2024": "", + "a.Telefonnummer": "Numéro de téléphone", + "a.Telefonnummer hat das falsche Format": "", + "a.Termin": "Date", + "a.Termine": "Dates", + "a.Total {NUMBER} Antworten": "Total {NUMBER} réponses", + "a.Trainer": "Formateur / Formatrice", + "a.Um die Zahlung vornehmen zu können, benötigen wir deine Privatadresse. Optional kannst du die Rechnungsadresse deiner Gesellschaft hinzufügen.": "Pour pouvoir effectuer le paiement, nous avons besoin de ton adresse privée. Après le paiement, tu recevras alors une confirmation de comptabilisation par e-mail.", + "a.Ungerundete Note": "Note (non arrondie)", + "a.Unterlagen": "Documents", + "a.Unterlagen für Teilnehmenden": "Documents pour les participants", + "a.Unternehmen": "Entreprise", + "a.VALUE von MAXIMUM": "{{VALUE}} sur {{MAXIMUM}}", + "a.Versicherungsvermittler/-in": "Intermédiaire d’assurance AFA", + "a.Vorname": "Prénom", + "a.Vorschau Teilnehmer": "Vue des participants", + "a.VorschauTeilnehmer": "Vue des participants", + "a.Wegleitung üK": "Directives CI", + "a.wegleitungUkUrl": "https://www.vbv.ch/fileadmin/vbv/Dokumente/Bildungsabschluesse/KV/Wegleitung_ueK_240215_fr_V2.pdf", + "a.Weiter zur Zahlung": "", + "a.Wir haben per E-Mail eine Bestätigung an {email} geschickt.": "Nous avons envoyé une confirmation par e-mail à {email}.", + "a.Wähle ein Zulassungsprofil, damit du deinen Lehrgang an der richtigen Stelle beginnen kannst.": "Choisis un profil d'admission pour que tu puisses commencer ta formation au bon endroit.", + "a.Wähle ein Zulassungsprofil, damit du deinen Lehrgang an der richtigen Stelle beginnen kannst. Du kannst ihn später jederzeit ändern.": "Sélectionne un profil d'admission pour que tu puisses commencer ta formation au bon endroit. Tu peux le modifier à tout moment par la suite.", + "a.Wähle hier den Namen der Gesellschaft aus, in der du arbeitest. So können dich andere Personen einfacher finden.": "Sélectionnez ici le nom de la société dans laquelle vous travaillez. Cela permettra aux autres de vous trouver plus facilement.", + "a.xOfY Punkten erreicht": "{xOfY} points atteints", + "a.Zahlungsart": "Mode de paiement", + "a.Zu erledigen": "À faire", + "a.Zulassungsprofil": "Profil d'admission", + "a.Zulassungsprofil auswählen": "Choisir le profil d'admission", + "a.Zum Unterlagen-Upload": "Télécharger des documents", + "a.Zurück": "", + "a.Zwischenstand": "Point intermédiaire", + "a.{AVG} von {MAX}": "{AVG} de {MAX}", + "a.{NUMBER} Bestanden": "{NUMBER} réussi", + "a.{NUMBER} Das kann ich": " {NUMBER} je peux faire ça", + "a.{NUMBER} Das will ich nochmals anschauen": "{NUMBER} je veux revoir ça", + "a.Überbetriebliche Kurse": "Cours interentreprises", + "a.Überprüfe deine Eingaben unten und gib anschliessend deine Fremdeinschätzung für FEEDBACK_REQUESTER frei": "Vérifie tes saisies ci-dessous et libère ensuite ton évaluation externe pour {{FEEDBACK_REQUESTER}}.", + "a.Übersicht": "Aperçu", + "a.Übersicht anschauen": "Consulter l'aperçu", + "Abgabe": "Remise", + "Abgabetermin Ergebnisse:": "Date de la remise des résultats :", "Alle": "Tout", - "Anwesenheit Präsenzkurse": "Présence aux cours", + "Anwesenheit": "Présence", "Anwesenheit bestätigen": "Confirmer la présence", + "Anwesenheit Präsenzkurse": "Présence aux cours", "Anwesenheit prüfen": "Vérifier la présence", "Anwesenheitskontrolle Präsenzkurse": "Contrôle de présence aux cours", + "assignment.acceptConditionsDisclaimer": "Accepter les conditions et remettre les résultats", + "assignment.assessmentDocumentDisclaimer": "Cette étude de cas dirigée est évaluée par l’outil suivant :", + "assignment.assessmentTitle": "Évaluation", + "assignment.assignmentSubmitted": "Tes résultats ont bien été transmis.", + "assignment.confirmSubmitPerson": "Oui, la personne suivante devrait évaluer mes résultats.", + "assignment.confirmSubmitResults": "Oui, je soumettrai mes résultats.", + "assignment.Du musst die Bewertung bis am x um y Uhr abschliessen und freigeben": "Vous devez terminer et valider l'évaluation avant le {{x}} à {{y}} heures.", + "assignment.dueDateEvaluation": "Date de libération de l'évaluation", + "assignment.dueDateIntroduction": "Envoie tes résultats dans les délais avant le:", + "assignment.dueDateNotSet": "Aucune date de remise n’a été spécifiée pour cette opération.", + "assignment.dueDateSubmission": "Date de remise", + "assignment.dueDateTitle": "assignment.dueDateTitle", + "assignment.edit": "Traiter", + "assignment.effortTitle": "Temps nécessaire", + "assignment.evaluationFeedback": "Feedback", + "assignment.evaluationInstrumentDescriptionText": "Le score total et la note en résultant sont calculés sur la base de l'outil d'évaluation enregistré.", + "assignment.evaluationReason": "Raison", + "assignment.feedbackRequiredText": "Saisis ici tes commentaires.", + "assignment.initialSituationTitle": "Situation initiale", + "assignment.justificationRequiredText": "Ici, une justification doit impérativement être saisie.", + "assignment.lastChangesNotSaved": "La dernière modification n’a pas pu être enregistrée.", + "assignment.performanceObjectivesTitle": "Objectifs", + "assignment.showAssessmentDocument": "Afficher l’outil d’évaluation", + "assignment.submissionNotificationDisclaimer": "{{name}} va procéder à l’évaluation de tes résultats. Tu recevras une notification dès que l’évaluation aura été validée et que tu pourras la consulter.", + "assignment.submissionShowSampleSolution": "Afficher la solution-type", + "assignment.submissionShowSampleSolutionText": "Tu trouveras ici une solution possible pour tes tâches. La procédure et les processus de ton organisation peuvent différer de cette solution.", + "assignment.submitAssignment": "Remettre les résultats", + "assignment.taskDefinition": "Résous les exercices et documente tes résultats.", + "assignment.taskDefinitionTitle": "Énoncé du problème", + "assignment.von x Punkten": "sur {{x}} points", + "assignment.x hat die Ergebnisse am y um z Uhr abgegeben": "{{x}} a soumis les résultats le {{y}} à {{z}} heures", + "assignment.x von y Arbeiten abgeschlossen": "{{x}} sur {{y}} épreuves terminées", + "assignment.x von y Kompetenznachweis-Elementen abgeschlossen": "{{x}} sur {{y}} éléments de contrôle de compétences terminés", + "Aufgrund von Problemen beim Zahlungsanbieter ist ein Erwerb der myVBV-Lizenz derzeit nur mit TWINT möglich. Wir arbeiten mit Hochdruck an der Lösung des Problems. ": "En raison de problèmes avec le fournisseur de paiement, l'acquisition de la licence myAVA n'est actuellement possible qu'avec TWINT. Nous travaillons d'arrache-pied pour résoudre le problème. ", + "Ausbildungsverantwortlicher": "", "Benutzername": "Nom d’utilisateur", + "Berufsbildner": "", + "Bestanden": "", + "Bewertung von x y": "Évaluation de {{x}} {{y}}", + "Circle": "", + "circlePage.circleContentBoxTitle": "Ce que tu vas apprendre dans ce Circle", + "circlePage.contactExpertButton": "Contacter le formateur / la formatrice", + "circlePage.contactExpertDescription": "Échanger avec le formateur / la formatrice si tu as des questions sur le Circle {{circleName}}.", + "circlePage.contactLearningMentorButton": "Contacter le tuteur / la tutrice", + "circlePage.contactLearningMentorDescription": "Échange avec ton tuteur / ta tutrice.", + "circlePage.Dieser Inhalt gehört zu x": "Ce contenu appartient à «{{x}}»", + "circlePage.documents.action": "Télécharger les documents", + "circlePage.documents.chooseLearningSequence": "Sélectionne une séquence", + "circlePage.documents.chooseName": "Sélectionne un nom", + "circlePage.documents.chooseSequence": "Sélectionne une séquence", + "circlePage.documents.deleteModalTitle": "Supprimer les documents", + "circlePage.documents.deleteModalWarning": "Veux-tu \"{{title}}\" supprimer les documents ?
Cette action est irréversible.", + "circlePage.documents.expertDescription": "Mets des contenus supplémentaires à la disposition de tes apprenants.", + "circlePage.documents.fileLabel": "Fichier", + "circlePage.documents.maxFileSize": "Taille maximale du fichier : 50 Mo", + "circlePage.documents.modalAction": "Sélectionner le fichier", + "circlePage.documents.modalFileName": "Nom", + "circlePage.documents.modalNameInformation": "Max. 70 signes", + "circlePage.documents.selectFile": "Sélectionne un fichier", + "circlePage.documents.title": "Documents", + "circlePage.documents.trainerDescription": "Sur Teams, tu trouveras des contenus supplémentaires pour ton cours.", + "circlePage.documents.trainerLinkSrc": "https://vbvbern.sharepoint.com/sites/myVBV-AFA_K-CI", + "circlePage.documents.trainerLinkText": "Regarder les contenus sur Teams", + "circlePage.documents.trainerTitle": "Accompagnement pour le formateur / la formatrice", + "circlePage.documents.uploadErrorMessage": "Une erreur est survenue lors du téléchargement. Essaie à nouveau.", + "circlePage.documents.userDescription": "Tu trouves ici des documents complémentaires qui peuvent d’être utiles pour ce Circle.", + "circlePage.duration": "Durée", + "circlePage.gotQuestions": "As-tu des questions?", + "circlePage.Im KompetenzNavi anschauen": "Afficher dans la « NaviCompétence »", + "circlePage.learnMore": "Pour en savoir plus", + "Cockpit anschauen": "Montrer le Cockpit", + "cockpit.all": "Tous", + "cockpit.examsDone": "Examens remis par les participants.", + "cockpit.feedbacksDone": "Retours envoyés par les participants.", + "cockpit.notifyTask": "Notifier", + "cockpit.notifyTaskDescription": "Notifier les participants", + "cockpit.profileLink": "Afficher le profil", + "cockpit.progress": "Personne participante / Statut", + "cockpit.tasksDone": "Exercices d’application terminés par les participants.", + "cockpit.title": "Cockpit", + "cockpit.trainerFilesText": "Tu trouves ici les documents de formation (feuilles de solution, présentations, etc.) pour ton Circle.", + "competence.listPageDescription": "Tu trouveras ici un aperçu de toutes les compétences opérationnelles et des objectifs évaluateurs qui correspondent à ta formation.", + "competenceCertificate.mainTitle": "Contrôle de compétences", + "competenceCertificates.mainTitle": "Contrôles de compétences", + "competences.assessAgain": "Voir l'auto-évaluation dans le Circle «{{x}}»", + "competences.assessment": "Évaluations", + "competences.competences": "Compétences", + "competences.lastImprovements": "Dernières compétences améliorées", + "competences.notAssessed": "Compétence non évaluée", + "competences.title": "NaviCompétence", + "constants.no": "Non", + "constants.satisfied": "Satisfait(e)", + "constants.unsatisfied": "Insatisfait(e)", + "constants.verySatisfied": "Très satisfait(e)", + "constants.veryUnsatisfied": "Très insatisfait(e)", + "constants.yes": "Oui", + "dashboard.courses": "Formation", + "dashboard.nocourses": "Tu n’as été affecté(e) à aucune formation encore.", + "dashboard.welcome": "Bienvenue, {{name}}", + "Der Preis für den Lehrgang «Versicherungsvermittler-/in VBV» beträgt CHF 300 exkl. MWSt.. Mit dem Kauf erhältst du Zugang zum Lernpfad und den Lernmedien.": "Le prix de la formation \"Intermédiaire d'assurance/intermédiaire AFA\" est de 300 CHF hors TVA. L'achat te donne accès au parcours d'apprentissage et aux médias d'apprentissage.", + "dueDates.noDueDatesAvailable": "Pas de dates disponibles", + "dueDates.showAllDueDates": "Afficher tous les dates", + "Durchführung": "Volée", + "edoniqTest.checkboxTitle": "Accepter les conditions et effectuer le test", + "edoniqTest.deadlineInPast": "Le test ne peut plus être effectué car la date limite de soumission est dépassée.", + "edoniqTest.qualifiesForExtendedTime": "Je confirme que j'ai droit à un test avec compensation des inégalités.", + "edoniqTest.qualifiesForExtendedTimeTitle": "Apprenti-e-s avec compensation des inégalités (soumis à autorisation)", + "edoniqTest.startTest": "Démarrer l'essai", + "edoniqTest.submitDateDescription": "Soumettez vos résultats à temps jusqu'au {{x}}.", + "edoniqTest.testDescription": "Effectuez le test suivant. Le test ne peut être effectué qu'une seule fois et est pertinent pour la note.", + "edoniqTest.testSubmitted": "Vous avez terminé ce test", + "edoniqTest.viewResults": "Voir les résultats", + "Elemente zu erledigen": "Eléments à faire", "Ergebnisse anschauen": "Consulter les résultats", + "Ergebnisse anzeigen": "Afficher les résultats", "Feedback": "Feedback", "Feedback anschauen": "Consulter le feedback", - "Hier überprüfst und bestätigst du die Anwesenheit deiner Teilnehmenden": [], + "feedback.answers": "Réponses", + "feedback.areYouSatisfied": "Commentaires sur le cours", + "feedback.average": "Moyen", + "feedback.circleFeedback": "Feed-back sur le Circle", + "feedback.completionDescription": "Tes commentaires seront anonymes. Ton nom et ton prénom ne seront pas indiqués au formateur / à la formatrice.", + "feedback.completionDescriptionVV": "Ton feedback est anonyme et ton nom et ton prénom n'apparaissent pas.", + "feedback.completionTitle": "Envoie ton feed-back à {{name}}", + "feedback.completionTitleVV": "Envoie ton feedback à l’AFA", + "feedback.courseNegativeFeedbackLabel": "À ton avis, quels sont les points qui pourraient être améliorés ?", + "feedback.coursePositiveFeedbackLabel": "Qu’est-ce qui t’a particulièrement plu ?", + "feedback.feedbackPageInfo": "Les participants ont rempli le feed-back", + "feedback.feedbackPageTitle": "Feed-back sur la formation", + "feedback.feedbackSent": "Ton feed-back a été envoyé", + "feedback.goalAttainmentLabel": "Degré de réalisation des objectifs", + "feedback.happy": "Satisfait", + "feedback.instructorCompetenceLabel": "Que penses-tu des compétences techniques de la personne chargée du cours et de sa maîtrise du sujet ?", + "feedback.instructorOpenFeedbackLabel": "Souhaites-tu ajouter quelque chose à l’intention de la personne chargée du cours ?", + "feedback.instructorRespectLabel": "Les questions et les suggestions des participants ont-elles été prises au sérieux et traitées correctement ?", + "feedback.intro": "{{name}}, ton formateur / ta formatrice, t’invite à lui adresser un feed-back. Cela n’est pas obligatoire, mais lui permettrait d’améliorer son cours.", + "feedback.materialsRatingLabel": "Si oui : Que pensez-vous des documents fournis pour le travail préparatoire (par ex. eLearning) ?", + "feedback.noFeedbacks": "Aucun feed-back n’a encore été remis", + "feedback.praxisAssignmentClarity": "Les exercices pratiques étaient-ils clairs et compréhensibles?", + "feedback.preparationTaskClarityLabel": "Les travaux préparatoires étaient-ils clairs et compréhensibles ?", + "feedback.proficiencyLabel": "As-tu l’impression de bien maîtriser les sujets qui ont été abordés pendant le cours ?", + "feedback.proficiencyLabelVV": "As-tu l’impression de bien maîtriser les sujets qui ont été abordés pendant le Circle ?", + "feedback.questionTitle": "Question", + "feedback.recommendLabel": "Est-ce que tu recommandes ce cours ?", + "feedback.recommendLabelVV": "Est-ce que tu recommandes ce Circle?", + "feedback.satisfactionLabel": "Degré de satisfaction au global", + "feedback.sendFeedback": "Envoyer le feed-back", + "feedback.sentByUsers": "Rempli par {{count}} participants", + "feedback.showDetails": "Afficher les détails", + "feedback.unhappy": "Insatisfait(e)", + "feedback.veryHappy": "Très satisfait(e)", + "feedback.veryUnhappy": "Très insatisfait(e)", + "Feedback: Feedback zum Lehrgang": "Feedback: feedback sur la formation", + "foobar.hello": "Salut Innoweek", + "footer.contact": "Contact", + "footer.contactLink": "https://www.vbv.ch/fr/lafa/organisation/contact", + "footer.contactText": "Contact", + "footer.copyright": "© 2023 AFA", + "footer.dataProtectionLink": "https://www.vbv.ch/fr/politique-de-confidentialite", + "footer.dataProtectionText": "Dispositions sur la protection des données", + "footer.imprintLink": "https://www.vbv.ch/fr/impressum", + "footer.imprintText": "Impressum", + "Freigabetermin Bewertungen:": "Date de remise des évaluations :", + "Füge dein Profilbild hinzu und ergänze die fehlenden Angaben.": "Ajoute ta photo de profil et complète les informations manquantes.", + "Geleitete Fallarbeit": "Étude de cas dirigée", + "general.back": "Retour", + "general.backCapitalized": "Retour", + "general.backToCircle": "Revenir au Circle", + "general.backToLearningPath": "Revenir au programme de formation", + "general.cancel": "Annuler", + "general.certificate_many": "Certificats", + "general.certificate_one": "Certificat", + "general.certificate_other": "Certificats", + "general.circles": "Circles", + "general.close": "Fermer", + "general.exam_many": "Examens", + "general.exam_one": "Examen", + "general.exam_other": "Examens", + "general.examResult_many": "Résultats de l’examen", + "general.examResult_one": "Résultat de l’examen", + "general.examResult_other": "Résultats de l’examen", + "general.feedback_many": "Feed-backs", + "general.feedback_one": "Feed-back", + "general.feedback_other": "Feed-backs", + "general.im circle x anschauen": "Regarder dans le Circle «{{x}}»", + "general.introduction": "Introduction", + "general.learningPath": "Parcours de formation", + "general.learningSequence": "Séquence", + "general.learningUnit": "Leçon", + "general.next": "Continuer", + "general.nextStep": "Cela continue", + "general.no": "Non", + "general.notification_many": "Notifications", + "general.notification_one": "Notification", + "general.notification_other": "Notifications", + "general.profileLink": "Détails", + "general.save": "Enregistrer", + "general.send": "Envoyer", + "general.settings": "Paramètres du compte", + "general.shop": "Shop", + "general.show": "Consulter", + "general.showAll": "Tout consulter", + "general.start": "C’est parti !", + "general.submission": "Remise", + "general.title": "myAFA", + "general.transferTask_many": "Exercices d’application", + "general.transferTask_one": "Exercice d’application", + "general.transferTask_other": "Exercices d’application", + "general.yes": "Oui", + "Generation": "", + "Hast du Fragen?": "As-tu des questions?", + "Hier überprüfst und bestätigst du die Anwesenheit deiner Teilnehmenden.": "Ici, vous vérifiez et confirmez la présence de vos participants.", + "Ich will die Anwesenheit der untenstehenden Personen definitiv bestätigen.": "Je souhaite confirmer définitivement la présence des personnes ci-dessous.", + "Jahr": "", + "Keine Auftragsdetails verfügbar.": "", + "Kompetenznachweise": "", + "Kompetenzprofil": "", + "Kosten im": "Coûts en", + "Kosten in": "", + "Kosten in 2024": "", + "language.de": "Deutsch", + "language.fr": "Français", + "language.it": "Italiano", + "learningContent.markAsDone": "Marquer comme effectué(e)", + "learningContentTypes.attendanceCourse": "Cours de présence", + "learningContentTypes.casework": "Etude de cas dirigée", + "learningContentTypes.documents": "Documents", + "learningContentTypes.edoniqTest": "Questions de connaissances et de compréhension", + "learningContentTypes.feedback": "Feedback", + "learningContentTypes.knowledgeAssessment": "Test", + "learningContentTypes.learningModule": "Module de formation", + "learningContentTypes.mandatory_casework": "", + "learningContentTypes.placeholder": "en cours de réalisation", + "learningContentTypes.praxisAssignment": "Mandat", + "learningContentTypes.prepAssignment": "Mandat de préparation", + "learningContentTypes.reflection": "Réflexion", + "learningContentTypes.task": "Tâche", + "learningContentTypes.test": "Test", + "learningContentTypes.text": "Texte", + "learningContentTypes.video": "Vidéo", + "learningPathPage.currentCircle": "Circle en cours", + "learningPathPage.listView": "Affichage sous forme de liste", + "learningPathPage.nextDueDates": "Prochaines dates", + "learningPathPage.nextStep": "Étape suivante", + "learningPathPage.pathView": "Affichage sous forme de parcours", + "learningPathPage.progressText": "Tu as traité {{ inProgressCount }} de {{ allCount }} Circles", + "learningPathPage.showListView": "Afficher la liste", + "learningPathPage.topics": "Thèmes :", + "learningPathPage.welcomeBack": "Cela fait plaisir de te revoir dans ta formation :", + "Lehrgang": "Formation", + "Lernbegleitung einladen": "", + "Lernpfad kaufen": "", + "login.demoLogin": "Connexion Demo", + "login.guidelineFile": "Inscription_myAFA.pdf", + "login.guidelineText": "Découvre comment t'inscrire en tant qu'apprenant-e", + "login.login": "Login", + "login.ssoLogin": "Connexion SSO / Inscription", + "login.ssoText": "Clique sur le bouton pour te connecter via le SSO ou t’inscrire.", + "login.welcomeText": "Bienvenue sur la page de login pour les cours interentreprises de la branche de formation et d'examens ommerciales \"Assurance privée\".", + "login.welcomeUk": "Bienvenue", + "mainNavigation.logout": "Se déconnecter", + "mainNavigation.profile": "Profil", + "mediaLibrary.handlungsfelder.description": "Trouve toutes les ressources des champs d’action, comme les outils didactiques, les liens et autres informations utiles.", + "mediaLibrary.handlungsfelder.title_many": "Champs d’action", + "mediaLibrary.handlungsfelder.title_one": "Champ d’action", + "mediaLibrary.handlungsfelder.title_other": "Champs d’action", + "mediaLibrary.learningMedia.description": "Trouve une liste complète des livres, manuels et autres outils qui ont été mentionnés pendant le cours.", + "mediaLibrary.learningMedia.titel": "Outils didactiques ", + "mediaLibrary.show": "Voir la médiathèque", + "mediaLibrary.title": "Médiathèque", + "Meine Lernbegleiter": "", + "Meine Praxisbildner": "Mes formateurs pratiques", + "Member": "Participants", + "MentorUK": "Formateur/-trice pratique", + "MentorVV": "Tuteur", + "messages.sendMessage": "Écrire un message", "MS Teams öffnen": "Ouvrir MS Teams ", + "Nach der Bezahlung von 300 CHF exkl. MWSt. erhältst du Zugang für den gesamten Lehrgang (inkl. Prüfung).": "", + "Neuen Praxisbildner einladen": "Inviter un nouveau formateur pratique", + "Nicht bestanden": "", + "notifications.load_more": "Télécharger davantage", + "notifications.no_notifications": "Tu n’as reçu aucune notification pour le moment", "Nächste Termine": "Prochaines dates", "Passwort": "Mot de passe", + "Personen": "", + "profile.": "", + "profile.all": "Toutes branches", + "profile.krankenzusatzversicherung": "Maladie complémentaire", + "profile.leben": "Vie", + "profile.nichtleben": "Non-vie", + "profile.null": "", + "Präsenzkurs": "", + "receivedEvaluation.no": "Il faut que tu regardes cela encore une fois de plus près", + "receivedEvaluation.yes": "Oui, tu peux le faire", + "Reflexion": "", + "Region": "", + "Rolle": "", "Sehr unzufrieden": "très insatisfait", "Sehr zufrieden": "très satisfait", + "selfEvaluation.instruction.0": "Überprüfe, ob du in der Lernheinheit", + "selfEvaluation.instruction.1": "alles verstanden hast.", + "selfEvaluation.instruction.2": "Lies die folgende Aussage und bewerte sie:", + "selfEvaluation.no": "Il faut que je regarde cela encore une fois de plus près", + "selfEvaluation.progressLink": "Ouvrir le menu des compétences", + "selfEvaluation.progressText": "Consulte tes progrès dans ton menu des compétences :", + "selfEvaluation.selfEvaluation": "Auto-évaluation", + "selfEvaluation.selfEvaluationNo": "$t(a.Selbsteinschätzung): Il faut que je regarde cela encore une fois de plus près.", + "selfEvaluation.selfEvaluationYes": "$t(a.Selbsteinschätzung): Je maîtrise cette question.", + "selfEvaluation.steps": "Étape {{current}} sur {{max}}", + "selfEvaluation.title": "Selbsteinschätzung {{title}}", + "selfEvaluation.yes": "Oui, je maîtrise cette question", + "settings.emailNotifications": "Notifications par e-mail", + "shop.paymentCembraByjunoMessage": "Un paiement sur facture est possible uniquement à ton adresse privée. Tu dois impérativement fournir ton numéro de téléphone et ta date de naissance. Important : le délai de paiement est de 30 jours. Le traitement de ton paiement (y compris les rappels, l'encaissement, les poursuites) est effectué directement par CembraPay AG. Tu recevras la facture par e-mail.", + "Sobald du einer Durchführung zugewiesen bist, ist alles bereit.": "Une fois que tu es assigné à une exécution, tout est prêt.", + "Sprache wählen und Lehrgang starten": "Choisir la langue et commencer l'apprentissage", + "start.chooseCourse": "Choisis maintenant ton apprentissage :", + "start.myvbvDescription": "L'interface d'apprentissage pour l'assurance", + "start.ukDescription": "Les cours interentreprises liés à la formation «Employé(e) de commerce CFC Assurance privée».", + "start.ukTitle": "Employé(e) de commerce CFC Assurance privée / Cours interentreprises", + "start.vvDescription": "Le parcours d'apprentissage et les médias d'apprentissage qui te préparent à l'examen d' «intermédiare d'assurance AFA».", "Status anschauen": "Consulter le statut", + "Supervisor": "Responsable CI", + "Teilnehmer": "Participants", + "Teilnehmer im": "Participants en", + "Teilnehmer im 2024": "", + "Teilnehmer nach Zulassungsprofilen": "Participants par profil d'admission", + "Teilnehmer nach Zulassungsprofilen im": "", + "Termin nicht festgelegt": "", "TODO: Nächste Termine": "TODO: prochaines dates", + "Trainer": "Formateur / Formatrice", "Trainerunterlagen": "Documents du formateur / de la formatrice", - "Wissens - und Verständnisfragen": "Questions de connaissance et de compréhension ", - "Zur Zeit sind keine Termine vorhanden": "Aucune réunion n’est prévue pour le moment", - "a": { - "Alle aufklappen": "Tout déplier", - "Begründung": "Justification", - "Beurteilungsinstrument anzeigen": "Afficher l'outil d'évaluation", - "Beurteilungskriterium": "Critère d'évaluation", - "Bewertung": "Évaluation", - "Bewertung fortsetzen": "Continuer l'évaluation", - "Bewertung freigegeben": "Évaluations validée/s", - "Bewertung starten": "Continuer l'évaluation", - "Circle": "Cercle", - "Datum": "Date", - "Details anzeigen": "Afficher les détails", - "Ergebnisse": "Résultats", - "Ergebnisse abgegeben": "Résultats remis", - "Ergebnisse anschauen": "Voir les résultats", - "Geleitete Fallarbeit": "Étude de cas dirigée", - "Gesamtpunktzahl": "Score total", - "Handlungskompetenzen": "Compétences opérationnelles", - "Höchstpunktzahl": "Score maximum", - "Kein Circle verfügbar oder ausgewählt": [], - "KompetenzNavi": "NaviCompétence", - "Kompetenznachweis": "Contrôle de compétences", - "Kompetenznachweise": "Contrôles de compétences", - "Leistungsziele": "Objectif évaluateur", - "Mediathek": "Médiathèque", - "Punkte": "points", - "Selbsteinschätzung": "Auto-évaluation", - "Selbsteinschätzung anschauen": "Voir l'auto-évaluation", - "Selbsteinschätzungen": "Auto-évaluations", - "Standort": "Emplacement", - "Trainer": "Formateur / Formatrice", - "VorschauTeilnehmer": "Aperçu participant", - "Zwischenstand": "Point intermédiaire", - "competenceCertificateNoUserPoints": "Le score sera calculé à un moment ultérieur.", - "Übersicht": "Aperçu" - }, - "assignment": { - "Du musst die Bewertung bis am x um y Uhr abschliessen und freigeben": "Vous devez terminer et valider l'évaluation avant le {{x}} à {{y}} heures.", - "acceptConditionsDisclaimer": "Accepter les conditions et remettre les résultats", - "assessmentDocumentDisclaimer": "Cette étude de cas dirigée est évaluée par l’outil suivant :", - "assessmentTitle": "Évaluation", - "assignmentSubmitted": "Tes résultats ont bien été transmis.", - "confirmSubmitPerson": "Par la présente, je confirme que la personne suivante doit évaluer mes résultats.", - "confirmSubmitResults": "Par la présente, je confirme que j’ai vérifié la synthèse de mes résultats et que je souhaite la remettre telle quelle.", - "dueDateEvaluation": "Date de libération de l'évaluation", - "dueDateIntroduction": "Envoie tes résultats dans les délais avant le:", - "dueDateNotSet": "Aucune date de remise n’a été spécifiée pour cette opération.", - "dueDateSubmission": "Date de remise", - "edit": "Traiter", - "effortTitle": "Temps nécessaire", - "evaluationInstrumentDescriptionText": "Le score total et la note en résultant sont calculés sur la base de l'outil d'évaluation enregistré.", - "initialSituationTitle": "Situation initiale", - "justificationRequiredText": "Ici, une justification doit impérativement être saisie.", - "lastChangesNotSaved": "La dernière modification n’a pas pu être enregistrée.", - "performanceObjectivesTitle": "Objectifs", - "showAssessmentDocument": "Afficher l’outil d’évaluation", - "submissionNotificationDisclaimer": "{{name}} va procéder à l’évaluation de tes résultats. Tu recevras une notification dès que l’évaluation aura été validée et que tu pourras la consulter.", - "submitAssignment": "Remettre les résultats", - "taskDefinition": "Résous les exercices et documente tes résultats.", - "taskDefinitionTitle": "Énoncé du problème", - "von x Punkten": "sur {{x}} points", - "x hat die Ergebnisse am y um z Uhr abgegeben": "{{x}} a soumis les résultats le {{y}} à {{z}} heures", - "x von y Arbeiten abgeschlossen": "{{x}} sur {{y}} épreuves terminées", - "x von y Kompetenznachweis-Elementen abgeschlossen": "{{x}} sur {{y}} éléments de contrôle de compétences terminés" - }, - "circlePage": { - "Dieser Inhalt gehört zu x": "Ce contenu appartient à «{{x}}»", - "Im KompetenzNavi anschauen": "Afficher dans le \"KompetenzNavi\"", - "circleContentBoxTitle": "Ce que tu vas apprendre dans ce cercle", - "contactExpertButton": "Contacter le formateur / la formatrice", - "contactExpertDescription": "Échanger avec le formateur / la formatrice si tu as des questions sur le cercle {{circleName}}.", - "documents": { - "action": "Télécharger les documents", - "chooseLearningSequence": "Sélectionne une séquence", - "chooseName": "Sélectionne un nom", - "chooseSequence": "Sélectionne une séquence", - "deleteModalTitle": "Supprimer les documents", - "deleteModalWarning": "Veux-tu \"{{title}}\" supprimer les documents ?
Cette action est irréversible.", - "expertDescription": "Mets des contenus supplémentaires à la disposition de tes apprenants.", - "fileLabel": "Fichier", - "maxFileSize": "Taille maximale du fichier : 20 Mo", - "modalAction": "Sélectionner le fichier", - "modalFileName": "Nom", - "modalNameInformation": "Max. 70 signes", - "selectFile": "Sélectionne un fichier", - "title": "Documents", - "trainerDescription": "Sur Teams, tu trouveras des contenus supplémentaires pour ton cours.", - "trainerLinkSrc": "https://vbvbern.sharepoint.com/sites/myVBV-AFA_K-CI", - "trainerLinkText": "Regarder les contenus sur Teams", - "trainerTitle": "Accompagnement pour le formateur / la formatrice", - "uploadErrorMessage": "Une erreur est survenue lors du téléchargement. Essaie à nouveau.", - "userDescription": "Tu trouves ici des documents complémentaires qui peuvent d’être utiles pour ce cercle." - }, - "duration": "Durée", - "gotQuestions": "As-tu des questions ?", - "learnMore": "Pour en savoir plus" - }, - "cockpit": { - "all": "Tous", - "examsDone": "Examens remis par les participants.", - "feedbacksDone": "Retours envoyés par les participants.", - "notifyTask": "Notifier", - "notifyTaskDescription": "Notifier les participants", - "profileLink": "Afficher le profil", - "progress": "Personne participante / Statut", - "tasksDone": "Exercices d’application terminés par les participants.", - "title": "Cockpit", - "trainerFilesText": "Tu trouves ici les documents de formation (feuilles de solution, présentations, etc.) pour ton cercle." - }, - "competenceCertificate": { - "mainTitle": "Contrôle de compétences" - }, - "competenceCertificates": { - "mainTitle": "Contrôles de compétences" - }, - "competences": { - "assessAgain": "Voir l'auto-évaluation dans le cercle «{{x}}»", - "assessment": "Évaluations", - "competences": "Compétences", - "lastImprovements": "Dernières compétences améliorées", - "notAssessed": "Compétence non évaluée", - "title": "NaviCompétence" - }, - "constants": { - "no": "Non", - "satisfied": "Satisfait(e)", - "unsatisfied": "Insatisfait(e)", - "verySatisfied": "Très satisfait(e)", - "veryUnsatisfied": "Très insatisfait(e)", - "yes": "Oui" - }, - "dashboard": { - "courses": "Formation", - "dueDatesTitle": "Dates", - "nocourses": "Tu n’as été affecté(e) à aucune formation encore.", - "welcome": "Bienvenue, {{name}}" - }, - "dueDates": { - "nextDueDates": "Prochaines réunions", - "noDueDatesAvailable": "Pas de dates disponibles", - "showAllDueDates": "Afficher tous les dates" - }, - "edoniqTest": { - "qualifiesForExtendedTime": "Je confirme que j'ai droit à un test avec compensation des inégalités.", - "qualifiesForExtendedTimeTitle": "Apprenti-e-s avec compensation des inégalités (soumis à autorisation)", - "startTest": "Démarrer l'essai" - }, - "feedback": { - "answers": "Réponses", - "areYouSatisfied": "Quel est ton degré de satisfaction ?", - "average": "Moyen", - "circleFeedback": "Feed-back sur le cercle", - "completionDescription": "Tes commentaires seront anonymes. Ton nom et ton prénom ne seront pas indiqués au formateur / à la formatrice.", - "completionTitle": "Envoie ton feed-back à {{name}}", - "courseNegativeFeedbackLabel": "À ton avis, quels sont les points qui pourraient être améliorés ?", - "coursePositiveFeedbackLabel": "Qu’est-ce qui t’a particulièrement plu ?", - "feedbackPageInfo": "Les participants ont rempli le feed-back", - "feedbackPageTitle": "Feed-back sur la formation", - "feedbackSent": "Ton feed-back a été envoyé", - "goalAttainmentLabel": "Degré de réalisation des objectifs", - "happy": "Satisfait", - "instructorCompetenceLabel": "Que penses-tu des compétences techniques de la personne chargée du cours et de sa maîtrise du sujet ?", - "instructorOpenFeedbackLabel": "Souhaites-tu ajouter quelque chose à l’intention de la personne chargée du cours ?", - "instructorRespectLabel": "Les questions et les suggestions des participants ont-elles été prises au sérieux et traitées correctement ?", - "intro": "{{name}}, ton formateur / ta formatrice, t’invite à lui adresser un feed-back. Cela n’est pas obligatoire, mais lui permettrait d’améliorer son cours.", - "materialsRatingLabel": "Si oui : Que pensez-vous des documents fournis pour le travail préparatoire (par ex. eLearning) ?", - "noFeedbacks": "Aucun feed-back n’a encore été remis", - "preparationTaskClarityLabel": "Les travaux préparatoires étaient-ils clairs et compréhensibles ?", - "proficiencyLabel": "As-tu l’impression de bien maîtriser les sujets qui ont été abordés pendant le cours ?", - "questionTitle": "Question", - "recommendLabel": "Est-ce que tu recommandes ce cours ?", - "satisfactionLabel": "Degré de satisfaction au global", - "sendFeedback": "Envoyer le feed-back", - "sentByUsers": "Rempli par {{count}} participants", - "showDetails": "Afficher les détails", - "unhappy": "Insatisfait(e)", - "veryHappy": "Très satisfait(e)", - "veryUnhappy": "Très insatisfait(e)" - }, - "foobar": { - "hello": "Salut Innoweek" - }, - "footer": { - "contact": "Contact", - "contactLink": "https://www.vbv.ch/fr/lafa/organisation/contact", - "contactText": "Contact", - "copyright": "© 2023 AFA", - "dataProtectionLink": "https://www.vbv.ch/fr/politique-de-confidentialite", - "dataProtectionText": "Dispositions sur la protection des données", - "imprintLink": "https://www.vbv.ch/fr/impressum", - "imprintText": "Impressum" - }, - "general": { - "back": "Retour", - "backCapitalized": "Retour", - "backToCircle": "Revenir au cercle", - "backToLearningPath": "Revenir au programme de formation", - "certificate_many": "Certificats", - "certificate_one": "Certificat", - "certificate_other": "Certificats", - "circles": "Cercles", - "close": "Fermer", - "examResult_many": "Résultats de l’examen", - "examResult_one": "Résultat de l’examen", - "examResult_other": "Résultats de l’examen", - "exam_many": "Examens", - "exam_one": "Examen", - "exam_other": "Examens", - "feedback_many": "Feed-backs", - "feedback_one": "Feed-back", - "feedback_other": "Feed-backs", - "im circle x anschauen": "Regarder dans le cercle «{{x}}»", - "introduction": "Introduction", - "learningPath": "Parcours de formation", - "learningSequence": "Séquence", - "learningUnit": "Leçon", - "next": "Continuer", - "nextStep": "Cela continue", - "no": "Non", - "notification_many": "Notifications", - "notification_one": "Notification", - "notification_other": "Notifications", - "profileLink": "Détails", - "save": "Enregistrer", - "send": "Envoyer", - "settings": "Paramètres du compte", - "shop": "Shop", - "show": "Consulter", - "showAll": "Tout consulter", - "start": "C’est parti !", - "submission": "Remise", - "title": "myAFA", - "transferTask_many": "Exercices d’application", - "transferTask_one": "Exercice d’application", - "transferTask_other": "Exercices d’application", - "yes": "Oui" - }, - "language": { - "de": "Deutsch", - "fr": "Français", - "it": "Italiano" - }, - "learningContent": { - "markAsDone": "Marquer comme effectué(e)" - }, - "learningContentTypes": { - "attendanceCourse": "Cours de présence", - "casework": "Etude de cas dirigée ", - "documents": "Documents", - "edoniqTest": "Questions de connaissances et de compréhension", - "feedback": "Feedback", - "learningModule": "Module de formation", - "placeholder": "en cours de réalisation", - "prepAssignment": "Mandat de préparation", - "reflection": "Réflexion", - "task": "Tâche", - "test": "Test", - "text": "Texte", - "video": "Vidéo" - }, - "learningPathPage": { - "currentCircle": "Cercle en cours", - "listView": "Affichage sous forme de liste", - "nextDueDates": "Prochaines dates", - "nextStep": "Étape suivante", - "pathView": "Affichage sous forme de parcours", - "progressText": "Tu as traité {{ inProgressCount }} de {{ allCount }} cercles", - "showListView": "Afficher la liste", - "topics": "Thèmes :", - "welcomeBack": "Cela fait plaisir de te revoir dans ta formation :" - }, - "login": { - "demoLogin": "Connexion Demo", - "guidelineFile": "Inscription_myAFA.pdf", - "guidelineText": "Découvre comment t'inscrire en tant qu'apprenant-e", - "login": "Login", - "ssoLogin": "Connexion SSO / Inscription", - "ssoText": "Clique sur le bouton pour te connecter via le SSO ou t’inscrire.", - "welcomeText": "Bienvenue sur la page de login pour les cours interentreprises de la branche de formation et d'examens ommerciales \"Assurance privée\".", - "welcomeUk": "Bienvenue" - }, - "mainNavigation": { - "logout": "Se déconnecter", - "profile": "Profil" - }, - "mediaLibrary": { - "handlungsfelder": { - "description": "Trouve toutes les ressources des champs d’action, comme les outils didactiques, les liens et autres informations utiles.", - "title_many": "Champs d’action", - "title_one": "Champ d’action", - "title_other": "Champs d’action" - }, - "learningMedia": { - "description": "Trouve une liste complète des livres, manuels et autres outils qui ont été mentionnés pendant le cours.", - "titel": "Outils didactiques " - }, - "title": "Médiathèque" - }, - "messages": { - "sendMessage": "Écrire un message" - }, - "notifications": { - "load_more": "Télécharger davantage", - "no_notifications": "Tu n’as reçu aucune notification pour le moment" - }, - "selfEvaluation": { - "instruction": [ - "Überprüfe, ob du in der Lernheinheit", - "alles verstanden hast.", - "Lies die folgende Aussage und bewerte sie:" - ], - "no": "Il faut que je regarde cela encore une fois de plus près", - "progressLink": "Ouvrir le menu des compétences", - "progressText": "Consulte tes progrès dans ton menu des compétences :", - "selfEvaluation": "Auto-évaluation", - "selfEvaluationNo": "$t(a.Selbsteinschätzung): Il faut que je regarde cela encore une fois de plus près.", - "selfEvaluationYes": "$t(a.Selbsteinschätzung): Je maîtrise cette question.", - "steps": "Étape {{current}} sur {{max}}", - "title": "Selbsteinschätzung {{title}}", - "yes": "Oui, je maîtrise cette question" - }, - "settings": { - "emailNotifications": "Notifications par e-mail" - }, - "uk": { - "contact": { - "address": "Laupenstrasse 10, 3008 Berne", - "team": "Équipe Dévelopement de la relève", - "title": "Association pour la formation professionnelle en assurance" - }, - "dashboard": { - "allClear": "Tout est clair ?", - "nextSteps": "En tant que personne en formation, tu seras attribué(e) à un cours interentreprise dans les prochains jours. Puis tu verras apparaître ici ta boîte de formation personnalisée avec les informations complémentaires.", - "welcome": "Tout s'est bien passé, tu es maintenant inscrit/e à l'environnement d'apprentissage numérique de l'Association pour la formation professionnelle en assurance (AFA) !" - } - }, + "TrainingResponsible": "Responsable de la formation", + "uk.contact.address": "Laupenstrasse 10, 3008 Berne", + "uk.contact.team": "Équipe Dévelopement de la relève", + "uk.contact.title": "Association pour la formation professionnelle en assurance", + "uk.dashboard.allClear": "Tout est clair ?", + "uk.dashboard.nextSteps": "En tant que personne en formation, tu seras attribué(e) à un cours interentreprise dans les prochains jours. Puis tu verras apparaître ici ta boîte de formation personnalisée avec les informations complémentaires.", + "uk.dashboard.welcome": "Tout s'est bien passé, tu es maintenant inscrit/e à l'environnement d'apprentissage numérique de l'Association pour la formation professionnelle en assurance (AFA) !", + "UnknownRoleKey": "", "unzufrieden": "insatisfait", + "Vorbedingung": "Condition préalable", + "Vorbereitungsaufgabe": "Mandat de préparation", + "vv.contact.team": "Équipe d'intermédiaires", + "Weiter lernen": "Continuer d'apprendre", + "Wichtig: wird die Rechnung von deinem Arbeitgeber bezahlt, dann kannst du zusätzlich die Rechnungsadresse deines Arbeitsgebers erfassen.": "Important : si la facture est payée par ton employeur, tu peux alors saisir en plus l'adresse de facturation de ton employeur.", + "Wir bedauern die Unannehmlichkeiten und danken für dein Verständnis. Bei Fragen steht dir das Team Vermittler gerne zur Verfügung.": "Nous regrettons les désagréments et te remercions de ta compréhension. Si tu as des questions, l'équipe Intermédiaires se tient volontiers à ta disposition.", + "Wissens - und Verständnisfragen": "Questions de connaissance et de compréhension ", + "Wähle ein Zulassungsprofil, damit du deinen Lehrgang an der richtigen Stelle beginnen kannst": "Choisis un profil d'admission pour que tu puisses commencer ta formation au bon endroit.", + "Wähle ein Zulassungsprofil, damit du deinen Lehrgang an der richtigen Stelle beginnen kannst.": "Choisis un profil d'admission pour que tu puisses commencer ta formation au bon endroit.", + "x von y abgeschlossen": "{{x}} de {{y}} achevée/s", "x von y Bewertungen freigegeben": "{{x}} de {{y}} évaluations validée/s", "x von y Ergebnisse abgegeben": "{{x}} de {{y}} résultats remis", "x von y Feedbacks abgegeben": "{{x}} de {{y}} feedbacks remis", - "x von y abgeschlossen": "{{x}} de {{y}} achevée/s", - "zufrieden": "satisfait" + "Zu erledigen": "", + "zufrieden": "satisfait", + "Zulassungsprofil": "", + "Zur Zeit sind keine Termine vorhanden": "Aucune réunion n’est prévue pour le moment", + "Überbetriebliche Kurse": "" } diff --git a/client/src/locales/it/translation.json b/client/src/locales/it/translation.json index 9d545607..41e74d5c 100644 --- a/client/src/locales/it/translation.json +++ b/client/src/locales/it/translation.json @@ -1,364 +1,670 @@ { + "20%": "", + "40%": "", + "60%": "", + "80%": "", + "100%": "", + "a.": "", + "a.a.AlleCircle": "", + "a.Abbrechen": "Annullare", + "a.Abgabetermin": "Termine di consegna", + "a.Abgezogene Punkte": "Punti detratti", + "a.Adresse": "Indirizzo", + "a.Aktuell begleitest du niemanden als Lernbegleitung.": "Attualmente non stai accompagnando nessuno come mentore di apprendimento.", + "a.Aktuell begleitest du niemanden als Praxisbildner.": "Attualmente non stai accompagnando nessuno come formatore/-trice pratico/a.", + "a.Aktuell bist du leider keiner Durchführung zugewiesen.": "Attualmente non sei assegnato a nessuna sessione, purtroppo.", + "a.Aktuell hast du noch keine Person als Lernbegleitung eingeladen.": "Al momento non hai invitato nessuna persona come tutor.", + "a.Aktuell hast du noch keine Person als Lernbegleitung eingeladen. Lade jetzt jemanden ein.": "Al momento non hai invitato nessuna persona come tutor. Invita qualcuno ora.", + "a.Aktuell hast du noch keine Person als Praxisbildner eingeladen.": "Attualmente non hai ancora invitato nessuna persona come formatore/-trice pratico/a.", + "a.Aktuell hast du noch keine Person als Praxisbildner eingeladen. Lade jetzt jemanden ein.": "", + "a.Aktueller Lehrgang": "Corso in corso", + "a.Allbranche": "Tutti i settori", + "a.Alle": "Tutto", + "a.Alle aufklappen": "Apri tutto", + "a.Alle Lehrgang": "", + "a.Alle Lehrgänge": "", + "a.Alle Lehrgänge anzeigen": "Mostra tutti i corsi", + "a.Alle Personen anzeigen": "Mostra tutte le persone", + "a.Alle Termine anzeigen": "Mostrare tutte le date", + "a.Alle zuklappen": "Chiudi tutto", + "a.AlleCircle": "Circle: Tutti", + "a.AlleDurchführungen": "Svolgimenti: Tutti", + "a.AlleGenerationen": "Generazioni: Tutte", + "a.AlleKreise": "", + "a.AlleRegionen": "", + "a.AlleTermine": "Appuntamenti", + "a.AlleTypen": "Tutti i tipi", + "a.Allgemeine Zufriedenheit": "Soddisfazione generale ", + "a.Als Excel exportieren": "Esportazione come Excel", + "a.An Durchführung teilnehmen": "Partecipare alla sessione", + "a.Anmelden": "Login", + "a.Anwesenheit": "Presenza", + "a.Arbeiten": "Lavori", + "a.assignment.evaluationFeedbackDescriptionText": "Pubblica il tuo feedback in modo che possa essere condiviso con il/la partecipante.", + "a.assignment.evaluationInstrumentDescriptionTextFeedback": "Si prega di sostenere {{name}} e di fornire un feedback sul compito.", + "a.Aufgabe": "Attività", + "a.Aufgaben": "Compiti", + "a.Auswählen": "Selezionare", + "a.Bearbeiten": "Modifica", + "a.Begründung": "Motivazione", + "a.Bestanden": "Superato", + "a.Beurteilungsinstrument anzeigen": "Mostra lo strumento di valutazione", + "a.Beurteilungskriterium": "Criterio di valutazione", + "a.Bewertung": "Valutazione", + "a.Bewertung abschliessen": "Valutazione completa", + "a.Bewertung ansehen": "Visualizza recensione", + "a.Bewertung bearbeiten": "", + "a.Bewertung bearbeitet": "", + "a.Bewertung erneut bearbeitet": "", + "a.Bewertung fortsetzen": "Continua la valutazione", + "a.Bewertung Freigabe": "Rilascio della valutazione", + "a.Bewertung freigeben": "Rilasciare la valutazione", + "a.Bewertung freigegeben": "Valutazioni approvate/a", + "a.Bewertung starten": "Continua la valutazione", + "a.Bewertung von x y": "Valutazione di {{x}} {{y}}", + "a.Bild hochladen": "Carica un'immagine", + "a.Bitte folgende Felder ausfüllen": "Si prega di compilare i seguenti campi", + "a.Bitte überprüfe deine Eingaben. Es sind Fehler in deinem Formular aufgetreten.": "Si prega di controllare le tue inserzioni. Sono stati rilevati errori nel tuo modulo.", + "a.Circle": "Circle", + "a.Cockpit anschauen": "Visualizza il cockpit", + "a.competenceCertificateNoUserPoints": "Il punteggio verrà calcolato in un momento successivo.", + "a.confirmSubmitPersonPraxisAssignment": "La persona di seguito deve fornirmi un feedback sui miei risultati.", + "a.Damit du mit diesem Lehrgang starten kannst, musst du einer Durchführung zugewiesen werden. Nimm dafür deinem üK-Verantwortlichen oder unserem {support} Kontakt auf.": "Per iniziare questo corso, devi essere assegnato a una sessione. Per farlo, contatta il tuo responsabile CI o il nostro {support}.", + "a.Damit du myVBV nutzen kannst, brauchst du ein Konto.": "Per utilizzare myVBV, hai bisogno di un account.", + "a.Das muss ich nochmals anschauen": "Devo riguardarlo ancora una volta", + "a.Das wurde mit dir geteilt": "Questo è stato condiviso con te", + "a.Datei auswählen": "Selezionare il file", + "a.Datei hochladen": "Carica il file", + "a.Datei kann nicht gespeichert werden.": "Impossibile salvare il file.", + "a.Datum": "Data", + "a.Debit-/Kreditkarte/Twint": "Carta di debito/credito / Twint", + "a.Dein Feedback für x y wurde freigegeben.": "Il tuo feedback per {{x}} {{y}} è stato pubblicato.", + "a.Deine Bewertung für x y wurde freigegeben.": "La tua valutazione per {{x}} {{y}} è stata pubblicata.", + "a.Deine Fremdeinschätzung": "La tua valutazione esterna", + "a.Deine Selbsteinschätzung": "La tua autovalutazione", + "a.Deine Änderungen wurden gespeichert": "Le tue modifiche sono state salvate", + "a.Der Lehrgang und die Prüfung zum Erwerb des Verbandszertifikats als Versicherungsvermittler/-in.": "Il corso e l'esame per ottenere il certificato di associazione come intermediario/agente di assicurazione.", + "a.Der Preis für den Lehrgang {course} beträgt {price}.": "Il prezzo del {corso} è {prezzo} IVA esclusa.", + "a.Details anschauen": "Visualizza dettagli", + "a.Details anzeigen": "Mostrare i dettagli", + "a.Deutsch": "Tedesco", + "a.Die Anwesenheit wurde definitiv bestätigt": "La presenza è stata confermata definitivamente", + "a.Die Einladung konnte nicht akzeptiert werden. Bitte melde dich beim Support.": "L'invito non ha potuto essere accettato. Si prega di contattare il supporto.", + "a.Die Einladung wurde noch nicht angenommen.": "L'invito non è stato ancora accettato.", + "a.Die Zahlung für den Lehrgang «{course}» wurde erfolgreich ausgeführt.": "Il pagamento per il corso «{course}» è stato completato con successo.", + "a.Die überbetrieblichen Kurse der kaufmännischen Ausbildungs- und Prüfungsbranche 'Privatversicherung'.": "I corsi interaziendali del settore della formazione e degli esami commerciali 'Assicurazione privata'.", + "a.Du hast alles erledigt.": "Hai fatto tutto.", + "a.Du hast deine Fremdeinschätzung freigegeben": "Hai rilasciato la tua valutazione esterna.", + "a.Du hast deine Selbsteinschätzung erfolgreich mit FULL_NAME geteilt.": "Hai condiviso con successo la tua autovalutazione con {{FULL_NAME}}.", + "a.Du hast die Einladung von {name} erfolgreich akzeptiert.": "Hai accettato con successo l'invito di {name}.", + "a.Du hast erfolgreich ein Konto für EMAIL erstellt.": "Hai creato con successo un account per {{email}}.", + "a.Du kannst deine Selbsteinschätzung mit deiner Lernbegleitung teilen, damit sie eine Fremdeinschätzung vornimmt.": "Puoi condividere la tua autovalutazione con il tuo tutor didattico affinché possa effettuare una valutazione esterna.", + "a.Durchfuehrung": "Svolgimenti", + "a.Durchführung": "Svolgimento", + "a.Durchführungen": "Svolgimenti", + "a.Durchschnittsnote": "Voto medio", + "a.E-Mail Adresse": "Indirizzo e-mail", + "a.Einladung": "Invito", + "a.Einladung abschicken": "Inviare l'invito", + "a.Email": "", + "a.Entfernen": "Rimuovere", + "a.Erfahrungsnote üK": "Nota relativa all’insegnamento professionale CI", + "a.Ergebnis bewerten": "Valutare il risultato", + "a.Ergebnisse": "Risultati", + "a.Ergebnisse abgegeben": "Risultati consegnati", + "a.Ergebnisse anschauen": "Guarda i risultati", + "a.Ergebnisse bewerten": "Valutare i risultati", + "a.Ergebnisse teilen": "Condividere i risultati", + "a.Erneut bearbeiten": "Modifica di nuovo", + "a.Experte": "", + "a.Feedback abschliessen": "Completa il feedback", + "a.Feedback ansehen": "Visualizza il feedback", + "a.Feedback erneut bearbeitet": "", + "a.Feedback fortsetzen": "Prosegui il feedback", + "a.Feedback Freigabe": "Pubblicazione del feedback", + "a.Feedback freigeben": "Pubblica il feedback", + "a.Feedback freigegeben": "Feedback pubblicato", + "a.Feedback geben": "Fornisci feedback", + "a.Feedback Teilnehmer": "Feedback dei partecipanti", + "a.Feedback von x y": "Feedback di {{x}} {{y}}", + "a.feedback.introductionVV": "Chiediamo il tuo feedback. Ci aiuta a migliorare la tua esperienza di apprendimento.", + "a.Fehler bei der Zahlung. Bitte versuche es erneut oder kontaktiere uns": "Errore durante il pagamento. Riprovare o scegliere un altro metodo di pagamento.", + "a.Fehler bei der Zahlung. Bitte versuche es erneut oder wähle eine andere Zahlungsmethode.": "Errore durante il pagamento. Riprovare o scegliere un altro metodo di pagamento.", + "a.Fehlermeldung": "Messaggio di errore", + "a.Firmenanschrift": "Indirizzo aziendale", + "a.Firmenname": "Nome dell'azienda", + "a.Franzosisch": "Francese", + "a.Fremdeinschätzung anzeigen": "Évaluation externe", + "a.Fremdeinschätzung freigeben": "Rilasciare la valutazione esterna", + "a.Fremdeinschätzung von FEEDBACK_PROVIDER_NAME": "Valutazione esterna di {{FEEDBACK_PROVIDER_NAME}}", + "a.Fremdeinschätzung vornehmen": "Eseguire una valutazione esterna", + "a.Fremdeinschätzungen": "Valutazioni esterne", + "a.FULL_NAME wird eine Fremdeinschätzung für dich vornehmen. Du wirst per Benachrichtigung informiert, sobald die Fremdeinschätzung für dich freigegeben wurde.": "{{FULL_NAME}} effettuerà una valutazione esterna per te. Sarai informato tramite notifica non appena la valutazione esterna sarà stata resa disponibile per te.", + "a.Geburtsdatum": "Data di nascita", + "a.Geleitete Fallarbeit": "Caso di studio guidato", + "a.Generation": "Generazione", + "a.Gesamtpunktzahl": "Punteggio totale", + "a.Geschäftsdaten": "Dati aziendali", + "a.Gesellschaft": "Compagnia di assicurazione", + "a.Gleich wie die Firmenanschrift": "Uguale all'indirizzo aziendale", + "a.Gleich wie die Privatadresse": "Uguale all'indirizzo privato", + "a.Gratuliere!": "Congratulazioni!", + "a.Grund": "Motivo", + "a.Hallo {userFirstName}, wähle jetzt deinen Lehrgang aus": "Ciao {userFirstName}, scegli ora il tuo corso:", + "a.Handlungskompetenzen": "Competenze operative", + "a.Hast du Fragen? Kontaktiere uns": "Hai domande? Contattaci", + "a.Hast du Fragen? Schau dir unsere FAQ an oder kontaktiere uns": "Hai domande? Consulta le nostre {faq} o contattaci", + "a.Hast du schon ein Konto?": "Hai già un account?", + "a.Hausnummmer": "Numero civico", + "a.Hier kannst du ausschliesslich mit einer Kreditkarte bezahlen.": "", + "a.Hier kannst du Personen einladen, damit sie deine Lernbegleitung werden. Zudem siehst du jederzeit eine Übersicht aller Personen, die du bereits als Lernbegleitung hinzugefügt hast.": "Qui puoi invitare persone a diventare il tuo tutor. Inoltre, puoi sempre vedere una panoramica di tutte le persone che hai già aggiunto come tutor.", + "a.Höchstpunktzahl": "Punteggio massimo", + "a.Ich kann das": "Ho compreso tutto", + "a.Italienisch": "Italiano", + "a.Ja, NAME kann das.": "Sì, {{NAME}} può farlo", + "a.Jetzt mit Lehrgang starten": "Inizia ora il corso", + "a.Kann FULLNAME das?": "{{FULLNAME}} può farlo?", + "a.Kein Circle verfügbar oder ausgewählt.": "Nessun Circle disponibile o selezionato.", + "a.Keine Angabe": "Nessuna indicazione", + "a.Kommentar": "", + "a.Kommentar erfassen": "", + "a.Kompetenznachweis": "Controllo delle competenze", + "a.Kompetenznachweis-Elemente": "Elementi del controllo", + "a.Kompetenznachweise": "Controlli delle competenze", + "a.KompetenzNavi": "NaviCompetenze", + "a.Konto erstellen": "Crea un account", + "a.Kosten": "Costi", + "a.Kosten aller Jahre ansehen": "Visualizza i costi per tutti gli anni", + "a.Kosten in 2024": "", + "a.Krankenzusatzversicherung": "Assicurazione sanitaria integrativa", + "a.Krankenzusatzversicherungen": "Assicurazione sanitaria integrativa", + "a.Lade ein Profilbild hoch, damit dich andere Personen auf den ersten Blick erkennen.": "Carica un'immagine del profilo così che altre persone possano riconoscerti a prima vista.", + "a.Laden...": "Caricamento...", + "a.Land": "Paese", + "a.Leben": "La vita", + "a.Lehrgang": "Corso", + "a.Lehrgang kaufen": "Acquistare il corso", + "a.Leistungsziel": "Obiettivo di valutazione", + "a.Leistungsziele": "Obiettivo di valutazione", + "a.Lernbegleiter": "", + "a.Lernbegleitung": "Tutor", + "a.Lernbegleitung auswählen": "Tutoraggio selezionare", + "a.Lernbegleitung einladen": "Invitare un tutor", + "a.Liste anzeigen": "Mostra l’elenco", + "a.Mach nun weiter mit dem nächsten Schritt.": "Procedi con il passo successivo.", + "a.Maximale Dateigrösse": "Dimensioni massime del file", + "a.Mediathek": "Mediateca", + "a.Mehr erfahren": "Per saperne di più", + "a.Meine Lernbegleitung": "Il mio tutoraggio", + "a.mit Abzug": "incl. detrazione", + "a.Mit dem Kauf erhältst du Zugang auf den gesamten Kurs (inkl. Prüfung).": "L'acquisto ti dà accesso al percorso di apprendimento e ai supporti didattici.", + "a.Mit Kreditkarte bezahlen": "Pagare con carta di debito/credito/Twint", + "a.Mit Rechnung bezahlen": "Pagare con fattura", + "a.Mögliche Formate": "Formati possibili", + "a.Nachname": "Cognome", + "a.Name": "Nome", + "a.Nein, NAME muss das nochmals anschauen.": "No, {{NAME}} deve riguardarlo ancora", + "a.Neue Lernbegleitung einladen": "Invitare un nuovo tutor", + "a.Nicht Bestanden": "Non superato", + "a.Nicht bewertet": "Non valutato", + "a.Nichtleben": "Non vita", + "a.Note": "Note", + "a.NUMBER Elemente abgeschlossen": "{NUMBER} elementi completati", + "a.NUMBER Präsenztage abgeschlossen": "{NUMBER} giorni di presenza completati", + "a.NUMBER Teilnehmer anwesend": "{NUMBER} partecipanti presenti", + "a.Nächste Termine": "", + "a.OldCircle": "", + "a.Optionale Anwesenheit": "Presenza opzionale", + "a.Ort": "Città", + "a.Personen": "Persone", + "a.Personen, die du begleitest": "Persone che accompagni", + "a.Persönliche Informationen": "Informazioni personali", + "a.PLZ": "CAP", + "a.Praxisauftrag": "Lavoro pratico", + "a.Praxisaufträge anschauen": "Visualizzare gli incarichi pratici", + "a.Praxisbildner": "Formatore pratico", + "a.present von total Teilnehmenden anwesend": "{{present}} su {{total}} partecipanti presenti", + "a.Privatadresse": "Indirizzo privato", + "a.Profil anzeigen": "Mostrare il profilo", + "a.Profil bearbeiten": "Modificare il profilo", + "a.Profil ergänzen": "Completare il profilo", + "a.Profilbild": "Immagine del profilo", + "a.Präsenztag": "Giorno di presenza", + "a.Punkte": "punti", + "a.Punkte aus Bewertung": "Punti della valutazione", + "a.PunkteVonDaniel": "", + "a.PunkteVonDaniel123": "", + "a.Rechnung": "Fattura", + "a.RechnungPaymentMethodDescription": "", + "a.Rechnungsadresse": "Indirizzo di fatturazione", + "a.Rechnungsadresse hinzufügen": "Aggiungere un indirizzo di fatturazione", + "a.Rechnungsadresse von {organisation}": "Indirizzo di fatturazione di {{organisation}}", + "a.Rechnungsadresse von {organisation} hinzufügen": "Aggiungere l'indirizzo di fatturazione di {{organisation}}", + "a.Regionenleiter": "", + "a.Resultat": "Risultato", + "a.Schliessen": "", + "a.Selbst- und Fremdeinschätzungen": "Autovalutazioni e valutazioni esterne", + "a.Selbsteinschätzung": "Auto-valutazione", + "a.Selbsteinschätzung anschauen": "Guarda l'auto-valutazione", + "a.Selbsteinschätzung anzeigen": "Mostrare l'auto-valutazione", + "a.Selbsteinschätzung geteilt": "Autovalutazione condivisa", + "a.Selbsteinschätzung mit MENTOR_NAME teilen": "Condividi l'autovalutazione con {{MENTOR_NAME}}", + "a.Selbsteinschätzung teilen": "Condividi l'autovalutazione", + "a.Selbsteinschätzung von FEEDBACK_REQUESTER_NAME": "Autovalutazione di {{FEEDBACK_REQUESTER_NAME}}", + "a.Selbsteinschätzungen": "Auto-valutaziones", + "a.Selbsteinschätzungen geteilt": "Auto-valutazioni condivise", + "a.So startest du mit diesem Lehrgang": "Ecco come iniziare questo percorso di apprendimento", + "a.Standort": "Posizione", + "a.Statistik": "", + "a.Statistik für alle Lernenden": "", + "a.Stelle deinen Lernenden zusätzliche Inhalte zur Verfügung.": "Fornisci ai tuoi partecipanti contenuti aggiuntivi.", + "a.Strasse": "Strada", + "a.Super, nun ist alles bereit. Du bist der Durchführung «{course}» zugewiesen und kannst mit dem Lehrgang starten.": "Ottimo, ora è tutto pronto. Sei assegnato alla sessione «{{course}}» e puoi iniziare il corso.", + "a.Teilnehmer": "Partecipanti", + "a.Teilnehmer im 2024": "", + "a.Telefonnummer": "Numero di telefono", + "a.Telefonnummer hat das falsche Format": "", + "a.Termin": "Data", + "a.Termine": "Date", + "a.Total {NUMBER} Antworten": "Totale {NUMBER} risposte", + "a.Trainer": "Trainer", + "a.Um die Zahlung vornehmen zu können, benötigen wir deine Privatadresse. Optional kannst du die Rechnungsadresse deiner Gesellschaft hinzufügen.": "Per effettuare il pagamento, abbiamo bisogno del tuo indirizzo di casa. Dopo il pagamento riceverai una una conferma di contabilizzazione via e-mail.", + "a.Ungerundete Note": "Nota (non arrotondato)", + "a.Unterlagen": "Documenti", + "a.Unterlagen für Teilnehmenden": "Documenti per i partecipanti", + "a.Unternehmen": "Azienda", + "a.VALUE von MAXIMUM": "{{VALUE}} di {{MAXIMUM}}", + "a.Versicherungsvermittler/-in": "Intermediario/a assicurativo/a AFA", + "a.Vorname": "Nome", + "a.Vorschau Teilnehmer": "Vue des participants", + "a.VorschauTeilnehmer": "Vue des participants", + "a.Wegleitung üK": "Guida CI", + "a.wegleitungUkUrl": "https://www.vbv.ch/fileadmin/vbv/Dokumente/Bildungsabschluesse/KV/Wegleitung_ueK_240215_it_V2.pdf", + "a.Weiter zur Zahlung": "", + "a.Wir haben per E-Mail eine Bestätigung an {email} geschickt.": "Abbiamo inviato una conferma via e-mail a {email}.", + "a.Wähle ein Zulassungsprofil, damit du deinen Lehrgang an der richtigen Stelle beginnen kannst.": "Scegli un profilo di ammissione in modo da iniziare il tuo corso nel posto giusto.", + "a.Wähle ein Zulassungsprofil, damit du deinen Lehrgang an der richtigen Stelle beginnen kannst. Du kannst ihn später jederzeit ändern.": "Scegli un profilo di ammissione in modo da iniziare il tuo corso nel posto giusto. Potrai cambiarlo in seguito in qualsiasi momento.", + "a.Wähle hier den Namen der Gesellschaft aus, in der du arbeitest. So können dich andere Personen einfacher finden.": "Seleziona qui il nome della società per cui lavori. Questo renderà più facile per gli altri trovarti.", + "a.xOfY Punkten erreicht": "{xOfY} punti raggiunti", + "a.Zahlungsart": "Modalità di pagamento", + "a.Zu erledigen": "Da fare", + "a.Zulassungsprofil": "Profilo di ammissione", + "a.Zulassungsprofil auswählen": "Selezionare il profilo di ammissione", + "a.Zum Unterlagen-Upload": "Carica documenti", + "a.Zurück": "", + "a.Zwischenstand": "Punto intermedio", + "a.{AVG} von {MAX}": "{AVG} di {MAX}", + "a.{NUMBER} Bestanden": "{NUMBER} superato", + "a.{NUMBER} Das kann ich": "{NUMBER} posso farlo ", + "a.{NUMBER} Das will ich nochmals anschauen": "{NUMBER} voglio rivederlo", + "a.Überbetriebliche Kurse": "Corsi interaziendali", + "a.Überprüfe deine Eingaben unten und gib anschliessend deine Fremdeinschätzung für FEEDBACK_REQUESTER frei": "Controlla le tue voci qui sotto e poi rilascia la tua valutazione esterna per {{FEEDBACK_REQUESTER}}.", + "a.Übersicht": "Panoramica", + "a.Übersicht anschauen": "Vedere la panoramica", + "Abgabe": "Consegna", + "Abgabetermin Ergebnisse:": "Termine di consegna dei risultati:", "Alle": "Tutto", - "Anwesenheit Präsenzkurse": "Presenza ai corsi", + "Anwesenheit": "Presenza", "Anwesenheit bestätigen": "Confermare la presenza", + "Anwesenheit Präsenzkurse": "Presenza ai corsi", "Anwesenheit prüfen": "Verificare la presenza", "Anwesenheitskontrolle Präsenzkurse": "Controllo di presenza ai corsi", + "assignment.acceptConditionsDisclaimer": "Accettare le condizioni e consegnare i risultati", + "assignment.assessmentDocumentDisclaimer": "Questa analisi guidata del caso viene valutata sulla base del seguente strumento di valutazione:", + "assignment.assessmentTitle": "Valutazione", + "assignment.assignmentSubmitted": "I tuoi risultati sono stati consegnati con successo.", + "assignment.confirmSubmitPerson": "Sì, la persona seguente dovrebbe valutare i miei risultati.", + "assignment.confirmSubmitResults": "Sì, invierò i miei risultati.", + "assignment.Du musst die Bewertung bis am x um y Uhr abschliessen und freigeben": " Devi completare e rilasciare la valutazione entro il {{x}} alle ore {{y}}.", + "assignment.dueDateEvaluation": "Data di rilascio della valutazione", + "assignment.dueDateIntroduction": "Presenta i tuoi risultati entro il:", + "assignment.dueDateNotSet": "Non sono stati registrati dati di consegna per questo svolgimento", + "assignment.dueDateSubmission": "Termine di consegna", + "assignment.dueDateTitle": "assignment.dueDateTitle", + "assignment.edit": "Modificare", + "assignment.effortTitle": "Tempo richiesto", + "assignment.evaluationFeedback": "Feedback", + "assignment.evaluationInstrumentDescriptionText": "Il punteggio totale e il voto risultante vengono calcolati sulla base dello strumento di valutazione archiviato.", + "assignment.evaluationReason": "Motivo", + "assignment.feedbackRequiredText": "Inserisci qui i tuoi commenti.", + "assignment.initialSituationTitle": "Situazione di partenza", + "assignment.justificationRequiredText": "Qui è assolutamente necessario inserire una motivazione.", + "assignment.lastChangesNotSaved": "Non è stato possibile salvare l’ultima modifica.", + "assignment.performanceObjectivesTitle": "Obiettivi di valutazione", + "assignment.showAssessmentDocument": "Mostrare lo strumento di valutazione", + "assignment.submissionNotificationDisclaimer": "I tuoi risultati saranno valutati da {{name}}. Riceverai una notifica non appena la tua valutazione sarà disponibile.", + "assignment.submissionShowSampleSolution": "Mostra esempio di soluzione", + "assignment.submissionShowSampleSolutionText": "Qui troverete una possibile soluzione ai vostri compiti. Le procedure e i processi della vostra organizzazione possono differire da questa soluzione.", + "assignment.submitAssignment": "Consegnare i risultati", + "assignment.taskDefinition": "Svolgi le attività parziali e documenta i tuoi risultati.", + "assignment.taskDefinitionTitle": "Compito", + "assignment.von x Punkten": "di {{x}} punti", + "assignment.x hat die Ergebnisse am y um z Uhr abgegeben": "{{x}} ha consegnato i risultati il {{y}} alle ore {{z}}", + "assignment.x von y Arbeiten abgeschlossen": "{{x}} di {{y}} compiti completati", + "assignment.x von y Kompetenznachweis-Elementen abgeschlossen": "{{x}} su {{y}} elementi del controllo delle competenze completati", + "Aufgrund von Problemen beim Zahlungsanbieter ist ein Erwerb der myVBV-Lizenz derzeit nur mit TWINT möglich. Wir arbeiten mit Hochdruck an der Lösung des Problems. ": "A causa di problemi con il provider di pagamento, al momento è possibile acquistare la licenza myAFA solo con TWINT. Stiamo lavorando duramente per risolvere il problema.", + "Ausbildungsverantwortlicher": "Addetto alla formazione", "Benutzername": "Nome utente", + "Berufsbildner": "", + "Bestanden": "", + "Bewertung von x y": "Valutazione di {{x}} {{y}}", + "Circle": "", + "circlePage.circleContentBoxTitle": "Cosa apprenderai in questo Circle", + "circlePage.contactExpertButton": "Contattare il/la trainer", + "circlePage.contactExpertDescription": "Confrontati con il/la trainer per il Circle {{circleName}}.", + "circlePage.contactLearningMentorButton": "Contattare il tutor", + "circlePage.contactLearningMentorDescription": "Confrontati con il tutor.", + "circlePage.Dieser Inhalt gehört zu x": "Questo contenuto appartiene a «{{x}}»", + "circlePage.documents.action": "Caricare i documenti", + "circlePage.documents.chooseLearningSequence": "Seleziona una sequenza di apprendimento", + "circlePage.documents.chooseName": "Seleziona un nome", + "circlePage.documents.chooseSequence": "Seleziona una sequenza di apprendimento", + "circlePage.documents.deleteModalTitle": "Eliminare il documento", + "circlePage.documents.deleteModalWarning": "Desideri davvero eliminare il documento \"{{title}}\"?
Una volta eseguita, l’operazione non potrà più essere annullata.", + "circlePage.documents.expertDescription": "Fornisci ai tuoi allievi e alle tue allieve contenuti aggiuntivi.", + "circlePage.documents.fileLabel": "File", + "circlePage.documents.maxFileSize": "Dimensioni massime del file: 50 MB", + "circlePage.documents.modalAction": "Selezionare il file", + "circlePage.documents.modalFileName": "Nome", + "circlePage.documents.modalNameInformation": "Max. 70 caratteri", + "circlePage.documents.selectFile": "Seleziona un file", + "circlePage.documents.title": "Documenti", + "circlePage.documents.trainerDescription": "Trova contenuti aggiuntivi per la tua lezione su Teams.", + "circlePage.documents.trainerLinkSrc": "https://vbvbern.sharepoint.com/sites/myVBV-AFA_K-CI", + "circlePage.documents.trainerLinkText": "Visualizzare i contenuti su Teams", + "circlePage.documents.trainerTitle": "Supporto per trainer", + "circlePage.documents.uploadErrorMessage": "Si è verificato un errore durante il caricamento. Riprova.", + "circlePage.documents.userDescription": "Qui trovi ulteriori documenti che ti supporteranno nell’apprendimento in questo Circle.", + "circlePage.duration": "Durata", + "circlePage.gotQuestions": "Hai domande?", + "circlePage.Im KompetenzNavi anschauen": "Mostra nel \"KompetenzNavi\"", + "circlePage.learnMore": "Ottieni maggiori informazioni", + "Cockpit anschauen": "", + "cockpit.all": "Tutti", + "cockpit.examsDone": "Esami sostenuti dal/dalla partecipante.", + "cockpit.feedbacksDone": "Feedback inviati dal/dalla partecipante.", + "cockpit.notifyTask": "Inviare notifica", + "cockpit.notifyTaskDescription": "Inviare notifica al/alla partecipante", + "cockpit.profileLink": "Mostrare il profilo", + "cockpit.progress": "Partecipanti / Stato", + "cockpit.tasksDone": "Incarichi di trasferimento completati dal/dalla partecipante.", + "cockpit.title": "Cockpit", + "cockpit.trainerFilesText": "Qui trovi i documenti del/della trainer (soluzioni, presentazioni ecc.) per il tuo Circle.", + "competence.listPageDescription": "Einleitung: Hier findest du einen Überblick aller Handlungskompetenzen und den dazugehörigen Leistungszielen, welche für deinen Lehrgang relevant sind. ", + "competenceCertificate.mainTitle": "Controllo delle competenze", + "competenceCertificates.mainTitle": "Controlli delle competenze", + "competences.assessAgain": "Guarda l'autovalutazione nel Circle «{{x}}»", + "competences.assessment": "Valutazioni", + "competences.competences": "Competenze", + "competences.lastImprovements": "Ultime competenze migliorate", + "competences.notAssessed": "Non valutato", + "competences.title": "NaviCompetenze", + "constants.no": "No", + "constants.satisfied": "soddisfatto/a", + "constants.unsatisfied": "insoddisfatto/a", + "constants.verySatisfied": "molto soddisfatto/a", + "constants.veryUnsatisfied": "molto insoddisfatto/a", + "constants.yes": "Sì", + "dashboard.courses": "Corso", + "dashboard.nocourses": "Non sei ancora stato/a assegnato/a a nessun corso.", + "dashboard.welcome": "Ti diamo il benvenuto, {{name}}", + "Der Preis für den Lehrgang «Versicherungsvermittler-/in VBV» beträgt CHF 300 exkl. MWSt.. Mit dem Kauf erhältst du Zugang zum Lernpfad und den Lernmedien.": "Il prezzo del corso \"Intermediario/a assicurativo/a AFA\" è di 300 CHF IVA esclusa. L'acquisto ti dà accesso al percorso di apprendimento e ai supporti didattici.", + "dueDates.noDueDatesAvailable": "Nessuna data disponibile", + "dueDates.showAllDueDates": "Mostrare tutte le date", + "Durchführung": "", + "edoniqTest.checkboxTitle": "Accetta le condizioni ed esegui il test", + "edoniqTest.deadlineInPast": "Il test non può più essere eseguito poiché la data di consegna è scaduta.", + "edoniqTest.qualifiesForExtendedTime": "Confermo di avere diritto a un test con compensazione delli ineguaglianze", + "edoniqTest.qualifiesForExtendedTimeTitle": "Impiegati con compensazione delli ineguaglianze (soggetto ad approvazione)", + "edoniqTest.startTest": "Inizia la prova", + "edoniqTest.submitDateDescription": "Invia i tuoi risultati puntualmente entro il {{x}}.", + "edoniqTest.testDescription": "Esegui il test seguente. Il test può essere eseguito solo una volta ed è rilevante per il voto.", + "edoniqTest.testSubmitted": "Hai completato questo test", + "edoniqTest.viewResults": "Guarda i risultati", + "Elemente zu erledigen": "Elementi da completare", "Ergebnisse anschauen": "Vedere i risultati", + "Ergebnisse anzeigen": "Mostra i risultati", "Feedback": "Feedback", "Feedback anschauen": "Vedere il feedback", - "Hier überprüfst und bestätigst du die Anwesenheit deiner Teilnehmenden": [], + "feedback.answers": "Risposte", + "feedback.areYouSatisfied": "Feedback sul corso", + "feedback.average": "Media", + "feedback.circleFeedback": "Feedback sul Circle", + "feedback.completionDescription": "Il tuo feedback è anonimo. Il/La trainer non visualizzerà il tuo nome e cognome.", + "feedback.completionDescriptionVV": "Il tuo feedback è anonimo e il tuo nome e cognome non sono visibili.", + "feedback.completionTitle": "Invia il tuo feedback a {{name}}", + "feedback.completionTitleVV": "Invia il tuo feedback all'AFA", + "feedback.courseNegativeFeedbackLabel": "Dove vedi un potenziale di miglioramento?", + "feedback.coursePositiveFeedbackLabel": "Cos’hai apprezzato particolarmente?", + "feedback.feedbackPageInfo": "I/Le partecipanti hanno fornito il feedback", + "feedback.feedbackPageTitle": "Feedback sul corso", + "feedback.feedbackSent": "Il tuo feedback è stato inviato", + "feedback.goalAttainmentLabel": "Raggiungimento complessivo degli obiettivi", + "feedback.happy": "Soddisfatto/a", + "feedback.instructorCompetenceLabel": "Come valuti il livello di preparazione sui temi e le competenze specialistiche dell’istruttore/istruttrice del corso?", + "feedback.instructorOpenFeedbackLabel": "Cos’altro vorresti ancora dire all’istruttore/istruttrice del corso?", + "feedback.instructorRespectLabel": "Le domande e i suggerimenti dei/delle partecipanti al corso sono stati accolti e presi sul serio?", + "feedback.intro": "{{name}}, il tuo/la tua trainer ti invita a fornire un feedback su di lui/lei. È facoltativo, ma sarebbe utile per migliorare la tua esperienza di apprendimento.", + "feedback.materialsRatingLabel": "Se sì: qual è la valutazione dei documenti di preparazione (ad es. eLearning)?", + "feedback.noFeedbacks": "Non è stato fornito ancora nessun feedback", + "feedback.praxisAssignmentClarity": "Gli incarichi di lavori pratici erano chiari e comprensibili?", + "feedback.preparationTaskClarityLabel": "Gli incarichi di preparazione erano chiari e comprensibili?", + "feedback.proficiencyLabel": "Come valuti il tuo livello di preparazione sui temi dopo il corso?", + "feedback.proficiencyLabelVV": "Come valuti il tuo livello di preparazione sui temi dopo il Circle?", + "feedback.questionTitle": "Domanda", + "feedback.recommendLabel": "Raccomanderesti il corso?", + "feedback.recommendLabelVV": "Raccomanderesti il Circle?", + "feedback.satisfactionLabel": "Soddisfazione complessiva", + "feedback.sendFeedback": "Inviare il feedback", + "feedback.sentByUsers": "Fornito da {{count}} partecipanti", + "feedback.showDetails": "Mostrare i dettagli", + "feedback.unhappy": "Insoddisfatto/a", + "feedback.veryHappy": "Molto soddisfatto/a", + "feedback.veryUnhappy": "Molto insoddisfatto/a", + "Feedback: Feedback zum Lehrgang": "Feedback: Feedback sul corso", + "foobar.hello": "Ciao Innoweek", + "footer.contact": "Contatti", + "footer.contactLink": "https://www.vbv.ch/it/afa/organizzazione/contatto", + "footer.contactText": "Contatti", + "footer.copyright": "© 2023 AFA", + "footer.dataProtectionLink": "https://www.vbv.ch/it/dichiarazione-di-protezione-dei-dati", + "footer.dataProtectionText": "Dichiarazione sulla protezione dei dati", + "footer.imprintLink": "https://www.vbv.ch/it/impressum", + "footer.imprintText": "Impressum", + "Freigabetermin Bewertungen:": "Termine di pubblicazione delle valutazioni:", + "Füge dein Profilbild hinzu und ergänze die fehlenden Angaben.": "Aggiungi la foto del tuo profilo e inserisci i dettagli mancanti.", + "Geleitete Fallarbeit": "Caso di studio guidato", + "general.back": "Indietro", + "general.backCapitalized": "Indietro", + "general.backToCircle": "Torna al Circle", + "general.backToLearningPath": "Torna al percorso formativo", + "general.cancel": "Annullare", + "general.certificate_many": "Certificati", + "general.certificate_one": "Certificato", + "general.certificate_other": "Certificati", + "general.circles": "Circles", + "general.close": "Chiudere", + "general.exam_many": "Esami", + "general.exam_one": "Esame", + "general.exam_other": "Esami", + "general.examResult_many": "Risultati degli esami", + "general.examResult_one": "Risultato dell’esame", + "general.examResult_other": "Risultati degli esami", + "general.feedback_many": "Feedback", + "general.feedback_one": "Feedback", + "general.feedback_other": "Feedback", + "general.im circle x anschauen": "Guarda nel Circle «{{x}}»", + "general.introduction": "Introduzione", + "general.learningPath": "Percorso di formazione", + "general.learningSequence": "Sequenza di apprendimento", + "general.learningUnit": "Unità di apprendimento", + "general.next": "Avanti", + "general.nextStep": "Continua", + "general.no": "No", + "general.notification_many": "Notifiche", + "general.notification_one": "Notifica", + "general.notification_other": "Notifiche", + "general.profileLink": "Mostrare i dettagli", + "general.save": "Salvare", + "general.send": "Inviare", + "general.settings": "Impostazioni account", + "general.shop": "Shop", + "general.show": "Visualizzare", + "general.showAll": "Visualizzare tutto", + "general.start": "Si comincia", + "general.submission": "Consegna", + "general.title": "myAFA", + "general.transferTask_many": "Incarichi di trasferimento", + "general.transferTask_one": "Incarico di trasferimento", + "general.transferTask_other": "Incarichi di trasferimento", + "general.yes": "Sì", + "Generation": "", + "Hast du Fragen?": "Hai domande?", + "Hier überprüfst und bestätigst du die Anwesenheit deiner Teilnehmenden.": "Qui controlli e confermi la presenza dei tuoi partecipanti.", + "Ich will die Anwesenheit der untenstehenden Personen definitiv bestätigen.": "Voglio confermare definitivamente la presenza delle persone sottostanti.", + "Jahr": "", + "Keine Auftragsdetails verfügbar.": "", + "Kompetenznachweise": "", + "Kompetenzprofil": "", + "Kosten im": "Costi nel", + "Kosten in": "", + "Kosten in 2024": "", + "language.de": "Deutsch", + "language.fr": "Français", + "language.it": "Italiano", + "learningContent.markAsDone": "Contrassegnare come completato", + "learningContentTypes.attendanceCourse": "Corso di presenza", + "learningContentTypes.casework": "Caso di studio guidato", + "learningContentTypes.documents": "Documenti", + "learningContentTypes.edoniqTest": "Domande di conoscenza e di comprensione", + "learningContentTypes.feedback": "Feedback", + "learningContentTypes.knowledgeAssessment": "Test", + "learningContentTypes.learningModule": "Modulo di formazione", + "learningContentTypes.mandatory_casework": "", + "learningContentTypes.placeholder": "In attuazione", + "learningContentTypes.praxisAssignment": "Ordine", + "learningContentTypes.prepAssignment": "Incarico di preparazione", + "learningContentTypes.reflection": "Riflessione", + "learningContentTypes.task": "", + "learningContentTypes.test": "Test", + "learningContentTypes.text": "Testo", + "learningContentTypes.video": "Video", + "learningPathPage.currentCircle": "Circle attuale", + "learningPathPage.listView": "Vista elenco", + "learningPathPage.nextDueDates": "Prossime date", + "learningPathPage.nextStep": "Prossimo passo", + "learningPathPage.pathView": "Vista percorso", + "learningPathPage.progressText": "Hai svolto {{ inProgressCount }} Circles su {{ allCount }}", + "learningPathPage.showListView": "Mostrare la vista elenco", + "learningPathPage.topics": "Temi:", + "learningPathPage.welcomeBack": "Bentornato/a al tuo corso:", + "Lehrgang": "", + "Lernbegleitung einladen": "", + "Lernpfad kaufen": "", + "login.demoLogin": "Login Demo", + "login.guidelineFile": "Registrazione_myAFA.pdf", + "login.guidelineText": "Scopri come iscriverti come apprendista professionale", + "login.login": "Login", + "login.ssoLogin": "Login/Registrazione SSO", + "login.ssoText": "Clicca sul pulsante per effettuare il login o registrarti tramite SSO.", + "login.welcomeText": "Benvenuti nella pagina di login per i corsi interaziendali del ramo di formazione e degli esami commerciali \"Assicurazione privata\".", + "login.welcomeUk": "Benvenuti", + "mainNavigation.logout": "Logout", + "mainNavigation.profile": "Profilo", + "mediaLibrary.handlungsfelder.description": "Trova tutte le risorse dei campi d’azione, come materiali didattici, link e altre informazioni utili.", + "mediaLibrary.handlungsfelder.title_many": "Campi d’azione", + "mediaLibrary.handlungsfelder.title_one": "Campo d’azione", + "mediaLibrary.handlungsfelder.title_other": "Campi d’azione", + "mediaLibrary.learningMedia.description": "Trova un elenco completo di libri e altri materiali a cui si rimanda nel corso.", + "mediaLibrary.learningMedia.titel": "Materiali didattici", + "mediaLibrary.show": "Visualizza la libreria mediateca", + "mediaLibrary.title": "Mediateca", + "Meine Lernbegleiter": "", + "Meine Praxisbildner": "I miei formatori pratici", + "Member": "Partecipanti", + "MentorUK": "Formatore/-trice pratico/a", + "MentorVV": "Tutor", + "messages.sendMessage": "Scrivere un messaggio", "MS Teams öffnen": "Aprire MS Teams", + "Nach der Bezahlung von 300 CHF exkl. MWSt. erhältst du Zugang für den gesamten Lehrgang (inkl. Prüfung).": "", + "Neuen Praxisbildner einladen": "Invitare un nuovo formatore pratico", + "Nicht bestanden": "", + "notifications.load_more": "Caricare altro", + "notifications.no_notifications": "Al momento non hai nessuna notifica", "Nächste Termine": "Prossime date", "Passwort": "Password", + "Personen": "", + "profile.": "", + "profile.all": "Multiramo", + "profile.krankenzusatzversicherung": "Malattie complementare", + "profile.leben": "Vita", + "profile.nichtleben": "Non vita", + "profile.null": "", + "Präsenzkurs": "", + "receivedEvaluation.no": "Devi riguardarlo ancora una volta", + "receivedEvaluation.yes": " Sì, puoi farlo", + "Reflexion": "", + "Region": "", + "Rolle": "", "Sehr unzufrieden": "molto insoddisfatto", "Sehr zufrieden": "molto soddisfatto", + "selfEvaluation.instruction.0": "Überprüfe, ob du in der Lernheinheit", + "selfEvaluation.instruction.1": "alles verstanden hast.", + "selfEvaluation.instruction.2": "Lies die folgende Aussage und bewerte sie:", + "selfEvaluation.no": "Devo riguardarlo ancora una volta", + "selfEvaluation.progressLink": "Aprire Navigatore Competenze", + "selfEvaluation.progressText": "Controlla i tuoi progressi nel Navigatore Competenze:", + "selfEvaluation.selfEvaluation": "Auto-valutazione", + "selfEvaluation.selfEvaluationNo": "$t(a.Selbsteinschätzung): Devo riguardarlo ancora una volta.", + "selfEvaluation.selfEvaluationYes": "$t(a.Selbsteinschätzung): Ho compreso tutto.", + "selfEvaluation.steps": "Passo {{current}} di {{max}}", + "selfEvaluation.title": "Selbsteinschätzung {{title}}", + "selfEvaluation.yes": "Sì, ho compreso tutto", + "settings.emailNotifications": "Notifiche e-mail", + "shop.paymentCembraByjunoMessage": "Un pagamento con fattura sarà sempre addebitato al tuo indirizzo privato. È assolutamente necessario fornire il tuo numero di telefono e la tua data di nascita. Importante: il termine di pagamento è di 30 giorni. L'elaborazione del pagamento (inclusi sollecito, incasso, recupero crediti) viene effettuata direttamente da CembraPay AG. Riceverete la fattura via e-mail.", + "Sobald du einer Durchführung zugewiesen bist, ist alles bereit.": "Non appena sarai assegnato a un'implementazione, tutto sarà pronto.", + "Sprache wählen und Lehrgang starten": "Seleziona la lingua e inizia il corso", + "start.chooseCourse": "Scegli il tuo corso ora:", + "start.myvbvDescription": "L'ambiente di apprendimento per l'assicurazione", + "start.ukDescription": "I corsi interaziendali nell'ambito del programma di formazione «Impiegato/a di commercio AFC Assicurazione privata».", + "start.ukTitle": "Impiegato/a di commercio AFC Assicurazione privata / Corsi interaziendali", + "start.vvDescription": "Il percorso di apprendimento e i supporti didattici che ti preparano all'esame «Intermediario/a assicurativo/a AFA».", "Status anschauen": "Vedere lo stato", + "Supervisor": "Responsabile CI", + "Teilnehmer": "", + "Teilnehmer im": "I partecipanti al", + "Teilnehmer im 2024": "", + "Teilnehmer nach Zulassungsprofilen": "Partecipanti secondo i profili di ammissione", + "Teilnehmer nach Zulassungsprofilen im": "", + "Termin nicht festgelegt": "", "TODO: Nächste Termine": "TODO: prossime date", + "Trainer": "Trainer", "Trainerunterlagen": "Documenti del/della trainer", - "Wissens - und Verständnisfragen": "Domande di conoscenza e di comprensione", - "Zur Zeit sind keine Termine vorhanden": "Al momento non ci sono scadenze", - "a": { - "Alle aufklappen": "Apri tutto", - "Begründung": "Motivazione", - "Beurteilungsinstrument anzeigen": "Mostra lo strumento di valutazione", - "Beurteilungskriterium": "Criterio di valutazione", - "Bewertung": "Valutazione", - "Bewertung fortsetzen": "Continua la valutazione", - "Bewertung freigegeben": "Valutazioni approvate/a", - "Bewertung starten": "Continua la valutazione", - "Circle": "Cerchio", - "Datum": "Data", - "Details anzeigen": "Mostrare i dettagli", - "Ergebnisse": "Risultati", - "Ergebnisse abgegeben": "Risultati consegnati", - "Ergebnisse anschauen": "Guarda i risultati", - "Geleitete Fallarbeit": "Caso di studio guidato", - "Gesamtpunktzahl": "Punteggio totale", - "Handlungskompetenzen": "Competenze operative", - "Höchstpunktzahl": "Punteggio massimo", - "Kein Circle verfügbar oder ausgewählt": [], - "KompetenzNavi": "NaviCompetenze", - "Kompetenznachweis": "Controllo delle competenze", - "Kompetenznachweise": "Controlli delle competenze", - "Leistungsziele": "Obiettivo di valutazione", - "Mediathek": "Mediateca", - "Punkte": "punti", - "Selbsteinschätzung": "Auto-valutazione", - "Selbsteinschätzung anschauen": "Guarda l'auto-valutazione", - "Selbsteinschätzungen": "Auto-valutaziones", - "Standort": "Posizione", - "Trainer": "Trainer", - "VorschauTeilnehmer": "Anteprima partecipante", - "Zwischenstand": "Punto intermedio", - "competenceCertificateNoUserPoints": "Il punteggio verrà calcolato in un momento successivo.", - "Übersicht": "Panoramica" - }, - "assignment": { - "Du musst die Bewertung bis am x um y Uhr abschliessen und freigeben": " Devi completare e rilasciare la valutazione entro il {{x}} alle ore {{y}}.", - "acceptConditionsDisclaimer": "Accettare le condizioni e consegnare i risultati", - "assessmentDocumentDisclaimer": "Questa analisi guidata del caso viene valutata sulla base del seguente strumento di valutazione:", - "assessmentTitle": "Valutazione", - "assignmentSubmitted": "I tuoi risultati sono stati consegnati con successo.", - "confirmSubmitPerson": "Confermo che i miei risultati dovranno essere valutati dalla seguente persona.", - "confirmSubmitResults": "Confermo di aver controllato il riepilogo dei miei risultati e di volerli consegnare.", - "dueDateEvaluation": "Data di rilascio della valutazione", - "dueDateIntroduction": "Presenta i tuoi risultati entro il:", - "dueDateNotSet": "Non sono stati registrati dati di consegna per questo svolgimento", - "dueDateSubmission": "Termine di consegna", - "edit": "Modificare", - "effortTitle": "Tempo richiesto", - "evaluationInstrumentDescriptionText": "Il punteggio totale e il voto risultante vengono calcolati sulla base dello strumento di valutazione archiviato.", - "initialSituationTitle": "Situazione di partenza", - "justificationRequiredText": "Qui è assolutamente necessario inserire una motivazione.", - "lastChangesNotSaved": "Non è stato possibile salvare l’ultima modifica.", - "performanceObjectivesTitle": "Obiettivi di valutazione", - "showAssessmentDocument": "Mostrare lo strumento di valutazione", - "submissionNotificationDisclaimer": "I tuoi risultati saranno valutati da {{name}}. Riceverai una notifica non appena la tua valutazione sarà disponibile.", - "submitAssignment": "Consegnare i risultati", - "taskDefinition": "Svolgi le attività parziali e documenta i tuoi risultati.", - "taskDefinitionTitle": "Compito", - "von x Punkten": "di {{x}} punti", - "x hat die Ergebnisse am y um z Uhr abgegeben": "{{x}} ha consegnato i risultati il {{y}} alle ore {{z}}", - "x von y Arbeiten abgeschlossen": "{{x}} di {{y}} compiti completati", - "x von y Kompetenznachweis-Elementen abgeschlossen": "{{x}} su {{y}} elementi del controllo delle competenze completati" - }, - "circlePage": { - "Dieser Inhalt gehört zu x": "Questo contenuto appartiene a «{{x}}»", - "Im KompetenzNavi anschauen": "Mostra nel \"KompetenzNavi\"", - "circleContentBoxTitle": "Cosa apprenderai in questo Circle", - "contactExpertButton": "Contattare il/la trainer", - "contactExpertDescription": "Confrontati con il/la trainer per il Circle {{circleName}}.", - "documents": { - "action": "Caricare i documenti", - "chooseLearningSequence": "Seleziona una sequenza di apprendimento", - "chooseName": "Seleziona un nome", - "chooseSequence": "Seleziona una sequenza di apprendimento", - "deleteModalTitle": "Eliminare il documento", - "deleteModalWarning": "Desideri davvero eliminare il documento \"{{title}}\"?
Una volta eseguita, l’operazione non potrà più essere annullata.", - "expertDescription": "Fornisci ai tuoi allievi e alle tue allieve contenuti aggiuntivi.", - "fileLabel": "File", - "maxFileSize": "Dimensioni massime del file: 20 MB", - "modalAction": "Selezionare il file", - "modalFileName": "Nome", - "modalNameInformation": "Max. 70 caratteri", - "selectFile": "Seleziona un file", - "title": "Documenti", - "trainerDescription": "Trova contenuti aggiuntivi per la tua lezione su Teams.", - "trainerLinkSrc": "https://vbvbern.sharepoint.com/sites/myVBV-AFA_K-CI", - "trainerLinkText": "Visualizzare i contenuti su Teams", - "trainerTitle": "Supporto per trainer", - "uploadErrorMessage": "Si è verificato un errore durante il caricamento. Riprova.", - "userDescription": "Qui trovi ulteriori documenti che ti supporteranno nell’apprendimento in questo Circle." - }, - "duration": "Durata", - "gotQuestions": "Hai domande?", - "learnMore": "Ottieni maggiori informazioni" - }, - "cockpit": { - "all": "Tutti", - "examsDone": "Esami sostenuti dal/dalla partecipante.", - "feedbacksDone": "Feedback inviati dal/dalla partecipante.", - "notifyTask": "Inviare notifica", - "notifyTaskDescription": "Inviare notifica al/alla partecipante", - "profileLink": "Mostrare il profilo", - "progress": "Partecipanti / Stato", - "tasksDone": "Incarichi di trasferimento completati dal/dalla partecipante.", - "title": "Cockpit", - "trainerFilesText": "Qui trovi i documenti del/della trainer (soluzioni, presentazioni ecc.) per il tuo Circle." - }, - "competenceCertificate": { - "mainTitle": "Controllo delle competenze" - }, - "competenceCertificates": { - "mainTitle": "Controlli delle competenze" - }, - "competences": { - "assessAgain": "Guarda l'autovalutazione nel cerchio «{{x}}»", - "assessment": "Valutazioni", - "competences": "Competenze", - "lastImprovements": "Ultime competenze migliorate", - "notAssessed": "Non valutato", - "title": "NaviCompetenze" - }, - "constants": { - "no": "No", - "satisfied": "soddisfatto/a", - "unsatisfied": "insoddisfatto/a", - "verySatisfied": "molto soddisfatto/a", - "veryUnsatisfied": "molto insoddisfatto/a", - "yes": "Sì" - }, - "dashboard": { - "courses": "Corso", - "dueDatesTitle": "Date", - "nocourses": "Non sei ancora stato/a assegnato/a a nessun corso.", - "welcome": "Ti diamo il benvenuto, {{name}}" - }, - "dueDates": { - "nextDueDates": "Prossime scadenze", - "noDueDatesAvailable": "Nessuna data disponibile", - "showAllDueDates": "Mostrare tutte le date" - }, - "edoniqTest": { - "qualifiesForExtendedTime": "Confermo di avere diritto a un test con compensazione delli ineguaglianze", - "qualifiesForExtendedTimeTitle": "Impiegati con compensazione delli ineguaglianze (soggetto ad approvazione)", - "startTest": "Inizia la prova" - }, - "feedback": { - "answers": "Risposte", - "areYouSatisfied": "Quanto sei soddisfatto/a?", - "average": "Media", - "circleFeedback": "Feedback sul Circle", - "completionDescription": "Il tuo feedback è anonimo. Il/La trainer non visualizzerà il tuo nome e cognome.", - "completionTitle": "Invia il tuo feedback a {{name}}", - "courseNegativeFeedbackLabel": "Dove vedi un potenziale di miglioramento?", - "coursePositiveFeedbackLabel": "Cos’hai apprezzato particolarmente?", - "feedbackPageInfo": "I/Le partecipanti hanno fornito il feedback", - "feedbackPageTitle": "Feedback sul corso", - "feedbackSent": "Il tuo feedback è stato inviato", - "goalAttainmentLabel": "Raggiungimento complessivo degli obiettivi", - "happy": "Soddisfatto/a", - "instructorCompetenceLabel": "Come valuti il livello di preparazione sui temi e le competenze specialistiche dell’istruttore/istruttrice del corso?", - "instructorOpenFeedbackLabel": "Cos’altro vorresti ancora dire all’istruttore/istruttrice del corso?", - "instructorRespectLabel": "Le domande e i suggerimenti dei/delle partecipanti al corso sono stati accolti e presi sul serio?", - "intro": "{{name}}, il tuo/la tua trainer ti invita a fornire un feedback su di lui/lei. È facoltativo, ma sarebbe utile per migliorare la tua esperienza di apprendimento.", - "materialsRatingLabel": "Se sì: qual è la valutazione dei documenti di preparazione (ad es. eLearning)?", - "noFeedbacks": "Non è stato fornito ancora nessun feedback", - "preparationTaskClarityLabel": "Gli incarichi di preparazione erano chiari e comprensibili?", - "proficiencyLabel": "Come valuti il tuo livello di preparazione sui temi dopo il corso?", - "questionTitle": "Domanda", - "recommendLabel": "Raccomanderesti il corso?", - "satisfactionLabel": "Soddisfazione complessiva", - "sendFeedback": "Inviare il feedback", - "sentByUsers": "Fornito da {{count}} partecipanti", - "showDetails": "Mostrare i dettagli", - "unhappy": "Insoddisfatto/a", - "veryHappy": "Molto soddisfatto/a", - "veryUnhappy": "Molto insoddisfatto/a" - }, - "foobar": { - "hello": "Ciao Innoweek" - }, - "footer": { - "contact": "Contatti", - "contactLink": "https://www.vbv.ch/it/afa/organizzazione/contatto", - "contactText": "Contatti", - "copyright": "© 2023 AFA", - "dataProtectionLink": "https://www.vbv.ch/it/dichiarazione-di-protezione-dei-dati", - "dataProtectionText": "Dichiarazione sulla protezione dei dati", - "imprintLink": "https://www.vbv.ch/it/impressum", - "imprintText": "Impressum" - }, - "general": { - "back": "Indietro", - "backCapitalized": "Indietro", - "backToCircle": "Torna al Circle", - "backToLearningPath": "Torna al percorso formativo", - "certificate_many": "Certificati", - "certificate_one": "Certificato", - "certificate_other": "Certificati", - "circles": "Circle", - "close": "Chiudere", - "examResult_many": "Risultati degli esami", - "examResult_one": "Risultato dell’esame", - "examResult_other": "Risultati degli esami", - "exam_many": "Esami", - "exam_one": "Esame", - "exam_other": "Esami", - "feedback_many": "Feedback", - "feedback_one": "Feedback", - "feedback_other": "Feedback", - "im circle x anschauen": "Guarda nel cerchio «{{x}}»", - "introduction": "Introduzione", - "learningPath": "Percorso di formazione", - "learningSequence": "Sequenza di apprendimento", - "learningUnit": "Unità di apprendimento", - "next": "Avanti", - "nextStep": "Continua", - "no": "No", - "notification_many": "Notifiche", - "notification_one": "Notifica", - "notification_other": "Notifiche", - "profileLink": "Mostrare i dettagli", - "save": "Salvare", - "send": "Inviare", - "settings": "Impostazioni account", - "shop": "Shop", - "show": "Visualizzare", - "showAll": "Visualizzare tutto", - "start": "Si comincia", - "submission": "Consegna", - "title": "myAFA", - "transferTask_many": "Incarichi di trasferimento", - "transferTask_one": "Incarico di trasferimento", - "transferTask_other": "Incarichi di trasferimento", - "yes": "Sì" - }, - "language": { - "de": "Deutsch", - "fr": "Français", - "it": "Italiano" - }, - "learningContent": { - "markAsDone": "Contrassegnare come completato" - }, - "learningContentTypes": { - "attendanceCourse": "Corso di presenza", - "casework": "Caso di studio guidato", - "documents": "Documenti", - "edoniqTest": "Domande di conoscenza e di comprensione", - "feedback": "Feedback", - "learningModule": "Modulo di formazione", - "placeholder": "In attuazione", - "prepAssignment": "Incarico di preparazione", - "reflection": "Riflessione", - "task": "Attività", - "test": "Test", - "text": "Testo", - "video": "Video" - }, - "learningPathPage": { - "currentCircle": "Circle attuale", - "listView": "Vista elenco", - "nextDueDates": "Prossime date", - "nextStep": "Prossimo passo", - "pathView": "Vista percorso", - "progressText": "Hai svolto {{ inProgressCount }} Circle su {{ allCount }}", - "showListView": "Mostrare la vista elenco", - "topics": "Temi:", - "welcomeBack": "Bentornato/a al tuo corso:" - }, - "login": { - "demoLogin": "Login Demo", - "guidelineFile": "Registrazione_myAFA.pdf", - "guidelineText": "Scopri come iscriverti come apprendista professionale", - "login": "Login", - "ssoLogin": "Login/Registrazione SSO", - "ssoText": "Clicca sul pulsante per effettuare il login o registrarti tramite SSO.", - "welcomeText": "Benvenuti nella pagina di login per i corsi interaziendali del ramo di formazione e degli esami commerciali \"Assicurazione privata\".", - "welcomeUk": "Benvenuti" - }, - "mainNavigation": { - "logout": "Logout", - "profile": "Profilo" - }, - "mediaLibrary": { - "handlungsfelder": { - "description": "Trova tutte le risorse dei campi d’azione, come materiali didattici, link e altre informazioni utili.", - "title_many": "Campi d’azione", - "title_one": "Campo d’azione", - "title_other": "Campi d’azione" - }, - "learningMedia": { - "description": "Trova un elenco completo di libri e altri materiali a cui si rimanda nel corso.", - "titel": "Materiali didattici" - }, - "title": "Mediateca" - }, - "messages": { - "sendMessage": "Scrivere un messaggio" - }, - "notifications": { - "load_more": "Caricare altro", - "no_notifications": "Al momento non hai nessuna notifica" - }, - "selfEvaluation": { - "instruction": [ - "Überprüfe, ob du in der Lernheinheit", - "alles verstanden hast.", - "Lies die folgende Aussage und bewerte sie:" - ], - "no": "Devo riguardarlo ancora una volta", - "progressLink": "Aprire Navigatore Competenze", - "progressText": "Controlla i tuoi progressi nel Navigatore Competenze:", - "selfEvaluation": "Auto-valutazione", - "selfEvaluationNo": "$t(a.Selbsteinschätzung): Devo riguardarlo ancora una volta.", - "selfEvaluationYes": "$t(a.Selbsteinschätzung): Ho compreso tutto.", - "steps": "Passo {{current}} di {{max}}", - "title": "Selbsteinschätzung {{title}}", - "yes": "Sì, ho compreso tutto" - }, - "settings": { - "emailNotifications": "Notifiche e-mail" - }, - "uk": { - "contact": { - "address": "Laupenstrasse 10, 3008 Berna", - "team": "Team Sviluppo delle giovani leve", - "title": "Associazione per la formazione professionale nell'assicurzione" - }, - "dashboard": { - "allClear": "È tutto chiaro?", - "nextSteps": "In qualità di apprendista, nei prossimi giorni sarai assegnata/o a un corso interaziendale. Poi il riquadro di formazione personalizzato del corso apparirà qui con ulteriori informazioni.", - "welcome": "Tutto ha funzionato, ora sei registrata/o nell'ambiente di apprendimento digitale dell'Associazione per la formazione professionale nell'assicurazione (AFA)!" - } - }, + "TrainingResponsible": "Addetto alla formazione", + "uk.contact.address": "Laupenstrasse 10, 3008 Berna", + "uk.contact.team": "Team Sviluppo delle giovani leve", + "uk.contact.title": "Associazione per la formazione professionale nell'assicurzione", + "uk.dashboard.allClear": "È tutto chiaro?", + "uk.dashboard.nextSteps": "In qualità di apprendista, nei prossimi giorni sarai assegnata/o a un corso interaziendale. Poi il riquadro di formazione personalizzato del corso apparirà qui con ulteriori informazioni.", + "uk.dashboard.welcome": "Tutto ha funzionato, ora sei registrata/o nell'ambiente di apprendimento digitale dell'Associazione per la formazione professionale nell'assicurazione (AFA)!", + "UnknownRoleKey": "", "unzufrieden": "insoddisfatto", + "Vorbedingung": "Condizione preliminare", + "Vorbereitungsaufgabe": "Incarico di preparazione", + "vv.contact.team": "Team di intermediari", + "Weiter lernen": "Continuare a studiare", + "Wichtig: wird die Rechnung von deinem Arbeitgeber bezahlt, dann kannst du zusätzlich die Rechnungsadresse deines Arbeitsgebers erfassen.": "Importante: se la fattura è pagata dal tuo datore di lavoro, puoi inserire anche l'indirizzo di fatturazione del tuo datore di lavoro.", + "Wir bedauern die Unannehmlichkeiten und danken für dein Verständnis. Bei Fragen steht dir das Team Vermittler gerne zur Verfügung.": "Ci dispiace per l'inconveniente e ti ringraziamo per la tua comprensione. Per qualsiasi domanda, non esitare a contattare il team intermediari.", + "Wissens - und Verständnisfragen": "Domande di conoscenza e di comprensione", + "Wähle ein Zulassungsprofil, damit du deinen Lehrgang an der richtigen Stelle beginnen kannst": "Scegli un profilo di ammissione in modo da iniziare il tuo corso nel posto giusto.", + "Wähle ein Zulassungsprofil, damit du deinen Lehrgang an der richtigen Stelle beginnen kannst.": "Scegli un profilo di ammissione in modo da iniziare il tuo corso nel posto giusto.", + "x von y abgeschlossen": "{{x}} di {{y}} completate/a", "x von y Bewertungen freigegeben": "{{x}} di {{y}} valutazioni approvate/a", "x von y Ergebnisse abgegeben": "{{x}} di {{y}} risultati consegnati/o", "x von y Feedbacks abgegeben": "{{x}} di {{y}} feedback consegnati/o", - "x von y abgeschlossen": "{{x}} di {{y}} completate/a", - "zufrieden": "soddisfatto" + "Zu erledigen": "", + "zufrieden": "soddisfatto", + "Zulassungsprofil": "", + "Zur Zeit sind keine Termine vorhanden": "Al momento non ci sono scadenze", + "Überbetriebliche Kurse": "" } diff --git a/client/src/main.ts b/client/src/main.ts index f9124525..4c1dafc6 100644 --- a/client/src/main.ts +++ b/client/src/main.ts @@ -1,4 +1,4 @@ -import { i18nextInit } from "@/i18nextWrapper"; +import { i18nextInit, loadI18nextLocaleMessages } from "@/i18nextWrapper"; import { generateLocalSessionKey } from "@/statistics"; import * as Sentry from "@sentry/vue"; import i18next from "i18next"; @@ -48,6 +48,8 @@ Sentry.init({ }); i18nextInit().then(() => { - app.use(I18NextVue, { i18next }); - app.mount("#app"); + loadI18nextLocaleMessages("de").then(() => { + app.use(I18NextVue, { i18next }); + app.mount("#app"); + }); }); diff --git a/client/src/pages/cockpit/assignmentsPage/AssignmentDetails.vue b/client/src/pages/cockpit/assignmentsPage/AssignmentDetails.vue index ddc599b5..dc6b1889 100644 --- a/client/src/pages/cockpit/assignmentsPage/AssignmentDetails.vue +++ b/client/src/pages/cockpit/assignmentsPage/AssignmentDetails.vue @@ -80,7 +80,7 @@ function findUserPointsHtml(userId: string) { if (!gradedUser.passed) { result += ` ${t( - "a.Nicht bestanden" + "a.Nicht Bestanden" )}`; } } diff --git a/client/src/stores/user.ts b/client/src/stores/user.ts index 6e9e9e53..5280d4c5 100644 --- a/client/src/stores/user.ts +++ b/client/src/stores/user.ts @@ -1,5 +1,5 @@ import { bustItGetCache, itGetCached, itPost } from "@/fetchHelpers"; -import { setI18nLanguage } from "@/i18nextWrapper"; +import { loadI18nextLocaleMessages, setI18nLanguage } from "@/i18nextWrapper"; import type { Country, CourseProfile } from "@/services/entities"; import { directUpload } from "@/services/files"; import dayjs from "dayjs"; @@ -106,6 +106,7 @@ async function setLocale(language: AvailableLanguages) { } dayjs.locale(language); setI18nLanguage(language); + loadI18nextLocaleMessages(language); } export const useUserStore = defineStore({ diff --git a/docs/assets/babeledit01.png b/docs/assets/babeledit01.png new file mode 100644 index 00000000..0503e562 Binary files /dev/null and b/docs/assets/babeledit01.png differ diff --git a/docs/assets/babeledit02.png b/docs/assets/babeledit02.png new file mode 100644 index 00000000..f724f99a Binary files /dev/null and b/docs/assets/babeledit02.png differ