diff --git a/.yarnrc b/.yarnrc deleted file mode 100644 index 5ef1bed4b..000000000 --- a/.yarnrc +++ /dev/null @@ -1,5 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -yarn-path ".yarn/releases/yarn-1.22.19.cjs" diff --git a/README.md b/README.md index e2c16d572..cb902754f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ -

Homarr

+

@@ -21,128 +23,113 @@

-Join the discord! — Don't forget to star the repo if you are enjoying the project! -

-

Read the Docs

-

- Demo ↗️ Install ➡️ + + Demo ✨ + + • + + Install 💻 + • + + Translations 🈺 + • + + Discord 👋 +

---- - - +Simplify the management of your server with Homarr - a sleek, modern dashboard that puts all of your apps and services at your fingertips. With Homarr, you can access and control everything in one convenient location. Homarr seamlessly integrates with the apps you've added, providing you with valuable information and giving you complete control. Installation is a breeze, and Homarr supports a wide range of deployment methods. -Homarr is a simple and lightweight homepage for your server, that helps you easily access all of your services in one place. +
+
-It integrates with the services you use to display information on the homepage (E.g. Show upcoming Sonarr/Radarr releases). + + + -For a full list of integrations, [head over to our documentation](https://homarr.dev/docs/integrations/). +- 🖌️ Highly customizeable with extensive drag and drop grid system +- ✨ Integrates seamlessly with your favorite self-hosted applications +- 📌 Easy and fast app management - no yaml involved +- 🙊 Advanced secrets management system for enhanced security +- 📄 Detailed documentation and active community +- 🔍 Search though the web or supported integrations in an instant +- 🏴󠁧󠁢󠁮󠁩󠁲󠁿 Monitor your application with a built in status system +- 🦞 Comprehensive built-in icon picker with over 1000 icons +- 🐳 Easy deployment with Docker, Unraid, Synology +- 🚀 Comatible with any major consumer hardware (x86, Rasperry Pi, ...) +- 💵 Free and Open-Source - your data stays on your device -If you have any questions about Homarr or want to share information with us, please go to one of the following places: +
+
-- [Github Discussions](https://github.com/ajnart/homarr/discussions) -- [Discord Server](https://discord.gg/aCsmEV5RgA) + + + -**For more information, [read the documentation!](https://homarr.dev/docs/about)** +Homarr has a [built in collection of widgets and integrations](https://homarr.dev/docs/integrations/) , that connect to your applications and enable you to control them directly from the dashboard. +Each widget and integration has a comprehensive documentation for your confort. +Homarr will integrate with the following applications of yours: -
- Table of Contents -

+- 📥 Torrent clients + - [Delguge](https://homarr.dev/docs/integrations/#deluge) + - [Transmission](https://homarr.dev/docs/integrations/#transmission) + - [qBittorrent](https://homarr.dev/docs/integrations/#qbittorrent-integration) +- 📥 Usenet clients + - [SABnzbd](https://homarr.dev/docs/integrations/#sabnzbd) + - [NZBGet](https://homarr.dev/docs/integrations/#nzbget) +- 📚 Media collection managers + - [Sonarr](https://homarr.dev/docs/integrations/#sonarr) + - [Radarr](https://homarr.dev/docs/integrations/#radarr) + - [Lidarr](https://homarr.dev/docs/integrations/#lidarr) + - [Readarr](https://homarr.dev/docs/integrations/#readarr) +- 🎞️ Media request managers + - [Overseerr](https://homarr.dev/docs/integrations/#overseerr--jellyseerr) + - [Jellyseerr](https://homarr.dev/docs/integrations/#overseerr--jellyseerr) +- 🔌 [Dash.](https://homarr.dev/docs/integrations/#dash) +- 🐳 [Docker](https://homarr.dev/docs/integrations/#docker) -- [✨ Features](#-features) -- [👀 Preview](#-preview) -- [🛠️ Running a dev environment](#️-running-a-dev-environment) -- [💖 Contributing](#-contributing) -- [📜 License](#-license) +We're constantly adding new integrations and widgets, which will enhance your experience even further. -

-
+
+
---- + + + -## ✨ Features -- Integrates with services you use. -- Search the web directly from your homepage. -- Real-time status indicator for every service. -- Automatically finds icons while you type the name of a service. -- Widgets that can display all types of information. -- Easy deployment with Docker. -- Very light-weight and fast. -- Free and Open-Source. -- And more... +https://user-images.githubusercontent.com/30572287/217098893-5880e7de-13d0-42c5-b505-f7921593396f.mp4 -**[⤴️ Back to Top](#homarr)** +
+
---- + + + -## 👀 Preview -Homarr Preview +There are many different ways, how Homarr can be installed. +Since we are developing Homarr very frequently, we recommend to read our official installation guides: -**[⤴️ Back to Top](#homarr)** + + + ---- +
+
-### 🛠️ Running a dev environment + + + +Homarr is maintained by motivated developers in their free-time. +We work for fun and learning on this project. -_Requirements_: -- [Git](https://git-scm.com/downloads) -- [NodeJS](https://nodejs.org/en/) _(Latest or LTS)_ -- [Yarn](https://yarnpkg.com/) +Hence, we're glad for all help and support we can get. +Altough a donation is apprechiated, there are also other ways you can support us. -**Installing** +[_![](https://cdn.ko-fi.com/cdn/kofi3.png?v=3)_](https://ko-fi.com/ajnart) -- Clone the GitHub repo: `git clone https://github.com/ajnart/homarr.git` & `cd homarr` -- Install all dependencies: `yarn install` -- Build the source: `yarn build` -- Start the NextJS web server: ``yarn start`` -- *Note: If you want to update the code in real time, launch with ``yarn dev``* +You can also support us [translating the entire project in as many languages as possible](https://homarr.dev/docs/community/translations) or contribute directly to the code or documentation. -**[⤴️ Back to Top](#homarr)** - ---- - -## 💖 Contributing **Please read our [Contribution Guidelines](/CONTRIBUTING.md)** -All contributions are highly appreciated. - -**[⤴️ Back to Top](#homarr)** - ---- - - -## 📜 License -Homarr is Licensed under [MIT](https://en.wikipedia.org/wiki/MIT_License) - -```txt -Copyright © 2022 Thomas "ajnart" Camlong - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -``` - -**[⤴️ Back to Top](#homarr)** - ---- - -

- Thank you for visiting! For more information read the documentation! -
-
-

+All contributions, regardless of their size or scope, are welcome and highly apprechiated! Thank you ❤️ diff --git a/docs/banner.png b/docs/banner.png new file mode 100644 index 000000000..823bb50b1 Binary files /dev/null and b/docs/banner.png differ diff --git a/docs/banner.xcf b/docs/banner.xcf new file mode 100644 index 000000000..f58de314c Binary files /dev/null and b/docs/banner.xcf differ diff --git a/docs/installation-button.png b/docs/installation-button.png new file mode 100644 index 000000000..991cb9b27 Binary files /dev/null and b/docs/installation-button.png differ diff --git a/docs/section-contribute.png b/docs/section-contribute.png new file mode 100644 index 000000000..3700fee95 Binary files /dev/null and b/docs/section-contribute.png differ diff --git a/docs/section-features.png b/docs/section-features.png new file mode 100644 index 000000000..b1854bf3a Binary files /dev/null and b/docs/section-features.png differ diff --git a/docs/section-installation.png b/docs/section-installation.png new file mode 100644 index 000000000..92fa4474f Binary files /dev/null and b/docs/section-installation.png differ diff --git a/docs/section-preview.png b/docs/section-preview.png new file mode 100644 index 000000000..6e43e043d Binary files /dev/null and b/docs/section-preview.png differ diff --git a/docs/section-template.xcf b/docs/section-template.xcf new file mode 100644 index 000000000..7c2094bd4 Binary files /dev/null and b/docs/section-template.xcf differ diff --git a/docs/section-widgets-and-integrations.png b/docs/section-widgets-and-integrations.png new file mode 100644 index 000000000..67fcbc9ea Binary files /dev/null and b/docs/section-widgets-and-integrations.png differ diff --git a/next-i18next.config.js b/next-i18next.config.js index 32d339fe9..097721344 100644 --- a/next-i18next.config.js +++ b/next-i18next.config.js @@ -25,11 +25,15 @@ module.exports = { 'uk', 'zh', 'el', + 'sk', + 'no', ], localePath: path.resolve('./public/locales'), fallbackLng: 'en', localeDetection: true, returnEmptyString: false, + debug: false, + appendNamespaceToCIMode: true, + reloadOnPrerender: process.env.NODE_ENV === 'development', }, - reloadOnPrerender: process.env.NODE_ENV === 'development', }; diff --git a/next.config.js b/next.config.js index 0abbde49c..dde3ec977 100644 --- a/next.config.js +++ b/next.config.js @@ -1,19 +1,14 @@ const { i18n } = require('./next-i18next.config'); -const removeImports = require('next-remove-imports')(); - const withBundleAnalyzer = require('@next/bundle-analyzer')({ enabled: process.env.ANALYZE === 'true', }); -module.exports = withBundleAnalyzer( - removeImports({ - experimental: { esmExternals: true }, - images: { - domains: ['cdn.jsdelivr.net'], - }, - reactStrictMode: true, - output: 'standalone', - i18n, - }) -); +module.exports = withBundleAnalyzer({ + images: { + domains: ['cdn.jsdelivr.net'], + }, + reactStrictMode: true, + output: 'standalone', + i18n, +}); diff --git a/package.json b/package.json index 6a5469457..c398dc5cc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "homarr", - "version": "0.11.4", + "version": "0.11.5", "description": "Homarr - A homepage for your server.", "license": "MIT", "repository": { @@ -27,11 +27,9 @@ "@ctrl/qbittorrent": "^4.1.0", "@ctrl/shared-torrent": "^4.1.1", "@ctrl/transmission": "^4.1.1", - "@dnd-kit/core": "^6.0.5", - "@dnd-kit/sortable": "^7.0.1", - "@dnd-kit/utilities": "^3.2.0", "@emotion/react": "^11.10.5", "@emotion/server": "^11.10.0", + "@jellyfin/sdk": "^0.7.0", "@mantine/core": "^5.9.3", "@mantine/dates": "^5.9.3", "@mantine/dropzone": "^5.9.3", @@ -40,36 +38,32 @@ "@mantine/modals": "^5.9.3", "@mantine/next": "^5.9.3", "@mantine/notifications": "^5.9.3", - "@nivo/core": "^0.79.0", - "@nivo/line": "^0.79.1", + "@nivo/core": "^0.80.0", + "@nivo/line": "^0.80.0", "@tabler/icons": "^1.106.0", "@tanstack/react-query": "^4.2.1", "@tanstack/react-query-devtools": "^4.24.4", - "@uiw/react-textarea-code-editor": "v1.4.4", "axios": "^0.27.2", "consola": "^2.15.3", "cookies-next": "^2.1.1", "dayjs": "^1.11.7", "dockerode": "^3.3.2", - "embla-carousel-react": "^7.0.0", "fily-publish-gridstack": "^0.0.13", - "framer-motion": "^6.5.1", + "framer-motion": "^9.0.2", + "html-entities": "^2.3.3", "i18next": "^21.9.1", - "i18next-browser-languagedetector": "^6.1.5", - "i18next-http-backend": "^1.4.1", "js-file-download": "^0.4.12", "next": "^13.1.6", "next-i18next": "^11.3.0", - "next-remove-imports": "^1.0.8", "nzbget-api": "^0.0.3", - "ping": "^0.4.2", - "prism-react-renderer": "^1.3.5", + "prismjs": "^1.29.0", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-simple-code-editor": "^0.13.1", + "rss-parser": "^3.12.0", "sabnzbd-api": "^1.5.0", - "sharp": "^0.30.7", - "systeminformation": "^5.12.1", "uuid": "^8.3.2", + "xml-js": "^1.6.11", "yarn": "^1.22.19", "zustand": "^4.1.4" }, @@ -78,13 +72,12 @@ "@next/eslint-plugin-next": "^12.1.4", "@types/dockerode": "^3.3.9", "@types/node": "17.0.1", - "@types/ping": "^0.4.1", + "@types/prismjs": "^1.26.0", "@types/react": "17.0.1", "@types/uuid": "^8.3.4", + "@types/video.js": "^7.3.51", "@typescript-eslint/eslint-plugin": "^5.30.7", "@typescript-eslint/parser": "^5.30.7", - "babel-loader": "^9.1.2", - "babel-plugin-transform-remove-imports": "^1.7.0", "eslint": "^8.20.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^17.0.0", @@ -99,7 +92,9 @@ "jest": "^28.1.3", "prettier": "^2.7.1", "sass": "^1.56.1", - "typescript": "^4.7.4" + "turbo": "^1.7.4", + "typescript": "^4.7.4", + "video.js": "^8.0.3" }, "resolutions": { "@types/react": "17.0.2", diff --git a/public/locales/da/layout/modals/about.json b/public/locales/da/layout/modals/about.json index 43217c9a1..e6023ce8e 100644 --- a/public/locales/da/layout/modals/about.json +++ b/public/locales/da/layout/modals/about.json @@ -8,6 +8,7 @@ "version": "Version", "nodeEnvironment": "Node miljø", "i18n": "Indlæste I18n-oversættelsesnavneområder", - "locales": "Konfigurerede I18n landestandarder" + "locales": "Konfigurerede I18n landestandarder", + "experimental_disableEditMode": "EKSPERIMENTAL: Deaktivér redigeringstilstand" } } \ No newline at end of file diff --git a/public/locales/da/layout/modals/add-app.json b/public/locales/da/layout/modals/add-app.json index 49d7d0241..8056ba346 100644 --- a/public/locales/da/layout/modals/add-app.json +++ b/public/locales/da/layout/modals/add-app.json @@ -39,7 +39,15 @@ "appearance": { "icon": { "label": "App Ikon", - "description": "Det ikon, der vises på dashboarded." + "description": "Vælg et ikon der skal vises på dit dashboard. Vælg mellem {{suggestionsCount}} ikoner eller indtast din egen URL", + "autocomplete": { + "title": "Ingen resultater fundet", + "text": "Prøv at bruge et mere specifikt søgeord. Hvis du ikke kan finde det ønskede ikon, kan du indsætte billedets URL ovenfor for at få et brugerdefineret ikon" + }, + "noItems": { + "title": "Indlæser eksterne ikoner", + "text": "Dette kan tage nogle sekunder" + } } }, "integration": { diff --git a/public/locales/da/modules/dashdot.json b/public/locales/da/modules/dashdot.json index f78fd8a3f..c57bf2a35 100644 --- a/public/locales/da/modules/dashdot.json +++ b/public/locales/da/modules/dashdot.json @@ -4,23 +4,77 @@ "description": "Viser graferne for en ekstern Dash. instans i Homarr.", "settings": { "title": "Indstillinger for Dash. widget", - "cpuMultiView": { - "label": "CPU Multikerne Visning" - }, - "storageMultiView": { - "label": "Multidrevet Lagervisning" - }, - "useCompactView": { - "label": "Brug kompakt tilstand" - }, - "graphs": { - "label": "Grafer" - }, "url": { "label": "Dash. URL" }, "usePercentages": { "label": "Vis procentdele" + }, + "columns": { + "label": "Vis kolonner" + }, + "graphHeight": { + "label": "Højde af grafer" + }, + "graphsOrder": { + "label": "Grafer (rækkefølge)", + "storage": { + "label": "Lager", + "enabled": { + "label": "Vis i widget" + }, + "span": { + "label": "Kolonne spændvidde" + }, + "compactView": { + "label": "Vis som tekst (kompakt)" + }, + "multiView": { + "label": "Vis som multi-drevvisning" + } + }, + "network": { + "label": "Netværk", + "enabled": { + "label": "Vis i widget" + }, + "span": { + "label": "Kolonne spændvidde" + }, + "compactView": { + "label": "Vis som tekst (kompakt)" + } + }, + "cpu": { + "label": "CPU", + "enabled": { + "label": "Vis i widget" + }, + "span": { + "label": "Kolonne spændvidde" + }, + "multiView": { + "label": "Vis som multi-core-visning" + } + }, + "ram": { + "label": "RAM", + "enabled": { + "label": "Vis i widget" + }, + "span": { + "label": "Kolonne spændvidde" + } + }, + "gpu": { + "label": "GPU", + "enabled": { + "label": "Vis i widget" + }, + "span": { + "label": "Kolonne spændvidde" + } + } } } }, @@ -28,7 +82,11 @@ "title": "Dash.", "errors": { "noService": "Ingen Dash. service fundet. Tilføj venligst en til dit Homarr-dashboard eller indstil en Dash. URL i modulindstillingerne", - "noInformation": "Kan ikke hente information fra dash. - kører du den nyeste version?" + "noInformation": "Kan ikke hente information fra dash. - kører du den nyeste version?", + "protocolDowngrade": { + "title": "Registreret protokolnedgradering", + "text": "Protokollen til din Dash. instans bliver nedgraderet. Dette er sikkerhedsrisiko, da HTTP er ukrypteret og angribere kunne misbruge denne forbindelse. Sørg for, at Dash. kører på HTTPS også eller nedgraderer Homarr til HTTP (anbefales ikke)." + } }, "graphs": { "storage": { @@ -46,7 +104,7 @@ "cpu": { "title": "CPU" }, - "memory": { + "ram": { "title": "RAM" }, "gpu": { diff --git a/public/locales/da/modules/iframe.json b/public/locales/da/modules/iframe.json new file mode 100644 index 000000000..986709f9d --- /dev/null +++ b/public/locales/da/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "IFrame", + "description": "Indlejr ethvert indhold fra internettet. Nogle websteder kan begrænse adgang.", + "settings": { + "title": "IFrame indstillinger", + "embedUrl": { + "label": "Indlejr URL" + }, + "allowFullScreen": { + "label": "Tillad fuld skærm" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "Indtast URL", + "text": "Sørg for, at du har indtastet en gyldig adresse i konfigurationen af din widget" + } + } + } +} \ No newline at end of file diff --git a/public/locales/da/modules/media-server.json b/public/locales/da/modules/media-server.json new file mode 100644 index 000000000..d9fd9b317 --- /dev/null +++ b/public/locales/da/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Medieserver", + "description": "Interagere med din Jellyfin- eller Plex-medieserver", + "settings": { + "title": "Indstillinger for medieserver widget" + } + }, + "card": { + "table": { + "header": { + "session": "Session", + "user": "Bruger", + "currentlyPlaying": "Afspiller i øjeblikket" + } + }, + "errors": { + "general": { + "title": "Kunne ikke indlæse indholdet", + "text": "Det er ikke muligt at hente oplysninger fra serveren. Se venligst logfilerne for at få flere oplysninger" + } + } + } +} \ No newline at end of file diff --git a/public/locales/da/modules/rss.json b/public/locales/da/modules/rss.json new file mode 100644 index 000000000..010afb4c9 --- /dev/null +++ b/public/locales/da/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "RSS Widget", + "description": "Griber elementerne fra et RSS-feed og viser dem. Anvendes normalt til online-nyheder", + "settings": { + "title": "Indstillinger for RSS-widget", + "rssFeedUrl": { + "label": "RSS-feed url" + } + } + }, + "card": { + "errors": { + "general": { + "title": "Det er ikke muligt at hente RSS-feed", + "text": "Der var et problem med at nå ud til RSS-feedet. Sørg for, at du'har konfigureret feedet korrekt og bruger en gyldig RSS-url, der passer til den officielle standardspecifikation. Når du har opdateret feed'et, skal du muligvis gemme dit dashboard og opdatere siden." + } + } + } +} \ No newline at end of file diff --git a/public/locales/da/modules/video-stream.json b/public/locales/da/modules/video-stream.json new file mode 100644 index 000000000..7319cf36d --- /dev/null +++ b/public/locales/da/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Video Stream", + "description": "Indlejr en video stream eller video fra et kamera eller et website", + "settings": { + "title": "Indstillinger for video stream widget", + "FeedUrl": { + "label": "Feed url" + }, + "autoPlay": { + "label": "Automatisk afspilning" + }, + "muted": { + "label": "Slå lyden fra" + }, + "controls": { + "label": "Video afspilnings kontrol" + } + } + }, + "errors": { + "invalidStream": "Ugyldig stream" + } +} \ No newline at end of file diff --git a/public/locales/de/layout/modals/about.json b/public/locales/de/layout/modals/about.json index 161fa3382..3c9ef88c0 100644 --- a/public/locales/de/layout/modals/about.json +++ b/public/locales/de/layout/modals/about.json @@ -8,6 +8,7 @@ "version": "Version", "nodeEnvironment": "Node-Umgebung", "i18n": "Geladene I18n Übersetzungs Namensräume", - "locales": "Konfigurierte I18n Sprachumgebungen" + "locales": "Konfigurierte I18n Sprachumgebungen", + "experimental_disableEditMode": "EXPERIMENTAL: Bearbeitungsmodus deaktivieren" } } \ No newline at end of file diff --git a/public/locales/de/layout/modals/add-app.json b/public/locales/de/layout/modals/add-app.json index 758e777d7..cbb0cad05 100644 --- a/public/locales/de/layout/modals/add-app.json +++ b/public/locales/de/layout/modals/add-app.json @@ -29,7 +29,7 @@ "network": { "statusChecker": { "label": "Statusprüfer", - "description": "Prüft, ob Ihre Anwendung online und mittels einer einfachen HTTP(S)-Anfrage erreichbar ist." + "description": "Prüft, ob Ihre Anwendung mittels einer einfachen HTTP(S)-Anfrage erreichbar ist." }, "statusCodes": { "label": "HTTP Statuscodes", @@ -39,7 +39,15 @@ "appearance": { "icon": { "label": "App Symbol", - "description": "Das Symbol, das auf dem Dashboard angezeigt werden soll." + "description": "Wählen Sie ein Symbol, das auf Ihrem Dashboard angezeigt werden soll. Wählen Sie aus {{suggestionsCount}} Icons oder geben Sie Ihre eigene URL ein", + "autocomplete": { + "title": "Die Suche ergab keine Treffer", + "text": "Versuchen Sie, einen spezifischeren Suchbegriff zu verwenden. Wenn Sie das gewünschte Symbol nicht finden können, fügen Sie die obige Bild-URL für ein benutzerdefiniertes Symbol ein" + }, + "noItems": { + "title": "Lade externe Icons", + "text": "Dies kann einige Sekunden dauern…" + } } }, "integration": { @@ -55,11 +63,11 @@ "explanationPublic": "Ein öffentliche Phrase wird immer an den Client gesendet und ist über die API zugänglich. Es sollte keine vertraulichen Werte wie Benutzernamen, Passwörter, Token, Zertifikate und ähnliches enthalten!" }, "secrets": { - "description": "Um eine Phrase zu aktualisieren, geben Sie einen Wert ein und klicken Sie auf Speichern. Um eine Phrase zu entfernen, klicken Sie auf die Schaltfläche Löschen.", + "description": "Um eine geheime Phrase zu aktualisieren, geben Sie einen Wert ein und klicken Sie auf Speichern. Um eine geheime Phrase zu entfernen, klicken Sie auf die Schaltfläche Löschen.", "warning": "Ihre Anmeldedaten dienen als Zugang für Homarr und sie sollten diese niemals an andere Personen weitergeben. Das Homarr-Team wird Sie niemals nach Ihren Zugangsdaten fragen. Stellen Sie sicher, dass sie ihre Zugangsdaten sicher aufbewahren und verwalten.", - "clear": "Phrase löschen", - "save": "Phrase speichern", - "update": "Phrase ändern" + "clear": "Geheime Phrase löschen", + "save": "Geheime Phrase speichern", + "update": "Geheime Phrase ändern" } }, "validation": { diff --git a/public/locales/de/modules/calendar.json b/public/locales/de/modules/calendar.json index 056f3e97c..69c63bccf 100644 --- a/public/locales/de/modules/calendar.json +++ b/public/locales/de/modules/calendar.json @@ -3,7 +3,7 @@ "name": "Kalender", "description": "Zeigt einen Kalender mit anstehenden Veröffentlichungen von unterstützten Widgets an.", "settings": { - "title": "Einstellungen für das Kalender Widget", + "title": "Kalender Widget Einstellungen", "useSonarrv4": { "label": "Sonarr v4 API verwenden" }, diff --git a/public/locales/de/modules/common-media-cards.json b/public/locales/de/modules/common-media-cards.json index 55312bb3f..49988d708 100644 --- a/public/locales/de/modules/common-media-cards.json +++ b/public/locales/de/modules/common-media-cards.json @@ -1,6 +1,6 @@ { "buttons": { - "play": "Abspielen", - "request": "Anfragen" + "play": "Wiedergabe", + "request": "Anfrage" } } \ No newline at end of file diff --git a/public/locales/de/modules/common.json b/public/locales/de/modules/common.json index c7014d161..24f082c2c 100644 --- a/public/locales/de/modules/common.json +++ b/public/locales/de/modules/common.json @@ -4,7 +4,7 @@ }, "errors": { "unmappedOptions": { - "text": "Ungenutzter Parameter in der Konfiguration erkannt
{{key}}. Homarr ist nicht in der Lage, diesen Parameter zu interpretieren und zu verwenden. Um ein unerwartetes Verhalten zu vermeiden, sichern Sie Ihre Konfiguration und korrigieren Sie sie." + "text": "Ungenutzter Parameter in der Konfiguration erkannt
{{key}}. Homarr ist nicht in der Lage, diesen Parameter zu interpretieren und zu verwenden. Um ein unerwartetes Verhalten zu vermeiden, sichern Sie Ihre Konfiguration und korrigieren Sie diese." } } } diff --git a/public/locales/de/modules/dashdot.json b/public/locales/de/modules/dashdot.json index 4a95cf060..2ade84d78 100644 --- a/public/locales/de/modules/dashdot.json +++ b/public/locales/de/modules/dashdot.json @@ -4,23 +4,77 @@ "description": "Zeigt die Graphen einer externen Dash.-Instanz innerhalb von Homarr an.", "settings": { "title": "Einstellungen für Dash. Widget", - "cpuMultiView": { - "label": "CPU Multi-Core View" - }, - "storageMultiView": { - "label": "Speicher Multi-Drive View" - }, - "useCompactView": { - "label": "Kompaktmodus verwenden" - }, - "graphs": { - "label": "Graphen" - }, "url": { "label": "Dash. URL" }, "usePercentages": { "label": "Prozentangaben anzeigen" + }, + "columns": { + "label": "Spalten anzeigen" + }, + "graphHeight": { + "label": "Höhe der Graphen" + }, + "graphsOrder": { + "label": "Graphen (Reihenfolge)", + "storage": { + "label": "Speicher", + "enabled": { + "label": "Im Widget anzeigen" + }, + "span": { + "label": "Spaltenbreite" + }, + "compactView": { + "label": "Als Text anzeigen (Kompakt)" + }, + "multiView": { + "label": "Als Multi-Laufwerk anzeigen" + } + }, + "network": { + "label": "Netzwerk", + "enabled": { + "label": "In Widget anzeigen" + }, + "span": { + "label": "Spaltenbreite" + }, + "compactView": { + "label": "Als Text anzeigen (Kompakt)" + } + }, + "cpu": { + "label": "CPU", + "enabled": { + "label": "In Widget anzeigen" + }, + "span": { + "label": "Spaltenbreite" + }, + "multiView": { + "label": "Als Multi-Core anzeigen" + } + }, + "ram": { + "label": "RAM", + "enabled": { + "label": "In Widget anzeigen" + }, + "span": { + "label": "Spaltenbreite" + } + }, + "gpu": { + "label": "GPU", + "enabled": { + "label": "In Widget anzeigen" + }, + "span": { + "label": "Spaltenbreite" + } + } } } }, @@ -28,7 +82,11 @@ "title": "Dash.", "errors": { "noService": "Kein Dash. Dienst gefunden. Bitte fügen Sie einen zu Ihrem Homarr Dashboard hinzu oder setzen Sie eine Dash. URL in den Moduloptionen", - "noInformation": "Es können keine Informationen vom Dash. abgerufen werden. - Verwenden Sie die neueste Version?" + "noInformation": "Es können keine Informationen vom Dash. abgerufen werden. - Verwenden Sie die neueste Version?", + "protocolDowngrade": { + "title": "Protokoll-Downgrade erkannt", + "text": "Das Protokoll zu Ihrer Dash.-Instanz wird herabgestuft. Dies ist ein Sicherheitsrisiko, da HTTP unverschlüsselt ist und Angreifer diese Verbindung missbrauchen könnten. Stellen Sie sicher, dass Dash. auch auf HTTPS läuft oder downgraden Sie Homarr auf HTTP (wird nicht empfohlen)." + } }, "graphs": { "storage": { @@ -46,7 +104,7 @@ "cpu": { "title": "CPU" }, - "memory": { + "ram": { "title": "RAM" }, "gpu": { diff --git a/public/locales/de/modules/date.json b/public/locales/de/modules/date.json index 63de4fdc0..2d760d910 100644 --- a/public/locales/de/modules/date.json +++ b/public/locales/de/modules/date.json @@ -1,9 +1,9 @@ { "descriptor": { "name": "Datum und Zeit", - "description": "Zeigt das aktuelle Datum und die Uhrzeit an", + "description": "Zeigt das aktuelle Datum und die Uhrzeit an.", "settings": { - "title": "Einstellungen für das Widget \"Datum und Uhrzeit", + "title": "\"Datum und Uhrzeit\" Widget Einstellungen", "display24HourFormat": { "label": "24-Stunden Format" } diff --git a/public/locales/de/modules/iframe.json b/public/locales/de/modules/iframe.json new file mode 100644 index 000000000..d03a3423f --- /dev/null +++ b/public/locales/de/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "iFrame", + "description": "Einbetten von Inhalten aus dem Internet. Einige Websites können den Zugriff einschränken.", + "settings": { + "title": "iFrame Einstellungen", + "embedUrl": { + "label": "URL einbetten" + }, + "allowFullScreen": { + "label": "Vollbildmodus zulassen" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "Geben Sie eine URL ein", + "text": "Stellen Sie sicher, dass Sie in der Konfiguration Ihres Widgets eine gültige Adresse eingegeben haben" + } + } + } +} \ No newline at end of file diff --git a/public/locales/de/modules/media-server.json b/public/locales/de/modules/media-server.json new file mode 100644 index 000000000..a3e104cd5 --- /dev/null +++ b/public/locales/de/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Medien Server", + "description": "Interagiere mit deinem Jellyfin oder Plex Media Server", + "settings": { + "title": "Einstellungen für das Medien Server Widget" + } + }, + "card": { + "table": { + "header": { + "session": "Sitzung", + "user": "Benutzer", + "currentlyPlaying": "Momentan läuft" + } + }, + "errors": { + "general": { + "title": "Inhalt kann nicht geladen werden", + "text": "Informationen vom Server konnten nicht abgerufen werden. Bitte überprüfen Sie die Logs für weitere Details" + } + } + } +} \ No newline at end of file diff --git a/public/locales/de/modules/rss.json b/public/locales/de/modules/rss.json new file mode 100644 index 000000000..3214e802d --- /dev/null +++ b/public/locales/de/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "RSS-Widget", + "description": "Nimmt die Einträge aus einem RSS-Feed und zeigt sie an. Wird üblicherweise für Online-Nachrichten verwendet", + "settings": { + "title": "Einstellungen für das RSS-Widget", + "rssFeedUrl": { + "label": "RSS-Feed URL" + } + } + }, + "card": { + "errors": { + "general": { + "title": "RSS-Feed konnte nicht abgerufen werden", + "text": "Es gab ein Problem beim Erreichen des RSS-Feeds. Vergewissern Sie sich, dass Sie den Feed richtig konfiguriert haben und eine gültige RSS-URL verwenden, die der offiziellen Standardspezifikation entspricht. Nachdem Sie den Feed aktualisiert haben, müssen Sie möglicherweise Ihr Dashboard speichern und die Seite aktualisieren." + } + } + } +} \ No newline at end of file diff --git a/public/locales/de/modules/torrents-status.json b/public/locales/de/modules/torrents-status.json index a327d4185..2c7888edc 100644 --- a/public/locales/de/modules/torrents-status.json +++ b/public/locales/de/modules/torrents-status.json @@ -18,7 +18,7 @@ "card": { "footer": { "error": "Fehler", - "lastUpdated": "Zuletzt aktualisiert {{time}} vor" + "lastUpdated": "Zuletzt aktualisiert vor {{time}}" }, "table": { "header": { @@ -63,7 +63,7 @@ "queuePosition": "Position in der Warteschlange - {{position}}", "progress": "Fortschritt - {{progress}}%", "totalSelectedSize": "Insgesamt - {{totalSize}}", - "state": "Staat - {{state}}", + "state": "Status - {{state}}", "ratio": "Verhältnis -", "completed": "Abgeschlossen" } diff --git a/public/locales/de/modules/video-stream.json b/public/locales/de/modules/video-stream.json new file mode 100644 index 000000000..c5157f1c2 --- /dev/null +++ b/public/locales/de/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Videostream", + "description": "Einbetten eines Videostreams oder eines Videos von einer Kamera oder einer Website", + "settings": { + "title": "Einstellungen für das Video Stream Widget", + "FeedUrl": { + "label": "Feed URL" + }, + "autoPlay": { + "label": "Automatisch abspielen" + }, + "muted": { + "label": "Audio stummschalten" + }, + "controls": { + "label": "Videoplayer Steuerung" + } + } + }, + "errors": { + "invalidStream": "Ungültiger Stream" + } +} \ No newline at end of file diff --git a/public/locales/de/modules/weather.json b/public/locales/de/modules/weather.json index 16a5d8039..e5c36d6a8 100644 --- a/public/locales/de/modules/weather.json +++ b/public/locales/de/modules/weather.json @@ -3,7 +3,7 @@ "name": "Wetter", "description": "Zeigt die aktuellen Wetterinformationen für einen bestimmten Ort an.", "settings": { - "title": "Einstellungen für das Wetter Widget", + "title": "Wetter Widget Einstellungen", "displayInFahrenheit": { "label": "In Fahrenheit anzeigen" }, diff --git a/public/locales/de/settings/general/config-changer.json b/public/locales/de/settings/general/config-changer.json index e5eebeb38..8c9405674 100644 --- a/public/locales/de/settings/general/config-changer.json +++ b/public/locales/de/settings/general/config-changer.json @@ -1,6 +1,6 @@ { "configSelect": { - "label": "Konfigurationslader", + "label": "Änderung der Konfiguration", "description": "{{configCount}} Konfigurationen sind verfügbar", "loadingNew": "Ihre Konfiguration wird geladen...", "pleaseWait": "Bitte warten Sie, bis Ihre neue Konfiguration geladen ist!" diff --git a/public/locales/el/layout/modals/about.json b/public/locales/el/layout/modals/about.json index ab9b915d1..aae1178db 100644 --- a/public/locales/el/layout/modals/about.json +++ b/public/locales/el/layout/modals/about.json @@ -8,6 +8,7 @@ "version": "Έκδοση", "nodeEnvironment": "", "i18n": "", - "locales": "" + "locales": "", + "experimental_disableEditMode": "" } } \ No newline at end of file diff --git a/public/locales/el/layout/modals/add-app.json b/public/locales/el/layout/modals/add-app.json index d5047b489..d959ac22e 100644 --- a/public/locales/el/layout/modals/add-app.json +++ b/public/locales/el/layout/modals/add-app.json @@ -39,7 +39,15 @@ "appearance": { "icon": { "label": "Εικονίδιο εφαρμογής", - "description": "Το εικονίδιο που θα εμφανίζεται στο ταμπλό." + "description": "", + "autocomplete": { + "title": "", + "text": "" + }, + "noItems": { + "title": "", + "text": "" + } } }, "integration": { diff --git a/public/locales/el/modules/dashdot.json b/public/locales/el/modules/dashdot.json index 0124ec1f1..3c235e9a9 100644 --- a/public/locales/el/modules/dashdot.json +++ b/public/locales/el/modules/dashdot.json @@ -4,23 +4,77 @@ "description": "Εμφανίζει τα γραφήματα μιας εξωτερικής Dash. μέσα στο Homarr.", "settings": { "title": "Ρυθμίσεις για το widget Dash", - "cpuMultiView": { - "label": "Προβολή πολλαπλών πυρήνων CPU" - }, - "storageMultiView": { - "label": "Προβολή πολλαπλών μονάδων αποθήκευσης" - }, - "useCompactView": { - "label": "Χρήση Συμπαγούς Προβολής" - }, - "graphs": { - "label": "Γραφήματα" - }, "url": { "label": "Dash. URL" }, "usePercentages": { "label": "" + }, + "columns": { + "label": "" + }, + "graphHeight": { + "label": "" + }, + "graphsOrder": { + "label": "", + "storage": { + "label": "Αποθηκευτικός χώρος", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "compactView": { + "label": "" + }, + "multiView": { + "label": "" + } + }, + "network": { + "label": "Δίκτυο", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "compactView": { + "label": "" + } + }, + "cpu": { + "label": "CPU", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "multiView": { + "label": "" + } + }, + "ram": { + "label": "", + "enabled": { + "label": "" + }, + "span": { + "label": "" + } + }, + "gpu": { + "label": "GPU", + "enabled": { + "label": "" + }, + "span": { + "label": "" + } + } } } }, @@ -28,7 +82,11 @@ "title": "Dash.", "errors": { "noService": "Δεν βρέθηκε υπηρεσία Dash. Παρακαλούμε προσθέστε μία στο ταμπλό Homarr ή ορίστε μια Dash. URL στις επιλογές της ενότητας", - "noInformation": "Δεν μπορεί να αποκτήσει πληροφορίες από το dash. - τρέχετε την τελευταία έκδοση;" + "noInformation": "Δεν μπορεί να αποκτήσει πληροφορίες από το dash. - τρέχετε την τελευταία έκδοση;", + "protocolDowngrade": { + "title": "", + "text": "" + } }, "graphs": { "storage": { @@ -46,7 +104,7 @@ "cpu": { "title": "CPU" }, - "memory": { + "ram": { "title": "Μνήμη RAM" }, "gpu": { diff --git a/public/locales/el/modules/iframe.json b/public/locales/el/modules/iframe.json new file mode 100644 index 000000000..18c90c392 --- /dev/null +++ b/public/locales/el/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "embedUrl": { + "label": "" + }, + "allowFullScreen": { + "label": "" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/el/modules/media-server.json b/public/locales/el/modules/media-server.json new file mode 100644 index 000000000..2be958199 --- /dev/null +++ b/public/locales/el/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "" + } + }, + "card": { + "table": { + "header": { + "session": "", + "user": "", + "currentlyPlaying": "" + } + }, + "errors": { + "general": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/el/modules/rss.json b/public/locales/el/modules/rss.json new file mode 100644 index 000000000..230d75cf5 --- /dev/null +++ b/public/locales/el/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "rssFeedUrl": { + "label": "" + } + } + }, + "card": { + "errors": { + "general": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/el/modules/video-stream.json b/public/locales/el/modules/video-stream.json new file mode 100644 index 000000000..539daa1c4 --- /dev/null +++ b/public/locales/el/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "FeedUrl": { + "label": "" + }, + "autoPlay": { + "label": "" + }, + "muted": { + "label": "" + }, + "controls": { + "label": "" + } + } + }, + "errors": { + "invalidStream": "" + } +} \ No newline at end of file diff --git a/public/locales/en/common.json b/public/locales/en/common.json index 1b78b10a3..4f2e4f0ff 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -9,13 +9,13 @@ "version": "Version", "changePosition": "Change position", "remove": "Remove", - "removeConfirm": "Are you sure that you want to remove {{item}} ?", + "removeConfirm": "Are you sure that you want to remove {{item}}?", "sections": { "settings": "Settings", "dangerZone": "Danger zone" }, "secrets": { - "apiKey": "Api key", + "apiKey": "API key", "username": "Username", "password": "Password" }, diff --git a/public/locales/en/layout/modals/about.json b/public/locales/en/layout/modals/about.json index 2263dc21f..aa99318db 100644 --- a/public/locales/en/layout/modals/about.json +++ b/public/locales/en/layout/modals/about.json @@ -8,6 +8,7 @@ "version": "Version", "nodeEnvironment": "Node environment", "i18n": "Loaded I18n translation namespaces", - "locales": "Configured I18n locales" + "locales": "Configured I18n locales", + "experimental_disableEditMode": "EXPERIMENTAL: Disable edit mode" } } \ No newline at end of file diff --git a/public/locales/en/layout/modals/add-app.json b/public/locales/en/layout/modals/add-app.json index d0343a93b..0ca231eb0 100644 --- a/public/locales/en/layout/modals/add-app.json +++ b/public/locales/en/layout/modals/add-app.json @@ -1,7 +1,7 @@ { "tabs": { "general": "General", - "behaviour": "Behaviour", + "behaviour": "Behavior", "network": "Network", "appearance": "Appearance", "integration": "Integration" @@ -39,7 +39,15 @@ "appearance": { "icon": { "label": "App Icon", - "description": "The icon that will be displayed on the dashboard." + "description": "Choose a an icon to be displayed on your dashboard. Choose from {{suggestionsCount}} icons or enter your own URL", + "autocomplete": { + "title": "No results found", + "text": "Try to use a more specific search term. If you can't find your desired icon, paste the image URL above for a custom icon" + }, + "noItems": { + "title": "Loading external icons", + "text": "This may take a few seconds" + } } }, "integration": { diff --git a/public/locales/en/layout/modals/change-position.json b/public/locales/en/layout/modals/change-position.json index 464a676de..b7a490d9d 100644 --- a/public/locales/en/layout/modals/change-position.json +++ b/public/locales/en/layout/modals/change-position.json @@ -1,8 +1,8 @@ { - "xPosition": "X axis position", + "xPosition": "X-axis position", "width": "Width", "height": "Height", - "yPosition": "Y axis position", + "yPosition": "Y-axis position", "zeroOrHigher": "0 or higher", "betweenXandY": "Between {{min}} and {{max}}" } \ No newline at end of file diff --git a/public/locales/en/layout/modals/icon-picker.json b/public/locales/en/layout/modals/icon-picker.json deleted file mode 100644 index 84f17ce54..000000000 --- a/public/locales/en/layout/modals/icon-picker.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "iconPicker": { - "textInputPlaceholder": "Search something...", - "searchLimitationTitle": "Limited to 30 results", - "searchLimitationMessage": "Search results were limited to 30 because there were too many matches" - } -} \ No newline at end of file diff --git a/public/locales/en/modules/common.json b/public/locales/en/modules/common.json index 18a748dcd..485d7e8fb 100644 --- a/public/locales/en/modules/common.json +++ b/public/locales/en/modules/common.json @@ -4,7 +4,7 @@ }, "errors": { "unmappedOptions": { - "text": "Un-used parameter in configuration detected
{{key}}. Homarr is unable to interpret and use this parameter. To avoid any unexpected behavior, back up your configuration and correct your configuration." + "text": "Unused parameter in configuration detected
{{key}}. Homarr is unable to interpret and use this parameter. To avoid any unexpected behavior, back up your configuration and correct your configuration." } } } diff --git a/public/locales/en/modules/dashdot.json b/public/locales/en/modules/dashdot.json index 31532659e..d0c21f74d 100644 --- a/public/locales/en/modules/dashdot.json +++ b/public/locales/en/modules/dashdot.json @@ -1,26 +1,80 @@ { "descriptor": { "name": "Dash.", - "description": "Displays the graphs of an external Dash. instance inside of Homarr.", + "description": "Displays the graphs of an external Dash. Instance inside Homarr.", "settings": { "title": "Settings for Dash. widget", - "cpuMultiView": { - "label": "CPU Multi-Core View" - }, - "storageMultiView": { - "label": "Storage Multi-Drive View" - }, - "useCompactView": { - "label": "Use Compact View" - }, - "graphs": { - "label": "Graphs" - }, "url": { "label": "Dash. URL" }, "usePercentages": { "label": "Display percentages" + }, + "columns": { + "label": "Display columns" + }, + "graphHeight": { + "label": "Height of graphs" + }, + "graphsOrder": { + "label": "Graphs (Order)", + "storage": { + "label": "Storage", + "enabled": { + "label": "Show in widget" + }, + "span": { + "label": "Column span" + }, + "compactView": { + "label": "Show as text (compact)" + }, + "multiView": { + "label": "Show as multi-drive-view" + } + }, + "network": { + "label": "Network", + "enabled": { + "label": "Show in widget" + }, + "span": { + "label": "Column span" + }, + "compactView": { + "label": "Show as text (compact)" + } + }, + "cpu": { + "label": "CPU", + "enabled": { + "label": "Show in widget" + }, + "span": { + "label": "Column span" + }, + "multiView": { + "label": "Show as multi-core-view" + } + }, + "ram": { + "label": "RAM", + "enabled": { + "label": "Show in widget" + }, + "span": { + "label": "Column span" + } + }, + "gpu": { + "label": "GPU", + "enabled": { + "label": "Show in widget" + }, + "span": { + "label": "Column span" + } + } } } }, @@ -31,7 +85,7 @@ "noInformation": "Cannot acquire information from dash. - are you running the latest version?", "protocolDowngrade": { "title": "Detected protocol downgrade", - "text": "The protocol to your Dash. instance is being downgraded. This is security risk, since HTTP is unencrypted and attackers could abuse this connection. Make sure that Dash. is running on HTTPS too or downgrade Homarr to HTTP (not recommended)." + "text": "The connection to your Dash. instance is using HTTP. This is a security risk, because HTTP is unencrypted and attackers could abuse this connection. Make sure that Dash. is using HTTPS, or downgrade Homarr to HTTP (not recommended)." } }, "graphs": { @@ -50,7 +104,7 @@ "cpu": { "title": "CPU" }, - "memory": { + "ram": { "title": "RAM" }, "gpu": { diff --git a/public/locales/en/modules/docker.json b/public/locales/en/modules/docker.json index 436a78eeb..5b7c7ee0e 100644 --- a/public/locales/en/modules/docker.json +++ b/public/locales/en/modules/docker.json @@ -26,7 +26,7 @@ "actionBar": { "addService": { "title": "Add app", - "message": "Add app Homarr" + "message": "Add app to Homarr" }, "restart": { "title": "Restart" diff --git a/public/locales/en/modules/iframe.json b/public/locales/en/modules/iframe.json new file mode 100644 index 000000000..9cd27d2a3 --- /dev/null +++ b/public/locales/en/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "iFrame", + "description": "Embed any content from the internet. Some websites may restrict access.", + "settings": { + "title": "iFrame settings", + "embedUrl": { + "label": "Embed URL" + }, + "allowFullScreen": { + "label": "Allow full screen" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "Enter an URL", + "text": "Ensure that you've entered a valid address in the configuration of your widget" + } + } + } +} \ No newline at end of file diff --git a/public/locales/en/modules/media-server.json b/public/locales/en/modules/media-server.json new file mode 100644 index 000000000..1b93eb4c2 --- /dev/null +++ b/public/locales/en/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Media Server", + "description": "Interact with your Jellyfin or Plex media server", + "settings": { + "title": "Settings for media server widget" + } + }, + "card": { + "table": { + "header": { + "session": "Session", + "user": "User", + "currentlyPlaying": "Currently playing" + } + }, + "errors": { + "general": { + "title": "Unable to load content", + "text": "Unable to retrieve information from the server. Please check the logs for more details" + } + } + } +} \ No newline at end of file diff --git a/public/locales/en/modules/ping.json b/public/locales/en/modules/ping.json index 50d78f53a..3c128cba2 100644 --- a/public/locales/en/modules/ping.json +++ b/public/locales/en/modules/ping.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "Ping", - "description": "Displays a status indicator depeding on the HTTP response code of a given URL." + "description": "Displays a status indicator depending on the HTTP response code of a given URL." }, "states": { "online": "Online {{response}}", diff --git a/public/locales/en/modules/rss.json b/public/locales/en/modules/rss.json new file mode 100644 index 000000000..df52af4af --- /dev/null +++ b/public/locales/en/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "RSS Widget", + "description": "Grabs the items from a RSS feed and displays them. Commonly used for online news", + "settings": { + "title": "Settings for RSS widget", + "rssFeedUrl": { + "label": "RSS feed url" + } + } + }, + "card": { + "errors": { + "general": { + "title": "Unable to retrieve RSS feed", + "text": "There was a problem reaching out the RSS feed. Make sure that you have correctly configured the RSS feed using a valid URL. URLs should match the official specification. After updating the feed, you may need to refresh the dashboard." + } + } + } +} \ No newline at end of file diff --git a/public/locales/en/modules/torrents-status.json b/public/locales/en/modules/torrents-status.json index ac5fced4a..e359ddaea 100644 --- a/public/locales/en/modules/torrents-status.json +++ b/public/locales/en/modules/torrents-status.json @@ -50,7 +50,7 @@ "text": "Add a supported Torrent client to view your current downloads" }, "generic": { - "title": "An unexpected error occured", + "title": "An unexpected error occurred", "text": "Homarr was unable to communicate with your Torrent clients. Please check your configuration" } }, diff --git a/public/locales/en/modules/video-stream.json b/public/locales/en/modules/video-stream.json new file mode 100644 index 000000000..cb502afa9 --- /dev/null +++ b/public/locales/en/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Video Stream", + "description": "Embed a video stream or video from a camera or a website", + "settings": { + "title": "Settings for video stream widget", + "FeedUrl": { + "label": "Feed URL" + }, + "autoPlay": { + "label": "Autoplay" + }, + "muted": { + "label": "Muted audio" + }, + "controls": { + "label": "Video player controls" + } + } + }, + "errors": { + "invalidStream": "Invalid stream" + } +} \ No newline at end of file diff --git a/public/locales/en/settings/customization/general.json b/public/locales/en/settings/customization/general.json index 0215ba5e8..24610a4bb 100644 --- a/public/locales/en/settings/customization/general.json +++ b/public/locales/en/settings/customization/general.json @@ -14,8 +14,8 @@ "description": "Adjust titles, logo and PWA" }, "appereance": { - "name": "Appereance", - "description": "Customize the background, colors and apps appereance" + "name": "Appearance", + "description": "Customize the background, colors and apps appearance" } } } \ No newline at end of file diff --git a/public/locales/en/settings/customization/page-appearance.json b/public/locales/en/settings/customization/page-appearance.json index 92c9dc632..6f2f9f204 100644 --- a/public/locales/en/settings/customization/page-appearance.json +++ b/public/locales/en/settings/customization/page-appearance.json @@ -5,22 +5,22 @@ }, "metaTitle": { "label": "Meta Title", - "description": "The title, that is being displayed as your tab name" + "description": "The title displayed in your browser tab" }, "logo": { "label": "Logo", - "description": "The dashboard logo at the top left" + "description": "The logo displayed at the top left" }, "favicon": { "label": "Favicon", - "description": "The icon, that is being used in front of your tab name" + "description": "The icon displayed in your browser tab" }, "background": { "label": "Background" }, "customCSS": { "label": "Custom CSS", - "description": "Customize all elements on your dashboard, only recommended for experienced users", + "description": "Further, customize your dashboard using CSS, only recommended for experienced users", "placeholder": "Custom CSS will be applied last", "applying": "Applying CSS..." }, diff --git a/public/locales/en/settings/general/config-changer.json b/public/locales/en/settings/general/config-changer.json index 82e0a8374..09a35a25e 100644 --- a/public/locales/en/settings/general/config-changer.json +++ b/public/locales/en/settings/general/config-changer.json @@ -36,8 +36,8 @@ }, "confirmDeletion": { "title": "Confirm deletion of your config", - "warningText": "You're about to delete '{{configName}}'", - "text": "Please note, that the deletion is not invertible and your data will be lost permanently. After clicking this button, the file will be permanently deleted from your disk. Make sure to create an adequate backup of your configuration.", + "warningText": "You are about to delete '{{configName}}'", + "text": "Please note that the deletion is not revertible, and your data will be lost permanently. After clicking this button, the file will be permanently deleted from your disk. Make sure to create an adequate backup of your configuration.", "buttons": { "confirm": "Yes, delete '{{configName}}'" } @@ -57,7 +57,7 @@ "message": "Config delete failed" }, "deleteFailedDefaultConfig": { - "title": "Default config can't be deleted", + "title": "The default config can't be deleted", "message": "Configuration was not deleted from the file system" } } diff --git a/public/locales/en/settings/general/search-engine.json b/public/locales/en/settings/general/search-engine.json index 86fe8b862..a7a40fc83 100644 --- a/public/locales/en/settings/general/search-engine.json +++ b/public/locales/en/settings/general/search-engine.json @@ -2,7 +2,7 @@ "title": "Search engine", "configurationName": "Search engine configuration", "tips": { - "generalTip": "There are multiple prefixes you can use! Adding these infront of your query will filter the results. !s (Web), !t (Torrents), !y (YouTube), and !m (Media).", + "generalTip": "There are multiple prefixes you can use! Adding these in front of your query will filter the results. !s (Web), !t (Torrents), !y (YouTube), and !m (Media).", "placeholderTip": "%s can be used as a placeholder for the query." }, "customEngine": { diff --git a/public/locales/es/layout/modals/about.json b/public/locales/es/layout/modals/about.json index 41417293b..b7dc308ef 100644 --- a/public/locales/es/layout/modals/about.json +++ b/public/locales/es/layout/modals/about.json @@ -8,6 +8,7 @@ "version": "Versión", "nodeEnvironment": "Entorno del nodo", "i18n": "I18n translation namespaces cargadas", - "locales": "I18n locales configurados" + "locales": "I18n locales configurados", + "experimental_disableEditMode": "EXPERIMENTAL: Desactivar modo edición" } } \ No newline at end of file diff --git a/public/locales/es/layout/modals/add-app.json b/public/locales/es/layout/modals/add-app.json index b35dcf4e5..3db9ff890 100644 --- a/public/locales/es/layout/modals/add-app.json +++ b/public/locales/es/layout/modals/add-app.json @@ -39,7 +39,15 @@ "appearance": { "icon": { "label": "Icono App", - "description": "Icono que se verá en el dashboard." + "description": "Elige un icono para mostrarse en tu dashboard. Elige entre {{suggestionsCount}} iconos o introduce tu propia URL", + "autocomplete": { + "title": "Ningún resultado encontrado", + "text": "Intenta usar un término de búsqueda más específico. Si no puedes encontrar tu icono deseado, pega la URL de la imagen encima para establecer un icono personalizado" + }, + "noItems": { + "title": "Cargando iconos externos", + "text": "Esto puede tomar unos segundos" + } } }, "integration": { diff --git a/public/locales/es/modules/dashdot.json b/public/locales/es/modules/dashdot.json index 67d24a73c..ee2cd2bb0 100644 --- a/public/locales/es/modules/dashdot.json +++ b/public/locales/es/modules/dashdot.json @@ -4,23 +4,77 @@ "description": "Muestra los gráficos de una instancia de Dash. externa, dentro de Homarr.", "settings": { "title": "Ajustes para el widget Dash.", - "cpuMultiView": { - "label": "Vista CPU Multinúcleo" - }, - "storageMultiView": { - "label": "Vista Almacenamiento Multidisco" - }, - "useCompactView": { - "label": "Usar vista Compacta" - }, - "graphs": { - "label": "Gráficos" - }, "url": { "label": "Dash. URL" }, "usePercentages": { "label": "Mostrar porcentajes" + }, + "columns": { + "label": "Mostrar columnas" + }, + "graphHeight": { + "label": "Altura de gráficos" + }, + "graphsOrder": { + "label": "Gráficos (Órden)", + "storage": { + "label": "Almacenamiento", + "enabled": { + "label": "Mostrar en widget" + }, + "span": { + "label": "Espacio de columna (span)" + }, + "compactView": { + "label": "Mostrar como texto (compacto)" + }, + "multiView": { + "label": "Mostrar como vistas de varias unidades" + } + }, + "network": { + "label": "Red", + "enabled": { + "label": "Mostrar en widget" + }, + "span": { + "label": "Espacio de columna (span)" + }, + "compactView": { + "label": "Mostrar como texto (compacto)" + } + }, + "cpu": { + "label": "CPU", + "enabled": { + "label": "Mostrar en widget" + }, + "span": { + "label": "Espacio de columna (span)" + }, + "multiView": { + "label": "Mostrar como vistas multi-core" + } + }, + "ram": { + "label": "RAM", + "enabled": { + "label": "Mostrar en widget" + }, + "span": { + "label": "Espacio de columna (span)" + } + }, + "gpu": { + "label": "GPU", + "enabled": { + "label": "Mostrar en widget" + }, + "span": { + "label": "Espacio de columna (span)" + } + } } } }, @@ -28,7 +82,11 @@ "title": "Dash.", "errors": { "noService": "No se ha encontrado el servicio Dash. Por favor, añade uno al Panel de Control de Homarr o indica una URL de Dash. en las opciones del módulo", - "noInformation": "No se puede obtener información de Dash. - ¿estás utilizando la última versión?" + "noInformation": "No se puede obtener información de Dash. - ¿estás utilizando la última versión?", + "protocolDowngrade": { + "title": "Degradación de protocolo detectada", + "text": "El protocolo de tu instancia Dash. está siendo degradado. Esto es un riesgo de seguridad, debido a que HTTP no está cifrado, y los atacantes pueden abusar de esta conexión. Asegúrate de que Dash. esté ejecutándo en HTTPS también, o degrada Homarr a HTTP (no recomendado)." + } }, "graphs": { "storage": { @@ -46,7 +104,7 @@ "cpu": { "title": "CPU" }, - "memory": { + "ram": { "title": "RAM" }, "gpu": { diff --git a/public/locales/es/modules/iframe.json b/public/locales/es/modules/iframe.json new file mode 100644 index 000000000..e864015ae --- /dev/null +++ b/public/locales/es/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "IFrame", + "description": "Incrustar cualquier contenido de Internet. Algunos sitios web pueden restringir el acceso.", + "settings": { + "title": "Ajustes de IFrame", + "embedUrl": { + "label": "URL incrustada" + }, + "allowFullScreen": { + "label": "Permitir pantalla completa" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "Introducir una URL", + "text": "Asegúrate de que has introducido una dirección válida en la configuración del widget" + } + } + } +} \ No newline at end of file diff --git a/public/locales/es/modules/media-server.json b/public/locales/es/modules/media-server.json new file mode 100644 index 000000000..a75074660 --- /dev/null +++ b/public/locales/es/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Servidor Multimedia", + "description": "Interacciona con tu servidor Jellyfin o Plex", + "settings": { + "title": "Ajustes para el widget del servidor multimedia" + } + }, + "card": { + "table": { + "header": { + "session": "Sesión", + "user": "Usuario", + "currentlyPlaying": "Reproducción en curso" + } + }, + "errors": { + "general": { + "title": "Imposible cargar el contenido", + "text": "Imposible recuperar la información del servidor. Consulta los registros para obtener más detalles" + } + } + } +} \ No newline at end of file diff --git a/public/locales/es/modules/rss.json b/public/locales/es/modules/rss.json new file mode 100644 index 000000000..190f19072 --- /dev/null +++ b/public/locales/es/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "Widget RSS", + "description": "Toma los elementos de una fuente RSS y los muestra. Comúnmente utilizado para noticias en línea", + "settings": { + "title": "Ajustes para el widget RSS", + "rssFeedUrl": { + "label": "url de la fuente RSS" + } + } + }, + "card": { + "errors": { + "general": { + "title": "Imposible recuperar la fuente RSS", + "text": "Hubo un problema al comunicarse con la fuente RSS. Asegúrate de haber configurado el feed correctamente y utiliza una URL de RSS válida que coincida con la especificación estándar oficial. Después de actualizar el feed, es posible que debas guardar tu dashboard y actualizar la página." + } + } + } +} \ No newline at end of file diff --git a/public/locales/es/modules/video-stream.json b/public/locales/es/modules/video-stream.json new file mode 100644 index 000000000..13adf6ab9 --- /dev/null +++ b/public/locales/es/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Video en directo", + "description": "Incrustar una transmisión de video o un video de una cámara o un sitio web", + "settings": { + "title": "Ajustes del widget de transmisión de video", + "FeedUrl": { + "label": "Feed url" + }, + "autoPlay": { + "label": "Auto-reproducción" + }, + "muted": { + "label": "Audio silenciado" + }, + "controls": { + "label": "Controles del reproductor de video" + } + } + }, + "errors": { + "invalidStream": "Transmisión no válida" + } +} \ No newline at end of file diff --git a/public/locales/es/settings/customization/general.json b/public/locales/es/settings/customization/general.json index e35dc4588..40c675e83 100644 --- a/public/locales/es/settings/customization/general.json +++ b/public/locales/es/settings/customization/general.json @@ -6,7 +6,7 @@ "description": "Activar y desactivar elementos de tu cabecera y tarjetas del dashboard" }, "gridstack": { - "name": "", + "name": "Gridstack", "description": "Personalizar el comportamiento y columnas del área de tu dashboard" }, "pageMetadata": { diff --git a/public/locales/fr/layout/modals/about.json b/public/locales/fr/layout/modals/about.json index 7a8fdbe0e..768c723d4 100644 --- a/public/locales/fr/layout/modals/about.json +++ b/public/locales/fr/layout/modals/about.json @@ -3,11 +3,12 @@ "contact": "Vous avez des problèmes ou des questions ? Dites-le-nous !", "addToDashboard": "Ajouter au tableau de bord", "metrics": { - "configurationSchemaVersion": "", + "configurationSchemaVersion": "Version de schéma de configuration", "configurationsCount": "Configurations disponibles", "version": "Version", - "nodeEnvironment": "", - "i18n": "", - "locales": "" + "nodeEnvironment": "Environnement Node", + "i18n": "Traductions I18n chargées", + "locales": "Locales I18n configurées", + "experimental_disableEditMode": "EXPÉRIMENTAL : désactiver le mode édition" } } \ No newline at end of file diff --git a/public/locales/fr/layout/modals/add-app.json b/public/locales/fr/layout/modals/add-app.json index 7be708ecd..a79f70f53 100644 --- a/public/locales/fr/layout/modals/add-app.json +++ b/public/locales/fr/layout/modals/add-app.json @@ -39,7 +39,15 @@ "appearance": { "icon": { "label": "Icône de l’app", - "description": "L'icône qui sera affichée sur le tableau de bord." + "description": "", + "autocomplete": { + "title": "", + "text": "" + }, + "noItems": { + "title": "", + "text": "" + } } }, "integration": { diff --git a/public/locales/fr/modules/dashdot.json b/public/locales/fr/modules/dashdot.json index 1ff833147..84d05bff0 100644 --- a/public/locales/fr/modules/dashdot.json +++ b/public/locales/fr/modules/dashdot.json @@ -4,23 +4,77 @@ "description": "Affiche les graphiques d'une instance externe de Dash. dans Homarr.", "settings": { "title": "Paramètres du widget Dash", - "cpuMultiView": { - "label": "Vue du CPU multi-cœur" - }, - "storageMultiView": { - "label": "Vue du stockage multidisque" - }, - "useCompactView": { - "label": "Utiliser la vue compacte" - }, - "graphs": { - "label": "Graphiques" - }, "url": { "label": "URL Dash." }, "usePercentages": { "label": "Afficher les pourcentages" + }, + "columns": { + "label": "Affichage des colonnes" + }, + "graphHeight": { + "label": "" + }, + "graphsOrder": { + "label": "", + "storage": { + "label": "Stockage", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "compactView": { + "label": "" + }, + "multiView": { + "label": "" + } + }, + "network": { + "label": "Réseau", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "compactView": { + "label": "" + } + }, + "cpu": { + "label": "CPU", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "multiView": { + "label": "" + } + }, + "ram": { + "label": "RAM", + "enabled": { + "label": "" + }, + "span": { + "label": "" + } + }, + "gpu": { + "label": "GPU", + "enabled": { + "label": "" + }, + "span": { + "label": "" + } + } } } }, @@ -28,7 +82,11 @@ "title": "Dash.", "errors": { "noService": "Aucun service Dash. trouvé. Veuillez en ajouter un à votre tableau de bord Homarr ou définir l'URL du service Dash. dans les options du module", - "noInformation": "Impossible d'acquérir des informations de Dash. - Utilisez-vous la dernière version ?" + "noInformation": "Impossible d'acquérir des informations de Dash. - Utilisez-vous la dernière version ?", + "protocolDowngrade": { + "title": "Protocole rétrograde détecté (HTTP)", + "text": "Le protocole vers votre instance de Dash. n'est pas en mode sécurisé. Ceci est considéré comme étant un risque de sécurité, puisque HTTP ne supporte pas l'encryption, et des attaquants pourraient en abuser. Assurez-vous que Dash. fonctionne en mode HTTPS, ou retirez le mode HTTPS de Homarr (pas recommandé)." + } }, "graphs": { "storage": { @@ -46,7 +104,7 @@ "cpu": { "title": "CPU" }, - "memory": { + "ram": { "title": "RAM" }, "gpu": { diff --git a/public/locales/fr/modules/iframe.json b/public/locales/fr/modules/iframe.json new file mode 100644 index 000000000..8c861e144 --- /dev/null +++ b/public/locales/fr/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "embedUrl": { + "label": "" + }, + "allowFullScreen": { + "label": "Permettre le plein écran" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "Saisir une URL", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/fr/modules/media-server.json b/public/locales/fr/modules/media-server.json new file mode 100644 index 000000000..667593838 --- /dev/null +++ b/public/locales/fr/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Serveur multimédia", + "description": "Interagissez avec votre server multimédia Jellyfin ou Plex", + "settings": { + "title": "" + } + }, + "card": { + "table": { + "header": { + "session": "Session", + "user": "Utilisateur", + "currentlyPlaying": "" + } + }, + "errors": { + "general": { + "title": "Impossible de charger le contenu", + "text": "Impossible de récupérer les informations du serveur. Veuillez vérifier les journaux pour davantage de détails" + } + } + } +} \ No newline at end of file diff --git a/public/locales/fr/modules/rss.json b/public/locales/fr/modules/rss.json new file mode 100644 index 000000000..438b3cb3e --- /dev/null +++ b/public/locales/fr/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "Widget RSS", + "description": "", + "settings": { + "title": "", + "rssFeedUrl": { + "label": "URL du flux RSS" + } + } + }, + "card": { + "errors": { + "general": { + "title": "Impossible de récupérer le flux RSS", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/fr/modules/video-stream.json b/public/locales/fr/modules/video-stream.json new file mode 100644 index 000000000..6639c669d --- /dev/null +++ b/public/locales/fr/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "FeedUrl": { + "label": "" + }, + "autoPlay": { + "label": "" + }, + "muted": { + "label": "" + }, + "controls": { + "label": "" + } + } + }, + "errors": { + "invalidStream": "Flux invalide" + } +} \ No newline at end of file diff --git a/public/locales/fr/settings/common.json b/public/locales/fr/settings/common.json index 069646fb8..d87442cbb 100644 --- a/public/locales/fr/settings/common.json +++ b/public/locales/fr/settings/common.json @@ -10,7 +10,7 @@ }, "credits": { "madeWithLove": "Fait avec ❤️ par @", - "thirdPartyContent": "Voir le contenu tiers", + "thirdPartyContent": "Voir le contenu de tierce partie", "thirdPartyContentTable": { "dependencyName": "Dépendance", "dependencyVersion": "Version" @@ -20,9 +20,9 @@ "layout": { "preview": { "title": "Aperçu", - "subtitle": "Les changements seront sauvegarder automatiquement" + "subtitle": "Les changements seront sauvegardés automatiquement" }, - "divider": "Option de mise en page", + "divider": "Options de mise en page", "main": "Principal", "sidebar": "Barre latérale", "cannotturnoff": "Ne peut être désactivé", diff --git a/public/locales/fr/settings/customization/general.json b/public/locales/fr/settings/customization/general.json index 1b8be25e6..e35622f92 100644 --- a/public/locales/fr/settings/customization/general.json +++ b/public/locales/fr/settings/customization/general.json @@ -1,12 +1,12 @@ { - "text": "", + "text": "Les personnalisations vous permettent de configurer et d'ajuster votre expérience utilisateur dans Homarr.", "accordeon": { "layout": { - "name": "", + "name": "Mise en page", "description": "Activer et désactiver les éléments sur l'en-tête et le titre du tableau de bord" }, "gridstack": { - "name": "", + "name": "Grille", "description": "Personnaliser le comportement et les colonnes de la zone de votre tableau de bord" }, "pageMetadata": { diff --git a/public/locales/fr/settings/customization/gridstack.json b/public/locales/fr/settings/customization/gridstack.json index eb5909393..eee241074 100644 --- a/public/locales/fr/settings/customization/gridstack.json +++ b/public/locales/fr/settings/customization/gridstack.json @@ -1,6 +1,6 @@ { "columnsCount": { - "labelPreset": "", + "labelPreset": "Colonnes de taille {{size}}", "descriptionPreset": "Nombre de colonnes lorsque l'écran a une largeur inférieure à {{pixels}} pixels", "descriptionExceedsPreset": "Nombre de colonnes lorsque la taille de l'écran dépasse {{pixels}} pixels" }, diff --git a/public/locales/fr/settings/customization/page-appearance.json b/public/locales/fr/settings/customization/page-appearance.json index 8dfc947de..465cf0a01 100644 --- a/public/locales/fr/settings/customization/page-appearance.json +++ b/public/locales/fr/settings/customization/page-appearance.json @@ -16,13 +16,13 @@ "description": "L'icône qui est utilisé devant le nom de votre onglet" }, "background": { - "label": "Contexte" + "label": "Fond" }, "customCSS": { "label": "CSS personnalisé", "description": "Personnaliser tous les éléments du tableau de bord, recommandé seulement pour les utilisateurs expérimentés", "placeholder": "Le CSS personnalisé sera appliqué en dernier", - "applying": "Appliquation du CSS..." + "applying": "Application du code CSS..." }, "buttons": { "submit": "Soumettre" diff --git a/public/locales/he/layout/modals/about.json b/public/locales/he/layout/modals/about.json index 4caee7d5b..0695094f3 100644 --- a/public/locales/he/layout/modals/about.json +++ b/public/locales/he/layout/modals/about.json @@ -8,6 +8,7 @@ "version": "גרסה", "nodeEnvironment": "סביבת Node", "i18n": "מרחבי שמות של תרגום I18n טעונים", - "locales": "אזורי I18n מוגדרים" + "locales": "אזורי I18n מוגדרים", + "experimental_disableEditMode": "נסיוני: ביטול מצב עריכה" } } \ No newline at end of file diff --git a/public/locales/he/layout/modals/add-app.json b/public/locales/he/layout/modals/add-app.json index feae550bb..111f91a0b 100644 --- a/public/locales/he/layout/modals/add-app.json +++ b/public/locales/he/layout/modals/add-app.json @@ -39,7 +39,15 @@ "appearance": { "icon": { "label": "סמל אפליקציה", - "description": "הסמל שיוצג בלוח המחוונים." + "description": "בחר סמל שיוצג בלוח המחוונים שלך. ניתן לבחור סמלים מ- {{suggestionsCount}} או הזן כתובת אתר משלך", + "autocomplete": { + "title": "לא נמצאו תוצאות", + "text": "נא להשתמש במונח חיפוש ספציפי יותר. אם הסמל הרצוי לא נמצא ניתן להעתיק את כתובת האתר של התמונה למעלה עבור סמל מותאם אישית" + }, + "noItems": { + "title": "טוען אייקונים חיצוניים", + "text": "פעולה זו עשויה להימשך מספר שניות" + } } }, "integration": { diff --git a/public/locales/he/modules/dashdot.json b/public/locales/he/modules/dashdot.json index b4fffea61..b3060ef2c 100644 --- a/public/locales/he/modules/dashdot.json +++ b/public/locales/he/modules/dashdot.json @@ -4,23 +4,77 @@ "description": "מציג נתוני גרפים.", "settings": { "title": "הגדרות עבור וידג׳ט Dash.", - "cpuMultiView": { - "label": "תצוגת מעבד מרובת ליבות" - }, - "storageMultiView": { - "label": "תצוגת אחסון מרובת כוננים" - }, - "useCompactView": { - "label": "השתמש בתצוגה קומפקטית" - }, - "graphs": { - "label": "גרפים" - }, "url": { "label": "כתובת אתר Dash." }, "usePercentages": { "label": "הצג אחוזים" + }, + "columns": { + "label": "הצג עמודות" + }, + "graphHeight": { + "label": "גובה הגרפים" + }, + "graphsOrder": { + "label": "גרפים (הזמנה)", + "storage": { + "label": "אחסון", + "enabled": { + "label": "הצג בווידג'ט" + }, + "span": { + "label": "טווח עמודות" + }, + "compactView": { + "label": "הצג כטקסט (קומפקטי)" + }, + "multiView": { + "label": "הצג כתצוגת ריבוי כוננים" + } + }, + "network": { + "label": "רשת", + "enabled": { + "label": "הצג בווידג'ט" + }, + "span": { + "label": "טווח עמודות" + }, + "compactView": { + "label": "הצג כטקסט (קומפקטי)" + } + }, + "cpu": { + "label": "מעבד", + "enabled": { + "label": "הצג בווידג'ט" + }, + "span": { + "label": "טווח עמודות" + }, + "multiView": { + "label": "הצג כתצוגה מרובה ליבות" + } + }, + "ram": { + "label": "זיכרון פנימי", + "enabled": { + "label": "הצג בווידג'ט" + }, + "span": { + "label": "טווח עמודות" + } + }, + "gpu": { + "label": "מעבד גרפי", + "enabled": { + "label": "הצג בווידג'ט" + }, + "span": { + "label": "טווח עמודות" + } + } } } }, @@ -28,7 +82,11 @@ "title": "Dash.", "errors": { "noService": "לא נמצא שירות Dash. בבקשה הוסף ל- Homarr או הגדר כתובת באפשרויות המודול ", - "noInformation": "אין מידע מ- Dash. האם אתה משתמש בגירסה העדכנית" + "noInformation": "אין מידע מ- Dash. האם אתה משתמש בגירסה העדכנית", + "protocolDowngrade": { + "title": "זוהה שדרוג לאחור של פרוטוקול", + "text": "הפרוטוקול ל-Dash שלך. המופע נמצא בדירוג לאחור. זהו סיכון אבטחה, מכיוון ש-HTTP אינו מוצפן ותוקפים עלולים לעשות שימוש לרעה בחיבור זה. ודא ש-Dash. פועל גם ב-HTTPS או שדרוג לאחור של Homarr ל-HTTP (לא מומלץ)." + } }, "graphs": { "storage": { @@ -46,7 +104,7 @@ "cpu": { "title": "מעבד" }, - "memory": { + "ram": { "title": "זיכרון פנימי" }, "gpu": { diff --git a/public/locales/he/modules/iframe.json b/public/locales/he/modules/iframe.json new file mode 100644 index 000000000..edecc4ce8 --- /dev/null +++ b/public/locales/he/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "IFrame", + "description": "הטמע כל תוכן מהאינטרנט. חלק מהאתרים עשויים להגביל את הגישה.", + "settings": { + "title": "הגדרות IFrame", + "embedUrl": { + "label": "הטמע כתובת אתר" + }, + "allowFullScreen": { + "label": "הרשאה למסך מלא" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "הזן קישור", + "text": "ודא שהזנת כתובת חוקית בתצורת הווידג'ט שלך" + } + } + } +} \ No newline at end of file diff --git a/public/locales/he/modules/media-server.json b/public/locales/he/modules/media-server.json new file mode 100644 index 000000000..cac231494 --- /dev/null +++ b/public/locales/he/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "שרת מדיה", + "description": "אינטראקציה עם שרת המדיה של Jellyfin או Plex", + "settings": { + "title": "הגדרות עבור ווידג'ט של שרת מדיה" + } + }, + "card": { + "table": { + "header": { + "session": "מופעים", + "user": "משתמש", + "currentlyPlaying": "מנגן כרגע" + } + }, + "errors": { + "general": { + "title": "אין אפשרות לטעון תוכן", + "text": "לא ניתן לאחזר מידע מהשרת. אנא בדוק את היומנים לפרטים נוספים" + } + } + } +} \ No newline at end of file diff --git a/public/locales/he/modules/rss.json b/public/locales/he/modules/rss.json new file mode 100644 index 000000000..b1b9c9dad --- /dev/null +++ b/public/locales/he/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "וידג׳ט רסס", + "description": "תופס את הפריטים מעדכון רסס ומציג אותם. שימוש נפוץ לחדשות מקוונות", + "settings": { + "title": "הגדרות עבור וידג׳ט רסס", + "rssFeedUrl": { + "label": "כתובת אינטרנט להזנת רסס" + } + } + }, + "card": { + "errors": { + "general": { + "title": "לא ניתן לאחזר עדכוני רסס", + "text": "הייתה בעיה ביצירת קשר עם עדכון רסס. ודא שהגדרת בצורה נכונה והשתמש בכתובת אינטרנט חוקית של רסס, התואמת למפרט הסטנדרטי הרשמי. לאחר עדכון כתובת ההזנה, ייתכן שיהיה עליך לבצע שמירה ולרענן את הדף." + } + } + } +} \ No newline at end of file diff --git a/public/locales/he/modules/video-stream.json b/public/locales/he/modules/video-stream.json new file mode 100644 index 000000000..cadc51f45 --- /dev/null +++ b/public/locales/he/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "זרם וידאו", + "description": "הטמע זרם וידאו או וידאו ממצלמה או אתר אינטרנט", + "settings": { + "title": "הגדרות עבור ווידג'ט זרם וידאו", + "FeedUrl": { + "label": "כתובת אתר הזנה" + }, + "autoPlay": { + "label": "הפעלה אוטומטית" + }, + "muted": { + "label": "השתק קול" + }, + "controls": { + "label": "פקדי נגן וידאו" + } + } + }, + "errors": { + "invalidStream": "זרם לא חוקי" + } +} \ No newline at end of file diff --git a/public/locales/it/layout/modals/about.json b/public/locales/it/layout/modals/about.json index 5d794e901..5dd63da61 100644 --- a/public/locales/it/layout/modals/about.json +++ b/public/locales/it/layout/modals/about.json @@ -8,6 +8,7 @@ "version": "Versione", "nodeEnvironment": "Ambiente Node", "i18n": "Translation namespaces I18n caricati", - "locales": "I18n locales configurati" + "locales": "I18n locales configurati", + "experimental_disableEditMode": "" } } \ No newline at end of file diff --git a/public/locales/it/layout/modals/add-app.json b/public/locales/it/layout/modals/add-app.json index 924813a35..7f4ea37a6 100644 --- a/public/locales/it/layout/modals/add-app.json +++ b/public/locales/it/layout/modals/add-app.json @@ -39,7 +39,15 @@ "appearance": { "icon": { "label": "Icona App", - "description": "L'icona che verrà visualizzata sulla dashboard." + "description": "Scegli un'icona da visualizzare sulla tua dashboard. Scegli tra {{suggestionsCount}} icone o inserisci il tuo URL", + "autocomplete": { + "title": "Nessun risultato trovato", + "text": "Prova a usare un termine di ricerca più specifico. Se non riesci a trovare l'icona desiderata, incolla l'URL dell'immagine sopra per un'icona personalizzata" + }, + "noItems": { + "title": "Caricamento icone esterne", + "text": "Questa operazione potrebbe richiedere alcuni secondi" + } } }, "integration": { diff --git a/public/locales/it/modules/dashdot.json b/public/locales/it/modules/dashdot.json index 02c325dac..0bdba2d02 100644 --- a/public/locales/it/modules/dashdot.json +++ b/public/locales/it/modules/dashdot.json @@ -4,23 +4,77 @@ "description": "Visualizza i grafici di un'istanza Dash. esterna all'interno di Homarr.", "settings": { "title": "Impostazioni del widget Dash.", - "cpuMultiView": { - "label": "Vista CPU Multi-Core" - }, - "storageMultiView": { - "label": "Visualizzazione archiviazione Multi-Drive" - }, - "useCompactView": { - "label": "Visualizzazione compatta" - }, - "graphs": { - "label": "Grafici" - }, "url": { "label": "Dash. URL" }, "usePercentages": { "label": "Visualizza percentuali" + }, + "columns": { + "label": "Visualizza colonne" + }, + "graphHeight": { + "label": "Altezza dei grafici" + }, + "graphsOrder": { + "label": "Grafici (Ordine)", + "storage": { + "label": "Spazio di archiviazione", + "enabled": { + "label": "Mostra nel widget" + }, + "span": { + "label": "Larghezza colonna" + }, + "compactView": { + "label": "Mostra come testo (compatto)" + }, + "multiView": { + "label": "Mostra come multi-drive-view" + } + }, + "network": { + "label": "Rete", + "enabled": { + "label": "Mostra nel widget" + }, + "span": { + "label": "Larghezza colonna" + }, + "compactView": { + "label": "Mostra come testo (compatto)" + } + }, + "cpu": { + "label": "CPU", + "enabled": { + "label": "Mostra nel widget" + }, + "span": { + "label": "Larghezza colonna" + }, + "multiView": { + "label": "Mostra come multi-core-view" + } + }, + "ram": { + "label": "RAM", + "enabled": { + "label": "Mostra nel widget" + }, + "span": { + "label": "Larghezza colonna" + } + }, + "gpu": { + "label": "GPU", + "enabled": { + "label": "Mostra nel widget" + }, + "span": { + "label": "Larghezza colonna" + } + } } } }, @@ -28,7 +82,11 @@ "title": "Dash.", "errors": { "noService": "Nessun servizio Dash. trovato. Aggiungine uno alla dashboard di Homarr o imposta un URL nelle impostazioni del modulo", - "noInformation": "Impossibile reperire informazioni da dash. - è in esecuzione l'ultima versione?" + "noInformation": "Impossibile reperire informazioni da dash. - è in esecuzione l'ultima versione?", + "protocolDowngrade": { + "title": "Rilevato downgrade del protocollo", + "text": "Il protocollo all'istanza Dash. è in fase di downgrade. Questo è un rischio per la sicurezza, poiché HTTP non è crittografato e gli aggressori potrebbero abusare di questa connessione. Assicurarsi che Dash. sia in esecuzione anche su HTTPS o fare il downgrade di Homarr su HTTP (non consigliato)." + } }, "graphs": { "storage": { @@ -46,7 +104,7 @@ "cpu": { "title": "CPU" }, - "memory": { + "ram": { "title": "RAM" }, "gpu": { diff --git a/public/locales/it/modules/iframe.json b/public/locales/it/modules/iframe.json new file mode 100644 index 000000000..2083273f6 --- /dev/null +++ b/public/locales/it/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "IFrame", + "description": "Incorpora qualsiasi contenuto da Internet. Alcuni siti web possono limitare l'accesso.", + "settings": { + "title": "Impostazioni IFrame", + "embedUrl": { + "label": "Incorpora URL" + }, + "allowFullScreen": { + "label": "Consenti schermo intero" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "Inserisci un URL", + "text": "Assicurarsi di aver inserito un indirizzo valido nella configurazione del widget" + } + } + } +} \ No newline at end of file diff --git a/public/locales/it/modules/media-server.json b/public/locales/it/modules/media-server.json new file mode 100644 index 000000000..319f128e4 --- /dev/null +++ b/public/locales/it/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Server multimediale", + "description": "Interagisci con il tuo server multimediale Jellyfin o Plex", + "settings": { + "title": "Impostazioni per il widget del server multimediale" + } + }, + "card": { + "table": { + "header": { + "session": "Sessione", + "user": "Utente", + "currentlyPlaying": "In riproduzione" + } + }, + "errors": { + "general": { + "title": "Impossibile caricare il contenuto", + "text": "Impossibile recuperare le informazioni dal server. Controllare i log per maggiori dettagli" + } + } + } +} \ No newline at end of file diff --git a/public/locales/it/modules/rss.json b/public/locales/it/modules/rss.json new file mode 100644 index 000000000..dd5023117 --- /dev/null +++ b/public/locales/it/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "Widget RSS", + "description": "Ottiene gli oggetti da un feed RSS e li visualizza. Utilizzati comunemente per le notizie online", + "settings": { + "title": "Impostazioni del widget RSS", + "rssFeedUrl": { + "label": "RSS feed url" + } + } + }, + "card": { + "errors": { + "general": { + "title": "Impossibile recuperare il feed RSS", + "text": "Si è verificato un problema nel raggiungere il feed RSS. Assicurarsi di aver configurato correttamente il feed e di utilizzare un url RSS valido, che corrisponda alle specifiche standard ufficiali. Dopo aver aggiornato il feed, potrebbe essere necessario salvare la dashboard e aggiornare la pagina." + } + } + } +} \ No newline at end of file diff --git a/public/locales/it/modules/video-stream.json b/public/locales/it/modules/video-stream.json new file mode 100644 index 000000000..9ec158a2f --- /dev/null +++ b/public/locales/it/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Flusso Video", + "description": "Incorpora un flusso video o un video da una videocamera o da un sito web", + "settings": { + "title": "Impostazioni per il widget flusso video", + "FeedUrl": { + "label": "Url del feed" + }, + "autoPlay": { + "label": "Auto play" + }, + "muted": { + "label": "Audio mutato" + }, + "controls": { + "label": "Controlli player video" + } + } + }, + "errors": { + "invalidStream": "Flusso non valido" + } +} \ No newline at end of file diff --git a/public/locales/ja/layout/modals/about.json b/public/locales/ja/layout/modals/about.json index d4d1a9787..8dd9f4ed9 100644 --- a/public/locales/ja/layout/modals/about.json +++ b/public/locales/ja/layout/modals/about.json @@ -8,6 +8,7 @@ "version": "バージョン", "nodeEnvironment": "", "i18n": "", - "locales": "" + "locales": "", + "experimental_disableEditMode": "" } } \ No newline at end of file diff --git a/public/locales/ja/layout/modals/add-app.json b/public/locales/ja/layout/modals/add-app.json index f1e2b69c7..a10926bd5 100644 --- a/public/locales/ja/layout/modals/add-app.json +++ b/public/locales/ja/layout/modals/add-app.json @@ -39,7 +39,15 @@ "appearance": { "icon": { "label": "アプリアイコン", - "description": "ダッシュボードに表示されるアイコンです。" + "description": "", + "autocomplete": { + "title": "", + "text": "" + }, + "noItems": { + "title": "", + "text": "" + } } }, "integration": { diff --git a/public/locales/ja/modules/dashdot.json b/public/locales/ja/modules/dashdot.json index b4221a29e..e826ea0f1 100644 --- a/public/locales/ja/modules/dashdot.json +++ b/public/locales/ja/modules/dashdot.json @@ -4,23 +4,77 @@ "description": "Homarr内部の外部Dash.インスタンスのグラフを表示します。", "settings": { "title": "Dash.ウィジェットの設定", - "cpuMultiView": { - "label": "CPUマルチコアビュー" - }, - "storageMultiView": { - "label": "ストレージマルチドライブビュー" - }, - "useCompactView": { - "label": "コンパクトビューを使用する" - }, - "graphs": { - "label": "グラフ" - }, "url": { "label": "ダッシュURL" }, "usePercentages": { "label": "" + }, + "columns": { + "label": "" + }, + "graphHeight": { + "label": "" + }, + "graphsOrder": { + "label": "", + "storage": { + "label": "ストレージ", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "compactView": { + "label": "" + }, + "multiView": { + "label": "" + } + }, + "network": { + "label": "ネットワーク", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "compactView": { + "label": "" + } + }, + "cpu": { + "label": "CPU", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "multiView": { + "label": "" + } + }, + "ram": { + "label": "", + "enabled": { + "label": "" + }, + "span": { + "label": "" + } + }, + "gpu": { + "label": "GPU", + "enabled": { + "label": "" + }, + "span": { + "label": "" + } + } } } }, @@ -28,7 +82,11 @@ "title": "ダッシュ", "errors": { "noService": "Dash.サービスが見当たりません。HOMARダッシュボードに追加するか、モジュールオプションでDash.サービスを設定してください。のURLをモジュールオプションで設定してください。", - "noInformation": "dashから情報を取得できません。- は最新版ですか?" + "noInformation": "dashから情報を取得できません。- は最新版ですか?", + "protocolDowngrade": { + "title": "", + "text": "" + } }, "graphs": { "storage": { @@ -46,7 +104,7 @@ "cpu": { "title": "CPU" }, - "memory": { + "ram": { "title": "ラム" }, "gpu": { diff --git a/public/locales/ja/modules/iframe.json b/public/locales/ja/modules/iframe.json new file mode 100644 index 000000000..18c90c392 --- /dev/null +++ b/public/locales/ja/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "embedUrl": { + "label": "" + }, + "allowFullScreen": { + "label": "" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ja/modules/media-server.json b/public/locales/ja/modules/media-server.json new file mode 100644 index 000000000..2be958199 --- /dev/null +++ b/public/locales/ja/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "" + } + }, + "card": { + "table": { + "header": { + "session": "", + "user": "", + "currentlyPlaying": "" + } + }, + "errors": { + "general": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ja/modules/rss.json b/public/locales/ja/modules/rss.json new file mode 100644 index 000000000..230d75cf5 --- /dev/null +++ b/public/locales/ja/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "rssFeedUrl": { + "label": "" + } + } + }, + "card": { + "errors": { + "general": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ja/modules/video-stream.json b/public/locales/ja/modules/video-stream.json new file mode 100644 index 000000000..539daa1c4 --- /dev/null +++ b/public/locales/ja/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "FeedUrl": { + "label": "" + }, + "autoPlay": { + "label": "" + }, + "muted": { + "label": "" + }, + "controls": { + "label": "" + } + } + }, + "errors": { + "invalidStream": "" + } +} \ No newline at end of file diff --git a/public/locales/ko/layout/modals/about.json b/public/locales/ko/layout/modals/about.json index bd458a81f..8b1597659 100644 --- a/public/locales/ko/layout/modals/about.json +++ b/public/locales/ko/layout/modals/about.json @@ -8,6 +8,7 @@ "version": "", "nodeEnvironment": "", "i18n": "", - "locales": "" + "locales": "", + "experimental_disableEditMode": "" } } \ No newline at end of file diff --git a/public/locales/ko/layout/modals/add-app.json b/public/locales/ko/layout/modals/add-app.json index fa07081e7..f3bcd173d 100644 --- a/public/locales/ko/layout/modals/add-app.json +++ b/public/locales/ko/layout/modals/add-app.json @@ -39,7 +39,15 @@ "appearance": { "icon": { "label": "", - "description": "" + "description": "", + "autocomplete": { + "title": "", + "text": "" + }, + "noItems": { + "title": "", + "text": "" + } } }, "integration": { diff --git a/public/locales/ko/modules/dashdot.json b/public/locales/ko/modules/dashdot.json index c14078538..20bfd9994 100644 --- a/public/locales/ko/modules/dashdot.json +++ b/public/locales/ko/modules/dashdot.json @@ -4,23 +4,77 @@ "description": "", "settings": { "title": "", - "cpuMultiView": { - "label": "CPU 멀티 코어 보기" - }, - "storageMultiView": { - "label": "저장소 모든 드라이브 보기" - }, - "useCompactView": { - "label": "작은 모듈 사용" - }, - "graphs": { - "label": "그래프" - }, "url": { "label": "Dash. 주소" }, "usePercentages": { "label": "" + }, + "columns": { + "label": "" + }, + "graphHeight": { + "label": "" + }, + "graphsOrder": { + "label": "", + "storage": { + "label": "저장소", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "compactView": { + "label": "" + }, + "multiView": { + "label": "" + } + }, + "network": { + "label": "네트워크", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "compactView": { + "label": "" + } + }, + "cpu": { + "label": "CPU", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "multiView": { + "label": "" + } + }, + "ram": { + "label": "", + "enabled": { + "label": "" + }, + "span": { + "label": "" + } + }, + "gpu": { + "label": "GPU", + "enabled": { + "label": "" + }, + "span": { + "label": "" + } + } } } }, @@ -28,7 +82,11 @@ "title": "Dash.", "errors": { "noService": "Dash. 서비스를 찾을 수 없습니다. Homarr 대시보드에 추가하거나 모듈 옵션에서 Dash. URL을 설정해 주세요.", - "noInformation": "Dash. 에서 정보를 얻을 수 없습니다. 최신 버전을 사용 중인가요?" + "noInformation": "Dash. 에서 정보를 얻을 수 없습니다. 최신 버전을 사용 중인가요?", + "protocolDowngrade": { + "title": "", + "text": "" + } }, "graphs": { "storage": { @@ -46,7 +104,7 @@ "cpu": { "title": "CPU" }, - "memory": { + "ram": { "title": "RAM" }, "gpu": { diff --git a/public/locales/ko/modules/iframe.json b/public/locales/ko/modules/iframe.json new file mode 100644 index 000000000..18c90c392 --- /dev/null +++ b/public/locales/ko/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "embedUrl": { + "label": "" + }, + "allowFullScreen": { + "label": "" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ko/modules/media-server.json b/public/locales/ko/modules/media-server.json new file mode 100644 index 000000000..2be958199 --- /dev/null +++ b/public/locales/ko/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "" + } + }, + "card": { + "table": { + "header": { + "session": "", + "user": "", + "currentlyPlaying": "" + } + }, + "errors": { + "general": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ko/modules/rss.json b/public/locales/ko/modules/rss.json new file mode 100644 index 000000000..230d75cf5 --- /dev/null +++ b/public/locales/ko/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "rssFeedUrl": { + "label": "" + } + } + }, + "card": { + "errors": { + "general": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ko/modules/video-stream.json b/public/locales/ko/modules/video-stream.json new file mode 100644 index 000000000..539daa1c4 --- /dev/null +++ b/public/locales/ko/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "FeedUrl": { + "label": "" + }, + "autoPlay": { + "label": "" + }, + "muted": { + "label": "" + }, + "controls": { + "label": "" + } + } + }, + "errors": { + "invalidStream": "" + } +} \ No newline at end of file diff --git a/public/locales/lol/layout/modals/about.json b/public/locales/lol/layout/modals/about.json index f50d0196c..01b72d566 100644 --- a/public/locales/lol/layout/modals/about.json +++ b/public/locales/lol/layout/modals/about.json @@ -8,6 +8,7 @@ "version": "Vershun", "nodeEnvironment": "", "i18n": "", - "locales": "" + "locales": "", + "experimental_disableEditMode": "" } } \ No newline at end of file diff --git a/public/locales/lol/layout/modals/add-app.json b/public/locales/lol/layout/modals/add-app.json index 6c3e7645d..92f4e4a45 100644 --- a/public/locales/lol/layout/modals/add-app.json +++ b/public/locales/lol/layout/modals/add-app.json @@ -39,7 +39,15 @@ "appearance": { "icon": { "label": "App Icon", - "description": "Teh Icon Dat Will Be Displayd On Teh Dashbord." + "description": "", + "autocomplete": { + "title": "", + "text": "" + }, + "noItems": { + "title": "", + "text": "" + } } }, "integration": { diff --git a/public/locales/lol/modules/dashdot.json b/public/locales/lol/modules/dashdot.json index ddbefa7fa..46af1ed23 100644 --- a/public/locales/lol/modules/dashdot.json +++ b/public/locales/lol/modules/dashdot.json @@ -4,23 +4,77 @@ "description": "Displays Teh Grafs Ov An External Dash. Instance Inside Ov Homarr.", "settings": { "title": "Settings 4 Dash. Widget", - "cpuMultiView": { - "label": "CPU Multi-Coer View" - }, - "storageMultiView": { - "label": "Storagzzz Multi-Driveh View" - }, - "useCompactView": { - "label": "Ues Compact View" - }, - "graphs": { - "label": "Graphz" - }, "url": { "label": "Dash. URL" }, "usePercentages": { "label": "" + }, + "columns": { + "label": "" + }, + "graphHeight": { + "label": "" + }, + "graphsOrder": { + "label": "", + "storage": { + "label": "Storagzzz", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "compactView": { + "label": "" + }, + "multiView": { + "label": "" + } + }, + "network": { + "label": "Netwerk", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "compactView": { + "label": "" + } + }, + "cpu": { + "label": "CPU", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "multiView": { + "label": "" + } + }, + "ram": { + "label": "", + "enabled": { + "label": "" + }, + "span": { + "label": "" + } + }, + "gpu": { + "label": "GPU", + "enabled": { + "label": "" + }, + "span": { + "label": "" + } + } } } }, @@ -28,7 +82,11 @@ "title": "Dash.", "errors": { "noService": "No Dash. survis findz. plz add wan 2 ur Homarr dashboard or set Dash. URL in teh moduel opshuns", - "noInformation": "Cannot acquier informashun frum dash. - r u runnin teh latest vershun?" + "noInformation": "Cannot acquier informashun frum dash. - r u runnin teh latest vershun?", + "protocolDowngrade": { + "title": "", + "text": "" + } }, "graphs": { "storage": { @@ -46,7 +104,7 @@ "cpu": { "title": "CPU" }, - "memory": { + "ram": { "title": "RAM" }, "gpu": { diff --git a/public/locales/lol/modules/iframe.json b/public/locales/lol/modules/iframe.json new file mode 100644 index 000000000..18c90c392 --- /dev/null +++ b/public/locales/lol/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "embedUrl": { + "label": "" + }, + "allowFullScreen": { + "label": "" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/lol/modules/media-server.json b/public/locales/lol/modules/media-server.json new file mode 100644 index 000000000..2be958199 --- /dev/null +++ b/public/locales/lol/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "" + } + }, + "card": { + "table": { + "header": { + "session": "", + "user": "", + "currentlyPlaying": "" + } + }, + "errors": { + "general": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/lol/modules/rss.json b/public/locales/lol/modules/rss.json new file mode 100644 index 000000000..230d75cf5 --- /dev/null +++ b/public/locales/lol/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "rssFeedUrl": { + "label": "" + } + } + }, + "card": { + "errors": { + "general": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/lol/modules/video-stream.json b/public/locales/lol/modules/video-stream.json new file mode 100644 index 000000000..539daa1c4 --- /dev/null +++ b/public/locales/lol/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "FeedUrl": { + "label": "" + }, + "autoPlay": { + "label": "" + }, + "muted": { + "label": "" + }, + "controls": { + "label": "" + } + } + }, + "errors": { + "invalidStream": "" + } +} \ No newline at end of file diff --git a/public/locales/nl/layout/modals/about.json b/public/locales/nl/layout/modals/about.json index 43018df1d..55c4b01f4 100644 --- a/public/locales/nl/layout/modals/about.json +++ b/public/locales/nl/layout/modals/about.json @@ -3,11 +3,12 @@ "contact": "Problemen of vragen? Neem contact met ons op!", "addToDashboard": "Aan dashboard toevoegen", "metrics": { - "configurationSchemaVersion": "", - "configurationsCount": "", + "configurationSchemaVersion": "Versie configuratieschema", + "configurationsCount": "Beschikbare configuraties", "version": "Versie", - "nodeEnvironment": "", - "i18n": "", - "locales": "" + "nodeEnvironment": "Knooppuntomgeving", + "i18n": "I18n vertaling namespaces geladen", + "locales": "I18n talen geconfigureerd", + "experimental_disableEditMode": "" } } \ No newline at end of file diff --git a/public/locales/nl/layout/modals/add-app.json b/public/locales/nl/layout/modals/add-app.json index 3bad4836a..c3a67bfe0 100644 --- a/public/locales/nl/layout/modals/add-app.json +++ b/public/locales/nl/layout/modals/add-app.json @@ -39,7 +39,15 @@ "appearance": { "icon": { "label": "App icoon", - "description": "Het pictogram dat op het dashboard wordt weergegeven." + "description": "", + "autocomplete": { + "title": "", + "text": "" + }, + "noItems": { + "title": "", + "text": "" + } } }, "integration": { diff --git a/public/locales/nl/layout/modals/icon-picker.json b/public/locales/nl/layout/modals/icon-picker.json index 349810cb9..3d2f68b75 100644 --- a/public/locales/nl/layout/modals/icon-picker.json +++ b/public/locales/nl/layout/modals/icon-picker.json @@ -1,7 +1,7 @@ { "iconPicker": { - "textInputPlaceholder": "", - "searchLimitationTitle": "", - "searchLimitationMessage": "" + "textInputPlaceholder": "Zoek iets...", + "searchLimitationTitle": "Beperkt tot 30 resultaten", + "searchLimitationMessage": "De zoekresultaten werden beperkt tot 30 omdat er te veel overeenkomsten waren" } } \ No newline at end of file diff --git a/public/locales/nl/modules/calendar.json b/public/locales/nl/modules/calendar.json index 7313009ed..97240d18b 100644 --- a/public/locales/nl/modules/calendar.json +++ b/public/locales/nl/modules/calendar.json @@ -5,7 +5,7 @@ "settings": { "title": "Instellingen voor Kalender widget", "useSonarrv4": { - "label": "" + "label": "Gebruik Sonarr v4 API" }, "sundayStart": { "label": "Begin de week op zondag" diff --git a/public/locales/nl/modules/dashdot.json b/public/locales/nl/modules/dashdot.json index 64f740d71..4c8a28716 100644 --- a/public/locales/nl/modules/dashdot.json +++ b/public/locales/nl/modules/dashdot.json @@ -4,23 +4,77 @@ "description": "Toont de grafieken van een externe Dash. instantie binnen Homarr.", "settings": { "title": "Instellingen voor Dash. widget", - "cpuMultiView": { - "label": "CPU Multi-Core Weergave" - }, - "storageMultiView": { - "label": "Opslag Multi-Drive weergave" - }, - "useCompactView": { - "label": "Compacte weergave gebruiken" - }, - "graphs": { - "label": "Grafieken" - }, "url": { "label": "Dash. URL" }, "usePercentages": { - "label": "" + "label": "Percentages weergeven" + }, + "columns": { + "label": "Kolommen weergeven" + }, + "graphHeight": { + "label": "Hoogte van de grafieken" + }, + "graphsOrder": { + "label": "Grafieken (volgorde)", + "storage": { + "label": "Opslagruimte", + "enabled": { + "label": "Toon in widget" + }, + "span": { + "label": "Kolombreedte" + }, + "compactView": { + "label": "Toon als tekst (compact)" + }, + "multiView": { + "label": "Toon als multi-drive-weergave" + } + }, + "network": { + "label": "Netwerk", + "enabled": { + "label": "Toon in widget" + }, + "span": { + "label": "Kolombreedte" + }, + "compactView": { + "label": "Toon als tekst (compact)" + } + }, + "cpu": { + "label": "CPU", + "enabled": { + "label": "Toon in widget" + }, + "span": { + "label": "Kolombreedte" + }, + "multiView": { + "label": "Toon als multi-core-weergave" + } + }, + "ram": { + "label": "RAM", + "enabled": { + "label": "Toon in widget" + }, + "span": { + "label": "Kolombreedte" + } + }, + "gpu": { + "label": "GPU", + "enabled": { + "label": "Toon in widget" + }, + "span": { + "label": "Kolombreedte" + } + } } } }, @@ -28,7 +82,11 @@ "title": "Dash.", "errors": { "noService": "Geen Dash. service gevonden. Voeg er een toe aan uw Homarr dashboard of stel een Dashdot URL in in de opties van de module", - "noInformation": "Kan geen informatie verkrijgen van dash. - gebruikt u de laatste versie?" + "noInformation": "Kan geen informatie verkrijgen van dash. - gebruikt u de laatste versie?", + "protocolDowngrade": { + "title": "Protocol downgrade gedetecteerd", + "text": "Het protocol voor uw Dash. instantie wordt gedegradeerd. Dit vormt een risico voor de beveiliging, aangezien HTTP ongecodeerd is en aanvallers deze verbinding kunnen misbruiken. Zorg ervoor dat Dash. wordt uitgevoerd op HTTPS of downgrade Homarr naar HTTP (niet aanbevolen)." + } }, "graphs": { "storage": { @@ -46,7 +104,7 @@ "cpu": { "title": "CPU" }, - "memory": { + "ram": { "title": "RAM" }, "gpu": { diff --git a/public/locales/nl/modules/iframe.json b/public/locales/nl/modules/iframe.json new file mode 100644 index 000000000..75830367b --- /dev/null +++ b/public/locales/nl/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "iFrame", + "description": "", + "settings": { + "title": "iFrame Instellingen", + "embedUrl": { + "label": "" + }, + "allowFullScreen": { + "label": "Volledig scherm toestaan" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "Voer URL in", + "text": "Zorg ervoor dat je een geldig adres hebt ingevoerd in de configuratie van je widget" + } + } + } +} \ No newline at end of file diff --git a/public/locales/nl/modules/media-server.json b/public/locales/nl/modules/media-server.json new file mode 100644 index 000000000..b3d688b9f --- /dev/null +++ b/public/locales/nl/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Media Server", + "description": "Interageer met uw Jellyfin of Plex mediaserver", + "settings": { + "title": "Instellingen voor media server widget" + } + }, + "card": { + "table": { + "header": { + "session": "Sessie", + "user": "Gebruiker", + "currentlyPlaying": "Nu aan het afspelen" + } + }, + "errors": { + "general": { + "title": "Het is niet mogelijk om de content te laden", + "text": "Kan geen informatie van de server ophalen. Controleer de logs voor meer details" + } + } + } +} \ No newline at end of file diff --git a/public/locales/nl/modules/rss.json b/public/locales/nl/modules/rss.json new file mode 100644 index 000000000..e861987b2 --- /dev/null +++ b/public/locales/nl/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "RSS Widget", + "description": "Pakt de items uit een RSS-feed en geeft ze weer. Wordt vaak gebruikt voor online nieuws", + "settings": { + "title": "Instellingen voor RSS widget", + "rssFeedUrl": { + "label": "RSS feed URL" + } + } + }, + "card": { + "errors": { + "general": { + "title": "Kan RSS feed niet ophalen", + "text": "Er was een probleem met het bereiken van de RSS feed. Zorg ervoor dat je de feed correct hebt geconfigureerd en een geldige RSS URL gebruikt, die overeenkomt met de officiële standaardspecificatie. Nadat u de feed hebt bijgewerkt, moet u mogelijk uw dashboard opslaan en de pagina vernieuwen." + } + } + } +} \ No newline at end of file diff --git a/public/locales/nl/modules/torrents-status.json b/public/locales/nl/modules/torrents-status.json index cd4352b90..6fb2b0ff8 100644 --- a/public/locales/nl/modules/torrents-status.json +++ b/public/locales/nl/modules/torrents-status.json @@ -61,9 +61,9 @@ "introductionPrefix": "Beheerd door", "metrics": { "queuePosition": "Positie in de wachtrij - {{position}}", - "progress": "Vooruitgang - {{progress}}%", + "progress": "Voortgang - {{progress}}%", "totalSelectedSize": "Totaal - {{totalSize}}", - "state": "Staat - {{state}}", + "state": "Status - {{state}}", "ratio": "Verhouding -", "completed": "Voltooid" } diff --git a/public/locales/nl/modules/video-stream.json b/public/locales/nl/modules/video-stream.json new file mode 100644 index 000000000..979e65b50 --- /dev/null +++ b/public/locales/nl/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Video streams", + "description": "Voeg een video stream, video van een camera of een website in", + "settings": { + "title": "Instellingen voor videostream-widget", + "FeedUrl": { + "label": "Feed URL" + }, + "autoPlay": { + "label": "Automatisch afspelen" + }, + "muted": { + "label": "Gedempte audio" + }, + "controls": { + "label": "Bedieningselementen videospeler" + } + } + }, + "errors": { + "invalidStream": "Ongeldige stream" + } +} \ No newline at end of file diff --git a/public/locales/nl/settings/common.json b/public/locales/nl/settings/common.json index 05fa7fa2f..94b80067f 100644 --- a/public/locales/nl/settings/common.json +++ b/public/locales/nl/settings/common.json @@ -10,19 +10,19 @@ }, "credits": { "madeWithLove": "Gemaakt met ❤️ door @", - "thirdPartyContent": "", + "thirdPartyContent": "Inhoud van derden bekijken", "thirdPartyContentTable": { - "dependencyName": "", + "dependencyName": "Dependency", "dependencyVersion": "Versie" } }, "grow": "Groei raster (neem alle ruimte)", "layout": { "preview": { - "title": "", - "subtitle": "" + "title": "Voorbeeld", + "subtitle": "Wijzigingen worden automatisch opgeslagen" }, - "divider": "", + "divider": "Layout opties", "main": "Algemeen", "sidebar": "Zijbalk", "cannotturnoff": "Kan niet worden uitgeschakeld", diff --git a/public/locales/nl/settings/customization/color-selector.json b/public/locales/nl/settings/customization/color-selector.json index a6f500c0e..1945db1c2 100644 --- a/public/locales/nl/settings/customization/color-selector.json +++ b/public/locales/nl/settings/customization/color-selector.json @@ -1,3 +1,4 @@ { + "colors": "Kleuren", "suffix": "{{color}} kleur" } \ No newline at end of file diff --git a/public/locales/nl/settings/customization/general.json b/public/locales/nl/settings/customization/general.json index ee9d30b5a..c3068a957 100644 --- a/public/locales/nl/settings/customization/general.json +++ b/public/locales/nl/settings/customization/general.json @@ -1,21 +1,21 @@ { - "text": "", + "text": "Met aanpassingen kan je je ervaring met Homarr configureren en aanpassen naar je voorkeuren.", "accordeon": { "layout": { - "name": "", - "description": "" + "name": "Indeling", + "description": "Elementen op je header en dashboard tegels in- en uitschakelen" }, "gridstack": { - "name": "", - "description": "" + "name": "Gridstack", + "description": "Het gedrag en de kolommen van je dashboard aanpassen" }, "pageMetadata": { - "name": "", - "description": "" + "name": "Pagina Metadata", + "description": "Tegels, logo en PWA aanpassen" }, "appereance": { - "name": "", - "description": "" + "name": "Uiterlijk", + "description": "Pas de achtergrond, kleuren en het uiterlijk van apps aan." } } } \ No newline at end of file diff --git a/public/locales/nl/settings/customization/gridstack.json b/public/locales/nl/settings/customization/gridstack.json index 18c3d8233..d3e645596 100644 --- a/public/locales/nl/settings/customization/gridstack.json +++ b/public/locales/nl/settings/customization/gridstack.json @@ -1,10 +1,10 @@ { "columnsCount": { - "labelPreset": "", - "descriptionPreset": "", - "descriptionExceedsPreset": "" + "labelPreset": "Kolommen in {{size}} grootte", + "descriptionPreset": "Aantal kolommen wanneer het scherm minder dan {{pixels}} pixels breed is.", + "descriptionExceedsPreset": "Aantal kolommen wanneer het scherm groter is dan {{pixels}} pixels" }, - "unsavedChanges": "", - "applyChanges": "", - "defaultValues": "" + "unsavedChanges": "Je hebt niet opgeslagen wijzigingen. Klik op de knop Wijzigingen toepassen om ze toe te passen en op te slaan.", + "applyChanges": "Wijzigingen toepassen", + "defaultValues": "Standaardwaarden" } \ No newline at end of file diff --git a/public/locales/nl/settings/customization/page-appearance.json b/public/locales/nl/settings/customization/page-appearance.json index f1d43504e..f22542a73 100644 --- a/public/locales/nl/settings/customization/page-appearance.json +++ b/public/locales/nl/settings/customization/page-appearance.json @@ -1,28 +1,28 @@ { "pageTitle": { "label": "Paginatitel", - "description": "" + "description": "De titel van het dashboard linksboven" }, "metaTitle": { "label": "Meta Titel", - "description": "" + "description": "De titel, die als uw tabnaam wordt weergegeven" }, "logo": { "label": "Logo", - "description": "" + "description": "Het dashboardlogo linksboven" }, "favicon": { "label": "Favicon", - "description": "" + "description": "Het pictogram, dat wordt gebruik voor de naam van het tabblad" }, "background": { "label": "Achtergrond" }, "customCSS": { "label": "Eigen CSS", - "description": "", + "description": "Alle elementen op je dashboard aanpassen, alleen aanbevolen voor ervaren gebruikers", "placeholder": "Eigen CSS wordt als laatste toegepast", - "applying": "" + "applying": "CSS toepassen..." }, "buttons": { "submit": "Indienen" diff --git a/public/locales/no/authentication/login.json b/public/locales/no/authentication/login.json new file mode 100644 index 000000000..a2f47329a --- /dev/null +++ b/public/locales/no/authentication/login.json @@ -0,0 +1,27 @@ +{ + "title": "Velkommen tilbake!", + "text": "Skriv inn passord", + "form": { + "fields": { + "password": { + "label": "Passord", + "placeholder": "Ditt passord" + } + }, + "buttons": { + "submit": "Logg inn" + } + }, + "notifications": { + "checking": { + "title": "Sjekker passordet ditt", + "message": "Ditt passord blir sjekket..." + }, + "correct": { + "title": "Innlogging vellykket, omdirigerer..." + }, + "wrong": { + "title": "Passordet du skrev inn er feil, prøv igjen." + } + } +} diff --git a/public/locales/no/common.json b/public/locales/no/common.json new file mode 100644 index 000000000..0a3c89969 --- /dev/null +++ b/public/locales/no/common.json @@ -0,0 +1,34 @@ +{ + "save": "Lagre", + "about": "Info", + "cancel": "Avbryt", + "close": "Lukk", + "delete": "Slett", + "ok": "OK", + "edit": "Rediger", + "version": "Versjon", + "changePosition": "Endre posisjon", + "remove": "Fjern", + "removeConfirm": "Er du sikker på at du vil fjerne {{item}}?", + "sections": { + "settings": "Innstillinger", + "dangerZone": "Faresonen" + }, + "secrets": { + "apiKey": "API-nøkkel", + "username": "Brukernavn", + "password": "Passord" + }, + "tip": "Tips: ", + "time": { + "seconds": "sekunder", + "minutes": "minutter", + "hours": "timer" + }, + "loading": "Laster inn...", + "breakPoints": { + "small": "liten", + "medium": "middels", + "large": "stor" + } +} \ No newline at end of file diff --git a/public/locales/no/layout/element-selector/selector.json b/public/locales/no/layout/element-selector/selector.json new file mode 100644 index 000000000..13c2fb908 --- /dev/null +++ b/public/locales/no/layout/element-selector/selector.json @@ -0,0 +1,11 @@ +{ + "modal": { + "title": "Legg til en ny flis", + "text": "Fliser er det viktigste elementet i Homarr. De brukes til å vise appene og annen informasjon. Du kan legge til så mange fliser som du vil." + }, + "widgetDescription": "Widgets samhandler med appene dine for å gi deg mer kontroll over applikasjonene. De krever vanligvis ekstra konfigurasjon før bruk.", + "goBack": "Gå tilbake til forrige steg", + "actionIcon": { + "tooltip": "Legg til en flis" + } +} diff --git a/public/locales/no/layout/header/actions/toggle-edit-mode.json b/public/locales/no/layout/header/actions/toggle-edit-mode.json new file mode 100644 index 000000000..d7d6a2e48 --- /dev/null +++ b/public/locales/no/layout/header/actions/toggle-edit-mode.json @@ -0,0 +1,11 @@ +{ + "description": "I Redigeringsmodus kan du justere fliser og konfigurere apper. Endringer lagres ikke før du avslutter Redigeringsmodus.", + "button": { + "disabled": "Gå inn i Redigeringsmodus", + "enabled": "Avslutt og lagre" + }, + "popover": { + "title": "Redigeringsmodus er aktivert for <1>{{size}} størrelse", + "text": "Du kan justere og konfigurere appene nå. Endringer er ikke lagret før du avslutter redigeringsmodus" + } +} diff --git a/public/locales/no/layout/mobile/drawer.json b/public/locales/no/layout/mobile/drawer.json new file mode 100644 index 000000000..225fe6415 --- /dev/null +++ b/public/locales/no/layout/mobile/drawer.json @@ -0,0 +1,3 @@ +{ + "title": "{{position}} sidepanel" +} diff --git a/public/locales/no/layout/modals/about.json b/public/locales/no/layout/modals/about.json new file mode 100644 index 000000000..625aa5679 --- /dev/null +++ b/public/locales/no/layout/modals/about.json @@ -0,0 +1,14 @@ +{ + "description": "Homarr er et sleek, moderne dashbord som legger alle apper og tjenester ved fingertuppene dine. Med Homarr, kan du få tilgang til og kontrollere alt på et bekvemt sted. Homarr sømløst integrerer med appene du har lagt til, gir deg verdifull informasjon og gir deg full kontroll. Installasjon er en lek, og Homarr støtter en lang rekke distribusjonsmetoder.", + "contact": "Har du problemer med eller spørsmål? Ta kontakt med oss!", + "addToDashboard": "Legg til på dashbord", + "metrics": { + "configurationSchemaVersion": "Konfigurasjonsskjema versjon", + "configurationsCount": "Tilgjengelige konfigurasjoner", + "version": "Versjon", + "nodeEnvironment": "Node miljø", + "i18n": "Lastet I18n oversettelsesnavneområder", + "locales": "Konfigurerte I18n-lokasjoner", + "experimental_disableEditMode": "" + } +} \ No newline at end of file diff --git a/public/locales/no/layout/modals/add-app.json b/public/locales/no/layout/modals/add-app.json new file mode 100644 index 000000000..b028f8afb --- /dev/null +++ b/public/locales/no/layout/modals/add-app.json @@ -0,0 +1,76 @@ +{ + "tabs": { + "general": "Generelt", + "behaviour": "Oppførsel", + "network": "Nettverk", + "appearance": "Utseende", + "integration": "Integrasjon" + }, + "general": { + "appname": { + "label": "Navn på app", + "description": "Brukes til å vise appen på dashbordet." + }, + "internalAddress": { + "label": "Intern adresse", + "description": "Intern IP-adresse til appen." + }, + "externalAddress": { + "label": "Ekstern adresse", + "description": "URL som vil åpnes når du klikker på appen." + } + }, + "behaviour": { + "isOpeningNewTab": { + "label": "Åpne i ny fane", + "description": "Åpne appen i en ny fane i stedet for denne." + } + }, + "network": { + "statusChecker": { + "label": "Statussjekk", + "description": "Sjekker om appen er online med en enkel HTTP(S) forespørsel." + }, + "statusCodes": { + "label": "HTTP statuskoder", + "description": "HTTP-statuskoder som regnes som online." + } + }, + "appearance": { + "icon": { + "label": "App ikon", + "description": "", + "autocomplete": { + "title": "", + "text": "" + }, + "noItems": { + "title": "", + "text": "" + } + } + }, + "integration": { + "type": { + "label": "Integrasjons konfigurasjon", + "description": "Integrasjonskonfigurasjonen som blir brukt til å koble til appen din.", + "placeholder": "Velg en integrasjon", + "defined": "Definert", + "undefined": "Undefined", + "public": "Offentlig", + "private": "Privat", + "explanationPrivate": "En privat hemmelighet sendes bare til serveren én gang. Når nettleseren har oppdatert siden, sendes den aldri igjen.", + "explanationPublic": "En offentlig hemmelighet vil alltid sendes til klienten og er tilgjengelig over API-et. Det bør ikke inneholde noen konfidensielle verdier som brukernavn, passord, tokens, sertifikater og lignende!" + }, + "secrets": { + "description": "For å oppdatere en hemmelig, skriv inn en verdi og klikk på Lagre-knappen for å fjerne en hemmelighet, bruk fjern knappen.", + "warning": "Din legitimasjon fungerer som tilgang for dine integrasjoner, og du bør aldri dele dem med noen andre. Homarr teamet vil aldri be om legitimasjon. Sørg for å lagre og behandle hemmeligheter trygt.", + "clear": "Fjern hemmelighet", + "save": "Lagre hemmelighet", + "update": "Oppdater hemmelighet" + } + }, + "validation": { + "popover": "Skjemaet inneholder ugyldig data. Derfor kan den ikke lagres. Vennligst løs alle problemer og klikk på denne knappen igjen for å lagre endringene dine" + } +} diff --git a/public/locales/no/layout/modals/change-position.json b/public/locales/no/layout/modals/change-position.json new file mode 100644 index 000000000..ce60017bb --- /dev/null +++ b/public/locales/no/layout/modals/change-position.json @@ -0,0 +1,8 @@ +{ + "xPosition": "Posisjon for X akse", + "width": "Bredde", + "height": "Høyde", + "yPosition": "Posisjon for Y akse", + "zeroOrHigher": "0 eller høyere", + "betweenXandY": "Mellom {{min}} og {{max}}" +} \ No newline at end of file diff --git a/public/locales/no/layout/modals/icon-picker.json b/public/locales/no/layout/modals/icon-picker.json new file mode 100644 index 000000000..bfd3a8033 --- /dev/null +++ b/public/locales/no/layout/modals/icon-picker.json @@ -0,0 +1,7 @@ +{ + "iconPicker": { + "textInputPlaceholder": "Søk noe...", + "searchLimitationTitle": "Begrenset til 30 resultater", + "searchLimitationMessage": "Søkeresultatene ble begrenset til 30 fordi det var for mange treff" + } +} \ No newline at end of file diff --git a/public/locales/no/modules/calendar.json b/public/locales/no/modules/calendar.json new file mode 100644 index 000000000..e0ded0fe2 --- /dev/null +++ b/public/locales/no/modules/calendar.json @@ -0,0 +1,18 @@ +{ + "descriptor": { + "name": "Kalender", + "description": "Viser en kalender med kommende utgivelser, fra støttede integrasjoner.", + "settings": { + "title": "Innstillinger for Kalender widget", + "useSonarrv4": { + "label": "Bruk Sonarr v4 API" + }, + "sundayStart": { + "label": "Start uken på søndag" + }, + "radarrReleaseType": { + "label": "Radarr utgivelsestype" + } + } + } +} diff --git a/public/locales/no/modules/common-media-cards.json b/public/locales/no/modules/common-media-cards.json new file mode 100644 index 000000000..23a78e936 --- /dev/null +++ b/public/locales/no/modules/common-media-cards.json @@ -0,0 +1,6 @@ +{ + "buttons": { + "play": "Spill", + "request": "Forespørsel" + } +} \ No newline at end of file diff --git a/public/locales/no/modules/common.json b/public/locales/no/modules/common.json new file mode 100644 index 000000000..ca115f068 --- /dev/null +++ b/public/locales/no/modules/common.json @@ -0,0 +1,10 @@ +{ + "settings": { + "label": "Innstillinger" + }, + "errors": { + "unmappedOptions": { + "text": "Ubrukt parameter i konfigurasjon oppdaget
{{key}}. Homarr kan ikke tolke og bruke dette parameteret. For å unngå uventet oppførsel, sikkerhetskopier din konfigurasjon og korriger konfigurasjonen." + } + } +} diff --git a/public/locales/no/modules/dashdot.json b/public/locales/no/modules/dashdot.json new file mode 100644 index 000000000..fe2176c7b --- /dev/null +++ b/public/locales/no/modules/dashdot.json @@ -0,0 +1,115 @@ +{ + "descriptor": { + "name": "Dash.", + "description": "Viser grafene til en ekstern Dash. Eksempel inni av Homarr.", + "settings": { + "title": "Innstillinger for Dash. widget", + "url": { + "label": "Dash. URL" + }, + "usePercentages": { + "label": "Vis prosentandel" + }, + "columns": { + "label": "" + }, + "graphHeight": { + "label": "" + }, + "graphsOrder": { + "label": "", + "storage": { + "label": "Lagring", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "compactView": { + "label": "" + }, + "multiView": { + "label": "" + } + }, + "network": { + "label": "Nettverk", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "compactView": { + "label": "" + } + }, + "cpu": { + "label": "CPU", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "multiView": { + "label": "" + } + }, + "ram": { + "label": "", + "enabled": { + "label": "" + }, + "span": { + "label": "" + } + }, + "gpu": { + "label": "GPU", + "enabled": { + "label": "" + }, + "span": { + "label": "" + } + } + } + } + }, + "card": { + "title": "Dash.", + "errors": { + "noService": "Ingen Dash.-tjeneste funnet. Vennligst legg til en Homarr dashbordet eller angi en Dash. URL i modulalternativene", + "noInformation": "Kan ikke hente informasjon fra dash. - kjører du den nyeste versjonen?", + "protocolDowngrade": { + "title": "Oppdaget protokollnedgradering", + "text": "Protokollen til Dash. instansen blir nedgradert. Dette er sikkerhetsrisiko, siden HTTP er ukryptert og angripere kan misbruke denne tilkoblingen. Kontroller at Dash. kjører på HTTPS for eller nedgraderer Homarr til HTTP (ikke anbefalt)." + } + }, + "graphs": { + "storage": { + "title": "Lagring", + "label": "Lagring:" + }, + "network": { + "title": "Nettverk", + "label": "Nettverk:", + "metrics": { + "download": "Ned", + "upload": "Opp" + } + }, + "cpu": { + "title": "CPU" + }, + "ram": { + "title": "RAM" + }, + "gpu": { + "title": "GPU" + } + } + } +} diff --git a/public/locales/no/modules/date.json b/public/locales/no/modules/date.json new file mode 100644 index 000000000..8f1a9d66b --- /dev/null +++ b/public/locales/no/modules/date.json @@ -0,0 +1,12 @@ +{ + "descriptor": { + "name": "Dato og klokkeslett", + "description": "Viser gjeldende dato og klokkeslett.", + "settings": { + "title": "Innstillinger for dato og klokkeslett widget", + "display24HourFormat": { + "label": "Vis 24 timers formatering" + } + } + } +} diff --git a/public/locales/no/modules/dlspeed.json b/public/locales/no/modules/dlspeed.json new file mode 100644 index 000000000..0f175e30e --- /dev/null +++ b/public/locales/no/modules/dlspeed.json @@ -0,0 +1,35 @@ +{ + "descriptor": { + "name": "Nedlastingshastighet", + "description": "Viser nedlastingshastighet og opplastingshastighet av støttede integrasjoner." + }, + "card": { + "table": { + "header": { + "name": "Navn", + "size": "Størrelse", + "download": "Ned", + "upload": "Opp", + "estimatedTimeOfArrival": "Gjenstående tid (estimat)", + "progress": "Fremgang" + }, + "body": { + "nothingFound": "Ingen torrenter funnet" + } + }, + "lineChart": { + "title": "Gjeldende nedlastingshastighet", + "download": "Nedlasting: {{download}}", + "upload": "Opplasting: {{upload}}", + "timeSpan": "{{seconds}} sekunder siden", + "totalDownload": "Nedlasting: {{download}}/s", + "totalUpload": "Opplasting: {{upload}}/s" + }, + "errors": { + "noDownloadClients": { + "title": "Ingen støttede nedlastingsklienter funnet!", + "text": "Legg til en nedlastingstjeneste for å se pågående nedlastinger" + } + } + } +} diff --git a/public/locales/no/modules/docker.json b/public/locales/no/modules/docker.json new file mode 100644 index 000000000..766a62b60 --- /dev/null +++ b/public/locales/no/modules/docker.json @@ -0,0 +1,83 @@ +{ + "descriptor": { + "name": "Docker", + "description": "Lar deg enkelt se og administrere alle dine Docker containere." + }, + "search": { + "placeholder": "Søk etter container eller imagenavn" + }, + "table": { + "header": { + "name": "Navn", + "image": "Image", + "ports": "Porter", + "state": "Status" + }, + "body": { + "portCollapse": "{{ports}} flere" + }, + "states": { + "running": "Kjører", + "created": "Opprettet", + "stopped": "Stoppet", + "unknown": "Ukjent" + } + }, + "actionBar": { + "addService": { + "title": "Legg til app", + "message": "Legg til app i Homarr" + }, + "restart": { + "title": "Omstart" + }, + "stop": { + "title": "Stopp" + }, + "start": { + "title": "Start" + }, + "refreshData": { + "title": "Oppdater data" + }, + "remove": { + "title": "Fjern" + }, + "addToHomarr": { + "title": "Legg til i Homarr" + } + }, + "actions": { + "start": { + "start": "Starter", + "end": "Startet" + }, + "stop": { + "start": "Stopper", + "end": "Stoppet" + }, + "restart": { + "start": "Starter på nytt", + "end": "Startet på nytt" + }, + "remove": { + "start": "Fjerner", + "end": "Fjernet" + } + }, + "errors": { + "integrationFailed": { + "title": "Docker-integrasjonen mislyktes", + "message": "Har du glemt å koble til Docker socket?" + }, + "unknownError": { + "title": "Det oppstod en feil" + }, + "oneServiceAtATime": { + "title": "Legg bare til en app eller en tjeneste om gangen!" + } + }, + "actionIcon": { + "tooltip": "Docker" + } +} diff --git a/public/locales/no/modules/iframe.json b/public/locales/no/modules/iframe.json new file mode 100644 index 000000000..2b9730307 --- /dev/null +++ b/public/locales/no/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "IFrame", + "description": "", + "settings": { + "title": "", + "embedUrl": { + "label": "" + }, + "allowFullScreen": { + "label": "" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/no/modules/media-server.json b/public/locales/no/modules/media-server.json new file mode 100644 index 000000000..2be958199 --- /dev/null +++ b/public/locales/no/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "" + } + }, + "card": { + "table": { + "header": { + "session": "", + "user": "", + "currentlyPlaying": "" + } + }, + "errors": { + "general": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/no/modules/overseerr.json b/public/locales/no/modules/overseerr.json new file mode 100644 index 000000000..754d95992 --- /dev/null +++ b/public/locales/no/modules/overseerr.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "Overseerr", + "description": "Lar deg søke og legge til media fra Overseerr eller Jellyseerr." + }, + "popup": { + "item": { + "buttons": { + "askFor": "Be om {{title}}", + "cancel": "Avbryt", + "request": "Forespørsel" + }, + "alerts": { + "automaticApproval": { + "title": "Bruker API-nøkkel", + "text": "Denne forespørselen blir automatisk godkjent" + } + } + }, + "seasonSelector": { + "caption": "Marker sesongen du vil laste ned", + "table": { + "header": { + "season": "Sesong", + "numberOfEpisodes": "Antall episoder" + } + } + } + } +} diff --git a/public/locales/no/modules/ping.json b/public/locales/no/modules/ping.json new file mode 100644 index 000000000..da858b28e --- /dev/null +++ b/public/locales/no/modules/ping.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "Ping", + "description": "Viser en statusindikator avhengig av HTTP responskoden mottatt fra en URL." + }, + "states": { + "online": "Online {{response}}", + "offline": "Frakoblet {{response}}", + "loading": "Laster inn..." + } +} diff --git a/public/locales/no/modules/rss.json b/public/locales/no/modules/rss.json new file mode 100644 index 000000000..230d75cf5 --- /dev/null +++ b/public/locales/no/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "rssFeedUrl": { + "label": "" + } + } + }, + "card": { + "errors": { + "general": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/no/modules/search.json b/public/locales/no/modules/search.json new file mode 100644 index 000000000..8a4417f15 --- /dev/null +++ b/public/locales/no/modules/search.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "Søkefelt", + "description": "Et søkefelt som lar deg søke i din egendefinerte søkemotor, Youtube, og støttede integrasjoner." + }, + "input": { + "placeholder": "Søk på nettet..." + }, + "switched-to": "Endret til", + "searchEngines": { + "search": { + "name": "Web", + "description": "Søk..." + }, + "youtube": { + "name": "Youtube", + "description": "Søk på Youtube" + }, + "torrents": { + "name": "Torrenter", + "description": "Søk etter torrents" + }, + "overseerr": { + "name": "Overseerr", + "description": "Søk etter filmer og TV-serier på Overseerr" + } + }, + "tip": "Du kan velge søkefeltet med snarveien ", + "switchedSearchEngine": "Byttet til å søke med {{searchEngine}}" +} diff --git a/public/locales/no/modules/torrents-status.json b/public/locales/no/modules/torrents-status.json new file mode 100644 index 000000000..ac374403a --- /dev/null +++ b/public/locales/no/modules/torrents-status.json @@ -0,0 +1,72 @@ +{ + "descriptor": { + "name": "Torrent", + "description": "Viser en liste over torrenter fra støttede Torrent-klienter.", + "settings": { + "title": "Innstillinger for Torrent widget", + "refreshInterval": { + "label": "Oppdaterings intervall (i sekunder)" + }, + "displayCompletedTorrents": { + "label": "Vis fullførte torrenter" + }, + "displayStaleTorrents": { + "label": "Vis gamle torrenter" + } + } + }, + "card": { + "footer": { + "error": "Feil", + "lastUpdated": "Sist oppdatert for {{time}} siden" + }, + "table": { + "header": { + "name": "Navn", + "size": "Størrelse", + "download": "Ned", + "upload": "Opp", + "estimatedTimeOfArrival": "Gjenstående tid (estimat)", + "progress": "Fremgang" + }, + "item": { + "text": "Styrt med {{appName}}, {{ratio}} forhold" + }, + "body": { + "nothingFound": "Ingen torrenter funnet" + } + }, + "lineChart": { + "title": "Gjeldende nedlastingshastighet", + "download": "Nedlasting: {{download}}", + "upload": "Opplasting: {{upload}}", + "timeSpan": "{{seconds}} sekunder siden", + "totalDownload": "Nedlasting: {{download}}/s", + "totalUpload": "Opplasting: {{upload}}/s" + }, + "errors": { + "noDownloadClients": { + "title": "Ingen støttede Torrent-klienter funnet!", + "text": "Legg til en støttet Torrent-klient for å se de nåværende nedlastingene" + }, + "generic": { + "title": "En uventet feil har oppstått", + "text": "Homarr kunne ikke kommunisere med dine Torrent-klienter. Kontroller konfigurasjonen" + } + }, + "loading": { + "title": "Laster inn..." + }, + "popover": { + "introductionPrefix": "Administrert av", + "metrics": { + "queuePosition": "Kø posisjon - {{position}}", + "progress": "Fremgang - {{progress}}%", + "totalSelectedSize": "Totalt - {{totalSize}}", + "state": "Status – {{state}}", + "ratio": "Forhold -", + "completed": "Fullført" + } + } + } +} diff --git a/public/locales/no/modules/usenet.json b/public/locales/no/modules/usenet.json new file mode 100644 index 000000000..c034bbac1 --- /dev/null +++ b/public/locales/no/modules/usenet.json @@ -0,0 +1,49 @@ +{ + "descriptor": { + "name": "Usenet", + "description": "Lar deg se og administrere din Usenet-forekomst." + }, + "card": { + "errors": { + "noDownloadClients": { + "title": "Ingen støttede nedlastingsklienter funnet!", + "text": "Legg til en støttet Usenet Nedlastings-klient for å se de gjeldende nedlastingene" + } + } + }, + "tabs": { + "queue": "Kø", + "history": "Logg" + }, + "info": { + "sizeLeft": "Størrelse til venstre", + "paused": "Pauset" + }, + "queue": { + "header": { + "name": "Navn", + "size": "Størrelse", + "eta": "Gjenstående tid (estimat)", + "progress": "Fremgang" + }, + "empty": "Tøm", + "error": { + "title": "Feil", + "message": "Det oppstod en feil" + }, + "paused": "Pauset" + }, + "history": { + "header": { + "name": "Navn", + "size": "Størrelse", + "duration": "Varighet" + }, + "empty": "Tøm", + "error": { + "title": "Feil", + "message": "Feil under lasting av historikk" + }, + "paused": "Pauset" + } +} diff --git a/public/locales/no/modules/video-stream.json b/public/locales/no/modules/video-stream.json new file mode 100644 index 000000000..a5a7bd13c --- /dev/null +++ b/public/locales/no/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Videostrømming", + "description": "Bygg inn en videostrøm eller video fra et kamera eller et nettsted", + "settings": { + "title": "Innstillinger for videostrøm widget", + "FeedUrl": { + "label": "Feed URL" + }, + "autoPlay": { + "label": "Automatisk avspilling" + }, + "muted": { + "label": "Dempet lyd" + }, + "controls": { + "label": "Kontroll av videospiller" + } + } + }, + "errors": { + "invalidStream": "Ugyldig strøm" + } +} \ No newline at end of file diff --git a/public/locales/no/modules/weather.json b/public/locales/no/modules/weather.json new file mode 100644 index 000000000..b884e85d6 --- /dev/null +++ b/public/locales/no/modules/weather.json @@ -0,0 +1,33 @@ +{ + "descriptor": { + "name": "Vær", + "description": "Viser gjeldende værinformasjon for en angitt plassering.", + "settings": { + "title": "Innstillinger for vær widget", + "displayInFahrenheit": { + "label": "Vis i Fahrenheit" + }, + "location": { + "label": "Vær plassering" + } + } + }, + "card": { + "weatherDescriptions": { + "clear": "Tøm", + "mainlyClear": "Klar himmel", + "fog": "Tåke", + "drizzle": "Yr", + "freezingDrizzle": "Underkjølt yr", + "rain": "Regn", + "freezingRain": "Underkjølt regn", + "snowFall": "Snø", + "snowGrains": "Snø korn", + "rainShowers": "Regnbyger", + "snowShowers": "Snøbyger", + "thunderstorm": "Tordenvær", + "thunderstormWithHail": "Tordenvær med hagl", + "unknown": "Ukjent" + } + } +} diff --git a/public/locales/no/settings/common.json b/public/locales/no/settings/common.json new file mode 100644 index 000000000..67820677c --- /dev/null +++ b/public/locales/no/settings/common.json @@ -0,0 +1,38 @@ +{ + "title": "Innstillinger", + "tooltip": "Innstillinger", + "tabs": { + "common": "Generelt", + "customizations": "Tilpasninger" + }, + "tips": { + "configTip": "Last opp konfigurasjonsfilen ved å dra og slippe den på siden!" + }, + "credits": { + "madeWithLove": "Laget med ❤️ av @", + "thirdPartyContent": "Se tredjepartsinnhold", + "thirdPartyContentTable": { + "dependencyName": "Avhengighet", + "dependencyVersion": "Versjon" + } + }, + "grow": "Forstørr rutenett (ta all plass)", + "layout": { + "preview": { + "title": "Forhåndsvis", + "subtitle": "Endringer lagres automatisk" + }, + "divider": "Alternativer for layout", + "main": "Hoved", + "sidebar": "Sidepanel", + "cannotturnoff": "Kan ikke slås av", + "dashboardlayout": "Dashbord layout", + "enablersidebar": "Aktiver høyre sidepanel", + "enablelsidebar": "Aktiver venstre sidepanel", + "enablesearchbar": "Aktiver søkefelt", + "enabledocker": "Aktiver dockerintegrering", + "enableping": "Aktiver ping", + "enablelsidebardesc": "Valgfritt. Kan kun brukes for apper og integrasjoner", + "enablersidebardesc": "Valgfritt. Kan kun brukes for apper og integrasjoner" + } +} diff --git a/public/locales/no/settings/customization/app-width.json b/public/locales/no/settings/customization/app-width.json new file mode 100644 index 000000000..e2da7dd11 --- /dev/null +++ b/public/locales/no/settings/customization/app-width.json @@ -0,0 +1,3 @@ +{ + "label": "App bredde" +} \ No newline at end of file diff --git a/public/locales/no/settings/customization/color-selector.json b/public/locales/no/settings/customization/color-selector.json new file mode 100644 index 000000000..8f1505005 --- /dev/null +++ b/public/locales/no/settings/customization/color-selector.json @@ -0,0 +1,4 @@ +{ + "colors": "Farger", + "suffix": "{{color}} farge" +} \ No newline at end of file diff --git a/public/locales/no/settings/customization/general.json b/public/locales/no/settings/customization/general.json new file mode 100644 index 000000000..01370b40f --- /dev/null +++ b/public/locales/no/settings/customization/general.json @@ -0,0 +1,21 @@ +{ + "text": "Med tilpasninger kan du konfigurere og justere din opplevelse med Homarr etter dine preferanser.", + "accordeon": { + "layout": { + "name": "Oppsett", + "description": "Aktiver og deaktiver elementer i headeren din og dashbord fliser" + }, + "gridstack": { + "name": "Gridstack", + "description": "Tilpass oppførselen og kolonnene i ditt dashbordområde" + }, + "pageMetadata": { + "name": "Side metadata", + "description": "Juster titler, logo og PWA" + }, + "appereance": { + "name": "Utseende", + "description": "Tilpass både bakgrunn, farger og apper" + } + } +} \ No newline at end of file diff --git a/public/locales/no/settings/customization/gridstack.json b/public/locales/no/settings/customization/gridstack.json new file mode 100644 index 000000000..94d2bcdf2 --- /dev/null +++ b/public/locales/no/settings/customization/gridstack.json @@ -0,0 +1,10 @@ +{ + "columnsCount": { + "labelPreset": "Kolonner i {{size}} størrelse", + "descriptionPreset": "Antall kolonner når skjermen er mindre enn {{pixels}} piksler bred", + "descriptionExceedsPreset": "Antall kolonner når størrelsen på skjermen overstiger {{pixels}} piksler" + }, + "unsavedChanges": "Du har ulagrede endringer. Klikk på Ta i bruk endringer nedenfor for å bruke og lagre.", + "applyChanges": "Ta i bruk endringer", + "defaultValues": "Standardverdi" +} \ No newline at end of file diff --git a/public/locales/no/settings/customization/opacity-selector.json b/public/locales/no/settings/customization/opacity-selector.json new file mode 100644 index 000000000..2f6d4ac49 --- /dev/null +++ b/public/locales/no/settings/customization/opacity-selector.json @@ -0,0 +1,3 @@ +{ + "label": "App Gjennomsiktighet" +} \ No newline at end of file diff --git a/public/locales/no/settings/customization/page-appearance.json b/public/locales/no/settings/customization/page-appearance.json new file mode 100644 index 000000000..b71148926 --- /dev/null +++ b/public/locales/no/settings/customization/page-appearance.json @@ -0,0 +1,30 @@ +{ + "pageTitle": { + "label": "Sidetittel", + "description": "Tittel på dashbordet øverst til venstre" + }, + "metaTitle": { + "label": "Meta tittel", + "description": "Tittelen som vises som fanenavn" + }, + "logo": { + "label": "Logo", + "description": "Dashbord logoen øverst til venstre" + }, + "favicon": { + "label": "Favicon", + "description": "Ikonet som brukes foran fanenavnet" + }, + "background": { + "label": "Bakgrunn" + }, + "customCSS": { + "label": "Egendefinert CSS", + "description": "Tilpass alle elementer på dashbordet, anbefales bare for erfarne brukere", + "placeholder": "Egendefinert CSS vil bli brukt sist", + "applying": "Tar i bruk CSS..." + }, + "buttons": { + "submit": "Legg til" + } +} diff --git a/public/locales/no/settings/customization/shade-selector.json b/public/locales/no/settings/customization/shade-selector.json new file mode 100644 index 000000000..d969294ba --- /dev/null +++ b/public/locales/no/settings/customization/shade-selector.json @@ -0,0 +1,3 @@ +{ + "label": "Skygge" +} \ No newline at end of file diff --git a/public/locales/no/settings/general/color-schema.json b/public/locales/no/settings/general/color-schema.json new file mode 100644 index 000000000..7c6d0c9e2 --- /dev/null +++ b/public/locales/no/settings/general/color-schema.json @@ -0,0 +1,3 @@ +{ + "label": "Bytt til {{scheme}} -modus" +} \ No newline at end of file diff --git a/public/locales/no/settings/general/config-changer.json b/public/locales/no/settings/general/config-changer.json new file mode 100644 index 000000000..7cb25eb33 --- /dev/null +++ b/public/locales/no/settings/general/config-changer.json @@ -0,0 +1,86 @@ +{ + "configSelect": { + "label": "Konfigurasjonsendrer", + "description": "{{configCount}} konfigurasjoner er tilgjengelige", + "loadingNew": "Laster inn din konfigurasjon...", + "pleaseWait": "Vennligst vent til den nye konfigurasjonen er lastet!" + }, + "modal": { + "copy": { + "title": "Velg navnet på den nye konfigurasjonen", + "form": { + "configName": { + "label": "Navn på konfigurasjon", + "validation": { + "required": "Navn på konfigurasjon er påkrevd", + "notUnique": "Navnet på konfigurasjonen er allerede i bruk" + }, + "placeholder": "Ditt nye konfigurasjonsnavn" + }, + "submitButton": "Bekreft" + }, + "events": { + "configSaved": { + "title": "Konfigurasjon lagret", + "message": "Konfigurasjon lagret som {{configName}}" + }, + "configCopied": { + "title": "Konfigurasjon kopiert", + "message": "Konfigurasjon kopiert som {{configName}}" + }, + "configNotCopied": { + "title": "Kan ikke kopiere konfigurasjon", + "message": "Din konfigurasjon ble ikke kopiert som {{configName}}" + } + } + }, + "confirmDeletion": { + "title": "Bekreft sletting av konfigurasjonen", + "warningText": "Du er i ferd med å slette '{{configName}}'", + "text": "Vær oppmerksom på at slettingen ikke er invertikal, og at dataene dine vil gå tapt permanent. Når du klikker på denne knappen, vil filen slettes permanent fra disken. Pass på å opprette en tilstrekkelig sikkerhetskopi av konfigurasjonen.", + "buttons": { + "confirm": "Ja, slett '{{configName}}'" + } + } + }, + "buttons": { + "download": "Last ned konfigurasjon", + "delete": { + "text": "Slett konfigurasjon", + "notifications": { + "deleted": { + "title": "Konfigurasjon slettet", + "message": "Konfigurasjon slettet" + }, + "deleteFailed": { + "title": "Sletting av konfigurasjon mislyktes", + "message": "Sletting av konfigurasjon mislyktes" + }, + "deleteFailedDefaultConfig": { + "title": "Standard konfigurasjon kan ikke slettes", + "message": "Konfigurasjonen ble ikke slettet fra filsystemet" + } + } + }, + "saveCopy": "Lagre en kopi" + }, + "dropzone": { + "notifications": { + "invalidConfig": { + "title": "Kan ikke laste konfigurasjonen", + "message": "Kunne ikke laste inn config. Ugyldig JSON-format." + }, + "loadedSuccessfully": { + "title": "Konfigurasjon {{configName}} er lastet inn" + } + }, + "accept": { + "title": "Konfigurasjon Opplasting", + "text": "Dra filer her for å laste opp en config. Støtter kun JSON-filer." + }, + "reject": { + "title": "Dra og slipp opplasting avvist", + "text": "Dette filformatet støttes ikke. Last bare opp JSON-filer." + } + } +} diff --git a/public/locales/no/settings/general/internationalization.json b/public/locales/no/settings/general/internationalization.json new file mode 100644 index 000000000..0a479d3fe --- /dev/null +++ b/public/locales/no/settings/general/internationalization.json @@ -0,0 +1,3 @@ +{ + "label": "Språk" +} \ No newline at end of file diff --git a/public/locales/no/settings/general/search-engine.json b/public/locales/no/settings/general/search-engine.json new file mode 100644 index 000000000..a896ed864 --- /dev/null +++ b/public/locales/no/settings/general/search-engine.json @@ -0,0 +1,19 @@ +{ + "title": "Søkemotor", + "configurationName": "Søkemotor konfigurasjon", + "tips": { + "generalTip": "Det finnes flere prefikser du kan bruke! Å legge til disse før spørringen vil filtrere resultatene. !s (Web), !t (Torrents), !y (YouTube), og !m (Media).", + "placeholderTip": "%s kan brukes som plassholder for spørringen." + }, + "customEngine": { + "title": "Egendefinert søkemotor", + "label": "SpørringsURL", + "placeholder": "Egendefinert spørrings URL" + }, + "searchNewTab": { + "label": "Åpne søkeresultater i ny fane" + }, + "searchEnabled": { + "label": "Søk aktivert" + } +} diff --git a/public/locales/no/settings/general/theme-selector.json b/public/locales/no/settings/general/theme-selector.json new file mode 100644 index 000000000..de3a598ab --- /dev/null +++ b/public/locales/no/settings/general/theme-selector.json @@ -0,0 +1,3 @@ +{ + "label": "Bytt til {{theme}} -modus" +} \ No newline at end of file diff --git a/public/locales/no/settings/general/widget-positions.json b/public/locales/no/settings/general/widget-positions.json new file mode 100644 index 000000000..6b39c9c20 --- /dev/null +++ b/public/locales/no/settings/general/widget-positions.json @@ -0,0 +1,3 @@ +{ + "label": "Plasser widgets til venstre" +} diff --git a/public/locales/pl/layout/modals/about.json b/public/locales/pl/layout/modals/about.json index 91a3ccda1..4b0613636 100644 --- a/public/locales/pl/layout/modals/about.json +++ b/public/locales/pl/layout/modals/about.json @@ -8,6 +8,7 @@ "version": "Wersja", "nodeEnvironment": "", "i18n": "", - "locales": "" + "locales": "", + "experimental_disableEditMode": "" } } \ No newline at end of file diff --git a/public/locales/pl/layout/modals/add-app.json b/public/locales/pl/layout/modals/add-app.json index 282a63b83..91c62ecc0 100644 --- a/public/locales/pl/layout/modals/add-app.json +++ b/public/locales/pl/layout/modals/add-app.json @@ -39,7 +39,15 @@ "appearance": { "icon": { "label": "Ikona aplikacji", - "description": "Ikona, która będzie wyświetlana na desce rozdzielczej." + "description": "", + "autocomplete": { + "title": "", + "text": "" + }, + "noItems": { + "title": "", + "text": "" + } } }, "integration": { diff --git a/public/locales/pl/modules/dashdot.json b/public/locales/pl/modules/dashdot.json index 9f9b690eb..658185860 100644 --- a/public/locales/pl/modules/dashdot.json +++ b/public/locales/pl/modules/dashdot.json @@ -4,23 +4,77 @@ "description": "Wyświetla wykresy zewnętrznej instancji Dash. wewnątrz Homarr.", "settings": { "title": "Ustawienia dla widgetu Dash.", - "cpuMultiView": { - "label": "Widok wielordzeniowy procesora" - }, - "storageMultiView": { - "label": "Widok wielu dysków" - }, - "useCompactView": { - "label": "Użyj trybu kompaktowego" - }, - "graphs": { - "label": "Wykresy" - }, "url": { "label": "Adres URL usługi Dash." }, "usePercentages": { "label": "" + }, + "columns": { + "label": "" + }, + "graphHeight": { + "label": "" + }, + "graphsOrder": { + "label": "", + "storage": { + "label": "Pamięć", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "compactView": { + "label": "" + }, + "multiView": { + "label": "" + } + }, + "network": { + "label": "Sieć", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "compactView": { + "label": "" + } + }, + "cpu": { + "label": "CPU", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "multiView": { + "label": "" + } + }, + "ram": { + "label": "", + "enabled": { + "label": "" + }, + "span": { + "label": "" + } + }, + "gpu": { + "label": "GPU", + "enabled": { + "label": "" + }, + "span": { + "label": "" + } + } } } }, @@ -28,7 +82,11 @@ "title": "Dash.", "errors": { "noService": "Nie znaleziono usługi Dash. Proszę dodać ją do pulpitu Homarra lub ustawić adres URL usługi Dash. w opcjach modułu", - "noInformation": "Nie można uzyskać informacji z dash. - używasz najnowszej wersji?" + "noInformation": "Nie można uzyskać informacji z dash. - używasz najnowszej wersji?", + "protocolDowngrade": { + "title": "", + "text": "" + } }, "graphs": { "storage": { @@ -46,7 +104,7 @@ "cpu": { "title": "CPU" }, - "memory": { + "ram": { "title": "RAM" }, "gpu": { diff --git a/public/locales/pl/modules/iframe.json b/public/locales/pl/modules/iframe.json new file mode 100644 index 000000000..18c90c392 --- /dev/null +++ b/public/locales/pl/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "embedUrl": { + "label": "" + }, + "allowFullScreen": { + "label": "" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/pl/modules/media-server.json b/public/locales/pl/modules/media-server.json new file mode 100644 index 000000000..2be958199 --- /dev/null +++ b/public/locales/pl/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "" + } + }, + "card": { + "table": { + "header": { + "session": "", + "user": "", + "currentlyPlaying": "" + } + }, + "errors": { + "general": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/pl/modules/rss.json b/public/locales/pl/modules/rss.json new file mode 100644 index 000000000..230d75cf5 --- /dev/null +++ b/public/locales/pl/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "rssFeedUrl": { + "label": "" + } + } + }, + "card": { + "errors": { + "general": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/pl/modules/video-stream.json b/public/locales/pl/modules/video-stream.json new file mode 100644 index 000000000..539daa1c4 --- /dev/null +++ b/public/locales/pl/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "FeedUrl": { + "label": "" + }, + "autoPlay": { + "label": "" + }, + "muted": { + "label": "" + }, + "controls": { + "label": "" + } + } + }, + "errors": { + "invalidStream": "" + } +} \ No newline at end of file diff --git a/public/locales/pt/layout/modals/about.json b/public/locales/pt/layout/modals/about.json index 30ddc1ac5..a66436fbf 100644 --- a/public/locales/pt/layout/modals/about.json +++ b/public/locales/pt/layout/modals/about.json @@ -1,13 +1,14 @@ { - "description": "Homarr é um elegante, moderno painel de instrumentos que coloca todas as suas aplicações e serviços na ponta dos seus dedos. Com Homarr, pode aceder e controlar tudo num único local conveniente. Homarr integra-se perfeitamente com as aplicações que adicionou, fornecendo-lhe informações valiosas e dando-lhe um controlo completo. A instalação é uma brisa, e Homarr suporta uma vasta gama de métodos de implantação.", + "description": "Homarr é um elegante, moderno painel de instrumentos que coloca todas as suas aplicações e serviços na ponta dos seus dedos. Com Homarr, pode aceder e controlar tudo num único local conveniente. Homarr integra-se perfeitamente com as aplicações que adicionou, fornecendo-lhe informações valiosas e dando-lhe um controlo completo. A instalação é tranquila, e Homarr suporta uma vasta gama de métodos de implantação.", "contact": "Com problemas ou perguntas? Ligue-se a nós!", "addToDashboard": "Adicionar ao Painel de instrumentos", "metrics": { - "configurationSchemaVersion": "", - "configurationsCount": "", + "configurationSchemaVersion": "Versão do esquema de configuração", + "configurationsCount": "Configurações disponíveis", "version": "Versão", - "nodeEnvironment": "", - "i18n": "", - "locales": "" + "nodeEnvironment": "Ambiente do nó", + "i18n": "Espaços de tradução do I18n carregados", + "locales": "Localidades I18n configurados", + "experimental_disableEditMode": "EXPERIMENTAL: Desativar o modo de edição" } } \ No newline at end of file diff --git a/public/locales/pt/layout/modals/add-app.json b/public/locales/pt/layout/modals/add-app.json index 2d362f2ef..e8dc86b96 100644 --- a/public/locales/pt/layout/modals/add-app.json +++ b/public/locales/pt/layout/modals/add-app.json @@ -39,7 +39,15 @@ "appearance": { "icon": { "label": "Ícone de aplicação", - "description": "O ícone que será exibido no painel de instrumentos." + "description": "Escolha um ícone a ser exibido no seu painel. Escolha entre {{suggestionsCount}} ícones ou insira sua própria URL", + "autocomplete": { + "title": "Nenhum resultado encontrado", + "text": "Tente usar um termo de pesquisa mais específico. Se não conseguir encontrar o ícone desejado, cole a URL da imagem acima para obter um ícone personalizado" + }, + "noItems": { + "title": "Carregando ícones externos", + "text": "Isto pode levar alguns segundos" + } } }, "integration": { diff --git a/public/locales/pt/modules/calendar.json b/public/locales/pt/modules/calendar.json index d99d072ab..3344c4a6d 100644 --- a/public/locales/pt/modules/calendar.json +++ b/public/locales/pt/modules/calendar.json @@ -5,7 +5,7 @@ "settings": { "title": "Definições para o widget Calendário", "useSonarrv4": { - "label": "" + "label": "Utilizar Sonarr v4 API" }, "sundayStart": { "label": "Comece a semana no Domingo" diff --git a/public/locales/pt/modules/dashdot.json b/public/locales/pt/modules/dashdot.json index fec0b1751..d8be25ae8 100644 --- a/public/locales/pt/modules/dashdot.json +++ b/public/locales/pt/modules/dashdot.json @@ -4,23 +4,77 @@ "description": "Apresenta os gráficos de um Dash. exemplo externo dentro de Homarr.", "settings": { "title": "Definições para o Dash. widget", - "cpuMultiView": { - "label": "Visualização múltipla de CPU" - }, - "storageMultiView": { - "label": "Exibição Multi-Drive de armazenamento" - }, - "useCompactView": { - "label": "Usar visualização compacta" - }, - "graphs": { - "label": "Gráficos" - }, "url": { "label": "URL do Dash." }, "usePercentages": { - "label": "" + "label": "Exibir porcentagens" + }, + "columns": { + "label": "Exibir Colunas" + }, + "graphHeight": { + "label": "Altura dos gráficos" + }, + "graphsOrder": { + "label": "Gráficos (Ordem)", + "storage": { + "label": "Armazenamento", + "enabled": { + "label": "Exibir o widget" + }, + "span": { + "label": "Extensão da Coluna" + }, + "compactView": { + "label": "Mostrar como texto (compacto)" + }, + "multiView": { + "label": "Exibir como multi-drive-view" + } + }, + "network": { + "label": "Rede", + "enabled": { + "label": "Exibir o widget" + }, + "span": { + "label": "Extensão da Coluna" + }, + "compactView": { + "label": "Mostrar como texto (compacto)" + } + }, + "cpu": { + "label": "CPU", + "enabled": { + "label": "Exibir o widget" + }, + "span": { + "label": "Extensão da Coluna" + }, + "multiView": { + "label": "Exibir como multi-drive-view" + } + }, + "ram": { + "label": "RAM", + "enabled": { + "label": "Exibir o widget" + }, + "span": { + "label": "Extensão da Coluna" + } + }, + "gpu": { + "label": "GPU", + "enabled": { + "label": "Exibir o widget" + }, + "span": { + "label": "Extensão da Coluna" + } + } } } }, @@ -28,7 +82,11 @@ "title": "Dash.", "errors": { "noService": "Nenhum serviço Dash. encontrado. Por favor, adicione um ao seu painel Homarr ou defina uma URL para o Dash. nas opções do módulo", - "noInformation": "Não é possível obter informações do Dash. Você está executando a versão mais recente?" + "noInformation": "Não é possível obter informações do Dash. Você está executando a versão mais recente?", + "protocolDowngrade": { + "title": "Downgrade de protocolo detectado", + "text": "O protocolo da sua instancia Dash. está sendo inseguro. Uma vez que HTTP não é criptografado e os invasores podem abusar dessa conexão. Certifique-se de que o Dash. está sendo executado em HTTPS ou configure Homarr para HTTP (não recomendado)." + } }, "graphs": { "storage": { @@ -46,7 +104,7 @@ "cpu": { "title": "CPU" }, - "memory": { + "ram": { "title": "RAM" }, "gpu": { diff --git a/public/locales/pt/modules/iframe.json b/public/locales/pt/modules/iframe.json new file mode 100644 index 000000000..d1786265a --- /dev/null +++ b/public/locales/pt/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "IFrame", + "description": "Incorporar qualquer conteúdo da internet. Alguns sites podem restringir o acesso.", + "settings": { + "title": "Configurações do IFrame", + "embedUrl": { + "label": "Incorporar URL" + }, + "allowFullScreen": { + "label": "Permitir tela cheia" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "Insira uma URL", + "text": "Certifique-se de que você inseriu um endereço válido na configuração do seu widget" + } + } + } +} \ No newline at end of file diff --git a/public/locales/pt/modules/media-server.json b/public/locales/pt/modules/media-server.json new file mode 100644 index 000000000..622f17a53 --- /dev/null +++ b/public/locales/pt/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Servidor de Mídia", + "description": "Interagir com o seu servidor de media Jellyfin ou Plex", + "settings": { + "title": "Configurações para o widget do servidor de mídia" + } + }, + "card": { + "table": { + "header": { + "session": "Sessão", + "user": "Usuário", + "currentlyPlaying": "Tocando agora" + } + }, + "errors": { + "general": { + "title": "Não foi possível carregar o conteúdo", + "text": "Não foi possível obter informações do servidor. Por favor, verifique os logs para mais detalhes" + } + } + } +} \ No newline at end of file diff --git a/public/locales/pt/modules/rss.json b/public/locales/pt/modules/rss.json new file mode 100644 index 000000000..ef0b67e7f --- /dev/null +++ b/public/locales/pt/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "Widget RSS", + "description": "Pega os itens de um feed RSS e os exibe. Geralmente usado para notícias on-line", + "settings": { + "title": "Configurações para o widget RSS", + "rssFeedUrl": { + "label": "URL do feed RSS" + } + } + }, + "card": { + "errors": { + "general": { + "title": "Não foi possível recuperar o feed RSS", + "text": "Houve um problema ao alcançar o feed RSS. Certifique-se de que você configurou o feed corretamente e use uma URL de RSS válido, e que corresponda à especificação padrão oficial. Depois de atualizar o feed, talvez seja necessário salvar o painel de controle e atualizar a página." + } + } + } +} \ No newline at end of file diff --git a/public/locales/pt/modules/video-stream.json b/public/locales/pt/modules/video-stream.json new file mode 100644 index 000000000..b3e624dcd --- /dev/null +++ b/public/locales/pt/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Transmissão de vídeo", + "description": "Incorporar um stream de vídeo ou vídeo de uma câmera ou de um site", + "settings": { + "title": "Configurações para o widget de transmissão de vídeo", + "FeedUrl": { + "label": "url do feed" + }, + "autoPlay": { + "label": "Reprodução automática" + }, + "muted": { + "label": "Silenciar áudio" + }, + "controls": { + "label": "Controles do reprodutor de vídeo" + } + } + }, + "errors": { + "invalidStream": "Transmissão inválida" + } +} \ No newline at end of file diff --git a/public/locales/pt/settings/common.json b/public/locales/pt/settings/common.json index 75c9a66d2..086096ce3 100644 --- a/public/locales/pt/settings/common.json +++ b/public/locales/pt/settings/common.json @@ -10,19 +10,19 @@ }, "credits": { "madeWithLove": "Feito com ❤️ por @", - "thirdPartyContent": "", + "thirdPartyContent": "Ver conteúdo de terceiros", "thirdPartyContentTable": { - "dependencyName": "", + "dependencyName": "Dependência", "dependencyVersion": "Versão" } }, "grow": "Grelha de cultivo (ocupar todo o espaço)", "layout": { "preview": { - "title": "", - "subtitle": "" + "title": "Pré-visualizar", + "subtitle": "As alterações serão salvas automaticamente" }, - "divider": "", + "divider": "Opções de Layout", "main": "Principal", "sidebar": "Sidebar", "cannotturnoff": "Não pode ser desligado", diff --git a/public/locales/pt/settings/customization/color-selector.json b/public/locales/pt/settings/customization/color-selector.json index e527837a2..98a222ed5 100644 --- a/public/locales/pt/settings/customization/color-selector.json +++ b/public/locales/pt/settings/customization/color-selector.json @@ -1,3 +1,4 @@ { + "colors": "Cores", "suffix": "{{color}} cor" } \ No newline at end of file diff --git a/public/locales/pt/settings/customization/general.json b/public/locales/pt/settings/customization/general.json index ee9d30b5a..ac26367b1 100644 --- a/public/locales/pt/settings/customization/general.json +++ b/public/locales/pt/settings/customization/general.json @@ -1,21 +1,21 @@ { - "text": "", + "text": "As personalizações permitem que você configure e ajuste sua experiência com Homarr de acordo com suas preferências.", "accordeon": { "layout": { - "name": "", - "description": "" + "name": "Layout", + "description": "Ativar e desativar elementos em seus blocos de cabeçalho e painel de controle" }, "gridstack": { - "name": "", - "description": "" + "name": "Grade de ícones", + "description": "Personalizar o comportamento e as colunas da área do seu painel de controle" }, "pageMetadata": { - "name": "", - "description": "" + "name": "Metadado da página", + "description": "Ajustar títulos, logotipo e PWA" }, "appereance": { - "name": "", - "description": "" + "name": "Aparência", + "description": "Personalizar o plano de fundo, cores e aparência dos aplicativos" } } } \ No newline at end of file diff --git a/public/locales/pt/settings/customization/gridstack.json b/public/locales/pt/settings/customization/gridstack.json index 18c3d8233..cc4c2b280 100644 --- a/public/locales/pt/settings/customization/gridstack.json +++ b/public/locales/pt/settings/customization/gridstack.json @@ -1,10 +1,10 @@ { "columnsCount": { - "labelPreset": "", - "descriptionPreset": "", - "descriptionExceedsPreset": "" + "labelPreset": "Colunas em tamanho {{size}}", + "descriptionPreset": "Número de colunas quando a tela tem menos de {{pixels}} pixels de largura", + "descriptionExceedsPreset": "Número de colunas quando o tamanho da tela excede {{pixels}} pixels" }, - "unsavedChanges": "", - "applyChanges": "", - "defaultValues": "" + "unsavedChanges": "Você tem alterações não salvas. Clique no botão Aplicar alterações abaixo para aplicar e salvar.", + "applyChanges": "Aplicar alterações", + "defaultValues": "Valores padrão" } \ No newline at end of file diff --git a/public/locales/pt/settings/customization/page-appearance.json b/public/locales/pt/settings/customization/page-appearance.json index e7d3dfb89..1595854eb 100644 --- a/public/locales/pt/settings/customization/page-appearance.json +++ b/public/locales/pt/settings/customization/page-appearance.json @@ -1,28 +1,28 @@ { "pageTitle": { "label": "Título da página", - "description": "" + "description": "O título do painel no canto superior esquerdo" }, "metaTitle": { "label": "Meta Título", - "description": "" + "description": "O título, que está sendo exibido como o nome da sua aba" }, "logo": { "label": "Logo", - "description": "" + "description": "O logotipo do painel no canto superior esquerdo" }, "favicon": { "label": "Favicon", - "description": "" + "description": "O ícone, que está sendo usado na frente do nome da sua aba" }, "background": { "label": "Antecedentes" }, "customCSS": { "label": "CSS Personalizado", - "description": "", + "description": "Personalize todos os elementos no seu painel, recomendado apenas para usuários experientes", "placeholder": "O CSS personalizado será aplicado por último", - "applying": "" + "applying": "Aplicando CSS..." }, "buttons": { "submit": "Enviar" diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json index 3d52f738c..ffb4a3a17 100644 --- a/public/locales/ru/common.json +++ b/public/locales/ru/common.json @@ -27,7 +27,7 @@ }, "loading": "Загрузка...", "breakPoints": { - "small": "маленького", + "small": "небольшого", "medium": "среднего", "large": "большого" } diff --git a/public/locales/ru/layout/modals/about.json b/public/locales/ru/layout/modals/about.json index f21e47cc3..56bf6e8c0 100644 --- a/public/locales/ru/layout/modals/about.json +++ b/public/locales/ru/layout/modals/about.json @@ -3,11 +3,12 @@ "contact": "Проблемы или вопросы? Свяжитесь с нами!", "addToDashboard": "Добавить на панель", "metrics": { - "configurationSchemaVersion": "", - "configurationsCount": "", + "configurationSchemaVersion": "Версия схемы конфигурации", + "configurationsCount": "Доступные конфигурации", "version": "Версия", - "nodeEnvironment": "", - "i18n": "", - "locales": "" + "nodeEnvironment": "Окружение узла", + "i18n": "Загружено I18n переводов пространств имён", + "locales": "Настроено I18n локализаций", + "experimental_disableEditMode": "ЭКСПЕРИМЕНТАЛЬНЫЙ: Отключить режим редактирования" } } \ No newline at end of file diff --git a/public/locales/ru/layout/modals/add-app.json b/public/locales/ru/layout/modals/add-app.json index 595bcda96..d6ee7e981 100644 --- a/public/locales/ru/layout/modals/add-app.json +++ b/public/locales/ru/layout/modals/add-app.json @@ -39,7 +39,15 @@ "appearance": { "icon": { "label": "Иконка приложения", - "description": "Иконка, которая будет отображаться на панели." + "description": "Выберите иконку, которая будет отображаться на вашей панели. Выберите из {{suggestionsCount}} иконок или введите собственный URL-адрес", + "autocomplete": { + "title": "Результаты не найдены", + "text": "Попробуйте использовать более конкретное условие поиска. Если вы не можете найти нужную иконку, вставьте URL-адрес изображения выше для пользовательской иконки" + }, + "noItems": { + "title": "Загрузка внешних иконок", + "text": "Это может занять несколько секунд" + } } }, "integration": { diff --git a/public/locales/ru/modules/dashdot.json b/public/locales/ru/modules/dashdot.json index 7d281dcb5..f071ab01f 100644 --- a/public/locales/ru/modules/dashdot.json +++ b/public/locales/ru/modules/dashdot.json @@ -4,23 +4,77 @@ "description": "Показывает графики внешнего экземпляра Dash. в Homarr.", "settings": { "title": "Настройки для виджета Dash.", - "cpuMultiView": { - "label": "Показать все ядра ЦП" - }, - "storageMultiView": { - "label": "Хранилище с несколькими дисками" - }, - "useCompactView": { - "label": "Использовать компактный вид" - }, - "graphs": { - "label": "Графики" - }, "url": { "label": "URL-адрес Dash." }, "usePercentages": { "label": "Отображать проценты" + }, + "columns": { + "label": "Отображать столбцы" + }, + "graphHeight": { + "label": "Высота графиков" + }, + "graphsOrder": { + "label": "Графики (порядок)", + "storage": { + "label": "Хранилище", + "enabled": { + "label": "" + }, + "span": { + "label": "Размеры столбцов" + }, + "compactView": { + "label": "Показать в виде текста (компактный)" + }, + "multiView": { + "label": "" + } + }, + "network": { + "label": "Сеть", + "enabled": { + "label": "" + }, + "span": { + "label": "Размеры столбцов" + }, + "compactView": { + "label": "Показать в виде текста (компактный)" + } + }, + "cpu": { + "label": "ЦП", + "enabled": { + "label": "" + }, + "span": { + "label": "Размеры столбцов" + }, + "multiView": { + "label": "" + } + }, + "ram": { + "label": "ОЗУ", + "enabled": { + "label": "" + }, + "span": { + "label": "Размеры столбцов" + } + }, + "gpu": { + "label": "ГП", + "enabled": { + "label": "" + }, + "span": { + "label": "Размеры столбцов" + } + } } } }, @@ -28,7 +82,11 @@ "title": "Dash.", "errors": { "noService": "Не найдено ни одной службы Dash. Пожалуйста, добавьте его на панель Homarr или задайте URL-адрес Dash. в настройках модуля", - "noInformation": "Не удается получить информацию из Dash. - Вы используете последнюю версию?" + "noInformation": "Не удается получить информацию из Dash. - Вы используете последнюю версию?", + "protocolDowngrade": { + "title": "Обнаружено понижение версии протокола соединения", + "text": "Понижение версии протокола соединения с Dash. Это является угрозой безопасности, так как протокол HTTP не зашифрован и злоумышленники могут перехватить данное соединение. Убедитесь, что Dash. работает также и на протоколе HTTPS, или переведите Homarr на HTTP (не рекомендуется)." + } }, "graphs": { "storage": { @@ -46,7 +104,7 @@ "cpu": { "title": "ЦП" }, - "memory": { + "ram": { "title": "ОЗУ" }, "gpu": { diff --git a/public/locales/ru/modules/iframe.json b/public/locales/ru/modules/iframe.json new file mode 100644 index 000000000..51071876d --- /dev/null +++ b/public/locales/ru/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "IFrame", + "description": "Встраивать любой контент из интернета. Некоторые веб-сайты могут ограничивать доступ.", + "settings": { + "title": "Настройки IFrame", + "embedUrl": { + "label": "Вставить URL-адрес" + }, + "allowFullScreen": { + "label": "Разрешить полноэкранный режим" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "Введите URL-адрес", + "text": "Убедитесь, что вы ввели действительный адрес в конфигурации вашего виджета" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ru/modules/media-server.json b/public/locales/ru/modules/media-server.json new file mode 100644 index 000000000..0075dd67a --- /dev/null +++ b/public/locales/ru/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Медиасервер", + "description": "Взаимодействие с медиасервером Jellyfin или Plex", + "settings": { + "title": "Настройки для виджета медиасервера" + } + }, + "card": { + "table": { + "header": { + "session": "Сессия", + "user": "Пользователь", + "currentlyPlaying": "Сейчас играет" + } + }, + "errors": { + "general": { + "title": "Не удалось загрузить контент", + "text": "Не удалось получить информацию с сервера. Пожалуйста, проверьте логи для получения дополнительной информации" + } + } + } +} \ No newline at end of file diff --git a/public/locales/ru/modules/rss.json b/public/locales/ru/modules/rss.json new file mode 100644 index 000000000..fcca56515 --- /dev/null +++ b/public/locales/ru/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "Виджет RSS", + "description": "Захватывает элементы из RSS-канала и отображает их. Обычно используется для онлайн-новостей", + "settings": { + "title": "Настройки для виджета RSS", + "rssFeedUrl": { + "label": "URL адрес RSS-канала" + } + } + }, + "card": { + "errors": { + "general": { + "title": "Не удалось получить RSS-канал", + "text": "Возникла проблема при подключении к RSS-каналу. Убедитесь, что вы'правильно настроили канал и используете действительный URL адрес RSS, соответствующий официальной спецификации. После обновления канала, вам может потребоваться сохранить панель и обновить страницу." + } + } + } +} \ No newline at end of file diff --git a/public/locales/ru/modules/video-stream.json b/public/locales/ru/modules/video-stream.json new file mode 100644 index 000000000..6efa4a11b --- /dev/null +++ b/public/locales/ru/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Трансляция видео", + "description": "Встраивание видео или прямой трансляции видео с камеры или веб-сайта", + "settings": { + "title": "Настройки для виджета трансляции видео", + "FeedUrl": { + "label": "URL-адрес канала" + }, + "autoPlay": { + "label": "Автовоспроизведение" + }, + "muted": { + "label": "Отключить звук" + }, + "controls": { + "label": "Элементы управления видеоплеера" + } + } + }, + "errors": { + "invalidStream": "Некорректная трансляция" + } +} \ No newline at end of file diff --git a/public/locales/ru/settings/common.json b/public/locales/ru/settings/common.json index aa35f78f4..29c10d855 100644 --- a/public/locales/ru/settings/common.json +++ b/public/locales/ru/settings/common.json @@ -22,7 +22,7 @@ "title": "Предпросмотр", "subtitle": "Изменения будут сохранены автоматически" }, - "divider": "", + "divider": "Параметры макета", "main": "Главная", "sidebar": "Боковая панель", "cannotturnoff": "Невозможно отключить", diff --git a/public/locales/ru/settings/customization/general.json b/public/locales/ru/settings/customization/general.json index e8b397967..5e0720ab1 100644 --- a/public/locales/ru/settings/customization/general.json +++ b/public/locales/ru/settings/customization/general.json @@ -1,21 +1,21 @@ { - "text": "", + "text": "Настройки позволяют вам настроить и скорректировать свой опыт работы с Homarr в соответствии с вашими предпочтениями.", "accordeon": { "layout": { - "name": "", - "description": "" + "name": "Макет", + "description": "Включение и отключение элементов в заголовке и на панели" }, "gridstack": { - "name": "", - "description": "" + "name": "Сетка", + "description": "Настроить поведение и столбцы панели" }, "pageMetadata": { "name": "Метаданные страницы", - "description": "" + "description": "Настроить заголовки, логотип и PWA" }, "appereance": { - "name": "", - "description": "" + "name": "Внешний вид", + "description": "Настройка фона, цвета и внешнего вида приложений" } } } \ No newline at end of file diff --git a/public/locales/ru/settings/customization/gridstack.json b/public/locales/ru/settings/customization/gridstack.json index 18c3d8233..c2adf82ed 100644 --- a/public/locales/ru/settings/customization/gridstack.json +++ b/public/locales/ru/settings/customization/gridstack.json @@ -1,10 +1,10 @@ { "columnsCount": { - "labelPreset": "", - "descriptionPreset": "", - "descriptionExceedsPreset": "" + "labelPreset": "Столбцы {{size}} размера", + "descriptionPreset": "Количество столбцов при ширине экрана менее {{pixels}} пикселей", + "descriptionExceedsPreset": "Количество столбцов, когда размер экрана превышает {{pixels}} пикселей" }, - "unsavedChanges": "", - "applyChanges": "", - "defaultValues": "" + "unsavedChanges": "У вас есть несохранённые изменения. Нажмите кнопку «Применить», чтобы применить и сохранить изменения.", + "applyChanges": "Применить", + "defaultValues": "Значения по умолчанию" } \ No newline at end of file diff --git a/public/locales/ru/settings/customization/page-appearance.json b/public/locales/ru/settings/customization/page-appearance.json index 9143963e8..d4637e6de 100644 --- a/public/locales/ru/settings/customization/page-appearance.json +++ b/public/locales/ru/settings/customization/page-appearance.json @@ -5,7 +5,7 @@ }, "metaTitle": { "label": "Мета-заголовок", - "description": "Заголовок, отображаемый в качестве имени вашей вкладки" + "description": "Заголовок, который отображается как имя вкладки" }, "logo": { "label": "Логотип", @@ -13,16 +13,16 @@ }, "favicon": { "label": "Иконка", - "description": "Иконка, отображаемая во вкладке перед названием страницы" + "description": "Иконка, которая отображается во вкладке перед названием страницы" }, "background": { "label": "Фон" }, "customCSS": { "label": "Пользовательский CSS", - "description": "", + "description": "Настройте все элементы панели, рекомендуется только для опытных пользователей", "placeholder": "Пользовательский CSS будет применяться в последнюю очередь", - "applying": "" + "applying": "Применение CSS..." }, "buttons": { "submit": "Подтвердить" diff --git a/public/locales/ru/settings/general/config-changer.json b/public/locales/ru/settings/general/config-changer.json index 1b8bcad52..d8983405d 100644 --- a/public/locales/ru/settings/general/config-changer.json +++ b/public/locales/ru/settings/general/config-changer.json @@ -29,7 +29,7 @@ "message": "Конфигурация скопирована как {{configName}}" }, "configNotCopied": { - "title": "Невозможно скопировать конфигурацию", + "title": "Не удалось скопировать конфигурацию", "message": "Ваша конфигурация не была скопирована как {{configName}}" } } diff --git a/public/locales/sk/authentication/login.json b/public/locales/sk/authentication/login.json new file mode 100644 index 000000000..3e0e2bdba --- /dev/null +++ b/public/locales/sk/authentication/login.json @@ -0,0 +1,27 @@ +{ + "title": "Vitaj späť!", + "text": "Prosím zadajte heslo", + "form": { + "fields": { + "password": { + "label": "Heslo", + "placeholder": "Tvoje heslo" + } + }, + "buttons": { + "submit": "Prihlásiť sa" + } + }, + "notifications": { + "checking": { + "title": "Kontrola hesla", + "message": "Vaše heslo sa kontroluje..." + }, + "correct": { + "title": "Prihlásenie bolo úspešné, prebieha presmerovanie..." + }, + "wrong": { + "title": "Zadané heslo je nesprávne, skúste to znova." + } + } +} diff --git a/public/locales/sk/common.json b/public/locales/sk/common.json new file mode 100644 index 000000000..ac605abbf --- /dev/null +++ b/public/locales/sk/common.json @@ -0,0 +1,34 @@ +{ + "save": "Uložiť", + "about": "O aplikácii", + "cancel": "Zrušiť", + "close": "Zavrieť", + "delete": "Vymazať", + "ok": "OK", + "edit": "Upraviť", + "version": "Verzia", + "changePosition": "Zmeniť pozíciu", + "remove": "Odstrániť", + "removeConfirm": "Ste si istý ze chcete odstrániť {{item}} ?", + "sections": { + "settings": "Nastavenia", + "dangerZone": "Nebezpečná zóna" + }, + "secrets": { + "apiKey": "Api kľúč", + "username": "Používateľské meno", + "password": "Heslo" + }, + "tip": "Tip: ", + "time": { + "seconds": "sekundy", + "minutes": "minúty", + "hours": "hodiny" + }, + "loading": "Nahrávam...", + "breakPoints": { + "small": "malý", + "medium": "stredný", + "large": "veľký" + } +} \ No newline at end of file diff --git a/public/locales/sk/layout/element-selector/selector.json b/public/locales/sk/layout/element-selector/selector.json new file mode 100644 index 000000000..b838e36e1 --- /dev/null +++ b/public/locales/sk/layout/element-selector/selector.json @@ -0,0 +1,11 @@ +{ + "modal": { + "title": "Pridajte novú dlaždicu", + "text": "Dlaždice sú hlavným prvkom Homarr. Používajú sa na zobrazenie vašich aplikácií a ďalších informácií. Môžete pridať toľko dlaždíc, koľko chcete." + }, + "widgetDescription": "Mini aplikácie spolupracujú s vašimi aplikáciami, aby vám poskytli väčšiu kontrolu nad vašimi aplikáciami. Pred použitím zvyčajne vyžadujú dodatočnú konfiguráciu.", + "goBack": "Vráťte sa na predchádzajúci krok", + "actionIcon": { + "tooltip": "Pridajte dlaždicu" + } +} diff --git a/public/locales/sk/layout/header/actions/toggle-edit-mode.json b/public/locales/sk/layout/header/actions/toggle-edit-mode.json new file mode 100644 index 000000000..8e3f2b94f --- /dev/null +++ b/public/locales/sk/layout/header/actions/toggle-edit-mode.json @@ -0,0 +1,11 @@ +{ + "description": "V režime úprav môžete upravovať dlaždice a konfigurovať aplikácie. Zmeny sa neuložia, kým neukončíte režim úprav.", + "button": { + "disabled": "Vstúpte do režimu úprav", + "enabled": "Ukončiť a uložiť" + }, + "popover": { + "title": "Režim úprav je povolený pre veľkosť <1>{{size}}", + "text": "Teraz môžete svoje aplikácie upravovať a konfigurovať. Zmeny sa neuložia, kým neukončíte režim úprav" + } +} diff --git a/public/locales/sk/layout/mobile/drawer.json b/public/locales/sk/layout/mobile/drawer.json new file mode 100644 index 000000000..1c5c99ae5 --- /dev/null +++ b/public/locales/sk/layout/mobile/drawer.json @@ -0,0 +1,3 @@ +{ + "title": "{{position}} bočný panel" +} diff --git a/public/locales/sk/layout/modals/about.json b/public/locales/sk/layout/modals/about.json new file mode 100644 index 000000000..f61e4254d --- /dev/null +++ b/public/locales/sk/layout/modals/about.json @@ -0,0 +1,14 @@ +{ + "description": "Homarr je elegantný, moderný prístrojový panel, ktorý vám poskytne všetky aplikácie a služby na dosah ruky. Pomocou aplikácie Homarr môžete mať prístup ku všetkému a ovládať ho na jednom pohodlnom mieste. Homarr sa bezproblémovo integruje s aplikáciami, ktoré ste pridali, poskytuje vám cenné informácie a umožňuje vám úplnú kontrolu. Inštalácia je jednoduchá a aplikácia Homarr podporuje širokú škálu metód nasadenia.", + "contact": "Máte problémy alebo otázky? Spojte sa s nami!", + "addToDashboard": "Pridať na prístrojovú dosku", + "metrics": { + "configurationSchemaVersion": "Verzia konfiguračnej schémy", + "configurationsCount": "Dostupné konfigurácie", + "version": "Verzia", + "nodeEnvironment": "Node prostredie", + "i18n": "Načítané prekladové priestory I18n", + "locales": "Nakonfigurované lokality I18n", + "experimental_disableEditMode": "EXPERIMENTÁLNE: Zakázanie režimu úprav" + } +} \ No newline at end of file diff --git a/public/locales/sk/layout/modals/add-app.json b/public/locales/sk/layout/modals/add-app.json new file mode 100644 index 000000000..5e3c79f2f --- /dev/null +++ b/public/locales/sk/layout/modals/add-app.json @@ -0,0 +1,76 @@ +{ + "tabs": { + "general": "Všeobecné", + "behaviour": "Správanie", + "network": "Sieť", + "appearance": "Vzhľad", + "integration": "Integrácia" + }, + "general": { + "appname": { + "label": "Názov aplikácie", + "description": "Používa sa na zobrazenie aplikácie na palubnej doske." + }, + "internalAddress": { + "label": "Interná adresa", + "description": "Interná IP adresa aplikácie." + }, + "externalAddress": { + "label": "Externá adresa", + "description": "URL, ktorá sa otvorí po kliknutí na aplikáciu." + } + }, + "behaviour": { + "isOpeningNewTab": { + "label": "Otvoriť na novej karte", + "description": "Otvorenie aplikácie na novej karte namiesto aktuálnej." + } + }, + "network": { + "statusChecker": { + "label": "Kontrola stavu", + "description": "Pomocou jednoduchej požiadavky HTTP skontroluje, či je vaša aplikácia online." + }, + "statusCodes": { + "label": "Stavové kódy HTTP", + "description": "Stavové kódy HTTP, ktoré sa považujú za online." + } + }, + "appearance": { + "icon": { + "label": "Ikona aplikácie", + "description": "Vyberte si ikonu, ktorá sa má zobrazovať na prístrojovej doske. Vyberte si z ikon {{suggestionsCount}} alebo zadajte vlastnú adresu URL", + "autocomplete": { + "title": "Nenašli sa žiadne výsledky", + "text": "Skúste použiť konkrétnejší vyhľadávací výraz. Ak nemôžete nájsť požadovanú ikonu, vložte vyššie uvedenú adresu URL obrázka pre vlastnú ikonu" + }, + "noItems": { + "title": "Načítanie externých ikon", + "text": "Môže to trvať niekoľko sekúnd" + } + } + }, + "integration": { + "type": { + "label": "Konfigurácia integrácií", + "description": "Konfigurácia integrácie, ktorá sa použije na pripojenie k vašej aplikácii.", + "placeholder": "Výber integrácie", + "defined": "Definované", + "undefined": "Nedefinované", + "public": "Verejné", + "private": "Súkromné", + "explanationPrivate": "Súkromné tajomstvo sa odošle na server iba raz. Po obnovení stránky prehliadačom sa už nikdy neodošle.", + "explanationPublic": "Verejné tajomstvo sa vždy odošle klientovi a je prístupné cez API. Nemalo by obsahovať žiadne dôverné hodnoty, ako sú používateľské mená, heslá, tokeny, certifikáty a podobne!" + }, + "secrets": { + "description": "Ak chcete aktualizovať tajomstvo, zadajte hodnotu a kliknite na tlačidlo Uložiť. Ak chcete odstrániť tajomstvo, použite tlačidlo vymazať.", + "warning": "Vaše poverovacie údaje slúžia ako prístupové údaje pre vaše integrácie a nikdy by ste ich nemali zdieľať s nikým iným. Tím Homarr vás nikdy nebude žiadať o prístupové údaje. Dbajte na to, aby ste svoje tajné údaje bezpečne uchovávali a spravovali.", + "clear": "Vymazať tajomstvo", + "save": "Uložiť tajomstvo", + "update": "Aktualizovať tajomstvo" + } + }, + "validation": { + "popover": "Váš formulár obsahuje neplatné údaje. Preto ho nemožno uložiť. Vyriešte všetky problémy a znovu kliknite na toto tlačidlo, aby ste uložili svoje zmeny" + } +} diff --git a/public/locales/sk/layout/modals/change-position.json b/public/locales/sk/layout/modals/change-position.json new file mode 100644 index 000000000..05e29163b --- /dev/null +++ b/public/locales/sk/layout/modals/change-position.json @@ -0,0 +1,8 @@ +{ + "xPosition": "Poloha osi X", + "width": "Šírka", + "height": "Výška", + "yPosition": "Poloha osi Y", + "zeroOrHigher": "0 alebo vyššia", + "betweenXandY": "Medzi {{min}} a {{max}}" +} \ No newline at end of file diff --git a/public/locales/sk/layout/modals/icon-picker.json b/public/locales/sk/layout/modals/icon-picker.json new file mode 100644 index 000000000..4b5f8f05d --- /dev/null +++ b/public/locales/sk/layout/modals/icon-picker.json @@ -0,0 +1,7 @@ +{ + "iconPicker": { + "textInputPlaceholder": "Vyhľadajte niečo...", + "searchLimitationTitle": "Obmedzené na 30 výsledkov", + "searchLimitationMessage": "Výsledky vyhľadávania boli obmedzené na 30, pretože bolo príliš veľa zhod" + } +} \ No newline at end of file diff --git a/public/locales/sk/modules/calendar.json b/public/locales/sk/modules/calendar.json new file mode 100644 index 000000000..133dffedc --- /dev/null +++ b/public/locales/sk/modules/calendar.json @@ -0,0 +1,18 @@ +{ + "descriptor": { + "name": "Kalendár", + "description": "Zobraz kalendár s pripravovanými vydaniami z podporovaných integrácií.", + "settings": { + "title": "Nastavenia mini aplikácie Kalendár", + "useSonarrv4": { + "label": "Použi Sonarr v4 API" + }, + "sundayStart": { + "label": "Začni týždeň v Nedeľu" + }, + "radarrReleaseType": { + "label": "Typ Radarr releasu" + } + } + } +} diff --git a/public/locales/sk/modules/common-media-cards.json b/public/locales/sk/modules/common-media-cards.json new file mode 100644 index 000000000..c4c28fcdb --- /dev/null +++ b/public/locales/sk/modules/common-media-cards.json @@ -0,0 +1,6 @@ +{ + "buttons": { + "play": "Prehraj", + "request": "Požiadavka" + } +} \ No newline at end of file diff --git a/public/locales/sk/modules/common.json b/public/locales/sk/modules/common.json new file mode 100644 index 000000000..748c7a306 --- /dev/null +++ b/public/locales/sk/modules/common.json @@ -0,0 +1,10 @@ +{ + "settings": { + "label": "Nastavenia" + }, + "errors": { + "unmappedOptions": { + "text": "Zistil sa nepoužitý parameter v konfigurácii
{{key}}. Homarr nedokáže interpretovať a použiť tento parameter. Ak sa chcete vyhnúť akémukoľvek neočakávanému správaniu, zálohujte svoju konfiguráciu a opravte ju." + } + } +} diff --git a/public/locales/sk/modules/dashdot.json b/public/locales/sk/modules/dashdot.json new file mode 100644 index 000000000..db1c21731 --- /dev/null +++ b/public/locales/sk/modules/dashdot.json @@ -0,0 +1,115 @@ +{ + "descriptor": { + "name": "Dash.", + "description": "Zobrazovať grafy externej Dash. vo vnútri Homarru.", + "settings": { + "title": "Nastavenia pre Dash. mini aplikácie", + "url": { + "label": "Dash. URL adresa" + }, + "usePercentages": { + "label": "Zobraziť percentá" + }, + "columns": { + "label": "Zobraziť stĺpce" + }, + "graphHeight": { + "label": "Výška grafov" + }, + "graphsOrder": { + "label": "Grafy (poradie)", + "storage": { + "label": "Úložisko", + "enabled": { + "label": "Zobraziť v miniaplikácii" + }, + "span": { + "label": "Rozpätie stĺpca" + }, + "compactView": { + "label": "Zobraziť ako text (kompaktný)" + }, + "multiView": { + "label": "Zobraziť ako multi-drive-view" + } + }, + "network": { + "label": "Sieť", + "enabled": { + "label": "Zobraziť v miniaplikácii" + }, + "span": { + "label": "Rozpätie stĺpca" + }, + "compactView": { + "label": "Zobraziť ako text (kompaktný)" + } + }, + "cpu": { + "label": "CPU", + "enabled": { + "label": "Zobraziť v miniaplikácii" + }, + "span": { + "label": "Rozpätie stĺpca" + }, + "multiView": { + "label": "Zobraziť ako viacjadrové zobrazenie" + } + }, + "ram": { + "label": "RAM", + "enabled": { + "label": "Zobraziť v miniaplikácii" + }, + "span": { + "label": "Rozpätie stĺpca" + } + }, + "gpu": { + "label": "GPU", + "enabled": { + "label": "Zobraziť v miniaplikácii" + }, + "span": { + "label": "Rozpätie stĺpca" + } + } + } + } + }, + "card": { + "title": "Dash.", + "errors": { + "noService": "Žiadna Dash. služba nájdená. Pridajte službu na svoj informačný panel Homarr alebo nastavte Dash. URL v možnostiach modulu", + "noInformation": "Nie je možné získať informácie z Dash. - používate najnovšiu verziu?", + "protocolDowngrade": { + "title": "Zistený downgrade protokol", + "text": "Protokol k vášmu Dash. inštancii sa downgraduje. Ide o bezpečnostné riziko, pretože HTTP je nešifrované a útočníci by mohli toto pripojenie zneužiť. Uistite sa, že Dash. beží aj na HTTPS alebo downgradujte Homarr na HTTP (neodporúča sa)." + } + }, + "graphs": { + "storage": { + "title": "Úložisko", + "label": "Úložisko:" + }, + "network": { + "title": "Sieť", + "label": "Sieť:", + "metrics": { + "download": "Dole", + "upload": "Hore" + } + }, + "cpu": { + "title": "CPU" + }, + "ram": { + "title": "RAM" + }, + "gpu": { + "title": "GPU" + } + } + } +} diff --git a/public/locales/sk/modules/date.json b/public/locales/sk/modules/date.json new file mode 100644 index 000000000..31f9c7d70 --- /dev/null +++ b/public/locales/sk/modules/date.json @@ -0,0 +1,12 @@ +{ + "descriptor": { + "name": "Dátum a čas", + "description": "Zobrazuje aktuálny dátum a čas.", + "settings": { + "title": "Nastavenia miniaplikácie Dátum a čas", + "display24HourFormat": { + "label": "Zobraziť celý čas (24 hodín)" + } + } + } +} diff --git a/public/locales/sk/modules/dlspeed.json b/public/locales/sk/modules/dlspeed.json new file mode 100644 index 000000000..9d14cc621 --- /dev/null +++ b/public/locales/sk/modules/dlspeed.json @@ -0,0 +1,35 @@ +{ + "descriptor": { + "name": "Rýchlosť sťahovania", + "description": "Zobrazuje rýchlosť sťahovania a nahrávania podporovaných integrácií." + }, + "card": { + "table": { + "header": { + "name": "Názov", + "size": "Veľkosť", + "download": "Dole", + "upload": "Hore", + "estimatedTimeOfArrival": "Odhad", + "progress": "Stav" + }, + "body": { + "nothingFound": "Nenašli sa žiadne torrenty" + } + }, + "lineChart": { + "title": "Aktuálna rýchlosť sťahovania", + "download": "Stiahnuť: {{download}}", + "upload": "Nahrať: {{upload}}", + "timeSpan": "pred {{seconds}} sekundami", + "totalDownload": "Stiahnuť: {{download}}/s", + "totalUpload": "Nahrať: {{upload}}/s" + }, + "errors": { + "noDownloadClients": { + "title": "Nenašli sa žiadni podporovaní klienti na sťahovanie!", + "text": "Ak chcete zobraziť aktuálne stiahnuté súbory, pridajte službu sťahovania" + } + } + } +} diff --git a/public/locales/sk/modules/docker.json b/public/locales/sk/modules/docker.json new file mode 100644 index 000000000..34ea5f4a1 --- /dev/null +++ b/public/locales/sk/modules/docker.json @@ -0,0 +1,83 @@ +{ + "descriptor": { + "name": "Docker", + "description": "Umožňuje vám jednoducho zobraziť a spravovať všetky vaše kontajnery Docker." + }, + "search": { + "placeholder": "Vyhľadávajte podľa názvu kontajnera alebo obrazu" + }, + "table": { + "header": { + "name": "Názov", + "image": "Obraz", + "ports": "Porty", + "state": "Stav" + }, + "body": { + "portCollapse": "{{ports}} viac" + }, + "states": { + "running": "Spustené", + "created": "Vytvorené", + "stopped": "Zastavené", + "unknown": "Neznámy" + } + }, + "actionBar": { + "addService": { + "title": "Pridať aplikáciu", + "message": "Pridanie aplikácie do aplikácie Homarr" + }, + "restart": { + "title": "Reštartovať" + }, + "stop": { + "title": "Zastaviť" + }, + "start": { + "title": "Spustiť" + }, + "refreshData": { + "title": "Obnoviť údaje" + }, + "remove": { + "title": "Odstrániť" + }, + "addToHomarr": { + "title": "Pridať do Homarr" + } + }, + "actions": { + "start": { + "start": "Štartuje", + "end": "Začaté" + }, + "stop": { + "start": "Zastavovanie", + "end": "Zastavené" + }, + "restart": { + "start": "Reštartovanie", + "end": "Reštartované" + }, + "remove": { + "start": "Odstraňujem", + "end": "Odstránené" + } + }, + "errors": { + "integrationFailed": { + "title": "Integrácia Dockera zlyhala", + "message": "Zabudli ste pripojiť docker socket?" + }, + "unknownError": { + "title": "Došlo k chybe" + }, + "oneServiceAtATime": { + "title": "Prosím, pridávajte vždy len jednu aplikáciu alebo službu!" + } + }, + "actionIcon": { + "tooltip": "Docker" + } +} diff --git a/public/locales/sk/modules/iframe.json b/public/locales/sk/modules/iframe.json new file mode 100644 index 000000000..1200294c7 --- /dev/null +++ b/public/locales/sk/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "IFrame", + "description": "Vložte akýkoľvek obsah z internetu. Niektoré webové stránky môžu obmedziť prístup.", + "settings": { + "title": "Nastavenia IFrame", + "embedUrl": { + "label": "Vložiť adresu URL" + }, + "allowFullScreen": { + "label": "Povoliť celú obrazovku" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "Zadajte adresu URL", + "text": "Skontrolujte, či ste v konfigurácii mini aplikácie zadali platnú adresu" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sk/modules/media-server.json b/public/locales/sk/modules/media-server.json new file mode 100644 index 000000000..b1ab2f32a --- /dev/null +++ b/public/locales/sk/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Multimediálny Server", + "description": "Interakcia s mediálnym serverom Jellyfin alebo Plex", + "settings": { + "title": "Nastavenia mini aplikácie mediálneho servera" + } + }, + "card": { + "table": { + "header": { + "session": "Relácia", + "user": "Používateľ", + "currentlyPlaying": "Momentálne sa prehráva" + } + }, + "errors": { + "general": { + "title": "Nie je možné načítať obsah", + "text": "Nie je možné načítať informácie zo servera. Podrobnejšie informácie nájdete v denníkoch" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sk/modules/overseerr.json b/public/locales/sk/modules/overseerr.json new file mode 100644 index 000000000..4cb61fa45 --- /dev/null +++ b/public/locales/sk/modules/overseerr.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "Overseerr", + "description": "Umožňuje vyhľadávať a pridávať médiá z Overseerr alebo Jellyseerr." + }, + "popup": { + "item": { + "buttons": { + "askFor": "Požiadajte o {{title}}", + "cancel": "Zrušiť", + "request": "Požiadavka" + }, + "alerts": { + "automaticApproval": { + "title": "Používanie kľúča API", + "text": "Táto žiadosť bude automaticky schválená" + } + } + }, + "seasonSelector": { + "caption": "Označte série, ktoré chcete prevziať", + "table": { + "header": { + "season": "Séria", + "numberOfEpisodes": "Počet epizód" + } + } + } + } +} diff --git a/public/locales/sk/modules/ping.json b/public/locales/sk/modules/ping.json new file mode 100644 index 000000000..452bbe40c --- /dev/null +++ b/public/locales/sk/modules/ping.json @@ -0,0 +1,11 @@ +{ + "descriptor": { + "name": "Ping", + "description": "Zobrazí indikátor stavu v závislosti od kódu odpovede HTTP danej adresy URL." + }, + "states": { + "online": "Online {{response}}", + "offline": "Offline {{response}}", + "loading": "Nahrávam..." + } +} diff --git a/public/locales/sk/modules/rss.json b/public/locales/sk/modules/rss.json new file mode 100644 index 000000000..155069e90 --- /dev/null +++ b/public/locales/sk/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "RSS mini aplikácia", + "description": "Stiahne položky z informačného kanála RSS a zobrazí ich. Bežne sa používa pre online správy", + "settings": { + "title": "Nastavenia mini aplikácie RSS", + "rssFeedUrl": { + "label": "URL adresa RSS" + } + } + }, + "card": { + "errors": { + "general": { + "title": "Nie je možné načítať kanál RSS", + "text": "Vyskytol sa problém s kontaktovaním informačného kanála RSS. Uistite sa, že ste ' informačný kanál správne nakonfigurovali a používate platnú adresu URL RSS, ktorá zodpovedá oficiálnej štandardnej špecifikácii. Po aktualizácii informačného kanála možno budete musieť uložiť informačný panel a obnoviť stránku." + } + } + } +} \ No newline at end of file diff --git a/public/locales/sk/modules/search.json b/public/locales/sk/modules/search.json new file mode 100644 index 000000000..730319b84 --- /dev/null +++ b/public/locales/sk/modules/search.json @@ -0,0 +1,30 @@ +{ + "descriptor": { + "name": "Vyhľadávací panel", + "description": "Vyhľadávací panel, ktorý umožňuje vyhľadávať vo vlastnom vyhľadávači, službe YouTube a podporovaných integráciách." + }, + "input": { + "placeholder": "Vyhľadajte na webe..." + }, + "switched-to": "Prepnúť na", + "searchEngines": { + "search": { + "name": "Web", + "description": "Hľadať..." + }, + "youtube": { + "name": "Youtube", + "description": "Vyhľadať na Youtube" + }, + "torrents": { + "name": "Torrenty", + "description": "Vyhľadávanie torrentov" + }, + "overseerr": { + "name": "Overseerr", + "description": "Vyhľadajte filmy a televízne relácie na Overseerr" + } + }, + "tip": "Pomocou skratky môžete vybrať panel vyhľadávania ", + "switchedSearchEngine": "Prepnuté na vyhľadávanie pomocou {{searchEngine}}" +} diff --git a/public/locales/sk/modules/torrents-status.json b/public/locales/sk/modules/torrents-status.json new file mode 100644 index 000000000..fffdad718 --- /dev/null +++ b/public/locales/sk/modules/torrents-status.json @@ -0,0 +1,72 @@ +{ + "descriptor": { + "name": "Torrent", + "description": "Zobrazí zoznam torrentov z podporovaných klientov Torrent.", + "settings": { + "title": "Nastavenia mini aplikácie Torrent", + "refreshInterval": { + "label": "Interval obnovovania (v sekundách)" + }, + "displayCompletedTorrents": { + "label": "Zobraz dokončené torrenty" + }, + "displayStaleTorrents": { + "label": "Zobraz zastarané torrenty" + } + } + }, + "card": { + "footer": { + "error": "Chyba", + "lastUpdated": "Naposledy aktualizované pred {{time}}" + }, + "table": { + "header": { + "name": "Názov", + "size": "Veľkosť", + "download": "Dole", + "upload": "Hore", + "estimatedTimeOfArrival": "Odhad", + "progress": "Stav" + }, + "item": { + "text": "Spravuje {{appName}}, {{ratio}} pomer" + }, + "body": { + "nothingFound": "Nenašli sa žiadne torrenty" + } + }, + "lineChart": { + "title": "Aktuálna rýchlosť sťahovania", + "download": "Stiahnuť: {{download}}", + "upload": "Nahrať: {{upload}}", + "timeSpan": "pred {{seconds}} sekundami", + "totalDownload": "Stiahnuť: {{download}}/s", + "totalUpload": "Nahrať: {{upload}}/s" + }, + "errors": { + "noDownloadClients": { + "title": "Nenašli sa žiadni podporovaní klienti na sťahovanie!", + "text": "Pridanie podporovaného klienta Torrent na zobrazenie aktuálnych stiahnutí" + }, + "generic": { + "title": "Vyskytla sa neočakávaná chyba", + "text": "Homarr nedokázal komunikovať s vašimi klientmi Torrent. Skontrolujte prosím svoju konfiguráciu" + } + }, + "loading": { + "title": "Nahrávam..." + }, + "popover": { + "introductionPrefix": "Spravovaný", + "metrics": { + "queuePosition": "Pozícia vo fronte - {{position}}", + "progress": "Stav - {{progress}}%", + "totalSelectedSize": "Spolu - {{totalSize}}", + "state": "Stav - {{state}}", + "ratio": "Pomer -", + "completed": "Dokončené" + } + } + } +} diff --git a/public/locales/sk/modules/usenet.json b/public/locales/sk/modules/usenet.json new file mode 100644 index 000000000..497134150 --- /dev/null +++ b/public/locales/sk/modules/usenet.json @@ -0,0 +1,49 @@ +{ + "descriptor": { + "name": "Usenet", + "description": "Umožňuje vám zobraziť a spravovať vašu inštanciu Usenet." + }, + "card": { + "errors": { + "noDownloadClients": { + "title": "Nenašli sa žiadni podporovaní klienti na sťahovanie!", + "text": "Ak chcete zobraziť aktuálne stiahnuté súbory, pridajte podporovaného klienta Usenet Download Client" + } + } + }, + "tabs": { + "queue": "Fronta", + "history": "História" + }, + "info": { + "sizeLeft": "Veľkosť vľavo", + "paused": "Pozastavené" + }, + "queue": { + "header": { + "name": "Názov", + "size": "Veľkosť", + "eta": "Odhad", + "progress": "Stav" + }, + "empty": "Prázdny", + "error": { + "title": "Chyba", + "message": "Došlo k chybe" + }, + "paused": "Pozastavené" + }, + "history": { + "header": { + "name": "Názov", + "size": "Veľkosť", + "duration": "Trvanie" + }, + "empty": "Prázdny", + "error": { + "title": "Chyba", + "message": "Chyba pri načítavaní histórie" + }, + "paused": "Pozastavené" + } +} diff --git a/public/locales/sk/modules/video-stream.json b/public/locales/sk/modules/video-stream.json new file mode 100644 index 000000000..669d1b86b --- /dev/null +++ b/public/locales/sk/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Video stream", + "description": "Vloženie videoprenosu alebo videa z kamery alebo webovej lokality", + "settings": { + "title": "Nastavenia pre mini aplikáciu videostreamu", + "FeedUrl": { + "label": "Url adresa" + }, + "autoPlay": { + "label": "Automatické prehrávanie" + }, + "muted": { + "label": "Stlmiť zvuk" + }, + "controls": { + "label": "Ovládacie prvky prehrávača videa" + } + } + }, + "errors": { + "invalidStream": "Neplatný tok" + } +} \ No newline at end of file diff --git a/public/locales/sk/modules/weather.json b/public/locales/sk/modules/weather.json new file mode 100644 index 000000000..ba48ecce1 --- /dev/null +++ b/public/locales/sk/modules/weather.json @@ -0,0 +1,33 @@ +{ + "descriptor": { + "name": "Počasie", + "description": "Zobrazí aktuálne informácie o počasí na nastavenom mieste.", + "settings": { + "title": "Nastavenia mini aplikácie počasia", + "displayInFahrenheit": { + "label": "Zobrazenie vo stupňoch Fahrenheita" + }, + "location": { + "label": "Poloha počasia" + } + } + }, + "card": { + "weatherDescriptions": { + "clear": "Jasno", + "mainlyClear": "Prevažne jasno", + "fog": "Hmla", + "drizzle": "Mrholenie", + "freezingDrizzle": "Mrznúce mrholenie", + "rain": "Dážď", + "freezingRain": "Mrznúci dážď", + "snowFall": "Sneženie", + "snowGrains": "Snehové zrná", + "rainShowers": "Prehánky", + "snowShowers": "Snehové prehánky", + "thunderstorm": "Búrka", + "thunderstormWithHail": "Búrka s krúpami", + "unknown": "Neznámy" + } + } +} diff --git a/public/locales/sk/settings/common.json b/public/locales/sk/settings/common.json new file mode 100644 index 000000000..2c42d6169 --- /dev/null +++ b/public/locales/sk/settings/common.json @@ -0,0 +1,38 @@ +{ + "title": "Nastavenia", + "tooltip": "Nastavenia", + "tabs": { + "common": "Spoločné", + "customizations": "Prispôsobenia" + }, + "tips": { + "configTip": "Nahrajte svoj konfiguračný súbor presunutím myšou na stránku!" + }, + "credits": { + "madeWithLove": "Vyrobené z ❤️ od @", + "thirdPartyContent": "Pozrite si obsah tretích strán", + "thirdPartyContentTable": { + "dependencyName": "Závislosť", + "dependencyVersion": "Verzia" + } + }, + "grow": "Zväčšiť mriežku (zabrať všetok priestor)", + "layout": { + "preview": { + "title": "Náhľad", + "subtitle": "Zmeny sa uložia automaticky" + }, + "divider": "Možnosti rozloženia", + "main": "Hlavný", + "sidebar": "Bočný panel", + "cannotturnoff": "Nedá sa vypnúť", + "dashboardlayout": "Rozloženie dashboardu", + "enablersidebar": "Povoliť pravý bočný panel", + "enablelsidebar": "Povoliť ľavý bočný panel", + "enablesearchbar": "Povoliť panel vyhľadávania", + "enabledocker": "Povoliť Docker integráciu", + "enableping": "Povoliť pingy", + "enablelsidebardesc": "Voliteľné. Dá sa použiť iba pre aplikácie a integrácie", + "enablersidebardesc": "Voliteľné. Dá sa použiť iba pre aplikácie a integrácie" + } +} diff --git a/public/locales/sk/settings/customization/app-width.json b/public/locales/sk/settings/customization/app-width.json new file mode 100644 index 000000000..f5f3142e2 --- /dev/null +++ b/public/locales/sk/settings/customization/app-width.json @@ -0,0 +1,3 @@ +{ + "label": "Šírka aplikácie" +} \ No newline at end of file diff --git a/public/locales/sk/settings/customization/color-selector.json b/public/locales/sk/settings/customization/color-selector.json new file mode 100644 index 000000000..b45164892 --- /dev/null +++ b/public/locales/sk/settings/customization/color-selector.json @@ -0,0 +1,4 @@ +{ + "colors": "Farby", + "suffix": "{{color}} farba" +} \ No newline at end of file diff --git a/public/locales/sk/settings/customization/general.json b/public/locales/sk/settings/customization/general.json new file mode 100644 index 000000000..ebcf73066 --- /dev/null +++ b/public/locales/sk/settings/customization/general.json @@ -0,0 +1,21 @@ +{ + "text": "Prispôsobenia vám umožňujú konfigurovať a prispôsobiť si prácu s aplikáciou Homarr podľa vašich preferencií.", + "accordeon": { + "layout": { + "name": "Rozloženie", + "description": "Povolenie a zakázanie prvkov na dlaždiciach záhlavia a prístrojového panela" + }, + "gridstack": { + "name": "Gridstack", + "description": "Prispôsobenie správania a stĺpcov v oblasti prístrojovej dosky" + }, + "pageMetadata": { + "name": "Metadáta stránky", + "description": "Úprava názvov, loga a PWA" + }, + "appereance": { + "name": "Vzhľad", + "description": "Prispôsobenie pozadia, farieb a vzhľadu aplikácií" + } + } +} \ No newline at end of file diff --git a/public/locales/sk/settings/customization/gridstack.json b/public/locales/sk/settings/customization/gridstack.json new file mode 100644 index 000000000..a5b541fa3 --- /dev/null +++ b/public/locales/sk/settings/customization/gridstack.json @@ -0,0 +1,10 @@ +{ + "columnsCount": { + "labelPreset": "Stĺpce vo veľkosti {{size}}", + "descriptionPreset": "Počet stĺpcov, keď je obrazovka široká menej ako {{pixels}} pixelov", + "descriptionExceedsPreset": "Počet stĺpcov, keď veľkosť obrazovky presahuje {{pixels}} pixelov" + }, + "unsavedChanges": "Máte neuložené zmeny. Kliknite na tlačidlo Použiť zmeny nižšie, aby ste ich použili a uložili.", + "applyChanges": "Použiť zmeny", + "defaultValues": "Predvolené hodnoty" +} \ No newline at end of file diff --git a/public/locales/sk/settings/customization/opacity-selector.json b/public/locales/sk/settings/customization/opacity-selector.json new file mode 100644 index 000000000..410571aa7 --- /dev/null +++ b/public/locales/sk/settings/customization/opacity-selector.json @@ -0,0 +1,3 @@ +{ + "label": "Nepriehľadnosť aplikácie" +} \ No newline at end of file diff --git a/public/locales/sk/settings/customization/page-appearance.json b/public/locales/sk/settings/customization/page-appearance.json new file mode 100644 index 000000000..f0f5e483b --- /dev/null +++ b/public/locales/sk/settings/customization/page-appearance.json @@ -0,0 +1,30 @@ +{ + "pageTitle": { + "label": "Názov stránky", + "description": "Názov hlavného panela vľavo hore" + }, + "metaTitle": { + "label": "Meta názov", + "description": "Názov, ktorý sa zobrazuje ako názov vašej karty" + }, + "logo": { + "label": "Logo", + "description": "Logo prístrojovej dosky vľavo hore" + }, + "favicon": { + "label": "Favicon", + "description": "Ikona, ktorá sa používa pred názvom karty" + }, + "background": { + "label": "Pozadie" + }, + "customCSS": { + "label": "Vlastné CSS", + "description": "Prispôsobenie všetkých prvkov na prístrojovej doske, odporúča sa len skúseným používateľom", + "placeholder": "Vlastné CSS sa použije ako posledné", + "applying": "Aplikuje sa CSS..." + }, + "buttons": { + "submit": "Odoslať" + } +} diff --git a/public/locales/sk/settings/customization/shade-selector.json b/public/locales/sk/settings/customization/shade-selector.json new file mode 100644 index 000000000..02eb381d1 --- /dev/null +++ b/public/locales/sk/settings/customization/shade-selector.json @@ -0,0 +1,3 @@ +{ + "label": "Odtieň" +} \ No newline at end of file diff --git a/public/locales/sk/settings/general/color-schema.json b/public/locales/sk/settings/general/color-schema.json new file mode 100644 index 000000000..8fa3edf55 --- /dev/null +++ b/public/locales/sk/settings/general/color-schema.json @@ -0,0 +1,3 @@ +{ + "label": "Prepnite do {{scheme}} režimu" +} \ No newline at end of file diff --git a/public/locales/sk/settings/general/config-changer.json b/public/locales/sk/settings/general/config-changer.json new file mode 100644 index 000000000..d7071e548 --- /dev/null +++ b/public/locales/sk/settings/general/config-changer.json @@ -0,0 +1,86 @@ +{ + "configSelect": { + "label": "Konfiguračný menič", + "description": "{{configCount}} konfigurácie sú k dispozícii", + "loadingNew": "Načítanie konfigurácie...", + "pleaseWait": "Počkajte, kým sa načíta nová konfigurácia!" + }, + "modal": { + "copy": { + "title": "Vyberte názov nového konfigurátora", + "form": { + "configName": { + "label": "Názov konfigurácie", + "validation": { + "required": "Vyžaduje sa názov konfigurácie", + "notUnique": "Názov konfigurácie sa už používa" + }, + "placeholder": "Váš nový názov konfigurácie" + }, + "submitButton": "Potvrďte" + }, + "events": { + "configSaved": { + "title": "Uložená konfigurácia", + "message": "Konfigurácia uložená ako {{configName}}" + }, + "configCopied": { + "title": "Skopírovaná konfigurácia", + "message": "Konfigurácia skopírovaná ako {{configName}}" + }, + "configNotCopied": { + "title": "Nie je možné skopírovať konfiguráciu", + "message": "Váš konfigurátor nebol skopírovaný ako {{configName}}" + } + } + }, + "confirmDeletion": { + "title": "Potvrdenie odstránenia konfigurácie", + "warningText": "Chystáte sa vymazať '{{configName}}'", + "text": "Upozorňujeme, že vymazanie nie je možné zvrátiť a vaše údaje budú natrvalo stratené. Po kliknutí na toto tlačidlo sa súbor natrvalo odstráni z vášho disku. Uistite sa, že ste si vytvorili primeranú zálohu konfigurácie.", + "buttons": { + "confirm": "Áno, vymažte '{{configName}}'" + } + } + }, + "buttons": { + "download": "Stiahnite si konfiguráciu", + "delete": { + "text": "Odstránenie konfigurácie", + "notifications": { + "deleted": { + "title": "Konfigurácia odstránená", + "message": "Konfigurácia odstránená" + }, + "deleteFailed": { + "title": "Odstránenie konfigurácie zlyhalo", + "message": "Odstránenie konfigurácie zlyhalo" + }, + "deleteFailedDefaultConfig": { + "title": "Predvolená konfigurácia sa nedá odstrániť", + "message": "Konfigurácia nebola odstránená zo systému súborov" + } + } + }, + "saveCopy": "Uložiť kópiu" + }, + "dropzone": { + "notifications": { + "invalidConfig": { + "title": "Nie je možné načítať konfiguráciu", + "message": "Nepodarilo sa načítať vašu konfiguráciu. Neplatný formát JSON." + }, + "loadedSuccessfully": { + "title": "Úspešné načítanie konfigurácie {{configName}}" + } + }, + "accept": { + "title": "Nahrávanie konfigurácie", + "text": "Ak chcete nahrať konfiguráciu, potiahnite sem súbory. Podpora len pre súbory JSON." + }, + "reject": { + "title": "Odmietnuté nahranie pomocou funkcie Drag and Drop", + "text": "Tento formát súboru nie je podporovaný. Nahrávajte len súbory JSON." + } + } +} diff --git a/public/locales/sk/settings/general/internationalization.json b/public/locales/sk/settings/general/internationalization.json new file mode 100644 index 000000000..d48b30890 --- /dev/null +++ b/public/locales/sk/settings/general/internationalization.json @@ -0,0 +1,3 @@ +{ + "label": "Jazyk" +} \ No newline at end of file diff --git a/public/locales/sk/settings/general/search-engine.json b/public/locales/sk/settings/general/search-engine.json new file mode 100644 index 000000000..8087221ec --- /dev/null +++ b/public/locales/sk/settings/general/search-engine.json @@ -0,0 +1,19 @@ +{ + "title": "Vyhľadávač", + "configurationName": "Konfigurácia vyhľadávača", + "tips": { + "generalTip": "Môžete použiť viacero predpon! Ich pridaním pred dotaz sa budú výsledky filtrovať. !s (Web), !t (Torrenty), !y (YouTube) a !m (Médiá).", + "placeholderTip": "%s možno použiť ako zástupný symbol pre dotaz." + }, + "customEngine": { + "title": "Vlastný vyhľadávač", + "label": "Adresa URL dopytu", + "placeholder": "Adresa URL vlastného dopytu" + }, + "searchNewTab": { + "label": "Otvoriť výsledky vyhľadávania na novej karte" + }, + "searchEnabled": { + "label": "Vyhľadávanie povolené" + } +} diff --git a/public/locales/sk/settings/general/theme-selector.json b/public/locales/sk/settings/general/theme-selector.json new file mode 100644 index 000000000..b98fc22a6 --- /dev/null +++ b/public/locales/sk/settings/general/theme-selector.json @@ -0,0 +1,3 @@ +{ + "label": "Prepnite do {{theme}} režimu" +} \ No newline at end of file diff --git a/public/locales/sk/settings/general/widget-positions.json b/public/locales/sk/settings/general/widget-positions.json new file mode 100644 index 000000000..0892d638f --- /dev/null +++ b/public/locales/sk/settings/general/widget-positions.json @@ -0,0 +1,3 @@ +{ + "label": "Umiestni widgety vľavo" +} diff --git a/public/locales/sl/layout/modals/about.json b/public/locales/sl/layout/modals/about.json index 42d01c704..609179cfa 100644 --- a/public/locales/sl/layout/modals/about.json +++ b/public/locales/sl/layout/modals/about.json @@ -3,11 +3,12 @@ "contact": "Imate težave ali vprašanja? Povežite se z nami!", "addToDashboard": "Dodajanje v nadzorno ploščo", "metrics": { - "configurationSchemaVersion": "", - "configurationsCount": "", + "configurationSchemaVersion": "Različica konfiguracijske sheme", + "configurationsCount": "Razpoložljive konfiguracije", "version": "Različica", - "nodeEnvironment": "", - "i18n": "", - "locales": "" + "nodeEnvironment": "Okolje vozlišča", + "i18n": "Nalaganje imenskih prostorov za prevod I18n", + "locales": "Konfigurirani krajevni jeziki I18n", + "experimental_disableEditMode": "EKSPERIMENTALNO: Onemogočite način urejanja" } } \ No newline at end of file diff --git a/public/locales/sl/layout/modals/add-app.json b/public/locales/sl/layout/modals/add-app.json index 5a7b5657e..187a28594 100644 --- a/public/locales/sl/layout/modals/add-app.json +++ b/public/locales/sl/layout/modals/add-app.json @@ -39,7 +39,15 @@ "appearance": { "icon": { "label": "Ikona aplikacije", - "description": "Ikona, ki bo prikazana na armaturni plošči." + "description": "Izberite ikono, ki bo prikazana na nadzorni plošči. Izbirate lahko med ikonami {{suggestionsCount}} ali vnesete svoj URL", + "autocomplete": { + "title": "Ni rezultatov", + "text": "Poskusite uporabiti bolj specifičen iskalni izraz. Če želene ikone ne najdete, prilepite zgornji naslov URL slike za ikono po meri" + }, + "noItems": { + "title": "Nalaganje zunanjih ikon", + "text": "To lahko traja nekaj sekund" + } } }, "integration": { diff --git a/public/locales/sl/modules/calendar.json b/public/locales/sl/modules/calendar.json index 165420f9e..85fa04c90 100644 --- a/public/locales/sl/modules/calendar.json +++ b/public/locales/sl/modules/calendar.json @@ -5,7 +5,7 @@ "settings": { "title": "Nastavitve za gradnik Koledar", "useSonarrv4": { - "label": "" + "label": "Uporaba vmesnika API Sonarr v4" }, "sundayStart": { "label": "Začni teden z nedeljo" diff --git a/public/locales/sl/modules/dashdot.json b/public/locales/sl/modules/dashdot.json index 3a0564952..28a1f9132 100644 --- a/public/locales/sl/modules/dashdot.json +++ b/public/locales/sl/modules/dashdot.json @@ -4,23 +4,77 @@ "description": "Prikaže grafe zunanjega primerka Dash. znotraj Homarra.", "settings": { "title": "Nastavitve za pripomoček Dash", - "cpuMultiView": { - "label": "Pogled večjedrnih procesorjev" - }, - "storageMultiView": { - "label": "Pogled naprav za shranjevanje" - }, - "useCompactView": { - "label": "Uporaba kompaktnega pogleda" - }, - "graphs": { - "label": "Grafi" - }, "url": { "label": "Dash. URL" }, "usePercentages": { - "label": "" + "label": "Prikaz odstotkov" + }, + "columns": { + "label": "Prikaži stolpce" + }, + "graphHeight": { + "label": "Višina grafov" + }, + "graphsOrder": { + "label": "Grafi (vrstni red)", + "storage": { + "label": "Shramba", + "enabled": { + "label": "Prikaži v pripomočku" + }, + "span": { + "label": "Razpon stolpca" + }, + "compactView": { + "label": "Prikaži kot besedilo (kompaktno)" + }, + "multiView": { + "label": "Prikaži kot večpredstavnostni pogled" + } + }, + "network": { + "label": "Omrežje", + "enabled": { + "label": "Prikaži v pripomočku" + }, + "span": { + "label": "Razpon stolpca" + }, + "compactView": { + "label": "Prikaži kot besedilo (kompaktno)" + } + }, + "cpu": { + "label": "CPU", + "enabled": { + "label": "Prikaži v pripomočku" + }, + "span": { + "label": "Razpon stolpca" + }, + "multiView": { + "label": "Prikaži kot večjedrni pogled" + } + }, + "ram": { + "label": "RAM", + "enabled": { + "label": "Prikaži v pripomočku" + }, + "span": { + "label": "Razpon stolpca" + } + }, + "gpu": { + "label": "GPU", + "enabled": { + "label": "Prikaži v pripomočku" + }, + "span": { + "label": "Razpon stolpca" + } + } } } }, @@ -28,7 +82,11 @@ "title": "Dash.", "errors": { "noService": "Dash. storitev ni bila najdena. Prosimo, dodajte jo na nadzorno ploščo Homarr ali nastavite Dash. URL naslov v možnostih modula", - "noInformation": "Ne morem pridobiti informacij iz Dash. - ali uporabljate najnovejšo različico?" + "noInformation": "Ne morem pridobiti informacij iz Dash. - ali uporabljate najnovejšo različico?", + "protocolDowngrade": { + "title": "Odkrit nižji protokol", + "text": "Protokol do vašega Dash. vmesnika se znižuje. To predstavlja varnostno tveganje, saj protokol HTTP ni šifriran in napadalci lahko zlorabijo to povezavo. Prepričajte se, da Dash. deluje tudi v protokolu HTTPS, ali pa znižajte stopnjo Homarr na HTTP (ni priporočljivo)." + } }, "graphs": { "storage": { @@ -46,7 +104,7 @@ "cpu": { "title": "CPU" }, - "memory": { + "ram": { "title": "RAM" }, "gpu": { diff --git a/public/locales/sl/modules/iframe.json b/public/locales/sl/modules/iframe.json new file mode 100644 index 000000000..4326b0e81 --- /dev/null +++ b/public/locales/sl/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "IFrame", + "description": "Vstavite katero koli vsebino iz interneta. Nekatera spletna mesta lahko omejijo dostop.", + "settings": { + "title": "Nastavitve okvirja IFrame", + "embedUrl": { + "label": "URL za vstavljanje" + }, + "allowFullScreen": { + "label": "Omogočite celozaslonsko prikazovanje" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "Vnesite naslov URL", + "text": "Prepričajte se, da ste v konfiguracijo svojega pripomočka vnesli veljaven naslov" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sl/modules/media-server.json b/public/locales/sl/modules/media-server.json new file mode 100644 index 000000000..4e454f643 --- /dev/null +++ b/public/locales/sl/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Predstavnostni strežnik", + "description": "Sodelovanje z medijskim strežnikom Jellyfin ali Plex", + "settings": { + "title": "Nastavitve za gradnik video strežnika" + } + }, + "card": { + "table": { + "header": { + "session": "Seja", + "user": "Uporabnik", + "currentlyPlaying": "Trenutno se predvaja" + } + }, + "errors": { + "general": { + "title": "Ni mogoče naložiti vsebine", + "text": "Ni mogoče pridobiti informacij iz strežnika. Za več podrobnosti preverite dnevnike" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sl/modules/rss.json b/public/locales/sl/modules/rss.json new file mode 100644 index 000000000..a6a31649d --- /dev/null +++ b/public/locales/sl/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "RSS pripomoček", + "description": "Prevzame elemente iz vira RSS in jih prikaže. Običajno se uporablja za spletne novice", + "settings": { + "title": "Nastavitve za RSS pripomoček", + "rssFeedUrl": { + "label": "URL naslov vira RSS" + } + } + }, + "card": { + "errors": { + "general": { + "title": "Ni mogoče pridobiti vira RSS", + "text": "Prišlo je do težave pri doseganju vira RSS. Prepričajte se, da ste pravilno nastavili vir in uporabili veljavni URL naslov RSS, ki ustreza uradni standardni specifikaciji. Po posodobitvi vira boste morda morali shraniti nadzorno ploščo in osvežiti stran." + } + } + } +} \ No newline at end of file diff --git a/public/locales/sl/modules/video-stream.json b/public/locales/sl/modules/video-stream.json new file mode 100644 index 000000000..cfb629949 --- /dev/null +++ b/public/locales/sl/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Video tok", + "description": "Vstavljanje videoprenosa ali videoposnetka iz kamere ali spletnega mesta", + "settings": { + "title": "Nastavitve za gradnik videoprenosa", + "FeedUrl": { + "label": "URL naslov pretoka" + }, + "autoPlay": { + "label": "Samodejno predvajanje" + }, + "muted": { + "label": "Utišani zvok" + }, + "controls": { + "label": "Upravljanje predvajalnika videoposnetkov" + } + } + }, + "errors": { + "invalidStream": "Nepravilen tok" + } +} \ No newline at end of file diff --git a/public/locales/sl/settings/common.json b/public/locales/sl/settings/common.json index faacb7832..93678d3b9 100644 --- a/public/locales/sl/settings/common.json +++ b/public/locales/sl/settings/common.json @@ -10,19 +10,19 @@ }, "credits": { "madeWithLove": "Narejeno s ❤️ od @", - "thirdPartyContent": "", + "thirdPartyContent": "Oglejte si vsebino tretjih oseb", "thirdPartyContentTable": { - "dependencyName": "", + "dependencyName": "Odvisnost", "dependencyVersion": "Različica" } }, "grow": "Rastoča mreža (zavzema ves prostor)", "layout": { "preview": { - "title": "", - "subtitle": "" + "title": "Predogled", + "subtitle": "Spremembe se samodejno shranijo" }, - "divider": "", + "divider": "Možnosti postavitve", "main": "Glavno", "sidebar": "Stranska vrstica", "cannotturnoff": "Ni mogoče izklopiti", diff --git a/public/locales/sl/settings/customization/color-selector.json b/public/locales/sl/settings/customization/color-selector.json index 305b7922b..22b648fd6 100644 --- a/public/locales/sl/settings/customization/color-selector.json +++ b/public/locales/sl/settings/customization/color-selector.json @@ -1,3 +1,4 @@ { + "colors": "Barve", "suffix": "{{color}} barva" } \ No newline at end of file diff --git a/public/locales/sl/settings/customization/general.json b/public/locales/sl/settings/customization/general.json index ee9d30b5a..ed867874d 100644 --- a/public/locales/sl/settings/customization/general.json +++ b/public/locales/sl/settings/customization/general.json @@ -1,21 +1,21 @@ { - "text": "", + "text": "Prilagoditve vam omogočajo, da nastavite in prilagodite svojo izkušnjo z aplikacijo Homarr svojim željam.", "accordeon": { "layout": { - "name": "", - "description": "" + "name": "Postavitev", + "description": "Omogočanje in onemogočanje elementov v glavi in ploščicah armaturne plošče" }, "gridstack": { - "name": "", - "description": "" + "name": "Gridstack", + "description": "Prilagodite obnašanje in stolpce območja nadzorne plošče" }, "pageMetadata": { - "name": "", - "description": "" + "name": "Metapodatki strani", + "description": "Prilagodite naslove, logotip in PWA" }, "appereance": { - "name": "", - "description": "" + "name": "Videz", + "description": "Prilagodite ozadje, barve in videz aplikacij" } } } \ No newline at end of file diff --git a/public/locales/sl/settings/customization/gridstack.json b/public/locales/sl/settings/customization/gridstack.json index 18c3d8233..a3e1dcd2f 100644 --- a/public/locales/sl/settings/customization/gridstack.json +++ b/public/locales/sl/settings/customization/gridstack.json @@ -1,10 +1,10 @@ { "columnsCount": { - "labelPreset": "", - "descriptionPreset": "", - "descriptionExceedsPreset": "" + "labelPreset": "Stolpci v velikosti {{size}}", + "descriptionPreset": "Število stolpcev, če je zaslon širok manj kot {{pixels}} pikslov", + "descriptionExceedsPreset": "Število stolpcev, ko velikost zaslona presega {{pixels}} slikovnih pik" }, - "unsavedChanges": "", - "applyChanges": "", - "defaultValues": "" + "unsavedChanges": "Spremembe niso shranjene. Kliknite spodnji gumb Uveljavi spremembe, da jih uporabite in shranite.", + "applyChanges": "Uveljavi spremembe", + "defaultValues": "Privzete vrednosti" } \ No newline at end of file diff --git a/public/locales/sl/settings/customization/page-appearance.json b/public/locales/sl/settings/customization/page-appearance.json index b469b1941..bc2f65f3e 100644 --- a/public/locales/sl/settings/customization/page-appearance.json +++ b/public/locales/sl/settings/customization/page-appearance.json @@ -1,28 +1,28 @@ { "pageTitle": { "label": "Naslov strani", - "description": "" + "description": "Naslov armaturne plošče v zgornjem levem kotu" }, "metaTitle": { "label": "Meta naslov", - "description": "" + "description": "Naslov, ki se prikaže kot ime zavihka" }, "logo": { "label": "Logotip", - "description": "" + "description": "Logotip armaturne plošče v zgornjem levem kotu" }, "favicon": { "label": "Favicon", - "description": "" + "description": "Ikona, ki se uporablja pred imenom zavihka" }, "background": { "label": "Ozadje" }, "customCSS": { "label": "Po meri CSS", - "description": "", + "description": "Prilagodite vse elemente na nadzorni plošči, priporočljivo le za izkušene uporabnike", "placeholder": "Prilagojeni CSS bo uporabljen kot zadnji", - "applying": "" + "applying": "Uporaba CSS..." }, "buttons": { "submit": "Pošlji" diff --git a/public/locales/sv/layout/modals/about.json b/public/locales/sv/layout/modals/about.json index 5e331e80d..bf41ad5d4 100644 --- a/public/locales/sv/layout/modals/about.json +++ b/public/locales/sv/layout/modals/about.json @@ -8,6 +8,7 @@ "version": "Version", "nodeEnvironment": "Nod miljö", "i18n": "Laddade namnområden för I18n-översättningar", - "locales": "Konfigurerade I18n lokalspråk" + "locales": "Konfigurerade I18n lokalspråk", + "experimental_disableEditMode": "EXPERIMENTAL: Inaktivera redigeringsläge" } } \ No newline at end of file diff --git a/public/locales/sv/layout/modals/add-app.json b/public/locales/sv/layout/modals/add-app.json index 7f7c8b6e8..43e2fe3af 100644 --- a/public/locales/sv/layout/modals/add-app.json +++ b/public/locales/sv/layout/modals/add-app.json @@ -39,7 +39,15 @@ "appearance": { "icon": { "label": "Appikon", - "description": "Ikon som kommer att visas på instrumentpanelen." + "description": "Välj en ikon som ska visas på kontrollpanelen. Välj mellan {{suggestionsCount}} ikoner eller ange din egen URL", + "autocomplete": { + "title": "Hittade inga resultat", + "text": "Försök att använda en mer specifik sökterm. Om du inte kan hitta önskad ikon, klistra in bild-URL ovan för en anpassad ikon" + }, + "noItems": { + "title": "Laddar externa ikoner", + "text": "Detta kan ta några sekunder" + } } }, "integration": { diff --git a/public/locales/sv/modules/dashdot.json b/public/locales/sv/modules/dashdot.json index c56be2aca..67f97a5f7 100644 --- a/public/locales/sv/modules/dashdot.json +++ b/public/locales/sv/modules/dashdot.json @@ -4,23 +4,77 @@ "description": "Visar graferna för en extern Dash.-instans i Homarr.", "settings": { "title": "Inställningar för Dash. widget", - "cpuMultiView": { - "label": "Flerkärnig CPU vy" - }, - "storageMultiView": { - "label": "Visning av flera lagringsenheter" - }, - "useCompactView": { - "label": "Använd kompakt vy" - }, - "graphs": { - "label": "Grafer" - }, "url": { "label": "Dash. URL" }, "usePercentages": { "label": "Visa procent" + }, + "columns": { + "label": "Visa kolumner" + }, + "graphHeight": { + "label": "Höjden på grafer" + }, + "graphsOrder": { + "label": "Grafer (Ordning)", + "storage": { + "label": "Lagring", + "enabled": { + "label": "Visa på widget" + }, + "span": { + "label": "Spännvidd för kolumnen" + }, + "compactView": { + "label": "Visa som text (kompakt)" + }, + "multiView": { + "label": "Visa som flerenhetsvy" + } + }, + "network": { + "label": "Nätverk", + "enabled": { + "label": "Visa på widget" + }, + "span": { + "label": "Spännvidd för kolumnen" + }, + "compactView": { + "label": "Visa som text (kompakt)" + } + }, + "cpu": { + "label": "CPU", + "enabled": { + "label": "Visa på widget" + }, + "span": { + "label": "Spännvidd för kolumnen" + }, + "multiView": { + "label": "Visa som flerkärningvy" + } + }, + "ram": { + "label": "RAM", + "enabled": { + "label": "Visa på widget" + }, + "span": { + "label": "Spännvidd för kolumnen" + } + }, + "gpu": { + "label": "GPU", + "enabled": { + "label": "Visa på widget" + }, + "span": { + "label": "Spännvidd för kolumnen" + } + } } } }, @@ -28,7 +82,11 @@ "title": "Dash.", "errors": { "noService": "Ingen Dash-tjänst hittades. Lägg till en i din Homarr-instrumentpanel eller ange en Dash. URL i modulalternativen.", - "noInformation": "Kan inte få information från dash. - Kör du den senaste versionen?" + "noInformation": "Kan inte få information från dash. - Kör du den senaste versionen?", + "protocolDowngrade": { + "title": "Nedgradering av protokoll upptäcktes", + "text": "Protokollet till din Dash.-instans håller på att nedgraderas. Detta är en säkerhetsrisk eftersom HTTP är okrypterat och angripare kan missbruka denna anslutning. Se till att Dash. också körs på HTTPS eller nedgradera Homarr till HTTP (rekommenderas inte)." + } }, "graphs": { "storage": { @@ -46,7 +104,7 @@ "cpu": { "title": "CPU" }, - "memory": { + "ram": { "title": "RAM" }, "gpu": { diff --git a/public/locales/sv/modules/iframe.json b/public/locales/sv/modules/iframe.json new file mode 100644 index 000000000..18c90c392 --- /dev/null +++ b/public/locales/sv/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "embedUrl": { + "label": "" + }, + "allowFullScreen": { + "label": "" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sv/modules/media-server.json b/public/locales/sv/modules/media-server.json new file mode 100644 index 000000000..2be958199 --- /dev/null +++ b/public/locales/sv/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "" + } + }, + "card": { + "table": { + "header": { + "session": "", + "user": "", + "currentlyPlaying": "" + } + }, + "errors": { + "general": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sv/modules/rss.json b/public/locales/sv/modules/rss.json new file mode 100644 index 000000000..230d75cf5 --- /dev/null +++ b/public/locales/sv/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "rssFeedUrl": { + "label": "" + } + } + }, + "card": { + "errors": { + "general": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/sv/modules/video-stream.json b/public/locales/sv/modules/video-stream.json new file mode 100644 index 000000000..539daa1c4 --- /dev/null +++ b/public/locales/sv/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "FeedUrl": { + "label": "" + }, + "autoPlay": { + "label": "" + }, + "muted": { + "label": "" + }, + "controls": { + "label": "" + } + } + }, + "errors": { + "invalidStream": "" + } +} \ No newline at end of file diff --git a/public/locales/uk/layout/modals/about.json b/public/locales/uk/layout/modals/about.json index 1d64a4e36..83e01a3b0 100644 --- a/public/locales/uk/layout/modals/about.json +++ b/public/locales/uk/layout/modals/about.json @@ -8,6 +8,7 @@ "version": "Версія", "nodeEnvironment": "", "i18n": "", - "locales": "" + "locales": "", + "experimental_disableEditMode": "ЕКСПЕРИМЕНТАЛЬНО: Вимкнути режим редагування" } } \ No newline at end of file diff --git a/public/locales/uk/layout/modals/add-app.json b/public/locales/uk/layout/modals/add-app.json index c502375c8..ccd59222b 100644 --- a/public/locales/uk/layout/modals/add-app.json +++ b/public/locales/uk/layout/modals/add-app.json @@ -39,7 +39,15 @@ "appearance": { "icon": { "label": "Іконка програми", - "description": "Іконка, яка буде показуватися на інформаційній панелі." + "description": "", + "autocomplete": { + "title": "", + "text": "" + }, + "noItems": { + "title": "", + "text": "" + } } }, "integration": { diff --git a/public/locales/uk/modules/dashdot.json b/public/locales/uk/modules/dashdot.json index bc60817e1..f65d4f5a0 100644 --- a/public/locales/uk/modules/dashdot.json +++ b/public/locales/uk/modules/dashdot.json @@ -4,23 +4,77 @@ "description": "Показує графіки зовнішньої Dash. всередині Homarr.", "settings": { "title": "Налаштування віджета Dash.", - "cpuMultiView": { - "label": "Процесор по ядрах" - }, - "storageMultiView": { - "label": "Сховище по дисках" - }, - "useCompactView": { - "label": "Компактний вигляд" - }, - "graphs": { - "label": "Графіки" - }, "url": { "label": "Dash. URL" }, "usePercentages": { "label": "Показувати відсотки" + }, + "columns": { + "label": "Показувати стовпчики" + }, + "graphHeight": { + "label": "Висота графіків" + }, + "graphsOrder": { + "label": "Графіки (порядок)", + "storage": { + "label": "Диск", + "enabled": { + "label": "Показувати у віджеті" + }, + "span": { + "label": "Ширина стовпця" + }, + "compactView": { + "label": "Показати як текст (компактно)" + }, + "multiView": { + "label": "Показувати як multi-drive-view" + } + }, + "network": { + "label": "Мережа", + "enabled": { + "label": "Показувати у віджеті" + }, + "span": { + "label": "Ширина стовпця" + }, + "compactView": { + "label": "Показати як текст (компактно)" + } + }, + "cpu": { + "label": "Процесор", + "enabled": { + "label": "Показувати у віджеті" + }, + "span": { + "label": "Ширина стовпця" + }, + "multiView": { + "label": "Показувати як multi-core-view" + } + }, + "ram": { + "label": "Оперативна пам'ять", + "enabled": { + "label": "Показувати у віджеті" + }, + "span": { + "label": "Ширина стовпця" + } + }, + "gpu": { + "label": "Графічний процесор", + "enabled": { + "label": "Показувати у віджеті" + }, + "span": { + "label": "Ширина стовпця" + } + } } } }, @@ -28,7 +82,11 @@ "title": "Dash.", "errors": { "noService": "Dash. сервіс не знайдено. Будь ласка, додайте його до головної панелі чи встановіть Dash. URL в налаштуваннях модулю", - "noInformation": "Не вдалося отримати інформацію з Dash. - чи ви використовуєте останню версію?" + "noInformation": "Не вдалося отримати інформацію з Dash. - чи ви використовуєте останню версію?", + "protocolDowngrade": { + "title": "", + "text": "" + } }, "graphs": { "storage": { @@ -46,7 +104,7 @@ "cpu": { "title": "Процесор" }, - "memory": { + "ram": { "title": "Оперативна пам'ять" }, "gpu": { diff --git a/public/locales/uk/modules/iframe.json b/public/locales/uk/modules/iframe.json new file mode 100644 index 000000000..18c90c392 --- /dev/null +++ b/public/locales/uk/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "embedUrl": { + "label": "" + }, + "allowFullScreen": { + "label": "" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/uk/modules/media-server.json b/public/locales/uk/modules/media-server.json new file mode 100644 index 000000000..2be958199 --- /dev/null +++ b/public/locales/uk/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "" + } + }, + "card": { + "table": { + "header": { + "session": "", + "user": "", + "currentlyPlaying": "" + } + }, + "errors": { + "general": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/uk/modules/rss.json b/public/locales/uk/modules/rss.json new file mode 100644 index 000000000..55d312096 --- /dev/null +++ b/public/locales/uk/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "RSS-віджет", + "description": "Витягує предмети з RSS-стрічки та показує їх. Часто використовується для новин онлайн", + "settings": { + "title": "Налаштування віджету RSS", + "rssFeedUrl": { + "label": "URL-адреса RSS стрічки" + } + } + }, + "card": { + "errors": { + "general": { + "title": "Не вдалося отримати RSS стрічку", + "text": "Виникла проблема з доступом до RSS-стрічки. Переконайтеся, що ви'правильно налаштували стрічку і використовуєте правильну адресу RSS, яка відповідає офіційній стандартній специфікації. Після оновлення стрічки вам може знадобитися зберегти вашу інформаційну панель і оновити сторінку." + } + } + } +} \ No newline at end of file diff --git a/public/locales/uk/modules/video-stream.json b/public/locales/uk/modules/video-stream.json new file mode 100644 index 000000000..4f4f3ec9d --- /dev/null +++ b/public/locales/uk/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "Потокова трансляція відео", + "description": "Вставте відеопотік чи відео з камери або вебсайту", + "settings": { + "title": "Налаштування віджету потокового зображення відео", + "FeedUrl": { + "label": "URL-адреса стрічки" + }, + "autoPlay": { + "label": "Автоматичне відтворення" + }, + "muted": { + "label": "Звук вимкнуто" + }, + "controls": { + "label": "Керування відеоплеєром" + } + } + }, + "errors": { + "invalidStream": "Неправильний потік" + } +} \ No newline at end of file diff --git a/public/locales/vi/common.json b/public/locales/vi/common.json index 95ad687d8..ed6a295dc 100644 --- a/public/locales/vi/common.json +++ b/public/locales/vi/common.json @@ -1,21 +1,21 @@ { "save": "Lưu", - "about": "", + "about": "Về chúng tôi", "cancel": "Hủy", - "close": "", + "close": "Đóng", "delete": "Xóa", - "ok": "", + "ok": "OK", "edit": "Sửa", - "version": "", - "changePosition": "", + "version": "Phiên bản", + "changePosition": "Đổi vị trí", "remove": "Xóa", - "removeConfirm": "", + "removeConfirm": "Bạn có chắc muốn xoá {{item}} ?", "sections": { "settings": "Cài đặt", "dangerZone": "Khu vực nguy hiểm" }, "secrets": { - "apiKey": "", + "apiKey": "Khóa API", "username": "Tên người dùng", "password": "Mật khẩu" }, diff --git a/public/locales/vi/layout/modals/about.json b/public/locales/vi/layout/modals/about.json index bd458a81f..4f83dd4bd 100644 --- a/public/locales/vi/layout/modals/about.json +++ b/public/locales/vi/layout/modals/about.json @@ -5,9 +5,10 @@ "metrics": { "configurationSchemaVersion": "", "configurationsCount": "", - "version": "", + "version": "Phiên bản", "nodeEnvironment": "", "i18n": "", - "locales": "" + "locales": "", + "experimental_disableEditMode": "" } } \ No newline at end of file diff --git a/public/locales/vi/layout/modals/add-app.json b/public/locales/vi/layout/modals/add-app.json index 1f187d74a..b0e97ca9f 100644 --- a/public/locales/vi/layout/modals/add-app.json +++ b/public/locales/vi/layout/modals/add-app.json @@ -39,7 +39,15 @@ "appearance": { "icon": { "label": "", - "description": "" + "description": "", + "autocomplete": { + "title": "", + "text": "" + }, + "noItems": { + "title": "", + "text": "" + } } }, "integration": { diff --git a/public/locales/vi/modules/calendar.json b/public/locales/vi/modules/calendar.json index 713328420..fcaa077cf 100644 --- a/public/locales/vi/modules/calendar.json +++ b/public/locales/vi/modules/calendar.json @@ -5,7 +5,7 @@ "settings": { "title": "Cài đặt cho tiện ích lịch", "useSonarrv4": { - "label": "" + "label": "Dùng Sonarr v4 API" }, "sundayStart": { "label": "Đặt đầu tuần là Chủ Nhật" diff --git a/public/locales/vi/modules/common.json b/public/locales/vi/modules/common.json index 014084f9d..5189d85c8 100644 --- a/public/locales/vi/modules/common.json +++ b/public/locales/vi/modules/common.json @@ -4,7 +4,7 @@ }, "errors": { "unmappedOptions": { - "text": "" + "text": "Đã phát hiện tham số không được sử dụng trong cấu hình
{{key}}. Homarr hiện không thể diễn giải và sử dụng tham số này. Để tránh hành vi không mong muốn, vui lòng sao lưu và sửa đổi cấu hình của bạn đúng cách." } } } diff --git a/public/locales/vi/modules/dashdot.json b/public/locales/vi/modules/dashdot.json index 2fdb2b81e..4d3febbb7 100644 --- a/public/locales/vi/modules/dashdot.json +++ b/public/locales/vi/modules/dashdot.json @@ -4,23 +4,77 @@ "description": "Hiển thị biểu đồ của Dash. bên trong Homarr.", "settings": { "title": "Cài đặt cho tiện ích Dash.", - "cpuMultiView": { - "label": "Chế độ hiện đa nhân CPU" - }, - "storageMultiView": { - "label": "Chế độ hiện đa ổ đĩa" - }, - "useCompactView": { - "label": "Dùng chế độ thu gọn" - }, - "graphs": { - "label": "Biểu đồ" - }, "url": { "label": "URL của Dash." }, "usePercentages": { + "label": "Hiển thị phần trăm" + }, + "columns": { "label": "" + }, + "graphHeight": { + "label": "" + }, + "graphsOrder": { + "label": "", + "storage": { + "label": "Bộ nhớ", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "compactView": { + "label": "" + }, + "multiView": { + "label": "" + } + }, + "network": { + "label": "Mạng", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "compactView": { + "label": "" + } + }, + "cpu": { + "label": "CPU", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "multiView": { + "label": "" + } + }, + "ram": { + "label": "", + "enabled": { + "label": "" + }, + "span": { + "label": "" + } + }, + "gpu": { + "label": "GPU", + "enabled": { + "label": "" + }, + "span": { + "label": "" + } + } } } }, @@ -28,7 +82,11 @@ "title": "Dash.", "errors": { "noService": "Dịch vụ Dash. không được tìm thấy. Vui lòng thêm nó vào bảng Homarr của bạn hoặc thiết lập một đường dẫn Dash. trong tuỳ chọn của mô-đun", - "noInformation": "Không thể nhận thông tin từ dash. - bạn có đang chạy phiên bản mới nhất không?" + "noInformation": "Không thể nhận thông tin từ dash. - bạn có đang chạy phiên bản mới nhất không?", + "protocolDowngrade": { + "title": "Phát hiện hạ cấp giao thức", + "text": "Giao thức cho phiên bản Dash của bạn. không ở chế độ bảo mật. Đây được coi là rủi ro bảo mật vì HTTP không hỗ trợ mã hóa và những kẻ tấn công có thể lạm dụng nó. Hãy chắc chắn rằng Dash. hoạt động ở chế độ HTTPS hoặc xóa chế độ HTTPS khỏi Homarr (không được khuyến nghị)." + } }, "graphs": { "storage": { @@ -46,7 +104,7 @@ "cpu": { "title": "CPU" }, - "memory": { + "ram": { "title": "RAM" }, "gpu": { diff --git a/public/locales/vi/modules/dlspeed.json b/public/locales/vi/modules/dlspeed.json index 53a646394..45295446a 100644 --- a/public/locales/vi/modules/dlspeed.json +++ b/public/locales/vi/modules/dlspeed.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "Tốc độ tải", - "description": "" + "description": "Hiện thị tốc độ tải xuống và tải lên của các tích hợp được hỗ trợ." }, "card": { "table": { diff --git a/public/locales/vi/modules/docker.json b/public/locales/vi/modules/docker.json index 59b46b1fa..6ebfe729a 100644 --- a/public/locales/vi/modules/docker.json +++ b/public/locales/vi/modules/docker.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "Docker", - "description": "" + "description": "Cho phép bạn dễ dàng quản lý các khoang chứa docker." }, "search": { "placeholder": "Tìm kiếm bằng tên khoang chứa hoặc tên hình ảnh" @@ -25,8 +25,8 @@ }, "actionBar": { "addService": { - "title": "", - "message": "" + "title": "Thêm ứng dụng", + "message": "Thêm ứng dụng vào Homarr" }, "restart": { "title": "Khởi động lại" @@ -68,13 +68,13 @@ "errors": { "integrationFailed": { "title": "Tích hợp Docker thất bại", - "message": "" + "message": "Có phải bạn quên gắn ổ cắm docker không?" }, "unknownError": { "title": "Có lỗi xảy ra" }, "oneServiceAtATime": { - "title": "" + "title": "Vui lòng chỉ thêm từng dịch vụ một!" } }, "actionIcon": { diff --git a/public/locales/vi/modules/iframe.json b/public/locales/vi/modules/iframe.json new file mode 100644 index 000000000..18c90c392 --- /dev/null +++ b/public/locales/vi/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "embedUrl": { + "label": "" + }, + "allowFullScreen": { + "label": "" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/vi/modules/media-server.json b/public/locales/vi/modules/media-server.json new file mode 100644 index 000000000..2be958199 --- /dev/null +++ b/public/locales/vi/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "" + } + }, + "card": { + "table": { + "header": { + "session": "", + "user": "", + "currentlyPlaying": "" + } + }, + "errors": { + "general": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/vi/modules/overseerr.json b/public/locales/vi/modules/overseerr.json index 797c59496..3066b733e 100644 --- a/public/locales/vi/modules/overseerr.json +++ b/public/locales/vi/modules/overseerr.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "Overseerr", - "description": "" + "description": "Cho phép bạn tìm và thêm phương tiện truyền thông từ Overseerr hoặc Jellyseerr." }, "popup": { "item": { @@ -18,7 +18,7 @@ } }, "seasonSelector": { - "caption": "", + "caption": "Đánh dấu các mùa bạn muốn tải về", "table": { "header": { "season": "Mùa", diff --git a/public/locales/vi/modules/ping.json b/public/locales/vi/modules/ping.json index 5af9ed697..bc637ceb8 100644 --- a/public/locales/vi/modules/ping.json +++ b/public/locales/vi/modules/ping.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "Ping", - "description": "" + "description": "Hiển thị chỉ báo trạng thái dựa trên mã phản hồi HTTP của URL được chỉ định." }, "states": { "online": "Trực tuyến {{response}}", diff --git a/public/locales/vi/modules/rss.json b/public/locales/vi/modules/rss.json new file mode 100644 index 000000000..230d75cf5 --- /dev/null +++ b/public/locales/vi/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "rssFeedUrl": { + "label": "" + } + } + }, + "card": { + "errors": { + "general": { + "title": "", + "text": "" + } + } + } +} \ No newline at end of file diff --git a/public/locales/vi/modules/search.json b/public/locales/vi/modules/search.json index 7515274db..9dca3789b 100644 --- a/public/locales/vi/modules/search.json +++ b/public/locales/vi/modules/search.json @@ -1,7 +1,7 @@ { "descriptor": { "name": "Thanh tìm kiếm", - "description": "" + "description": "Thanh tìm kiếm cho phép bạn tìm kiếm công cụ tìm kiếm tùy chỉnh, YouTube và các tích hợp được hỗ trợ." }, "input": { "placeholder": "Tìm kiếm trên web..." @@ -10,7 +10,7 @@ "searchEngines": { "search": { "name": "Web", - "description": "" + "description": "Tìm kiếm..." }, "youtube": { "name": "YouTube", @@ -22,7 +22,7 @@ }, "overseerr": { "name": "Overseerr", - "description": "" + "description": "Tìm kiếm phim lẻ và phim bộ trên Overseerr" } }, "tip": "Bạn có thể chọn thanh tìm kiếm bằng phím tắt ", diff --git a/public/locales/vi/modules/torrents-status.json b/public/locales/vi/modules/torrents-status.json index a4ef84fa8..7dd69d3cd 100644 --- a/public/locales/vi/modules/torrents-status.json +++ b/public/locales/vi/modules/torrents-status.json @@ -1,24 +1,24 @@ { "descriptor": { "name": "Torrent", - "description": "", + "description": "Hiển thị danh sách torrent của các ứng dụng torrent được hỗ trợ.", "settings": { - "title": "", + "title": "Cài đặt cho tiện ích torrent", "refreshInterval": { - "label": "" + "label": "Khoảng thời gian làm mới (bằng giây)" }, "displayCompletedTorrents": { - "label": "" + "label": "Hiển thị torrent hoàn thành" }, "displayStaleTorrents": { - "label": "" + "label": "Hiển thị torrent hết hạn" } } }, "card": { "footer": { "error": "Lỗi", - "lastUpdated": "" + "lastUpdated": "Cập nhật cuối cách đây {{time}}" }, "table": { "header": { @@ -30,7 +30,7 @@ "progress": "Tiến độ" }, "item": { - "text": "" + "text": "Quản lý bởi {{appName}}, tỷ lệ {{ratio}}" }, "body": { "nothingFound": "Không tìm thấy torrent nào" @@ -46,26 +46,26 @@ }, "errors": { "noDownloadClients": { - "title": "", - "text": "" + "title": "Không tìm thấy ứng dụng torrent được hỗ trợ nào!", + "text": "Thêm ứng dụng torrent được hỗ trợ để xem các bản tải xuống hiện tại" }, "generic": { - "title": "", - "text": "" + "title": "Đã xảy ra lỗi không mong muốn", + "text": "Homarr không thể giao tiếp với ứng dụng torrent của bạn. Vui lòng kiểm tra lại cấu hình" } }, "loading": { "title": "Đang tải..." }, "popover": { - "introductionPrefix": "", + "introductionPrefix": "Quản lý bởi", "metrics": { - "queuePosition": "", - "progress": "", - "totalSelectedSize": "", - "state": "", - "ratio": "", - "completed": "" + "queuePosition": "Vị trí hàng đợi - {{position}}", + "progress": "Tiến độ - {{progress}}%", + "totalSelectedSize": "Tổng - {{totalSize}}", + "state": "Trạng thái - {{state}}", + "ratio": "Tỷ lệ -", + "completed": "Đã hoàn thành" } } } diff --git a/public/locales/vi/modules/usenet.json b/public/locales/vi/modules/usenet.json index cc0b9478b..1a423991b 100644 --- a/public/locales/vi/modules/usenet.json +++ b/public/locales/vi/modules/usenet.json @@ -1,13 +1,13 @@ { "descriptor": { "name": "Usenet", - "description": "" + "description": "Cho phép bạn xem và quản lý phiên bản Usenet của mình." }, "card": { "errors": { "noDownloadClients": { "title": "Không tìm thấy ứng dụng tải xuống được hỗ trợ nào!", - "text": "" + "text": "Thêm ứng dụng tải xuống Usenet được hỗ trợ để xem các bản tải xuống hiện tại" } } }, diff --git a/public/locales/vi/modules/video-stream.json b/public/locales/vi/modules/video-stream.json new file mode 100644 index 000000000..539daa1c4 --- /dev/null +++ b/public/locales/vi/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "", + "description": "", + "settings": { + "title": "", + "FeedUrl": { + "label": "" + }, + "autoPlay": { + "label": "" + }, + "muted": { + "label": "" + }, + "controls": { + "label": "" + } + } + }, + "errors": { + "invalidStream": "" + } +} \ No newline at end of file diff --git a/public/locales/vi/modules/weather.json b/public/locales/vi/modules/weather.json index 58c80242c..67f2d322e 100644 --- a/public/locales/vi/modules/weather.json +++ b/public/locales/vi/modules/weather.json @@ -1,9 +1,9 @@ { "descriptor": { "name": "Thời tiết", - "description": "", + "description": "Hiển thị thông tin thời tiết của vị trí được đặt.", "settings": { - "title": "", + "title": "Cài đặt cho tiện ích thời tiết", "displayInFahrenheit": { "label": "Hiển thị bằng Fahrenheit" }, diff --git a/public/locales/vi/settings/common.json b/public/locales/vi/settings/common.json index b35253c94..52e8a0709 100644 --- a/public/locales/vi/settings/common.json +++ b/public/locales/vi/settings/common.json @@ -13,7 +13,7 @@ "thirdPartyContent": "", "thirdPartyContentTable": { "dependencyName": "", - "dependencyVersion": "" + "dependencyVersion": "Phiên bản" } }, "grow": "Khung giãn (chiếm toàn bộ không gian)", diff --git a/public/locales/vi/settings/customization/color-selector.json b/public/locales/vi/settings/customization/color-selector.json index a9351916b..da9cfd971 100644 --- a/public/locales/vi/settings/customization/color-selector.json +++ b/public/locales/vi/settings/customization/color-selector.json @@ -1,3 +1,4 @@ { + "colors": "Màu", "suffix": "Màu {{color}}" } \ No newline at end of file diff --git a/public/locales/vi/settings/customization/general.json b/public/locales/vi/settings/customization/general.json index ee9d30b5a..28da46431 100644 --- a/public/locales/vi/settings/customization/general.json +++ b/public/locales/vi/settings/customization/general.json @@ -2,7 +2,7 @@ "text": "", "accordeon": { "layout": { - "name": "", + "name": "Bố cục", "description": "" }, "gridstack": { @@ -10,11 +10,11 @@ "description": "" }, "pageMetadata": { - "name": "", + "name": "Metadata trang", "description": "" }, "appereance": { - "name": "", + "name": "Hiển thị", "description": "" } } diff --git a/public/locales/vi/settings/customization/gridstack.json b/public/locales/vi/settings/customization/gridstack.json index 18c3d8233..af30d7355 100644 --- a/public/locales/vi/settings/customization/gridstack.json +++ b/public/locales/vi/settings/customization/gridstack.json @@ -5,6 +5,6 @@ "descriptionExceedsPreset": "" }, "unsavedChanges": "", - "applyChanges": "", - "defaultValues": "" + "applyChanges": "Áp dụng thay đổi", + "defaultValues": "Giá trị mặc định" } \ No newline at end of file diff --git a/public/locales/vi/settings/customization/page-appearance.json b/public/locales/vi/settings/customization/page-appearance.json index dd5539671..dd2265cea 100644 --- a/public/locales/vi/settings/customization/page-appearance.json +++ b/public/locales/vi/settings/customization/page-appearance.json @@ -21,8 +21,8 @@ "customCSS": { "label": "CSS tuỳ chỉnh", "description": "", - "placeholder": "", - "applying": "" + "placeholder": "CSS tùy chỉnh sẽ được áp dụng sau cùng", + "applying": "Đang áp dụng CSS..." }, "buttons": { "submit": "Gửi" diff --git a/public/locales/vi/settings/general/config-changer.json b/public/locales/vi/settings/general/config-changer.json index 350d8d2a3..6ede7dab7 100644 --- a/public/locales/vi/settings/general/config-changer.json +++ b/public/locales/vi/settings/general/config-changer.json @@ -1,9 +1,9 @@ { "configSelect": { "label": "", - "description": "", - "loadingNew": "", - "pleaseWait": "" + "description": "{{configCount}} cấu hình có sẵn", + "loadingNew": "Đang tải cấu hình...", + "pleaseWait": "Vui lòng chờ cho đến khi cấu hình mới được tải!" }, "modal": { "copy": { @@ -12,8 +12,8 @@ "configName": { "label": "Tên cấu hình", "validation": { - "required": "", - "notUnique": "" + "required": "Tên cấu hình là bắt buộc", + "notUnique": "Tên cấu hình đã được sử dụng" }, "placeholder": "Tên cấu hình mới của bạn" }, @@ -25,17 +25,17 @@ "message": "Đã lưu cấu hình thành {{configName}}" }, "configCopied": { - "title": "", - "message": "" + "title": "Đã sao chép cấu hình", + "message": "Đã sao chép cấu hình thành {{configName}}" }, "configNotCopied": { - "title": "", - "message": "" + "title": "Không thể sao chép cấu hình", + "message": "Cấu hình chưa được sao chép thành {{configName}}" } } }, "confirmDeletion": { - "title": "", + "title": "Xác nhận xóa cấu hình của bạn", "warningText": "", "text": "", "buttons": { @@ -57,7 +57,7 @@ "message": "Xoá cấu hình thất bại" }, "deleteFailedDefaultConfig": { - "title": "", + "title": "Cấu hình mặc định không thể bị xoá", "message": "" } } diff --git a/public/locales/vi/settings/general/search-engine.json b/public/locales/vi/settings/general/search-engine.json index 1e93e7d6e..56e852475 100644 --- a/public/locales/vi/settings/general/search-engine.json +++ b/public/locales/vi/settings/general/search-engine.json @@ -2,7 +2,7 @@ "title": "Công cụ tìm kiếm", "configurationName": "Thiết lập công cụ tìm kiếm", "tips": { - "generalTip": "", + "generalTip": "Có nhiều tiền tố để bạn sử dụng đó! Thêm chúng vào trước truy vấn của bạn để lọc kết quả. !s (Web), !t (torrent), !y (YouTube), !m (đa phương tiện).", "placeholderTip": "%s có thể được sử dụng làm phần giữ chỗ cho truy vấn." }, "customEngine": { diff --git a/public/locales/vi/settings/general/widget-positions.json b/public/locales/vi/settings/general/widget-positions.json index 0967ef424..29bac0e71 100644 --- a/public/locales/vi/settings/general/widget-positions.json +++ b/public/locales/vi/settings/general/widget-positions.json @@ -1 +1,3 @@ -{} +{ + "label": "Đặt tiện ích ở bên trái" +} diff --git a/public/locales/zh/layout/modals/about.json b/public/locales/zh/layout/modals/about.json index cd7b7acda..3717aa10d 100644 --- a/public/locales/zh/layout/modals/about.json +++ b/public/locales/zh/layout/modals/about.json @@ -8,6 +8,7 @@ "version": "版本", "nodeEnvironment": "节点环境", "i18n": "加载了I18n翻译名称空间", - "locales": "配置的I18n区域设置" + "locales": "配置的I18n区域设置", + "experimental_disableEditMode": "" } } \ No newline at end of file diff --git a/public/locales/zh/layout/modals/add-app.json b/public/locales/zh/layout/modals/add-app.json index 4e4b63bd6..a38a664ba 100644 --- a/public/locales/zh/layout/modals/add-app.json +++ b/public/locales/zh/layout/modals/add-app.json @@ -39,7 +39,15 @@ "appearance": { "icon": { "label": "应用图标", - "description": "将在面板上显示的图标。" + "description": "", + "autocomplete": { + "title": "", + "text": "" + }, + "noItems": { + "title": "", + "text": "" + } } }, "integration": { diff --git a/public/locales/zh/modules/dashdot.json b/public/locales/zh/modules/dashdot.json index 8ab72ec98..341fd67f4 100644 --- a/public/locales/zh/modules/dashdot.json +++ b/public/locales/zh/modules/dashdot.json @@ -4,23 +4,77 @@ "description": "在Homarr中显示一个外部Dash的图表。", "settings": { "title": "设置Dash小部件", - "cpuMultiView": { - "label": "CPU多核视图" - }, - "storageMultiView": { - "label": "存储多驱动器视图" - }, - "useCompactView": { - "label": "使用紧凑型视图" - }, - "graphs": { - "label": "图表" - }, "url": { "label": "Dash. 网址" }, "usePercentages": { "label": "显示百分比" + }, + "columns": { + "label": "" + }, + "graphHeight": { + "label": "" + }, + "graphsOrder": { + "label": "", + "storage": { + "label": "存储", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "compactView": { + "label": "" + }, + "multiView": { + "label": "" + } + }, + "network": { + "label": "网络", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "compactView": { + "label": "" + } + }, + "cpu": { + "label": "CPU", + "enabled": { + "label": "" + }, + "span": { + "label": "" + }, + "multiView": { + "label": "" + } + }, + "ram": { + "label": "", + "enabled": { + "label": "" + }, + "span": { + "label": "" + } + }, + "gpu": { + "label": "GPU", + "enabled": { + "label": "" + }, + "span": { + "label": "" + } + } } } }, @@ -28,7 +82,11 @@ "title": "Dash.", "errors": { "noService": "没有找到Dash.服务。请在你的Homarr仪表板上添加,或者设置一个仪表板网址。网址在应用选项中添加", - "noInformation": "无法从仪表板获取信息。- 你运行的是最新版本吗?" + "noInformation": "无法从仪表板获取信息。- 你运行的是最新版本吗?", + "protocolDowngrade": { + "title": "检测到协议降级", + "text": "Dash实例的协议被降级。这存在安全风险,因为HTTP是未加密的,攻击者可能会滥用此连接。确保Dash也在HTTPS上运行,或者将Homarr降级为HTTP(不推荐)。" + } }, "graphs": { "storage": { @@ -46,7 +104,7 @@ "cpu": { "title": "CPU" }, - "memory": { + "ram": { "title": "内存" }, "gpu": { diff --git a/public/locales/zh/modules/iframe.json b/public/locales/zh/modules/iframe.json new file mode 100644 index 000000000..43dd325ac --- /dev/null +++ b/public/locales/zh/modules/iframe.json @@ -0,0 +1,23 @@ +{ + "descriptor": { + "name": "IFrame", + "description": "嵌入互联网上的任何内容。一些网站可能限制访问。", + "settings": { + "title": "IFrame设置", + "embedUrl": { + "label": "嵌入URL" + }, + "allowFullScreen": { + "label": "允许全屏" + } + } + }, + "card": { + "errors": { + "noUrl": { + "title": "输入 URL", + "text": "确保您在小部件配置中输入了一个有效的地址" + } + } + } +} \ No newline at end of file diff --git a/public/locales/zh/modules/media-server.json b/public/locales/zh/modules/media-server.json new file mode 100644 index 000000000..418d64a08 --- /dev/null +++ b/public/locales/zh/modules/media-server.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "媒体服务器", + "description": "与您的 Jellyfin 或 Plex 媒体服务器交互", + "settings": { + "title": "设置媒体服务器小部件" + } + }, + "card": { + "table": { + "header": { + "session": "会话", + "user": "用户", + "currentlyPlaying": "正在播放" + } + }, + "errors": { + "general": { + "title": "无法加载内容", + "text": "无法从服务器检索信息。请检查日志获取更多详细信息" + } + } + } +} \ No newline at end of file diff --git a/public/locales/zh/modules/rss.json b/public/locales/zh/modules/rss.json new file mode 100644 index 000000000..5424c1b3a --- /dev/null +++ b/public/locales/zh/modules/rss.json @@ -0,0 +1,20 @@ +{ + "descriptor": { + "name": "RSS小工具", + "description": "从RSS提要中抓取项目并显示它们。常用于在线新闻", + "settings": { + "title": "设置RSS小部件", + "rssFeedUrl": { + "label": "RSS订阅网址" + } + } + }, + "card": { + "errors": { + "general": { + "title": "无法检索到RSS源", + "text": "触发RSS 种子时出现问题。 请确保您've 正确配置了种子并使用一个符合官方标准规格的有效RSS url。 更新种子后,您可能需要保存您的面板并刷新页面。" + } + } + } +} \ No newline at end of file diff --git a/public/locales/zh/modules/video-stream.json b/public/locales/zh/modules/video-stream.json new file mode 100644 index 000000000..7afa408e0 --- /dev/null +++ b/public/locales/zh/modules/video-stream.json @@ -0,0 +1,24 @@ +{ + "descriptor": { + "name": "视频流", + "description": "嵌入来自相机或网站的视频流或视频", + "settings": { + "title": "设置视频流小部件", + "FeedUrl": { + "label": "订阅URL" + }, + "autoPlay": { + "label": "自动播放" + }, + "muted": { + "label": "静音" + }, + "controls": { + "label": "视频播放器控件" + } + } + }, + "errors": { + "invalidStream": "无效数据流" + } +} \ No newline at end of file diff --git a/src/components/AppAvatar.tsx b/src/components/AppAvatar.tsx new file mode 100644 index 000000000..08ca5c7b4 --- /dev/null +++ b/src/components/AppAvatar.tsx @@ -0,0 +1,26 @@ +import { Avatar, DefaultMantineColor, useMantineTheme } from '@mantine/core'; + +export const AppAvatar = ({ + iconUrl, + color, +}: { + iconUrl: string; + color?: DefaultMantineColor | undefined; +}) => { + const { colors, colorScheme } = useMantineTheme(); + + return ( + + ); +}; diff --git a/src/components/Dashboard/Modals/AboutModal/AboutModal.tsx b/src/components/Dashboard/Modals/AboutModal/AboutModal.tsx index 3d36ca722..8f366fd9f 100644 --- a/src/components/Dashboard/Modals/AboutModal/AboutModal.tsx +++ b/src/components/Dashboard/Modals/AboutModal/AboutModal.tsx @@ -9,6 +9,7 @@ import { Group, HoverCard, Modal, + Stack, Table, Text, Title, @@ -18,6 +19,7 @@ import { IconBrandDiscord, IconBrandGithub, IconFile, + IconKey, IconLanguage, IconSchema, IconVersions, @@ -31,6 +33,7 @@ import Image from 'next/image'; import { ReactNode } from 'react'; import { useConfigContext } from '../../../../config/provider'; import { useConfigStore } from '../../../../config/store'; +import { useEditModeInformationStore } from '../../../../hooks/useEditModeInformation'; import { usePackageAttributesStore } from '../../../../tools/client/zustands/usePackageAttributesStore'; import { usePrimaryGradient } from '../../../layout/useGradient'; import Credits from '../../../Settings/Common/Credits'; @@ -82,10 +85,17 @@ export const AboutModal = ({ opened, closeModal, newVersionAvailable }: AboutMod {item.icon} - {t(`layout/modals/about:metrics.${item.label}`)} + + }} + /> + - {item.content} + + {item.content} + ))} @@ -153,12 +163,34 @@ interface ExtendedInitOptions extends InitOptions { const useInformationTableItems = (newVersionAvailable?: string): InformationTableItem[] => { const colorGradiant = usePrimaryGradient(); const { attributes } = usePackageAttributesStore(); + const { editModeEnabled } = useEditModeInformationStore(); const { configVersion } = useConfigContext(); const { configs } = useConfigStore(); let items: InformationTableItem[] = []; + if (editModeEnabled) { + items = [ + ...items, + { + icon: , + label: 'experimental_disableEditMode', + content: ( + + WARNING + + This is an experimental feature, where the edit mode is disabled entirely - no config + modifications are possbile anymore. All update requests for the config will be dropped + on the API. This will be removed in future versions, as Homarr will receive a proper + authentication system, which will make this obsolete. + + + ), + }, + ]; + } + if (i18n !== null) { const usedI18nNamespaces = i18n.reportNamespaces.getUsedNamespaces(); const initOptions = i18n.options as ExtendedInitOptions; diff --git a/src/components/Dashboard/Modals/EditAppModal/Tabs/AppereanceTab/AppereanceTab.tsx b/src/components/Dashboard/Modals/EditAppModal/Tabs/AppereanceTab/AppereanceTab.tsx index d8795d25f..04aba2e63 100644 --- a/src/components/Dashboard/Modals/EditAppModal/Tabs/AppereanceTab/AppereanceTab.tsx +++ b/src/components/Dashboard/Modals/EditAppModal/Tabs/AppereanceTab/AppereanceTab.tsx @@ -1,10 +1,10 @@ -import { Autocomplete, createStyles, Flex, Tabs } from '@mantine/core'; +import { Flex, Tabs } from '@mantine/core'; import { UseFormReturnType } from '@mantine/form'; -import { useQuery } from '@tanstack/react-query'; -import { useTranslation } from 'next-i18next'; +import { useDebouncedValue } from '@mantine/hooks'; +import { useEffect } from 'react'; +import { useGetDashboardIcons } from '../../../../../../hooks/icons/useGetDashboardIcons'; import { AppType } from '../../../../../../types/app'; -import { DebouncedAppIcon } from '../Shared/DebouncedAppIcon'; -import { IconSelector } from './IconSelector/IconSelector'; +import { IconSelector } from './IconSelector'; interface AppearanceTabProps { form: UseFormReturnType AppType>; @@ -17,46 +17,39 @@ export const AppearanceTab = ({ disallowAppNameProgagation, allowAppNamePropagation, }: AppearanceTabProps) => { - const { t } = useTranslation('layout/modals/add-app'); - const { classes } = useStyles(); - const { isLoading, error, data } = useQuery({ - queryKey: ['autocompleteLocale'], - queryFn: () => fetch('/api/getLocalImages').then((res) => res.json()), - }); + const { data, isLoading } = useGetDashboardIcons(); + + const [debouncedValue] = useDebouncedValue(form.values.name, 500); + + useEffect(() => { + if (allowAppNamePropagation !== true) { + return; + } + + const matchingDebouncedIcon = data + ?.flatMap((x) => x.entries) + .find((x) => replaceCharacters(x.name.split('.')[0]) === replaceCharacters(debouncedValue)); + + if (!matchingDebouncedIcon) { + return; + } + + form.setFieldValue('appearance.iconUrl', matchingDebouncedIcon.url); + }, [debouncedValue]); return ( - } - label={t('appearance.icon.label')} - description={t('appearance.icon.description')} - variant="default" - data={data?.files ?? []} - withAsterisk - required - {...form.getInputProps('appearance.iconUrl')} - /> { - form.setValues({ - appearance: { - iconUrl: item.url, - }, - }); - disallowAppNameProgagation(); - }} - allowAppNamePropagation={allowAppNamePropagation} form={form} + data={data} + isLoading={isLoading} + allowAppNamePropagation={allowAppNamePropagation} + disallowAppNameProgagation={disallowAppNameProgagation} /> ); }; -const useStyles = createStyles(() => ({ - textInput: { - flexGrow: 1, - }, -})); +const replaceCharacters = (value: string) => value.toLowerCase().replaceAll('', '-'); diff --git a/src/components/Dashboard/Modals/EditAppModal/Tabs/AppereanceTab/IconSelector.tsx b/src/components/Dashboard/Modals/EditAppModal/Tabs/AppereanceTab/IconSelector.tsx new file mode 100644 index 000000000..0d4fd4249 --- /dev/null +++ b/src/components/Dashboard/Modals/EditAppModal/Tabs/AppereanceTab/IconSelector.tsx @@ -0,0 +1,163 @@ +import { + Autocomplete, + Box, + CloseButton, + createStyles, + Group, + Image, + Loader, + ScrollArea, + SelectItemProps, + Stack, + Text, + Title, +} from '@mantine/core'; +import { UseFormReturnType } from '@mantine/form'; +import { IconSearch } from '@tabler/icons'; +import { useTranslation } from 'next-i18next'; +import { forwardRef } from 'react'; +import { humanFileSize } from '../../../../../../tools/humanFileSize'; +import { NormalizedIconRepositoryResult } from '../../../../../../tools/server/images/abstract-icons-repository'; +import { AppType } from '../../../../../../types/app'; +import { DebouncedAppIcon } from '../Shared/DebouncedAppIcon'; + +interface IconSelectorProps { + form: UseFormReturnType AppType>; + data: NormalizedIconRepositoryResult[] | undefined; + isLoading: boolean; + disallowAppNameProgagation: () => void; + allowAppNamePropagation: boolean; +} + +export const IconSelector = ({ + form, + data, + isLoading, + allowAppNamePropagation, + disallowAppNameProgagation, +}: IconSelectorProps) => { + const { t } = useTranslation('layout/modals/add-app'); + const { classes } = useStyles(); + + const a = + data === undefined + ? [] + : data.flatMap((repository) => + repository.entries.map((entry) => ({ + url: entry.url, + label: entry.name, + size: entry.size, + value: entry.url, + group: repository.name, + copyright: repository.copyright, + })) + ); + + return ( + + + + + {t('appearance.icon.autocomplete.title')} + + + {t('appearance.icon.autocomplete.text')} + + + } + icon={} + rightSection={ + form.values.appearance.iconUrl.length > 0 ? ( + form.setFieldValue('appearance.iconUrl', '')} /> + ) : null + } + itemComponent={AutoCompleteItem} + className={classes.textInput} + data={a} + limit={25} + label={t('appearance.icon.label')} + description={t('appearance.icon.description', { + suggestionsCount: data?.reduce((a, b) => a + b.count, 0) ?? 0, + })} + filter={(search, item) => + item.value + .toLowerCase() + .replaceAll('_', '') + .replaceAll(' ', '-') + .includes(search.toLowerCase().replaceAll('_', '').replaceAll(' ', '-')) + } + variant="default" + withAsterisk + dropdownComponent={(props: any) => } + required + onChange={(event) => { + if (allowAppNamePropagation) { + disallowAppNameProgagation(); + } + form.setFieldValue('appearance.iconUrl', event); + }} + value={form.values.appearance.iconUrl} + /> + {(!data || isLoading) && ( + + + + + {t('appearance.icon.noItems.title')} + + + {t('appearance.icon.noItems.text')} + + + + )} + + ); +}; + +const useStyles = createStyles(() => ({ + textInput: { + flexGrow: 1, + }, +})); + +const AutoCompleteItem = forwardRef( + ({ label, size, copyright, url, ...others }: ItemProps, ref) => ( +
+ + ({ + backgroundColor: + theme.colorScheme === 'dark' ? theme.colors.dark[5] : theme.colors.gray[2], + borderRadius: theme.radius.md, + })} + p={2} + > + + + + {label} + + + {humanFileSize(size, false)} + + {copyright && ( + + © {copyright} + + )} + + + +
+ ) +); + +interface ItemProps extends SelectItemProps { + url: string; + group: string; + size: number; + copyright: string | undefined; +} diff --git a/src/components/Dashboard/Modals/EditAppModal/Tabs/AppereanceTab/IconSelector/IconSelector.tsx b/src/components/Dashboard/Modals/EditAppModal/Tabs/AppereanceTab/IconSelector/IconSelector.tsx deleted file mode 100644 index ee853678a..000000000 --- a/src/components/Dashboard/Modals/EditAppModal/Tabs/AppereanceTab/IconSelector/IconSelector.tsx +++ /dev/null @@ -1,142 +0,0 @@ -/* eslint-disable @next/next/no-img-element */ -import { - ActionIcon, - Button, - createStyles, - Divider, - Flex, - Loader, - Popover, - ScrollArea, - Stack, - Text, - TextInput, - Title, -} from '@mantine/core'; -import { UseFormReturnType } from '@mantine/form'; -import { useDebouncedValue } from '@mantine/hooks'; -import { IconSearch, IconX } from '@tabler/icons'; -import { useEffect, useState } from 'react'; -import { useTranslation } from 'next-i18next'; -import { ICON_PICKER_SLICE_LIMIT } from '../../../../../../../../data/constants'; -import { IconSelectorItem } from '../../../../../../../types/iconSelector/iconSelectorItem'; -import { WalkxcodeRepositoryIcon } from '../../../../../../../types/iconSelector/repositories/walkxcodeIconRepository'; -import { AppType } from '../../../../../../../types/app'; -import { useRepositoryIconsQuery } from '../../../../../../../hooks/useRepositoryIconsQuery'; - -interface IconSelectorProps { - form: UseFormReturnType AppType>; - onChange: (icon: IconSelectorItem) => void; - allowAppNamePropagation: boolean; -} - -export const IconSelector = ({ onChange, allowAppNamePropagation, form }: IconSelectorProps) => { - const { t } = useTranslation('layout/modals/icon-picker'); - - const { data, isLoading } = useRepositoryIconsQuery({ - url: 'https://api.github.com/repos/walkxcode/Dashboard-Icons/contents/png', - converter: (item) => ({ - url: `https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/${item.name}`, - fileName: item.name, - }), - }); - - const [searchTerm, setSearchTerm] = useState(''); - const { classes } = useStyles(); - - const [debouncedValue] = useDebouncedValue(form.values.name, 500); - - useEffect(() => { - if (allowAppNamePropagation !== true) { - return; - } - - const matchingDebouncedIcon = data?.find( - (x) => replaceCharacters(x.fileName.split('.')[0]) === replaceCharacters(debouncedValue) - ); - - if (!matchingDebouncedIcon) { - return; - } - - form.setFieldValue('appearance.iconUrl', matchingDebouncedIcon.url); - }, [debouncedValue]); - - if (isLoading || !data) { - return ; - } - - const replaceCharacters = (value: string) => value.toLowerCase().replaceAll('', '-'); - - const filteredItems = searchTerm - ? data.filter((x) => replaceCharacters(x.url).includes(replaceCharacters(searchTerm))) - : data; - const slicedFilteredItems = filteredItems.slice(0, ICON_PICKER_SLICE_LIMIT); - const isTruncated = - slicedFilteredItems.length > 0 && slicedFilteredItems.length !== filteredItems.length; - - return ( - - - - - - - setSearchTerm(event.currentTarget.value)} - placeholder={t('iconPicker.textInputPlaceholder')} - variant="filled" - rightSection={ - setSearchTerm('')}> - - - } - /> - - - - {slicedFilteredItems.map((item) => ( - onChange(item)} size={40} p={3}> - - - ))} - - - {isTruncated && ( - - - - {t('iconPicker.searchLimitationTitle', { max: ICON_PICKER_SLICE_LIMIT })} - - - {t('iconPicker.searchLimitationMessage', { max: ICON_PICKER_SLICE_LIMIT })} - - - )} - - - - - ); -}; - -const useStyles = createStyles(() => ({ - flameIcon: { - margin: '0 auto', - }, - icon: { - width: '100%', - height: '100%', - objectFit: 'contain', - }, - actionIcon: { - alignSelf: 'end', - }, -})); diff --git a/src/components/Dashboard/Modals/EditAppModal/Tabs/IntegrationTab/Components/InputElements/IntegrationSelector.tsx b/src/components/Dashboard/Modals/EditAppModal/Tabs/IntegrationTab/Components/InputElements/IntegrationSelector.tsx index 7ba366339..cbb74405f 100644 --- a/src/components/Dashboard/Modals/EditAppModal/Tabs/IntegrationTab/Components/InputElements/IntegrationSelector.tsx +++ b/src/components/Dashboard/Modals/EditAppModal/Tabs/IntegrationTab/Components/InputElements/IntegrationSelector.tsx @@ -75,6 +75,16 @@ export const IntegrationSelector = ({ form }: IntegrationSelectorProps) => { image: 'https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/readarr.png', label: 'Readarr', }, + { + value: 'jellyfin', + image: 'https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/jellyfin.png', + label: 'Jellyfin', + }, + { + value: 'plex', + image: 'https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/plex.png', + label: 'Plex', + }, ].filter((x) => Object.keys(integrationFieldProperties).includes(x.value)); const getNewProperties = (value: string | null): AppIntegrationPropertyType[] => { diff --git a/src/components/Dashboard/Tiles/Apps/AppTile.tsx b/src/components/Dashboard/Tiles/Apps/AppTile.tsx index b11604187..1c9edd328 100644 --- a/src/components/Dashboard/Tiles/Apps/AppTile.tsx +++ b/src/components/Dashboard/Tiles/Apps/AppTile.tsx @@ -33,9 +33,10 @@ export const AppTile = ({ className, app }: AppTileProps) => { justify="space-around" align="center" style={{ height: '100%', width: '100%' }} + className="dashboard-tile-app" > diff --git a/src/components/Dashboard/Tiles/HomarrCardWrapper.tsx b/src/components/Dashboard/Tiles/HomarrCardWrapper.tsx index 8958667fc..1a4211fdf 100644 --- a/src/components/Dashboard/Tiles/HomarrCardWrapper.tsx +++ b/src/components/Dashboard/Tiles/HomarrCardWrapper.tsx @@ -18,7 +18,7 @@ export const HomarrCardWrapper = ({ ...props }: HomarrCardWrapperProps) => { return ( ({ + container: { + display: 'flex', + flexDirection: 'column', + borderRadius: theme.radius.md, + border: `1px solid ${ + theme.colorScheme === 'dark' ? theme.colors.dark[5] : theme.colors.gray[2] + }`, + backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[5] : theme.white, + marginBottom: theme.spacing.xs, + }, + row: { + display: 'flex', + alignItems: 'center', + justifyContent: 'space-between', + padding: '12px 16px', + gap: theme.spacing.sm, + }, + middle: { + flexGrow: 1, + }, + symbol: { + fontSize: 16, + }, + clickableIcons: { + color: theme.colorScheme === 'dark' ? theme.colors.dark[1] : theme.colors.gray[6], + cursor: 'pointer', + userSelect: 'none', + transition: 'transform .3s ease-in-out', + }, + rotate: { + transform: 'rotate(180deg)', + }, + collapseContent: { + padding: '12px 16px', + }, +})); + +type DraggableListParams = { + value: IDraggableListInputValue['defaultValue']; + onChange: (value: IDraggableListInputValue['defaultValue']) => void; + labels: Record; + children?: Record; +}; + +export const DraggableList: FC = (props) => { + const keys = props.value.map((v) => v.key); + + return ( +
+ + props.onChange(order.map((key) => props.value.find((v) => v.key === key)!)) + } + as="div" + > + {props.value.map((item) => ( + + {props.children?.[item.key]} + + ))} + +
+ ); +}; + +const ListItem: FC<{ + item: IDraggableListInputValue['defaultValue'][number]; + label: string; +}> = (props) => { + const { classes, cx } = useStyles(); + const controls = useDragControls(); + + const [opened, handlers] = useDisclosure(false); + const hasContent = props.children != null && Object.keys(props.children).length !== 0; + + // Workaround for mobile drag controls not working + // https://github.com/framer/motion/issues/1597#issuecomment-1235026724 + const dragRef = useRef(null); + useEffect(() => { + const touchHandler: EventListener = (e) => e.preventDefault(); + + const dragItem = dragRef.current; + + if (dragItem) { + dragItem.addEventListener('touchstart', touchHandler, { passive: false }); + + return () => { + dragItem.removeEventListener('touchstart', touchHandler); + }; + } + + return undefined; + }, [dragRef]); + + return ( + +
+
+ controls.start(e)}> + + + +
+ {props.label} +
+ + {hasContent && ( + handlers.toggle()} + size={18} + stroke={1.5} + /> + )} +
+ + {hasContent && ( + + {props.children} + + )} +
+
+ ); +}; diff --git a/src/components/Dashboard/Tiles/Widgets/WidgetsEditModal.tsx b/src/components/Dashboard/Tiles/Widgets/WidgetsEditModal.tsx index 62a2550a4..f58f30750 100644 --- a/src/components/Dashboard/Tiles/Widgets/WidgetsEditModal.tsx +++ b/src/components/Dashboard/Tiles/Widgets/WidgetsEditModal.tsx @@ -3,24 +3,26 @@ import { Button, Group, MultiSelect, + NumberInput, + Select, + Slider, Stack, Switch, - TextInput, Text, - NumberInput, - Slider, - Select, + TextInput, } from '@mantine/core'; import { ContextModalProps } from '@mantine/modals'; import { IconAlertTriangle } from '@tabler/icons'; import { Trans, useTranslation } from 'next-i18next'; -import { useState } from 'react'; -import Widgets from '../../../../widgets'; -import type { IWidgetOptionValue } from '../../../../widgets/widgets'; +import { FC, useState } from 'react'; import { useConfigContext } from '../../../../config/provider'; import { useConfigStore } from '../../../../config/store'; -import { IWidget } from '../../../../widgets/widgets'; +import { mapObject } from '../../../../tools/client/objects'; import { useColorTheme } from '../../../../tools/color'; +import Widgets from '../../../../widgets'; +import type { IDraggableListInputValue, IWidgetOptionValue } from '../../../../widgets/widgets'; +import { IWidget } from '../../../../widgets/widgets'; +import { DraggableList } from './DraggableList'; export type WidgetEditModalInnerProps = { widgetId: string; @@ -93,7 +95,17 @@ export const WidgetsEditModal = ({ ); } - return WidgetOptionTypeSwitch(option, index, t, key, value, handleChange); + + return ( + + ); })}