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
|
label: Version
|
||||||
description: What version of Homarr are you running?
|
description: What version of Homarr are you running?
|
||||||
options:
|
options:
|
||||||
|
- 1.20.0
|
||||||
- 1.19.1
|
- 1.19.1
|
||||||
- 1.19.0
|
- 1.19.0
|
||||||
- 1.18.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
|
FROM base AS builder
|
||||||
RUN apk add --no-cache libc6-compat
|
RUN apk add --no-cache libc6-compat
|
||||||
|
|||||||
@@ -55,10 +55,10 @@
|
|||||||
"@mantine/modals": "^8.0.1",
|
"@mantine/modals": "^8.0.1",
|
||||||
"@mantine/tiptap": "^8.0.1",
|
"@mantine/tiptap": "^8.0.1",
|
||||||
"@million/lint": "1.0.14",
|
"@million/lint": "1.0.14",
|
||||||
"@tabler/icons-react": "^3.31.0",
|
"@tabler/icons-react": "^3.33.0",
|
||||||
"@tanstack/react-query": "^5.76.1",
|
"@tanstack/react-query": "^5.76.2",
|
||||||
"@tanstack/react-query-devtools": "^5.76.1",
|
"@tanstack/react-query-devtools": "^5.76.2",
|
||||||
"@tanstack/react-query-next-experimental": "^5.76.1",
|
"@tanstack/react-query-next-experimental": "^5.76.2",
|
||||||
"@trpc/client": "^11.1.2",
|
"@trpc/client": "^11.1.2",
|
||||||
"@trpc/next": "^11.1.2",
|
"@trpc/next": "^11.1.2",
|
||||||
"@trpc/react-query": "^11.1.2",
|
"@trpc/react-query": "^11.1.2",
|
||||||
@@ -83,22 +83,22 @@
|
|||||||
"react-simple-code-editor": "^0.14.1",
|
"react-simple-code-editor": "^0.14.1",
|
||||||
"sass": "^1.89.0",
|
"sass": "^1.89.0",
|
||||||
"superjson": "2.2.2",
|
"superjson": "2.2.2",
|
||||||
"swagger-ui-react": "^5.21.0",
|
"swagger-ui-react": "^5.22.0",
|
||||||
"use-deep-compare-effect": "^1.8.1",
|
"use-deep-compare-effect": "^1.8.1",
|
||||||
"zod": "^3.24.4"
|
"zod": "^3.25.23"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"@types/chroma-js": "3.1.1",
|
"@types/chroma-js": "3.1.1",
|
||||||
"@types/node": "^22.15.18",
|
"@types/node": "^22.15.21",
|
||||||
"@types/prismjs": "^1.26.5",
|
"@types/prismjs": "^1.26.5",
|
||||||
"@types/react": "19.1.4",
|
"@types/react": "19.1.5",
|
||||||
"@types/react-dom": "19.1.5",
|
"@types/react-dom": "19.1.5",
|
||||||
"@types/swagger-ui-react": "^5.18.0",
|
"@types/swagger-ui-react": "^5.18.0",
|
||||||
"concurrently": "^9.1.2",
|
"concurrently": "^9.1.2",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"node-loader": "^2.1.0",
|
"node-loader": "^2.1.0",
|
||||||
"prettier": "^3.5.3",
|
"prettier": "^3.5.3",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import type { RouterOutputs } from "@homarr/api";
|
|||||||
import { clientApi } from "@homarr/api/client";
|
import { clientApi } from "@homarr/api/client";
|
||||||
import { useTimeAgo } from "@homarr/common";
|
import { useTimeAgo } from "@homarr/common";
|
||||||
import type { ContainerState } from "@homarr/docker";
|
import type { ContainerState } from "@homarr/docker";
|
||||||
|
import { containerStateColorMap } from "@homarr/docker/shared";
|
||||||
import { useModalAction } from "@homarr/modals";
|
import { useModalAction } from "@homarr/modals";
|
||||||
import { AddDockerAppToHomarr } from "@homarr/modals-collection";
|
import { AddDockerAppToHomarr } from "@homarr/modals-collection";
|
||||||
import { showErrorNotification, showSuccessNotification } from "@homarr/notifications";
|
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 ContainerStateBadge = ({ state }: { state: ContainerState }) => {
|
||||||
const t = useScopedI18n("docker.field.state.option");
|
const t = useScopedI18n("docker.field.state.option");
|
||||||
|
|
||||||
return (
|
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)}
|
{t(state)}
|
||||||
</Badge>
|
</Badge>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -125,8 +125,8 @@ const InnerContent = ({ item, ...dimensions }: InnerContentProps) => {
|
|||||||
setOptions={(partialNewOptions) =>
|
setOptions={(partialNewOptions) =>
|
||||||
updateOptions({
|
updateOptions({
|
||||||
newOptions: {
|
newOptions: {
|
||||||
...partialNewOptions.newOptions,
|
|
||||||
...options,
|
...options,
|
||||||
|
...partialNewOptions.newOptions,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,12 @@
|
|||||||
--gridstack-cell-size: 0;
|
--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 {
|
.grid-stack-placeholder > .placeholder-content {
|
||||||
background-color: rgb(248, 249, 250) !important;
|
background-color: rgb(248, 249, 250) !important;
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
"main": "./src/main.ts",
|
"main": "./src/main.ts",
|
||||||
"types": "./src/main.ts",
|
"types": "./src/main.ts",
|
||||||
"scripts": {
|
"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",
|
"clean": "rm -rf .turbo node_modules",
|
||||||
"dev": "pnpm with-env tsx ./src/main.ts",
|
"dev": "pnpm with-env tsx ./src/main.ts",
|
||||||
"format": "prettier --check . --ignore-path ../../.gitignore",
|
"format": "prettier --check . --ignore-path ../../.gitignore",
|
||||||
@@ -38,15 +38,16 @@
|
|||||||
"dayjs": "^1.11.13",
|
"dayjs": "^1.11.13",
|
||||||
"dotenv": "^16.5.0",
|
"dotenv": "^16.5.0",
|
||||||
"superjson": "2.2.2",
|
"superjson": "2.2.2",
|
||||||
"undici": "7.9.0"
|
"undici": "7.10.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"@types/node": "^22.15.18",
|
"@types/node": "^22.15.21",
|
||||||
"dotenv-cli": "^8.0.0",
|
"dotenv-cli": "^8.0.0",
|
||||||
"eslint": "^9.26.0",
|
"esbuild": "^0.25.4",
|
||||||
|
"eslint": "^9.27.0",
|
||||||
"prettier": "^3.5.3",
|
"prettier": "^3.5.3",
|
||||||
"tsx": "4.19.4",
|
"tsx": "4.19.4",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
|
|||||||
@@ -34,7 +34,8 @@
|
|||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"@types/ws": "^8.18.1",
|
"@types/ws": "^8.18.1",
|
||||||
"eslint": "^9.26.0",
|
"esbuild": "^0.25.4",
|
||||||
|
"eslint": "^9.27.0",
|
||||||
"prettier": "^3.5.3",
|
"prettier": "^3.5.3",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
|
|||||||
16
package.json
16
package.json
@@ -39,23 +39,23 @@
|
|||||||
"@semantic-release/npm": "^12.0.1",
|
"@semantic-release/npm": "^12.0.1",
|
||||||
"@semantic-release/release-notes-generator": "^14.0.3",
|
"@semantic-release/release-notes-generator": "^14.0.3",
|
||||||
"@turbo/gen": "^2.5.3",
|
"@turbo/gen": "^2.5.3",
|
||||||
"@vitejs/plugin-react": "^4.4.1",
|
"@vitejs/plugin-react": "^4.5.0",
|
||||||
"@vitest/coverage-v8": "^3.1.3",
|
"@vitest/coverage-v8": "^3.1.4",
|
||||||
"@vitest/ui": "^3.1.3",
|
"@vitest/ui": "^3.1.4",
|
||||||
"conventional-changelog-conventionalcommits": "^8.0.0",
|
"conventional-changelog-conventionalcommits": "^8.0.0",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"jsdom": "^26.1.0",
|
"jsdom": "^26.1.0",
|
||||||
"prettier": "^3.5.3",
|
"prettier": "^3.5.3",
|
||||||
"semantic-release": "^24.2.3",
|
"semantic-release": "^24.2.4",
|
||||||
"testcontainers": "^10.26.0",
|
"testcontainers": "^10.28.0",
|
||||||
"turbo": "^2.5.3",
|
"turbo": "^2.5.3",
|
||||||
"typescript": "^5.8.3",
|
"typescript": "^5.8.3",
|
||||||
"vite-tsconfig-paths": "^5.1.4",
|
"vite-tsconfig-paths": "^5.1.4",
|
||||||
"vitest": "^3.1.3"
|
"vitest": "^3.1.4"
|
||||||
},
|
},
|
||||||
"packageManager": "pnpm@10.11.0",
|
"packageManager": "pnpm@10.11.0",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=22.15.1"
|
"node": ">=22.16.0"
|
||||||
},
|
},
|
||||||
"pnpm": {
|
"pnpm": {
|
||||||
"onlyBuiltDependencies": [
|
"onlyBuiltDependencies": [
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
"tree-sitter-json"
|
"tree-sitter-json"
|
||||||
],
|
],
|
||||||
"overrides": {
|
"overrides": {
|
||||||
"proxmox-api>undici": "7.9.0"
|
"proxmox-api>undici": "7.10.0"
|
||||||
},
|
},
|
||||||
"allowUnusedPatches": true,
|
"allowUnusedPatches": true,
|
||||||
"ignoredBuiltDependencies": [
|
"ignoredBuiltDependencies": [
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
"@homarr/server-settings": "workspace:^0.1.0",
|
"@homarr/server-settings": "workspace:^0.1.0",
|
||||||
"@homarr/validation": "workspace:^0.1.0",
|
"@homarr/validation": "workspace:^0.1.0",
|
||||||
"@kubernetes/client-node": "^1.2.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/client": "^11.1.2",
|
||||||
"@trpc/react-query": "^11.1.2",
|
"@trpc/react-query": "^11.1.2",
|
||||||
"@trpc/server": "^11.1.2",
|
"@trpc/server": "^11.1.2",
|
||||||
@@ -52,13 +52,13 @@
|
|||||||
"react-dom": "19.1.0",
|
"react-dom": "19.1.0",
|
||||||
"superjson": "2.2.2",
|
"superjson": "2.2.2",
|
||||||
"trpc-to-openapi": "^2.2.0",
|
"trpc-to-openapi": "^2.2.0",
|
||||||
"zod": "^3.24.4"
|
"zod": "^3.25.23"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"prettier": "^3.5.3",
|
"prettier": "^3.5.3",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,90 +1,48 @@
|
|||||||
import { TRPCError } from "@trpc/server";
|
import { TRPCError } from "@trpc/server";
|
||||||
|
import { observable } from "@trpc/server/observable";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
import { db, like, or } from "@homarr/db";
|
import type { Container, ContainerState, Docker, Port } from "@homarr/docker";
|
||||||
import { icons } from "@homarr/db/schema";
|
|
||||||
import { DockerSingleton } from "@homarr/docker";
|
import { DockerSingleton } from "@homarr/docker";
|
||||||
import type { Container, ContainerInfo, ContainerState, Docker, Port } from "@homarr/docker";
|
import { dockerContainersRequestHandler } from "@homarr/request-handler/docker";
|
||||||
import { logger } from "@homarr/log";
|
|
||||||
import { createCacheChannel } from "@homarr/redis";
|
|
||||||
|
|
||||||
import { dockerMiddleware } from "../../middlewares/docker";
|
import { dockerMiddleware } from "../../middlewares/docker";
|
||||||
import { createTRPCRouter, permissionRequiredProcedure } from "../../trpc";
|
import { createTRPCRouter, permissionRequiredProcedure } from "../../trpc";
|
||||||
|
|
||||||
const dockerCache = createCacheChannel<{
|
|
||||||
containers: (ContainerInfo & { instance: string; iconUrl: string | null })[];
|
|
||||||
}>("docker-containers", 5 * 60 * 1000);
|
|
||||||
|
|
||||||
export const dockerRouter = createTRPCRouter({
|
export const dockerRouter = createTRPCRouter({
|
||||||
getContainers: permissionRequiredProcedure
|
getContainers: permissionRequiredProcedure
|
||||||
.requiresPermission("admin")
|
.requiresPermission("admin")
|
||||||
.concat(dockerMiddleware())
|
.concat(dockerMiddleware())
|
||||||
.query(async () => {
|
.query(async () => {
|
||||||
const result = await dockerCache
|
const innerHandler = dockerContainersRequestHandler.handler({});
|
||||||
.consumeAsync(async () => {
|
const result = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false });
|
||||||
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 { data, timestamp } = result;
|
const { data, timestamp } = result;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
containers: sanitizeContainers(data.containers),
|
containers: data satisfies DockerContainer[],
|
||||||
timestamp,
|
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
|
invalidate: permissionRequiredProcedure
|
||||||
.requiresPermission("admin")
|
.requiresPermission("admin")
|
||||||
.concat(dockerMiddleware())
|
.concat(dockerMiddleware())
|
||||||
.mutation(async () => {
|
.mutation(async () => {
|
||||||
await dockerCache.invalidateAsync();
|
const innerHandler = dockerContainersRequestHandler.handler({});
|
||||||
return;
|
await innerHandler.invalidateAsync();
|
||||||
}),
|
}),
|
||||||
startAll: permissionRequiredProcedure
|
startAll: permissionRequiredProcedure
|
||||||
.requiresPermission("admin")
|
.requiresPermission("admin")
|
||||||
@@ -98,7 +56,8 @@ export const dockerRouter = createTRPCRouter({
|
|||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
await dockerCache.invalidateAsync();
|
const innerHandler = dockerContainersRequestHandler.handler({});
|
||||||
|
await innerHandler.invalidateAsync();
|
||||||
}),
|
}),
|
||||||
stopAll: permissionRequiredProcedure
|
stopAll: permissionRequiredProcedure
|
||||||
.requiresPermission("admin")
|
.requiresPermission("admin")
|
||||||
@@ -112,7 +71,8 @@ export const dockerRouter = createTRPCRouter({
|
|||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
await dockerCache.invalidateAsync();
|
const innerHandler = dockerContainersRequestHandler.handler({});
|
||||||
|
await innerHandler.invalidateAsync();
|
||||||
}),
|
}),
|
||||||
restartAll: permissionRequiredProcedure
|
restartAll: permissionRequiredProcedure
|
||||||
.requiresPermission("admin")
|
.requiresPermission("admin")
|
||||||
@@ -126,7 +86,8 @@ export const dockerRouter = createTRPCRouter({
|
|||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
await dockerCache.invalidateAsync();
|
const innerHandler = dockerContainersRequestHandler.handler({});
|
||||||
|
await innerHandler.invalidateAsync();
|
||||||
}),
|
}),
|
||||||
removeAll: permissionRequiredProcedure
|
removeAll: permissionRequiredProcedure
|
||||||
.requiresPermission("admin")
|
.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;
|
image: string;
|
||||||
ports: Port[];
|
ports: Port[];
|
||||||
iconUrl: string | null;
|
iconUrl: string | null;
|
||||||
}
|
cpuUsage: number;
|
||||||
|
memoryUsage: number;
|
||||||
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,
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,14 +4,26 @@ import { describe, expect, test, vi } from "vitest";
|
|||||||
import type { Session } from "@homarr/auth";
|
import type { Session } from "@homarr/auth";
|
||||||
import { objectKeys } from "@homarr/common";
|
import { objectKeys } from "@homarr/common";
|
||||||
import type { Database } from "@homarr/db";
|
import type { Database } from "@homarr/db";
|
||||||
import { getPermissionsWithChildren } from "@homarr/definitions";
|
|
||||||
import type { GroupPermissionKey } from "@homarr/definitions";
|
import type { GroupPermissionKey } from "@homarr/definitions";
|
||||||
|
import { getPermissionsWithChildren } from "@homarr/definitions";
|
||||||
|
|
||||||
import type { RouterInputs } from "../../..";
|
import type { RouterInputs } from "../../..";
|
||||||
import { dockerRouter } from "../../docker/docker-router";
|
import { dockerRouter } from "../../docker/docker-router";
|
||||||
|
|
||||||
// Mock the auth module to return an empty session
|
// Mock the auth module to return an empty session
|
||||||
vi.mock("@homarr/auth", () => ({ auth: () => ({}) as 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", () => ({
|
vi.mock("@homarr/redis", () => ({
|
||||||
createCacheChannel: () => ({
|
createCacheChannel: () => ({
|
||||||
// eslint-disable-next-line @typescript-eslint/require-await
|
// 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
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
||||||
invalidateAsync: async () => {},
|
invalidateAsync: async () => {},
|
||||||
}),
|
}),
|
||||||
|
createWidgetOptionsChannel: () => ({}),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
vi.mock("@homarr/docker/env", () => ({
|
vi.mock("@homarr/docker/env", () => ({
|
||||||
@@ -46,6 +59,7 @@ const validInputs: {
|
|||||||
[key in (typeof procedureKeys)[number]]: RouterInputs["docker"][key];
|
[key in (typeof procedureKeys)[number]]: RouterInputs["docker"][key];
|
||||||
} = {
|
} = {
|
||||||
getContainers: undefined,
|
getContainers: undefined,
|
||||||
|
subscribeContainers: undefined,
|
||||||
startAll: { ids: ["1"] },
|
startAll: { ids: ["1"] },
|
||||||
stopAll: { ids: ["1"] },
|
stopAll: { ids: ["1"] },
|
||||||
restartAll: { ids: ["1"] },
|
restartAll: { ids: ["1"] },
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
"next-auth": "5.0.0-beta.28",
|
"next-auth": "5.0.0-beta.28",
|
||||||
"react": "19.1.0",
|
"react": "19.1.0",
|
||||||
"react-dom": "19.1.0",
|
"react-dom": "19.1.0",
|
||||||
"zod": "^3.24.4"
|
"zod": "^3.25.23"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"@types/bcrypt": "5.0.2",
|
"@types/bcrypt": "5.0.2",
|
||||||
"@types/cookies": "0.9.0",
|
"@types/cookies": "0.9.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"prettier": "^3.5.3",
|
"prettier": "^3.5.3",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,13 +24,13 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@homarr/common": "workspace:^0.1.0",
|
"@homarr/common": "workspace:^0.1.0",
|
||||||
"@homarr/db": "workspace:^0.1.0",
|
"@homarr/db": "workspace:^0.1.0",
|
||||||
"undici": "7.9.0"
|
"undici": "7.10.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,8 @@
|
|||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"esbuild": "^0.25.4",
|
||||||
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,15 +33,15 @@
|
|||||||
"next": "15.3.2",
|
"next": "15.3.2",
|
||||||
"react": "19.1.0",
|
"react": "19.1.0",
|
||||||
"react-dom": "19.1.0",
|
"react-dom": "19.1.0",
|
||||||
"undici": "7.9.0",
|
"undici": "7.10.0",
|
||||||
"zod": "^3.24.4",
|
"zod": "^3.25.23",
|
||||||
"zod-validation-error": "^3.4.0"
|
"zod-validation-error": "^3.4.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ export const cronJobs = {
|
|||||||
mediaTranscoding: { preventManualExecution: false },
|
mediaTranscoding: { preventManualExecution: false },
|
||||||
minecraftServerStatus: { preventManualExecution: false },
|
minecraftServerStatus: { preventManualExecution: false },
|
||||||
networkController: { preventManualExecution: false },
|
networkController: { preventManualExecution: false },
|
||||||
|
dockerContainers: { preventManualExecution: false },
|
||||||
} satisfies Record<JobGroupKeys, { preventManualExecution?: boolean }>;
|
} satisfies Record<JobGroupKeys, { preventManualExecution?: boolean }>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"@types/node-cron": "^3.0.11",
|
"@types/node-cron": "^3.0.11",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { analyticsJob } from "./jobs/analytics";
|
import { analyticsJob } from "./jobs/analytics";
|
||||||
|
import { dockerContainersJob } from "./jobs/docker";
|
||||||
import { iconsUpdaterJob } from "./jobs/icons-updater";
|
import { iconsUpdaterJob } from "./jobs/icons-updater";
|
||||||
import { dnsHoleJob } from "./jobs/integrations/dns-hole";
|
import { dnsHoleJob } from "./jobs/integrations/dns-hole";
|
||||||
import { downloadsJob } from "./jobs/integrations/downloads";
|
import { downloadsJob } from "./jobs/integrations/downloads";
|
||||||
@@ -35,6 +36,7 @@ export const jobGroup = createCronJobGroup({
|
|||||||
updateChecker: updateCheckerJob,
|
updateChecker: updateCheckerJob,
|
||||||
mediaTranscoding: mediaTranscodingJob,
|
mediaTranscoding: mediaTranscodingJob,
|
||||||
minecraftServerStatus: minecraftServerStatusJob,
|
minecraftServerStatus: minecraftServerStatusJob,
|
||||||
|
dockerContainers: dockerContainersJob,
|
||||||
networkController: networkControllerJob,
|
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",
|
"@homarr/server-settings": "workspace:^0.1.0",
|
||||||
"@mantine/core": "^8.0.1",
|
"@mantine/core": "^8.0.1",
|
||||||
"@paralleldrive/cuid2": "^2.2.2",
|
"@paralleldrive/cuid2": "^2.2.2",
|
||||||
"@testcontainers/mysql": "^10.26.0",
|
"@testcontainers/mysql": "^10.28.0",
|
||||||
"better-sqlite3": "^11.10.0",
|
"better-sqlite3": "^11.10.0",
|
||||||
"dotenv": "^16.5.0",
|
"dotenv": "^16.5.0",
|
||||||
"drizzle-kit": "^0.31.1",
|
"drizzle-kit": "^0.31.1",
|
||||||
@@ -60,7 +60,8 @@
|
|||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"@types/better-sqlite3": "7.6.13",
|
"@types/better-sqlite3": "7.6.13",
|
||||||
"dotenv-cli": "^8.0.0",
|
"dotenv-cli": "^8.0.0",
|
||||||
"eslint": "^9.26.0",
|
"esbuild": "^0.25.4",
|
||||||
|
"eslint": "^9.27.0",
|
||||||
"prettier": "^3.5.3",
|
"prettier": "^3.5.3",
|
||||||
"tsx": "4.19.4",
|
"tsx": "4.19.4",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
|
|||||||
@@ -25,13 +25,13 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@homarr/common": "workspace:^0.1.0",
|
"@homarr/common": "workspace:^0.1.0",
|
||||||
"fast-xml-parser": "^5.2.3",
|
"fast-xml-parser": "^5.2.3",
|
||||||
"zod": "^3.24.4"
|
"zod": "^3.25.23"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"tsx": "4.19.4",
|
"tsx": "4.19.4",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,5 +24,6 @@ export const widgetKinds = [
|
|||||||
"indexerManager",
|
"indexerManager",
|
||||||
"healthMonitoring",
|
"healthMonitoring",
|
||||||
"releases",
|
"releases",
|
||||||
|
"dockerContainers",
|
||||||
] as const;
|
] as const;
|
||||||
export type WidgetKind = (typeof widgetKinds)[number];
|
export type WidgetKind = (typeof widgetKinds)[number];
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
"type": "module",
|
"type": "module",
|
||||||
"exports": {
|
"exports": {
|
||||||
".": "./index.ts",
|
".": "./index.ts",
|
||||||
|
"./shared": "./src/shared.ts",
|
||||||
"./env": "./src/env.ts"
|
"./env": "./src/env.ts"
|
||||||
},
|
},
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
@@ -31,8 +32,8 @@
|
|||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"@types/dockerode": "^3.3.38",
|
"@types/dockerode": "^3.3.39",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"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",
|
"prettier": "@homarr/prettier-config",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@t3-oss/env-nextjs": "^0.13.4",
|
"@t3-oss/env-nextjs": "^0.13.4",
|
||||||
"zod": "^3.24.4"
|
"zod": "^3.25.23"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,13 +27,13 @@
|
|||||||
"@homarr/translation": "workspace:^0.1.0",
|
"@homarr/translation": "workspace:^0.1.0",
|
||||||
"@homarr/validation": "workspace:^0.1.0",
|
"@homarr/validation": "workspace:^0.1.0",
|
||||||
"@mantine/form": "^8.0.1",
|
"@mantine/form": "^8.0.1",
|
||||||
"zod": "^3.24.4"
|
"zod": "^3.25.23"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,13 +31,13 @@
|
|||||||
"@homarr/validation": "workspace:^0.1.0",
|
"@homarr/validation": "workspace:^0.1.0",
|
||||||
"@mantine/core": "^8.0.1",
|
"@mantine/core": "^8.0.1",
|
||||||
"react": "19.1.0",
|
"react": "19.1.0",
|
||||||
"zod": "^3.24.4"
|
"zod": "^3.25.23"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,9 +42,9 @@
|
|||||||
"node-ical": "^0.20.1",
|
"node-ical": "^0.20.1",
|
||||||
"proxmox-api": "1.1.1",
|
"proxmox-api": "1.1.1",
|
||||||
"tsdav": "^2.1.4",
|
"tsdav": "^2.1.4",
|
||||||
"undici": "7.9.0",
|
"undici": "7.10.0",
|
||||||
"xml2js": "^0.6.2",
|
"xml2js": "^0.6.2",
|
||||||
"zod": "^3.24.4"
|
"zod": "^3.25.23"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"@types/node-unifi": "^2.5.1",
|
"@types/node-unifi": "^2.5.1",
|
||||||
"@types/xml2js": "^0.4.14",
|
"@types/xml2js": "^0.4.14",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,13 +27,13 @@
|
|||||||
"ioredis": "5.6.1",
|
"ioredis": "5.6.1",
|
||||||
"superjson": "2.2.2",
|
"superjson": "2.2.2",
|
||||||
"winston": "3.17.0",
|
"winston": "3.17.0",
|
||||||
"zod": "^3.24.4"
|
"zod": "^3.25.23"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,18 +34,18 @@
|
|||||||
"@homarr/ui": "workspace:^0.1.0",
|
"@homarr/ui": "workspace:^0.1.0",
|
||||||
"@homarr/validation": "workspace:^0.1.0",
|
"@homarr/validation": "workspace:^0.1.0",
|
||||||
"@mantine/core": "^8.0.1",
|
"@mantine/core": "^8.0.1",
|
||||||
"@tabler/icons-react": "^3.31.0",
|
"@tabler/icons-react": "^3.33.0",
|
||||||
"dayjs": "^1.11.13",
|
"dayjs": "^1.11.13",
|
||||||
"next": "15.3.2",
|
"next": "15.3.2",
|
||||||
"react": "19.1.0",
|
"react": "19.1.0",
|
||||||
"react-dom": "19.1.0",
|
"react-dom": "19.1.0",
|
||||||
"zod": "^3.24.4"
|
"zod": "^3.25.23"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,13 +25,13 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@homarr/ui": "workspace:^0.1.0",
|
"@homarr/ui": "workspace:^0.1.0",
|
||||||
"@mantine/notifications": "^8.0.1",
|
"@mantine/notifications": "^8.0.1",
|
||||||
"@tabler/icons-react": "^3.31.0"
|
"@tabler/icons-react": "^3.33.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
"react": "19.1.0",
|
"react": "19.1.0",
|
||||||
"react-dom": "19.1.0",
|
"react-dom": "19.1.0",
|
||||||
"superjson": "2.2.2",
|
"superjson": "2.2.2",
|
||||||
"zod": "^3.24.4",
|
"zod": "^3.25.23",
|
||||||
"zod-form-data": "^2.0.7"
|
"zod-form-data": "^2.0.7"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"@types/adm-zip": "0.5.7",
|
"@types/adm-zip": "0.5.7",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,13 +23,13 @@
|
|||||||
"prettier": "@homarr/prettier-config",
|
"prettier": "@homarr/prettier-config",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@homarr/common": "workspace:^0.1.0",
|
"@homarr/common": "workspace:^0.1.0",
|
||||||
"zod": "^3.24.4"
|
"zod": "^3.25.23"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,14 +30,14 @@
|
|||||||
"@homarr/log": "workspace:^0.1.0",
|
"@homarr/log": "workspace:^0.1.0",
|
||||||
"@homarr/redis": "workspace:^0.1.0",
|
"@homarr/redis": "workspace:^0.1.0",
|
||||||
"dayjs": "^1.11.13",
|
"dayjs": "^1.11.13",
|
||||||
"octokit": "^4.1.3",
|
"octokit": "^5.0.2",
|
||||||
"superjson": "2.2.2"
|
"superjson": "2.2.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"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/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
"@mantine/core": "^8.0.1",
|
"@mantine/core": "^8.0.1",
|
||||||
"@mantine/hooks": "^8.0.1",
|
"@mantine/hooks": "^8.0.1",
|
||||||
"@mantine/spotlight": "^8.0.1",
|
"@mantine/spotlight": "^8.0.1",
|
||||||
"@tabler/icons-react": "^3.31.0",
|
"@tabler/icons-react": "^3.33.0",
|
||||||
"jotai": "^2.12.4",
|
"jotai": "^2.12.4",
|
||||||
"next": "15.3.2",
|
"next": "15.3.2",
|
||||||
"react": "19.1.0",
|
"react": "19.1.0",
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "Comprova la connexió i crea",
|
"create": "Comprova la connexió i crea",
|
||||||
"edit": "Comprova la connexió i desa"
|
"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",
|
"alertNotice": "El botó \"Desa\" s'habilita quan la connexió s'estableix correctament",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "",
|
"cancel": "",
|
||||||
"delete": "",
|
"delete": "",
|
||||||
"discard": "",
|
"discard": "",
|
||||||
|
"close": "",
|
||||||
"confirm": "",
|
"confirm": "",
|
||||||
"continue": "",
|
"continue": "",
|
||||||
"previous": "",
|
"previous": "",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": ""
|
"label": ""
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": ""
|
"label": "",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "",
|
"title": "",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": ""
|
"expires": "",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": ""
|
"message": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "测试连接并创建",
|
"create": "测试连接并创建",
|
||||||
"edit": "测试连接并保存"
|
"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": "成功建立连接后保存按钮将启用",
|
"alertNotice": "成功建立连接后保存按钮将启用",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "取消",
|
"cancel": "取消",
|
||||||
"delete": "删除",
|
"delete": "删除",
|
||||||
"discard": "Discard",
|
"discard": "Discard",
|
||||||
|
"close": "",
|
||||||
"confirm": "确认",
|
"confirm": "确认",
|
||||||
"continue": "继续",
|
"continue": "继续",
|
||||||
"previous": "上一步",
|
"previous": "上一步",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": "日志"
|
"label": "日志"
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": "证书"
|
"label": "证书",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "可信证书",
|
"title": "可信证书",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": "到期时间 {when}"
|
"expires": "到期时间 {when}",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": "无法删除证书"
|
"message": "无法删除证书"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "Otestovat připojení a vytvořit",
|
"create": "Otestovat připojení a vytvořit",
|
||||||
"edit": "Otestovat připojení a ulož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": "",
|
"alertNotice": "",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Zrušit",
|
"cancel": "Zrušit",
|
||||||
"delete": "Odstranit",
|
"delete": "Odstranit",
|
||||||
"discard": "Zahodit",
|
"discard": "Zahodit",
|
||||||
|
"close": "",
|
||||||
"confirm": "Potvrdit",
|
"confirm": "Potvrdit",
|
||||||
"continue": "Pokračovat",
|
"continue": "Pokračovat",
|
||||||
"previous": "Zpět",
|
"previous": "Zpět",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": ""
|
"label": ""
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": ""
|
"label": "",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "",
|
"title": "",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": ""
|
"expires": "",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": ""
|
"message": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "Test forbindelse og opret",
|
"create": "Test forbindelse og opret",
|
||||||
"edit": "Test forbindelse og gem"
|
"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",
|
"alertNotice": "Gem-knappen er aktiveret, når en vellykket forbindelse er etableret",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Annuller",
|
"cancel": "Annuller",
|
||||||
"delete": "Slet",
|
"delete": "Slet",
|
||||||
"discard": "Kassér",
|
"discard": "Kassér",
|
||||||
|
"close": "",
|
||||||
"confirm": "Bekræft",
|
"confirm": "Bekræft",
|
||||||
"continue": "Forsæt",
|
"continue": "Forsæt",
|
||||||
"previous": "Forrige",
|
"previous": "Forrige",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": "Logs"
|
"label": "Logs"
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": "Certifikater"
|
"label": "Certifikater",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "Betroede certifikater",
|
"title": "Betroede certifikater",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": "Udløber {when}"
|
"expires": "Udløber {when}",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": "Certifikatet kunne ikke slettes"
|
"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",
|
"create": "Verbindig teste und erstäue",
|
||||||
"edit": "Verbinding teste und spichere"
|
"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",
|
"alertNotice": "Dr Spicherknopf isch aktiv sobald d Verbindig het chönne hergstellt werde",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Abbrechen",
|
"cancel": "Abbrechen",
|
||||||
"delete": "Löschen",
|
"delete": "Löschen",
|
||||||
"discard": "Verwerfen",
|
"discard": "Verwerfen",
|
||||||
|
"close": "",
|
||||||
"confirm": "Bestätigen",
|
"confirm": "Bestätigen",
|
||||||
"continue": "Fortfahren",
|
"continue": "Fortfahren",
|
||||||
"previous": "Zurück",
|
"previous": "Zurück",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": ""
|
"label": ""
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": "Zertifikate"
|
"label": "Zertifikate",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "Vertrauenswürdige Zertifikate",
|
"title": "Vertrauenswürdige Zertifikate",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": "Gültig bis {when}"
|
"expires": "Gültig bis {when}",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": "Das Zertifikat konnte nicht entfernt werden"
|
"message": "Das Zertifikat konnte nicht entfernt werden"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -612,15 +612,15 @@
|
|||||||
"select": {
|
"select": {
|
||||||
"label": "App auswählen",
|
"label": "App auswählen",
|
||||||
"notFound": "Keine App gefunden",
|
"notFound": "Keine App gefunden",
|
||||||
"search": "",
|
"search": "Nach einer App suchen",
|
||||||
"noResults": "",
|
"noResults": "Keine Ergebnisse",
|
||||||
"action": "",
|
"action": "{app} auswählen",
|
||||||
"title": ""
|
"title": "Wählen Sie eine App, die diesem Board hinzugefügt werden soll"
|
||||||
},
|
},
|
||||||
"create": {
|
"create": {
|
||||||
"title": "Neue App erstellen",
|
"title": "Neue App erstellen",
|
||||||
"description": "",
|
"description": "Eine neue App erstellen",
|
||||||
"action": ""
|
"action": "App-Erstellung öffnen"
|
||||||
},
|
},
|
||||||
"add": "App hinzufügen"
|
"add": "App hinzufügen"
|
||||||
}
|
}
|
||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "Verbindung erstellen und testen",
|
"create": "Verbindung erstellen und testen",
|
||||||
"edit": "Verbindung erstellen und speichern"
|
"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",
|
"alertNotice": "Der Speichern Button ist verfügbar, sobald eine erfolgreiche Verbindung hergestellt wurde",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -769,8 +895,8 @@
|
|||||||
"message": "Der Pfad ist vermutlich nicht korrekt"
|
"message": "Der Pfad ist vermutlich nicht korrekt"
|
||||||
},
|
},
|
||||||
"tooManyRequests": {
|
"tooManyRequests": {
|
||||||
"title": "",
|
"title": "Zu viele Anfragen innerhalb einer bestimmten Zeit",
|
||||||
"message": ""
|
"message": "Es gab zu viele Anfragen. Sie werden wahrscheinlich vom Zielsystem begrenzt oder abgelehnt"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Abbrechen",
|
"cancel": "Abbrechen",
|
||||||
"delete": "Löschen",
|
"delete": "Löschen",
|
||||||
"discard": "Verwerfen",
|
"discard": "Verwerfen",
|
||||||
|
"close": "Schließen",
|
||||||
"confirm": "Bestätigen",
|
"confirm": "Bestätigen",
|
||||||
"continue": "Fortfahren",
|
"continue": "Fortfahren",
|
||||||
"previous": "Zurück",
|
"previous": "Zurück",
|
||||||
@@ -1093,7 +1220,7 @@
|
|||||||
"label": "Integrationen"
|
"label": "Integrationen"
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
"label": ""
|
"label": "Titel"
|
||||||
},
|
},
|
||||||
"customCssClasses": {
|
"customCssClasses": {
|
||||||
"label": "Benutzerdefinierte CSS Klassen"
|
"label": "Benutzerdefinierte CSS Klassen"
|
||||||
@@ -1445,76 +1572,76 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"stockPrice": {
|
"stockPrice": {
|
||||||
"name": "",
|
"name": "Aktienpreis",
|
||||||
"description": "",
|
"description": "Zeigt den aktuellen Aktienkurs einer Firma an",
|
||||||
"option": {
|
"option": {
|
||||||
"stock": {
|
"stock": {
|
||||||
"label": ""
|
"label": "Aktiensymbol"
|
||||||
},
|
},
|
||||||
"timeRange": {
|
"timeRange": {
|
||||||
"label": "",
|
"label": "Zeitraum",
|
||||||
"option": {
|
"option": {
|
||||||
"1d": {
|
"1d": {
|
||||||
"label": ""
|
"label": "1 Tag"
|
||||||
},
|
},
|
||||||
"5d": {
|
"5d": {
|
||||||
"label": ""
|
"label": "5 Tage"
|
||||||
},
|
},
|
||||||
"1mo": {
|
"1mo": {
|
||||||
"label": ""
|
"label": "1 Monat"
|
||||||
},
|
},
|
||||||
"3mo": {
|
"3mo": {
|
||||||
"label": ""
|
"label": "3 Monate"
|
||||||
},
|
},
|
||||||
"6mo": {
|
"6mo": {
|
||||||
"label": ""
|
"label": "6 Monate"
|
||||||
},
|
},
|
||||||
"ytd": {
|
"ytd": {
|
||||||
"label": ""
|
"label": "Bisheriger Jahresverlauf"
|
||||||
},
|
},
|
||||||
"1y": {
|
"1y": {
|
||||||
"label": ""
|
"label": "1 Jahr"
|
||||||
},
|
},
|
||||||
"2y": {
|
"2y": {
|
||||||
"label": ""
|
"label": "2 Jahre"
|
||||||
},
|
},
|
||||||
"5y": {
|
"5y": {
|
||||||
"label": ""
|
"label": "5 Jahre"
|
||||||
},
|
},
|
||||||
"10y": {
|
"10y": {
|
||||||
"label": ""
|
"label": "10 Jahre"
|
||||||
},
|
},
|
||||||
"max": {
|
"max": {
|
||||||
"label": ""
|
"label": "Max"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"timeInterval": {
|
"timeInterval": {
|
||||||
"label": "",
|
"label": "Zeitintervall",
|
||||||
"option": {
|
"option": {
|
||||||
"5m": {
|
"5m": {
|
||||||
"label": ""
|
"label": "5 Minuten"
|
||||||
},
|
},
|
||||||
"15m": {
|
"15m": {
|
||||||
"label": ""
|
"label": "15 Minuten"
|
||||||
},
|
},
|
||||||
"30m": {
|
"30m": {
|
||||||
"label": ""
|
"label": "30 Minuten"
|
||||||
},
|
},
|
||||||
"1h": {
|
"1h": {
|
||||||
"label": ""
|
"label": "1 Stunde"
|
||||||
},
|
},
|
||||||
"1d": {
|
"1d": {
|
||||||
"label": ""
|
"label": "1 Tag"
|
||||||
},
|
},
|
||||||
"5d": {
|
"5d": {
|
||||||
"label": ""
|
"label": "5 Tage"
|
||||||
},
|
},
|
||||||
"1wk": {
|
"1wk": {
|
||||||
"label": ""
|
"label": "1 Woche"
|
||||||
},
|
},
|
||||||
"1mo": {
|
"1mo": {
|
||||||
"label": ""
|
"label": "1 Monat"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1771,8 +1898,8 @@
|
|||||||
"description": "Zeige die aktuellen Streams auf deinen Medienservern an",
|
"description": "Zeige die aktuellen Streams auf deinen Medienservern an",
|
||||||
"option": {
|
"option": {
|
||||||
"showOnlyPlaying": {
|
"showOnlyPlaying": {
|
||||||
"label": "",
|
"label": "Nur aktuelle Wiedergabe anzeigen",
|
||||||
"description": ""
|
"description": "Diese Einstellung zu deaktivieren wird für Plex nicht funktionieren"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"items": {
|
"items": {
|
||||||
@@ -1805,7 +1932,7 @@
|
|||||||
"label": "Torrent Einträge anzeigen die abgeschlossen wurden"
|
"label": "Torrent Einträge anzeigen die abgeschlossen wurden"
|
||||||
},
|
},
|
||||||
"showCompletedHttp": {
|
"showCompletedHttp": {
|
||||||
"label": ""
|
"label": "Andere Einträge als abgeschlossen anzeigen"
|
||||||
},
|
},
|
||||||
"activeTorrentThreshold": {
|
"activeTorrentThreshold": {
|
||||||
"label": "Abgeschlossene Torrents unter diesem Schwellenwert ausblenden (in kiB/s)"
|
"label": "Abgeschlossene Torrents unter diesem Schwellenwert ausblenden (in kiB/s)"
|
||||||
@@ -1950,7 +2077,7 @@
|
|||||||
"approved": "Bestätigt",
|
"approved": "Bestätigt",
|
||||||
"declined": "Abgelehnt",
|
"declined": "Abgelehnt",
|
||||||
"failed": "Fehlgeschlagen",
|
"failed": "Fehlgeschlagen",
|
||||||
"completed": ""
|
"completed": "Abgeschlossen"
|
||||||
},
|
},
|
||||||
"toBeDetermined": "Noch Festzulegen"
|
"toBeDetermined": "Noch Festzulegen"
|
||||||
},
|
},
|
||||||
@@ -2054,94 +2181,94 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"releases": {
|
"releases": {
|
||||||
"name": "",
|
"name": "Veröffentlichungen",
|
||||||
"description": "",
|
"description": "Zeigt eine Liste der aktuellen Version der angegebenen Repositories mit der angegebenen Version regex an.",
|
||||||
"option": {
|
"option": {
|
||||||
"newReleaseWithin": {
|
"newReleaseWithin": {
|
||||||
"label": "",
|
"label": "Neue Version innerhalb",
|
||||||
"description": ""
|
"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": {
|
"staleReleaseWithin": {
|
||||||
"label": "",
|
"label": "Veraltete Version innerhalb",
|
||||||
"description": ""
|
"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": {
|
"showOnlyHighlighted": {
|
||||||
"label": "",
|
"label": "Nur markierte anzeigen",
|
||||||
"description": ""
|
"description": "Nur neue oder veraltete Versionen anzeigen. Wie oben beschrieben."
|
||||||
},
|
},
|
||||||
"showDetails": {
|
"showDetails": {
|
||||||
"label": ""
|
"label": "Details anzeigen"
|
||||||
},
|
},
|
||||||
"topReleases": {
|
"topReleases": {
|
||||||
"label": "",
|
"label": "Top Releases",
|
||||||
"description": ""
|
"description": "Die maximale Anzahl der neuesten Versionen, die angezeigt werden sollen. Null bedeutet kein Limit."
|
||||||
},
|
},
|
||||||
"repositories": {
|
"repositories": {
|
||||||
"label": "",
|
"label": "Repositories",
|
||||||
"addRRepository": {
|
"addRRepository": {
|
||||||
"label": ""
|
"label": "Repository hinzufügen"
|
||||||
},
|
},
|
||||||
"provider": {
|
"provider": {
|
||||||
"label": ""
|
"label": "Anbieter"
|
||||||
},
|
},
|
||||||
"identifier": {
|
"identifier": {
|
||||||
"label": "",
|
"label": "Identifier",
|
||||||
"placeholder": ""
|
"placeholder": "Name oder Eigentümer/Name"
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"label": ""
|
"label": "Name"
|
||||||
},
|
},
|
||||||
"versionFilter": {
|
"versionFilter": {
|
||||||
"label": "",
|
"label": "Versionsfilter",
|
||||||
"prefix": {
|
"prefix": {
|
||||||
"label": ""
|
"label": "Präfix"
|
||||||
},
|
},
|
||||||
"precision": {
|
"precision": {
|
||||||
"label": "",
|
"label": "Präzision",
|
||||||
"options": {
|
"options": {
|
||||||
"none": ""
|
"none": "Keine"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"suffix": {
|
"suffix": {
|
||||||
"label": ""
|
"label": "Suffix"
|
||||||
},
|
},
|
||||||
"regex": {
|
"regex": {
|
||||||
"label": ""
|
"label": "Regulärer Ausdruck"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"edit": {
|
"edit": {
|
||||||
"label": ""
|
"label": "Bearbeiten"
|
||||||
},
|
},
|
||||||
"editForm": {
|
"editForm": {
|
||||||
"title": "",
|
"title": "Repository bearbeiten",
|
||||||
"cancel": {
|
"cancel": {
|
||||||
"label": ""
|
"label": "Abbrechen"
|
||||||
},
|
},
|
||||||
"confirm": {
|
"confirm": {
|
||||||
"label": ""
|
"label": "Bestätigen"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"example": {
|
"example": {
|
||||||
"label": ""
|
"label": "Beispiel"
|
||||||
},
|
},
|
||||||
"invalid": ""
|
"invalid": "Ungültige Repository Definition, bitte überprüfen Sie die Werte"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"not-found": "",
|
"not-found": "Nicht gefunden",
|
||||||
"pre-release": "",
|
"pre-release": "Vorveröffentlichung",
|
||||||
"archived": "",
|
"archived": "Archiviert",
|
||||||
"forked": "",
|
"forked": "Forked",
|
||||||
"starsCount": "",
|
"starsCount": "Sterne",
|
||||||
"forksCount": "",
|
"forksCount": "Ableger",
|
||||||
"issuesCount": "",
|
"issuesCount": "Offene Tickets",
|
||||||
"openProjectPage": "",
|
"openProjectPage": "Projektseite öffnen",
|
||||||
"openReleasePage": "",
|
"openReleasePage": "Release Seite öffnen",
|
||||||
"releaseDescription": "",
|
"releaseDescription": "Release Beschreibung",
|
||||||
"created": "",
|
"created": "Erstellt",
|
||||||
"error": {
|
"error": {
|
||||||
"label": "",
|
"label": "Fehler",
|
||||||
"options": {
|
"options": {
|
||||||
"noMatchingVersion": ""
|
"noMatchingVersion": "Keine passende Version gefunden"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -2149,56 +2276,56 @@
|
|||||||
"option": {},
|
"option": {},
|
||||||
"card": {
|
"card": {
|
||||||
"vpn": {
|
"vpn": {
|
||||||
"countConnected": ""
|
"countConnected": "{count} verbunden"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"integrationsDisconnected": "",
|
"integrationsDisconnected": "Keine Daten verfügbar, alle Integrationen getrennt",
|
||||||
"unknownContentOption": ""
|
"unknownContentOption": "Unbekannte Inhaltsoption für das Widget der Netzwerk Controller Zusammenfassung: "
|
||||||
},
|
},
|
||||||
"name": "",
|
"name": "Netzwerk Controller Zusammenfassung",
|
||||||
"description": ""
|
"description": "Zeigt die Zusammenfassung eines Netzwerk Controller (wie UniFi-Controller) an"
|
||||||
},
|
},
|
||||||
"networkControllerStatus": {
|
"networkControllerStatus": {
|
||||||
"card": {
|
"card": {
|
||||||
"variants": {
|
"variants": {
|
||||||
"wired": {
|
"wired": {
|
||||||
"name": ""
|
"name": "Kabel"
|
||||||
},
|
},
|
||||||
"wifi": {
|
"wifi": {
|
||||||
"name": ""
|
"name": "WLAN"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"users": {
|
"users": {
|
||||||
"label": ""
|
"label": "Benutzer"
|
||||||
},
|
},
|
||||||
"guests": {
|
"guests": {
|
||||||
"label": ""
|
"label": "Gäste"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"option": {
|
"option": {
|
||||||
"content": {
|
"content": {
|
||||||
"option": {
|
"option": {
|
||||||
"wifi": {
|
"wifi": {
|
||||||
"label": ""
|
"label": "WLAN"
|
||||||
},
|
},
|
||||||
"wired": {
|
"wired": {
|
||||||
"label": ""
|
"label": "Kabel"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"label": ""
|
"label": "Widget Inhalt"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"integrationsDisconnected": "",
|
"integrationsDisconnected": "Keine Daten verfügbar, alle Integrationen getrennt",
|
||||||
"unknownContentOption": ""
|
"unknownContentOption": "Unbekannte Inhaltsoption für das Netzwerkstatus Widget: "
|
||||||
},
|
},
|
||||||
"name": "",
|
"name": "Netzwerkstatus",
|
||||||
"description": ""
|
"description": "Angeschlossene Geräte in einem Netzwerk anzeigen"
|
||||||
},
|
},
|
||||||
"networkController": {
|
"networkController": {
|
||||||
"error": {
|
"error": {
|
||||||
"internalServerError": ""
|
"internalServerError": "Fehler beim Abrufen der Netzwerk Controller Zusammenfassung"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -2321,10 +2448,10 @@
|
|||||||
},
|
},
|
||||||
"backgroundImageUrl": {
|
"backgroundImageUrl": {
|
||||||
"label": "URL des Hintergrundbildes",
|
"label": "URL des Hintergrundbildes",
|
||||||
"placeholder": "",
|
"placeholder": "Tippen, um nach lokale Bilder zu suchen",
|
||||||
"group": {
|
"group": {
|
||||||
"your": "",
|
"your": "Ihre Bilder",
|
||||||
"other": ""
|
"other": "Andere Bilder"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"backgroundImageAttachment": {
|
"backgroundImageAttachment": {
|
||||||
@@ -2963,7 +3090,7 @@
|
|||||||
"label": "Medien Transkodierung"
|
"label": "Medien Transkodierung"
|
||||||
},
|
},
|
||||||
"networkController": {
|
"networkController": {
|
||||||
"label": ""
|
"label": "Netzwerk Controller"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": "Logs"
|
"label": "Logs"
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": "Zertifikate"
|
"label": "Zertifikate",
|
||||||
|
"hostnames": {
|
||||||
|
"label": "Hostnamen"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"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": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "Vertrauenswürdige Zertifikate",
|
"title": "Vertrauenswürdige Zertifikate",
|
||||||
@@ -3902,10 +4055,19 @@
|
|||||||
"title": "Es gibt noch keine Zertifikate"
|
"title": "Es gibt noch keine Zertifikate"
|
||||||
},
|
},
|
||||||
"invalid": {
|
"invalid": {
|
||||||
"title": "",
|
"title": "Ungültiges Zertifikat",
|
||||||
"description": ""
|
"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": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": "Das Zertifikat konnte nicht entfernt werden"
|
"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": "",
|
"create": "",
|
||||||
"edit": ""
|
"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": "",
|
"alertNotice": "",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Ακύρωση",
|
"cancel": "Ακύρωση",
|
||||||
"delete": "Διαγραφή",
|
"delete": "Διαγραφή",
|
||||||
"discard": "",
|
"discard": "",
|
||||||
|
"close": "",
|
||||||
"confirm": "Επιβεβαίωση",
|
"confirm": "Επιβεβαίωση",
|
||||||
"continue": "",
|
"continue": "",
|
||||||
"previous": "Προηγούμενο",
|
"previous": "Προηγούμενο",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": ""
|
"label": ""
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": ""
|
"label": "",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "",
|
"title": "",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": ""
|
"expires": "",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": ""
|
"message": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "Test the connection and create integration",
|
"create": "Test the connection and create integration",
|
||||||
"edit": "Test the connection and save"
|
"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",
|
"alertNotice": "The save button is enabled once the connection is successfully established",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Cancel",
|
"cancel": "Cancel",
|
||||||
"delete": "Delete",
|
"delete": "Delete",
|
||||||
"discard": "Discard",
|
"discard": "Discard",
|
||||||
|
"close": "",
|
||||||
"confirm": "Confirm",
|
"confirm": "Confirm",
|
||||||
"continue": "Continue",
|
"continue": "Continue",
|
||||||
"previous": "Previous",
|
"previous": "Previous",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": ""
|
"label": ""
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": ""
|
"label": "",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "",
|
"title": "",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": ""
|
"expires": "",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": ""
|
"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": {
|
"common": {
|
||||||
"location": {
|
"location": {
|
||||||
"query": "City / Postal code",
|
"query": "City / Postal code",
|
||||||
@@ -3091,6 +3099,9 @@
|
|||||||
},
|
},
|
||||||
"networkController": {
|
"networkController": {
|
||||||
"label": "Network Controller"
|
"label": "Network Controller"
|
||||||
|
},
|
||||||
|
"dockerContainers": {
|
||||||
|
"label": "Docker containers"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -3154,8 +3165,9 @@
|
|||||||
"title": "Containers",
|
"title": "Containers",
|
||||||
"table": {
|
"table": {
|
||||||
"updated": "Updated {when}",
|
"updated": "Updated {when}",
|
||||||
"search": "Search {count} containers",
|
"search": "Seach {count} containers",
|
||||||
"selected": "{selectCount} of {totalCount} containers selected"
|
"selected": "{selectCount} of {totalCount} containers selected",
|
||||||
|
"footer": "Total {count} containers"
|
||||||
},
|
},
|
||||||
"field": {
|
"field": {
|
||||||
"name": {
|
"name": {
|
||||||
@@ -3173,6 +3185,14 @@
|
|||||||
"dead": "Dead"
|
"dead": "Dead"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"stats": {
|
||||||
|
"cpu": {
|
||||||
|
"label": "CPU"
|
||||||
|
},
|
||||||
|
"memory": {
|
||||||
|
"label": "Memory"
|
||||||
|
}
|
||||||
|
},
|
||||||
"containerImage": {
|
"containerImage": {
|
||||||
"label": "Image"
|
"label": "Image"
|
||||||
},
|
},
|
||||||
@@ -3181,6 +3201,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
|
"title": "Actions",
|
||||||
"start": {
|
"start": {
|
||||||
"label": "Start",
|
"label": "Start",
|
||||||
"notification": {
|
"notification": {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
"step": {
|
"step": {
|
||||||
"start": {
|
"start": {
|
||||||
"title": "Bienvenido a Homarr",
|
"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.",
|
"description": "Para empezar, por favor, seleccione cómo desea configurar su instancia de Homarr.",
|
||||||
"action": {
|
"action": {
|
||||||
"scratch": "Empezar de cero",
|
"scratch": "Empezar de cero",
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"summary": {
|
"summary": {
|
||||||
"title": "Importar resumen",
|
"title": "Resumen de importación",
|
||||||
"description": "",
|
"description": "",
|
||||||
"action": {
|
"action": {
|
||||||
"import": "Confirmar la importación y continuar"
|
"import": "Confirmar la importación y continuar"
|
||||||
@@ -160,7 +160,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"usernameTaken": "Nombre de usuario ya está ocupado"
|
"usernameTaken": ""
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
"login": {
|
"login": {
|
||||||
@@ -172,7 +172,7 @@
|
|||||||
"message": ""
|
"message": ""
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"title": "",
|
"title": "Inicio de sesión fallido",
|
||||||
"message": ""
|
"message": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "",
|
"create": "",
|
||||||
"edit": ""
|
"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": "",
|
"alertNotice": "",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Cancelar",
|
"cancel": "Cancelar",
|
||||||
"delete": "Eliminar",
|
"delete": "Eliminar",
|
||||||
"discard": "",
|
"discard": "",
|
||||||
|
"close": "",
|
||||||
"confirm": "Confirmar",
|
"confirm": "Confirmar",
|
||||||
"continue": "",
|
"continue": "",
|
||||||
"previous": "Anterior",
|
"previous": "Anterior",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": ""
|
"label": ""
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": ""
|
"label": "",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "",
|
"title": "",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": ""
|
"expires": "",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": ""
|
"message": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "",
|
"create": "",
|
||||||
"edit": ""
|
"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": "",
|
"alertNotice": "",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "",
|
"cancel": "",
|
||||||
"delete": "",
|
"delete": "",
|
||||||
"discard": "",
|
"discard": "",
|
||||||
|
"close": "",
|
||||||
"confirm": "",
|
"confirm": "",
|
||||||
"continue": "",
|
"continue": "",
|
||||||
"previous": "",
|
"previous": "",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": ""
|
"label": ""
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": ""
|
"label": "",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "",
|
"title": "",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": ""
|
"expires": "",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": ""
|
"message": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "Tester la connexion et créer",
|
"create": "Tester la connexion et créer",
|
||||||
"edit": "Tester la connexion et enregistrer"
|
"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",
|
"alertNotice": "Le bouton Enregistrer est activé une fois qu'une connexion est établie avec succès",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Annuler",
|
"cancel": "Annuler",
|
||||||
"delete": "Supprimer",
|
"delete": "Supprimer",
|
||||||
"discard": "Abandonner",
|
"discard": "Abandonner",
|
||||||
|
"close": "",
|
||||||
"confirm": "Confirmer",
|
"confirm": "Confirmer",
|
||||||
"continue": "Continuer",
|
"continue": "Continuer",
|
||||||
"previous": "Précédent",
|
"previous": "Précédent",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": "Journaux"
|
"label": "Journaux"
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": "Certificats"
|
"label": "Certificats",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "Certificats de confiance",
|
"title": "Certificats de confiance",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": "Expire le {when}"
|
"expires": "Expire le {when}",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": "Le certificat n'a pas pu être supprimé"
|
"message": "Le certificat n'a pas pu être supprimé"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "בדוק חיבור וצור",
|
"create": "בדוק חיבור וצור",
|
||||||
"edit": "בדוק את החיבור ושמור"
|
"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": "הלחצן שמור מופעל לאחר יצירת חיבור מוצלח",
|
"alertNotice": "הלחצן שמור מופעל לאחר יצירת חיבור מוצלח",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "בטל",
|
"cancel": "בטל",
|
||||||
"delete": "מחיקה",
|
"delete": "מחיקה",
|
||||||
"discard": "ביטול",
|
"discard": "ביטול",
|
||||||
|
"close": "סגור",
|
||||||
"confirm": "לאשר",
|
"confirm": "לאשר",
|
||||||
"continue": "המשך",
|
"continue": "המשך",
|
||||||
"previous": "הקודם",
|
"previous": "הקודם",
|
||||||
@@ -2059,11 +2186,11 @@
|
|||||||
"option": {
|
"option": {
|
||||||
"newReleaseWithin": {
|
"newReleaseWithin": {
|
||||||
"label": "מהדורה חדשה בתוך",
|
"label": "מהדורה חדשה בתוך",
|
||||||
"description": ""
|
"description": "דוגמת שימוש: שבוע אחד (1), חודש אחד (10 חודשים). סוגי יחידות מקובלים: h (שעות), d (ימים), w (שבועות), M (חודשים), y (שנים). השאר ריק כדי לא להדגיש מהדורות חדשות."
|
||||||
},
|
},
|
||||||
"staleReleaseWithin": {
|
"staleReleaseWithin": {
|
||||||
"label": "מהדורה חדשה בתוך",
|
"label": "מהדורה חדשה בתוך",
|
||||||
"description": ""
|
"description": "דוגמת שימוש: 1w (שבוע אחד), 10M (10 חודשים). סוגי יחידות מקובלים h (שעות), d (ימים), w (שבועות), M (חודשים), y (שנים). השאר ריק כדי לא להדגיש גרסאות ישנות."
|
||||||
},
|
},
|
||||||
"showOnlyHighlighted": {
|
"showOnlyHighlighted": {
|
||||||
"label": "הצג רק את המודגשים",
|
"label": "הצג רק את המודגשים",
|
||||||
@@ -2073,8 +2200,8 @@
|
|||||||
"label": "הצג פרטים"
|
"label": "הצג פרטים"
|
||||||
},
|
},
|
||||||
"topReleases": {
|
"topReleases": {
|
||||||
"label": "",
|
"label": "מהדורות מובילות",
|
||||||
"description": ""
|
"description": "המספר המרבי של מהדורות אחרונות להצגה. אפס פירושו שאין הגבלה."
|
||||||
},
|
},
|
||||||
"repositories": {
|
"repositories": {
|
||||||
"label": "מאגרים",
|
"label": "מאגרים",
|
||||||
@@ -2089,7 +2216,7 @@
|
|||||||
"placeholder": "שם או בעלים/שם"
|
"placeholder": "שם או בעלים/שם"
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"label": ""
|
"label": "שם"
|
||||||
},
|
},
|
||||||
"versionFilter": {
|
"versionFilter": {
|
||||||
"label": "מסנן גירסאות",
|
"label": "מסנן גירסאות",
|
||||||
@@ -2139,9 +2266,9 @@
|
|||||||
"releaseDescription": "תיאור הגרסה",
|
"releaseDescription": "תיאור הגרסה",
|
||||||
"created": "נוצר",
|
"created": "נוצר",
|
||||||
"error": {
|
"error": {
|
||||||
"label": "",
|
"label": "שגיאה",
|
||||||
"options": {
|
"options": {
|
||||||
"noMatchingVersion": ""
|
"noMatchingVersion": "לא נמצאה גרסה תואמת"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": "קבצי לוג"
|
"label": "קבצי לוג"
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": "אישורי אבטחה"
|
"label": "אישורי אבטחה",
|
||||||
|
"hostnames": {
|
||||||
|
"label": "שמות מארחים"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": "שם מארח"
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": "נושא"
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": "מנפיק"
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": "בתוקף מ: "
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": "בתוקף מ: "
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": "מספר סידורי"
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": "טביעת אצבע"
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "תעודות מהימנות",
|
"title": "תעודות מהימנות",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "אישור לא חוקי",
|
"title": "אישור לא חוקי",
|
||||||
"description": "נכשל בהוספת תעודת אבטחה"
|
"description": "נכשל בהוספת תעודת אבטחה"
|
||||||
},
|
},
|
||||||
"expires": "פג ב- {when}"
|
"expires": "פג ב- {when}",
|
||||||
|
"toHostnames": "שמות מארחים מאושרים"
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "שמות מארחים של תעודות מהימנות",
|
||||||
|
"description": "חלק מהאישורים אינם מאפשרים לדומיין הספציפי בו Homarr משתמש לבקש אותם, מסיבה זו כל שמות המארח המהימנים עם טביעות האצבע של האישור שלהם משמשים כדי לעקוף את ההגבלות הללו.",
|
||||||
|
"noResults": {
|
||||||
|
"title": "אין עדיין שמות מארחים"
|
||||||
|
},
|
||||||
|
"toCertificates": "אישורי אבטחה"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": "לא היה ניתן להסיר את תעודת האבטחה"
|
"message": "לא היה ניתן להסיר את תעודת האבטחה"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "הסר שם מארח מהימן",
|
||||||
|
"confirm": "האם אתה בטוח שברצונך להסיר את שם המארח המהימן הזה? זה עלול לגרום לחלק מהאינטגרציות להפסיק לפעול.",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "שם המארח הוסר",
|
||||||
|
"message": "שם המארח הוסר בהצלחה"
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "שם המארח לא הוסר",
|
||||||
|
"message": "לא היה ניתן להסיר את שם המארח"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "",
|
"create": "",
|
||||||
"edit": ""
|
"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": "",
|
"alertNotice": "",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Otkaži",
|
"cancel": "Otkaži",
|
||||||
"delete": "Obriši",
|
"delete": "Obriši",
|
||||||
"discard": "",
|
"discard": "",
|
||||||
|
"close": "",
|
||||||
"confirm": "Potvrdi",
|
"confirm": "Potvrdi",
|
||||||
"continue": "",
|
"continue": "",
|
||||||
"previous": "Prethodno",
|
"previous": "Prethodno",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": ""
|
"label": ""
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": ""
|
"label": "",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "",
|
"title": "",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": ""
|
"expires": "",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": ""
|
"message": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "Tesztelje a kapcsolatot és hozzon létre",
|
"create": "Tesztelje a kapcsolatot és hozzon létre",
|
||||||
"edit": "Tesztelje a kapcsolatot és mentsen"
|
"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",
|
"alertNotice": "A Mentés gomb a sikeres kapcsolat létrehozása után aktiválódik",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Mégse",
|
"cancel": "Mégse",
|
||||||
"delete": "Törlés",
|
"delete": "Törlés",
|
||||||
"discard": "Elvetés",
|
"discard": "Elvetés",
|
||||||
|
"close": "",
|
||||||
"confirm": "Megerősít",
|
"confirm": "Megerősít",
|
||||||
"continue": "Folytatás",
|
"continue": "Folytatás",
|
||||||
"previous": "Előző",
|
"previous": "Előző",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": ""
|
"label": ""
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": ""
|
"label": "",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "",
|
"title": "",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": ""
|
"expires": "",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": ""
|
"message": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "Prova la connessione e crea",
|
"create": "Prova la connessione e crea",
|
||||||
"edit": "Prova la connessione e salva"
|
"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",
|
"alertNotice": "Il pulsante Salva è abilitato una volta stabilita una connessione con successo",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Annulla",
|
"cancel": "Annulla",
|
||||||
"delete": "Elimina",
|
"delete": "Elimina",
|
||||||
"discard": "",
|
"discard": "",
|
||||||
|
"close": "",
|
||||||
"confirm": "Conferma",
|
"confirm": "Conferma",
|
||||||
"continue": "",
|
"continue": "",
|
||||||
"previous": "Precedente",
|
"previous": "Precedente",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": ""
|
"label": ""
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": ""
|
"label": "",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "",
|
"title": "",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": ""
|
"expires": "",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": ""
|
"message": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "",
|
"create": "",
|
||||||
"edit": ""
|
"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": "",
|
"alertNotice": "",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "キャンセル",
|
"cancel": "キャンセル",
|
||||||
"delete": "削除",
|
"delete": "削除",
|
||||||
"discard": "",
|
"discard": "",
|
||||||
|
"close": "",
|
||||||
"confirm": "確認",
|
"confirm": "確認",
|
||||||
"continue": "次へ",
|
"continue": "次へ",
|
||||||
"previous": "前へ",
|
"previous": "前へ",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": ""
|
"label": ""
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": ""
|
"label": "",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "",
|
"title": "",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": ""
|
"expires": "",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": ""
|
"message": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "",
|
"create": "",
|
||||||
"edit": ""
|
"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": "",
|
"alertNotice": "",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "취소",
|
"cancel": "취소",
|
||||||
"delete": "삭제",
|
"delete": "삭제",
|
||||||
"discard": "",
|
"discard": "",
|
||||||
|
"close": "",
|
||||||
"confirm": "확인",
|
"confirm": "확인",
|
||||||
"continue": "",
|
"continue": "",
|
||||||
"previous": "이전",
|
"previous": "이전",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": ""
|
"label": ""
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": ""
|
"label": "",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "",
|
"title": "",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": ""
|
"expires": "",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": ""
|
"message": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "",
|
"create": "",
|
||||||
"edit": ""
|
"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": "",
|
"alertNotice": "",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Atšaukti",
|
"cancel": "Atšaukti",
|
||||||
"delete": "",
|
"delete": "",
|
||||||
"discard": "",
|
"discard": "",
|
||||||
|
"close": "",
|
||||||
"confirm": "",
|
"confirm": "",
|
||||||
"continue": "",
|
"continue": "",
|
||||||
"previous": "",
|
"previous": "",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": ""
|
"label": ""
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": ""
|
"label": "",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "",
|
"title": "",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": ""
|
"expires": "",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": ""
|
"message": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "",
|
"create": "",
|
||||||
"edit": ""
|
"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": "",
|
"alertNotice": "",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Atcelt",
|
"cancel": "Atcelt",
|
||||||
"delete": "Dzēst",
|
"delete": "Dzēst",
|
||||||
"discard": "",
|
"discard": "",
|
||||||
|
"close": "",
|
||||||
"confirm": "Apstipriniet",
|
"confirm": "Apstipriniet",
|
||||||
"continue": "",
|
"continue": "",
|
||||||
"previous": "Iepriekšējais",
|
"previous": "Iepriekšējais",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": ""
|
"label": ""
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": ""
|
"label": "",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "",
|
"title": "",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": ""
|
"expires": "",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": ""
|
"message": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -612,17 +612,17 @@
|
|||||||
"select": {
|
"select": {
|
||||||
"label": "App selecteren",
|
"label": "App selecteren",
|
||||||
"notFound": "Geen app gevonden",
|
"notFound": "Geen app gevonden",
|
||||||
"search": "",
|
"search": "Zoek naar een app",
|
||||||
"noResults": "",
|
"noResults": "Geen resultaten gevonden voor deze zoekopdracht",
|
||||||
"action": "",
|
"action": "Selecteer {app}",
|
||||||
"title": ""
|
"title": "Selecteer een app om aan dit bord toe te voegen"
|
||||||
},
|
},
|
||||||
"create": {
|
"create": {
|
||||||
"title": "",
|
"title": "Nieuwe app aanmaken",
|
||||||
"description": "",
|
"description": "Een nieuwe app aanmaken ",
|
||||||
"action": ""
|
"action": "Open app aanmaken"
|
||||||
},
|
},
|
||||||
"add": ""
|
"add": "Een app toevoegen"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"integration": {
|
"integration": {
|
||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "Verbinding testen en aanmaken",
|
"create": "Verbinding testen en aanmaken",
|
||||||
"edit": "Verbinding testen en opslaan"
|
"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",
|
"alertNotice": "De opslaan knop wordt ingeschakeld zodra er een succesvolle verbinding tot stand is gebracht",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Annuleren",
|
"cancel": "Annuleren",
|
||||||
"delete": "Verwijderen",
|
"delete": "Verwijderen",
|
||||||
"discard": "Negeren",
|
"discard": "Negeren",
|
||||||
|
"close": "",
|
||||||
"confirm": "Bevestigen",
|
"confirm": "Bevestigen",
|
||||||
"continue": "Doorgaan",
|
"continue": "Doorgaan",
|
||||||
"previous": "Vorige",
|
"previous": "Vorige",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": "Logs"
|
"label": "Logs"
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": "Certificaten"
|
"label": "Certificaten",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "Vertrouwde certificaten",
|
"title": "Vertrouwde certificaten",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": "Verloopt {when}"
|
"expires": "Verloopt {when}",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": "Certificaat kon niet worden verwijderd"
|
"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",
|
"create": "Test tilkobling og opprett",
|
||||||
"edit": "Test tilkobling og lagre"
|
"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",
|
"alertNotice": "Lagre-knappen er aktivert når en vellykket tilkobling er opprettet",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Avbryt",
|
"cancel": "Avbryt",
|
||||||
"delete": "Slett",
|
"delete": "Slett",
|
||||||
"discard": "Forkast",
|
"discard": "Forkast",
|
||||||
|
"close": "",
|
||||||
"confirm": "Bekreft",
|
"confirm": "Bekreft",
|
||||||
"continue": "Fortsett",
|
"continue": "Fortsett",
|
||||||
"previous": "Tidligere",
|
"previous": "Tidligere",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": "Logger"
|
"label": "Logger"
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": "Sertifikater"
|
"label": "Sertifikater",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "Betrodde sertifikater",
|
"title": "Betrodde sertifikater",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": "Utløper {when}"
|
"expires": "Utløper {when}",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": "Sertifikatet kunne ikke fjernes"
|
"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",
|
"create": "Sprawdź połączenie i utwórz",
|
||||||
"edit": "Sprawdź połączenie i zapisz"
|
"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",
|
"alertNotice": "Przycisk Zapisz jest włączony po nawiązaniu pomyślnego połączenia",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Anuluj",
|
"cancel": "Anuluj",
|
||||||
"delete": "Usuń",
|
"delete": "Usuń",
|
||||||
"discard": "Odrzuć",
|
"discard": "Odrzuć",
|
||||||
|
"close": "",
|
||||||
"confirm": "Potwierdź",
|
"confirm": "Potwierdź",
|
||||||
"continue": "Kontynuuj",
|
"continue": "Kontynuuj",
|
||||||
"previous": "Poprzedni",
|
"previous": "Poprzedni",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": ""
|
"label": ""
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": ""
|
"label": "",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "",
|
"title": "",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": ""
|
"expires": "",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": ""
|
"message": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "",
|
"create": "",
|
||||||
"edit": ""
|
"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": "",
|
"alertNotice": "",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Cancelar",
|
"cancel": "Cancelar",
|
||||||
"delete": "Apagar",
|
"delete": "Apagar",
|
||||||
"discard": "",
|
"discard": "",
|
||||||
|
"close": "",
|
||||||
"confirm": "Confirme",
|
"confirm": "Confirme",
|
||||||
"continue": "",
|
"continue": "",
|
||||||
"previous": "Anterior",
|
"previous": "Anterior",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": ""
|
"label": ""
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": ""
|
"label": "",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "",
|
"title": "",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": ""
|
"expires": "",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": ""
|
"message": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "",
|
"create": "",
|
||||||
"edit": ""
|
"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": "",
|
"alertNotice": "",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Anulează",
|
"cancel": "Anulează",
|
||||||
"delete": "Șterge",
|
"delete": "Șterge",
|
||||||
"discard": "",
|
"discard": "",
|
||||||
|
"close": "",
|
||||||
"confirm": "Confirma",
|
"confirm": "Confirma",
|
||||||
"continue": "",
|
"continue": "",
|
||||||
"previous": "Anteriorul",
|
"previous": "Anteriorul",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": ""
|
"label": ""
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": ""
|
"label": "",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "",
|
"title": "",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": ""
|
"expires": "",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": ""
|
"message": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "Проверить подключение и создать",
|
"create": "Проверить подключение и создать",
|
||||||
"edit": "Проверить подключение и сохранить"
|
"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": "Кнопка сохранения станет доступна после успешного подключения",
|
"alertNotice": "Кнопка сохранения станет доступна после успешного подключения",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Отмена",
|
"cancel": "Отмена",
|
||||||
"delete": "Удалить",
|
"delete": "Удалить",
|
||||||
"discard": "Отменить",
|
"discard": "Отменить",
|
||||||
|
"close": "",
|
||||||
"confirm": "Подтвердить",
|
"confirm": "Подтвердить",
|
||||||
"continue": "Продолжить",
|
"continue": "Продолжить",
|
||||||
"previous": "Назад",
|
"previous": "Назад",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": "Логи"
|
"label": "Логи"
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": "Сертификаты"
|
"label": "Сертификаты",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "Доверенные сертификаты",
|
"title": "Доверенные сертификаты",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": "Истекает {when}"
|
"expires": "Истекает {when}",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": "Произошла ошибка при удалении сертификата"
|
"message": "Произошла ошибка при удалении сертификата"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "Otestujte pripojenie a vytvorte",
|
"create": "Otestujte pripojenie a vytvorte",
|
||||||
"edit": "Otestujte pripojenie a uložte"
|
"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.",
|
"alertNotice": "Tlačidlo Uložiť sa aktivuje po úspešnom nadviazaní spojenia.",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Zrušiť",
|
"cancel": "Zrušiť",
|
||||||
"delete": "Vymazať",
|
"delete": "Vymazať",
|
||||||
"discard": "Zahodiť",
|
"discard": "Zahodiť",
|
||||||
|
"close": "",
|
||||||
"confirm": "Potvrďte",
|
"confirm": "Potvrďte",
|
||||||
"continue": "Pokračovať",
|
"continue": "Pokračovať",
|
||||||
"previous": "Predchádzajúci",
|
"previous": "Predchádzajúci",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": "Záznamy"
|
"label": "Záznamy"
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": ""
|
"label": "",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "",
|
"title": "",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": ""
|
"expires": "",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": ""
|
"message": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "",
|
"create": "",
|
||||||
"edit": ""
|
"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": "",
|
"alertNotice": "",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Prekliči",
|
"cancel": "Prekliči",
|
||||||
"delete": "Izbriši",
|
"delete": "Izbriši",
|
||||||
"discard": "",
|
"discard": "",
|
||||||
|
"close": "",
|
||||||
"confirm": "Potrdi",
|
"confirm": "Potrdi",
|
||||||
"continue": "",
|
"continue": "",
|
||||||
"previous": "Prejšnji",
|
"previous": "Prejšnji",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": ""
|
"label": ""
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": ""
|
"label": "",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "",
|
"title": "",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": ""
|
"expires": "",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": ""
|
"message": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "",
|
"create": "",
|
||||||
"edit": ""
|
"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": "",
|
"alertNotice": "",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Avbryt",
|
"cancel": "Avbryt",
|
||||||
"delete": "Ta bort",
|
"delete": "Ta bort",
|
||||||
"discard": "",
|
"discard": "",
|
||||||
|
"close": "",
|
||||||
"confirm": "Bekräfta",
|
"confirm": "Bekräfta",
|
||||||
"continue": "",
|
"continue": "",
|
||||||
"previous": "Föregående",
|
"previous": "Föregående",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": ""
|
"label": ""
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": ""
|
"label": "",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "",
|
"title": "",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": ""
|
"expires": "",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": ""
|
"message": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "Bağlantıyı test et ve oluştur",
|
"create": "Bağlantıyı test et ve oluştur",
|
||||||
"edit": "Bağlantıyı test et ve kaydet"
|
"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",
|
"alertNotice": "Bağlantı başarılı olduğunda Kaydet butonu etkinleştirilir",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Vazgeç",
|
"cancel": "Vazgeç",
|
||||||
"delete": "Sil",
|
"delete": "Sil",
|
||||||
"discard": "Yoksay",
|
"discard": "Yoksay",
|
||||||
|
"close": "Kapat",
|
||||||
"confirm": "Onayla",
|
"confirm": "Onayla",
|
||||||
"continue": "Devam Et",
|
"continue": "Devam Et",
|
||||||
"previous": "Önceki",
|
"previous": "Önceki",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": "Günlükler"
|
"label": "Günlükler"
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": "Sertifikalar"
|
"label": "Sertifikalar",
|
||||||
|
"hostnames": {
|
||||||
|
"label": "Ana makine adları"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"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": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "Güvenilen sertifikalar",
|
"title": "Güvenilen sertifikalar",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "Geçersiz sertifika",
|
"title": "Geçersiz sertifika",
|
||||||
"description": "Sertifika çözümlenemedi"
|
"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": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": "Sertifika kaldırılamadı"
|
"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": "Перевірити підключення та створити",
|
"create": "Перевірити підключення та створити",
|
||||||
"edit": "Перевірити підключення та зберегти"
|
"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": "Кнопка \"Зберегти\" стане доступною після успішного підключення",
|
"alertNotice": "Кнопка \"Зберегти\" стане доступною після успішного підключення",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Скасувати",
|
"cancel": "Скасувати",
|
||||||
"delete": "Видалити",
|
"delete": "Видалити",
|
||||||
"discard": "Відмінити",
|
"discard": "Відмінити",
|
||||||
|
"close": "",
|
||||||
"confirm": "Підтвердити",
|
"confirm": "Підтвердити",
|
||||||
"continue": "Продовжити",
|
"continue": "Продовжити",
|
||||||
"previous": "Попередній",
|
"previous": "Попередній",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": "Логи"
|
"label": "Логи"
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": "Сертифікати"
|
"label": "Сертифікати",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "",
|
"title": "",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": ""
|
"expires": "",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": "Не вдалося видалити сертифікат"
|
"message": "Не вдалося видалити сертифікат"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "",
|
"create": "",
|
||||||
"edit": ""
|
"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": "",
|
"alertNotice": "",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "Hủy",
|
"cancel": "Hủy",
|
||||||
"delete": "Xóa",
|
"delete": "Xóa",
|
||||||
"discard": "",
|
"discard": "",
|
||||||
|
"close": "",
|
||||||
"confirm": "Xác nhận",
|
"confirm": "Xác nhận",
|
||||||
"continue": "",
|
"continue": "",
|
||||||
"previous": "Trước",
|
"previous": "Trước",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": ""
|
"label": ""
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": ""
|
"label": "",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "",
|
"title": "",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "",
|
"title": "",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"expires": ""
|
"expires": "",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": ""
|
"message": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -702,6 +702,132 @@
|
|||||||
"create": "測試連線並創建",
|
"create": "測試連線並創建",
|
||||||
"edit": "測試連線並儲存"
|
"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": "成功建立連線後儲存按鈕將啟用",
|
"alertNotice": "成功建立連線後儲存按鈕將啟用",
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -878,6 +1004,7 @@
|
|||||||
"cancel": "取消",
|
"cancel": "取消",
|
||||||
"delete": "移除",
|
"delete": "移除",
|
||||||
"discard": "丟棄",
|
"discard": "丟棄",
|
||||||
|
"close": "",
|
||||||
"confirm": "確認",
|
"confirm": "確認",
|
||||||
"continue": "繼續",
|
"continue": "繼續",
|
||||||
"previous": "上一步",
|
"previous": "上一步",
|
||||||
@@ -3496,7 +3623,10 @@
|
|||||||
"label": "Logs"
|
"label": "Logs"
|
||||||
},
|
},
|
||||||
"certificates": {
|
"certificates": {
|
||||||
"label": "憑證"
|
"label": "憑證",
|
||||||
|
"hostnames": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -3894,6 +4024,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"certificate": {
|
"certificate": {
|
||||||
|
"field": {
|
||||||
|
"hostname": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validFrom": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"validTo": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"serialNumber": {
|
||||||
|
"label": ""
|
||||||
|
},
|
||||||
|
"fingerprint": {
|
||||||
|
"label": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"list": {
|
"list": {
|
||||||
"title": "可信任的憑證",
|
"title": "可信任的憑證",
|
||||||
@@ -3905,7 +4058,16 @@
|
|||||||
"title": "無效的證書",
|
"title": "無效的證書",
|
||||||
"description": "解析證書失敗"
|
"description": "解析證書失敗"
|
||||||
},
|
},
|
||||||
"expires": "到期 {when}"
|
"expires": "到期 {when}",
|
||||||
|
"toHostnames": ""
|
||||||
|
},
|
||||||
|
"hostnames": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"noResults": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"toCertificates": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
@@ -3935,6 +4097,20 @@
|
|||||||
"message": "此憑證無法被移除"
|
"message": "此憑證無法被移除"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"removeHostname": {
|
||||||
|
"label": "",
|
||||||
|
"confirm": "",
|
||||||
|
"notification": {
|
||||||
|
"success": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "",
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
"@mantine/core": "^8.0.1",
|
"@mantine/core": "^8.0.1",
|
||||||
"@mantine/dates": "^8.0.1",
|
"@mantine/dates": "^8.0.1",
|
||||||
"@mantine/hooks": "^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",
|
"mantine-react-table": "2.0.0-beta.9",
|
||||||
"next": "15.3.2",
|
"next": "15.3.2",
|
||||||
"react": "19.1.0",
|
"react": "19.1.0",
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"@types/css-modules": "^1.0.5",
|
"@types/css-modules": "^1.0.5",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,14 +24,14 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@homarr/definitions": "workspace:^0.1.0",
|
"@homarr/definitions": "workspace:^0.1.0",
|
||||||
"@homarr/translation": "workspace:^0.1.0",
|
"@homarr/translation": "workspace:^0.1.0",
|
||||||
"zod": "^3.24.4",
|
"zod": "^3.25.23",
|
||||||
"zod-form-data": "^2.0.7"
|
"zod-form-data": "^2.0.7"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,7 @@
|
|||||||
"@homarr/common": "workspace:^0.1.0",
|
"@homarr/common": "workspace:^0.1.0",
|
||||||
"@homarr/db": "workspace:^0.1.0",
|
"@homarr/db": "workspace:^0.1.0",
|
||||||
"@homarr/definitions": "workspace:^0.1.0",
|
"@homarr/definitions": "workspace:^0.1.0",
|
||||||
|
"@homarr/docker": "workspace:^0.1.0",
|
||||||
"@homarr/form": "workspace:^0.1.0",
|
"@homarr/form": "workspace:^0.1.0",
|
||||||
"@homarr/forms-collection": "workspace:^0.1.0",
|
"@homarr/forms-collection": "workspace:^0.1.0",
|
||||||
"@homarr/integrations": "workspace:^0.1.0",
|
"@homarr/integrations": "workspace:^0.1.0",
|
||||||
@@ -50,7 +51,7 @@
|
|||||||
"@mantine/charts": "^8.0.1",
|
"@mantine/charts": "^8.0.1",
|
||||||
"@mantine/core": "^8.0.1",
|
"@mantine/core": "^8.0.1",
|
||||||
"@mantine/hooks": "^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-color": "2.12.0",
|
||||||
"@tiptap/extension-highlight": "2.12.0",
|
"@tiptap/extension-highlight": "2.12.0",
|
||||||
"@tiptap/extension-image": "2.12.0",
|
"@tiptap/extension-image": "2.12.0",
|
||||||
@@ -75,14 +76,14 @@
|
|||||||
"react-markdown": "^10.1.0",
|
"react-markdown": "^10.1.0",
|
||||||
"recharts": "^2.15.3",
|
"recharts": "^2.15.3",
|
||||||
"video.js": "^8.22.0",
|
"video.js": "^8.22.0",
|
||||||
"zod": "^3.24.4"
|
"zod": "^3.25.23"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@homarr/eslint-config": "workspace:^0.2.0",
|
"@homarr/eslint-config": "workspace:^0.2.0",
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"@types/video.js": "^7.3.58",
|
"@types/video.js": "^7.3.58",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"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 { useI18n } from "@homarr/translation/client";
|
||||||
import type { TablerIcon } from "@homarr/ui";
|
import type { TablerIcon } from "@homarr/ui";
|
||||||
|
|
||||||
interface BaseWidgetErrorProps {
|
export interface BaseWidgetErrorProps {
|
||||||
icon: TablerIcon;
|
icon: TablerIcon;
|
||||||
message: stringOrTranslation;
|
message: stringOrTranslation;
|
||||||
showLogsLink?: boolean;
|
showLogsLink?: boolean;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { useMemo } from "react";
|
import { useMemo } from "react";
|
||||||
import { IconExclamationCircle } from "@tabler/icons-react";
|
import { IconExclamationCircle, IconShield } from "@tabler/icons-react";
|
||||||
import { TRPCClientError } from "@trpc/client";
|
import { TRPCClientError } from "@trpc/client";
|
||||||
import type { DefaultErrorData } from "@trpc/server/unstable-core-do-not-import";
|
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 type { WidgetDefinition } from "..";
|
||||||
import { widgetImports } from "..";
|
import { widgetImports } from "..";
|
||||||
import { ErrorBoundaryError } from "./base";
|
import { ErrorBoundaryError } from "./base";
|
||||||
|
import type { BaseWidgetErrorProps } from "./base-component";
|
||||||
import { BaseWidgetError } from "./base-component";
|
import { BaseWidgetError } from "./base-component";
|
||||||
|
|
||||||
interface WidgetErrorProps {
|
interface WidgetErrorProps {
|
||||||
@@ -23,28 +24,58 @@ export const WidgetError = ({ error, resetErrorBoundary, kind }: WidgetErrorProp
|
|||||||
return <BaseWidgetError {...error.getErrorBoundaryData()} onRetry={resetErrorBoundary} />;
|
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
|
<BaseWidgetError
|
||||||
icon={IconExclamationCircle}
|
icon={IconExclamationCircle}
|
||||||
message={(error as { toString: () => string }).toString()}
|
message={(error as { toString: () => string }).toString()}
|
||||||
onRetry={resetErrorBoundary}
|
onRetry={resetErrorBoundary}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
};
|
||||||
|
|
||||||
if (error instanceof TRPCClientError && "code" in error.data) {
|
const handleWidgetTrpcError = (
|
||||||
const errorData = error.data as DefaultErrorData;
|
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;
|
if (!("errors" in currentDefinition) || currentDefinition.errors === undefined) return null;
|
||||||
const errorDefinition = errors[errorData.code];
|
|
||||||
|
|
||||||
if (!errorDefinition) return commonFallbackError;
|
const errors: Exclude<WidgetDefinition["errors"], undefined> = currentDefinition.errors;
|
||||||
|
const errorDefinition = errors[errorData.code];
|
||||||
|
|
||||||
return (
|
if (!errorDefinition) return null;
|
||||||
<BaseWidgetError {...errorDefinition} onRetry={resetErrorBoundary} showLogsLink={!errorDefinition.hideLogsLink} />
|
|
||||||
);
|
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 type { WidgetComponentProps } from "./definition";
|
||||||
import * as dnsHoleControls from "./dns-hole/controls";
|
import * as dnsHoleControls from "./dns-hole/controls";
|
||||||
import * as dnsHoleSummary from "./dns-hole/summary";
|
import * as dnsHoleSummary from "./dns-hole/summary";
|
||||||
|
import * as dockerContainers from "./docker";
|
||||||
import * as downloads from "./downloads";
|
import * as downloads from "./downloads";
|
||||||
import * as healthMonitoring from "./health-monitoring";
|
import * as healthMonitoring from "./health-monitoring";
|
||||||
import * as iframe from "./iframe";
|
import * as iframe from "./iframe";
|
||||||
@@ -64,6 +65,7 @@ export const widgetImports = {
|
|||||||
healthMonitoring,
|
healthMonitoring,
|
||||||
mediaTranscoding,
|
mediaTranscoding,
|
||||||
minecraftServerStatus,
|
minecraftServerStatus,
|
||||||
|
dockerContainers,
|
||||||
releases,
|
releases,
|
||||||
} satisfies WidgetImportRecord;
|
} satisfies WidgetImportRecord;
|
||||||
|
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ export default function ReleasesWidget({ options }: WidgetComponentProps<"releas
|
|||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Stack gap={0}>
|
<Stack gap={0} className="releases">
|
||||||
{repositories.map((repository: ReleasesRepositoryResponse) => {
|
{repositories.map((repository: ReleasesRepositoryResponse) => {
|
||||||
const isActive =
|
const isActive =
|
||||||
expandedRepository.providerKey === repository.providerKey &&
|
expandedRepository.providerKey === repository.providerKey &&
|
||||||
@@ -139,17 +139,23 @@ export default function ReleasesWidget({ options }: WidgetComponentProps<"releas
|
|||||||
return (
|
return (
|
||||||
<Stack
|
<Stack
|
||||||
key={`${repository.providerKey}.${repository.identifier}`}
|
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}
|
gap={0}
|
||||||
>
|
>
|
||||||
<Group
|
<Group
|
||||||
className={combineClasses(classes.releasesRepositoryHeader, {
|
className={combineClasses("releases-repository-header", classes.releasesRepositoryHeader, {
|
||||||
[classes.active ?? ""]: isActive,
|
[classes.active ?? ""]: isActive,
|
||||||
})}
|
})}
|
||||||
p="xs"
|
p="xs"
|
||||||
onClick={() => toggleExpandedRepository(repository)}
|
onClick={() => toggleExpandedRepository(repository)}
|
||||||
>
|
>
|
||||||
<MaskedOrNormalImage
|
<MaskedOrNormalImage
|
||||||
|
className="releases-repository-header-icon"
|
||||||
imageUrl={repository.iconUrl ?? Providers[repository.providerKey]?.iconUrl}
|
imageUrl={repository.iconUrl ?? Providers[repository.providerKey]?.iconUrl}
|
||||||
hasColor={hasIconColor}
|
hasColor={hasIconColor}
|
||||||
style={{
|
style={{
|
||||||
@@ -158,24 +164,40 @@ export default function ReleasesWidget({ options }: WidgetComponentProps<"releas
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Group gap={5} justify="space-between" style={{ flex: 1 }}>
|
<Group
|
||||||
{/* eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing */}
|
className="releases-repository-header-nameVersion-wrapper"
|
||||||
<Text size="xs">{repository.name || repository.identifier}</Text>
|
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
|
<Tooltip
|
||||||
|
className="releases-repository-header-version-tooltip"
|
||||||
withArrow
|
withArrow
|
||||||
arrowSize={5}
|
arrowSize={5}
|
||||||
label={repository.latestRelease}
|
label={repository.latestRelease}
|
||||||
events={{ hover: repository.latestRelease !== undefined, focus: false, touch: false }}
|
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"))}
|
{hasError ? t("error.label") : (repository.latestRelease ?? t("not-found"))}
|
||||||
</Text>
|
</Text>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</Group>
|
</Group>
|
||||||
|
|
||||||
<Group gap={5}>
|
<Group className="releases-repository-header-releaseDate-wrapper" gap={5}>
|
||||||
<Text
|
<Text
|
||||||
|
className="releases-repository-header-releaseDate"
|
||||||
size="xs"
|
size="xs"
|
||||||
c={repository.isNewRelease ? "primaryColor" : repository.isStaleRelease ? "secondaryColor" : "dimmed"}
|
c={repository.isNewRelease ? "primaryColor" : repository.isStaleRelease ? "secondaryColor" : "dimmed"}
|
||||||
>
|
>
|
||||||
@@ -189,6 +211,7 @@ export default function ReleasesWidget({ options }: WidgetComponentProps<"releas
|
|||||||
{!hasError ? (
|
{!hasError ? (
|
||||||
(repository.isNewRelease || repository.isStaleRelease) && (
|
(repository.isNewRelease || repository.isStaleRelease) && (
|
||||||
<IconCircleFilled
|
<IconCircleFilled
|
||||||
|
className="releases-repository-header-releaseDate-marker"
|
||||||
size={10}
|
size={10}
|
||||||
color={
|
color={
|
||||||
repository.isNewRelease
|
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>
|
||||||
</Group>
|
</Group>
|
||||||
@@ -206,7 +233,7 @@ export default function ReleasesWidget({ options }: WidgetComponentProps<"releas
|
|||||||
<DetailsDisplay repository={repository} toggleExpandedRepository={toggleExpandedRepository} />
|
<DetailsDisplay repository={repository} toggleExpandedRepository={toggleExpandedRepository} />
|
||||||
)}
|
)}
|
||||||
{isActive && <ExpandedDisplay repository={repository} hasIconColor={hasIconColor} />}
|
{isActive && <ExpandedDisplay repository={repository} hasIconColor={hasIconColor} />}
|
||||||
<Divider />
|
<Divider className="releases-repository-divider" />
|
||||||
</Stack>
|
</Stack>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
@@ -225,16 +252,28 @@ const DetailsDisplay = ({ repository, toggleExpandedRepository }: DetailsDisplay
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Divider onClick={() => toggleExpandedRepository(repository)} />
|
<Divider className="releases-repository-details-divider" onClick={() => toggleExpandedRepository(repository)} />
|
||||||
<Group
|
<Group
|
||||||
className={classes.releasesRepositoryDetails}
|
className={combineClasses("releases-repository-details", classes.releasesRepositoryDetails)}
|
||||||
justify="space-between"
|
justify="space-between"
|
||||||
p={5}
|
p={5}
|
||||||
onClick={() => toggleExpandedRepository(repository)}
|
onClick={() => toggleExpandedRepository(repository)}
|
||||||
>
|
>
|
||||||
<Group>
|
<Group className="releases-repository-details-icon-wrapper">
|
||||||
<Tooltip label={t("pre-release")} withArrow arrowSize={5}>
|
<Tooltip
|
||||||
|
className={combineClasses(
|
||||||
|
"releases-repository-details-icon-tooltip",
|
||||||
|
"releases-repository-details-icon-preRelease-tooltip",
|
||||||
|
)}
|
||||||
|
label={t("pre-release")}
|
||||||
|
withArrow
|
||||||
|
arrowSize={5}
|
||||||
|
>
|
||||||
<IconProgressCheck
|
<IconProgressCheck
|
||||||
|
className={combineClasses(
|
||||||
|
"releases-repository-details-icon",
|
||||||
|
"releases-repository-details-icon-preRelease",
|
||||||
|
)}
|
||||||
size={13}
|
size={13}
|
||||||
color={
|
color={
|
||||||
repository.isPreRelease ? "var(--mantine-color-secondaryColor-text)" : "var(--mantine-color-dimmed)"
|
repository.isPreRelease ? "var(--mantine-color-secondaryColor-text)" : "var(--mantine-color-dimmed)"
|
||||||
@@ -242,28 +281,74 @@ const DetailsDisplay = ({ repository, toggleExpandedRepository }: DetailsDisplay
|
|||||||
/>
|
/>
|
||||||
</Tooltip>
|
</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
|
<IconArchive
|
||||||
|
className={combineClasses(
|
||||||
|
"releases-repository-details-icon",
|
||||||
|
"releases-repository-details-icon-archived",
|
||||||
|
)}
|
||||||
size={13}
|
size={13}
|
||||||
color={repository.isArchived ? "var(--mantine-color-secondaryColor-text)" : "var(--mantine-color-dimmed)"}
|
color={repository.isArchived ? "var(--mantine-color-secondaryColor-text)" : "var(--mantine-color-dimmed)"}
|
||||||
/>
|
/>
|
||||||
</Tooltip>
|
</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
|
<IconGitFork
|
||||||
|
className={combineClasses("releases-repository-details-icon", "releases-repository-details-icon-forked")}
|
||||||
size={13}
|
size={13}
|
||||||
color={repository.isFork ? "var(--mantine-color-secondaryColor-text)" : "var(--mantine-color-dimmed)"}
|
color={repository.isFork ? "var(--mantine-color-secondaryColor-text)" : "var(--mantine-color-dimmed)"}
|
||||||
/>
|
/>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group className="releases-repository-details-stats">
|
||||||
<Tooltip label={t("starsCount")} withArrow arrowSize={5}>
|
<Tooltip
|
||||||
<Group gap={5}>
|
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
|
<IconStar
|
||||||
|
className={combineClasses(
|
||||||
|
"releases-repository-details-stats-icon",
|
||||||
|
"releases-repository-details-stats-stars-icon",
|
||||||
|
)}
|
||||||
size={12}
|
size={12}
|
||||||
color={!repository.starsCount ? "var(--mantine-color-dimmed)" : "var(--mantine-color-text)"}
|
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
|
{!repository.starsCount
|
||||||
? "-"
|
? "-"
|
||||||
: formatter.number(repository.starsCount, {
|
: formatter.number(repository.starsCount, {
|
||||||
@@ -274,13 +359,38 @@ const DetailsDisplay = ({ repository, toggleExpandedRepository }: DetailsDisplay
|
|||||||
</Group>
|
</Group>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
|
||||||
<Tooltip label={t("forksCount")} withArrow arrowSize={5}>
|
<Tooltip
|
||||||
<Group gap={5}>
|
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
|
<IconGitFork
|
||||||
|
className={combineClasses(
|
||||||
|
"releases-repository-details-stats-icon",
|
||||||
|
"releases-repository-details-stats-forks-icon",
|
||||||
|
)}
|
||||||
size={12}
|
size={12}
|
||||||
color={!repository.forksCount ? "var(--mantine-color-dimmed)" : "var(--mantine-color-text)"}
|
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
|
{!repository.forksCount
|
||||||
? "-"
|
? "-"
|
||||||
: formatter.number(repository.forksCount, {
|
: formatter.number(repository.forksCount, {
|
||||||
@@ -291,13 +401,38 @@ const DetailsDisplay = ({ repository, toggleExpandedRepository }: DetailsDisplay
|
|||||||
</Group>
|
</Group>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
|
||||||
<Tooltip label={t("issuesCount")} withArrow arrowSize={5}>
|
<Tooltip
|
||||||
<Group gap={5}>
|
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
|
<IconCircleDot
|
||||||
|
className={combineClasses(
|
||||||
|
"releases-repository-details-stats-icon",
|
||||||
|
"releases-repository-details-stats-issues-icon",
|
||||||
|
)}
|
||||||
size={12}
|
size={12}
|
||||||
color={!repository.openIssues ? "var(--mantine-color-dimmed)" : "var(--mantine-color-text)"}
|
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
|
{!repository.openIssues
|
||||||
? "-"
|
? "-"
|
||||||
: formatter.number(repository.openIssues, {
|
: formatter.number(repository.openIssues, {
|
||||||
@@ -325,11 +460,20 @@ const ExpandedDisplay = ({ repository, hasIconColor }: ExtendedDisplayProps) =>
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Divider mx={5} />
|
<Divider className="releases-repository-expanded-divider" mx={5} />
|
||||||
<Stack className={classes.releasesRepositoryExpanded} gap={0} p={10}>
|
<Stack
|
||||||
<Group justify="space-between" align="center">
|
className={combineClasses("releases-repository-expanded", classes.releasesRepositoryExpanded)}
|
||||||
<Group gap={5} align="center">
|
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
|
<MaskedOrNormalImage
|
||||||
|
className="releases-repository-expanded-header-provider-icon"
|
||||||
imageUrl={Providers[repository.providerKey]?.iconUrl}
|
imageUrl={Providers[repository.providerKey]?.iconUrl}
|
||||||
hasColor={hasIconColor}
|
hasColor={hasIconColor}
|
||||||
style={{
|
style={{
|
||||||
@@ -337,61 +481,72 @@ const ExpandedDisplay = ({ repository, hasIconColor }: ExtendedDisplayProps) =>
|
|||||||
aspectRatio: "1/1",
|
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}
|
{Providers[repository.providerKey]?.name}
|
||||||
</Text>
|
</Text>
|
||||||
</Group>
|
</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>
|
</Group>
|
||||||
|
|
||||||
<Text size="xs" c="iconColor" ff="monospace">
|
{repository.createdAt && (
|
||||||
{repository.identifier}
|
<Text className="releases-repository-expanded-createdAt" size="xs" c="dimmed" ff="monospace">
|
||||||
</Text>
|
<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) && (
|
{(repository.releaseUrl ?? repository.projectUrl) && (
|
||||||
<>
|
<>
|
||||||
<Divider my={10} mx="30%" />
|
<Divider className="releases-repository-expanded-openButton-divider" mx="30%" />
|
||||||
<Button
|
<Button
|
||||||
|
className="releases-repository-expanded-openButton"
|
||||||
variant="light"
|
variant="light"
|
||||||
component="a"
|
component="a"
|
||||||
href={repository.releaseUrl ?? repository.projectUrl}
|
href={repository.releaseUrl ?? repository.projectUrl}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
>
|
>
|
||||||
<IconExternalLink />
|
<IconExternalLink className="releases-repository-expanded-openButton-icon" />
|
||||||
{repository.releaseUrl ? t("openReleasePage") : t("openProjectPage")}
|
<Text className="releases-repository-expanded-openButton-text">
|
||||||
|
{repository.releaseUrl ? t("openReleasePage") : t("openProjectPage")}
|
||||||
|
</Text>
|
||||||
</Button>
|
</Button>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
{repository.error && (
|
{repository.error && (
|
||||||
<>
|
<>
|
||||||
<Divider my={10} mx="30%" />
|
<Divider className="releases-repository-expanded-error-divider" mx="30%" />
|
||||||
<Title order={4} ta="center">
|
<Title className="releases-repository-expanded-error-title" order={4} ta="center">
|
||||||
{t("error.label")}
|
{t("error.label")}
|
||||||
</Title>
|
</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}
|
{repository.error.code ? t(`error.options.${repository.error.code}` as never) : repository.error.message}
|
||||||
</Text>
|
</Text>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
{repository.releaseDescription && (
|
{repository.releaseDescription && (
|
||||||
<>
|
<>
|
||||||
<Divider my={10} mx="30%" />
|
<Divider className="releases-repository-expanded-description-divider" my={10} mx="30%" />
|
||||||
<Title order={4} ta="center">
|
<Title className="releases-repository-expanded-description-title" order={4} ta="center">
|
||||||
{t("releaseDescription")}
|
{t("releaseDescription")}
|
||||||
</Title>
|
</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>
|
<ReactMarkdown skipHtml>{repository.releaseDescription}</ReactMarkdown>
|
||||||
</Text>
|
</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": {
|
"devDependencies": {
|
||||||
"@homarr/prettier-config": "workspace:^0.1.0",
|
"@homarr/prettier-config": "workspace:^0.1.0",
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.27.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"prettier-plugin-packagejson": "^2.5.13",
|
"prettier-plugin-packagejson": "^2.5.14",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user