chore(release): automatic release v1.12.0

This commit is contained in:
homarr-releases[bot]
2025-03-21 19:14:11 +00:00
committed by GitHub
52 changed files with 4414 additions and 1409 deletions

View File

@@ -31,6 +31,7 @@ body:
label: Version label: Version
description: What version of Homarr are you running? description: What version of Homarr are you running?
options: options:
- 1.11.0
- 1.10.0 - 1.10.0
- 1.9.0 - 1.9.0
- 1.8.0 - 1.8.0

View File

@@ -56,13 +56,13 @@
"@mantine/tiptap": "^7.17.2", "@mantine/tiptap": "^7.17.2",
"@million/lint": "1.0.14", "@million/lint": "1.0.14",
"@tabler/icons-react": "^3.31.0", "@tabler/icons-react": "^3.31.0",
"@tanstack/react-query": "^5.68.0", "@tanstack/react-query": "^5.69.0",
"@tanstack/react-query-devtools": "^5.68.0", "@tanstack/react-query-devtools": "^5.69.0",
"@tanstack/react-query-next-experimental": "^5.68.0", "@tanstack/react-query-next-experimental": "^5.69.0",
"@trpc/client": "next", "@trpc/client": "^11.0.0",
"@trpc/next": "next", "@trpc/next": "^11.0.0",
"@trpc/react-query": "next", "@trpc/react-query": "^11.0.0",
"@trpc/server": "next", "@trpc/server": "^11.0.0",
"@xterm/addon-canvas": "^0.7.0", "@xterm/addon-canvas": "^0.7.0",
"@xterm/addon-fit": "0.10.0", "@xterm/addon-fit": "0.10.0",
"@xterm/xterm": "^5.5.0", "@xterm/xterm": "^5.5.0",
@@ -81,7 +81,7 @@
"react-dom": "19.0.0", "react-dom": "19.0.0",
"react-error-boundary": "^5.0.0", "react-error-boundary": "^5.0.0",
"react-simple-code-editor": "^0.14.1", "react-simple-code-editor": "^0.14.1",
"sass": "^1.85.1", "sass": "^1.86.0",
"superjson": "2.2.2", "superjson": "2.2.2",
"swagger-ui-react": "^5.20.1", "swagger-ui-react": "^5.20.1",
"use-deep-compare-effect": "^1.8.1", "use-deep-compare-effect": "^1.8.1",
@@ -92,9 +92,9 @@
"@homarr/prettier-config": "workspace:^0.1.0", "@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"@types/chroma-js": "3.1.1", "@types/chroma-js": "3.1.1",
"@types/node": "^22.13.10", "@types/node": "^22.13.11",
"@types/prismjs": "^1.26.5", "@types/prismjs": "^1.26.5",
"@types/react": "19.0.10", "@types/react": "19.0.12",
"@types/react-dom": "19.0.4", "@types/react-dom": "19.0.4",
"@types/swagger-ui-react": "^5.18.0", "@types/swagger-ui-react": "^5.18.0",
"concurrently": "^9.1.2", "concurrently": "^9.1.2",

View File

@@ -7,11 +7,11 @@ import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
import { ReactQueryStreamedHydration } from "@tanstack/react-query-next-experimental"; import { ReactQueryStreamedHydration } from "@tanstack/react-query-next-experimental";
import { import {
createWSClient, createWSClient,
httpBatchStreamLink,
httpLink, httpLink,
isNonJsonSerializable, isNonJsonSerializable,
loggerLink, loggerLink,
splitLink, splitLink,
unstable_httpBatchStreamLink,
wsLink, wsLink,
} from "@trpc/client"; } from "@trpc/client";
import superjson from "superjson"; import superjson from "superjson";
@@ -90,7 +90,7 @@ export function TRPCReactProvider(props: PropsWithChildren) {
url: getTrpcUrl(), url: getTrpcUrl(),
headers: createHeadersCallbackForSource("nextjs-react (form-data)"), headers: createHeadersCallbackForSource("nextjs-react (form-data)"),
}), }),
false: unstable_httpBatchStreamLink({ false: httpBatchStreamLink({
transformer: superjson, transformer: superjson,
url: getTrpcUrl(), url: getTrpcUrl(),
maxURLLength: 2083, // Suggested by tRPC: https://trpc.io/docs/client/links/httpBatchLink#setting-a-maximum-url-length maxURLLength: 2083, // Suggested by tRPC: https://trpc.io/docs/client/links/httpBatchLink#setting-a-maximum-url-length

View File

@@ -44,7 +44,7 @@
"@homarr/eslint-config": "workspace:^0.2.0", "@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0", "@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"@types/node": "^22.13.10", "@types/node": "^22.13.11",
"dotenv-cli": "^8.0.0", "dotenv-cli": "^8.0.0",
"eslint": "^9.22.0", "eslint": "^9.22.0",
"prettier": "^3.5.3", "prettier": "^3.5.3",

View File

@@ -40,20 +40,20 @@
"@semantic-release/release-notes-generator": "^14.0.3", "@semantic-release/release-notes-generator": "^14.0.3",
"@turbo/gen": "^2.4.4", "@turbo/gen": "^2.4.4",
"@vitejs/plugin-react": "^4.3.4", "@vitejs/plugin-react": "^4.3.4",
"@vitest/coverage-v8": "^3.0.8", "@vitest/coverage-v8": "^3.0.9",
"@vitest/ui": "^3.0.8", "@vitest/ui": "^3.0.9",
"conventional-changelog-conventionalcommits": "^8.0.0", "conventional-changelog-conventionalcommits": "^8.0.0",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"jsdom": "^26.0.0", "jsdom": "^26.0.0",
"prettier": "^3.5.3", "prettier": "^3.5.3",
"semantic-release": "^24.2.3", "semantic-release": "^24.2.3",
"testcontainers": "^10.20.0", "testcontainers": "^10.21.0",
"turbo": "^2.4.4", "turbo": "^2.4.4",
"typescript": "^5.8.2", "typescript": "^5.8.2",
"vite-tsconfig-paths": "^5.1.4", "vite-tsconfig-paths": "^5.1.4",
"vitest": "^3.0.8" "vitest": "^3.0.9"
}, },
"packageManager": "pnpm@10.6.3", "packageManager": "pnpm@10.6.5",
"engines": { "engines": {
"node": ">=22.14.0" "node": ">=22.14.0"
}, },

View File

@@ -41,9 +41,9 @@
"@homarr/server-settings": "workspace:^0.1.0", "@homarr/server-settings": "workspace:^0.1.0",
"@homarr/validation": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0",
"@kubernetes/client-node": "^1.1.0", "@kubernetes/client-node": "^1.1.0",
"@trpc/client": "next", "@trpc/client": "^11.0.0",
"@trpc/react-query": "next", "@trpc/react-query": "^11.0.0",
"@trpc/server": "next", "@trpc/server": "^11.0.0",
"lodash.clonedeep": "^4.5.0", "lodash.clonedeep": "^4.5.0",
"next": "15.1.7", "next": "15.1.7",
"pretty-print-error": "^1.1.2", "pretty-print-error": "^1.1.2",

View File

@@ -13,6 +13,7 @@ import { notebookRouter } from "./notebook";
import { optionsRouter } from "./options"; import { optionsRouter } from "./options";
import { rssFeedRouter } from "./rssFeed"; import { rssFeedRouter } from "./rssFeed";
import { smartHomeRouter } from "./smart-home"; import { smartHomeRouter } from "./smart-home";
import { stockPriceRouter } from "./stocks";
import { weatherRouter } from "./weather"; import { weatherRouter } from "./weather";
export const widgetRouter = createTRPCRouter({ export const widgetRouter = createTRPCRouter({
@@ -21,6 +22,7 @@ export const widgetRouter = createTRPCRouter({
app: appRouter, app: appRouter,
dnsHole: dnsHoleRouter, dnsHole: dnsHoleRouter,
smartHome: smartHomeRouter, smartHome: smartHomeRouter,
stockPrice: stockPriceRouter,
mediaServer: mediaServerRouter, mediaServer: mediaServerRouter,
calendar: calendarRouter, calendar: calendarRouter,
downloads: downloadsRouter, downloads: downloadsRouter,

View File

@@ -0,0 +1,23 @@
import { z } from "zod";
import { fetchStockPriceHandler } from "@homarr/request-handler/stock-price";
import { stockPriceTimeFrames } from "../../../../widgets/src/stocks";
import { createTRPCRouter, publicProcedure } from "../../trpc";
const stockPriceInputSchema = z.object({
stock: z.string().nonempty(),
timeRange: z.enum(stockPriceTimeFrames.range),
timeInterval: z.enum(stockPriceTimeFrames.interval),
});
export const stockPriceRouter = createTRPCRouter({
getPriceHistory: publicProcedure.input(stockPriceInputSchema).query(async ({ input }) => {
const innerHandler = fetchStockPriceHandler.handler({
stock: input.stock,
timeRange: input.timeRange,
timeInterval: input.timeInterval,
});
return await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false });
}),
});

View File

@@ -25,11 +25,15 @@ export const constructBoardPermissions = (board: BoardPermissionsProps, session:
const creatorId = "creator" in board ? board.creator?.id : board.creatorId; const creatorId = "creator" in board ? board.creator?.id : board.creatorId;
return { return {
hasFullAccess: session?.user.id === creatorId || (session?.user.permissions.includes("board-full-all") ?? false), hasFullAccess:
session?.user.id === creatorId ||
board.userPermissions.some(({ permission }) => permission === "full") ||
board.groupPermissions.some(({ permission }) => permission === "full") ||
(session?.user.permissions.includes("board-full-all") ?? false),
hasChangeAccess: hasChangeAccess:
session?.user.id === creatorId || session?.user.id === creatorId ||
board.userPermissions.some(({ permission }) => permission === "modify") || board.userPermissions.some(({ permission }) => permission === "modify" || permission === "full") ||
board.groupPermissions.some(({ permission }) => permission === "modify") || board.groupPermissions.some(({ permission }) => permission === "modify" || permission === "full") ||
(session?.user.permissions.includes("board-modify-all") ?? false) || (session?.user.permissions.includes("board-modify-all") ?? false) ||
(session?.user.permissions.includes("board-full-all") ?? false), (session?.user.permissions.includes("board-full-all") ?? false),
hasViewAccess: hasViewAccess:

View File

@@ -19,7 +19,7 @@ export const fixUsernames = command({
for (const user of credentialUsers) { for (const user of credentialUsers) {
if (!user.name) continue; if (!user.name) continue;
if (user.name !== user.name.toLowerCase()) continue; if (user.name === user.name.toLowerCase()) continue;
await db await db
.update(users) .update(users)

View File

@@ -46,13 +46,13 @@
"@homarr/server-settings": "workspace:^0.1.0", "@homarr/server-settings": "workspace:^0.1.0",
"@mantine/core": "^7.17.2", "@mantine/core": "^7.17.2",
"@paralleldrive/cuid2": "^2.2.2", "@paralleldrive/cuid2": "^2.2.2",
"@testcontainers/mysql": "^10.20.0", "@testcontainers/mysql": "^10.21.0",
"better-sqlite3": "^11.9.0", "better-sqlite3": "^11.9.1",
"dotenv": "^16.4.7", "dotenv": "^16.4.7",
"drizzle-kit": "^0.30.5", "drizzle-kit": "^0.30.5",
"drizzle-orm": "^0.40.0", "drizzle-orm": "^0.41.0",
"drizzle-zod": "^0.7.0", "drizzle-zod": "^0.7.0",
"mysql2": "3.13.0" "mysql2": "3.14.0"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0", "@homarr/eslint-config": "workspace:^0.2.0",

View File

@@ -37,6 +37,176 @@ export type HomarrDocumentationPath =
| "/blog/tags/version" | "/blog/tags/version"
| "/blog/translations" | "/blog/translations"
| "/search" | "/search"
| "/docs/1.10.0/tags"
| "/docs/1.10.0/tags/active-directory"
| "/docs/1.10.0/tags/ad-guard"
| "/docs/1.10.0/tags/ad-guard-home"
| "/docs/1.10.0/tags/administration"
| "/docs/1.10.0/tags/advanced"
| "/docs/1.10.0/tags/analytics"
| "/docs/1.10.0/tags/api"
| "/docs/1.10.0/tags/apps"
| "/docs/1.10.0/tags/banner"
| "/docs/1.10.0/tags/blocking"
| "/docs/1.10.0/tags/boards"
| "/docs/1.10.0/tags/bookmark"
| "/docs/1.10.0/tags/bookmarks"
| "/docs/1.10.0/tags/caddy"
| "/docs/1.10.0/tags/certificates"
| "/docs/1.10.0/tags/checklist"
| "/docs/1.10.0/tags/code"
| "/docs/1.10.0/tags/community"
| "/docs/1.10.0/tags/configuration"
| "/docs/1.10.0/tags/connections"
| "/docs/1.10.0/tags/customization"
| "/docs/1.10.0/tags/data-sources"
| "/docs/1.10.0/tags/database"
| "/docs/1.10.0/tags/developer"
| "/docs/1.10.0/tags/development"
| "/docs/1.10.0/tags/dns"
| "/docs/1.10.0/tags/docker"
| "/docs/1.10.0/tags/donation"
| "/docs/1.10.0/tags/edit-mode"
| "/docs/1.10.0/tags/env"
| "/docs/1.10.0/tags/environment-variables"
| "/docs/1.10.0/tags/feeds"
| "/docs/1.10.0/tags/getting-started"
| "/docs/1.10.0/tags/google"
| "/docs/1.10.0/tags/grafana"
| "/docs/1.10.0/tags/groups"
| "/docs/1.10.0/tags/hardware"
| "/docs/1.10.0/tags/health"
| "/docs/1.10.0/tags/help"
| "/docs/1.10.0/tags/icon-picker"
| "/docs/1.10.0/tags/icon-repositories"
| "/docs/1.10.0/tags/icons"
| "/docs/1.10.0/tags/iframe"
| "/docs/1.10.0/tags/images"
| "/docs/1.10.0/tags/installation"
| "/docs/1.10.0/tags/integrade"
| "/docs/1.10.0/tags/integration"
| "/docs/1.10.0/tags/integrations"
| "/docs/1.10.0/tags/interface"
| "/docs/1.10.0/tags/jellyserr"
| "/docs/1.10.0/tags/layout"
| "/docs/1.10.0/tags/ldap"
| "/docs/1.10.0/tags/links"
| "/docs/1.10.0/tags/lists"
| "/docs/1.10.0/tags/management"
| "/docs/1.10.0/tags/media"
| "/docs/1.10.0/tags/minecraft"
| "/docs/1.10.0/tags/monitoring"
| "/docs/1.10.0/tags/news"
| "/docs/1.10.0/tags/notebook"
| "/docs/1.10.0/tags/notes"
| "/docs/1.10.0/tags/oidc"
| "/docs/1.10.0/tags/open-collective"
| "/docs/1.10.0/tags/open-media-vault"
| "/docs/1.10.0/tags/overseerr"
| "/docs/1.10.0/tags/permissions"
| "/docs/1.10.0/tags/pgid"
| "/docs/1.10.0/tags/pi-hole"
| "/docs/1.10.0/tags/ping"
| "/docs/1.10.0/tags/programming"
| "/docs/1.10.0/tags/proxmox"
| "/docs/1.10.0/tags/proxy"
| "/docs/1.10.0/tags/puid"
| "/docs/1.10.0/tags/responsive"
| "/docs/1.10.0/tags/roles"
| "/docs/1.10.0/tags/rss"
| "/docs/1.10.0/tags/search"
| "/docs/1.10.0/tags/search-engines"
| "/docs/1.10.0/tags/security"
| "/docs/1.10.0/tags/self-signed"
| "/docs/1.10.0/tags/seo"
| "/docs/1.10.0/tags/server"
| "/docs/1.10.0/tags/settings"
| "/docs/1.10.0/tags/sinkhole"
| "/docs/1.10.0/tags/sso"
| "/docs/1.10.0/tags/system"
| "/docs/1.10.0/tags/table"
| "/docs/1.10.0/tags/technical-documentation"
| "/docs/1.10.0/tags/text"
| "/docs/1.10.0/tags/torrent"
| "/docs/1.10.0/tags/traefik"
| "/docs/1.10.0/tags/translations"
| "/docs/1.10.0/tags/unraid"
| "/docs/1.10.0/tags/uploads"
| "/docs/1.10.0/tags/usenet"
| "/docs/1.10.0/tags/users"
| "/docs/1.10.0/tags/variables"
| "/docs/1.10.0/tags/widgets"
| "/docs/1.10.0/advanced/command-line"
| "/docs/1.10.0/advanced/command-line/fix-usernames"
| "/docs/1.10.0/advanced/command-line/password-recovery"
| "/docs/1.10.0/advanced/development/getting-started"
| "/docs/1.10.0/advanced/environment-variables"
| "/docs/1.10.0/advanced/icons"
| "/docs/1.10.0/advanced/keyboard-shortcuts"
| "/docs/1.10.0/advanced/proxy"
| "/docs/1.10.0/advanced/running-as-different-user"
| "/docs/1.10.0/advanced/single-sign-on"
| "/docs/1.10.0/category/advanced"
| "/docs/1.10.0/category/community"
| "/docs/1.10.0/category/developer-guides"
| "/docs/1.10.0/category/getting-started"
| "/docs/1.10.0/category/installation"
| "/docs/1.10.0/category/installation-1"
| "/docs/1.10.0/category/integrations"
| "/docs/1.10.0/category/management"
| "/docs/1.10.0/category/widgets"
| "/docs/1.10.0/community/donate"
| "/docs/1.10.0/community/faq"
| "/docs/1.10.0/community/get-in-touch"
| "/docs/1.10.0/community/license"
| "/docs/1.10.0/community/translations"
| "/docs/1.10.0/getting-started"
| "/docs/1.10.0/getting-started/after-the-installation"
| "/docs/1.10.0/getting-started/glossary"
| "/docs/1.10.0/getting-started/installation/docker"
| "/docs/1.10.0/getting-started/installation/easy-panel"
| "/docs/1.10.0/getting-started/installation/helm"
| "/docs/1.10.0/getting-started/installation/home-assistant"
| "/docs/1.10.0/getting-started/installation/portainer"
| "/docs/1.10.0/getting-started/installation/qnap"
| "/docs/1.10.0/getting-started/installation/railway"
| "/docs/1.10.0/getting-started/installation/saltbox"
| "/docs/1.10.0/getting-started/installation/source"
| "/docs/1.10.0/getting-started/installation/synology"
| "/docs/1.10.0/getting-started/installation/unraid"
| "/docs/1.10.0/integrations/containers"
| "/docs/1.10.0/integrations/dns"
| "/docs/1.10.0/integrations/hardware"
| "/docs/1.10.0/integrations/media-requester"
| "/docs/1.10.0/integrations/media-server"
| "/docs/1.10.0/integrations/servarr"
| "/docs/1.10.0/integrations/torrent"
| "/docs/1.10.0/integrations/usenet"
| "/docs/1.10.0/management/api"
| "/docs/1.10.0/management/apps"
| "/docs/1.10.0/management/boards"
| "/docs/1.10.0/management/certificates"
| "/docs/1.10.0/management/integrations"
| "/docs/1.10.0/management/media"
| "/docs/1.10.0/management/search-engines"
| "/docs/1.10.0/management/settings"
| "/docs/1.10.0/management/users"
| "/docs/1.10.0/widgets/bookmarks"
| "/docs/1.10.0/widgets/calendar"
| "/docs/1.10.0/widgets/clock"
| "/docs/1.10.0/widgets/dns-hole"
| "/docs/1.10.0/widgets/downloads"
| "/docs/1.10.0/widgets/health-monitoring"
| "/docs/1.10.0/widgets/home-assistant"
| "/docs/1.10.0/widgets/iframe"
| "/docs/1.10.0/widgets/indexer-manager"
| "/docs/1.10.0/widgets/media-requests"
| "/docs/1.10.0/widgets/media-server"
| "/docs/1.10.0/widgets/minecraft-server-status"
| "/docs/1.10.0/widgets/notebook"
| "/docs/1.10.0/widgets/rss"
| "/docs/1.10.0/widgets/video"
| "/docs/1.10.0/widgets/weather"
| "/docs/next/tags" | "/docs/next/tags"
| "/docs/next/tags/active-directory" | "/docs/next/tags/active-directory"
| "/docs/next/tags/ad-guard" | "/docs/next/tags/ad-guard"
@@ -169,6 +339,7 @@ export type HomarrDocumentationPath =
| "/docs/next/getting-started/installation/helm" | "/docs/next/getting-started/installation/helm"
| "/docs/next/getting-started/installation/home-assistant" | "/docs/next/getting-started/installation/home-assistant"
| "/docs/next/getting-started/installation/portainer" | "/docs/next/getting-started/installation/portainer"
| "/docs/next/getting-started/installation/proxmox"
| "/docs/next/getting-started/installation/qnap" | "/docs/next/getting-started/installation/qnap"
| "/docs/next/getting-started/installation/railway" | "/docs/next/getting-started/installation/railway"
| "/docs/next/getting-started/installation/saltbox" | "/docs/next/getting-started/installation/saltbox"
@@ -312,6 +483,7 @@ export type HomarrDocumentationPath =
| "/docs/advanced/command-line/fix-usernames" | "/docs/advanced/command-line/fix-usernames"
| "/docs/advanced/command-line/password-recovery" | "/docs/advanced/command-line/password-recovery"
| "/docs/advanced/development/getting-started" | "/docs/advanced/development/getting-started"
| "/docs/advanced/development/kubernetes"
| "/docs/advanced/environment-variables" | "/docs/advanced/environment-variables"
| "/docs/advanced/icons" | "/docs/advanced/icons"
| "/docs/advanced/keyboard-shortcuts" | "/docs/advanced/keyboard-shortcuts"
@@ -349,6 +521,7 @@ export type HomarrDocumentationPath =
| "/docs/integrations/containers" | "/docs/integrations/containers"
| "/docs/integrations/dns" | "/docs/integrations/dns"
| "/docs/integrations/hardware" | "/docs/integrations/hardware"
| "/docs/integrations/kubernetes"
| "/docs/integrations/media-requester" | "/docs/integrations/media-requester"
| "/docs/integrations/media-server" | "/docs/integrations/media-server"
| "/docs/integrations/servarr" | "/docs/integrations/servarr"

View File

@@ -9,6 +9,7 @@ export const widgetKinds = [
"dnsHoleControls", "dnsHoleControls",
"smartHome-entityState", "smartHome-entityState",
"smartHome-executeAutomation", "smartHome-executeAutomation",
"stockPrice",
"mediaServer", "mediaServer",
"calendar", "calendar",
"downloads", "downloads",

View File

@@ -0,0 +1,58 @@
import dayjs from "dayjs";
import { z } from "zod";
import { fetchWithTimeout } from "@homarr/common";
import { createCachedWidgetRequestHandler } from "./lib/cached-widget-request-handler";
export const fetchStockPriceHandler = createCachedWidgetRequestHandler({
queryKey: "fetchStockPriceResult",
widgetKind: "stockPrice",
async requestAsync(input: { stock: string; timeRange: string; timeInterval: string }) {
const response = await fetchWithTimeout(
`https://query1.finance.yahoo.com/v8/finance/chart/${input.stock}?range=${input.timeRange}&interval=${input.timeInterval}`,
);
const data = dataSchema.parse(await response.json());
if ("error" in data) {
throw new Error(data.error.description);
}
if (data.chart.result.length !== 1) {
throw new Error("Received multiple results");
}
if (!data.chart.result[0]) {
throw new Error("Received invalid data");
}
return data.chart.result[0];
},
cacheDuration: dayjs.duration(5, "minutes"),
});
const dataSchema = z
.object({
error: z.object({
description: z.string(),
}),
})
.or(
z.object({
chart: z.object({
result: z.array(
z.object({
indicators: z.object({
quote: z.array(
z.object({
close: z.array(z.number()),
}),
),
}),
meta: z.object({
symbol: z.string(),
shortName: z.string(),
}),
}),
),
}),
}),
);

View File

@@ -1424,6 +1424,82 @@
"run": "" "run": ""
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "", "name": "",
"description": "", "description": "",

View File

@@ -1424,6 +1424,82 @@
"run": "运行 {name}" "run": "运行 {name}"
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "日历", "name": "日历",
"description": "在日历视图中显示某个相对时间段内的集成事件", "description": "在日历视图中显示某个相对时间段内的集成事件",

View File

@@ -1424,6 +1424,82 @@
"run": "" "run": ""
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "Kalendář", "name": "Kalendář",
"description": "", "description": "",

View File

@@ -677,11 +677,11 @@
"description": "Integration \"{kind}\" kan bruges med søgemaskinerne. Markér dette for automatisk at konfigurere søgemaskinen." "description": "Integration \"{kind}\" kan bruges med søgemaskinerne. Markér dette for automatisk at konfigurere søgemaskinen."
}, },
"createApp": { "createApp": {
"label": "", "label": "Opret app",
"description": "" "description": "Opret en app med samme navn og ikon som integrationen. Lad input-feltet være tomt for at oprette app'en med integrations-URL'en."
}, },
"appHref": { "appHref": {
"placeholder": "" "placeholder": "Brugerdefineret app URL"
} }
}, },
"action": { "action": {
@@ -1079,7 +1079,7 @@
"label": "Brugerdefinerede CSS-klasser" "label": "Brugerdefinerede CSS-klasser"
}, },
"borderColor": { "borderColor": {
"label": "" "label": "Kantfarve"
} }
} }
}, },
@@ -1136,12 +1136,12 @@
"label": "Gitter" "label": "Gitter"
}, },
"gridHorizontal": { "gridHorizontal": {
"label": "" "label": "Vandret gitter"
} }
} }
}, },
"hideTitle": { "hideTitle": {
"label": "" "label": "Skjul titel"
}, },
"hideIcon": { "hideIcon": {
"label": "Skjul ikoner" "label": "Skjul ikoner"
@@ -1424,6 +1424,82 @@
"run": "Kør {name}" "run": "Kør {name}"
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "Kalender", "name": "Kalender",
"description": "Vis begivenheder fra dine integrationer i en kalendervisning inden for en vis relativ tidsperiode", "description": "Vis begivenheder fra dine integrationer i en kalendervisning inden for en vis relativ tidsperiode",
@@ -1443,7 +1519,7 @@
"label": "Slut kl" "label": "Slut kl"
}, },
"showUnmonitored": { "showUnmonitored": {
"label": "" "label": "Vis uovervåget"
} }
} }
}, },
@@ -1675,7 +1751,7 @@
"description": "Vis de aktuelle streams på dine medieservere", "description": "Vis de aktuelle streams på dine medieservere",
"option": {}, "option": {},
"items": { "items": {
"currentlyPlaying": "", "currentlyPlaying": "Afspiller lige nu",
"user": "Bruger", "user": "Bruger",
"name": "Navn", "name": "Navn",
"id": "Id" "id": "Id"
@@ -1900,10 +1976,10 @@
"statistics": { "statistics": {
"empty": "Tom", "empty": "Tom",
"transcodes": "Transkoder", "transcodes": "Transkoder",
"transcodesCount": "Transkodninger: {value}", "transcodesCount": "Transkodninger",
"healthChecksCount": "Sundhedstjek: {value}", "healthChecksCount": "Sundhedstjek",
"filesCount": "Filer: {value}", "filesCount": "Filer",
"savedSpace": "Gemt plads: {value}", "savedSpace": "Gemt plads",
"healthChecks": "Sundhedstjek", "healthChecks": "Sundhedstjek",
"videoCodecs": "Kodeks", "videoCodecs": "Kodeks",
"videoContainers": "Containere", "videoContainers": "Containere",
@@ -2332,7 +2408,7 @@
"label": "Værktøjer", "label": "Værktøjer",
"items": { "items": {
"docker": "Docker", "docker": "Docker",
"kubernetes": "", "kubernetes": "Kubernetes",
"logs": "Logfiler", "logs": "Logfiler",
"api": "API", "api": "API",
"certificates": "Certifikater", "certificates": "Certifikater",
@@ -2881,242 +2957,242 @@
}, },
"kubernetes": { "kubernetes": {
"cluster": { "cluster": {
"title": "", "title": "Cluster Kontrolpanel",
"label": "", "label": "Cluster",
"providers": "", "providers": "Udbydere",
"version": "", "version": "Version",
"architecture": "", "architecture": "Arkitektur",
"capacity": { "capacity": {
"title": "", "title": "Kapacitet",
"resource": { "resource": {
"reserved": "", "reserved": "Reserveret",
"used": "" "used": "Brugt"
} }
}, },
"resources": { "resources": {
"title": "", "title": "Ressourcer",
"nodes": "", "nodes": "Noder",
"namespaces": "", "namespaces": "Navnerum",
"ingresses": "", "ingresses": "Ingresses",
"services": "", "services": "Tjenester",
"pods": "", "pods": "Pods",
"configmaps": "", "configmaps": "ConfigMaps",
"secrets": "", "secrets": "Hemmeligheder",
"volumes": "" "volumes": "Volumer"
} }
}, },
"nodes": { "nodes": {
"label": "", "label": "Noder",
"field": { "field": {
"name": { "name": {
"label": "" "label": "Navn"
}, },
"state": { "state": {
"label": "", "label": "Tilstand",
"option": { "option": {
"ready": "", "ready": "Klar",
"NotReady": "" "NotReady": "Ikke Klar"
} }
}, },
"cpu": { "cpu": {
"label": "" "label": "CPU"
}, },
"memory": { "memory": {
"label": "" "label": "RAM"
}, },
"pods": { "pods": {
"label": "" "label": "Pods"
}, },
"operatingSystem": { "operatingSystem": {
"label": "" "label": "OS"
}, },
"architecture": { "architecture": {
"label": "" "label": "Arkitektur"
}, },
"kubernetesVersion": { "kubernetesVersion": {
"label": "" "label": "Kubernetes version"
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "Oprettet"
} }
}, },
"table": { "table": {
"search": "" "search": "Søg i {count} noder"
} }
}, },
"namespaces": { "namespaces": {
"label": "", "label": "Navnerum",
"field": { "field": {
"name": { "name": {
"label": "" "label": "Navn"
}, },
"state": { "state": {
"label": "", "label": "Tilstand",
"option": { "option": {
"active": "", "active": "Aktiv",
"terminating": "" "terminating": "Afslutter"
} }
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "Oprettet"
} }
}, },
"table": { "table": {
"search": "" "search": "Søg i {count} navneområder"
} }
}, },
"ingresses": { "ingresses": {
"label": "", "label": "Ingresses",
"field": { "field": {
"name": { "name": {
"label": "" "label": "Navn"
}, },
"namespace": { "namespace": {
"label": "" "label": "Navnerum"
}, },
"className": { "className": {
"label": "" "label": "Klassens navn"
}, },
"rulesAndPaths": { "rulesAndPaths": {
"label": "" "label": "Regler & stier"
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "Oprettet"
} }
}, },
"table": { "table": {
"search": "" "search": "Søg i {count} ingresses"
} }
}, },
"services": { "services": {
"label": "", "label": "Tjenester",
"field": { "field": {
"name": { "name": {
"label": "" "label": "Navn"
}, },
"namespace": { "namespace": {
"label": "" "label": "Navnerum"
}, },
"type": { "type": {
"label": "" "label": "Type"
}, },
"ports": { "ports": {
"label": "" "label": "Porte"
}, },
"targetPorts": { "targetPorts": {
"label": "" "label": "Målporte"
}, },
"clusterIP": { "clusterIP": {
"label": "" "label": "Cluster IP"
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "Oprettet"
} }
}, },
"table": { "table": {
"search": "" "search": "Søg i {count} tjenester"
} }
}, },
"pods": { "pods": {
"label": "", "label": "Pods",
"field": { "field": {
"name": { "name": {
"label": "" "label": "Navn"
}, },
"namespace": { "namespace": {
"label": "" "label": "Navnerum"
}, },
"image": { "image": {
"label": "" "label": "Billede"
}, },
"applicationType": { "applicationType": {
"label": "" "label": "Applikationstype"
}, },
"status": { "status": {
"label": "" "label": "Status"
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "Oprettet"
} }
}, },
"table": { "table": {
"search": "" "search": "Søg i {count} pods"
} }
}, },
"secrets": { "secrets": {
"label": "", "label": "Hemmeligheder",
"field": { "field": {
"name": { "name": {
"label": "" "label": "Navn"
}, },
"namespace": { "namespace": {
"label": "" "label": "navnerum"
}, },
"type": { "type": {
"label": "" "label": "type"
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "Oprettet"
} }
}, },
"table": { "table": {
"search": "" "search": "Søg i {count} hemmeligheder"
} }
}, },
"configmaps": { "configmaps": {
"label": "", "label": "ConfigMaps",
"field": { "field": {
"name": { "name": {
"label": "" "label": "Navn"
}, },
"namespace": { "namespace": {
"label": "" "label": "navnerum"
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "Oprettet"
} }
}, },
"table": { "table": {
"search": "" "search": "Søg i {count} configMaps"
} }
}, },
"volumes": { "volumes": {
"label": "", "label": "Volumer",
"field": { "field": {
"name": { "name": {
"label": "" "label": "Navn"
}, },
"namespace": { "namespace": {
"label": "" "label": "Navnerum"
}, },
"accessModes": { "accessModes": {
"label": "" "label": "Adgangstilstande"
}, },
"storage": { "storage": {
"label": "" "label": "Lager"
}, },
"storageClassName": { "storageClassName": {
"label": "" "label": "Lagerklasse Navn"
}, },
"volumeMode": { "volumeMode": {
"label": "" "label": "Volume Mode"
}, },
"volumeName": { "volumeName": {
"label": "" "label": "Volumens Navn"
}, },
"status": { "status": {
"label": "" "label": "Status"
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "Oprettet"
} }
}, },
"table": { "table": {
"search": "" "search": "Søg i {count} volumes"
} }
}, },
"error": { "error": {
"internalServerError": "" "internalServerError": "Kunne ikke hente Kubernetes-data"
} }
}, },
"permission": { "permission": {
@@ -3205,30 +3281,30 @@
"label": "Docker" "label": "Docker"
}, },
"kubernetes": { "kubernetes": {
"label": "", "label": "Kubernetes",
"nodes": { "nodes": {
"label": "" "label": "Noder"
}, },
"namespaces": { "namespaces": {
"label": "" "label": "Navnerum"
}, },
"ingresses": { "ingresses": {
"label": "" "label": "Ingresses"
}, },
"services": { "services": {
"label": "" "label": "Tjenester"
}, },
"pods": { "pods": {
"label": "" "label": "pods"
}, },
"configmaps": { "configmaps": {
"label": "" "label": "ConfigMaps"
}, },
"secrets": { "secrets": {
"label": "" "label": "Hemmeligheder"
}, },
"volumes": { "volumes": {
"label": "" "label": "Volumer"
} }
}, },
"logs": { "logs": {

View File

@@ -307,12 +307,12 @@
"name": "Name", "name": "Name",
"members": "Mitglieder", "members": "Mitglieder",
"homeBoard": { "homeBoard": {
"label": "", "label": "Home Board",
"description": "" "description": "Nur Boards welche für die Gruppe zugänglich sind, können ausgewählt werden"
}, },
"mobileBoard": { "mobileBoard": {
"label": "", "label": "Mobiles Board",
"description": "" "description": "Nur Boards welche für die Gruppe zugänglich sind, können ausgewählt werden"
} }
}, },
"permission": { "permission": {
@@ -514,12 +514,12 @@
"board": { "board": {
"notification": { "notification": {
"success": { "success": {
"title": "", "title": "Einstellungen gespeichert",
"message": "" "message": "Board Einstellungen erfolgreich gespeichert"
}, },
"error": { "error": {
"title": "", "title": "Einstellungen konnten nicht gespeichert werden",
"message": "" "message": "Board Einstellungen konnten nicht gespeichert werden"
} }
} }
} }
@@ -527,17 +527,17 @@
"changePosition": { "changePosition": {
"notification": { "notification": {
"success": { "success": {
"message": "" "message": "Position erfolgreich geändert"
}, },
"error": { "error": {
"message": "" "message": "Position konnte nicht geändert werden"
} }
} }
} }
}, },
"defaultGroup": { "defaultGroup": {
"name": "", "name": "Standardgruppe",
"description": "" "description": "{name} - Alle angemeldeten Benutzer"
} }
}, },
"app": { "app": {
@@ -603,8 +603,8 @@
}, },
"useDifferentUrlForPing": { "useDifferentUrlForPing": {
"checkbox": { "checkbox": {
"label": "", "label": "Eine andere URL für Ping verwenden",
"description": "" "description": "Nützlich, wenn Homarr direkt auf einen internen Hostnamen oder Netzwerk zugreifen kann, um die Bandbreitennutzung des ISP zu minimieren"
} }
} }
}, },
@@ -677,11 +677,11 @@
"description": "Integration \"{kind}\" kann mit den Suchmaschinen verwendet werden. Wählen Sie dies, um die Suchmaschine automatisch zu konfigurieren." "description": "Integration \"{kind}\" kann mit den Suchmaschinen verwendet werden. Wählen Sie dies, um die Suchmaschine automatisch zu konfigurieren."
}, },
"createApp": { "createApp": {
"label": "", "label": "Anwendung erstellen",
"description": "" "description": "Erstelle eine App mit dem gleichen Namen und Symbol wie die Integration. Lassen Sie das Eingabefeld unter leer, um die App mit der Integrations URL zu erstellen."
}, },
"appHref": { "appHref": {
"placeholder": "" "placeholder": "Benutzerdefinierte App URL"
} }
}, },
"action": { "action": {
@@ -937,7 +937,7 @@
}, },
"dangerZone": "Gefahrenbereich", "dangerZone": "Gefahrenbereich",
"noResults": "Die Suche ergab keine Treffer", "noResults": "Die Suche ergab keine Treffer",
"unsavedChanges": "", "unsavedChanges": "Sie haben ungespeicherte Änderungen!",
"preview": { "preview": {
"show": "Vorschau ansehen", "show": "Vorschau ansehen",
"hide": "Vorschau ausblenden" "hide": "Vorschau ausblenden"
@@ -981,7 +981,7 @@
}, },
"option": { "option": {
"borderColor": { "borderColor": {
"label": "" "label": "Rahmenfarbe"
} }
}, },
"remove": { "remove": {
@@ -1079,7 +1079,7 @@
"label": "Benutzerdefinierte CSS Klassen" "label": "Benutzerdefinierte CSS Klassen"
}, },
"borderColor": { "borderColor": {
"label": "" "label": "Rahmenfarbe"
} }
} }
}, },
@@ -1136,12 +1136,12 @@
"label": "Raster" "label": "Raster"
}, },
"gridHorizontal": { "gridHorizontal": {
"label": "" "label": "Gitter horizontal"
} }
} }
}, },
"hideTitle": { "hideTitle": {
"label": "" "label": "Titel ausblenden"
}, },
"hideIcon": { "hideIcon": {
"label": "Symbole verbergen" "label": "Symbole verbergen"
@@ -1424,6 +1424,82 @@
"run": "{name} ausführen" "run": "{name} ausführen"
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "Kalender", "name": "Kalender",
"description": "Zeigt Ereignisse aus Ihren Integrationen in einer Kalenderansicht innerhalb eines bestimmten Zeitraums an", "description": "Zeigt Ereignisse aus Ihren Integrationen in einer Kalenderansicht innerhalb eines bestimmten Zeitraums an",
@@ -1443,7 +1519,7 @@
"label": "Endet am" "label": "Endet am"
}, },
"showUnmonitored": { "showUnmonitored": {
"label": "" "label": "Nicht überwachte anzeigen"
} }
} }
}, },
@@ -1639,7 +1715,7 @@
"app": { "app": {
"noData": "Keine App gefunden", "noData": "Keine App gefunden",
"description": "Klicken Sie <here></here> um eine neue App zu erstellen", "description": "Klicken Sie <here></here> um eine neue App zu erstellen",
"quickCreate": "" "quickCreate": "Jetzt eine App erstellen"
}, },
"error": { "error": {
"noIntegration": "Keine Integration ausgewählt", "noIntegration": "Keine Integration ausgewählt",
@@ -1675,7 +1751,7 @@
"description": "Zeige die aktuellen Streams auf deinen Medienservern an", "description": "Zeige die aktuellen Streams auf deinen Medienservern an",
"option": {}, "option": {},
"items": { "items": {
"currentlyPlaying": "", "currentlyPlaying": "Aktuelle Wiedergabe",
"user": "Benutzer", "user": "Benutzer",
"name": "Name", "name": "Name",
"id": "Id" "id": "Id"
@@ -1842,10 +1918,10 @@
"available": "Verfügbar" "available": "Verfügbar"
}, },
"status": { "status": {
"pending": "", "pending": "Ausstehend",
"approved": "", "approved": "Bestätigt",
"declined": "", "declined": "Abgelehnt",
"failed": "" "failed": "Fehlgeschlagen"
}, },
"toBeDetermined": "Noch Festzulegen" "toBeDetermined": "Noch Festzulegen"
}, },
@@ -1900,10 +1976,10 @@
"statistics": { "statistics": {
"empty": "Leer", "empty": "Leer",
"transcodes": "Transkodieren", "transcodes": "Transkodieren",
"transcodesCount": "Transkodierung: {value}", "transcodesCount": "Transkodierungen",
"healthChecksCount": "Gesundheitscheck: {value}", "healthChecksCount": "Health Check",
"filesCount": "Dateien: {value}", "filesCount": "Dateien",
"savedSpace": "Gespeicherter Speicherplatz: {value}", "savedSpace": "Belegter Speicherplatz",
"healthChecks": "Gesundheitscheck", "healthChecks": "Gesundheitscheck",
"videoCodecs": "Codecs", "videoCodecs": "Codecs",
"videoContainers": "Container", "videoContainers": "Container",
@@ -2048,8 +2124,8 @@
}, },
"quickCreateApp": { "quickCreateApp": {
"modal": { "modal": {
"title": "", "title": "Jetzt eine App erstellen",
"createAndUse": "" "createAndUse": "Erstellen und verwenden"
} }
} }
}, },
@@ -2126,7 +2202,7 @@
"label": "Transparenz" "label": "Transparenz"
}, },
"iconColor": { "iconColor": {
"label": "" "label": "Symbolfarbe"
}, },
"customCss": { "customCss": {
"label": "Benutzerdefinierte css für dieses Board", "label": "Benutzerdefinierte css für dieses Board",
@@ -2144,14 +2220,14 @@
"label": "Anzahl der Spalten" "label": "Anzahl der Spalten"
}, },
"itemRadius": { "itemRadius": {
"label": "", "label": "Elementradius",
"description": "", "description": "Ändert den Grad der Rundung ihrer Kacheln auf dem Board",
"option": { "option": {
"xs": "", "xs": "Sehr klein",
"sm": "", "sm": "Klein",
"md": "", "md": "Mittel",
"lg": "", "lg": "Groß",
"xl": "" "xl": "Sehr groß"
} }
}, },
"name": { "name": {
@@ -2175,9 +2251,9 @@
"layout": { "layout": {
"title": "Ansicht", "title": "Ansicht",
"responsive": { "responsive": {
"title": "", "title": "Reaktive Layouts",
"action": { "action": {
"add": "" "add": "Layout hinzufügen"
} }
} }
}, },
@@ -2185,7 +2261,7 @@
"title": "Hintergrund" "title": "Hintergrund"
}, },
"appearance": { "appearance": {
"title": "" "title": "Aussehen"
}, },
"customCss": { "customCss": {
"title": "Benutzerdefiniertes CSS" "title": "Benutzerdefiniertes CSS"
@@ -2290,14 +2366,14 @@
"layout": { "layout": {
"field": { "field": {
"name": { "name": {
"label": "" "label": "Name"
}, },
"columnCount": { "columnCount": {
"label": "" "label": "Anzahl der Spalten"
}, },
"breakpoint": { "breakpoint": {
"label": "", "label": "Breakpoint",
"description": "" "description": "Das Layout wird auf allen Bildschirmen, die größer als dieser breakpoint sind, bis zum nächsten größeren breakpoint verwendet."
} }
} }
}, },
@@ -2332,7 +2408,7 @@
"label": "Werkzeuge", "label": "Werkzeuge",
"items": { "items": {
"docker": "Docker", "docker": "Docker",
"kubernetes": "", "kubernetes": "Kubernetes",
"logs": "Logs", "logs": "Logs",
"api": "API", "api": "API",
"certificates": "Zertifikate", "certificates": "Zertifikate",
@@ -2531,10 +2607,10 @@
"ownerOfGroupDeleted": "Der Eigentümer dieser Gruppe wurde gelöscht. Derzeit hat sie keinen Besitzer." "ownerOfGroupDeleted": "Der Eigentümer dieser Gruppe wurde gelöscht. Derzeit hat sie keinen Besitzer."
}, },
"setting": { "setting": {
"title": "", "title": "Einstellungen",
"alert": "", "alert": "Gruppeneinstellungen werden nach der Reihenfolge der Gruppen in der Liste priorisiert. Die oberen Einstellungen überschreiben die unteren Einstellungen.",
"board": { "board": {
"title": "" "title": "Boards"
} }
}, },
"members": { "members": {
@@ -2766,7 +2842,7 @@
"title": "Container", "title": "Container",
"table": { "table": {
"updated": "Aktualisiert {when}", "updated": "Aktualisiert {when}",
"search": "Seach {count} Container", "search": "{count} Container durchsuchen",
"selected": "{selectCount} von {totalCount} ausgewählten Containern" "selected": "{selectCount} von {totalCount} ausgewählten Containern"
}, },
"field": { "field": {
@@ -2881,242 +2957,242 @@
}, },
"kubernetes": { "kubernetes": {
"cluster": { "cluster": {
"title": "", "title": "Cluster Dashboard",
"label": "", "label": "Cluster",
"providers": "", "providers": "Anbieter",
"version": "", "version": "Version",
"architecture": "", "architecture": "Architektur",
"capacity": { "capacity": {
"title": "", "title": "Kapazität",
"resource": { "resource": {
"reserved": "", "reserved": "Reserviert",
"used": "" "used": "Benutzt"
} }
}, },
"resources": { "resources": {
"title": "", "title": "Ressourcen",
"nodes": "", "nodes": "Nodes",
"namespaces": "", "namespaces": "Namensräume",
"ingresses": "", "ingresses": "Ingresse",
"services": "", "services": "Dienste",
"pods": "", "pods": "Pods",
"configmaps": "", "configmaps": "ConfigMaps",
"secrets": "", "secrets": "Secrets",
"volumes": "" "volumes": "Laufwerke"
} }
}, },
"nodes": { "nodes": {
"label": "", "label": "Nodes",
"field": { "field": {
"name": { "name": {
"label": "" "label": "Name"
}, },
"state": { "state": {
"label": "", "label": "Zustand",
"option": { "option": {
"ready": "", "ready": "Bereit",
"NotReady": "" "NotReady": "Nicht Bereit"
} }
}, },
"cpu": { "cpu": {
"label": "" "label": "CPU"
}, },
"memory": { "memory": {
"label": "" "label": "RAM"
}, },
"pods": { "pods": {
"label": "" "label": "Pods"
}, },
"operatingSystem": { "operatingSystem": {
"label": "" "label": "OS"
}, },
"architecture": { "architecture": {
"label": "" "label": "Architektur"
}, },
"kubernetesVersion": { "kubernetesVersion": {
"label": "" "label": "Kubernetes Version"
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "Erstellt"
} }
}, },
"table": { "table": {
"search": "" "search": "{count} Nodes durchsuchen"
} }
}, },
"namespaces": { "namespaces": {
"label": "", "label": "Namensräume",
"field": { "field": {
"name": { "name": {
"label": "" "label": "Name"
}, },
"state": { "state": {
"label": "", "label": "Zustand",
"option": { "option": {
"active": "", "active": "Aktiv",
"terminating": "" "terminating": "Beendet"
} }
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "Erstellt"
} }
}, },
"table": { "table": {
"search": "" "search": "{count} Namensräume durchsuchen"
} }
}, },
"ingresses": { "ingresses": {
"label": "", "label": "Ingresse",
"field": { "field": {
"name": { "name": {
"label": "" "label": "Name"
}, },
"namespace": { "namespace": {
"label": "" "label": "Namensraum"
}, },
"className": { "className": {
"label": "" "label": "Klassenname"
}, },
"rulesAndPaths": { "rulesAndPaths": {
"label": "" "label": "Regeln & Pfade"
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "Erstellt"
} }
}, },
"table": { "table": {
"search": "" "search": "{count} Ingresse durchsuchen"
} }
}, },
"services": { "services": {
"label": "", "label": "Dienste",
"field": { "field": {
"name": { "name": {
"label": "" "label": "Name"
}, },
"namespace": { "namespace": {
"label": "" "label": "Namensraum"
}, },
"type": { "type": {
"label": "" "label": "Typ"
}, },
"ports": { "ports": {
"label": "" "label": "Ports"
}, },
"targetPorts": { "targetPorts": {
"label": "" "label": "Zielports"
}, },
"clusterIP": { "clusterIP": {
"label": "" "label": "Cluster IP"
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "Erstellt"
} }
}, },
"table": { "table": {
"search": "" "search": "{count} Services durchsuchen"
} }
}, },
"pods": { "pods": {
"label": "", "label": "Pods",
"field": { "field": {
"name": { "name": {
"label": "" "label": "Name"
}, },
"namespace": { "namespace": {
"label": "" "label": "Namensraum"
}, },
"image": { "image": {
"label": "" "label": "Image"
}, },
"applicationType": { "applicationType": {
"label": "" "label": "Typ der Anwendung"
}, },
"status": { "status": {
"label": "" "label": "Status"
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "Erstellt"
} }
}, },
"table": { "table": {
"search": "" "search": "{count} Pods durchsuchen"
} }
}, },
"secrets": { "secrets": {
"label": "", "label": "Secrets",
"field": { "field": {
"name": { "name": {
"label": "" "label": "Name"
}, },
"namespace": { "namespace": {
"label": "" "label": "namensraum"
}, },
"type": { "type": {
"label": "" "label": "typ"
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "Erstellt"
} }
}, },
"table": { "table": {
"search": "" "search": "{count} Secrets durchsuchen"
} }
}, },
"configmaps": { "configmaps": {
"label": "", "label": "ConfigMaps",
"field": { "field": {
"name": { "name": {
"label": "" "label": "Name"
}, },
"namespace": { "namespace": {
"label": "" "label": "namensraum"
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "Erstellt"
} }
}, },
"table": { "table": {
"search": "" "search": "{count} configMaps durchsuchen"
} }
}, },
"volumes": { "volumes": {
"label": "", "label": "Laufwerke",
"field": { "field": {
"name": { "name": {
"label": "" "label": "Name"
}, },
"namespace": { "namespace": {
"label": "" "label": "Namensraum"
}, },
"accessModes": { "accessModes": {
"label": "" "label": "Zugriffsmodi"
}, },
"storage": { "storage": {
"label": "" "label": "Speicher"
}, },
"storageClassName": { "storageClassName": {
"label": "" "label": "Name der Speicherklasse"
}, },
"volumeMode": { "volumeMode": {
"label": "" "label": "Laufwerksmodus"
}, },
"volumeName": { "volumeName": {
"label": "" "label": "Laufwerkname"
}, },
"status": { "status": {
"label": "" "label": "Status"
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "Erstellt"
} }
}, },
"table": { "table": {
"search": "" "search": "{count} Laufwerke durchsuchen"
} }
}, },
"error": { "error": {
"internalServerError": "" "internalServerError": "Fehler beim Abrufen der Kubernetes Daten"
} }
}, },
"permission": { "permission": {
@@ -3205,30 +3281,30 @@
"label": "Docker" "label": "Docker"
}, },
"kubernetes": { "kubernetes": {
"label": "", "label": "Kubernetes",
"nodes": { "nodes": {
"label": "" "label": "Nodes"
}, },
"namespaces": { "namespaces": {
"label": "" "label": "Namensräume"
}, },
"ingresses": { "ingresses": {
"label": "" "label": "Ingresse"
}, },
"services": { "services": {
"label": "" "label": "Dienste"
}, },
"pods": { "pods": {
"label": "" "label": "pods"
}, },
"configmaps": { "configmaps": {
"label": "" "label": "ConfigMaps"
}, },
"secrets": { "secrets": {
"label": "" "label": "Secrets"
}, },
"volumes": { "volumes": {
"label": "" "label": "Laufwerke"
} }
}, },
"logs": { "logs": {
@@ -3601,7 +3677,7 @@
}, },
"delete": { "delete": {
"title": "Suchmaschine löschen", "title": "Suchmaschine löschen",
"message": "Sind Sie sicher, dass Sie die Suchmaschine '{name} ' löschen möchten?", "message": "Sind Sie sicher, dass Sie die Suchmaschine {name} löschen möchten?",
"notification": { "notification": {
"success": { "success": {
"title": "Suchmaschine gelöscht", "title": "Suchmaschine gelöscht",

View File

@@ -1424,6 +1424,82 @@
"run": "" "run": ""
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "Ημερολόγιο", "name": "Ημερολόγιο",
"description": "", "description": "",

View File

@@ -1424,6 +1424,82 @@
"run": "Run {name}" "run": "Run {name}"
} }
}, },
"stockPrice": {
"name": "Stock Price",
"description": "Displays the current stock price of a company",
"option": {
"stock": {
"label": "Stock symbol"
},
"timeRange": {
"label": "Time Range",
"option": {
"1d": {
"label": "1 Day"
},
"5d": {
"label": "5 Day"
},
"1mo": {
"label": "1 Month"
},
"3mo": {
"label": "3 Months"
},
"6mo": {
"label": "6 Months"
},
"ytd": {
"label": "Year to Date"
},
"1y": {
"label": "1 Year"
},
"2y": {
"label": "2 Years"
},
"5y": {
"label": "5 Years"
},
"10y": {
"label": "10 Years"
},
"max": {
"label": "Max"
}
}
},
"timeInterval": {
"label": "Time Interval",
"option": {
"5m": {
"label": "5 Minutes"
},
"15m": {
"label": "15 Minutes"
},
"30m": {
"label": "30 Minutes"
},
"1h": {
"label": "1 Hour"
},
"1d": {
"label": "1 Day"
},
"5d": {
"label": "5 Days"
},
"1wk": {
"label": "1 Week"
},
"1mo": {
"label": "1 Month"
}
}
}
}
},
"calendar": { "calendar": {
"name": "Calendar", "name": "Calendar",
"description": "Display events from your integrations in a calendar view within a certain relative time period", "description": "Display events from your integrations in a calendar view within a certain relative time period",

View File

@@ -1424,6 +1424,82 @@
"run": "" "run": ""
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "Calendario", "name": "Calendario",
"description": "", "description": "",

View File

@@ -1424,6 +1424,82 @@
"run": "" "run": ""
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "", "name": "",
"description": "", "description": "",

File diff suppressed because it is too large Load Diff

View File

@@ -677,11 +677,11 @@
"description": "אינטגרציה {kind} יכולה לשמש עם מנועי חיפוש. סמן עבור הגדרה אוטומטית של מנוע חיפוש." "description": "אינטגרציה {kind} יכולה לשמש עם מנועי חיפוש. סמן עבור הגדרה אוטומטית של מנוע חיפוש."
}, },
"createApp": { "createApp": {
"label": "", "label": "יצירת אפליקציה",
"description": "" "description": "יצירת אפליקציה עם אותו שם וסמל כמו האינטגרציה. יש להשאיר את שדה הקלט למטה ריק כדי ליצור את האפליקציה עם כתובת האתר לאינטגרציה."
}, },
"appHref": { "appHref": {
"placeholder": "" "placeholder": "כתובת אתר מותאמת אישית של אפליקציה"
} }
}, },
"action": { "action": {
@@ -1079,7 +1079,7 @@
"label": "מחלקות עיצוב מותאמות אישית" "label": "מחלקות עיצוב מותאמות אישית"
}, },
"borderColor": { "borderColor": {
"label": "" "label": "צבע מסגרת"
} }
} }
}, },
@@ -1136,12 +1136,12 @@
"label": "רשת" "label": "רשת"
}, },
"gridHorizontal": { "gridHorizontal": {
"label": "" "label": "רשת אופקית"
} }
} }
}, },
"hideTitle": { "hideTitle": {
"label": "" "label": "הסתר כותרת"
}, },
"hideIcon": { "hideIcon": {
"label": "הסתרת אייקונים" "label": "הסתרת אייקונים"
@@ -1424,6 +1424,82 @@
"run": "הפעל {name}" "run": "הפעל {name}"
} }
}, },
"stockPrice": {
"name": "מחיר המניה",
"description": "מציג את מחיר המניה הנוכחי של חברה",
"option": {
"stock": {
"label": "סמל מניה"
},
"timeRange": {
"label": "טווח זמן",
"option": {
"1d": {
"label": "יום אחד"
},
"5d": {
"label": "חמישה ימים"
},
"1mo": {
"label": "חודש אחד"
},
"3mo": {
"label": "שלושה חודשים"
},
"6mo": {
"label": "שישה חודשים"
},
"ytd": {
"label": "שנה עד היום"
},
"1y": {
"label": "שנה אחת"
},
"2y": {
"label": "שנתיים"
},
"5y": {
"label": "חמש שנים"
},
"10y": {
"label": "עשר שנים"
},
"max": {
"label": "מקסימום"
}
}
},
"timeInterval": {
"label": "מרווח זמן",
"option": {
"5m": {
"label": "5 דקות"
},
"15m": {
"label": "15 דקות"
},
"30m": {
"label": "30 דקות"
},
"1h": {
"label": "שעה אחת"
},
"1d": {
"label": "יום אחד"
},
"5d": {
"label": "חמישה ימים"
},
"1wk": {
"label": "שבוע אחד"
},
"1mo": {
"label": "חודש אחד"
}
}
}
}
},
"calendar": { "calendar": {
"name": "לוח שנה", "name": "לוח שנה",
"description": "הצג אירועים מהאינטגרציות שלך בתצוגת לוח שנה בתוך פרק זמן יחסי מסוים", "description": "הצג אירועים מהאינטגרציות שלך בתצוגת לוח שנה בתוך פרק זמן יחסי מסוים",
@@ -1443,7 +1519,7 @@
"label": "סיים ב" "label": "סיים ב"
}, },
"showUnmonitored": { "showUnmonitored": {
"label": "" "label": "הצג ללא פיקוח"
} }
} }
}, },
@@ -1675,7 +1751,7 @@
"description": "הצג את הזרמים הנוכחיים בשרתי המדיה שלך", "description": "הצג את הזרמים הנוכחיים בשרתי המדיה שלך",
"option": {}, "option": {},
"items": { "items": {
"currentlyPlaying": "", "currentlyPlaying": "מתנגן כרגע",
"user": "משתמש", "user": "משתמש",
"name": "שם", "name": "שם",
"id": "מזהה" "id": "מזהה"
@@ -1900,10 +1976,10 @@
"statistics": { "statistics": {
"empty": "ריק", "empty": "ריק",
"transcodes": "קידודים", "transcodes": "קידודים",
"transcodesCount": "קידודים: {value}", "transcodesCount": "קידודים",
"healthChecksCount": "בדיקות בריאות: {value}", "healthChecksCount": "בדיקות בריאות",
"filesCount": "קבצים: {value}", "filesCount": "קבצים",
"savedSpace": "שטח שמור: {value}", "savedSpace": "שטח שמור",
"healthChecks": "בדיקות בריאות", "healthChecks": "בדיקות בריאות",
"videoCodecs": "קודקים", "videoCodecs": "קודקים",
"videoContainers": "מיכלים", "videoContainers": "מיכלים",
@@ -2332,7 +2408,7 @@
"label": "כלים", "label": "כלים",
"items": { "items": {
"docker": "דוקר", "docker": "דוקר",
"kubernetes": "", "kubernetes": "Kubernetes",
"logs": "קובצי לוג", "logs": "קובצי לוג",
"api": "ממשק API", "api": "ממשק API",
"certificates": "אישורי אבטחה", "certificates": "אישורי אבטחה",
@@ -2881,242 +2957,242 @@
}, },
"kubernetes": { "kubernetes": {
"cluster": { "cluster": {
"title": "", "title": "לוח המחוונים של אשכול",
"label": "", "label": "אשכול",
"providers": "", "providers": "ספקים",
"version": "", "version": "גרסה",
"architecture": "", "architecture": "ארכיטקטורה",
"capacity": { "capacity": {
"title": "", "title": "קיבולת",
"resource": { "resource": {
"reserved": "", "reserved": "שמור",
"used": "" "used": "בשימוש"
} }
}, },
"resources": { "resources": {
"title": "", "title": "מקורות",
"nodes": "", "nodes": "קונטיינרים",
"namespaces": "", "namespaces": "מרחב שמות",
"ingresses": "", "ingresses": "כרטיסים",
"services": "", "services": "שירותים",
"pods": "", "pods": "תרמילים",
"configmaps": "", "configmaps": "ConfigMaps",
"secrets": "", "secrets": "נתוני גישה",
"volumes": "" "volumes": "כוננים"
} }
}, },
"nodes": { "nodes": {
"label": "", "label": "קונטיינרים",
"field": { "field": {
"name": { "name": {
"label": "" "label": "שם"
}, },
"state": { "state": {
"label": "", "label": "מצב",
"option": { "option": {
"ready": "", "ready": "מוכן",
"NotReady": "" "NotReady": "לא מוכן"
} }
}, },
"cpu": { "cpu": {
"label": "" "label": "מעבד"
}, },
"memory": { "memory": {
"label": "" "label": "זכרון פנימי"
}, },
"pods": { "pods": {
"label": "" "label": "תרמילים"
}, },
"operatingSystem": { "operatingSystem": {
"label": "" "label": "מערכת הפעלה"
}, },
"architecture": { "architecture": {
"label": "" "label": "ארכיטקטורה"
}, },
"kubernetesVersion": { "kubernetesVersion": {
"label": "" "label": "גרסת Kubernetes"
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "נוצר"
} }
}, },
"table": { "table": {
"search": "" "search": "חפש {count} קונטיינרים"
} }
}, },
"namespaces": { "namespaces": {
"label": "", "label": "מרחב שמות",
"field": { "field": {
"name": { "name": {
"label": "" "label": "שם"
}, },
"state": { "state": {
"label": "", "label": "מצב",
"option": { "option": {
"active": "", "active": "פעיל",
"terminating": "" "terminating": "מסתיים"
} }
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "נוצר"
} }
}, },
"table": { "table": {
"search": "" "search": "חפש ב-{count} מרחבי שמות"
} }
}, },
"ingresses": { "ingresses": {
"label": "", "label": "כרטיסים",
"field": { "field": {
"name": { "name": {
"label": "" "label": "שם"
}, },
"namespace": { "namespace": {
"label": "" "label": "מרחב שמות"
}, },
"className": { "className": {
"label": "" "label": "שם קלאס"
}, },
"rulesAndPaths": { "rulesAndPaths": {
"label": "" "label": "כללים ונתיבים"
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "נוצר"
} }
}, },
"table": { "table": {
"search": "" "search": "חפש {count} כניסות"
} }
}, },
"services": { "services": {
"label": "", "label": "שירותים",
"field": { "field": {
"name": { "name": {
"label": "" "label": "שם"
}, },
"namespace": { "namespace": {
"label": "" "label": "מרחב שמות"
}, },
"type": { "type": {
"label": "" "label": "סוג"
}, },
"ports": { "ports": {
"label": "" "label": "יציאות"
}, },
"targetPorts": { "targetPorts": {
"label": "" "label": "יציאות יעד"
}, },
"clusterIP": { "clusterIP": {
"label": "" "label": "כתובת אשכול"
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "נוצר"
} }
}, },
"table": { "table": {
"search": "" "search": "חפש {count} שירותים"
} }
}, },
"pods": { "pods": {
"label": "", "label": "תרמילים",
"field": { "field": {
"name": { "name": {
"label": "" "label": "שם"
}, },
"namespace": { "namespace": {
"label": "" "label": "מרחב שמות"
}, },
"image": { "image": {
"label": "" "label": "תמונה"
}, },
"applicationType": { "applicationType": {
"label": "" "label": "סוג יישום"
}, },
"status": { "status": {
"label": "" "label": "מצב"
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "נוצר"
} }
}, },
"table": { "table": {
"search": "" "search": "חפש {count} תרמילים"
} }
}, },
"secrets": { "secrets": {
"label": "", "label": "נתוני גישה",
"field": { "field": {
"name": { "name": {
"label": "" "label": "שם"
}, },
"namespace": { "namespace": {
"label": "" "label": "מרחב שמות"
}, },
"type": { "type": {
"label": "" "label": "סוג"
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "נוצר"
} }
}, },
"table": { "table": {
"search": "" "search": "חפש {count} נתוני גישה"
} }
}, },
"configmaps": { "configmaps": {
"label": "", "label": "configMaps",
"field": { "field": {
"name": { "name": {
"label": "" "label": "שם"
}, },
"namespace": { "namespace": {
"label": "" "label": "מרחב שמות"
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "נוצר"
} }
}, },
"table": { "table": {
"search": "" "search": "חפש {count} configMaps"
} }
}, },
"volumes": { "volumes": {
"label": "", "label": "כרכים",
"field": { "field": {
"name": { "name": {
"label": "" "label": "שם"
}, },
"namespace": { "namespace": {
"label": "" "label": "מרחב שמות"
}, },
"accessModes": { "accessModes": {
"label": "" "label": "מצבי גישה"
}, },
"storage": { "storage": {
"label": "" "label": "אחסון"
}, },
"storageClassName": { "storageClassName": {
"label": "" "label": "שם מחלקת אחסון"
}, },
"volumeMode": { "volumeMode": {
"label": "" "label": "מצב כרך"
}, },
"volumeName": { "volumeName": {
"label": "" "label": "שם כרך"
}, },
"status": { "status": {
"label": "" "label": "מצב"
}, },
"creationTimestamp": { "creationTimestamp": {
"label": "" "label": "נוצר"
} }
}, },
"table": { "table": {
"search": "" "search": "חפש {count} כרכים"
} }
}, },
"error": { "error": {
"internalServerError": "" "internalServerError": "אחזור נתוני Kubernetes נכשל"
} }
}, },
"permission": { "permission": {
@@ -3205,30 +3281,30 @@
"label": "דוקר" "label": "דוקר"
}, },
"kubernetes": { "kubernetes": {
"label": "", "label": "Kubernetes",
"nodes": { "nodes": {
"label": "" "label": "צמתים"
}, },
"namespaces": { "namespaces": {
"label": "" "label": "מרחב שמות"
}, },
"ingresses": { "ingresses": {
"label": "" "label": "כרטיסים"
}, },
"services": { "services": {
"label": "" "label": "שירותים"
}, },
"pods": { "pods": {
"label": "" "label": "תרמילים"
}, },
"configmaps": { "configmaps": {
"label": "" "label": "ConfigMaps"
}, },
"secrets": { "secrets": {
"label": "" "label": "נתוני גישה"
}, },
"volumes": { "volumes": {
"label": "" "label": "כוננים"
} }
}, },
"logs": { "logs": {

View File

@@ -1424,6 +1424,82 @@
"run": "" "run": ""
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "Kalendar", "name": "Kalendar",
"description": "", "description": "",

View File

@@ -1424,6 +1424,82 @@
"run": "" "run": ""
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "Naptár", "name": "Naptár",
"description": "", "description": "",

View File

@@ -1424,6 +1424,82 @@
"run": "" "run": ""
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "Calendario", "name": "Calendario",
"description": "", "description": "",

View File

@@ -1424,6 +1424,82 @@
"run": "" "run": ""
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "カレンダー", "name": "カレンダー",
"description": "", "description": "",

View File

@@ -1424,6 +1424,82 @@
"run": "" "run": ""
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "캘린더", "name": "캘린더",
"description": "", "description": "",

View File

@@ -19,7 +19,7 @@
}, },
"fileInfo": { "fileInfo": {
"action": { "action": {
"change": "" "change": "Pakeisti failą"
} }
}, },
"importSettings": { "importSettings": {
@@ -113,7 +113,7 @@
"subtitle": "" "subtitle": ""
}, },
"invite": { "invite": {
"title": "", "title": "Prisijungti prie Homarr",
"subtitle": "", "subtitle": "",
"description": "" "description": ""
}, },
@@ -1424,6 +1424,82 @@
"run": "" "run": ""
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "Kalendorius", "name": "Kalendorius",
"description": "", "description": "",

View File

@@ -1424,6 +1424,82 @@
"run": "" "run": ""
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "Kalendārs", "name": "Kalendārs",
"description": "", "description": "",

View File

@@ -1424,6 +1424,82 @@
"run": "{name} uitvoeren" "run": "{name} uitvoeren"
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "Kalender", "name": "Kalender",
"description": "Gebeurtenissen van je integraties weergeven in een kalenderweergave binnen een bepaalde relatieve tijdsperiode", "description": "Gebeurtenissen van je integraties weergeven in een kalenderweergave binnen een bepaalde relatieve tijdsperiode",

View File

@@ -1424,6 +1424,82 @@
"run": "Kjør {name}" "run": "Kjør {name}"
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "Kalender", "name": "Kalender",
"description": "Vis hendelser fra integrasjonene dine i en kalendervisning innenfor en bestemt relativ tidsperiode", "description": "Vis hendelser fra integrasjonene dine i en kalendervisning innenfor en bestemt relativ tidsperiode",

View File

@@ -1424,6 +1424,82 @@
"run": "Uruchom {name}" "run": "Uruchom {name}"
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "Kalendarz", "name": "Kalendarz",
"description": "Wyświetlaj zdarzenia z integracji w widoku kalendarza w określonym okresie czasowym", "description": "Wyświetlaj zdarzenia z integracji w widoku kalendarza w określonym okresie czasowym",

View File

@@ -1424,6 +1424,82 @@
"run": "" "run": ""
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "Calendário", "name": "Calendário",
"description": "", "description": "",

View File

@@ -1424,6 +1424,82 @@
"run": "" "run": ""
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "", "name": "",
"description": "", "description": "",

View File

@@ -1424,6 +1424,82 @@
"run": "Запустить {name}" "run": "Запустить {name}"
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "Календарь", "name": "Календарь",
"description": "Отображает события из ваших интеграций в календаре в определённом временном периоде", "description": "Отображает события из ваших интеграций в календаре в определённом временном периоде",

View File

@@ -1424,6 +1424,82 @@
"run": "Spustite {name}" "run": "Spustite {name}"
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "Kalendár", "name": "Kalendár",
"description": "Zobrazte udalosti z vašich integrácií v zobrazení kalendára za určité relatívne časové obdobie", "description": "Zobrazte udalosti z vašich integrácií v zobrazení kalendára za určité relatívne časové obdobie",

View File

@@ -1424,6 +1424,82 @@
"run": "" "run": ""
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "Koledar", "name": "Koledar",
"description": "", "description": "",

View File

@@ -1424,6 +1424,82 @@
"run": "" "run": ""
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "Kalender", "name": "Kalender",
"description": "", "description": "",

View File

@@ -677,11 +677,11 @@
"description": "\"{kind}\" entegrasyonu arama motorlarıyla kullanılabilir. Arama motorunu otomatik olarak yapılandırmak için bunu işaretleyin." "description": "\"{kind}\" entegrasyonu arama motorlarıyla kullanılabilir. Arama motorunu otomatik olarak yapılandırmak için bunu işaretleyin."
}, },
"createApp": { "createApp": {
"label": "", "label": "Uygulama oluştur",
"description": "" "description": "Entegrasyon ile aynı adı ve simgeyi taşıyan bir uygulama oluşturun. Uygulamayı entegrasyon URL'si ile oluşturmak için aşağıdaki alanını boş bırakın."
}, },
"appHref": { "appHref": {
"placeholder": "" "placeholder": "Özel Uygulama URL'si"
} }
}, },
"action": { "action": {
@@ -1424,6 +1424,82 @@
"run": "Çalıştır {name}" "run": "Çalıştır {name}"
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "Takvim", "name": "Takvim",
"description": "Entegrasyonlarınızdaki etkinlikleri belirli bir göreli zaman dilimi içinde bir takvim görünümünde görüntüleyin", "description": "Entegrasyonlarınızdaki etkinlikleri belirli bir göreli zaman dilimi içinde bir takvim görünümünde görüntüleyin",

View File

@@ -1424,6 +1424,82 @@
"run": "Запустити {name}" "run": "Запустити {name}"
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "Календар", "name": "Календар",
"description": "", "description": "",

View File

@@ -1424,6 +1424,82 @@
"run": "" "run": ""
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "Lịch", "name": "Lịch",
"description": "", "description": "",

View File

@@ -677,11 +677,11 @@
"description": "集成 {kind} 可以與搜尋引擎共同使用,勾選此選項可自動設定搜尋引擎" "description": "集成 {kind} 可以與搜尋引擎共同使用,勾選此選項可自動設定搜尋引擎"
}, },
"createApp": { "createApp": {
"label": "", "label": "創建應用程式",
"description": "" "description": "建立一個與集成相同名稱和圖示的應用程式,將下方輸入欄位留空,以使用集成網址創建應用程式"
}, },
"appHref": { "appHref": {
"placeholder": "" "placeholder": "自訂應用程式網址"
} }
}, },
"action": { "action": {
@@ -1424,6 +1424,82 @@
"run": "執行 {name}" "run": "執行 {name}"
} }
}, },
"stockPrice": {
"name": "",
"description": "",
"option": {
"stock": {
"label": ""
},
"timeRange": {
"label": "",
"option": {
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1mo": {
"label": ""
},
"3mo": {
"label": ""
},
"6mo": {
"label": ""
},
"ytd": {
"label": ""
},
"1y": {
"label": ""
},
"2y": {
"label": ""
},
"5y": {
"label": ""
},
"10y": {
"label": ""
},
"max": {
"label": ""
}
}
},
"timeInterval": {
"label": "",
"option": {
"5m": {
"label": ""
},
"15m": {
"label": ""
},
"30m": {
"label": ""
},
"1h": {
"label": ""
},
"1d": {
"label": ""
},
"5d": {
"label": ""
},
"1wk": {
"label": ""
},
"1mo": {
"label": ""
}
}
}
}
},
"calendar": { "calendar": {
"name": "日曆", "name": "日曆",
"description": "在特定的相對時間範圍內,將來自您的集成事件以日曆視圖顯示", "description": "在特定的相對時間範圍內,將來自您的集成事件以日曆視圖顯示",

View File

@@ -22,7 +22,7 @@ const boardNameSchema = z
.string() .string()
.min(1) .min(1)
.max(255) .max(255)
.regex(/^[A-Za-z0-9-\\._]*$/); .regex(/^[A-Za-z0-9-\\_]*$/);
const byNameSchema = z.object({ const byNameSchema = z.object({
name: boardNameSchema, name: boardNameSchema,

View File

@@ -44,6 +44,7 @@
"@homarr/translation": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0",
"@homarr/ui": "workspace:^0.1.0", "@homarr/ui": "workspace:^0.1.0",
"@homarr/validation": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0",
"@mantine/charts": "^7.17.2",
"@mantine/core": "^7.17.2", "@mantine/core": "^7.17.2",
"@mantine/hooks": "^7.17.2", "@mantine/hooks": "^7.17.2",
"@tabler/icons-react": "^3.31.0", "@tabler/icons-react": "^3.31.0",
@@ -68,6 +69,7 @@
"next": "15.1.7", "next": "15.1.7",
"react": "19.0.0", "react": "19.0.0",
"react-dom": "19.0.0", "react-dom": "19.0.0",
"recharts": "^2.15.1",
"video.js": "^8.22.0", "video.js": "^8.22.0",
"zod": "^3.24.2" "zod": "^3.24.2"
}, },

View File

@@ -29,6 +29,7 @@ import type { WidgetOptionDefinition } from "./options";
import * as rssFeed from "./rssFeed"; import * as rssFeed from "./rssFeed";
import * as smartHomeEntityState from "./smart-home/entity-state"; import * as smartHomeEntityState from "./smart-home/entity-state";
import * as smartHomeExecuteAutomation from "./smart-home/execute-automation"; import * as smartHomeExecuteAutomation from "./smart-home/execute-automation";
import * as stockPrice from "./stocks";
import * as video from "./video"; import * as video from "./video";
import * as weather from "./weather"; import * as weather from "./weather";
@@ -46,6 +47,7 @@ export const widgetImports = {
dnsHoleControls, dnsHoleControls,
"smartHome-entityState": smartHomeEntityState, "smartHome-entityState": smartHomeEntityState,
"smartHome-executeAutomation": smartHomeExecuteAutomation, "smartHome-executeAutomation": smartHomeExecuteAutomation,
stockPrice,
mediaServer, mediaServer,
calendar, calendar,
downloads, downloads,

View File

@@ -0,0 +1,102 @@
"use client";
import { Sparkline } from "@mantine/charts";
import { Flex, Stack, Text, Title, useMantineTheme } from "@mantine/core";
import { IconTrendingDown, IconTrendingUp } from "@tabler/icons-react";
import { clientApi } from "@homarr/api/client";
import { useScopedI18n } from "@homarr/translation/client";
import type { WidgetComponentProps } from "../definition";
function round(value: number) {
return Math.round(value * 100) / 100;
}
function calculateChange(valueA: number, valueB: number) {
return valueA - valueB;
}
function calculateChangePercentage(valueA: number, valueB: number) {
return 100 * ((valueA - valueB) / valueA);
}
export default function StockPriceWidget({ options, width, height }: WidgetComponentProps<"stockPrice">) {
const t = useScopedI18n("widget.stockPrice");
const theme = useMantineTheme();
const [{ data }] = clientApi.widget.stockPrice.getPriceHistory.useSuspenseQuery(options);
const stockValues = data.indicators.quote[0]?.close ?? [];
const stockValuesChange = round(calculateChange(stockValues[stockValues.length - 1] ?? 0, stockValues[0] ?? 0));
const stockValuesChangePercentage = round(
calculateChangePercentage(stockValues[stockValues.length - 1] ?? 0, stockValues[0] ?? 0),
);
const stockValuesMin = Math.min(...stockValues);
const stockGraphValues = stockValues.map((value) => value - stockValuesMin + 50);
return (
<Flex h="100%" w="100%">
<Sparkline
pos="absolute"
bottom={10}
w="100%"
h={height > 280 ? "75%" : "50%"}
data={stockGraphValues}
curveType="linear"
trendColors={{ positive: "green.7", negative: "red.7", neutral: "gray.6" }}
fillOpacity={0.6}
strokeWidth={2.5}
/>
<Stack pos="absolute" top={10} left={10}>
<Text size="xl" fw={700} lh="0.715">
{stockValuesChange > 0 ? (
<IconTrendingUp size="1.5rem" color={theme.colors.green[7]} />
) : (
<IconTrendingDown size="1.5rem" color={theme.colors.red[7]} />
)}
{data.meta.symbol}
</Text>
{width > 280 && height > 280 && (
<Text size="md" lh="1">
{data.meta.shortName}
</Text>
)}
</Stack>
<Title pos="absolute" bottom={10} right={10} order={width > 280 ? 1 : 2} fw={700}>
{round(stockValues[stockValues.length - 1] ?? 0)}
</Title>
{width > 280 && (
<Text pos="absolute" top={10} right={10} size="xl" fw={700}>
{Math.abs(stockValuesChange)} ({Math.abs(stockValuesChangePercentage)}%)
</Text>
)}
{width > 280 && (
<Text pos="absolute" bottom={10} left={10} fw={700}>
{t(`option.timeRange.option.${options.timeRange}.label`)}
</Text>
)}
<Stack pos="absolute" top={10} left={10}>
<Text size="xl" fw={700} lh="0.715">
{stockValuesChange > 0 ? (
<IconTrendingUp size="1.5rem" color={theme.colors.green[7]} />
) : (
<IconTrendingDown size="1.5rem" color={theme.colors.red[7]} />
)}
{data.meta.symbol}
</Text>
{width > 280 && height > 280 && (
<Text size="md" lh="1">
{data.meta.shortName}
</Text>
)}
</Stack>
</Flex>
);
}

View File

@@ -0,0 +1,37 @@
import { IconBuildingBank } from "@tabler/icons-react";
import { createWidgetDefinition } from "../definition";
import { optionsBuilder } from "../options";
export const stockPriceTimeFrames = {
range: ["1d", "5d", "1mo", "3mo", "6mo", "ytd", "1y", "2y", "5y", "10y", "max"] as const,
interval: ["5m", "15m", "30m", "1h", "1d", "5d", "1wk", "1mo"] as const,
};
const timeRangeOptions = stockPriceTimeFrames.range;
const timeIntervalOptions = stockPriceTimeFrames.interval;
export const { definition, componentLoader } = createWidgetDefinition("stockPrice", {
icon: IconBuildingBank,
createOptions() {
return optionsBuilder.from((factory) => ({
stock: factory.text({
defaultValue: "AAPL",
}),
timeRange: factory.select({
defaultValue: "1mo",
options: timeRangeOptions.map((value) => ({
value,
label: (t) => t(`widget.stockPrice.option.timeRange.option.${value}.label`),
})),
}),
timeInterval: factory.select({
defaultValue: "1d",
options: timeIntervalOptions.map((value) => ({
value,
label: (t) => t(`widget.stockPrice.option.timeInterval.option.${value}.label`),
})),
}),
}));
},
}).withDynamicImport(() => import("./component"));

996
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -24,7 +24,7 @@
"eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-react": "^7.37.4", "eslint-plugin-react": "^7.37.4",
"eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-hooks": "^5.2.0",
"typescript-eslint": "^8.26.1" "typescript-eslint": "^8.27.0"
}, },
"devDependencies": { "devDependencies": {
"@homarr/prettier-config": "workspace:^0.1.0", "@homarr/prettier-config": "workspace:^0.1.0",