Compare commits

...

38 Commits

Author SHA1 Message Date
5b4ede5e2f 🚀RELEASE v0.12.4
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-08 17:34:32 +02:00
d0ab3dda78 🚑 [HOTFIX] - drop "svelte-infinite-loading"
Some checks failed
continuous-integration/drone/push Build is failing
2021-04-08 17:34:04 +02:00
d9cf51b4bb 🚀RELEASE v0.12.3
Some checks failed
continuous-integration/drone/push Build is failing
2021-04-08 17:30:23 +02:00
aa17f24220 new license file version [CI SKIP] 2021-04-08 15:28:50 +00:00
cf60edf7d4 Merge pull request 'fix' (#126) from bugfix/125-mobile into dev
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #126
close #125
2021-04-08 15:27:22 +00:00
ffbc243194 custom css fix for collapsed_navigation
ref #125
2021-04-07 21:44:29 +02:00
b6b07cf30c 🐞 bugfix for svelte x tailwind class names
ref #125
2021-04-07 21:35:01 +02:00
495a6b22bd almost fixed... 2021-04-07 21:28:21 +02:00
0acaffbdfa fix
ref #125
2021-04-07 20:25:04 +02:00
6043bc4517 🚀RELEASE v0.12.2
Some checks failed
continuous-integration/drone/push Build is failing
2021-04-07 20:11:21 +02:00
e6ed066e3f Merge pull request 'feature/110-virtual_list' (#124) from feature/110-virtual_list into dev
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #124
2021-04-07 18:10:02 +00:00
ee4e8655b8 Merge branch 'dev' into feature/110-virtual_list 2021-04-07 20:09:35 +02:00
37970d2be6 pre-merge fixes
ref #110
2021-04-07 18:59:46 +02:00
1376788016 updated virtual scroll list 2021-04-07 18:38:52 +02:00
4cad86cf85 fixed height table 2021-04-07 18:19:58 +02:00
6304116edb wip on virtuallist 2021-04-06 22:16:24 +02:00
834ff8fa63 🚀RELEASE v0.12.1
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-06 16:47:37 +02:00
1f428a535e Merge pull request 'ImportRunnerModal Cancel Button feature/122-import_cancel' (#123) from feature/112-import_cancel into dev
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #123
2021-04-06 14:42:37 +00:00
0c40966970 Added cancel button for the first stage of runner import
ref #112
2021-04-05 16:23:24 +02:00
9da071fe9b Escape now triggers foll modal close (including reset) instead of just hiding th modal
ref #112
2021-04-05 16:14:43 +02:00
892a04f289 🚀RELEASE v0.12.0
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-05 16:09:17 +02:00
27cc9727f1 Fixed package version
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-05 16:08:41 +02:00
f0738d451b Merge pull request 'Implmented certificate generation feature/119-Certificate_generation' (#120) from feature/119-Certificate_generation into dev
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #120
2021-04-05 14:05:38 +00:00
9e6a8daf2c Sorted translations 🌍
ref #119
2021-04-05 16:04:44 +02:00
bfacfec765 The PFS Prefixes now get translated via i18n
ref #119
2021-04-05 16:04:26 +02:00
0bae5bf32b sponsoring pdf names now include their locale
ref #119
2021-04-05 15:37:12 +02:00
22b09d16d0 Cleaned up generation strings and added the schem for single runner generations for sponsoring contracts
ref #119
2021-04-05 15:36:01 +02:00
9c867e106e Cleaned up generation strings and added the schem for single runner generations for cards
ref #119
2021-04-05 15:33:55 +02:00
304f28a3c1 certificate pdf names now include their locale
ref #119
2021-04-05 15:31:52 +02:00
d65d3793de Changed the basic nameing generation for runenr certificate files
ref #119
2021-04-05 15:31:01 +02:00
3638d87bd2 Runnercard pdfs now include their locale
ref #119
2021-04-05 15:28:13 +02:00
b97a92860d Fixed wrong permissiong getting checked
ref #119
2021-04-05 15:24:42 +02:00
7c86a5eeb3 added missing/ wrong translations + formatting!
ref #119
2021-04-05 12:02:18 +02:00
d23dbaaf69 Removed useless console.log
ref #119
2021-04-03 20:05:27 +02:00
e6ffc371e1 Certificate generation from org detail
ref #119
2021-04-03 20:03:57 +02:00
3177c6eaa3 Certificate generation from org overview
ref #119
2021-04-03 20:02:52 +02:00
acd2f0519d Certificate generation from team detail
ref #119
2021-04-03 20:00:51 +02:00
18ec100c33 Certificate generation from team overview
ref #119
2021-04-03 19:59:34 +02:00
16 changed files with 1922 additions and 1712 deletions

View File

@@ -2,15 +2,115 @@
All notable changes to this project will be documented in this file. Dates are displayed in UTC. All notable changes to this project will be documented in this file. Dates are displayed in UTC.
#### [0.12.4](https://git.odit.services/lfk/frontend/compare/0.12.3...0.12.4)
- 🚑 [HOTFIX] - drop "svelte-infinite-loading" [`d0ab3dd`](https://git.odit.services/lfk/frontend/commit/d0ab3dda78bbad2cea18a2491056530897d56607)
#### [0.12.3](https://git.odit.services/lfk/frontend/compare/0.12.2...0.12.3)
> 8 April 2021
- Merge pull request 'fix' (#126) from bugfix/125-mobile into dev [`#125`](https://git.odit.services/lfk/frontend/issues/125)
- almost fixed... [`495a6b2`](https://git.odit.services/lfk/frontend/commit/495a6b22bd8036593f390bdb862d325524cefbcc)
- 🐞 bugfix for svelte x tailwind class names [`b6b07cf`](https://git.odit.services/lfk/frontend/commit/b6b07cf30cc6533bd5dbfec1f813c16fde85634d)
- fix [`0acaffb`](https://git.odit.services/lfk/frontend/commit/0acaffbdfa359e52654a5afe2788aa59fe6f9036)
- 🚀RELEASE v0.12.3 [`d9cf51b`](https://git.odit.services/lfk/frontend/commit/d9cf51b4bbc2136594a03c5d0eeb8cb3f3440b2a)
- custom css fix for collapsed_navigation [`ffbc243`](https://git.odit.services/lfk/frontend/commit/ffbc243194c7faeb4fe61c12711a1c441c3994ef)
- new license file version [CI SKIP] [`aa17f24`](https://git.odit.services/lfk/frontend/commit/aa17f242209f7e7cecff774ace7a35b581adec1f)
#### [0.12.2](https://git.odit.services/lfk/frontend/compare/0.12.1...0.12.2)
> 7 April 2021
- 🚀RELEASE v0.12.2 [`6043bc4`](https://git.odit.services/lfk/frontend/commit/6043bc45174d51ab110b0ed10a8679d96127ab87)
- Merge pull request 'feature/110-virtual_list' (#124) from feature/110-virtual_list into dev [`e6ed066`](https://git.odit.services/lfk/frontend/commit/e6ed066e3ffabba6519f94d801d21a27819d0492)
- wip on virtuallist [`6304116`](https://git.odit.services/lfk/frontend/commit/6304116edb7f5e3c7b67c15e0b1740d34c513155)
- fixed height table [`4cad86c`](https://git.odit.services/lfk/frontend/commit/4cad86cf852468428d77103d052c6974b17c34c3)
- pre-merge fixes [`37970d2`](https://git.odit.services/lfk/frontend/commit/37970d2be6b6502701914e41e5bfe2c418438480)
- updated virtual scroll list [`1376788`](https://git.odit.services/lfk/frontend/commit/1376788016e767f006661f8c9e6747781f2dce55)
#### [0.12.1](https://git.odit.services/lfk/frontend/compare/0.12.0...0.12.1)
> 6 April 2021
- 🚀RELEASE v0.12.1 [`834ff8f`](https://git.odit.services/lfk/frontend/commit/834ff8fa63178f36dcacf931c128ba67a3e7bd1b)
- Merge pull request 'ImportRunnerModal Cancel Button feature/122-import_cancel' (#123) from feature/112-import_cancel into dev [`1f428a5`](https://git.odit.services/lfk/frontend/commit/1f428a535e3ae619cbf8db51d04255aac8dd8614)
- Added cancel button for the first stage of runner import [`0c40966`](https://git.odit.services/lfk/frontend/commit/0c409669700d3a8096cc04716154b0fdca458fe5)
- Escape now triggers foll modal close (including reset) instead of just hiding th modal [`9da071f`](https://git.odit.services/lfk/frontend/commit/9da071fe9ba067160334682bf00163e3630fe919)
#### [0.12.0](https://git.odit.services/lfk/frontend/compare/0.11.0...0.12.0)
> 5 April 2021
- Merge pull request 'feature/108_vite_migration' (#118) from feature/108_vite_migration into dev [`#108`](https://git.odit.services/lfk/frontend/issues/108)
- 🚀RELEASE v0.12.0 [`892a04f`](https://git.odit.services/lfk/frontend/commit/892a04f28930481715eb486b1ef4efeb98a6e999)
- Fixed package version [`27cc972`](https://git.odit.services/lfk/frontend/commit/27cc9727f1d02d186c3ccadb06e5b4b1b1d6202d)
- Merge pull request 'Implmented certificate generation feature/119-Certificate_generation' (#120) from feature/119-Certificate_generation into dev [`f0738d4`](https://git.odit.services/lfk/frontend/commit/f0738d451b02e4a298b5f9cb8ab0be16aed10a38)
- The PFS Prefixes now get translated via i18n [`bfacfec`](https://git.odit.services/lfk/frontend/commit/bfacfec76511cae3015f52698fdcbd80a7a15981)
- Sorted translations 🌍 [`9e6a8da`](https://git.odit.services/lfk/frontend/commit/9e6a8daf2c394cf17da532382ec7d049a0f89577)
- added missing/ wrong translations + formatting! [`7c86a5e`](https://git.odit.services/lfk/frontend/commit/7c86a5eeb370a43451d180a09a501066b023b9a0)
- Added i18n [`17f6f4e`](https://git.odit.services/lfk/frontend/commit/17f6f4e616bf57424ee12ad53b939429c02a0171)
- Added basic certificate generation component [`af63ce6`](https://git.odit.services/lfk/frontend/commit/af63ce67ae7d8f8a70706c3bd6755197908996ff)
- basic ViteJS migration [`ae79e9f`](https://git.odit.services/lfk/frontend/commit/ae79e9fea1963e977ef468e8e56f87d68916fadd)
- Implemented generation for orgs [`2e3ac15`](https://git.odit.services/lfk/frontend/commit/2e3ac154be0bf0776cd00f7d510f41ec676ae690)
- Implemented generation for teams [`2472640`](https://git.odit.services/lfk/frontend/commit/2472640755e3e41259a44127a875d00517a25842)
- updated default entrypoint [`95c8fde`](https://git.odit.services/lfk/frontend/commit/95c8fde72fca5cd5a644d51a33dc88e0b59fce92)
- ⏫📍 version bump + pin [`b065b4f`](https://git.odit.services/lfk/frontend/commit/b065b4ff218d07952fa45989e6e2ee7df13e07c1)
- 🧹 reorder + fix package [`12433f7`](https://git.odit.services/lfk/frontend/commit/12433f7c236906fe2b29848a0acaa6be1724da56)
- 🔨 re-added VS Code devcontainer config [`9318709`](https://git.odit.services/lfk/frontend/commit/93187099d32c506329b1437642aae985f2850689)
- 🐳 new Dockerfiles [`0f32968`](https://git.odit.services/lfk/frontend/commit/0f32968fae8b55a13d387918211983d0e61f85ab)
- 📃 added readme [`aa24b1d`](https://git.odit.services/lfk/frontend/commit/aa24b1dce5d6d73c8f42fc57f81b692350bf9665)
- Copy-paste fix [`f47d5e3`](https://git.odit.services/lfk/frontend/commit/f47d5e347d97ee127fa0380620138a9672665cd5)
- 🔨🔥 alpine based devcontainer with working yarn PnP [`777304f`](https://git.odit.services/lfk/frontend/commit/777304f2593df36f4e89d2ba7680add183ff062f)
- Copy-paste fix [`7488a8b`](https://git.odit.services/lfk/frontend/commit/7488a8b597a148c309e1b4499d277fed7f3bf9f4)
- You can now generate certificates from the runner overview [`bb9b779`](https://git.odit.services/lfk/frontend/commit/bb9b779cee909ab85ef52f13be0a917f1c0a9e62)
- Cleaned up generation strings and added the schem for single runner generations for cards [`9c867e1`](https://git.odit.services/lfk/frontend/commit/9c867e106edd68784e6d19743519c1952a0f0bc7)
- Changed the basic nameing generation for runenr certificate files [`d65d379`](https://git.odit.services/lfk/frontend/commit/d65d3793de869bcd6733a1bbdac378d0bc1128b3)
- ⏫ version bumps [`d7fecfb`](https://git.odit.services/lfk/frontend/commit/d7fecfbd0bc01f1cd44dea3c3837e0cc44afab12)
- Cleaned up generation strings and added the schem for single runner generations for sponsoring contracts [`22b09d1`](https://git.odit.services/lfk/frontend/commit/22b09d16d0acc2883e3448dad95ed0f4ea7c6aeb)
- Certificate generation from org overview [`3177c6e`](https://git.odit.services/lfk/frontend/commit/3177c6eaa31636ed4546f4797775a0f0a930f5d1)
- certificate pdf names now include their locale [`304f28a`](https://git.odit.services/lfk/frontend/commit/304f28a3c10bc4745aa5b7c80d7ba0e651540706)
- Runnercard pdfs now include their locale [`3638d87`](https://git.odit.services/lfk/frontend/commit/3638d87bd2ff83618eefda5af18ba19e38e3c2eb)
- 🐞 fix await for esNext [`a922776`](https://git.odit.services/lfk/frontend/commit/a9227768de29305b51d10c8a6e4fa1d39b7d998f)
- Certificate generation from team overview [`18ec100`](https://git.odit.services/lfk/frontend/commit/18ec100c33a1fbab526187e769dbae54d9db0867)
- Added certificate generation from runner overview and detail [`7b685d6`](https://git.odit.services/lfk/frontend/commit/7b685d6cad97d2f7f48c4b19bfc128e1355b70c4)
- package cleanup [`6be2ee6`](https://git.odit.services/lfk/frontend/commit/6be2ee626addaf5113b4b4821bd99a276bf4f329)
- sponsoring pdf names now include their locale [`0bae5bf`](https://git.odit.services/lfk/frontend/commit/0bae5bf32b8687057dca50cde21022ea8c3abee8)
- ✨ update licenses.json [`e99e9e0`](https://git.odit.services/lfk/frontend/commit/e99e9e07089520d5a48021e10d2af7739656641a)
- added windicss settings for VSCode [`008027d`](https://git.odit.services/lfk/frontend/commit/008027db0e2736a9bb9defd67178ab3fe580de04)
- Certificate generation from team detail [`acd2f05`](https://git.odit.services/lfk/frontend/commit/acd2f0519d62e55dad8e9c3c41e77b6967212502)
- ⚡💾 prevent env.js from being cached [`c5d1553`](https://git.odit.services/lfk/frontend/commit/c5d155396a92dfee6d592fb24a936ab521215f6d)
- for await fix - ViteJS [`aec5e34`](https://git.odit.services/lfk/frontend/commit/aec5e3473e687415fbfd69c550d9b012e1b1be43)
- Certificate generation from org detail [`e6ffc37`](https://git.odit.services/lfk/frontend/commit/e6ffc371e1ca2d4451e7dd4a3ca3c05564edb5fb)
- 🧹 drop unused dependencies [`ce50fa2`](https://git.odit.services/lfk/frontend/commit/ce50fa2a62f8ff98e8be9c66432caeebb3952019)
- 🐞 fix NGINX config [`5352410`](https://git.odit.services/lfk/frontend/commit/5352410d0c76fd14575d7beafc6a83f028062efe)
- Fixed wrong permissiong getting checked [`b97a928`](https://git.odit.services/lfk/frontend/commit/b97a92860d71eb0384170e245a67fa3ea3fd8e85)
- new license file version [CI SKIP] [`5cc4871`](https://git.odit.services/lfk/frontend/commit/5cc4871ec4be9f0af07738f6e3d44bdbe31cd25a)
- ⏫ bump @odit/lfk-client-js@0.10.1 [`8b74d6d`](https://git.odit.services/lfk/frontend/commit/8b74d6d759c8481f012c201e2ea0d12b29ddef90)
- 🔨 dev container open ⚡ [`ceb2146`](https://git.odit.services/lfk/frontend/commit/ceb2146c1b08bbe9250e4db7846e06bd89526c21)
- ⏫ version bump: vite-plugin-windicss@0.12.2 [`8d006d8`](https://git.odit.services/lfk/frontend/commit/8d006d8c74d71c43a9031d58f5a8c7fc55ed95fc)
- 🚚 move @svitejs/vite-plugin-svelte to @sveltejs/vite-plugin-svelte [`44b53da`](https://git.odit.services/lfk/frontend/commit/44b53da34516b00671b3e5060ba831e409ac3dd5)
- ⏫ upgrade vite-plugin-windicss@0.12.1 [`ab45fc1`](https://git.odit.services/lfk/frontend/commit/ab45fc144eaf14f63d86ee53c1db4eefd88f9c7f)
- 🐞 fix main.js linking [`467404b`](https://git.odit.services/lfk/frontend/commit/467404bfc87f3c08c5e227f194d71eea7cc48921)
- 🐞 fix vite config for production system [`10a011d`](https://git.odit.services/lfk/frontend/commit/10a011d8426e475105ff5d2d5cf4adca2ef7625c)
- fix dev script [`eb3ede9`](https://git.odit.services/lfk/frontend/commit/eb3ede9593e2e527df3e3a2f81c8e179bb555f51)
- ⏫ bump vite to 2.1.3 [`0cd3e93`](https://git.odit.services/lfk/frontend/commit/0cd3e937d852eeabe43eb6298bfabe20834240b2)
- Removed useless console.log [`d23dbaa`](https://git.odit.services/lfk/frontend/commit/d23dbaaf695a60fe5ebbc9945646a16b5fc45a16)
- Removed useless console log [`48cfc15`](https://git.odit.services/lfk/frontend/commit/48cfc15cfb09096db1bd5ddbe9138b1a604d581f)
#### [0.11.0](https://git.odit.services/lfk/frontend/compare/0.10.0...0.11.0) #### [0.11.0](https://git.odit.services/lfk/frontend/compare/0.10.0...0.11.0)
- Merge pull request 'Generate and print bulk blank cards feature/116-download_blanc_cards' (#117) from feature/116-download_blanc_cards into dev [`25d8b86`](https://git.odit.services/lfk/frontend/commit/25d8b86efd89c442d1bf308a8743134820acfd1f) > 30 March 2021
- Added button (including translations [`0614c76`](https://git.odit.services/lfk/frontend/commit/0614c76e924b18b512bab59933a26fec07cf483d) - Added button (including translations [`0614c76`](https://git.odit.services/lfk/frontend/commit/0614c76e924b18b512bab59933a26fec07cf483d)
- Added button (including translations [`97e338f`](https://git.odit.services/lfk/frontend/commit/97e338f9d4f388596d550990457254c7fa1a3492) - Added button (including translations [`97e338f`](https://git.odit.services/lfk/frontend/commit/97e338f9d4f388596d550990457254c7fa1a3492)
- Sorted translations [`89bb9c2`](https://git.odit.services/lfk/frontend/commit/89bb9c215e356e0940678f5cabd9e38bc203040e) - Sorted translations [`89bb9c2`](https://git.odit.services/lfk/frontend/commit/89bb9c215e356e0940678f5cabd9e38bc203040e)
- Added function for generating cards with pdf [`c8d6390`](https://git.odit.services/lfk/frontend/commit/c8d639024a5f2f72d6e30d2ce990b08bd71a5471) - Added function for generating cards with pdf [`c8d6390`](https://git.odit.services/lfk/frontend/commit/c8d639024a5f2f72d6e30d2ce990b08bd71a5471)
- 🚀RELEASE v0.11.0 [`f8ccf4f`](https://git.odit.services/lfk/frontend/commit/f8ccf4f5d8f68ecee31430029889b8ab1ecec682)
- Fixed button styling [`08cb079`](https://git.odit.services/lfk/frontend/commit/08cb079e9798392e26515d559af2637e74deea97) - Fixed button styling [`08cb079`](https://git.odit.services/lfk/frontend/commit/08cb079e9798392e26515d559af2637e74deea97)
- Now returning cards on creation with pdf [`1d999d4`](https://git.odit.services/lfk/frontend/commit/1d999d4910acb5efa21b3f9922cdb359babff404) - Now returning cards on creation with pdf [`1d999d4`](https://git.odit.services/lfk/frontend/commit/1d999d4910acb5efa21b3f9922cdb359babff404)
- new license file version [CI SKIP] [`8f8b998`](https://git.odit.services/lfk/frontend/commit/8f8b9988ad94ee9f3729a3fe6fdb4c558828d892)
- Merge pull request 'Generate and print bulk blank cards feature/116-download_blanc_cards' (#117) from feature/116-download_blanc_cards into dev [`25d8b86`](https://git.odit.services/lfk/frontend/commit/25d8b86efd89c442d1bf308a8743134820acfd1f)
- Added comment [`636f018`](https://git.odit.services/lfk/frontend/commit/636f018daa33b99468a257bfc33477e1e644d081) - Added comment [`636f018`](https://git.odit.services/lfk/frontend/commit/636f018daa33b99468a257bfc33477e1e644d081)
- Bumped lfk client js version [`2d18686`](https://git.odit.services/lfk/frontend/commit/2d18686ce782a434ca7bd34c07c36a35b9497273) - Bumped lfk client js version [`2d18686`](https://git.odit.services/lfk/frontend/commit/2d18686ce782a434ca7bd34c07c36a35b9497273)
- Bumped lfk-client-js [`7dfaa75`](https://git.odit.services/lfk/frontend/commit/7dfaa7579a22b13194fcdd1c02b4437958261472) - Bumped lfk-client-js [`7dfaa75`](https://git.odit.services/lfk/frontend/commit/7dfaa7579a22b13194fcdd1c02b4437958261472)

View File

@@ -13,7 +13,7 @@
</head> </head>
<body> <body>
<span style="display: none;visibility: hidden;" id="buildinfo">RELEASE_INFO-0.8.4-RELEASE_INFO</span> <span style="display: none;visibility: hidden;" id="buildinfo">RELEASE_INFO-0.12.4-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.8.4", "version": "0.12.4",
"scripts": { "scripts": {
"i18n-order": "node order.js", "i18n-order": "node order.js",
"dev": "vite", "dev": "vite",
@@ -13,7 +13,7 @@
"check-password-strength": "2.0.2", "check-password-strength": "2.0.2",
"@odit/lfk-client-js": "0.10.1", "@odit/lfk-client-js": "0.10.1",
"@odit/license-exporter": "0.0.11", "@odit/license-exporter": "0.0.11",
"@sveltejs/vite-plugin-svelte": "1.0.0-next.5", "@sveltejs/vite-plugin-svelte": "1.0.0-next.6",
"@types/html-minifier": "4.0.0", "@types/html-minifier": "4.0.0",
"auto-changelog": "2.2.1", "auto-changelog": "2.2.1",
"autoprefixer": "10.2.5", "autoprefixer": "10.2.5",
@@ -28,12 +28,12 @@
"svelte-i18n": "3.3.9", "svelte-i18n": "3.3.9",
"svelte-preprocess": "4.7.0", "svelte-preprocess": "4.7.0",
"svelte-select": "3.17.0", "svelte-select": "3.17.0",
"tailwindcss": "2.0.4", "tailwindcss": "2.1.1",
"tinro": "0.6.1", "tinro": "0.6.1",
"toastify-js": "1.10.0", "toastify-js": "1.10.0",
"validator": "13.5.2", "validator": "13.5.2",
"vite": "2.1.5", "vite": "2.1.5",
"vite-plugin-windicss": "0.12.2", "vite-plugin-windicss": "0.12.5",
"xlsx": "0.16.9" "xlsx": "0.16.9"
}, },
"release-it": { "release-it": {

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,5 @@
<script> <script>
import { getLocaleFromNavigator, json, _ } from "svelte-i18n"; import { _ } from "svelte-i18n";
import { RunnerCardService } from "@odit/lfk-client-js"; import { RunnerCardService } from "@odit/lfk-client-js";
import store from "../../store"; import store from "../../store";
import Toastify from "toastify-js"; import Toastify from "toastify-js";
@@ -11,11 +11,21 @@
export let editable = {}; export let editable = {};
export let original_data = {}; export let original_data = {};
export let current_cards = []; export let current_cards = [];
$: filtered_cards = current_cards.filter(function (c) {
if (
c.code.toLowerCase().includes(searchvalue_lowercase) ||
c.runner?.firstname.toLowerCase().includes(searchvalue_lowercase) ||
c.runner?.middlename.toLowerCase().includes(searchvalue_lowercase) ||
c.runner?.lastname.toLowerCase().includes(searchvalue_lowercase) ||
should_display_based_on_id(c.id)
) {
return true;
}
});
$: searchvalue = ""; $: searchvalue = "";
$: searchvalue_lowercase = searchvalue.toLowerCase();
$: active_deletes = []; $: active_deletes = [];
$: cards_show = current_cards.some( $: cards_show = current_cards.some((r) => r.is_selected === true);
(r) => r.is_selected === true
);
$: generate_cards = current_cards.filter((r) => r.is_selected === true); $: generate_cards = current_cards.filter((r) => r.is_selected === true);
const cards_promise = RunnerCardService.runnerCardControllerGetAll().then( const cards_promise = RunnerCardService.runnerCardControllerGetAll().then(
(val) => { (val) => {
@@ -46,8 +56,38 @@
original_data = Object.assign(original_data, card); original_data = Object.assign(original_data, card);
edit_modal_open = true; edit_modal_open = true;
} }
// -----------------
let scrollTop = 0;
$: rendered = filtered_cards;
let innerHeight = 0;
let ele;
$: updateSlice(scrollTop);
$: innerHeight = `${filtered_cards.length * 25}px`;
$: if (ele) updateSlice();
function updateSlice() {
const height = ele ? parseInt(ele.clientHeight) : 100;
const init = scrollTop / 25;
const end = Math.ceil((scrollTop + height) / 25);
rendered = filtered_cards.slice(init, end + 15);
}
function updateScroll($event) {
scrollTop = $event.target.scrollTop;
}
</script> </script>
<style>
table tbody {
display: block;
overflow-y: scroll;
}
table thead, table tbody tr {
display: table;
width: 100%;
table-layout: fixed;
}
</style>
{#if store.state.jwtinfo.userdetails.permissions.includes('CARD:UPDATE')} {#if store.state.jwtinfo.userdetails.permissions.includes('CARD:UPDATE')}
<CardDetailModal <CardDetailModal
bind:current_cards bind:current_cards
@@ -121,107 +161,111 @@
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody class="divide-y divide-gray-200"> <tbody class="divide-y divide-gray-200 virtual-wrapper"
{#each current_cards as card} on:scroll={updateScroll}
{#if card.code style="height: 70vh; width:100%"
.toLowerCase() bind:this={ele}
.includes( >
searchvalue.toLowerCase() {#each filtered_cards as card, index}
) || card.runner?.firstname {#if card.code
.toLowerCase() .toLowerCase()
.includes( .includes(
searchvalue.toLowerCase() searchvalue.toLowerCase()
) || card.runner?.middlename ) || card.runner?.firstname
.toLowerCase() .toLowerCase()
.includes( .includes(
searchvalue.toLowerCase() searchvalue.toLowerCase()
) || card.runner?.lastname ) || card.runner?.middlename
.toLowerCase() .toLowerCase()
.includes( .includes(
searchvalue.toLowerCase() searchvalue.toLowerCase()
) || should_display_based_on_id(card.id)} ) || card.runner?.lastname
<tr data-rowid="card_{card.id}"> .toLowerCase()
<td class="px-6 py-4 whitespace-nowrap"> .includes(
<input searchvalue.toLowerCase()
bind:checked={card.is_selected} ) || should_display_based_on_id(card.id)}
type="checkbox" <tr data-rowid="card_{card.id}">
class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded" /> <td class="px-6 py-4 whitespace-nowrap">
</td> <input
<td class="px-6 py-4 whitespace-nowrap"> bind:checked={card.is_selected}
<div class="flex items-center">{card.code}</div> type="checkbox"
</td> class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded" />
<td class="px-6 py-4 whitespace-nowrap"> </td>
<div class="flex items-center"> <td class="px-6 py-4 whitespace-nowrap">
{#if card.runner} <div class="flex items-center">{card.code}</div>
<a </td>
href="../runners/{card.runner.id}" <td class="px-6 py-4 whitespace-nowrap">
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800">{card.runner.firstname} <div class="flex items-center">
{card.runner.middlename || ''} {#if card.runner}
{card.runner.lastname}</a> <a
{:else}{$_('non-blanko')}{/if} href="../runners/{card.runner.id}"
</div> class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800">{card.runner.firstname}
</td> {card.runner.middlename || ''}
<td class="px-6 py-4 whitespace-nowrap"> {card.runner.lastname}</a>
<div class="flex items-center"> {:else}{$_('non-blanko')}{/if}
{#if card.enabled} </div>
<span </td>
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">{$_('enabled')}</span> <td class="px-6 py-4 whitespace-nowrap">
{:else} <div class="flex items-center">
<span {#if card.enabled}
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-red-100 text-red-800">{$_('disabled')}</span> <span
{/if} class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">{$_('enabled')}</span>
</div> {:else}
</td> <span
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-red-100 text-red-800">{$_('disabled')}</span>
{/if}
</div>
</td>
{#if active_deletes[card.id] === true} {#if active_deletes[card.id] === true}
<td <td
class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium"> class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
<button <button
on:click={() => { on:click={() => {
active_deletes[card.id] = false; active_deletes[card.id] = false;
}} }}
tabindex="0" tabindex="0"
class="ml-4 text-indigo-600 hover:text-indigo-900 cursor-pointer">{$_('cancel-delete')}</button> class="ml-4 text-indigo-600 hover:text-indigo-900 cursor-pointer">{$_('cancel-delete')}</button>
<button <button
on:click={() => { on:click={() => {
RunnerCardService.runnerCardControllerRemove(card.id, false).then( RunnerCardService.runnerCardControllerRemove(card.id, false).then(
(resp) => { (resp) => {
current_cards = current_cards.filter( current_cards = current_cards.filter(
(obj) => obj.id !== card.id (obj) => obj.id !== card.id
); );
Toastify({ Toastify({
text: $_('card-deleted'), text: $_('card-deleted'),
duration: 500, duration: 500,
backgroundColor: backgroundColor:
'linear-gradient(to right, #00b09b, #96c93d)', 'linear-gradient(to right, #00b09b, #96c93d)',
}).showToast(); }).showToast();
} }
); );
}} }}
tabindex="0" tabindex="0"
class="ml-4 text-red-600 hover:text-red-900 cursor-pointer">{$_('confirm-delete')}</button> class="ml-4 text-red-600 hover:text-red-900 cursor-pointer">{$_('confirm-delete')}</button>
</td> </td>
{:else} {:else}
<td <td
class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium"> class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
<button <button
on:click={() => { on:click={() => {
open_edit_modal(card); open_edit_modal(card);
}} }}
class="text-indigo-600 hover:text-indigo-900">{$_('details')}</button> class="text-indigo-600 hover:text-indigo-900">{$_('details')}</button>
{#if store.state.jwtinfo.userdetails.permissions.includes('CARD:DELETE')} {#if store.state.jwtinfo.userdetails.permissions.includes('CARD:DELETE')}
<button <button
on:click={() => { on:click={() => {
active_deletes[card.id] = true; active_deletes[card.id] = true;
}} }}
tabindex="0" tabindex="0"
class="ml-4 text-red-600 hover:text-red-900 cursor-pointer">{$_('delete')}</button> class="ml-4 text-red-600 hover:text-red-900 cursor-pointer">{$_('delete')}</button>
{/if} {/if}
</td> </td>
{/if} {/if}
</tr> </tr>
{/if} {/if}
{/each} {/each}
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@@ -12,11 +12,21 @@
} }
</script> </script>
<style>
.collapsed_navigation {
transform: translateX(-100%);
}
@media (min-width: 768px) {
.collapsed_navigation {
transform: translateX(0px);
}
}
</style>
<section class="min-h-screen bg-gray-50"> <section class="min-h-screen bg-gray-50">
<nav <div
class:-translate-x-full={!navOpen} class:collapsed_navigation={!navOpen}
class:translate-x-0={navOpen} class="select-none fixed top-0 left-0 z-20 h-full pb-10 overflow-x-hidden overflow-y-auto transition origin-left transform border-r w-60 bg-gray-50">
class="select-none fixed top-0 left-0 z-20 h-full pb-10 overflow-x-hidden overflow-y-auto transition origin-left transform border-r w-60 md:translate-x-0 bg-gray-50">
<a href="/" class="flex items-center px-4 py-5"> <a href="/" class="flex items-center px-4 py-5">
<img src="/lfk-logo.png" alt="Logo" class="h-10" /> <img src="/lfk-logo.png" alt="Logo" class="h-10" />
<h3 class="text-lg">Lauf für Kaya! Admin</h3> <h3 class="text-lg">Lauf für Kaya! Admin</h3>
@@ -297,14 +307,15 @@
<span>{$_('logout')}</span> <span>{$_('logout')}</span>
</span> </span>
</nav> </nav>
</nav> </div>
<div class="ml-0 transition md:ml-60"> <div class="ml-0 transition md:ml-60">
<header <header
on:click={() => {
navOpen = true;
}}
class="flex items-center justify-between w-full px-4 bg-white border-b h-14 md:hidden"> class="flex items-center justify-between w-full px-4 bg-white border-b h-14 md:hidden">
<button class="block btn btn-light md:hidden"> <button
on:click={() => {
navOpen = true;
}}
class="block btn btn-light md:hidden">
<span class="sr-only">Menu</span><svg <span class="sr-only">Menu</span><svg
class="w-4 h-4" class="w-4 h-4"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
@@ -318,10 +329,13 @@
<NoComponentLoaded /> <NoComponentLoaded />
</slot> </slot>
</div> </div>
<div {#if navOpen === true}
on:click={() => { <div
navOpen = false; on:click={() => {
}} navOpen = false;
class:hidden={!navOpen} console.log({ navOpen });
class="fixed inset-0 z-10 w-screen h-screen bg-black bg-opacity-25 md:hidden" /> }}
class:hidden={!navOpen}
class="fixed inset-0 z-10 w-screen h-screen bg-black bg-opacity-25 md:hidden" />
{/if}
</section> </section>

View File

@@ -12,6 +12,7 @@
import Select from "svelte-select"; import Select from "svelte-select";
import GenerateSponsoringContracts from "../pdf_generation/GenerateSponsoringContracts.svelte"; import GenerateSponsoringContracts from "../pdf_generation/GenerateSponsoringContracts.svelte";
import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte"; import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte";
import GenerateRunnerCertificates from "../pdf_generation/GenerateRunnerCertificates.svelte";
import { tick } from "svelte"; import { tick } from "svelte";
$: delete_triggered = false; $: delete_triggered = false;
$: address_valid_or_none = $: address_valid_or_none =
@@ -34,6 +35,7 @@
$: iscityvalid = editable.address?.city?.trim().length !== 0; $: iscityvalid = editable.address?.city?.trim().length !== 0;
$: sponsoring_contracts_show = true; $: sponsoring_contracts_show = true;
$: cards_show = true; $: cards_show = true;
$: certificates_show = true;
$: generate_orgs = [original_object]; $: generate_orgs = [original_object];
$: registrationLink = `${config.baseurl}/selfservice/register/${editable.registrationKey}`; $: registrationLink = `${config.baseurl}/selfservice/register/${editable.registrationKey}`;
const getContactLabel = (option) => const getContactLabel = (option) =>
@@ -176,6 +178,7 @@
bind:sponsoring_contracts_show bind:sponsoring_contracts_show
bind:generate_orgs /> bind:generate_orgs />
<GenerateRunnerCards bind:cards_show bind:generate_orgs /> <GenerateRunnerCards bind:cards_show bind:generate_orgs />
<GenerateRunnerCertificates bind:certificates_show bind:generate_orgs />
{#if store.state.jwtinfo.userdetails.permissions.includes('RUNNER:IMPORT')} {#if store.state.jwtinfo.userdetails.permissions.includes('RUNNER:IMPORT')}
<button <button
on:click={() => { on:click={() => {
@@ -186,7 +189,7 @@
{$_('import-runners')} {$_('import-runners')}
</button> </button>
{/if} {/if}
{#if store.state.jwtinfo.userdetails.permissions.includes('USER:DELETE')} {#if store.state.jwtinfo.userdetails.permissions.includes('RUNNER:DELETE')}
{#if delete_triggered} {#if delete_triggered}
<button <button
on:click={deleteOrganization} on:click={deleteOrganization}

View File

@@ -9,11 +9,15 @@
import Toastify from "toastify-js"; import Toastify from "toastify-js";
import ConfirmOrgDeletion from "./ConfirmOrgDeletion.svelte"; import ConfirmOrgDeletion from "./ConfirmOrgDeletion.svelte";
import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte"; import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte";
import GenerateRunnerCertificates from "../pdf_generation/GenerateRunnerCertificates.svelte";
$: searchvalue = ""; $: searchvalue = "";
$: active_deletes = []; $: active_deletes = [];
$: sponsoring_contracts_show = current_organizations.some((r) => r.is_selected === true); $: sponsoring_contracts_show = current_organizations.some((r) => r.is_selected === true);
$: cards_show = current_organizations.some((r) => r.is_selected === true); $: cards_show = current_organizations.some((r) => r.is_selected === true);
$: generate_orgs = current_organizations.filter((r) => r.is_selected === true); $: generate_orgs = current_organizations.some((r) => r.is_selected === true);
$: certificates_show = current_organizations.some(
(r) => r.is_selected === true
);
export let current_organizations = []; export let current_organizations = [];
const promise = RunnerOrganizationService.runnerOrganizationControllerGetAll().then( const promise = RunnerOrganizationService.runnerOrganizationControllerGetAll().then(
@@ -55,6 +59,9 @@
<GenerateRunnerCards <GenerateRunnerCards
bind:cards_show bind:cards_show
bind:generate_orgs /> bind:generate_orgs />
<GenerateRunnerCertificates
bind:certificates_show
bind:generate_orgs />
</div> </div>
<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">

View File

@@ -67,7 +67,7 @@
const url = window.URL.createObjectURL(blob); const url = window.URL.createObjectURL(blob);
let a = document.createElement("a"); let a = document.createElement("a");
a.href = url; a.href = url;
a.download = "Runnercards.pdf"; a.download = `${$_('runnercards')}-${locale}.pdf`;
document.body.appendChild(a); document.body.appendChild(a);
a.click(); a.click();
a.remove(); a.remove();
@@ -127,7 +127,12 @@
const url = window.URL.createObjectURL(blob); const url = window.URL.createObjectURL(blob);
let a = document.createElement("a"); let a = document.createElement("a");
a.href = url; a.href = url;
a.download = "Runnercards.pdf"; if(generate_runners.length == 1){
a.download = `${$_('runnercards')}_${generate_runners[0].firstname}_${generate_runners[0].lastname}-${locale}.pdf`;
}
else{
a.download = `Runnercards-${locale}.pdf`;
}
document.body.appendChild(a); document.body.appendChild(a);
a.click(); a.click();
a.remove(); a.remove();
@@ -191,7 +196,7 @@
const url = window.URL.createObjectURL(blob); const url = window.URL.createObjectURL(blob);
let a = document.createElement("a"); let a = document.createElement("a");
a.href = url; a.href = url;
a.download = "Sponsorings_" + t.name + ".pdf"; a.download = `${$_('runnercards')}_${t.name}-${locale}.pdf`;
document.body.appendChild(a); document.body.appendChild(a);
a.click(); a.click();
a.remove(); a.remove();
@@ -258,7 +263,7 @@
const url = window.URL.createObjectURL(blob); const url = window.URL.createObjectURL(blob);
let a = document.createElement("a"); let a = document.createElement("a");
a.href = url; a.href = url;
a.download = "Sponsorings_" + o.name + ".pdf"; a.download = `${$_('runnercards')}_${o.name}-${locale}.pdf`;
document.body.appendChild(a); document.body.appendChild(a);
a.click(); a.click();
a.remove(); a.remove();

View File

@@ -70,7 +70,12 @@
const url = window.URL.createObjectURL(blob); const url = window.URL.createObjectURL(blob);
let a = document.createElement("a"); let a = document.createElement("a");
a.href = url; a.href = url;
a.download = "Certificates.pdf"; if(generate_runners.length == 1){
a.download = `${$_('certificates')}_${generate_runners[0].firstname}_${generate_runners[0].lastname}-${locale}.pdf`;
}
else{
a.download = `${$_('certificates')}-${locale}.pdf`;
}
document.body.appendChild(a); document.body.appendChild(a);
a.click(); a.click();
a.remove(); a.remove();
@@ -101,7 +106,6 @@
runner.distanceDonations = current_donations.find((d) => d.runner?.id == runner.id) || []; runner.distanceDonations = current_donations.find((d) => d.runner?.id == runner.id) || [];
certificateRunners.push(runner); certificateRunners.push(runner);
} }
console.log(certificateRunners)
fetch( fetch(
`${config.baseurl}/documents/certificates?locale=${locale}&download=true&key=${config.documentserver_key}`, `${config.baseurl}/documents/certificates?locale=${locale}&download=true&key=${config.documentserver_key}`,
{ {
@@ -130,7 +134,7 @@
const url = window.URL.createObjectURL(blob); const url = window.URL.createObjectURL(blob);
let a = document.createElement("a"); let a = document.createElement("a");
a.href = url; a.href = url;
a.download = "Certificates_" + t.name + ".pdf"; a.download = `${$_('certificates')}_${t.name}-${locale}.pdf`;
document.body.appendChild(a); document.body.appendChild(a);
a.click(); a.click();
a.remove(); a.remove();
@@ -192,7 +196,7 @@
const url = window.URL.createObjectURL(blob); const url = window.URL.createObjectURL(blob);
let a = document.createElement("a"); let a = document.createElement("a");
a.href = url; a.href = url;
a.download = "Certificates_" + o.name + ".pdf"; a.download = `${$_('certificates')}_${o.name}-${locale}.pdf`;
document.body.appendChild(a); document.body.appendChild(a);
a.click(); a.click();
a.remove(); a.remove();

View File

@@ -69,7 +69,7 @@
const url = window.URL.createObjectURL(blob); const url = window.URL.createObjectURL(blob);
let a = document.createElement("a"); let a = document.createElement("a");
a.href = url; a.href = url;
a.download = "Sponsorings_" + t.name + ".pdf"; a.download = `${$_('sponsorings')}_${t.name}-${locale}.pdf`;
document.body.appendChild(a); document.body.appendChild(a);
a.click(); a.click();
a.remove(); a.remove();
@@ -124,7 +124,7 @@
const url = window.URL.createObjectURL(blob); const url = window.URL.createObjectURL(blob);
let a = document.createElement("a"); let a = document.createElement("a");
a.href = url; a.href = url;
a.download = "Sponsorings_" + o.name + ".pdf"; a.download = `${$_('sponsorings')}_${o.name}-${locale}.pdf`;
document.body.appendChild(a); document.body.appendChild(a);
a.click(); a.click();
a.remove(); a.remove();
@@ -174,7 +174,10 @@
const url = window.URL.createObjectURL(blob); const url = window.URL.createObjectURL(blob);
let a = document.createElement("a"); let a = document.createElement("a");
a.href = url; a.href = url;
a.download = "Sponsoring.pdf"; if(generate_runners.length == 1){
a.download = `${$_('sponsorings')}_${generate_runners[0].firstname}_${generate_runners[0].lastname}-${locale}.pdf`;
}
a.download = `${$_('sponsorings')}-${locale}.pdf`;
document.body.appendChild(a); document.body.appendChild(a);
a.click(); a.click();
a.remove(); a.remove();

View File

@@ -34,7 +34,7 @@
document.onkeydown = (e) => { document.onkeydown = (e) => {
e = e || window.event; e = e || window.event;
if (e.key === "Escape") { if (e.key === "Escape") {
import_modal_open = false; cancelModal();
} }
if (e.keyCode === 13) { if (e.keyCode === 13) {
// //
@@ -281,6 +281,16 @@
bind:files bind:files
type="file" /> type="file" />
</div> </div>
<div class="overflow-hidden relative mt-4 mb-4">
<button
on:click={() => {
cancelModal();
}}
type="button"
class="w-full 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 md:ml-40 mr-0 sm:ml-0 sm:w-auto sm:text-sm">
{$_('cancel')}
</button>
</div>
{/if} {/if}
{#if json_output.length > 0} {#if json_output.length > 0}
{#if opened_from === 'OrgOverview'} {#if opened_from === 'OrgOverview'}

View File

@@ -14,6 +14,7 @@
import Teams from "./Teams.svelte"; import Teams from "./Teams.svelte";
import GenerateSponsoringContracts from "../pdf_generation/GenerateSponsoringContracts.svelte"; import GenerateSponsoringContracts from "../pdf_generation/GenerateSponsoringContracts.svelte";
import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte"; import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte";
import GenerateRunnerCertificates from "../pdf_generation/GenerateRunnerCertificates.svelte";
let [teamdata, original, delete_team, orgs, contacts, modal_open] = [ let [teamdata, original, delete_team, orgs, contacts, modal_open] = [
{}, {},
{}, {},
@@ -30,6 +31,7 @@
$: data_changed = JSON.stringify(teamdata) === JSON.stringify(original); $: data_changed = JSON.stringify(teamdata) === JSON.stringify(original);
$: sponsoring_contracts_show = true; $: sponsoring_contracts_show = true;
$: cards_show = true; $: cards_show = true;
$: certificates_show = true;
$: generate_teams = [original]; $: generate_teams = [original];
$: group = {}; $: group = {};
$: contact = {}; $: contact = {};
@@ -122,6 +124,9 @@
<GenerateRunnerCards <GenerateRunnerCards
bind:cards_show bind:cards_show
bind:generate_teams /> bind:generate_teams />
<GenerateRunnerCertificates
bind:certificates_show
bind:generate_teams />
{#if store.state.jwtinfo.userdetails.permissions.includes('RUNNER:IMPORT')} {#if store.state.jwtinfo.userdetails.permissions.includes('RUNNER:IMPORT')}
<button <button
on:click={() => { on:click={() => {

View File

@@ -9,6 +9,7 @@
import { clickOutside } from "../base/outsideclick"; import { clickOutside } from "../base/outsideclick";
import GenerateSponsoringContracts from "../pdf_generation/GenerateSponsoringContracts.svelte"; import GenerateSponsoringContracts from "../pdf_generation/GenerateSponsoringContracts.svelte";
import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte"; import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte";
import GenerateRunnerCertificates from "../pdf_generation/GenerateRunnerCertificates.svelte";
$: searchvalue = ""; $: searchvalue = "";
$: active_deletes = []; $: active_deletes = [];
$: sponsoring_contracts_show = current_teams.some( $: sponsoring_contracts_show = current_teams.some(
@@ -17,6 +18,9 @@
$: cards_show = current_teams.some( $: cards_show = current_teams.some(
(r) => r.is_selected === true (r) => r.is_selected === true
); );
$: certificates_show = current_teams.some(
(r) => r.is_selected === true
);
$: generate_teams = current_teams.filter((r) => r.is_selected === true); $: generate_teams = current_teams.filter((r) => r.is_selected === true);
export let current_teams = []; export let current_teams = [];
let modal_open = false; let modal_open = false;
@@ -61,6 +65,9 @@
<GenerateRunnerCards <GenerateRunnerCards
bind:cards_show bind:cards_show
bind:generate_teams /> bind:generate_teams />
<GenerateRunnerCertificates
bind:certificates_show
bind:generate_teams />
</div> </div>
<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">

View File

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

View File

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