diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz index 989421f..194704c 100644 Binary files a/.yarn/install-state.gz and b/.yarn/install-state.gz differ diff --git a/package.json b/package.json index 895aa45..bbf8db4 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,8 @@ "@sentry/browser": "^6.19.6", "@sentry/tracing": "^6.19.6", "core-js": "3.22.2", - "mdi-svelte": "^1.1.2" + "mdi-svelte": "^1.1.2", + "svelte-i18n": "^3.4.0" }, "optionalDependencies": { "@cypress/code-coverage": "^3.9.12", diff --git a/src/components/App.svelte b/src/components/App.svelte index 836a775..3438216 100644 --- a/src/components/App.svelte +++ b/src/components/App.svelte @@ -1,4 +1,5 @@ diff --git a/src/i18n.ts b/src/i18n.ts new file mode 100644 index 0000000..ce67f10 --- /dev/null +++ b/src/i18n.ts @@ -0,0 +1,12 @@ +import { addMessages, init, getLocaleFromNavigator } from "svelte-i18n" + +import de from "./localization/de.json" +import en from "./localization/en.json" + +addMessages("de", de) +addMessages("en", en) + +init({ + fallbackLocale: "de", + initialLocale: getLocaleFromNavigator(), +}) diff --git a/src/index.ts b/src/index.ts index 4c36f51..6cc36bb 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,6 +2,8 @@ import App from "./components/App.svelte" import { location } from "./store" import { apiBaseURL } from "./config" +import "./i18n" + console.log("API Base: ", apiBaseURL) // update location store @@ -32,9 +34,7 @@ if (typeof history !== "undefined") { if (typeof Proxy !== "undefined") { // modern browser const historyApply = (target, thisArg, argumentsList) => { - publishLocation( - argumentsList && argumentsList.length >= 2 && argumentsList[2] - ) + publishLocation(argumentsList && argumentsList.length >= 2 && argumentsList[2]) Reflect.apply(target, thisArg, argumentsList) } @@ -54,11 +54,7 @@ if (typeof history !== "undefined") { publishLocation(url) return pushStateFn.apply(history, arguments) } - history.replaceState = function ( - data: any, - title: string, - url?: string - ) { + history.replaceState = function (data: any, title: string, url?: string) { publishLocation(url) return replaceStateFn.apply(history, arguments) } diff --git a/src/localization/de.json b/src/localization/de.json new file mode 100644 index 0000000..7f4c042 --- /dev/null +++ b/src/localization/de.json @@ -0,0 +1,3 @@ +{ + "test": "DE - TEST" +} \ No newline at end of file diff --git a/src/localization/en.json b/src/localization/en.json new file mode 100644 index 0000000..763a26a --- /dev/null +++ b/src/localization/en.json @@ -0,0 +1,3 @@ +{ + "test": "EN - TEST" +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 94f06b1..1ea7c7c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2570,6 +2570,55 @@ __metadata: languageName: node linkType: hard +"@formatjs/ecma402-abstract@npm:1.11.4": + version: 1.11.4 + resolution: "@formatjs/ecma402-abstract@npm:1.11.4" + dependencies: + "@formatjs/intl-localematcher": 0.2.25 + tslib: ^2.1.0 + checksum: 05dbe1c6457acfe9cdc0fc770940260e19fa588be6c655b1ff1697506348dac1eee9b249b64e6544531174d07a5a74a9e75f68430947cfdc074ebe8e3c86f86f + languageName: node + linkType: hard + +"@formatjs/fast-memoize@npm:1.2.1": + version: 1.2.1 + resolution: "@formatjs/fast-memoize@npm:1.2.1" + dependencies: + tslib: ^2.1.0 + checksum: 7df9e941142be16e5862afe7387926cec44ec136d2c2f9a7e1598cb6c8c23a65e420ed90251ec9b48df083f5473b10d6fbbee2e9fc7233d5bf1f27efffba59a7 + languageName: node + linkType: hard + +"@formatjs/icu-messageformat-parser@npm:2.1.0": + version: 2.1.0 + resolution: "@formatjs/icu-messageformat-parser@npm:2.1.0" + dependencies: + "@formatjs/ecma402-abstract": 1.11.4 + "@formatjs/icu-skeleton-parser": 1.3.6 + tslib: ^2.1.0 + checksum: 8dab4d102b334dd7ab25b85817b074f1b54845d02f9ef9fa5a1fa6a9723176ad28a59d845fdc0eeedb868b891e61a4c530384b123db29f5b14e1f3f8b207373f + languageName: node + linkType: hard + +"@formatjs/icu-skeleton-parser@npm:1.3.6": + version: 1.3.6 + resolution: "@formatjs/icu-skeleton-parser@npm:1.3.6" + dependencies: + "@formatjs/ecma402-abstract": 1.11.4 + tslib: ^2.1.0 + checksum: cce2d8bea54f0096c557dc03920bfe4785893e60962313fab9eeee41f0b411d38b9d45852882b19f261417d730362c8685bea6ba5ac1e2dee141f030cda624e9 + languageName: node + linkType: hard + +"@formatjs/intl-localematcher@npm:0.2.25": + version: 0.2.25 + resolution: "@formatjs/intl-localematcher@npm:0.2.25" + dependencies: + tslib: ^2.1.0 + checksum: ee00ddc23317dc47a58831aaca5112e101d8bb1f38adc0ecfe1a9d7e008d0bb1091519f07e1d7d805b0c1e28f2c3e75f697ae479e22423445814412c7669284c + languageName: node + linkType: hard + "@gar/promisify@npm:^1.1.3": version: 1.1.3 resolution: "@gar/promisify@npm:1.1.3" @@ -4817,6 +4866,13 @@ __metadata: languageName: node linkType: hard +"deepmerge@npm:^4.2.2": + version: 4.2.2 + resolution: "deepmerge@npm:4.2.2" + checksum: a8c43a1ed8d6d1ed2b5bf569fa4c8eb9f0924034baf75d5d406e47e157a451075c4db353efea7b6bcc56ec48116a8ce72fccf867b6e078e7c561904b5897530b + languageName: node + linkType: hard + "default-require-extensions@npm:^3.0.0": version: 3.0.0 resolution: "default-require-extensions@npm:3.0.0" @@ -5490,6 +5546,13 @@ __metadata: languageName: node linkType: hard +"estree-walker@npm:^2.0.1": + version: 2.0.2 + resolution: "estree-walker@npm:2.0.2" + checksum: 6151e6f9828abe2259e57f5fd3761335bb0d2ebd76dc1a01048ccee22fabcfef3c0859300f6d83ff0d1927849368775ec5a6d265dde2f6de5a1be1721cd94efc + languageName: node + linkType: hard + "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -6165,6 +6228,13 @@ __metadata: languageName: node linkType: hard +"globalyzer@npm:0.1.0": + version: 0.1.0 + resolution: "globalyzer@npm:0.1.0" + checksum: 419a0f95ba542534fac0842964d31b3dc2936a479b2b1a8a62bad7e8b61054faa9b0a06ad9f2e12593396b9b2621cac93358d9b3071d33723fb1778608d358a1 + languageName: node + linkType: hard + "globby@npm:11.0.4": version: 11.0.4 resolution: "globby@npm:11.0.4" @@ -6179,6 +6249,13 @@ __metadata: languageName: node linkType: hard +"globrex@npm:^0.1.2": + version: 0.1.2 + resolution: "globrex@npm:0.1.2" + checksum: adca162494a176ce9ecf4dd232f7b802956bb1966b37f60c15e49d2e7d961b66c60826366dc2649093cad5a0d69970cfa8875bd1695b5a1a2f33dcd2aa88da3c + languageName: node + linkType: hard + "graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.3, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0": version: 4.2.8 resolution: "graceful-fs@npm:4.2.8" @@ -6655,6 +6732,18 @@ __metadata: languageName: node linkType: hard +"intl-messageformat@npm:^9.3.15": + version: 9.13.0 + resolution: "intl-messageformat@npm:9.13.0" + dependencies: + "@formatjs/ecma402-abstract": 1.11.4 + "@formatjs/fast-memoize": 1.2.1 + "@formatjs/icu-messageformat-parser": 2.1.0 + tslib: ^2.1.0 + checksum: effb840ae6e213adceab9951dbb2d18d1a354c82e35dbd213011daf23bcc79e2a18b6ef79157ae3b69c1e6d898fe66b54dd184ac180ee0646e26a70276e60038 + languageName: node + linkType: hard + "ip@npm:^1.1.5": version: 1.1.5 resolution: "ip@npm:1.1.5" @@ -10090,6 +10179,23 @@ send@latest: languageName: node linkType: hard +"svelte-i18n@npm:^3.4.0": + version: 3.4.0 + resolution: "svelte-i18n@npm:3.4.0" + dependencies: + deepmerge: ^4.2.2 + estree-walker: ^2.0.1 + intl-messageformat: ^9.3.15 + sade: ^1.7.4 + tiny-glob: ^0.2.6 + peerDependencies: + svelte: ^3.25.1 + bin: + svelte-i18n: dist/cli.js + checksum: 27c198e01c73c3f12cdf50be178227161616c53a7e3b9abc483e1aff21a207dc8492372b2c2a16a3037885dda0dd691bb23cc0b6ac71b49f55be52c997d065d6 + languageName: node + linkType: hard + "svelte-preprocess-esbuild@npm:^2.0.0": version: 2.0.0 resolution: "svelte-preprocess-esbuild@npm:2.0.0" @@ -10364,6 +10470,7 @@ send@latest: prettier-plugin-svelte: ^2.7.0 svelte: ^3.47.0 svelte-check: ^2.7.0 + svelte-i18n: ^3.4.0 svelte-preprocess: ^4.10.6 svelte-preprocess-esbuild: ^2.0.0 svelte-routing: ^1.6.0 @@ -10405,6 +10512,16 @@ send@latest: languageName: node linkType: hard +"tiny-glob@npm:^0.2.6": + version: 0.2.9 + resolution: "tiny-glob@npm:0.2.9" + dependencies: + globalyzer: 0.1.0 + globrex: ^0.1.2 + checksum: aea5801eb6663ddf77ebb74900b8f8bd9dfcfc9b6a1cc8018cb7421590c00bf446109ff45e4b64a98e6c95ddb1255a337a5d488fb6311930e2a95334151ec9c6 + languageName: node + linkType: hard + "tmp@npm:~0.2.1": version: 0.2.1 resolution: "tmp@npm:0.2.1" @@ -10508,7 +10625,7 @@ send@latest: languageName: node linkType: hard -"tslib@npm:^2.4.0": +"tslib@npm:^2.1.0, tslib@npm:^2.4.0": version: 2.4.0 resolution: "tslib@npm:2.4.0" checksum: 8c4aa6a3c5a754bf76aefc38026134180c053b7bd2f81338cb5e5ebf96fefa0f417bff221592bf801077f5bf990562f6264fecbc42cd3309b33872cb6fc3b113