Compare commits

...
24 Commits
Author SHA1 Message Date
ajnart 6c3b584bd2 style: auto-fix lint and format 2026-07-21 08:08:53 +00:00
ajnart e3cf680cbd fix(integrations): support UniFi controller default ports 2026-07-21 10:07:25 +02:00
ajnart 24989ddd16 style: auto-fix lint and format 2026-07-06 00:07:03 +00:00
ajnart 8cd9e8c826 fix(integrations): use Unifi default port 8443 when no port is given
The node-unifi library hardcodes https:// in its base URL and the
Unifi controller API only speaks HTTPS. When a user adds the
integration with a bare http:// or https:// URL, getPortFromUrl
returned 80 or 443, and the library attempted a TLS handshake on
the wrong port. The server's plain HTTP response caused
'EPROTO ... wrong version number'.

Derive the port from the user's explicit port, or fall back to 8443
(the integration's defaultPort). Closes #6207.
2026-07-06 02:05:44 +02:00
homarr-crowdin[bot] 5b91687912 chore(lang): updated translations from crowdin
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
2026-07-05 01:57:18 +00:00
Thomas a3df31ff05 Revise Immich API key permissions in documentation
Updated API key permissions for Immich integration documentation.
2026-07-04 21:49:08 +02:00
homarr-renovate[bot] c5c9daf5a5 chore(deps): update dependency undici to v7.28.0 [security] (#6188)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-07-04 18:11:47 +00:00
homarr-renovate[bot] ab0e878fbf chore(deps): update dependency posthog-js to ^1.396.2 (#6189)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-07-04 16:20:03 +00:00
Thomas 885be1b9a1 fix(widget-secrets): add missing widget_secret migration and add error notifications (#6192)
* fix(widget-secrets): add missing widget_secret migration and add error notifications

The widget_secret table was defined in all three Drizzle schema files but
no SQL migration was ever generated to create it, causing setSecret to
fail with 'no such table: widget_secret' in production (drizzle-kit push
in development hid the problem).

- Add migration SQL for sqlite (0040), mysql (0042), postgresql (0008)
- Update journal entries for all three dialects
- Add onError handlers to setSecret/deleteSecret mutations so errors
  are shown as red notifications instead of silently swallowed

Fixes #6186

* fix(widget-secrets): add missing drizzle snapshots for merge-url and widget_secret migrations

The merge_custom_widget_url migration (0039/0041/0007) was committed
without a corresponding snapshot, breaking drizzle-kit generate for
all future migrations. This adds:
- 0039/0041/0007 snapshots reflecting the merge-url changes
  (base_url+endpoint -> url, add enabled column)
- 0040/0042/0008 snapshots reflecting the widget_secret table

All snapshot chains now match journal entries (41/43/9 entries each).
2026-07-04 17:57:40 +02:00
homarr-renovate[bot] 0f8a86fdde fix(deps): update tailwindcss monorepo to ^4.3.2 (#6190)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-07-04 14:55:47 +00:00
homarr-renovate[bot] 59c084bc57 chore(deps): update testcontainers-node monorepo to ^12.0.4 (#6185)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-07-04 12:18:18 +00:00
homarr-renovate[bot] f6cf262bab chore(deps): update dependency posthog-js to ^1.396.1 (#6183)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-07-04 10:27:08 +00:00
Releases Homarr ba860aacaa chore(release): 1.69.1 [skip ci] 2026-07-04 09:02:40 +00:00
homarr-releases[bot] 161dafbdb8 chore(release): automatic release v1.69.1 2026-07-04 09:01:34 +00:00
Thomas a382c75968 fix: unblock query cache mutations in demo mode and add cache buster (#6176) 2026-07-04 10:47:09 +02:00
homarr-renovate[bot] 529942e4da chore(deps): update dependency brace-expansion@>=1.0.0 <=1.1.11 to >=5.0.7 (#6173)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-07-04 07:55:55 +00:00
homarr-releases[bot] e20053b2c1 chore: update bug report template (#6134) 2026-07-04 09:09:59 +02:00
134106b82c Main (#6175)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Releases Homarr <175486441+homarr-releases[bot]@users.noreply.github.com>
2026-07-04 09:09:23 +02:00
homarr-crowdin[bot] 7635031fdf chore(lang): updated translations from crowdin (#6143) 2026-07-04 08:58:20 +02:00
Bergasha b663dae409 fix (Calendar Widget): Add superjson serialization to query cache persister (#6172) 2026-07-04 08:57:49 +02:00
homarr-renovate[bot] 2c2bdb6b76 chore(deps): update dependency brace-expansion@>=2.0.0 <=2.0.1 to >=5.0.7 (#6174)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-07-04 04:45:04 +00:00
homarr-renovate[bot] dee9cd7aac chore(deps): update dependency lucide-react to ^1.22.0 (#6171)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-07-03 20:27:36 +00:00
homarr-renovate[bot] 7c222bf5e8 chore(deps): update dependency fastify to ^5.9.0 (#6166)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-07-03 20:26:10 +00:00
homarr-renovate[bot] f914cc26be chore(deps): update mantine monorepo to ^9.4.1 (#6165)
* chore(deps): update mantine monorepo to ^9.4.1

* style: auto-fix lint and format

---------

Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-07-03 20:15:37 +00:00
66 changed files with 16594 additions and 3708 deletions

No files matched your search

+1
View File
@@ -33,6 +33,7 @@ body:
options:
# The below comment is used to insert a new version with on-release.yml
#NEXT_VERSION#
- 1.69.0
- 1.68.0
- 1.67.0
- 1.66.1
+6
View File
@@ -1,3 +1,9 @@
## [1.69.1](https://github.com/homarr-labs/homarr/compare/v1.69.0...v1.69.1) (2026-07-04)
### Bug Fixes
* unblock query cache mutations in demo mode and add cache buster ([#6176](https://github.com/homarr-labs/homarr/issues/6176)) ([a382c75](https://github.com/homarr-labs/homarr/commit/a382c75968e73bafff55b5890b1e95f0779b50d3))
## [1.69.0](https://github.com/homarr-labs/homarr/compare/v1.68.1...v1.69.0) (2026-07-03)
### Features
+21 -8
View File
@@ -39,13 +39,26 @@ import { immichServerStatsWidget } from '../../widgets/immich-server-stats';
'Scroll down to "API Keys"',
'Click "New API Key"',
'Enter a name, e.g. "Homarr"',
(<span>
Select the following permissions:{" "}
<code>album.read</code>,{" "}
<code>user.read</code>,{" "}
<code>server.statistics</code>,{" "}
<code>asset.download</code>
</span>),
(
<span>
Select the following permissions:{" "}
<code>album.statistics</code>,{" "}
<code>album.read</code>,{" "}
<code>album.create</code>,{" "}
<code>user.read</code>,{" "}
<code>user.update</code>,{" "}
<code>asset.read</code>,{" "}
<code>asset.download</code>,{" "}
<code>asset.statistics</code>,{" "}
<code>server.statistics</code>,{" "}
<code>server.about</code>.
<br />
Additional permissions may be required depending on your Immich version. If you encounter authorization errors, grant any missing permissions requested by the server.
</span>
),Ï
'Create the integration in Homarr and copy the API key to there'
]
}]} />
}]} />
@@ -1,40 +1,48 @@
---
title: 'Unifi Controller'
title: "Unifi Controller"
description: "Unifi Controller is a network management platform for Unifi devices."
hide_title: true
---
import { IntegrationHeader } from '@site/src/components/integrations/header';
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
import { AddingIntegration } from '@site/src/components/integrations/adding';
import {IntegrationSecrets} from '@site/src/components/integrations/secrets';
import { IntegrationHeader } from "@site/src/components/integrations/header";
import { IntegrationCapabilites } from "@site/src/components/integrations/widgets";
import { AddingIntegration } from "@site/src/components/integrations/adding";
import { IntegrationSecrets } from "@site/src/components/integrations/secrets";
import { IconTopologyFull } from "@tabler/icons-react";
import { unifiControllerIntegration } from '.';
import { networkControllerSummaryWidget } from '@site/docs/widgets/network-controller-summary';
import { networkControllerStatusWidget } from '@site/docs/widgets/network-controller-status';
import { unifiControllerIntegration } from ".";
import { networkControllerSummaryWidget } from "@site/docs/widgets/network-controller-summary";
import { networkControllerStatusWidget } from "@site/docs/widgets/network-controller-status";
<IntegrationHeader
integration={unifiControllerIntegration}
categories={['Network controller']}
/>
<IntegrationHeader integration={unifiControllerIntegration} categories={["Network controller"]} />
This integration is using the [node-unifi](https://www.npmjs.com/package/node-unifi) library under the hood to connect to the Unifi Controller.
Therfore it should support CloudKey Gen1, CloudKey Gen2, UnifiOS-based UDM-Pro controllers as well as self-hosted UniFi controllers.
### Widgets & Capabilities
<IntegrationCapabilites
items={[
{ widget: networkControllerSummaryWidget },
{ widget: networkControllerStatusWidget}
]}
items={[{ widget: networkControllerSummaryWidget }, { widget: networkControllerStatusWidget }]}
/>
### Adding the integration
<AddingIntegration />
Use the local HTTPS address of your controller:
- UniFi OS consoles such as Dream Router, Dream Machine, Cloud Gateway, and CloudKey use `https://<host>` (port 443).
- Self-hosted UniFi Network Servers normally use `https://<host>:8443`.
- If you omit the port, Homarr tries port 443 first and then port 8443 when the first port cannot be reached.
Use a local administrator account. Cloud-only accounts and accounts with multi-factor authentication are not supported by the underlying client.
### Secrets
<IntegrationSecrets secrets={[{
credentials: ['username', 'password'],
steps: []
}]} />
<IntegrationSecrets
secrets={[
{
credentials: ["username", "password"],
steps: [],
},
]}
/>
+2 -2
View File
@@ -32,7 +32,7 @@
"@scalar/api-reference-react": "catalog:",
"@signalwire/docusaurus-plugin-llms-txt": "^1.2.2",
"@tabler/icons-react": "catalog:",
"@tailwindcss/postcss": "^4.3.1",
"@tailwindcss/postcss": "^4.3.2",
"clsx": "catalog:",
"dayjs": "catalog:",
"docusaurus-plugin-image-zoom": "^3.0.1",
@@ -44,7 +44,7 @@
"react": "catalog:",
"react-dom": "catalog:",
"swiper": "^12.2.0",
"tailwindcss": "^4.3.1"
"tailwindcss": "^4.3.2"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "^3.10.1",
@@ -1,4 +1,5 @@
import { createAsyncStoragePersister } from "@tanstack/query-async-storage-persister";
import superjson from "superjson";
import { fetchApi } from "@homarr/api/client";
import { getActiveQueryCacheBoardId, queryCacheStoragePrefix } from "@homarr/api/query-cache";
@@ -26,4 +27,6 @@ export const createWidgetQueryPersister = () =>
storage: typeof window === "undefined" ? undefined : queryCacheStorage,
key: queryCacheStoragePrefix,
throttleTime: 2000,
serialize: (data) => superjson.stringify(data),
deserialize: (data) => superjson.parse(data),
});
@@ -24,6 +24,7 @@ import type { AppRouter } from "@homarr/api";
import { clientApi } from "@homarr/api/client";
import {
isPersistableWidgetQueryKey,
queryCacheBuster,
queryCacheDefaultGcTimeMs,
queryCacheDefaultRefetchIntervalMs,
queryCacheDefaultStaleTimeMs,
@@ -136,6 +137,7 @@ export function TRPCReactProvider(props: PropsWithChildren) {
client={queryClient}
persistOptions={{
persister,
buster: queryCacheBuster,
maxAge: queryCacheDefaultGcTimeMs,
dehydrateOptions: {
shouldDehydrateQuery: (query) =>
@@ -7,6 +7,8 @@ import "~/styles/gridstack.scss";
import { dehydrate, HydrationBoundary } from "@tanstack/react-query";
import type { PersistedClient } from "@tanstack/react-query-persist-client";
import superjson from "superjson";
import { queryCacheBuster } from "@homarr/api/query-cache";
import { getQueryClient } from "@homarr/api/server";
import { IntegrationProvider } from "@homarr/auth/client";
import { auth } from "@homarr/auth/next";
@@ -121,7 +123,8 @@ async function QueryCacheHydration({ userId, boardId }: { userId: string; boardI
const serialized = await getQueryCacheAsync(userId, boardId);
if (!serialized) return null;
const persisted = JSON.parse(serialized) as PersistedClient;
const persisted = superjson.parse<PersistedClient>(serialized);
if (persisted.buster !== queryCacheBuster) return null;
if (!persisted?.clientState?.queries?.length) return null;
return <HydrationBoundary state={persisted.clientState} />;
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "homarr",
"version": "1.69.0",
"version": "1.69.1",
"private": true,
"scripts": {
"build": "cross-env CI=true turbo build",
+1
View File
@@ -5,6 +5,7 @@ export const queryCacheDefaultRefetchIntervalMs = 30_000;
export const queryCacheDefaultGcTimeMs = 1000 * 60 * 60 * 24;
export const queryCacheMaxValueBytes = 1024 * 1024;
export const queryCacheStoragePrefix = "homarr-widget-query";
export const queryCacheBuster = "v2-superjson";
let activeQueryCacheBoardId: string | null = null;
+3 -3
View File
@@ -5,7 +5,7 @@ import { boards } from "@homarr/db/schema";
import { removeQueryCacheAsync, setQueryCacheAsync } from "@homarr/redis";
import { queryCacheDefaultGcTimeMs, queryCacheMaxValueBytes } from "../query-cache";
import { createTRPCRouter, publicProcedure } from "../trpc";
import { createTRPCRouter, internalProcedure } from "../trpc";
import { throwIfActionForbiddenAsync } from "./board/board-access";
const queryCacheBoardInput = z.object({
@@ -21,7 +21,7 @@ const validateBoardAccessAsync = async (ctx: Parameters<typeof throwIfActionForb
};
export const queryCacheRouter = createTRPCRouter({
setItem: publicProcedure.input(queryCacheSetInput).mutation(async ({ ctx, input }) => {
setItem: internalProcedure.input(queryCacheSetInput).mutation(async ({ ctx, input }) => {
await validateBoardAccessAsync(ctx, input.boardId);
const userId = ctx.session?.user.id ?? "anonymous";
return {
@@ -34,7 +34,7 @@ export const queryCacheRouter = createTRPCRouter({
),
};
}),
removeItem: publicProcedure.input(queryCacheBoardInput).mutation(async ({ ctx, input }) => {
removeItem: internalProcedure.input(queryCacheBoardInput).mutation(async ({ ctx, input }) => {
await validateBoardAccessAsync(ctx, input.boardId);
const userId = ctx.session?.user.id ?? "anonymous";
await removeQueryCacheAsync(userId, input.boardId);
+2
View File
@@ -116,6 +116,8 @@ const baseProcedure = env.DEMO_MODE ? t.procedure.use(enforceDemoModeReadOnly) :
*/
export const publicProcedure = baseProcedure;
export const internalProcedure = t.procedure;
const enforceUserIsAuthed = t.middleware(({ ctx, next }) => {
if (!ctx.session?.user) {
throw new TRPCError({ code: "UNAUTHORIZED" });
@@ -0,0 +1,9 @@
CREATE TABLE `widget_secret` (
`item_id` varchar(64) NOT NULL,
`kind` varchar(64) NOT NULL,
`value` text NOT NULL,
`updated_at` timestamp NOT NULL,
CONSTRAINT `widget_secret_item_id_kind_pk` PRIMARY KEY(`item_id`,`kind`)
);
--> statement-breakpoint
ALTER TABLE `widget_secret` ADD CONSTRAINT `widget_secret_item_id_item_id_fk` FOREIGN KEY (`item_id`) REFERENCES `item`(`id`) ON DELETE cascade ON UPDATE no action;
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -295,6 +295,13 @@
"when": 1780764500000,
"tag": "0041_merge_custom_widget_url",
"breakpoints": true
},
{
"idx": 42,
"version": "5",
"when": 1783176100870,
"tag": "0042_add_widget_secret",
"breakpoints": true
}
]
}
@@ -0,0 +1,9 @@
CREATE TABLE "widget_secret" (
"item_id" varchar(64) NOT NULL,
"kind" varchar(64) NOT NULL,
"value" text NOT NULL,
"updated_at" timestamp NOT NULL,
CONSTRAINT "widget_secret_item_id_kind_pk" PRIMARY KEY("item_id","kind")
);
--> statement-breakpoint
ALTER TABLE "widget_secret" ADD CONSTRAINT "widget_secret_item_id_item_id_fk" FOREIGN KEY ("item_id") REFERENCES "public"."item"("id") ON DELETE cascade ON UPDATE no action;
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -57,6 +57,13 @@
"when": 1780764500000,
"tag": "0007_merge_custom_widget_url",
"breakpoints": true
},
{
"idx": 8,
"version": "7",
"when": 1783176100870,
"tag": "0008_add_widget_secret",
"breakpoints": true
}
]
}
@@ -0,0 +1,8 @@
CREATE TABLE `widget_secret` (
`item_id` text NOT NULL,
`kind` text NOT NULL,
`value` text NOT NULL,
`updated_at` integer NOT NULL,
PRIMARY KEY(`item_id`, `kind`),
FOREIGN KEY (`item_id`) REFERENCES `item`(`id`) ON UPDATE no action ON DELETE cascade
);
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -281,6 +281,13 @@
"when": 1780764500000,
"tag": "0039_merge_custom_widget_url",
"breakpoints": true
},
{
"idx": 40,
"version": "6",
"when": 1783176100870,
"tag": "0040_add_widget_secret",
"breakpoints": true
}
]
}
@@ -60,8 +60,8 @@ export type HomarrDocumentationPath =
| "/docs/tags/connections"
| "/docs/tags/custom-widgets"
| "/docs/tags/customization"
| "/docs/tags/data-sources"
| "/docs/tags/data"
| "/docs/tags/data-sources"
| "/docs/tags/database"
| "/docs/tags/developer"
| "/docs/tags/development"
@@ -99,8 +99,8 @@ export type HomarrDocumentationPath =
| "/docs/tags/redis"
| "/docs/tags/responsive"
| "/docs/tags/roles"
| "/docs/tags/search-engines"
| "/docs/tags/search"
| "/docs/tags/search-engines"
| "/docs/tags/secrets"
| "/docs/tags/security"
| "/docs/tags/self-signed"
@@ -132,15 +132,6 @@ export type HomarrDocumentationPath =
| "/docs/advanced/running-as-different-user"
| "/docs/advanced/single-sign-on"
| "/docs/advanced/styling"
| "/docs/category/advanced"
| "/docs/category/community"
| "/docs/category/developer-guides"
| "/docs/category/getting-started"
| "/docs/category/installation-1"
| "/docs/category/installation"
| "/docs/category/integrations"
| "/docs/category/management"
| "/docs/category/widgets"
| "/docs/community/donate"
| "/docs/community/faq"
| "/docs/community/get-in-touch"
@@ -168,17 +159,13 @@ export type HomarrDocumentationPath =
| "/docs/integrations/archiveteam-warrior"
| "/docs/integrations/aria2"
| "/docs/integrations/audiobookshelf"
| "/docs/integrations/bazarr"
| "/docs/integrations/beszel"
| "/docs/integrations/codeberg"
| "/docs/integrations/coolify"
| "/docs/integrations/dash-dot"
| "/docs/integrations/deluge"
| "/docs/integrations/docker-hub"
| "/docs/integrations/docker"
| "/docs/integrations/emby"
| "/docs/integrations/github-containerregistry"
| "/docs/integrations/github"
| "/docs/integrations/gitlab"
| "/docs/integrations/glances"
| "/docs/integrations/gluetun"
| "/docs/integrations/gotify"
@@ -189,34 +176,33 @@ export type HomarrDocumentationPath =
| "/docs/integrations/jellyseerr"
| "/docs/integrations/kubernetes"
| "/docs/integrations/lidarr"
| "/docs/integrations/linux-server-io"
| "/docs/integrations/navidrome"
| "/docs/integrations/nextcloud"
| "/docs/integrations/npm"
| "/docs/integrations/ntfy"
| "/docs/integrations/nzbget"
| "/docs/integrations/open-media-vault"
| "/docs/integrations/opnsense"
| "/docs/integrations/overseerr"
| "/docs/integrations/paperless-ngx"
| "/docs/integrations/patchmon"
| "/docs/integrations/peanut"
| "/docs/integrations/pi-hole"
| "/docs/integrations/plex"
| "/docs/integrations/prowlarr"
| "/docs/integrations/proxmox"
| "/docs/integrations/q-bittorent"
| "/docs/integrations/quay"
| "/docs/integrations/radarr"
| "/docs/integrations/readarr"
| "/docs/integrations/sabnzbd"
| "/docs/integrations/search-ch"
| "/docs/integrations/seerr"
| "/docs/integrations/slskd"
| "/docs/integrations/sonarr"
| "/docs/integrations/speedtest-tracker"
| "/docs/integrations/synology"
| "/docs/integrations/tdarr"
| "/docs/integrations/technitium-dns"
| "/docs/integrations/tracearr"
| "/docs/integrations/traefik"
| "/docs/integrations/transmission"
| "/docs/integrations/truenas"
| "/docs/integrations/umami"
@@ -239,6 +225,7 @@ export type HomarrDocumentationPath =
| "/docs/widgets/anchor-note"
| "/docs/widgets/app"
| "/docs/widgets/audio-stats"
| "/docs/widgets/bazarr"
| "/docs/widgets/beszel-alerts"
| "/docs/widgets/beszel-system-grid"
| "/docs/widgets/beszel-system-stats"
@@ -258,6 +245,7 @@ export type HomarrDocumentationPath =
| "/docs/widgets/immich-album-carousel"
| "/docs/widgets/immich-server-stats"
| "/docs/widgets/indexer-manager"
| "/docs/widgets/media-missing"
| "/docs/widgets/media-releases"
| "/docs/widgets/media-request-list"
| "/docs/widgets/media-request-stats"
@@ -269,15 +257,18 @@ export type HomarrDocumentationPath =
| "/docs/widgets/notebook"
| "/docs/widgets/notifications"
| "/docs/widgets/paperless-ngx"
| "/docs/widgets/patchmon"
| "/docs/widgets/releases"
| "/docs/widgets/rss-feed"
| "/docs/widgets/smart-home-entity-state"
| "/docs/widgets/smart-home-execute-automation"
| "/docs/widgets/speedtest-tracker"
| "/docs/widgets/stock-price"
| "/docs/widgets/system-disks"
| "/docs/widgets/system-resources"
| "/docs/widgets/timetable"
| "/docs/widgets/tracearr"
| "/docs/widgets/traefik"
| "/docs/widgets/umami"
| "/docs/widgets/ups"
| "/docs/widgets/uptime-kuma"
@@ -0,0 +1,141 @@
import { describe, expect, test, vi } from "vitest";
vi.hoisted(() => {
process.env.SKIP_ENV_VALIDATION = "true";
process.env.SECRET_ENCRYPTION_KEY = "ff3f4f7ce30e870c9630de9e5d244ffa81101a24ed0dfe5f064beb53a7e684f1";
process.env.ENABLE_DNS_CACHING = "false";
});
const controllerCtor = vi.fn();
const controllerLogin = vi.fn().mockResolvedValue(true);
vi.mock("@homarr/redis", () => ({
createGetSetChannel: () => ({
getAsync: vi.fn().mockResolvedValue(null),
setAsync: vi.fn().mockResolvedValue(undefined),
removeAsync: vi.fn().mockResolvedValue(undefined),
}),
}));
vi.mock("@homarr/core/infrastructure/logs", () => ({
createLogger: () => ({ debug: vi.fn(), info: vi.fn(), warn: vi.fn(), error: vi.fn() }),
ErrorWithMetadata: class extends Error {},
}));
vi.mock("@homarr/core/infrastructure/http", () => ({
createCustomCheckServerIdentity: () => (() => undefined) as never,
fetchWithTrustedCertificatesAsync: vi.fn(),
createAxiosCertificateInstanceAsync: vi.fn().mockResolvedValue({}),
createCertificateAgentAsync: vi.fn().mockResolvedValue(undefined),
}));
vi.mock("@homarr/core/infrastructure/certificates", () => ({
getTrustedCertificateHostnamesAsync: vi.fn().mockResolvedValue([]),
getAllTrustedCertificatesAsync: vi.fn().mockResolvedValue([]),
}));
vi.mock("axios", () => ({
AxiosError: Error,
default: {
create: vi.fn().mockReturnValue({}),
},
}));
vi.mock("http-cookie-agent/http", () => ({
HttpCookieAgent: class {},
HttpsCookieAgent: class {},
}));
vi.mock("@homarr/node-unifi", () => {
class FakeController {
public options: Record<string, unknown>;
constructor(options: Record<string, unknown>) {
this.options = options;
controllerCtor(options);
}
public async login(): Promise<true> {
return await controllerLogin(this.options.port);
}
public async getSitesStats(): Promise<unknown[]> {
return [];
}
}
return { default: { Controller: FakeController } };
});
import { UnifiControllerIntegration } from "../unifi-controller-integration";
const createIntegration = (url: string) =>
new UnifiControllerIntegration({
id: "test-unifi",
name: "Test Unifi",
url,
externalUrl: null,
decryptedSecrets: [
{ kind: "username", value: "admin" },
{ kind: "password", value: "secret" },
],
});
describe("UnifiControllerIntegration port resolution", () => {
test("a URL without a port uses the UniFi OS port 443", async () => {
controllerCtor.mockClear();
controllerLogin.mockClear().mockResolvedValue(true);
await createIntegration("http://192.168.1.1").getNetworkSummaryAsync();
expect(controllerCtor).toHaveBeenCalledTimes(1);
expect(controllerCtor).toHaveBeenCalledWith(expect.objectContaining({ host: "192.168.1.1", port: 443 }));
});
test("a connection failure on port 443 falls back to the self-hosted controller port 8443", async () => {
controllerCtor.mockClear();
controllerLogin
.mockClear()
.mockRejectedValueOnce(Object.assign(new Error("connect ECONNREFUSED"), { isAxiosError: true }))
.mockResolvedValueOnce(true);
await createIntegration("http://controller.lan").getNetworkSummaryAsync();
expect(controllerCtor).toHaveBeenNthCalledWith(1, expect.objectContaining({ port: 443 }));
expect(controllerCtor).toHaveBeenNthCalledWith(2, expect.objectContaining({ port: 8443 }));
});
test("https://controller.lan:8443 keeps the user-specified port", async () => {
controllerCtor.mockClear();
controllerLogin.mockClear().mockResolvedValue(true);
await createIntegration("https://controller.lan:8443").getNetworkSummaryAsync();
expect(controllerCtor).toHaveBeenCalledWith(expect.objectContaining({ host: "controller.lan", port: 8443 }));
});
test("https://192.168.1.1:8443 keeps the user-specified port", async () => {
controllerCtor.mockClear();
controllerLogin.mockClear().mockResolvedValue(true);
await createIntegration("https://192.168.1.1:8443").getNetworkSummaryAsync();
expect(controllerCtor).toHaveBeenCalledWith(expect.objectContaining({ host: "192.168.1.1", port: 8443 }));
});
test("an unusual port like 10443 is honored verbatim", async () => {
controllerCtor.mockClear();
controllerLogin.mockClear().mockResolvedValue(true);
await createIntegration("https://192.168.1.1:10443").getNetworkSummaryAsync();
expect(controllerCtor).toHaveBeenCalledWith(expect.objectContaining({ host: "192.168.1.1", port: 10443 }));
});
test("an authentication failure on port 443 does not try another port", async () => {
controllerCtor.mockClear();
controllerLogin.mockClear().mockRejectedValueOnce(
Object.assign(new Error("Request failed with status code 401"), {
isAxiosError: true,
response: { status: 401 },
}),
);
await expect(createIntegration("https://controller.lan").getNetworkSummaryAsync()).rejects.toThrow();
expect(controllerCtor).toHaveBeenCalledTimes(1);
expect(controllerCtor).toHaveBeenCalledWith(expect.objectContaining({ port: 443 }));
});
});
@@ -2,7 +2,6 @@ import type tls from "node:tls";
import axios from "axios";
import { HttpCookieAgent, HttpsCookieAgent } from "http-cookie-agent/http";
import { getPortFromUrl } from "@homarr/common";
import {
getAllTrustedCertificatesAsync,
getTrustedCertificateHostnamesAsync,
@@ -67,26 +66,53 @@ export class UnifiControllerIntegration extends Integration implements NetworkCo
checkServerIdentity: createCustomCheckServerIdentity(await getTrustedCertificateHostnamesAsync()),
};
const client = new Unifi.Controller({
host: url.hostname,
port: getPortFromUrl(url),
username: this.getSecretValue("username"),
password: this.getSecretValue("password"),
createAxiosInstance({ cookies }) {
return axios.create({
adapter: "http",
httpAgent: new HttpCookieAgent({ cookies }),
httpsAgent: new HttpsCookieAgent({
cookies,
requestCert: true,
...certificateOptions,
}),
});
},
});
// ponytail: node-unifi always connects over HTTPS, regardless of the protocol in the
// integration URL. UniFi OS consoles use port 443 while self-hosted controllers normally
// use 8443. If no port was provided, try both without hiding authentication errors.
const ports = url.port ? [Number(url.port)] : [443, 8443];
const createClientForPortAsync = async (port: number) => {
const client = new Unifi.Controller({
host: url.hostname,
port,
username: this.getSecretValue("username"),
password: this.getSecretValue("password"),
createAxiosInstance({ cookies }) {
return axios.create({
adapter: "http",
httpAgent: new HttpCookieAgent({ cookies }),
httpsAgent: new HttpsCookieAgent({
cookies,
requestCert: true,
...certificateOptions,
}),
});
},
});
await client.login(this.getSecretValue("username"), this.getSecretValue("password"), null);
return client;
await client.login(this.getSecretValue("username"), this.getSecretValue("password"), null);
return client;
};
for (const [index, port] of ports.entries()) {
try {
return await createClientForPortAsync(port);
} catch (error) {
const isLastPort = index === ports.length - 1;
if (isLastPort || !this.isPortFallbackError(error)) {
throw error;
}
}
}
throw new Error("Unable to connect to the UniFi controller");
}
private isPortFallbackError(error: unknown) {
if (typeof error === "object" && error !== null && "isAxiosError" in error && error.isAxiosError === true) {
return !("response" in error) || error.response === undefined;
}
return error instanceof Error && error.message === "failed to detect UniFiOS status";
}
private getStatusValueOverAllSites<S extends HealthSubsystem>(
@@ -6,12 +6,9 @@ interface Options<TData, TInput extends Record<string, unknown>> {
type CacheEntry<TData> = { data: TData; timestamp: Date; expiresAt: number };
const MAX_CACHE_SIZE = 1000;
const cache = new Map<string, CacheEntry<unknown>>();
const inflight = new Map<string, Promise<CacheEntry<unknown>>>();
const DEFAULT_TTL_MS = 10_000;
const evictExpired = () => {
const evictExpired = <TData>(cache: Map<string, CacheEntry<TData>>) => {
const now = Date.now();
for (const [key, entry] of cache) {
if (now >= entry.expiresAt) cache.delete(key);
@@ -20,41 +17,46 @@ const evictExpired = () => {
export const createRequestHandler = <TData, TInput extends Record<string, unknown>>(
options: Options<TData, TInput>,
) => ({
handler: (input: TInput) => ({
async getDataAsync(): Promise<{ data: TData; timestamp: Date }> {
const ttl = options.cacheTtlMs ?? DEFAULT_TTL_MS;
const key = JSON.stringify(input);
) => {
const cache = new Map<string, CacheEntry<TData>>();
const inflight = new Map<string, Promise<CacheEntry<TData>>>();
const cached = cache.get(key) as CacheEntry<TData> | undefined;
if (cached && Date.now() < cached.expiresAt) {
return { data: cached.data, timestamp: cached.timestamp };
}
if (cached) cache.delete(key);
return {
handler: (input: TInput) => ({
async getDataAsync(): Promise<{ data: TData; timestamp: Date }> {
const ttl = options.cacheTtlMs ?? DEFAULT_TTL_MS;
const key = JSON.stringify(input);
const existing = inflight.get(key);
if (existing) return existing as Promise<CacheEntry<TData>>;
const cached = cache.get(key);
if (cached && Date.now() < cached.expiresAt) {
return { data: cached.data, timestamp: cached.timestamp };
}
if (cached) cache.delete(key);
const promise = options
.requestAsync(input)
.then((data) => {
if (cache.size >= MAX_CACHE_SIZE) evictExpired();
if (cache.size >= MAX_CACHE_SIZE) {
const oldest = cache.keys().next().value;
if (oldest) cache.delete(oldest);
}
const entry: CacheEntry<TData> = { data, timestamp: new Date(), expiresAt: Date.now() + ttl };
cache.set(key, entry as CacheEntry<unknown>);
inflight.delete(key);
return entry;
})
.catch((err) => {
inflight.delete(key);
throw err;
});
const existing = inflight.get(key);
if (existing) return existing;
inflight.set(key, promise as Promise<CacheEntry<unknown>>);
return promise;
},
}),
});
const promise = options
.requestAsync(input)
.then((data) => {
if (cache.size >= MAX_CACHE_SIZE) evictExpired(cache);
if (cache.size >= MAX_CACHE_SIZE) {
const oldest = cache.keys().next().value;
if (oldest) cache.delete(oldest);
}
const entry: CacheEntry<TData> = { data, timestamp: new Date(), expiresAt: Date.now() + ttl };
cache.set(key, entry);
inflight.delete(key);
return entry;
})
.catch((err) => {
inflight.delete(key);
throw err;
});
inflight.set(key, promise);
return promise;
},
}),
};
};
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": ""
"settings": "",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "",
"noStation": "",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": ""
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "",
"description": ""
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "",
@@ -3147,6 +3157,9 @@
"provider": {
"label": ""
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "",
"placeholder": ""
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "",
"tooltip": ""
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "",
"noMatchingVersion": "",
"noReleasesFound": "",
"noProviderSeleceted": "",
"noProviderResponse": ""
"noProviderSelected": "",
"noProviderResponse": "",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": ""
},
"job": {
"minecraftServerStatus": {
"label": ""
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": ""
},
"analytics": {
"label": ""
},
"smartHomeEntityState": {
"label": ""
},
"ping": {
"label": ""
},
"mediaServer": {
"label": ""
},
"mediaOrganizer": {
"label": ""
},
"downloads": {
"label": ""
},
"mediaRequestStats": {
"label": ""
},
"mediaRequestList": {
"label": ""
},
"rssFeeds": {
"label": ""
},
"indexerManager": {
"label": ""
},
"healthMonitoring": {
"label": ""
},
"dnsHole": {
"label": ""
},
"updateChecker": {
"label": ""
},
"mediaTranscoding": {
"label": ""
},
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
},
"firewallCpu": {
"label": ""
},
"firewallMemory": {
"label": ""
},
"firewallVersion": {
"label": ""
},
"firewallInterfaces": {
"label": ""
},
"weather": {
"label": ""
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "设置"
"settings": "设置",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "出发时间 {station}",
"noStation": "未选择车站",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": "车站"
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "显示图片信息",
"description": "在幻灯片底部显示图片日期和当前索引"
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "Immich 相册图片幻灯片",
@@ -3147,6 +3157,9 @@
"provider": {
"label": "提供者"
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "标识符",
"placeholder": "姓名或所有者名称"
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "没有提供者",
"tooltip": "无法解析该提供者,请在导入镜像后手动设置"
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "无效标识符",
"noMatchingVersion": "没有找到匹配的版本",
"noReleasesFound": "没有发现发布信息",
"noProviderSeleceted": "没有选择提供者",
"noProviderResponse": "提供者没有响应"
"noProviderSelected": "",
"noProviderResponse": "提供者没有响应",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": "禁用"
},
"job": {
"minecraftServerStatus": {
"label": "Minecraft 服务状态"
},
"timetable": {
"label": "时刻表"
},
"iconsUpdater": {
"label": "图标更新"
},
"analytics": {
"label": "分析"
},
"smartHomeEntityState": {
"label": "智能家居实体状态"
},
"ping": {
"label": "Pings"
},
"mediaServer": {
"label": "媒体服务"
},
"mediaOrganizer": {
"label": "媒体组织者"
},
"downloads": {
"label": "正在下载"
},
"mediaRequestStats": {
"label": "媒体请求统计"
},
"mediaRequestList": {
"label": "媒体请求列表"
},
"rssFeeds": {
"label": "RSS订阅"
},
"indexerManager": {
"label": "索引器管理"
},
"healthMonitoring": {
"label": "健康监测"
},
"dnsHole": {
"label": "DNS Hole 数据"
},
"updateChecker": {
"label": "更新检查"
},
"mediaTranscoding": {
"label": "媒体转码"
},
"networkController": {
"label": "网络控制器"
},
"refreshNotifications": {
"label": "更新通知"
},
"dockerContainers": {
"label": "Docker 容器"
},
"firewallCpu": {
"label": "防火墙 CPU"
},
"firewallMemory": {
"label": "防火墙内存"
},
"firewallVersion": {
"label": "防火墙版本"
},
"firewallInterfaces": {
"label": "防火墙接口"
},
"weather": {
"label": "天气"
},
"tracearr": {
"label": "Tracearr"
},
"umamiActiveVisitors": {
"label": "Umami 活跃访客"
},
"vpn": {
"label": ""
}
},
"interval": {
+26 -80
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "crwdns702:0crwdne702:0"
"settings": "crwdns702:0crwdne702:0",
"refresh": "crwdns5739:0crwdne5739:0",
"options": "crwdns5709:0crwdne5709:0",
"actions": "crwdns5711:0crwdne5711:0"
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "crwdns4004:0{station}crwdne4004:0",
"noStation": "crwdns4006:0crwdne4006:0",
"option": {
"baseUrl": {
"label": "crwdns5713:0crwdne5713:0"
},
"station": {
"label": "crwdns4008:0crwdne4008:0"
}
@@ -2773,8 +2779,8 @@
"name": "crwdns3908:0crwdne3908:0",
"option": {
"albumId": {
"label": "crwdns3910:0crwdne3910:0",
"description": "crwdns3912:0crwdne3912:0"
"label": "crwdns5715:0crwdne5715:0",
"description": "crwdns5717:0crwdne5717:0"
},
"rotationIntervalSeconds": {
"label": "crwdns3914:0crwdne3914:0",
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "crwdns3918:0crwdne3918:0",
"description": "crwdns3920:0crwdne3920:0"
},
"randomizePhotos": {
"label": "crwdns5719:0crwdne5719:0",
"description": "crwdns5721:0crwdne5721:0"
}
},
"description": "crwdns3922:0crwdne3922:0",
@@ -3147,6 +3157,9 @@
"provider": {
"label": "crwdns3204:0crwdne3204:0"
},
"providerUrl": {
"label": "crwdns5723:0crwdne5723:0"
},
"identifier": {
"label": "crwdns3206:0crwdne3206:0",
"placeholder": "crwdns3208:0crwdne3208:0"
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "crwdns3508:0crwdne3508:0",
"tooltip": "crwdns3510:0crwdne3510:0"
},
"tokens": {
"label": "crwdns5725:0crwdne5725:0",
"token": "crwdns5727:0crwdne5727:0",
"configured": "crwdns5729:0crwdne5729:0",
"notConfigured": "crwdns5731:0crwdne5731:0",
"save": "crwdns5733:0crwdne5733:0"
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "crwdns3512:0crwdne3512:0",
"noMatchingVersion": "crwdns3514:0crwdne3514:0",
"noReleasesFound": "crwdns3516:0crwdne3516:0",
"noProviderSeleceted": "crwdns3518:0crwdne3518:0",
"noProviderResponse": "crwdns3520:0crwdne3520:0"
"noProviderSelected": "crwdns5735:0crwdne5735:0",
"noProviderResponse": "crwdns3520:0crwdne3520:0",
"unexpected": "crwdns5737:0crwdne5737:0"
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": "crwdns3484:0crwdne3484:0"
},
"job": {
"minecraftServerStatus": {
"label": "crwdns2496:0crwdne2496:0"
},
"timetable": {
"label": "crwdns4010:0crwdne4010:0"
},
"iconsUpdater": {
"label": "crwdns1828:0crwdne1828:0"
},
"analytics": {
"label": "crwdns1830:0crwdne1830:0"
},
"smartHomeEntityState": {
"label": "crwdns1832:0crwdne1832:0"
},
"ping": {
"label": "crwdns1834:0crwdne1834:0"
},
"mediaServer": {
"label": "crwdns1836:0crwdne1836:0"
},
"mediaOrganizer": {
"label": "crwdns1838:0crwdne1838:0"
},
"downloads": {
"label": "crwdns1840:0crwdne1840:0"
},
"mediaRequestStats": {
"label": "crwdns1842:0crwdne1842:0"
},
"mediaRequestList": {
"label": "crwdns1844:0crwdne1844:0"
},
"rssFeeds": {
"label": "crwdns1846:0crwdne1846:0"
},
"indexerManager": {
"label": "crwdns1848:0crwdne1848:0"
},
"healthMonitoring": {
"label": "crwdns1850:0crwdne1850:0"
},
"dnsHole": {
"label": "crwdns1852:0crwdne1852:0"
},
"updateChecker": {
"label": "crwdns2258:0crwdne2258:0"
},
"mediaTranscoding": {
"label": "crwdns2436:0crwdne2436:0"
},
"networkController": {
"label": "crwdns3153:0crwdne3153:0"
},
"refreshNotifications": {
"label": "crwdns3482:0crwdne3482:0"
},
"dockerContainers": {
"label": "crwdns3430:0crwdne3430:0"
},
"firewallCpu": {
"label": "crwdns3592:0crwdne3592:0"
},
"firewallMemory": {
"label": "crwdns3594:0crwdne3594:0"
},
"firewallVersion": {
"label": "crwdns3596:0crwdne3596:0"
},
"firewallInterfaces": {
"label": "crwdns3598:0crwdne3598:0"
},
"weather": {
"label": "crwdns3724:0crwdne3724:0"
},
"tracearr": {
"label": "crwdns3990:0crwdne3990:0"
},
"umamiActiveVisitors": {
"label": "crwdns4223:0crwdne4223:0"
},
"vpn": {
"label": "crwdns5695:0crwdne5695:0"
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Nastavení"
"settings": "Nastavení",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "",
"noStation": "",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": ""
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "",
"description": ""
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "",
@@ -3147,6 +3157,9 @@
"provider": {
"label": ""
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "",
"placeholder": ""
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "",
"tooltip": ""
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "",
"noMatchingVersion": "",
"noReleasesFound": "",
"noProviderSeleceted": "",
"noProviderResponse": ""
"noProviderSelected": "",
"noProviderResponse": "",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": ""
},
"job": {
"minecraftServerStatus": {
"label": ""
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": ""
},
"analytics": {
"label": ""
},
"smartHomeEntityState": {
"label": ""
},
"ping": {
"label": ""
},
"mediaServer": {
"label": "Mediální server"
},
"mediaOrganizer": {
"label": ""
},
"downloads": {
"label": ""
},
"mediaRequestStats": {
"label": ""
},
"mediaRequestList": {
"label": ""
},
"rssFeeds": {
"label": ""
},
"indexerManager": {
"label": "Správce indexeru"
},
"healthMonitoring": {
"label": ""
},
"dnsHole": {
"label": ""
},
"updateChecker": {
"label": ""
},
"mediaTranscoding": {
"label": ""
},
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
},
"firewallCpu": {
"label": ""
},
"firewallMemory": {
"label": ""
},
"firewallVersion": {
"label": ""
},
"firewallInterfaces": {
"label": ""
},
"weather": {
"label": ""
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Indstillinger"
"settings": "Indstillinger",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "Afgange {station}",
"noStation": "Ingen station valgt",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": "Station"
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "Vis billedinfo",
"description": "Vis dato for billedet og det aktuelle indeks i bunden af diasshowet"
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "Diasshow af billeder i dit Immich album",
@@ -3147,6 +3157,9 @@
"provider": {
"label": "Udbyder"
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "Identifikator",
"placeholder": "Navn eller ejer/navn"
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "Ingen Udbyder",
"tooltip": "Udbyderen kunne ikke fortolkes, angiv venligst det manuelt efter import af billederne"
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "Ugyldig identifikator",
"noMatchingVersion": "Ingen matchende version fundet",
"noReleasesFound": "Ingen udgivelser fundet",
"noProviderSeleceted": "Ingen udbyder valgt",
"noProviderResponse": "Intet svar fra udbyder"
"noProviderSelected": "",
"noProviderResponse": "Intet svar fra udbyder",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": "Deaktiveret"
},
"job": {
"minecraftServerStatus": {
"label": "Status for Minecraft server"
},
"timetable": {
"label": "Tidsskema"
},
"iconsUpdater": {
"label": "Opdatering Af Ikoner"
},
"analytics": {
"label": "Analyser"
},
"smartHomeEntityState": {
"label": "Smarthjem ententitets tilstand"
},
"ping": {
"label": "Pings"
},
"mediaServer": {
"label": "Medieserver"
},
"mediaOrganizer": {
"label": "Medieorganisatorer"
},
"downloads": {
"label": "Downloads"
},
"mediaRequestStats": {
"label": "Statistik For Medieforespørgsel"
},
"mediaRequestList": {
"label": "Liste Over Medieforespørgsler"
},
"rssFeeds": {
"label": "RSS feeds"
},
"indexerManager": {
"label": "Indekser Manager"
},
"healthMonitoring": {
"label": "Helbredsovervågning"
},
"dnsHole": {
"label": "DNS Hole Data"
},
"updateChecker": {
"label": "Opdaterings checker"
},
"mediaTranscoding": {
"label": "Omkodning af medier"
},
"networkController": {
"label": "Netværkskontroller"
},
"refreshNotifications": {
"label": "Notifikations opdaterer"
},
"dockerContainers": {
"label": "Docker containers"
},
"firewallCpu": {
"label": "Firewall CPU"
},
"firewallMemory": {
"label": "Firewall Hukommelse"
},
"firewallVersion": {
"label": "Firewall Version"
},
"firewallInterfaces": {
"label": "Firewall Grænseflader"
},
"weather": {
"label": "Vejr"
},
"tracearr": {
"label": "Tracearr"
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Einstellungen"
"settings": "Einstellungen",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "",
"noStation": "",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": ""
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "",
"description": ""
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "",
@@ -3147,6 +3157,9 @@
"provider": {
"label": ""
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "",
"placeholder": ""
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "",
"tooltip": ""
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "",
"noMatchingVersion": "",
"noReleasesFound": "",
"noProviderSeleceted": "",
"noProviderResponse": ""
"noProviderSelected": "",
"noProviderResponse": "",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": ""
},
"job": {
"minecraftServerStatus": {
"label": "Status des Minecraft Servers"
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": "Symbol Updater"
},
"analytics": {
"label": "Nutzungsdaten"
},
"smartHomeEntityState": {
"label": "Status der Smart Home Entitäten"
},
"ping": {
"label": ""
},
"mediaServer": {
"label": "Medien Server"
},
"mediaOrganizer": {
"label": "Medienorganisatoren"
},
"downloads": {
"label": ""
},
"mediaRequestStats": {
"label": "Statistik der Medienanfragen"
},
"mediaRequestList": {
"label": "Liste der Medienanfragen"
},
"rssFeeds": {
"label": "RSS Feeds"
},
"indexerManager": {
"label": "Index Manager"
},
"healthMonitoring": {
"label": "Überwachung des Gesundheit"
},
"dnsHole": {
"label": "DNS Hole Daten"
},
"updateChecker": {
"label": "Updateprüfer"
},
"mediaTranscoding": {
"label": "Medien Transkodierung"
},
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
},
"firewallCpu": {
"label": ""
},
"firewallMemory": {
"label": ""
},
"firewallVersion": {
"label": ""
},
"firewallInterfaces": {
"label": ""
},
"weather": {
"label": ""
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Einstellungen"
"settings": "Einstellungen",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "{station} Abfahrt",
"noStation": "Keine Station ausgewählt",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": "Station"
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "Foto Infos anzeigen",
"description": "Datum des Bildes und des aktuellen Indexes am unteren Rand der Diashow anzeigen"
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "Diashow der Bilder in Ihrem Immich Album",
@@ -3147,6 +3157,9 @@
"provider": {
"label": "Anbieter"
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "Identifier",
"placeholder": "Name oder Eigentümer/Name"
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "Keine Anbieter",
"tooltip": "Der Anbieter konnte nicht festgestellt werden, bitte manuell nach dem Import der Bilder festlegen"
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "Ungültige Kennung",
"noMatchingVersion": "Keine passende Version gefunden",
"noReleasesFound": "Keine Veröffentlichungen gefunden",
"noProviderSeleceted": "Kein Anbieter ausgewählt",
"noProviderResponse": "Keine Antwort vom Anbieter"
"noProviderSelected": "",
"noProviderResponse": "Keine Antwort vom Anbieter",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": "Deaktiviert"
},
"job": {
"minecraftServerStatus": {
"label": "Status des Minecraft Servers"
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": "Symbol Updater"
},
"analytics": {
"label": "Nutzungsdaten"
},
"smartHomeEntityState": {
"label": "Status der Smart Home Entitäten"
},
"ping": {
"label": "Pings"
},
"mediaServer": {
"label": "Medien Server"
},
"mediaOrganizer": {
"label": "Medienorganisatoren"
},
"downloads": {
"label": "Downloads"
},
"mediaRequestStats": {
"label": "Statistik der Medienanfragen"
},
"mediaRequestList": {
"label": "Liste der Medienanfragen"
},
"rssFeeds": {
"label": "RSS Feeds"
},
"indexerManager": {
"label": "Index Manager"
},
"healthMonitoring": {
"label": "Überwachung des Zustandes"
},
"dnsHole": {
"label": "DNS Hole Daten"
},
"updateChecker": {
"label": "Updateprüfer"
},
"mediaTranscoding": {
"label": "Medien Transkodierung"
},
"networkController": {
"label": "Netzwerk Controller"
},
"refreshNotifications": {
"label": "Benachrichtigungs Updater"
},
"dockerContainers": {
"label": "Docker Container"
},
"firewallCpu": {
"label": "Firewall CPU"
},
"firewallMemory": {
"label": "Firewall Speicher"
},
"firewallVersion": {
"label": "Firewall Version"
},
"firewallInterfaces": {
"label": "Firewall Schnittstellen"
},
"weather": {
"label": "Wetter"
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Ρυθμίσεις"
"settings": "Ρυθμίσεις",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "",
"noStation": "",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": ""
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "",
"description": ""
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "",
@@ -3147,6 +3157,9 @@
"provider": {
"label": ""
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "",
"placeholder": ""
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "",
"tooltip": ""
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "",
"noMatchingVersion": "",
"noReleasesFound": "",
"noProviderSeleceted": "",
"noProviderResponse": ""
"noProviderSelected": "",
"noProviderResponse": "",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": ""
},
"job": {
"minecraftServerStatus": {
"label": ""
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": ""
},
"analytics": {
"label": ""
},
"smartHomeEntityState": {
"label": ""
},
"ping": {
"label": ""
},
"mediaServer": {
"label": "Διακομιστής πολυμέσων"
},
"mediaOrganizer": {
"label": ""
},
"downloads": {
"label": ""
},
"mediaRequestStats": {
"label": ""
},
"mediaRequestList": {
"label": ""
},
"rssFeeds": {
"label": ""
},
"indexerManager": {
"label": ""
},
"healthMonitoring": {
"label": ""
},
"dnsHole": {
"label": ""
},
"updateChecker": {
"label": ""
},
"mediaTranscoding": {
"label": ""
},
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
},
"firewallCpu": {
"label": ""
},
"firewallMemory": {
"label": ""
},
"firewallVersion": {
"label": ""
},
"firewallInterfaces": {
"label": ""
},
"weather": {
"label": ""
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Settings"
"settings": "Settings",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "Departures {station}",
"noStation": "No station selected",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": "Station"
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "",
"description": ""
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "",
@@ -3147,6 +3157,9 @@
"provider": {
"label": ""
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "",
"placeholder": ""
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "",
"tooltip": ""
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "",
"noMatchingVersion": "",
"noReleasesFound": "",
"noProviderSeleceted": "",
"noProviderResponse": ""
"noProviderSelected": "",
"noProviderResponse": "",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": ""
},
"job": {
"minecraftServerStatus": {
"label": ""
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": ""
},
"analytics": {
"label": ""
},
"smartHomeEntityState": {
"label": ""
},
"ping": {
"label": ""
},
"mediaServer": {
"label": ""
},
"mediaOrganizer": {
"label": ""
},
"downloads": {
"label": ""
},
"mediaRequestStats": {
"label": ""
},
"mediaRequestList": {
"label": ""
},
"rssFeeds": {
"label": ""
},
"indexerManager": {
"label": ""
},
"healthMonitoring": {
"label": ""
},
"dnsHole": {
"label": ""
},
"updateChecker": {
"label": ""
},
"mediaTranscoding": {
"label": ""
},
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
},
"firewallCpu": {
"label": ""
},
"firewallMemory": {
"label": ""
},
"firewallVersion": {
"label": ""
},
"firewallInterfaces": {
"label": ""
},
"weather": {
"label": ""
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Ajustes"
"settings": "Ajustes",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "Salidas {station}",
"noStation": "No se ha seleccionado ninguna integración",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": "Estación"
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "Mostrar información de la foto",
"description": "Mostrar la fecha y el índice actual de la foto en la parte inferior de la presentación"
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "Presentación de fotos de un álbum de Immich",
@@ -3147,6 +3157,9 @@
"provider": {
"label": "Proveedor"
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "Identificador",
"placeholder": "Nombre o Propietario/Nombre"
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "Sin Proveedor",
"tooltip": "El proveedor no pudo ser analizado, por favor configurarlo manualmente después de importar las imágenes"
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "Identificador no válido",
"noMatchingVersion": "No se encontró una versión correspondiente",
"noReleasesFound": "No se encontraron publicaciones",
"noProviderSeleceted": "No se ha seleccionado ningún proveedor",
"noProviderResponse": "No hay respuesta del proveedor"
"noProviderSelected": "",
"noProviderResponse": "No hay respuesta del proveedor",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": "Deshabilitado"
},
"job": {
"minecraftServerStatus": {
"label": "Estado del Servidor de Minecraft"
},
"timetable": {
"label": "Horarios de estación"
},
"iconsUpdater": {
"label": "Actualizador de iconos"
},
"analytics": {
"label": "Estadísticas"
},
"smartHomeEntityState": {
"label": "Estado de Entidad de Smart Home"
},
"ping": {
"label": "Pings"
},
"mediaServer": {
"label": "Servidor Multimedia"
},
"mediaOrganizer": {
"label": "Organizadores multimedia"
},
"downloads": {
"label": "Descargas"
},
"mediaRequestStats": {
"label": "Estadísticas de solicitudes de medios"
},
"mediaRequestList": {
"label": "Lista de solicitudes de medios"
},
"rssFeeds": {
"label": "Fuentes RSS"
},
"indexerManager": {
"label": "Administrador de Índices"
},
"healthMonitoring": {
"label": "Monitoreo de Salud"
},
"dnsHole": {
"label": "Datos de agujero DNS"
},
"updateChecker": {
"label": "Comprobador de actualización"
},
"mediaTranscoding": {
"label": "Transcodificación de medios"
},
"networkController": {
"label": "Controlador de red"
},
"refreshNotifications": {
"label": "Actualizador de notificaciones"
},
"dockerContainers": {
"label": "Contenedores de Docker"
},
"firewallCpu": {
"label": "CPU del Firewall"
},
"firewallMemory": {
"label": "Memoria del Firewall"
},
"firewallVersion": {
"label": "Versión del Firewall"
},
"firewallInterfaces": {
"label": "Interfaces del Firewall"
},
"weather": {
"label": "Tiempo"
},
"tracearr": {
"label": "Tracearr"
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": ""
"settings": "",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "",
"noStation": "",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": ""
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "",
"description": ""
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "",
@@ -3147,6 +3157,9 @@
"provider": {
"label": ""
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "",
"placeholder": ""
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "",
"tooltip": ""
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "",
"noMatchingVersion": "",
"noReleasesFound": "",
"noProviderSeleceted": "",
"noProviderResponse": ""
"noProviderSelected": "",
"noProviderResponse": "",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": ""
},
"job": {
"minecraftServerStatus": {
"label": ""
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": ""
},
"analytics": {
"label": ""
},
"smartHomeEntityState": {
"label": ""
},
"ping": {
"label": ""
},
"mediaServer": {
"label": ""
},
"mediaOrganizer": {
"label": ""
},
"downloads": {
"label": ""
},
"mediaRequestStats": {
"label": ""
},
"mediaRequestList": {
"label": ""
},
"rssFeeds": {
"label": ""
},
"indexerManager": {
"label": ""
},
"healthMonitoring": {
"label": ""
},
"dnsHole": {
"label": ""
},
"updateChecker": {
"label": ""
},
"mediaTranscoding": {
"label": ""
},
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
},
"firewallCpu": {
"label": ""
},
"firewallMemory": {
"label": ""
},
"firewallVersion": {
"label": ""
},
"firewallInterfaces": {
"label": ""
},
"weather": {
"label": ""
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Asetukset"
"settings": "Asetukset",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "",
"noStation": "",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": ""
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "",
"description": ""
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "",
@@ -3147,6 +3157,9 @@
"provider": {
"label": ""
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "",
"placeholder": ""
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "",
"tooltip": ""
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "",
"noMatchingVersion": "",
"noReleasesFound": "",
"noProviderSeleceted": "Toimittajaa ei ole valittu",
"noProviderResponse": ""
"noProviderSelected": "",
"noProviderResponse": "",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": "Ei käytössä"
},
"job": {
"minecraftServerStatus": {
"label": "Minecraft-palvelimen tila"
},
"timetable": {
"label": "Aikataulu"
},
"iconsUpdater": {
"label": "Kuvakepäivitykset"
},
"analytics": {
"label": "Analytiikka"
},
"smartHomeEntityState": {
"label": "Älykodin entiteettitila"
},
"ping": {
"label": "Ping-koestukset"
},
"mediaServer": {
"label": "Mediapalvelimet"
},
"mediaOrganizer": {
"label": "Median hallintatyökalut"
},
"downloads": {
"label": "Lataukset"
},
"mediaRequestStats": {
"label": "Mediapyyntöjen tilastot"
},
"mediaRequestList": {
"label": "Mediapyyntöjen listaus"
},
"rssFeeds": {
"label": "RSS-syötteet"
},
"indexerManager": {
"label": ""
},
"healthMonitoring": {
"label": "Terveydentilan valvonta"
},
"dnsHole": {
"label": ""
},
"updateChecker": {
"label": "Päivitystarkistus"
},
"mediaTranscoding": {
"label": "Median transkoodaus"
},
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": "Ilmoituspäivitykset"
},
"dockerContainers": {
"label": "Docker-kontit"
},
"firewallCpu": {
"label": "Palomuurin suoritin"
},
"firewallMemory": {
"label": "Palomuurin muisti"
},
"firewallVersion": {
"label": "Palomuurin versio"
},
"firewallInterfaces": {
"label": ""
},
"weather": {
"label": "Sää"
},
"tracearr": {
"label": "Tracearr"
},
"umamiActiveVisitors": {
"label": "Umamin aktiiviset käyttäjät"
},
"vpn": {
"label": ""
}
},
"interval": {
+36 -90
View File
@@ -732,8 +732,8 @@
"displayType": "",
"jsonPath": "",
"jsonPathHint": "",
"label": "",
"unit": "",
"label": "Étiquette",
"unit": "Unité",
"mappings": "",
"tablePath": "",
"tablePathHint": "",
@@ -755,14 +755,14 @@
"striped": "",
"compact": "",
"maxHeight": "",
"color": "",
"color": "Couleur",
"buttonLabel": "",
"buttonColor": "",
"confirmText": "",
"confirmText": "Texte de confirmation",
"confirmTextHint": "",
"successMessage": "",
"successMessage": "Message de réussite",
"successMessageHint": "",
"enabled": "",
"enabled": "Activé",
"template": {
"label": "",
"description": ""
@@ -1017,13 +1017,13 @@
"timetable": "",
"photoService": "",
"documents": "",
"notes": "",
"mediaMonitoring": "",
"speedtest": "",
"notes": "Notes",
"mediaMonitoring": "Supervision",
"speedtest": "Test de débit",
"analytics": "",
"vpn": "",
"mediaLibrary": "",
"uptimeMonitoring": ""
"mediaLibrary": "Bibliothèque de médias",
"uptimeMonitoring": "Surveillance des disponibilités"
},
"testConnection": {
"action": {
@@ -1298,7 +1298,7 @@
"newLabel": "Nouvelle clé privée"
},
"slug": {
"label": "",
"label": "Slug de la page de statut",
"newLabel": ""
}
}
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Paramètres"
"settings": "Paramètres",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "",
"noStation": "",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": ""
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "Afficher les informations de la photo",
"description": "Afficher la date et l'index de la photo en bas du diaporama"
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "Diaporama de photos dans votre album Immich",
@@ -3147,6 +3157,9 @@
"provider": {
"label": "Fournisseur"
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "Identifiant",
"placeholder": "Nom ou Propriétaire / Nom"
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "Aucun fournisseur",
"tooltip": "Le fournisseur n'a pas pu être analysé, veuillez le définir manuellement après l'importation des images"
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "Identifiant non valide",
"noMatchingVersion": "Aucune version correspondante trouvée",
"noReleasesFound": "Aucune publication trouvée",
"noProviderSeleceted": "Aucun fournisseur sélectionné",
"noProviderResponse": "Aucune réponse du fournisseur"
"noProviderSelected": "",
"noProviderResponse": "Aucune réponse du fournisseur",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": "Désactivé"
},
"job": {
"minecraftServerStatus": {
"label": "État du serveur Minecraft"
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": "Mise à jour des icônes"
},
"analytics": {
"label": "Statistiques"
},
"smartHomeEntityState": {
"label": "État de l'entité Maison Connectée"
},
"ping": {
"label": "Pings"
},
"mediaServer": {
"label": "Serveur multimédia"
},
"mediaOrganizer": {
"label": "Organisateurs de Médias"
},
"downloads": {
"label": "Téléchargements"
},
"mediaRequestStats": {
"label": "Statistiques des demandes de médias"
},
"mediaRequestList": {
"label": "Liste des demandes de médias"
},
"rssFeeds": {
"label": "Flux RSS"
},
"indexerManager": {
"label": "Gestionnaire d’indexeur"
},
"healthMonitoring": {
"label": "Moniteur de santé"
},
"dnsHole": {
"label": "Données du puit DNS"
},
"updateChecker": {
"label": "Vérificateur de mise à jour"
},
"mediaTranscoding": {
"label": "Transcodage des médias"
},
"networkController": {
"label": "Contrôleur réseau"
},
"refreshNotifications": {
"label": "Mise à jour des notifications"
},
"dockerContainers": {
"label": "Conteneurs Docker"
},
"firewallCpu": {
"label": "Processeur du pare-feu"
},
"firewallMemory": {
"label": "Mémoire du pare-feu"
},
"firewallVersion": {
"label": "Version du pare-feu"
},
"firewallInterfaces": {
"label": "Interfaces du pare-feu"
},
"weather": {
"label": "Météo"
},
"tracearr": {
"label": "Tracearr"
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "הגדרות"
"settings": "הגדרות",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "",
"noStation": "",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": ""
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "",
"description": ""
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "",
@@ -3147,6 +3157,9 @@
"provider": {
"label": "ספק"
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "מזהה",
"placeholder": "שם או בעלים/שם"
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "ללא ספק",
"tooltip": "לא ניתן היה לנתח את הספק, אנא הגדר אותו ידנית לאחר ייבוא ​​התמונות"
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "מזהה לא חוקי",
"noMatchingVersion": "לא נמצאה גרסה תואמת",
"noReleasesFound": "לא נמצאו שיחרורים",
"noProviderSeleceted": "לא נבחר ספק",
"noProviderResponse": "אין תשובה מהספק"
"noProviderSelected": "",
"noProviderResponse": "אין תשובה מהספק",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": "מושבת"
},
"job": {
"minecraftServerStatus": {
"label": "סטטוס שרת מיינקראפט"
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": "עדכון אייקונים"
},
"analytics": {
"label": "ניתוחים"
},
"smartHomeEntityState": {
"label": "סטטוס יישות בית חכם"
},
"ping": {
"label": "פינגים"
},
"mediaServer": {
"label": "שרת מדיה"
},
"mediaOrganizer": {
"label": "מארגני מדיה"
},
"downloads": {
"label": "הורדות"
},
"mediaRequestStats": {
"label": "סטטוס בקשות מדיה"
},
"mediaRequestList": {
"label": "רשימת בקשות מדיה"
},
"rssFeeds": {
"label": "הזנות RSS"
},
"indexerManager": {
"label": "מנהל אינדקסים"
},
"healthMonitoring": {
"label": "ניטור בריאות המערכת"
},
"dnsHole": {
"label": "נתוני חור DNS"
},
"updateChecker": {
"label": "בודק עדכונים"
},
"mediaTranscoding": {
"label": "המרת קידוד מדיה"
},
"networkController": {
"label": "בקר רשת"
},
"refreshNotifications": {
"label": "עדכון התראות"
},
"dockerContainers": {
"label": "מכולות דוקר"
},
"firewallCpu": {
"label": "מעבד חומת האש"
},
"firewallMemory": {
"label": "זיכרון חומת אש"
},
"firewallVersion": {
"label": "גרסת חומת אש"
},
"firewallInterfaces": {
"label": "ממשקי חומת אש"
},
"weather": {
"label": "מזג אוויר"
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Postavke"
"settings": "Postavke",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "",
"noStation": "",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": ""
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "",
"description": ""
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "",
@@ -3147,6 +3157,9 @@
"provider": {
"label": ""
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "",
"placeholder": ""
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "",
"tooltip": ""
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "",
"noMatchingVersion": "",
"noReleasesFound": "",
"noProviderSeleceted": "",
"noProviderResponse": ""
"noProviderSelected": "",
"noProviderResponse": "",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": ""
},
"job": {
"minecraftServerStatus": {
"label": ""
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": ""
},
"analytics": {
"label": ""
},
"smartHomeEntityState": {
"label": ""
},
"ping": {
"label": ""
},
"mediaServer": {
"label": "Medijski poslužitelj"
},
"mediaOrganizer": {
"label": ""
},
"downloads": {
"label": ""
},
"mediaRequestStats": {
"label": ""
},
"mediaRequestList": {
"label": ""
},
"rssFeeds": {
"label": ""
},
"indexerManager": {
"label": ""
},
"healthMonitoring": {
"label": ""
},
"dnsHole": {
"label": ""
},
"updateChecker": {
"label": ""
},
"mediaTranscoding": {
"label": ""
},
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
},
"firewallCpu": {
"label": ""
},
"firewallMemory": {
"label": ""
},
"firewallVersion": {
"label": ""
},
"firewallInterfaces": {
"label": ""
},
"weather": {
"label": ""
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Beállítások"
"settings": "Beállítások",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "Indulások {station}",
"noStation": "Nincs kiválasztott állomás",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": "Állomás"
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "Fotóadatok megjelenítése",
"description": "Kép dátumának és az aktuális indexszámnak a megjelenítése a diavetítés alján"
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "Képek diavetítése az Immich-albumodból",
@@ -3147,6 +3157,9 @@
"provider": {
"label": "Szolgáltató"
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "Azonosító",
"placeholder": "Név vagy tulajdonos/név"
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "Nincs Szolgáltató",
"tooltip": "A szolgáltató adatai nem értelmezhetők; kérjük, az importálás után állítsa be azokat manuálisan"
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "",
"noMatchingVersion": "",
"noReleasesFound": "",
"noProviderSeleceted": "",
"noProviderResponse": ""
"noProviderSelected": "",
"noProviderResponse": "",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": ""
},
"job": {
"minecraftServerStatus": {
"label": ""
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": ""
},
"analytics": {
"label": ""
},
"smartHomeEntityState": {
"label": ""
},
"ping": {
"label": ""
},
"mediaServer": {
"label": "Médiakiszolgáló"
},
"mediaOrganizer": {
"label": ""
},
"downloads": {
"label": "Letöltések"
},
"mediaRequestStats": {
"label": ""
},
"mediaRequestList": {
"label": ""
},
"rssFeeds": {
"label": ""
},
"indexerManager": {
"label": ""
},
"healthMonitoring": {
"label": ""
},
"dnsHole": {
"label": ""
},
"updateChecker": {
"label": ""
},
"mediaTranscoding": {
"label": ""
},
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
},
"firewallCpu": {
"label": "Tűzfal CPU"
},
"firewallMemory": {
"label": "Tűzfal Memória"
},
"firewallVersion": {
"label": ""
},
"firewallInterfaces": {
"label": ""
},
"weather": {
"label": ""
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Impostazioni"
"settings": "Impostazioni",
"refresh": "Aggiorna",
"options": "Opzioni",
"actions": "Azioni"
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "Partenze {station}",
"noStation": "Nessuna stazione selezionata",
"option": {
"baseUrl": {
"label": "Url Search.ch"
},
"station": {
"label": "Stazione"
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "Mostra informazioni foto",
"description": "Visualizza la data dell'immagine e l'indice corrente nella parte inferiore della presentazione"
},
"randomizePhotos": {
"label": "Immagini casuali",
"description": "Mostra le foto in ordine casuale invece di iniziare sempre con lo stesso ordine degli album."
}
},
"description": "Presentazione delle immagini nel tuo album Immich",
@@ -3147,6 +3157,9 @@
"provider": {
"label": "Provider"
},
"providerUrl": {
"label": "URL Provider"
},
"identifier": {
"label": "Identificatore",
"placeholder": "Nome o Proprietario/Nome"
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "Nessun Provider",
"tooltip": "Impossibile analizzare il provider, impostarlo manualmente dopo aver importato le immagini"
},
"tokens": {
"label": "Token Provider",
"token": "Token",
"configured": "Token configurato",
"notConfigured": "Nessun token impostato",
"save": "Salva"
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "Identificatore non valido",
"noMatchingVersion": "Nessuna versione corrispondente trovata",
"noReleasesFound": "Nessun rilascio trovato",
"noProviderSeleceted": "Nessun provider selezionato",
"noProviderResponse": "Nessuna risposta dal provider"
"noProviderSelected": "Nessun provider selezionato",
"noProviderResponse": "Nessuna risposta dal provider",
"unexpected": "Errore provider inaspettato"
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": "Disabilitato"
},
"job": {
"minecraftServerStatus": {
"label": "Stato del server Minecraft"
},
"timetable": {
"label": "Orario"
},
"iconsUpdater": {
"label": "Aggiornatore Icone"
},
"analytics": {
"label": "Analytics"
},
"smartHomeEntityState": {
"label": "Stato dell'entità Smart Home"
},
"ping": {
"label": "Ping"
},
"mediaServer": {
"label": "Media Server"
},
"mediaOrganizer": {
"label": "Organizzatori Media"
},
"downloads": {
"label": "Scaricamenti"
},
"mediaRequestStats": {
"label": "Statistiche richieste media"
},
"mediaRequestList": {
"label": "Elenco richieste media"
},
"rssFeeds": {
"label": "Feeds RSS"
},
"indexerManager": {
"label": "Gestione Indicizzatori"
},
"healthMonitoring": {
"label": "Monitoraggio integrità del sistema"
},
"dnsHole": {
"label": "Dati di filtraggio DNS"
},
"updateChecker": {
"label": "Controllo aggiornamenti"
},
"mediaTranscoding": {
"label": "Transcodifica del media"
},
"networkController": {
"label": "Controller di rete"
},
"refreshNotifications": {
"label": "Aggiornamento Notifiche"
},
"dockerContainers": {
"label": "Containers docker"
},
"firewallCpu": {
"label": "CPU Firewall"
},
"firewallMemory": {
"label": "Memoria Firewall"
},
"firewallVersion": {
"label": "Versione Firewall"
},
"firewallInterfaces": {
"label": "Interfacce Firewall"
},
"weather": {
"label": "Meteo"
},
"tracearr": {
"label": "Tracearr"
},
"umamiActiveVisitors": {
"label": "Visitatori Attivi Umami"
},
"vpn": {
"label": "Stato VPN"
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "設定"
"settings": "設定",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "{station} 出発時刻",
"noStation": "駅が選択されていません",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": "駅"
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "写真情報を表示",
"description": "スライドショーの下部に画像の日付と現在の索引を表示します"
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "Immichアルバムの写真のスライド",
@@ -3147,6 +3157,9 @@
"provider": {
"label": "プロバイダー"
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "識別名",
"placeholder": "名前、または所有者名"
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "プロバイダーがありません",
"tooltip": "プロバイダーを解析できませんでした。画像をインポートしたあとで、手動で設定してください"
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "無効な識別子",
"noMatchingVersion": "一致するバージョンが見つかりません",
"noReleasesFound": "リリースが見つかりませんでした",
"noProviderSeleceted": "プロバイダーが選択されていません",
"noProviderResponse": "プロバイダーからの応答がありません"
"noProviderSelected": "",
"noProviderResponse": "プロバイダーからの応答がありません",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": "無効"
},
"job": {
"minecraftServerStatus": {
"label": "Minecraft サーバーの状態"
},
"timetable": {
"label": "タイムテーブル"
},
"iconsUpdater": {
"label": "アイコンアップデータ"
},
"analytics": {
"label": "統計情報"
},
"smartHomeEntityState": {
"label": "スマートホームエンティティの状態"
},
"ping": {
"label": "Pings"
},
"mediaServer": {
"label": "メディアサーバー"
},
"mediaOrganizer": {
"label": "メディアオーガナイザー"
},
"downloads": {
"label": "ダウンロード"
},
"mediaRequestStats": {
"label": "メディアリクエストの統計情報"
},
"mediaRequestList": {
"label": "メディアリクエストのリスト"
},
"rssFeeds": {
"label": "RSS フィード"
},
"indexerManager": {
"label": "インデクサーマネージャー"
},
"healthMonitoring": {
"label": "ヘルスモニタ"
},
"dnsHole": {
"label": "DNS Holeデータ"
},
"updateChecker": {
"label": "アップデートチェッカー"
},
"mediaTranscoding": {
"label": "メディアのトランスコーディング"
},
"networkController": {
"label": "ネットワークコントローラ"
},
"refreshNotifications": {
"label": "通知アップデーター"
},
"dockerContainers": {
"label": "Docker コンテナ"
},
"firewallCpu": {
"label": "ファイアウォールの CPU"
},
"firewallMemory": {
"label": "ファイアウォールのメモリ"
},
"firewallVersion": {
"label": "ファイアウォールのバージョン"
},
"firewallInterfaces": {
"label": "ファイアウォールのインターフェース"
},
"weather": {
"label": "天気"
},
"tracearr": {
"label": "Tracearr"
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "설정"
"settings": "설정",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "",
"noStation": "",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": ""
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "",
"description": ""
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "",
@@ -3147,6 +3157,9 @@
"provider": {
"label": ""
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "",
"placeholder": ""
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "",
"tooltip": ""
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "",
"noMatchingVersion": "",
"noReleasesFound": "",
"noProviderSeleceted": "",
"noProviderResponse": ""
"noProviderSelected": "",
"noProviderResponse": "",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": ""
},
"job": {
"minecraftServerStatus": {
"label": ""
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": ""
},
"analytics": {
"label": ""
},
"smartHomeEntityState": {
"label": ""
},
"ping": {
"label": ""
},
"mediaServer": {
"label": "미디어 서버"
},
"mediaOrganizer": {
"label": ""
},
"downloads": {
"label": ""
},
"mediaRequestStats": {
"label": ""
},
"mediaRequestList": {
"label": ""
},
"rssFeeds": {
"label": ""
},
"indexerManager": {
"label": ""
},
"healthMonitoring": {
"label": ""
},
"dnsHole": {
"label": ""
},
"updateChecker": {
"label": ""
},
"mediaTranscoding": {
"label": ""
},
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
},
"firewallCpu": {
"label": ""
},
"firewallMemory": {
"label": ""
},
"firewallVersion": {
"label": ""
},
"firewallInterfaces": {
"label": ""
},
"weather": {
"label": ""
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Nustatymai"
"settings": "Nustatymai",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "",
"noStation": "",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": ""
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "",
"description": ""
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "",
@@ -3147,6 +3157,9 @@
"provider": {
"label": ""
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "",
"placeholder": ""
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "",
"tooltip": ""
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "",
"noMatchingVersion": "",
"noReleasesFound": "",
"noProviderSeleceted": "",
"noProviderResponse": ""
"noProviderSelected": "",
"noProviderResponse": "",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": ""
},
"job": {
"minecraftServerStatus": {
"label": ""
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": ""
},
"analytics": {
"label": ""
},
"smartHomeEntityState": {
"label": ""
},
"ping": {
"label": ""
},
"mediaServer": {
"label": "Medijų serveris"
},
"mediaOrganizer": {
"label": ""
},
"downloads": {
"label": ""
},
"mediaRequestStats": {
"label": ""
},
"mediaRequestList": {
"label": ""
},
"rssFeeds": {
"label": ""
},
"indexerManager": {
"label": ""
},
"healthMonitoring": {
"label": ""
},
"dnsHole": {
"label": ""
},
"updateChecker": {
"label": ""
},
"mediaTranscoding": {
"label": ""
},
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
},
"firewallCpu": {
"label": ""
},
"firewallMemory": {
"label": ""
},
"firewallVersion": {
"label": ""
},
"firewallInterfaces": {
"label": ""
},
"weather": {
"label": ""
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Iestatījumi"
"settings": "Iestatījumi",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "",
"noStation": "",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": ""
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "",
"description": ""
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "",
@@ -3147,6 +3157,9 @@
"provider": {
"label": ""
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "",
"placeholder": ""
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "",
"tooltip": ""
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "",
"noMatchingVersion": "",
"noReleasesFound": "",
"noProviderSeleceted": "",
"noProviderResponse": ""
"noProviderSelected": "",
"noProviderResponse": "",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": ""
},
"job": {
"minecraftServerStatus": {
"label": ""
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": ""
},
"analytics": {
"label": ""
},
"smartHomeEntityState": {
"label": ""
},
"ping": {
"label": ""
},
"mediaServer": {
"label": "Multivides Serveris"
},
"mediaOrganizer": {
"label": ""
},
"downloads": {
"label": ""
},
"mediaRequestStats": {
"label": ""
},
"mediaRequestList": {
"label": ""
},
"rssFeeds": {
"label": ""
},
"indexerManager": {
"label": ""
},
"healthMonitoring": {
"label": ""
},
"dnsHole": {
"label": ""
},
"updateChecker": {
"label": ""
},
"mediaTranscoding": {
"label": ""
},
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
},
"firewallCpu": {
"label": ""
},
"firewallMemory": {
"label": ""
},
"firewallVersion": {
"label": ""
},
"firewallInterfaces": {
"label": ""
},
"weather": {
"label": ""
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Instellingen"
"settings": "Instellingen",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "",
"noStation": "",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": ""
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "",
"description": ""
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "",
@@ -3147,6 +3157,9 @@
"provider": {
"label": "Aanbieder"
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "Identificator",
"placeholder": "Naam of Eigenaar/naam"
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "Geen aanbieder",
"tooltip": ""
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "Ongeldige identificator",
"noMatchingVersion": "Geen overeenkomende versie gevonden",
"noReleasesFound": "Geen uitgaves gevonden",
"noProviderSeleceted": "Geen aanbieder geselecteerd",
"noProviderResponse": "Geen reactie van aanbieder"
"noProviderSelected": "",
"noProviderResponse": "Geen reactie van aanbieder",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": "Uitgeschakeld"
},
"job": {
"minecraftServerStatus": {
"label": "Minecraft server status"
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": "Icoon updater"
},
"analytics": {
"label": "Analytics"
},
"smartHomeEntityState": {
"label": "Smart home entiteitstatus"
},
"ping": {
"label": "Pings"
},
"mediaServer": {
"label": "Mediaserver"
},
"mediaOrganizer": {
"label": "Media organisatoren"
},
"downloads": {
"label": "Downloads"
},
"mediaRequestStats": {
"label": "Media-aanvraag statistieken"
},
"mediaRequestList": {
"label": "Media-aanvraag lijst"
},
"rssFeeds": {
"label": "RSS-feeds"
},
"indexerManager": {
"label": "Indexeringsbeheerder"
},
"healthMonitoring": {
"label": "Gezondheidsmonitoring"
},
"dnsHole": {
"label": "DNS-hole gegevens"
},
"updateChecker": {
"label": "Update checker"
},
"mediaTranscoding": {
"label": "Mediatranscodering"
},
"networkController": {
"label": "Netwerkcontroller"
},
"refreshNotifications": {
"label": "Melding updater"
},
"dockerContainers": {
"label": "Docker containers"
},
"firewallCpu": {
"label": "Firewall CPU"
},
"firewallMemory": {
"label": "Firewall geheugen"
},
"firewallVersion": {
"label": "Firewall versie"
},
"firewallInterfaces": {
"label": "Firewall interfaces"
},
"weather": {
"label": "Weer"
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+26 -80
View File
@@ -8,8 +8,8 @@
"action": {
"scratch": "Start fra begynnelsen",
"importOldmarr": "Importer fra Homarr før 1.0",
"restoreSqlite": "",
"restoreSqliteDescription": "",
"restoreSqlite": "Gjenopprett fra SQLite sikkerhetskopi",
"restoreSqliteDescription": "Last opp en full SQLite database sikkerhetskopi fra en tidligere Homarr instans. Dette vil gjenopprette alle tavler, brukere, apper, integrasjoner og innstillinger.",
"backToOptions": ""
}
},
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Innstillinger"
"settings": "Innstillinger",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "Avganger {station}",
"noStation": "Ingen stasjon valgt",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": "Stasjon"
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "Vis bildeinformasjon",
"description": "Vis datoen for bildet og gjeldende indeks nederst i lysbildeserien"
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "Lysbildefremvisning av bilder i ditt Immich-album",
@@ -3147,6 +3157,9 @@
"provider": {
"label": "Leverandør"
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "Identifikator",
"placeholder": "Navn eller Eier/Navn"
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "Ingen leverandør",
"tooltip": "Leverandøren kunne ikke tolkes, sett den manuelt etter import av bildene"
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "Ugyldig identifikator",
"noMatchingVersion": "Ingen samsvarende versjon funnet",
"noReleasesFound": "Ingen utgivelser funnet",
"noProviderSeleceted": "Ingen leverandør valgt",
"noProviderResponse": "Ingen respons fra leverandør"
"noProviderSelected": "",
"noProviderResponse": "Ingen respons fra leverandør",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": "Deaktivert"
},
"job": {
"minecraftServerStatus": {
"label": "Minecraft serverstatus"
},
"timetable": {
"label": "Timeplan"
},
"iconsUpdater": {
"label": "Ikon oppdatering"
},
"analytics": {
"label": "Statistikk"
},
"smartHomeEntityState": {
"label": "Smart hjem enhets tilstand"
},
"ping": {
"label": "Pinger"
},
"mediaServer": {
"label": "Medieserver"
},
"mediaOrganizer": {
"label": "Media organisatorer"
},
"downloads": {
"label": "Nedlastinger"
},
"mediaRequestStats": {
"label": "Statistikk for mediaforespørsler"
},
"mediaRequestList": {
"label": "Liste over mediaspillforespørsler"
},
"rssFeeds": {
"label": "RSS feed"
},
"indexerManager": {
"label": "Indekserings-behandler"
},
"healthMonitoring": {
"label": "Systemhelseovervåking"
},
"dnsHole": {
"label": "DNS Hole Data"
},
"updateChecker": {
"label": "Oppdateringssjekk"
},
"mediaTranscoding": {
"label": "Media transkoding"
},
"networkController": {
"label": "Nettverkskontroller"
},
"refreshNotifications": {
"label": "Varseloppdaterer"
},
"dockerContainers": {
"label": "Docker-beholdere"
},
"firewallCpu": {
"label": "Brannmur-CPU"
},
"firewallMemory": {
"label": "Brannmur-minne"
},
"firewallVersion": {
"label": "Brannmur-versjon"
},
"firewallInterfaces": {
"label": "Brannmur-grensesnitt"
},
"weather": {
"label": "Vær"
},
"tracearr": {
"label": "Tracearr"
},
"umamiActiveVisitors": {
"label": "Umami Aktive Besøkende"
},
"vpn": {
"label": ""
}
},
"interval": {
+52 -106
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Ustawienia"
"settings": "Ustawienia",
"refresh": "",
"options": "Opcje",
"actions": "Akcje"
}
},
"create": {
@@ -1761,8 +1764,8 @@
}
},
"dnsHoleSummary": {
"name": "Podsumowanie Hole DNS",
"description": "Wyświetla podsumowanie Twojego hosta DNS",
"name": "Podsumowanie DNS Hole",
"description": "Wyświetla podsumowanie Twojego DNS Hole",
"option": {
"layout": {
"label": "Układ",
@@ -1783,7 +1786,7 @@
}
},
"error": {
"internalServerError": "Nie udało się pobrać podsumowanie Hole DNS",
"internalServerError": "Nie udało się pobrać podsumowanie DNS Hole",
"integrationsDisconnected": "Brak dostępnych danych, wszystkie integracje odłączone"
},
"data": {
@@ -1795,7 +1798,7 @@
"domainsTooltip": "Ze względu na wiele integracji, Homarr nie może obliczyć dokładnej liczby zablokowanych domen"
},
"dnsHoleControls": {
"name": "Kontrola luk DNS",
"name": "Kontrola DNS Hole",
"description": "Kontroluj PiHole lub AdGuard ze swojego pulpitu",
"option": {
"layout": {
@@ -1895,11 +1898,14 @@
}
},
"timetable": {
"name": "Rozkład",
"name": "Harmonogram",
"description": "Wyświetla czas odjazdu dla stacji",
"title": "Odjazdy {station}",
"noStation": "Nie wybrano stacji",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": "Stacja"
}
@@ -2088,34 +2094,34 @@
"label": "Zakres czasu",
"option": {
"1d": {
"label": "1 dzień"
"label": "1 Dzień"
},
"5d": {
"label": "5 dni"
"label": "5 Dni"
},
"1mo": {
"label": "1 miesiąc"
"label": "1 Miesiąc"
},
"3mo": {
"label": "3 miesiące"
"label": "3 Miesiące"
},
"6mo": {
"label": "6 miesięcy"
"label": "6 Miesięcy"
},
"ytd": {
"label": "Od początku roku"
},
"1y": {
"label": "1 rok"
"label": "1 Rok"
},
"2y": {
"label": "2 lata"
"label": "2 Lata"
},
"5y": {
"label": "5 lat"
"label": "5 Lat"
},
"10y": {
"label": "10 lat"
"label": "10 Lat"
},
"max": {
"label": "Maks"
@@ -2123,31 +2129,31 @@
}
},
"timeInterval": {
"label": "Interwał czasu",
"label": "Interwał Czasu",
"option": {
"5m": {
"label": "5 minut"
"label": "5 Minut"
},
"15m": {
"label": "15 minut"
"label": "15 Minut"
},
"30m": {
"label": "30 minut"
"label": "30 Minut"
},
"1h": {
"label": "1 godzina"
"label": "1 Godzina"
},
"1d": {
"label": "1 dzień"
"label": "1 Dzień"
},
"5d": {
"label": "5 dni"
"label": "5 Dni"
},
"1wk": {
"label": "1 tydzień"
"label": "1 Tydzień"
},
"1mo": {
"label": "1 miesiąc"
"label": "1 Miesiąc"
}
}
}
@@ -2194,7 +2200,7 @@
"description": "Tylko dla bieżącej pogody"
},
"useImperialSpeed": {
"label": "Prędkość wiatru w mph"
"label": "Użyj mph dla prędkości wiatru"
},
"location": {
"label": "Lokalizacja pogody"
@@ -2203,7 +2209,7 @@
"label": "Pokaż miasto"
},
"hasForecast": {
"label": "Pokaż Prognozę"
"label": "Pokaż prognozę"
},
"forecastDayCount": {
"label": "Liczba dni prognozy",
@@ -2214,7 +2220,7 @@
"description": "Jak powinna wyglądać data"
}
},
"currentWindSpeed": "{currentWindSpeed} km/h",
"currentWindSpeed": "{currentWindSpeed} {unit}",
"dailyForecast": {
"sunrise": "Wschód słońca",
"sunset": "Zachód słońca",
@@ -2358,7 +2364,7 @@
"description": "Statystyki Twoich kontenerów (ten widżet można dodać tylko z uprawnieniami administratora)",
"option": {
"columns": {
"label": ""
"label": "Kolumny do pokazania"
},
"enableRowSorting": {
"label": "Włącz sortowanie elementów"
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "Pokaż informacje o zdjęciu",
"description": "Wyświetl datę zdjęcia oraz bieżący indeks na dole pokazu slajdów"
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "Pokaz slajdów zdjęć z Twojego albumu w Immich",
@@ -3147,6 +3157,9 @@
"provider": {
"label": "Dostawca"
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "Identyfikator",
"placeholder": "Nazwa lub Właściciel/Nazwa"
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "Brak dostawcy",
"tooltip": "Nie udało się rozpoznać dostawcy. Ustaw go ręcznie po zaimportowaniu obrazów."
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "Nieprawidłowy identyfikator",
"noMatchingVersion": "Nie znaleziono pasującej wersji",
"noReleasesFound": "Nie znaleziono wydań!",
"noProviderSeleceted": "Nie wybrano dostawcy",
"noProviderResponse": "Brak odpowiedzi od dostawcy"
"noProviderSelected": "",
"noProviderResponse": "Brak odpowiedzi od dostawcy",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": "Wyłączone"
},
"job": {
"minecraftServerStatus": {
"label": "Status serwera Minecraft"
},
"timetable": {
"label": "Harmonogram"
},
"iconsUpdater": {
"label": "Aktualizator ikon"
},
"analytics": {
"label": "Analityka"
},
"smartHomeEntityState": {
"label": "Stan jednostki Smart Home"
},
"ping": {
"label": "Pingi"
},
"mediaServer": {
"label": "Serwery mediów"
},
"mediaOrganizer": {
"label": "Organizatory mediów"
},
"downloads": {
"label": "Pobrane "
},
"mediaRequestStats": {
"label": "Statystyki żądań mediów"
},
"mediaRequestList": {
"label": "Lista żądań mediów"
},
"rssFeeds": {
"label": "Kanały RSS"
},
"indexerManager": {
"label": "Menedżer indeksowania"
},
"healthMonitoring": {
"label": "Monitorowanie zdrowia systemu"
},
"dnsHole": {
"label": "Dane DNS Hole"
},
"updateChecker": {
"label": "Sprawdzanie aktualizacji"
},
"mediaTranscoding": {
"label": "Transkodowanie mediów"
},
"networkController": {
"label": "Kontroler sieci"
},
"refreshNotifications": {
"label": "Aktualizacje powiadomień"
},
"dockerContainers": {
"label": "Kontenery Dockera"
},
"firewallCpu": {
"label": "Procesor firewalla"
},
"firewallMemory": {
"label": "Pamięć firewalla"
},
"firewallVersion": {
"label": "Wersja firewalla"
},
"firewallInterfaces": {
"label": "Interfejsy firewalla"
},
"weather": {
"label": "Pogoda"
},
"tracearr": {
"label": "Tracearr"
},
"umamiActiveVisitors": {
"label": "Aktywni odwiedzający Umami"
},
"vpn": {
"label": "Status VPN"
}
},
"interval": {
@@ -5100,7 +5046,7 @@
},
"error": {
"internalServerError": "Nie udało się pobrać kontenerów Dockera",
"noColumns": ""
"noColumns": "Wybierz co najmniej jedną kolumnę w ustawieniach widżetu"
}
},
"kubernetes": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Configurações"
"settings": "Configurações",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "Partidas {station}",
"noStation": "Nenhuma estação selecionada",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": "Estação"
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "Mostrar informações da foto",
"description": "Exibir a data da imagem e o índice atual na parte inferior da apresentação"
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "Apresentação de imagens em seu álbum Imich",
@@ -3147,6 +3157,9 @@
"provider": {
"label": "Provedor"
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "Identificador",
"placeholder": "Nome ou Proprietário/Nome"
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "Nenhum provedor",
"tooltip": "O provedor não pôde ser analisado, defina-o manualmente após importar as imagens"
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "Identificador inválido",
"noMatchingVersion": "Nenhuma versão correspondente encontrada",
"noReleasesFound": "Nenhum lançamento encontrado",
"noProviderSeleceted": "Nenhum provedor selecionado",
"noProviderResponse": "Nenhuma resposta do provedor"
"noProviderSelected": "",
"noProviderResponse": "Nenhuma resposta do provedor",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": "Desabilitado"
},
"job": {
"minecraftServerStatus": {
"label": "Status do servidor Minecraft"
},
"timetable": {
"label": "Horários"
},
"iconsUpdater": {
"label": "Atualizador de Ícones"
},
"analytics": {
"label": "Análises"
},
"smartHomeEntityState": {
"label": "Estado de Entidade do Smart Home"
},
"ping": {
"label": "Pings"
},
"mediaServer": {
"label": "Servidor de Mídia"
},
"mediaOrganizer": {
"label": "Organizadores de Mídia"
},
"downloads": {
"label": "Downloads"
},
"mediaRequestStats": {
"label": "Estatísticas de solicitações de mídia"
},
"mediaRequestList": {
"label": "Lista de solicitações de mídia"
},
"rssFeeds": {
"label": "Feeds RSS"
},
"indexerManager": {
"label": "Gerenciador de Indexadores"
},
"healthMonitoring": {
"label": "Monitoramento de saúde"
},
"dnsHole": {
"label": "Dados do DNS Hole"
},
"updateChecker": {
"label": "Verificador de atualizações"
},
"mediaTranscoding": {
"label": "Transcodificação de mídia"
},
"networkController": {
"label": "Controlador de rede"
},
"refreshNotifications": {
"label": "Atualizador de notificações"
},
"dockerContainers": {
"label": "Contêineres do Docker"
},
"firewallCpu": {
"label": "CPU do Firewall"
},
"firewallMemory": {
"label": "Memória do Firewall"
},
"firewallVersion": {
"label": "Versão do Firewall"
},
"firewallInterfaces": {
"label": "Interfaces de firewall"
},
"weather": {
"label": "Clima"
},
"tracearr": {
"label": "Tracearr"
},
"umamiActiveVisitors": {
"label": "Visitantes Ativos do Umami"
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": ""
"settings": "",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "",
"noStation": "",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": ""
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "",
"description": ""
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "",
@@ -3147,6 +3157,9 @@
"provider": {
"label": ""
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "",
"placeholder": ""
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "",
"tooltip": ""
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "",
"noMatchingVersion": "",
"noReleasesFound": "",
"noProviderSeleceted": "",
"noProviderResponse": ""
"noProviderSelected": "",
"noProviderResponse": "",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": ""
},
"job": {
"minecraftServerStatus": {
"label": ""
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": ""
},
"analytics": {
"label": ""
},
"smartHomeEntityState": {
"label": ""
},
"ping": {
"label": ""
},
"mediaServer": {
"label": ""
},
"mediaOrganizer": {
"label": ""
},
"downloads": {
"label": ""
},
"mediaRequestStats": {
"label": ""
},
"mediaRequestList": {
"label": ""
},
"rssFeeds": {
"label": ""
},
"indexerManager": {
"label": ""
},
"healthMonitoring": {
"label": ""
},
"dnsHole": {
"label": ""
},
"updateChecker": {
"label": ""
},
"mediaTranscoding": {
"label": ""
},
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
},
"firewallCpu": {
"label": ""
},
"firewallMemory": {
"label": ""
},
"firewallVersion": {
"label": ""
},
"firewallInterfaces": {
"label": ""
},
"weather": {
"label": ""
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Setări"
"settings": "Setări",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "",
"noStation": "",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": ""
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "",
"description": ""
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "",
@@ -3147,6 +3157,9 @@
"provider": {
"label": ""
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "",
"placeholder": ""
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "",
"tooltip": ""
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "",
"noMatchingVersion": "",
"noReleasesFound": "",
"noProviderSeleceted": "",
"noProviderResponse": ""
"noProviderSelected": "",
"noProviderResponse": "",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": ""
},
"job": {
"minecraftServerStatus": {
"label": ""
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": ""
},
"analytics": {
"label": ""
},
"smartHomeEntityState": {
"label": ""
},
"ping": {
"label": ""
},
"mediaServer": {
"label": "Server-ul media"
},
"mediaOrganizer": {
"label": ""
},
"downloads": {
"label": ""
},
"mediaRequestStats": {
"label": ""
},
"mediaRequestList": {
"label": ""
},
"rssFeeds": {
"label": ""
},
"indexerManager": {
"label": ""
},
"healthMonitoring": {
"label": ""
},
"dnsHole": {
"label": ""
},
"updateChecker": {
"label": ""
},
"mediaTranscoding": {
"label": ""
},
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
},
"firewallCpu": {
"label": ""
},
"firewallMemory": {
"label": ""
},
"firewallVersion": {
"label": ""
},
"firewallInterfaces": {
"label": ""
},
"weather": {
"label": ""
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Настройки"
"settings": "Настройки",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "Отправления {station}",
"noStation": "Станция не выбрана",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": "Станция"
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "Показать информацию о фото",
"description": "Отображать дату снимка и текущий номер в нижней части слайд-шоу"
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "Слайд-шоу фотографий из вашего альбома Immich",
@@ -3147,6 +3157,9 @@
"provider": {
"label": "Провайдер"
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "Идентификатор",
"placeholder": "Имя или Владелец/Имя"
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "Нет провайдера",
"tooltip": "Не удалось определить провайдер, укажите его вручную после импорта образов"
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "Неверный идентификатор",
"noMatchingVersion": "Подходящая версия не найдена",
"noReleasesFound": "Релизы не найдены",
"noProviderSeleceted": "Провайдер не выбран",
"noProviderResponse": "Нет ответа от провайдера"
"noProviderSelected": "",
"noProviderResponse": "Нет ответа от провайдера",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": "Отключено"
},
"job": {
"minecraftServerStatus": {
"label": "Статус сервера Minecraft"
},
"timetable": {
"label": "Расписание"
},
"iconsUpdater": {
"label": "Обновление иконок"
},
"analytics": {
"label": "Аналитика"
},
"smartHomeEntityState": {
"label": "Состояние объектов умного дома"
},
"ping": {
"label": "Проверка доступности"
},
"mediaServer": {
"label": "Медиасервер"
},
"mediaOrganizer": {
"label": "Организация медиафайлов"
},
"downloads": {
"label": "Загрузки"
},
"mediaRequestStats": {
"label": "Статистика запросов медиаконтента"
},
"mediaRequestList": {
"label": "Список запросов медиаконтента"
},
"rssFeeds": {
"label": "RSS-ленты"
},
"indexerManager": {
"label": "Управление индексаторами"
},
"healthMonitoring": {
"label": "Мониторинг состояния"
},
"dnsHole": {
"label": "Данные DNS-фильтра"
},
"updateChecker": {
"label": "Проверка обновлений"
},
"mediaTranscoding": {
"label": "Перекодирование медиафайлов"
},
"networkController": {
"label": "Сетевой контроллер"
},
"refreshNotifications": {
"label": "Обновление уведомлений"
},
"dockerContainers": {
"label": "Контейнеры Docker"
},
"firewallCpu": {
"label": "ЦП межсетевого экрана"
},
"firewallMemory": {
"label": "Память межсетевого экрана"
},
"firewallVersion": {
"label": "Версия межсетевого экрана"
},
"firewallInterfaces": {
"label": "Интерфейсы межсетевого экрана"
},
"weather": {
"label": "Погода"
},
"tracearr": {
"label": "Tracearr"
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Nastavenia"
"settings": "Nastavenia",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "",
"noStation": "",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": ""
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "",
"description": ""
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "",
@@ -3147,6 +3157,9 @@
"provider": {
"label": "Poskytovateľ"
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "Identifikátor",
"placeholder": "Meno alebo vlastník/meno"
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "",
"tooltip": ""
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "",
"noMatchingVersion": "Nenašla sa žiadna zodpovedajúca verzia",
"noReleasesFound": "",
"noProviderSeleceted": "",
"noProviderResponse": ""
"noProviderSelected": "",
"noProviderResponse": "",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": ""
},
"job": {
"minecraftServerStatus": {
"label": "Minecraft Server Stav"
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": "Aktualizátor ikon"
},
"analytics": {
"label": "Analytika"
},
"smartHomeEntityState": {
"label": "Stav entity inteligentnej domácnosti"
},
"ping": {
"label": "Pingy"
},
"mediaServer": {
"label": "Multimediálny Server"
},
"mediaOrganizer": {
"label": "Organizátori médií"
},
"downloads": {
"label": "Na stiahnutie"
},
"mediaRequestStats": {
"label": "Štatistiky mediálnych požiadaviek"
},
"mediaRequestList": {
"label": "Zoznam mediálnych požiadaviek"
},
"rssFeeds": {
"label": "RSS kanály"
},
"indexerManager": {
"label": "Správca indexovania"
},
"healthMonitoring": {
"label": "Monitorovanie zdravia"
},
"dnsHole": {
"label": "Údaje o dierach DNS"
},
"updateChecker": {
"label": "Kontrola aktualizácií"
},
"mediaTranscoding": {
"label": "Prekódovanie médií"
},
"networkController": {
"label": "Sieťový ovládač"
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": "Docker kontajnery"
},
"firewallCpu": {
"label": ""
},
"firewallMemory": {
"label": ""
},
"firewallVersion": {
"label": ""
},
"firewallInterfaces": {
"label": ""
},
"weather": {
"label": ""
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Nastavitve"
"settings": "Nastavitve",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "",
"noStation": "",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": ""
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "",
"description": ""
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "",
@@ -3147,6 +3157,9 @@
"provider": {
"label": ""
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "",
"placeholder": ""
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "",
"tooltip": ""
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "",
"noMatchingVersion": "",
"noReleasesFound": "",
"noProviderSeleceted": "",
"noProviderResponse": ""
"noProviderSelected": "",
"noProviderResponse": "",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": ""
},
"job": {
"minecraftServerStatus": {
"label": ""
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": ""
},
"analytics": {
"label": ""
},
"smartHomeEntityState": {
"label": ""
},
"ping": {
"label": ""
},
"mediaServer": {
"label": "Predstavnostni strežnik"
},
"mediaOrganizer": {
"label": ""
},
"downloads": {
"label": ""
},
"mediaRequestStats": {
"label": ""
},
"mediaRequestList": {
"label": ""
},
"rssFeeds": {
"label": ""
},
"indexerManager": {
"label": ""
},
"healthMonitoring": {
"label": ""
},
"dnsHole": {
"label": ""
},
"updateChecker": {
"label": ""
},
"mediaTranscoding": {
"label": ""
},
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
},
"firewallCpu": {
"label": ""
},
"firewallMemory": {
"label": ""
},
"firewallVersion": {
"label": ""
},
"firewallInterfaces": {
"label": ""
},
"weather": {
"label": ""
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Inställningar"
"settings": "Inställningar",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "",
"noStation": "",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": ""
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "",
"description": ""
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "",
@@ -3147,6 +3157,9 @@
"provider": {
"label": ""
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "",
"placeholder": ""
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "",
"tooltip": ""
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "",
"noMatchingVersion": "",
"noReleasesFound": "",
"noProviderSeleceted": "",
"noProviderResponse": ""
"noProviderSelected": "",
"noProviderResponse": "",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": ""
},
"job": {
"minecraftServerStatus": {
"label": ""
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": ""
},
"analytics": {
"label": ""
},
"smartHomeEntityState": {
"label": ""
},
"ping": {
"label": ""
},
"mediaServer": {
"label": "Mediaserver"
},
"mediaOrganizer": {
"label": ""
},
"downloads": {
"label": ""
},
"mediaRequestStats": {
"label": ""
},
"mediaRequestList": {
"label": ""
},
"rssFeeds": {
"label": ""
},
"indexerManager": {
"label": ""
},
"healthMonitoring": {
"label": ""
},
"dnsHole": {
"label": ""
},
"updateChecker": {
"label": ""
},
"mediaTranscoding": {
"label": ""
},
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
},
"firewallCpu": {
"label": ""
},
"firewallMemory": {
"label": ""
},
"firewallVersion": {
"label": ""
},
"firewallInterfaces": {
"label": ""
},
"weather": {
"label": ""
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Ayarlar"
"settings": "Ayarlar",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "{station} kalkışları",
"noStation": "İstasyon seçilmedi",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": "İstasyon"
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "Show photo info",
"description": "Display date of the picture and the current index at the bottom of the slideshow"
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "Slideshow of pictures in your Immich album",
@@ -3147,6 +3157,9 @@
"provider": {
"label": "Sağlayıcı"
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "Tanımlayıcı",
"placeholder": "Ad veya Sahip/Ad"
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "Sağlayıcı Bulunamadı",
"tooltip": "Sağlayıcı çözümlenemedi, lütfen görselleri içe aktardıktan sonra elle ayarlayın"
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "Geçersiz tanımlayıcı",
"noMatchingVersion": "Eşleşen sürüm bulunamadı",
"noReleasesFound": "Hiçbir sürüm bulunamadı",
"noProviderSeleceted": "Hiçbir sağlayıcı seçilmedi",
"noProviderResponse": "Sağlayıcıdan yanıt alınamadı"
"noProviderSelected": "",
"noProviderResponse": "Sağlayıcıdan yanıt alınamadı",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": "Pasif"
},
"job": {
"minecraftServerStatus": {
"label": "Minecraft sunucu durumu"
},
"timetable": {
"label": "Zaman Çizelgesi"
},
"iconsUpdater": {
"label": "Simge Güncelleme"
},
"analytics": {
"label": "Analiz"
},
"smartHomeEntityState": {
"label": "Akıllı Ev Varlık Durumu"
},
"ping": {
"label": "Pingler"
},
"mediaServer": {
"label": "Medya Sunucusu"
},
"mediaOrganizer": {
"label": "Medya Düzenleyicileri"
},
"downloads": {
"label": "İndirmeler"
},
"mediaRequestStats": {
"label": "Medya Talep İstatistikleri"
},
"mediaRequestList": {
"label": "Medya Talep Listesi"
},
"rssFeeds": {
"label": "RSS Beslemeleri"
},
"indexerManager": {
"label": "İndeksleyici Yöneticisi"
},
"healthMonitoring": {
"label": "Sağlık İzleme"
},
"dnsHole": {
"label": "DNS Çözümleyici Verileri"
},
"updateChecker": {
"label": "Güncelleme denetleyicisi"
},
"mediaTranscoding": {
"label": "Medya Kod Dönüştürme"
},
"networkController": {
"label": "Ağ Denetleyicisi"
},
"refreshNotifications": {
"label": "Bildirim Güncelleyici"
},
"dockerContainers": {
"label": "Docker konteynerleri"
},
"firewallCpu": {
"label": "Güvenlik Duvarı İşlemcisi"
},
"firewallMemory": {
"label": "Güvenlik Duvarı Belleği"
},
"firewallVersion": {
"label": "Güvenlik Duvarı Sürümü"
},
"firewallInterfaces": {
"label": "Güvenlik Duvarı Arayüzleri"
},
"weather": {
"label": "Hava Durumu"
},
"tracearr": {
"label": "Tracearr"
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+29 -83
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Налаштування"
"settings": "Налаштування",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "",
"noStation": "",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": ""
}
@@ -2715,7 +2721,7 @@
"description": ""
},
"showInboxRing": {
"label": "",
"label": "Показувати кільце вхідних повідомлень",
"description": ""
},
"showDocumentsTotal": {
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "",
"description": ""
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "",
@@ -2909,7 +2919,7 @@
"failed": "Невдало",
"processing": "В обробці",
"leeching": "Завантажується",
"stalled": "",
"stalled": "Зупинено",
"unknown": "Невідомо",
"seeding": "Роздається"
},
@@ -3122,7 +3132,7 @@
"label": ""
},
"showOnlyIcon": {
"label": ""
"label": "Показати тільки іконку"
},
"topReleases": {
"label": "",
@@ -3147,6 +3157,9 @@
"provider": {
"label": ""
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "",
"placeholder": ""
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "",
"tooltip": ""
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3209,15 +3229,16 @@
"openReleasePage": "",
"releaseDescription": "",
"projectDescription": "",
"created": "",
"created": "Створено",
"error": {
"label": "",
"messages": {
"invalidIdentifier": "",
"noMatchingVersion": "",
"noReleasesFound": "",
"noProviderSeleceted": "",
"noProviderResponse": ""
"noProviderSelected": "",
"noProviderResponse": "",
"unexpected": ""
}
}
},
@@ -3329,7 +3350,7 @@
"label": ""
}
},
"latestResult": "",
"latestResult": "Останній результат",
"averages": "",
"tests": "",
"recentResults": "",
@@ -4524,89 +4545,14 @@
"disabled": ""
},
"job": {
"minecraftServerStatus": {
"label": "Статус сервера Minecraft"
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": ""
},
"analytics": {
"label": "Аналітика"
},
"smartHomeEntityState": {
"label": ""
},
"ping": {
"label": "Пінги"
},
"mediaServer": {
"label": "Медіа сервер"
},
"mediaOrganizer": {
"label": ""
},
"downloads": {
"label": "Завантаження"
},
"mediaRequestStats": {
"label": ""
},
"mediaRequestList": {
"label": ""
},
"rssFeeds": {
"label": ""
},
"indexerManager": {
"label": ""
},
"healthMonitoring": {
"label": ""
},
"dnsHole": {
"label": ""
},
"updateChecker": {
"label": ""
},
"mediaTranscoding": {
"label": ""
},
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
},
"firewallCpu": {
"label": ""
},
"firewallMemory": {
"label": ""
},
"firewallVersion": {
"label": ""
},
"firewallInterfaces": {
"label": ""
},
"weather": {
"label": ""
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "Cài đặt"
"settings": "Cài đặt",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "",
"noStation": "",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": ""
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "",
"description": ""
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "",
@@ -3147,6 +3157,9 @@
"provider": {
"label": ""
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "",
"placeholder": ""
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "",
"tooltip": ""
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "",
"noMatchingVersion": "",
"noReleasesFound": "",
"noProviderSeleceted": "",
"noProviderResponse": ""
"noProviderSelected": "",
"noProviderResponse": "",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": ""
},
"job": {
"minecraftServerStatus": {
"label": ""
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": ""
},
"analytics": {
"label": ""
},
"smartHomeEntityState": {
"label": ""
},
"ping": {
"label": ""
},
"mediaServer": {
"label": "Máy chủ đa phương tiện"
},
"mediaOrganizer": {
"label": ""
},
"downloads": {
"label": ""
},
"mediaRequestStats": {
"label": ""
},
"mediaRequestList": {
"label": ""
},
"rssFeeds": {
"label": ""
},
"indexerManager": {
"label": ""
},
"healthMonitoring": {
"label": ""
},
"dnsHole": {
"label": ""
},
"updateChecker": {
"label": ""
},
"mediaTranscoding": {
"label": ""
},
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
},
"firewallCpu": {
"label": ""
},
"firewallMemory": {
"label": ""
},
"firewallVersion": {
"label": ""
},
"firewallInterfaces": {
"label": ""
},
"weather": {
"label": ""
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
+24 -78
View File
@@ -1598,7 +1598,10 @@
},
"menu": {
"label": {
"settings": "設定"
"settings": "設定",
"refresh": "",
"options": "",
"actions": ""
}
},
"create": {
@@ -1900,6 +1903,9 @@
"title": "",
"noStation": "",
"option": {
"baseUrl": {
"label": ""
},
"station": {
"label": ""
}
@@ -2783,6 +2789,10 @@
"showPhotoInfo": {
"label": "",
"description": ""
},
"randomizePhotos": {
"label": "",
"description": ""
}
},
"description": "",
@@ -3147,6 +3157,9 @@
"provider": {
"label": "提供者"
},
"providerUrl": {
"label": ""
},
"identifier": {
"label": "識別碼",
"placeholder": "名稱或擁有者/名稱"
@@ -3194,6 +3207,13 @@
"noProvider": {
"label": "",
"tooltip": ""
},
"tokens": {
"label": "",
"token": "",
"configured": "",
"notConfigured": "",
"save": ""
}
}
},
@@ -3216,8 +3236,9 @@
"invalidIdentifier": "",
"noMatchingVersion": "找不到匹配的版本",
"noReleasesFound": "",
"noProviderSeleceted": "",
"noProviderResponse": ""
"noProviderSelected": "",
"noProviderResponse": "",
"unexpected": ""
}
}
},
@@ -4524,89 +4545,14 @@
"disabled": ""
},
"job": {
"minecraftServerStatus": {
"label": "Minecraft 伺服器狀態"
},
"timetable": {
"label": ""
},
"iconsUpdater": {
"label": "icon 上傳器"
},
"analytics": {
"label": "分析"
},
"smartHomeEntityState": {
"label": "智能居家狀態"
},
"ping": {
"label": "Pings"
},
"mediaServer": {
"label": "多媒體伺服器"
},
"mediaOrganizer": {
"label": "多媒體組織者"
},
"downloads": {
"label": "正在下載"
},
"mediaRequestStats": {
"label": "多媒體請求狀態"
},
"mediaRequestList": {
"label": "多媒體請求列表"
},
"rssFeeds": {
"label": "RSS 訂閱"
},
"indexerManager": {
"label": "索引器管理"
},
"healthMonitoring": {
"label": "健康監測"
},
"dnsHole": {
"label": "DNS Hole 數據"
},
"updateChecker": {
"label": "更新檢查"
},
"mediaTranscoding": {
"label": "多媒體轉碼中"
},
"networkController": {
"label": "網路控制"
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
},
"firewallCpu": {
"label": ""
},
"firewallMemory": {
"label": ""
},
"firewallVersion": {
"label": ""
},
"firewallInterfaces": {
"label": ""
},
"weather": {
"label": ""
},
"tracearr": {
"label": ""
},
"umamiActiveVisitors": {
"label": ""
},
"vpn": {
"label": ""
}
},
"interval": {
@@ -50,6 +50,7 @@ import {
} from "@homarr/definitions";
import { findBestIconMatch, IconPicker } from "@homarr/forms-collection";
import { createModal, useModalAction } from "@homarr/modals";
import { showErrorNotification } from "@homarr/notifications";
import { useScopedI18n } from "@homarr/translation/client";
import { MaskedImage } from "@homarr/ui";
@@ -269,8 +270,24 @@ const providersWithAuth: ReleaseProviderKind[] = [
const ProviderTokensSection = ({ itemId, repositories }: { itemId: string; repositories: ReleasesRepository[] }) => {
const tRepository = useScopedI18n("widget.releases.option.repositories");
const { data: configuredKinds = [], refetch } = clientApi.widget.secrets.getConfiguredKinds.useQuery({ itemId });
const setSecret = clientApi.widget.secrets.setSecret.useMutation({ onSuccess: () => refetch() });
const deleteSecret = clientApi.widget.secrets.deleteSecret.useMutation({ onSuccess: () => refetch() });
const setSecret = clientApi.widget.secrets.setSecret.useMutation({
onSuccess: () => refetch(),
onError: (error) => {
showErrorNotification({
title: "Failed to save token",
message: error.message,
});
},
});
const deleteSecret = clientApi.widget.secrets.deleteSecret.useMutation({
onSuccess: () => refetch(),
onError: (error) => {
showErrorNotification({
title: "Failed to delete token",
message: error.message,
});
},
});
const authProviders = useMemo(() => {
const usedProviders = repositories.map((r) => r.provider).filter((p): p is ReleaseProviderKind => p !== undefined);
+223 -792
View File
File diff suppressed because it is too large. Load diff
+23 -21
View File
@@ -22,17 +22,17 @@ catalog:
"@jellyfin/sdk": ^0.13.0
"@kubernetes/client-node": ^1.4.0
"@modelcontextprotocol/sdk": 1.29.0
"@mantine/charts": ^9.4.0
"@mantine/colors-generator": ^9.4.0
"@mantine/core": ^9.4.0
"@mantine/dates": ^9.4.0
"@mantine/dropzone": ^9.4.0
"@mantine/form": ^9.4.0
"@mantine/hooks": ^9.4.0
"@mantine/modals": ^9.4.0
"@mantine/notifications": ^9.4.0
"@mantine/spotlight": ^9.4.0
"@mantine/tiptap": ^9.4.0
"@mantine/charts": ^9.4.1
"@mantine/colors-generator": ^9.4.1
"@mantine/core": ^9.4.1
"@mantine/dates": ^9.4.1
"@mantine/dropzone": ^9.4.1
"@mantine/form": ^9.4.1
"@mantine/hooks": ^9.4.1
"@mantine/modals": ^9.4.1
"@mantine/notifications": ^9.4.1
"@mantine/spotlight": ^9.4.1
"@mantine/tiptap": ^9.4.1
"@next/eslint-plugin-next": 16.2.9
"@octokit/auth-app": ^8.2.0
"@paralleldrive/cuid2": ^3.3.0
@@ -50,9 +50,9 @@ catalog:
"@tanstack/react-query-devtools": ^5.101.0
"@tanstack/react-query-next-experimental": ^5.101.0
"@tanstack/react-query-persist-client": ^5.101.0
"@testcontainers/mysql": ^12.0.3
"@testcontainers/postgresql": ^12.0.3
"@testcontainers/redis": ^12.0.3
"@testcontainers/mysql": ^12.0.4
"@testcontainers/postgresql": ^12.0.4
"@testcontainers/redis": ^12.0.4
"@tiptap/extension-color": 3.27.1
"@tiptap/extension-highlight": 3.27.1
"@tiptap/extension-image": 3.27.1
@@ -93,7 +93,7 @@ catalog:
"@types/video.js": ^7.3.58
"@types/ws": ^8.18.1
"@types/xml2js": ^0.4.14
posthog-js: ^1.395.0
posthog-js: ^1.396.2
posthog-node: ^4.18.0
"@vitejs/plugin-react": ^6.0.3
"@vitest/coverage-v8": ^4.1.9
@@ -127,7 +127,7 @@ catalog:
drizzle-zod: ^0.8.3
esbuild: ^0.28.0
fast-xml-parser: ^5.9.3
fastify: ^5.8.5
fastify: ^5.9.0
flag-icons: ^7.5.0
glob: ^13.0.6
ical.js: ^2.2.1
@@ -139,7 +139,7 @@ catalog:
jsonpath-plus: ^10.4.0
ldapts: 8.1.8
lodash.clonedeep: ^4.5.0
lucide-react: ^1.21.0
lucide-react: ^1.22.0
"mantine-contextmenu": ^9.3.1
mantine-datatable: ^9.3.1
mantine-react-table: npm:mantine-react-table-open@9.0.3
@@ -170,7 +170,7 @@ catalog:
semver-parser: ^4.2.1
superjson: 2.2.6
svgson: ^5.3.1
testcontainers: ^12.0.3
testcontainers: ^12.0.4
timezones-ical-library: ^2.2.1
trpc-to-mcp: ^1.3.2
trpc-to-openapi: ^3.3.0
@@ -179,7 +179,7 @@ catalog:
turbo: ^2.10.0
typescript: ^6.0.3
vite: ^8.1.0
undici: 7.27.2
undici: 7.28.0
use-deep-compare-effect: ^1.8.1
video.js: ^8.23.9
vite-tsconfig-paths: ^6.1.1
@@ -205,12 +205,14 @@ minimumReleaseAgeExclude:
- turbo@2.9.14
# Renovate security update: form-data@4.0.6
- form-data@4.0.6
# Renovate security update: undici@7.28.0
- undici@7.28.0
overrides:
"@babel/helpers@<7.26.10": ">=7.29.7"
"@babel/runtime@<7.26.10": ">=7.29.7"
"axios@>=1.0.0 <1.8.2": ">=1.18.1"
"brace-expansion@>=2.0.0 <=2.0.1": ">=5.0.6"
"brace-expansion@>=1.0.0 <=1.1.11": ">=5.0.6"
"brace-expansion@>=2.0.0 <=2.0.1": ">=5.0.7"
"brace-expansion@>=1.0.0 <=1.1.11": ">=5.0.7"
"esbuild@<=0.24.2": ">=0.28.0"
"form-data@>=4.0.0 <4.0.4": ">=4.0.6"
"hono@<4.6.5": ">=4.12.27"