From 03294b5a2f7a32a24c4ad03bec39c00d5cef53ad Mon Sep 17 00:00:00 2001
From: Igor Rzegocki <igor@rzegocki.pl>
Date: Thu, 8 Dec 2022 20:37:45 +0100
Subject: [PATCH 01/41] use unprivileged user in a container

---
 Dockerfile           | 32 ++++++++++++++++----------------
 docker-entrypoint.sh | 16 +++++++++++++++-
 2 files changed, 31 insertions(+), 17 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index 48e5d2f30..1d9a49317 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -7,12 +7,10 @@ WORKDIR /app
 
 COPY --link package.json pnpm-lock.yaml* ./
 
-RUN <<EOF
-    set -xe
-    apk add libc6-compat
-    apk add --virtual .gyp python3 make g++
-    npm install -g pnpm
-EOF
+SHELL ["/bin/ash", "-xeo", "pipefail", "-c"]
+RUN apk add --no-cache libc6-compat \
+ && apk add --no-cache --virtual .gyp python3 make g++ \
+ && npm install -g pnpm
 
 RUN --mount=type=cache,id=pnpm-store,target=/root/.local/share/pnpm/store pnpm fetch | grep -v "cross-device link not permitted\|Falling back to copying packages from store"
 
@@ -29,12 +27,10 @@ ARG REVISION
 COPY --link --from=deps /app/node_modules ./node_modules/
 COPY . .
 
-RUN <<EOF
-    set -xe
-    npm run telemetry
-    mkdir config && echo '-' > config/settings.yaml
-    NEXT_PUBLIC_BUILDTIME=$BUILDTIME NEXT_PUBLIC_VERSION=$VERSION NEXT_PUBLIC_REVISION=$REVISION npm run build
-EOF
+SHELL ["/bin/ash", "-xeo", "pipefail", "-c"]
+RUN npm run telemetry \
+ && mkdir config && echo '---' > config/settings.yaml \
+ && NEXT_PUBLIC_BUILDTIME=$BUILDTIME NEXT_PUBLIC_VERSION=$VERSION NEXT_PUBLIC_REVISION=$REVISION npm run build
 
 # Production image, copy all the files and run next
 FROM docker.io/node:18-alpine AS runner
@@ -50,12 +46,15 @@ ENV NODE_ENV production
 WORKDIR /app
 
 # Copy files from context (this allows the files to copy before the builder stage is done).
-COPY --link package.json next.config.js ./
-COPY --link /public ./public
+COPY --link --chown=1000:1000 package.json next.config.js ./
+COPY --link --chown=1000:1000 /public ./public/
 
 # Copy files from builder
-COPY --link --from=builder /app/.next/standalone ./
-COPY --link --from=builder /app/.next/static/ ./.next/static/
+COPY --link --from=builder --chown=1000:1000 /app/.next/standalone ./
+COPY --link --from=builder --chown=1000:1000 /app/.next/static/ ./.next/static/
+COPY --link --chmod=755 docker-entrypoint.sh /usr/local/bin/
+
+RUN apk add --no-cache su-exec
 
 ENV PORT 3000
 EXPOSE $PORT
@@ -63,4 +62,5 @@ EXPOSE $PORT
 HEALTHCHECK --interval=10s --timeout=3s --start-period=20s \
   CMD wget --no-verbose --tries=1 --spider --no-check-certificate http://localhost:$PORT/api/healthcheck || exit 1
 
+ENTRYPOINT ["docker-entrypoint.sh"]
 CMD ["node", "server.js"]
diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh
index 5603d7e58..bf443461f 100755
--- a/docker-entrypoint.sh
+++ b/docker-entrypoint.sh
@@ -2,8 +2,22 @@
 
 set -e
 
+# Default to root, so old installations won't break
+export PUID=${PUID:-0}
+export PGID=${PGID:-0}
+
 # This is in attempt to preserve the original behavior of the Dockerfile,
 # while also supporting the lscr.io /config directory
 [ ! -d "/app/config" ] && ln -s /config /app/config
 
-node server.js
+# Set privileges for /app but only if pid 1 user is root and we are dropping privileges.
+# If container is run as an unprivileged user, it means owner already handled ownership setup on their own.
+# Running chown in that case (as non-root) will cause error
+[ "$(id -u)" == "0" ] && [ "${PUID}" != "0" ] && chown -R ${PUID}:${PGID} /app
+
+# Drop privileges (when asked to) if root, otherwise run as current user
+if [ "$(id -u)" == "0" ] && [ "${PUID}" != "0" ]; then
+  su-exec ${PUID}:${PGID} "$@"
+else
+  exec "$@"
+fi

From 0febf05d8d9b8430428e598cc429b296920d7df5 Mon Sep 17 00:00:00 2001
From: Eizock <8332480+Eizock@users.noreply.github.com>
Date: Thu, 12 Jan 2023 21:55:07 +0000
Subject: [PATCH 02/41] Add Moonraker (Klipper) widget (#798)

* Add Moonraker (Klipper) widget

* Fix linting

* Removed filename, to adhere to standards

* Removed unused translation

* fix conditional in moonraker component

Co-authored-by: Eizock <>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
---
 public/locales/en/common.json       |  6 ++++
 src/widgets/components.js           |  1 +
 src/widgets/moonraker/component.jsx | 51 +++++++++++++++++++++++++++++
 src/widgets/moonraker/widget.js     | 20 +++++++++++
 src/widgets/widgets.js              |  2 ++
 5 files changed, 80 insertions(+)
 create mode 100644 src/widgets/moonraker/component.jsx
 create mode 100644 src/widgets/moonraker/widget.js

diff --git a/public/locales/en/common.json b/public/locales/en/common.json
index 032c1dfef..a07633ceb 100644
--- a/public/locales/en/common.json
+++ b/public/locales/en/common.json
@@ -412,5 +412,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }
diff --git a/src/widgets/components.js b/src/widgets/components.js
index 10277732f..d92404606 100644
--- a/src/widgets/components.js
+++ b/src/widgets/components.js
@@ -23,6 +23,7 @@ const components = {
   mastodon: dynamic(() => import("./mastodon/component")),
   miniflux: dynamic(() => import("./miniflux/component")),
   mikrotik: dynamic(() => import("./mikrotik/component")),
+  moonraker: dynamic(() => import("./moonraker/component")),
   navidrome: dynamic(() => import("./navidrome/component")),
   nextdns: dynamic(() => import("./nextdns/component")),
   npm: dynamic(() => import("./npm/component")),
diff --git a/src/widgets/moonraker/component.jsx b/src/widgets/moonraker/component.jsx
new file mode 100644
index 000000000..81bf8b908
--- /dev/null
+++ b/src/widgets/moonraker/component.jsx
@@ -0,0 +1,51 @@
+import { useTranslation } from "next-i18next";
+
+import Container from "components/services/widget/container";
+import Block from "components/services/widget/block";
+import useWidgetAPI from "utils/proxy/use-widget-api";
+
+export default function Component({ service }) {
+  const { t } = useTranslation();
+
+  const { widget } = service;
+
+  const { data: printStats, error: printStatsError } = useWidgetAPI(widget, "print_stats");
+  const { data: displayStatus, error: displayStatsError } = useWidgetAPI(widget, "display_status");
+  const { data: webHooks, error: webHooksError } = useWidgetAPI(widget, "webhooks");
+
+  if (printStatsError || displayStatsError || webHooksError) {
+    const finalError = printStatsError ?? displayStatsError ?? webHooksError;
+    return <Container error={finalError} />;
+  }
+
+  if (!printStats || !displayStatus || !webHooks) {
+    return (
+      <Container service={service}>
+        <Block label="moonraker.printer_state" />
+      </Container>
+    );
+  }
+
+  if (webHooks.result.status.webhooks.state === "shutdown") {
+    return (
+      <Container service={service}>
+        <Block label="moonraker.printer_state" value={webHooks.result.status.webhooks.state} />
+      </Container>
+    );
+  }
+
+  let currentLayer = "-";
+  let totalLayer = "-";
+  if (printStats.result.status.print_stats.info.total_layer !== null) {
+    currentLayer = printStats.result.status.print_stats.info.current_layer;
+    totalLayer = printStats.result.status.print_stats.info.total_layer;
+  }
+
+  return (
+    <Container service={service}>
+      <Block label="moonraker.layers" value={`${currentLayer} / ${totalLayer}`} />
+      <Block label="moonraker.print_progress" value={t("common.percent", { value: (displayStatus.result.status.display_status.progress * 100) })} />
+      <Block label="moonraker.print_status" value={printStats.result.status.print_stats.state} />
+    </Container>
+  );
+}
diff --git a/src/widgets/moonraker/widget.js b/src/widgets/moonraker/widget.js
new file mode 100644
index 000000000..314a8670e
--- /dev/null
+++ b/src/widgets/moonraker/widget.js
@@ -0,0 +1,20 @@
+import genericProxyHandler from "utils/proxy/handlers/generic";
+
+const widget = {
+  api: "{url}/printer/objects/query?{endpoint}",
+  proxyHandler: genericProxyHandler,
+
+  mappings: {
+    print_stats: {
+      endpoint: "print_stats",
+    },
+    display_status: {
+      endpoint: "display_status",
+    },
+    webhooks: {
+      endpoint: "webhooks",
+    },
+  },
+};
+
+export default widget;
diff --git a/src/widgets/widgets.js b/src/widgets/widgets.js
index 3e73e55f3..091a616f1 100644
--- a/src/widgets/widgets.js
+++ b/src/widgets/widgets.js
@@ -18,6 +18,7 @@ import lidarr from "./lidarr/widget";
 import mastodon from "./mastodon/widget";
 import miniflux from "./miniflux/widget";
 import mikrotik from "./mikrotik/widget";
+import moonraker from "./moonraker/widget";
 import navidrome from "./navidrome/widget";
 import nextdns from "./nextdns/widget";
 import npm from "./npm/widget";
@@ -75,6 +76,7 @@ const widgets = {
   mastodon,
   miniflux,
   mikrotik,
+  moonraker,
   navidrome,
   nextdns,
   npm,

From a444945faa200c8975eb33d2ebb3b077bbb67b3c Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:24 +0000
Subject: [PATCH 03/41] Translated using Weblate (German)

Currently translated at 78.0% (228 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
---
 public/locales/de/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/de/common.json b/public/locales/de/common.json
index e32ba18b1..8037d4c8c 100644
--- a/public/locales/de/common.json
+++ b/public/locales/de/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From 294b27ab71d7629c2c5239fac695766000a8c2ac Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:24 +0000
Subject: [PATCH 04/41] Translated using Weblate (Spanish)

Currently translated at 98.6% (288 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
---
 public/locales/es/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/es/common.json b/public/locales/es/common.json
index c0026c8f4..34d69f898 100644
--- a/public/locales/es/common.json
+++ b/public/locales/es/common.json
@@ -403,5 +403,11 @@
         "memory": "Memoria activa",
         "wanUpload": "Carga WAN",
         "wanDownload": "Descargar WAN"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From 113bbc3ef1c3ae30f253a2e6a702240a64d7ab8a Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:25 +0000
Subject: [PATCH 05/41] Translated using Weblate (French)

Currently translated at 98.6% (288 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
---
 public/locales/fr/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/fr/common.json b/public/locales/fr/common.json
index ab46de39d..28c829cef 100644
--- a/public/locales/fr/common.json
+++ b/public/locales/fr/common.json
@@ -403,5 +403,11 @@
         "memory": "Mém. Utilisée",
         "wanUpload": "WAN Envoi",
         "wanDownload": "WAN Récep."
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From 5e44ac2448b3822b8d40531a36fd18a6643b1715 Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:25 +0000
Subject: [PATCH 06/41] Translated using Weblate (Portuguese)

Currently translated at 87.6% (256 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
---
 public/locales/pt/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/pt/common.json b/public/locales/pt/common.json
index f3cd28f51..6d9229b2d 100644
--- a/public/locales/pt/common.json
+++ b/public/locales/pt/common.json
@@ -412,5 +412,11 @@
         "memory": "Memória Ativa",
         "wanUpload": "Envio WAN",
         "wanDownload": "WAN Descarga"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From dc01dbd6490fd3081b5c539bfa99ea1bf4925f3d Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:33 +0000
Subject: [PATCH 07/41] Translated using Weblate (Russian)

Currently translated at 16.4% (48 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
---
 public/locales/ru/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json
index 6fb5d4f4c..71923d1d7 100644
--- a/public/locales/ru/common.json
+++ b/public/locales/ru/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From 7fec2af8e305f57fd37b5dd5785bf733a2d8569c Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:24 +0000
Subject: [PATCH 08/41] Translated using Weblate (Chinese (Simplified))

Currently translated at 57.5% (168 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
---
 public/locales/zh-CN/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/zh-CN/common.json b/public/locales/zh-CN/common.json
index cf4c4a3fd..abad42665 100644
--- a/public/locales/zh-CN/common.json
+++ b/public/locales/zh-CN/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From f3698aaeb5a86bd192a7957a28fd7d843bc72fde Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:25 +0000
Subject: [PATCH 09/41] Translated using Weblate (Italian)

Currently translated at 98.6% (288 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
---
 public/locales/it/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/it/common.json b/public/locales/it/common.json
index 8ba5f96f6..7defae315 100644
--- a/public/locales/it/common.json
+++ b/public/locales/it/common.json
@@ -403,5 +403,11 @@
         "memory": "Memoria in uso",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From 20e4449fd52e8e27136e0fcf4fb8b759417252e2 Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:31 +0000
Subject: [PATCH 10/41] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?=
 =?UTF-8?q?=20Bokm=C3=A5l)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Currently translated at 27.0% (79 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
---
 public/locales/nb-NO/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/nb-NO/common.json b/public/locales/nb-NO/common.json
index 7f9b2c803..e066d9700 100644
--- a/public/locales/nb-NO/common.json
+++ b/public/locales/nb-NO/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From d27262c934e17d062c1a09723c68b1e10ebda9d9 Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:31 +0000
Subject: [PATCH 11/41] Translated using Weblate (Vietnamese)

Currently translated at 15.0% (44 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
---
 public/locales/vi/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/vi/common.json b/public/locales/vi/common.json
index 870e3fe56..2c2c64aa8 100644
--- a/public/locales/vi/common.json
+++ b/public/locales/vi/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From 5bc475b9dfca99e0b07175220e2b15821e61fa89 Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:32 +0000
Subject: [PATCH 12/41] Translated using Weblate (Dutch)

Currently translated at 21.5% (63 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
---
 public/locales/nl/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/nl/common.json b/public/locales/nl/common.json
index c5c9ea0b0..2c09cd505 100644
--- a/public/locales/nl/common.json
+++ b/public/locales/nl/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From e04594defb57cdebb9f5c6d95e08939f5e9539a9 Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:32 +0000
Subject: [PATCH 13/41] Translated using Weblate (Chinese (Traditional))

Currently translated at 89.7% (262 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
---
 public/locales/zh-Hant/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/zh-Hant/common.json b/public/locales/zh-Hant/common.json
index 2da41ca45..ff14d256c 100644
--- a/public/locales/zh-Hant/common.json
+++ b/public/locales/zh-Hant/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN上傳",
         "wanDownload": "WAN下載"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From 6100cdba938edcd2c6aad8172b5b71963d968585 Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:28 +0000
Subject: [PATCH 14/41] Translated using Weblate (Catalan)

Currently translated at 88.3% (258 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
---
 public/locales/ca/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/ca/common.json b/public/locales/ca/common.json
index 2b2fdd9e9..f7c09cee6 100644
--- a/public/locales/ca/common.json
+++ b/public/locales/ca/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From 5d6e078c87d1ffddd4e699228043278654c30dcd Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:26 +0000
Subject: [PATCH 15/41] Translated using Weblate (Polish)

Currently translated at 94.1% (275 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
---
 public/locales/pl/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/pl/common.json b/public/locales/pl/common.json
index 07ce69f2b..d5c588701 100644
--- a/public/locales/pl/common.json
+++ b/public/locales/pl/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From a7f9dad6df0ee08d629967bcf3f3cfb37c24030b Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:27 +0000
Subject: [PATCH 16/41] Translated using Weblate (Swedish)

Currently translated at 45.2% (132 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
---
 public/locales/sv/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/sv/common.json b/public/locales/sv/common.json
index d682d3688..eb73e8240 100644
--- a/public/locales/sv/common.json
+++ b/public/locales/sv/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "print_progress": "Progress",
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "layers": "Layers"
     }
 }

From 1549bc67be4db721de9d59d1f0f99f2b48767a8a Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:27 +0000
Subject: [PATCH 17/41] Translated using Weblate (Croatian)

Currently translated at 97.9% (286 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
---
 public/locales/hr/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/hr/common.json b/public/locales/hr/common.json
index 15343ff56..de22db79c 100644
--- a/public/locales/hr/common.json
+++ b/public/locales/hr/common.json
@@ -403,5 +403,11 @@
         "memory": "Aktivna memorija",
         "wanUpload": "WAN prijenos",
         "wanDownload": "WAN preuzimanje"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From 56618ead39555c71d2447869aff64ba6a2527534 Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:28 +0000
Subject: [PATCH 18/41] Translated using Weblate (Hungarian)

Currently translated at 36.9% (108 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
---
 public/locales/hu/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/hu/common.json b/public/locales/hu/common.json
index 0d77fd4c7..912345ab1 100644
--- a/public/locales/hu/common.json
+++ b/public/locales/hu/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "layers": "Layers",
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress"
     }
 }

From ed8e7aa01df9b7ec04e95bae2f585fe82849b9f4 Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:27 +0000
Subject: [PATCH 19/41] Translated using Weblate (Hebrew)

Currently translated at 34.5% (101 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
---
 public/locales/he/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/he/common.json b/public/locales/he/common.json
index e211074c9..3ecf387d7 100644
--- a/public/locales/he/common.json
+++ b/public/locales/he/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From e1d6d4642036df6e91c7cefca9b25c7b372d3504 Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:28 +0000
Subject: [PATCH 20/41] Translated using Weblate (Romanian)

Currently translated at 46.9% (137 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
---
 public/locales/ro/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/ro/common.json b/public/locales/ro/common.json
index 0a1080e12..ef9d6e5ac 100644
--- a/public/locales/ro/common.json
+++ b/public/locales/ro/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From 2a777e55d9ebb08863057e9fcefa94aeef178d08 Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:29 +0000
Subject: [PATCH 21/41] Translated using Weblate (Portuguese (Brazil))

Currently translated at 40.0% (117 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
---
 public/locales/pt-BR/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/pt-BR/common.json b/public/locales/pt-BR/common.json
index 68aacbf44..cd49dc176 100644
--- a/public/locales/pt-BR/common.json
+++ b/public/locales/pt-BR/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From 54f263da1593e538aad14e4d78f8b4a4da4752ec Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:28 +0000
Subject: [PATCH 22/41] Translated using Weblate (Yue)

Currently translated at 40.4% (118 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue/
---
 public/locales/yue/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/yue/common.json b/public/locales/yue/common.json
index 1b3468273..77727d4af 100644
--- a/public/locales/yue/common.json
+++ b/public/locales/yue/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "print_progress": "Progress",
+        "layers": "Layers",
+        "printer_state": "Printer State",
+        "print_status": "Print Status"
     }
 }

From 4060fdc9027a686ecd6c712b2b27fc52d967e818 Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:26 +0000
Subject: [PATCH 23/41] Translated using Weblate (Finnish)

Currently translated at 42.1% (123 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
---
 public/locales/fi/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/fi/common.json b/public/locales/fi/common.json
index f7871dac7..161d31a08 100644
--- a/public/locales/fi/common.json
+++ b/public/locales/fi/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From a4d1589493c8950725966817bcd0652b9be090b5 Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:26 +0000
Subject: [PATCH 24/41] Translated using Weblate (Telugu)

Currently translated at 74.3% (217 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
---
 public/locales/te/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/te/common.json b/public/locales/te/common.json
index f5c14b37a..fb976853b 100644
--- a/public/locales/te/common.json
+++ b/public/locales/te/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From 893b709f8b53b5be2b3d69fa70c021ab00ac38c8 Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:30 +0000
Subject: [PATCH 25/41] Translated using Weblate (Bulgarian)

Currently translated at 15.7% (46 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
---
 public/locales/bg/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/bg/common.json b/public/locales/bg/common.json
index c30b4c3d9..4ee070177 100644
--- a/public/locales/bg/common.json
+++ b/public/locales/bg/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "print_progress": "Progress",
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "layers": "Layers"
     }
 }

From f355464aaee50f69e3a8880225d6a9690a8e7071 Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:26 +0000
Subject: [PATCH 26/41] Translated using Weblate (Turkish)

Currently translated at 79.1% (231 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
---
 public/locales/tr/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/tr/common.json b/public/locales/tr/common.json
index b4d093bb9..f8be2a1bd 100644
--- a/public/locales/tr/common.json
+++ b/public/locales/tr/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From fa325b249771f14bf472b35584f0649dafc137e9 Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:30 +0000
Subject: [PATCH 27/41] Translated using Weblate (Serbian)

Currently translated at 3.0% (9 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
---
 public/locales/sr/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/sr/common.json b/public/locales/sr/common.json
index 6e220e049..6a675f012 100644
--- a/public/locales/sr/common.json
+++ b/public/locales/sr/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From 5a6b65aeb0fb3a1070df93334ccdd1524ee68102 Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:29 +0000
Subject: [PATCH 28/41] Translated using Weblate (Arabic)

Currently translated at 15.0% (44 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
---
 public/locales/ar/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/ar/common.json b/public/locales/ar/common.json
index 853ad4c76..3e9f3a66b 100644
--- a/public/locales/ar/common.json
+++ b/public/locales/ar/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From c981a737a6d2072ef613fdae7ccf334a86194eca Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:31 +0000
Subject: [PATCH 29/41] Translated using Weblate (Czech)

Currently translated at 77.0% (225 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
---
 public/locales/cs/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/cs/common.json b/public/locales/cs/common.json
index 170c4a217..f749e0f5d 100644
--- a/public/locales/cs/common.json
+++ b/public/locales/cs/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "print_progress": "Progress",
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "layers": "Layers"
     }
 }

From 9de4bfc6fe5b6c7e41bc8c9a943b1b2b28ce452e Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:31 +0000
Subject: [PATCH 30/41] Translated using Weblate (Danish)

Currently translated at 67.8% (198 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
---
 public/locales/da/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/da/common.json b/public/locales/da/common.json
index c8845105f..fe967fe04 100644
--- a/public/locales/da/common.json
+++ b/public/locales/da/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From 7a4ac9ddd946e4e584581dd69af9c0339df3f029 Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:32 +0000
Subject: [PATCH 31/41] Translated using Weblate (Malay)

Currently translated at 86.6% (253 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
---
 public/locales/ms/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/ms/common.json b/public/locales/ms/common.json
index ed9e49032..6b62fd21d 100644
--- a/public/locales/ms/common.json
+++ b/public/locales/ms/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From 233391fc4a0b06fb8256f23956f8c3eb0db181d0 Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:30 +0000
Subject: [PATCH 32/41] Translated using Weblate (Hindi)

Currently translated at 3.0% (9 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
---
 public/locales/hi/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/hi/common.json b/public/locales/hi/common.json
index 098362eef..c876d79d3 100644
--- a/public/locales/hi/common.json
+++ b/public/locales/hi/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From a58eebb44890c1ba75b69fd5cc371d51af376be0 Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:30 +0000
Subject: [PATCH 33/41] Translated using Weblate (Esperanto)

Currently translated at 35.2% (103 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
---
 public/locales/eo/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/eo/common.json b/public/locales/eo/common.json
index a073234fa..11e7ad548 100644
--- a/public/locales/eo/common.json
+++ b/public/locales/eo/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "layers": "Layers",
+        "print_progress": "Progress"
     }
 }

From bf5b82445f29259798d3a0a9d4824d84ba0f50d1 Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:25 +0000
Subject: [PATCH 34/41] Translated using Weblate (Ukrainian)

Currently translated at 98.6% (288 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
---
 public/locales/uk/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/uk/common.json b/public/locales/uk/common.json
index fc94a529c..d136545b5 100644
--- a/public/locales/uk/common.json
+++ b/public/locales/uk/common.json
@@ -403,5 +403,11 @@
         "memory": "Активна пам'ять",
         "wanUpload": "Вивантаження WAN",
         "wanDownload": "Завантаження WAN"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From a8e506504a8b8983c7c8c28db7bb0216935dc6b9 Mon Sep 17 00:00:00 2001
From: Anonymous <noreply@weblate.org>
Date: Thu, 12 Jan 2023 21:55:33 +0000
Subject: [PATCH 35/41] Translated using Weblate (Japanese)

Currently translated at 5.1% (15 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
---
 public/locales/ja/common.json | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/public/locales/ja/common.json b/public/locales/ja/common.json
index 11913e363..a372c3f9d 100644
--- a/public/locales/ja/common.json
+++ b/public/locales/ja/common.json
@@ -403,5 +403,11 @@
         "memory": "Active Memory",
         "wanUpload": "WAN Upload",
         "wanDownload": "WAN Download"
+    },
+    "moonraker": {
+        "printer_state": "Printer State",
+        "print_status": "Print Status",
+        "print_progress": "Progress",
+        "layers": "Layers"
     }
 }

From 93dda99aaa26ecad3ce717dda7f23554fe9b1ff1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Manuel=20Jurado=20Bujalance?=
 <darkbird@vivaldi.net>
Date: Fri, 13 Jan 2023 22:45:08 +0100
Subject: [PATCH 36/41] use abbr as icon fallback

---
 src/components/bookmarks/item.jsx | 2 +-
 src/components/resolvedicon.jsx   | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/components/bookmarks/item.jsx b/src/components/bookmarks/item.jsx
index 17fcbe9ea..89dd698d1 100644
--- a/src/components/bookmarks/item.jsx
+++ b/src/components/bookmarks/item.jsx
@@ -19,7 +19,7 @@ export default function Item({ bookmark }) {
           <div className="flex-shrink-0 flex items-center justify-center w-11 bg-theme-500/10 dark:bg-theme-900/50 text-theme-700 hover:text-theme-700 dark:text-theme-200 text-sm font-medium rounded-l-md">
             {bookmark.icon && 
               <div className="flex-shrink-0 w-5 h-5">
-                <ResolvedIcon icon={bookmark.icon} />
+                <ResolvedIcon icon={bookmark.icon} alt={bookmark.abbr} />
               </div>
             }
             {!bookmark.icon && bookmark.abbr}
diff --git a/src/components/resolvedicon.jsx b/src/components/resolvedicon.jsx
index 3dad2b0e2..8657a754b 100644
--- a/src/components/resolvedicon.jsx
+++ b/src/components/resolvedicon.jsx
@@ -1,9 +1,9 @@
 import Image from "next/future/image";
 
-export default function ResolvedIcon({ icon, width = 32, height = 32 }) {
+export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "logo" }) {
   // direct or relative URLs
   if (icon.startsWith("http") || icon.startsWith("/")) {
-    return <Image src={`${icon}`} width={width} height={height} alt="logo" />;
+    return <Image src={`${icon}`} width={width} height={height} alt={alt} />;
   }
 
   // mdi- prefixed, material design icons
@@ -31,7 +31,7 @@ export default function ResolvedIcon({ icon, width = 32, height = 32 }) {
       src={`https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/${iconName}.png`}
       width={width}
       height={height}
-      alt="logo"
+      alt={alt}
     />
   );
-}
\ No newline at end of file
+}

From 3aec4e6da4c233455c8caf743c7ee29ebedfc88f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Antonio=20Sanchez=20Castell=C3=B3n?= <angelfx19@gmail.com>
Date: Sat, 14 Jan 2023 01:39:12 +0000
Subject: [PATCH 37/41] Translated using Weblate (Spanish)

Currently translated at 100.0% (292 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
---
 public/locales/es/common.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/public/locales/es/common.json b/public/locales/es/common.json
index 34d69f898..d2d50adee 100644
--- a/public/locales/es/common.json
+++ b/public/locales/es/common.json
@@ -354,7 +354,7 @@
         "download": "Descargar",
         "upload": "Subir",
         "leech": "Leech",
-        "seed": "Seed"
+        "seed": "Semillas"
     },
     "tdarr": {
         "queue": "Cola",

From 7f7e083a41e8b3c361c2a35e0a0a22b8a990072c Mon Sep 17 00:00:00 2001
From: gallegonovato <fran-carro@hotmail.es>
Date: Fri, 13 Jan 2023 10:53:24 +0000
Subject: [PATCH 38/41] Translated using Weblate (Spanish)

Currently translated at 100.0% (292 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
---
 public/locales/es/common.json | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/public/locales/es/common.json b/public/locales/es/common.json
index d2d50adee..d96bdb19a 100644
--- a/public/locales/es/common.json
+++ b/public/locales/es/common.json
@@ -405,9 +405,9 @@
         "wanDownload": "Descargar WAN"
     },
     "moonraker": {
-        "printer_state": "Printer State",
-        "print_status": "Print Status",
-        "print_progress": "Progress",
-        "layers": "Layers"
+        "printer_state": "Estado de la impresora",
+        "print_status": "Estado de la impresora",
+        "print_progress": "Progreso",
+        "layers": "Capas"
     }
 }

From 1a9acd753cd14b27a22747c5662ee031d22f8fce Mon Sep 17 00:00:00 2001
From: Nonoss117 <nonoss117@gmail.com>
Date: Thu, 12 Jan 2023 22:23:22 +0000
Subject: [PATCH 39/41] Translated using Weblate (French)

Currently translated at 100.0% (292 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
---
 public/locales/fr/common.json | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/public/locales/fr/common.json b/public/locales/fr/common.json
index 28c829cef..da81f2378 100644
--- a/public/locales/fr/common.json
+++ b/public/locales/fr/common.json
@@ -405,9 +405,9 @@
         "wanDownload": "WAN Récep."
     },
     "moonraker": {
-        "printer_state": "Printer State",
-        "print_status": "Print Status",
-        "print_progress": "Progress",
-        "layers": "Layers"
+        "printer_state": "État Imprimante",
+        "print_status": "Statut Imprimante",
+        "print_progress": "Progression",
+        "layers": "Couches"
     }
 }

From b3e976860a1427bf3239f83f1930a2dd7e22f9e6 Mon Sep 17 00:00:00 2001
From: Dan <denqwerta@gmail.com>
Date: Fri, 13 Jan 2023 00:11:34 +0000
Subject: [PATCH 40/41] Translated using Weblate (Ukrainian)

Currently translated at 100.0% (292 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
---
 public/locales/uk/common.json | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/public/locales/uk/common.json b/public/locales/uk/common.json
index d136545b5..28a5a87f4 100644
--- a/public/locales/uk/common.json
+++ b/public/locales/uk/common.json
@@ -405,9 +405,9 @@
         "wanDownload": "Завантаження WAN"
     },
     "moonraker": {
-        "printer_state": "Printer State",
-        "print_status": "Print Status",
-        "print_progress": "Progress",
-        "layers": "Layers"
+        "printer_state": "Стан принтера",
+        "print_status": "Статус друку",
+        "print_progress": "Прогрес",
+        "layers": "Шари"
     }
 }

From e20a0e90b2fc2f8ac1aedfe853befaef071d820c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Luis=20Miguel=20Soto=20S=C3=A1nchez?=
 <luismiguelsoto@jerez.es>
Date: Sun, 15 Jan 2023 16:25:46 +0000
Subject: [PATCH 41/41] Translated using Weblate (Spanish)

Currently translated at 100.0% (292 of 292 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
---
 public/locales/es/common.json | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/public/locales/es/common.json b/public/locales/es/common.json
index d96bdb19a..20d0f35df 100644
--- a/public/locales/es/common.json
+++ b/public/locales/es/common.json
@@ -164,7 +164,7 @@
     "qbittorrent": {
         "download": "Bajada",
         "upload": "Subida",
-        "leech": "Leech",
+        "leech": "Depender",
         "seed": "Semillas"
     },
     "mastodon": {
@@ -347,13 +347,13 @@
     "deluge": {
         "download": "Descarga",
         "upload": "Subida",
-        "leech": "Leech",
+        "leech": "Depender",
         "seed": "Semilla"
     },
     "flood": {
         "download": "Descargar",
         "upload": "Subir",
-        "leech": "Leech",
+        "leech": "Depender",
         "seed": "Semillas"
     },
     "tdarr": {