Compare commits

...

27 Commits

Author SHA1 Message Date
8da7578a0a 🚀RELEASE v1.0.0 2023-04-19 15:37:56 +02:00
e9ce9644ff Merge pull request 'feature/175-request_pagination' (#176) from feature/175-request_pagination into dev
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #176
2023-04-19 13:37:16 +00:00
52439aa5bc Allways set loaded to true
ref #175
2023-04-18 20:47:42 +02:00
ccf865687b Donation paginated loading
ref #175
2023-04-18 20:46:18 +02:00
cac34db1fd Paginated scan loading
ref #175
2023-04-18 20:43:04 +02:00
faf3893180 Paginated runner loading (1000 per page)
ref #175
2023-04-18 20:40:28 +02:00
c33dfcfddd Implemented Async loading of cards via pagination (500 cards per request)
ref #175
2023-04-18 20:38:01 +02:00
019e14ab1f Bumped lfk client
Some checks failed
continuous-integration/drone/push Build is failing
2023-04-18 20:18:46 +02:00
b5790196c6 Merge branch 'dev' of git.odit.services:lfk/frontend into dev
Some checks failed
continuous-integration/drone/push Build is failing
2023-04-17 17:56:42 +02:00
94a64ca690 🚀RELEASE v0.19.0 2023-04-17 17:56:34 +02:00
a6ce04c903 new license file version [CI SKIP] 2023-04-17 15:56:08 +00:00
165c154233 Merge pull request 'feature/173-scanstation_configcodes' (#174) from feature/173-scanstation_configcodes into dev
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #174
2023-04-17 15:55:53 +00:00
318547db46 Adjusted size on smaller devices
ref #173
2023-04-17 17:55:33 +02:00
e60c09e19c I18n
ref #173
2023-04-17 17:52:05 +02:00
4834d1484c Styling
ref #173
2023-04-17 17:51:46 +02:00
4b6342727e Implemented config code generation
ref #173
2023-04-17 17:47:57 +02:00
cb5fa52cd9 Barcode placeholder
ref #173
2023-04-17 17:32:42 +02:00
947d01cf7f Lockfile 2023-04-17 17:32:31 +02:00
3563394fb3 Added bwip-js for barcode generation
ref #173
2023-04-17 17:32:16 +02:00
269d7a7def 🚀RELEASE v0.18.4
Some checks failed
continuous-integration/drone/push Build is failing
2023-04-15 23:32:08 +02:00
e95f2333b0 Hide address2 in orgs by default 2023-04-15 23:30:46 +02:00
950217e0a3 🚀RELEASE v0.18.3
Some checks failed
continuous-integration/drone/push Build is failing
2023-04-15 23:27:36 +02:00
5e65fb3301 Dont show adress 2 in runner overview 2023-04-15 23:27:19 +02:00
2a294cde04 🚀RELEASE v0.18.2
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-15 19:58:14 +02:00
e95420d79c Push in releaseit 2023-04-15 19:57:59 +02:00
cffbd17dc7 Added timestamps to scanoverview 2023-04-15 19:56:55 +02:00
00de8c3d75 🚀RELEASE v0.18.1
Some checks failed
continuous-integration/drone/push Build is failing
2023-04-15 19:44:17 +02:00
14 changed files with 1522 additions and 1313 deletions

View File

@@ -2,10 +2,70 @@
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.
#### [1.0.0](https://git.odit.services/lfk/frontend/compare/0.19.0...1.0.0)
- Merge pull request 'feature/175-request_pagination' (#176) from feature/175-request_pagination into dev [`e9ce964`](https://git.odit.services/lfk/frontend/commit/e9ce9644ff03f981cec6e9ad56aa5fdf0ff71ef4)
- Donation paginated loading [`ccf8656`](https://git.odit.services/lfk/frontend/commit/ccf865687b34016931a702c0a9b98a0a18e2b03a)
- Paginated scan loading [`cac34db`](https://git.odit.services/lfk/frontend/commit/cac34db1fd3bf5dc7c7be64b3a76ca4c8c77938d)
- Implemented Async loading of cards via pagination (500 cards per request) [`c33dfcf`](https://git.odit.services/lfk/frontend/commit/c33dfcfddddfed0902f3fa9b1d8a1d3e1560262f)
- Paginated runner loading (1000 per page) [`faf3893`](https://git.odit.services/lfk/frontend/commit/faf3893180bb735bea6f1ea58c896686b89949fe)
- Allways set loaded to true [`52439aa`](https://git.odit.services/lfk/frontend/commit/52439aa5bc8cfb1d78d5dfce55b1a0df640ad8f5)
- Bumped lfk client [`019e14a`](https://git.odit.services/lfk/frontend/commit/019e14ab1f99906f13d36c7148d0f4b7894072f2)
- new license file version [CI SKIP] [`a6ce04c`](https://git.odit.services/lfk/frontend/commit/a6ce04c90386f16abf235cc7b2f95aeea5011c7d)
#### [0.19.0](https://git.odit.services/lfk/frontend/compare/0.18.4...0.19.0)
> 17 April 2023
- 🚀RELEASE v0.19.0 [`94a64ca`](https://git.odit.services/lfk/frontend/commit/94a64ca69078c7fe2935eeb5f955fab95a79cb85)
- Merge pull request 'feature/173-scanstation_configcodes' (#174) from feature/173-scanstation_configcodes into dev [`165c154`](https://git.odit.services/lfk/frontend/commit/165c1542338c58f2abf42fef2e7b84b40d1e2d9c)
- I18n [`e60c09e`](https://git.odit.services/lfk/frontend/commit/e60c09e19c9cc20338906e84f4db4e009d926360)
- Implemented config code generation [`4b63427`](https://git.odit.services/lfk/frontend/commit/4b6342727ee0ea38597750d8c99edc301f1ccc2d)
- Styling [`4834d14`](https://git.odit.services/lfk/frontend/commit/4834d1484c3fb6ecd4a1b56aa9fbb8125c641a62)
- Adjusted size on smaller devices [`318547d`](https://git.odit.services/lfk/frontend/commit/318547db46045e41de64d5688368e85cd6fb8035)
- Lockfile [`947d01c`](https://git.odit.services/lfk/frontend/commit/947d01cf7fc7fe2ee88c56e017b0d663f1f3b4f9)
- Barcode placeholder [`cb5fa52`](https://git.odit.services/lfk/frontend/commit/cb5fa52cd9a97490b50fb0c02c26615b49650c08)
- Added bwip-js for barcode generation [`3563394`](https://git.odit.services/lfk/frontend/commit/3563394fb33d661890327e2ae08c400830b37844)
#### [0.18.4](https://git.odit.services/lfk/frontend/compare/0.18.3...0.18.4)
> 15 April 2023
- 🚀RELEASE v0.18.4 [`269d7a7`](https://git.odit.services/lfk/frontend/commit/269d7a7defdde059ef2bb5103262cf734e9babe9)
- Hide address2 in orgs by default [`e95f233`](https://git.odit.services/lfk/frontend/commit/e95f2333b0b958ed00c0e097b43aac2e70ad0d38)
#### [0.18.3](https://git.odit.services/lfk/frontend/compare/0.18.2...0.18.3)
> 15 April 2023
- 🚀RELEASE v0.18.3 [`950217e`](https://git.odit.services/lfk/frontend/commit/950217e0a350f9999b879475edf41f2f11c48179)
- Dont show adress 2 in runner overview [`5e65fb3`](https://git.odit.services/lfk/frontend/commit/5e65fb33013c3dad38e7ad6740b017ae206f278f)
#### [0.18.2](https://git.odit.services/lfk/frontend/compare/0.18.1...0.18.2)
> 15 April 2023
- 🚀RELEASE v0.18.2 [`2a294cd`](https://git.odit.services/lfk/frontend/commit/2a294cde040044bbebfb9c8b34b6c91b27772741)
- Added timestamps to scanoverview [`cffbd17`](https://git.odit.services/lfk/frontend/commit/cffbd17dc77054048cc9b14891f960f9a3fd18cb)
- Push in releaseit [`e95420d`](https://git.odit.services/lfk/frontend/commit/e95420d79c3227c0ca0cf0c0b599970c2b7d690e)
#### [0.18.1](https://git.odit.services/lfk/frontend/compare/0.18.0...0.18.1)
> 15 April 2023
- 🚀RELEASE v0.18.1 [`00de8c3`](https://git.odit.services/lfk/frontend/commit/00de8c3d75e90cd4614f42111f5f45bedde64130)
- Missing scanstation translations [`30e3396`](https://git.odit.services/lfk/frontend/commit/30e33968978bf33cedb31bcbf63fac273e1664f5)
- fix: button onclick a11y [`9fe53b0`](https://git.odit.services/lfk/frontend/commit/9fe53b0b9c71e8a6b4aa3f317327ffe729df0834)
- fix(ConfirmStatsClientDeletion): ScanStationService -> StatsClientService [`5291e04`](https://git.odit.services/lfk/frontend/commit/5291e049a1d2e880fbe277095da91b70d4812c3f)
- fix(ConfirmScanStationDeletion): donorControllerRemove -> scanStationControllerRemove [`08fbb50`](https://git.odit.services/lfk/frontend/commit/08fbb504c958415ce75e1e426296f870f0f1358d)
#### [0.18.0](https://git.odit.services/lfk/frontend/compare/0.17.3...0.18.0) #### [0.18.0](https://git.odit.services/lfk/frontend/compare/0.17.3...0.18.0)
> 12 April 2023
- Moved filter function to typed version [`#171`](https://git.odit.services/lfk/frontend/issues/171) - Moved filter function to typed version [`#171`](https://git.odit.services/lfk/frontend/issues/171)
- ScansOverview: migrate to datatable [`#168`](https://git.odit.services/lfk/frontend/issues/168) - ScansOverview: migrate to datatable [`#168`](https://git.odit.services/lfk/frontend/issues/168)
- 🚀RELEASE v0.18.0 [`eb80406`](https://git.odit.services/lfk/frontend/commit/eb80406fdb8abf3f76bca742095e8f1f03480a56)
- wip: ScansOverview -> new datatable [`c87561f`](https://git.odit.services/lfk/frontend/commit/c87561f63b90ab951daf91d9b8b54ba96a94cc7f) - wip: ScansOverview -> new datatable [`c87561f`](https://git.odit.services/lfk/frontend/commit/c87561f63b90ab951daf91d9b8b54ba96a94cc7f)
- Basic card table replace [`5662c3b`](https://git.odit.services/lfk/frontend/commit/5662c3b6da67c00c94254bf39f8820e531fc93ef) - Basic card table replace [`5662c3b`](https://git.odit.services/lfk/frontend/commit/5662c3b6da67c00c94254bf39f8820e531fc93ef)
- RunnersOverview: table responsiveness [`bf1e715`](https://git.odit.services/lfk/frontend/commit/bf1e715261c0076fd8543dd1187c516209a73b16) - RunnersOverview: table responsiveness [`bf1e715`](https://git.odit.services/lfk/frontend/commit/bf1e715261c0076fd8543dd1187c516209a73b16)

View File

@@ -13,7 +13,7 @@
</head> </head>
<body> <body>
<span style="display: none;visibility: hidden;" id="buildinfo">RELEASE_INFO-0.18.0-RELEASE_INFO</span> <span style="display: none;visibility: hidden;" id="buildinfo">RELEASE_INFO-1.0.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 type="module" src="/src/main.js"></script> <script type="module" src="/src/main.js"></script>

View File

@@ -1,6 +1,6 @@
{ {
"name": "@odit/lfk-frontend", "name": "@odit/lfk-frontend",
"version": "0.18.0", "version": "1.0.0",
"type": "module", "type": "module",
"scripts": { "scripts": {
"i18n-order": "node order.js", "i18n-order": "node order.js",
@@ -26,7 +26,7 @@
"commit": true, "commit": true,
"requireCleanWorkingDir": false, "requireCleanWorkingDir": false,
"commitMessage": "🚀RELEASE v${version}", "commitMessage": "🚀RELEASE v${version}",
"push": false, "push": true,
"tag": true, "tag": true,
"tagName": null, "tagName": null,
"tagAnnotation": "v${version}" "tagAnnotation": "v${version}"
@@ -39,9 +39,10 @@
} }
}, },
"dependencies": { "dependencies": {
"@odit/lfk-client-js": "0.14.3", "@odit/lfk-client-js": "1.0.1",
"@paralleldrive/cuid2": "^2.2.0", "@paralleldrive/cuid2": "^2.2.0",
"@tanstack/svelte-table": "^8.8.5", "@tanstack/svelte-table": "^8.8.5",
"bwip-js": "^3.4.0",
"check-password-strength": "2.0.7", "check-password-strength": "2.0.7",
"csvtojson": "2.0.10", "csvtojson": "2.0.10",
"gridjs": "3.4.0", "gridjs": "3.4.0",

16
pnpm-lock.yaml generated
View File

@@ -2,14 +2,17 @@ lockfileVersion: '6.0'
dependencies: dependencies:
'@odit/lfk-client-js': '@odit/lfk-client-js':
specifier: 0.14.3 specifier: 1.0.1
version: 0.14.3 version: 1.0.1
'@paralleldrive/cuid2': '@paralleldrive/cuid2':
specifier: ^2.2.0 specifier: ^2.2.0
version: 2.2.0 version: 2.2.0
'@tanstack/svelte-table': '@tanstack/svelte-table':
specifier: ^8.8.5 specifier: ^8.8.5
version: 8.8.5(svelte@3.58.0) version: 8.8.5(svelte@3.58.0)
bwip-js:
specifier: ^3.4.0
version: 3.4.0
check-password-strength: check-password-strength:
specifier: 2.0.7 specifier: 2.0.7
version: 2.0.7 version: 2.0.7
@@ -507,8 +510,8 @@ packages:
'@octokit/openapi-types': 16.0.0 '@octokit/openapi-types': 16.0.0
dev: true dev: true
/@odit/lfk-client-js@0.14.3: /@odit/lfk-client-js@1.0.1:
resolution: {integrity: sha512-oOZ9jjzqcbMA0Sfwxn4q9+8hHckMU2IhAn7v0OAS54zcnquYQANnY4RMEoNIyXd0oEe1z8QewBjyBvFEDg6BmA==} resolution: {integrity: sha512-eGwUW1MIh7sCzlLNRBLuBvLGGCHoOzmHovHnPqpMDn+fziIIX+fcmt40mdISucZwJDJqnOff4+eHimsHfSQO8A==}
dev: false dev: false
/@odit/license-exporter@0.0.12: /@odit/license-exporter@0.0.12:
@@ -847,6 +850,11 @@ packages:
run-applescript: 5.0.0 run-applescript: 5.0.0
dev: true dev: true
/bwip-js@3.4.0:
resolution: {integrity: sha512-Gx9LIBhmEFmNH4FJsS+Rs+bG5hUcs+OBemEEQ2ZTLz8tue0PA/lM692Gf2yuYJ2yUpLGtK9tAexs85tXBPG/ww==}
hasBin: true
dev: false
/bytes@3.1.2: /bytes@3.1.2:
resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
engines: {node: '>= 0.8'} engines: {node: '>= 0.8'}

File diff suppressed because one or more lines are too long

View File

@@ -32,7 +32,7 @@
export let original_data = {}; export let original_data = {};
export let current_cards = []; export let current_cards = [];
export const addCards = (cards) => { export const addCards = (cards) => {
console.log(cards) console.log(cards);
current_cards = current_cards.concat(...cards); current_cards = current_cards.concat(...cards);
options.update((options) => ({ options.update((options) => ({
...options, ...options,
@@ -155,15 +155,27 @@
}).showToast(); }).showToast();
} }
onMount(() => { onMount(async () => {
RunnerCardService.runnerCardControllerGetAll().then((val) => { let page = 0;
current_cards = val; while (page >= 0) {
const cards = await RunnerCardService.runnerCardControllerGetAll(
page,
500
);
if (cards.length == 0) {
page = -2;
}
current_cards = current_cards.concat(...cards);
options.update((options) => ({ options.update((options) => ({
...options, ...options,
data: current_cards, data: current_cards,
})); }));
dataLoaded = true; dataLoaded = true;
}); page++;
}
console.log("All cards loaded");
}); });
</script> </script>
@@ -229,7 +241,7 @@
...options, ...options,
data: current_cards, data: current_cards,
})); }));
$table.resetRowSelection() $table.resetRowSelection();
}} }}
> >
{$_("delete-cards")} {$_("delete-cards")}
@@ -249,7 +261,10 @@
</svg> </svg>
</button> </button>
{/if} {/if}
<GenerateRunnerCards cards_show={selected.length>0} bind:generate_cards={selectedCards} /> <GenerateRunnerCards
cards_show={selected.length > 0}
bind:generate_cards={selectedCards}
/>
</div> </div>
<div class="overflow-x-auto"> <div class="overflow-x-auto">
<table class="w-full"> <table class="w-full">

View File

@@ -5,18 +5,16 @@
import Toastify from "toastify-js"; import Toastify from "toastify-js";
import DonationsEmptyState from "./DonationsEmptyState.svelte"; import DonationsEmptyState from "./DonationsEmptyState.svelte";
import AddDonationPaymentModal from "./AddDonationPaymentModal.svelte"; import AddDonationPaymentModal from "./AddDonationPaymentModal.svelte";
import { onMount } from "svelte";
$: searchvalue = ""; $: searchvalue = "";
$: active_deletes = []; $: active_deletes = [];
$: dataLoaded = false;
export let current_donations = []; export let current_donations = [];
export let payment_modal_open = false; export let payment_modal_open = false;
export let editable = {}; export let editable = {};
export let original_data = {}; export let original_data = {};
export let paid_amount_input = 0; export let paid_amount_input = 0;
const donations_promise = DonationService.donationControllerGetAll().then(
(val) => {
current_donations = val;
}
);
function should_display_based_on_id(id) { function should_display_based_on_id(id) {
if (searchvalue.toString().slice(-1) === "*") { if (searchvalue.toString().slice(-1) === "*") {
return id.toString().startsWith(searchvalue.replace("*", "")); return id.toString().startsWith(searchvalue.replace("*", ""));
@@ -26,210 +24,250 @@
function open_payment_modal(donation) { function open_payment_modal(donation) {
editable = Object.assign({}, donation); editable = Object.assign({}, donation);
original_data = Object.assign({}, donation); original_data = Object.assign({}, donation);
paid_amount_input = (donation.paidAmount/100).toFixed(2); paid_amount_input = (donation.paidAmount / 100).toFixed(2);
payment_modal_open = true; payment_modal_open = true;
} }
onMount(async () => {
let page = 0;
while (page >= 0) {
const donations = await DonationService.donationControllerGetAll(
page,
500
);
if (donations.length == 0) {
page = -2;
}
current_donations = current_donations.concat(...donations);
dataLoaded = true;
page++;
}
console.log("All donations loaded");
});
</script> </script>
<AddDonationPaymentModal bind:current_donations bind:original_data bind:editable bind:paid_amount_input bind:payment_modal_open /> <AddDonationPaymentModal
{#if store.state.jwtinfo.userdetails.permissions.includes('DONATION:GET')} bind:current_donations
{#await donations_promise} bind:original_data
bind:editable
bind:paid_amount_input
bind:payment_modal_open
/>
{#if store.state.jwtinfo.userdetails.permissions.includes("DONATION:GET")}
{#if !dataLoaded}
<div <div
class="bg-teal-lightest border-t-4 border-teal rounded-b text-teal-darkest px-4 py-3 shadow-md my-2" class="bg-teal-lightest border-t-4 border-teal rounded-b text-teal-darkest px-4 py-3 shadow-md my-2"
role="alert"> role="alert"
>
<p class="font-bold">donations are being loaded</p> <p class="font-bold">donations are being loaded</p>
<p class="text-sm">{$_('this-might-take-a-moment')}</p> <p class="text-sm">{$_("this-might-take-a-moment")}</p>
</div> </div>
{:then} {:else if current_donations.length === 0}
{#if current_donations.length === 0} <DonationsEmptyState />
<DonationsEmptyState /> {:else}
{:else} <input
<input type="search"
type="search" bind:value={searchvalue}
bind:value={searchvalue} placeholder={$_("datatable.search")}
placeholder={$_('datatable.search')} aria-label={$_("datatable.search")}
aria-label={$_('datatable.search')} class="mb-4"
class="mb-4" /> />
<div <div
class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll"> class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll"
<table class="divide-y divide-gray-200 w-full"> >
<thead class="bg-gray-50"> <table class="divide-y divide-gray-200 w-full">
<tr> <thead class="bg-gray-50">
<th <tr>
scope="col" <th
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"> scope="col"
{$_('donor')} class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
</th> >
<th {$_("donor")}
scope="col" </th>
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"> <th
{$_('runner')} scope="col"
</th> class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
<th >
scope="col" {$_("runner")}
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"> </th>
{$_('amount-per-kilometer')} <th
</th> scope="col"
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
scope="col" >
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"> {$_("amount-per-kilometer")}
{$_('donation-amount')} </th>
</th> <th
<th scope="col"
scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"> >
{$_('paid-amount')} {$_("donation-amount")}
</th> </th>
<th <th
scope="col" scope="col"
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"> class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
{$_('status')} >
</th> {$_("paid-amount")}
<th scope="col" class="relative px-6 py-3"> </th>
<span class="sr-only">{$_('action')}</span> <th
</th> scope="col"
</tr> class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
</thead> >
<tbody class="divide-y divide-gray-200"> {$_("status")}
{#each current_donations as donation} </th>
{#if donation.donor.firstname <th scope="col" class="relative px-6 py-3">
<span class="sr-only">{$_("action")}</span>
</th>
</tr>
</thead>
<tbody class="divide-y divide-gray-200">
{#each current_donations as donation}
{#if donation.donor.firstname
.toLowerCase()
.includes(searchvalue.toLowerCase()) || donation.donor.lastname
.toLowerCase() .toLowerCase()
.includes( .includes(searchvalue.toLowerCase()) || donation.runner?.firstname
searchvalue.toLowerCase() .toLowerCase()
) || donation.donor.lastname .includes(searchvalue.toLowerCase()) || donation.runner?.lastname
.toLowerCase() .toLowerCase()
.includes( .includes(searchvalue.toLowerCase()) || should_display_based_on_id(donation.id)}
searchvalue.toLowerCase() <tr data-rowid="donation_{donation.id}">
) || donation.runner?.firstname <td class="px-6 py-4 whitespace-nowrap">
.toLowerCase() <div class="flex items-center">
.includes( <a
searchvalue.toLowerCase() href="../donors/{donation.donor.id}"
) || donation.runner?.lastname class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800"
.toLowerCase() >{donation.donor.firstname}
.includes( {donation.donor.middlename || ""}
searchvalue.toLowerCase() {donation.donor.lastname}</a
) || should_display_based_on_id(donation.id)} >
<tr data-rowid="donation_{donation.id}"> </div>
<td class="px-6 py-4 whitespace-nowrap"> </td>
<div class="flex items-center"> <td class="px-6 py-4 whitespace-nowrap">
{#if donation.runner}
<div class="text-sm font-medium text-gray-900">
<a <a
href="../donors/{donation.donor.id}" href="../runners/{donation.runner.id}"
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800">{donation.donor.firstname} class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800"
{donation.donor.middlename || ''} >{donation.runner.firstname}
{donation.donor.lastname}</a> {donation.runner.middlename || ""}
{donation.runner.lastname}</a
>
</div> </div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
{#if donation.runner}
<div class="text-sm font-medium text-gray-900">
<a
href="../runners/{donation.runner.id}"
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800">{donation.runner.firstname}
{donation.runner.middlename || ''}
{donation.runner.lastname}</a>
</div>
{:else}
<div class="text-sm font-medium text-gray-900">
{$_('fixed-donation')}
</div>
{/if}
</td>
<td class="px-6 py-4 whitespace-nowrap">
{#if donation.amountPerDistance}
<div class="text-sm font-medium text-gray-900">
{(donation.amountPerDistance / 100)
.toFixed(2)
.toLocaleString('de-DE', { valute: 'EUR' })}
</div>
{:else}
<div class="text-sm font-medium text-gray-900">
{$_('fixed-donation')}
</div>
{/if}
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-sm font-medium text-gray-900">
{(donation.amount / 100)
.toFixed(2)
.toLocaleString('de-DE', { valute: 'EUR' })}
</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-sm font-medium text-gray-900">
{(donation.paidAmount / 100)
.toFixed(2)
.toLocaleString('de-DE', { valute: 'EUR' })}
</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
{#if donation.status =="PAID"}
<span
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">{$_('paid')}</span>
{:else}
<span
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-red-100 text-red-800">{$_('open')}</span>
{/if}
</td>
{#if active_deletes[donation.id] === true}
<td
class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
<button
on:click={() => {
active_deletes[donation.id] = false;
}}
tabindex="0"
class="ml-4 text-indigo-600 hover:text-indigo-900 cursor-pointer">{$_('cancel-delete')}</button>
<button
on:click={() => {
DonationService.donationControllerRemove(donation.id, false).then(
(resp) => {
current_donations = current_donations.filter(
(obj) => obj.id !== donation.id
);
Toastify({
text: $_('donation-deleted'),
duration: 500,
backgroundColor:
'linear-gradient(to right, #00b09b, #96c93d)',
}).showToast();
}
);
}}
tabindex="0"
class="ml-4 text-red-600 hover:text-red-900 cursor-pointer">{$_('confirm-delete')}</button>
</td>
{:else} {:else}
<td <div class="text-sm font-medium text-gray-900">
class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium"> {$_("fixed-donation")}
<button </div>
on:click={() => {open_payment_modal(donation);}}
class="text-[#025a21] hover:text-green-900 mr-4">{$_('enter-payment')}</button>
<a
href="./{donation.id}"
class="text-indigo-600 hover:text-indigo-900">{$_('details')}</a>
{#if store.state.jwtinfo.userdetails.permissions.includes('DONATION:DELETE')}
<button
on:click={() => {
active_deletes[donation.id] = true;
}}
tabindex="0"
class="ml-4 text-red-600 hover:text-red-900 cursor-pointer">{$_('delete')}</button>
{/if}
</td>
{/if} {/if}
</tr> </td>
{/if} <td class="px-6 py-4 whitespace-nowrap">
{/each} {#if donation.amountPerDistance}
</tbody> <div class="text-sm font-medium text-gray-900">
</table> {(donation.amountPerDistance / 100)
</div> .toFixed(2)
{/if} .toLocaleString("de-DE", { valute: "EUR" })}
{:catch error} </div>
<div class="text-white px-6 py-4 border-0 rounded relative mb-4 bg-red-500"> {:else}
<span class="inline-block align-middle mr-8"> <div class="text-sm font-medium text-gray-900">
<b class="capitalize">{$_('general_promise_error')}</b> {$_("fixed-donation")}
{error} </div>
</span> {/if}
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-sm font-medium text-gray-900">
{(donation.amount / 100)
.toFixed(2)
.toLocaleString("de-DE", { valute: "EUR" })}
</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-sm font-medium text-gray-900">
{(donation.paidAmount / 100)
.toFixed(2)
.toLocaleString("de-DE", { valute: "EUR" })}
</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
{#if donation.status == "PAID"}
<span
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800"
>{$_("paid")}</span
>
{:else}
<span
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-red-100 text-red-800"
>{$_("open")}</span
>
{/if}
</td>
{#if active_deletes[donation.id] === true}
<td
class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium"
>
<button
on:click={() => {
active_deletes[donation.id] = false;
}}
tabindex="0"
class="ml-4 text-indigo-600 hover:text-indigo-900 cursor-pointer"
>{$_("cancel-delete")}</button
>
<button
on:click={() => {
DonationService.donationControllerRemove(
donation.id,
false
).then((resp) => {
current_donations = current_donations.filter(
(obj) => obj.id !== donation.id
);
Toastify({
text: $_("donation-deleted"),
duration: 500,
backgroundColor:
"linear-gradient(to right, #00b09b, #96c93d)",
}).showToast();
});
}}
tabindex="0"
class="ml-4 text-red-600 hover:text-red-900 cursor-pointer"
>{$_("confirm-delete")}</button
>
</td>
{:else}
<td
class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium"
>
<button
on:click={() => {
open_payment_modal(donation);
}}
class="text-[#025a21] hover:text-green-900 mr-4"
>{$_("enter-payment")}</button
>
<a
href="./{donation.id}"
class="text-indigo-600 hover:text-indigo-900"
>{$_("details")}</a
>
{#if store.state.jwtinfo.userdetails.permissions.includes("DONATION:DELETE")}
<button
on:click={() => {
active_deletes[donation.id] = true;
}}
tabindex="0"
class="ml-4 text-red-600 hover:text-red-900 cursor-pointer"
>{$_("delete")}</button
>
{/if}
</td>
{/if}
</tr>
{/if}
{/each}
</tbody>
</table>
</div> </div>
{/await} {/if}
{/if} {/if}

View File

@@ -119,7 +119,7 @@
{/if} {/if}
{#if donor.address.address1 !== null} {#if donor.address.address1 !== null}
{donor.address.address1}<br /> {donor.address.address1}<br />
{donor.address.address2 || ''}<br /> <!-- {donor.address.address2 || ''}<br /> -->
{donor.address.postalcode} {donor.address.postalcode}
{donor.address.city} {donor.address.city}
{donor.address.country} {donor.address.country}

View File

@@ -132,7 +132,7 @@
<div class="text-sm font-medium text-gray-900"> <div class="text-sm font-medium text-gray-900">
{#if o.address.address1 !== null} {#if o.address.address1 !== null}
{o.address.address1}<br /> {o.address.address1}<br />
{o.address.address2 || ''}<br /> <!-- {o.address.address2 || ''}<br /> -->
{o.address.postalcode} {o.address.postalcode}
{o.address.city} {o.address.city}
{o.address.country} {o.address.country}

View File

@@ -50,7 +50,6 @@
})); }));
}; };
//Section table //Section table
const columns = [ const columns = [
{ {
@@ -157,16 +156,7 @@
}).showToast(); }).showToast();
} }
onMount(() => { onMount(async () => {
RunnerService.runnerControllerGetAll().then((val) => {
current_runners = val;
dataLoaded = true;
options.update((options) => ({
...options,
data: current_runners,
}));
});
RunnerTeamService.runnerTeamControllerGetAll().then((val) => { RunnerTeamService.runnerTeamControllerGetAll().then((val) => {
teams = val; teams = val;
}); });
@@ -175,6 +165,24 @@
orgs = val; orgs = val;
} }
); );
let page = 0;
while (page >= 0) {
const runners = await RunnerService.runnerControllerGetAll(page, 1000);
if (runners.length == 0) {
page = -2;
}
current_runners = current_runners.concat(...runners);
options.update((options) => ({
...options,
data: current_runners,
}));
dataLoaded = true;
page++;
}
console.log("All runners loaded");
}); });
</script> </script>

View File

@@ -30,6 +30,7 @@
$table?.getSelectedRowModel().rows.map((row) => row.index) || []; $table?.getSelectedRowModel().rows.map((row) => row.index) || [];
$: active_delete = undefined; $: active_delete = undefined;
$: dataLoaded = false;
export let current_scans = []; export let current_scans = [];
export const addScans = (scans) => { export const addScans = (scans) => {
current_scans = current_scans.concat(...scans); current_scans = current_scans.concat(...scans);
@@ -39,15 +40,6 @@
})); }));
}; };
const scans_promise = ScanService.scanControllerGetAll().then((val) => {
current_scans = val;
// handler.setRows(val);
current_scans = val;
options.update((options) => ({
...options,
data: current_scans,
}));
});
let allTracks = []; let allTracks = [];
TrackService.trackControllerGetAll().then((val) => { TrackService.trackControllerGetAll().then((val) => {
allTracks = val; allTracks = val;
@@ -95,6 +87,14 @@
}, },
enableColumnFilter: false, enableColumnFilter: false,
}, },
{
accessorKey: "timestamp",
header: () => $_("timestamp"),
cell: (info) => {
return new Date(parseInt(info.getValue()) * 1000).toLocaleString();
},
enableColumnFilter: false,
},
{ {
accessorKey: "distance", accessorKey: "distance",
header: () => $_("distance"), header: () => $_("distance"),
@@ -175,6 +175,26 @@
backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)",
}).showToast(); }).showToast();
} }
onMount(async () => {
let page = 0;
while (page >= 0) {
const scans = await ScanService.scanControllerGetAll(page, 500);
if (scans.length == 0) {
page = -2;
}
current_scans = current_scans.concat(...scans);
options.update((options) => ({
...options,
data: current_scans,
}));
dataLoaded = true;
page++;
}
console.log("All scans loaded");
});
</script> </script>
<DeleteScanModal <DeleteScanModal
@@ -185,7 +205,7 @@
}} }}
/> />
{#if store.state.jwtinfo.userdetails.permissions.includes("SCAN:GET")} {#if store.state.jwtinfo.userdetails.permissions.includes("SCAN:GET")}
{#await scans_promise} {#if !dataLoaded}
<div <div
class="bg-teal-lightest border-t-4 border-teal rounded-b text-teal-darkest px-4 py-3 shadow-md my-2" class="bg-teal-lightest border-t-4 border-teal rounded-b text-teal-darkest px-4 py-3 shadow-md my-2"
role="alert" role="alert"
@@ -193,105 +213,96 @@
<p class="font-bold">{$_("scans-are-being-loaded")}</p> <p class="font-bold">{$_("scans-are-being-loaded")}</p>
<p class="text-sm">{$_("this-might-take-a-moment")}</p> <p class="text-sm">{$_("this-might-take-a-moment")}</p>
</div> </div>
{:then} {:else if current_scans.length === 0}
{#if current_scans.length === 0} <ScansEmptyState />
<ScansEmptyState /> {:else}
{:else} {#if selected.length > 0}
{#if selected.length > 0} <button
<button type="button"
type="button" class="w-full justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-red-600 text-base font-medium text-white hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm inline-flex"
class="w-full justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-red-600 text-base font-medium text-white hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm inline-flex" id="options-menu"
id="options-menu" on:click={async () => {
on:click={async () => { const prom = [];
const prom = []; for (const scan of selectedScans) {
for (const scan of selectedScans) { prom.push(ScanService.scanControllerRemove(scan.id, true));
prom.push(ScanService.scanControllerRemove(scan.id, true)); }
} await Promise.all(prom);
await Promise.all(prom); for (const scan of selectedScans) {
for (const scan of selectedScans) { current_scans = current_scans.filter((r) => r.id !== scan.id);
current_scans = current_scans.filter((r) => r.id !== scan.id); }
} options.update((options) => ({
options.update((options) => ({ ...options,
...options, data: current_scans,
data: current_scans, }));
})); $table.resetRowSelection();
$table.resetRowSelection(); Toastify({
Toastify({ text: $_("scan-deleted"),
text: $_("scan-deleted"), duration: 3500,
duration: 3500, backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)",
backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", }).showToast();
}).showToast(); }}
}} >
{$_("delete-scans")}
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
class="w-5 h-5"
> >
{$_("delete-scans")} <path
<svg stroke-linecap="round"
xmlns="http://www.w3.org/2000/svg" stroke-linejoin="round"
fill="none" d="M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"
viewBox="0 0 24 24" />
stroke-width="1.5" </svg>
stroke="currentColor" </button>
class="w-5 h-5" {/if}
> <div class="overflow-x-auto">
<path <table class="w-full">
stroke-linecap="round" <thead>
stroke-linejoin="round" {#each $table.getHeaderGroups() as headerGroup}
d="M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0" <tr class="select-none">
/> <th class="inset-y-0 left-0 px-4 py-2 text-left w-px">
</svg> <InputElement
</button> type="checkbox"
{/if} checked={$table.getIsAllRowsSelected()}
<div class="overflow-x-auto"> indeterminate={$table.getIsSomeRowsSelected()}
<table class="w-full"> on:change={() => $table.toggleAllRowsSelected()}
<thead> />
{#each $table.getHeaderGroups() as headerGroup} </th>
<tr class="select-none"> {#each headerGroup.headers as header}
<th class="inset-y-0 left-0 px-4 py-2 text-left w-px"> <TableHeader {header} />
<InputElement {/each}
type="checkbox" </tr>
checked={$table.getIsAllRowsSelected()} {/each}
indeterminate={$table.getIsSomeRowsSelected()} </thead>
on:change={() => $table.toggleAllRowsSelected()} <tbody>
/> {#each $table.getRowModel().rows as row}
</th> <tr>
{#each headerGroup.headers as header} <td class="inset-y-0 left-0 px-4 py-2 text-center w-px">
<TableHeader {header} /> <InputElement
{/each} type="checkbox"
</tr> checked={row.getIsSelected()}
{/each} on:change={() => row.toggleSelected()}
</thead> />
<tbody> </td>
{#each $table.getRowModel().rows as row} {#each row.getVisibleCells() as cell}
<tr> <td>
<td class="inset-y-0 left-0 px-4 py-2 text-center w-px"> <svelte:component
<InputElement this={flexRender(
type="checkbox" cell.column.columnDef.cell,
checked={row.getIsSelected()} cell.getContext()
on:change={() => row.toggleSelected()} )}
/> />
</td> </td>
{#each row.getVisibleCells() as cell} {/each}
<td> </tr>
<svelte:component {/each}
this={flexRender( </tbody>
cell.column.columnDef.cell, </table>
cell.getContext()
)}
/>
</td>
{/each}
</tr>
{/each}
</tbody>
</table>
</div>
<TableBottom {table} {selected} />
{/if}
{:catch error}
<div class="text-white px-6 py-4 border-0 rounded relative mb-4 bg-red-500">
<span class="inline-block align-middle mr-8">
<b class="capitalize">{$_("general_promise_error")}</b>
{error}
</span>
</div> </div>
{/await} <TableBottom {table} {selected} />
{/if}
{/if} {/if}

View File

@@ -1,14 +1,18 @@
<script> <script>
import { _ } from "svelte-i18n"; import { _ } from "svelte-i18n";
import Toastify from "toastify-js"; import Toastify from "toastify-js";
import { tick, createEventDispatcher } from "svelte"; import { tick, createEventDispatcher } from "svelte";
import bwipjs from "bwip-js";
export let copy_modal_open; export let copy_modal_open;
export let new_station; export let new_station;
const dispatch = createEventDispatcher(); const dispatch = createEventDispatcher();
let valueCopy = null; let valueCopy = null;
let areaDom; let areaDom;
let copied = false; let copied = false;
$: is_qrcode = false;
$: barcode = textToBase64Barcode(new_station.key, is_qrcode);
function close() { function close() {
copy_modal_open = false; copy_modal_open = false;
} }
@@ -36,10 +40,30 @@
"linear-gradient(90deg, hsla(281, 37%, 45%, 1) 0%, hsla(1, 62%, 48%, 1) 100%)", "linear-gradient(90deg, hsla(281, 37%, 45%, 1) 0%, hsla(1, 62%, 48%, 1) 100%)",
}).showToast(); }).showToast();
} }
// we can notifi by event or storage about copy status // we can notifi by event or storage about copy status
valueCopy = null; valueCopy = null;
} }
function textToBase64Barcode(text, is_qrcode) {
const canvas = document.createElement("canvas");
let bcid = "code128";
if (is_qrcode) {
bcid = "qrcode";
}
let codeconfig = {
bcid,
text: `${text}`,
scale: 4,
includetext: true,
textxalign: "center",
backgroundcolor: "ffffff",
};
if (bcid == "code128") {
codeconfig.height = 10;
}
bwipjs.toCanvas(canvas, codeconfig);
return canvas.toDataURL("image/png");
}
</script> </script>
{#if copy_modal_open} {#if copy_modal_open}
@@ -131,6 +155,44 @@
</div> </div>
</div> </div>
</div> </div>
<div class="mx-auto text-center items-center">
<h2 class="text-lg leading-6 font-medium text-gray-900">
{$_("config-codes")}
</h2>
<span class="flex items-center text-center">
<p class="text-md text-gray-900 mr-3">Format:</p>
<label for="codeswitch" class="text-md text-gray-900 mr-3"
>Code128</label
>
<input
id="codeswitch"
type="checkbox"
bind:checked={is_qrcode}
class="relative shrink-0 w-[3.25rem] h-7 bg-gray-100 checked:bg-none checked:bg-blue-600 border-2 border-transparent rounded-full cursor-pointer transition-colors ease-in-out duration-200 border border-transparent ring-1 ring-transparent focus:border-blue-600 focus:ring-blue-600 ring-offset-white focus:outline-none appearance-none before:inline-block before:w-6 before:h-6 before:bg-white checked:before:bg-blue-200 before:translate-x-0 checked:before:translate-x-full before:shadow before:rounded-full before:transform before:ring-0 before:transition before:ease-in-out before:duration-200 dark:before:bg-gray-400 dark:checked:before:bg-blue-200"
/>
<label for="codeswitch" class="text-md text-gray-900 ml-3"
>QR-Code</label
>
</span>
<h3 class="leading-6 font-medium text-gray-900">
{$_("api-endpoint")}
</h3>
<img
class:w-[50%]={is_qrcode}
class:w-full={!is_qrcode}
class="md:w-auto mb-2 mx-auto"
alt="Registrierungscode"
src={textToBase64Barcode(config.baseurl, is_qrcode)}
/>
<h3 class="leading-6 font-medium text-gray-900">{$_("token")}</h3>
<img
class:w-[50%]={is_qrcode}
class:w-full={!is_qrcode}
class="md:w-auto mb-2 mx-auto"
alt="Registrierungscode"
src={barcode}
/>
</div>
</div> </div>
<div class="bg-gray-50 px-4 py-3 sm:px-6 sm:flex sm:flex-row-reverse"> <div class="bg-gray-50 px-4 py-3 sm:px-6 sm:flex sm:flex-row-reverse">
<button <button

View File

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

View File

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