Compare commits

...

22 Commits

Author SHA1 Message Date
97e338f9d4 Added button (including translations
ref #116
2021-03-29 17:46:51 +02:00
636f018daa Added comment
ref #116
2021-03-29 17:44:59 +02:00
c8d639024a Added function for generating cards with pdf
ref #116
2021-03-29 17:44:30 +02:00
f7fc1967a5 🚀RELEASE v0.10.0
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-26 20:07:14 +01:00
aedb8a765b new license file version [CI SKIP] 2021-03-26 19:06:59 +00:00
cf58bd15c3 Bumped lfk-client version 🔝
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-26 20:05:26 +01:00
34f4f68524 new license file version [CI SKIP] 2021-03-26 19:04:28 +00:00
09b8144080 Merge pull request 'Implemented password strength test feature/106-password_strength' (#115) from feature/106-password_strength into dev
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #115
2021-03-26 19:03:03 +00:00
f1e6fb4ce7 Merge branch 'dev' into feature/106-password_strength 2021-03-26 19:59:47 +01:00
4167819e7a Formatting🛠
ref #106
2021-03-26 19:52:31 +01:00
5bd3a463f0 Sorted translations 🌍
ref #106
2021-03-26 19:51:57 +01:00
79c447b4c6 Added translations
ref #106
2021-03-26 19:51:27 +01:00
540304f947 User creation can now only be triggered if pw is strong enoug
ref #106
2021-03-26 19:48:42 +01:00
75d8f7331b Reset can now only be triggered if pw is strong enoug
ref #106
2021-03-26 19:47:26 +01:00
b2509e9e53 Module now exports functions that check if a password is strong enough and equal to a potential confirmation field
ref #106
2021-03-26 19:45:53 +01:00
7862f44653 Now using pw strength component for user creation
ref #106
2021-03-26 19:31:21 +01:00
962dd0c1bb Added missing exports
ref #106
2021-03-26 19:29:47 +01:00
5d5f7c7f5c Now using pw strength component for reset
ref #106
2021-03-26 19:29:37 +01:00
6aaf838451 Now using pw strength component
ref #106
2021-03-26 19:29:25 +01:00
ad3bd312e9 Added a password strength verification
ref #106
2021-03-26 19:26:26 +01:00
5fa9939696 Added more cirteria to the password strength component
ref #106
2021-03-26 19:02:09 +01:00
4956bb0e9c Implemented a custom password strength component
ref #106
2021-03-26 18:47:24 +01:00
12 changed files with 1087 additions and 902 deletions

View File

@@ -2,8 +2,31 @@
All notable changes to this project will be documented in this file. Dates are displayed in UTC. All notable changes to this project will be documented in this file. Dates are displayed in UTC.
#### [0.10.0](https://git.odit.services/lfk/frontend/compare/0.9.1...0.10.0)
- Added translations [`79c447b`](https://git.odit.services/lfk/frontend/commit/79c447b4c65e55ebb5af71fb0b09174c36e2cecf)
- Sorted translations 🌍 [`5bd3a46`](https://git.odit.services/lfk/frontend/commit/5bd3a463f00abaf2c98ab554f88e5542d01f364a)
- Reset can now only be triggered if pw is strong enoug [`75d8f73`](https://git.odit.services/lfk/frontend/commit/75d8f7331b6ae78f3979bb62148188a16f83cb8d)
- Module now exports functions that check if a password is strong enough and equal to a potential confirmation field [`b2509e9`](https://git.odit.services/lfk/frontend/commit/b2509e9e53ab6b51dfd55e26712e8928160cd64b)
- Added more cirteria to the password strength component [`5fa9939`](https://git.odit.services/lfk/frontend/commit/5fa9939696a35d60d762feb0cebef61d31869218)
- Now using pw strength component [`6aaf838`](https://git.odit.services/lfk/frontend/commit/6aaf8384512185a3a319ce6b3e2505e910468e64)
- Added a password strength verification [`ad3bd31`](https://git.odit.services/lfk/frontend/commit/ad3bd312e9a5785f81029ea2b7e302ea1addd988)
- Implemented a custom password strength component [`4956bb0`](https://git.odit.services/lfk/frontend/commit/4956bb0e9c3c1d22d60e849aea5664e35330f897)
- User creation can now only be triggered if pw is strong enoug [`540304f`](https://git.odit.services/lfk/frontend/commit/540304f947f60a7072c592ca8088996ce7e95cb4)
- Now using pw strength component for user creation [`7862f44`](https://git.odit.services/lfk/frontend/commit/7862f446532903f1a2eac7b21d5c80c3245785e5)
- Added missing exports [`962dd0c`](https://git.odit.services/lfk/frontend/commit/962dd0c1bbc0df7f20bcec5b4247188c8935c87e)
- new license file version [CI SKIP] [`aedb8a7`](https://git.odit.services/lfk/frontend/commit/aedb8a765ba053545adbba9eb014b3bb0e5aac8c)
- Bumped lfk-client version 🔝 [`cf58bd1`](https://git.odit.services/lfk/frontend/commit/cf58bd15c3541c417ab2be83d96135e931a2b6f6)
- new license file version [CI SKIP] [`34f4f68`](https://git.odit.services/lfk/frontend/commit/34f4f68524918fd3d1963966a1e259d5b60efaca)
- Merge pull request 'Implemented password strength test feature/106-password_strength' (#115) from feature/106-password_strength into dev [`09b8144`](https://git.odit.services/lfk/frontend/commit/09b81440804cf98303fcb723a9717d6d0f432da8)
- Formatting🛠 [`4167819`](https://git.odit.services/lfk/frontend/commit/4167819e7a864d3b1dd95ba48ab1525a454f7f30)
- Now using pw strength component for reset [`5d5f7c7`](https://git.odit.services/lfk/frontend/commit/5d5f7c7f5c6a69146f41996f4facfeff95791be0)
#### [0.9.1](https://git.odit.services/lfk/frontend/compare/0.9.0...0.9.1) #### [0.9.1](https://git.odit.services/lfk/frontend/compare/0.9.0...0.9.1)
> 26 March 2021
- 🚀RELEASE v0.9.1 [`2ca63fd`](https://git.odit.services/lfk/frontend/commit/2ca63fd1f675f0da2b18ba43095074dd4823991d)
- Merge pull request 'Org selfservice Link feature/112-org_registration_links' (#114) from feature/112-org_registration_links into dev [`a5d25e7`](https://git.odit.services/lfk/frontend/commit/a5d25e7d92c7c37e90dbb4ba74b787873f920c6b) - Merge pull request 'Org selfservice Link feature/112-org_registration_links' (#114) from feature/112-org_registration_links into dev [`a5d25e7`](https://git.odit.services/lfk/frontend/commit/a5d25e7d92c7c37e90dbb4ba74b787873f920c6b)
- Added checkbox to enable registration [`f9fe793`](https://git.odit.services/lfk/frontend/commit/f9fe79357317653b46c09eb95b0db13845cddcf9) - Added checkbox to enable registration [`f9fe793`](https://git.odit.services/lfk/frontend/commit/f9fe79357317653b46c09eb95b0db13845cddcf9)
- Sorted translations [`c074c12`](https://git.odit.services/lfk/frontend/commit/c074c12be75f285612f7a732c106404d9fb4538a) - Sorted translations [`c074c12`](https://git.odit.services/lfk/frontend/commit/c074c12be75f285612f7a732c106404d9fb4538a)

View File

@@ -14,7 +14,7 @@
</head> </head>
<body> <body>
<span style="display: none;visibility: hidden;" id="buildinfo">RELEASE_INFO-0.9.1-RELEASE_INFO</span> <span style="display: none;visibility: hidden;" id="buildinfo">RELEASE_INFO-0.10.0-RELEASE_INFO</span>
<noscript>You need to enable JavaScript to run this app.</noscript> <noscript>You need to enable JavaScript to run this app.</noscript>
<script src="/env.js"></script> <script src="/env.js"></script>
<script defer type="module" src="/_dist_/index.js"></script> <script defer type="module" src="/_dist_/index.js"></script>

View File

@@ -1,6 +1,6 @@
{ {
"name": "@odit/lfk-frontend", "name": "@odit/lfk-frontend",
"version": "0.9.1", "version": "0.10.0",
"scripts": { "scripts": {
"i18n-order": "node order.js", "i18n-order": "node order.js",
"dev:all": "yarn prebuild && snowpack dev", "dev:all": "yarn prebuild && snowpack dev",
@@ -13,7 +13,8 @@
}, },
"license": "CC-BY-NC-SA-4.0", "license": "CC-BY-NC-SA-4.0",
"dependencies": { "dependencies": {
"@odit/lfk-client-js": "0.7.0", "@odit/lfk-client-js": "0.8.0",
"check-password-strength": "^2.0.2",
"csvtojson": "^2.0.10", "csvtojson": "^2.0.10",
"gridjs": "3.3.0", "gridjs": "3.3.0",
"localforage": "1.9.0", "localforage": "1.9.0",

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,52 @@
<script context="module">
import { passwordStrength } from "check-password-strength";
export function password_strong_enough(password_change) {
let strength = passwordStrength(password_change);
return (
strength?.contains.includes("lowercase") &&
strength?.contains.includes("uppercase") &&
strength?.contains.includes("number") &&
strength?.length > 9
);
}
export function password_strong_enough_and_equal(
password_change,
password_confirm
) {
return (
password_strong_enough(password_change) &&
password_change === password_confirm
);
}
</script>
<script>
import { getLocaleFromNavigator, _ } from "svelte-i18n";
import { passwordStrength as Strength } from "check-password-strength";
export let password_change;
export let password_confirm;
$: strength = Strength(password_change);
$: passwords_match =
!password_confirm || password_confirm === password_change;
</script>
<div class="ml-4">
<ul class="list-disc font-medium tracking-wide text-red-500 text-xs">
{#if !strength.contains.includes('lowercase')}
<li>{$_('must-contain-a-lowercase-letter')}</li>
{/if}
{#if !strength.contains.includes('uppercase')}
<li>{$_('must-contain-a-uppercase-letter')}</li>
{/if}
{#if !strength.contains.includes('number')}
<li>{$_('must-contain-a-number')}</li>
{/if}
{#if !(strength.length > 9)}
<li>{$_('must-be-at-least-10-characters-long')}</li>
{/if}
{#if !(passwords_match == true)}
<li>{$_('passwords-dont-match')}</li>
{/if}
</ul>
</div>

View File

@@ -1,38 +1,43 @@
<script> <script>
import { AuthService } from "@odit/lfk-client-js"; import { AuthService } from "@odit/lfk-client-js";
import { _ } from "svelte-i18n"; import { _ } from "svelte-i18n";
import Toastify from "toastify-js"; import Toastify from "toastify-js";
import "toastify-js/src/toastify.css"; import "toastify-js/src/toastify.css";
import PasswordStrength, {
password_strong_enough,
} from "../auth/PasswordStrength.svelte";
let state = "reset_in_progress"; let state = "reset_in_progress";
let password = ""; let password = "";
export let params; export let params;
function set_new_password() { function set_new_password() {
if(password.trim() !== ""){ if (password.trim() !== "") {
Toastify({ Toastify({
text: $_('password-reset-in-progress'), text: $_("password-reset-in-progress"),
duration: 3500, duration: 3500,
}).showToast(); }).showToast();
AuthService.authControllerResetPassword(atob(params.resetkey),{ password }) AuthService.authControllerResetPassword(atob(params.resetkey), {
password,
})
.then((resp) => { .then((resp) => {
Toastify({ Toastify({
text: $_('password-reset-successful'), text: $_("password-reset-successful"),
duration: 3500, duration: 3500,
}).showToast(); }).showToast();
state="reset_success"; state = "reset_success";
}) })
.catch((err) => { .catch((err) => {
state="reset_error"; state = "reset_error";
}); });
} else { } else {
Toastify({ Toastify({
text: $_('please-provide-a-password'), text: $_("please-provide-a-password"),
duration: 3500, duration: 3500,
}).showToast(); }).showToast();
} }
} }
</script> </script>
{#if state==="reset_success"} {#if state === 'reset_success'}
<div class="min-h-screen flex items-center justify-center bg-gray-100"> <div class="min-h-screen flex items-center justify-center bg-gray-100">
<div class="max-w-md w-full py-12 px-6"> <div class="max-w-md w-full py-12 px-6">
<img style="height:10rem;" class="mx-auto" src="/lfk-logo.png" alt="" /> <img style="height:10rem;" class="mx-auto" src="/lfk-logo.png" alt="" />
@@ -56,31 +61,31 @@
</div> </div>
</div> </div>
</div> </div>
{:else if state==="reset_error"} {:else if state === 'reset_error'}
<div class="min-h-screen flex items-center justify-center bg-gray-100"> <div class="min-h-screen flex items-center justify-center bg-gray-100">
<div class="max-w-md w-full py-12 px-6"> <div class="max-w-md w-full py-12 px-6">
<img style="height:10rem;" class="mx-auto" src="/lfk-logo.png" alt="" /> <img style="height:10rem;" class="mx-auto" src="/lfk-logo.png" alt="" />
<p class="mt-6 text-lg text-center font-bold text-gray-900"> <p class="mt-6 text-lg text-center font-bold text-gray-900">
{$_('application_name')} {$_('application_name')}
</p> </p>
<p class="mt-2 mb-2 text-sm text-center text-gray-900 font-bold"> <p class="mt-2 mb-2 text-sm text-center text-gray-900 font-bold">
{$_('password-reset-failed')} {$_('password-reset-failed')}
</p> </p>
<p class="mt-2 mb-2 text-sm text-center text-gray-900"> <p class="mt-2 mb-2 text-sm text-center text-gray-900">
{$_('please-request-a-new-reset-mail')} {$_('please-request-a-new-reset-mail')}
</p> </p>
<div class="mt-6">
<div class="mt-6"> <div class="mt-6">
<a <div class="mt-6">
href="/forgot_password/" <a
class="text-center relative block w-full py-2 px-3 border border-transparent rounded-md text-white font-semibold bg-gray-800 hover:bg-gray-700 focus:bg-gray-900 focus:outline-none focus:shadow-outline sm:text-sm"> href="/forgot_password/"
{$_('request-a-new-reset-mail')} class="text-center relative block w-full py-2 px-3 border border-transparent rounded-md text-white font-semibold bg-gray-800 hover:bg-gray-700 focus:bg-gray-900 focus:outline-none focus:shadow-outline sm:text-sm">
</a> {$_('request-a-new-reset-mail')}
</a>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> {:else if state === 'reset_in_progress'}
{:else if state==="reset_in_progress"}
<div class="min-h-screen flex items-center justify-center bg-gray-100"> <div class="min-h-screen flex items-center justify-center bg-gray-100">
<div class="max-w-md w-full py-12 px-6"> <div class="max-w-md w-full py-12 px-6">
<img style="height:10rem;" class="mx-auto" src="/lfk-logo.png" alt="" /> <img style="height:10rem;" class="mx-auto" src="/lfk-logo.png" alt="" />
@@ -102,11 +107,14 @@
placeholder={$_('new-password')} placeholder={$_('new-password')}
bind:value={password} /> bind:value={password} />
</div> </div>
<PasswordStrength bind:password_change={password} />
</div> </div>
<div class="mt-5"> <div class="mt-5">
<button <button
on:click={set_new_password} on:click={set_new_password}
disabled={!password_strong_enough(password)}
class:opacity-50={!password_strong_enough(password)}
type="submit" type="submit"
class="relative block w-full py-2 px-3 border border-transparent rounded-md text-white font-semibold bg-gray-800 hover:bg-gray-700 focus:bg-gray-900 focus:outline-none focus:shadow-outline sm:text-sm"> class="relative block w-full py-2 px-3 border border-transparent rounded-md text-white font-semibold bg-gray-800 hover:bg-gray-700 focus:bg-gray-900 focus:outline-none focus:shadow-outline sm:text-sm">
<span class="absolute left-0 inset-y pl-3"> <span class="absolute left-0 inset-y pl-3">

View File

@@ -22,12 +22,12 @@
if (e.keyCode === 13) { if (e.keyCode === 13) {
if (createbtnenabled === true) { if (createbtnenabled === true) {
createbtnenabled = false; createbtnenabled = false;
submit(); submit_with_print();
} }
} }
}; };
})(); })();
function submit() { function submit_without_print() {
if (processed_last_submit === true) { if (processed_last_submit === true) {
processed_last_submit = false; processed_last_submit = false;
const toast = Toastify({ const toast = Toastify({
@@ -54,6 +54,80 @@
}); });
} }
} }
function submit_with_print() {
if (processed_last_submit === true) {
processed_last_submit = false;
const toast = Toastify({
text: $_("creating-blanco-cards"),
duration: -1,
}).showToast();
//TODO: Adjust generation function, when backend is merged
RunnerCardService.runnerCardControllerPostBlancoBulk(card_count)
.then((result) => {
bulk_modal_open = false;
//
Toastify({
text: $_("created-blanco-cards"),
duration: 500,
backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)",
}).showToast();
const toast = Toastify({
text: $_("generating-pdf"),
duration: -1,
}).showToast();
fetch(
`${config.baseurl}/documents/cards?&download=true&key=${config.documentserver_key}`,
{
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(result),
}
)
.then((response) => {
if (response.status != "200") {
toast.hideToast();
Toastify({
text: $_("pdf-generation-failed"),
duration: 3500,
backgroundColor:
"linear-gradient(90deg, hsla(281, 37%, 45%, 1) 0%, hsla(1, 62%, 48%, 1) 100%)",
}).showToast();
} else {
return response.blob();
}
})
.then((blob) => {
const url = window.URL.createObjectURL(blob);
let a = document.createElement("a");
a.href = url;
a.download = "Bulkcards.pdf";
document.body.appendChild(a);
a.click();
a.remove();
toast.hideToast();
Toastify({
text: $_("pdf-successfully-generated"),
duration: 3500,
backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)",
}).showToast();
})
.catch((err) => {
console.error(err);
});
})
.catch((err) => {
//
})
.finally(() => {
processed_last_submit = true;
//
toast.hideToast();
});
}
}
</script> </script>
{#if bulk_modal_open} {#if bulk_modal_open}
@@ -138,10 +212,18 @@
<button <button
disabled={!createbtnenabled} disabled={!createbtnenabled}
class:opacity-50={!createbtnenabled} class:opacity-50={!createbtnenabled}
on:click={submit} on:click={submit_without_print}
type="button" type="button"
class="w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-blue-600 text-base font-medium text-white hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 sm:ml-3 sm:w-auto sm:text-sm"> class="w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-blue-600 text-base font-medium text-white hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 sm:ml-3 sm:w-auto sm:text-sm">
{$_('create')} {$_('create-and-generate-pdf')}
</button>
<button
disabled={!createbtnenabled}
class:opacity-50={!createbtnenabled}
on:click={submit_without_print}
type="button"
class="w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-blue-600 text-base font-medium text-white hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 sm:ml-3 sm:w-auto sm:text-sm">
{$_('create-without-pdf')}
</button> </button>
<button <button
on:click={() => { on:click={() => {

View File

@@ -1,6 +1,9 @@
<script> <script>
import { getLocaleFromNavigator, _ } from "svelte-i18n"; import { getLocaleFromNavigator, _ } from "svelte-i18n";
import { RunnerOrganizationService, RunnerTeamService } from "@odit/lfk-client-js"; import {
RunnerOrganizationService,
RunnerTeamService,
} from "@odit/lfk-client-js";
import Toastify from "toastify-js"; import Toastify from "toastify-js";
export let sponsoring_contracts_show = false; export let sponsoring_contracts_show = false;
export let generate_runners = []; export let generate_runners = [];

View File

@@ -4,6 +4,9 @@
import { MeService } from "@odit/lfk-client-js"; import { MeService } from "@odit/lfk-client-js";
import Toastify from "toastify-js"; import Toastify from "toastify-js";
import ConfirmProfileDeletion from "./ConfirmProfileDeletion.svelte"; import ConfirmProfileDeletion from "./ConfirmProfileDeletion.svelte";
import PasswordStrength, {
password_strong_enough_and_equal,
} from "../auth/PasswordStrength.svelte";
$: data_loaded = false; $: data_loaded = false;
$: delete_triggered = false; $: delete_triggered = false;
$: original_data = {}; $: original_data = {};
@@ -15,8 +18,10 @@
JSON.stringify(editable) === JSON.stringify(original_data) JSON.stringify(editable) === JSON.stringify(original_data)
); );
$: save_enabled = changes_performed && isEmail(editable.email); $: save_enabled = changes_performed && isEmail(editable.email);
$: update_password_enabled = $: update_password_enabled = password_strong_enough_and_equal(
password_change.length > 0 && password_change === password_confirm; password_change,
password_confirm
);
const user_promise = MeService.meControllerGet().then((data) => { const user_promise = MeService.meControllerGet().then((data) => {
data_loaded = true; data_loaded = true;
data.groups = data.groups.map((g) => g.id); data.groups = data.groups.map((g) => g.id);
@@ -45,7 +50,7 @@
function changePassword() { function changePassword() {
if (data_loaded === true && update_password_enabled) { if (data_loaded === true && update_password_enabled) {
Toastify({ Toastify({
text: $_('changing-your-password'), text: $_("changing-your-password"),
duration: 2500, duration: 2500,
}).showToast(); }).showToast();
let postdata = Object.assign({}, original_data); let postdata = Object.assign({}, original_data);
@@ -56,7 +61,7 @@
password_change = ""; password_change = "";
postdata = {}; postdata = {};
Toastify({ Toastify({
text: $_('password-changed'), text: $_("password-changed"),
duration: 2500, duration: 2500,
backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)",
}).showToast(); }).showToast();
@@ -242,10 +247,7 @@
class="border-gray-300 placeholder-gray-500 appearance-none rounded-md relative block w-full px-3 py-2 border focus:outline-none focus:shadow-outline-blue focus:border-blue-300 focus:z-10 sm:text-sm" class="border-gray-300 placeholder-gray-500 appearance-none rounded-md relative block w-full px-3 py-2 border focus:outline-none focus:shadow-outline-blue focus:border-blue-300 focus:z-10 sm:text-sm"
placeholder={$_('password')} /> placeholder={$_('password')} />
</div> </div>
{#if password_change != password_confirm && password_change.length > 0} <PasswordStrength bind:password_change bind:password_confirm />
<span
class="flex items-center font-medium tracking-wide text-red-500 text-xs mt-1 ml-1">{$_('passwords-dont-match')}</span>
{/if}
</div> </div>
<div class="px-4 py-3 bg-gray-50 text-right sm:px-6"> <div class="px-4 py-3 bg-gray-50 text-right sm:px-6">
<button <button
@@ -257,9 +259,9 @@
{$_('update-password')} {$_('update-password')}
</button> </button>
{#if update_password_enabled} {#if update_password_enabled}
<p> <p>
{$_('after-the-update-youll-get-logged-out-please-login-with-your-new-password-after-that')} {$_('after-the-update-youll-get-logged-out-please-login-with-your-new-password-after-that')}
</p> </p>
{/if} {/if}
</div> </div>
</div> </div>

View File

@@ -5,6 +5,9 @@
import { UserService } from "@odit/lfk-client-js"; import { UserService } from "@odit/lfk-client-js";
import isEmail from "validator/es/lib/isEmail"; import isEmail from "validator/es/lib/isEmail";
import Toastify from "toastify-js"; import Toastify from "toastify-js";
import PasswordStrength, {
password_strong_enough,
} from "../auth/PasswordStrength.svelte";
export let modal_open; export let modal_open;
export let current_users; export let current_users;
let firstname_input; let firstname_input;
@@ -28,7 +31,10 @@
$: isLastnameValid = lastname_input_value.trim().length !== 0; $: isLastnameValid = lastname_input_value.trim().length !== 0;
$: isFirstnameValid = firstname_input_value.trim().length !== 0; $: isFirstnameValid = firstname_input_value.trim().length !== 0;
$: createbtnenabled = $: createbtnenabled =
isFirstnameValid && isLastnameValid && isPasswordValid && isEmailValid; isFirstnameValid &&
isLastnameValid &&
password_strong_enough(password_input_value) &&
isEmailValid;
(function () { (function () {
document.onkeydown = function (e) { document.onkeydown = function (e) {
e = e || window.event; e = e || window.event;
@@ -203,12 +209,8 @@
type="password" type="password"
name="password" name="password"
class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2" /> class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2" />
{#if !isPasswordValid} <PasswordStrength
<span bind:password_change={password_input_value} />
class="flex items-center font-medium tracking-wide text-red-500 text-xs mt-1 ml-1">
{$_('password-is-required')}
</span>
{/if}
</div> </div>
<div class="col-span-6"> <div class="col-span-6">
<label <label

View File

@@ -1,421 +1,427 @@
{ {
"404message": "Die gesuchte Seite wurde leider nicht gefunden.", "404message": "Die gesuchte Seite wurde leider nicht gefunden.",
"404title": "Fehler 404", "404title": "Fehler 404",
"about": "Über", "about": "Über",
"action": "Aktionen", "action": "Aktionen",
"active": "Aktiv", "active": "Aktiv",
"add-card": "Karte erstellen", "add-card": "Karte erstellen",
"add-donation": "Sponsoring erstellen", "add-donation": "Sponsoring erstellen",
"add-donor": "Sponsor:in erstellen", "add-donor": "Sponsor:in erstellen",
"add-scan": "Scan erstellen", "add-scan": "Scan erstellen",
"add-the-first-scanstation": "Erstelle deine erste Scannerstation.", "add-the-first-scanstation": "Erstelle deine erste Scannerstation.",
"add-user-group": "Neue Gruppe erstellen", "add-user-group": "Neue Gruppe erstellen",
"add-your-first-card": "Erstelle deine erste Läuferkarte", "add-your-first-card": "Erstelle deine erste Läuferkarte",
"add-your-first-contact": "Erstelle den ersten Kontakt", "add-your-first-contact": "Erstelle den ersten Kontakt",
"add-your-first-donor": "Erstelle die erste Sponsor:in", "add-your-first-donor": "Erstelle die erste Sponsor:in",
"add-your-first-group": "Erstelle die erste Gruppe", "add-your-first-group": "Erstelle die erste Gruppe",
"add-your-first-organization": "Erstelle die erste Organisation", "add-your-first-organization": "Erstelle die erste Organisation",
"add-your-first-runner": "Erstelle die erste Läufer:in", "add-your-first-runner": "Erstelle die erste Läufer:in",
"add-your-first-team": "Erstelle das erste Team", "add-your-first-team": "Erstelle das erste Team",
"add-your-first-track": "Erstelle den ersten Track (Laufstrecke).", "add-your-first-track": "Erstelle den ersten Track (Laufstrecke).",
"add-your-first-user": "Erstelle die erste Benutzer:in", "add-your-first-user": "Erstelle die erste Benutzer:in",
"add-your-fist-donation": "Erstelle dein erstes Sponsoring", "add-your-fist-donation": "Erstelle dein erstes Sponsoring",
"add-your-fist-scan": "Füge deinen ersten Scan hinzu", "add-your-fist-scan": "Füge deinen ersten Scan hinzu",
"adding-card": "Karte wird erstellt", "adding-card": "Karte wird erstellt",
"adding-scan": "Scan wird hinzugefügt", "adding-scan": "Scan wird hinzugefügt",
"address": "Adresse", "address": "Adresse",
"address-is-required": "Du musst eine Adresse angeben", "address-is-required": "Du musst eine Adresse angeben",
"after-deletion-we-cant-restore-your-old-profile": "Nach der Löschung können auch die Admins dein Profil nicht wiederherstellen!", "after-deletion-we-cant-restore-your-old-profile": "Nach der Löschung können auch die Admins dein Profil nicht wiederherstellen!",
"after-the-update-youll-get-logged-out-please-login-with-your-new-password-after-that": "Nach der Änderung wirst du abgemeldet - bitte melde dich dann mit deinem neuen Passwort an.", "after-the-update-youll-get-logged-out-please-login-with-your-new-password-after-that": "Nach der Änderung wirst du abgemeldet - bitte melde dich dann mit deinem neuen Passwort an.",
"all-associated-donations-will-get-deleted-as-well": "Alle Sponsorings dieser Sponsor:in werden ebenfalls gelöscht", "all-associated-donations-will-get-deleted-as-well": "Alle Sponsorings dieser Sponsor:in werden ebenfalls gelöscht",
"all-associated-runners-will-be-deleted-too": "Alle zugehörigen Läufer:innen werden auch gelöscht!", "all-associated-runners-will-be-deleted-too": "Alle zugehörigen Läufer:innen werden auch gelöscht!",
"all-associated-teams-and-runners-will-be-deleted-too": "Alle assoziierten Teams und Läufer:innen werden auch gelöscht!", "all-associated-teams-and-runners-will-be-deleted-too": "Alle assoziierten Teams und Läufer:innen werden auch gelöscht!",
"amount": "Anzahl", "amount": "Anzahl",
"amount-per-kilometer": "Betrag pro Kilometer", "amount-per-kilometer": "Betrag pro Kilometer",
"apartment-suite-etc": "Apartment, Wohnung, etc.", "apartment-suite-etc": "Apartment, Wohnung, etc.",
"application_name": "Lauf für Kaya! - Admin", "application_name": "Lauf für Kaya! - Admin",
"applying-changes": "Änderungen anwenden", "applying-changes": "Änderungen anwenden",
"attention": "Achtung!", "attention": "Achtung!",
"author": "Autor:in", "author": "Autor:in",
"bitte-bestaetige-diese-laeufer-fuer-den-import": "Bitte die Läufer:innen für den Import bestätigen.", "bitte-bestaetige-diese-laeufer-fuer-den-import": "Bitte die Läufer:innen für den Import bestätigen.",
"by": "von", "by": "von",
"cancel": "Abbrechen", "cancel": "Abbrechen",
"cancel-delete": "Löschen abbrechen", "cancel-delete": "Löschen abbrechen",
"cancel-keep-donor": "Abbrechen, Sponsor:in behalten", "cancel-keep-donor": "Abbrechen, Sponsor:in behalten",
"cancel-keep-my-profile": "Abbrechen, mein Profil behalten", "cancel-keep-my-profile": "Abbrechen, mein Profil behalten",
"cancel-keep-organization": "Abbrechen und Organisation bearbeiten", "cancel-keep-organization": "Abbrechen und Organisation bearbeiten",
"cancel-keep-team": "Abbrechen, Team behalten", "cancel-keep-team": "Abbrechen, Team behalten",
"cannot-reset-your-password-directly": "Schade. \nWir können das Passwort leider nicht direkt zurücksetzen.\nBitte sende uns eine Mail in der du deine Identität bestätigst.", "cannot-reset-your-password-directly": "Schade. \nWir können das Passwort leider nicht direkt zurücksetzen.\nBitte sende uns eine Mail in der du deine Identität bestätigst.",
"card-added": "Karte wurde hinzugefügt", "card-added": "Karte wurde hinzugefügt",
"card-deleted": "Karte gelöscht", "card-deleted": "Karte gelöscht",
"card-updated": "Karte aktualisiert", "card-updated": "Karte aktualisiert",
"cards": "Läuferkarten", "cards": "Läuferkarten",
"change-your-password-here": "Hier kannst du dein Passwort ändern", "change-your-password-here": "Hier kannst du dein Passwort ändern",
"changing-your-password": "Passwort wird geändert", "changing-your-password": "Passwort wird geändert",
"city": "Stadt", "city": "Stadt",
"click-to-copy-the-link-into-your-clipboard": "Klicke auf den Link, um ihn in deine Zwischenablage zu kopieren", "click-to-copy-the-link-into-your-clipboard": "Klicke auf den Link, um ihn in deine Zwischenablage zu kopieren",
"click-to-copy-token-to-clipboard": "Klicke auf den Token, um ihn in deine Zwischenablage zu kopieren", "click-to-copy-token-to-clipboard": "Klicke auf den Token, um ihn in deine Zwischenablage zu kopieren",
"close": "Schließen", "close": "Schließen",
"code": "Code", "code": "Code",
"configure-the-tracks-and-minimum-lap-times": "Bearbeite die Tracks und ihre minimale Rundenzeit", "configure-the-tracks-and-minimum-lap-times": "Bearbeite die Tracks und ihre minimale Rundenzeit",
"confirm": "Bestätigen", "confirm": "Bestätigen",
"confirm-delete": "Löschung Bestätigen", "confirm-delete": "Löschung Bestätigen",
"confirm-delete-donor-with-all-donations": "Bestätigen, Sponsor:in mit allen Sponsorings löschen", "confirm-delete-donor-with-all-donations": "Bestätigen, Sponsor:in mit allen Sponsorings löschen",
"confirm-delete-my-user-profile": "Bestätigung, mein Benutzerprofil löschen", "confirm-delete-my-user-profile": "Bestätigung, mein Benutzerprofil löschen",
"confirm-delete-organization-and-associated-teams-runners": "Bestätugung, lösche die Organisation und alle zugehörigen Teams und Läufer:innen.", "confirm-delete-organization-and-associated-teams-runners": "Bestätugung, lösche die Organisation und alle zugehörigen Teams und Läufer:innen.",
"confirm-delete-team-and-associated-runners": "Bestätigung, lösche das Team mitsamt seinen Läufer:innen.", "confirm-delete-team-and-associated-runners": "Bestätigung, lösche das Team mitsamt seinen Läufer:innen.",
"confirm-deletion": "Löschung Bestätigen", "confirm-deletion": "Löschung Bestätigen",
"confirm-the-new-password": "Neues Passwort bestätigen", "confirm-the-new-password": "Neues Passwort bestätigen",
"contact": "Kontakt", "contact": "Kontakt",
"contact-deleted": "Kontakt gelöscht", "contact-deleted": "Kontakt gelöscht",
"contact-information": "Kontaktinformation", "contact-information": "Kontaktinformation",
"contact-is-being-updated": "Kontakt wird aktualisiert ...", "contact-is-being-updated": "Kontakt wird aktualisiert ...",
"contact-is-not-a-member-in-any-group": "Kontakt gehört zu keiner Gruppe", "contact-is-not-a-member-in-any-group": "Kontakt gehört zu keiner Gruppe",
"contacts": "Kontakte", "contacts": "Kontakte",
"contacts-are-being-loaded": "Kontakte werden geladen ...", "contacts-are-being-loaded": "Kontakte werden geladen ...",
"copied-link-to-clipboard": "Link wurde in die Zwischenablage kopiert", "copied-link-to-clipboard": "Link wurde in die Zwischenablage kopiert",
"copied-token-to-clipboard": "Token wurde in die Zwischenablage kopiert", "copied-token-to-clipboard": "Token wurde in die Zwischenablage kopiert",
"count_organizations": "Organisationen (Anzahl)", "count_organizations": "Organisationen (Anzahl)",
"count_teams": "Teams (Anzahl)", "count_teams": "Teams (Anzahl)",
"create": "Erstellen", "create": "Erstellen",
"create-a-new": "Erstelle eine neue", "create-a-new": "Erstelle eine neue",
"create-a-new-card": "Neue Läuferkarte erstellen", "create-a-new-card": "Neue Läuferkarte erstellen",
"create-a-new-contact": "Kontakt erstellen", "create-a-new-contact": "Kontakt erstellen",
"create-a-new-distance-donation": "Erstelle ein neues Sponsoring", "create-a-new-distance-donation": "Erstelle ein neues Sponsoring",
"create-a-new-donor": "Neue Sponsor:in erstellen", "create-a-new-donor": "Neue Sponsor:in erstellen",
"create-a-new-fixed-donation": "Erstelle eine neue Festbetragsspende", "create-a-new-fixed-donation": "Erstelle eine neue Festbetragsspende",
"create-a-new-organization": "Neue Organisation anlegen", "create-a-new-organization": "Neue Organisation anlegen",
"create-a-new-runner": "Neue Läufer:in erstellen", "create-a-new-runner": "Neue Läufer:in erstellen",
"create-a-new-scan-fixed-only": "Neuen Scan erstellen (nur mit Festdistanz)", "create-a-new-scan-fixed-only": "Neuen Scan erstellen (nur mit Festdistanz)",
"create-a-new-scanstation": "Neue Station erstellen", "create-a-new-scanstation": "Neue Station erstellen",
"create-a-new-team": "Erstelle ein neues Team", "create-a-new-team": "Erstelle ein neues Team",
"create-a-new-track": "Neuen Track erstellen", "create-a-new-track": "Neuen Track erstellen",
"create-a-new-user": "Neue Benutzer:in anlegen", "create-a-new-user": "Neue Benutzer:in anlegen",
"create-a-new-user-group": "Erstelle eine neue Gruppe", "create-a-new-user-group": "Erstelle eine neue Gruppe",
"create-bulk-blanco-cards": "Blankokarten erstellen", "create-bulk-blanco-cards": "Blankokarten erstellen",
"create-bulk-cards": "Blankokarten erstellen", "create-bulk-cards": "Blankokarten erstellen",
"create-organization": "Organisation erstellen", "create-organization": "Organisation erstellen",
"create-team": "Team erstellen", "create-team": "Team erstellen",
"create-track": "Track erstellen", "create-track": "Track erstellen",
"create-user": "Benutzer anlegen", "create-user": "Benutzer anlegen",
"created-blanco-cards": "Blankokarten wurden erstellt", "created-blanco-cards": "Blankokarten wurden erstellt",
"creating-blanco-cards": "Erstelle Blankokarten", "creating-blanco-cards": "Erstelle Blankokarten",
"credits": "Credits", "credits": "Credits",
"csv_import__class": "Klasse", "csv_import__class": "Klasse",
"csv_import__firstname": "Vorname", "csv_import__firstname": "Vorname",
"csv_import__lastname": "Nachname", "csv_import__lastname": "Nachname",
"csv_import__middlename": "Mittelname", "csv_import__middlename": "Mittelname",
"csv_import__team": "Team", "csv_import__team": "Team",
"danger-zone": "Gefahrenzone", "danger-zone": "Gefahrenzone",
"dashboard-greeting": "Hallo", "dashboard-greeting": "Hallo",
"dashboard-title": "Dashboard", "dashboard-title": "Dashboard",
"datatable": { "datatable": {
"search": "🔍 Suche ...", "search": "🔍 Suche ...",
"an_error_happened_while_fetching_the_data": "Beim Abrufen der Daten ist ein Fehler aufgetreten", "an_error_happened_while_fetching_the_data": "Beim Abrufen der Daten ist ein Fehler aufgetreten",
"loading": "Wird geladen...", "loading": "Wird geladen...",
"next": "Nächste", "next": "Nächste",
"of": "von", "of": "von",
"previous": "Vorherige", "previous": "Vorherige",
"to": "bis", "to": "bis",
"showing": "Zeige", "showing": "Zeige",
"no_matching_records_found": "Keine passenden Einträge gefunden", "no_matching_records_found": "Keine passenden Einträge gefunden",
"page": "Seite", "page": "Seite",
"records": "Einträge", "records": "Einträge",
"sort_column_ascending": "Spalte aufsteigend sortieren", "sort_column_ascending": "Spalte aufsteigend sortieren",
"sort_column_descending": "Spalte absteigend sortieren" "sort_column_descending": "Spalte absteigend sortieren"
}, },
"delete": "Löschen", "delete": "Löschen",
"delete-contact": "Kontakt löschen", "delete-contact": "Kontakt löschen",
"delete-donation": "Sponsporing löschen", "delete-donation": "Sponsporing löschen",
"delete-donor": "Sponsor:in löschen", "delete-donor": "Sponsor:in löschen",
"delete-group": "Gruppe löschen", "delete-group": "Gruppe löschen",
"delete-organization": "Organisation löschen", "delete-organization": "Organisation löschen",
"delete-profile": "Profil löschen", "delete-profile": "Profil löschen",
"delete-runner": "Läufer:in löschen", "delete-runner": "Läufer:in löschen",
"delete-scan": "Scan löschen", "delete-scan": "Scan löschen",
"delete-station": "Station löschen", "delete-station": "Station löschen",
"delete-team": "Team Löschen", "delete-team": "Team Löschen",
"delete-user": "Benutzer:in löschen", "delete-user": "Benutzer:in löschen",
"deleted-scan": "Scan wurde gelöscht", "deleted-scan": "Scan wurde gelöscht",
"dependency_name": "Name", "dependency_name": "Name",
"description": "Beschreibung", "description": "Beschreibung",
"description-optional": "Beschreibung (optional)", "description-optional": "Beschreibung (optional)",
"deselect-all": "Alle abwählen", "deselect-all": "Alle abwählen",
"details": "Details", "details": "Details",
"disabled": "deaktiviert", "disabled": "deaktiviert",
"distance": "Distanz", "distance": "Distanz",
"distance-donation": "Sponsoring", "distance-donation": "Sponsoring",
"distance-in-km": "Distanz (in KM)", "distance-in-km": "Distanz (in KM)",
"distance-track": "Distanz (+Track)", "distance-track": "Distanz (+Track)",
"do-you-really-want-to-delete-your-profile": "Möchtest du dein Profil wirklich löschen?", "do-you-really-want-to-delete-your-profile": "Möchtest du dein Profil wirklich löschen?",
"do-you-want-to-delete-the-organization-delete_org-name": "Möchtest du die Organisation {orgname} löschen?", "do-you-want-to-delete-the-organization-delete_org-name": "Möchtest du die Organisation {orgname} löschen?",
"do-you-want-to-delete-the-team-delete_team-name": "Möchtest du das Team {teamname} löschen?", "do-you-want-to-delete-the-team-delete_team-name": "Möchtest du das Team {teamname} löschen?",
"do-you-want-to-delete-this-donor-with-all-related-donations": "Möchtest du diese Sponsor:in mit all ihren Sponsorings löschen?", "do-you-want-to-delete-this-donor-with-all-related-donations": "Möchtest du diese Sponsor:in mit all ihren Sponsorings löschen?",
"documentation": "Dokumentation", "documentation": "Dokumentation",
"donation-amount": "Sponsoringbetrag", "donation-amount": "Sponsoringbetrag",
"donation-amount-must-be-greater-that-0-00eur": "Der Sponsoringbetrag muss größer als 0.00€ sein.", "donation-amount-must-be-greater-that-0-00eur": "Der Sponsoringbetrag muss größer als 0.00€ sein.",
"donations": "Sponsorings", "donations": "Sponsorings",
"donor": "Sponsor:in", "donor": "Sponsor:in",
"donor-added": "Sponsor:in hinzugefügt", "donor-added": "Sponsor:in hinzugefügt",
"donor-deleted": "Sponsor:in gelöscht", "donor-deleted": "Sponsor:in gelöscht",
"donor-has-no-associated-donations": "Zur Sponsor:in gibt es noch keine Sponsorings", "donor-has-no-associated-donations": "Zur Sponsor:in gibt es noch keine Sponsorings",
"donor-is-being-added": "Sponsor:in wird hinzugefügt...", "donor-is-being-added": "Sponsor:in wird hinzugefügt...",
"donor-is-being-updated": "Sponsor:in wird aktualisiert", "donor-is-being-updated": "Sponsor:in wird aktualisiert",
"donors": "Sponsor:innen", "donors": "Sponsor:innen",
"donors-are-being-loaded": "Sponsor:innen werden geladen", "donors-are-being-loaded": "Sponsor:innen werden geladen",
"dont-have-your-email-connected": "Deine E-Mail ist nicht verknüpft?", "dont-have-your-email-connected": "Deine E-Mail ist nicht verknüpft?",
"dont-panic-were-resetting-it": "Keine Panik, wir setzen es zurück ✌", "dont-panic-were-resetting-it": "Keine Panik, wir setzen es zurück ✌",
"e-mail-adress": "E-Mail-Adresse", "e-mail-adress": "E-Mail-Adresse",
"edit": "Bearbeiten", "edit": "Bearbeiten",
"edit-a-card": "Läuferkarte bearbeiten", "edit-a-card": "Läuferkarte bearbeiten",
"edit-permissions": "Berechtigungen bearbeiten", "edit-permissions": "Berechtigungen bearbeiten",
"email_address_or_username": "E-Mail-Adresse/ Benutzername", "email_address_or_username": "E-Mail-Adresse/ Benutzername",
"enabled": "aktiviert", "enabled": "aktiviert",
"enabled_large": "Aktiviert", "enabled_large": "Aktiviert",
"english": "Englisch", "english": "Englisch",
"error-during-import": "Fehler beim Importieren", "error-during-import": "Fehler beim Importieren",
"error-whyile-copying-to-clipboard": "Fehler beim Kopieren in die Zwischenablage", "error-whyile-copying-to-clipboard": "Fehler beim Kopieren in die Zwischenablage",
"error_on_login": "😢Fehler beim Login", "error_on_login": "😢Fehler beim Login",
"erteilte": "Direkt erteilte", "erteilte": "Direkt erteilte",
"everything-concerning-your-profile": "Alles zu deinem Profil", "everything-concerning-your-profile": "Alles zu deinem Profil",
"everything-is-more-fun-together": "Im Team macht's mehr Spaß 🏃‍♂️🏃‍♀️🏃‍♂️", "everything-is-more-fun-together": "Im Team macht's mehr Spaß 🏃‍♂️🏃‍♀️🏃‍♂️",
"faq": "FAQ", "faq": "FAQ",
"filter-by-organization-team": "Filtern nach Organisation / Team", "filter-by-organization-team": "Filtern nach Organisation / Team",
"first-name": "Vorname", "first-name": "Vorname",
"first-name-is-required": "Vorname muss angegeben werden", "first-name-is-required": "Vorname muss angegeben werden",
"first-scan-of-the-day": "Erster Scan des Tages", "first-scan-of-the-day": "Erster Scan des Tages",
"fixed-donation": "Festbetragsspende", "fixed-donation": "Festbetragsspende",
"forgot_password": "Passwort vergessen?", "forgot_password": "Passwort vergessen?",
"geerbte": "geerbte", "geerbte": "geerbte",
"general-stats": "Allgemeine Statistiken", "general-stats": "Allgemeine Statistiken",
"general_promise_error": "😢 Ein unbekannter Fehler ist aufgetreten", "general_promise_error": "😢 Ein unbekannter Fehler ist aufgetreten",
"generate-runnercards": "Läuferkarten generieren", "generate-runnercards": "Läuferkarten generieren",
"generate-sponsoring-contract": "Sponsoringvertrag generieren", "generate-sponsoring-contract": "Sponsoringvertrag generieren",
"generate-sponsoring-contracts": "Sponsoringverträge generieren", "generate-sponsoring-contracts": "Sponsoringverträge generieren",
"generating-pdf": "Pdf wird generiert...", "generating-pdf": "Pdf wird generiert...",
"generating-pdfs": "PDFs werden generiert...", "generating-pdfs": "PDFs werden generiert...",
"generic-ui-logic-error": "Etwas ist in der Benutzeroberfläche schiefgelaufen.", "generic-ui-logic-error": "Etwas ist in der Benutzeroberfläche schiefgelaufen.",
"german": "Deutsch", "german": "Deutsch",
"go-to-login": "Zum Login", "go-to-login": "Zum Login",
"goback": "Zur Startseite", "goback": "Zur Startseite",
"granted": "Gewährt", "granted": "Gewährt",
"group": "Gruppe", "group": "Gruppe",
"group-added": "Gruppe hinzugefügt", "group-added": "Gruppe hinzugefügt",
"group-is-being-added": "Gruppe wird erstellt", "group-is-being-added": "Gruppe wird erstellt",
"group-name-is-required": "Der Gruppenname muss angegeben werden.", "group-name-is-required": "Der Gruppenname muss angegeben werden.",
"group-updated": "Gruppe aktualisiert", "group-updated": "Gruppe aktualisiert",
"groups": "Gruppen", "groups": "Gruppen",
"groups-are-being-loaded": "Gruppen werden geladen", "groups-are-being-loaded": "Gruppen werden geladen",
"home": "Start", "home": "Start",
"icon-image-credits": "Wir möchten uns außerdem für die verwendeten Icons und Bilder bedanken bei:", "icon-image-credits": "Wir möchten uns außerdem für die verwendeten Icons und Bilder bedanken bei:",
"if-you-want-to-create-multiple-blanco-cards-try-the-add-bulk-button": "Wenn du mehrere Blankokarten erstellen willst, nutze doch den \"Blankokarten erstellen\" Knopf.", "if-you-want-to-create-multiple-blanco-cards-try-the-add-bulk-button": "Wenn du mehrere Blankokarten erstellen willst, nutze doch den \"Blankokarten erstellen\" Knopf.",
"import-finished": "Import abgeschlossen", "import-finished": "Import abgeschlossen",
"import-runners": "Läufer:innen importieren", "import-runners": "Läufer:innen importieren",
"import__target-organization": "Ziel Organisation", "import__target-organization": "Ziel Organisation",
"imprint": "Impressum ", "imprint": "Impressum ",
"imprint-loading": "Impressum lädt...", "imprint-loading": "Impressum lädt...",
"inactive": "Inaktiv", "inactive": "Inaktiv",
"installed-version": "Installierte Version", "installed-version": "Installierte Version",
"internal-error": "Interner Fehler", "internal-error": "Interner Fehler",
"invalid": "Ungültig", "invalid": "Ungültig",
"invalid-mail-reset": "Das ist keine gültige E-Mail", "invalid-mail-reset": "Das ist keine gültige E-Mail",
"just-enter-how-many-you-want-and-the-system-will-create-them": "Gebe einfach ein, wie viele Blankokarten das System erstellen soll.", "just-enter-how-many-you-want-and-the-system-will-create-them": "Gebe einfach ein, wie viele Blankokarten das System erstellen soll.",
"laeufer-hinzufuegen": "Läufer:in hinzufügen", "laeufer-hinzufuegen": "Läufer:in hinzufügen",
"laeufer-importieren": "Läufer:innen importieren", "laeufer-importieren": "Läufer:innen importieren",
"laptime": "Rundenzeit", "laptime": "Rundenzeit",
"last-name": "Nachname", "last-name": "Nachname",
"last-name-is-required": "Nachname muss angegeben werden", "last-name-is-required": "Nachname muss angegeben werden",
"lfk-is-os": "Das \"Lauf für Kaya!\" Frontend ist (wie alle anderen Projekte für den \"LfK!\" auch) ein OpenSource Projekt.", "lfk-is-os": "Das \"Lauf für Kaya!\" Frontend ist (wie alle anderen Projekte für den \"LfK!\" auch) ein OpenSource Projekt.",
"license": "Lizenz", "license": "Lizenz",
"licenses-are-being-loaded": "Lizenzen werden geladen...", "licenses-are-being-loaded": "Lizenzen werden geladen...",
"loading-cards": "Läuferkarten werden geladen", "loading-cards": "Läuferkarten werden geladen",
"loading-contact-details": "Kontaktdaten werden geladen ...", "loading-contact-details": "Kontaktdaten werden geladen ...",
"loading-donation-details": "Lade Sponsoringdetails", "loading-donation-details": "Lade Sponsoringdetails",
"loading-donor-details": "Lade Details", "loading-donor-details": "Lade Details",
"loading-group-detail": "Lade Gruppendetails...", "loading-group-detail": "Lade Gruppendetails...",
"loading-profile-data": "Lade Profildaten", "loading-profile-data": "Lade Profildaten",
"loading-runners": "Läufer:innen werden geladen...", "loading-runners": "Läufer:innen werden geladen...",
"loading-station-details": "Lade Scanstation-Details ...", "loading-station-details": "Lade Scanstation-Details ...",
"log_in": "Anmelden", "log_in": "Anmelden",
"log_in_to_your_account": "Bitte melde dich an", "log_in_to_your_account": "Bitte melde dich an",
"login_is_checked": "Login wird überprüft", "login_is_checked": "Login wird überprüft",
"logout": "Abmelden", "logout": "Abmelden",
"mail-validation-in-progress": "E-Mail Verifizierung läuft... ", "mail-validation-in-progress": "E-Mail Verifizierung läuft... ",
"manage-admin-users": "Nutzer verwalten", "manage-admin-users": "Nutzer verwalten",
"middle-name": "Mittelname", "middle-name": "Mittelname",
"minimum-lap-time-in-s": "Minimale Rundenzeit (in Sekunden)", "minimum-lap-time-in-s": "Minimale Rundenzeit (in Sekunden)",
"minimum-lap-time-must-be-a-positive-number-or-0": "Die minimale Rundenzeit muss eine positive Zahl oder 0 sein", "minimum-lap-time-must-be-a-positive-number-or-0": "Die minimale Rundenzeit muss eine positive Zahl oder 0 sein",
"name": "Name", "must-be-at-least-10-characters-long": "Passwort muss mindestens 10 Zeichen lang sein!",
"name-is-required": "Der Gruppenname muss angegeben werden", "must-contain-a-lowercase-letter": "Passwort muss einen Großbuchstaben enthalten!",
"new-password": "Neues Passwort", "must-contain-a-number": "Passwort muss eine Zahl enthalten!",
"no-contact-found": "Keine Kontakte gefunden", "must-contain-a-uppercase-letter": "Passwort muss einen Kleinbuchstaben enthalten!",
"no-contact-selected": "Kein Kontakt ausgewählt", "name": "Name",
"no-contact-specified": "Kein Kontakt angegeben", "name-is-required": "Der Gruppenname muss angegeben werden",
"no-donors-found": "Keine Spender:innen gefunden", "new-password": "Neues Passwort",
"no-license-text-could-be-found": "Kein Lizenz-Text gefunden 😢", "no-contact-found": "Keine Kontakte gefunden",
"no-organization-or-team-found": "Keine Organisationen oder Teams gefunden", "no-contact-selected": "Kein Kontakt ausgewählt",
"no-organization-specified": "Keine Organisation angegeben", "no-contact-specified": "Kein Kontakt angegeben",
"no-organizations-found": "Keine Organisationen gefunden", "no-donors-found": "Keine Spender:innen gefunden",
"no-runners-found": "Keine Läufer:innen gefunden", "no-license-text-could-be-found": "Kein Lizenz-Text gefunden 😢",
"no-tracks-added-yet": "Es wurden noch keine Tracks erstellt.", "no-organization-or-team-found": "Keine Organisationen oder Teams gefunden",
"non-blanko": "Keine/Blankokarte", "no-organization-specified": "Keine Organisation angegeben",
"organization": "Organisation", "no-organizations-found": "Keine Organisationen gefunden",
"organization-added": "Organisation hinzugefügt", "no-runners-found": "Keine Läufer:innen gefunden",
"organization-deleted": "Organisation gelöscht", "no-tracks-added-yet": "Es wurden noch keine Tracks erstellt.",
"organization-detail-is-being-loaded": "Organisationsdetails werden geladen ...", "non-blanko": "Keine/Blankokarte",
"organization-is-being-added": "Organisation wird hinzugefügt ...", "organization": "Organisation",
"organization-name-is-required": "Der Name muss angegeben werden", "organization-added": "Organisation hinzugefügt",
"organizations": "Organisationen", "organization-deleted": "Organisation gelöscht",
"organizations-are-being-loaded": "Organisationen werden geladen ...", "organization-detail-is-being-loaded": "Organisationsdetails werden geladen ...",
"orgs": "Organisationen", "organization-is-being-added": "Organisation wird hinzugefügt ...",
"oss_credit_description": "Wir verwenden eine Menge Open Source-Software bei diesen Projekten und möchten uns bei den folgenden Projekten und Mitwirkenden bedanken, die dazu beitragen, Open Source großartig zu machen!", "organization-name-is-required": "Der Name muss angegeben werden",
"password": "Passwort", "organizations": "Organisationen",
"password-changed": "Passwort wurde aktualisiert!", "organizations-are-being-loaded": "Organisationen werden geladen ...",
"password-is-required": "Passwort muss angegeben werden", "orgs": "Organisationen",
"password-reset-failed": "Passwort zurücksetzen ist fehlgeschlagen!", "oss_credit_description": "Wir verwenden eine Menge Open Source-Software bei diesen Projekten und möchten uns bei den folgenden Projekten und Mitwirkenden bedanken, die dazu beitragen, Open Source großartig zu machen!",
"password-reset-in-progress": "Passwort wird zurückgesetzt...", "password": "Passwort",
"password-reset-mail-sent": "Passwort-Reset Mail wurde an \"{usersEmail}\" geschickt.", "password-changed": "Passwort wurde aktualisiert!",
"password-reset-successful": "Passwort erfolgreich zurückgesetzt!", "password-is-required": "Passwort muss angegeben werden",
"passwords-dont-match": "Die Passwörter stimmen nicht überein.", "password-reset-failed": "Passwort zurücksetzen ist fehlgeschlagen!",
"pdf-generation-failed": "PDF Generierung fehlgeschlagen!", "password-reset-in-progress": "Passwort wird zurückgesetzt...",
"pdf-successfully-generated": "PDF wurde erfolgreich generiert!", "password-reset-mail-sent": "Passwort-Reset Mail wurde an \"{usersEmail}\" geschickt.",
"pdfs-successfully-generated": "Alle PDFs wurden generiert!", "password-reset-successful": "Passwort erfolgreich zurückgesetzt!",
"per-kilometer": "pro Kilometer", "passwords-dont-match": "Die Passwörter stimmen nicht überein!",
"permissions": "Berechtigungen", "pdf-generation-failed": "PDF Generierung fehlgeschlagen!",
"permissions-updated": "Berechtigungen aktualisiert!", "pdf-successfully-generated": "PDF wurde erfolgreich generiert!",
"phone": "Telefon", "pdfs-successfully-generated": "Alle PDFs wurden generiert!",
"please-copy-the-token-and-store-it-somewhere-save": "Bitte kopiere dir den Token und bewahre ihn gut auf.", "per-kilometer": "pro Kilometer",
"please-provide-a-password": "Bitte gebe ein Passwort an...", "permissions": "Berechtigungen",
"please-provide-the-nessecary-information-to-add-a-new-donor": "Bitte mach die Notwendigen Angaben, um eine neue Sponsor:in zu erstellen", "permissions-updated": "Berechtigungen aktualisiert!",
"please-provide-the-nessecary-information-to-create-a-new-donation": "Bitte gebe alle für das Sponsoring notwendigen Daten an.", "phone": "Telefon",
"please-provide-the-nessecary-information-to-create-a-new-scan": "Bitte gebe alle notwendigen Informationen an, um einen neuen Scan zu erstellen.", "please-copy-the-token-and-store-it-somewhere-save": "Bitte kopiere dir den Token und bewahre ihn gut auf.",
"please-provide-the-required-csv-xlsx-file": "Bitte eine CSV oder XLSX Datei hochladen.", "please-provide-a-password": "Bitte gebe ein Passwort an...",
"please-provide-the-required-information-for-creating-a-new-user-group": "Bitte gebe alle für eine neue Gruppe notwendigen Informationen an.", "please-provide-the-nessecary-information-to-add-a-new-donor": "Bitte mach die Notwendigen Angaben, um eine neue Sponsor:in zu erstellen",
"please-provide-the-required-information-to-add-a-new-contact": "Bitte gebe alle nötigen Informationen an, im den neuen Kontakt zu erstellen.", "please-provide-the-nessecary-information-to-create-a-new-donation": "Bitte gebe alle für das Sponsoring notwendigen Daten an.",
"please-provide-the-required-information-to-add-a-new-organization": "Bitte gebe alle nötigen Informationen an, im die neue Organisation zu erstellen.", "please-provide-the-nessecary-information-to-create-a-new-scan": "Bitte gebe alle notwendigen Informationen an, um einen neuen Scan zu erstellen.",
"please-provide-the-required-information-to-add-a-new-runner": "Bitte die benötigten Informationen angeben.", "please-provide-the-required-csv-xlsx-file": "Bitte eine CSV oder XLSX Datei hochladen.",
"please-provide-the-required-information-to-add-a-new-team": "Bitte gebe alle nötigen Informationen an, im das neue Team zu erstellen.", "please-provide-the-required-information-for-creating-a-new-user-group": "Bitte gebe alle für eine neue Gruppe notwendigen Informationen an.",
"please-provide-the-required-information-to-add-a-new-track": "Bitte die benötigten Informationen angeben.", "please-provide-the-required-information-to-add-a-new-contact": "Bitte gebe alle nötigen Informationen an, im den neuen Kontakt zu erstellen.",
"please-provide-the-required-information-to-add-a-new-user": "Bitte gebe alle nötigen Informationen an, im die neue Benutzer:in zu erstellen.", "please-provide-the-required-information-to-add-a-new-organization": "Bitte gebe alle nötigen Informationen an, im die neue Organisation zu erstellen.",
"please-provide-the-required-information-to-create-a-new-scanstation": "Bitte gebe alle für eine Scannerstation notwendigen Informationen an", "please-provide-the-required-information-to-add-a-new-runner": "Bitte die benötigten Informationen angeben.",
"please-request-a-new-reset-mail": "Bitte eine neue Passwortreset-Mail anfordern...", "please-provide-the-required-information-to-add-a-new-team": "Bitte gebe alle nötigen Informationen an, im das neue Team zu erstellen.",
"privacy": "Datenschutz", "please-provide-the-required-information-to-add-a-new-track": "Bitte die benötigten Informationen angeben.",
"privacy-loading": "Datenschutzerklärung lädt...", "please-provide-the-required-information-to-add-a-new-user": "Bitte gebe alle nötigen Informationen an, im die neue Benutzer:in zu erstellen.",
"profile": "Profil", "please-provide-the-required-information-to-create-a-new-scanstation": "Bitte gebe alle für eine Scannerstation notwendigen Informationen an",
"profile-picture": "Profilbild", "please-request-a-new-reset-mail": "Bitte eine neue Passwortreset-Mail anfordern...",
"profile-updated": "Profil wurde aktualisiert!", "privacy": "Datenschutz",
"read-license": "Lizenz-Text lesen", "privacy-loading": "Datenschutzerklärung lädt...",
"receipt-needed": "Spendenquittung benötigt", "profile": "Profil",
"repo_link": "Link", "profile-picture": "Profilbild",
"request-a-new-reset-mail": "Neue Reset-Mail anfordern", "profile-updated": "Profil wurde aktualisiert!",
"reset-my-password": "Passwort zurücksetzen", "read-license": "Lizenz-Text lesen",
"reset-password": "Passwort zurücksetzen", "receipt-needed": "Spendenquittung benötigt",
"runner": "Läufer:in", "repo_link": "Link",
"runner-added": "Läufer:in hinzugefügt", "request-a-new-reset-mail": "Neue Reset-Mail anfordern",
"runner-import": "Läufer:innen Import", "reset-my-password": "Passwort zurücksetzen",
"runner-is-being-added": "Läufer:in wird hinzugefügt...", "reset-password": "Passwort zurücksetzen",
"runner-updated": "Läufer:in aktualisiert!", "runner": "Läufer:in",
"runnerimport_verify_runners_org": "Bitte die Läufer:innen für den Import in die Organisation \"{org_name}\" bestätigen", "runner-added": "Läufer:in hinzugefügt",
"runners": "Läufer", "runner-import": "Läufer:innen Import",
"runners-are-being-imported": "Läufer:innen werden importiert ...", "runner-is-being-added": "Läufer:in wird hinzugefügt...",
"runners-are-being-loaded": "Läufer:innen werden geladen ...", "runner-updated": "Läufer:in aktualisiert!",
"save": "Speichern", "runnerimport_verify_runners_org": "Bitte die Läufer:innen für den Import in die Organisation \"{org_name}\" bestätigen",
"save-changes": "Änderungen speichern", "runners": "Läufer",
"scan-added": "Scan hinzugefügt", "runners-are-being-imported": "Läufer:innen werden importiert ...",
"scan-is-being-updated": "Scan wird aktualisiert", "runners-are-being-loaded": "Läufer:innen werden geladen ...",
"scan-with-fixed-distance": "Scan mit Festdistanz", "save": "Speichern",
"scans": "Scans", "save-changes": "Änderungen speichern",
"scans-are-being-loaded": "Scans werden geladen", "scan-added": "Scan hinzugefügt",
"scanstation": "Scanner Station", "scan-is-being-updated": "Scan wird aktualisiert",
"scanstation-added": "Station wurde erstellt", "scan-with-fixed-distance": "Scan mit Festdistanz",
"scanstation-is-being-added": "Scannerstation wird angelegt...", "scans": "Scans",
"scanstations": "Scanner Stationen", "scans-are-being-loaded": "Scans werden geladen",
"scanstations-are-being-loaded": "Scannerstationen werden geladen...", "scanstation": "Scanner Station",
"search-for-an-organization-by-name-or-id": "Suche eine Organisation (via Name oder Id)", "scanstation-added": "Station wurde erstellt",
"search-for-an-organization-or-team-by-name-or-id": "Suche eine Organisation oder ein Team (via Name oder Id)", "scanstation-is-being-added": "Scannerstation wird angelegt...",
"search-for-donor-name-or-id": "Suche eine Spender:in (via Name oder Id)", "scanstations": "Scanner Stationen",
"search-for-permission": "Berechtigungen durchsuchen", "scanstations-are-being-loaded": "Scannerstationen werden geladen...",
"search-for-runner-by-name-or-id": "Suche eine Läufer:in (via Name oder Id)", "search-for-an-organization-by-name-or-id": "Suche eine Organisation (via Name oder Id)",
"select-all": "Alle auswählen", "search-for-an-organization-or-team-by-name-or-id": "Suche eine Organisation oder ein Team (via Name oder Id)",
"select-language": "Sprache auswählen", "search-for-donor-name-or-id": "Suche eine Spender:in (via Name oder Id)",
"selfservice-registration": "Selfservice Registrierung", "search-for-permission": "Berechtigungen durchsuchen",
"send-a-mail-to-lfk-odit-services": "Sende eine Mail an lfk@odit.services", "search-for-runner-by-name-or-id": "Suche eine Läufer:in (via Name oder Id)",
"set-the-user-active-inactive": "Den Benutzer auf (in)aktiv setzen", "select-all": "Alle auswählen",
"settings": "Einstellungen", "select-language": "Sprache auswählen",
"settings-for-your-profile": "Die Einstellungen deines Accounts", "selfservice-registration": "Selfservice Registrierung",
"something-about-the-group": "Infos zur Gruppe", "send-a-mail-to-lfk-odit-services": "Sende eine Mail an lfk@odit.services",
"stats-are-being-loaded": "Die Statistiken werden geladen...", "set-the-user-active-inactive": "Den Benutzer auf (in)aktiv setzen",
"status": "Status", "settings": "Einstellungen",
"stuff-that-could-harm-your-profile": "Einstellungen, die deinem Profil nachhaltig schaden können", "settings-for-your-profile": "Die Einstellungen deines Accounts",
"successful-password-reset": "Passwort erfolgreich zurückgesetzt!", "something-about-the-group": "Infos zur Gruppe",
"team": "Team", "stats-are-being-loaded": "Die Statistiken werden geladen...",
"team-detail-is-being-loaded": "Team wird geladen...", "status": "Status",
"team-name": "Teamname", "stuff-that-could-harm-your-profile": "Einstellungen, die deinem Profil nachhaltig schaden können",
"team-name-is-required": "Teamname ist erforderlich", "successful-password-reset": "Passwort erfolgreich zurückgesetzt!",
"teams": "Teams", "team": "Team",
"teams-are-being-loaded": "Teams werden geladen ...", "team-detail-is-being-loaded": "Team wird geladen...",
"the-provided-phone-number-is-invalid-less-than-br-greater-than-please-enter-a-valid-international-number": "Die angegebene Telefonnummer ist nicht korrekt. <br /> Bitte gebe eine Telefonnummer im internationalen Format an...", "team-name": "Teamname",
"the-scans-distance-must-be-greater-than-0m": "Die Distanz muss größer als 0m sein.", "team-name-is-required": "Teamname ist erforderlich",
"the-scanstations-api-token-will-only-get-displayed-once-you-wont-be-able-to-change-or-view-it-again": "Der Scannerstation Token wird nur einmal angezeigt - du kannst ihn nicht ändern oder ihn dir nochmal anzeigen lassen!", "teams": "Teams",
"there-are-no-cards-yet": "Es gibt noch keine Läuferkarten.", "teams-are-being-loaded": "Teams werden geladen ...",
"there-are-no-contacts-added-yet": "Es wurden noch keine Kontakte hinzugefügt.", "the-provided-phone-number-is-invalid-less-than-br-greater-than-please-enter-a-valid-international-number": "Die angegebene Telefonnummer ist nicht korrekt. <br /> Bitte gebe eine Telefonnummer im internationalen Format an...",
"there-are-no-donations-yet": "Es gibt noch keine Sponsorings", "the-scans-distance-must-be-greater-than-0m": "Die Distanz muss größer als 0m sein.",
"there-are-no-donors-yet": "Es gibt noch keine Sponsor:innen", "the-scanstations-api-token-will-only-get-displayed-once-you-wont-be-able-to-change-or-view-it-again": "Der Scannerstation Token wird nur einmal angezeigt - du kannst ihn nicht ändern oder ihn dir nochmal anzeigen lassen!",
"there-are-no-groups-yet": "Es gibt noch keine Gruppen", "there-are-no-cards-yet": "Es gibt noch keine Läuferkarten.",
"there-are-no-organizations-added-yet": "Es wurden noch keine Organisationen hinzugefügt.", "there-are-no-contacts-added-yet": "Es wurden noch keine Kontakte hinzugefügt.",
"there-are-no-runners-added-yet": "Es wurden noch keine Läufer:innen hinzugefügt.", "there-are-no-donations-yet": "Es gibt noch keine Sponsorings",
"there-are-no-scans-yet": "Es gibt noch keine Scans", "there-are-no-donors-yet": "Es gibt noch keine Sponsor:innen",
"there-are-no-teams-added-yet": "Es wurden noch keine Teams hinzugefügt.", "there-are-no-groups-yet": "Es gibt noch keine Gruppen",
"there-are-no-users-added-yet": "Es wurden noch keine Benutzer hinzugefügt.", "there-are-no-organizations-added-yet": "Es wurden noch keine Organisationen hinzugefügt.",
"this-card-is": "Diese Karte ist", "there-are-no-runners-added-yet": "Es wurden noch keine Läufer:innen hinzugefügt.",
"this-might-take-a-moment": "Das könnte einen kleinen Moment dauern", "there-are-no-scans-yet": "Es gibt noch keine Scans",
"this-scanstation-is": "Diese Station ist", "there-are-no-teams-added-yet": "Es wurden noch keine Teams hinzugefügt.",
"token": "Token", "there-are-no-users-added-yet": "Es wurden noch keine Benutzer hinzugefügt.",
"total-distance": "gelaufene Strecke", "this-card-is": "Diese Karte ist",
"total-donation-amount": "Gesamtbetrag", "this-might-take-a-moment": "Das könnte einen kleinen Moment dauern",
"total-donations": "Spendensumme", "this-scanstation-is": "Diese Station ist",
"total-scans": "gesamte Scans", "token": "Token",
"track": "Track", "total-distance": "gelaufene Strecke",
"track-added": "Track hinzugefügt", "total-donation-amount": "Gesamtbetrag",
"track-data-is-being-loaded": "Trackdaten werden geladen", "total-donations": "Spendensumme",
"track-is-being-added": "Track wird hinzugefügt...", "total-scans": "gesamte Scans",
"track-length-in-m": "Tracklänge (in Metern)", "track": "Track",
"track-length-must-be-greater-than-0": "Die Länge muss größer als 0 (Meter) sein", "track-added": "Track hinzugefügt",
"track-name": "Trackname", "track-data-is-being-loaded": "Trackdaten werden geladen",
"track-name-must-not-be-empty": "Der Name muss angegeben werden", "track-is-being-added": "Track wird hinzugefügt...",
"tracks": "Tracks", "track-length-in-m": "Tracklänge (in Metern)",
"update-password": "Passwort ändern", "track-length-must-be-greater-than-0": "Die Länge muss größer als 0 (Meter) sein",
"updated-contact": "Kontakt aktualisiert!", "track-name": "Trackname",
"updated-donor": "Sponsor:in wurde aktualisiert", "track-name-must-not-be-empty": "Der Name muss angegeben werden",
"updated-organization": "Organisation wurde aktualisiert", "tracks": "Tracks",
"updated-scan": "Scan wurde aktualisiert", "update-password": "Passwort ändern",
"updateing-group": "Gruppe wird aktualisiert...", "updated-contact": "Kontakt aktualisiert!",
"updating-card": "Karte wird aktualisiert", "updated-donor": "Sponsor:in wurde aktualisiert",
"updating-organization": "Organisation wird aktualisiert", "updated-organization": "Organisation wurde aktualisiert",
"updating-permissions": "Berechtigungen werden aktualisiert...", "updated-scan": "Scan wurde aktualisiert",
"updating-runner": "Läufer:in wird aktualisiert.", "updateing-group": "Gruppe wird aktualisiert...",
"updating-user": "Benutzer:in wird aktualisiert...", "updating-card": "Karte wird aktualisiert",
"updating-your-profile": "Profil wird aktualisiert...", "updating-organization": "Organisation wird aktualisiert",
"user-added": "Benutzer hinzugefügt", "updating-permissions": "Berechtigungen werden aktualisiert...",
"user-groups": "Benutzergruppen", "updating-runner": "Läufer:in wird aktualisiert.",
"user-is-being-added": "Benutzer wird hinzugefügt ...", "updating-user": "Benutzer:in wird aktualisiert...",
"user-updated": "Benutzer:in wurde aktualisiert", "updating-your-profile": "Profil wird aktualisiert...",
"username": "Benutzername", "user-added": "Benutzer hinzugefügt",
"users": "Benutzer", "user-groups": "Benutzergruppen",
"valid": "Gültig", "user-is-being-added": "Benutzer wird hinzugefügt ...",
"valid-city-is-required": "Du musst eine Stadt angeben", "user-updated": "Benutzer:in wurde aktualisiert",
"valid-email-is-required": "Es wird eine valide E-Mail Adresse benötigt", "username": "Benutzername",
"valid-international-phone-number-is-required": "Du musst eine Telefonnummer im internationalen Format angeben...", "users": "Benutzer",
"valid-zipcode-postal-code-is-required": "Du musst eine valide Postleitzahl angeben", "valid": "Gültig",
"verfuegbare": "Verfügbar", "valid-city-is-required": "Du musst eine Stadt angeben",
"welcome_wavinghand": "Willkommen 👋", "valid-email-is-required": "Es wird eine valide E-Mail Adresse benötigt",
"yes-i-copied-the-token": "Ja, ich habe den Token kopiert", "valid-international-phone-number-is-required": "Du musst eine Telefonnummer im internationalen Format angeben...",
"you-are-going-to-loose-all-permissions-and-access-to-the-runner-system": "Du wirst all deine Berechtigungen und den Zugriff aufs Läufersystem verlieren!", "valid-zipcode-postal-code-is-required": "Du musst eine valide Postleitzahl angeben",
"you-can-now-use-your-new-password-to-log-in-to-your-account": "Du kannst dich jetzt mit deinem neuen Passwort anmelden! 🎉", "verfuegbare": "Verfügbar",
"you-can-provide-a-runner-but-you-dont-have-to": "Du kannst eine Läufer:in angeben, musst aber nicht.", "welcome_wavinghand": "Willkommen 👋",
"you-dont-have-any-scanstations-yet": "Es gibt noch keine Scannerstationen", "yes-i-copied-the-token": "Ja, ich habe den Token kopiert",
"you-have-to-provide-an-organization": "Du musst eine Organisation angeben", "you-are-going-to-loose-all-permissions-and-access-to-the-runner-system": "Du wirst all deine Berechtigungen und den Zugriff aufs Läufersystem verlieren!",
"you-have-to-save-your-changes-to-generate-a-link": "Du musst deine Änderungen speichern, um einen Link zu generieren.", "you-can-now-use-your-new-password-to-log-in-to-your-account": "Du kannst dich jetzt mit deinem neuen Passwort anmelden! 🎉",
"you-must-create-at-least-one-card-or-cancel": "Du musst mindestens eine Blankokarte erstellen (oder abbrechen).", "you-can-provide-a-runner-but-you-dont-have-to": "Du kannst eine Läufer:in angeben, musst aber nicht.",
"zip-postal-code": "Postleitzahl" "you-dont-have-any-scanstations-yet": "Es gibt noch keine Scannerstationen",
"you-have-to-provide-an-organization": "Du musst eine Organisation angeben",
"you-have-to-save-your-changes-to-generate-a-link": "Du musst deine Änderungen speichern, um einen Link zu generieren.",
"you-must-create-at-least-one-card-or-cancel": "Du musst mindestens eine Blankokarte erstellen (oder abbrechen).",
"zip-postal-code": "Postleitzahl",
"create-and-generate-pdf": "Erstellen und PDF herunterladen",
"create-without-pdf": "Ohne PDF erstellen"
} }

View File

@@ -1,422 +1,428 @@
{ {
"404message": "Sorry, the page you are looking for could not be found.", "404message": "Sorry, the page you are looking for could not be found.",
"404title": "Error 404", "404title": "Error 404",
"about": "About", "about": "About",
"action": "Action", "action": "Action",
"active": "Active", "active": "Active",
"add-card": "Add Card", "add-card": "Add Card",
"add-donation": "Add donation", "add-donation": "Add donation",
"add-donor": "add donor", "add-donor": "add donor",
"add-scan": "Add scan", "add-scan": "Add scan",
"add-the-first-scanstation": "Add your first scanstation.", "add-the-first-scanstation": "Add your first scanstation.",
"add-user-group": "Add User Group", "add-user-group": "Add User Group",
"add-your-first-card": "Add your first card", "add-your-first-card": "Add your first card",
"add-your-first-contact": "Add your first contact", "add-your-first-contact": "Add your first contact",
"add-your-first-donor": "add your first donor", "add-your-first-donor": "add your first donor",
"add-your-first-group": "Add your first group", "add-your-first-group": "Add your first group",
"add-your-first-organization": "Add your first organization", "add-your-first-organization": "Add your first organization",
"add-your-first-runner": "Add your first runner", "add-your-first-runner": "Add your first runner",
"add-your-first-team": "Add your first team", "add-your-first-team": "Add your first team",
"add-your-first-track": "Add your first track.", "add-your-first-track": "Add your first track.",
"add-your-first-user": "Add your first user", "add-your-first-user": "Add your first user",
"add-your-fist-donation": "Add your fist donation", "add-your-fist-donation": "Add your fist donation",
"add-your-fist-scan": "Add your fist scan", "add-your-fist-scan": "Add your fist scan",
"adding-card": "Adding Card", "adding-card": "Adding Card",
"adding-scan": "Adding Scan", "adding-scan": "Adding Scan",
"address": "Address", "address": "Address",
"address-is-required": "Address is required", "address-is-required": "Address is required",
"after-deletion-we-cant-restore-your-old-profile": "After deletion we can't restore your old profile!", "after-deletion-we-cant-restore-your-old-profile": "After deletion we can't restore your old profile!",
"after-the-update-youll-get-logged-out-please-login-with-your-new-password-after-that": "After the update you'll get logged out - Please login with your new password after that.", "after-the-update-youll-get-logged-out-please-login-with-your-new-password-after-that": "After the update you'll get logged out - Please login with your new password after that.",
"all-associated-donations-will-get-deleted-as-well": "All associated donations will get deleted as well", "all-associated-donations-will-get-deleted-as-well": "All associated donations will get deleted as well",
"all-associated-runners-will-be-deleted-too": "All associated runners will be deleted too!", "all-associated-runners-will-be-deleted-too": "All associated runners will be deleted too!",
"all-associated-teams-and-runners-will-be-deleted-too": "All associated teams and runners will be deleted too!", "all-associated-teams-and-runners-will-be-deleted-too": "All associated teams and runners will be deleted too!",
"amount": "Amount", "amount": "Amount",
"amount-per-kilometer": "Amount per kilometer", "amount-per-kilometer": "Amount per kilometer",
"apartment-suite-etc": "Apartment, suite, etc.", "apartment-suite-etc": "Apartment, suite, etc.",
"application_name": "Lauf für Kaya! - Admin", "application_name": "Lauf für Kaya! - Admin",
"applying-changes": "Applying Changes", "applying-changes": "Applying Changes",
"attention": "Attention!", "attention": "Attention!",
"author": "Author", "author": "Author",
"bitte-bestaetige-diese-laeufer-fuer-den-import": "Please confirm these runners for import.", "bitte-bestaetige-diese-laeufer-fuer-den-import": "Please confirm these runners for import.",
"by": "by", "by": "by",
"cancel": "Cancel", "cancel": "Cancel",
"cancel-delete": "Cancel Delete", "cancel-delete": "Cancel Delete",
"cancel-keep-donor": "Cancel, keep donor", "cancel-keep-donor": "Cancel, keep donor",
"cancel-keep-my-profile": "Cancel, keep my profile", "cancel-keep-my-profile": "Cancel, keep my profile",
"cancel-keep-organization": "Cancel, keep organization", "cancel-keep-organization": "Cancel, keep organization",
"cancel-keep-team": "Cancel, keep team", "cancel-keep-team": "Cancel, keep team",
"cannot-reset-your-password-directly": "Bummer. We unfortunately cannot reset your password directly. Please send us a mail and confirm your identity", "cannot-reset-your-password-directly": "Bummer. We unfortunately cannot reset your password directly. Please send us a mail and confirm your identity",
"card-added": "Card added", "card-added": "Card added",
"card-deleted": "Card deleted", "card-deleted": "Card deleted",
"card-updated": "Card updated", "card-updated": "Card updated",
"cards": "Cards", "cards": "Cards",
"change-your-password-here": "Change your password here", "change-your-password-here": "Change your password here",
"changing-your-password": "Changing your password", "changing-your-password": "Changing your password",
"city": "City", "city": "City",
"click-to-copy-the-link-into-your-clipboard": "Click to copy the link into your clipboard", "click-to-copy-the-link-into-your-clipboard": "Click to copy the link into your clipboard",
"click-to-copy-token-to-clipboard": "Click to copy the token to your clipboard", "click-to-copy-token-to-clipboard": "Click to copy the token to your clipboard",
"close": "Close", "close": "Close",
"code": "Code", "code": "Code",
"configure-the-tracks-and-minimum-lap-times": "configure the tracks & minimum lap times", "configure-the-tracks-and-minimum-lap-times": "configure the tracks & minimum lap times",
"confirm": "Confirm", "confirm": "Confirm",
"confirm-delete": "Confirm Delete", "confirm-delete": "Confirm Delete",
"confirm-delete-donor-with-all-donations": "Confirm, delete donor with all donations", "confirm-delete-donor-with-all-donations": "Confirm, delete donor with all donations",
"confirm-delete-my-user-profile": "Confirm, delete my user profile", "confirm-delete-my-user-profile": "Confirm, delete my user profile",
"confirm-delete-organization-and-associated-teams-runners": "Confirm, delete organization and associated teams+runners.", "confirm-delete-organization-and-associated-teams-runners": "Confirm, delete organization and associated teams+runners.",
"confirm-delete-team-and-associated-runners": "Confirm, delete team and associated runners.", "confirm-delete-team-and-associated-runners": "Confirm, delete team and associated runners.",
"confirm-deletion": "Confirm Deletion", "confirm-deletion": "Confirm Deletion",
"confirm-the-new-password": "Confirm the new password", "confirm-the-new-password": "Confirm the new password",
"contact": "Contact", "contact": "Contact",
"contact-deleted": "Contact deleted", "contact-deleted": "Contact deleted",
"contact-information": "Contact Information", "contact-information": "Contact Information",
"contact-is-being-updated": "Contact is being updated...", "contact-is-being-updated": "Contact is being updated...",
"contact-is-not-a-member-in-any-group": "Contact is not a member in any group", "contact-is-not-a-member-in-any-group": "Contact is not a member in any group",
"contacts": "Contacts", "contacts": "Contacts",
"contacts-are-being-loaded": "contacts are being loaded...", "contacts-are-being-loaded": "contacts are being loaded...",
"copied-link-to-clipboard": "Copied link to clipboard", "copied-link-to-clipboard": "Copied link to clipboard",
"copied-token-to-clipboard": "Copied token to clipboard", "copied-token-to-clipboard": "Copied token to clipboard",
"count_organizations": "# Organizations", "count_organizations": "# Organizations",
"count_teams": "# Teams", "count_teams": "# Teams",
"create": "Create", "create": "Create",
"create-a-new": "Create a new", "create-a-new": "Create a new",
"create-a-new-card": "Create a new card", "create-a-new-card": "Create a new card",
"create-a-new-contact": "Create a new contact", "create-a-new-contact": "Create a new contact",
"create-a-new-distance-donation": "Create a new distance donation", "create-a-new-distance-donation": "Create a new distance donation",
"create-a-new-donor": "Create a new donor", "create-a-new-donor": "Create a new donor",
"create-a-new-fixed-donation": "Create a new fixed donation", "create-a-new-fixed-donation": "Create a new fixed donation",
"create-a-new-organization": "Create a new Organization", "create-a-new-organization": "Create a new Organization",
"create-a-new-runner": "Create a new Runner", "create-a-new-runner": "Create a new Runner",
"create-a-new-scan-fixed-only": "Create a new scan (fixed only)", "create-a-new-scan-fixed-only": "Create a new scan (fixed only)",
"create-a-new-scanstation": "Create a new station", "create-a-new-scanstation": "Create a new station",
"create-a-new-team": "Create a new team", "create-a-new-team": "Create a new team",
"create-a-new-track": "Create a new Track", "create-a-new-track": "Create a new Track",
"create-a-new-user": "Create a new User", "create-a-new-user": "Create a new User",
"create-a-new-user-group": "Create a new user group", "create-a-new-user-group": "Create a new user group",
"create-bulk-blanco-cards": "Create bulk blanco cards", "create-bulk-blanco-cards": "Create bulk blanco cards",
"create-bulk-cards": "Add blanco cards", "create-bulk-cards": "Add blanco cards",
"create-organization": "Create Organization", "create-organization": "Create Organization",
"create-team": "Create Team", "create-team": "Create Team",
"create-track": "Create Track", "create-track": "Create Track",
"create-user": "Create User", "create-user": "Create User",
"created-blanco-cards": "Created blanco cards", "created-blanco-cards": "Created blanco cards",
"creating-blanco-cards": "Creating blanco cards", "creating-blanco-cards": "Creating blanco cards",
"credits": "Credits", "credits": "Credits",
"csv_import__class": "Class", "csv_import__class": "Class",
"csv_import__firstname": "Firstname", "csv_import__firstname": "Firstname",
"csv_import__lastname": "Lastname", "csv_import__lastname": "Lastname",
"csv_import__middlename": "Middlename", "csv_import__middlename": "Middlename",
"csv_import__team": "Team", "csv_import__team": "Team",
"danger-zone": "Danger zone", "danger-zone": "Danger zone",
"dashboard-greeting": "Hello", "dashboard-greeting": "Hello",
"dashboard-title": "Dashboard", "dashboard-title": "Dashboard",
"datatable": { "datatable": {
"search": "🔍 Search...", "search": "🔍 Search...",
"sort_column_ascending": "Sort column ascending", "sort_column_ascending": "Sort column ascending",
"sort_column_descending": "Sort column descending", "sort_column_descending": "Sort column descending",
"previous": "Previous", "previous": "Previous",
"next": "Next", "next": "Next",
"page": "Page", "page": "Page",
"showing": "Showing", "showing": "Showing",
"records": "Records", "records": "Records",
"of": "of", "of": "of",
"to": "to", "to": "to",
"loading": "Loading...", "loading": "Loading...",
"no_matching_records_found": "No matching records found", "no_matching_records_found": "No matching records found",
"an_error_happened_while_fetching_the_data": "An error happened while fetching the data" "an_error_happened_while_fetching_the_data": "An error happened while fetching the data"
}, },
"delete": "Delete", "delete": "Delete",
"delete-contact": "Delete Contact", "delete-contact": "Delete Contact",
"delete-donation": "Delete Donation", "delete-donation": "Delete Donation",
"delete-donor": "Delete donor", "delete-donor": "Delete donor",
"delete-group": "Delete Group", "delete-group": "Delete Group",
"delete-organization": "Delete Organization", "delete-organization": "Delete Organization",
"delete-profile": "Delete Profile", "delete-profile": "Delete Profile",
"delete-runner": "Delete Runner", "delete-runner": "Delete Runner",
"delete-scan": "Delete scan", "delete-scan": "Delete scan",
"delete-station": "Delete station", "delete-station": "Delete station",
"delete-team": "Delete Team", "delete-team": "Delete Team",
"delete-user": "Delete User", "delete-user": "Delete User",
"deleted-scan": "Deleted scan", "deleted-scan": "Deleted scan",
"dependency_name": "Name", "dependency_name": "Name",
"description": "description", "description": "description",
"description-optional": "Description (optional)", "description-optional": "Description (optional)",
"deselect-all": "deselect all", "deselect-all": "deselect all",
"details": "Details", "details": "Details",
"disabled": "disabled", "disabled": "disabled",
"distance": "Distance", "distance": "Distance",
"distance-donation": "distance donation", "distance-donation": "distance donation",
"distance-in-km": "Distance in km", "distance-in-km": "Distance in km",
"distance-track": "Distance (+Track)", "distance-track": "Distance (+Track)",
"do-you-really-want-to-delete-your-profile": "Do you really want to delete your profile?", "do-you-really-want-to-delete-your-profile": "Do you really want to delete your profile?",
"do-you-want-to-delete-the-organization-delete_org-name": "Do you want to delete the organization {orgname}?", "do-you-want-to-delete-the-organization-delete_org-name": "Do you want to delete the organization {orgname}?",
"do-you-want-to-delete-the-team-delete_team-name": "Do you want to delete the team {teamname}?", "do-you-want-to-delete-the-team-delete_team-name": "Do you want to delete the team {teamname}?",
"do-you-want-to-delete-this-donor-with-all-related-donations": "Do you want to delete this donor with all related donations", "do-you-want-to-delete-this-donor-with-all-related-donations": "Do you want to delete this donor with all related donations",
"documentation": "Documentation", "documentation": "Documentation",
"donation-amount": "Donation amount", "donation-amount": "Donation amount",
"donation-amount-must-be-greater-that-0-00eur": "Donation amount must be greater that 0.00€", "donation-amount-must-be-greater-that-0-00eur": "Donation amount must be greater that 0.00€",
"donations": "Donations", "donations": "Donations",
"donor": "Donor", "donor": "Donor",
"donor-added": "Donor added", "donor-added": "Donor added",
"donor-deleted": "donor deleted", "donor-deleted": "donor deleted",
"donor-has-no-associated-donations": "Donor has no associated donations.", "donor-has-no-associated-donations": "Donor has no associated donations.",
"donor-is-being-added": "Donor is being added...", "donor-is-being-added": "Donor is being added...",
"donor-is-being-updated": "Donor is being updated", "donor-is-being-updated": "Donor is being updated",
"donors": "Donors", "donors": "Donors",
"donors-are-being-loaded": "donors are being loaded", "donors-are-being-loaded": "donors are being loaded",
"dont-have-your-email-connected": "Don't have your email connected?", "dont-have-your-email-connected": "Don't have your email connected?",
"dont-panic-were-resetting-it": "Don't panic, we're resetting it ✌", "dont-panic-were-resetting-it": "Don't panic, we're resetting it ✌",
"e-mail-adress": "E-Mail Adress", "e-mail-adress": "E-Mail Adress",
"edit": "Edit", "edit": "Edit",
"edit-a-card": "Edit a card", "edit-a-card": "Edit a card",
"edit-permissions": "edit permissions", "edit-permissions": "edit permissions",
"email_address_or_username": "Email / username", "email_address_or_username": "Email / username",
"enabled": "enabled", "enabled": "enabled",
"enabled_large": "Enabled", "enabled_large": "Enabled",
"english": "English", "english": "English",
"error-during-import": "Error during import", "error-during-import": "Error during import",
"error-whyile-copying-to-clipboard": "Error while copying to clipboard", "error-whyile-copying-to-clipboard": "Error while copying to clipboard",
"error_on_login": "Error on login", "error_on_login": "Error on login",
"erteilte": "Directly granted", "erteilte": "Directly granted",
"everything-concerning-your-profile": "Everything concerning your profile", "everything-concerning-your-profile": "Everything concerning your profile",
"everything-is-more-fun-together": "everything is more fun together 🏃‍♂️🏃‍♀️🏃‍♂️", "everything-is-more-fun-together": "everything is more fun together 🏃‍♂️🏃‍♀️🏃‍♂️",
"faq": "FAQ", "faq": "FAQ",
"filter-by-organization-team": "Filter by Organization/ Team", "filter-by-organization-team": "Filter by Organization/ Team",
"first-name": "First name", "first-name": "First name",
"first-name-is-required": "First Name is required", "first-name-is-required": "First Name is required",
"first-scan-of-the-day": "First scan of the day.", "first-scan-of-the-day": "First scan of the day.",
"fixed-donation": "fixed donation", "fixed-donation": "fixed donation",
"forgot_password": "Forgot your password?", "forgot_password": "Forgot your password?",
"geerbte": "inherited", "geerbte": "inherited",
"general-stats": "General Stats", "general-stats": "General Stats",
"general_promise_error": "😢 Error", "general_promise_error": "😢 Error",
"generate-runnercards": "Generate Runnercards", "generate-runnercards": "Generate Runnercards",
"generate-sponsoring-contract": "generate sponsoring contract", "generate-sponsoring-contract": "generate sponsoring contract",
"generate-sponsoring-contracts": "generate sponsoring contracts", "generate-sponsoring-contracts": "generate sponsoring contracts",
"generating-pdf": "generating PDF...", "generating-pdf": "generating PDF...",
"generating-pdfs": "generating PDFs...", "generating-pdfs": "generating PDFs...",
"generic-ui-logic-error": "Something went wrong in the UI logic", "generic-ui-logic-error": "Something went wrong in the UI logic",
"german": "German", "german": "German",
"go-to-login": "Go To Login", "go-to-login": "Go To Login",
"goback": "Go Home", "goback": "Go Home",
"granted": "granted", "granted": "granted",
"group": "Group", "group": "Group",
"group-added": "Group added", "group-added": "Group added",
"group-is-being-added": "Group is being added...", "group-is-being-added": "Group is being added...",
"group-name-is-required": "Group name is required", "group-name-is-required": "Group name is required",
"group-updated": "group updated", "group-updated": "group updated",
"groups": "Groups", "groups": "Groups",
"groups-are-being-loaded": "Groups are being loaded", "groups-are-being-loaded": "Groups are being loaded",
"home": "Home", "home": "Home",
"icon-image-credits": "We also want to thank these projects for illustrations and icons:", "icon-image-credits": "We also want to thank these projects for illustrations and icons:",
"if-you-want-to-create-multiple-blanco-cards-try-the-add-bulk-button": "If you want to create multiple blanco cards: Try the 'Add blanco cards' button.", "if-you-want-to-create-multiple-blanco-cards-try-the-add-bulk-button": "If you want to create multiple blanco cards: Try the 'Add blanco cards' button.",
"import-finished": "Import finished", "import-finished": "Import finished",
"import-runners": "Import runners", "import-runners": "Import runners",
"import__target-organization": "Target Organization", "import__target-organization": "Target Organization",
"imprint": "Imprint", "imprint": "Imprint",
"imprint-loading": "Imprint loading...", "imprint-loading": "Imprint loading...",
"inactive": "Inactive", "inactive": "Inactive",
"installed-version": "Installed version", "installed-version": "Installed version",
"internal-error": "Internal Error", "internal-error": "Internal Error",
"invalid": "Invalid", "invalid": "Invalid",
"invalid-mail-reset": "the provided email is invalid", "invalid-mail-reset": "the provided email is invalid",
"just-enter-how-many-you-want-and-the-system-will-create-them": "Just enter how many you want and the system will create them", "just-enter-how-many-you-want-and-the-system-will-create-them": "Just enter how many you want and the system will create them",
"laeufer-hinzufuegen": "Add runner", "laeufer-hinzufuegen": "Add runner",
"laeufer-importieren": "Läufer importieren", "laeufer-importieren": "Läufer importieren",
"laptime": "Laptime", "laptime": "Laptime",
"last-name": "Last name", "last-name": "Last name",
"last-name-is-required": "Last Name is required", "last-name-is-required": "Last Name is required",
"lfk-is-os": "The \"Lauf für Kaya!\" Frontend is (like all other projects for the \"LfK!\" Also) an open source project.", "lfk-is-os": "The \"Lauf für Kaya!\" Frontend is (like all other projects for the \"LfK!\" Also) an open source project.",
"license": "License", "license": "License",
"licenses-are-being-loaded": "Licenses are being loaded...", "licenses-are-being-loaded": "Licenses are being loaded...",
"loading-cards": "Loading cards", "loading-cards": "Loading cards",
"loading-contact-details": "Loading contact details...", "loading-contact-details": "Loading contact details...",
"loading-donation-details": "Loading donation details", "loading-donation-details": "Loading donation details",
"loading-donor-details": "Loading donor details", "loading-donor-details": "Loading donor details",
"loading-group-detail": "Loading group detail...", "loading-group-detail": "Loading group detail...",
"loading-profile-data": "Loading profile data", "loading-profile-data": "Loading profile data",
"loading-runners": "loading runners...", "loading-runners": "loading runners...",
"loading-station-details": "Loading station details", "loading-station-details": "Loading station details",
"log_in": "Log in", "log_in": "Log in",
"log_in_to_your_account": "Log in to your account", "log_in_to_your_account": "Log in to your account",
"login_is_checked": "Login is being checked...", "login_is_checked": "Login is being checked...",
"logout": "Logout", "logout": "Logout",
"mail-validation-in-progress": "mail validation in progress...", "mail-validation-in-progress": "mail validation in progress...",
"manage-admin-users": "manage admin users", "manage-admin-users": "manage admin users",
"middle-name": "Middle name", "middle-name": "Middle name",
"minimum-lap-time-in-s": "minimum lap time in s", "minimum-lap-time-in-s": "minimum lap time in s",
"minimum-lap-time-must-be-a-positive-number-or-0": "minimum lap time must be a positive number or 0", "minimum-lap-time-must-be-a-positive-number-or-0": "minimum lap time must be a positive number or 0",
"name": "Name", "must-be-at-least-10-characters-long": "Must be at least 10 characters long!",
"name-is-required": "Name is required", "must-contain-a-lowercase-letter": "Must contain a lowercase letter!",
"new-password": "New password", "must-contain-a-number": "Must contain a number!",
"no-contact-found": "No contacts found", "must-contain-a-uppercase-letter": "Must contain a uppercase letter!",
"no-contact-selected": "No contact selected", "name": "Name",
"no-contact-specified": "no contact specified", "name-is-required": "Name is required",
"no-donors-found": "No donors found", "new-password": "New password",
"no-license-text-could-be-found": "No license text could be found 😢", "no-contact-found": "No contacts found",
"no-organization-or-team-found": "No organization or team found", "no-contact-selected": "No contact selected",
"no-organization-specified": "no organization specified", "no-contact-specified": "no contact specified",
"no-organizations-found": "No organizations found", "no-donors-found": "No donors found",
"no-runners-found": "No runners found", "no-license-text-could-be-found": "No license text could be found 😢",
"no-tracks-added-yet": "there are no tracks added yet.", "no-organization-or-team-found": "No organization or team found",
"non-blanko": "Non/Blanko", "no-organization-specified": "no organization specified",
"organization": "Organization", "no-organizations-found": "No organizations found",
"organization-added": "Organization added", "no-runners-found": "No runners found",
"organization-deleted": "Organization deleted", "no-tracks-added-yet": "there are no tracks added yet.",
"organization-detail-is-being-loaded": "organization detail is being loaded...", "non-blanko": "Non/Blanko",
"organization-is-being-added": "Organization is being added...", "organization": "Organization",
"organization-name-is-required": "Organization name is required", "organization-added": "Organization added",
"organizations": "Organizations", "organization-deleted": "Organization deleted",
"organizations-are-being-loaded": "organizations are being loaded...", "organization-detail-is-being-loaded": "organization detail is being loaded...",
"orgs": "Organizations", "organization-is-being-added": "Organization is being added...",
"oss_credit_description": "We use a lot of open source software on these projects, and would like to thank the following projects and contributors who help make open source great!", "organization-name-is-required": "Organization name is required",
"password": "Password", "organizations": "Organizations",
"password-changed": "Password changed!", "organizations-are-being-loaded": "organizations are being loaded...",
"password-is-required": "Password is required", "orgs": "Organizations",
"password-reset-failed": "Password reset failed!", "oss_credit_description": "We use a lot of open source software on these projects, and would like to thank the following projects and contributors who help make open source great!",
"password-reset-in-progress": "Password Reset in Progress...", "password": "Password",
"password-reset-mail-sent": "Password reset mail was sent to \"{usersEmail}\".", "password-changed": "Password changed!",
"password-reset-successful": "Password Reset successful!", "password-is-required": "Password is required",
"passwords-dont-match": "Passwords don't match", "password-reset-failed": "Password reset failed!",
"pdf-generation-failed": "PDF generation failed!", "password-reset-in-progress": "Password Reset in Progress...",
"pdf-successfully-generated": "PDF successfully generated!", "password-reset-mail-sent": "Password reset mail was sent to \"{usersEmail}\".",
"pdfs-successfully-generated": "PDFs successfully generated!", "password-reset-successful": "Password Reset successful!",
"per-kilometer": "per Kilometer", "passwords-dont-match": "Passwords don't match!",
"permissions": "Permissions", "pdf-generation-failed": "PDF generation failed!",
"permissions-updated": "Permissions updated!", "pdf-successfully-generated": "PDF successfully generated!",
"phone": "Phone", "pdfs-successfully-generated": "PDFs successfully generated!",
"please-copy-the-token-and-store-it-somewhere-save": "Please copy the token and store it somewhere safe.", "per-kilometer": "per Kilometer",
"please-provide-a-password": "Please provide a password...", "permissions": "Permissions",
"please-provide-the-nessecary-information-to-add-a-new-donor": "Please provide the nessecary information to add a new donor", "permissions-updated": "Permissions updated!",
"please-provide-the-nessecary-information-to-create-a-new-donation": "Please provide the nessecary information to create a new donation", "phone": "Phone",
"please-provide-the-nessecary-information-to-create-a-new-scan": "Please provide the nessecary information to create a new scan.", "please-copy-the-token-and-store-it-somewhere-save": "Please copy the token and store it somewhere safe.",
"please-provide-the-required-csv-xlsx-file": "Please provide the required csv/ xlsx file", "please-provide-a-password": "Please provide a password...",
"please-provide-the-required-information-for-creating-a-new-user-group": "Please provide the required information for creating a new user group.", "please-provide-the-nessecary-information-to-add-a-new-donor": "Please provide the nessecary information to add a new donor",
"please-provide-the-required-information-to-add-a-new-contact": "Please provide the required information to add a new contact.", "please-provide-the-nessecary-information-to-create-a-new-donation": "Please provide the nessecary information to create a new donation",
"please-provide-the-required-information-to-add-a-new-organization": "Please provide the required information to add a new organization.", "please-provide-the-nessecary-information-to-create-a-new-scan": "Please provide the nessecary information to create a new scan.",
"please-provide-the-required-information-to-add-a-new-runner": "Please provide the required information to add a new runner.", "please-provide-the-required-csv-xlsx-file": "Please provide the required csv/ xlsx file",
"please-provide-the-required-information-to-add-a-new-team": "Please provide the required information to add a new team.", "please-provide-the-required-information-for-creating-a-new-user-group": "Please provide the required information for creating a new user group.",
"please-provide-the-required-information-to-add-a-new-track": "Please provide the required information to add a new track.", "please-provide-the-required-information-to-add-a-new-contact": "Please provide the required information to add a new contact.",
"please-provide-the-required-information-to-add-a-new-user": "Please provide the required information to add a new user.", "please-provide-the-required-information-to-add-a-new-organization": "Please provide the required information to add a new organization.",
"please-provide-the-required-information-to-create-a-new-scanstation": "Please provide the required information to create a new scanstation", "please-provide-the-required-information-to-add-a-new-runner": "Please provide the required information to add a new runner.",
"please-request-a-new-reset-mail": "Please request a new reset mail...", "please-provide-the-required-information-to-add-a-new-team": "Please provide the required information to add a new team.",
"privacy": "Privacy", "please-provide-the-required-information-to-add-a-new-track": "Please provide the required information to add a new track.",
"privacy-loading": "Privacy loading...", "please-provide-the-required-information-to-add-a-new-user": "Please provide the required information to add a new user.",
"profile": "Profile", "please-provide-the-required-information-to-create-a-new-scanstation": "Please provide the required information to create a new scanstation",
"profile-picture": "Profile Picture", "please-request-a-new-reset-mail": "Please request a new reset mail...",
"profile-updated": "Profile updated!", "privacy": "Privacy",
"read-license": "Read License", "privacy-loading": "Privacy loading...",
"receipt-needed": "Receipt needed", "profile": "Profile",
"repo_link": "Link", "profile-picture": "Profile Picture",
"request-a-new-reset-mail": "Request a new reset mail", "profile-updated": "Profile updated!",
"reset-my-password": "Reset my password", "read-license": "Read License",
"reset-password": "Reset your password", "receipt-needed": "Receipt needed",
"runner": "Runner", "repo_link": "Link",
"runner-added": "Runner added", "request-a-new-reset-mail": "Request a new reset mail",
"runner-import": "Runner Import", "reset-my-password": "Reset my password",
"runner-is-being-added": "Runner is being added...", "reset-password": "Reset your password",
"runner-updated": "Runner updated!", "runner": "Runner",
"runnerimport_verify_runners_org": "Please confirm these runners for import into the organization \"{org_name}\"", "runner-added": "Runner added",
"runners": "Runners", "runner-import": "Runner Import",
"runners-are-being-imported": "Runners are being imported...", "runner-is-being-added": "Runner is being added...",
"runners-are-being-loaded": "runners are being loaded...", "runner-updated": "Runner updated!",
"save": "Save", "runnerimport_verify_runners_org": "Please confirm these runners for import into the organization \"{org_name}\"",
"save-changes": "Save Changes", "runners": "Runners",
"scan-added": "Scan added", "runners-are-being-imported": "Runners are being imported...",
"scan-is-being-updated": "Scan is being updated", "runners-are-being-loaded": "runners are being loaded...",
"scan-with-fixed-distance": "Scan with fixed distance", "save": "Save",
"scans": "Scans", "save-changes": "Save Changes",
"scans-are-being-loaded": "Scans are being loaded", "scan-added": "Scan added",
"scanstation": "Scanstation", "scan-is-being-updated": "Scan is being updated",
"scanstation-added": "Scanstation added", "scan-with-fixed-distance": "Scan with fixed distance",
"scanstation-is-being-added": "Adding scanstation...", "scans": "Scans",
"scanstations": "Scanstations", "scans-are-being-loaded": "Scans are being loaded",
"scanstations-are-being-loaded": "Loading scanstations...", "scanstation": "Scanstation",
"search-for-an-organization-by-name-or-id": "Search for an organization (by name or id)", "scanstation-added": "Scanstation added",
"search-for-an-organization-or-team-by-name-or-id": "Search for an organization or team (by name or id)", "scanstation-is-being-added": "Adding scanstation...",
"search-for-donor-name-or-id": "Search for donor (by name or id)", "scanstations": "Scanstations",
"search-for-permission": "Search for permission", "scanstations-are-being-loaded": "Loading scanstations...",
"search-for-runner-by-name-or-id": "Search for runner (by name or id)", "search-for-an-organization-by-name-or-id": "Search for an organization (by name or id)",
"select-all": "select all", "search-for-an-organization-or-team-by-name-or-id": "Search for an organization or team (by name or id)",
"select-language": "Select language", "search-for-donor-name-or-id": "Search for donor (by name or id)",
"selfservice-registration": "Selfservice registration", "search-for-permission": "Search for permission",
"send-a-mail-to-lfk-odit-services": "send a mail to lfk@odit.services", "search-for-runner-by-name-or-id": "Search for runner (by name or id)",
"set-the-user-active-inactive": "set the user active/ inactive", "select-all": "select all",
"settings": "Settings", "select-language": "Select language",
"settings-for-your-profile": "Settings for your profile", "selfservice-registration": "Selfservice registration",
"something-about-the-group": "Something about the group...", "send-a-mail-to-lfk-odit-services": "send a mail to lfk@odit.services",
"stats-are-being-loaded": "stats are being loaded...", "set-the-user-active-inactive": "set the user active/ inactive",
"status": "Status", "settings": "Settings",
"stuff-that-could-harm-your-profile": "Stuff that could harm your profile", "settings-for-your-profile": "Settings for your profile",
"successful-password-reset": "Successful password reset!", "something-about-the-group": "Something about the group...",
"team": "Team", "stats-are-being-loaded": "stats are being loaded...",
"team-detail-is-being-loaded": "team detail is being loaded...", "status": "Status",
"team-name": "Team name", "stuff-that-could-harm-your-profile": "Stuff that could harm your profile",
"team-name-is-required": "team name is required", "successful-password-reset": "Successful password reset!",
"teams": "Teams", "team": "Team",
"teams-are-being-loaded": "teams are being loaded...", "team-detail-is-being-loaded": "team detail is being loaded...",
"the-provided-phone-number-is-invalid-less-than-br-greater-than-please-enter-a-valid-international-number": "the provided phone number is invalid.<br />please enter a valid international number...", "team-name": "Team name",
"the-scans-distance-must-be-greater-than-0m": "The scan's distance must be greater than 0m", "team-name-is-required": "team name is required",
"the-scanstations-api-token-will-only-get-displayed-once-you-wont-be-able-to-change-or-view-it-again": "The scanstation api token will only get displayed once - you won't be able to change or view it again!", "teams": "Teams",
"there-are-no-cards-yet": "There are no cards yet.", "teams-are-being-loaded": "teams are being loaded...",
"there-are-no-contacts-added-yet": "There are no contacts added yet.", "the-provided-phone-number-is-invalid-less-than-br-greater-than-please-enter-a-valid-international-number": "the provided phone number is invalid.<br />please enter a valid international number...",
"there-are-no-donations-yet": "There are no donations yet", "the-scans-distance-must-be-greater-than-0m": "The scan's distance must be greater than 0m",
"there-are-no-donors-yet": "There are no donors yet", "the-scanstations-api-token-will-only-get-displayed-once-you-wont-be-able-to-change-or-view-it-again": "The scanstation api token will only get displayed once - you won't be able to change or view it again!",
"there-are-no-groups-yet": "There are no groups yet", "there-are-no-cards-yet": "There are no cards yet.",
"there-are-no-organizations-added-yet": "There are no organizations added yet.", "there-are-no-contacts-added-yet": "There are no contacts added yet.",
"there-are-no-runners-added-yet": "There are no runners added yet.", "there-are-no-donations-yet": "There are no donations yet",
"there-are-no-scans-yet": "There are no scans yet", "there-are-no-donors-yet": "There are no donors yet",
"there-are-no-teams-added-yet": "There are no teams added yet.", "there-are-no-groups-yet": "There are no groups yet",
"there-are-no-users-added-yet": "There are no users added yet.", "there-are-no-organizations-added-yet": "There are no organizations added yet.",
"this-card-is": "This card is", "there-are-no-runners-added-yet": "There are no runners added yet.",
"this-might-take-a-moment": "This might take a moment 👀", "there-are-no-scans-yet": "There are no scans yet",
"this-scanstation-is": "This scanstation is", "there-are-no-teams-added-yet": "There are no teams added yet.",
"token": "Token", "there-are-no-users-added-yet": "There are no users added yet.",
"total-distance": "total distance", "this-card-is": "This card is",
"total-donation-amount": "total donation amount", "this-might-take-a-moment": "This might take a moment 👀",
"total-donations": "total donations", "this-scanstation-is": "This scanstation is",
"total-scans": "total scans", "token": "Token",
"track": "Track", "total-distance": "total distance",
"track-added": "Track added", "total-donation-amount": "total donation amount",
"track-data-is-being-loaded": "Track data is being loaded", "total-donations": "total donations",
"track-is-being-added": "Track is being added...", "total-scans": "total scans",
"track-length-in-m": "Track Length in m", "track": "Track",
"track-length-must-be-greater-than-0": "Track length must be greater than 0", "track-added": "Track added",
"track-name": "Track name", "track-data-is-being-loaded": "Track data is being loaded",
"track-name-must-not-be-empty": "Track name must not be empty", "track-is-being-added": "Track is being added...",
"tracks": "Tracks", "track-length-in-m": "Track Length in m",
"update-card": "Update Card", "track-length-must-be-greater-than-0": "Track length must be greater than 0",
"update-password": "Update password", "track-name": "Track name",
"updated-contact": "Updated contact!", "track-name-must-not-be-empty": "Track name must not be empty",
"updated-donor": "updated donor", "tracks": "Tracks",
"updated-organization": "updated organization", "update-card": "Update Card",
"updated-scan": "updated scan", "update-password": "Update password",
"updateing-group": "updateing group...", "updated-contact": "Updated contact!",
"updating-card": "Updating card", "updated-donor": "updated donor",
"updating-organization": "updating organization", "updated-organization": "updated organization",
"updating-permissions": "updating permissions...", "updated-scan": "updated scan",
"updating-runner": "Updating runner...", "updateing-group": "updateing group...",
"updating-user": "updating user...", "updating-card": "Updating card",
"updating-your-profile": "Updating your profile...", "updating-organization": "updating organization",
"user-added": "User added", "updating-permissions": "updating permissions...",
"user-groups": "User Groups", "updating-runner": "Updating runner...",
"user-is-being-added": "User is being added...", "updating-user": "updating user...",
"user-updated": "User updated", "updating-your-profile": "Updating your profile...",
"username": "Username", "user-added": "User added",
"users": "Users", "user-groups": "User Groups",
"valid": "Valid", "user-is-being-added": "User is being added...",
"valid-city-is-required": "Valid city is required", "user-updated": "User updated",
"valid-email-is-required": "valid email is required", "username": "Username",
"valid-international-phone-number-is-required": "valid international phone number is required...", "users": "Users",
"valid-zipcode-postal-code-is-required": "Valid zipcode/ postal code is required", "valid": "Valid",
"verfuegbare": "availdable", "valid-city-is-required": "Valid city is required",
"welcome_wavinghand": "Welcome 👋", "valid-email-is-required": "valid email is required",
"yes-i-copied-the-token": "Yes, I copied the token", "valid-international-phone-number-is-required": "valid international phone number is required...",
"you-are-going-to-loose-all-permissions-and-access-to-the-runner-system": "You are going to loose all permissions and access to the runner system!", "valid-zipcode-postal-code-is-required": "Valid zipcode/ postal code is required",
"you-can-now-use-your-new-password-to-log-in-to-your-account": "You can now use your new password to log in to your account! 🎉", "verfuegbare": "availdable",
"you-can-provide-a-runner-but-you-dont-have-to": "You can provide a runner, but you don't have to.", "welcome_wavinghand": "Welcome 👋",
"you-dont-have-any-scanstations-yet": "You don't have any scanstations yet", "yes-i-copied-the-token": "Yes, I copied the token",
"you-have-to-provide-an-organization": "You have to provide an organization", "you-are-going-to-loose-all-permissions-and-access-to-the-runner-system": "You are going to loose all permissions and access to the runner system!",
"you-have-to-save-your-changes-to-generate-a-link": "You have to save your changes to generate a link.", "you-can-now-use-your-new-password-to-log-in-to-your-account": "You can now use your new password to log in to your account! 🎉",
"you-must-create-at-least-one-card-or-cancel": "You must create at least one card (or cancel).", "you-can-provide-a-runner-but-you-dont-have-to": "You can provide a runner, but you don't have to.",
"zip-postal-code": "ZIP/ postal code" "you-dont-have-any-scanstations-yet": "You don't have any scanstations yet",
"you-have-to-provide-an-organization": "You have to provide an organization",
"you-have-to-save-your-changes-to-generate-a-link": "You have to save your changes to generate a link.",
"you-must-create-at-least-one-card-or-cancel": "You must create at least one card (or cancel).",
"zip-postal-code": "ZIP/ postal code",
"create-and-generate-pdf": "Create and generate PDF",
"create-without-pdf": "Create without PDF"
} }