chore(release): automatic release v1.21.0
This commit is contained in:
1
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
1
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -31,6 +31,7 @@ body:
|
||||
label: Version
|
||||
description: What version of Homarr are you running?
|
||||
options:
|
||||
- 1.20.0
|
||||
- 1.19.1
|
||||
- 1.19.0
|
||||
- 1.18.0
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM node:22.15.1-alpine AS base
|
||||
FROM node:22.16.0-alpine AS base
|
||||
|
||||
FROM base AS builder
|
||||
RUN apk add --no-cache libc6-compat
|
||||
|
||||
@@ -55,10 +55,10 @@
|
||||
"@mantine/modals": "^8.0.1",
|
||||
"@mantine/tiptap": "^8.0.1",
|
||||
"@million/lint": "1.0.14",
|
||||
"@tabler/icons-react": "^3.31.0",
|
||||
"@tanstack/react-query": "^5.76.1",
|
||||
"@tanstack/react-query-devtools": "^5.76.1",
|
||||
"@tanstack/react-query-next-experimental": "^5.76.1",
|
||||
"@tabler/icons-react": "^3.33.0",
|
||||
"@tanstack/react-query": "^5.76.2",
|
||||
"@tanstack/react-query-devtools": "^5.76.2",
|
||||
"@tanstack/react-query-next-experimental": "^5.76.2",
|
||||
"@trpc/client": "^11.1.2",
|
||||
"@trpc/next": "^11.1.2",
|
||||
"@trpc/react-query": "^11.1.2",
|
||||
@@ -83,22 +83,22 @@
|
||||
"react-simple-code-editor": "^0.14.1",
|
||||
"sass": "^1.89.0",
|
||||
"superjson": "2.2.2",
|
||||
"swagger-ui-react": "^5.21.0",
|
||||
"swagger-ui-react": "^5.22.0",
|
||||
"use-deep-compare-effect": "^1.8.1",
|
||||
"zod": "^3.24.4"
|
||||
"zod": "^3.25.23"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"@types/chroma-js": "3.1.1",
|
||||
"@types/node": "^22.15.18",
|
||||
"@types/node": "^22.15.21",
|
||||
"@types/prismjs": "^1.26.5",
|
||||
"@types/react": "19.1.4",
|
||||
"@types/react": "19.1.5",
|
||||
"@types/react-dom": "19.1.5",
|
||||
"@types/swagger-ui-react": "^5.18.0",
|
||||
"concurrently": "^9.1.2",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"node-loader": "^2.1.0",
|
||||
"prettier": "^3.5.3",
|
||||
"typescript": "^5.8.3"
|
||||
|
||||
@@ -17,6 +17,7 @@ import type { RouterOutputs } from "@homarr/api";
|
||||
import { clientApi } from "@homarr/api/client";
|
||||
import { useTimeAgo } from "@homarr/common";
|
||||
import type { ContainerState } from "@homarr/docker";
|
||||
import { containerStateColorMap } from "@homarr/docker/shared";
|
||||
import { useModalAction } from "@homarr/modals";
|
||||
import { AddDockerAppToHomarr } from "@homarr/modals-collection";
|
||||
import { showErrorNotification, showSuccessNotification } from "@homarr/notifications";
|
||||
@@ -244,21 +245,11 @@ const ContainerActionBarButton = (props: ContainerActionBarButtonProps) => {
|
||||
);
|
||||
};
|
||||
|
||||
const containerStates = {
|
||||
created: "cyan",
|
||||
running: "green",
|
||||
paused: "yellow",
|
||||
restarting: "orange",
|
||||
exited: "red",
|
||||
removing: "pink",
|
||||
dead: "dark",
|
||||
} satisfies Record<ContainerState, MantineColor>;
|
||||
|
||||
const ContainerStateBadge = ({ state }: { state: ContainerState }) => {
|
||||
const t = useScopedI18n("docker.field.state.option");
|
||||
|
||||
return (
|
||||
<Badge size="lg" radius="sm" variant="light" w={120} color={containerStates[state]}>
|
||||
<Badge size="lg" radius="sm" variant="light" w={120} color={containerStateColorMap[state]}>
|
||||
{t(state)}
|
||||
</Badge>
|
||||
);
|
||||
|
||||
@@ -125,8 +125,8 @@ const InnerContent = ({ item, ...dimensions }: InnerContentProps) => {
|
||||
setOptions={(partialNewOptions) =>
|
||||
updateOptions({
|
||||
newOptions: {
|
||||
...partialNewOptions.newOptions,
|
||||
...options,
|
||||
...partialNewOptions.newOptions,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
@@ -6,6 +6,12 @@
|
||||
--gridstack-cell-size: 0;
|
||||
}
|
||||
|
||||
.ui-resizable-handle {
|
||||
// Override default z-index of 100 to prevent it from being on top of the header.
|
||||
// See https://github.com/homarr-labs/homarr/issues/1999
|
||||
z-index: 1 !important;
|
||||
}
|
||||
|
||||
.grid-stack-placeholder > .placeholder-content {
|
||||
background-color: rgb(248, 249, 250) !important;
|
||||
border-radius: 12px;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"main": "./src/main.ts",
|
||||
"types": "./src/main.ts",
|
||||
"scripts": {
|
||||
"build": "esbuild src/main.ts --bundle --platform=node --loader:.scss=text --external:@opentelemetry/api --external:deasync --outfile=tasks.cjs",
|
||||
"build": "esbuild src/main.ts --bundle --platform=node --loader:.scss=text --external:*.node --external:@opentelemetry/api --external:deasync --outfile=tasks.cjs",
|
||||
"clean": "rm -rf .turbo node_modules",
|
||||
"dev": "pnpm with-env tsx ./src/main.ts",
|
||||
"format": "prettier --check . --ignore-path ../../.gitignore",
|
||||
@@ -38,15 +38,16 @@
|
||||
"dayjs": "^1.11.13",
|
||||
"dotenv": "^16.5.0",
|
||||
"superjson": "2.2.2",
|
||||
"undici": "7.9.0"
|
||||
"undici": "7.10.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"@types/node": "^22.15.18",
|
||||
"@types/node": "^22.15.21",
|
||||
"dotenv-cli": "^8.0.0",
|
||||
"eslint": "^9.26.0",
|
||||
"esbuild": "^0.25.4",
|
||||
"eslint": "^9.27.0",
|
||||
"prettier": "^3.5.3",
|
||||
"tsx": "4.19.4",
|
||||
"typescript": "^5.8.3"
|
||||
|
||||
@@ -34,7 +34,8 @@
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"@types/ws": "^8.18.1",
|
||||
"eslint": "^9.26.0",
|
||||
"esbuild": "^0.25.4",
|
||||
"eslint": "^9.27.0",
|
||||
"prettier": "^3.5.3",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
|
||||
16
package.json
16
package.json
@@ -39,23 +39,23 @@
|
||||
"@semantic-release/npm": "^12.0.1",
|
||||
"@semantic-release/release-notes-generator": "^14.0.3",
|
||||
"@turbo/gen": "^2.5.3",
|
||||
"@vitejs/plugin-react": "^4.4.1",
|
||||
"@vitest/coverage-v8": "^3.1.3",
|
||||
"@vitest/ui": "^3.1.3",
|
||||
"@vitejs/plugin-react": "^4.5.0",
|
||||
"@vitest/coverage-v8": "^3.1.4",
|
||||
"@vitest/ui": "^3.1.4",
|
||||
"conventional-changelog-conventionalcommits": "^8.0.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"jsdom": "^26.1.0",
|
||||
"prettier": "^3.5.3",
|
||||
"semantic-release": "^24.2.3",
|
||||
"testcontainers": "^10.26.0",
|
||||
"semantic-release": "^24.2.4",
|
||||
"testcontainers": "^10.28.0",
|
||||
"turbo": "^2.5.3",
|
||||
"typescript": "^5.8.3",
|
||||
"vite-tsconfig-paths": "^5.1.4",
|
||||
"vitest": "^3.1.3"
|
||||
"vitest": "^3.1.4"
|
||||
},
|
||||
"packageManager": "pnpm@10.11.0",
|
||||
"engines": {
|
||||
"node": ">=22.15.1"
|
||||
"node": ">=22.16.0"
|
||||
},
|
||||
"pnpm": {
|
||||
"onlyBuiltDependencies": [
|
||||
@@ -70,7 +70,7 @@
|
||||
"tree-sitter-json"
|
||||
],
|
||||
"overrides": {
|
||||
"proxmox-api>undici": "7.9.0"
|
||||
"proxmox-api>undici": "7.10.0"
|
||||
},
|
||||
"allowUnusedPatches": true,
|
||||
"ignoredBuiltDependencies": [
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
"@homarr/server-settings": "workspace:^0.1.0",
|
||||
"@homarr/validation": "workspace:^0.1.0",
|
||||
"@kubernetes/client-node": "^1.2.0",
|
||||
"@tanstack/react-query": "^5.76.1",
|
||||
"@tanstack/react-query": "^5.76.2",
|
||||
"@trpc/client": "^11.1.2",
|
||||
"@trpc/react-query": "^11.1.2",
|
||||
"@trpc/server": "^11.1.2",
|
||||
@@ -52,13 +52,13 @@
|
||||
"react-dom": "19.1.0",
|
||||
"superjson": "2.2.2",
|
||||
"trpc-to-openapi": "^2.2.0",
|
||||
"zod": "^3.24.4"
|
||||
"zod": "^3.25.23"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"prettier": "^3.5.3",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
|
||||
@@ -1,90 +1,48 @@
|
||||
import { TRPCError } from "@trpc/server";
|
||||
import { observable } from "@trpc/server/observable";
|
||||
import { z } from "zod";
|
||||
|
||||
import { db, like, or } from "@homarr/db";
|
||||
import { icons } from "@homarr/db/schema";
|
||||
import type { Container, ContainerState, Docker, Port } from "@homarr/docker";
|
||||
import { DockerSingleton } from "@homarr/docker";
|
||||
import type { Container, ContainerInfo, ContainerState, Docker, Port } from "@homarr/docker";
|
||||
import { logger } from "@homarr/log";
|
||||
import { createCacheChannel } from "@homarr/redis";
|
||||
import { dockerContainersRequestHandler } from "@homarr/request-handler/docker";
|
||||
|
||||
import { dockerMiddleware } from "../../middlewares/docker";
|
||||
import { createTRPCRouter, permissionRequiredProcedure } from "../../trpc";
|
||||
|
||||
const dockerCache = createCacheChannel<{
|
||||
containers: (ContainerInfo & { instance: string; iconUrl: string | null })[];
|
||||
}>("docker-containers", 5 * 60 * 1000);
|
||||
|
||||
export const dockerRouter = createTRPCRouter({
|
||||
getContainers: permissionRequiredProcedure
|
||||
.requiresPermission("admin")
|
||||
.concat(dockerMiddleware())
|
||||
.query(async () => {
|
||||
const result = await dockerCache
|
||||
.consumeAsync(async () => {
|
||||
const dockerInstances = DockerSingleton.getInstances();
|
||||
const containers = await Promise.all(
|
||||
// Return all the containers of all the instances into only one item
|
||||
dockerInstances.map(({ instance, host: key }) =>
|
||||
instance.listContainers({ all: true }).then((containers) =>
|
||||
containers.map((container) => ({
|
||||
...container,
|
||||
instance: key,
|
||||
})),
|
||||
),
|
||||
),
|
||||
).then((containers) => containers.flat());
|
||||
|
||||
const extractImage = (container: ContainerInfo) => container.Image.split("/").at(-1)?.split(":").at(0) ?? "";
|
||||
const likeQueries = containers.map((container) => like(icons.name, `%${extractImage(container)}%`));
|
||||
const dbIcons =
|
||||
likeQueries.length >= 1
|
||||
? await db.query.icons.findMany({
|
||||
where: or(...likeQueries),
|
||||
})
|
||||
: [];
|
||||
|
||||
return {
|
||||
containers: containers.map((container) => ({
|
||||
...container,
|
||||
iconUrl:
|
||||
dbIcons.find((icon) => {
|
||||
const extractedImage = extractImage(container);
|
||||
if (!extractedImage) return false;
|
||||
return icon.name.toLowerCase().includes(extractedImage.toLowerCase());
|
||||
})?.url ?? null,
|
||||
})),
|
||||
};
|
||||
})
|
||||
.catch((error) => {
|
||||
logger.error(error);
|
||||
return {
|
||||
isError: true,
|
||||
error: error as unknown,
|
||||
};
|
||||
});
|
||||
|
||||
if ("isError" in result) {
|
||||
throw new TRPCError({
|
||||
code: "INTERNAL_SERVER_ERROR",
|
||||
message: "An error occurred while fetching the containers",
|
||||
cause: result.error,
|
||||
});
|
||||
}
|
||||
const innerHandler = dockerContainersRequestHandler.handler({});
|
||||
const result = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false });
|
||||
|
||||
const { data, timestamp } = result;
|
||||
|
||||
return {
|
||||
containers: sanitizeContainers(data.containers),
|
||||
containers: data satisfies DockerContainer[],
|
||||
timestamp,
|
||||
};
|
||||
}),
|
||||
subscribeContainers: permissionRequiredProcedure
|
||||
.requiresPermission("admin")
|
||||
.concat(dockerMiddleware())
|
||||
.subscription(() => {
|
||||
return observable<DockerContainer[]>((emit) => {
|
||||
const innerHandler = dockerContainersRequestHandler.handler({});
|
||||
const unsubscribe = innerHandler.subscribe((data) => {
|
||||
emit.next(data);
|
||||
});
|
||||
|
||||
return unsubscribe;
|
||||
});
|
||||
}),
|
||||
invalidate: permissionRequiredProcedure
|
||||
.requiresPermission("admin")
|
||||
.concat(dockerMiddleware())
|
||||
.mutation(async () => {
|
||||
await dockerCache.invalidateAsync();
|
||||
return;
|
||||
const innerHandler = dockerContainersRequestHandler.handler({});
|
||||
await innerHandler.invalidateAsync();
|
||||
}),
|
||||
startAll: permissionRequiredProcedure
|
||||
.requiresPermission("admin")
|
||||
@@ -98,7 +56,8 @@ export const dockerRouter = createTRPCRouter({
|
||||
}),
|
||||
);
|
||||
|
||||
await dockerCache.invalidateAsync();
|
||||
const innerHandler = dockerContainersRequestHandler.handler({});
|
||||
await innerHandler.invalidateAsync();
|
||||
}),
|
||||
stopAll: permissionRequiredProcedure
|
||||
.requiresPermission("admin")
|
||||
@@ -112,7 +71,8 @@ export const dockerRouter = createTRPCRouter({
|
||||
}),
|
||||
);
|
||||
|
||||
await dockerCache.invalidateAsync();
|
||||
const innerHandler = dockerContainersRequestHandler.handler({});
|
||||
await innerHandler.invalidateAsync();
|
||||
}),
|
||||
restartAll: permissionRequiredProcedure
|
||||
.requiresPermission("admin")
|
||||
@@ -126,7 +86,8 @@ export const dockerRouter = createTRPCRouter({
|
||||
}),
|
||||
);
|
||||
|
||||
await dockerCache.invalidateAsync();
|
||||
const innerHandler = dockerContainersRequestHandler.handler({});
|
||||
await innerHandler.invalidateAsync();
|
||||
}),
|
||||
removeAll: permissionRequiredProcedure
|
||||
.requiresPermission("admin")
|
||||
@@ -140,7 +101,8 @@ export const dockerRouter = createTRPCRouter({
|
||||
}),
|
||||
);
|
||||
|
||||
await dockerCache.invalidateAsync();
|
||||
const innerHandler = dockerContainersRequestHandler.handler({});
|
||||
await innerHandler.invalidateAsync();
|
||||
}),
|
||||
});
|
||||
|
||||
@@ -180,20 +142,6 @@ interface DockerContainer {
|
||||
image: string;
|
||||
ports: Port[];
|
||||
iconUrl: string | null;
|
||||
}
|
||||
|
||||
function sanitizeContainers(
|
||||
containers: (ContainerInfo & { instance: string; iconUrl: string | null })[],
|
||||
): DockerContainer[] {
|
||||
return containers.map((container) => {
|
||||
return {
|
||||
name: container.Names[0]?.split("/")[1] ?? "Unknown",
|
||||
id: container.Id,
|
||||
instance: container.instance,
|
||||
state: container.State as ContainerState,
|
||||
image: container.Image,
|
||||
ports: container.Ports,
|
||||
iconUrl: container.iconUrl,
|
||||
};
|
||||
});
|
||||
cpuUsage: number;
|
||||
memoryUsage: number;
|
||||
}
|
||||
|
||||
@@ -4,14 +4,26 @@ import { describe, expect, test, vi } from "vitest";
|
||||
import type { Session } from "@homarr/auth";
|
||||
import { objectKeys } from "@homarr/common";
|
||||
import type { Database } from "@homarr/db";
|
||||
import { getPermissionsWithChildren } from "@homarr/definitions";
|
||||
import type { GroupPermissionKey } from "@homarr/definitions";
|
||||
import { getPermissionsWithChildren } from "@homarr/definitions";
|
||||
|
||||
import type { RouterInputs } from "../../..";
|
||||
import { dockerRouter } from "../../docker/docker-router";
|
||||
|
||||
// Mock the auth module to return an empty session
|
||||
vi.mock("@homarr/auth", () => ({ auth: () => ({}) as Session }));
|
||||
vi.mock("@homarr/request-handler/docker", () => ({
|
||||
dockerContainersRequestHandler: {
|
||||
handler: () => ({
|
||||
getCachedOrUpdatedDataAsync: async () => {
|
||||
return await Promise.resolve({ containers: [] });
|
||||
},
|
||||
invalidateAsync: async () => {
|
||||
return await Promise.resolve();
|
||||
},
|
||||
}),
|
||||
},
|
||||
}));
|
||||
vi.mock("@homarr/redis", () => ({
|
||||
createCacheChannel: () => ({
|
||||
// eslint-disable-next-line @typescript-eslint/require-await
|
||||
@@ -22,6 +34,7 @@ vi.mock("@homarr/redis", () => ({
|
||||
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
||||
invalidateAsync: async () => {},
|
||||
}),
|
||||
createWidgetOptionsChannel: () => ({}),
|
||||
}));
|
||||
|
||||
vi.mock("@homarr/docker/env", () => ({
|
||||
@@ -46,6 +59,7 @@ const validInputs: {
|
||||
[key in (typeof procedureKeys)[number]]: RouterInputs["docker"][key];
|
||||
} = {
|
||||
getContainers: undefined,
|
||||
subscribeContainers: undefined,
|
||||
startAll: { ids: ["1"] },
|
||||
stopAll: { ids: ["1"] },
|
||||
restartAll: { ids: ["1"] },
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"next-auth": "5.0.0-beta.28",
|
||||
"react": "19.1.0",
|
||||
"react-dom": "19.1.0",
|
||||
"zod": "^3.24.4"
|
||||
"zod": "^3.25.23"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
@@ -47,7 +47,7 @@
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"@types/bcrypt": "5.0.2",
|
||||
"@types/cookies": "0.9.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"prettier": "^3.5.3",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,13 +24,13 @@
|
||||
"dependencies": {
|
||||
"@homarr/common": "workspace:^0.1.0",
|
||||
"@homarr/db": "workspace:^0.1.0",
|
||||
"undici": "7.9.0"
|
||||
"undici": "7.10.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,8 @@
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"esbuild": "^0.25.4",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,15 +33,15 @@
|
||||
"next": "15.3.2",
|
||||
"react": "19.1.0",
|
||||
"react-dom": "19.1.0",
|
||||
"undici": "7.9.0",
|
||||
"zod": "^3.24.4",
|
||||
"zod-validation-error": "^3.4.0"
|
||||
"undici": "7.10.0",
|
||||
"zod": "^3.25.23",
|
||||
"zod-validation-error": "^3.4.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ export const cronJobs = {
|
||||
mediaTranscoding: { preventManualExecution: false },
|
||||
minecraftServerStatus: { preventManualExecution: false },
|
||||
networkController: { preventManualExecution: false },
|
||||
dockerContainers: { preventManualExecution: false },
|
||||
} satisfies Record<JobGroupKeys, { preventManualExecution?: boolean }>;
|
||||
|
||||
/**
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"@types/node-cron": "^3.0.11",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { analyticsJob } from "./jobs/analytics";
|
||||
import { dockerContainersJob } from "./jobs/docker";
|
||||
import { iconsUpdaterJob } from "./jobs/icons-updater";
|
||||
import { dnsHoleJob } from "./jobs/integrations/dns-hole";
|
||||
import { downloadsJob } from "./jobs/integrations/downloads";
|
||||
@@ -35,6 +36,7 @@ export const jobGroup = createCronJobGroup({
|
||||
updateChecker: updateCheckerJob,
|
||||
mediaTranscoding: mediaTranscodingJob,
|
||||
minecraftServerStatus: minecraftServerStatusJob,
|
||||
dockerContainers: dockerContainersJob,
|
||||
networkController: networkControllerJob,
|
||||
});
|
||||
|
||||
|
||||
28
packages/cron-jobs/src/jobs/docker.ts
Normal file
28
packages/cron-jobs/src/jobs/docker.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import SuperJSON from "superjson";
|
||||
|
||||
import { EVERY_MINUTE } from "@homarr/cron-jobs-core/expressions";
|
||||
import { db, eq } from "@homarr/db";
|
||||
import { items } from "@homarr/db/schema";
|
||||
import { logger } from "@homarr/log";
|
||||
import { dockerContainersRequestHandler } from "@homarr/request-handler/docker";
|
||||
|
||||
import type { WidgetComponentProps } from "../../../widgets";
|
||||
import { createCronJob } from "../lib";
|
||||
|
||||
export const dockerContainersJob = createCronJob("dockerContainers", EVERY_MINUTE).withCallback(async () => {
|
||||
const dockerItems = await db.query.items.findMany({
|
||||
where: eq(items.kind, "dockerContainers"),
|
||||
});
|
||||
|
||||
await Promise.allSettled(
|
||||
dockerItems.map(async (item) => {
|
||||
try {
|
||||
const options = SuperJSON.parse<WidgetComponentProps<"dockerContainers">["options"]>(item.options);
|
||||
const innerHandler = dockerContainersRequestHandler.handler(options);
|
||||
await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: true });
|
||||
} catch (error) {
|
||||
logger.error("Failed to update Docker container status", { item, error });
|
||||
}
|
||||
}),
|
||||
);
|
||||
});
|
||||
@@ -46,7 +46,7 @@
|
||||
"@homarr/server-settings": "workspace:^0.1.0",
|
||||
"@mantine/core": "^8.0.1",
|
||||
"@paralleldrive/cuid2": "^2.2.2",
|
||||
"@testcontainers/mysql": "^10.26.0",
|
||||
"@testcontainers/mysql": "^10.28.0",
|
||||
"better-sqlite3": "^11.10.0",
|
||||
"dotenv": "^16.5.0",
|
||||
"drizzle-kit": "^0.31.1",
|
||||
@@ -60,7 +60,8 @@
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"@types/better-sqlite3": "7.6.13",
|
||||
"dotenv-cli": "^8.0.0",
|
||||
"eslint": "^9.26.0",
|
||||
"esbuild": "^0.25.4",
|
||||
"eslint": "^9.27.0",
|
||||
"prettier": "^3.5.3",
|
||||
"tsx": "4.19.4",
|
||||
"typescript": "^5.8.3"
|
||||
|
||||
@@ -25,13 +25,13 @@
|
||||
"dependencies": {
|
||||
"@homarr/common": "workspace:^0.1.0",
|
||||
"fast-xml-parser": "^5.2.3",
|
||||
"zod": "^3.24.4"
|
||||
"zod": "^3.25.23"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"tsx": "4.19.4",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
|
||||
@@ -24,5 +24,6 @@ export const widgetKinds = [
|
||||
"indexerManager",
|
||||
"healthMonitoring",
|
||||
"releases",
|
||||
"dockerContainers",
|
||||
] as const;
|
||||
export type WidgetKind = (typeof widgetKinds)[number];
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
"type": "module",
|
||||
"exports": {
|
||||
".": "./index.ts",
|
||||
"./shared": "./src/shared.ts",
|
||||
"./env": "./src/env.ts"
|
||||
},
|
||||
"typesVersions": {
|
||||
@@ -31,8 +32,8 @@
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"@types/dockerode": "^3.3.38",
|
||||
"eslint": "^9.26.0",
|
||||
"@types/dockerode": "^3.3.39",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
13
packages/docker/src/shared.ts
Normal file
13
packages/docker/src/shared.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import type { MantineColor } from "@mantine/core";
|
||||
|
||||
import type { ContainerState } from ".";
|
||||
|
||||
export const containerStateColorMap = {
|
||||
created: "cyan",
|
||||
running: "green",
|
||||
paused: "yellow",
|
||||
restarting: "orange",
|
||||
exited: "red",
|
||||
removing: "pink",
|
||||
dead: "dark",
|
||||
} satisfies Record<ContainerState, MantineColor>;
|
||||
4
packages/env/package.json
vendored
4
packages/env/package.json
vendored
@@ -24,13 +24,13 @@
|
||||
"prettier": "@homarr/prettier-config",
|
||||
"dependencies": {
|
||||
"@t3-oss/env-nextjs": "^0.13.4",
|
||||
"zod": "^3.24.4"
|
||||
"zod": "^3.25.23"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,13 +27,13 @@
|
||||
"@homarr/translation": "workspace:^0.1.0",
|
||||
"@homarr/validation": "workspace:^0.1.0",
|
||||
"@mantine/form": "^8.0.1",
|
||||
"zod": "^3.24.4"
|
||||
"zod": "^3.25.23"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,13 +31,13 @@
|
||||
"@homarr/validation": "workspace:^0.1.0",
|
||||
"@mantine/core": "^8.0.1",
|
||||
"react": "19.1.0",
|
||||
"zod": "^3.24.4"
|
||||
"zod": "^3.25.23"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,9 +42,9 @@
|
||||
"node-ical": "^0.20.1",
|
||||
"proxmox-api": "1.1.1",
|
||||
"tsdav": "^2.1.4",
|
||||
"undici": "7.9.0",
|
||||
"undici": "7.10.0",
|
||||
"xml2js": "^0.6.2",
|
||||
"zod": "^3.24.4"
|
||||
"zod": "^3.25.23"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
@@ -52,7 +52,7 @@
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"@types/node-unifi": "^2.5.1",
|
||||
"@types/xml2js": "^0.4.14",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,13 +27,13 @@
|
||||
"ioredis": "5.6.1",
|
||||
"superjson": "2.2.2",
|
||||
"winston": "3.17.0",
|
||||
"zod": "^3.24.4"
|
||||
"zod": "^3.25.23"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,18 +34,18 @@
|
||||
"@homarr/ui": "workspace:^0.1.0",
|
||||
"@homarr/validation": "workspace:^0.1.0",
|
||||
"@mantine/core": "^8.0.1",
|
||||
"@tabler/icons-react": "^3.31.0",
|
||||
"@tabler/icons-react": "^3.33.0",
|
||||
"dayjs": "^1.11.13",
|
||||
"next": "15.3.2",
|
||||
"react": "19.1.0",
|
||||
"react-dom": "19.1.0",
|
||||
"zod": "^3.24.4"
|
||||
"zod": "^3.25.23"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,13 +25,13 @@
|
||||
"dependencies": {
|
||||
"@homarr/ui": "workspace:^0.1.0",
|
||||
"@mantine/notifications": "^8.0.1",
|
||||
"@tabler/icons-react": "^3.31.0"
|
||||
"@tabler/icons-react": "^3.33.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"react": "19.1.0",
|
||||
"react-dom": "19.1.0",
|
||||
"superjson": "2.2.2",
|
||||
"zod": "^3.24.4",
|
||||
"zod": "^3.25.23",
|
||||
"zod-form-data": "^2.0.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -52,7 +52,7 @@
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"@types/adm-zip": "0.5.7",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,13 +23,13 @@
|
||||
"prettier": "@homarr/prettier-config",
|
||||
"dependencies": {
|
||||
"@homarr/common": "workspace:^0.1.0",
|
||||
"zod": "^3.24.4"
|
||||
"zod": "^3.25.23"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,14 +30,14 @@
|
||||
"@homarr/log": "workspace:^0.1.0",
|
||||
"@homarr/redis": "workspace:^0.1.0",
|
||||
"dayjs": "^1.11.13",
|
||||
"octokit": "^4.1.3",
|
||||
"octokit": "^5.0.2",
|
||||
"superjson": "2.2.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
80
packages/request-handler/src/docker.ts
Normal file
80
packages/request-handler/src/docker.ts
Normal file
@@ -0,0 +1,80 @@
|
||||
import dayjs from "dayjs";
|
||||
import type { ContainerInfo, ContainerStats } from "dockerode";
|
||||
|
||||
import { db, like, or } from "@homarr/db";
|
||||
import { icons } from "@homarr/db/schema";
|
||||
|
||||
import type { ContainerState } from "../../docker/src";
|
||||
import { DockerSingleton } from "../../docker/src";
|
||||
import { createCachedWidgetRequestHandler } from "./lib/cached-widget-request-handler";
|
||||
|
||||
export const dockerContainersRequestHandler = createCachedWidgetRequestHandler({
|
||||
queryKey: "dockerContainersResult",
|
||||
widgetKind: "dockerContainers",
|
||||
async requestAsync() {
|
||||
const containers = await getContainersWithStatsAsync();
|
||||
|
||||
return containers;
|
||||
},
|
||||
cacheDuration: dayjs.duration(20, "seconds"),
|
||||
});
|
||||
|
||||
const dockerInstances = DockerSingleton.getInstances();
|
||||
|
||||
const extractImage = (container: ContainerInfo) => container.Image.split("/").at(-1)?.split(":").at(0) ?? "";
|
||||
|
||||
async function getContainersWithStatsAsync() {
|
||||
const containers = await Promise.all(
|
||||
dockerInstances.map(async ({ instance, host }) => {
|
||||
const instanceContainers = await instance.listContainers({ all: true });
|
||||
return instanceContainers.map((container) => ({
|
||||
...container,
|
||||
instance: host,
|
||||
}));
|
||||
}),
|
||||
).then((res) => res.flat());
|
||||
|
||||
const likeQueries = containers.map((container) => like(icons.name, `%${extractImage(container)}%`));
|
||||
|
||||
const dbIcons =
|
||||
likeQueries.length > 0
|
||||
? await db.query.icons.findMany({
|
||||
where: or(...likeQueries),
|
||||
})
|
||||
: [];
|
||||
|
||||
const containerStatsPromises = containers.map(async (container) => {
|
||||
const instance = dockerInstances.find(({ host }) => host === container.instance)?.instance;
|
||||
if (!instance) return null;
|
||||
|
||||
const stats = await instance.getContainer(container.Id).stats({ stream: false });
|
||||
|
||||
return {
|
||||
id: container.Id,
|
||||
name: container.Names[0]?.split("/")[1] ?? "Unknown",
|
||||
state: container.State as ContainerState,
|
||||
iconUrl:
|
||||
dbIcons.find((icon) => {
|
||||
const extractedImage = extractImage(container);
|
||||
if (!extractedImage) return false;
|
||||
return icon.name.toLowerCase().includes(extractedImage.toLowerCase());
|
||||
})?.url ?? null,
|
||||
cpuUsage: calculateCpuUsage(stats),
|
||||
memoryUsage: stats.memory_stats.usage,
|
||||
image: container.Image,
|
||||
ports: container.Ports,
|
||||
};
|
||||
});
|
||||
|
||||
return (await Promise.all(containerStatsPromises)).filter((container) => container !== null);
|
||||
}
|
||||
|
||||
function calculateCpuUsage(stats: ContainerStats): number {
|
||||
const cpuDelta = stats.cpu_stats.cpu_usage.total_usage - stats.precpu_stats.cpu_usage.total_usage;
|
||||
const systemDelta = stats.cpu_stats.system_cpu_usage - stats.precpu_stats.system_cpu_usage;
|
||||
const numberOfCpus = stats.cpu_stats.online_cpus || 1;
|
||||
|
||||
if (systemDelta === 0) return 0;
|
||||
|
||||
return (cpuDelta / systemDelta) * numberOfCpus * 100;
|
||||
}
|
||||
@@ -29,7 +29,7 @@
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
"@mantine/core": "^8.0.1",
|
||||
"@mantine/hooks": "^8.0.1",
|
||||
"@mantine/spotlight": "^8.0.1",
|
||||
"@tabler/icons-react": "^3.31.0",
|
||||
"@tabler/icons-react": "^3.33.0",
|
||||
"jotai": "^2.12.4",
|
||||
"next": "15.3.2",
|
||||
"react": "19.1.0",
|
||||
@@ -47,7 +47,7 @@
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "Comprova la connexió i crea",
|
||||
"edit": "Comprova la connexió i desa"
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "El botó \"Desa\" s'habilita quan la connexió s'estableix correctament",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "",
|
||||
"delete": "",
|
||||
"discard": "",
|
||||
"close": "",
|
||||
"confirm": "",
|
||||
"continue": "",
|
||||
"previous": "",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": ""
|
||||
},
|
||||
"certificates": {
|
||||
"label": ""
|
||||
"label": "",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": ""
|
||||
"expires": "",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "测试连接并创建",
|
||||
"edit": "测试连接并保存"
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "成功建立连接后保存按钮将启用",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "取消",
|
||||
"delete": "删除",
|
||||
"discard": "Discard",
|
||||
"close": "",
|
||||
"confirm": "确认",
|
||||
"continue": "继续",
|
||||
"previous": "上一步",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": "日志"
|
||||
},
|
||||
"certificates": {
|
||||
"label": "证书"
|
||||
"label": "证书",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "可信证书",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": "到期时间 {when}"
|
||||
"expires": "到期时间 {when}",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": "无法删除证书"
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "Otestovat připojení a vytvořit",
|
||||
"edit": "Otestovat připojení a uložit"
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Zrušit",
|
||||
"delete": "Odstranit",
|
||||
"discard": "Zahodit",
|
||||
"close": "",
|
||||
"confirm": "Potvrdit",
|
||||
"continue": "Pokračovat",
|
||||
"previous": "Zpět",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": ""
|
||||
},
|
||||
"certificates": {
|
||||
"label": ""
|
||||
"label": "",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": ""
|
||||
"expires": "",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "Test forbindelse og opret",
|
||||
"edit": "Test forbindelse og gem"
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "Gem-knappen er aktiveret, når en vellykket forbindelse er etableret",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Annuller",
|
||||
"delete": "Slet",
|
||||
"discard": "Kassér",
|
||||
"close": "",
|
||||
"confirm": "Bekræft",
|
||||
"continue": "Forsæt",
|
||||
"previous": "Forrige",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": "Logs"
|
||||
},
|
||||
"certificates": {
|
||||
"label": "Certifikater"
|
||||
"label": "Certifikater",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "Betroede certifikater",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": "Udløber {when}"
|
||||
"expires": "Udløber {when}",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": "Certifikatet kunne ikke slettes"
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "Verbindig teste und erstäue",
|
||||
"edit": "Verbinding teste und spichere"
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "Dr Spicherknopf isch aktiv sobald d Verbindig het chönne hergstellt werde",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Abbrechen",
|
||||
"delete": "Löschen",
|
||||
"discard": "Verwerfen",
|
||||
"close": "",
|
||||
"confirm": "Bestätigen",
|
||||
"continue": "Fortfahren",
|
||||
"previous": "Zurück",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": ""
|
||||
},
|
||||
"certificates": {
|
||||
"label": "Zertifikate"
|
||||
"label": "Zertifikate",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "Vertrauenswürdige Zertifikate",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": "Gültig bis {when}"
|
||||
"expires": "Gültig bis {when}",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": "Das Zertifikat konnte nicht entfernt werden"
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -612,15 +612,15 @@
|
||||
"select": {
|
||||
"label": "App auswählen",
|
||||
"notFound": "Keine App gefunden",
|
||||
"search": "",
|
||||
"noResults": "",
|
||||
"action": "",
|
||||
"title": ""
|
||||
"search": "Nach einer App suchen",
|
||||
"noResults": "Keine Ergebnisse",
|
||||
"action": "{app} auswählen",
|
||||
"title": "Wählen Sie eine App, die diesem Board hinzugefügt werden soll"
|
||||
},
|
||||
"create": {
|
||||
"title": "Neue App erstellen",
|
||||
"description": "",
|
||||
"action": ""
|
||||
"description": "Eine neue App erstellen",
|
||||
"action": "App-Erstellung öffnen"
|
||||
},
|
||||
"add": "App hinzufügen"
|
||||
}
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "Verbindung erstellen und testen",
|
||||
"edit": "Verbindung erstellen und speichern"
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": "Fall mit mehr Details"
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "Unbekannter Fehler",
|
||||
"description": "Ein unbekannter Fehler ist aufgetreten, den Fall unten für mehr Details öffnen"
|
||||
},
|
||||
"parse": {
|
||||
"title": "Fehler beim Parsen",
|
||||
"description": "Die Antwort konnte nicht analysiert werden. Bitte stellen Sie sicher, dass die URL auf die Basis-URL des Dienstes zeigt."
|
||||
},
|
||||
"authorization": {
|
||||
"title": "Autorisierungsfehler",
|
||||
"description": "Die Anfrage wurde nicht autorisiert. Bitte überprüfen Sie, ob die Anmeldedaten korrekt sind und Sie diese mit mit den entsprechenden Berechtigungen konfiguriert haben."
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "Antwort Fehler",
|
||||
"description": "Unerwartete {statusCode} ({reason}) Antwort von <url></url>erhalten. Bitte überprüfen Sie, ob die URL auf die Basis-URL der Integration verweist.",
|
||||
"otherDescription": "Unerwartete {statusCode} Antwort von <url></url>erhalten. Bitte stellen Sie sicher, dass die URL auf die Basis-URL der Integration zeigt.",
|
||||
"reason": {
|
||||
"badRequest": "Fehlerhafte Anfrage",
|
||||
"notFound": "Nicht gefunden",
|
||||
"tooManyRequests": "Zu viele Anfragen",
|
||||
"internalServerError": "Interner Serverfehler",
|
||||
"serviceUnavailable": "Dienst nicht verfügbar",
|
||||
"gatewayTimeout": "Gateway-Zeitüberschreitung"
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "Zertifikatfehler",
|
||||
"description": {
|
||||
"expired": "Das Zertifikat ist abgelaufen.",
|
||||
"notYetValid": "Das Zertifikat ist noch nicht gültig.",
|
||||
"untrusted": "Dem Zertifikat wird nicht vertraut.",
|
||||
"hostnameMismatch": "Der Hostname des Zertifikats entspricht nicht der URL."
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "Nicht genügend Berechtigungen",
|
||||
"message": "Sie sind nicht berechtigt Zertifikate zu vertrauen oder hochzuladen. Bitte kontaktieren Sie Ihren Administrator, um das notwendige Root-Zertifikat hochzuladen."
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "Hostname stimmt nicht überein",
|
||||
"message": "Der Hostname im Zertifikat stimmt nicht mit dem Hostnamen überein, mit dem Sie probieren sich zu verbinden. Dies könnte auf ein Sicherheitsrisiko hindeuten, Sie können trotzdem diesem Zertifikat vertrauen."
|
||||
},
|
||||
"extract": {
|
||||
"title": "CA-Zertifikatextraktion fehlgeschlagen",
|
||||
"message": "Nur selbstsignierte Zertifikate ohne Kette können automatisch abgerufen werden. Falls Sie ein selbst signiertes Zertifikat verwenden, stellen Sie bitte sicher, dass Sie das CA-Zertifikat manuell hochladen. Hier finden Sie Anweisungen, wie man das <docsLink></docsLink> macht."
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": "Erstellung wiederholen"
|
||||
},
|
||||
"trust": {
|
||||
"label": "Zertifikat vertrauen"
|
||||
},
|
||||
"upload": {
|
||||
"label": "Zertifikat hochladen"
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "Der Nichtübereinstimmung der Hostnamen zustimmen",
|
||||
"message": "Sind Sie sicher, dass Sie dem Zertifikat mit einer Nichtübereinstimmung des Hostnamens vertrauen möchten?"
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "Vertrauenswürdige Zertifikate",
|
||||
"message": "Hostname zu vertrauenswürdiger Zertifikatsliste hinzugefügt"
|
||||
},
|
||||
"error": {
|
||||
"title": "Ein Fehler ist beim vertrauen des Zertifikats aufgetreten",
|
||||
"message": "Dem Zertifikat mit einer Nichtübereinstimmung des Hostnamens konnte nicht vertraut werden"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "Selbstsigniertem Zertifikat vertrauen",
|
||||
"message": "Sind Sie sicher, dass Sie diesem selbst signierten Zertifikat vertrauen möchten?"
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "Vertrauenswürdige Zertifikate",
|
||||
"message": "Zertifikat zur vertrauenswürdigen Zertifikatsliste hinzugefügt"
|
||||
},
|
||||
"error": {
|
||||
"title": "Ein Fehler ist beim vertrauen des Zertifikats aufgetreten",
|
||||
"message": "Das Zertifikat konnte nicht zur vertrauenswürdigen Zertifikatsliste hinzugefügt werden"
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "Details",
|
||||
"description": "Überprüfen Sie die Zertifikatsinformationen, bevor Sie sich dazu entschließen, ihr zu vertrauen.",
|
||||
"content": {
|
||||
"action": "Inhalt anzeigen",
|
||||
"title": "PEM Zertifikat"
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "Anfrage Fehler",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "Der Server konnte nicht erreicht werden. Dies bedeutet in der Regel, dass der Host offline oder nicht von Ihrem Netzwerk aus erreichbar ist.",
|
||||
"networkUnreachable": "Das Netzwerk ist nicht erreichbar. Bitte überprüfen Sie Ihre Internetverbindung oder die Netzwerkkonfiguration.",
|
||||
"refused": "Der Server hat die Verbindung abgelehnt. Er läuft möglicherweise nicht oder lehnt Anfragen auf dem angegebenen Port ab.",
|
||||
"reset": "Die Verbindung wurde unerwartet vom Server getrennt. Dies kann passieren, wenn der Server instabil ist oder neu gestartet wurde."
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "Die Serveradresse konnte nicht gefunden werden. Bitte überprüfen Sie die URL auf Tippfehler oder ungültige Domainnamen.",
|
||||
"timeout": "Zeitüberschreitung bei der DNS Anfrage. Dies kann ein temporäres Problem sein – bitte versuchen Sie es in ein paar Augenblicken erneut.",
|
||||
"noAnswer": "Der DNS-Server hat keine gültige Antwort zurückgegeben. Die Domain existiert vielleicht, hat jedoch keine gültigen Datensätze."
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "Die Anfrage wurde abgebrochen, bevor sie abgeschlossen werden konnte. Dies könnte auf eine Benutzeraktion oder einen System Timeout zurückzuführen sein.",
|
||||
"timeout": "Die Anfrage zu bearbeiten hat zu lange gedauert, sie ist damit abgelaufen. Überprüfe dein Netzwerk oder versuche es später erneut."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "Der Speichern Button ist verfügbar, sobald eine erfolgreiche Verbindung hergestellt wurde",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -769,8 +895,8 @@
|
||||
"message": "Der Pfad ist vermutlich nicht korrekt"
|
||||
},
|
||||
"tooManyRequests": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
"title": "Zu viele Anfragen innerhalb einer bestimmten Zeit",
|
||||
"message": "Es gab zu viele Anfragen. Sie werden wahrscheinlich vom Zielsystem begrenzt oder abgelehnt"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Abbrechen",
|
||||
"delete": "Löschen",
|
||||
"discard": "Verwerfen",
|
||||
"close": "Schließen",
|
||||
"confirm": "Bestätigen",
|
||||
"continue": "Fortfahren",
|
||||
"previous": "Zurück",
|
||||
@@ -1093,7 +1220,7 @@
|
||||
"label": "Integrationen"
|
||||
},
|
||||
"title": {
|
||||
"label": ""
|
||||
"label": "Titel"
|
||||
},
|
||||
"customCssClasses": {
|
||||
"label": "Benutzerdefinierte CSS Klassen"
|
||||
@@ -1445,76 +1572,76 @@
|
||||
}
|
||||
},
|
||||
"stockPrice": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"name": "Aktienpreis",
|
||||
"description": "Zeigt den aktuellen Aktienkurs einer Firma an",
|
||||
"option": {
|
||||
"stock": {
|
||||
"label": ""
|
||||
"label": "Aktiensymbol"
|
||||
},
|
||||
"timeRange": {
|
||||
"label": "",
|
||||
"label": "Zeitraum",
|
||||
"option": {
|
||||
"1d": {
|
||||
"label": ""
|
||||
"label": "1 Tag"
|
||||
},
|
||||
"5d": {
|
||||
"label": ""
|
||||
"label": "5 Tage"
|
||||
},
|
||||
"1mo": {
|
||||
"label": ""
|
||||
"label": "1 Monat"
|
||||
},
|
||||
"3mo": {
|
||||
"label": ""
|
||||
"label": "3 Monate"
|
||||
},
|
||||
"6mo": {
|
||||
"label": ""
|
||||
"label": "6 Monate"
|
||||
},
|
||||
"ytd": {
|
||||
"label": ""
|
||||
"label": "Bisheriger Jahresverlauf"
|
||||
},
|
||||
"1y": {
|
||||
"label": ""
|
||||
"label": "1 Jahr"
|
||||
},
|
||||
"2y": {
|
||||
"label": ""
|
||||
"label": "2 Jahre"
|
||||
},
|
||||
"5y": {
|
||||
"label": ""
|
||||
"label": "5 Jahre"
|
||||
},
|
||||
"10y": {
|
||||
"label": ""
|
||||
"label": "10 Jahre"
|
||||
},
|
||||
"max": {
|
||||
"label": ""
|
||||
"label": "Max"
|
||||
}
|
||||
}
|
||||
},
|
||||
"timeInterval": {
|
||||
"label": "",
|
||||
"label": "Zeitintervall",
|
||||
"option": {
|
||||
"5m": {
|
||||
"label": ""
|
||||
"label": "5 Minuten"
|
||||
},
|
||||
"15m": {
|
||||
"label": ""
|
||||
"label": "15 Minuten"
|
||||
},
|
||||
"30m": {
|
||||
"label": ""
|
||||
"label": "30 Minuten"
|
||||
},
|
||||
"1h": {
|
||||
"label": ""
|
||||
"label": "1 Stunde"
|
||||
},
|
||||
"1d": {
|
||||
"label": ""
|
||||
"label": "1 Tag"
|
||||
},
|
||||
"5d": {
|
||||
"label": ""
|
||||
"label": "5 Tage"
|
||||
},
|
||||
"1wk": {
|
||||
"label": ""
|
||||
"label": "1 Woche"
|
||||
},
|
||||
"1mo": {
|
||||
"label": ""
|
||||
"label": "1 Monat"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1771,8 +1898,8 @@
|
||||
"description": "Zeige die aktuellen Streams auf deinen Medienservern an",
|
||||
"option": {
|
||||
"showOnlyPlaying": {
|
||||
"label": "",
|
||||
"description": ""
|
||||
"label": "Nur aktuelle Wiedergabe anzeigen",
|
||||
"description": "Diese Einstellung zu deaktivieren wird für Plex nicht funktionieren"
|
||||
}
|
||||
},
|
||||
"items": {
|
||||
@@ -1805,7 +1932,7 @@
|
||||
"label": "Torrent Einträge anzeigen die abgeschlossen wurden"
|
||||
},
|
||||
"showCompletedHttp": {
|
||||
"label": ""
|
||||
"label": "Andere Einträge als abgeschlossen anzeigen"
|
||||
},
|
||||
"activeTorrentThreshold": {
|
||||
"label": "Abgeschlossene Torrents unter diesem Schwellenwert ausblenden (in kiB/s)"
|
||||
@@ -1950,7 +2077,7 @@
|
||||
"approved": "Bestätigt",
|
||||
"declined": "Abgelehnt",
|
||||
"failed": "Fehlgeschlagen",
|
||||
"completed": ""
|
||||
"completed": "Abgeschlossen"
|
||||
},
|
||||
"toBeDetermined": "Noch Festzulegen"
|
||||
},
|
||||
@@ -2054,94 +2181,94 @@
|
||||
}
|
||||
},
|
||||
"releases": {
|
||||
"name": "",
|
||||
"description": "",
|
||||
"name": "Veröffentlichungen",
|
||||
"description": "Zeigt eine Liste der aktuellen Version der angegebenen Repositories mit der angegebenen Version regex an.",
|
||||
"option": {
|
||||
"newReleaseWithin": {
|
||||
"label": "",
|
||||
"description": ""
|
||||
"label": "Neue Version innerhalb",
|
||||
"description": "Anwendungsbeispiel: 1w (1 Woche), 10M (10 Monate). Akzeptierte Einheiten h (Stunden), d (Tage), w (Wochen), M (Monate), y (Jahre). Leer lassen für keine Hervorhebung neuer Releases."
|
||||
},
|
||||
"staleReleaseWithin": {
|
||||
"label": "",
|
||||
"description": ""
|
||||
"label": "Veraltete Version innerhalb",
|
||||
"description": "Anwendungsbeispiel: 1w (1 Woche), 10M (10 Monate). Akzeptierte Einheiten h (Stunden), d (Tage), w (Wochen), M (Monate), y (Jahre). Leer lassen für keine Hervorhebung von veralteten Releases."
|
||||
},
|
||||
"showOnlyHighlighted": {
|
||||
"label": "",
|
||||
"description": ""
|
||||
"label": "Nur markierte anzeigen",
|
||||
"description": "Nur neue oder veraltete Versionen anzeigen. Wie oben beschrieben."
|
||||
},
|
||||
"showDetails": {
|
||||
"label": ""
|
||||
"label": "Details anzeigen"
|
||||
},
|
||||
"topReleases": {
|
||||
"label": "",
|
||||
"description": ""
|
||||
"label": "Top Releases",
|
||||
"description": "Die maximale Anzahl der neuesten Versionen, die angezeigt werden sollen. Null bedeutet kein Limit."
|
||||
},
|
||||
"repositories": {
|
||||
"label": "",
|
||||
"label": "Repositories",
|
||||
"addRRepository": {
|
||||
"label": ""
|
||||
"label": "Repository hinzufügen"
|
||||
},
|
||||
"provider": {
|
||||
"label": ""
|
||||
"label": "Anbieter"
|
||||
},
|
||||
"identifier": {
|
||||
"label": "",
|
||||
"placeholder": ""
|
||||
"label": "Identifier",
|
||||
"placeholder": "Name oder Eigentümer/Name"
|
||||
},
|
||||
"name": {
|
||||
"label": ""
|
||||
"label": "Name"
|
||||
},
|
||||
"versionFilter": {
|
||||
"label": "",
|
||||
"label": "Versionsfilter",
|
||||
"prefix": {
|
||||
"label": ""
|
||||
"label": "Präfix"
|
||||
},
|
||||
"precision": {
|
||||
"label": "",
|
||||
"label": "Präzision",
|
||||
"options": {
|
||||
"none": ""
|
||||
"none": "Keine"
|
||||
}
|
||||
},
|
||||
"suffix": {
|
||||
"label": ""
|
||||
"label": "Suffix"
|
||||
},
|
||||
"regex": {
|
||||
"label": ""
|
||||
"label": "Regulärer Ausdruck"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"label": ""
|
||||
"label": "Bearbeiten"
|
||||
},
|
||||
"editForm": {
|
||||
"title": "",
|
||||
"title": "Repository bearbeiten",
|
||||
"cancel": {
|
||||
"label": ""
|
||||
"label": "Abbrechen"
|
||||
},
|
||||
"confirm": {
|
||||
"label": ""
|
||||
"label": "Bestätigen"
|
||||
}
|
||||
},
|
||||
"example": {
|
||||
"label": ""
|
||||
"label": "Beispiel"
|
||||
},
|
||||
"invalid": ""
|
||||
"invalid": "Ungültige Repository Definition, bitte überprüfen Sie die Werte"
|
||||
}
|
||||
},
|
||||
"not-found": "",
|
||||
"pre-release": "",
|
||||
"archived": "",
|
||||
"forked": "",
|
||||
"starsCount": "",
|
||||
"forksCount": "",
|
||||
"issuesCount": "",
|
||||
"openProjectPage": "",
|
||||
"openReleasePage": "",
|
||||
"releaseDescription": "",
|
||||
"created": "",
|
||||
"not-found": "Nicht gefunden",
|
||||
"pre-release": "Vorveröffentlichung",
|
||||
"archived": "Archiviert",
|
||||
"forked": "Forked",
|
||||
"starsCount": "Sterne",
|
||||
"forksCount": "Ableger",
|
||||
"issuesCount": "Offene Tickets",
|
||||
"openProjectPage": "Projektseite öffnen",
|
||||
"openReleasePage": "Release Seite öffnen",
|
||||
"releaseDescription": "Release Beschreibung",
|
||||
"created": "Erstellt",
|
||||
"error": {
|
||||
"label": "",
|
||||
"label": "Fehler",
|
||||
"options": {
|
||||
"noMatchingVersion": ""
|
||||
"noMatchingVersion": "Keine passende Version gefunden"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -2149,56 +2276,56 @@
|
||||
"option": {},
|
||||
"card": {
|
||||
"vpn": {
|
||||
"countConnected": ""
|
||||
"countConnected": "{count} verbunden"
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"integrationsDisconnected": "",
|
||||
"unknownContentOption": ""
|
||||
"integrationsDisconnected": "Keine Daten verfügbar, alle Integrationen getrennt",
|
||||
"unknownContentOption": "Unbekannte Inhaltsoption für das Widget der Netzwerk Controller Zusammenfassung: "
|
||||
},
|
||||
"name": "",
|
||||
"description": ""
|
||||
"name": "Netzwerk Controller Zusammenfassung",
|
||||
"description": "Zeigt die Zusammenfassung eines Netzwerk Controller (wie UniFi-Controller) an"
|
||||
},
|
||||
"networkControllerStatus": {
|
||||
"card": {
|
||||
"variants": {
|
||||
"wired": {
|
||||
"name": ""
|
||||
"name": "Kabel"
|
||||
},
|
||||
"wifi": {
|
||||
"name": ""
|
||||
"name": "WLAN"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
"label": ""
|
||||
"label": "Benutzer"
|
||||
},
|
||||
"guests": {
|
||||
"label": ""
|
||||
"label": "Gäste"
|
||||
}
|
||||
},
|
||||
"option": {
|
||||
"content": {
|
||||
"option": {
|
||||
"wifi": {
|
||||
"label": ""
|
||||
"label": "WLAN"
|
||||
},
|
||||
"wired": {
|
||||
"label": ""
|
||||
"label": "Kabel"
|
||||
}
|
||||
},
|
||||
"label": ""
|
||||
"label": "Widget Inhalt"
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"integrationsDisconnected": "",
|
||||
"unknownContentOption": ""
|
||||
"integrationsDisconnected": "Keine Daten verfügbar, alle Integrationen getrennt",
|
||||
"unknownContentOption": "Unbekannte Inhaltsoption für das Netzwerkstatus Widget: "
|
||||
},
|
||||
"name": "",
|
||||
"description": ""
|
||||
"name": "Netzwerkstatus",
|
||||
"description": "Angeschlossene Geräte in einem Netzwerk anzeigen"
|
||||
},
|
||||
"networkController": {
|
||||
"error": {
|
||||
"internalServerError": ""
|
||||
"internalServerError": "Fehler beim Abrufen der Netzwerk Controller Zusammenfassung"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -2321,10 +2448,10 @@
|
||||
},
|
||||
"backgroundImageUrl": {
|
||||
"label": "URL des Hintergrundbildes",
|
||||
"placeholder": "",
|
||||
"placeholder": "Tippen, um nach lokale Bilder zu suchen",
|
||||
"group": {
|
||||
"your": "",
|
||||
"other": ""
|
||||
"your": "Ihre Bilder",
|
||||
"other": "Andere Bilder"
|
||||
}
|
||||
},
|
||||
"backgroundImageAttachment": {
|
||||
@@ -2963,7 +3090,7 @@
|
||||
"label": "Medien Transkodierung"
|
||||
},
|
||||
"networkController": {
|
||||
"label": ""
|
||||
"label": "Netzwerk Controller"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": "Logs"
|
||||
},
|
||||
"certificates": {
|
||||
"label": "Zertifikate"
|
||||
"label": "Zertifikate",
|
||||
"hostnames": {
|
||||
"label": "Hostnamen"
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": "Hostname"
|
||||
},
|
||||
"subject": {
|
||||
"label": "Thema"
|
||||
},
|
||||
"issuer": {
|
||||
"label": "Ersteller"
|
||||
},
|
||||
"validFrom": {
|
||||
"label": "Gültig ab"
|
||||
},
|
||||
"validTo": {
|
||||
"label": "Gültig bis"
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": "Seriennummer"
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": "Fingerabdruck"
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "Vertrauenswürdige Zertifikate",
|
||||
@@ -3902,10 +4055,19 @@
|
||||
"title": "Es gibt noch keine Zertifikate"
|
||||
},
|
||||
"invalid": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
"title": "Ungültiges Zertifikat",
|
||||
"description": "Fehler beim Analysieren des Zertifikats"
|
||||
},
|
||||
"expires": "Gültig bis {when}"
|
||||
"expires": "Gültig bis {when}",
|
||||
"toHostnames": "Vertrauenswürdige Hostnamen"
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "Hostnamen der vertrauten Zertifikate",
|
||||
"description": "Einige Zertifikate erlauben es der spezifischen Domäne von Homarr nicht, sie anzufordern. Um diese Einschränkungen zu umgehen werden alle vertrauenswürdigen Hostnamen mit ihrem Zertifikats Fingerabdruck verwendet.",
|
||||
"noResults": {
|
||||
"title": "Noch keine Hostnamen vorhanden"
|
||||
},
|
||||
"toCertificates": "Zertifikate"
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": "Das Zertifikat konnte nicht entfernt werden"
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "Vertrauenswürdigen Hostnamen entfernen",
|
||||
"confirm": "Sind Sie sicher, dass Sie diesen vertrauenswürdigen Hostnamen entfernen wollen? Dies kann dazu führen, dass einige Integrationen nicht mehr funktionieren.",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "Hostname entfernt",
|
||||
"message": "Der Hostname wurde erfolgreich entfernt"
|
||||
},
|
||||
"error": {
|
||||
"title": "Hostname nicht entfernt",
|
||||
"message": "Der Hostname konnte nicht entfernt werden"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "",
|
||||
"edit": ""
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Ακύρωση",
|
||||
"delete": "Διαγραφή",
|
||||
"discard": "",
|
||||
"close": "",
|
||||
"confirm": "Επιβεβαίωση",
|
||||
"continue": "",
|
||||
"previous": "Προηγούμενο",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": ""
|
||||
},
|
||||
"certificates": {
|
||||
"label": ""
|
||||
"label": "",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": ""
|
||||
"expires": "",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "Test the connection and create integration",
|
||||
"edit": "Test the connection and save"
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "The save button is enabled once the connection is successfully established",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"discard": "Discard",
|
||||
"close": "",
|
||||
"confirm": "Confirm",
|
||||
"continue": "Continue",
|
||||
"previous": "Previous",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": ""
|
||||
},
|
||||
"certificates": {
|
||||
"label": ""
|
||||
"label": "",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": ""
|
||||
"expires": "",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1832,6 +1832,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"dockerContainers": {
|
||||
"name": "Docker stats",
|
||||
"description": "Stats of your containers (This widget can only be added with administrator privileges)",
|
||||
"option": {},
|
||||
"error": {
|
||||
"internalServerError": "Failed to fetch containers stats"
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"location": {
|
||||
"query": "City / Postal code",
|
||||
@@ -3091,6 +3099,9 @@
|
||||
},
|
||||
"networkController": {
|
||||
"label": "Network Controller"
|
||||
},
|
||||
"dockerContainers": {
|
||||
"label": "Docker containers"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3154,8 +3165,9 @@
|
||||
"title": "Containers",
|
||||
"table": {
|
||||
"updated": "Updated {when}",
|
||||
"search": "Search {count} containers",
|
||||
"selected": "{selectCount} of {totalCount} containers selected"
|
||||
"search": "Seach {count} containers",
|
||||
"selected": "{selectCount} of {totalCount} containers selected",
|
||||
"footer": "Total {count} containers"
|
||||
},
|
||||
"field": {
|
||||
"name": {
|
||||
@@ -3173,6 +3185,14 @@
|
||||
"dead": "Dead"
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"cpu": {
|
||||
"label": "CPU"
|
||||
},
|
||||
"memory": {
|
||||
"label": "Memory"
|
||||
}
|
||||
},
|
||||
"containerImage": {
|
||||
"label": "Image"
|
||||
},
|
||||
@@ -3181,6 +3201,7 @@
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"title": "Actions",
|
||||
"start": {
|
||||
"label": "Start",
|
||||
"notification": {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"step": {
|
||||
"start": {
|
||||
"title": "Bienvenido a Homarr",
|
||||
"subtitle": "Comencemos con la configuración de tu instancia de Homar.",
|
||||
"subtitle": "Comencemos con la configuración de tu instancia de Homarr.",
|
||||
"description": "Para empezar, por favor, seleccione cómo desea configurar su instancia de Homarr.",
|
||||
"action": {
|
||||
"scratch": "Empezar de cero",
|
||||
@@ -35,7 +35,7 @@
|
||||
}
|
||||
},
|
||||
"summary": {
|
||||
"title": "Importar resumen",
|
||||
"title": "Resumen de importación",
|
||||
"description": "",
|
||||
"action": {
|
||||
"import": "Confirmar la importación y continuar"
|
||||
@@ -160,7 +160,7 @@
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"usernameTaken": "Nombre de usuario ya está ocupado"
|
||||
"usernameTaken": ""
|
||||
},
|
||||
"action": {
|
||||
"login": {
|
||||
@@ -172,7 +172,7 @@
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"title": "Inicio de sesión fallido",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "",
|
||||
"edit": ""
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Cancelar",
|
||||
"delete": "Eliminar",
|
||||
"discard": "",
|
||||
"close": "",
|
||||
"confirm": "Confirmar",
|
||||
"continue": "",
|
||||
"previous": "Anterior",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": ""
|
||||
},
|
||||
"certificates": {
|
||||
"label": ""
|
||||
"label": "",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": ""
|
||||
"expires": "",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "",
|
||||
"edit": ""
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "",
|
||||
"delete": "",
|
||||
"discard": "",
|
||||
"close": "",
|
||||
"confirm": "",
|
||||
"continue": "",
|
||||
"previous": "",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": ""
|
||||
},
|
||||
"certificates": {
|
||||
"label": ""
|
||||
"label": "",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": ""
|
||||
"expires": "",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "Tester la connexion et créer",
|
||||
"edit": "Tester la connexion et enregistrer"
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "Le bouton Enregistrer est activé une fois qu'une connexion est établie avec succès",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Annuler",
|
||||
"delete": "Supprimer",
|
||||
"discard": "Abandonner",
|
||||
"close": "",
|
||||
"confirm": "Confirmer",
|
||||
"continue": "Continuer",
|
||||
"previous": "Précédent",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": "Journaux"
|
||||
},
|
||||
"certificates": {
|
||||
"label": "Certificats"
|
||||
"label": "Certificats",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "Certificats de confiance",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": "Expire le {when}"
|
||||
"expires": "Expire le {when}",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": "Le certificat n'a pas pu être supprimé"
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "בדוק חיבור וצור",
|
||||
"edit": "בדוק את החיבור ושמור"
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": "סיבה עם פרטים נוספים"
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "שגיאה לא ידועה",
|
||||
"description": "אירעה שגיאה לא ידועה, פתח את הסיבה למטה כדי לראות פרטים נוספים"
|
||||
},
|
||||
"parse": {
|
||||
"title": "שגיאת ניתוח",
|
||||
"description": "לא ניתן היה לנתח את התגובה. אנא ודא שכתובת האתר מפנה לכתובת האתר הבסיסית של השירות."
|
||||
},
|
||||
"authorization": {
|
||||
"title": "שגיאת הרשאה",
|
||||
"description": "הבקשה לא אושרה. אנא ודא שהאישורים נכונים ושהוגדרו לך הרשאות מספיקות."
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "שגיאת תגובה",
|
||||
"description": "התקבלה תגובה בלתי צפויה של {statusCode} ({reason}) מ-<url></url>. אנא ודא שכתובת האתר מפנה לכתובת האתר הבסיסית של האינטגרציה.",
|
||||
"otherDescription": "התקבלה תגובה בלתי צפויה של {statusCode} מ-<url></url>. אנא ודא שכתובת האתר מפנה לכתובת האתר הבסיסית של האינטגרציה.",
|
||||
"reason": {
|
||||
"badRequest": "בקשה שגויה",
|
||||
"notFound": "לא נמצא",
|
||||
"tooManyRequests": "בקשות רבות מדי",
|
||||
"internalServerError": "שגיאת שרת פנימית",
|
||||
"serviceUnavailable": "השירות אינו זמין",
|
||||
"gatewayTimeout": "פסק זמן של השער"
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "שגיאת תעודה",
|
||||
"description": {
|
||||
"expired": "פג תוקפה של תעודה זו.",
|
||||
"notYetValid": "התעודה עדיין אינה בתוקף.",
|
||||
"untrusted": "התעודה אינה מהימנה.",
|
||||
"hostnameMismatch": "שם המארח של האישור אינו תואם לכתובת ה-URL."
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "אין מספיק הרשאות",
|
||||
"message": "אינך רשאי לתת אמון באישורים או להעלות אותם. אנא צור קשר עם מנהל המערכת שלך כדי להעלות את אישור הבסיס הדרוש."
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "שם השרת לא תואם",
|
||||
"message": "שם המארח בתעודה אינו תואם לשם המארח שאליו אתה מתחבר. זה יכול להצביע על סיכון אבטחה, אך עדיין תוכל לבחור לתת אמון בתעודה זו."
|
||||
},
|
||||
"extract": {
|
||||
"title": "חילוץ תעודת CA נכשל",
|
||||
"message": "ניתן לאחזר באופן אוטומטי רק אישורים חתומים עצמית ללא שרשרת. אם אתם משתמשים באישור חתום עצמית, אנא ודאו שאתם מעלים את אישור רשות האישור באופן ידני. תוכלו למצוא הוראות כיצד לעשות זאת <docsLink></docsLink>."
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": "נסה ליצור שוב"
|
||||
},
|
||||
"trust": {
|
||||
"label": "תעודה מהימנה"
|
||||
},
|
||||
"upload": {
|
||||
"label": "העלאת תעודת אבטחה"
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "אי התאמה בשם המארח",
|
||||
"message": "האם אתה בטוח שאתה רוצה לסמוך על האישור עם אי התאמה בשם המארח?"
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "תעודה מהימנה",
|
||||
"message": "נוסף שם מארח לרשימת האישורים המהימנים"
|
||||
},
|
||||
"error": {
|
||||
"title": "נכשל בהוספת תעודת אבטחה",
|
||||
"message": "לא ניתן היה לסמוך על האישור עם אי-התאמה בשם המארח"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "תעודת אמון חתומה עצמית",
|
||||
"message": "האם אתה בטוח שאתה רוצה לסמוך על אישור חתום עצמי זה?"
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "תעודה מהימנה",
|
||||
"message": "נוסף שם מארח לרשימת האישורים המהימנים"
|
||||
},
|
||||
"error": {
|
||||
"title": "נכשל בהוספת תעודת אבטחה",
|
||||
"message": "נכשל בהוספת האישור לרשימת האישורים המהימנים"
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "פרטים",
|
||||
"description": "בדוק את פרטי האישור לפני שתחליט לסמוך עליו.",
|
||||
"content": {
|
||||
"action": "הצג תוכן",
|
||||
"title": "תעודת PEM"
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "שגיאת בקשה",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "לא ניתן היה להגיע לשרת. משמעות הדבר בדרך כלל היא שהמארח לא מקוון או שאינו ניתן להשגה מהרשת שלך.",
|
||||
"networkUnreachable": "הרשת אינה נגישה. אנא בדוק את חיבור האינטרנט או את תצורת הרשת שלך.",
|
||||
"refused": "השרת דחה את החיבור. ייתכן שהוא אינו פועל או דוחה בקשות בפורט שצוין.",
|
||||
"reset": "החיבור נסגר באופן בלתי צפוי על ידי השרת. זה יכול לקרות אם השרת אינו יציב או שהופעל מחדש."
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "לא ניתן היה למצוא את כתובת השרת. אנא בדוק את כתובת ה-URL עבור שגיאות הקלדה או שמות דומיין לא חוקיים.",
|
||||
"timeout": "בדיקת DNS הסתיימה. ייתכן שמדובר בבעיה זמנית - אנא נסה שוב בעוד מספר רגעים.",
|
||||
"noAnswer": "שרת ה-DNS לא החזיר תגובה תקפה. ייתכן שהדומיין קיים אך אין לו רשומות תקפות."
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "הבקשה בוטלה לפני שהספיקה להשלים אותה. ייתכן שהדבר נובע מפעולת משתמש או מפסק זמן של המערכת.",
|
||||
"timeout": "הבקשה ארכה זמן רב מדי להשלמה ופג תוקפו. בדוק את הרשת שלך או נסה שוב מאוחר יותר."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "הלחצן שמור מופעל לאחר יצירת חיבור מוצלח",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "בטל",
|
||||
"delete": "מחיקה",
|
||||
"discard": "ביטול",
|
||||
"close": "סגור",
|
||||
"confirm": "לאשר",
|
||||
"continue": "המשך",
|
||||
"previous": "הקודם",
|
||||
@@ -2059,11 +2186,11 @@
|
||||
"option": {
|
||||
"newReleaseWithin": {
|
||||
"label": "מהדורה חדשה בתוך",
|
||||
"description": ""
|
||||
"description": "דוגמת שימוש: שבוע אחד (1), חודש אחד (10 חודשים). סוגי יחידות מקובלים: h (שעות), d (ימים), w (שבועות), M (חודשים), y (שנים). השאר ריק כדי לא להדגיש מהדורות חדשות."
|
||||
},
|
||||
"staleReleaseWithin": {
|
||||
"label": "מהדורה חדשה בתוך",
|
||||
"description": ""
|
||||
"description": "דוגמת שימוש: 1w (שבוע אחד), 10M (10 חודשים). סוגי יחידות מקובלים h (שעות), d (ימים), w (שבועות), M (חודשים), y (שנים). השאר ריק כדי לא להדגיש גרסאות ישנות."
|
||||
},
|
||||
"showOnlyHighlighted": {
|
||||
"label": "הצג רק את המודגשים",
|
||||
@@ -2073,8 +2200,8 @@
|
||||
"label": "הצג פרטים"
|
||||
},
|
||||
"topReleases": {
|
||||
"label": "",
|
||||
"description": ""
|
||||
"label": "מהדורות מובילות",
|
||||
"description": "המספר המרבי של מהדורות אחרונות להצגה. אפס פירושו שאין הגבלה."
|
||||
},
|
||||
"repositories": {
|
||||
"label": "מאגרים",
|
||||
@@ -2089,7 +2216,7 @@
|
||||
"placeholder": "שם או בעלים/שם"
|
||||
},
|
||||
"name": {
|
||||
"label": ""
|
||||
"label": "שם"
|
||||
},
|
||||
"versionFilter": {
|
||||
"label": "מסנן גירסאות",
|
||||
@@ -2139,9 +2266,9 @@
|
||||
"releaseDescription": "תיאור הגרסה",
|
||||
"created": "נוצר",
|
||||
"error": {
|
||||
"label": "",
|
||||
"label": "שגיאה",
|
||||
"options": {
|
||||
"noMatchingVersion": ""
|
||||
"noMatchingVersion": "לא נמצאה גרסה תואמת"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": "קבצי לוג"
|
||||
},
|
||||
"certificates": {
|
||||
"label": "אישורי אבטחה"
|
||||
"label": "אישורי אבטחה",
|
||||
"hostnames": {
|
||||
"label": "שמות מארחים"
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": "שם מארח"
|
||||
},
|
||||
"subject": {
|
||||
"label": "נושא"
|
||||
},
|
||||
"issuer": {
|
||||
"label": "מנפיק"
|
||||
},
|
||||
"validFrom": {
|
||||
"label": "בתוקף מ: "
|
||||
},
|
||||
"validTo": {
|
||||
"label": "בתוקף מ: "
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": "מספר סידורי"
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": "טביעת אצבע"
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "תעודות מהימנות",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "אישור לא חוקי",
|
||||
"description": "נכשל בהוספת תעודת אבטחה"
|
||||
},
|
||||
"expires": "פג ב- {when}"
|
||||
"expires": "פג ב- {when}",
|
||||
"toHostnames": "שמות מארחים מאושרים"
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "שמות מארחים של תעודות מהימנות",
|
||||
"description": "חלק מהאישורים אינם מאפשרים לדומיין הספציפי בו Homarr משתמש לבקש אותם, מסיבה זו כל שמות המארח המהימנים עם טביעות האצבע של האישור שלהם משמשים כדי לעקוף את ההגבלות הללו.",
|
||||
"noResults": {
|
||||
"title": "אין עדיין שמות מארחים"
|
||||
},
|
||||
"toCertificates": "אישורי אבטחה"
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": "לא היה ניתן להסיר את תעודת האבטחה"
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "הסר שם מארח מהימן",
|
||||
"confirm": "האם אתה בטוח שברצונך להסיר את שם המארח המהימן הזה? זה עלול לגרום לחלק מהאינטגרציות להפסיק לפעול.",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "שם המארח הוסר",
|
||||
"message": "שם המארח הוסר בהצלחה"
|
||||
},
|
||||
"error": {
|
||||
"title": "שם המארח לא הוסר",
|
||||
"message": "לא היה ניתן להסיר את שם המארח"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "",
|
||||
"edit": ""
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Otkaži",
|
||||
"delete": "Obriši",
|
||||
"discard": "",
|
||||
"close": "",
|
||||
"confirm": "Potvrdi",
|
||||
"continue": "",
|
||||
"previous": "Prethodno",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": ""
|
||||
},
|
||||
"certificates": {
|
||||
"label": ""
|
||||
"label": "",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": ""
|
||||
"expires": "",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "Tesztelje a kapcsolatot és hozzon létre",
|
||||
"edit": "Tesztelje a kapcsolatot és mentsen"
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "A Mentés gomb a sikeres kapcsolat létrehozása után aktiválódik",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Mégse",
|
||||
"delete": "Törlés",
|
||||
"discard": "Elvetés",
|
||||
"close": "",
|
||||
"confirm": "Megerősít",
|
||||
"continue": "Folytatás",
|
||||
"previous": "Előző",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": ""
|
||||
},
|
||||
"certificates": {
|
||||
"label": ""
|
||||
"label": "",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": ""
|
||||
"expires": "",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "Prova la connessione e crea",
|
||||
"edit": "Prova la connessione e salva"
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "Il pulsante Salva è abilitato una volta stabilita una connessione con successo",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Annulla",
|
||||
"delete": "Elimina",
|
||||
"discard": "",
|
||||
"close": "",
|
||||
"confirm": "Conferma",
|
||||
"continue": "",
|
||||
"previous": "Precedente",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": ""
|
||||
},
|
||||
"certificates": {
|
||||
"label": ""
|
||||
"label": "",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": ""
|
||||
"expires": "",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "",
|
||||
"edit": ""
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "キャンセル",
|
||||
"delete": "削除",
|
||||
"discard": "",
|
||||
"close": "",
|
||||
"confirm": "確認",
|
||||
"continue": "次へ",
|
||||
"previous": "前へ",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": ""
|
||||
},
|
||||
"certificates": {
|
||||
"label": ""
|
||||
"label": "",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": ""
|
||||
"expires": "",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "",
|
||||
"edit": ""
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "취소",
|
||||
"delete": "삭제",
|
||||
"discard": "",
|
||||
"close": "",
|
||||
"confirm": "확인",
|
||||
"continue": "",
|
||||
"previous": "이전",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": ""
|
||||
},
|
||||
"certificates": {
|
||||
"label": ""
|
||||
"label": "",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": ""
|
||||
"expires": "",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "",
|
||||
"edit": ""
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Atšaukti",
|
||||
"delete": "",
|
||||
"discard": "",
|
||||
"close": "",
|
||||
"confirm": "",
|
||||
"continue": "",
|
||||
"previous": "",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": ""
|
||||
},
|
||||
"certificates": {
|
||||
"label": ""
|
||||
"label": "",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": ""
|
||||
"expires": "",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "",
|
||||
"edit": ""
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Atcelt",
|
||||
"delete": "Dzēst",
|
||||
"discard": "",
|
||||
"close": "",
|
||||
"confirm": "Apstipriniet",
|
||||
"continue": "",
|
||||
"previous": "Iepriekšējais",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": ""
|
||||
},
|
||||
"certificates": {
|
||||
"label": ""
|
||||
"label": "",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": ""
|
||||
"expires": "",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -612,17 +612,17 @@
|
||||
"select": {
|
||||
"label": "App selecteren",
|
||||
"notFound": "Geen app gevonden",
|
||||
"search": "",
|
||||
"noResults": "",
|
||||
"action": "",
|
||||
"title": ""
|
||||
"search": "Zoek naar een app",
|
||||
"noResults": "Geen resultaten gevonden voor deze zoekopdracht",
|
||||
"action": "Selecteer {app}",
|
||||
"title": "Selecteer een app om aan dit bord toe te voegen"
|
||||
},
|
||||
"create": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"action": ""
|
||||
"title": "Nieuwe app aanmaken",
|
||||
"description": "Een nieuwe app aanmaken ",
|
||||
"action": "Open app aanmaken"
|
||||
},
|
||||
"add": ""
|
||||
"add": "Een app toevoegen"
|
||||
}
|
||||
},
|
||||
"integration": {
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "Verbinding testen en aanmaken",
|
||||
"edit": "Verbinding testen en opslaan"
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": "Reden met meer details"
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "Onbekende fout",
|
||||
"description": "Er is een onbekende fout opgetreden, open de reden hieronder om meer details te zien"
|
||||
},
|
||||
"parse": {
|
||||
"title": "Parser fout",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "Fout tijdens het aanmelden",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "De opslaan knop wordt ingeschakeld zodra er een succesvolle verbinding tot stand is gebracht",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Annuleren",
|
||||
"delete": "Verwijderen",
|
||||
"discard": "Negeren",
|
||||
"close": "",
|
||||
"confirm": "Bevestigen",
|
||||
"continue": "Doorgaan",
|
||||
"previous": "Vorige",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": "Logs"
|
||||
},
|
||||
"certificates": {
|
||||
"label": "Certificaten"
|
||||
"label": "Certificaten",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "Vertrouwde certificaten",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": "Verloopt {when}"
|
||||
"expires": "Verloopt {when}",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": "Certificaat kon niet worden verwijderd"
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "Test tilkobling og opprett",
|
||||
"edit": "Test tilkobling og lagre"
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "Lagre-knappen er aktivert når en vellykket tilkobling er opprettet",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Avbryt",
|
||||
"delete": "Slett",
|
||||
"discard": "Forkast",
|
||||
"close": "",
|
||||
"confirm": "Bekreft",
|
||||
"continue": "Fortsett",
|
||||
"previous": "Tidligere",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": "Logger"
|
||||
},
|
||||
"certificates": {
|
||||
"label": "Sertifikater"
|
||||
"label": "Sertifikater",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "Betrodde sertifikater",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": "Utløper {when}"
|
||||
"expires": "Utløper {when}",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": "Sertifikatet kunne ikke fjernes"
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "Sprawdź połączenie i utwórz",
|
||||
"edit": "Sprawdź połączenie i zapisz"
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "Przycisk Zapisz jest włączony po nawiązaniu pomyślnego połączenia",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Anuluj",
|
||||
"delete": "Usuń",
|
||||
"discard": "Odrzuć",
|
||||
"close": "",
|
||||
"confirm": "Potwierdź",
|
||||
"continue": "Kontynuuj",
|
||||
"previous": "Poprzedni",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": ""
|
||||
},
|
||||
"certificates": {
|
||||
"label": ""
|
||||
"label": "",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": ""
|
||||
"expires": "",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "",
|
||||
"edit": ""
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Cancelar",
|
||||
"delete": "Apagar",
|
||||
"discard": "",
|
||||
"close": "",
|
||||
"confirm": "Confirme",
|
||||
"continue": "",
|
||||
"previous": "Anterior",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": ""
|
||||
},
|
||||
"certificates": {
|
||||
"label": ""
|
||||
"label": "",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": ""
|
||||
"expires": "",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "",
|
||||
"edit": ""
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Anulează",
|
||||
"delete": "Șterge",
|
||||
"discard": "",
|
||||
"close": "",
|
||||
"confirm": "Confirma",
|
||||
"continue": "",
|
||||
"previous": "Anteriorul",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": ""
|
||||
},
|
||||
"certificates": {
|
||||
"label": ""
|
||||
"label": "",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": ""
|
||||
"expires": "",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "Проверить подключение и создать",
|
||||
"edit": "Проверить подключение и сохранить"
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "Кнопка сохранения станет доступна после успешного подключения",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Отмена",
|
||||
"delete": "Удалить",
|
||||
"discard": "Отменить",
|
||||
"close": "",
|
||||
"confirm": "Подтвердить",
|
||||
"continue": "Продолжить",
|
||||
"previous": "Назад",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": "Логи"
|
||||
},
|
||||
"certificates": {
|
||||
"label": "Сертификаты"
|
||||
"label": "Сертификаты",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "Доверенные сертификаты",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": "Истекает {when}"
|
||||
"expires": "Истекает {when}",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": "Произошла ошибка при удалении сертификата"
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "Otestujte pripojenie a vytvorte",
|
||||
"edit": "Otestujte pripojenie a uložte"
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "Tlačidlo Uložiť sa aktivuje po úspešnom nadviazaní spojenia.",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Zrušiť",
|
||||
"delete": "Vymazať",
|
||||
"discard": "Zahodiť",
|
||||
"close": "",
|
||||
"confirm": "Potvrďte",
|
||||
"continue": "Pokračovať",
|
||||
"previous": "Predchádzajúci",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": "Záznamy"
|
||||
},
|
||||
"certificates": {
|
||||
"label": ""
|
||||
"label": "",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": ""
|
||||
"expires": "",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "",
|
||||
"edit": ""
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Prekliči",
|
||||
"delete": "Izbriši",
|
||||
"discard": "",
|
||||
"close": "",
|
||||
"confirm": "Potrdi",
|
||||
"continue": "",
|
||||
"previous": "Prejšnji",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": ""
|
||||
},
|
||||
"certificates": {
|
||||
"label": ""
|
||||
"label": "",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": ""
|
||||
"expires": "",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "",
|
||||
"edit": ""
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Avbryt",
|
||||
"delete": "Ta bort",
|
||||
"discard": "",
|
||||
"close": "",
|
||||
"confirm": "Bekräfta",
|
||||
"continue": "",
|
||||
"previous": "Föregående",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": ""
|
||||
},
|
||||
"certificates": {
|
||||
"label": ""
|
||||
"label": "",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": ""
|
||||
"expires": "",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "Bağlantıyı test et ve oluştur",
|
||||
"edit": "Bağlantıyı test et ve kaydet"
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": "Daha fazla detay içeren neden"
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "Bilinmeyen hata",
|
||||
"description": "Bilinmeyen bir hata oluştu, daha fazla ayrıntı görmek için aşağıdaki nedeni açın"
|
||||
},
|
||||
"parse": {
|
||||
"title": "Ayrıştırma hatası",
|
||||
"description": "Yanıt ayrıştırılamadı. Lütfen URL'nin hizmetin temel URL’sine yönlendirildiğinden emin olun."
|
||||
},
|
||||
"authorization": {
|
||||
"title": "Yetkilendirme hatası",
|
||||
"description": "İstek yetkilendirilemedi. Lütfen kimlik bilgilerinin doğru olduğunu ve yeterli izinlerle yapılandırıldığını doğrulayın."
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "Yanıt hatası",
|
||||
"description": "<url></url> adresinden beklenmeyen bir {statusCode} ({reason}) yanıtı alındı. Lütfen URL’nin entegrasyon temel URL’sine yönlendirildiğinden emin olun.",
|
||||
"otherDescription": "<url></url> adresinden beklenmeyen {statusCode} yanıtı alındı. Lütfen URL’nin entegrasyonun temel URL’sine yönlendirildiğinden emin olun.",
|
||||
"reason": {
|
||||
"badRequest": "Geçersiz istek",
|
||||
"notFound": "Bulunamadı",
|
||||
"tooManyRequests": "Çok fazla istek",
|
||||
"internalServerError": "Dahili sunucu hatası",
|
||||
"serviceUnavailable": "Hizmet mevcut değil",
|
||||
"gatewayTimeout": "Ağ geçidi zaman aşımı"
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "Sertifika hatası",
|
||||
"description": {
|
||||
"expired": "Sertifikanın süresi doldu.",
|
||||
"notYetValid": "Sertifika henüz geçerli değil.",
|
||||
"untrusted": "Sertifika güvenilir değil.",
|
||||
"hostnameMismatch": "Sertifika ana makine adı URL ile eşleşmiyor."
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "İzinler yetersiz",
|
||||
"message": "Sertifikalara güvenmeniz veya yüklemeniz yasaktır. Lütfen gerekli kök sertifikayı yüklemek için yöneticinizle iletişime geçin."
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "Ana makine adı uyumsuzluğu",
|
||||
"message": "Sertifikadaki ana makine adı, bağlandığınız ana makine adıyla eşleşmiyor. Bu bir güvenlik riski olduğunu gösterebilir, ancak yine de bu sertifikaya güvenmeyi seçebilirsiniz."
|
||||
},
|
||||
"extract": {
|
||||
"title": "CA sertifikası çıkarma işlemi başarısız oldu",
|
||||
"message": "Yalnızca zinciri olmayan kendinden imzalı sertifikalar otomatik olarak alınabilir. Kendinden imzalı bir sertifika kullanıyorsanız, lütfen CA sertifikasını manuel olarak yüklediğinizden emin olun. Bunu nasıl yapacağınızla ilgili talimatları <docsLink></docsLink> adresinde bulabilirsiniz."
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": "Yeniden oluşturmayı deneyin"
|
||||
},
|
||||
"trust": {
|
||||
"label": "Güvenilir sertifika"
|
||||
},
|
||||
"upload": {
|
||||
"label": "Sertifika yükle"
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "Güvenilen ana makine adı uyumsuzluğu",
|
||||
"message": "Ana makine adı uyumsuzluğu olan sertifikaya güvenmek istediğinizden emin misiniz?"
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "Güvenilen sertifika",
|
||||
"message": "Ana makine adı güvenilir sertifika listesine eklendi"
|
||||
},
|
||||
"error": {
|
||||
"title": "Sertifikaya güvenilemedi",
|
||||
"message": "Ana makine adı uyuşmazlığı olan sertifikaya güvenilemedi"
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "Kendinden imzalı sertifikaya güven",
|
||||
"message": "Kendinden imzalı bu sertifikaya güvenmek istediğinizden emin misiniz?"
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "Güvenilen sertifika",
|
||||
"message": "Sertifika güvenilen sertifika listesine eklendi"
|
||||
},
|
||||
"error": {
|
||||
"title": "Sertifikaya güvenilemedi",
|
||||
"message": "Sertifika güvenilen sertifika listesine eklenemedi"
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "Ayrıntılar",
|
||||
"description": "Güvenmeye karar vermeden önce sertifika bilgilerini inceleyin.",
|
||||
"content": {
|
||||
"action": "İçeriği göster",
|
||||
"title": "PEM Sertifikası"
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "İstek hatası",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "Sunucuya ulaşılamadı. Bu genellikle ana makinanın çevrimdışı olduğu veya ağınızdan erişilemediği anlamına gelir.",
|
||||
"networkUnreachable": "Ağa ulaşılamıyor. Lütfen internet bağlantınızı veya ağ yapılandırmanızı kontrol edin.",
|
||||
"refused": "Sunucu bağlantıyı reddetti. Belirtilen portta çalışmıyor olabilir veya istekler reddediliyor olabilir.",
|
||||
"reset": "Bağlantı sunucu tarafından beklenmedik şekilde kapatıldı. Bu, sunucunun dengesiz olması veya yeniden başlatılması durumunda olabilir."
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "Sunucu adresine ulaşılamadı. Lütfen URL’de yazım hatası veya geçersiz bir alan adı olup olmadığını kontrol edin.",
|
||||
"timeout": "DNS sorgusu zaman aşımına uğradı. Bu geçici bir sorun olabilir lütfen kısa bir süre sonra yeniden deneyin.",
|
||||
"noAnswer": "DNS sunucusu geçerli bir yanıt döndürmedi. Alan adı mevcut olabilir ancak geçerli kayıtlara sahip olmayabilir."
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "İstek tamamlanmadan önce iptal edildi. Bunun nedeni kullanıcı müdahalesi veya sistem zaman aşımı olabilir.",
|
||||
"timeout": "İsteğin tamamlanması çok uzun sürdü ve zaman aşımına uğradı. Ağ bağlantınızı kontrol edin veya daha sonra tekrar deneyin."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "Bağlantı başarılı olduğunda Kaydet butonu etkinleştirilir",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Vazgeç",
|
||||
"delete": "Sil",
|
||||
"discard": "Yoksay",
|
||||
"close": "Kapat",
|
||||
"confirm": "Onayla",
|
||||
"continue": "Devam Et",
|
||||
"previous": "Önceki",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": "Günlükler"
|
||||
},
|
||||
"certificates": {
|
||||
"label": "Sertifikalar"
|
||||
"label": "Sertifikalar",
|
||||
"hostnames": {
|
||||
"label": "Ana makine adları"
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": "Sunucu"
|
||||
},
|
||||
"subject": {
|
||||
"label": "Konu"
|
||||
},
|
||||
"issuer": {
|
||||
"label": "Sağlayıcı"
|
||||
},
|
||||
"validFrom": {
|
||||
"label": "Zamanından itibaren"
|
||||
},
|
||||
"validTo": {
|
||||
"label": "Zamanına kadar"
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": "Seri numarası"
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": "Parmak izi"
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "Güvenilen sertifikalar",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "Geçersiz sertifika",
|
||||
"description": "Sertifika çözümlenemedi"
|
||||
},
|
||||
"expires": "{when} süresi doluyor"
|
||||
"expires": "{when} süresi doluyor",
|
||||
"toHostnames": "Güvenilir ana makine adları"
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "Güvenilen sertifika ana makine adları",
|
||||
"description": "Bazı sertifikalar, Homarr’ın kullanmak istediği belirli alan adından istek yapılmasına izin vermemektedir. Bu nedenle, bu kısıtlamaları aşmak için tüm güvenilen ana makineler ve onların sertifika parmak izleri kullanılır.",
|
||||
"noResults": {
|
||||
"title": "Henüz hiçbir ana makine adı yok"
|
||||
},
|
||||
"toCertificates": "Sertifikalar"
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": "Sertifika kaldırılamadı"
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "Güvenilen ana makine adını kaldır",
|
||||
"confirm": "Güvenilen bu ana makine adını kaldırmak istediğinizden emin misiniz? İşlem, bazı entegrasyonların çalışmamasına neden olabilir.",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "Ana makine adı kaldırıldı",
|
||||
"message": "Ana makine adı başarıyla kaldırıldı"
|
||||
},
|
||||
"error": {
|
||||
"title": "Ana makine adı kaldırılmadı",
|
||||
"message": "Ana makine adı kaldırılamadı"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "Перевірити підключення та створити",
|
||||
"edit": "Перевірити підключення та зберегти"
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "Кнопка \"Зберегти\" стане доступною після успішного підключення",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Скасувати",
|
||||
"delete": "Видалити",
|
||||
"discard": "Відмінити",
|
||||
"close": "",
|
||||
"confirm": "Підтвердити",
|
||||
"continue": "Продовжити",
|
||||
"previous": "Попередній",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": "Логи"
|
||||
},
|
||||
"certificates": {
|
||||
"label": "Сертифікати"
|
||||
"label": "Сертифікати",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": ""
|
||||
"expires": "",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": "Не вдалося видалити сертифікат"
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "",
|
||||
"edit": ""
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "Hủy",
|
||||
"delete": "Xóa",
|
||||
"discard": "",
|
||||
"close": "",
|
||||
"confirm": "Xác nhận",
|
||||
"continue": "",
|
||||
"previous": "Trước",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": ""
|
||||
},
|
||||
"certificates": {
|
||||
"label": ""
|
||||
"label": "",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"expires": ""
|
||||
"expires": "",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,132 @@
|
||||
"create": "測試連線並創建",
|
||||
"edit": "測試連線並儲存"
|
||||
},
|
||||
"error": {
|
||||
"common": {
|
||||
"cause": {
|
||||
"title": ""
|
||||
}
|
||||
},
|
||||
"unknown": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"parse": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"authorization": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"statusCode": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"otherDescription": "",
|
||||
"reason": {
|
||||
"badRequest": "",
|
||||
"notFound": "",
|
||||
"tooManyRequests": "",
|
||||
"internalServerError": "",
|
||||
"serviceUnavailable": "",
|
||||
"gatewayTimeout": ""
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"expired": "",
|
||||
"notYetValid": "",
|
||||
"untrusted": "",
|
||||
"hostnameMismatch": ""
|
||||
},
|
||||
"alert": {
|
||||
"permission": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"extract": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"retry": {
|
||||
"label": ""
|
||||
},
|
||||
"trust": {
|
||||
"label": ""
|
||||
},
|
||||
"upload": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"hostnameMismatch": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfSigned": {
|
||||
"confirm": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"content": {
|
||||
"action": "",
|
||||
"title": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"title": "",
|
||||
"description": {
|
||||
"connection": {
|
||||
"hostUnreachable": "",
|
||||
"networkUnreachable": "",
|
||||
"refused": "",
|
||||
"reset": ""
|
||||
},
|
||||
"dns": {
|
||||
"notFound": "",
|
||||
"timeout": "",
|
||||
"noAnswer": ""
|
||||
},
|
||||
"timeout": {
|
||||
"aborted": "",
|
||||
"timeout": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"alertNotice": "成功建立連線後儲存按鈕將啟用",
|
||||
"notification": {
|
||||
"success": {
|
||||
@@ -878,6 +1004,7 @@
|
||||
"cancel": "取消",
|
||||
"delete": "移除",
|
||||
"discard": "丟棄",
|
||||
"close": "",
|
||||
"confirm": "確認",
|
||||
"continue": "繼續",
|
||||
"previous": "上一步",
|
||||
@@ -3496,7 +3623,10 @@
|
||||
"label": "Logs"
|
||||
},
|
||||
"certificates": {
|
||||
"label": "憑證"
|
||||
"label": "憑證",
|
||||
"hostnames": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -3894,6 +4024,29 @@
|
||||
}
|
||||
},
|
||||
"certificate": {
|
||||
"field": {
|
||||
"hostname": {
|
||||
"label": ""
|
||||
},
|
||||
"subject": {
|
||||
"label": ""
|
||||
},
|
||||
"issuer": {
|
||||
"label": ""
|
||||
},
|
||||
"validFrom": {
|
||||
"label": ""
|
||||
},
|
||||
"validTo": {
|
||||
"label": ""
|
||||
},
|
||||
"serialNumber": {
|
||||
"label": ""
|
||||
},
|
||||
"fingerprint": {
|
||||
"label": ""
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"list": {
|
||||
"title": "可信任的憑證",
|
||||
@@ -3905,7 +4058,16 @@
|
||||
"title": "無效的證書",
|
||||
"description": "解析證書失敗"
|
||||
},
|
||||
"expires": "到期 {when}"
|
||||
"expires": "到期 {when}",
|
||||
"toHostnames": ""
|
||||
},
|
||||
"hostnames": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"noResults": {
|
||||
"title": ""
|
||||
},
|
||||
"toCertificates": ""
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
@@ -3935,6 +4097,20 @@
|
||||
"message": "此憑證無法被移除"
|
||||
}
|
||||
}
|
||||
},
|
||||
"removeHostname": {
|
||||
"label": "",
|
||||
"confirm": "",
|
||||
"notification": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
},
|
||||
"error": {
|
||||
"title": "",
|
||||
"message": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
"@mantine/core": "^8.0.1",
|
||||
"@mantine/dates": "^8.0.1",
|
||||
"@mantine/hooks": "^8.0.1",
|
||||
"@tabler/icons-react": "^3.31.0",
|
||||
"@tabler/icons-react": "^3.33.0",
|
||||
"mantine-react-table": "2.0.0-beta.9",
|
||||
"next": "15.3.2",
|
||||
"react": "19.1.0",
|
||||
@@ -43,7 +43,7 @@
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"@types/css-modules": "^1.0.5",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,14 +24,14 @@
|
||||
"dependencies": {
|
||||
"@homarr/definitions": "workspace:^0.1.0",
|
||||
"@homarr/translation": "workspace:^0.1.0",
|
||||
"zod": "^3.24.4",
|
||||
"zod": "^3.25.23",
|
||||
"zod-form-data": "^2.0.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
"@homarr/common": "workspace:^0.1.0",
|
||||
"@homarr/db": "workspace:^0.1.0",
|
||||
"@homarr/definitions": "workspace:^0.1.0",
|
||||
"@homarr/docker": "workspace:^0.1.0",
|
||||
"@homarr/form": "workspace:^0.1.0",
|
||||
"@homarr/forms-collection": "workspace:^0.1.0",
|
||||
"@homarr/integrations": "workspace:^0.1.0",
|
||||
@@ -50,7 +51,7 @@
|
||||
"@mantine/charts": "^8.0.1",
|
||||
"@mantine/core": "^8.0.1",
|
||||
"@mantine/hooks": "^8.0.1",
|
||||
"@tabler/icons-react": "^3.31.0",
|
||||
"@tabler/icons-react": "^3.33.0",
|
||||
"@tiptap/extension-color": "2.12.0",
|
||||
"@tiptap/extension-highlight": "2.12.0",
|
||||
"@tiptap/extension-image": "2.12.0",
|
||||
@@ -75,14 +76,14 @@
|
||||
"react-markdown": "^10.1.0",
|
||||
"recharts": "^2.15.3",
|
||||
"video.js": "^8.22.0",
|
||||
"zod": "^3.24.4"
|
||||
"zod": "^3.25.23"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"@types/video.js": "^7.3.58",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
256
packages/widgets/src/docker/component.tsx
Normal file
256
packages/widgets/src/docker/component.tsx
Normal file
@@ -0,0 +1,256 @@
|
||||
"use client";
|
||||
|
||||
import { useMemo } from "react";
|
||||
import { ActionIcon, Avatar, Badge, Group, Stack, Text, Tooltip } from "@mantine/core";
|
||||
import type { IconProps } from "@tabler/icons-react";
|
||||
import { IconBrandDocker, IconPlayerPlay, IconPlayerStop, IconRotateClockwise } from "@tabler/icons-react";
|
||||
import type { MRT_ColumnDef } from "mantine-react-table";
|
||||
import { MantineReactTable } from "mantine-react-table";
|
||||
|
||||
import type { RouterOutputs } from "@homarr/api";
|
||||
import { clientApi } from "@homarr/api/client";
|
||||
import { humanFileSize, useTimeAgo } from "@homarr/common";
|
||||
import type { ContainerState } from "@homarr/docker";
|
||||
import { containerStateColorMap } from "@homarr/docker/shared";
|
||||
import { showErrorNotification, showSuccessNotification } from "@homarr/notifications";
|
||||
import { useScopedI18n } from "@homarr/translation/client";
|
||||
import { useTranslatedMantineReactTable } from "@homarr/ui/hooks";
|
||||
|
||||
import type { WidgetComponentProps } from "../definition";
|
||||
|
||||
const ContainerStateBadge = ({ state }: { state: ContainerState }) => {
|
||||
const t = useScopedI18n("docker.field.state.option");
|
||||
|
||||
return (
|
||||
<Badge size="xs" radius="sm" variant="light" color={containerStateColorMap[state]}>
|
||||
{t(state)}
|
||||
</Badge>
|
||||
);
|
||||
};
|
||||
|
||||
const memoryUsageColor = (number: number, state: string) => {
|
||||
const mbUsage = number / 1024 / 1024;
|
||||
if (mbUsage === 0 && state !== "running") return "red";
|
||||
if (mbUsage < 128) return "green";
|
||||
if (mbUsage < 256) return "yellow";
|
||||
if (mbUsage < 512) return "orange";
|
||||
return "red";
|
||||
};
|
||||
|
||||
const cpuUsageColor = (number: number, state: string) => {
|
||||
if (number === 0 && state !== "running") return "red";
|
||||
if (number < 40) return "green";
|
||||
if (number < 60) return "yellow";
|
||||
if (number < 90) return "orange";
|
||||
return "red";
|
||||
};
|
||||
|
||||
const safeValue = (value?: number, fallback = 0) => (value !== undefined && !isNaN(value) ? value : fallback);
|
||||
|
||||
const actionIconIconStyle: IconProps["style"] = {
|
||||
height: "var(--ai-icon-size)",
|
||||
width: "var(--ai-icon-size)",
|
||||
};
|
||||
|
||||
const createColumns = (
|
||||
t: ReturnType<typeof useScopedI18n<"docker">>,
|
||||
): MRT_ColumnDef<RouterOutputs["docker"]["getContainers"]["containers"][number]>[] => [
|
||||
{
|
||||
accessorKey: "name",
|
||||
header: t("field.name.label"),
|
||||
Cell({ renderedCellValue, row }) {
|
||||
return (
|
||||
<Group gap="xs" wrap="nowrap">
|
||||
<Avatar variant="outline" radius="md" size={20} src={row.original.iconUrl} />
|
||||
<Text p="0.5" size="sm" style={{ overflow: "hidden", textOverflow: "ellipsis" }}>
|
||||
{renderedCellValue}
|
||||
</Text>
|
||||
</Group>
|
||||
);
|
||||
},
|
||||
},
|
||||
{
|
||||
accessorKey: "state",
|
||||
size: 100,
|
||||
header: t("field.state.label"),
|
||||
Cell({ row }) {
|
||||
return <ContainerStateBadge state={row.original.state} />;
|
||||
},
|
||||
},
|
||||
{
|
||||
accessorKey: "cpuUsage",
|
||||
size: 80,
|
||||
header: t("field.stats.cpu.label"),
|
||||
Cell({ row }) {
|
||||
const cpuUsage = safeValue(row.original.cpuUsage);
|
||||
|
||||
return (
|
||||
<Text size="xs" c={cpuUsageColor(cpuUsage, row.original.state)}>
|
||||
{cpuUsage.toFixed(2)}%
|
||||
</Text>
|
||||
);
|
||||
},
|
||||
},
|
||||
{
|
||||
accessorKey: "memoryUsage",
|
||||
size: 80,
|
||||
header: t("field.stats.memory.label"),
|
||||
Cell({ row }) {
|
||||
const bytesUsage = safeValue(row.original.memoryUsage);
|
||||
|
||||
return (
|
||||
<Text size="xs" c={memoryUsageColor(bytesUsage, row.original.state)}>
|
||||
{humanFileSize(bytesUsage)}
|
||||
</Text>
|
||||
);
|
||||
},
|
||||
},
|
||||
{
|
||||
accessorKey: "actions",
|
||||
size: 80,
|
||||
header: t("action.title"),
|
||||
Cell({ row }) {
|
||||
const utils = clientApi.useUtils();
|
||||
const { mutateAsync: startContainer } = clientApi.docker.startAll.useMutation();
|
||||
const { mutateAsync: stopContainer } = clientApi.docker.stopAll.useMutation();
|
||||
const { mutateAsync: restartContainer } = clientApi.docker.restartAll.useMutation();
|
||||
|
||||
const handleActionAsync = async (action: "start" | "stop" | "restart") => {
|
||||
const mutation = action === "start" ? startContainer : action === "stop" ? stopContainer : restartContainer;
|
||||
|
||||
await mutation(
|
||||
{ ids: [row.original.id] },
|
||||
{
|
||||
async onSettled() {
|
||||
await utils.docker.getContainers.invalidate();
|
||||
},
|
||||
onSuccess() {
|
||||
showSuccessNotification({
|
||||
title: t(`action.${action}.notification.success.title`),
|
||||
message: t(`action.${action}.notification.success.message`),
|
||||
});
|
||||
},
|
||||
onError() {
|
||||
showErrorNotification({
|
||||
title: t(`action.${action}.notification.error.title`),
|
||||
message: t(`action.${action}.notification.error.message`),
|
||||
});
|
||||
},
|
||||
},
|
||||
);
|
||||
};
|
||||
|
||||
return (
|
||||
<Group wrap="nowrap" gap="xs">
|
||||
<Tooltip label={row.original.state === "running" ? t("action.stop.label") : t("action.start.label")}>
|
||||
<ActionIcon
|
||||
variant="subtle"
|
||||
size="xs"
|
||||
radius="100%"
|
||||
onClick={() => handleActionAsync(row.original.state === "running" ? "stop" : "start")}
|
||||
>
|
||||
{row.original.state === "running" ? (
|
||||
<IconPlayerStop style={actionIconIconStyle} />
|
||||
) : (
|
||||
<IconPlayerPlay style={actionIconIconStyle} />
|
||||
)}
|
||||
</ActionIcon>
|
||||
</Tooltip>
|
||||
<Tooltip label={t("action.restart.label")}>
|
||||
<ActionIcon variant="subtle" size="xs" radius="100%" onClick={() => handleActionAsync("restart")}>
|
||||
<IconRotateClockwise style={actionIconIconStyle} />
|
||||
</ActionIcon>
|
||||
</Tooltip>
|
||||
</Group>
|
||||
);
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
export default function DockerWidget({ width }: WidgetComponentProps<"dockerContainers">) {
|
||||
const t = useScopedI18n("docker");
|
||||
const isTiny = width <= 256;
|
||||
|
||||
const utils = clientApi.useUtils();
|
||||
const [{ containers, timestamp }] = clientApi.docker.getContainers.useSuspenseQuery();
|
||||
const relativeTime = useTimeAgo(timestamp);
|
||||
|
||||
clientApi.docker.subscribeContainers.useSubscription(undefined, {
|
||||
onData(data) {
|
||||
utils.docker.getContainers.setData(undefined, { containers: data, timestamp: new Date() });
|
||||
},
|
||||
});
|
||||
|
||||
const totalContainers = containers.length;
|
||||
|
||||
const columns = useMemo(() => createColumns(t), [t]);
|
||||
|
||||
const table = useTranslatedMantineReactTable({
|
||||
columns,
|
||||
data: containers,
|
||||
enablePagination: false,
|
||||
enableTopToolbar: false,
|
||||
enableBottomToolbar: false,
|
||||
enableSorting: false,
|
||||
enableColumnActions: false,
|
||||
enableStickyHeader: false,
|
||||
enableColumnOrdering: false,
|
||||
enableRowSelection: false,
|
||||
enableFullScreenToggle: false,
|
||||
enableGlobalFilter: false,
|
||||
enableDensityToggle: false,
|
||||
enableFilters: false,
|
||||
enableHiding: false,
|
||||
initialState: {
|
||||
density: "xs",
|
||||
},
|
||||
mantinePaperProps: {
|
||||
flex: 1,
|
||||
withBorder: false,
|
||||
shadow: undefined,
|
||||
},
|
||||
mantineTableProps: {
|
||||
className: "docker-widget-table",
|
||||
style: {
|
||||
tableLayout: "fixed",
|
||||
},
|
||||
},
|
||||
mantineTableHeadProps: {
|
||||
fz: "xs",
|
||||
},
|
||||
mantineTableHeadCellProps: {
|
||||
p: 4,
|
||||
},
|
||||
mantineTableBodyCellProps: {
|
||||
p: 4,
|
||||
},
|
||||
mantineTableContainerProps: {
|
||||
style: {
|
||||
height: "100%",
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
return (
|
||||
<Stack gap={0} h="100%" display="flex">
|
||||
<MantineReactTable table={table} />
|
||||
|
||||
{!isTiny && (
|
||||
<Group
|
||||
justify="space-between"
|
||||
style={{
|
||||
borderTop: "0.0625rem solid var(--border-color)",
|
||||
}}
|
||||
p={4}
|
||||
>
|
||||
<Group gap={4}>
|
||||
<IconBrandDocker size={20} />
|
||||
<Text size="sm">{t("table.footer", { count: totalContainers.toString() })}</Text>
|
||||
</Group>
|
||||
|
||||
<Text size="sm">{t("table.updated", { when: relativeTime })}</Text>
|
||||
</Group>
|
||||
)}
|
||||
</Stack>
|
||||
);
|
||||
}
|
||||
17
packages/widgets/src/docker/index.ts
Normal file
17
packages/widgets/src/docker/index.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import { IconBrandDocker, IconServerOff } from "@tabler/icons-react";
|
||||
|
||||
import { createWidgetDefinition } from "../definition";
|
||||
import { optionsBuilder } from "../options";
|
||||
|
||||
export const { definition, componentLoader } = createWidgetDefinition("dockerContainers", {
|
||||
icon: IconBrandDocker,
|
||||
createOptions() {
|
||||
return optionsBuilder.from(() => ({}));
|
||||
},
|
||||
errors: {
|
||||
INTERNAL_SERVER_ERROR: {
|
||||
icon: IconServerOff,
|
||||
message: (t) => t("widget.dockerContainers.error.internalServerError"),
|
||||
},
|
||||
},
|
||||
}).withDynamicImport(() => import("./component"));
|
||||
@@ -6,7 +6,7 @@ import { translateIfNecessary } from "@homarr/translation";
|
||||
import { useI18n } from "@homarr/translation/client";
|
||||
import type { TablerIcon } from "@homarr/ui";
|
||||
|
||||
interface BaseWidgetErrorProps {
|
||||
export interface BaseWidgetErrorProps {
|
||||
icon: TablerIcon;
|
||||
message: stringOrTranslation;
|
||||
showLogsLink?: boolean;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useMemo } from "react";
|
||||
import { IconExclamationCircle } from "@tabler/icons-react";
|
||||
import { IconExclamationCircle, IconShield } from "@tabler/icons-react";
|
||||
import { TRPCClientError } from "@trpc/client";
|
||||
import type { DefaultErrorData } from "@trpc/server/unstable-core-do-not-import";
|
||||
|
||||
@@ -8,6 +8,7 @@ import type { WidgetKind } from "@homarr/definitions";
|
||||
import type { WidgetDefinition } from "..";
|
||||
import { widgetImports } from "..";
|
||||
import { ErrorBoundaryError } from "./base";
|
||||
import type { BaseWidgetErrorProps } from "./base-component";
|
||||
import { BaseWidgetError } from "./base-component";
|
||||
|
||||
interface WidgetErrorProps {
|
||||
@@ -23,28 +24,58 @@ export const WidgetError = ({ error, resetErrorBoundary, kind }: WidgetErrorProp
|
||||
return <BaseWidgetError {...error.getErrorBoundaryData()} onRetry={resetErrorBoundary} />;
|
||||
}
|
||||
|
||||
const commonFallbackError = (
|
||||
const widgetTrpcErrorData = handleWidgetTrpcError(error, currentDefinition);
|
||||
if (widgetTrpcErrorData) {
|
||||
return <BaseWidgetError {...widgetTrpcErrorData} onRetry={resetErrorBoundary} />;
|
||||
}
|
||||
|
||||
const trpcErrorData = handleCommonTrpcError(error);
|
||||
if (trpcErrorData) {
|
||||
return <BaseWidgetError {...trpcErrorData} onRetry={resetErrorBoundary} />;
|
||||
}
|
||||
|
||||
return (
|
||||
<BaseWidgetError
|
||||
icon={IconExclamationCircle}
|
||||
message={(error as { toString: () => string }).toString()}
|
||||
onRetry={resetErrorBoundary}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
if (error instanceof TRPCClientError && "code" in error.data) {
|
||||
const errorData = error.data as DefaultErrorData;
|
||||
const handleWidgetTrpcError = (
|
||||
error: unknown,
|
||||
currentDefinition: WidgetDefinition,
|
||||
): Omit<BaseWidgetErrorProps, "onRetry"> | null => {
|
||||
if (!(error instanceof TRPCClientError && "code" in error.data)) return null;
|
||||
|
||||
if (!("errors" in currentDefinition)) return commonFallbackError;
|
||||
const errorData = error.data as DefaultErrorData;
|
||||
|
||||
const errors: Exclude<WidgetDefinition["errors"], undefined> = currentDefinition.errors;
|
||||
const errorDefinition = errors[errorData.code];
|
||||
if (!("errors" in currentDefinition) || currentDefinition.errors === undefined) return null;
|
||||
|
||||
if (!errorDefinition) return commonFallbackError;
|
||||
const errors: Exclude<WidgetDefinition["errors"], undefined> = currentDefinition.errors;
|
||||
const errorDefinition = errors[errorData.code];
|
||||
|
||||
return (
|
||||
<BaseWidgetError {...errorDefinition} onRetry={resetErrorBoundary} showLogsLink={!errorDefinition.hideLogsLink} />
|
||||
);
|
||||
if (!errorDefinition) return null;
|
||||
|
||||
return {
|
||||
...errorDefinition,
|
||||
showLogsLink: !errorDefinition.hideLogsLink,
|
||||
};
|
||||
};
|
||||
|
||||
const handleCommonTrpcError = (error: unknown): Omit<BaseWidgetErrorProps, "onRetry"> | null => {
|
||||
if (!(error instanceof TRPCClientError && "code" in error.data)) return null;
|
||||
|
||||
const errorData = error.data as DefaultErrorData;
|
||||
|
||||
if (errorData.code === "UNAUTHORIZED" || errorData.code === "FORBIDDEN") {
|
||||
return {
|
||||
icon: IconShield,
|
||||
message: "You don't have permission to access this widget",
|
||||
showLogsLink: false,
|
||||
};
|
||||
}
|
||||
|
||||
return commonFallbackError;
|
||||
return null;
|
||||
};
|
||||
|
||||
@@ -14,6 +14,7 @@ import * as clock from "./clock";
|
||||
import type { WidgetComponentProps } from "./definition";
|
||||
import * as dnsHoleControls from "./dns-hole/controls";
|
||||
import * as dnsHoleSummary from "./dns-hole/summary";
|
||||
import * as dockerContainers from "./docker";
|
||||
import * as downloads from "./downloads";
|
||||
import * as healthMonitoring from "./health-monitoring";
|
||||
import * as iframe from "./iframe";
|
||||
@@ -64,6 +65,7 @@ export const widgetImports = {
|
||||
healthMonitoring,
|
||||
mediaTranscoding,
|
||||
minecraftServerStatus,
|
||||
dockerContainers,
|
||||
releases,
|
||||
} satisfies WidgetImportRecord;
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ export default function ReleasesWidget({ options }: WidgetComponentProps<"releas
|
||||
);
|
||||
|
||||
return (
|
||||
<Stack gap={0}>
|
||||
<Stack gap={0} className="releases">
|
||||
{repositories.map((repository: ReleasesRepositoryResponse) => {
|
||||
const isActive =
|
||||
expandedRepository.providerKey === repository.providerKey &&
|
||||
@@ -139,17 +139,23 @@ export default function ReleasesWidget({ options }: WidgetComponentProps<"releas
|
||||
return (
|
||||
<Stack
|
||||
key={`${repository.providerKey}.${repository.identifier}`}
|
||||
className={classes.releasesRepository}
|
||||
className={combineClasses(
|
||||
"releases-repository",
|
||||
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
||||
`releases-repository-${repository.providerKey}-${repository.name || repository.identifier.replace(/[^a-zA-Z0-9]/g, "_")}`,
|
||||
classes.releasesRepository,
|
||||
)}
|
||||
gap={0}
|
||||
>
|
||||
<Group
|
||||
className={combineClasses(classes.releasesRepositoryHeader, {
|
||||
className={combineClasses("releases-repository-header", classes.releasesRepositoryHeader, {
|
||||
[classes.active ?? ""]: isActive,
|
||||
})}
|
||||
p="xs"
|
||||
onClick={() => toggleExpandedRepository(repository)}
|
||||
>
|
||||
<MaskedOrNormalImage
|
||||
className="releases-repository-header-icon"
|
||||
imageUrl={repository.iconUrl ?? Providers[repository.providerKey]?.iconUrl}
|
||||
hasColor={hasIconColor}
|
||||
style={{
|
||||
@@ -158,24 +164,40 @@ export default function ReleasesWidget({ options }: WidgetComponentProps<"releas
|
||||
}}
|
||||
/>
|
||||
|
||||
<Group gap={5} justify="space-between" style={{ flex: 1 }}>
|
||||
{/* eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing */}
|
||||
<Text size="xs">{repository.name || repository.identifier}</Text>
|
||||
<Group
|
||||
className="releases-repository-header-nameVersion-wrapper"
|
||||
gap={5}
|
||||
justify="space-between"
|
||||
style={{ flex: 1 }}
|
||||
>
|
||||
<Text className="releases-repository-header-name" size="xs">
|
||||
{/* eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing */}
|
||||
{repository.name || repository.identifier}
|
||||
</Text>
|
||||
|
||||
<Tooltip
|
||||
className="releases-repository-header-version-tooltip"
|
||||
withArrow
|
||||
arrowSize={5}
|
||||
label={repository.latestRelease}
|
||||
events={{ hover: repository.latestRelease !== undefined, focus: false, touch: false }}
|
||||
>
|
||||
<Text size="xs" fw={700} truncate="end" c={hasError ? "red" : "text"} style={{ flexShrink: 1 }}>
|
||||
<Text
|
||||
className="releases-repository-header-version"
|
||||
size="xs"
|
||||
fw={700}
|
||||
truncate="end"
|
||||
c={hasError ? "red" : "text"}
|
||||
style={{ flexShrink: 1 }}
|
||||
>
|
||||
{hasError ? t("error.label") : (repository.latestRelease ?? t("not-found"))}
|
||||
</Text>
|
||||
</Tooltip>
|
||||
</Group>
|
||||
|
||||
<Group gap={5}>
|
||||
<Group className="releases-repository-header-releaseDate-wrapper" gap={5}>
|
||||
<Text
|
||||
className="releases-repository-header-releaseDate"
|
||||
size="xs"
|
||||
c={repository.isNewRelease ? "primaryColor" : repository.isStaleRelease ? "secondaryColor" : "dimmed"}
|
||||
>
|
||||
@@ -189,6 +211,7 @@ export default function ReleasesWidget({ options }: WidgetComponentProps<"releas
|
||||
{!hasError ? (
|
||||
(repository.isNewRelease || repository.isStaleRelease) && (
|
||||
<IconCircleFilled
|
||||
className="releases-repository-header-releaseDate-marker"
|
||||
size={10}
|
||||
color={
|
||||
repository.isNewRelease
|
||||
@@ -198,7 +221,11 @@ export default function ReleasesWidget({ options }: WidgetComponentProps<"releas
|
||||
/>
|
||||
)
|
||||
) : (
|
||||
<IconTriangleFilled size={10} color={"var(--mantine-color-red-filled)"} />
|
||||
<IconTriangleFilled
|
||||
className="releases-repository-header-releaseDate-error"
|
||||
size={10}
|
||||
color={"var(--mantine-color-red-filled)"}
|
||||
/>
|
||||
)}
|
||||
</Group>
|
||||
</Group>
|
||||
@@ -206,7 +233,7 @@ export default function ReleasesWidget({ options }: WidgetComponentProps<"releas
|
||||
<DetailsDisplay repository={repository} toggleExpandedRepository={toggleExpandedRepository} />
|
||||
)}
|
||||
{isActive && <ExpandedDisplay repository={repository} hasIconColor={hasIconColor} />}
|
||||
<Divider />
|
||||
<Divider className="releases-repository-divider" />
|
||||
</Stack>
|
||||
);
|
||||
})}
|
||||
@@ -225,16 +252,28 @@ const DetailsDisplay = ({ repository, toggleExpandedRepository }: DetailsDisplay
|
||||
|
||||
return (
|
||||
<>
|
||||
<Divider onClick={() => toggleExpandedRepository(repository)} />
|
||||
<Divider className="releases-repository-details-divider" onClick={() => toggleExpandedRepository(repository)} />
|
||||
<Group
|
||||
className={classes.releasesRepositoryDetails}
|
||||
className={combineClasses("releases-repository-details", classes.releasesRepositoryDetails)}
|
||||
justify="space-between"
|
||||
p={5}
|
||||
onClick={() => toggleExpandedRepository(repository)}
|
||||
>
|
||||
<Group>
|
||||
<Tooltip label={t("pre-release")} withArrow arrowSize={5}>
|
||||
<Group className="releases-repository-details-icon-wrapper">
|
||||
<Tooltip
|
||||
className={combineClasses(
|
||||
"releases-repository-details-icon-tooltip",
|
||||
"releases-repository-details-icon-preRelease-tooltip",
|
||||
)}
|
||||
label={t("pre-release")}
|
||||
withArrow
|
||||
arrowSize={5}
|
||||
>
|
||||
<IconProgressCheck
|
||||
className={combineClasses(
|
||||
"releases-repository-details-icon",
|
||||
"releases-repository-details-icon-preRelease",
|
||||
)}
|
||||
size={13}
|
||||
color={
|
||||
repository.isPreRelease ? "var(--mantine-color-secondaryColor-text)" : "var(--mantine-color-dimmed)"
|
||||
@@ -242,28 +281,74 @@ const DetailsDisplay = ({ repository, toggleExpandedRepository }: DetailsDisplay
|
||||
/>
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip label={t("archived")} withArrow arrowSize={5}>
|
||||
<Tooltip
|
||||
className={combineClasses(
|
||||
"releases-repository-details-icon-tooltip",
|
||||
"releases-repository-details-icon-archived-tooltip",
|
||||
)}
|
||||
label={t("archived")}
|
||||
withArrow
|
||||
arrowSize={5}
|
||||
>
|
||||
<IconArchive
|
||||
className={combineClasses(
|
||||
"releases-repository-details-icon",
|
||||
"releases-repository-details-icon-archived",
|
||||
)}
|
||||
size={13}
|
||||
color={repository.isArchived ? "var(--mantine-color-secondaryColor-text)" : "var(--mantine-color-dimmed)"}
|
||||
/>
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip label={t("forked")} withArrow arrowSize={5}>
|
||||
<Tooltip
|
||||
className={combineClasses(
|
||||
"releases-repository-details-icon-tooltip",
|
||||
"releases-repository-details-icon-forked-tooltip",
|
||||
)}
|
||||
label={t("forked")}
|
||||
withArrow
|
||||
arrowSize={5}
|
||||
>
|
||||
<IconGitFork
|
||||
className={combineClasses("releases-repository-details-icon", "releases-repository-details-icon-forked")}
|
||||
size={13}
|
||||
color={repository.isFork ? "var(--mantine-color-secondaryColor-text)" : "var(--mantine-color-dimmed)"}
|
||||
/>
|
||||
</Tooltip>
|
||||
</Group>
|
||||
<Group>
|
||||
<Tooltip label={t("starsCount")} withArrow arrowSize={5}>
|
||||
<Group gap={5}>
|
||||
<Group className="releases-repository-details-stats">
|
||||
<Tooltip
|
||||
className={combineClasses(
|
||||
"releases-repository-details-stats-tooltip",
|
||||
"releases-repository-details-stats-stars-tooltip",
|
||||
)}
|
||||
label={t("starsCount")}
|
||||
withArrow
|
||||
arrowSize={5}
|
||||
>
|
||||
<Group
|
||||
className={combineClasses(
|
||||
"releases-repository-details-stats-wrapper",
|
||||
"releases-repository-details-stats-stars-wrapper",
|
||||
)}
|
||||
gap={5}
|
||||
>
|
||||
<IconStar
|
||||
className={combineClasses(
|
||||
"releases-repository-details-stats-icon",
|
||||
"releases-repository-details-stats-stars-icon",
|
||||
)}
|
||||
size={12}
|
||||
color={!repository.starsCount ? "var(--mantine-color-dimmed)" : "var(--mantine-color-text)"}
|
||||
/>
|
||||
<Text size="xs" c={!repository.starsCount ? "dimmed" : ""}>
|
||||
<Text
|
||||
className={combineClasses(
|
||||
"releases-repository-details-stats-text",
|
||||
"releases-repository-details-stats-stars-text",
|
||||
)}
|
||||
size="xs"
|
||||
c={!repository.starsCount ? "dimmed" : ""}
|
||||
>
|
||||
{!repository.starsCount
|
||||
? "-"
|
||||
: formatter.number(repository.starsCount, {
|
||||
@@ -274,13 +359,38 @@ const DetailsDisplay = ({ repository, toggleExpandedRepository }: DetailsDisplay
|
||||
</Group>
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip label={t("forksCount")} withArrow arrowSize={5}>
|
||||
<Group gap={5}>
|
||||
<Tooltip
|
||||
className={combineClasses(
|
||||
"releases-repository-details-stats-tooltip",
|
||||
"releases-repository-details-stats-forks-tooltip",
|
||||
)}
|
||||
label={t("forksCount")}
|
||||
withArrow
|
||||
arrowSize={5}
|
||||
>
|
||||
<Group
|
||||
className={combineClasses(
|
||||
"releases-repository-details-stats-wrapper",
|
||||
"releases-repository-details-stats-forks-wrapper",
|
||||
)}
|
||||
gap={5}
|
||||
>
|
||||
<IconGitFork
|
||||
className={combineClasses(
|
||||
"releases-repository-details-stats-icon",
|
||||
"releases-repository-details-stats-forks-icon",
|
||||
)}
|
||||
size={12}
|
||||
color={!repository.forksCount ? "var(--mantine-color-dimmed)" : "var(--mantine-color-text)"}
|
||||
/>
|
||||
<Text size="xs" c={!repository.forksCount ? "dimmed" : ""}>
|
||||
<Text
|
||||
className={combineClasses(
|
||||
"releases-repository-details-stats-text",
|
||||
"releases-repository-details-stats-forks-text",
|
||||
)}
|
||||
size="xs"
|
||||
c={!repository.forksCount ? "dimmed" : ""}
|
||||
>
|
||||
{!repository.forksCount
|
||||
? "-"
|
||||
: formatter.number(repository.forksCount, {
|
||||
@@ -291,13 +401,38 @@ const DetailsDisplay = ({ repository, toggleExpandedRepository }: DetailsDisplay
|
||||
</Group>
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip label={t("issuesCount")} withArrow arrowSize={5}>
|
||||
<Group gap={5}>
|
||||
<Tooltip
|
||||
className={combineClasses(
|
||||
"releases-repository-details-stats-tooltip",
|
||||
"releases-repository-details-stats-issues-tooltip",
|
||||
)}
|
||||
label={t("issuesCount")}
|
||||
withArrow
|
||||
arrowSize={5}
|
||||
>
|
||||
<Group
|
||||
className={combineClasses(
|
||||
"releases-repository-details-stats-wrapper",
|
||||
"releases-repository-details-stats-issues-wrapper",
|
||||
)}
|
||||
gap={5}
|
||||
>
|
||||
<IconCircleDot
|
||||
className={combineClasses(
|
||||
"releases-repository-details-stats-icon",
|
||||
"releases-repository-details-stats-issues-icon",
|
||||
)}
|
||||
size={12}
|
||||
color={!repository.openIssues ? "var(--mantine-color-dimmed)" : "var(--mantine-color-text)"}
|
||||
/>
|
||||
<Text size="xs" c={!repository.openIssues ? "dimmed" : ""}>
|
||||
<Text
|
||||
className={combineClasses(
|
||||
"releases-repository-details-stats-text",
|
||||
"releases-repository-details-stats-issues-text",
|
||||
)}
|
||||
size="xs"
|
||||
c={!repository.openIssues ? "dimmed" : ""}
|
||||
>
|
||||
{!repository.openIssues
|
||||
? "-"
|
||||
: formatter.number(repository.openIssues, {
|
||||
@@ -325,11 +460,20 @@ const ExpandedDisplay = ({ repository, hasIconColor }: ExtendedDisplayProps) =>
|
||||
|
||||
return (
|
||||
<>
|
||||
<Divider mx={5} />
|
||||
<Stack className={classes.releasesRepositoryExpanded} gap={0} p={10}>
|
||||
<Group justify="space-between" align="center">
|
||||
<Group gap={5} align="center">
|
||||
<Divider className="releases-repository-expanded-divider" mx={5} />
|
||||
<Stack
|
||||
className={combineClasses("releases-repository-expanded", classes.releasesRepositoryExpanded)}
|
||||
gap="xs"
|
||||
p={10}
|
||||
>
|
||||
<Group className="releases-repository-expanded-header" justify="space-between" align="center" gap="xs">
|
||||
<Text className="releases-repository-expanded-header-identifier" size="xs" c="iconColor" ff="monospace">
|
||||
{repository.identifier}
|
||||
</Text>
|
||||
|
||||
<Group className="releases-repository-expanded-header-provider-wrapper" gap={5} align="center">
|
||||
<MaskedOrNormalImage
|
||||
className="releases-repository-expanded-header-provider-icon"
|
||||
imageUrl={Providers[repository.providerKey]?.iconUrl}
|
||||
hasColor={hasIconColor}
|
||||
style={{
|
||||
@@ -337,61 +481,72 @@ const ExpandedDisplay = ({ repository, hasIconColor }: ExtendedDisplayProps) =>
|
||||
aspectRatio: "1/1",
|
||||
}}
|
||||
/>
|
||||
<Text size="xs" c="iconColor" ff="monospace">
|
||||
<Text className="releases-repository-expanded-header-provider-name" size="xs" c="iconColor" ff="monospace">
|
||||
{Providers[repository.providerKey]?.name}
|
||||
</Text>
|
||||
</Group>
|
||||
{repository.createdAt && (
|
||||
<Text size="xs" c="dimmed" ff="monospace">
|
||||
<Text span>{t("created")}</Text>
|
||||
<Text span> | </Text>
|
||||
<Text span fw={700}>
|
||||
{formatter.relativeTime(repository.createdAt, {
|
||||
now,
|
||||
style: "narrow",
|
||||
})}
|
||||
</Text>
|
||||
</Text>
|
||||
)}
|
||||
</Group>
|
||||
|
||||
<Text size="xs" c="iconColor" ff="monospace">
|
||||
{repository.identifier}
|
||||
</Text>
|
||||
|
||||
{repository.createdAt && (
|
||||
<Text className="releases-repository-expanded-createdAt" size="xs" c="dimmed" ff="monospace">
|
||||
<Text className="releases-repository-expanded-createdAt-label" span>
|
||||
{`${t("created")} | `}
|
||||
</Text>
|
||||
<Text className="releases-repository-expanded-createdAt-date" span fw={700}>
|
||||
{formatter.relativeTime(repository.createdAt, {
|
||||
now,
|
||||
style: "narrow",
|
||||
})}
|
||||
</Text>
|
||||
</Text>
|
||||
)}
|
||||
{(repository.releaseUrl ?? repository.projectUrl) && (
|
||||
<>
|
||||
<Divider my={10} mx="30%" />
|
||||
<Divider className="releases-repository-expanded-openButton-divider" mx="30%" />
|
||||
<Button
|
||||
className="releases-repository-expanded-openButton"
|
||||
variant="light"
|
||||
component="a"
|
||||
href={repository.releaseUrl ?? repository.projectUrl}
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
<IconExternalLink />
|
||||
{repository.releaseUrl ? t("openReleasePage") : t("openProjectPage")}
|
||||
<IconExternalLink className="releases-repository-expanded-openButton-icon" />
|
||||
<Text className="releases-repository-expanded-openButton-text">
|
||||
{repository.releaseUrl ? t("openReleasePage") : t("openProjectPage")}
|
||||
</Text>
|
||||
</Button>
|
||||
</>
|
||||
)}
|
||||
{repository.error && (
|
||||
<>
|
||||
<Divider my={10} mx="30%" />
|
||||
<Title order={4} ta="center">
|
||||
<Divider className="releases-repository-expanded-error-divider" mx="30%" />
|
||||
<Title className="releases-repository-expanded-error-title" order={4} ta="center">
|
||||
{t("error.label")}
|
||||
</Title>
|
||||
<Text size="xs" ff="monospace" c="red" style={{ whiteSpace: "pre-wrap" }}>
|
||||
<Text
|
||||
className="releases-repository-expanded-error-text"
|
||||
size="xs"
|
||||
ff="monospace"
|
||||
c="red"
|
||||
style={{ whiteSpace: "pre-wrap" }}
|
||||
>
|
||||
{repository.error.code ? t(`error.options.${repository.error.code}` as never) : repository.error.message}
|
||||
</Text>
|
||||
</>
|
||||
)}
|
||||
{repository.releaseDescription && (
|
||||
<>
|
||||
<Divider my={10} mx="30%" />
|
||||
<Title order={4} ta="center">
|
||||
<Divider className="releases-repository-expanded-description-divider" my={10} mx="30%" />
|
||||
<Title className="releases-repository-expanded-description-title" order={4} ta="center">
|
||||
{t("releaseDescription")}
|
||||
</Title>
|
||||
<Text component="div" size="xs" ff="monospace" className={classes.releasesDescription}>
|
||||
<Text
|
||||
className={combineClasses("releases-repository-expanded-description-text", classes.releasesDescription)}
|
||||
component="div"
|
||||
size="xs"
|
||||
ff="monospace"
|
||||
>
|
||||
<ReactMarkdown skipHtml>{repository.releaseDescription}</ReactMarkdown>
|
||||
</Text>
|
||||
</>
|
||||
|
||||
2406
pnpm-lock.yaml
generated
2406
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -29,7 +29,7 @@
|
||||
"devDependencies": {
|
||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"eslint": "^9.26.0",
|
||||
"eslint": "^9.27.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||
"prettier-plugin-packagejson": "^2.5.13",
|
||||
"prettier-plugin-packagejson": "^2.5.14",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user