chore(release): automatic release v1.41.0
This commit is contained in:
1
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
1
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -33,6 +33,7 @@ body:
|
|||||||
options:
|
options:
|
||||||
# The below comment is used to insert a new version with on-release.yml
|
# The below comment is used to insert a new version with on-release.yml
|
||||||
#NEXT_VERSION#
|
#NEXT_VERSION#
|
||||||
|
- 1.40.0
|
||||||
- 1.39.0
|
- 1.39.0
|
||||||
- 1.38.0
|
- 1.38.0
|
||||||
- 1.37.0
|
- 1.37.0
|
||||||
|
|||||||
@@ -50,12 +50,12 @@
|
|||||||
"@homarr/ui": "workspace:^0.1.0",
|
"@homarr/ui": "workspace:^0.1.0",
|
||||||
"@homarr/validation": "workspace:^0.1.0",
|
"@homarr/validation": "workspace:^0.1.0",
|
||||||
"@homarr/widgets": "workspace:^0.1.0",
|
"@homarr/widgets": "workspace:^0.1.0",
|
||||||
"@mantine/colors-generator": "^8.3.2",
|
"@mantine/colors-generator": "^8.3.3",
|
||||||
"@mantine/core": "^8.3.2",
|
"@mantine/core": "^8.3.3",
|
||||||
"@mantine/dropzone": "^8.3.2",
|
"@mantine/dropzone": "^8.3.3",
|
||||||
"@mantine/hooks": "^8.3.2",
|
"@mantine/hooks": "^8.3.3",
|
||||||
"@mantine/modals": "^8.3.2",
|
"@mantine/modals": "^8.3.3",
|
||||||
"@mantine/tiptap": "^8.3.2",
|
"@mantine/tiptap": "^8.3.3",
|
||||||
"@million/lint": "1.0.14",
|
"@million/lint": "1.0.14",
|
||||||
"@tabler/icons-react": "^3.35.0",
|
"@tabler/icons-react": "^3.35.0",
|
||||||
"@tanstack/react-query": "^5.90.2",
|
"@tanstack/react-query": "^5.90.2",
|
||||||
@@ -71,7 +71,7 @@
|
|||||||
"chroma-js": "^3.1.2",
|
"chroma-js": "^3.1.2",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
"dayjs": "^1.11.18",
|
"dayjs": "^1.11.18",
|
||||||
"dotenv": "^17.2.2",
|
"dotenv": "^17.2.3",
|
||||||
"flag-icons": "^7.5.0",
|
"flag-icons": "^7.5.0",
|
||||||
"glob": "^11.0.3",
|
"glob": "^11.0.3",
|
||||||
"jotai": "^2.15.0",
|
"jotai": "^2.15.0",
|
||||||
@@ -79,13 +79,13 @@
|
|||||||
"next": "15.5.4",
|
"next": "15.5.4",
|
||||||
"postcss-preset-mantine": "^1.18.0",
|
"postcss-preset-mantine": "^1.18.0",
|
||||||
"prismjs": "^1.30.0",
|
"prismjs": "^1.30.0",
|
||||||
"react": "19.1.1",
|
"react": "19.2.0",
|
||||||
"react-dom": "19.1.1",
|
"react-dom": "19.2.0",
|
||||||
"react-error-boundary": "^6.0.0",
|
"react-error-boundary": "^6.0.0",
|
||||||
"react-simple-code-editor": "^0.14.1",
|
"react-simple-code-editor": "^0.14.1",
|
||||||
"sass": "^1.93.2",
|
"sass": "^1.93.2",
|
||||||
"superjson": "2.2.2",
|
"superjson": "2.2.2",
|
||||||
"swagger-ui-react": "^5.29.0",
|
"swagger-ui-react": "^5.29.3",
|
||||||
"use-deep-compare-effect": "^1.8.1",
|
"use-deep-compare-effect": "^1.8.1",
|
||||||
"zod": "^4.1.11"
|
"zod": "^4.1.11"
|
||||||
},
|
},
|
||||||
@@ -94,15 +94,15 @@
|
|||||||
"@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.18.7",
|
"@types/node": "^22.18.8",
|
||||||
"@types/prismjs": "^1.26.5",
|
"@types/prismjs": "^1.26.5",
|
||||||
"@types/react": "19.1.15",
|
"@types/react": "19.2.0",
|
||||||
"@types/react-dom": "19.1.9",
|
"@types/react-dom": "19.2.0",
|
||||||
"@types/swagger-ui-react": "^5.18.0",
|
"@types/swagger-ui-react": "^5.18.0",
|
||||||
"concurrently": "^9.2.1",
|
"concurrently": "^9.2.1",
|
||||||
"eslint": "^9.36.0",
|
"eslint": "^9.37.0",
|
||||||
"node-loader": "^2.1.0",
|
"node-loader": "^2.1.0",
|
||||||
"prettier": "^3.6.2",
|
"prettier": "^3.6.2",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,62 @@
|
|||||||
|
import { useCallback } from "react";
|
||||||
|
import { SegmentedControl } from "@mantine/core";
|
||||||
|
|
||||||
|
import type { IntegrationSecretKind } from "@homarr/definitions";
|
||||||
|
import type { UseFormReturnType } from "@homarr/form";
|
||||||
|
import { useScopedI18n } from "@homarr/translation/client";
|
||||||
|
|
||||||
|
interface FormType {
|
||||||
|
secrets: { kind: IntegrationSecretKind; value: string | null }[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface SecretKindsSegmentedControlProps<TFormType extends FormType> {
|
||||||
|
defaultKinds?: IntegrationSecretKind[];
|
||||||
|
secretKinds: IntegrationSecretKind[][];
|
||||||
|
form: UseFormReturnType<TFormType, (values: TFormType) => TFormType>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const SecretKindsSegmentedControl = <TFormType extends FormType>({
|
||||||
|
defaultKinds,
|
||||||
|
secretKinds,
|
||||||
|
form,
|
||||||
|
}: SecretKindsSegmentedControlProps<TFormType>) => {
|
||||||
|
const t = useScopedI18n("integration.secrets");
|
||||||
|
|
||||||
|
const defaultValue = defaultKinds?.length === 0 ? "empty" : defaultKinds?.join("-");
|
||||||
|
const secretKindGroups = secretKinds.map((kinds) => ({
|
||||||
|
label:
|
||||||
|
kinds.length === 0
|
||||||
|
? t("noSecretsRequired.segmentTitle")
|
||||||
|
: kinds.map((kind) => t(`kind.${kind}.label`)).join(" & "),
|
||||||
|
value: kinds.length === 0 ? "empty" : kinds.join("-"),
|
||||||
|
}));
|
||||||
|
|
||||||
|
const onChange = useCallback(
|
||||||
|
(value: string) => {
|
||||||
|
if (value === "empty") {
|
||||||
|
const emptyValues = [] satisfies FormType["secrets"];
|
||||||
|
// @ts-expect-error somehow it is not able to understand that secrets is an array?
|
||||||
|
form.setFieldValue("secrets", emptyValues);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const kinds = value.split("-") as IntegrationSecretKind[];
|
||||||
|
const secrets = kinds.map((kind) => ({
|
||||||
|
kind,
|
||||||
|
value: "",
|
||||||
|
})) satisfies FormType["secrets"];
|
||||||
|
// @ts-expect-error somehow it is not able to understand that secrets is an array?
|
||||||
|
form.setFieldValue("secrets", secrets);
|
||||||
|
},
|
||||||
|
[form],
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<SegmentedControl
|
||||||
|
fullWidth
|
||||||
|
data={secretKindGroups}
|
||||||
|
defaultValue={defaultValue}
|
||||||
|
onChange={onChange}
|
||||||
|
></SegmentedControl>
|
||||||
|
);
|
||||||
|
};
|
||||||
@@ -3,7 +3,8 @@
|
|||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import { useRouter } from "next/navigation";
|
import { useRouter } from "next/navigation";
|
||||||
import { Button, Fieldset, Group, Stack, TextInput } from "@mantine/core";
|
import { Alert, Button, Fieldset, Group, Stack, Text, TextInput } from "@mantine/core";
|
||||||
|
import { IconInfoCircle } from "@tabler/icons-react";
|
||||||
import type { z } from "zod/v4";
|
import type { z } from "zod/v4";
|
||||||
|
|
||||||
import type { RouterOutputs } from "@homarr/api";
|
import type { RouterOutputs } from "@homarr/api";
|
||||||
@@ -18,6 +19,7 @@ import { integrationUpdateSchema } from "@homarr/validation/integration";
|
|||||||
|
|
||||||
import { SecretCard } from "../../_components/secrets/integration-secret-card";
|
import { SecretCard } from "../../_components/secrets/integration-secret-card";
|
||||||
import { IntegrationSecretInput } from "../../_components/secrets/integration-secret-inputs";
|
import { IntegrationSecretInput } from "../../_components/secrets/integration-secret-inputs";
|
||||||
|
import { SecretKindsSegmentedControl } from "../../_components/secrets/integration-secret-segmented-control";
|
||||||
import { IntegrationTestConnectionError } from "../../_components/test-connection/integration-test-connection-error";
|
import { IntegrationTestConnectionError } from "../../_components/test-connection/integration-test-connection-error";
|
||||||
import type { AnyMappedTestConnectionError } from "../../_components/test-connection/types";
|
import type { AnyMappedTestConnectionError } from "../../_components/test-connection/types";
|
||||||
|
|
||||||
@@ -28,19 +30,21 @@ interface EditIntegrationForm {
|
|||||||
export const EditIntegrationForm = ({ integration }: EditIntegrationForm) => {
|
export const EditIntegrationForm = ({ integration }: EditIntegrationForm) => {
|
||||||
const t = useI18n();
|
const t = useI18n();
|
||||||
const { openConfirmModal } = useConfirmModal();
|
const { openConfirmModal } = useConfirmModal();
|
||||||
const secretsKinds =
|
const allSecretKinds = getAllSecretKindOptions(integration.kind);
|
||||||
|
|
||||||
|
const initialSecretsKinds =
|
||||||
getAllSecretKindOptions(integration.kind).find((secretKinds) =>
|
getAllSecretKindOptions(integration.kind).find((secretKinds) =>
|
||||||
integration.secrets.every((secret) => secretKinds.includes(secret.kind)),
|
integration.secrets.every((secret) => secretKinds.includes(secret.kind)),
|
||||||
) ?? getDefaultSecretKinds(integration.kind);
|
) ?? getDefaultSecretKinds(integration.kind);
|
||||||
|
|
||||||
const hasUrlSecret = secretsKinds.includes("url");
|
const hasUrlSecret = initialSecretsKinds.includes("url");
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const form = useZodForm(integrationUpdateSchema.omit({ id: true }), {
|
const form = useZodForm(integrationUpdateSchema.omit({ id: true }), {
|
||||||
initialValues: {
|
initialValues: {
|
||||||
name: integration.name,
|
name: integration.name,
|
||||||
url: integration.url,
|
url: integration.url,
|
||||||
secrets: secretsKinds.map((kind) => ({
|
secrets: initialSecretsKinds.map((kind) => ({
|
||||||
kind,
|
kind,
|
||||||
value: integration.secrets.find((secret) => secret.kind === kind)?.value ?? "",
|
value: integration.secrets.find((secret) => secret.kind === kind)?.value ?? "",
|
||||||
})),
|
})),
|
||||||
@@ -93,6 +97,10 @@ export const EditIntegrationForm = ({ integration }: EditIntegrationForm) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const isInitialSecretKinds =
|
||||||
|
initialSecretsKinds.every((kind) => form.values.secrets.some((secret) => secret.kind === kind)) &&
|
||||||
|
form.values.secrets.length === initialSecretsKinds.length;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<form onSubmit={form.onSubmit((values) => void handleSubmitAsync(values))}>
|
<form onSubmit={form.onSubmit((values) => void handleSubmitAsync(values))}>
|
||||||
<Stack>
|
<Stack>
|
||||||
@@ -104,36 +112,60 @@ export const EditIntegrationForm = ({ integration }: EditIntegrationForm) => {
|
|||||||
|
|
||||||
<Fieldset legend={t("integration.secrets.title")}>
|
<Fieldset legend={t("integration.secrets.title")}>
|
||||||
<Stack gap="sm">
|
<Stack gap="sm">
|
||||||
{secretsKinds.map((kind, index) => (
|
{allSecretKinds.length > 1 && (
|
||||||
<SecretCard
|
<SecretKindsSegmentedControl
|
||||||
key={kind}
|
defaultKinds={initialSecretsKinds}
|
||||||
secret={secretsMap.get(kind) ?? { kind, value: null, updatedAt: null }}
|
secretKinds={allSecretKinds}
|
||||||
onCancel={() =>
|
form={form}
|
||||||
new Promise((resolve) => {
|
/>
|
||||||
// When nothing changed, just close the secret card
|
)}
|
||||||
if ((form.values.secrets[index]?.value ?? "") === (secretsMap.get(kind)?.value ?? "")) {
|
{!isInitialSecretKinds
|
||||||
return resolve(true);
|
? null
|
||||||
|
: form.values.secrets.map((secret, index) => (
|
||||||
|
<SecretCard
|
||||||
|
key={secret.kind}
|
||||||
|
secret={secretsMap.get(secret.kind) ?? { kind: secret.kind, value: null, updatedAt: null }}
|
||||||
|
onCancel={() =>
|
||||||
|
new Promise((resolve) => {
|
||||||
|
// When nothing changed, just close the secret card
|
||||||
|
if ((secret.value ?? "") === (secretsMap.get(secret.kind)?.value ?? "")) {
|
||||||
|
return resolve(true);
|
||||||
|
}
|
||||||
|
openConfirmModal({
|
||||||
|
title: t("integration.secrets.reset.title"),
|
||||||
|
children: t("integration.secrets.reset.message"),
|
||||||
|
onCancel: () => resolve(false),
|
||||||
|
onConfirm: () => {
|
||||||
|
form.setFieldValue(`secrets.${index}.value`, secretsMap.get(secret.kind)?.value ?? "");
|
||||||
|
resolve(true);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
})
|
||||||
}
|
}
|
||||||
openConfirmModal({
|
>
|
||||||
title: t("integration.secrets.reset.title"),
|
<IntegrationSecretInput
|
||||||
children: t("integration.secrets.reset.message"),
|
label={t(`integration.secrets.kind.${secret.kind}.newLabel`)}
|
||||||
onCancel: () => resolve(false),
|
key={secret.kind}
|
||||||
onConfirm: () => {
|
kind={secret.kind}
|
||||||
form.setFieldValue(`secrets.${index}.value`, secretsMap.get(kind)?.value ?? "");
|
{...form.getInputProps(`secrets.${index}.value`)}
|
||||||
resolve(true);
|
/>
|
||||||
},
|
</SecretCard>
|
||||||
});
|
))}
|
||||||
})
|
{isInitialSecretKinds
|
||||||
}
|
? null
|
||||||
>
|
: form.values.secrets.map(({ kind }, index) => (
|
||||||
<IntegrationSecretInput
|
<IntegrationSecretInput
|
||||||
label={t(`integration.secrets.kind.${kind}.newLabel`)}
|
withAsterisk
|
||||||
key={kind}
|
key={kind}
|
||||||
kind={kind}
|
kind={kind}
|
||||||
{...form.getInputProps(`secrets.${index}.value`)}
|
{...form.getInputProps(`secrets.${index}.value`)}
|
||||||
/>
|
/>
|
||||||
</SecretCard>
|
))}
|
||||||
))}
|
{form.values.secrets.length === 0 && (
|
||||||
|
<Alert icon={<IconInfoCircle size={"1rem"} />} color={"blue"}>
|
||||||
|
<Text c={"blue"}>{t("integration.secrets.noSecretsRequired.text")}</Text>
|
||||||
|
</Alert>
|
||||||
|
)}
|
||||||
</Stack>
|
</Stack>
|
||||||
</Fieldset>
|
</Fieldset>
|
||||||
|
|
||||||
|
|||||||
@@ -1,26 +1,15 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { useCallback, useState } from "react";
|
import { useState } from "react";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import { useRouter } from "next/navigation";
|
import { useRouter } from "next/navigation";
|
||||||
import {
|
import { Alert, Button, Checkbox, Collapse, Fieldset, Group, Stack, Text, TextInput } from "@mantine/core";
|
||||||
Alert,
|
|
||||||
Button,
|
|
||||||
Checkbox,
|
|
||||||
Collapse,
|
|
||||||
Fieldset,
|
|
||||||
Group,
|
|
||||||
SegmentedControl,
|
|
||||||
Stack,
|
|
||||||
Text,
|
|
||||||
TextInput,
|
|
||||||
} from "@mantine/core";
|
|
||||||
import { IconInfoCircle } from "@tabler/icons-react";
|
import { IconInfoCircle } from "@tabler/icons-react";
|
||||||
import { z } from "zod/v4";
|
import { z } from "zod/v4";
|
||||||
|
|
||||||
import { clientApi } from "@homarr/api/client";
|
import { clientApi } from "@homarr/api/client";
|
||||||
import { revalidatePathActionAsync } from "@homarr/common/client";
|
import { revalidatePathActionAsync } from "@homarr/common/client";
|
||||||
import type { IntegrationKind, IntegrationSecretKind } from "@homarr/definitions";
|
import type { IntegrationKind } from "@homarr/definitions";
|
||||||
import {
|
import {
|
||||||
getAllSecretKindOptions,
|
getAllSecretKindOptions,
|
||||||
getIconUrl,
|
getIconUrl,
|
||||||
@@ -28,14 +17,14 @@ import {
|
|||||||
getIntegrationName,
|
getIntegrationName,
|
||||||
integrationDefs,
|
integrationDefs,
|
||||||
} from "@homarr/definitions";
|
} from "@homarr/definitions";
|
||||||
import type { UseFormReturnType } from "@homarr/form";
|
|
||||||
import { useZodForm } from "@homarr/form";
|
import { useZodForm } from "@homarr/form";
|
||||||
import { showErrorNotification, showSuccessNotification } from "@homarr/notifications";
|
import { showErrorNotification, showSuccessNotification } from "@homarr/notifications";
|
||||||
import { useI18n, useScopedI18n } from "@homarr/translation/client";
|
import { useI18n } from "@homarr/translation/client";
|
||||||
import { appHrefSchema } from "@homarr/validation/app";
|
import { appHrefSchema } from "@homarr/validation/app";
|
||||||
import { integrationCreateSchema } from "@homarr/validation/integration";
|
import { integrationCreateSchema } from "@homarr/validation/integration";
|
||||||
|
|
||||||
import { IntegrationSecretInput } from "../_components/secrets/integration-secret-inputs";
|
import { IntegrationSecretInput } from "../_components/secrets/integration-secret-inputs";
|
||||||
|
import { SecretKindsSegmentedControl } from "../_components/secrets/integration-secret-segmented-control";
|
||||||
import { IntegrationTestConnectionError } from "../_components/test-connection/integration-test-connection-error";
|
import { IntegrationTestConnectionError } from "../_components/test-connection/integration-test-connection-error";
|
||||||
import type { AnyMappedTestConnectionError } from "../_components/test-connection/types";
|
import type { AnyMappedTestConnectionError } from "../_components/test-connection/types";
|
||||||
|
|
||||||
@@ -218,40 +207,4 @@ export const NewIntegrationForm = ({ searchParams }: NewIntegrationFormProps) =>
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
interface SecretKindsSegmentedControlProps {
|
|
||||||
secretKinds: IntegrationSecretKind[][];
|
|
||||||
form: UseFormReturnType<FormType, (values: FormType) => FormType>;
|
|
||||||
}
|
|
||||||
|
|
||||||
const SecretKindsSegmentedControl = ({ secretKinds, form }: SecretKindsSegmentedControlProps) => {
|
|
||||||
const t = useScopedI18n("integration.secrets");
|
|
||||||
|
|
||||||
const secretKindGroups = secretKinds.map((kinds) => ({
|
|
||||||
label:
|
|
||||||
kinds.length === 0
|
|
||||||
? t("noSecretsRequired.segmentTitle")
|
|
||||||
: kinds.map((kind) => t(`kind.${kind}.label`)).join(" & "),
|
|
||||||
value: kinds.length === 0 ? "empty" : kinds.join("-"),
|
|
||||||
}));
|
|
||||||
|
|
||||||
const onChange = useCallback(
|
|
||||||
(value: string) => {
|
|
||||||
if (value === "empty") {
|
|
||||||
form.setFieldValue("secrets", []);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const kinds = value.split("-") as IntegrationSecretKind[];
|
|
||||||
const secrets = kinds.map((kind) => ({
|
|
||||||
kind,
|
|
||||||
value: "",
|
|
||||||
}));
|
|
||||||
form.setFieldValue("secrets", secrets);
|
|
||||||
},
|
|
||||||
[form],
|
|
||||||
);
|
|
||||||
|
|
||||||
return <SegmentedControl fullWidth data={secretKindGroups} onChange={onChange}></SegmentedControl>;
|
|
||||||
};
|
|
||||||
|
|
||||||
type FormType = z.infer<typeof formSchema>;
|
type FormType = z.infer<typeof formSchema>;
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ export class DynamicSectionMockBuilder {
|
|||||||
options: {
|
options: {
|
||||||
title: "",
|
title: "",
|
||||||
borderColor: "",
|
borderColor: "",
|
||||||
|
customCssClasses: [],
|
||||||
},
|
},
|
||||||
layouts: [],
|
layouts: [],
|
||||||
...section,
|
...section,
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { Badge, Box, Card } from "@mantine/core";
|
import { Badge, Box, Card } from "@mantine/core";
|
||||||
|
import combineClasses from "clsx";
|
||||||
|
|
||||||
import { useCurrentLayout, useRequiredBoard } from "@homarr/boards/context";
|
import { useCurrentLayout, useRequiredBoard } from "@homarr/boards/context";
|
||||||
|
|
||||||
@@ -24,7 +25,7 @@ export const BoardDynamicSection = ({ section }: Props) => {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Card
|
<Card
|
||||||
className={classes.itemCard}
|
className={combineClasses(classes.itemCard, section.options.customCssClasses.join(" "))}
|
||||||
w="100%"
|
w="100%"
|
||||||
h="100%"
|
h="100%"
|
||||||
withBorder
|
withBorder
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ export const addDynamicSectionCallback = () => (board: Board) => {
|
|||||||
options: {
|
options: {
|
||||||
title: "",
|
title: "",
|
||||||
borderColor: "",
|
borderColor: "",
|
||||||
|
customCssClasses: [],
|
||||||
},
|
},
|
||||||
layouts: createDynamicSectionLayouts(board, firstSection),
|
layouts: createDynamicSectionLayouts(board, firstSection),
|
||||||
} satisfies DynamicSection;
|
} satisfies DynamicSection;
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import type { z } from "zod/v4";
|
|||||||
import { useZodForm } from "@homarr/form";
|
import { useZodForm } from "@homarr/form";
|
||||||
import { createModal } from "@homarr/modals";
|
import { createModal } from "@homarr/modals";
|
||||||
import { useI18n } from "@homarr/translation/client";
|
import { useI18n } from "@homarr/translation/client";
|
||||||
|
import { TextMultiSelect } from "@homarr/ui";
|
||||||
import { dynamicSectionOptionsSchema } from "@homarr/validation/shared";
|
import { dynamicSectionOptionsSchema } from "@homarr/validation/shared";
|
||||||
|
|
||||||
interface ModalProps {
|
interface ModalProps {
|
||||||
@@ -31,6 +32,10 @@ export const DynamicSectionEditModal = createModal<ModalProps>(({ actions, inner
|
|||||||
>
|
>
|
||||||
<Stack>
|
<Stack>
|
||||||
<TextInput label={t("section.dynamic.option.title.label")} {...form.getInputProps("title")} />
|
<TextInput label={t("section.dynamic.option.title.label")} {...form.getInputProps("title")} />
|
||||||
|
<TextMultiSelect
|
||||||
|
label={t("section.dynamic.option.customCssClasses.label")}
|
||||||
|
{...form.getInputProps("customCssClasses")}
|
||||||
|
/>
|
||||||
<ColorInput
|
<ColorInput
|
||||||
label={t("section.dynamic.option.borderColor.label")}
|
label={t("section.dynamic.option.borderColor.label")}
|
||||||
format="hex"
|
format="hex"
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
"@homarr/validation": "workspace:^0.1.0",
|
"@homarr/validation": "workspace:^0.1.0",
|
||||||
"@homarr/widgets": "workspace:^0.1.0",
|
"@homarr/widgets": "workspace:^0.1.0",
|
||||||
"dayjs": "^1.11.18",
|
"dayjs": "^1.11.18",
|
||||||
"dotenv": "^17.2.2",
|
"dotenv": "^17.2.3",
|
||||||
"fastify": "^5.6.1",
|
"fastify": "^5.6.1",
|
||||||
"superjson": "2.2.2",
|
"superjson": "2.2.2",
|
||||||
"undici": "7.16.0"
|
"undici": "7.16.0"
|
||||||
@@ -47,12 +47,12 @@
|
|||||||
"@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.18.7",
|
"@types/node": "^22.18.8",
|
||||||
"dotenv-cli": "^10.0.0",
|
"dotenv-cli": "^10.0.0",
|
||||||
"esbuild": "^0.25.10",
|
"esbuild": "^0.25.10",
|
||||||
"eslint": "^9.36.0",
|
"eslint": "^9.37.0",
|
||||||
"prettier": "^3.6.2",
|
"prettier": "^3.6.2",
|
||||||
"tsx": "4.20.4",
|
"tsx": "4.20.4",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
"@homarr/log": "workspace:^",
|
"@homarr/log": "workspace:^",
|
||||||
"@homarr/redis": "workspace:^0.1.0",
|
"@homarr/redis": "workspace:^0.1.0",
|
||||||
"@homarr/validation": "workspace:^0.1.0",
|
"@homarr/validation": "workspace:^0.1.0",
|
||||||
"dotenv": "^17.2.2",
|
"dotenv": "^17.2.3",
|
||||||
"tsx": "4.20.4",
|
"tsx": "4.20.4",
|
||||||
"ws": "^8.18.3"
|
"ws": "^8.18.3"
|
||||||
},
|
},
|
||||||
@@ -35,8 +35,8 @@
|
|||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"@types/ws": "^8.18.1",
|
"@types/ws": "^8.18.1",
|
||||||
"esbuild": "^0.25.10",
|
"esbuild": "^0.25.10",
|
||||||
"eslint": "^9.36.0",
|
"eslint": "^9.37.0",
|
||||||
"prettier": "^3.6.2",
|
"prettier": "^3.6.2",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
18
package.json
18
package.json
@@ -42,23 +42,23 @@
|
|||||||
"@semantic-release/github": "^11.0.6",
|
"@semantic-release/github": "^11.0.6",
|
||||||
"@semantic-release/npm": "^12.0.2",
|
"@semantic-release/npm": "^12.0.2",
|
||||||
"@semantic-release/release-notes-generator": "^14.1.0",
|
"@semantic-release/release-notes-generator": "^14.1.0",
|
||||||
"@testcontainers/redis": "^11.6.0",
|
"@testcontainers/redis": "^11.7.1",
|
||||||
"@turbo/gen": "^2.5.8",
|
"@turbo/gen": "^2.5.8",
|
||||||
"@vitejs/plugin-react": "^5.0.4",
|
"@vitejs/plugin-react": "^5.0.4",
|
||||||
"@vitest/coverage-v8": "^3.2.4",
|
"@vitest/coverage-v8": "^3.2.4",
|
||||||
"@vitest/ui": "^3.2.4",
|
"@vitest/ui": "^3.2.4",
|
||||||
"conventional-changelog-conventionalcommits": "^9.1.0",
|
"conventional-changelog-conventionalcommits": "^9.1.0",
|
||||||
"cross-env": "^10.0.0",
|
"cross-env": "^10.1.0",
|
||||||
"jsdom": "^27.0.0",
|
"jsdom": "^27.0.0",
|
||||||
"prettier": "^3.6.2",
|
"prettier": "^3.6.2",
|
||||||
"semantic-release": "^24.2.9",
|
"semantic-release": "^24.2.9",
|
||||||
"testcontainers": "^11.6.0",
|
"testcontainers": "^11.7.1",
|
||||||
"turbo": "^2.5.8",
|
"turbo": "^2.5.8",
|
||||||
"typescript": "^5.9.2",
|
"typescript": "^5.9.3",
|
||||||
"vite-tsconfig-paths": "^5.1.4",
|
"vite-tsconfig-paths": "^5.1.4",
|
||||||
"vitest": "^3.2.4"
|
"vitest": "^3.2.4"
|
||||||
},
|
},
|
||||||
"packageManager": "pnpm@10.17.1",
|
"packageManager": "pnpm@10.18.0",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=22.20.0"
|
"node": ">=22.20.0"
|
||||||
},
|
},
|
||||||
@@ -82,18 +82,18 @@
|
|||||||
"brace-expansion@>=1.0.0 <=1.1.11": ">=4.0.1",
|
"brace-expansion@>=1.0.0 <=1.1.11": ">=4.0.1",
|
||||||
"esbuild@<=0.24.2": ">=0.25.10",
|
"esbuild@<=0.24.2": ">=0.25.10",
|
||||||
"form-data@>=4.0.0 <4.0.4": ">=4.0.4",
|
"form-data@>=4.0.0 <4.0.4": ">=4.0.4",
|
||||||
"hono@<4.6.5": ">=4.9.9",
|
"hono@<4.6.5": ">=4.9.10",
|
||||||
"linkifyjs@<4.3.2": ">=4.3.2",
|
"linkifyjs@<4.3.2": ">=4.3.2",
|
||||||
"nanoid@>=4.0.0 <5.0.9": ">=5.1.6",
|
"nanoid@>=4.0.0 <5.0.9": ">=5.1.6",
|
||||||
"prismjs@<1.30.0": ">=1.30.0",
|
"prismjs@<1.30.0": ">=1.30.0",
|
||||||
"proxmox-api>undici": "7.16.0",
|
"proxmox-api>undici": "7.16.0",
|
||||||
"react-is": "^19.1.1",
|
"react-is": "^19.2.0",
|
||||||
"rollup@>=4.0.0 <4.22.4": ">=4.52.3",
|
"rollup@>=4.0.0 <4.22.4": ">=4.52.4",
|
||||||
"sha.js@<=2.4.11": ">=2.4.12",
|
"sha.js@<=2.4.11": ">=2.4.12",
|
||||||
"tar-fs@>=3.0.0 <3.0.9": ">=3.1.1",
|
"tar-fs@>=3.0.0 <3.0.9": ">=3.1.1",
|
||||||
"tar-fs@>=2.0.0 <2.1.3": ">=3.1.1",
|
"tar-fs@>=2.0.0 <2.1.3": ">=3.1.1",
|
||||||
"tmp@<=0.2.3": ">=0.2.5",
|
"tmp@<=0.2.3": ">=0.2.5",
|
||||||
"vite@>=5.0.0 <=5.4.18": ">=7.1.7"
|
"vite@>=5.0.0 <=5.4.18": ">=7.1.9"
|
||||||
},
|
},
|
||||||
"patchedDependencies": {
|
"patchedDependencies": {
|
||||||
"@types/node-unifi": "patches/@types__node-unifi.patch",
|
"@types/node-unifi": "patches/@types__node-unifi.patch",
|
||||||
|
|||||||
@@ -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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
"@homarr/request-handler": "workspace:^0.1.0",
|
"@homarr/request-handler": "workspace:^0.1.0",
|
||||||
"@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.3.0",
|
"@kubernetes/client-node": "^1.4.0",
|
||||||
"@tanstack/react-query": "^5.90.2",
|
"@tanstack/react-query": "^5.90.2",
|
||||||
"@trpc/client": "^11.6.0",
|
"@trpc/client": "^11.6.0",
|
||||||
"@trpc/react-query": "^11.6.0",
|
"@trpc/react-query": "^11.6.0",
|
||||||
@@ -49,8 +49,8 @@
|
|||||||
"@trpc/tanstack-react-query": "^11.6.0",
|
"@trpc/tanstack-react-query": "^11.6.0",
|
||||||
"lodash.clonedeep": "^4.5.0",
|
"lodash.clonedeep": "^4.5.0",
|
||||||
"next": "15.5.4",
|
"next": "15.5.4",
|
||||||
"react": "19.1.1",
|
"react": "19.2.0",
|
||||||
"react-dom": "19.1.1",
|
"react-dom": "19.2.0",
|
||||||
"superjson": "2.2.2",
|
"superjson": "2.2.2",
|
||||||
"trpc-to-openapi": "^3.0.1",
|
"trpc-to-openapi": "^3.0.1",
|
||||||
"zod": "^4.1.11"
|
"zod": "^4.1.11"
|
||||||
@@ -59,8 +59,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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"prettier": "^3.6.2",
|
"prettier": "^3.6.2",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { z } from "zod/v4";
|
|||||||
import { createId, objectEntries } from "@homarr/common";
|
import { createId, objectEntries } from "@homarr/common";
|
||||||
import { decryptSecret, encryptSecret } from "@homarr/common/server";
|
import { decryptSecret, encryptSecret } from "@homarr/common/server";
|
||||||
import type { Database } from "@homarr/db";
|
import type { Database } from "@homarr/db";
|
||||||
import { and, asc, eq, handleTransactionsAsync, inArray, like } from "@homarr/db";
|
import { and, asc, eq, handleTransactionsAsync, inArray, like, or } from "@homarr/db";
|
||||||
import {
|
import {
|
||||||
groupMembers,
|
groupMembers,
|
||||||
groupPermissions,
|
groupPermissions,
|
||||||
@@ -386,6 +386,21 @@ export const integrationRouter = createTRPCRouter({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const removedSecrets = integration.secrets.filter(
|
||||||
|
(dbSecret) => !input.secrets.some((secret) => dbSecret.kind === secret.kind),
|
||||||
|
);
|
||||||
|
if (removedSecrets.length >= 1) {
|
||||||
|
await ctx.db
|
||||||
|
.delete(integrationSecrets)
|
||||||
|
.where(
|
||||||
|
or(
|
||||||
|
...removedSecrets.map((secret) =>
|
||||||
|
and(eq(integrationSecrets.integrationId, input.id), eq(integrationSecrets.kind, secret.kind)),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
logger.info("Updated integration", {
|
logger.info("Updated integration", {
|
||||||
id: input.id,
|
id: input.id,
|
||||||
name: input.name,
|
name: input.name,
|
||||||
|
|||||||
@@ -37,8 +37,8 @@
|
|||||||
"ldapts": "8.0.9",
|
"ldapts": "8.0.9",
|
||||||
"next": "15.5.4",
|
"next": "15.5.4",
|
||||||
"next-auth": "5.0.0-beta.29",
|
"next-auth": "5.0.0-beta.29",
|
||||||
"react": "19.1.1",
|
"react": "19.2.0",
|
||||||
"react-dom": "19.1.1",
|
"react-dom": "19.2.0",
|
||||||
"zod": "^4.1.11"
|
"zod": "^4.1.11"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@@ -47,8 +47,8 @@
|
|||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"@types/bcrypt": "6.0.0",
|
"@types/bcrypt": "6.0.0",
|
||||||
"@types/cookies": "0.9.1",
|
"@types/cookies": "0.9.1",
|
||||||
"eslint": "^9.36.0",
|
"eslint": "^9.37.0",
|
||||||
"prettier": "^3.6.2",
|
"prettier": "^3.6.2",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,14 +25,14 @@
|
|||||||
"prettier": "@homarr/prettier-config",
|
"prettier": "@homarr/prettier-config",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@homarr/api": "workspace:^0.1.0",
|
"@homarr/api": "workspace:^0.1.0",
|
||||||
"react": "19.1.1",
|
"react": "19.2.0",
|
||||||
"react-dom": "19.1.1"
|
"react-dom": "19.2.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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,14 +28,14 @@
|
|||||||
"@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/validation": "workspace:^0.1.0",
|
"@homarr/validation": "workspace:^0.1.0",
|
||||||
"dotenv": "^17.2.2"
|
"dotenv": "^17.2.3"
|
||||||
},
|
},
|
||||||
"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",
|
||||||
"esbuild": "^0.25.10",
|
"esbuild": "^0.25.10",
|
||||||
"eslint": "^9.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,8 +34,8 @@
|
|||||||
"dns-caching": "^0.2.7",
|
"dns-caching": "^0.2.7",
|
||||||
"next": "15.5.4",
|
"next": "15.5.4",
|
||||||
"octokit": "^5.0.3",
|
"octokit": "^5.0.3",
|
||||||
"react": "19.1.1",
|
"react": "19.2.0",
|
||||||
"react-dom": "19.1.1",
|
"react-dom": "19.2.0",
|
||||||
"undici": "7.16.0",
|
"undici": "7.16.0",
|
||||||
"zod": "^4.1.11",
|
"zod": "^4.1.11",
|
||||||
"zod-validation-error": "^4.0.2"
|
"zod-validation-error": "^4.0.2"
|
||||||
@@ -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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,3 +47,8 @@ export const humanFileSize = (size: number, concat = ""): string => {
|
|||||||
}
|
}
|
||||||
return "∞";
|
return "∞";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const IMPERIAL_MULTIPLIER = 1.609344;
|
||||||
|
|
||||||
|
export const metricToImperial = (metricValue: number) => metricValue / IMPERIAL_MULTIPLIER;
|
||||||
|
export const imperialToMetric = (imperialValue: number) => imperialValue * IMPERIAL_MULTIPLIER;
|
||||||
|
|||||||
@@ -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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
"@trpc/server": "^11.6.0",
|
"@trpc/server": "^11.6.0",
|
||||||
"@trpc/tanstack-react-query": "^11.6.0",
|
"@trpc/tanstack-react-query": "^11.6.0",
|
||||||
"node-cron": "^4.2.1",
|
"node-cron": "^4.2.1",
|
||||||
"react": "19.1.1",
|
"react": "19.2.0",
|
||||||
"zod": "^4.1.11"
|
"zod": "^4.1.11"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@@ -42,8 +42,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/node-cron": "^3.0.11",
|
"@types/node-cron": "^3.0.11",
|
||||||
"@types/react": "19.1.15",
|
"@types/react": "19.2.0",
|
||||||
"eslint": "^9.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,14 +49,14 @@
|
|||||||
"@homarr/definitions": "workspace:^0.1.0",
|
"@homarr/definitions": "workspace:^0.1.0",
|
||||||
"@homarr/log": "workspace:^0.1.0",
|
"@homarr/log": "workspace:^0.1.0",
|
||||||
"@homarr/server-settings": "workspace:^0.1.0",
|
"@homarr/server-settings": "workspace:^0.1.0",
|
||||||
"@mantine/core": "^8.3.2",
|
"@mantine/core": "^8.3.3",
|
||||||
"@paralleldrive/cuid2": "^2.2.2",
|
"@paralleldrive/cuid2": "^2.2.2",
|
||||||
"@testcontainers/mysql": "^11.6.0",
|
"@testcontainers/mysql": "^11.7.1",
|
||||||
"@testcontainers/postgresql": "^11.6.0",
|
"@testcontainers/postgresql": "^11.7.1",
|
||||||
"better-sqlite3": "^12.4.1",
|
"better-sqlite3": "^12.4.1",
|
||||||
"dotenv": "^17.2.2",
|
"dotenv": "^17.2.3",
|
||||||
"drizzle-kit": "^0.31.5",
|
"drizzle-kit": "^0.31.5",
|
||||||
"drizzle-orm": "^0.44.5",
|
"drizzle-orm": "^0.44.6",
|
||||||
"drizzle-zod": "^0.8.3",
|
"drizzle-zod": "^0.8.3",
|
||||||
"mysql2": "3.15.1",
|
"mysql2": "3.15.1",
|
||||||
"pg": "^8.16.3",
|
"pg": "^8.16.3",
|
||||||
@@ -70,9 +70,9 @@
|
|||||||
"@types/pg": "^8.15.5",
|
"@types/pg": "^8.15.5",
|
||||||
"dotenv-cli": "^10.0.0",
|
"dotenv-cli": "^10.0.0",
|
||||||
"esbuild": "^0.25.10",
|
"esbuild": "^0.25.10",
|
||||||
"eslint": "^9.36.0",
|
"eslint": "^9.37.0",
|
||||||
"prettier": "^3.6.2",
|
"prettier": "^3.6.2",
|
||||||
"tsx": "4.20.4",
|
"tsx": "4.20.4",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,15 +24,15 @@
|
|||||||
"prettier": "@homarr/prettier-config",
|
"prettier": "@homarr/prettier-config",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@homarr/common": "workspace:^0.1.0",
|
"@homarr/common": "workspace:^0.1.0",
|
||||||
"fast-xml-parser": "^5.2.5",
|
"fast-xml-parser": "^5.3.0",
|
||||||
"zod": "^4.1.11"
|
"zod": "^4.1.11"
|
||||||
},
|
},
|
||||||
"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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"tsx": "4.20.4",
|
"tsx": "4.20.4",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,14 +26,14 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@homarr/common": "workspace:^0.1.0",
|
"@homarr/common": "workspace:^0.1.0",
|
||||||
"@homarr/core": "workspace:^0.1.0",
|
"@homarr/core": "workspace:^0.1.0",
|
||||||
"dockerode": "^4.0.8"
|
"dockerode": "^4.0.9"
|
||||||
},
|
},
|
||||||
"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/dockerode": "^3.3.44",
|
"@types/dockerode": "^3.3.44",
|
||||||
"eslint": "^9.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
"@homarr/common": "workspace:^0.1.0",
|
"@homarr/common": "workspace:^0.1.0",
|
||||||
"@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.3.2",
|
"@mantine/form": "^8.3.3",
|
||||||
"mantine-form-zod-resolver": "^1.3.0",
|
"mantine-form-zod-resolver": "^1.3.0",
|
||||||
"zod": "^4.1.11"
|
"zod": "^4.1.11"
|
||||||
},
|
},
|
||||||
@@ -34,7 +34,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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,15 +29,15 @@
|
|||||||
"@homarr/notifications": "workspace:^0.1.0",
|
"@homarr/notifications": "workspace:^0.1.0",
|
||||||
"@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/core": "^8.3.2",
|
"@mantine/core": "^8.3.3",
|
||||||
"react": "19.1.1",
|
"react": "19.2.0",
|
||||||
"zod": "^4.1.11"
|
"zod": "^4.1.11"
|
||||||
},
|
},
|
||||||
"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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,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/bcrypt": "6.0.0",
|
"@types/bcrypt": "6.0.0",
|
||||||
"eslint": "^9.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,8 +25,8 @@
|
|||||||
},
|
},
|
||||||
"prettier": "@homarr/prettier-config",
|
"prettier": "@homarr/prettier-config",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ctrl/deluge": "^7.3.0",
|
"@ctrl/deluge": "^7.4.0",
|
||||||
"@ctrl/qbittorrent": "^9.8.0",
|
"@ctrl/qbittorrent": "^9.9.0",
|
||||||
"@ctrl/transmission": "^7.4.0",
|
"@ctrl/transmission": "^7.4.0",
|
||||||
"@gitbeaker/rest": "^43.5.0",
|
"@gitbeaker/rest": "^43.5.0",
|
||||||
"@homarr/certificates": "workspace:^0.1.0",
|
"@homarr/certificates": "workspace:^0.1.0",
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
"@homarr/translation": "workspace:^0.1.0",
|
"@homarr/translation": "workspace:^0.1.0",
|
||||||
"@homarr/validation": "workspace:^0.1.0",
|
"@homarr/validation": "workspace:^0.1.0",
|
||||||
"@jellyfin/sdk": "^0.11.0",
|
"@jellyfin/sdk": "^0.11.0",
|
||||||
"@octokit/auth-app": "^8.1.0",
|
"@octokit/auth-app": "^8.1.1",
|
||||||
"ical.js": "^2.2.1",
|
"ical.js": "^2.2.1",
|
||||||
"maria2": "^0.4.1",
|
"maria2": "^0.4.1",
|
||||||
"node-ical": "^0.21.0",
|
"node-ical": "^0.21.0",
|
||||||
@@ -57,7 +57,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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,14 +26,14 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@homarr/core": "workspace:^0.1.0",
|
"@homarr/core": "workspace:^0.1.0",
|
||||||
"superjson": "2.2.2",
|
"superjson": "2.2.2",
|
||||||
"winston": "3.17.0",
|
"winston": "3.18.3",
|
||||||
"zod": "^4.1.11"
|
"zod": "^4.1.11"
|
||||||
},
|
},
|
||||||
"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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,19 +33,19 @@
|
|||||||
"@homarr/translation": "workspace:^0.1.0",
|
"@homarr/translation": "workspace:^0.1.0",
|
||||||
"@homarr/ui": "workspace:^0.1.0",
|
"@homarr/ui": "workspace:^0.1.0",
|
||||||
"@homarr/validation": "workspace:^0.1.0",
|
"@homarr/validation": "workspace:^0.1.0",
|
||||||
"@mantine/core": "^8.3.2",
|
"@mantine/core": "^8.3.3",
|
||||||
"@tabler/icons-react": "^3.35.0",
|
"@tabler/icons-react": "^3.35.0",
|
||||||
"dayjs": "^1.11.18",
|
"dayjs": "^1.11.18",
|
||||||
"next": "15.5.4",
|
"next": "15.5.4",
|
||||||
"react": "19.1.1",
|
"react": "19.2.0",
|
||||||
"react-dom": "19.1.1",
|
"react-dom": "19.2.0",
|
||||||
"zod": "^4.1.11"
|
"zod": "^4.1.11"
|
||||||
},
|
},
|
||||||
"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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,15 +24,15 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@homarr/translation": "workspace:^0.1.0",
|
"@homarr/translation": "workspace:^0.1.0",
|
||||||
"@homarr/ui": "workspace:^0.1.0",
|
"@homarr/ui": "workspace:^0.1.0",
|
||||||
"@mantine/core": "^8.3.2",
|
"@mantine/core": "^8.3.3",
|
||||||
"@mantine/hooks": "^8.3.2",
|
"@mantine/hooks": "^8.3.3",
|
||||||
"react": "19.1.1"
|
"react": "19.2.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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,14 +24,14 @@
|
|||||||
"prettier": "@homarr/prettier-config",
|
"prettier": "@homarr/prettier-config",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@homarr/ui": "workspace:^0.1.0",
|
"@homarr/ui": "workspace:^0.1.0",
|
||||||
"@mantine/notifications": "^8.3.2",
|
"@mantine/notifications": "^8.3.3",
|
||||||
"@tabler/icons-react": "^3.35.0"
|
"@tabler/icons-react": "^3.35.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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,12 +37,12 @@
|
|||||||
"@homarr/translation": "workspace:^0.1.0",
|
"@homarr/translation": "workspace:^0.1.0",
|
||||||
"@homarr/ui": "workspace:^0.1.0",
|
"@homarr/ui": "workspace:^0.1.0",
|
||||||
"@homarr/validation": "workspace:^0.1.0",
|
"@homarr/validation": "workspace:^0.1.0",
|
||||||
"@mantine/core": "^8.3.2",
|
"@mantine/core": "^8.3.3",
|
||||||
"@mantine/hooks": "^8.3.2",
|
"@mantine/hooks": "^8.3.3",
|
||||||
"adm-zip": "0.5.16",
|
"adm-zip": "0.5.16",
|
||||||
"next": "15.5.4",
|
"next": "15.5.4",
|
||||||
"react": "19.1.1",
|
"react": "19.2.0",
|
||||||
"react-dom": "19.1.1",
|
"react-dom": "19.2.0",
|
||||||
"superjson": "2.2.2",
|
"superjson": "2.2.2",
|
||||||
"zod": "^4.1.11",
|
"zod": "^4.1.11",
|
||||||
"zod-form-data": "^3.0.1"
|
"zod-form-data": "^3.0.1"
|
||||||
@@ -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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,6 +88,7 @@ const optionMapping: OptionMapping = {
|
|||||||
location: (oldOptions) => oldOptions.location,
|
location: (oldOptions) => oldOptions.location,
|
||||||
showCity: (oldOptions) => oldOptions.displayCityName,
|
showCity: (oldOptions) => oldOptions.displayCityName,
|
||||||
dateFormat: (oldOptions) => (oldOptions.dateFormat === "hide" ? undefined : oldOptions.dateFormat),
|
dateFormat: (oldOptions) => (oldOptions.dateFormat === "hide" ? undefined : oldOptions.dateFormat),
|
||||||
|
useImperialSpeed: () => undefined,
|
||||||
},
|
},
|
||||||
iframe: {
|
iframe: {
|
||||||
embedUrl: (oldOptions) => oldOptions.embedUrl,
|
embedUrl: (oldOptions) => oldOptions.embedUrl,
|
||||||
|
|||||||
@@ -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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,16 +26,16 @@
|
|||||||
"@homarr/api": "workspace:^0.1.0",
|
"@homarr/api": "workspace:^0.1.0",
|
||||||
"@homarr/db": "workspace:^0.1.0",
|
"@homarr/db": "workspace:^0.1.0",
|
||||||
"@homarr/server-settings": "workspace:^0.1.0",
|
"@homarr/server-settings": "workspace:^0.1.0",
|
||||||
"@mantine/dates": "^8.3.2",
|
"@mantine/dates": "^8.3.3",
|
||||||
"next": "15.5.4",
|
"next": "15.5.4",
|
||||||
"react": "19.1.1",
|
"react": "19.2.0",
|
||||||
"react-dom": "19.1.1"
|
"react-dom": "19.2.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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,21 +33,21 @@
|
|||||||
"@homarr/settings": "workspace:^0.1.0",
|
"@homarr/settings": "workspace:^0.1.0",
|
||||||
"@homarr/translation": "workspace:^0.1.0",
|
"@homarr/translation": "workspace:^0.1.0",
|
||||||
"@homarr/ui": "workspace:^0.1.0",
|
"@homarr/ui": "workspace:^0.1.0",
|
||||||
"@mantine/core": "^8.3.2",
|
"@mantine/core": "^8.3.3",
|
||||||
"@mantine/hooks": "^8.3.2",
|
"@mantine/hooks": "^8.3.3",
|
||||||
"@mantine/spotlight": "^8.3.2",
|
"@mantine/spotlight": "^8.3.3",
|
||||||
"@tabler/icons-react": "^3.35.0",
|
"@tabler/icons-react": "^3.35.0",
|
||||||
"jotai": "^2.15.0",
|
"jotai": "^2.15.0",
|
||||||
"next": "15.5.4",
|
"next": "15.5.4",
|
||||||
"react": "19.1.1",
|
"react": "19.2.0",
|
||||||
"react-dom": "19.1.1",
|
"react-dom": "19.2.0",
|
||||||
"use-deep-compare-effect": "^1.8.1"
|
"use-deep-compare-effect": "^1.8.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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,14 +34,14 @@
|
|||||||
"mantine-react-table": "2.0.0-beta.9",
|
"mantine-react-table": "2.0.0-beta.9",
|
||||||
"next": "15.5.4",
|
"next": "15.5.4",
|
||||||
"next-intl": "4.3.9",
|
"next-intl": "4.3.9",
|
||||||
"react": "19.1.1",
|
"react": "19.2.0",
|
||||||
"react-dom": "19.1.1"
|
"react-dom": "19.2.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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "",
|
"currentlyPlaying": "",
|
||||||
"user": "",
|
"user": "",
|
||||||
"name": "",
|
"name": "",
|
||||||
"id": ""
|
"id": "",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "",
|
"title": "",
|
||||||
"subtitle": ""
|
"subtitle": ""
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "正在播放",
|
"currentlyPlaying": "正在播放",
|
||||||
"user": "用户",
|
"user": "用户",
|
||||||
"name": "名称",
|
"name": "名称",
|
||||||
"id": "ID"
|
"id": "ID",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "相关的库",
|
"title": "相关的库",
|
||||||
"subtitle": "{count} 用于 Homarr 代码中"
|
"subtitle": "{count} 用于 Homarr 代码中"
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "crwdns2847:0crwdne2847:0",
|
"currentlyPlaying": "crwdns2847:0crwdne2847:0",
|
||||||
"user": "crwdns2476:0crwdne2476:0",
|
"user": "crwdns2476:0crwdne2476:0",
|
||||||
"name": "crwdns2478:0crwdne2478:0",
|
"name": "crwdns2478:0crwdne2478:0",
|
||||||
"id": "crwdns2480:0crwdne2480:0"
|
"id": "crwdns2480:0crwdne2480:0",
|
||||||
|
"metadata": {
|
||||||
|
"title": "crwdns3744:0crwdne3744:0",
|
||||||
|
"video": {
|
||||||
|
"title": "crwdns3746:0crwdne3746:0",
|
||||||
|
"resolution": "crwdns3748:0crwdne3748:0"
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "crwdns3750:0crwdne3750:0",
|
||||||
|
"channelCount": "crwdns3752:0crwdne3752:0",
|
||||||
|
"codec": "crwdns3754:0crwdne3754:0"
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "crwdns3756:0crwdne3756:0",
|
||||||
|
"container": "crwdns3758:0crwdne3758:0",
|
||||||
|
"resolution": "crwdns3760:0crwdne3760:0",
|
||||||
|
"target": "crwdns3762:0crwdne3762:0"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "crwdns1888:0crwdne1888:0",
|
"title": "crwdns1888:0crwdne1888:0",
|
||||||
"subtitle": "crwdns1890:0{count}crwdne1890:0"
|
"subtitle": "crwdns1890:0{count}crwdne1890:0"
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "crwdns3726:0crwdne3726:0",
|
||||||
|
"subtitle": "crwdns3728:0crwdne3728:0",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "crwdns3730:0crwdne3730:0",
|
||||||
|
"action": "crwdns3732:0crwdne3732:0"
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "crwdns3734:0crwdne3734:0",
|
||||||
|
"toggleColorScheme": "crwdns3736:0crwdne3736:0",
|
||||||
|
"saveNotebook": "crwdns3738:0crwdne3738:0",
|
||||||
|
"openSpotlight": "crwdns3740:0crwdne3740:0"
|
||||||
|
},
|
||||||
|
"note": "crwdns3742:0crwdne3742:0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "",
|
"currentlyPlaying": "",
|
||||||
"user": "Uživatel",
|
"user": "Uživatel",
|
||||||
"name": "Jméno",
|
"name": "Jméno",
|
||||||
"id": "Id"
|
"id": "Id",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "",
|
"title": "",
|
||||||
"subtitle": ""
|
"subtitle": ""
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "Afspiller lige nu",
|
"currentlyPlaying": "Afspiller lige nu",
|
||||||
"user": "Bruger",
|
"user": "Bruger",
|
||||||
"name": "Navn",
|
"name": "Navn",
|
||||||
"id": "Id"
|
"id": "Id",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "Biblioteker",
|
"title": "Biblioteker",
|
||||||
"subtitle": "{count} brugt i koden for Homarr"
|
"subtitle": "{count} brugt i koden for Homarr"
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "Aktuelle Wiedergabe",
|
"currentlyPlaying": "Aktuelle Wiedergabe",
|
||||||
"user": "Benutzer",
|
"user": "Benutzer",
|
||||||
"name": "",
|
"name": "",
|
||||||
"id": ""
|
"id": "",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "Bibliotheken",
|
"title": "Bibliotheken",
|
||||||
"subtitle": "{count} im Code von Homarr verwendet"
|
"subtitle": "{count} im Code von Homarr verwendet"
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -946,28 +946,28 @@
|
|||||||
"newLabel": "Neues Thema erstellen"
|
"newLabel": "Neues Thema erstellen"
|
||||||
},
|
},
|
||||||
"url": {
|
"url": {
|
||||||
"label": "",
|
"label": "URL",
|
||||||
"newLabel": ""
|
"newLabel": "Neue URL"
|
||||||
},
|
},
|
||||||
"opnsenseApiKey": {
|
"opnsenseApiKey": {
|
||||||
"label": "",
|
"label": "API-Schlüssel (Schlüssel)",
|
||||||
"newLabel": ""
|
"newLabel": "Neuer API-Schlüssel (Schlüssel)"
|
||||||
},
|
},
|
||||||
"opnsenseApiSecret": {
|
"opnsenseApiSecret": {
|
||||||
"label": "",
|
"label": "API-Schlüssel (Secret)",
|
||||||
"newLabel": ""
|
"newLabel": "Neuer API-Schlüssel (Secret)"
|
||||||
},
|
},
|
||||||
"githubAppId": {
|
"githubAppId": {
|
||||||
"label": "",
|
"label": "App ID",
|
||||||
"newLabel": ""
|
"newLabel": "Neue App ID"
|
||||||
},
|
},
|
||||||
"githubInstallationId": {
|
"githubInstallationId": {
|
||||||
"label": "",
|
"label": "Installations ID",
|
||||||
"newLabel": ""
|
"newLabel": "Neue Installations ID"
|
||||||
},
|
},
|
||||||
"privateKey": {
|
"privateKey": {
|
||||||
"label": "",
|
"label": "Privater Schlüssel",
|
||||||
"newLabel": ""
|
"newLabel": "Neuer privater Schlüssel"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1019,7 +1019,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"common": {
|
"common": {
|
||||||
"success": "",
|
"success": "Erfolgreich",
|
||||||
"beta": "Beta",
|
"beta": "Beta",
|
||||||
"error": "Fehler",
|
"error": "Fehler",
|
||||||
"action": {
|
"action": {
|
||||||
@@ -1286,21 +1286,21 @@
|
|||||||
"label": "Statusüberprüfung aktivieren"
|
"label": "Statusüberprüfung aktivieren"
|
||||||
},
|
},
|
||||||
"layout": {
|
"layout": {
|
||||||
"label": "",
|
"label": "Ansicht",
|
||||||
"option": {
|
"option": {
|
||||||
"row": "",
|
"row": "Horizontal",
|
||||||
"row-reverse": "",
|
"row-reverse": "Horizontal (invertiert)",
|
||||||
"column": "",
|
"column": "Vertikal",
|
||||||
"column-reverse": ""
|
"column-reverse": "Vertikal (invertiert)"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"descriptionDisplayMode": {
|
"descriptionDisplayMode": {
|
||||||
"label": "",
|
"label": "Beschreibung des Anzeigemodus",
|
||||||
"description": "",
|
"description": "Wählen Sie, wie die App-Beschreibung angezeigt werden soll",
|
||||||
"option": {
|
"option": {
|
||||||
"normal": "",
|
"normal": "Innerhalb des Widgets",
|
||||||
"tooltip": "",
|
"tooltip": "Als Tooltip",
|
||||||
"hidden": ""
|
"hidden": "Versteckt"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1549,11 +1549,11 @@
|
|||||||
},
|
},
|
||||||
"placeholder": "Mit dem Schreiben von Notizen beginnen",
|
"placeholder": "Mit dem Schreiben von Notizen beginnen",
|
||||||
"dismiss": {
|
"dismiss": {
|
||||||
"title": "",
|
"title": "Änderungen verwerfen?",
|
||||||
"message": "",
|
"message": "Sie haben ungespeicherte Änderungen in Ihrem Notizbuch. Sind Sie sicher, dass Sie diese verwerfen möchten?",
|
||||||
"action": {
|
"action": {
|
||||||
"discard": "",
|
"discard": "Änderungen verwerfen",
|
||||||
"keepEditing": ""
|
"keepEditing": "Bearbeitung fortsetzen"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1708,7 +1708,7 @@
|
|||||||
"name": "Kalender",
|
"name": "Kalender",
|
||||||
"description": "Zeigt Ereignisse aus Ihren Integrationen in einer Kalenderansicht innerhalb eines bestimmten Zeitraums an",
|
"description": "Zeigt Ereignisse aus Ihren Integrationen in einer Kalenderansicht innerhalb eines bestimmten Zeitraums an",
|
||||||
"duration": {
|
"duration": {
|
||||||
"allDay": ""
|
"allDay": "Ganztägig"
|
||||||
},
|
},
|
||||||
"option": {
|
"option": {
|
||||||
"releaseType": {
|
"releaseType": {
|
||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "Aktuelle Wiedergabe",
|
"currentlyPlaying": "Aktuelle Wiedergabe",
|
||||||
"user": "Benutzer",
|
"user": "Benutzer",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"id": "Id"
|
"id": "Id",
|
||||||
|
"metadata": {
|
||||||
|
"title": "Statistiken für Nerds",
|
||||||
|
"video": {
|
||||||
|
"title": "Video",
|
||||||
|
"resolution": "Auflösung"
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "Audio",
|
||||||
|
"channelCount": "Audio Kanäle",
|
||||||
|
"codec": "Audio Codec"
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "Transkodierung",
|
||||||
|
"container": "Container",
|
||||||
|
"resolution": "Auflösung",
|
||||||
|
"target": "Ziel Codec"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -2288,7 +2306,7 @@
|
|||||||
"label": "Limit für Beiträge"
|
"label": "Limit für Beiträge"
|
||||||
},
|
},
|
||||||
"hideDescription": {
|
"hideDescription": {
|
||||||
"label": ""
|
"label": "Beschreibung ausblenden"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -2507,24 +2525,24 @@
|
|||||||
"description": "CPU, Arbeitsspeicher, Festplatte und andere Hardware-Nutzung Ihres Systems",
|
"description": "CPU, Arbeitsspeicher, Festplatte und andere Hardware-Nutzung Ihres Systems",
|
||||||
"option": {
|
"option": {
|
||||||
"hasShadow": {
|
"hasShadow": {
|
||||||
"label": ""
|
"label": "Schattierung der Diagramme aktivieren"
|
||||||
},
|
},
|
||||||
"visibleCharts": {
|
"visibleCharts": {
|
||||||
"label": "",
|
"label": "Sichtbare Diagramme",
|
||||||
"description": "",
|
"description": "Wählen Sie die Diagramme aus, die angezeigt werden sollen.",
|
||||||
"option": {
|
"option": {
|
||||||
"cpu": "",
|
"cpu": "CPU",
|
||||||
"memory": "",
|
"memory": "Speicher",
|
||||||
"network": ""
|
"network": "Netzwerk"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"labelDisplayMode": {
|
"labelDisplayMode": {
|
||||||
"label": "",
|
"label": "Anzeigemodus der Beschriftung",
|
||||||
"option": {
|
"option": {
|
||||||
"textWithIcon": "",
|
"textWithIcon": "Text mit Symbol anzeigen",
|
||||||
"text": "",
|
"text": "Nur Text anzeigen",
|
||||||
"icon": "",
|
"icon": "Nur das Symbol anzeigen",
|
||||||
"hidden": ""
|
"hidden": "Beschriftung ausblenden"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -3331,10 +3349,10 @@
|
|||||||
"weeklyMonday": "Jede Woche am Montag",
|
"weeklyMonday": "Jede Woche am Montag",
|
||||||
"update": {
|
"update": {
|
||||||
"success": {
|
"success": {
|
||||||
"message": ""
|
"message": "Intervall erfolgreich aktualisiert"
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"message": ""
|
"message": "Fehler beim Aktualisieren des Intervalls"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -3365,33 +3383,33 @@
|
|||||||
},
|
},
|
||||||
"refresh": {
|
"refresh": {
|
||||||
"success": {
|
"success": {
|
||||||
"message": ""
|
"message": "Aufgaben erfolgreich aktualisiert"
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"message": ""
|
"message": "Fehler beim Aktualisieren der Aufgaben"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"trigger": {
|
"trigger": {
|
||||||
"success": {
|
"success": {
|
||||||
"message": ""
|
"message": "Aufgabe erfolgreich ausgelöst"
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"message": ""
|
"message": "Fehler beim Auslösen der Aufgabe"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"enable": {
|
"enable": {
|
||||||
"success": {
|
"success": {
|
||||||
"message": ""
|
"message": "Aufgabe erfolgreich aktiviert"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"disable": {
|
"disable": {
|
||||||
"success": {
|
"success": {
|
||||||
"message": ""
|
"message": "Aufgabe erfolgreich deaktiviert"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"toggle": {
|
"toggle": {
|
||||||
"error": {
|
"error": {
|
||||||
"message": ""
|
"message": "Fehler beim Umschalten des Aufgabenstatus"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "Bibliotheken",
|
"title": "Bibliotheken",
|
||||||
"subtitle": "{count} im Code von Homarr verwendet"
|
"subtitle": "{count} im Code von Homarr verwendet"
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "Tastenkürzel",
|
||||||
|
"subtitle": "Tastenkürzel zur Verbesserung Ihres Workflows",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "Verknüpfung",
|
||||||
|
"action": "Aktion"
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "Bearbeitungsmodus des Boardes umschalten",
|
||||||
|
"toggleColorScheme": "Hell/Dunkelmodus umschalten",
|
||||||
|
"saveNotebook": "Notizbuch speichern (nur innerhalb des Notizbuch Widgets)",
|
||||||
|
"openSpotlight": "Suche öffnen"
|
||||||
|
},
|
||||||
|
"note": "Tipp: Mod bezieht sich sowohl auf die Strg-Taste als auch auf die ⌘ Taste auf macOS"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "",
|
"currentlyPlaying": "",
|
||||||
"user": "",
|
"user": "",
|
||||||
"name": "",
|
"name": "",
|
||||||
"id": ""
|
"id": "",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "",
|
"title": "",
|
||||||
"subtitle": ""
|
"subtitle": ""
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "",
|
"currentlyPlaying": "",
|
||||||
"user": "",
|
"user": "",
|
||||||
"name": "",
|
"name": "",
|
||||||
"id": ""
|
"id": "",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "",
|
"title": "",
|
||||||
"subtitle": ""
|
"subtitle": ""
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1145,6 +1145,12 @@
|
|||||||
"groupNameTaken": "Group name already taken"
|
"groupNameTaken": "Group name already taken"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"unit": {
|
||||||
|
"speed": {
|
||||||
|
"kilometersPerHour": "km/h",
|
||||||
|
"milesPerHour": "mph"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"section": {
|
"section": {
|
||||||
@@ -1157,6 +1163,9 @@
|
|||||||
"title": {
|
"title": {
|
||||||
"label": "Title"
|
"label": "Title"
|
||||||
},
|
},
|
||||||
|
"customCssClasses": {
|
||||||
|
"label": "Custom css classes"
|
||||||
|
},
|
||||||
"borderColor": {
|
"borderColor": {
|
||||||
"label": "Border color"
|
"label": "Border color"
|
||||||
}
|
}
|
||||||
@@ -1744,6 +1753,9 @@
|
|||||||
"label": "Show current wind speed",
|
"label": "Show current wind speed",
|
||||||
"description": "Only on current weather"
|
"description": "Only on current weather"
|
||||||
},
|
},
|
||||||
|
"useImperialSpeed": {
|
||||||
|
"label": "Use mph for windspeed"
|
||||||
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"label": "Weather location"
|
"label": "Weather location"
|
||||||
},
|
},
|
||||||
@@ -1762,12 +1774,12 @@
|
|||||||
"description": "How the date should look like"
|
"description": "How the date should look like"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"currentWindSpeed": "{currentWindSpeed} km/h",
|
"currentWindSpeed": "{currentWindSpeed} {unit}",
|
||||||
"dailyForecast": {
|
"dailyForecast": {
|
||||||
"sunrise": "Sunrise",
|
"sunrise": "Sunrise",
|
||||||
"sunset": "Sunset",
|
"sunset": "Sunset",
|
||||||
"maxWindSpeed": "Max wind speed: {maxWindSpeed} km/h",
|
"maxWindSpeed": "Max wind speed: {maxWindSpeed} {unit}",
|
||||||
"maxWindGusts": "Max wind gusts: {maxWindGusts} km/h"
|
"maxWindGusts": "Max wind gusts: {maxWindGusts} {unit}"
|
||||||
},
|
},
|
||||||
"kind": {
|
"kind": {
|
||||||
"clear": "Clear",
|
"clear": "Clear",
|
||||||
|
|||||||
@@ -302,7 +302,7 @@
|
|||||||
"group": {
|
"group": {
|
||||||
"title": "Grupos",
|
"title": "Grupos",
|
||||||
"name": "Grupo",
|
"name": "Grupo",
|
||||||
"search": "Encontrar un grupo",
|
"search": "Buscar un grupo...",
|
||||||
"field": {
|
"field": {
|
||||||
"name": "Nombre",
|
"name": "Nombre",
|
||||||
"members": "Miembros",
|
"members": "Miembros",
|
||||||
@@ -1043,9 +1043,9 @@
|
|||||||
"previous": "Anterior",
|
"previous": "Anterior",
|
||||||
"next": "Siguiente",
|
"next": "Siguiente",
|
||||||
"checkoutDocs": "Consultar la documentación",
|
"checkoutDocs": "Consultar la documentación",
|
||||||
"checkLogs": "Comprobar los registros para más detalles",
|
"checkLogs": "Comprueba los registros para más detalles",
|
||||||
"tryAgain": "Intentar de nuevo",
|
"tryAgain": "Intentar de nuevo",
|
||||||
"loading": "Cargar"
|
"loading": "Cargando"
|
||||||
},
|
},
|
||||||
"here": "aquí",
|
"here": "aquí",
|
||||||
"iconPicker": {
|
"iconPicker": {
|
||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "Reproducción en curso",
|
"currentlyPlaying": "Reproducción en curso",
|
||||||
"user": "Usuario",
|
"user": "Usuario",
|
||||||
"name": "Nombre",
|
"name": "Nombre",
|
||||||
"id": "ID"
|
"id": "ID",
|
||||||
|
"metadata": {
|
||||||
|
"title": "Estadísticas",
|
||||||
|
"video": {
|
||||||
|
"title": "Vídeo",
|
||||||
|
"resolution": "Resolución"
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "Audio",
|
||||||
|
"channelCount": "Canales de audio",
|
||||||
|
"codec": "Códec de audio"
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "Transcodificación",
|
||||||
|
"container": "Contenedor",
|
||||||
|
"resolution": "Resolución",
|
||||||
|
"target": "Códec de destino"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3135,7 +3153,7 @@
|
|||||||
},
|
},
|
||||||
"members": {
|
"members": {
|
||||||
"title": "Miembros",
|
"title": "Miembros",
|
||||||
"search": "Buscar un miembro",
|
"search": "Buscar un miembro...",
|
||||||
"notFound": "No se han encontrado miembros"
|
"notFound": "No se han encontrado miembros"
|
||||||
},
|
},
|
||||||
"permissions": {
|
"permissions": {
|
||||||
@@ -3356,7 +3374,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"table": {
|
"table": {
|
||||||
"search": "Buscar {count} tareas..."
|
"search": "Buscar una tarea..."
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
"refresh": {
|
"refresh": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "Librerías",
|
"title": "Librerías",
|
||||||
"subtitle": "{count} usadas en el Código de Homarr"
|
"subtitle": "{count} usadas en el Código de Homarr"
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "Accesos directos",
|
||||||
|
"subtitle": "Accesos directos de teclado para mejorar tu flujo de trabajo",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "Acceso directo",
|
||||||
|
"action": "Acción"
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "Cambiar a modo de edición de tablero",
|
||||||
|
"toggleColorScheme": "Cambiar a modo claro/oscuro",
|
||||||
|
"saveNotebook": "Guardar el bloc de notas (solo dentro del widget de bloc de notas)",
|
||||||
|
"openSpotlight": "Abrir búsqueda"
|
||||||
|
},
|
||||||
|
"note": "Sugerencia: Mod se refiere tanto a la tecla CTRL como a la tecla ⌘ en macOS"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3575,7 +3608,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"internalServerError": "Fallo al obtener contenedores Docker"
|
"internalServerError": "Fallo al obtener los contenedores de Docker"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"kubernetes": {
|
"kubernetes": {
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "",
|
"currentlyPlaying": "",
|
||||||
"user": "",
|
"user": "",
|
||||||
"name": "",
|
"name": "",
|
||||||
"id": ""
|
"id": "",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "",
|
"title": "",
|
||||||
"subtitle": ""
|
"subtitle": ""
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -946,24 +946,24 @@
|
|||||||
"newLabel": "Nouveau sujet"
|
"newLabel": "Nouveau sujet"
|
||||||
},
|
},
|
||||||
"url": {
|
"url": {
|
||||||
"label": "",
|
"label": "Url",
|
||||||
"newLabel": ""
|
"newLabel": "Nouvelle url"
|
||||||
},
|
},
|
||||||
"opnsenseApiKey": {
|
"opnsenseApiKey": {
|
||||||
"label": "",
|
"label": "Clé API (Key)",
|
||||||
"newLabel": ""
|
"newLabel": "Nouvelle clé API (Key)"
|
||||||
},
|
},
|
||||||
"opnsenseApiSecret": {
|
"opnsenseApiSecret": {
|
||||||
"label": "",
|
"label": "Clé API (secrète)",
|
||||||
"newLabel": ""
|
"newLabel": "Nouvelle clé API (secrète)"
|
||||||
},
|
},
|
||||||
"githubAppId": {
|
"githubAppId": {
|
||||||
"label": "",
|
"label": "Identifiant de l'application",
|
||||||
"newLabel": ""
|
"newLabel": "Nouvel Id de l'Application"
|
||||||
},
|
},
|
||||||
"githubInstallationId": {
|
"githubInstallationId": {
|
||||||
"label": "",
|
"label": "Id d'installation",
|
||||||
"newLabel": ""
|
"newLabel": "Nouvel ID d'installation"
|
||||||
},
|
},
|
||||||
"privateKey": {
|
"privateKey": {
|
||||||
"label": "",
|
"label": "",
|
||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "En cours de lecture",
|
"currentlyPlaying": "En cours de lecture",
|
||||||
"user": "Utilisateur",
|
"user": "Utilisateur",
|
||||||
"name": "Nom",
|
"name": "Nom",
|
||||||
"id": "Id"
|
"id": "Id",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "Résolution",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -2312,7 +2330,7 @@
|
|||||||
"label": "Afficher les détails"
|
"label": "Afficher les détails"
|
||||||
},
|
},
|
||||||
"showOnlyIcon": {
|
"showOnlyIcon": {
|
||||||
"label": ""
|
"label": "Afficher uniquement l'icône"
|
||||||
},
|
},
|
||||||
"topReleases": {
|
"topReleases": {
|
||||||
"label": "Meilleures sorties",
|
"label": "Meilleures sorties",
|
||||||
@@ -2331,8 +2349,8 @@
|
|||||||
"listAlreadyImportedImages": "Liste des images déjà importées",
|
"listAlreadyImportedImages": "Liste des images déjà importées",
|
||||||
"allImagesAlreadyImported": "Toutes les images déjà importées",
|
"allImagesAlreadyImported": "Toutes les images déjà importées",
|
||||||
"onlyAdminCanImport": "Seuls les administrateurs peuvent importer depuis docker",
|
"onlyAdminCanImport": "Seuls les administrateurs peuvent importer depuis docker",
|
||||||
"selectAll": "",
|
"selectAll": "Tout sélectionner",
|
||||||
"deselectAll": ""
|
"deselectAll": "Tout déselectionner"
|
||||||
},
|
},
|
||||||
"provider": {
|
"provider": {
|
||||||
"label": "Fournisseur"
|
"label": "Fournisseur"
|
||||||
@@ -2394,7 +2412,7 @@
|
|||||||
"starsCount": "Étoiles",
|
"starsCount": "Étoiles",
|
||||||
"forksCount": "",
|
"forksCount": "",
|
||||||
"issuesCount": "Problèmes ouverts",
|
"issuesCount": "Problèmes ouverts",
|
||||||
"markViewed": "",
|
"markViewed": "Marquer comme vu(s)",
|
||||||
"openProjectPage": "Ouvrir la page du projet",
|
"openProjectPage": "Ouvrir la page du projet",
|
||||||
"openReleasePage": "Ouvrir la page de publication",
|
"openReleasePage": "Ouvrir la page de publication",
|
||||||
"releaseDescription": "Description de la publication",
|
"releaseDescription": "Description de la publication",
|
||||||
@@ -2468,21 +2486,21 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"firewall": {
|
"firewall": {
|
||||||
"name": "",
|
"name": "Surveillance du pare-feu",
|
||||||
"description": "",
|
"description": "",
|
||||||
"tab": {
|
"tab": {
|
||||||
"system": "",
|
"system": "Système",
|
||||||
"interfaces": ""
|
"interfaces": "Interfaces"
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"internalServerError": ""
|
"internalServerError": "Impossible d'obtenir les données depuis le pare-feu"
|
||||||
},
|
},
|
||||||
"option": {
|
"option": {
|
||||||
"interfaces": ""
|
"interfaces": "Interfaces réseau à afficher"
|
||||||
},
|
},
|
||||||
"widget": {
|
"widget": {
|
||||||
"fwname": "",
|
"fwname": "Nom",
|
||||||
"version": "",
|
"version": "Version",
|
||||||
"versiontitle": "",
|
"versiontitle": "",
|
||||||
"cputitle": "",
|
"cputitle": "",
|
||||||
"memorytitle": "",
|
"memorytitle": "",
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "Bibliothèques",
|
"title": "Bibliothèques",
|
||||||
"subtitle": "{count} utilisés dans le Code d'Homarr"
|
"subtitle": "{count} utilisés dans le Code d'Homarr"
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "מתנגן כרגע",
|
"currentlyPlaying": "מתנגן כרגע",
|
||||||
"user": "משתמש",
|
"user": "משתמש",
|
||||||
"name": "שם",
|
"name": "שם",
|
||||||
"id": "מזהה"
|
"id": "מזהה",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "ספריות",
|
"title": "ספריות",
|
||||||
"subtitle": "{count} בשימוש בקוד של Homarr"
|
"subtitle": "{count} בשימוש בקוד של Homarr"
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "",
|
"currentlyPlaying": "",
|
||||||
"user": "",
|
"user": "",
|
||||||
"name": "",
|
"name": "",
|
||||||
"id": ""
|
"id": "",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "",
|
"title": "",
|
||||||
"subtitle": ""
|
"subtitle": ""
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "",
|
"currentlyPlaying": "",
|
||||||
"user": "",
|
"user": "",
|
||||||
"name": "",
|
"name": "",
|
||||||
"id": ""
|
"id": "",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "",
|
"title": "",
|
||||||
"subtitle": ""
|
"subtitle": ""
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "Attualmente in riproduzione",
|
"currentlyPlaying": "Attualmente in riproduzione",
|
||||||
"user": "Utente",
|
"user": "Utente",
|
||||||
"name": "Nome",
|
"name": "Nome",
|
||||||
"id": "Id"
|
"id": "Id",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "Librerie",
|
"title": "Librerie",
|
||||||
"subtitle": "{count} utilizzato nel Codice di Homarr"
|
"subtitle": "{count} utilizzato nel Codice di Homarr"
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -946,8 +946,8 @@
|
|||||||
"newLabel": "新規トピック"
|
"newLabel": "新規トピック"
|
||||||
},
|
},
|
||||||
"url": {
|
"url": {
|
||||||
"label": "",
|
"label": "URL",
|
||||||
"newLabel": ""
|
"newLabel": "新規URL"
|
||||||
},
|
},
|
||||||
"opnsenseApiKey": {
|
"opnsenseApiKey": {
|
||||||
"label": "API キー (キー)",
|
"label": "API キー (キー)",
|
||||||
@@ -958,16 +958,16 @@
|
|||||||
"newLabel": "新しい API キー (シークレット)"
|
"newLabel": "新しい API キー (シークレット)"
|
||||||
},
|
},
|
||||||
"githubAppId": {
|
"githubAppId": {
|
||||||
"label": "",
|
"label": "App Id",
|
||||||
"newLabel": ""
|
"newLabel": "新規App Id"
|
||||||
},
|
},
|
||||||
"githubInstallationId": {
|
"githubInstallationId": {
|
||||||
"label": "",
|
"label": "インストール ID",
|
||||||
"newLabel": ""
|
"newLabel": "新規インストール ID"
|
||||||
},
|
},
|
||||||
"privateKey": {
|
"privateKey": {
|
||||||
"label": "",
|
"label": "秘密鍵",
|
||||||
"newLabel": ""
|
"newLabel": "新しい秘密鍵"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1549,11 +1549,11 @@
|
|||||||
},
|
},
|
||||||
"placeholder": "あなたのノートを書き始めましょう",
|
"placeholder": "あなたのノートを書き始めましょう",
|
||||||
"dismiss": {
|
"dismiss": {
|
||||||
"title": "",
|
"title": "変更を放棄しますか?",
|
||||||
"message": "",
|
"message": "ノートブックに保存されていない変更があります。それらを破棄してもよろしいですか?",
|
||||||
"action": {
|
"action": {
|
||||||
"discard": "",
|
"discard": "変更を破棄",
|
||||||
"keepEditing": ""
|
"keepEditing": "編集を続ける"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1708,7 +1708,7 @@
|
|||||||
"name": "カレンダー",
|
"name": "カレンダー",
|
||||||
"description": "カレンダービューで、特定の相対的な期間内に、連携機能からのイベントを表示します",
|
"description": "カレンダービューで、特定の相対的な期間内に、連携機能からのイベントを表示します",
|
||||||
"duration": {
|
"duration": {
|
||||||
"allDay": ""
|
"allDay": "すべての日"
|
||||||
},
|
},
|
||||||
"option": {
|
"option": {
|
||||||
"releaseType": {
|
"releaseType": {
|
||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "再生中の曲",
|
"currentlyPlaying": "再生中の曲",
|
||||||
"user": "ユーザー",
|
"user": "ユーザー",
|
||||||
"name": "名称",
|
"name": "名称",
|
||||||
"id": "Id"
|
"id": "Id",
|
||||||
|
"metadata": {
|
||||||
|
"title": "詳細統計情報",
|
||||||
|
"video": {
|
||||||
|
"title": "動画",
|
||||||
|
"resolution": "解像度"
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "音声",
|
||||||
|
"channelCount": "音声チャンネル",
|
||||||
|
"codec": "オーディオコーデック"
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "トランスコーディング",
|
||||||
|
"container": "コンテナー",
|
||||||
|
"resolution": "対応詳細",
|
||||||
|
"target": "ターゲットコーデック"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -2288,7 +2306,7 @@
|
|||||||
"label": "投稿数の上限"
|
"label": "投稿数の上限"
|
||||||
},
|
},
|
||||||
"hideDescription": {
|
"hideDescription": {
|
||||||
"label": ""
|
"label": "詳細を非表示"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -2507,24 +2525,24 @@
|
|||||||
"description": "CPU、メモリ、ディスクなどのシステムハードウェアの使用",
|
"description": "CPU、メモリ、ディスクなどのシステムハードウェアの使用",
|
||||||
"option": {
|
"option": {
|
||||||
"hasShadow": {
|
"hasShadow": {
|
||||||
"label": ""
|
"label": "グラフのシェーディングを有効にする"
|
||||||
},
|
},
|
||||||
"visibleCharts": {
|
"visibleCharts": {
|
||||||
"label": "",
|
"label": "グラフの表示",
|
||||||
"description": "",
|
"description": "表示するグラフを選択します。",
|
||||||
"option": {
|
"option": {
|
||||||
"cpu": "",
|
"cpu": "CPU",
|
||||||
"memory": "",
|
"memory": "メモリ",
|
||||||
"network": ""
|
"network": "ネットワーク"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"labelDisplayMode": {
|
"labelDisplayMode": {
|
||||||
"label": "",
|
"label": "ラベル表示モード",
|
||||||
"option": {
|
"option": {
|
||||||
"textWithIcon": "",
|
"textWithIcon": "アイコン付きでテキストを表示",
|
||||||
"text": "",
|
"text": "テキストのみ表示",
|
||||||
"icon": "",
|
"icon": "アイコンのみ表示",
|
||||||
"hidden": ""
|
"hidden": "ラベルを隠す"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -3320,7 +3338,7 @@
|
|||||||
"label": "ファイアウォールのインターフェース"
|
"label": "ファイアウォールのインターフェース"
|
||||||
},
|
},
|
||||||
"weather": {
|
"weather": {
|
||||||
"label": ""
|
"label": "天気"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"interval": {
|
"interval": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "ライブラリ",
|
"title": "ライブラリ",
|
||||||
"subtitle": "{count} 個が Homarr のコードで使用されています"
|
"subtitle": "{count} 個が Homarr のコードで使用されています"
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "ホットキー",
|
||||||
|
"subtitle": "ワークフローを強化するためのキーボードショートカット",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "ショートカット",
|
||||||
|
"action": "アクション"
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "ボード編集モードの切り替え",
|
||||||
|
"toggleColorScheme": "ライト/ダークモードの切り替え",
|
||||||
|
"saveNotebook": "ノートブックを保存 (ノートブックウィジェット内のみ)",
|
||||||
|
"openSpotlight": "検索を開く"
|
||||||
|
},
|
||||||
|
"note": "ヒント:CtrlキーとMacOSの⌘キーの両方を参照します"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "",
|
"currentlyPlaying": "",
|
||||||
"user": "",
|
"user": "",
|
||||||
"name": "",
|
"name": "",
|
||||||
"id": ""
|
"id": "",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "",
|
"title": "",
|
||||||
"subtitle": ""
|
"subtitle": ""
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "",
|
"currentlyPlaying": "",
|
||||||
"user": "",
|
"user": "",
|
||||||
"name": "",
|
"name": "",
|
||||||
"id": ""
|
"id": "",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "",
|
"title": "",
|
||||||
"subtitle": ""
|
"subtitle": ""
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "",
|
"currentlyPlaying": "",
|
||||||
"user": "",
|
"user": "",
|
||||||
"name": "",
|
"name": "",
|
||||||
"id": ""
|
"id": "",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "",
|
"title": "",
|
||||||
"subtitle": ""
|
"subtitle": ""
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "Momenteel aan het afspelen",
|
"currentlyPlaying": "Momenteel aan het afspelen",
|
||||||
"user": "Gebruiker",
|
"user": "Gebruiker",
|
||||||
"name": "Naam",
|
"name": "Naam",
|
||||||
"id": "Id"
|
"id": "Id",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "Bibliotheken",
|
"title": "Bibliotheken",
|
||||||
"subtitle": "{count} gebruikt in de code van Homarr"
|
"subtitle": "{count} gebruikt in de code van Homarr"
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "Spilles nå",
|
"currentlyPlaying": "Spilles nå",
|
||||||
"user": "Bruker",
|
"user": "Bruker",
|
||||||
"name": "Navn",
|
"name": "Navn",
|
||||||
"id": "Id"
|
"id": "Id",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "Biblioteker",
|
"title": "Biblioteker",
|
||||||
"subtitle": "{count} brukt i koden til Homarr"
|
"subtitle": "{count} brukt i koden til Homarr"
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1779,7 +1779,7 @@
|
|||||||
"freezingRain": "Marznący deszcz",
|
"freezingRain": "Marznący deszcz",
|
||||||
"snowFall": "Opady śniegu",
|
"snowFall": "Opady śniegu",
|
||||||
"snowGrains": "Ziarna śniegu",
|
"snowGrains": "Ziarna śniegu",
|
||||||
"rainShowers": "Deszczownice",
|
"rainShowers": "Przelotne opady deszczu",
|
||||||
"snowShowers": "Przelotne opady śniegu",
|
"snowShowers": "Przelotne opady śniegu",
|
||||||
"thunderstorm": "Burza",
|
"thunderstorm": "Burza",
|
||||||
"thunderstormWithHail": "Burza z gradem",
|
"thunderstormWithHail": "Burza z gradem",
|
||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "Obecnie odtwarzane",
|
"currentlyPlaying": "Obecnie odtwarzane",
|
||||||
"user": "Użytkownik",
|
"user": "Użytkownik",
|
||||||
"name": "Nazwa",
|
"name": "Nazwa",
|
||||||
"id": "ID"
|
"id": "ID",
|
||||||
|
"metadata": {
|
||||||
|
"title": "Statystyki dla nerdów",
|
||||||
|
"video": {
|
||||||
|
"title": "Wideo",
|
||||||
|
"resolution": "Rozdzielczość"
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "Dźwięk",
|
||||||
|
"channelCount": "Kanały audio",
|
||||||
|
"codec": "Kodek audio"
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "Transkodowanie",
|
||||||
|
"container": "Kontener",
|
||||||
|
"resolution": "Rozdzielczość",
|
||||||
|
"target": "Kodek docelowy"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "Biblioteki",
|
"title": "Biblioteki",
|
||||||
"subtitle": "{count} używanych w kodzie Homarr"
|
"subtitle": "{count} używanych w kodzie Homarr"
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "Skróty klawiszowe",
|
||||||
|
"subtitle": "Skróty klawiaturowe ułatwiające pracę”",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "Skrót",
|
||||||
|
"action": "Akcja"
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "Przełącz tryb edycji tablicy",
|
||||||
|
"toggleColorScheme": "Przełącz tryb jasny/ciemny",
|
||||||
|
"saveNotebook": "Zapisz notatnik (tylko w widżecie notatnika)",
|
||||||
|
"openSpotlight": "Otwórz wyszukiwarkę"
|
||||||
|
},
|
||||||
|
"note": "Wskazówka: Mod odnosi się zarówno do klawisza Ctrl, jak i ⌘ na macOS"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -153,10 +153,10 @@
|
|||||||
"label": "Usar ícone para pings"
|
"label": "Usar ícone para pings"
|
||||||
},
|
},
|
||||||
"defaultSearchEngine": {
|
"defaultSearchEngine": {
|
||||||
"label": ""
|
"label": "Mecanismo de busca padrão"
|
||||||
},
|
},
|
||||||
"openSearchInNewTab": {
|
"openSearchInNewTab": {
|
||||||
"label": ""
|
"label": "Abrir resultados da busca em uma nova aba"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
@@ -219,10 +219,10 @@
|
|||||||
"changeSearchPreferences": {
|
"changeSearchPreferences": {
|
||||||
"notification": {
|
"notification": {
|
||||||
"success": {
|
"success": {
|
||||||
"message": ""
|
"message": "Preferências de busca alteradas com sucesso"
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"message": ""
|
"message": "Não foi possível alterar as preferências de busca"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "",
|
"currentlyPlaying": "",
|
||||||
"user": "",
|
"user": "",
|
||||||
"name": "",
|
"name": "",
|
||||||
"id": ""
|
"id": "",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "",
|
"title": "",
|
||||||
"subtitle": ""
|
"subtitle": ""
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "",
|
"currentlyPlaying": "",
|
||||||
"user": "",
|
"user": "",
|
||||||
"name": "",
|
"name": "",
|
||||||
"id": ""
|
"id": "",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "",
|
"title": "",
|
||||||
"subtitle": ""
|
"subtitle": ""
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "",
|
"currentlyPlaying": "",
|
||||||
"user": "Пользователь",
|
"user": "Пользователь",
|
||||||
"name": "Название",
|
"name": "Название",
|
||||||
"id": "Id"
|
"id": "Id",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "Библиотеки",
|
"title": "Библиотеки",
|
||||||
"subtitle": "{count} используются в коде Homarr"
|
"subtitle": "{count} используются в коде Homarr"
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "Momentálne sa prehráva",
|
"currentlyPlaying": "Momentálne sa prehráva",
|
||||||
"user": "Používateľ",
|
"user": "Používateľ",
|
||||||
"name": "Názov",
|
"name": "Názov",
|
||||||
"id": "Id"
|
"id": "Id",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "Knižnice",
|
"title": "Knižnice",
|
||||||
"subtitle": "{count} používané v Homarrskom kódexe"
|
"subtitle": "{count} používané v Homarrskom kódexe"
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "",
|
"currentlyPlaying": "",
|
||||||
"user": "",
|
"user": "",
|
||||||
"name": "",
|
"name": "",
|
||||||
"id": ""
|
"id": "",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "",
|
"title": "",
|
||||||
"subtitle": ""
|
"subtitle": ""
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "",
|
"currentlyPlaying": "",
|
||||||
"user": "",
|
"user": "",
|
||||||
"name": "",
|
"name": "",
|
||||||
"id": ""
|
"id": "",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "",
|
"title": "",
|
||||||
"subtitle": ""
|
"subtitle": ""
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1708,7 +1708,7 @@
|
|||||||
"name": "Takvim",
|
"name": "Takvim",
|
||||||
"description": "Entegrasyonlarınızdaki etkinlikleri belirli bir göreli zaman dilimi içinde bir takvim görünümünde görüntüleyin",
|
"description": "Entegrasyonlarınızdaki etkinlikleri belirli bir göreli zaman dilimi içinde bir takvim görünümünde görüntüleyin",
|
||||||
"duration": {
|
"duration": {
|
||||||
"allDay": ""
|
"allDay": "Bütün gün"
|
||||||
},
|
},
|
||||||
"option": {
|
"option": {
|
||||||
"releaseType": {
|
"releaseType": {
|
||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "Şuan Oynatılan",
|
"currentlyPlaying": "Şuan Oynatılan",
|
||||||
"user": "Kullanıcı",
|
"user": "Kullanıcı",
|
||||||
"name": "İsim",
|
"name": "İsim",
|
||||||
"id": "Kimlik"
|
"id": "Kimlik",
|
||||||
|
"metadata": {
|
||||||
|
"title": "Meraklısı için istatistikler",
|
||||||
|
"video": {
|
||||||
|
"title": "Video",
|
||||||
|
"resolution": "Çözünürlük"
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "Ses",
|
||||||
|
"channelCount": "Ses kanalları",
|
||||||
|
"codec": "Ses kodekleri"
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "Kod Dönüştürme",
|
||||||
|
"container": "Konteyner",
|
||||||
|
"resolution": "Çözünürlük",
|
||||||
|
"target": "Hedef Kodek"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3320,7 +3338,7 @@
|
|||||||
"label": "Güvenlik Duvarı Arayüzleri"
|
"label": "Güvenlik Duvarı Arayüzleri"
|
||||||
},
|
},
|
||||||
"weather": {
|
"weather": {
|
||||||
"label": ""
|
"label": "Hava Durumu"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"interval": {
|
"interval": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "Kütüphaneler",
|
"title": "Kütüphaneler",
|
||||||
"subtitle": "Homarr kodlamasında {count} kütüphane kullanılıyor"
|
"subtitle": "Homarr kodlamasında {count} kütüphane kullanılıyor"
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "Kısayollar",
|
||||||
|
"subtitle": "İş akışınızı geliştirmek için klavye kısayolları",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "Kısayol",
|
||||||
|
"action": "Eylem"
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "Panonun düzenleme modunu değiştir",
|
||||||
|
"toggleColorScheme": "Aydınlık/karanlık mod",
|
||||||
|
"saveNotebook": "Not defterini kaydet (sadece not defteri widget'ının içinde)",
|
||||||
|
"openSpotlight": "Aramayı aç"
|
||||||
|
},
|
||||||
|
"note": "İpucu: Mod, macOS'ta hem Ctrl tuşunu hem de ⌘ tuşunu ifade eder"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "",
|
"currentlyPlaying": "",
|
||||||
"user": "Користувач",
|
"user": "Користувач",
|
||||||
"name": "Назва",
|
"name": "Назва",
|
||||||
"id": "Id"
|
"id": "Id",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "Бібліотеки",
|
"title": "Бібліотеки",
|
||||||
"subtitle": "{count} - стільки бібліотек використано в коді Homarr"
|
"subtitle": "{count} - стільки бібліотек використано в коді Homarr"
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "",
|
"currentlyPlaying": "",
|
||||||
"user": "",
|
"user": "",
|
||||||
"name": "",
|
"name": "",
|
||||||
"id": ""
|
"id": "",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "",
|
"title": "",
|
||||||
"subtitle": ""
|
"subtitle": ""
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1980,7 +1980,25 @@
|
|||||||
"currentlyPlaying": "目前播放中",
|
"currentlyPlaying": "目前播放中",
|
||||||
"user": "使用者",
|
"user": "使用者",
|
||||||
"name": "名稱",
|
"name": "名稱",
|
||||||
"id": "ID"
|
"id": "ID",
|
||||||
|
"metadata": {
|
||||||
|
"title": "",
|
||||||
|
"video": {
|
||||||
|
"title": "",
|
||||||
|
"resolution": ""
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"title": "",
|
||||||
|
"channelCount": "",
|
||||||
|
"codec": ""
|
||||||
|
},
|
||||||
|
"transcoding": {
|
||||||
|
"title": "",
|
||||||
|
"container": "",
|
||||||
|
"resolution": "",
|
||||||
|
"target": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"downloads": {
|
"downloads": {
|
||||||
@@ -3446,6 +3464,21 @@
|
|||||||
"libraries": {
|
"libraries": {
|
||||||
"title": "資料庫",
|
"title": "資料庫",
|
||||||
"subtitle": "{count} 於 Homarr 待碼中使用"
|
"subtitle": "{count} 於 Homarr 待碼中使用"
|
||||||
|
},
|
||||||
|
"hotkeys": {
|
||||||
|
"title": "",
|
||||||
|
"subtitle": "",
|
||||||
|
"field": {
|
||||||
|
"shortcut": "",
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"toggleBoardEdit": "",
|
||||||
|
"toggleColorScheme": "",
|
||||||
|
"saveNotebook": "",
|
||||||
|
"openSpotlight": ""
|
||||||
|
},
|
||||||
|
"note": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,14 +30,14 @@
|
|||||||
"@homarr/log": "workspace:^0.1.0",
|
"@homarr/log": "workspace:^0.1.0",
|
||||||
"@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/core": "^8.3.2",
|
"@mantine/core": "^8.3.3",
|
||||||
"@mantine/dates": "^8.3.2",
|
"@mantine/dates": "^8.3.3",
|
||||||
"@mantine/hooks": "^8.3.2",
|
"@mantine/hooks": "^8.3.3",
|
||||||
"@tabler/icons-react": "^3.35.0",
|
"@tabler/icons-react": "^3.35.0",
|
||||||
"mantine-react-table": "2.0.0-beta.9",
|
"mantine-react-table": "2.0.0-beta.9",
|
||||||
"next": "15.5.4",
|
"next": "15.5.4",
|
||||||
"react": "19.1.1",
|
"react": "19.2.0",
|
||||||
"react-dom": "19.1.1",
|
"react-dom": "19.2.0",
|
||||||
"svgson": "^5.3.1"
|
"svgson": "^5.3.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@@ -45,7 +45,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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ const emptySectionSchema = z.object({
|
|||||||
|
|
||||||
export const dynamicSectionOptionsSchema = z.object({
|
export const dynamicSectionOptionsSchema = z.object({
|
||||||
title: z.string().max(20).default(""),
|
title: z.string().max(20).default(""),
|
||||||
|
customCssClasses: z.array(z.string()).default([]),
|
||||||
borderColor: z.string().default(""),
|
borderColor: z.string().default(""),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -48,9 +48,9 @@
|
|||||||
"@homarr/translation": "workspace:^0.1.0",
|
"@homarr/translation": "workspace:^0.1.0",
|
||||||
"@homarr/ui": "workspace:^0.1.0",
|
"@homarr/ui": "workspace:^0.1.0",
|
||||||
"@homarr/validation": "workspace:^0.1.0",
|
"@homarr/validation": "workspace:^0.1.0",
|
||||||
"@mantine/charts": "^8.3.2",
|
"@mantine/charts": "^8.3.3",
|
||||||
"@mantine/core": "^8.3.2",
|
"@mantine/core": "^8.3.3",
|
||||||
"@mantine/hooks": "^8.3.2",
|
"@mantine/hooks": "^8.3.3",
|
||||||
"@tabler/icons-react": "^3.35.0",
|
"@tabler/icons-react": "^3.35.0",
|
||||||
"@tiptap/extension-color": "2.26.2",
|
"@tiptap/extension-color": "2.26.2",
|
||||||
"@tiptap/extension-highlight": "2.26.2",
|
"@tiptap/extension-highlight": "2.26.2",
|
||||||
@@ -73,8 +73,8 @@
|
|||||||
"mantine-form-zod-resolver": "^1.3.0",
|
"mantine-form-zod-resolver": "^1.3.0",
|
||||||
"mantine-react-table": "2.0.0-beta.9",
|
"mantine-react-table": "2.0.0-beta.9",
|
||||||
"next": "15.5.4",
|
"next": "15.5.4",
|
||||||
"react": "19.1.1",
|
"react": "19.2.0",
|
||||||
"react-dom": "19.1.1",
|
"react-dom": "19.2.0",
|
||||||
"react-markdown": "^10.1.0",
|
"react-markdown": "^10.1.0",
|
||||||
"recharts": "^2.15.4",
|
"recharts": "^2.15.4",
|
||||||
"video.js": "^8.23.4",
|
"video.js": "^8.23.4",
|
||||||
@@ -85,7 +85,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/video.js": "^7.3.58",
|
"@types/video.js": "^7.3.58",
|
||||||
"eslint": "^9.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import dayjs from "dayjs";
|
|||||||
|
|
||||||
import type { RouterOutputs } from "@homarr/api";
|
import type { RouterOutputs } from "@homarr/api";
|
||||||
import { clientApi } from "@homarr/api/client";
|
import { clientApi } from "@homarr/api/client";
|
||||||
|
import { metricToImperial } from "@homarr/common";
|
||||||
import { useScopedI18n } from "@homarr/translation/client";
|
import { useScopedI18n } from "@homarr/translation/client";
|
||||||
|
|
||||||
import type { WidgetComponentProps } from "../definition";
|
import type { WidgetComponentProps } from "../definition";
|
||||||
@@ -52,6 +53,7 @@ interface WeatherProps extends Pick<WidgetComponentProps<"weather">, "options">
|
|||||||
|
|
||||||
const DailyWeather = ({ options, weather }: WeatherProps) => {
|
const DailyWeather = ({ options, weather }: WeatherProps) => {
|
||||||
const t = useScopedI18n("widget.weather");
|
const t = useScopedI18n("widget.weather");
|
||||||
|
const tCommon = useScopedI18n("common");
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
@@ -78,7 +80,17 @@ const DailyWeather = ({ options, weather }: WeatherProps) => {
|
|||||||
{options.showCurrentWindSpeed && (
|
{options.showCurrentWindSpeed && (
|
||||||
<Group className="weather-current-wind-speed-group" wrap="nowrap" gap="xs">
|
<Group className="weather-current-wind-speed-group" wrap="nowrap" gap="xs">
|
||||||
<IconWind size={16} />
|
<IconWind size={16} />
|
||||||
<Text fz={16}>{t("currentWindSpeed", { currentWindSpeed: String(weather.current.windspeed) })}</Text>
|
<Text fz={16}>
|
||||||
|
{t("currentWindSpeed", {
|
||||||
|
currentWindSpeed: (options.useImperialSpeed
|
||||||
|
? metricToImperial(weather.current.windspeed)
|
||||||
|
: weather.current.windspeed
|
||||||
|
).toFixed(1),
|
||||||
|
unit: options.useImperialSpeed
|
||||||
|
? tCommon("unit.speed.milesPerHour")
|
||||||
|
: tCommon("unit.speed.kilometersPerHour"),
|
||||||
|
})}
|
||||||
|
</Text>
|
||||||
</Group>
|
</Group>
|
||||||
)}
|
)}
|
||||||
<Group className="weather-max-min-temp-group" wrap="nowrap" gap="sm">
|
<Group className="weather-max-min-temp-group" wrap="nowrap" gap="sm">
|
||||||
@@ -180,6 +192,7 @@ function Forecast({ weather, options }: WeatherProps) {
|
|||||||
</HoverCard.Target>
|
</HoverCard.Target>
|
||||||
<HoverCard.Dropdown>
|
<HoverCard.Dropdown>
|
||||||
<WeatherDescription
|
<WeatherDescription
|
||||||
|
useImperialSpeed={options.useImperialSpeed}
|
||||||
dateFormat={dateFormat}
|
dateFormat={dateFormat}
|
||||||
time={dayWeather.time}
|
time={dayWeather.time}
|
||||||
weatherCode={dayWeather.weatherCode}
|
weatherCode={dayWeather.weatherCode}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import {
|
|||||||
} from "@tabler/icons-react";
|
} from "@tabler/icons-react";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
|
|
||||||
|
import { metricToImperial } from "@homarr/common";
|
||||||
import type { TranslationObject } from "@homarr/translation";
|
import type { TranslationObject } from "@homarr/translation";
|
||||||
import { useScopedI18n } from "@homarr/translation/client";
|
import { useScopedI18n } from "@homarr/translation/client";
|
||||||
import type { TablerIcon } from "@homarr/ui";
|
import type { TablerIcon } from "@homarr/ui";
|
||||||
@@ -40,6 +41,7 @@ export const WeatherIcon = ({ code, size = 50 }: WeatherIconProps) => {
|
|||||||
|
|
||||||
interface WeatherDescriptionProps {
|
interface WeatherDescriptionProps {
|
||||||
weatherOnly?: boolean;
|
weatherOnly?: boolean;
|
||||||
|
useImperialSpeed?: boolean;
|
||||||
dateFormat?: WidgetProps<"weather">["options"]["dateFormat"];
|
dateFormat?: WidgetProps<"weather">["options"]["dateFormat"];
|
||||||
time?: string;
|
time?: string;
|
||||||
weatherCode: number;
|
weatherCode: number;
|
||||||
@@ -66,6 +68,7 @@ interface WeatherDescriptionProps {
|
|||||||
*/
|
*/
|
||||||
export const WeatherDescription = ({
|
export const WeatherDescription = ({
|
||||||
weatherOnly,
|
weatherOnly,
|
||||||
|
useImperialSpeed,
|
||||||
dateFormat,
|
dateFormat,
|
||||||
time,
|
time,
|
||||||
weatherCode,
|
weatherCode,
|
||||||
@@ -96,12 +99,18 @@ export const WeatherDescription = ({
|
|||||||
<List.Item icon={<IconMoon size={15} />}>{`${t("dailyForecast.sunset")}: ${sunset}`}</List.Item>
|
<List.Item icon={<IconMoon size={15} />}>{`${t("dailyForecast.sunset")}: ${sunset}`}</List.Item>
|
||||||
{maxWindSpeed !== undefined && (
|
{maxWindSpeed !== undefined && (
|
||||||
<List.Item icon={<IconWind size={15} />}>
|
<List.Item icon={<IconWind size={15} />}>
|
||||||
{t("dailyForecast.maxWindSpeed", { maxWindSpeed: String(maxWindSpeed) })}
|
{t("dailyForecast.maxWindSpeed", {
|
||||||
|
maxWindSpeed: (useImperialSpeed ? metricToImperial(maxWindSpeed) : maxWindSpeed).toFixed(1),
|
||||||
|
unit: useImperialSpeed ? tCommon("unit.speed.milesPerHour") : tCommon("unit.speed.kilometersPerHour"),
|
||||||
|
})}
|
||||||
</List.Item>
|
</List.Item>
|
||||||
)}
|
)}
|
||||||
{maxWindGusts !== undefined && (
|
{maxWindGusts !== undefined && (
|
||||||
<List.Item icon={<IconWind size={15} />}>
|
<List.Item icon={<IconWind size={15} />}>
|
||||||
{t("dailyForecast.maxWindGusts", { maxWindGusts: String(maxWindGusts) })}
|
{t("dailyForecast.maxWindGusts", {
|
||||||
|
maxWindGusts: (useImperialSpeed ? metricToImperial(maxWindGusts) : maxWindGusts).toFixed(1),
|
||||||
|
unit: useImperialSpeed ? tCommon("unit.speed.milesPerHour") : tCommon("unit.speed.kilometersPerHour"),
|
||||||
|
})}
|
||||||
</List.Item>
|
</List.Item>
|
||||||
)}
|
)}
|
||||||
</List>
|
</List>
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ export const { definition, componentLoader } = createWidgetDefinition("weather",
|
|||||||
isFormatFahrenheit: factory.switch(),
|
isFormatFahrenheit: factory.switch(),
|
||||||
disableTemperatureDecimals: factory.switch(),
|
disableTemperatureDecimals: factory.switch(),
|
||||||
showCurrentWindSpeed: factory.switch({ withDescription: true }),
|
showCurrentWindSpeed: factory.switch({ withDescription: true }),
|
||||||
|
useImperialSpeed: factory.switch(),
|
||||||
location: factory.location({
|
location: factory.location({
|
||||||
defaultValue: {
|
defaultValue: {
|
||||||
name: "Paris",
|
name: "Paris",
|
||||||
|
|||||||
2483
pnpm-lock.yaml
generated
2483
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
@@ -23,13 +23,13 @@
|
|||||||
"eslint-plugin-import": "^2.32.0",
|
"eslint-plugin-import": "^2.32.0",
|
||||||
"eslint-plugin-jsx-a11y": "^6.10.2",
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
||||||
"eslint-plugin-react": "^7.37.5",
|
"eslint-plugin-react": "^7.37.5",
|
||||||
"eslint-plugin-react-hooks": "^5.2.0",
|
"eslint-plugin-react-hooks": "^6.1.1",
|
||||||
"typescript-eslint": "^8.44.1"
|
"typescript-eslint": "^8.45.0"
|
||||||
},
|
},
|
||||||
"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.36.0",
|
"eslint": "^9.37.0",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,6 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@homarr/tsconfig": "workspace:^0.1.0",
|
"@homarr/tsconfig": "workspace:^0.1.0",
|
||||||
"prettier-plugin-packagejson": "^2.5.19",
|
"prettier-plugin-packagejson": "^2.5.19",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user