🌎 first i18n support
This commit is contained in:
		@@ -7,6 +7,7 @@
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@odit/lfk-client-js": "^0.0.3",
 | 
			
		||||
    "svelte-i18n": "^3.3.0",
 | 
			
		||||
    "toastify-js": "^1.9.3"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,12 @@
 | 
			
		||||
<script>
 | 
			
		||||
  import { addMessages, init, getLocaleFromNavigator } from "svelte-i18n";
 | 
			
		||||
  import en from "./locales/en";
 | 
			
		||||
  addMessages("en", en);
 | 
			
		||||
  init({
 | 
			
		||||
    fallbackLocale: "en",
 | 
			
		||||
    initialLocale: getLocaleFromNavigator(),
 | 
			
		||||
  });
 | 
			
		||||
  //
 | 
			
		||||
  import Login from "./components/Login.svelte";
 | 
			
		||||
  import Dashboard from "./components/Dashboard.svelte";
 | 
			
		||||
  import store from "./store.js";
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,5 @@
 | 
			
		||||
<script>
 | 
			
		||||
  import { _ } from "svelte-i18n";
 | 
			
		||||
  import store from "../store.js";
 | 
			
		||||
  store.init();
 | 
			
		||||
  const login = () => {
 | 
			
		||||
@@ -8,18 +9,23 @@
 | 
			
		||||
 | 
			
		||||
<div class="min-h-screen flex items-center justify-center bg-gray-100">
 | 
			
		||||
  <div class="max-w-md w-full py-12 px-6">
 | 
			
		||||
    <img class="mx-auto h-20 w-auto" src="https://lauf-fuer-kaya.de/Bilder/kaya-logo-quadrat.png" alt="" />
 | 
			
		||||
    <p class="mt-6 text-sm text-center text-gray-900">Log in to your account</p>
 | 
			
		||||
    <img
 | 
			
		||||
      class="mx-auto h-20 w-auto"
 | 
			
		||||
      src="https://lauf-fuer-kaya.de/Bilder/kaya-logo-quadrat.png"
 | 
			
		||||
      alt="" />
 | 
			
		||||
    <p class="mt-6 text-sm text-center text-gray-900">
 | 
			
		||||
      {$_('log_in_to_your_account')}
 | 
			
		||||
    </p>
 | 
			
		||||
    <div>
 | 
			
		||||
      <div class="rounded-md shadow-sm">
 | 
			
		||||
        <div>
 | 
			
		||||
          <input
 | 
			
		||||
            aria-label="Email address"
 | 
			
		||||
            aria-label={$_('email_address')}
 | 
			
		||||
            name="email"
 | 
			
		||||
            type="email"
 | 
			
		||||
            required=""
 | 
			
		||||
            class="border-gray-300 placeholder-gray-500 appearance-none rounded-none relative block w-full px-3 py-2 border text-gray-900 rounded-t-md focus:outline-none focus:shadow-outline-blue focus:border-blue-300 focus:z-10 sm:text-sm"
 | 
			
		||||
            placeholder="Email address"
 | 
			
		||||
            placeholder={$_('email_address')}
 | 
			
		||||
            value="" />
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="-mt-px relative">
 | 
			
		||||
@@ -55,7 +61,7 @@
 | 
			
		||||
                clip-rule="evenodd" />
 | 
			
		||||
            </svg>
 | 
			
		||||
          </span>
 | 
			
		||||
          Log in
 | 
			
		||||
          {$_('log_in')}
 | 
			
		||||
        </button>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										23
									
								
								src/components/NotFound.svelte
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								src/components/NotFound.svelte
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
<body class="antialiased font-sans">
 | 
			
		||||
  <div class="md:flex min-h-screen">
 | 
			
		||||
    <div class="w-full md:w-1/2 bg-white flex items-center justify-center ">
 | 
			
		||||
      <div class="max-w-sm m-8">
 | 
			
		||||
        <div class="text-black text-5xl md:text-15xl font-black">404</div>
 | 
			
		||||
        <div class="w-16 h-1 bg-purple-light my-3 md:my-6" />
 | 
			
		||||
        <p
 | 
			
		||||
          class="text-grey-darker text-2xl md:text-3xl font-light mb-8 leading-normal">
 | 
			
		||||
          Sorry, the page you are looking for could not be found.
 | 
			
		||||
        </p>
 | 
			
		||||
        <button
 | 
			
		||||
          class="bg-transparent text-grey-darkest font-bold uppercase tracking-wide py-3 px-6 border-2 border-grey-light hover:border-grey rounded-lg">Go
 | 
			
		||||
          Home</button>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div
 | 
			
		||||
      class="relative pb-full md:flex md:pb-0 md:min-h-screen w-full md:w-1/2">
 | 
			
		||||
      <div
 | 
			
		||||
        style="background-image: url('src/svg/404-illustration.svg');"
 | 
			
		||||
        class="absolute pin bg-cover bg-no-repeat md:bg-left lg:bg-center" />
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</body>
 | 
			
		||||
							
								
								
									
										8
									
								
								src/locales/en.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/locales/en.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
{
 | 
			
		||||
	"page_title": "Page title",
 | 
			
		||||
	"sign_in": "Sign in",
 | 
			
		||||
	"sign_up": "Sign up",
 | 
			
		||||
	"log_in": "Log in",
 | 
			
		||||
	"email_address": "Email address",
 | 
			
		||||
	"log_in_to_your_account": "Log in to your account"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										81
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										81
									
								
								yarn.lock
									
									
									
									
									
								
							@@ -37,6 +37,13 @@
 | 
			
		||||
    lodash "^4.17.19"
 | 
			
		||||
    to-fast-properties "^2.0.0"
 | 
			
		||||
 | 
			
		||||
"@formatjs/ecma402-abstract@1.5.0":
 | 
			
		||||
  version "1.5.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.5.0.tgz#759c8f11ff45e96f8fb58741e7fbdb41096d5ddd"
 | 
			
		||||
  integrity sha512-wXv36yo+mfWllweN0Fq7sUs7PUiNopn7I0JpLTe3hGu6ZMR4CV7LqK1llhB18pndwpKoafQKb1et2DCJAOW20Q==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    tslib "^2.0.1"
 | 
			
		||||
 | 
			
		||||
"@koa/cors@^3.1.0":
 | 
			
		||||
  version "3.1.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@koa/cors/-/cors-3.1.0.tgz#618bb073438cfdbd3ebd0e648a76e33b84f3a3b2"
 | 
			
		||||
@@ -814,6 +821,11 @@ dir-glob@^3.0.1:
 | 
			
		||||
  dependencies:
 | 
			
		||||
    path-type "^4.0.0"
 | 
			
		||||
 | 
			
		||||
dlv@^1.1.3:
 | 
			
		||||
  version "1.1.3"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79"
 | 
			
		||||
  integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
 | 
			
		||||
 | 
			
		||||
dotenv-expand@^5.1.0:
 | 
			
		||||
  version "5.1.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0"
 | 
			
		||||
@@ -1002,6 +1014,11 @@ fast-glob@^3.1.1:
 | 
			
		||||
    micromatch "^4.0.2"
 | 
			
		||||
    picomatch "^2.2.1"
 | 
			
		||||
 | 
			
		||||
fast-memoize@^2.5.2:
 | 
			
		||||
  version "2.5.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.5.2.tgz#79e3bb6a4ec867ea40ba0e7146816f6cdce9b57e"
 | 
			
		||||
  integrity sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==
 | 
			
		||||
 | 
			
		||||
fastq@^1.6.0:
 | 
			
		||||
  version "1.9.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.9.0.tgz#e16a72f338eaca48e91b5c23593bcc2ef66b7947"
 | 
			
		||||
@@ -1116,6 +1133,11 @@ glob@^7.1.6:
 | 
			
		||||
    once "^1.3.0"
 | 
			
		||||
    path-is-absolute "^1.0.0"
 | 
			
		||||
 | 
			
		||||
globalyzer@0.1.0:
 | 
			
		||||
  version "0.1.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/globalyzer/-/globalyzer-0.1.0.tgz#cb76da79555669a1519d5a8edf093afaa0bf1465"
 | 
			
		||||
  integrity sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==
 | 
			
		||||
 | 
			
		||||
globby@^11.0.0:
 | 
			
		||||
  version "11.0.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357"
 | 
			
		||||
@@ -1128,6 +1150,11 @@ globby@^11.0.0:
 | 
			
		||||
    merge2 "^1.3.0"
 | 
			
		||||
    slash "^3.0.0"
 | 
			
		||||
 | 
			
		||||
globrex@^0.1.2:
 | 
			
		||||
  version "0.1.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098"
 | 
			
		||||
  integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==
 | 
			
		||||
 | 
			
		||||
graceful-fs@^4.1.6, graceful-fs@^4.2.0:
 | 
			
		||||
  version "4.2.4"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
 | 
			
		||||
@@ -1302,6 +1329,23 @@ inherits@2.0.3:
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
 | 
			
		||||
  integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
 | 
			
		||||
 | 
			
		||||
intl-messageformat-parser@6.1.0:
 | 
			
		||||
  version "6.1.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-6.1.0.tgz#134328151c41592d9e1a61f5c6779c06c8eb3f08"
 | 
			
		||||
  integrity sha512-nPPh2kOrKqlh4D9bCAetxkrUiq5/6S1exPQyg52Ihusy0ECNGhZ0Qmq8pFRK9gWIuiQPVmLA7eSNp8diC2tX3w==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@formatjs/ecma402-abstract" "1.5.0"
 | 
			
		||||
    tslib "^2.0.1"
 | 
			
		||||
 | 
			
		||||
intl-messageformat@^9.3.15:
 | 
			
		||||
  version "9.4.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.4.0.tgz#b9c9c00a6e88a8f1ffd9ee3e54340c9dfb765d13"
 | 
			
		||||
  integrity sha512-zcF8OWG52dCwwePkykqqv7F038vCaixPR14Lr3YUFc9jRdGoCazl2dTE3BwBaeHr3pG/qYb6A/mwMKrj4LFt9Q==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    fast-memoize "^2.5.2"
 | 
			
		||||
    intl-messageformat-parser "6.1.0"
 | 
			
		||||
    tslib "^2.0.1"
 | 
			
		||||
 | 
			
		||||
ipaddr.js@1.9.1:
 | 
			
		||||
  version "1.9.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
 | 
			
		||||
@@ -1668,6 +1712,11 @@ minimist@^1.2.0, minimist@^1.2.5:
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
 | 
			
		||||
  integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
 | 
			
		||||
 | 
			
		||||
mri@^1.1.0:
 | 
			
		||||
  version "1.1.6"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.6.tgz#49952e1044db21dbf90f6cd92bc9c9a777d415a6"
 | 
			
		||||
  integrity sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==
 | 
			
		||||
 | 
			
		||||
ms@2.0.0:
 | 
			
		||||
  version "2.0.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
 | 
			
		||||
@@ -2174,6 +2223,13 @@ run-parallel@^1.1.9:
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef"
 | 
			
		||||
  integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==
 | 
			
		||||
 | 
			
		||||
sade@^1.7.4:
 | 
			
		||||
  version "1.7.4"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/sade/-/sade-1.7.4.tgz#ea681e0c65d248d2095c90578c03ca0bb1b54691"
 | 
			
		||||
  integrity sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    mri "^1.1.0"
 | 
			
		||||
 | 
			
		||||
safe-buffer@5.1.2, safe-buffer@~5.1.1:
 | 
			
		||||
  version "5.1.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
 | 
			
		||||
@@ -2361,6 +2417,18 @@ svelte-hmr@^0.11.3, svelte-hmr@^0.11.6:
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/svelte-hmr/-/svelte-hmr-0.11.6.tgz#67f0498e2cdce9e1039631d820c1951bd01caa3f"
 | 
			
		||||
  integrity sha512-XUYcp7W26q/fF8tABZfCYGklwL4TDH48gc1KOjuBQNlTiMW63l/+rRqmfVOE/qKG5vns0J2NPo3zFjdahkwoHA==
 | 
			
		||||
 | 
			
		||||
svelte-i18n@^3.3.0:
 | 
			
		||||
  version "3.3.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/svelte-i18n/-/svelte-i18n-3.3.0.tgz#6c93f005b749263ef9db84c38cd7b0456019ad2f"
 | 
			
		||||
  integrity sha512-2pIfd4G8QfB87udPugt6g2Wl/qZ0kIB60+nQKHdon7d7aFzY5qsYT2NqQgK7dnVO2Gu0R8i2kSsNzsaVSk5UsA==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    deepmerge "^4.2.2"
 | 
			
		||||
    dlv "^1.1.3"
 | 
			
		||||
    estree-walker "^2.0.1"
 | 
			
		||||
    intl-messageformat "^9.3.15"
 | 
			
		||||
    sade "^1.7.4"
 | 
			
		||||
    tiny-glob "^0.2.6"
 | 
			
		||||
 | 
			
		||||
svelte-preprocess@^4.6.1:
 | 
			
		||||
  version "4.6.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-4.6.1.tgz#a7de4d91b32d5608b6637da960ee81e6089ae276"
 | 
			
		||||
@@ -2403,6 +2471,14 @@ terser@^5.0.0:
 | 
			
		||||
    source-map "~0.7.2"
 | 
			
		||||
    source-map-support "~0.5.19"
 | 
			
		||||
 | 
			
		||||
tiny-glob@^0.2.6:
 | 
			
		||||
  version "0.2.8"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/tiny-glob/-/tiny-glob-0.2.8.tgz#b2792c396cc62db891ffa161fe8b33e76123e531"
 | 
			
		||||
  integrity sha512-vkQP7qOslq63XRX9kMswlby99kyO5OvKptw7AMwBVMjXEI7Tb61eoI5DydyEMOseyGS5anDN1VPoVxEvH01q8w==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    globalyzer "0.1.0"
 | 
			
		||||
    globrex "^0.1.2"
 | 
			
		||||
 | 
			
		||||
to-fast-properties@^2.0.0:
 | 
			
		||||
  version "2.0.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
 | 
			
		||||
@@ -2425,6 +2501,11 @@ toidentifier@1.0.0:
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
 | 
			
		||||
  integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
 | 
			
		||||
 | 
			
		||||
tslib@^2.0.1:
 | 
			
		||||
  version "2.0.3"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c"
 | 
			
		||||
  integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==
 | 
			
		||||
 | 
			
		||||
tsscmp@1.0.6:
 | 
			
		||||
  version "1.0.6"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user